From 915c56351b9e9de6057ff65cd9ef81aec523f484 Mon Sep 17 00:00:00 2001 From: Stanislav Ulegin Date: Wed, 4 Mar 2026 16:31:57 +0300 Subject: [PATCH] =?UTF-8?q?chore:=20=D0=9C=D0=BE=D0=BD=D0=BE=D1=80=D0=B5?= =?UTF-8?q?=D0=BF=D0=BE=20=D1=81=20=D0=BE=D0=B1=D1=89=D0=B8=D0=BC=D0=B8=20?= =?UTF-8?q?=D0=BF=D0=B0=D0=BA=D0=B5=D1=82=D0=B0=D0=BC=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 13 +- .storybook/main.ts | 15 - .storybook/preview.css | 25 - .storybook/preview.ts | 22 - .yarnrc.yml | 8 + README.md | 215 +- .../components/qr-scanner/index.d.ts | 25 - .../components/qr-scanner/index.d.ts.map | 1 - .../components/qr-scanner/index.js | 209 - .../components/qr-scanner/index.js.map | 1 - .../video-js/plugins/settings/index.d.ts.map | 1 - .../text-track-selector/index.d.ts.map | 1 - .../text-track-selector/index.js.map | 1 - .../components/video-js/types.d.ts | 51 - .../components/video-js/types.d.ts.map | 1 - .../components/with-errors/index.js.map | 1 - .../with-mouse-events/index.d.ts.map | 1 - .../with-observation/index.d.ts.map | 1 - docs/git-installation.md | 43 + docs/release-policy.md | 54 + eslint.config.mjs | 18 + package-lock.json | 5994 -------------- package.json | 94 +- .../content-suggestions/.storybook/main.ts | 18 + .../content-suggestions/.storybook/preview.ts | 19 + packages/content-suggestions/README.md | 98 + .../dist/angular/index.cjs | 141 + .../dist/angular/index.cjs.map | 1 + .../dist/angular/index.d.cts | 33 + .../dist/angular/index.d.ts | 33 + .../content-suggestions/dist/angular/index.js | 137 + .../dist/angular/index.js.map | 1 + .../content-suggestions/dist/core/index.cjs | 97 + .../dist/core/index.cjs.map | 1 + .../content-suggestions/dist/core/index.d.cts | 12 + .../content-suggestions/dist/core/index.d.ts | 12 + .../content-suggestions/dist/core/index.js | 89 + .../dist/core/index.js.map | 1 + .../content-suggestions/dist/react/index.cjs | 396 + .../dist/react/index.cjs.map | 1 + .../dist/react/index.d.cts | 48 + .../content-suggestions/dist/react/index.d.ts | 48 + .../content-suggestions/dist/react/index.js | 381 + .../dist/react/index.js.map | 1 + .../dist/types-BRt4hd7A.d.cts | 29 + .../dist/types-BRt4hd7A.d.ts | 29 + packages/content-suggestions/package.json | 105 + .../content-suggestions/src/angular/index.ts | 106 + .../content-suggestions/src/core/index.ts | 19 + .../content-suggestions/src/core/parser.ts | 115 + .../content-suggestions/src/core/types.ts | 33 + .../content-text-with-suggestions.tsx | 47 + .../src/react/components/content-text.tsx | 353 + .../content-title-with-suggestions.tsx | 28 + .../content-suggestions/src/react/index.tsx | 27 + .../ContentTextWithSuggestions.stories.tsx | 77 + .../ContentTitleWithSuggestions.stories.tsx | 50 + packages/content-suggestions/tsconfig.json | 10 + packages/content-suggestions/tsup.config.ts | 25 + packages/tach-typography/.storybook/main.ts | 22 + .../tach-typography/.storybook/preview.css | 90 + .../tach-typography/.storybook/preview.ts | 27 + packages/tach-typography/README.md | 98 + .../tach-typography/dist/angular/index.cjs | 204 + .../dist/angular/index.cjs.map | 1 + .../tach-typography/dist/angular/index.d.cts | 31 + .../tach-typography/dist/angular/index.d.ts | 31 + .../tach-typography/dist/angular/index.js | 200 + .../tach-typography/dist/angular/index.js.map | 1 + packages/tach-typography/dist/core/index.cjs | 87 + .../tach-typography/dist/core/index.cjs.map | 1 + .../tach-typography/dist/core/index.d.cts | 10 + packages/tach-typography/dist/core/index.d.ts | 10 + packages/tach-typography/dist/core/index.js | 81 + .../tach-typography/dist/core/index.js.map | 1 + packages/tach-typography/dist/react/index.cjs | 88 + .../tach-typography/dist/react/index.cjs.map | 1 + .../tach-typography/dist/react/index.d.cts | 121 + .../tach-typography/dist/react/index.d.ts | 121 + packages/tach-typography/dist/react/index.js | 82 + .../tach-typography/dist/react/index.js.map | 1 + packages/tach-typography/dist/styles.css | 103 + .../tach-typography/dist/types-CQyFuLqp.d.cts | 20 + .../tach-typography/dist/types-CQyFuLqp.d.ts | 20 + packages/tach-typography/package.json | 136 + .../tach-typography/scripts/copy-styles.mjs | 12 + packages/tach-typography/src/angular/index.ts | 140 + .../tach-typography/src/core/classnames.ts | 29 + packages/tach-typography/src/core/ellipsis.ts | 21 + .../tach-typography/src/core/index.test.ts | 56 + packages/tach-typography/src/core/index.ts | 3 + packages/tach-typography/src/core/types.ts | 61 + packages/tach-typography/src/react/index.tsx | 82 + .../TachTypography.Playground.stories.tsx | 183 + .../TachTypography.Reference.stories.tsx | 105 + .../stories/TachTypography.Tokens.stories.tsx | 189 + .../src/styles/tach-typography.css | 103 + .../styles/typography-vars.scss | 262 + packages/tach-typography/tsconfig.json | 10 + packages/tach-typography/tsup.config.ts | 25 + packages/video-player/.storybook/main.ts | 18 + packages/video-player/.storybook/preview.ts | 13 + packages/video-player/README.md | 103 + .../video-player/dist}/angular/index.d.ts | 0 .../video-player/dist}/angular/index.d.ts.map | 0 .../video-player/dist}/angular/index.js | 0 .../video-player/dist}/angular/index.js.map | 0 .../dist}/core/engine-selector.d.ts | 0 .../dist}/core/engine-selector.d.ts.map | 0 .../dist}/core/engine-selector.js | 0 .../dist}/core/engine-selector.js.map | 0 .../video-player/dist}/core/format-time.d.ts | 0 .../dist}/core/format-time.d.ts.map | 0 .../video-player/dist}/core/format-time.js | 0 .../dist}/core/format-time.js.map | 0 .../video-player/dist}/core/index.d.ts | 0 .../video-player/dist}/core/index.d.ts.map | 0 .../video-player/dist}/core/index.js | 0 .../video-player/dist}/core/index.js.map | 0 .../dist}/core/player-runtime.d.ts | 0 .../dist}/core/player-runtime.d.ts.map | 0 .../video-player/dist}/core/player-runtime.js | 0 .../dist}/core/player-runtime.js.map | 0 .../core/plugins/big-play-pause-button.d.ts | 0 .../plugins/big-play-pause-button.d.ts.map | 0 .../core/plugins/big-play-pause-button.js | 0 .../core/plugins/big-play-pause-button.js.map | 0 .../dist}/core/plugins/register.d.ts | 0 .../dist}/core/plugins/register.d.ts.map | 0 .../dist}/core/plugins/register.js | 0 .../dist}/core/plugins/register.js.map | 0 .../tach-video-menu-button/index.d.ts | 0 .../tach-video-menu-button/index.d.ts.map | 0 .../tach-video-menu-button/index.js | 0 .../tach-video-menu-button/index.js.map | 0 .../tach-video-menu-item/index.d.ts | 0 .../tach-video-menu-item/index.d.ts.map | 0 .../components/tach-video-menu-item/index.js | 0 .../tach-video-menu-item/index.js.map | 0 .../components/tach-video-menu/index.d.ts | 0 .../components/tach-video-menu/index.d.ts.map | 0 .../components/tach-video-menu/index.js | 0 .../components/tach-video-menu/index.js.map | 0 .../dist}/core/plugins/settings/index.d.ts | 0 .../core/plugins/settings/index.d.ts.map | 0 .../dist}/core/plugins/settings/index.js | 0 .../dist}/core/plugins/settings/index.js.map | 0 .../selectors/audio-track-selector/index.d.ts | 0 .../audio-track-selector/index.d.ts.map | 0 .../selectors/audio-track-selector/index.js | 0 .../audio-track-selector/index.js.map | 0 .../playback-rate-selector/index.d.ts | 0 .../playback-rate-selector/index.d.ts.map | 0 .../selectors/playback-rate-selector/index.js | 0 .../playback-rate-selector/index.js.map | 0 .../quality-rate-selector/index.d.ts | 0 .../quality-rate-selector/index.d.ts.map | 0 .../selectors/quality-rate-selector/index.js | 0 .../quality-rate-selector/index.js.map | 0 .../selectors/text-track-selector/index.d.ts | 0 .../text-track-selector/index.d.ts.map | 0 .../selectors/text-track-selector/index.js | 0 .../text-track-selector/index.js.map | 0 .../dist}/core/plugins/settings/settings.css | 0 .../dist}/core/plugins/settings/types.d.ts | 0 .../core/plugins/settings/types.d.ts.map | 0 .../dist}/core/plugins/settings/types.js | 0 .../dist}/core/plugins/settings/types.js.map | 0 .../dist}/core/plugins/skip-buttons.css | 0 .../dist}/core/plugins/skip-buttons.d.ts | 0 .../dist}/core/plugins/skip-buttons.d.ts.map | 0 .../dist}/core/plugins/skip-buttons.js | 0 .../dist}/core/plugins/skip-buttons.js.map | 0 .../dist}/core/token-provider.d.ts | 0 .../dist}/core/token-provider.d.ts.map | 0 .../video-player/dist}/core/token-provider.js | 0 .../dist}/core/token-provider.js.map | 0 .../video-player/dist}/react/index.d.ts | 0 .../video-player/dist}/react/index.d.ts.map | 0 .../video-player/dist}/react/index.js | 0 .../video-player/dist}/react/index.js.map | 0 .../components/player-extension/index.d.ts | 0 .../player-extension/index.d.ts.map | 0 .../components/player-extension/index.js | 0 .../components/player-extension/index.js.map | 0 .../components/video-js/default.css | 0 .../video-js/hls-or-videojs-player.d.ts | 0 .../video-js/hls-or-videojs-player.d.ts.map | 0 .../video-js/hls-or-videojs-player.js | 0 .../video-js/hls-or-videojs-player.js.map | 0 .../components/video-js/index.d.ts | 0 .../components/video-js/index.d.ts.map | 0 .../video-player/components/video-js/index.js | 0 .../components/video-js/index.js.map | 0 .../plugins/big-play-pause-button/index.d.ts | 0 .../big-play-pause-button/index.d.ts.map | 0 .../plugins/big-play-pause-button/index.js | 0 .../big-play-pause-button/index.js.map | 0 .../tach-video-menu-button/index.d.ts | 0 .../tach-video-menu-button/index.d.ts.map | 0 .../tach-video-menu-button/index.js | 0 .../tach-video-menu-button/index.js.map | 0 .../tach-video-menu-item/index.d.ts | 0 .../tach-video-menu-item/index.d.ts.map | 0 .../components/tach-video-menu-item/index.js | 0 .../tach-video-menu-item/index.js.map | 0 .../components/tach-video-menu/index.d.ts | 0 .../components/tach-video-menu/index.d.ts.map | 0 .../components/tach-video-menu/index.js | 0 .../components/tach-video-menu/index.js.map | 0 .../video-js/plugins/settings/index.d.ts | 4 +- .../video-js/plugins/settings/index.d.ts.map | 1 + .../video-js/plugins/settings/index.js | 0 .../video-js/plugins/settings/index.js.map | 2 +- .../selectors/audio-track-selector/index.d.ts | 0 .../audio-track-selector/index.d.ts.map | 0 .../selectors/audio-track-selector/index.js | 0 .../audio-track-selector/index.js.map | 0 .../playback-rate-selector/index.d.ts | 0 .../playback-rate-selector/index.d.ts.map | 0 .../selectors/playback-rate-selector/index.js | 0 .../playback-rate-selector/index.js.map | 0 .../quality-rate-selector/index.d.ts | 0 .../quality-rate-selector/index.d.ts.map | 0 .../selectors/quality-rate-selector/index.js | 0 .../quality-rate-selector/index.js.map | 0 .../selectors/text-track-selector/index.d.ts | 11 +- .../text-track-selector/index.d.ts.map | 1 + .../selectors/text-track-selector/index.js | 20 +- .../text-track-selector/index.js.map | 1 + .../video-js/plugins/settings/settings.css | 0 .../video-js/plugins/skip-buttons/index.d.ts | 0 .../plugins/skip-buttons/index.d.ts.map | 2 +- .../video-js/plugins/skip-buttons/index.js | 0 .../plugins/skip-buttons/index.js.map | 2 +- .../plugins/skip-buttons/skip-backward.svg | 0 .../plugins/skip-buttons/skip-buttons.css | 0 .../plugins/skip-buttons/skip-forward.svg | 0 .../video-js/plugins/types/index.d.ts | 0 .../video-js/plugins/types/index.d.ts.map | 0 .../video-js/plugins/types/index.js | 0 .../video-js/plugins/types/index.js.map | 0 .../components/video-js/types.d.ts | 94 + .../components/video-js/types.d.ts.map | 1 + .../video-player/components/video-js/types.js | 0 .../components/video-js/types.js.map | 0 .../components/video-js/utils.d.ts | 0 .../components/video-js/utils.d.ts.map | 0 .../video-player/components/video-js/utils.js | 0 .../components/video-js/utils.js.map | 0 .../components/video-js/videojs.module.scss | 0 .../components/with-blur/index.d.ts | 0 .../components/with-blur/index.d.ts.map | 2 +- .../components/with-blur/index.js | 0 .../components/with-blur/index.js.map | 2 +- .../components/with-blur/with-blur.css | 0 .../with-blur/with-blur.module.scss | 0 .../components/with-cover/index.d.ts | 0 .../components/with-cover/index.d.ts.map | 0 .../components/with-cover/index.js | 0 .../components/with-cover/index.js.map | 0 .../with-cover/with-cover.module.scss | 0 .../components/with-duration-badge/index.d.ts | 0 .../with-duration-badge/index.d.ts.map | 0 .../components/with-duration-badge/index.js | 0 .../with-duration-badge/index.js.map | 0 .../with-duration-badge.module.scss | 0 .../components/with-errors/index.d.ts | 0 .../components/with-errors/index.d.ts.map | 2 +- .../components/with-errors/index.js | 0 .../components/with-errors/index.js.map | 1 + .../with-errors/video-error/index.d.ts | 0 .../with-errors/video-error/index.d.ts.map | 0 .../with-errors/video-error/index.js | 0 .../with-errors/video-error/index.js.map | 0 .../video-error/video-error-icon.svg | 0 .../video-error/video-error.module.scss | 0 .../with-errors/with-errors.module.scss | 0 .../components/with-lazy/index.d.ts | 0 .../components/with-lazy/index.d.ts.map | 2 +- .../components/with-lazy/index.js | 0 .../components/with-lazy/index.js.map | 2 +- .../with-lazy/with-lazy.module.scss | 0 .../components/with-loader/index.d.ts | 0 .../components/with-loader/index.d.ts.map | 2 +- .../components/with-loader/index.js | 0 .../components/with-loader/index.js.map | 2 +- .../with-loader/with-loader.module.scss | 0 .../components/with-mouse-events/index.d.ts | 9 +- .../with-mouse-events/index.d.ts.map | 1 + .../components/with-mouse-events/index.js | 0 .../components/with-mouse-events/index.js.map | 2 +- .../with-mouse-events.module.scss | 0 .../components/with-observation/index.d.ts | 6 +- .../with-observation/index.d.ts.map | 1 + .../components/with-observation/index.js | 0 .../components/with-observation/index.js.map | 2 +- .../with-observation.module.scss | 0 .../components/with-processing/index.d.ts | 0 .../components/with-processing/index.d.ts.map | 0 .../components/with-processing/index.js | 0 .../components/with-processing/index.js.map | 0 .../video-processing/index.d.ts | 0 .../video-processing/index.d.ts.map | 0 .../with-processing/video-processing/index.js | 0 .../video-processing/index.js.map | 0 .../video-processing.module.scss | 0 .../with-processing.module.scss | 0 .../dist}/react/video-player/index.d.ts | 0 .../dist}/react/video-player/index.d.ts.map | 0 .../dist}/react/video-player/index.js | 0 .../dist}/react/video-player/index.js.map | 0 .../dist}/react/video-player/shared/math.d.ts | 0 .../react/video-player/shared/math.d.ts.map | 0 .../dist}/react/video-player/shared/math.js | 0 .../react/video-player/shared/math.js.map | 0 .../react/video-player/shared/types.d.ts | 0 .../react/video-player/shared/types.d.ts.map | 0 .../dist}/react/video-player/shared/types.js | 0 .../react/video-player/shared/types.js.map | 0 .../shared/ui/content-skeleton.d.ts | 0 .../shared/ui/content-skeleton.d.ts.map | 0 .../shared/ui/content-skeleton.js | 0 .../shared/ui/content-skeleton.js.map | 0 .../react/video-player/tach-video-js.css | 0 .../react/video-player/video-player.d.ts | 0 .../react/video-player/video-player.d.ts.map | 0 .../dist}/react/video-player/video-player.js | 0 .../react/video-player/video-player.js.map | 0 .../react/video-player/video.module.scss | 0 packages/video-player/package.json | 112 + .../video-player/scripts}/build.mjs | 0 .../video-player/src}/angular/index.ts | 0 .../video-player/src}/core/engine-selector.ts | 0 .../video-player/src}/core/format-time.ts | 0 .../video-player/src}/core/index.ts | 0 .../video-player/src}/core/player-runtime.ts | 0 .../core/plugins/big-play-pause-button.ts | 0 .../src}/core/plugins/register.ts | 0 .../tach-video-menu-button/index.ts | 0 .../components/tach-video-menu-item/index.ts | 0 .../components/tach-video-menu/index.ts | 0 .../src}/core/plugins/settings/index.ts | 0 .../selectors/audio-track-selector/index.ts | 0 .../selectors/playback-rate-selector/index.ts | 0 .../selectors/quality-rate-selector/index.ts | 0 .../selectors/text-track-selector/index.ts | 0 .../src}/core/plugins/settings/settings.css | 0 .../src}/core/plugins/settings/types.ts | 0 .../src}/core/plugins/skip-buttons.css | 0 .../src}/core/plugins/skip-buttons.ts | 0 .../video-player/src}/core/token-provider.ts | 0 .../video-player/src}/react/index.ts | 0 .../components/player-extension/index.tsx | 0 .../__tests__/hls-or-videojs-player.test.tsx | 6 +- .../components/video-js/default.css | 0 .../video-js/hls-or-videojs-player.tsx | 0 .../components/video-js/index.tsx | 0 .../plugins/big-play-pause-button/index.ts | 0 .../tach-video-menu-button/index.ts | 0 .../components/tach-video-menu-item/index.ts | 0 .../components/tach-video-menu/index.ts | 0 .../video-js/plugins/settings/index.ts | 4 +- .../selectors/audio-track-selector/index.ts | 0 .../selectors/playback-rate-selector/index.ts | 0 .../selectors/quality-rate-selector/index.ts | 0 .../selectors/text-track-selector/index.ts | 25 +- .../video-js/plugins/settings/settings.css | 0 .../video-js/plugins/skip-buttons/index.tsx | 7 +- .../plugins/skip-buttons/skip-backward.svg | 0 .../plugins/skip-buttons/skip-buttons.css | 0 .../plugins/skip-buttons/skip-forward.svg | 0 .../video-js/plugins/types/index.ts | 0 .../video-player/components/video-js/types.ts | 118 + .../video-player/components/video-js/utils.ts | 0 .../components/video-js/videojs.module.scss | 0 .../components/with-blur/index.tsx | 2 - .../components/with-blur/with-blur.css | 0 .../with-blur/with-blur.module.scss | 0 .../components/with-cover/index.tsx | 0 .../with-cover/with-cover.module.scss | 0 .../components/with-duration-badge/index.tsx | 0 .../with-duration-badge.module.scss | 0 .../components/with-errors/index.tsx | 6 +- .../with-errors/video-error/index.tsx | 0 .../video-error/video-error-icon.svg | 0 .../video-error/video-error.module.scss | 0 .../with-errors/with-errors.module.scss | 0 .../components/with-lazy/index.tsx | 4 +- .../with-lazy/with-lazy.module.scss | 0 .../components/with-loader/index.tsx | 2 - .../with-loader/with-loader.module.scss | 0 .../components/with-mouse-events/index.tsx | 8 +- .../with-mouse-events.module.scss | 0 .../components/with-observation/index.tsx | 7 +- .../with-observation.module.scss | 0 .../components/with-processing/index.tsx | 0 .../video-processing/index.tsx | 0 .../video-processing.module.scss | 0 .../with-processing.module.scss | 0 .../src}/react/video-player/index.tsx | 0 .../src}/react/video-player/shared/math.ts | 0 .../src}/react/video-player/shared/types.ts | 0 .../shared/ui/content-skeleton.tsx | 0 .../src}/react/video-player/tach-video-js.css | 0 .../src}/react/video-player/video-player.tsx | 0 .../src}/react/video-player/video.module.scss | 0 .../video-player/src}/types/assets.d.ts | 0 .../video-player/src}/types/lodash.d.ts | 0 .../angular-video-player-adapter.stories.tsx | 0 .../stories}/react-video-player.stories.tsx | 0 .../video-player/tsconfig.build.json | 0 packages/video-player/tsconfig.json | 26 + prettier.config.cjs | 6 + .../components/qr-scanner/index.tsx | 310 - .../video-player/components/video-js/types.ts | 58 - tsconfig.base.json | 21 + tsconfig.json | 28 +- vitest.config.mts | 11 + yarn.lock | 7119 +++++++++++++++++ 420 files changed, 13403 insertions(+), 7071 deletions(-) delete mode 100644 .storybook/main.ts delete mode 100644 .storybook/preview.css delete mode 100644 .storybook/preview.ts create mode 100644 .yarnrc.yml delete mode 100644 dist/react/video-player/components/qr-scanner/index.d.ts delete mode 100644 dist/react/video-player/components/qr-scanner/index.d.ts.map delete mode 100644 dist/react/video-player/components/qr-scanner/index.js delete mode 100644 dist/react/video-player/components/qr-scanner/index.js.map delete mode 100644 dist/react/video-player/components/video-js/plugins/settings/index.d.ts.map delete mode 100644 dist/react/video-player/components/video-js/plugins/settings/selectors/text-track-selector/index.d.ts.map delete mode 100644 dist/react/video-player/components/video-js/plugins/settings/selectors/text-track-selector/index.js.map delete mode 100644 dist/react/video-player/components/video-js/types.d.ts delete mode 100644 dist/react/video-player/components/video-js/types.d.ts.map delete mode 100644 dist/react/video-player/components/with-errors/index.js.map delete mode 100644 dist/react/video-player/components/with-mouse-events/index.d.ts.map delete mode 100644 dist/react/video-player/components/with-observation/index.d.ts.map create mode 100644 docs/git-installation.md create mode 100644 docs/release-policy.md create mode 100644 eslint.config.mjs delete mode 100644 package-lock.json create mode 100644 packages/content-suggestions/.storybook/main.ts create mode 100644 packages/content-suggestions/.storybook/preview.ts create mode 100644 packages/content-suggestions/README.md create mode 100644 packages/content-suggestions/dist/angular/index.cjs create mode 100644 packages/content-suggestions/dist/angular/index.cjs.map create mode 100644 packages/content-suggestions/dist/angular/index.d.cts create mode 100644 packages/content-suggestions/dist/angular/index.d.ts create mode 100644 packages/content-suggestions/dist/angular/index.js create mode 100644 packages/content-suggestions/dist/angular/index.js.map create mode 100644 packages/content-suggestions/dist/core/index.cjs create mode 100644 packages/content-suggestions/dist/core/index.cjs.map create mode 100644 packages/content-suggestions/dist/core/index.d.cts create mode 100644 packages/content-suggestions/dist/core/index.d.ts create mode 100644 packages/content-suggestions/dist/core/index.js create mode 100644 packages/content-suggestions/dist/core/index.js.map create mode 100644 packages/content-suggestions/dist/react/index.cjs create mode 100644 packages/content-suggestions/dist/react/index.cjs.map create mode 100644 packages/content-suggestions/dist/react/index.d.cts create mode 100644 packages/content-suggestions/dist/react/index.d.ts create mode 100644 packages/content-suggestions/dist/react/index.js create mode 100644 packages/content-suggestions/dist/react/index.js.map create mode 100644 packages/content-suggestions/dist/types-BRt4hd7A.d.cts create mode 100644 packages/content-suggestions/dist/types-BRt4hd7A.d.ts create mode 100644 packages/content-suggestions/package.json create mode 100644 packages/content-suggestions/src/angular/index.ts create mode 100644 packages/content-suggestions/src/core/index.ts create mode 100644 packages/content-suggestions/src/core/parser.ts create mode 100644 packages/content-suggestions/src/core/types.ts create mode 100644 packages/content-suggestions/src/react/components/content-text-with-suggestions.tsx create mode 100644 packages/content-suggestions/src/react/components/content-text.tsx create mode 100644 packages/content-suggestions/src/react/components/content-title-with-suggestions.tsx create mode 100644 packages/content-suggestions/src/react/index.tsx create mode 100644 packages/content-suggestions/src/stories/ContentTextWithSuggestions.stories.tsx create mode 100644 packages/content-suggestions/src/stories/ContentTitleWithSuggestions.stories.tsx create mode 100644 packages/content-suggestions/tsconfig.json create mode 100644 packages/content-suggestions/tsup.config.ts create mode 100644 packages/tach-typography/.storybook/main.ts create mode 100644 packages/tach-typography/.storybook/preview.css create mode 100644 packages/tach-typography/.storybook/preview.ts create mode 100644 packages/tach-typography/README.md create mode 100644 packages/tach-typography/dist/angular/index.cjs create mode 100644 packages/tach-typography/dist/angular/index.cjs.map create mode 100644 packages/tach-typography/dist/angular/index.d.cts create mode 100644 packages/tach-typography/dist/angular/index.d.ts create mode 100644 packages/tach-typography/dist/angular/index.js create mode 100644 packages/tach-typography/dist/angular/index.js.map create mode 100644 packages/tach-typography/dist/core/index.cjs create mode 100644 packages/tach-typography/dist/core/index.cjs.map create mode 100644 packages/tach-typography/dist/core/index.d.cts create mode 100644 packages/tach-typography/dist/core/index.d.ts create mode 100644 packages/tach-typography/dist/core/index.js create mode 100644 packages/tach-typography/dist/core/index.js.map create mode 100644 packages/tach-typography/dist/react/index.cjs create mode 100644 packages/tach-typography/dist/react/index.cjs.map create mode 100644 packages/tach-typography/dist/react/index.d.cts create mode 100644 packages/tach-typography/dist/react/index.d.ts create mode 100644 packages/tach-typography/dist/react/index.js create mode 100644 packages/tach-typography/dist/react/index.js.map create mode 100644 packages/tach-typography/dist/styles.css create mode 100644 packages/tach-typography/dist/types-CQyFuLqp.d.cts create mode 100644 packages/tach-typography/dist/types-CQyFuLqp.d.ts create mode 100644 packages/tach-typography/package.json create mode 100644 packages/tach-typography/scripts/copy-styles.mjs create mode 100644 packages/tach-typography/src/angular/index.ts create mode 100644 packages/tach-typography/src/core/classnames.ts create mode 100644 packages/tach-typography/src/core/ellipsis.ts create mode 100644 packages/tach-typography/src/core/index.test.ts create mode 100644 packages/tach-typography/src/core/index.ts create mode 100644 packages/tach-typography/src/core/types.ts create mode 100644 packages/tach-typography/src/react/index.tsx create mode 100644 packages/tach-typography/src/stories/TachTypography.Playground.stories.tsx create mode 100644 packages/tach-typography/src/stories/TachTypography.Reference.stories.tsx create mode 100644 packages/tach-typography/src/stories/TachTypography.Tokens.stories.tsx create mode 100644 packages/tach-typography/src/styles/tach-typography.css create mode 100644 packages/tach-typography/styles/typography-vars.scss create mode 100644 packages/tach-typography/tsconfig.json create mode 100644 packages/tach-typography/tsup.config.ts create mode 100644 packages/video-player/.storybook/main.ts create mode 100644 packages/video-player/.storybook/preview.ts create mode 100644 packages/video-player/README.md rename {dist => packages/video-player/dist}/angular/index.d.ts (100%) rename {dist => packages/video-player/dist}/angular/index.d.ts.map (100%) rename {dist => packages/video-player/dist}/angular/index.js (100%) rename {dist => packages/video-player/dist}/angular/index.js.map (100%) rename {dist => packages/video-player/dist}/core/engine-selector.d.ts (100%) rename {dist => packages/video-player/dist}/core/engine-selector.d.ts.map (100%) rename {dist => packages/video-player/dist}/core/engine-selector.js (100%) rename {dist => packages/video-player/dist}/core/engine-selector.js.map (100%) rename {dist => packages/video-player/dist}/core/format-time.d.ts (100%) rename {dist => packages/video-player/dist}/core/format-time.d.ts.map (100%) rename {dist => packages/video-player/dist}/core/format-time.js (100%) rename {dist => packages/video-player/dist}/core/format-time.js.map (100%) rename {dist => packages/video-player/dist}/core/index.d.ts (100%) rename {dist => packages/video-player/dist}/core/index.d.ts.map (100%) rename {dist => packages/video-player/dist}/core/index.js (100%) rename {dist => packages/video-player/dist}/core/index.js.map (100%) rename {dist => packages/video-player/dist}/core/player-runtime.d.ts (100%) rename {dist => packages/video-player/dist}/core/player-runtime.d.ts.map (100%) rename {dist => packages/video-player/dist}/core/player-runtime.js (100%) rename {dist => packages/video-player/dist}/core/player-runtime.js.map (100%) rename {dist => packages/video-player/dist}/core/plugins/big-play-pause-button.d.ts (100%) rename {dist => packages/video-player/dist}/core/plugins/big-play-pause-button.d.ts.map (100%) rename {dist => packages/video-player/dist}/core/plugins/big-play-pause-button.js (100%) rename {dist => packages/video-player/dist}/core/plugins/big-play-pause-button.js.map (100%) rename {dist => packages/video-player/dist}/core/plugins/register.d.ts (100%) rename {dist => packages/video-player/dist}/core/plugins/register.d.ts.map (100%) rename {dist => packages/video-player/dist}/core/plugins/register.js (100%) rename {dist => packages/video-player/dist}/core/plugins/register.js.map (100%) rename {dist => packages/video-player/dist}/core/plugins/settings/components/tach-video-menu-button/index.d.ts (100%) rename {dist => packages/video-player/dist}/core/plugins/settings/components/tach-video-menu-button/index.d.ts.map (100%) rename {dist => packages/video-player/dist}/core/plugins/settings/components/tach-video-menu-button/index.js (100%) rename {dist => packages/video-player/dist}/core/plugins/settings/components/tach-video-menu-button/index.js.map (100%) rename {dist => packages/video-player/dist}/core/plugins/settings/components/tach-video-menu-item/index.d.ts (100%) rename {dist => packages/video-player/dist}/core/plugins/settings/components/tach-video-menu-item/index.d.ts.map (100%) rename {dist => packages/video-player/dist}/core/plugins/settings/components/tach-video-menu-item/index.js (100%) rename {dist => packages/video-player/dist}/core/plugins/settings/components/tach-video-menu-item/index.js.map (100%) rename {dist => packages/video-player/dist}/core/plugins/settings/components/tach-video-menu/index.d.ts (100%) rename {dist => packages/video-player/dist}/core/plugins/settings/components/tach-video-menu/index.d.ts.map (100%) rename {dist => packages/video-player/dist}/core/plugins/settings/components/tach-video-menu/index.js (100%) rename {dist => packages/video-player/dist}/core/plugins/settings/components/tach-video-menu/index.js.map (100%) rename {dist => packages/video-player/dist}/core/plugins/settings/index.d.ts (100%) rename {dist => packages/video-player/dist}/core/plugins/settings/index.d.ts.map (100%) rename {dist => packages/video-player/dist}/core/plugins/settings/index.js (100%) rename {dist => packages/video-player/dist}/core/plugins/settings/index.js.map (100%) rename {dist => packages/video-player/dist}/core/plugins/settings/selectors/audio-track-selector/index.d.ts (100%) rename {dist => packages/video-player/dist}/core/plugins/settings/selectors/audio-track-selector/index.d.ts.map (100%) rename {dist => packages/video-player/dist}/core/plugins/settings/selectors/audio-track-selector/index.js (100%) rename {dist => packages/video-player/dist}/core/plugins/settings/selectors/audio-track-selector/index.js.map (100%) rename {dist => packages/video-player/dist}/core/plugins/settings/selectors/playback-rate-selector/index.d.ts (100%) rename {dist => packages/video-player/dist}/core/plugins/settings/selectors/playback-rate-selector/index.d.ts.map (100%) rename {dist => packages/video-player/dist}/core/plugins/settings/selectors/playback-rate-selector/index.js (100%) rename {dist => packages/video-player/dist}/core/plugins/settings/selectors/playback-rate-selector/index.js.map (100%) rename {dist => packages/video-player/dist}/core/plugins/settings/selectors/quality-rate-selector/index.d.ts (100%) rename {dist => packages/video-player/dist}/core/plugins/settings/selectors/quality-rate-selector/index.d.ts.map (100%) rename {dist => packages/video-player/dist}/core/plugins/settings/selectors/quality-rate-selector/index.js (100%) rename {dist => packages/video-player/dist}/core/plugins/settings/selectors/quality-rate-selector/index.js.map (100%) rename {dist => packages/video-player/dist}/core/plugins/settings/selectors/text-track-selector/index.d.ts (100%) rename {dist => packages/video-player/dist}/core/plugins/settings/selectors/text-track-selector/index.d.ts.map (100%) rename {dist => packages/video-player/dist}/core/plugins/settings/selectors/text-track-selector/index.js (100%) rename {dist => packages/video-player/dist}/core/plugins/settings/selectors/text-track-selector/index.js.map (100%) rename {dist => packages/video-player/dist}/core/plugins/settings/settings.css (100%) rename {dist => packages/video-player/dist}/core/plugins/settings/types.d.ts (100%) rename {dist => packages/video-player/dist}/core/plugins/settings/types.d.ts.map (100%) rename {dist => packages/video-player/dist}/core/plugins/settings/types.js (100%) rename {dist => packages/video-player/dist}/core/plugins/settings/types.js.map (100%) rename {dist => packages/video-player/dist}/core/plugins/skip-buttons.css (100%) rename {dist => packages/video-player/dist}/core/plugins/skip-buttons.d.ts (100%) rename {dist => packages/video-player/dist}/core/plugins/skip-buttons.d.ts.map (100%) rename {dist => packages/video-player/dist}/core/plugins/skip-buttons.js (100%) rename {dist => packages/video-player/dist}/core/plugins/skip-buttons.js.map (100%) rename {dist => packages/video-player/dist}/core/token-provider.d.ts (100%) rename {dist => packages/video-player/dist}/core/token-provider.d.ts.map (100%) rename {dist => packages/video-player/dist}/core/token-provider.js (100%) rename {dist => packages/video-player/dist}/core/token-provider.js.map (100%) rename {dist => packages/video-player/dist}/react/index.d.ts (100%) rename {dist => packages/video-player/dist}/react/index.d.ts.map (100%) rename {dist => packages/video-player/dist}/react/index.js (100%) rename {dist => packages/video-player/dist}/react/index.js.map (100%) rename {dist => packages/video-player/dist}/react/video-player/components/player-extension/index.d.ts (100%) rename {dist => packages/video-player/dist}/react/video-player/components/player-extension/index.d.ts.map (100%) rename {dist => packages/video-player/dist}/react/video-player/components/player-extension/index.js (100%) rename {dist => packages/video-player/dist}/react/video-player/components/player-extension/index.js.map (100%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/default.css (100%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/hls-or-videojs-player.d.ts (100%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/hls-or-videojs-player.d.ts.map (100%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/hls-or-videojs-player.js (100%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/hls-or-videojs-player.js.map (100%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/index.d.ts (100%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/index.d.ts.map (100%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/index.js (100%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/index.js.map (100%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/plugins/big-play-pause-button/index.d.ts (100%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/plugins/big-play-pause-button/index.d.ts.map (100%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/plugins/big-play-pause-button/index.js (100%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/plugins/big-play-pause-button/index.js.map (100%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/plugins/components/tach-video-menu-button/index.d.ts (100%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/plugins/components/tach-video-menu-button/index.d.ts.map (100%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/plugins/components/tach-video-menu-button/index.js (100%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/plugins/components/tach-video-menu-button/index.js.map (100%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/plugins/components/tach-video-menu-item/index.d.ts (100%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/plugins/components/tach-video-menu-item/index.d.ts.map (100%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/plugins/components/tach-video-menu-item/index.js (100%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/plugins/components/tach-video-menu-item/index.js.map (100%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/plugins/components/tach-video-menu/index.d.ts (100%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/plugins/components/tach-video-menu/index.d.ts.map (100%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/plugins/components/tach-video-menu/index.js (100%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/plugins/components/tach-video-menu/index.js.map (100%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/plugins/settings/index.d.ts (95%) create mode 100644 packages/video-player/dist/react/video-player/components/video-js/plugins/settings/index.d.ts.map rename {dist => packages/video-player/dist}/react/video-player/components/video-js/plugins/settings/index.js (100%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/plugins/settings/index.js.map (98%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/plugins/settings/selectors/audio-track-selector/index.d.ts (100%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/plugins/settings/selectors/audio-track-selector/index.d.ts.map (100%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/plugins/settings/selectors/audio-track-selector/index.js (100%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/plugins/settings/selectors/audio-track-selector/index.js.map (100%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/plugins/settings/selectors/playback-rate-selector/index.d.ts (100%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/plugins/settings/selectors/playback-rate-selector/index.d.ts.map (100%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/plugins/settings/selectors/playback-rate-selector/index.js (100%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/plugins/settings/selectors/playback-rate-selector/index.js.map (100%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/plugins/settings/selectors/quality-rate-selector/index.d.ts (100%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/plugins/settings/selectors/quality-rate-selector/index.d.ts.map (100%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/plugins/settings/selectors/quality-rate-selector/index.js (100%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/plugins/settings/selectors/quality-rate-selector/index.js.map (100%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/plugins/settings/selectors/text-track-selector/index.d.ts (63%) create mode 100644 packages/video-player/dist/react/video-player/components/video-js/plugins/settings/selectors/text-track-selector/index.d.ts.map rename {dist => packages/video-player/dist}/react/video-player/components/video-js/plugins/settings/selectors/text-track-selector/index.js (65%) create mode 100644 packages/video-player/dist/react/video-player/components/video-js/plugins/settings/selectors/text-track-selector/index.js.map rename {dist => packages/video-player/dist}/react/video-player/components/video-js/plugins/settings/settings.css (100%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/plugins/skip-buttons/index.d.ts (100%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/plugins/skip-buttons/index.d.ts.map (83%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/plugins/skip-buttons/index.js (100%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/plugins/skip-buttons/index.js.map (93%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/plugins/skip-buttons/skip-backward.svg (100%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/plugins/skip-buttons/skip-buttons.css (100%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/plugins/skip-buttons/skip-forward.svg (100%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/plugins/types/index.d.ts (100%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/plugins/types/index.d.ts.map (100%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/plugins/types/index.js (100%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/plugins/types/index.js.map (100%) create mode 100644 packages/video-player/dist/react/video-player/components/video-js/types.d.ts create mode 100644 packages/video-player/dist/react/video-player/components/video-js/types.d.ts.map rename {dist => packages/video-player/dist}/react/video-player/components/video-js/types.js (100%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/types.js.map (100%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/utils.d.ts (100%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/utils.d.ts.map (100%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/utils.js (100%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/utils.js.map (100%) rename {dist => packages/video-player/dist}/react/video-player/components/video-js/videojs.module.scss (100%) rename {dist => packages/video-player/dist}/react/video-player/components/with-blur/index.d.ts (100%) rename {dist => packages/video-player/dist}/react/video-player/components/with-blur/index.d.ts.map (81%) rename {dist => packages/video-player/dist}/react/video-player/components/with-blur/index.js (100%) rename {dist => packages/video-player/dist}/react/video-player/components/with-blur/index.js.map (97%) rename {dist => packages/video-player/dist}/react/video-player/components/with-blur/with-blur.css (100%) rename {dist => packages/video-player/dist}/react/video-player/components/with-blur/with-blur.module.scss (100%) rename {dist => packages/video-player/dist}/react/video-player/components/with-cover/index.d.ts (100%) rename {dist => packages/video-player/dist}/react/video-player/components/with-cover/index.d.ts.map (100%) rename {dist => packages/video-player/dist}/react/video-player/components/with-cover/index.js (100%) rename {dist => packages/video-player/dist}/react/video-player/components/with-cover/index.js.map (100%) rename {dist => packages/video-player/dist}/react/video-player/components/with-cover/with-cover.module.scss (100%) rename {dist => packages/video-player/dist}/react/video-player/components/with-duration-badge/index.d.ts (100%) rename {dist => packages/video-player/dist}/react/video-player/components/with-duration-badge/index.d.ts.map (100%) rename {dist => packages/video-player/dist}/react/video-player/components/with-duration-badge/index.js (100%) rename {dist => packages/video-player/dist}/react/video-player/components/with-duration-badge/index.js.map (100%) rename {dist => packages/video-player/dist}/react/video-player/components/with-duration-badge/with-duration-badge.module.scss (100%) rename {dist => packages/video-player/dist}/react/video-player/components/with-errors/index.d.ts (100%) rename {dist => packages/video-player/dist}/react/video-player/components/with-errors/index.d.ts.map (62%) rename {dist => packages/video-player/dist}/react/video-player/components/with-errors/index.js (100%) create mode 100644 packages/video-player/dist/react/video-player/components/with-errors/index.js.map rename {dist => packages/video-player/dist}/react/video-player/components/with-errors/video-error/index.d.ts (100%) rename {dist => packages/video-player/dist}/react/video-player/components/with-errors/video-error/index.d.ts.map (100%) rename {dist => packages/video-player/dist}/react/video-player/components/with-errors/video-error/index.js (100%) rename {dist => packages/video-player/dist}/react/video-player/components/with-errors/video-error/index.js.map (100%) rename {dist => packages/video-player/dist}/react/video-player/components/with-errors/video-error/video-error-icon.svg (100%) rename {dist => packages/video-player/dist}/react/video-player/components/with-errors/video-error/video-error.module.scss (100%) rename {dist => packages/video-player/dist}/react/video-player/components/with-errors/with-errors.module.scss (100%) rename {dist => packages/video-player/dist}/react/video-player/components/with-lazy/index.d.ts (100%) rename {dist => packages/video-player/dist}/react/video-player/components/with-lazy/index.d.ts.map (62%) rename {dist => packages/video-player/dist}/react/video-player/components/with-lazy/index.js (100%) rename {dist => packages/video-player/dist}/react/video-player/components/with-lazy/index.js.map (90%) rename {dist => packages/video-player/dist}/react/video-player/components/with-lazy/with-lazy.module.scss (100%) rename {dist => packages/video-player/dist}/react/video-player/components/with-loader/index.d.ts (100%) rename {dist => packages/video-player/dist}/react/video-player/components/with-loader/index.d.ts.map (81%) rename {dist => packages/video-player/dist}/react/video-player/components/with-loader/index.js (100%) rename {dist => packages/video-player/dist}/react/video-player/components/with-loader/index.js.map (94%) rename {dist => packages/video-player/dist}/react/video-player/components/with-loader/with-loader.module.scss (100%) rename {dist => packages/video-player/dist}/react/video-player/components/with-mouse-events/index.d.ts (57%) create mode 100644 packages/video-player/dist/react/video-player/components/with-mouse-events/index.d.ts.map rename {dist => packages/video-player/dist}/react/video-player/components/with-mouse-events/index.js (100%) rename {dist => packages/video-player/dist}/react/video-player/components/with-mouse-events/index.js.map (96%) rename {dist => packages/video-player/dist}/react/video-player/components/with-mouse-events/with-mouse-events.module.scss (100%) rename {dist => packages/video-player/dist}/react/video-player/components/with-observation/index.d.ts (71%) create mode 100644 packages/video-player/dist/react/video-player/components/with-observation/index.d.ts.map rename {dist => packages/video-player/dist}/react/video-player/components/with-observation/index.js (100%) rename {dist => packages/video-player/dist}/react/video-player/components/with-observation/index.js.map (90%) rename {dist => packages/video-player/dist}/react/video-player/components/with-observation/with-observation.module.scss (100%) rename {dist => packages/video-player/dist}/react/video-player/components/with-processing/index.d.ts (100%) rename {dist => packages/video-player/dist}/react/video-player/components/with-processing/index.d.ts.map (100%) rename {dist => packages/video-player/dist}/react/video-player/components/with-processing/index.js (100%) rename {dist => packages/video-player/dist}/react/video-player/components/with-processing/index.js.map (100%) rename {dist => packages/video-player/dist}/react/video-player/components/with-processing/video-processing/index.d.ts (100%) rename {dist => packages/video-player/dist}/react/video-player/components/with-processing/video-processing/index.d.ts.map (100%) rename {dist => packages/video-player/dist}/react/video-player/components/with-processing/video-processing/index.js (100%) rename {dist => packages/video-player/dist}/react/video-player/components/with-processing/video-processing/index.js.map (100%) rename {dist => packages/video-player/dist}/react/video-player/components/with-processing/video-processing/video-processing.module.scss (100%) rename {dist => packages/video-player/dist}/react/video-player/components/with-processing/with-processing.module.scss (100%) rename {dist => packages/video-player/dist}/react/video-player/index.d.ts (100%) rename {dist => packages/video-player/dist}/react/video-player/index.d.ts.map (100%) rename {dist => packages/video-player/dist}/react/video-player/index.js (100%) rename {dist => packages/video-player/dist}/react/video-player/index.js.map (100%) rename {dist => packages/video-player/dist}/react/video-player/shared/math.d.ts (100%) rename {dist => packages/video-player/dist}/react/video-player/shared/math.d.ts.map (100%) rename {dist => packages/video-player/dist}/react/video-player/shared/math.js (100%) rename {dist => packages/video-player/dist}/react/video-player/shared/math.js.map (100%) rename {dist => packages/video-player/dist}/react/video-player/shared/types.d.ts (100%) rename {dist => packages/video-player/dist}/react/video-player/shared/types.d.ts.map (100%) rename {dist => packages/video-player/dist}/react/video-player/shared/types.js (100%) rename {dist => packages/video-player/dist}/react/video-player/shared/types.js.map (100%) rename {dist => packages/video-player/dist}/react/video-player/shared/ui/content-skeleton.d.ts (100%) rename {dist => packages/video-player/dist}/react/video-player/shared/ui/content-skeleton.d.ts.map (100%) rename {dist => packages/video-player/dist}/react/video-player/shared/ui/content-skeleton.js (100%) rename {dist => packages/video-player/dist}/react/video-player/shared/ui/content-skeleton.js.map (100%) rename {dist => packages/video-player/dist}/react/video-player/tach-video-js.css (100%) rename {dist => packages/video-player/dist}/react/video-player/video-player.d.ts (100%) rename {dist => packages/video-player/dist}/react/video-player/video-player.d.ts.map (100%) rename {dist => packages/video-player/dist}/react/video-player/video-player.js (100%) rename {dist => packages/video-player/dist}/react/video-player/video-player.js.map (100%) rename {dist => packages/video-player/dist}/react/video-player/video.module.scss (100%) create mode 100644 packages/video-player/package.json rename {scripts => packages/video-player/scripts}/build.mjs (100%) rename {src => packages/video-player/src}/angular/index.ts (100%) rename {src => packages/video-player/src}/core/engine-selector.ts (100%) rename {src => packages/video-player/src}/core/format-time.ts (100%) rename {src => packages/video-player/src}/core/index.ts (100%) rename {src => packages/video-player/src}/core/player-runtime.ts (100%) rename {src => packages/video-player/src}/core/plugins/big-play-pause-button.ts (100%) rename {src => packages/video-player/src}/core/plugins/register.ts (100%) rename {src => packages/video-player/src}/core/plugins/settings/components/tach-video-menu-button/index.ts (100%) rename {src => packages/video-player/src}/core/plugins/settings/components/tach-video-menu-item/index.ts (100%) rename {src => packages/video-player/src}/core/plugins/settings/components/tach-video-menu/index.ts (100%) rename {src => packages/video-player/src}/core/plugins/settings/index.ts (100%) rename {src => packages/video-player/src}/core/plugins/settings/selectors/audio-track-selector/index.ts (100%) rename {src => packages/video-player/src}/core/plugins/settings/selectors/playback-rate-selector/index.ts (100%) rename {src => packages/video-player/src}/core/plugins/settings/selectors/quality-rate-selector/index.ts (100%) rename {src => packages/video-player/src}/core/plugins/settings/selectors/text-track-selector/index.ts (100%) rename {src => packages/video-player/src}/core/plugins/settings/settings.css (100%) rename {src => packages/video-player/src}/core/plugins/settings/types.ts (100%) rename {src => packages/video-player/src}/core/plugins/skip-buttons.css (100%) rename {src => packages/video-player/src}/core/plugins/skip-buttons.ts (100%) rename {src => packages/video-player/src}/core/token-provider.ts (100%) rename {src => packages/video-player/src}/react/index.ts (100%) rename {src => packages/video-player/src}/react/video-player/components/player-extension/index.tsx (100%) rename {src => packages/video-player/src}/react/video-player/components/video-js/__tests__/hls-or-videojs-player.test.tsx (98%) rename {src => packages/video-player/src}/react/video-player/components/video-js/default.css (100%) rename {src => packages/video-player/src}/react/video-player/components/video-js/hls-or-videojs-player.tsx (100%) rename {src => packages/video-player/src}/react/video-player/components/video-js/index.tsx (100%) rename {src => packages/video-player/src}/react/video-player/components/video-js/plugins/big-play-pause-button/index.ts (100%) rename {src => packages/video-player/src}/react/video-player/components/video-js/plugins/components/tach-video-menu-button/index.ts (100%) rename {src => packages/video-player/src}/react/video-player/components/video-js/plugins/components/tach-video-menu-item/index.ts (100%) rename {src => packages/video-player/src}/react/video-player/components/video-js/plugins/components/tach-video-menu/index.ts (100%) rename {src => packages/video-player/src}/react/video-player/components/video-js/plugins/settings/index.ts (98%) rename {src => packages/video-player/src}/react/video-player/components/video-js/plugins/settings/selectors/audio-track-selector/index.ts (100%) rename {src => packages/video-player/src}/react/video-player/components/video-js/plugins/settings/selectors/playback-rate-selector/index.ts (100%) rename {src => packages/video-player/src}/react/video-player/components/video-js/plugins/settings/selectors/quality-rate-selector/index.ts (100%) rename {src => packages/video-player/src}/react/video-player/components/video-js/plugins/settings/selectors/text-track-selector/index.ts (61%) rename {src => packages/video-player/src}/react/video-player/components/video-js/plugins/settings/settings.css (100%) rename {src => packages/video-player/src}/react/video-player/components/video-js/plugins/skip-buttons/index.tsx (96%) rename {src => packages/video-player/src}/react/video-player/components/video-js/plugins/skip-buttons/skip-backward.svg (100%) rename {src => packages/video-player/src}/react/video-player/components/video-js/plugins/skip-buttons/skip-buttons.css (100%) rename {src => packages/video-player/src}/react/video-player/components/video-js/plugins/skip-buttons/skip-forward.svg (100%) rename {src => packages/video-player/src}/react/video-player/components/video-js/plugins/types/index.ts (100%) create mode 100644 packages/video-player/src/react/video-player/components/video-js/types.ts rename {src => packages/video-player/src}/react/video-player/components/video-js/utils.ts (100%) rename {src => packages/video-player/src}/react/video-player/components/video-js/videojs.module.scss (100%) rename {src => packages/video-player/src}/react/video-player/components/with-blur/index.tsx (98%) rename {src => packages/video-player/src}/react/video-player/components/with-blur/with-blur.css (100%) rename {src => packages/video-player/src}/react/video-player/components/with-blur/with-blur.module.scss (100%) rename {src => packages/video-player/src}/react/video-player/components/with-cover/index.tsx (100%) rename {src => packages/video-player/src}/react/video-player/components/with-cover/with-cover.module.scss (100%) rename {src => packages/video-player/src}/react/video-player/components/with-duration-badge/index.tsx (100%) rename {src => packages/video-player/src}/react/video-player/components/with-duration-badge/with-duration-badge.module.scss (100%) rename {src => packages/video-player/src}/react/video-player/components/with-errors/index.tsx (80%) rename {src => packages/video-player/src}/react/video-player/components/with-errors/video-error/index.tsx (100%) rename {src => packages/video-player/src}/react/video-player/components/with-errors/video-error/video-error-icon.svg (100%) rename {src => packages/video-player/src}/react/video-player/components/with-errors/video-error/video-error.module.scss (100%) rename {src => packages/video-player/src}/react/video-player/components/with-errors/with-errors.module.scss (100%) rename {src => packages/video-player/src}/react/video-player/components/with-lazy/index.tsx (95%) rename {src => packages/video-player/src}/react/video-player/components/with-lazy/with-lazy.module.scss (100%) rename {src => packages/video-player/src}/react/video-player/components/with-loader/index.tsx (95%) rename {src => packages/video-player/src}/react/video-player/components/with-loader/with-loader.module.scss (100%) rename {src => packages/video-player/src}/react/video-player/components/with-mouse-events/index.tsx (93%) rename {src => packages/video-player/src}/react/video-player/components/with-mouse-events/with-mouse-events.module.scss (100%) rename {src => packages/video-player/src}/react/video-player/components/with-observation/index.tsx (90%) rename {src => packages/video-player/src}/react/video-player/components/with-observation/with-observation.module.scss (100%) rename {src => packages/video-player/src}/react/video-player/components/with-processing/index.tsx (100%) rename {src => packages/video-player/src}/react/video-player/components/with-processing/video-processing/index.tsx (100%) rename {src => packages/video-player/src}/react/video-player/components/with-processing/video-processing/video-processing.module.scss (100%) rename {src => packages/video-player/src}/react/video-player/components/with-processing/with-processing.module.scss (100%) rename {src => packages/video-player/src}/react/video-player/index.tsx (100%) rename {src => packages/video-player/src}/react/video-player/shared/math.ts (100%) rename {src => packages/video-player/src}/react/video-player/shared/types.ts (100%) rename {src => packages/video-player/src}/react/video-player/shared/ui/content-skeleton.tsx (100%) rename {src => packages/video-player/src}/react/video-player/tach-video-js.css (100%) rename {src => packages/video-player/src}/react/video-player/video-player.tsx (100%) rename {src => packages/video-player/src}/react/video-player/video.module.scss (100%) rename {src => packages/video-player/src}/types/assets.d.ts (100%) rename {src => packages/video-player/src}/types/lodash.d.ts (100%) rename {stories => packages/video-player/stories}/angular-video-player-adapter.stories.tsx (100%) rename {stories => packages/video-player/stories}/react-video-player.stories.tsx (100%) rename tsconfig.build.json => packages/video-player/tsconfig.build.json (100%) create mode 100644 packages/video-player/tsconfig.json create mode 100644 prettier.config.cjs delete mode 100644 src/react/video-player/components/qr-scanner/index.tsx delete mode 100644 src/react/video-player/components/video-js/types.ts create mode 100644 tsconfig.base.json create mode 100644 vitest.config.mts create mode 100644 yarn.lock diff --git a/.gitignore b/.gitignore index e552ac2..370812a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,12 @@ +.yarn/* +!.yarn/patches +!.yarn/plugins +!.yarn/releases +!.yarn/sdks +!.yarn/versions node_modules -*.log -storybook-static +**/node_modules +**/.turbo +coverage +.DS_Store +**/storybook-static diff --git a/.storybook/main.ts b/.storybook/main.ts deleted file mode 100644 index 3892a0f..0000000 --- a/.storybook/main.ts +++ /dev/null @@ -1,15 +0,0 @@ -import type { StorybookConfig } from "@storybook/react-vite"; - -const config: StorybookConfig = { - stories: ["../stories/**/*.stories.@(ts|tsx)"], - addons: ["@storybook/addon-essentials"], - framework: { - name: "@storybook/react-vite", - options: {}, - }, - docs: { - autodocs: "tag", - }, -}; - -export default config; diff --git a/.storybook/preview.css b/.storybook/preview.css deleted file mode 100644 index 3971c64..0000000 --- a/.storybook/preview.css +++ /dev/null @@ -1,25 +0,0 @@ -:root { - --Default-BgLight: #ffffff; - --Default-BgDarken: #f2f2f2; - --Default-StrokeDividers: #e0e0e0; - --Default-White: #ffffff; - --Text-Primary: #1d1d1d; - --Controls-Primary: #1d1d1d; - --Controls-Plashes: #f5f5f5; - --Shadow-Z100: 0 10px 24px rgba(20, 20, 20, 0.14); - --Accent-Primary: #5152ba; - --Opacity-BlackOpacity45: rgba(0, 0, 0, 0.45); - --corner-S: 8px; - --corner-M: 12px; - --Corner-XL: 32px; -} - -html, -body, -#storybook-root { - height: 100%; -} - -body { - background: #f6f8fb; -} diff --git a/.storybook/preview.ts b/.storybook/preview.ts deleted file mode 100644 index e274dba..0000000 --- a/.storybook/preview.ts +++ /dev/null @@ -1,22 +0,0 @@ -import type { Preview } from "@storybook/react"; - -import "antd/dist/reset.css"; -import "../src/react/video-player/tach-video-js.css"; -import "./preview.css"; - -const preview: Preview = { - parameters: { - layout: "padded", - controls: { - expanded: true, - sort: "requiredFirst", - }, - options: { - storySort: { - order: ["React", "Angular"], - }, - }, - }, -}; - -export default preview; diff --git a/.yarnrc.yml b/.yarnrc.yml new file mode 100644 index 0000000..edf589d --- /dev/null +++ b/.yarnrc.yml @@ -0,0 +1,8 @@ +enableGlobalCache: false + +nodeLinker: node-modules + +packageExtensions: + ng-zorro-antd@*: + peerDependencies: + rxjs: ">=7.0.0" diff --git a/README.md b/README.md index ec54b69..f47b64b 100644 --- a/README.md +++ b/README.md @@ -1,193 +1,60 @@ -# @tach/video-player +# hublib-web -Single package with three entrypoints: +Monorepo for shared UI packages distributed with Yarn workspaces. -- `@tach/video-player/core` -- `@tach/video-player/react` -- `@tach/video-player/angular` +External projects install these packages directly from Git tags. Package `dist/` artifacts must be committed. -This folder is prepared to be moved into a dedicated repository as-is. +## Structure -## What Is Included +- `packages/tach-typography` - typography tokens and adapters for React/Angular. +- `packages/video-player` - cross-framework video player runtime and adapters. +- `packages/content-suggestions` - content text/title with mention/tag/link parsing for React/Angular. -- Build pipeline to `dist/`: - - `npm run build` - - `npm run typecheck` -- Storybook playground for framework entrypoints: - - `npm run storybook` - - `npm run build-storybook` -- `dist`-first flow for git-based installation: - - `dist/` is committed to the repository. - - consumers do not depend on `prepare` at install time. -- Version bump scripts: - - `npm run release:patch` - - `npm run release:minor` - - `npm run release:major` -- Optional framework peers: - - React peers are optional if only `core/angular` is used. - - Angular peers are optional if only `core/react` is used. +## Package READMEs -## Repo Transfer Checklist +- [tach-typography](./packages/tach-typography/README.md) +- [video-player](./packages/video-player/README.md) +- [content-suggestions](./packages/content-suggestions/README.md) -1. Create a new repository (for example `tach/video-player`). -2. Copy everything from this folder to the new repo root. -3. In the new repo run: +## Development ```bash -npm install -npm run build +corepack enable +yarn set version 4.12.0 +yarn install +yarn build +yarn test ``` -4. Commit and push (including `dist/`): +## Add a new package + +1. Create a folder inside `packages/`. +2. Add `package.json` with a unique package name. +3. Link internal dependencies with `workspace:*` (or `workspace:^`). +4. Run `yarn install` and then `yarn build`. + +## Installation from Git (SSH) + +This repository is consumed by tag-based Git dependencies. + +- Full install guide: [docs/git-installation.md](./docs/git-installation.md) +- Release workflow: [docs/release-policy.md](./docs/release-policy.md) + +Command template: ```bash -git add . -git commit -m "feat: initial @tach/video-player package" -git push origin main +yarn add "@hublib-web/@git+ssh://git@github.com/ORG/REPO.git#workspace=@hublib-web/&tag=-vX.Y.Z" ``` -5. Create a release tag: +## Releases -```bash -git tag v0.1.0 -git push origin v0.1.0 -``` +Releases are done with Git tags (no Changesets, no npm publish). -## Build Output +Short flow: -`npm run build` compiles TypeScript into `dist/` and copies required assets (`css/scss/svg/...`). -`dist/` must be committed before creating a new version tag. +1. Bump version in `packages//package.json`. +2. Build package and commit updated `dist/` artifacts. +3. Create an annotated package tag: `-vX.Y.Z`. +4. Push commit and tags to origin. -Entrypoints are exported from `dist`: - -- `@tach/video-player/core` -- `@tach/video-player/react` -- `@tach/video-player/angular` - -## Storybook - -Local Storybook exposes two pages for development and prop testing: - -- `React/VideoPlayer` - React component entrypoint with controls for player props. -- `Angular/VideoPlayerAdapter` - adapter entrypoint with controls for runtime options (`attach/update`). - -Run Storybook: - -```bash -npm run storybook -``` - -Build static Storybook: - -```bash -npm run build-storybook -``` - -## Installation From Git (Without npm Registry) - -### npm - -By tag: - -```bash -npm i git+ssh://git@github.com//video-player.git#v0.1.0 -``` - -By commit: - -```bash -npm i git+ssh://git@github.com//video-player.git# -``` - -By semver tag range: - -```bash -npm i github:/video-player#semver:^0.1.0 -``` - -### pnpm - -```bash -pnpm add git+ssh://git@github.com//video-player.git#v0.1.0 -``` - -### yarn - -```bash -yarn add git+ssh://git@github.com//video-player.git#v0.1.0 -``` - -## Versioning Workflow - -1. Build and bump version: - -```bash -npm run release:patch -# or release:minor / release:major -``` - -2. Commit generated `dist` changes and `package.json` version bump: - -```bash -git add . -git commit -m "chore(release): vX.Y.Z" -``` - -3. Push commit and tags: - -```bash -git push origin main --follow-tags -``` - -4. Consumers update git tag/version in their `package.json`. - -## Why Optional Peers - -Consumers install only the framework they need: - -- React app: install `react` and `react-dom`, use `@tach/video-player/react`. -- Angular app: install `@angular/*`, use `@tach/video-player/angular`. -- Shared utilities only: use `@tach/video-player/core`. - -## Entrypoints - -### Core - -```ts -import { - isHlsSource, - selectPlaybackEngine, - VideoPlayerRuntime, - setVideoPlayerTokenProvider, -} from "@tach/video-player/core"; - -setVideoPlayerTokenProvider(async () => { - // Provide host-app token retrieval here. - return null; -}); - -const runtime = new VideoPlayerRuntime(); -await runtime.init({ - container: document.getElementById("player")!, - source: { src: "https://example.com/video.m3u8" }, -}); -``` - -### React - -```tsx -import VideoPlayer from "@tach/video-player/react"; -``` - -### Angular - -```ts -import { AngularVideoPlayerAdapter } from "@tach/video-player/angular"; - -const adapter = new AngularVideoPlayerAdapter(); -await adapter.attach(containerElement, { - source: { src: "https://example.com/video.m3u8" }, -}); -``` - -`AngularVideoPlayerAdapter` is intentionally framework-light: it wraps `VideoPlayerRuntime` (`attach/update/destroy/on`) and does not depend on React code. +Detailed policy and examples: [docs/release-policy.md](./docs/release-policy.md). diff --git a/dist/react/video-player/components/qr-scanner/index.d.ts b/dist/react/video-player/components/qr-scanner/index.d.ts deleted file mode 100644 index 87c0980..0000000 --- a/dist/react/video-player/components/qr-scanner/index.d.ts +++ /dev/null @@ -1,25 +0,0 @@ -import React from "react"; -import Player from "video.js/dist/types/player"; -interface VideoQRScannerPluginProps { - player: Player | null; - enabled?: boolean; - /** - * Интервал между запусками сканирования в миллисекундах. - * По умолчанию 200 мс. - */ - scanInterval?: number; - /** - * Масштаб для сканирования (0 < scanningScale <= 1). - * Значение меньше 1 уменьшает разрешение для ускорения обработки. - * По умолчанию 1. - */ - scanningScale?: number; - /** - * Количество неудачных попыток обнаружения QR-кода до снятия маски. - * По умолчанию 2.a - */ - maxFailedAttempts?: number; -} -declare const VideoQRScannerPlugin: React.FC; -export default VideoQRScannerPlugin; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/dist/react/video-player/components/qr-scanner/index.d.ts.map b/dist/react/video-player/components/qr-scanner/index.d.ts.map deleted file mode 100644 index 428bc82..0000000 --- a/dist/react/video-player/components/qr-scanner/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/react/video-player/components/qr-scanner/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAKxE,OAAO,MAAM,MAAM,4BAA4B,CAAC;AAIhD,UAAU,yBAAyB;IAClC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,QAAA,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAqR7D,CAAC;AAEF,eAAe,oBAAoB,CAAC"} \ No newline at end of file diff --git a/dist/react/video-player/components/qr-scanner/index.js b/dist/react/video-player/components/qr-scanner/index.js deleted file mode 100644 index a745b7c..0000000 --- a/dist/react/video-player/components/qr-scanner/index.js +++ /dev/null @@ -1,209 +0,0 @@ -import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime"; -import { useCallback, useEffect, useRef, useState } from "react"; -import { createPortal } from "react-dom"; -import { Popover } from "antd"; -import QrScanner from "qr-scanner"; -import { CloseOutlined } from "@ant-design/icons"; -const VideoQRScannerPlugin = ({ player, enabled = true, scanInterval = 200, scanningScale = 1, maxFailedAttempts = 2, }) => { - const canvasRef = useRef(null); - const [detectedQr, setDetectedQr] = useState(null); - const animationFrameRef = useRef(null); - const ignoredQRCodes = useRef(new Set()); - const [playerEl, setPlayerEl] = useState(null); - const lastScanTimeRef = useRef(0); - const isScanningRef = useRef(false); - // Счётчик неудачных попыток обнаружения QR, если код уже отображается - const failedAttemptsRef = useRef(0); - // Для получения актуального значения detectedQr внутри асинхронного колбэка - const detectedQrRef = useRef(null); - useEffect(() => { - detectedQrRef.current = detectedQr; - }, [detectedQr]); - // Изначально устанавливаем контейнер для портала как элемент плеера - useEffect(() => { - if (player) { - setPlayerEl(player.el()); - } - }, [player]); - // Обновление контейнера при переходе в полноэкранный режим - useEffect(() => { - const handleFullscreenChange = () => { - if (document.fullscreenElement) { - setPlayerEl(document.fullscreenElement); - } - else if (player) { - setPlayerEl(player.el()); - } - }; - document.addEventListener("fullscreenchange", handleFullscreenChange); - return () => { - document.removeEventListener("fullscreenchange", handleFullscreenChange); - }; - }, [player]); - const scanFrame = useCallback(async () => { - if (!player || player.paused() || !canvasRef.current || !enabled) - return; - const now = performance.now(); - if (now - lastScanTimeRef.current < scanInterval) { - animationFrameRef.current = requestAnimationFrame(scanFrame); - return; - } - lastScanTimeRef.current = now; - // Предотвращаем параллельное выполнение сканирования - if (isScanningRef.current) { - animationFrameRef.current = requestAnimationFrame(scanFrame); - return; - } - isScanningRef.current = true; - const videoEl = player.tech(true).el(); - const canvas = canvasRef.current; - const ctx = canvas.getContext("2d"); - if (!ctx) { - isScanningRef.current = false; - return; - } - // Получаем оригинальные размеры видео - const originalVideoWidth = videoEl.videoWidth; - const originalVideoHeight = videoEl.videoHeight; - // Устанавливаем canvas с пониженным разрешением для сканирования - canvas.width = originalVideoWidth * scanningScale; - canvas.height = originalVideoHeight * scanningScale; - // Рисуем видео в canvas с пониженным разрешением - ctx.drawImage(videoEl, 0, 0, canvas.width, canvas.height); - try { - const result = await QrScanner.scanImage(canvas, { - returnDetailedScanResult: true, - }); - if (result && - result.data && - result.cornerPoints?.length === 4 && - !ignoredQRCodes.current.has(result.data)) { - // Сброс неудачных попыток при успешном обнаружении - failedAttemptsRef.current = 0; - // Преобразуем координаты из масштабированного canvas в координаты оригинального видео - const points = result.cornerPoints.map(p => ({ - x: p.x / scanningScale, - y: p.y / scanningScale, - })); - const minX = Math.min(...points.map(p => p.x)); - const minY = Math.min(...points.map(p => p.y)); - const maxX = Math.max(...points.map(p => p.x)); - const maxY = Math.max(...points.map(p => p.y)); - // Получаем размеры отображаемого видео - const rect = videoEl.getBoundingClientRect(); - const displayScale = Math.min(rect.width / originalVideoWidth, rect.height / originalVideoHeight); - const offsetX = (rect.width - originalVideoWidth * displayScale) / 2; - const offsetY = (rect.height - originalVideoHeight * displayScale) / 2; - const qrWidth = (maxX - minX) * displayScale; - const qrHeight = (maxY - minY) * displayScale; - const padding = 8; - const x = minX * displayScale + offsetX - padding; - const y = minY * displayScale + offsetY - padding; - setDetectedQr({ - data: result.data, - position: new DOMRect(x, y, qrWidth + padding * 2, qrHeight + padding * 2), - }); - } - else { - // Если код не найден, и он уже отображался, даем maxFailedAttempts попыток - if (detectedQrRef.current) { - failedAttemptsRef.current += 1; - if (failedAttemptsRef.current >= maxFailedAttempts) { - setDetectedQr(null); - failedAttemptsRef.current = 0; - } - } - } - } - catch (error) { - // В случае ошибки аналогичная логика: если код уже отображался — даем maxFailedAttempts попыток - if (detectedQrRef.current) { - failedAttemptsRef.current += 1; - if (failedAttemptsRef.current >= maxFailedAttempts) { - setDetectedQr(null); - failedAttemptsRef.current = 0; - } - } - } - finally { - isScanningRef.current = false; - } - animationFrameRef.current = requestAnimationFrame(scanFrame); - }, [player, enabled, scanInterval, scanningScale, maxFailedAttempts]); - useEffect(() => { - if (!player || !enabled) - return; - const startScanning = () => { - if (animationFrameRef.current) - cancelAnimationFrame(animationFrameRef.current); - animationFrameRef.current = requestAnimationFrame(scanFrame); - }; - const stopScanning = () => { - if (animationFrameRef.current) { - cancelAnimationFrame(animationFrameRef.current); - animationFrameRef.current = null; - } - setDetectedQr(null); - }; - player.on("play", startScanning); - player.on("pause", stopScanning); - player.on("ended", stopScanning); - window.addEventListener("resize", startScanning); - return () => { - stopScanning(); - player.off("play", startScanning); - player.off("pause", stopScanning); - player.off("ended", stopScanning); - window.removeEventListener("resize", startScanning); - }; - }, [player, enabled, scanFrame]); - const ignoreQRCode = () => { - if (detectedQr) { - ignoredQRCodes.current.add(detectedQr.data); - setDetectedQr(null); - } - }; - return (_jsxs(_Fragment, { children: [_jsx("canvas", { ref: canvasRef, style: { display: "none" } }), detectedQr && - playerEl && - createPortal(_jsx(Popover, { getPopupContainer: () => playerEl, content: _jsx("a", { href: detectedQr.data, target: "_blank", rel: "noreferrer", referrerPolicy: "no-referrer", style: { color: "#1677ff" }, children: detectedQr.data }), placement: "top", children: _jsxs("div", { style: { - position: "absolute", - left: detectedQr.position.x, - top: detectedQr.position.y, - width: detectedQr.position.width, - height: detectedQr.position.height, - pointerEvents: "auto", - cursor: "pointer", - zIndex: 10, - }, children: [["top-left", "top-right", "bottom-left", "bottom-right"].map(corner => (_jsx("div", { style: { - position: "absolute", - width: 20, - height: 20, - border: "3px solid var(--Accent-Primary)", - borderRadius: 4, - ...(corner.includes("top") ? { top: 0 } : { bottom: 0 }), - ...(corner.includes("left") ? { left: 0 } : { right: 0 }), - borderTop: corner.includes("bottom") - ? "none" - : "3px solid var(--Accent-Primary)", - borderBottom: corner.includes("top") - ? "none" - : "3px solid var(--Accent-Primary)", - borderLeft: corner.includes("right") - ? "none" - : "3px solid var(--Accent-Primary)", - borderRight: corner.includes("left") - ? "none" - : "3px solid var(--Accent-Primary)", - } }, corner))), _jsx(CloseOutlined, { style: { - color: "#ff4d4f", - position: "absolute", - top: "-8px", - right: "-8px", - background: "white", - borderRadius: "50%", - padding: "2px", - cursor: "pointer", - }, onClick: ignoreQRCode })] }) }), playerEl)] })); -}; -export default VideoQRScannerPlugin; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/react/video-player/components/qr-scanner/index.js.map b/dist/react/video-player/components/qr-scanner/index.js.map deleted file mode 100644 index 0d2182f..0000000 --- a/dist/react/video-player/components/qr-scanner/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/react/video-player/components/qr-scanner/index.tsx"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/react/video-player/components/video-js/plugins/settings/index.d.ts.map b/dist/react/video-player/components/video-js/plugins/settings/index.d.ts.map deleted file mode 100644 index 859fa30..0000000 --- a/dist/react/video-player/components/video-js/plugins/settings/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/react/video-player/components/video-js/plugins/settings/index.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,+BAA+B,CAAC;AAEtD,OAAO,MAAM,MAAM,4BAA4B,CAAC;AAYhD,OAAO,gBAAgB,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,UAAU,qBAAqB;CAE9B;AAGD,UAAU,oBAAqB,SAAQ,aAAa;IACnD,UAAU,EAAE,SAAS,CAAC;CACtB;AAED,QAAA,MAAM,UAAU,EAAmC,OAAO,MAAM,CAAC;AAKjE,cAAM,cAAe,SAAQ,UAAU;IACtC,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,cAAc,CAAa;IAGnC,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,kBAAkB,CAA6B;IACvD,OAAO,CAAC,iBAAiB,CAA6B;IACtD,OAAO,CAAC,iBAAiB,CAA6B;IACtD,OAAO,CAAC,gBAAgB,CAA6B;gBAEzC,MAAM,EAAE,oBAAoB,EAAE,OAAO,EAAE,qBAAqB;IAMxE;;OAEG;IACH,OAAO,CAAC,UAAU;IAKlB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAKxB;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IA8D5B;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAInB;;;;;;OAMG;YACW,OAAO;CA8CrB;AAID,eAAe,cAAc,CAAC"} \ No newline at end of file diff --git a/dist/react/video-player/components/video-js/plugins/settings/selectors/text-track-selector/index.d.ts.map b/dist/react/video-player/components/video-js/plugins/settings/selectors/text-track-selector/index.d.ts.map deleted file mode 100644 index d6ee308..0000000 --- a/dist/react/video-player/components/video-js/plugins/settings/selectors/text-track-selector/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/react/video-player/components/video-js/plugins/settings/selectors/text-track-selector/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAS3D,UAAU,kBAAmB,SAAQ,yBAAyB;CAAG;AAEjE,QAAA,MAAM,UAAU,GACf,QAAQ,aAAa,EACrB,UAAS,kBAA6B;;;;;;;;;;;;;;;CAgDtC,CAAC;AAEF,eAAe,UAAU,CAAC"} \ No newline at end of file diff --git a/dist/react/video-player/components/video-js/plugins/settings/selectors/text-track-selector/index.js.map b/dist/react/video-player/components/video-js/plugins/settings/selectors/text-track-selector/index.js.map deleted file mode 100644 index 2e05948..0000000 --- a/dist/react/video-player/components/video-js/plugins/settings/selectors/text-track-selector/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../../src/react/video-player/components/video-js/plugins/settings/selectors/text-track-selector/index.ts"],"names":[],"mappings":"AAGA,MAAM,QAAQ,GAAG;IAChB,KAAK,EAAE,UAAU;IACjB,QAAQ,EAAE,KAAK;IACf,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE,eAAe;CAC1B,CAAC;AAIF,MAAM,UAAU,GAAG,CAClB,MAAqB,EACrB,UAA8B,QAAQ,EACrC,EAAE;IACH,MAAM,SAAS,GAAG,GAAG,EAAE;QACtB,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC;QAC/C,MAAM,UAAU,GAAG,EAAE,CAAC;QAEtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;YAC7C,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACrC,SAAS;YACV,CAAC;YAED,MAAM,SAAS,GAAG;gBACjB,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK;gBAC1B,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK;gBAC1B,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS;gBAC1C,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;aACtC,CAAC;YAEF,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5B,CAAC;QAED,OAAO,UAAU,CAAC;IACnB,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,CAAC,KAAgB,EAAE,EAAE;QACrC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC;QAE/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;YAC7C,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACrC,SAAS;YACV,CAAC;YAED,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK;gBAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC;;gBACnE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,UAAU,CAAC;QACtC,CAAC;IACF,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,GAAG,EAAE;QACrB,OAAO;YACN,GAAG,OAAO;YACV,OAAO,EAAE,SAAS,EAAE,CAAC,MAAM,GAAG,CAAC;SAC/B,CAAC;IACH,CAAC,CAAC;IAEF,OAAO;QACN,SAAS;QACT,QAAQ;KACR,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC"} \ No newline at end of file diff --git a/dist/react/video-player/components/video-js/types.d.ts b/dist/react/video-player/components/video-js/types.d.ts deleted file mode 100644 index c8f913b..0000000 --- a/dist/react/video-player/components/video-js/types.d.ts +++ /dev/null @@ -1,51 +0,0 @@ -import Player from "video.js/dist/types/player"; -import { SkipButtonsOptions } from "./plugins/skip-buttons"; -export interface IVideoJSSource { - src: string; - type: string; -} -export type PreloadType = "auto" | "metadata" | "none" | "visibility"; -export interface IVideoJSOptions { - autoplay: boolean; - controls: boolean; - responsive: boolean; - aspectRatio?: string; - preload: PreloadType; - fluid: boolean; - muted: boolean; - sources: IVideoJSSource[]; - poster?: string; - preferHQ?: boolean; - /** Включить детальное логирование */ - debug?: boolean; -} -export interface IVideoJSProps { - options: IVideoJSOptions; - onReady?: (player: VideoJsPlayer) => void; - className?: string; - classNames?: string[]; - initialTime?: number; - full?: boolean; - withRewind?: boolean; -} -export interface VideoJsLiveTracker { - isLive_: boolean; - atLiveEdge?: () => boolean; - startTracking: () => void; - trigger: (event: string) => void; -} -export type VideoJsPlayer = Player & { - liveTracker?: VideoJsLiveTracker; - settingsMenu?: () => void; - mobileUi?: () => void; - bigPlayPauseButton?: () => void; - skipButtons?: (options: SkipButtonsOptions) => void; - subscribeToSegmentChange: (callback: (segment: any) => void) => void; - subscribeToDuration: (callback: (duration: number) => void) => void; - subscribeToPlayStart: (callback: () => void) => void; - subscribeToPlayStarted: (callback: () => void) => void; - subscribeToManifestLoaded: (callback: () => void) => void; - mediaduration: () => number | undefined; - textTracks: () => TextTrack[]; -}; -//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/dist/react/video-player/components/video-js/types.d.ts.map b/dist/react/video-player/components/video-js/types.d.ts.map deleted file mode 100644 index 0d15b28..0000000 --- a/dist/react/video-player/components/video-js/types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/react/video-player/components/video-js/types.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,4BAA4B,CAAC;AAEhD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,MAAM,WAAW,cAAc;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACb;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,YAAY,CAAC;AAEtE,MAAM,WAAW,eAAe;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qCAAqC;IACrC,KAAK,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC7B,OAAO,EAAE,eAAe,CAAC;IACzB,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,CAAC;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC;IAC3B,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAGD,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG;IACpC,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACpD,wBAAwB,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,KAAK,IAAI,CAAC;IACrE,mBAAmB,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,KAAK,IAAI,CAAC;IACpE,oBAAoB,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IACrD,sBAAsB,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IACvD,yBAAyB,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IAC1D,aAAa,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IACxC,UAAU,EAAE,MAAM,SAAS,EAAE,CAAC;CAC9B,CAAC"} \ No newline at end of file diff --git a/dist/react/video-player/components/with-errors/index.js.map b/dist/react/video-player/components/with-errors/index.js.map deleted file mode 100644 index b8d85be..0000000 --- a/dist/react/video-player/components/with-errors/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/react/video-player/components/with-errors/index.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAMrD,OAAO,UAAU,MAAM,eAAe,CAAC;AACvC,OAAO,MAAM,MAAM,2BAA2B,CAAC;AAO/C,MAAM,UAAU,GAAG,CAAC,EACnB,UAAU,GAAG,KAAK,EAClB,QAAQ,EACR,GAAG,KAAK,EACqB,EAAE,EAAE;IAEjC,OAAO,CACN,eACC,SAAS,EAAE,MAAM,CAAC,SAAS,EAC3B,KAAK,EAAE,EAAE,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,aAEhD,UAAU,IAAI,KAAC,UAAU,IAAC,SAAS,EAAE,MAAM,CAAC,MAAM,GAAI,EACtD,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC,IACtC,CACN,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC"} \ No newline at end of file diff --git a/dist/react/video-player/components/with-mouse-events/index.d.ts.map b/dist/react/video-player/components/with-mouse-events/index.d.ts.map deleted file mode 100644 index 379310d..0000000 --- a/dist/react/video-player/components/with-mouse-events/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/react/video-player/components/with-mouse-events/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAIjC,OAAO,MAAM,MAAM,4BAA4B,CAAC;AAEhD,OAAO,EAAE,aAAa,EAAiB,MAAM,mBAAmB,CAAC;AAGjE,MAAM,WAAW,qBAAsB,SAAQ,aAAa;IAC3D,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC1C,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC/C,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC/C,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;CACtB;AAED,eAAO,MAAM,eAAe,GAAI,sEAO7B,qBAAqB,4CAkEvB,CAAC"} \ No newline at end of file diff --git a/dist/react/video-player/components/with-observation/index.d.ts.map b/dist/react/video-player/components/with-observation/index.d.ts.map deleted file mode 100644 index 454019e..0000000 --- a/dist/react/video-player/components/with-observation/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/react/video-player/components/with-observation/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAKjC,OAAO,MAAM,MAAM,4BAA4B,CAAC;AAGhD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAG7D,MAAM,WAAW,qBAAsB,SAAQ,qBAAqB;IACnE,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACzC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACzC,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;CACtB;AAED,eAAO,MAAM,eAAe,GAAI,iDAM7B,qBAAqB,4CAsDvB,CAAC"} \ No newline at end of file diff --git a/docs/git-installation.md b/docs/git-installation.md new file mode 100644 index 0000000..c3fd482 --- /dev/null +++ b/docs/git-installation.md @@ -0,0 +1,43 @@ +# Git installation (SSH + tags) + +This repository is consumed directly from Git tags, not from npm. + +## Requirements + +- You have SSH access to the repository (`git@github.com:ORG/REPO.git`). +- Release tags already exist in remote. +- `dist/` is committed in the tagged commit. + +## Tag naming + +Use package-specific tags: + +- `tach-typography-vX.Y.Z` +- `video-player-vX.Y.Z` +- `content-suggestions-vX.Y.Z` + +## Yarn template + +Always wrap the dependency string in quotes because of `&tag=`. + +```bash +yarn add "@hublib-web/@git+ssh://git@github.com/ORG/REPO.git#workspace=@hublib-web/&tag=-vX.Y.Z" +``` + +## Package examples + +```bash +yarn add "@hublib-web/tach-typography@git+ssh://git@github.com/ORG/REPO.git#workspace=@hublib-web/tach-typography&tag=tach-typography-v0.1.0" +yarn add "@hublib-web/video-player@git+ssh://git@github.com/ORG/REPO.git#workspace=@hublib-web/video-player&tag=video-player-v0.1.0" +yarn add "@hublib-web/content-suggestions@git+ssh://git@github.com/ORG/REPO.git#workspace=@hublib-web/content-suggestions&tag=content-suggestions-v0.1.0" +``` + +## Update package version in a consumer app + +```bash +yarn up "@hublib-web/video-player@git+ssh://git@github.com/ORG/REPO.git#workspace=@hublib-web/video-player&tag=video-player-v0.2.0" +``` + +## Related docs + +- Release policy: [release-policy.md](./release-policy.md) diff --git a/docs/release-policy.md b/docs/release-policy.md new file mode 100644 index 0000000..00e950a --- /dev/null +++ b/docs/release-policy.md @@ -0,0 +1,54 @@ +# Release policy + +This monorepo is released through Git tags. We do not use Changesets or npm publish. + +## Principles + +- Every release points to a commit where the package `dist/` is already built and committed. +- Tags are package-specific, so each package can be released independently. +- Consumers install by tag using Git SSH URLs. + +## Tag format + +- `tach-typography-vX.Y.Z` +- `video-player-vX.Y.Z` +- `content-suggestions-vX.Y.Z` + +`X.Y.Z` must match the version in the package's `package.json`. + +## Release checklist (single package) + +1. Update package version in `packages//package.json`. +2. Build package: + +```bash +yarn workspace @hublib-web/ build +``` + +3. Verify that `dist/` and `package.json` contain the release changes. +4. Commit release files: + +```bash +git add packages//package.json packages//dist +git commit -m "release(): vX.Y.Z" +``` + +5. Create annotated tag: + +```bash +git tag -a -vX.Y.Z -m "@hublib-web/ vX.Y.Z" +``` + +6. Push commit and tags: + +```bash +git push origin main --follow-tags +``` + +## Multi-package release + +If one commit releases several packages, create one tag per package on the same commit. + +## Consumer installation + +Use the package-specific tag in dependency spec. See [git-installation.md](./git-installation.md). diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 0000000..a29f06e --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,18 @@ +import js from "@eslint/js"; + +export default [ + js.configs.recommended, + { + files: ["**/*.ts", "**/*.tsx"], + languageOptions: { + ecmaVersion: "latest", + sourceType: "module", + }, + rules: { + "no-unused-vars": ["warn", { "argsIgnorePattern": "^_" }], + }, + }, + { + ignores: ["**/dist/**", "**/node_modules/**"], + }, +]; diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index d647c4c..0000000 --- a/package-lock.json +++ /dev/null @@ -1,5994 +0,0 @@ -{ - "name": "@tach/video-player", - "version": "0.1.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "@tach/video-player", - "version": "0.1.0", - "dependencies": { - "@ant-design/icons": "5.3.7", - "antd": "5.14.2", - "classnames": "2.5.1", - "hls.js": "1.6.14", - "lodash": "4.17.21", - "qr-scanner": "1.4.2", - "react-device-detect": "2.2.3", - "video.js": "8.23.4" - }, - "devDependencies": { - "@storybook/addon-essentials": "8.6.14", - "@storybook/react": "8.6.14", - "@storybook/react-vite": "8.6.14", - "@types/node": "22.12.0", - "@types/react": "19.0.2", - "@types/react-dom": "19.0.2", - "react": "19.0.0", - "react-dom": "19.0.0", - "sass": "1.83.4", - "storybook": "8.6.14", - "typescript": "5.9.2", - "vite": "5.4.14" - }, - "peerDependencies": { - "@angular/common": "^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0", - "@angular/core": "^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0", - "@angular/forms": "^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0", - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@angular/common": { - "optional": true - }, - "@angular/core": { - "optional": true - }, - "@angular/forms": { - "optional": true - }, - "react": { - "optional": true - }, - "react-dom": { - "optional": true - } - } - }, - "node_modules/@ant-design/colors": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-7.2.1.tgz", - "integrity": "sha512-lCHDcEzieu4GA3n8ELeZ5VQ8pKQAWcGGLRTQ50aQM2iqPpq2evTxER84jfdPvsPAtEcZ7m44NI45edFMo8oOYQ==", - "license": "MIT", - "dependencies": { - "@ant-design/fast-color": "^2.0.6" - } - }, - "node_modules/@ant-design/cssinjs": { - "version": "1.24.0", - "resolved": "https://registry.npmjs.org/@ant-design/cssinjs/-/cssinjs-1.24.0.tgz", - "integrity": "sha512-K4cYrJBsgvL+IoozUXYjbT6LHHNt+19a9zkvpBPxLjFHas1UpPM2A5MlhROb0BT8N8WoavM5VsP9MeSeNK/3mg==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.11.1", - "@emotion/hash": "^0.8.0", - "@emotion/unitless": "^0.7.5", - "classnames": "^2.3.1", - "csstype": "^3.1.3", - "rc-util": "^5.35.0", - "stylis": "^4.3.4" - }, - "peerDependencies": { - "react": ">=16.0.0", - "react-dom": ">=16.0.0" - } - }, - "node_modules/@ant-design/fast-color": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@ant-design/fast-color/-/fast-color-2.0.6.tgz", - "integrity": "sha512-y2217gk4NqL35giHl72o6Zzqji9O7vHh9YmhUVkPtAOpoTCH4uWxo/pr4VE8t0+ChEPs0qo4eJRC5Q1eXWo3vA==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.24.7" - }, - "engines": { - "node": ">=8.x" - } - }, - "node_modules/@ant-design/icons": { - "version": "5.3.7", - "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-5.3.7.tgz", - "integrity": "sha512-bCPXTAg66f5bdccM4TT21SQBDO1Ek2gho9h3nO9DAKXJP4sq+5VBjrQMSxMVXSB3HyEz+cUbHQ5+6ogxCOpaew==", - "license": "MIT", - "dependencies": { - "@ant-design/colors": "^7.0.0", - "@ant-design/icons-svg": "^4.4.0", - "@babel/runtime": "^7.11.2", - "classnames": "^2.2.6", - "rc-util": "^5.31.1" - }, - "engines": { - "node": ">=8" - }, - "peerDependencies": { - "react": ">=16.0.0", - "react-dom": ">=16.0.0" - } - }, - "node_modules/@ant-design/icons-svg": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/@ant-design/icons-svg/-/icons-svg-4.4.2.tgz", - "integrity": "sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==", - "license": "MIT" - }, - "node_modules/@ant-design/react-slick": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@ant-design/react-slick/-/react-slick-1.0.2.tgz", - "integrity": "sha512-Wj8onxL/T8KQLFFiCA4t8eIRGpRR+UPgOdac2sYzonv+i0n3kXHmvHLLiOYL655DQx2Umii9Y9nNgL7ssu5haQ==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.10.4", - "classnames": "^2.2.5", - "json2mq": "^0.2.0", - "resize-observer-polyfill": "^1.5.1", - "throttle-debounce": "^5.0.0" - }, - "peerDependencies": { - "react": ">=16.9.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", - "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.28.5", - "js-tokens": "^4.0.0", - "picocolors": "^1.1.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz", - "integrity": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz", - "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.29.0", - "@babel/generator": "^7.29.0", - "@babel/helper-compilation-targets": "^7.28.6", - "@babel/helper-module-transforms": "^7.28.6", - "@babel/helpers": "^7.28.6", - "@babel/parser": "^7.29.0", - "@babel/template": "^7.28.6", - "@babel/traverse": "^7.29.0", - "@babel/types": "^7.29.0", - "@jridgewell/remapping": "^2.3.5", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/generator": { - "version": "7.29.1", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz", - "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.29.0", - "@babel/types": "^7.29.0", - "@jridgewell/gen-mapping": "^0.3.12", - "@jridgewell/trace-mapping": "^0.3.28", - "jsesc": "^3.0.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz", - "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.28.6", - "@babel/helper-validator-option": "^7.27.1", - "browserslist": "^4.24.0", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/@babel/helper-globals": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", - "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz", - "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.28.6", - "@babel/types": "^7.28.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz", - "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.28.6", - "@babel/helper-validator-identifier": "^7.28.5", - "@babel/traverse": "^7.28.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", - "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", - "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", - "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.6.tgz", - "integrity": "sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.28.6", - "@babel/types": "^7.28.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.0.tgz", - "integrity": "sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.29.0" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.6.tgz", - "integrity": "sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz", - "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.28.6", - "@babel/parser": "^7.28.6", - "@babel/types": "^7.28.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz", - "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.29.0", - "@babel/generator": "^7.29.0", - "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.29.0", - "@babel/template": "^7.28.6", - "@babel/types": "^7.29.0", - "debug": "^4.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", - "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.28.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@ctrl/tinycolor": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz", - "integrity": "sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/@emotion/hash": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", - "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==", - "license": "MIT" - }, - "node_modules/@emotion/unitless": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", - "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==", - "license": "MIT" - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", - "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", - "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", - "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", - "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", - "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", - "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", - "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", - "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", - "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", - "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", - "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", - "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", - "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", - "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", - "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", - "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", - "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", - "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", - "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", - "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", - "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openharmony-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", - "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", - "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", - "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", - "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", - "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@joshwooding/vite-plugin-react-docgen-typescript": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@joshwooding/vite-plugin-react-docgen-typescript/-/vite-plugin-react-docgen-typescript-0.5.0.tgz", - "integrity": "sha512-qYDdL7fPwLRI+bJNurVcis+tNgJmvWjH4YTBGXTA8xMuxFrnAz6E5o35iyzyKbq5J5Lr8mJGfrR5GXl+WGwhgQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "glob": "^10.0.0", - "magic-string": "^0.27.0", - "react-docgen-typescript": "^2.2.2" - }, - "peerDependencies": { - "typescript": ">= 4.3.x", - "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@joshwooding/vite-plugin-react-docgen-typescript/node_modules/magic-string": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", - "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.13" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", - "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "node_modules/@jridgewell/remapping": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", - "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", - "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", - "dev": true, - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.31", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", - "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@mdx-js/react": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.1.1.tgz", - "integrity": "sha512-f++rKLQgUVYDAtECQ6fn/is15GkEH9+nZPM3MS0RcxVqoTfawHvDlSCH7JbMhAM6uJ32v3eXLvLmLvjGu7PTQw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mdx": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - }, - "peerDependencies": { - "@types/react": ">=16", - "react": ">=16" - } - }, - "node_modules/@parcel/watcher": { - "version": "2.5.6", - "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.6.tgz", - "integrity": "sha512-tmmZ3lQxAe/k/+rNnXQRawJ4NjxO2hqiOLTHvWchtGZULp4RyFeh6aU4XdOYBFe2KE1oShQTv4AblOs2iOrNnQ==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "dependencies": { - "detect-libc": "^2.0.3", - "is-glob": "^4.0.3", - "node-addon-api": "^7.0.0", - "picomatch": "^4.0.3" - }, - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "optionalDependencies": { - "@parcel/watcher-android-arm64": "2.5.6", - "@parcel/watcher-darwin-arm64": "2.5.6", - "@parcel/watcher-darwin-x64": "2.5.6", - "@parcel/watcher-freebsd-x64": "2.5.6", - "@parcel/watcher-linux-arm-glibc": "2.5.6", - "@parcel/watcher-linux-arm-musl": "2.5.6", - "@parcel/watcher-linux-arm64-glibc": "2.5.6", - "@parcel/watcher-linux-arm64-musl": "2.5.6", - "@parcel/watcher-linux-x64-glibc": "2.5.6", - "@parcel/watcher-linux-x64-musl": "2.5.6", - "@parcel/watcher-win32-arm64": "2.5.6", - "@parcel/watcher-win32-ia32": "2.5.6", - "@parcel/watcher-win32-x64": "2.5.6" - } - }, - "node_modules/@parcel/watcher-android-arm64": { - "version": "2.5.6", - "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.6.tgz", - "integrity": "sha512-YQxSS34tPF/6ZG7r/Ih9xy+kP/WwediEUsqmtf0cuCV5TPPKw/PQHRhueUo6JdeFJaqV3pyjm0GdYjZotbRt/A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-darwin-arm64": { - "version": "2.5.6", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.6.tgz", - "integrity": "sha512-Z2ZdrnwyXvvvdtRHLmM4knydIdU9adO3D4n/0cVipF3rRiwP+3/sfzpAwA/qKFL6i1ModaabkU7IbpeMBgiVEA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-darwin-x64": { - "version": "2.5.6", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.6.tgz", - "integrity": "sha512-HgvOf3W9dhithcwOWX9uDZyn1lW9R+7tPZ4sug+NGrGIo4Rk1hAXLEbcH1TQSqxts0NYXXlOWqVpvS1SFS4fRg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-freebsd-x64": { - "version": "2.5.6", - "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.6.tgz", - "integrity": "sha512-vJVi8yd/qzJxEKHkeemh7w3YAn6RJCtYlE4HPMoVnCpIXEzSrxErBW5SJBgKLbXU3WdIpkjBTeUNtyBVn8TRng==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm-glibc": { - "version": "2.5.6", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.6.tgz", - "integrity": "sha512-9JiYfB6h6BgV50CCfasfLf/uvOcJskMSwcdH1PHH9rvS1IrNy8zad6IUVPVUfmXr+u+Km9IxcfMLzgdOudz9EQ==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm-musl": { - "version": "2.5.6", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.6.tgz", - "integrity": "sha512-Ve3gUCG57nuUUSyjBq/MAM0CzArtuIOxsBdQ+ftz6ho8n7s1i9E1Nmk/xmP323r2YL0SONs1EuwqBp2u1k5fxg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm64-glibc": { - "version": "2.5.6", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.6.tgz", - "integrity": "sha512-f2g/DT3NhGPdBmMWYoxixqYr3v/UXcmLOYy16Bx0TM20Tchduwr4EaCbmxh1321TABqPGDpS8D/ggOTaljijOA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm64-musl": { - "version": "2.5.6", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.6.tgz", - "integrity": "sha512-qb6naMDGlbCwdhLj6hgoVKJl2odL34z2sqkC7Z6kzir8b5W65WYDpLB6R06KabvZdgoHI/zxke4b3zR0wAbDTA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-x64-glibc": { - "version": "2.5.6", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.6.tgz", - "integrity": "sha512-kbT5wvNQlx7NaGjzPFu8nVIW1rWqV780O7ZtkjuWaPUgpv2NMFpjYERVi0UYj1msZNyCzGlaCWEtzc+exjMGbQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-x64-musl": { - "version": "2.5.6", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.6.tgz", - "integrity": "sha512-1JRFeC+h7RdXwldHzTsmdtYR/Ku8SylLgTU/reMuqdVD7CtLwf0VR1FqeprZ0eHQkO0vqsbvFLXUmYm/uNKJBg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-win32-arm64": { - "version": "2.5.6", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.6.tgz", - "integrity": "sha512-3ukyebjc6eGlw9yRt678DxVF7rjXatWiHvTXqphZLvo7aC5NdEgFufVwjFfY51ijYEWpXbqF5jtrK275z52D4Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-win32-ia32": { - "version": "2.5.6", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.6.tgz", - "integrity": "sha512-k35yLp1ZMwwee3Ez/pxBi5cf4AoBKYXj00CZ80jUz5h8prpiaQsiRPKQMxoLstNuqe2vR4RNPEAEcjEFzhEz/g==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-win32-x64": { - "version": "2.5.6", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.6.tgz", - "integrity": "sha512-hbQlYcCq5dlAX9Qx+kFb0FHue6vbjlf0FrNzSKdYK2APUf7tGfGxQCk2ihEREmbR6ZMc0MVAD5RIX/41gpUzTw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@rc-component/color-picker": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@rc-component/color-picker/-/color-picker-1.5.3.tgz", - "integrity": "sha512-+tGGH3nLmYXTalVe0L8hSZNs73VTP5ueSHwUlDC77KKRaN7G4DS4wcpG5DTDzdcV/Yas+rzA6UGgIyzd8fS4cw==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.23.6", - "@ctrl/tinycolor": "^3.6.1", - "classnames": "^2.2.6", - "rc-util": "^5.38.1" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/@rc-component/context": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@rc-component/context/-/context-1.4.0.tgz", - "integrity": "sha512-kFcNxg9oLRMoL3qki0OMxK+7g5mypjgaaJp/pkOis/6rVxma9nJBF/8kCIuTYHUQNr0ii7MxqE33wirPZLJQ2w==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.10.1", - "rc-util": "^5.27.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/@rc-component/mini-decimal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@rc-component/mini-decimal/-/mini-decimal-1.1.0.tgz", - "integrity": "sha512-jS4E7T9Li2GuYwI6PyiVXmxTiM6b07rlD9Ge8uGZSCz3WlzcG5ZK7g5bbuKNeZ9pgUuPK/5guV781ujdVpm4HQ==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.18.0" - }, - "engines": { - "node": ">=8.x" - } - }, - "node_modules/@rc-component/mutate-observer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@rc-component/mutate-observer/-/mutate-observer-1.1.0.tgz", - "integrity": "sha512-QjrOsDXQusNwGZPf4/qRQasg7UFEj06XiCJ8iuiq/Io7CrHrgVi6Uuetw60WAMG1799v+aM8kyc+1L/GBbHSlw==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.18.0", - "classnames": "^2.3.2", - "rc-util": "^5.24.4" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/@rc-component/portal": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@rc-component/portal/-/portal-1.1.2.tgz", - "integrity": "sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.18.0", - "classnames": "^2.3.2", - "rc-util": "^5.24.4" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/@rc-component/tour": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/@rc-component/tour/-/tour-1.12.3.tgz", - "integrity": "sha512-U4mf1FiUxGCwrX4ed8op77Y8VKur+8Y/61ylxtqGbcSoh1EBC7bWd/DkLu0ClTUrKZInqEi1FL7YgFtnT90vHA==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.18.0", - "@rc-component/portal": "^1.0.0-9", - "@rc-component/trigger": "^1.3.6", - "classnames": "^2.3.2", - "rc-util": "^5.24.4" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/@rc-component/trigger": { - "version": "1.18.3", - "resolved": "https://registry.npmjs.org/@rc-component/trigger/-/trigger-1.18.3.tgz", - "integrity": "sha512-Ksr25pXreYe1gX6ayZ1jLrOrl9OAUHUqnuhEx6MeHnNa1zVM5Y2Aj3Q35UrER0ns8D2cJYtmJtVli+i+4eKrvA==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.23.2", - "@rc-component/portal": "^1.1.0", - "classnames": "^2.3.2", - "rc-motion": "^2.0.0", - "rc-resize-observer": "^1.3.1", - "rc-util": "^5.38.0" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/@rollup/pluginutils": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz", - "integrity": "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "estree-walker": "^2.0.2", - "picomatch": "^4.0.2" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.59.0.tgz", - "integrity": "sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.59.0.tgz", - "integrity": "sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.59.0.tgz", - "integrity": "sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.59.0.tgz", - "integrity": "sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.59.0.tgz", - "integrity": "sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.59.0.tgz", - "integrity": "sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.59.0.tgz", - "integrity": "sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.59.0.tgz", - "integrity": "sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.59.0.tgz", - "integrity": "sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.59.0.tgz", - "integrity": "sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loong64-gnu": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.59.0.tgz", - "integrity": "sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loong64-musl": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.59.0.tgz", - "integrity": "sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.59.0.tgz", - "integrity": "sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-ppc64-musl": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.59.0.tgz", - "integrity": "sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.59.0.tgz", - "integrity": "sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.59.0.tgz", - "integrity": "sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.59.0.tgz", - "integrity": "sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.59.0.tgz", - "integrity": "sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.59.0.tgz", - "integrity": "sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-openbsd-x64": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.59.0.tgz", - "integrity": "sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ] - }, - "node_modules/@rollup/rollup-openharmony-arm64": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.59.0.tgz", - "integrity": "sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.59.0.tgz", - "integrity": "sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.59.0.tgz", - "integrity": "sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-gnu": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.59.0.tgz", - "integrity": "sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.59.0.tgz", - "integrity": "sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@storybook/addon-actions": { - "version": "8.6.14", - "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-8.6.14.tgz", - "integrity": "sha512-mDQxylxGGCQSK7tJPkD144J8jWh9IU9ziJMHfB84PKpI/V5ZgqMDnpr2bssTrUaGDqU5e1/z8KcRF+Melhs9pQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/global": "^5.0.0", - "@types/uuid": "^9.0.1", - "dequal": "^2.0.2", - "polished": "^4.2.2", - "uuid": "^9.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "storybook": "^8.6.14" - } - }, - "node_modules/@storybook/addon-backgrounds": { - "version": "8.6.14", - "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-8.6.14.tgz", - "integrity": "sha512-l9xS8qWe5n4tvMwth09QxH2PmJbCctEvBAc1tjjRasAfrd69f7/uFK4WhwJAstzBTNgTc8VXI4w8ZR97i1sFbg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/global": "^5.0.0", - "memoizerific": "^1.11.3", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "storybook": "^8.6.14" - } - }, - "node_modules/@storybook/addon-controls": { - "version": "8.6.14", - "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-8.6.14.tgz", - "integrity": "sha512-IiQpkNJdiRyA4Mq9mzjZlvQugL/aE7hNgVxBBGPiIZG6wb6Ht9hNnBYpap5ZXXFKV9p2qVI0FZK445ONmAa+Cw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/global": "^5.0.0", - "dequal": "^2.0.2", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "storybook": "^8.6.14" - } - }, - "node_modules/@storybook/addon-docs": { - "version": "8.6.14", - "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-8.6.14.tgz", - "integrity": "sha512-Obpd0OhAF99JyU5pp5ci17YmpcQtMNgqW2pTXV8jAiiipWpwO++hNDeQmLmlSXB399XjtRDOcDVkoc7rc6JzdQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@mdx-js/react": "^3.0.0", - "@storybook/blocks": "8.6.14", - "@storybook/csf-plugin": "8.6.14", - "@storybook/react-dom-shim": "8.6.14", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "storybook": "^8.6.14" - } - }, - "node_modules/@storybook/addon-essentials": { - "version": "8.6.14", - "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-8.6.14.tgz", - "integrity": "sha512-5ZZSHNaW9mXMOFkoPyc3QkoNGdJHETZydI62/OASR0lmPlJ1065TNigEo5dJddmZNn0/3bkE8eKMAzLnO5eIdA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/addon-actions": "8.6.14", - "@storybook/addon-backgrounds": "8.6.14", - "@storybook/addon-controls": "8.6.14", - "@storybook/addon-docs": "8.6.14", - "@storybook/addon-highlight": "8.6.14", - "@storybook/addon-measure": "8.6.14", - "@storybook/addon-outline": "8.6.14", - "@storybook/addon-toolbars": "8.6.14", - "@storybook/addon-viewport": "8.6.14", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "storybook": "^8.6.14" - } - }, - "node_modules/@storybook/addon-highlight": { - "version": "8.6.14", - "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-8.6.14.tgz", - "integrity": "sha512-4H19OJlapkofiE9tM6K/vsepf4ir9jMm9T+zw5L85blJZxhKZIbJ6FO0TCG9PDc4iPt3L6+aq5B0X29s9zicNQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/global": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "storybook": "^8.6.14" - } - }, - "node_modules/@storybook/addon-measure": { - "version": "8.6.14", - "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-8.6.14.tgz", - "integrity": "sha512-1Tlyb72NX8aAqm6I6OICsUuGOP6hgnXcuFlXucyhKomPa6j3Eu2vKu561t/f0oGtAK2nO93Z70kVaEh5X+vaGw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/global": "^5.0.0", - "tiny-invariant": "^1.3.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "storybook": "^8.6.14" - } - }, - "node_modules/@storybook/addon-outline": { - "version": "8.6.14", - "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-8.6.14.tgz", - "integrity": "sha512-CW857JvN6OxGWElqjlzJO2S69DHf+xO3WsEfT5mT3ZtIjmsvRDukdWfDU9bIYUFyA2lFvYjncBGjbK+I91XR7w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/global": "^5.0.0", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "storybook": "^8.6.14" - } - }, - "node_modules/@storybook/addon-toolbars": { - "version": "8.6.14", - "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-8.6.14.tgz", - "integrity": "sha512-W/wEXT8h3VyZTVfWK/84BAcjAxTdtRiAkT2KAN0nbSHxxB5KEM1MjKpKu2upyzzMa3EywITqbfy4dP6lpkVTwQ==", - "dev": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "storybook": "^8.6.14" - } - }, - "node_modules/@storybook/addon-viewport": { - "version": "8.6.14", - "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-8.6.14.tgz", - "integrity": "sha512-gNzVQbMqRC+/4uQTPI2ZrWuRHGquTMZpdgB9DrD88VTEjNudP+J6r8myLfr2VvGksBbUMHkGHMXHuIhrBEnXYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "memoizerific": "^1.11.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "storybook": "^8.6.14" - } - }, - "node_modules/@storybook/blocks": { - "version": "8.6.14", - "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-8.6.14.tgz", - "integrity": "sha512-rBMHAfA39AGHgkrDze4RmsnQTMw1ND5fGWobr9pDcJdnDKWQWNRD7Nrlxj0gFlN3n4D9lEZhWGdFrCbku7FVAQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/icons": "^1.2.12", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "storybook": "^8.6.14" - }, - "peerDependenciesMeta": { - "react": { - "optional": true - }, - "react-dom": { - "optional": true - } - } - }, - "node_modules/@storybook/builder-vite": { - "version": "8.6.14", - "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-8.6.14.tgz", - "integrity": "sha512-ajWYhy32ksBWxwWHrjwZzyC0Ii5ZTeu5lsqA95Q/EQBB0P5qWlHWGM3AVyv82Mz/ND03ebGy123uVwgf6olnYQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/csf-plugin": "8.6.14", - "browser-assert": "^1.2.1", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "storybook": "^8.6.14", - "vite": "^4.0.0 || ^5.0.0 || ^6.0.0" - } - }, - "node_modules/@storybook/components": { - "version": "8.6.14", - "resolved": "https://registry.npmjs.org/@storybook/components/-/components-8.6.14.tgz", - "integrity": "sha512-HNR2mC5I4Z5ek8kTrVZlIY/B8gJGs5b3XdZPBPBopTIN6U/YHXiDyOjY3JlaS4fSG1fVhp/Qp1TpMn1w/9m1pw==", - "dev": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "storybook": "^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0" - } - }, - "node_modules/@storybook/core": { - "version": "8.6.14", - "resolved": "https://registry.npmjs.org/@storybook/core/-/core-8.6.14.tgz", - "integrity": "sha512-1P/w4FSNRqP8j3JQBOi3yGt8PVOgSRbP66Ok520T78eJBeqx9ukCfl912PQZ7SPbW3TIunBwLXMZOjZwBB/JmA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/theming": "8.6.14", - "better-opn": "^3.0.2", - "browser-assert": "^1.2.1", - "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0 || ^0.25.0", - "esbuild-register": "^3.5.0", - "jsdoc-type-pratt-parser": "^4.0.0", - "process": "^0.11.10", - "recast": "^0.23.5", - "semver": "^7.6.2", - "util": "^0.12.5", - "ws": "^8.2.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "prettier": "^2 || ^3" - }, - "peerDependenciesMeta": { - "prettier": { - "optional": true - } - } - }, - "node_modules/@storybook/core/node_modules/semver": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", - "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@storybook/csf-plugin": { - "version": "8.6.14", - "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-8.6.14.tgz", - "integrity": "sha512-dErtc9teAuN+eelN8FojzFE635xlq9cNGGGEu0WEmMUQ4iJ8pingvBO1N8X3scz4Ry7KnxX++NNf3J3gpxS8qQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "unplugin": "^1.3.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "storybook": "^8.6.14" - } - }, - "node_modules/@storybook/global": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@storybook/global/-/global-5.0.0.tgz", - "integrity": "sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@storybook/icons": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@storybook/icons/-/icons-1.6.0.tgz", - "integrity": "sha512-hcFZIjW8yQz8O8//2WTIXylm5Xsgc+lW9ISLgUk1xGmptIJQRdlhVIXCpSyLrQaaRiyhQRaVg7l3BD9S216BHw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta" - } - }, - "node_modules/@storybook/manager-api": { - "version": "8.6.14", - "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-8.6.14.tgz", - "integrity": "sha512-ez0Zihuy17udLbfHZQXkGqwtep0mSGgHcNzGN7iZrMP1m+VmNo+7aGCJJdvXi7+iU3yq8weXSQFWg5DqWgLS7g==", - "dev": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "storybook": "^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0" - } - }, - "node_modules/@storybook/preview-api": { - "version": "8.6.14", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-8.6.14.tgz", - "integrity": "sha512-2GhcCd4dNMrnD7eooEfvbfL4I83qAqEyO0CO7JQAmIO6Rxb9BsOLLI/GD5HkvQB73ArTJ+PT50rfaO820IExOQ==", - "dev": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "storybook": "^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0" - } - }, - "node_modules/@storybook/react": { - "version": "8.6.14", - "resolved": "https://registry.npmjs.org/@storybook/react/-/react-8.6.14.tgz", - "integrity": "sha512-BOepx5bBFwl/CPI+F+LnmMmsG1wQYmrX/UQXgUbHQUU9Tj7E2ndTnNbpIuSLc8IrM03ru+DfwSg1Co3cxWtT+g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/components": "8.6.14", - "@storybook/global": "^5.0.0", - "@storybook/manager-api": "8.6.14", - "@storybook/preview-api": "8.6.14", - "@storybook/react-dom-shim": "8.6.14", - "@storybook/theming": "8.6.14" - }, - "engines": { - "node": ">=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "@storybook/test": "8.6.14", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "storybook": "^8.6.14", - "typescript": ">= 4.2.x" - }, - "peerDependenciesMeta": { - "@storybook/test": { - "optional": true - }, - "typescript": { - "optional": true - } - } - }, - "node_modules/@storybook/react-dom-shim": { - "version": "8.6.14", - "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-8.6.14.tgz", - "integrity": "sha512-0hixr3dOy3f3M+HBofp3jtMQMS+sqzjKNgl7Arfuj3fvjmyXOks/yGjDImySR4imPtEllvPZfhiQNlejheaInw==", - "dev": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "storybook": "^8.6.14" - } - }, - "node_modules/@storybook/react-vite": { - "version": "8.6.14", - "resolved": "https://registry.npmjs.org/@storybook/react-vite/-/react-vite-8.6.14.tgz", - "integrity": "sha512-FZU0xMPxa4/TO87FgcWwappOxLBHZV5HSRK5K+2bJD7rFJAoNorbHvB4Q1zvIAk7eCMjkr2GPCPHx9PRB9vJFg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@joshwooding/vite-plugin-react-docgen-typescript": "0.5.0", - "@rollup/pluginutils": "^5.0.2", - "@storybook/builder-vite": "8.6.14", - "@storybook/react": "8.6.14", - "find-up": "^5.0.0", - "magic-string": "^0.30.0", - "react-docgen": "^7.0.0", - "resolve": "^1.22.8", - "tsconfig-paths": "^4.2.0" - }, - "engines": { - "node": ">=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "@storybook/test": "8.6.14", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "storybook": "^8.6.14", - "vite": "^4.0.0 || ^5.0.0 || ^6.0.0" - }, - "peerDependenciesMeta": { - "@storybook/test": { - "optional": true - } - } - }, - "node_modules/@storybook/theming": { - "version": "8.6.14", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-8.6.14.tgz", - "integrity": "sha512-r4y+LsiB37V5hzpQo+BM10PaCsp7YlZ0YcZzQP1OCkPlYXmUAFy2VvDKaFRpD8IeNPKug2u4iFm/laDEbs03dg==", - "dev": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "storybook": "^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0" - } - }, - "node_modules/@types/babel__core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", - "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", - "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", - "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.28.2" - } - }, - "node_modules/@types/doctrine": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.9.tgz", - "integrity": "sha512-eOIHzCUSH7SMfonMG1LsC2f8vxBFtho6NGBznK41R84YzPuvSBzrhEps33IsQiOW9+VL6NQ9DbjQJznk/S4uRA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/estree": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", - "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/mdx": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.13.tgz", - "integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "22.12.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.12.0.tgz", - "integrity": "sha512-Fll2FZ1riMjNmlmJOdAyY5pUbkftXslB5DgEzlIuNaiWhXd00FhWxVC/r4yV/4wBb9JfImTu+jiSvXTkJ7F/gA==", - "dev": true, - "license": "MIT", - "dependencies": { - "undici-types": "~6.20.0" - } - }, - "node_modules/@types/offscreencanvas": { - "version": "2019.7.3", - "resolved": "https://registry.npmjs.org/@types/offscreencanvas/-/offscreencanvas-2019.7.3.tgz", - "integrity": "sha512-ieXiYmgSRXUDeOntE1InxjWyvEelZGP63M+cGuquuRLuIKKT1osnkXjxev9B7d1nXSug5vpunx+gNlbVxMlC9A==", - "license": "MIT" - }, - "node_modules/@types/react": { - "version": "19.0.2", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.2.tgz", - "integrity": "sha512-USU8ZI/xyKJwFTpjSVIrSeHBVAGagkHQKPNbxeWwql/vDmnTIBgx+TJnhFnj1NXgz8XfprU0egV2dROLGpsBEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "csstype": "^3.0.2" - } - }, - "node_modules/@types/react-dom": { - "version": "19.0.2", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.0.2.tgz", - "integrity": "sha512-c1s+7TKFaDRRxr1TxccIX2u7sfCnc3RxkVyBIUA2lCpyqCF+QoAwQ/CBg7bsMdVwP120HEH143VQezKtef5nCg==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@types/react": "^19.0.0" - } - }, - "node_modules/@types/resolve": { - "version": "1.20.6", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.6.tgz", - "integrity": "sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/uuid": { - "version": "9.0.8", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.8.tgz", - "integrity": "sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@videojs/http-streaming": { - "version": "3.17.4", - "resolved": "https://registry.npmjs.org/@videojs/http-streaming/-/http-streaming-3.17.4.tgz", - "integrity": "sha512-XAvdG2dolBuV2Fx8bu1kjmQ2D4TonGzZH68Pgv/O9xMSFWdZtITSMFismeQLEAtMmGwze8qNJp3RgV+jStrJqg==", - "license": "Apache-2.0", - "dependencies": { - "@babel/runtime": "^7.12.5", - "@videojs/vhs-utils": "^4.1.1", - "aes-decrypter": "^4.0.2", - "global": "^4.4.0", - "m3u8-parser": "^7.2.0", - "mpd-parser": "^1.3.1", - "mux.js": "7.1.0", - "video.js": "^7 || ^8" - }, - "engines": { - "node": ">=8", - "npm": ">=5" - }, - "peerDependencies": { - "video.js": "^8.19.0" - } - }, - "node_modules/@videojs/vhs-utils": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@videojs/vhs-utils/-/vhs-utils-4.1.1.tgz", - "integrity": "sha512-5iLX6sR2ownbv4Mtejw6Ax+naosGvoT9kY+gcuHzANyUZZ+4NpeNdKMUhb6ag0acYej1Y7cmr/F2+4PrggMiVA==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.12.5", - "global": "^4.4.0" - }, - "engines": { - "node": ">=8", - "npm": ">=5" - } - }, - "node_modules/@videojs/xhr": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/@videojs/xhr/-/xhr-2.7.0.tgz", - "integrity": "sha512-giab+EVRanChIupZK7gXjHy90y3nncA2phIOyG3Ne5fvpiMJzvqYwiTOnEVW2S4CoYcuKJkomat7bMXA/UoUZQ==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.5.5", - "global": "~4.4.0", - "is-function": "^1.0.1" - } - }, - "node_modules/@xmldom/xmldom": { - "version": "0.8.11", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.11.tgz", - "integrity": "sha512-cQzWCtO6C8TQiYl1ruKNn2U6Ao4o4WBBcbL61yJl84x+j5sOWWFU9X7DpND8XZG3daDppSsigMdfAIl2upQBRw==", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/acorn": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", - "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/aes-decrypter": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/aes-decrypter/-/aes-decrypter-4.0.2.tgz", - "integrity": "sha512-lc+/9s6iJvuaRe5qDlMTpCFjnwpkeOXp8qP3oiZ5jsj1MRg+SBVUmmICrhxHvc8OELSmc+fEyyxAuppY6hrWzw==", - "license": "Apache-2.0", - "dependencies": { - "@babel/runtime": "^7.12.5", - "@videojs/vhs-utils": "^4.1.1", - "global": "^4.4.0", - "pkcs7": "^1.0.4" - } - }, - "node_modules/ansi-regex": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", - "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/ansi-styles": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", - "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/antd": { - "version": "5.14.2", - "resolved": "https://registry.npmjs.org/antd/-/antd-5.14.2.tgz", - "integrity": "sha512-ur0oBI9U7hAeON4ZRs1cAF1suIpTR+uj3YliTZacWkiVxNTZYPaaTdnLuAZDRMT9P2IZ007dCQTqxn5t1Z+Dxw==", - "license": "MIT", - "dependencies": { - "@ant-design/colors": "^7.0.2", - "@ant-design/cssinjs": "^1.18.4", - "@ant-design/icons": "^5.3.0", - "@ant-design/react-slick": "~1.0.2", - "@ctrl/tinycolor": "^3.6.1", - "@rc-component/color-picker": "~1.5.2", - "@rc-component/mutate-observer": "^1.1.0", - "@rc-component/tour": "~1.12.3", - "@rc-component/trigger": "^1.18.3", - "classnames": "^2.5.1", - "copy-to-clipboard": "^3.3.3", - "dayjs": "^1.11.10", - "qrcode.react": "^3.1.0", - "rc-cascader": "~3.21.2", - "rc-checkbox": "~3.1.0", - "rc-collapse": "~3.7.2", - "rc-dialog": "~9.3.4", - "rc-drawer": "~7.0.0", - "rc-dropdown": "~4.1.0", - "rc-field-form": "~1.41.0", - "rc-image": "~7.5.1", - "rc-input": "~1.4.3", - "rc-input-number": "~9.0.0", - "rc-mentions": "~2.10.1", - "rc-menu": "~9.12.4", - "rc-motion": "^2.9.0", - "rc-notification": "~5.3.0", - "rc-pagination": "~4.0.4", - "rc-picker": "~4.1.4", - "rc-progress": "~3.5.1", - "rc-rate": "~2.12.0", - "rc-resize-observer": "^1.4.0", - "rc-segmented": "~2.3.0", - "rc-select": "~14.11.0", - "rc-slider": "~10.5.0", - "rc-steps": "~6.0.1", - "rc-switch": "~4.1.0", - "rc-table": "~7.39.0", - "rc-tabs": "~14.0.0", - "rc-textarea": "~1.6.3", - "rc-tooltip": "~6.1.3", - "rc-tree": "~5.8.5", - "rc-tree-select": "~5.17.0", - "rc-upload": "~4.5.2", - "rc-util": "^5.38.2", - "scroll-into-view-if-needed": "^3.1.0", - "throttle-debounce": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/ant-design" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/antd/node_modules/qrcode.react": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/qrcode.react/-/qrcode.react-3.2.0.tgz", - "integrity": "sha512-YietHHltOHA4+l5na1srdaMx4sVSOjV9tamHs+mwiLWAMr6QVACRUw1Neax5CptFILcNoITctJY0Ipyn5enQ8g==", - "license": "ISC", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/array-tree-filter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-tree-filter/-/array-tree-filter-2.1.0.tgz", - "integrity": "sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==", - "license": "MIT" - }, - "node_modules/ast-types": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.16.1.tgz", - "integrity": "sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==", - "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/async-validator": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-4.2.5.tgz", - "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==", - "license": "MIT" - }, - "node_modules/available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "possible-typed-array-names": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/baseline-browser-mapping": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.0.tgz", - "integrity": "sha512-lIyg0szRfYbiy67j9KN8IyeD7q7hcmqnJ1ddWmNt19ItGpNN64mnllmxUNFIOdOm6by97jlL6wfpTTJrmnjWAA==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "baseline-browser-mapping": "dist/cli.cjs" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/better-opn": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/better-opn/-/better-opn-3.0.2.tgz", - "integrity": "sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "open": "^8.0.4" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/browser-assert": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/browser-assert/-/browser-assert-1.2.1.tgz", - "integrity": "sha512-nfulgvOR6S4gt9UKCeGJOuSGBPGiFT6oQ/2UBnvTY/5aQ1PnksW72fhZkM30DzoRRv2WpwZf1vHHEr3mtuXIWQ==", - "dev": true - }, - "node_modules/browserslist": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", - "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "baseline-browser-mapping": "^2.9.0", - "caniuse-lite": "^1.0.30001759", - "electron-to-chromium": "^1.5.263", - "node-releases": "^2.0.27", - "update-browserslist-db": "^1.2.0" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/call-bind": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", - "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.0", - "es-define-property": "^1.0.0", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", - "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/call-bound": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", - "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "get-intrinsic": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001774", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001774.tgz", - "integrity": "sha512-DDdwPGz99nmIEv216hKSgLD+D4ikHQHjBC/seF98N9CPqRX4M5mSxT9eTV6oyisnJcuzxtZy4n17yKKQYmYQOA==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" - }, - "node_modules/chokidar": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", - "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", - "dev": true, - "license": "MIT", - "dependencies": { - "readdirp": "^4.0.1" - }, - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/classnames": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", - "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==", - "license": "MIT" - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/compute-scroll-into-view": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.1.1.tgz", - "integrity": "sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==", - "license": "MIT" - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true, - "license": "MIT" - }, - "node_modules/copy-to-clipboard": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz", - "integrity": "sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==", - "license": "MIT", - "dependencies": { - "toggle-selection": "^1.0.6" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/csstype": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", - "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", - "license": "MIT" - }, - "node_modules/dayjs": { - "version": "1.11.19", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.19.tgz", - "integrity": "sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==", - "license": "MIT" - }, - "node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/detect-libc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", - "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", - "dev": true, - "license": "Apache-2.0", - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/dom-walk": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", - "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" - }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true, - "license": "MIT" - }, - "node_modules/electron-to-chromium": { - "version": "1.5.302", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.302.tgz", - "integrity": "sha512-sM6HAN2LyK82IyPBpznDRqlTQAtuSaO+ShzFiWTvoMJLHyZ+Y39r8VMfHzwbU8MVBzQ4Wdn85+wlZl2TLGIlwg==", - "dev": true, - "license": "ISC" - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true, - "license": "MIT" - }, - "node_modules/es-define-property": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-object-atoms": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", - "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/esbuild": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", - "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.12", - "@esbuild/android-arm": "0.25.12", - "@esbuild/android-arm64": "0.25.12", - "@esbuild/android-x64": "0.25.12", - "@esbuild/darwin-arm64": "0.25.12", - "@esbuild/darwin-x64": "0.25.12", - "@esbuild/freebsd-arm64": "0.25.12", - "@esbuild/freebsd-x64": "0.25.12", - "@esbuild/linux-arm": "0.25.12", - "@esbuild/linux-arm64": "0.25.12", - "@esbuild/linux-ia32": "0.25.12", - "@esbuild/linux-loong64": "0.25.12", - "@esbuild/linux-mips64el": "0.25.12", - "@esbuild/linux-ppc64": "0.25.12", - "@esbuild/linux-riscv64": "0.25.12", - "@esbuild/linux-s390x": "0.25.12", - "@esbuild/linux-x64": "0.25.12", - "@esbuild/netbsd-arm64": "0.25.12", - "@esbuild/netbsd-x64": "0.25.12", - "@esbuild/openbsd-arm64": "0.25.12", - "@esbuild/openbsd-x64": "0.25.12", - "@esbuild/openharmony-arm64": "0.25.12", - "@esbuild/sunos-x64": "0.25.12", - "@esbuild/win32-arm64": "0.25.12", - "@esbuild/win32-ia32": "0.25.12", - "@esbuild/win32-x64": "0.25.12" - } - }, - "node_modules/esbuild-register": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/esbuild-register/-/esbuild-register-3.6.0.tgz", - "integrity": "sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.3.4" - }, - "peerDependencies": { - "esbuild": ">=0.12 <1" - } - }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true, - "license": "MIT" - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/for-each": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", - "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-callable": "^1.2.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/foreground-child": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", - "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", - "dev": true, - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.6", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/generator-function": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", - "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-intrinsic": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", - "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "function-bind": "^1.1.2", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", - "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", - "dev": true, - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/glob": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", - "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", - "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/global": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", - "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", - "license": "MIT", - "dependencies": { - "min-document": "^2.19.0", - "process": "^0.11.10" - } - }, - "node_modules/gopd": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/hls.js": { - "version": "1.6.14", - "resolved": "https://registry.npmjs.org/hls.js/-/hls.js-1.6.14.tgz", - "integrity": "sha512-CSpT2aXsv71HST8C5ETeVo+6YybqCpHBiYrCRQSn3U5QUZuLTSsvtq/bj+zuvjLVADeKxoebzo16OkH8m1+65Q==", - "license": "Apache-2.0" - }, - "node_modules/immutable": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.4.tgz", - "integrity": "sha512-p6u1bG3YSnINT5RQmx/yRZBpenIl30kVxkTLDyHLIMk0gict704Q9n+thfDI7lTRm9vXdDYutVzXhzcThxTnXA==", - "dev": true, - "license": "MIT" - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/is-arguments": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz", - "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", - "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", - "dev": true, - "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true, - "license": "MIT", - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", - "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==", - "license": "MIT" - }, - "node_modules/is-generator-function": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz", - "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.4", - "generator-function": "^2.0.0", - "get-proto": "^1.0.1", - "has-tostringtag": "^1.0.2", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-regex": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", - "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", - "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "which-typed-array": "^1.1.16" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, - "license": "ISC" - }, - "node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/jsdoc-type-pratt-parser": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.8.0.tgz", - "integrity": "sha512-iZ8Bdb84lWRuGHamRXFyML07r21pcwBrLkHEuHgEY5UbCouBwv7ECknDRKzsQIXMiqpPymqtIf8TC/shYKB5rw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/jsesc": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", - "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", - "dev": true, - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/json2mq": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/json2mq/-/json2mq-0.2.0.tgz", - "integrity": "sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==", - "license": "MIT", - "dependencies": { - "string-convert": "^0.2.0" - } - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "license": "MIT", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "license": "MIT" - }, - "node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/m3u8-parser": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/m3u8-parser/-/m3u8-parser-7.2.0.tgz", - "integrity": "sha512-CRatFqpjVtMiMaKXxNvuI3I++vUumIXVVT/JpCpdU/FynV/ceVw1qpPyyBNindL+JlPMSesx+WX1QJaZEJSaMQ==", - "license": "Apache-2.0", - "dependencies": { - "@babel/runtime": "^7.12.5", - "@videojs/vhs-utils": "^4.1.1", - "global": "^4.4.0" - } - }, - "node_modules/magic-string": { - "version": "0.30.21", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", - "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.5" - } - }, - "node_modules/map-or-similar": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/map-or-similar/-/map-or-similar-1.5.0.tgz", - "integrity": "sha512-0aF7ZmVon1igznGI4VS30yugpduQW3y3GkcgGJOp7d8x8QrizhigUxjI/m2UojsXXto+jLAH3KSz+xOJTiORjg==", - "dev": true, - "license": "MIT" - }, - "node_modules/math-intrinsics": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", - "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/memoizerific": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/memoizerific/-/memoizerific-1.11.3.tgz", - "integrity": "sha512-/EuHYwAPdLtXwAwSZkh/Gutery6pD2KYd44oQLhAvQp/50mpyduZh8Q7PYHXTCJ+wuXxt7oij2LXyIJOOYFPog==", - "dev": true, - "license": "MIT", - "dependencies": { - "map-or-similar": "^1.5.0" - } - }, - "node_modules/min-document": { - "version": "2.19.2", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.2.tgz", - "integrity": "sha512-8S5I8db/uZN8r9HSLFVWPdJCvYOejMcEC82VIzNUc6Zkklf/d1gg2psfE79/vyhWOj4+J8MtwmoOz3TmvaGu5A==", - "license": "MIT", - "dependencies": { - "dom-walk": "^0.1.0" - } - }, - "node_modules/minimatch": { - "version": "9.0.9", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", - "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.2" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/minipass": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", - "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", - "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/mpd-parser": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mpd-parser/-/mpd-parser-1.3.1.tgz", - "integrity": "sha512-1FuyEWI5k2HcmhS1HkKnUAQV7yFPfXPht2DnRRGtoiiAAW+ESTbtEXIDpRkwdU+XyrQuwrIym7UkoPKsZ0SyFw==", - "license": "Apache-2.0", - "dependencies": { - "@babel/runtime": "^7.12.5", - "@videojs/vhs-utils": "^4.0.0", - "@xmldom/xmldom": "^0.8.3", - "global": "^4.4.0" - }, - "bin": { - "mpd-to-m3u8-json": "bin/parse.js" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/mux.js": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/mux.js/-/mux.js-7.1.0.tgz", - "integrity": "sha512-NTxawK/BBELJrYsZThEulyUMDVlLizKdxyAsMuzoCD1eFj97BVaA8D/CvKsKu6FOLYkFojN5CbM9h++ZTZtknA==", - "license": "Apache-2.0", - "dependencies": { - "@babel/runtime": "^7.11.2", - "global": "^4.4.0" - }, - "bin": { - "muxjs-transmux": "bin/transmux.js" - }, - "engines": { - "node": ">=8", - "npm": ">=5" - } - }, - "node_modules/nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/node-addon-api": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", - "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", - "dev": true, - "license": "MIT", - "optional": true - }, - "node_modules/node-releases": { - "version": "2.0.27", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", - "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/open": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", - "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/package-json-from-dist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "dev": true, - "license": "BlueOak-1.0.0" - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true, - "license": "MIT" - }, - "node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "dev": true, - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pkcs7": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/pkcs7/-/pkcs7-1.0.4.tgz", - "integrity": "sha512-afRERtHn54AlwaF2/+LFszyAANTCggGilmcmILUzEjvs3XgFZT+xE6+QWQcAGmu4xajy+Xtj7acLOPdx5/eXWQ==", - "license": "Apache-2.0", - "dependencies": { - "@babel/runtime": "^7.5.5" - }, - "bin": { - "pkcs7": "bin/cli.js" - } - }, - "node_modules/polished": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/polished/-/polished-4.3.1.tgz", - "integrity": "sha512-OBatVyC/N7SCW/FaDHrSd+vn0o5cS855TOmYi4OkdWUMSJCET/xip//ch8xGUvtr3i44X9LVyWwQlRMTN3pwSA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.17.8" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/possible-typed-array-names": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", - "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/postcss": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", - "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.11", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "license": "MIT", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/qr-scanner": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/qr-scanner/-/qr-scanner-1.4.2.tgz", - "integrity": "sha512-kV1yQUe2FENvn59tMZW6mOVfpq9mGxGf8l6+EGaXUOd4RBOLg7tRC83OrirM5AtDvZRpdjdlXURsHreAOSPOUw==", - "license": "MIT", - "dependencies": { - "@types/offscreencanvas": "^2019.6.4" - } - }, - "node_modules/rc-cascader": { - "version": "3.21.2", - "resolved": "https://registry.npmjs.org/rc-cascader/-/rc-cascader-3.21.2.tgz", - "integrity": "sha512-J7GozpgsLaOtzfIHFJFuh4oFY0ePb1w10twqK6is3pAkqHkca/PsokbDr822KIRZ8/CK8CqevxohuPDVZ1RO/A==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.12.5", - "array-tree-filter": "^2.1.0", - "classnames": "^2.3.1", - "rc-select": "~14.11.0", - "rc-tree": "~5.8.1", - "rc-util": "^5.37.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-checkbox": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/rc-checkbox/-/rc-checkbox-3.1.0.tgz", - "integrity": "sha512-PAwpJFnBa3Ei+5pyqMMXdcKYKNBMS+TvSDiLdDnARnMJHC8ESxwPfm4Ao1gJiKtWLdmGfigascnCpwrHFgoOBQ==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.3.2", - "rc-util": "^5.25.2" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-collapse": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/rc-collapse/-/rc-collapse-3.7.3.tgz", - "integrity": "sha512-60FJcdTRn0X5sELF18TANwtVi7FtModq649H11mYF1jh83DniMoM4MqY627sEKRCTm4+WXfGDcB7hY5oW6xhyw==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "2.x", - "rc-motion": "^2.3.4", - "rc-util": "^5.27.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-dialog": { - "version": "9.3.4", - "resolved": "https://registry.npmjs.org/rc-dialog/-/rc-dialog-9.3.4.tgz", - "integrity": "sha512-975X3018GhR+EjZFbxA2Z57SX5rnu0G0/OxFgMMvZK4/hQWEm3MHaNvP4wXpxYDoJsp+xUvVW+GB9CMMCm81jA==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.10.1", - "@rc-component/portal": "^1.0.0-8", - "classnames": "^2.2.6", - "rc-motion": "^2.3.0", - "rc-util": "^5.21.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-drawer": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/rc-drawer/-/rc-drawer-7.0.0.tgz", - "integrity": "sha512-ePcS4KtQnn57bCbVXazHN2iC8nTPCXlWEIA/Pft87Pd9U7ZeDkdRzG47jWG2/TAFXFlFltRAMcslqmUM8NPCGA==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.10.1", - "@rc-component/portal": "^1.1.1", - "classnames": "^2.2.6", - "rc-motion": "^2.6.1", - "rc-util": "^5.36.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-dropdown": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/rc-dropdown/-/rc-dropdown-4.1.0.tgz", - "integrity": "sha512-VZjMunpBdlVzYpEdJSaV7WM7O0jf8uyDjirxXLZRNZ+tAC+NzD3PXPEtliFwGzVwBBdCmGuSqiS9DWcOLxQ9tw==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.18.3", - "@rc-component/trigger": "^1.7.0", - "classnames": "^2.2.6", - "rc-util": "^5.17.0" - }, - "peerDependencies": { - "react": ">=16.11.0", - "react-dom": ">=16.11.0" - } - }, - "node_modules/rc-field-form": { - "version": "1.41.0", - "resolved": "https://registry.npmjs.org/rc-field-form/-/rc-field-form-1.41.0.tgz", - "integrity": "sha512-k9AS0wmxfJfusWDP/YXWTpteDNaQ4isJx9UKxx4/e8Dub4spFeZ54/EuN2sYrMRID/+hUznPgVZeg+Gf7XSYCw==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.18.0", - "async-validator": "^4.1.0", - "rc-util": "^5.32.2" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-image": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/rc-image/-/rc-image-7.5.1.tgz", - "integrity": "sha512-Z9loECh92SQp0nSipc0MBuf5+yVC05H/pzC+Nf8xw1BKDFUJzUeehYBjaWlxly8VGBZJcTHYri61Fz9ng1G3Ag==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.11.2", - "@rc-component/portal": "^1.0.2", - "classnames": "^2.2.6", - "rc-dialog": "~9.3.4", - "rc-motion": "^2.6.2", - "rc-util": "^5.34.1" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-input": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/rc-input/-/rc-input-1.4.5.tgz", - "integrity": "sha512-AjzykhwnwYTRSwwgCu70CGKBIAv6bP2nqnFptnNTprph/TF1BAs0Qxl91mie/BR6n827WIJB6ZjaRf9iiMwAfw==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.11.1", - "classnames": "^2.2.1", - "rc-util": "^5.18.1" - }, - "peerDependencies": { - "react": ">=16.0.0", - "react-dom": ">=16.0.0" - } - }, - "node_modules/rc-input-number": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/rc-input-number/-/rc-input-number-9.0.0.tgz", - "integrity": "sha512-RfcDBDdWFFetouWFXBA+WPEC8LzBXyngr9b+yTLVIygfFu7HiLRGn/s/v9wwno94X7KFvnb28FNynMGj9XJlDQ==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.10.1", - "@rc-component/mini-decimal": "^1.0.1", - "classnames": "^2.2.5", - "rc-input": "~1.4.0", - "rc-util": "^5.28.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-mentions": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/rc-mentions/-/rc-mentions-2.10.1.tgz", - "integrity": "sha512-72qsEcr/7su+a07ndJ1j8rI9n0Ka/ngWOLYnWMMv0p2mi/5zPwPrEDTt6Uqpe8FWjWhueDJx/vzunL6IdKDYMg==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.22.5", - "@rc-component/trigger": "^1.5.0", - "classnames": "^2.2.6", - "rc-input": "~1.4.0", - "rc-menu": "~9.12.0", - "rc-textarea": "~1.6.1", - "rc-util": "^5.34.1" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-menu": { - "version": "9.12.4", - "resolved": "https://registry.npmjs.org/rc-menu/-/rc-menu-9.12.4.tgz", - "integrity": "sha512-t2NcvPLV1mFJzw4F21ojOoRVofK2rWhpKPx69q2raUsiHPDP6DDevsBILEYdsIegqBeSXoWs2bf6CueBKg3BFg==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.10.1", - "@rc-component/trigger": "^1.17.0", - "classnames": "2.x", - "rc-motion": "^2.4.3", - "rc-overflow": "^1.3.1", - "rc-util": "^5.27.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-motion": { - "version": "2.9.5", - "resolved": "https://registry.npmjs.org/rc-motion/-/rc-motion-2.9.5.tgz", - "integrity": "sha512-w+XTUrfh7ArbYEd2582uDrEhmBHwK1ZENJiSJVb7uRxdE7qJSYjbO2eksRXmndqyKqKoYPc9ClpPh5242mV1vA==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.11.1", - "classnames": "^2.2.1", - "rc-util": "^5.44.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-notification": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/rc-notification/-/rc-notification-5.3.0.tgz", - "integrity": "sha512-WCf0uCOkZ3HGfF0p1H4Sgt7aWfipxORWTPp7o6prA3vxwtWhtug3GfpYls1pnBp4WA+j8vGIi5c2/hQRpGzPcQ==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "2.x", - "rc-motion": "^2.9.0", - "rc-util": "^5.20.1" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-overflow": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/rc-overflow/-/rc-overflow-1.5.0.tgz", - "integrity": "sha512-Lm/v9h0LymeUYJf0x39OveU52InkdRXqnn2aYXfWmo8WdOonIKB2kfau+GF0fWq6jPgtdO9yMqveGcK6aIhJmg==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.11.1", - "classnames": "^2.2.1", - "rc-resize-observer": "^1.0.0", - "rc-util": "^5.37.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-pagination": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/rc-pagination/-/rc-pagination-4.0.4.tgz", - "integrity": "sha512-GGrLT4NgG6wgJpT/hHIpL9nELv27A1XbSZzECIuQBQTVSf4xGKxWr6I/jhpRPauYEWEbWVw22ObG6tJQqwJqWQ==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.3.2", - "rc-util": "^5.38.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-picker": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/rc-picker/-/rc-picker-4.1.5.tgz", - "integrity": "sha512-dh2E9j7HomZW10RWIBsdyXs3geHkSslVqKTx3VZfmi9UEabiQrBBNKVIhqn2m0goia0dqyWJ4qRghAsBVLGzbw==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.10.1", - "@rc-component/trigger": "^1.5.0", - "classnames": "^2.2.1", - "rc-overflow": "^1.3.2", - "rc-resize-observer": "^1.4.0", - "rc-util": "^5.38.1" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "date-fns": ">= 2.x", - "dayjs": ">= 1.x", - "luxon": ">= 3.x", - "moment": ">= 2.x", - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - }, - "peerDependenciesMeta": { - "date-fns": { - "optional": true - }, - "dayjs": { - "optional": true - }, - "luxon": { - "optional": true - }, - "moment": { - "optional": true - } - } - }, - "node_modules/rc-progress": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/rc-progress/-/rc-progress-3.5.1.tgz", - "integrity": "sha512-V6Amx6SbLRwPin/oD+k1vbPrO8+9Qf8zW1T8A7o83HdNafEVvAxPV5YsgtKFP+Ud5HghLj33zKOcEHrcrUGkfw==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.6", - "rc-util": "^5.16.1" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-rate": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/rc-rate/-/rc-rate-2.12.0.tgz", - "integrity": "sha512-g092v5iZCdVzbjdn28FzvWebK2IutoVoiTeqoLTj9WM7SjA/gOJIw5/JFZMRyJYYVe1jLAU2UhAfstIpCNRozg==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.5", - "rc-util": "^5.0.1" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-resize-observer": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/rc-resize-observer/-/rc-resize-observer-1.4.3.tgz", - "integrity": "sha512-YZLjUbyIWox8E9i9C3Tm7ia+W7euPItNWSPX5sCcQTYbnwDb5uNpnLHQCG1f22oZWUhLw4Mv2tFmeWe68CDQRQ==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.20.7", - "classnames": "^2.2.1", - "rc-util": "^5.44.1", - "resize-observer-polyfill": "^1.5.1" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-segmented": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/rc-segmented/-/rc-segmented-2.3.0.tgz", - "integrity": "sha512-I3FtM5Smua/ESXutFfb8gJ8ZPcvFR+qUgeeGFQHBOvRiRKyAk4aBE5nfqrxXx+h8/vn60DQjOt6i4RNtrbOobg==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.11.1", - "classnames": "^2.2.1", - "rc-motion": "^2.4.4", - "rc-util": "^5.17.0" - }, - "peerDependencies": { - "react": ">=16.0.0", - "react-dom": ">=16.0.0" - } - }, - "node_modules/rc-select": { - "version": "14.11.0", - "resolved": "https://registry.npmjs.org/rc-select/-/rc-select-14.11.0.tgz", - "integrity": "sha512-8J8G/7duaGjFiTXCBLWfh5P+KDWyA3KTlZDfV3xj/asMPqB2cmxfM+lH50wRiPIRsCQ6EbkCFBccPuaje3DHIg==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.10.1", - "@rc-component/trigger": "^1.5.0", - "classnames": "2.x", - "rc-motion": "^2.0.1", - "rc-overflow": "^1.3.1", - "rc-util": "^5.16.1", - "rc-virtual-list": "^3.5.2" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": "*", - "react-dom": "*" - } - }, - "node_modules/rc-slider": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/rc-slider/-/rc-slider-10.5.0.tgz", - "integrity": "sha512-xiYght50cvoODZYI43v3Ylsqiw14+D7ELsgzR40boDZaya1HFa1Etnv9MDkQE8X/UrXAffwv2AcNAhslgYuDTw==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.5", - "rc-util": "^5.27.0" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-steps": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/rc-steps/-/rc-steps-6.0.1.tgz", - "integrity": "sha512-lKHL+Sny0SeHkQKKDJlAjV5oZ8DwCdS2hFhAkIjuQt1/pB81M0cA0ErVFdHq9+jmPmFw1vJB2F5NBzFXLJxV+g==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.16.7", - "classnames": "^2.2.3", - "rc-util": "^5.16.1" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-switch": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/rc-switch/-/rc-switch-4.1.0.tgz", - "integrity": "sha512-TI8ufP2Az9oEbvyCeVE4+90PDSljGyuwix3fV58p7HV2o4wBnVToEyomJRVyTaZeqNPAp+vqeo4Wnj5u0ZZQBg==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.21.0", - "classnames": "^2.2.1", - "rc-util": "^5.30.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-table": { - "version": "7.39.0", - "resolved": "https://registry.npmjs.org/rc-table/-/rc-table-7.39.0.tgz", - "integrity": "sha512-7fHLMNsm/2DlGwyIMkdH2xIeRzb5I69bLsFaEVtX+gqmGhByy0wtOAgHkiOew3PtXozSJyh+iXifjLgQzWdczw==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.10.1", - "@rc-component/context": "^1.4.0", - "classnames": "^2.2.5", - "rc-resize-observer": "^1.1.0", - "rc-util": "^5.37.0", - "rc-virtual-list": "^3.11.1" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-tabs": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/rc-tabs/-/rc-tabs-14.0.0.tgz", - "integrity": "sha512-lp1YWkaPnjlyhOZCPrAWxK6/P6nMGX/BAZcAC3nuVwKz0Byfp+vNnQKK8BRCP2g/fzu+SeB5dm9aUigRu3tRkQ==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.11.2", - "classnames": "2.x", - "rc-dropdown": "~4.1.0", - "rc-menu": "~9.12.0", - "rc-motion": "^2.6.2", - "rc-resize-observer": "^1.0.0", - "rc-util": "^5.34.1" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-textarea": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/rc-textarea/-/rc-textarea-1.6.3.tgz", - "integrity": "sha512-8k7+8Y2GJ/cQLiClFMg8kUXOOdvcFQrnGeSchOvI2ZMIVvX5a3zQpLxoODL0HTrvU63fPkRmMuqaEcOF9dQemA==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.1", - "rc-input": "~1.4.0", - "rc-resize-observer": "^1.0.0", - "rc-util": "^5.27.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-tooltip": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-6.1.3.tgz", - "integrity": "sha512-HMSbSs5oieZ7XddtINUddBLSVgsnlaSb3bZrzzGWjXa7/B7nNedmsuz72s7EWFEro9mNa7RyF3gOXKYqvJiTcQ==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.11.2", - "@rc-component/trigger": "^1.18.0", - "classnames": "^2.3.1" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-tree": { - "version": "5.8.8", - "resolved": "https://registry.npmjs.org/rc-tree/-/rc-tree-5.8.8.tgz", - "integrity": "sha512-S+mCMWo91m5AJqjz3PdzKilGgbFm7fFJRFiTDOcoRbD7UfMOPnerXwMworiga0O2XIo383UoWuEfeHs1WOltag==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "2.x", - "rc-motion": "^2.0.1", - "rc-util": "^5.16.1", - "rc-virtual-list": "^3.5.1" - }, - "engines": { - "node": ">=10.x" - }, - "peerDependencies": { - "react": "*", - "react-dom": "*" - } - }, - "node_modules/rc-tree-select": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/rc-tree-select/-/rc-tree-select-5.17.0.tgz", - "integrity": "sha512-7sRGafswBhf7n6IuHyCEFCildwQIgyKiV8zfYyUoWfZEFdhuk7lCH+DN0aHt+oJrdiY9+6Io/LDXloGe01O8XQ==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "2.x", - "rc-select": "~14.11.0-0", - "rc-tree": "~5.8.1", - "rc-util": "^5.16.1" - }, - "peerDependencies": { - "react": "*", - "react-dom": "*" - } - }, - "node_modules/rc-upload": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/rc-upload/-/rc-upload-4.5.2.tgz", - "integrity": "sha512-QO3ne77DwnAPKFn0bA5qJM81QBjQi0e0NHdkvpFyY73Bea2NfITiotqJqVjHgeYPOJu5lLVR32TNGP084aSoXA==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.18.3", - "classnames": "^2.2.5", - "rc-util": "^5.2.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-util": { - "version": "5.44.4", - "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.44.4.tgz", - "integrity": "sha512-resueRJzmHG9Q6rI/DfK6Kdv9/Lfls05vzMs1Sk3M2P+3cJa+MakaZyWY8IPfehVuhPJFKrIY1IK4GqbiaiY5w==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.18.3", - "react-is": "^18.2.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-virtual-list": { - "version": "3.19.2", - "resolved": "https://registry.npmjs.org/rc-virtual-list/-/rc-virtual-list-3.19.2.tgz", - "integrity": "sha512-Ys6NcjwGkuwkeaWBDqfI3xWuZ7rDiQXlH1o2zLfFzATfEgXcqpk8CkgMfbJD81McqjcJVez25a3kPxCR807evA==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.20.0", - "classnames": "^2.2.6", - "rc-resize-observer": "^1.0.0", - "rc-util": "^5.36.0" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/react": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/react/-/react-19.0.0.tgz", - "integrity": "sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-device-detect": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/react-device-detect/-/react-device-detect-2.2.3.tgz", - "integrity": "sha512-buYY3qrCnQVlIFHrC5UcUoAj7iANs/+srdkwsnNjI7anr3Tt7UY6MqNxtMLlr0tMBied0O49UZVK8XKs3ZIiPw==", - "license": "MIT", - "dependencies": { - "ua-parser-js": "^1.0.33" - }, - "peerDependencies": { - "react": ">= 0.14.0", - "react-dom": ">= 0.14.0" - } - }, - "node_modules/react-docgen": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/react-docgen/-/react-docgen-7.1.1.tgz", - "integrity": "sha512-hlSJDQ2synMPKFZOsKo9Hi8WWZTC7POR8EmWvTSjow+VDgKzkmjQvFm2fk0tmRw+f0vTOIYKlarR0iL4996pdg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.18.9", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9", - "@types/babel__core": "^7.18.0", - "@types/babel__traverse": "^7.18.0", - "@types/doctrine": "^0.0.9", - "@types/resolve": "^1.20.2", - "doctrine": "^3.0.0", - "resolve": "^1.22.1", - "strip-indent": "^4.0.0" - }, - "engines": { - "node": ">=16.14.0" - } - }, - "node_modules/react-docgen-typescript": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/react-docgen-typescript/-/react-docgen-typescript-2.4.0.tgz", - "integrity": "sha512-ZtAp5XTO5HRzQctjPU0ybY0RRCQO19X/8fxn3w7y2VVTUbGHDKULPTL4ky3vB05euSgG5NpALhEhDPvQ56wvXg==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "typescript": ">= 4.3.x" - } - }, - "node_modules/react-dom": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0.tgz", - "integrity": "sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==", - "license": "MIT", - "dependencies": { - "scheduler": "^0.25.0" - }, - "peerDependencies": { - "react": "^19.0.0" - } - }, - "node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "license": "MIT" - }, - "node_modules/readdirp": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", - "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14.18.0" - }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/recast": { - "version": "0.23.11", - "resolved": "https://registry.npmjs.org/recast/-/recast-0.23.11.tgz", - "integrity": "sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ast-types": "^0.16.1", - "esprima": "~4.0.0", - "source-map": "~0.6.1", - "tiny-invariant": "^1.3.3", - "tslib": "^2.0.1" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/resize-observer-polyfill": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", - "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==", - "license": "MIT" - }, - "node_modules/resolve": { - "version": "1.22.11", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", - "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-core-module": "^2.16.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/rollup": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.59.0.tgz", - "integrity": "sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "1.0.8" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.59.0", - "@rollup/rollup-android-arm64": "4.59.0", - "@rollup/rollup-darwin-arm64": "4.59.0", - "@rollup/rollup-darwin-x64": "4.59.0", - "@rollup/rollup-freebsd-arm64": "4.59.0", - "@rollup/rollup-freebsd-x64": "4.59.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.59.0", - "@rollup/rollup-linux-arm-musleabihf": "4.59.0", - "@rollup/rollup-linux-arm64-gnu": "4.59.0", - "@rollup/rollup-linux-arm64-musl": "4.59.0", - "@rollup/rollup-linux-loong64-gnu": "4.59.0", - "@rollup/rollup-linux-loong64-musl": "4.59.0", - "@rollup/rollup-linux-ppc64-gnu": "4.59.0", - "@rollup/rollup-linux-ppc64-musl": "4.59.0", - "@rollup/rollup-linux-riscv64-gnu": "4.59.0", - "@rollup/rollup-linux-riscv64-musl": "4.59.0", - "@rollup/rollup-linux-s390x-gnu": "4.59.0", - "@rollup/rollup-linux-x64-gnu": "4.59.0", - "@rollup/rollup-linux-x64-musl": "4.59.0", - "@rollup/rollup-openbsd-x64": "4.59.0", - "@rollup/rollup-openharmony-arm64": "4.59.0", - "@rollup/rollup-win32-arm64-msvc": "4.59.0", - "@rollup/rollup-win32-ia32-msvc": "4.59.0", - "@rollup/rollup-win32-x64-gnu": "4.59.0", - "@rollup/rollup-win32-x64-msvc": "4.59.0", - "fsevents": "~2.3.2" - } - }, - "node_modules/safe-regex-test": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", - "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "is-regex": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/sass": { - "version": "1.83.4", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.83.4.tgz", - "integrity": "sha512-B1bozCeNQiOgDcLd33e2Cs2U60wZwjUUXzh900ZyQF5qUasvMdDZYbQ566LJu7cqR+sAHlAfO6RMkaID5s6qpA==", - "dev": true, - "license": "MIT", - "dependencies": { - "chokidar": "^4.0.0", - "immutable": "^5.0.2", - "source-map-js": ">=0.6.2 <2.0.0" - }, - "bin": { - "sass": "sass.js" - }, - "engines": { - "node": ">=14.0.0" - }, - "optionalDependencies": { - "@parcel/watcher": "^2.4.1" - } - }, - "node_modules/scheduler": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0.tgz", - "integrity": "sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==", - "license": "MIT" - }, - "node_modules/scroll-into-view-if-needed": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.1.0.tgz", - "integrity": "sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==", - "license": "MIT", - "dependencies": { - "compute-scroll-into-view": "^3.0.2" - } - }, - "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/storybook": { - "version": "8.6.14", - "resolved": "https://registry.npmjs.org/storybook/-/storybook-8.6.14.tgz", - "integrity": "sha512-sVKbCj/OTx67jhmauhxc2dcr1P+yOgz/x3h0krwjyMgdc5Oubvxyg4NYDZmzAw+ym36g/lzH8N0Ccp4dwtdfxw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/core": "8.6.14" - }, - "bin": { - "getstorybook": "bin/index.cjs", - "sb": "bin/index.cjs", - "storybook": "bin/index.cjs" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "prettier": "^2 || ^3" - }, - "peerDependenciesMeta": { - "prettier": { - "optional": true - } - } - }, - "node_modules/string-convert": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/string-convert/-/string-convert-0.2.1.tgz", - "integrity": "sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A==", - "license": "MIT" - }, - "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/string-width-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", - "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.2.2" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-indent": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.1.1.tgz", - "integrity": "sha512-SlyRoSkdh1dYP0PzclLE7r0M9sgbFKKMFXpFRUMNuKhQSbC6VQIGzq3E0qsfvGJaUFJPGv6Ws1NZ/haTAjfbMA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/stylis": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.6.tgz", - "integrity": "sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==", - "license": "MIT" - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/throttle-debounce": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-5.0.2.tgz", - "integrity": "sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A==", - "license": "MIT", - "engines": { - "node": ">=12.22" - } - }, - "node_modules/tiny-invariant": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", - "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", - "dev": true, - "license": "MIT" - }, - "node_modules/toggle-selection": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", - "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==", - "license": "MIT" - }, - "node_modules/ts-dedent": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz", - "integrity": "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.10" - } - }, - "node_modules/tsconfig-paths": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", - "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", - "dev": true, - "license": "MIT", - "dependencies": { - "json5": "^2.2.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD" - }, - "node_modules/typescript": { - "version": "5.9.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz", - "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/ua-parser-js": { - "version": "1.0.41", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.41.tgz", - "integrity": "sha512-LbBDqdIC5s8iROCUjMbW1f5dJQTEFB1+KO9ogbvlb3nm9n4YHa5p4KTvFPWvh2Hs8gZMBuiB1/8+pdfe/tDPug==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/ua-parser-js" - }, - { - "type": "paypal", - "url": "https://paypal.me/faisalman" - }, - { - "type": "github", - "url": "https://github.com/sponsors/faisalman" - } - ], - "license": "MIT", - "bin": { - "ua-parser-js": "script/cli.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/undici-types": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", - "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", - "dev": true, - "license": "MIT" - }, - "node_modules/unplugin": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.16.1.tgz", - "integrity": "sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==", - "dev": true, - "license": "MIT", - "dependencies": { - "acorn": "^8.14.0", - "webpack-virtual-modules": "^0.6.2" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", - "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "escalade": "^3.2.0", - "picocolors": "^1.1.1" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/util": { - "version": "0.12.5", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", - "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "which-typed-array": "^1.1.2" - } - }, - "node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "dev": true, - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/video.js": { - "version": "8.23.4", - "resolved": "https://registry.npmjs.org/video.js/-/video.js-8.23.4.tgz", - "integrity": "sha512-qI0VTlYmKzEqRsz1Nppdfcaww4RSxZAq77z2oNSl3cNg2h6do5C8Ffl0KqWQ1OpD8desWXsCrde7tKJ9gGTEyQ==", - "license": "Apache-2.0", - "dependencies": { - "@babel/runtime": "^7.12.5", - "@videojs/http-streaming": "^3.17.2", - "@videojs/vhs-utils": "^4.1.1", - "@videojs/xhr": "2.7.0", - "aes-decrypter": "^4.0.2", - "global": "4.4.0", - "m3u8-parser": "^7.2.0", - "mpd-parser": "^1.3.1", - "mux.js": "^7.0.1", - "videojs-contrib-quality-levels": "4.1.0", - "videojs-font": "4.2.0", - "videojs-vtt.js": "0.15.5" - } - }, - "node_modules/videojs-contrib-quality-levels": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/videojs-contrib-quality-levels/-/videojs-contrib-quality-levels-4.1.0.tgz", - "integrity": "sha512-TfrXJJg1Bv4t6TOCMEVMwF/CoS8iENYsWNKip8zfhB5kTcegiFYezEA0eHAJPU64ZC8NQbxQgOwAsYU8VXbOWA==", - "license": "Apache-2.0", - "dependencies": { - "global": "^4.4.0" - }, - "engines": { - "node": ">=16", - "npm": ">=8" - }, - "peerDependencies": { - "video.js": "^8" - } - }, - "node_modules/videojs-font": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/videojs-font/-/videojs-font-4.2.0.tgz", - "integrity": "sha512-YPq+wiKoGy2/M7ccjmlvwi58z2xsykkkfNMyIg4xb7EZQQNwB71hcSsB3o75CqQV7/y5lXkXhI/rsGAS7jfEmQ==", - "license": "Apache-2.0" - }, - "node_modules/videojs-vtt.js": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/videojs-vtt.js/-/videojs-vtt.js-0.15.5.tgz", - "integrity": "sha512-yZbBxvA7QMYn15Lr/ZfhhLPrNpI/RmCSCqgIff57GC2gIrV5YfyzLfLyZMj0NnZSAz8syB4N0nHXpZg9MyrMOQ==", - "license": "Apache-2.0", - "dependencies": { - "global": "^4.3.1" - } - }, - "node_modules/vite": { - "version": "5.4.14", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.14.tgz", - "integrity": "sha512-EK5cY7Q1D8JNhSaPKVK4pwBFvaTmZxEnoKXLG/U9gmdDcihQGNzFlgIvaxezFR4glP1LsuiedwMBqCXH3wZccA==", - "dev": true, - "license": "MIT", - "dependencies": { - "esbuild": "^0.21.3", - "postcss": "^8.4.43", - "rollup": "^4.20.0" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "sass-embedded": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } - } - }, - "node_modules/vite/node_modules/@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/esbuild": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", - "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.21.5", - "@esbuild/android-arm": "0.21.5", - "@esbuild/android-arm64": "0.21.5", - "@esbuild/android-x64": "0.21.5", - "@esbuild/darwin-arm64": "0.21.5", - "@esbuild/darwin-x64": "0.21.5", - "@esbuild/freebsd-arm64": "0.21.5", - "@esbuild/freebsd-x64": "0.21.5", - "@esbuild/linux-arm": "0.21.5", - "@esbuild/linux-arm64": "0.21.5", - "@esbuild/linux-ia32": "0.21.5", - "@esbuild/linux-loong64": "0.21.5", - "@esbuild/linux-mips64el": "0.21.5", - "@esbuild/linux-ppc64": "0.21.5", - "@esbuild/linux-riscv64": "0.21.5", - "@esbuild/linux-s390x": "0.21.5", - "@esbuild/linux-x64": "0.21.5", - "@esbuild/netbsd-x64": "0.21.5", - "@esbuild/openbsd-x64": "0.21.5", - "@esbuild/sunos-x64": "0.21.5", - "@esbuild/win32-arm64": "0.21.5", - "@esbuild/win32-ia32": "0.21.5", - "@esbuild/win32-x64": "0.21.5" - } - }, - "node_modules/webpack-virtual-modules": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz", - "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.20", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.20.tgz", - "integrity": "sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==", - "dev": true, - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "for-each": "^0.3.5", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/wrap-ansi-cjs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ws": { - "version": "8.19.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz", - "integrity": "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true, - "license": "ISC" - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - } -} diff --git a/package.json b/package.json index be23c04..9c68b10 100644 --- a/package.json +++ b/package.json @@ -1,88 +1,26 @@ { - "name": "@tach/video-player", - "version": "0.0.1", - "type": "module", - "main": "./dist/react/index.js", - "types": "./dist/react/index.d.ts", - "sideEffects": true, - "files": [ - "dist", - "README.md" + "name": "@hublib-web/root", + "private": true, + "packageManager": "yarn@4.12.0", + "workspaces": [ + "packages/*" ], "scripts": { - "build": "node ./scripts/build.mjs", - "typecheck": "tsc -p ./tsconfig.build.json --noEmit", - "storybook": "storybook dev -p 6006", - "build-storybook": "storybook build", - "prepack": "npm run build", - "release:patch": "npm run build && npm version patch", - "release:minor": "npm run build && npm version minor", - "release:major": "npm run build && npm version major" - }, - "exports": { - "./package.json": "./package.json", - "./core": { - "types": "./dist/core/index.d.ts", - "import": "./dist/core/index.js", - "default": "./dist/core/index.js" - }, - "./react": { - "types": "./dist/react/index.d.ts", - "import": "./dist/react/index.js", - "default": "./dist/react/index.js" - }, - "./angular": { - "types": "./dist/angular/index.d.ts", - "import": "./dist/angular/index.js", - "default": "./dist/angular/index.js" - } - }, - "dependencies": { - "@ant-design/icons": "5.3.7", - "antd": "5.14.2", - "classnames": "2.5.1", - "hls.js": "1.6.14", - "lodash": "4.17.21", - "qr-scanner": "1.4.2", - "react-device-detect": "2.2.3", - "video.js": "8.23.4" - }, - "peerDependencies": { - "@angular/common": "^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0", - "@angular/core": "^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0", - "@angular/forms": "^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0", - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@angular/common": { - "optional": true - }, - "@angular/core": { - "optional": true - }, - "@angular/forms": { - "optional": true - }, - "react": { - "optional": true - }, - "react-dom": { - "optional": true - } + "build": "yarn workspaces foreach -A -p --topological-dev run build", + "typecheck": "yarn workspaces foreach -A -p --topological-dev run typecheck", + "test": "yarn workspaces foreach -A -p --topological-dev run test", + "clean": "yarn workspaces foreach -A -p --topological-dev run clean", + "lint": "yarn workspaces foreach -A -p --topological-dev run lint" }, "devDependencies": { + "@eslint/js": "^9.37.0", "@storybook/addon-essentials": "8.6.14", - "@storybook/react": "8.6.14", "@storybook/react-vite": "8.6.14", - "@types/node": "22.12.0", - "@types/react": "19.0.2", - "@types/react-dom": "19.0.2", - "react": "19.0.0", - "react-dom": "19.0.0", - "sass": "1.83.4", + "@types/node": "^24.6.1", + "eslint": "^9.37.0", + "prettier": "^3.6.2", "storybook": "8.6.14", - "typescript": "5.9.2", - "vite": "5.4.14" + "typescript": "^5.9.3", + "vitest": "^3.2.4" } } diff --git a/packages/content-suggestions/.storybook/main.ts b/packages/content-suggestions/.storybook/main.ts new file mode 100644 index 0000000..0d45885 --- /dev/null +++ b/packages/content-suggestions/.storybook/main.ts @@ -0,0 +1,18 @@ +import type { StorybookConfig } from "@storybook/react-vite"; + +const config: StorybookConfig = { + stories: ["../src/**/*.stories.@(ts|tsx)"], + addons: ["@storybook/addon-essentials"], + framework: { + name: "@storybook/react-vite", + options: {}, + }, + docs: { + autodocs: "tag", + }, + core: { + disableTelemetry: true, + }, +}; + +export default config; diff --git a/packages/content-suggestions/.storybook/preview.ts b/packages/content-suggestions/.storybook/preview.ts new file mode 100644 index 0000000..d335df9 --- /dev/null +++ b/packages/content-suggestions/.storybook/preview.ts @@ -0,0 +1,19 @@ +import type { Preview } from "@storybook/react"; + +import "antd/dist/reset.css"; +import "@hublib-web/tach-typography/styles.css"; + +const preview: Preview = { + parameters: { + layout: "padded", + controls: { + expanded: true, + sort: "requiredFirst", + }, + actions: { + argTypesRegex: "^on[A-Z].*", + }, + }, +}; + +export default preview; diff --git a/packages/content-suggestions/README.md b/packages/content-suggestions/README.md new file mode 100644 index 0000000..752d746 --- /dev/null +++ b/packages/content-suggestions/README.md @@ -0,0 +1,98 @@ +# @hublib-web/content-suggestions + +Cross-framework content text/title renderer with support for mentions, tags and links. + +## Features + +- Shared parser in `core` (`findAllEntities`, `findMentions`, `findTags`, `findLinks`). +- React UI components in `react`: + - `ContentText` + - `ContentTextWithSuggestions` + - `ContentTitleWithSuggestions` +- Angular adapter in `angular` for rendering/tokenization integration. +- Depends on `@hublib-web/tach-typography` for visual consistency. +- Business logic (API requests for mentions/tags) stays in consumer application. + +## Install from Git (SSH tag) + +```bash +yarn add "@hublib-web/content-suggestions@git+ssh://git@github.com/ORG/REPO.git#workspace=@hublib-web/content-suggestions&tag=content-suggestions-v0.1.0" +``` + +`@hublib-web/tach-typography` is a peer dependency, so install a compatible tag for it as well. + +## Install inside this monorepo + +```bash +yarn add @hublib-web/content-suggestions +``` + +## Release this package + +1. Bump `version` in `packages/content-suggestions/package.json`. +2. Build package artifacts: + +```bash +yarn workspace @hublib-web/content-suggestions build +``` + +3. Commit release files: + +```bash +git add packages/content-suggestions/package.json packages/content-suggestions/dist +git commit -m "release(content-suggestions): v0.1.0" +``` + +4. Create and push tag: + +```bash +git tag -a content-suggestions-v0.1.0 -m "@hublib-web/content-suggestions v0.1.0" +git push origin main --follow-tags +``` + +Detailed docs: + +- [Release policy](../../docs/release-policy.md) +- [Git installation](../../docs/git-installation.md) + +## React usage + +```tsx +import { ContentTextWithSuggestions } from "@hublib-web/content-suggestions/react"; + +; +``` + +With app-specific mention business logic: + +```tsx + } + renderTag={(entity) => } +/>; +``` + +By default, tags are rendered as plain styled text (not links). + +## Angular usage + +```ts +import { createAngularContentTokens } from "@hublib-web/content-suggestions/angular"; + +const tokens = createAngularContentTokens(text); +``` + +## Storybook (dev/design system) + +Run from repository root: + +```bash +yarn workspace @hublib-web/content-suggestions storybook +``` + +Build static Storybook: + +```bash +yarn workspace @hublib-web/content-suggestions storybook:build +``` diff --git a/packages/content-suggestions/dist/angular/index.cjs b/packages/content-suggestions/dist/angular/index.cjs new file mode 100644 index 0000000..979739f --- /dev/null +++ b/packages/content-suggestions/dist/angular/index.cjs @@ -0,0 +1,141 @@ +'use strict'; + +// src/core/parser.ts +var mentionLinkRegexp = /@\[[^\]]+]\([0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}\)/g; +var parseMention = (mention) => { + const regex = /@\[([^\]]+)\]\(([\w-]{36})\)/; + const match = mention.match(regex); + if (!match) { + return null; + } + const mentionText = match[1]; + const mentionId = match[2]; + if (!mentionText || !mentionId) { + return null; + } + return { + mention: `@${mentionText}`, + id: mentionId + }; +}; +var findMentions = (text) => { + let match; + const matches = []; + while ((match = mentionLinkRegexp.exec(text)) !== null) { + const parsed = parseMention(match[0]); + const baseMention = { + start: match.index, + end: mentionLinkRegexp.lastIndex, + text: match[0], + type: "mention", + displayText: parsed?.mention ?? match[0] + }; + matches.push(parsed?.id ? { ...baseMention, userId: parsed.id } : baseMention); + } + return matches; +}; +var findTags = (content) => { + const regex = /#[^\s]{1,201}/g; + const results = []; + let match; + while ((match = regex.exec(content)) !== null) { + const value = match[0]; + results.push({ + start: match.index, + end: match.index + value.length, + text: value, + type: "tag", + tag: value.replace("#", "") + }); + } + return results; +}; +var findLinks = (content) => { + const regex = /\b((https?:\/\/)?(?:[\w-]+\.)+[a-z]{2,}(\/[\w\-._~:/?#[\]@!$&'()*+,;=]*)?)/gi; + const results = []; + let match; + while ((match = regex.exec(content)) !== null) { + const rawUrl = match[0]; + const hasProtocol = /^https?:\/\//i.test(rawUrl); + const fullUrl = hasProtocol ? rawUrl : `https://${rawUrl}`; + results.push({ + start: match.index, + end: match.index + rawUrl.length, + text: rawUrl, + url: fullUrl, + type: "link" + }); + } + return results; +}; +var findAllEntities = (content) => { + const mentions = findMentions(content); + const tags = findTags(content); + const links = findLinks(content); + return [...mentions, ...tags, ...links].sort((a, b) => a.start - b.start); +}; + +// src/angular/index.ts +var buildAngularTagHref = (entity) => { + return `/search/?query=${encodeURIComponent(entity.tag.toLowerCase())}`; +}; +var createAngularContentTokens = (inputText) => { + const text = inputText ?? ""; + const entities = findAllEntities(text); + let cursor = 0; + const tokens = []; + for (const entity of entities) { + if (entity.start > cursor) { + tokens.push({ + kind: "text", + text: text.slice(cursor, entity.start), + start: cursor, + end: entity.start + }); + } + if (entity.type === "mention") { + tokens.push({ + kind: "mention", + entity + }); + } else if (entity.type === "tag") { + tokens.push({ + kind: "tag", + entity + }); + } else { + tokens.push({ + kind: "link", + entity + }); + } + cursor = entity.end; + } + if (cursor < text.length) { + tokens.push({ + kind: "text", + text: text.slice(cursor), + start: cursor, + end: text.length + }); + } + return tokens; +}; +var AngularContentSuggestionsAdapter = class { + snapshot(inputText) { + const text = inputText ?? ""; + const entities = findAllEntities(text); + const tokens = createAngularContentTokens(text); + return { + text, + entities, + tokens + }; + } +}; + +exports.AngularContentSuggestionsAdapter = AngularContentSuggestionsAdapter; +exports.buildAngularTagHref = buildAngularTagHref; +exports.createAngularContentTokens = createAngularContentTokens; +//# sourceMappingURL=index.cjs.map +//# sourceMappingURL=index.cjs.map \ No newline at end of file diff --git a/packages/content-suggestions/dist/angular/index.cjs.map b/packages/content-suggestions/dist/angular/index.cjs.map new file mode 100644 index 0000000..da09da4 --- /dev/null +++ b/packages/content-suggestions/dist/angular/index.cjs.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../src/core/parser.ts","../../src/angular/index.ts"],"names":[],"mappings":"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","file":"index.cjs","sourcesContent":["import type {\n ContentEntity,\n LinkEntity,\n MentionEntity,\n ParsedMention,\n ProcessedContent,\n TagEntity,\n} from \"./types\";\n\nexport const mentionLinkRegexp =\n /@\\[[^\\]]+]\\([0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}\\)/g;\n\nexport const parseMention = (mention: string): ParsedMention | null => {\n const regex = /@\\[([^\\]]+)\\]\\(([\\w-]{36})\\)/;\n const match = mention.match(regex);\n\n if (!match) {\n return null;\n }\n\n const mentionText = match[1];\n const mentionId = match[2];\n if (!mentionText || !mentionId) {\n return null;\n }\n\n return {\n mention: `@${mentionText}`,\n id: mentionId,\n };\n};\n\nexport const findMentions = (text: string): MentionEntity[] => {\n let match: RegExpExecArray | null;\n const matches: MentionEntity[] = [];\n\n while ((match = mentionLinkRegexp.exec(text)) !== null) {\n const parsed = parseMention(match[0]);\n const baseMention: Omit = {\n start: match.index,\n end: mentionLinkRegexp.lastIndex,\n text: match[0],\n type: \"mention\",\n displayText: parsed?.mention ?? match[0],\n };\n\n matches.push(parsed?.id ? { ...baseMention, userId: parsed.id } : baseMention);\n }\n\n return matches;\n};\n\nexport const findTags = (content: string): TagEntity[] => {\n const regex = /#[^\\s]{1,201}/g;\n const results: TagEntity[] = [];\n let match: RegExpExecArray | null;\n\n while ((match = regex.exec(content)) !== null) {\n const value = match[0];\n results.push({\n start: match.index,\n end: match.index + value.length,\n text: value,\n type: \"tag\",\n tag: value.replace(\"#\", \"\"),\n });\n }\n\n return results;\n};\n\nexport const findLinks = (content: string): LinkEntity[] => {\n const regex =\n /\\b((https?:\\/\\/)?(?:[\\w-]+\\.)+[a-z]{2,}(\\/[\\w\\-._~:/?#[\\]@!$&'()*+,;=]*)?)/gi;\n const results: LinkEntity[] = [];\n let match: RegExpExecArray | null;\n\n while ((match = regex.exec(content)) !== null) {\n const rawUrl = match[0];\n const hasProtocol = /^https?:\\/\\//i.test(rawUrl);\n const fullUrl = hasProtocol ? rawUrl : `https://${rawUrl}`;\n\n results.push({\n start: match.index,\n end: match.index + rawUrl.length,\n text: rawUrl,\n url: fullUrl,\n type: \"link\",\n });\n }\n\n return results;\n};\n\nexport const findAllEntities = (content: string): ContentEntity[] => {\n const mentions = findMentions(content);\n const tags = findTags(content);\n const links = findLinks(content);\n\n return [...mentions, ...tags, ...links].sort((a, b) => a.start - b.start);\n};\n\nexport const processContent = (content: string): ProcessedContent => {\n const processedText = content.replace(mentionLinkRegexp, match => {\n const parsed = parseMention(match);\n return parsed ? parsed.mention : match;\n });\n\n const tags = findTags(content).map(tag => tag.tag);\n\n return {\n processedText,\n tags,\n };\n};\n","import type { ContentEntity, LinkEntity, MentionEntity, TagEntity } from \"../core\";\n\nimport { findAllEntities } from \"../core\";\n\nexport interface AngularTextToken {\n kind: \"text\";\n text: string;\n start: number;\n end: number;\n}\n\nexport interface AngularMentionToken {\n kind: \"mention\";\n entity: MentionEntity;\n}\n\nexport interface AngularTagToken {\n kind: \"tag\";\n entity: TagEntity;\n}\n\nexport interface AngularLinkToken {\n kind: \"link\";\n entity: LinkEntity;\n}\n\nexport type AngularContentToken =\n | AngularTextToken\n | AngularMentionToken\n | AngularTagToken\n | AngularLinkToken;\n\nexport interface AngularContentSnapshot {\n text: string;\n entities: ContentEntity[];\n tokens: AngularContentToken[];\n}\n\nexport const buildAngularTagHref = (entity: TagEntity): string => {\n return `/search/?query=${encodeURIComponent(entity.tag.toLowerCase())}`;\n};\n\nexport const createAngularContentTokens = (\n inputText: string | null | undefined,\n): AngularContentToken[] => {\n const text = inputText ?? \"\";\n const entities = findAllEntities(text);\n\n let cursor = 0;\n const tokens: AngularContentToken[] = [];\n\n for (const entity of entities) {\n if (entity.start > cursor) {\n tokens.push({\n kind: \"text\",\n text: text.slice(cursor, entity.start),\n start: cursor,\n end: entity.start,\n });\n }\n\n if (entity.type === \"mention\") {\n tokens.push({\n kind: \"mention\",\n entity,\n });\n } else if (entity.type === \"tag\") {\n tokens.push({\n kind: \"tag\",\n entity,\n });\n } else {\n tokens.push({\n kind: \"link\",\n entity,\n });\n }\n\n cursor = entity.end;\n }\n\n if (cursor < text.length) {\n tokens.push({\n kind: \"text\",\n text: text.slice(cursor),\n start: cursor,\n end: text.length,\n });\n }\n\n return tokens;\n};\n\nexport class AngularContentSuggestionsAdapter {\n snapshot(inputText: string | null | undefined): AngularContentSnapshot {\n const text = inputText ?? \"\";\n const entities = findAllEntities(text);\n const tokens = createAngularContentTokens(text);\n\n return {\n text,\n entities,\n tokens,\n };\n }\n}\n"]} \ No newline at end of file diff --git a/packages/content-suggestions/dist/angular/index.d.cts b/packages/content-suggestions/dist/angular/index.d.cts new file mode 100644 index 0000000..9c7131a --- /dev/null +++ b/packages/content-suggestions/dist/angular/index.d.cts @@ -0,0 +1,33 @@ +import { C as ContentEntity, M as MentionEntity, T as TagEntity, L as LinkEntity } from '../types-BRt4hd7A.cjs'; + +interface AngularTextToken { + kind: "text"; + text: string; + start: number; + end: number; +} +interface AngularMentionToken { + kind: "mention"; + entity: MentionEntity; +} +interface AngularTagToken { + kind: "tag"; + entity: TagEntity; +} +interface AngularLinkToken { + kind: "link"; + entity: LinkEntity; +} +type AngularContentToken = AngularTextToken | AngularMentionToken | AngularTagToken | AngularLinkToken; +interface AngularContentSnapshot { + text: string; + entities: ContentEntity[]; + tokens: AngularContentToken[]; +} +declare const buildAngularTagHref: (entity: TagEntity) => string; +declare const createAngularContentTokens: (inputText: string | null | undefined) => AngularContentToken[]; +declare class AngularContentSuggestionsAdapter { + snapshot(inputText: string | null | undefined): AngularContentSnapshot; +} + +export { type AngularContentSnapshot, AngularContentSuggestionsAdapter, type AngularContentToken, type AngularLinkToken, type AngularMentionToken, type AngularTagToken, type AngularTextToken, buildAngularTagHref, createAngularContentTokens }; diff --git a/packages/content-suggestions/dist/angular/index.d.ts b/packages/content-suggestions/dist/angular/index.d.ts new file mode 100644 index 0000000..3652c24 --- /dev/null +++ b/packages/content-suggestions/dist/angular/index.d.ts @@ -0,0 +1,33 @@ +import { C as ContentEntity, M as MentionEntity, T as TagEntity, L as LinkEntity } from '../types-BRt4hd7A.js'; + +interface AngularTextToken { + kind: "text"; + text: string; + start: number; + end: number; +} +interface AngularMentionToken { + kind: "mention"; + entity: MentionEntity; +} +interface AngularTagToken { + kind: "tag"; + entity: TagEntity; +} +interface AngularLinkToken { + kind: "link"; + entity: LinkEntity; +} +type AngularContentToken = AngularTextToken | AngularMentionToken | AngularTagToken | AngularLinkToken; +interface AngularContentSnapshot { + text: string; + entities: ContentEntity[]; + tokens: AngularContentToken[]; +} +declare const buildAngularTagHref: (entity: TagEntity) => string; +declare const createAngularContentTokens: (inputText: string | null | undefined) => AngularContentToken[]; +declare class AngularContentSuggestionsAdapter { + snapshot(inputText: string | null | undefined): AngularContentSnapshot; +} + +export { type AngularContentSnapshot, AngularContentSuggestionsAdapter, type AngularContentToken, type AngularLinkToken, type AngularMentionToken, type AngularTagToken, type AngularTextToken, buildAngularTagHref, createAngularContentTokens }; diff --git a/packages/content-suggestions/dist/angular/index.js b/packages/content-suggestions/dist/angular/index.js new file mode 100644 index 0000000..a87f35b --- /dev/null +++ b/packages/content-suggestions/dist/angular/index.js @@ -0,0 +1,137 @@ +// src/core/parser.ts +var mentionLinkRegexp = /@\[[^\]]+]\([0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}\)/g; +var parseMention = (mention) => { + const regex = /@\[([^\]]+)\]\(([\w-]{36})\)/; + const match = mention.match(regex); + if (!match) { + return null; + } + const mentionText = match[1]; + const mentionId = match[2]; + if (!mentionText || !mentionId) { + return null; + } + return { + mention: `@${mentionText}`, + id: mentionId + }; +}; +var findMentions = (text) => { + let match; + const matches = []; + while ((match = mentionLinkRegexp.exec(text)) !== null) { + const parsed = parseMention(match[0]); + const baseMention = { + start: match.index, + end: mentionLinkRegexp.lastIndex, + text: match[0], + type: "mention", + displayText: parsed?.mention ?? match[0] + }; + matches.push(parsed?.id ? { ...baseMention, userId: parsed.id } : baseMention); + } + return matches; +}; +var findTags = (content) => { + const regex = /#[^\s]{1,201}/g; + const results = []; + let match; + while ((match = regex.exec(content)) !== null) { + const value = match[0]; + results.push({ + start: match.index, + end: match.index + value.length, + text: value, + type: "tag", + tag: value.replace("#", "") + }); + } + return results; +}; +var findLinks = (content) => { + const regex = /\b((https?:\/\/)?(?:[\w-]+\.)+[a-z]{2,}(\/[\w\-._~:/?#[\]@!$&'()*+,;=]*)?)/gi; + const results = []; + let match; + while ((match = regex.exec(content)) !== null) { + const rawUrl = match[0]; + const hasProtocol = /^https?:\/\//i.test(rawUrl); + const fullUrl = hasProtocol ? rawUrl : `https://${rawUrl}`; + results.push({ + start: match.index, + end: match.index + rawUrl.length, + text: rawUrl, + url: fullUrl, + type: "link" + }); + } + return results; +}; +var findAllEntities = (content) => { + const mentions = findMentions(content); + const tags = findTags(content); + const links = findLinks(content); + return [...mentions, ...tags, ...links].sort((a, b) => a.start - b.start); +}; + +// src/angular/index.ts +var buildAngularTagHref = (entity) => { + return `/search/?query=${encodeURIComponent(entity.tag.toLowerCase())}`; +}; +var createAngularContentTokens = (inputText) => { + const text = inputText ?? ""; + const entities = findAllEntities(text); + let cursor = 0; + const tokens = []; + for (const entity of entities) { + if (entity.start > cursor) { + tokens.push({ + kind: "text", + text: text.slice(cursor, entity.start), + start: cursor, + end: entity.start + }); + } + if (entity.type === "mention") { + tokens.push({ + kind: "mention", + entity + }); + } else if (entity.type === "tag") { + tokens.push({ + kind: "tag", + entity + }); + } else { + tokens.push({ + kind: "link", + entity + }); + } + cursor = entity.end; + } + if (cursor < text.length) { + tokens.push({ + kind: "text", + text: text.slice(cursor), + start: cursor, + end: text.length + }); + } + return tokens; +}; +var AngularContentSuggestionsAdapter = class { + snapshot(inputText) { + const text = inputText ?? ""; + const entities = findAllEntities(text); + const tokens = createAngularContentTokens(text); + return { + text, + entities, + tokens + }; + } +}; + +export { AngularContentSuggestionsAdapter, buildAngularTagHref, createAngularContentTokens }; +//# sourceMappingURL=index.js.map +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/packages/content-suggestions/dist/angular/index.js.map b/packages/content-suggestions/dist/angular/index.js.map new file mode 100644 index 0000000..755fe98 --- /dev/null +++ b/packages/content-suggestions/dist/angular/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../src/core/parser.ts","../../src/angular/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import type {\n ContentEntity,\n LinkEntity,\n MentionEntity,\n ParsedMention,\n ProcessedContent,\n TagEntity,\n} from \"./types\";\n\nexport const mentionLinkRegexp =\n /@\\[[^\\]]+]\\([0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}\\)/g;\n\nexport const parseMention = (mention: string): ParsedMention | null => {\n const regex = /@\\[([^\\]]+)\\]\\(([\\w-]{36})\\)/;\n const match = mention.match(regex);\n\n if (!match) {\n return null;\n }\n\n const mentionText = match[1];\n const mentionId = match[2];\n if (!mentionText || !mentionId) {\n return null;\n }\n\n return {\n mention: `@${mentionText}`,\n id: mentionId,\n };\n};\n\nexport const findMentions = (text: string): MentionEntity[] => {\n let match: RegExpExecArray | null;\n const matches: MentionEntity[] = [];\n\n while ((match = mentionLinkRegexp.exec(text)) !== null) {\n const parsed = parseMention(match[0]);\n const baseMention: Omit = {\n start: match.index,\n end: mentionLinkRegexp.lastIndex,\n text: match[0],\n type: \"mention\",\n displayText: parsed?.mention ?? match[0],\n };\n\n matches.push(parsed?.id ? { ...baseMention, userId: parsed.id } : baseMention);\n }\n\n return matches;\n};\n\nexport const findTags = (content: string): TagEntity[] => {\n const regex = /#[^\\s]{1,201}/g;\n const results: TagEntity[] = [];\n let match: RegExpExecArray | null;\n\n while ((match = regex.exec(content)) !== null) {\n const value = match[0];\n results.push({\n start: match.index,\n end: match.index + value.length,\n text: value,\n type: \"tag\",\n tag: value.replace(\"#\", \"\"),\n });\n }\n\n return results;\n};\n\nexport const findLinks = (content: string): LinkEntity[] => {\n const regex =\n /\\b((https?:\\/\\/)?(?:[\\w-]+\\.)+[a-z]{2,}(\\/[\\w\\-._~:/?#[\\]@!$&'()*+,;=]*)?)/gi;\n const results: LinkEntity[] = [];\n let match: RegExpExecArray | null;\n\n while ((match = regex.exec(content)) !== null) {\n const rawUrl = match[0];\n const hasProtocol = /^https?:\\/\\//i.test(rawUrl);\n const fullUrl = hasProtocol ? rawUrl : `https://${rawUrl}`;\n\n results.push({\n start: match.index,\n end: match.index + rawUrl.length,\n text: rawUrl,\n url: fullUrl,\n type: \"link\",\n });\n }\n\n return results;\n};\n\nexport const findAllEntities = (content: string): ContentEntity[] => {\n const mentions = findMentions(content);\n const tags = findTags(content);\n const links = findLinks(content);\n\n return [...mentions, ...tags, ...links].sort((a, b) => a.start - b.start);\n};\n\nexport const processContent = (content: string): ProcessedContent => {\n const processedText = content.replace(mentionLinkRegexp, match => {\n const parsed = parseMention(match);\n return parsed ? parsed.mention : match;\n });\n\n const tags = findTags(content).map(tag => tag.tag);\n\n return {\n processedText,\n tags,\n };\n};\n","import type { ContentEntity, LinkEntity, MentionEntity, TagEntity } from \"../core\";\n\nimport { findAllEntities } from \"../core\";\n\nexport interface AngularTextToken {\n kind: \"text\";\n text: string;\n start: number;\n end: number;\n}\n\nexport interface AngularMentionToken {\n kind: \"mention\";\n entity: MentionEntity;\n}\n\nexport interface AngularTagToken {\n kind: \"tag\";\n entity: TagEntity;\n}\n\nexport interface AngularLinkToken {\n kind: \"link\";\n entity: LinkEntity;\n}\n\nexport type AngularContentToken =\n | AngularTextToken\n | AngularMentionToken\n | AngularTagToken\n | AngularLinkToken;\n\nexport interface AngularContentSnapshot {\n text: string;\n entities: ContentEntity[];\n tokens: AngularContentToken[];\n}\n\nexport const buildAngularTagHref = (entity: TagEntity): string => {\n return `/search/?query=${encodeURIComponent(entity.tag.toLowerCase())}`;\n};\n\nexport const createAngularContentTokens = (\n inputText: string | null | undefined,\n): AngularContentToken[] => {\n const text = inputText ?? \"\";\n const entities = findAllEntities(text);\n\n let cursor = 0;\n const tokens: AngularContentToken[] = [];\n\n for (const entity of entities) {\n if (entity.start > cursor) {\n tokens.push({\n kind: \"text\",\n text: text.slice(cursor, entity.start),\n start: cursor,\n end: entity.start,\n });\n }\n\n if (entity.type === \"mention\") {\n tokens.push({\n kind: \"mention\",\n entity,\n });\n } else if (entity.type === \"tag\") {\n tokens.push({\n kind: \"tag\",\n entity,\n });\n } else {\n tokens.push({\n kind: \"link\",\n entity,\n });\n }\n\n cursor = entity.end;\n }\n\n if (cursor < text.length) {\n tokens.push({\n kind: \"text\",\n text: text.slice(cursor),\n start: cursor,\n end: text.length,\n });\n }\n\n return tokens;\n};\n\nexport class AngularContentSuggestionsAdapter {\n snapshot(inputText: string | null | undefined): AngularContentSnapshot {\n const text = inputText ?? \"\";\n const entities = findAllEntities(text);\n const tokens = createAngularContentTokens(text);\n\n return {\n text,\n entities,\n tokens,\n };\n }\n}\n"]} \ No newline at end of file diff --git a/packages/content-suggestions/dist/core/index.cjs b/packages/content-suggestions/dist/core/index.cjs new file mode 100644 index 0000000..e5b5fc0 --- /dev/null +++ b/packages/content-suggestions/dist/core/index.cjs @@ -0,0 +1,97 @@ +'use strict'; + +// src/core/parser.ts +var mentionLinkRegexp = /@\[[^\]]+]\([0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}\)/g; +var parseMention = (mention) => { + const regex = /@\[([^\]]+)\]\(([\w-]{36})\)/; + const match = mention.match(regex); + if (!match) { + return null; + } + const mentionText = match[1]; + const mentionId = match[2]; + if (!mentionText || !mentionId) { + return null; + } + return { + mention: `@${mentionText}`, + id: mentionId + }; +}; +var findMentions = (text) => { + let match; + const matches = []; + while ((match = mentionLinkRegexp.exec(text)) !== null) { + const parsed = parseMention(match[0]); + const baseMention = { + start: match.index, + end: mentionLinkRegexp.lastIndex, + text: match[0], + type: "mention", + displayText: parsed?.mention ?? match[0] + }; + matches.push(parsed?.id ? { ...baseMention, userId: parsed.id } : baseMention); + } + return matches; +}; +var findTags = (content) => { + const regex = /#[^\s]{1,201}/g; + const results = []; + let match; + while ((match = regex.exec(content)) !== null) { + const value = match[0]; + results.push({ + start: match.index, + end: match.index + value.length, + text: value, + type: "tag", + tag: value.replace("#", "") + }); + } + return results; +}; +var findLinks = (content) => { + const regex = /\b((https?:\/\/)?(?:[\w-]+\.)+[a-z]{2,}(\/[\w\-._~:/?#[\]@!$&'()*+,;=]*)?)/gi; + const results = []; + let match; + while ((match = regex.exec(content)) !== null) { + const rawUrl = match[0]; + const hasProtocol = /^https?:\/\//i.test(rawUrl); + const fullUrl = hasProtocol ? rawUrl : `https://${rawUrl}`; + results.push({ + start: match.index, + end: match.index + rawUrl.length, + text: rawUrl, + url: fullUrl, + type: "link" + }); + } + return results; +}; +var findAllEntities = (content) => { + const mentions = findMentions(content); + const tags = findTags(content); + const links = findLinks(content); + return [...mentions, ...tags, ...links].sort((a, b) => a.start - b.start); +}; +var processContent = (content) => { + const processedText = content.replace(mentionLinkRegexp, (match) => { + const parsed = parseMention(match); + return parsed ? parsed.mention : match; + }); + const tags = findTags(content).map((tag) => tag.tag); + return { + processedText, + tags + }; +}; + +exports.findAllEntities = findAllEntities; +exports.findLinks = findLinks; +exports.findMentions = findMentions; +exports.findTags = findTags; +exports.mentionLinkRegexp = mentionLinkRegexp; +exports.parseMention = parseMention; +exports.processContent = processContent; +//# sourceMappingURL=index.cjs.map +//# sourceMappingURL=index.cjs.map \ No newline at end of file diff --git a/packages/content-suggestions/dist/core/index.cjs.map b/packages/content-suggestions/dist/core/index.cjs.map new file mode 100644 index 0000000..2254615 --- /dev/null +++ b/packages/content-suggestions/dist/core/index.cjs.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../src/core/parser.ts"],"names":[],"mappings":"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","file":"index.cjs","sourcesContent":["import type {\n ContentEntity,\n LinkEntity,\n MentionEntity,\n ParsedMention,\n ProcessedContent,\n TagEntity,\n} from \"./types\";\n\nexport const mentionLinkRegexp =\n /@\\[[^\\]]+]\\([0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}\\)/g;\n\nexport const parseMention = (mention: string): ParsedMention | null => {\n const regex = /@\\[([^\\]]+)\\]\\(([\\w-]{36})\\)/;\n const match = mention.match(regex);\n\n if (!match) {\n return null;\n }\n\n const mentionText = match[1];\n const mentionId = match[2];\n if (!mentionText || !mentionId) {\n return null;\n }\n\n return {\n mention: `@${mentionText}`,\n id: mentionId,\n };\n};\n\nexport const findMentions = (text: string): MentionEntity[] => {\n let match: RegExpExecArray | null;\n const matches: MentionEntity[] = [];\n\n while ((match = mentionLinkRegexp.exec(text)) !== null) {\n const parsed = parseMention(match[0]);\n const baseMention: Omit = {\n start: match.index,\n end: mentionLinkRegexp.lastIndex,\n text: match[0],\n type: \"mention\",\n displayText: parsed?.mention ?? match[0],\n };\n\n matches.push(parsed?.id ? { ...baseMention, userId: parsed.id } : baseMention);\n }\n\n return matches;\n};\n\nexport const findTags = (content: string): TagEntity[] => {\n const regex = /#[^\\s]{1,201}/g;\n const results: TagEntity[] = [];\n let match: RegExpExecArray | null;\n\n while ((match = regex.exec(content)) !== null) {\n const value = match[0];\n results.push({\n start: match.index,\n end: match.index + value.length,\n text: value,\n type: \"tag\",\n tag: value.replace(\"#\", \"\"),\n });\n }\n\n return results;\n};\n\nexport const findLinks = (content: string): LinkEntity[] => {\n const regex =\n /\\b((https?:\\/\\/)?(?:[\\w-]+\\.)+[a-z]{2,}(\\/[\\w\\-._~:/?#[\\]@!$&'()*+,;=]*)?)/gi;\n const results: LinkEntity[] = [];\n let match: RegExpExecArray | null;\n\n while ((match = regex.exec(content)) !== null) {\n const rawUrl = match[0];\n const hasProtocol = /^https?:\\/\\//i.test(rawUrl);\n const fullUrl = hasProtocol ? rawUrl : `https://${rawUrl}`;\n\n results.push({\n start: match.index,\n end: match.index + rawUrl.length,\n text: rawUrl,\n url: fullUrl,\n type: \"link\",\n });\n }\n\n return results;\n};\n\nexport const findAllEntities = (content: string): ContentEntity[] => {\n const mentions = findMentions(content);\n const tags = findTags(content);\n const links = findLinks(content);\n\n return [...mentions, ...tags, ...links].sort((a, b) => a.start - b.start);\n};\n\nexport const processContent = (content: string): ProcessedContent => {\n const processedText = content.replace(mentionLinkRegexp, match => {\n const parsed = parseMention(match);\n return parsed ? parsed.mention : match;\n });\n\n const tags = findTags(content).map(tag => tag.tag);\n\n return {\n processedText,\n tags,\n };\n};\n"]} \ No newline at end of file diff --git a/packages/content-suggestions/dist/core/index.d.cts b/packages/content-suggestions/dist/core/index.d.cts new file mode 100644 index 0000000..d87e74f --- /dev/null +++ b/packages/content-suggestions/dist/core/index.d.cts @@ -0,0 +1,12 @@ +import { C as ContentEntity, L as LinkEntity, M as MentionEntity, T as TagEntity, P as ParsedMention, a as ProcessedContent } from '../types-BRt4hd7A.cjs'; +export { B as BaseEntity } from '../types-BRt4hd7A.cjs'; + +declare const mentionLinkRegexp: RegExp; +declare const parseMention: (mention: string) => ParsedMention | null; +declare const findMentions: (text: string) => MentionEntity[]; +declare const findTags: (content: string) => TagEntity[]; +declare const findLinks: (content: string) => LinkEntity[]; +declare const findAllEntities: (content: string) => ContentEntity[]; +declare const processContent: (content: string) => ProcessedContent; + +export { ContentEntity, LinkEntity, MentionEntity, ParsedMention, ProcessedContent, TagEntity, findAllEntities, findLinks, findMentions, findTags, mentionLinkRegexp, parseMention, processContent }; diff --git a/packages/content-suggestions/dist/core/index.d.ts b/packages/content-suggestions/dist/core/index.d.ts new file mode 100644 index 0000000..d148594 --- /dev/null +++ b/packages/content-suggestions/dist/core/index.d.ts @@ -0,0 +1,12 @@ +import { C as ContentEntity, L as LinkEntity, M as MentionEntity, T as TagEntity, P as ParsedMention, a as ProcessedContent } from '../types-BRt4hd7A.js'; +export { B as BaseEntity } from '../types-BRt4hd7A.js'; + +declare const mentionLinkRegexp: RegExp; +declare const parseMention: (mention: string) => ParsedMention | null; +declare const findMentions: (text: string) => MentionEntity[]; +declare const findTags: (content: string) => TagEntity[]; +declare const findLinks: (content: string) => LinkEntity[]; +declare const findAllEntities: (content: string) => ContentEntity[]; +declare const processContent: (content: string) => ProcessedContent; + +export { ContentEntity, LinkEntity, MentionEntity, ParsedMention, ProcessedContent, TagEntity, findAllEntities, findLinks, findMentions, findTags, mentionLinkRegexp, parseMention, processContent }; diff --git a/packages/content-suggestions/dist/core/index.js b/packages/content-suggestions/dist/core/index.js new file mode 100644 index 0000000..258f405 --- /dev/null +++ b/packages/content-suggestions/dist/core/index.js @@ -0,0 +1,89 @@ +// src/core/parser.ts +var mentionLinkRegexp = /@\[[^\]]+]\([0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}\)/g; +var parseMention = (mention) => { + const regex = /@\[([^\]]+)\]\(([\w-]{36})\)/; + const match = mention.match(regex); + if (!match) { + return null; + } + const mentionText = match[1]; + const mentionId = match[2]; + if (!mentionText || !mentionId) { + return null; + } + return { + mention: `@${mentionText}`, + id: mentionId + }; +}; +var findMentions = (text) => { + let match; + const matches = []; + while ((match = mentionLinkRegexp.exec(text)) !== null) { + const parsed = parseMention(match[0]); + const baseMention = { + start: match.index, + end: mentionLinkRegexp.lastIndex, + text: match[0], + type: "mention", + displayText: parsed?.mention ?? match[0] + }; + matches.push(parsed?.id ? { ...baseMention, userId: parsed.id } : baseMention); + } + return matches; +}; +var findTags = (content) => { + const regex = /#[^\s]{1,201}/g; + const results = []; + let match; + while ((match = regex.exec(content)) !== null) { + const value = match[0]; + results.push({ + start: match.index, + end: match.index + value.length, + text: value, + type: "tag", + tag: value.replace("#", "") + }); + } + return results; +}; +var findLinks = (content) => { + const regex = /\b((https?:\/\/)?(?:[\w-]+\.)+[a-z]{2,}(\/[\w\-._~:/?#[\]@!$&'()*+,;=]*)?)/gi; + const results = []; + let match; + while ((match = regex.exec(content)) !== null) { + const rawUrl = match[0]; + const hasProtocol = /^https?:\/\//i.test(rawUrl); + const fullUrl = hasProtocol ? rawUrl : `https://${rawUrl}`; + results.push({ + start: match.index, + end: match.index + rawUrl.length, + text: rawUrl, + url: fullUrl, + type: "link" + }); + } + return results; +}; +var findAllEntities = (content) => { + const mentions = findMentions(content); + const tags = findTags(content); + const links = findLinks(content); + return [...mentions, ...tags, ...links].sort((a, b) => a.start - b.start); +}; +var processContent = (content) => { + const processedText = content.replace(mentionLinkRegexp, (match) => { + const parsed = parseMention(match); + return parsed ? parsed.mention : match; + }); + const tags = findTags(content).map((tag) => tag.tag); + return { + processedText, + tags + }; +}; + +export { findAllEntities, findLinks, findMentions, findTags, mentionLinkRegexp, parseMention, processContent }; +//# sourceMappingURL=index.js.map +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/packages/content-suggestions/dist/core/index.js.map b/packages/content-suggestions/dist/core/index.js.map new file mode 100644 index 0000000..621757f --- /dev/null +++ b/packages/content-suggestions/dist/core/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../src/core/parser.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import type {\n ContentEntity,\n LinkEntity,\n MentionEntity,\n ParsedMention,\n ProcessedContent,\n TagEntity,\n} from \"./types\";\n\nexport const mentionLinkRegexp =\n /@\\[[^\\]]+]\\([0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}\\)/g;\n\nexport const parseMention = (mention: string): ParsedMention | null => {\n const regex = /@\\[([^\\]]+)\\]\\(([\\w-]{36})\\)/;\n const match = mention.match(regex);\n\n if (!match) {\n return null;\n }\n\n const mentionText = match[1];\n const mentionId = match[2];\n if (!mentionText || !mentionId) {\n return null;\n }\n\n return {\n mention: `@${mentionText}`,\n id: mentionId,\n };\n};\n\nexport const findMentions = (text: string): MentionEntity[] => {\n let match: RegExpExecArray | null;\n const matches: MentionEntity[] = [];\n\n while ((match = mentionLinkRegexp.exec(text)) !== null) {\n const parsed = parseMention(match[0]);\n const baseMention: Omit = {\n start: match.index,\n end: mentionLinkRegexp.lastIndex,\n text: match[0],\n type: \"mention\",\n displayText: parsed?.mention ?? match[0],\n };\n\n matches.push(parsed?.id ? { ...baseMention, userId: parsed.id } : baseMention);\n }\n\n return matches;\n};\n\nexport const findTags = (content: string): TagEntity[] => {\n const regex = /#[^\\s]{1,201}/g;\n const results: TagEntity[] = [];\n let match: RegExpExecArray | null;\n\n while ((match = regex.exec(content)) !== null) {\n const value = match[0];\n results.push({\n start: match.index,\n end: match.index + value.length,\n text: value,\n type: \"tag\",\n tag: value.replace(\"#\", \"\"),\n });\n }\n\n return results;\n};\n\nexport const findLinks = (content: string): LinkEntity[] => {\n const regex =\n /\\b((https?:\\/\\/)?(?:[\\w-]+\\.)+[a-z]{2,}(\\/[\\w\\-._~:/?#[\\]@!$&'()*+,;=]*)?)/gi;\n const results: LinkEntity[] = [];\n let match: RegExpExecArray | null;\n\n while ((match = regex.exec(content)) !== null) {\n const rawUrl = match[0];\n const hasProtocol = /^https?:\\/\\//i.test(rawUrl);\n const fullUrl = hasProtocol ? rawUrl : `https://${rawUrl}`;\n\n results.push({\n start: match.index,\n end: match.index + rawUrl.length,\n text: rawUrl,\n url: fullUrl,\n type: \"link\",\n });\n }\n\n return results;\n};\n\nexport const findAllEntities = (content: string): ContentEntity[] => {\n const mentions = findMentions(content);\n const tags = findTags(content);\n const links = findLinks(content);\n\n return [...mentions, ...tags, ...links].sort((a, b) => a.start - b.start);\n};\n\nexport const processContent = (content: string): ProcessedContent => {\n const processedText = content.replace(mentionLinkRegexp, match => {\n const parsed = parseMention(match);\n return parsed ? parsed.mention : match;\n });\n\n const tags = findTags(content).map(tag => tag.tag);\n\n return {\n processedText,\n tags,\n };\n};\n"]} \ No newline at end of file diff --git a/packages/content-suggestions/dist/react/index.cjs b/packages/content-suggestions/dist/react/index.cjs new file mode 100644 index 0000000..1dd5550 --- /dev/null +++ b/packages/content-suggestions/dist/react/index.cjs @@ -0,0 +1,396 @@ +'use strict'; + +var React = require('react'); +var react = require('@hublib-web/tach-typography/react'); +var jsxRuntime = require('react/jsx-runtime'); + +function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; } + +var React__default = /*#__PURE__*/_interopDefault(React); + +// src/react/components/content-text.tsx + +// src/core/parser.ts +var mentionLinkRegexp = /@\[[^\]]+]\([0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}\)/g; +var parseMention = (mention) => { + const regex = /@\[([^\]]+)\]\(([\w-]{36})\)/; + const match = mention.match(regex); + if (!match) { + return null; + } + const mentionText = match[1]; + const mentionId = match[2]; + if (!mentionText || !mentionId) { + return null; + } + return { + mention: `@${mentionText}`, + id: mentionId + }; +}; +var findMentions = (text) => { + let match; + const matches = []; + while ((match = mentionLinkRegexp.exec(text)) !== null) { + const parsed = parseMention(match[0]); + const baseMention = { + start: match.index, + end: mentionLinkRegexp.lastIndex, + text: match[0], + type: "mention", + displayText: parsed?.mention ?? match[0] + }; + matches.push(parsed?.id ? { ...baseMention, userId: parsed.id } : baseMention); + } + return matches; +}; +var findTags = (content) => { + const regex = /#[^\s]{1,201}/g; + const results = []; + let match; + while ((match = regex.exec(content)) !== null) { + const value = match[0]; + results.push({ + start: match.index, + end: match.index + value.length, + text: value, + type: "tag", + tag: value.replace("#", "") + }); + } + return results; +}; +var findLinks = (content) => { + const regex = /\b((https?:\/\/)?(?:[\w-]+\.)+[a-z]{2,}(\/[\w\-._~:/?#[\]@!$&'()*+,;=]*)?)/gi; + const results = []; + let match; + while ((match = regex.exec(content)) !== null) { + const rawUrl = match[0]; + const hasProtocol = /^https?:\/\//i.test(rawUrl); + const fullUrl = hasProtocol ? rawUrl : `https://${rawUrl}`; + results.push({ + start: match.index, + end: match.index + rawUrl.length, + text: rawUrl, + url: fullUrl, + type: "link" + }); + } + return results; +}; +var findAllEntities = (content) => { + const mentions = findMentions(content); + const tags = findTags(content); + const links = findLinks(content); + return [...mentions, ...tags, ...links].sort((a, b) => a.start - b.start); +}; +var processContent = (content) => { + const processedText = content.replace(mentionLinkRegexp, (match) => { + const parsed = parseMention(match); + return parsed ? parsed.mention : match; + }); + const tags = findTags(content).map((tag) => tag.tag); + return { + processedText, + tags + }; +}; +var joinClassName = (...values) => values.filter(Boolean).join(" "); +var baseSelectableStyle = { + whiteSpace: "pre-wrap", + WebkitTouchCallout: "default", + WebkitUserSelect: "text", + KhtmlUserSelect: "text", + MozUserSelect: "text", + msUserSelect: "text", + userSelect: "text" +}; +var blurStyle = { + filter: "blur(3px)", + WebkitUserSelect: "none", + KhtmlUserSelect: "none", + MozUserSelect: "none", + msUserSelect: "none", + userSelect: "none", + pointerEvents: "none" +}; +var ReadMoreButton = ({ onClick, symbol = "\u0427\u0438\u0442\u0430\u0442\u044C \u043F\u043E\u043B\u043D\u043E\u0441\u0442\u044C\u044E", expanded = false, TitleComponent }) => /* @__PURE__ */ jsxRuntime.jsx( + TitleComponent, + { + onClick: (event) => { + event.preventDefault(); + event.stopPropagation(); + onClick(event); + }, + weight: "bold", + level: 5, + children: typeof symbol === "function" ? symbol(expanded) : symbol + } +); +var ContentText = React__default.default.memo( + ({ + text, + className, + ellipsis = false, + blur = false, + weight = "normal", + style, + onView, + renderMention, + renderTag, + renderLink, + ParagraphComponent = react.TachTypography.Paragraph.Body, + TextComponent = react.TachTypography.Text.Body, + TitleComponent = react.TachTypography.Title.Body, + ...props + }) => { + const containerRef = React.useRef(null); + const [expanded, setExpanded] = React.useState(false); + const [containerInsideView, setContainerInsideView] = React.useState(false); + const [viewed, setViewed] = React.useState(false); + const content = text || ""; + const entities = React.useMemo(() => findAllEntities(content), [content]); + const wrapWithKey = (node, key) => { + if (React__default.default.isValidElement(node)) { + return React__default.default.cloneElement(node, { key }); + } + return /* @__PURE__ */ jsxRuntime.jsx(React__default.default.Fragment, { children: node }, key); + }; + const buildMentionNode = (entity, index) => { + const defaultNode = /* @__PURE__ */ jsxRuntime.jsx(TextComponent, { color: "link", weight, children: entity.displayText }); + const customNode = renderMention?.(entity, index) ?? defaultNode; + return wrapWithKey(customNode, `mention-${entity.start}-${index}`); + }; + const buildTagNode = (entity, index) => { + const defaultNode = /* @__PURE__ */ jsxRuntime.jsx(TextComponent, { color: "link", weight, children: entity.text }); + const customNode = renderTag?.(entity, index) ?? defaultNode; + return wrapWithKey(customNode, `tag-${entity.start}-${index}`); + }; + const buildLinkNode = (entity, index) => { + const defaultNode = /* @__PURE__ */ jsxRuntime.jsx( + react.TachTypography.Link.Body, + { + target: "_blank", + referrerPolicy: "no-referrer", + color: "link", + weight, + href: entity.url, + children: entity.text + } + ); + const customNode = renderLink?.(entity, index) ?? defaultNode; + return wrapWithKey(customNode, `link-${entity.start}-${index}`); + }; + const buildParts = (upto = null) => { + let lastIndex = 0; + const nodes = []; + for (const [i, entity] of entities.entries()) { + if (upto !== null && entity.start >= upto) { + break; + } + const textEnd = upto !== null ? Math.min(entity.start, upto) : entity.start; + if (entity.start > lastIndex && lastIndex < textEnd) { + nodes.push(content.slice(lastIndex, textEnd)); + } + if (upto === null || entity.end <= upto) { + if (entity.type === "mention") { + nodes.push(buildMentionNode(entity, i)); + } else if (entity.type === "tag") { + nodes.push(buildTagNode(entity, i)); + } else if (entity.type === "link") { + nodes.push(buildLinkNode(entity, i)); + } + } + lastIndex = entity.end; + } + if (upto === null) { + if (lastIndex < content.length) { + nodes.push(content.slice(lastIndex)); + } + } else if (lastIndex < upto) { + nodes.push(content.slice(lastIndex, upto)); + } + return nodes; + }; + const ellipsisConfig = ellipsis && typeof ellipsis === "object" ? ellipsis : null; + const expandedFromProps = ellipsisConfig && typeof ellipsisConfig.expanded === "boolean" ? ellipsisConfig.expanded : void 0; + const isExpandedControlled = expandedFromProps !== void 0; + const mergedExpanded = isExpandedControlled ? expandedFromProps : expanded; + const handleExpand = React.useCallback( + (event) => { + if (!isExpandedControlled) { + setExpanded(true); + } + ellipsisConfig?.onExpand?.(event, { expanded: true }); + }, + [ellipsisConfig, isExpandedControlled] + ); + React.useEffect(() => { + if (isExpandedControlled) { + return; + } + if (ellipsisConfig && "count" in ellipsisConfig) { + const count = ellipsisConfig.count ?? 0; + if (content.length <= count && !expanded) { + setExpanded(true); + } + } + }, [content.length, ellipsisConfig, expanded, isExpandedControlled]); + React.useEffect(() => { + if (mergedExpanded && !viewed && containerInsideView) { + setViewed(true); + onView?.(); + } + }, [mergedExpanded, viewed, containerInsideView, onView]); + React.useEffect(() => { + const ref = containerRef.current; + if (!ref) { + return; + } + const observer = new IntersectionObserver((entries) => { + const entry = entries[0]; + if (!entry) { + return; + } + if (entry.isIntersecting && !containerInsideView) { + setContainerInsideView(true); + } + }, { threshold: 0.5 }); + observer.observe(ref); + return () => { + observer.unobserve(ref); + }; + }, [containerInsideView]); + const mergedStyle = { + ...baseSelectableStyle, + ...blur ? blurStyle : void 0, + ...style + }; + if (ellipsisConfig && "count" in ellipsisConfig) { + const { count, expandable } = ellipsisConfig; + if (!mergedExpanded && count && content.length > count) { + let cutoff = count; + let extended = true; + while (extended) { + extended = false; + for (const entity of entities) { + if (entity.start < cutoff && entity.end > cutoff) { + cutoff = entity.end; + extended = true; + } + } + } + const truncatedNodes = buildParts(cutoff); + return /* @__PURE__ */ jsxRuntime.jsxs( + ParagraphComponent, + { + ref: containerRef, + weight, + className: joinClassName(className), + style: mergedStyle, + ...props, + children: [ + truncatedNodes, + "\u2026", + expandable && /* @__PURE__ */ jsxRuntime.jsx( + ReadMoreButton, + { + symbol: ellipsisConfig.symbol, + onClick: handleExpand, + expanded: mergedExpanded, + TitleComponent + } + ) + ] + } + ); + } + } + if (ellipsisConfig && "rows" in ellipsisConfig) { + const paragraphEllipsis = mergedExpanded ? false : { + ...ellipsisConfig, + symbol: ellipsisConfig.expandable ? /* @__PURE__ */ jsxRuntime.jsx( + ReadMoreButton, + { + symbol: ellipsisConfig.symbol, + onClick: handleExpand, + expanded: mergedExpanded, + TitleComponent + } + ) : ellipsisConfig.symbol + }; + return /* @__PURE__ */ jsxRuntime.jsx( + ParagraphComponent, + { + ref: containerRef, + weight, + className: joinClassName(className), + style: mergedStyle, + ellipsis: paragraphEllipsis, + ...props, + children: buildParts() + } + ); + } + return /* @__PURE__ */ jsxRuntime.jsx( + ParagraphComponent, + { + ref: containerRef, + weight, + className: joinClassName(className), + style: mergedStyle, + ...props, + children: buildParts() + } + ); + } +); +ContentText.displayName = "ContentText"; +var DefaultMention = ({ entity }) => /* @__PURE__ */ jsxRuntime.jsx(react.TachTypography.Text.Body, { color: "link", children: entity.displayText }); +var DefaultTag = ({ entity }) => /* @__PURE__ */ jsxRuntime.jsx(react.TachTypography.Text.Body, { color: "link", children: entity.text }); +var ContentTextWithSuggestions = ({ + renderMention, + renderTag, + ...props +}) => { + return /* @__PURE__ */ jsxRuntime.jsx( + ContentText, + { + ...props, + renderMention: (entity, index) => renderMention ? renderMention(entity, index) : /* @__PURE__ */ jsxRuntime.jsx(DefaultMention, { entity }), + renderTag: (entity, index) => renderTag ? renderTag(entity, index) : /* @__PURE__ */ jsxRuntime.jsx(DefaultTag, { entity }) + } + ); +}; +var ContentTitleWithSuggestions = ({ + text, + ellipsis, + blur = false, + ...rest +}) => { + const normalizedEllipsis = ellipsis === void 0 ? { rows: 2 } : ellipsis; + const textProps = text === void 0 ? {} : { text }; + return /* @__PURE__ */ jsxRuntime.jsx( + ContentTextWithSuggestions, + { + weight: "bold", + blur, + ellipsis: normalizedEllipsis, + ...textProps, + ...rest + } + ); +}; + +exports.ContentText = ContentText; +exports.ContentTextWithSuggestions = ContentTextWithSuggestions; +exports.ContentTitleWithSuggestions = ContentTitleWithSuggestions; +exports.findAllEntities = findAllEntities; +exports.findLinks = findLinks; +exports.findMentions = findMentions; +exports.findTags = findTags; +exports.mentionLinkRegexp = mentionLinkRegexp; +exports.parseMention = parseMention; +exports.processContent = processContent; +//# sourceMappingURL=index.cjs.map +//# sourceMappingURL=index.cjs.map \ No newline at end of file diff --git a/packages/content-suggestions/dist/react/index.cjs.map b/packages/content-suggestions/dist/react/index.cjs.map new file mode 100644 index 0000000..767f62e --- /dev/null +++ b/packages/content-suggestions/dist/react/index.cjs.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../src/core/parser.ts","../../src/react/components/content-text.tsx","../../src/react/components/content-text-with-suggestions.tsx","../../src/react/components/content-title-with-suggestions.tsx"],"names":["jsx","React","TachTypography","useRef","useState","useMemo","useCallback","useEffect","jsxs"],"mappings":"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","file":"index.cjs","sourcesContent":["import type {\n ContentEntity,\n LinkEntity,\n MentionEntity,\n ParsedMention,\n ProcessedContent,\n TagEntity,\n} from \"./types\";\n\nexport const mentionLinkRegexp =\n /@\\[[^\\]]+]\\([0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}\\)/g;\n\nexport const parseMention = (mention: string): ParsedMention | null => {\n const regex = /@\\[([^\\]]+)\\]\\(([\\w-]{36})\\)/;\n const match = mention.match(regex);\n\n if (!match) {\n return null;\n }\n\n const mentionText = match[1];\n const mentionId = match[2];\n if (!mentionText || !mentionId) {\n return null;\n }\n\n return {\n mention: `@${mentionText}`,\n id: mentionId,\n };\n};\n\nexport const findMentions = (text: string): MentionEntity[] => {\n let match: RegExpExecArray | null;\n const matches: MentionEntity[] = [];\n\n while ((match = mentionLinkRegexp.exec(text)) !== null) {\n const parsed = parseMention(match[0]);\n const baseMention: Omit = {\n start: match.index,\n end: mentionLinkRegexp.lastIndex,\n text: match[0],\n type: \"mention\",\n displayText: parsed?.mention ?? match[0],\n };\n\n matches.push(parsed?.id ? { ...baseMention, userId: parsed.id } : baseMention);\n }\n\n return matches;\n};\n\nexport const findTags = (content: string): TagEntity[] => {\n const regex = /#[^\\s]{1,201}/g;\n const results: TagEntity[] = [];\n let match: RegExpExecArray | null;\n\n while ((match = regex.exec(content)) !== null) {\n const value = match[0];\n results.push({\n start: match.index,\n end: match.index + value.length,\n text: value,\n type: \"tag\",\n tag: value.replace(\"#\", \"\"),\n });\n }\n\n return results;\n};\n\nexport const findLinks = (content: string): LinkEntity[] => {\n const regex =\n /\\b((https?:\\/\\/)?(?:[\\w-]+\\.)+[a-z]{2,}(\\/[\\w\\-._~:/?#[\\]@!$&'()*+,;=]*)?)/gi;\n const results: LinkEntity[] = [];\n let match: RegExpExecArray | null;\n\n while ((match = regex.exec(content)) !== null) {\n const rawUrl = match[0];\n const hasProtocol = /^https?:\\/\\//i.test(rawUrl);\n const fullUrl = hasProtocol ? rawUrl : `https://${rawUrl}`;\n\n results.push({\n start: match.index,\n end: match.index + rawUrl.length,\n text: rawUrl,\n url: fullUrl,\n type: \"link\",\n });\n }\n\n return results;\n};\n\nexport const findAllEntities = (content: string): ContentEntity[] => {\n const mentions = findMentions(content);\n const tags = findTags(content);\n const links = findLinks(content);\n\n return [...mentions, ...tags, ...links].sort((a, b) => a.start - b.start);\n};\n\nexport const processContent = (content: string): ProcessedContent => {\n const processedText = content.replace(mentionLinkRegexp, match => {\n const parsed = parseMention(match);\n return parsed ? parsed.mention : match;\n });\n\n const tags = findTags(content).map(tag => tag.tag);\n\n return {\n processedText,\n tags,\n };\n};\n","import type { ComponentProps, CSSProperties, ReactNode } from \"react\";\nimport type { EllipsisConfig } from \"antd/lib/typography/Base\";\nimport type {\n ContentEntity,\n LinkEntity,\n MentionEntity,\n TagEntity,\n} from \"../../core\";\n\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\n\nimport { TachTypography } from \"@hublib-web/tach-typography/react\";\nimport { findAllEntities } from \"../../core\";\n\ntype CustomEllipsisConfig =\n | ({\n count: number;\n rows?: never;\n expandable?: boolean;\n } & Partial)\n | ({\n rows: number;\n count?: never;\n expandable?: boolean;\n } & Partial)\n | false;\n\ntype ParagraphBodyProps = ComponentProps;\ntype TextBodyProps = ComponentProps;\ntype TitleBodyProps = ComponentProps;\n\nconst joinClassName = (...values: Array) =>\n values.filter(Boolean).join(\" \");\n\nconst baseSelectableStyle: CSSProperties = {\n whiteSpace: \"pre-wrap\",\n WebkitTouchCallout: \"default\",\n WebkitUserSelect: \"text\",\n KhtmlUserSelect: \"text\",\n MozUserSelect: \"text\",\n msUserSelect: \"text\",\n userSelect: \"text\",\n};\n\nconst blurStyle: CSSProperties = {\n filter: \"blur(3px)\",\n WebkitUserSelect: \"none\",\n KhtmlUserSelect: \"none\",\n MozUserSelect: \"none\",\n msUserSelect: \"none\",\n userSelect: \"none\",\n pointerEvents: \"none\",\n};\n\nconst ReadMoreButton: React.FC<{\n onClick: (event: React.MouseEvent) => void;\n symbol?: EllipsisConfig[\"symbol\"];\n expanded?: boolean;\n TitleComponent: React.ComponentType;\n}> = ({ onClick, symbol = \"Читать полностью\", expanded = false, TitleComponent }) => (\n {\n event.preventDefault();\n event.stopPropagation();\n onClick(event);\n }}\n weight=\"bold\"\n level={5}\n >\n {typeof symbol === \"function\" ? symbol(expanded) : symbol}\n \n);\n\nexport interface ContentTextProps {\n className?: string;\n weight?: TextBodyProps[\"weight\"];\n text?: string | null;\n ellipsis?: CustomEllipsisConfig;\n blur?: boolean;\n style?: TextBodyProps[\"style\"];\n onView?: () => void;\n renderMention?: (entity: MentionEntity, index: number) => ReactNode;\n renderTag?: (entity: TagEntity, index: number) => ReactNode;\n renderLink?: (entity: LinkEntity, index: number) => ReactNode;\n ParagraphComponent?: React.ComponentType;\n TextComponent?: React.ComponentType;\n TitleComponent?: React.ComponentType;\n}\n\nexport const ContentText: React.NamedExoticComponent = React.memo(\n ({\n text,\n className,\n ellipsis = false,\n blur = false,\n weight = \"normal\",\n style,\n onView,\n renderMention,\n renderTag,\n renderLink,\n ParagraphComponent = TachTypography.Paragraph.Body,\n TextComponent = TachTypography.Text.Body,\n TitleComponent = TachTypography.Title.Body,\n ...props\n }: ContentTextProps) => {\n const containerRef = useRef(null);\n const [expanded, setExpanded] = useState(false);\n const [containerInsideView, setContainerInsideView] = useState(false);\n const [viewed, setViewed] = useState(false);\n const content = text || \"\";\n\n const entities = useMemo(() => findAllEntities(content), [content]);\n\n const wrapWithKey = (node: ReactNode, key: React.Key) => {\n if (React.isValidElement(node)) {\n return React.cloneElement(node, { key });\n }\n\n return {node};\n };\n\n const buildMentionNode = (entity: MentionEntity, index: number) => {\n const defaultNode = (\n \n {entity.displayText}\n \n );\n const customNode = renderMention?.(entity, index) ?? defaultNode;\n return wrapWithKey(customNode, `mention-${entity.start}-${index}`);\n };\n\n const buildTagNode = (entity: TagEntity, index: number) => {\n const defaultNode = (\n \n {entity.text}\n \n );\n const customNode = renderTag?.(entity, index) ?? defaultNode;\n return wrapWithKey(customNode, `tag-${entity.start}-${index}`);\n };\n\n const buildLinkNode = (entity: LinkEntity, index: number) => {\n const defaultNode = (\n \n {entity.text}\n \n );\n const customNode = renderLink?.(entity, index) ?? defaultNode;\n return wrapWithKey(customNode, `link-${entity.start}-${index}`);\n };\n\n const buildParts = (upto: number | null = null): ReactNode[] => {\n let lastIndex = 0;\n const nodes: ReactNode[] = [];\n\n for (const [i, entity] of entities.entries()) {\n\n if (upto !== null && entity.start >= upto) {\n break;\n }\n\n const textEnd = upto !== null ? Math.min(entity.start, upto) : entity.start;\n if (entity.start > lastIndex && lastIndex < textEnd) {\n nodes.push(content.slice(lastIndex, textEnd));\n }\n\n if (upto === null || entity.end <= upto) {\n if (entity.type === \"mention\") {\n nodes.push(buildMentionNode(entity, i));\n } else if (entity.type === \"tag\") {\n nodes.push(buildTagNode(entity, i));\n } else if (entity.type === \"link\") {\n nodes.push(buildLinkNode(entity, i));\n }\n }\n\n lastIndex = entity.end;\n }\n\n if (upto === null) {\n if (lastIndex < content.length) {\n nodes.push(content.slice(lastIndex));\n }\n } else if (lastIndex < upto) {\n nodes.push(content.slice(lastIndex, upto));\n }\n\n return nodes;\n };\n\n const ellipsisConfig = ellipsis && typeof ellipsis === \"object\" ? ellipsis : null;\n const expandedFromProps =\n ellipsisConfig && typeof ellipsisConfig.expanded === \"boolean\"\n ? ellipsisConfig.expanded\n : undefined;\n const isExpandedControlled = expandedFromProps !== undefined;\n const mergedExpanded = isExpandedControlled ? expandedFromProps : expanded;\n\n const handleExpand = useCallback(\n (event: React.MouseEvent) => {\n if (!isExpandedControlled) {\n setExpanded(true);\n }\n\n ellipsisConfig?.onExpand?.(event, { expanded: true });\n },\n [ellipsisConfig, isExpandedControlled],\n );\n\n useEffect(() => {\n if (isExpandedControlled) {\n return;\n }\n\n if (ellipsisConfig && \"count\" in ellipsisConfig) {\n const count = ellipsisConfig.count ?? 0;\n if (content.length <= count && !expanded) {\n setExpanded(true);\n }\n }\n }, [content.length, ellipsisConfig, expanded, isExpandedControlled]);\n\n useEffect(() => {\n if (mergedExpanded && !viewed && containerInsideView) {\n setViewed(true);\n onView?.();\n }\n }, [mergedExpanded, viewed, containerInsideView, onView]);\n\n useEffect(() => {\n const ref = containerRef.current;\n if (!ref) {\n return;\n }\n\n const observer = new IntersectionObserver((entries) => {\n const entry = entries[0];\n if (!entry) {\n return;\n }\n\n if (entry.isIntersecting && !containerInsideView) {\n setContainerInsideView(true);\n }\n }, { threshold: 0.5 });\n\n observer.observe(ref);\n\n return () => {\n observer.unobserve(ref);\n };\n }, [containerInsideView]);\n\n const mergedStyle: CSSProperties = {\n ...baseSelectableStyle,\n ...(blur ? blurStyle : undefined),\n ...(style as CSSProperties | undefined),\n };\n\n if (ellipsisConfig && \"count\" in ellipsisConfig) {\n const { count, expandable } = ellipsisConfig;\n\n if (!mergedExpanded && count && content.length > count) {\n let cutoff = count;\n let extended = true;\n\n while (extended) {\n extended = false;\n for (const entity of entities) {\n if (entity.start < cutoff && entity.end > cutoff) {\n cutoff = entity.end;\n extended = true;\n }\n }\n }\n\n const truncatedNodes = buildParts(cutoff);\n\n return (\n \n {truncatedNodes}…\n {expandable && (\n \n )}\n \n );\n }\n }\n\n if (ellipsisConfig && \"rows\" in ellipsisConfig) {\n const paragraphEllipsis = mergedExpanded\n ? false\n : {\n ...ellipsisConfig,\n symbol: ellipsisConfig.expandable ? (\n \n ) : (\n ellipsisConfig.symbol\n ),\n };\n\n return (\n \n {buildParts()}\n \n );\n }\n\n return (\n \n {buildParts()}\n \n );\n },\n);\n\nContentText.displayName = \"ContentText\";\n","import type { ComponentProps } from \"react\";\nimport type { MentionEntity, TagEntity } from \"../../core\";\n\nimport React from \"react\";\n\nimport { TachTypography } from \"@hublib-web/tach-typography/react\";\nimport { ContentText } from \"./content-text\";\n\ntype BaseContentTextProps = Omit<\n ComponentProps,\n \"renderMention\" | \"renderTag\"\n> & {\n renderMention?: (entity: MentionEntity, index: number) => React.ReactNode;\n renderTag?: (entity: TagEntity, index: number) => React.ReactNode;\n};\n\nconst DefaultMention = ({ entity }: { entity: MentionEntity }) => (\n {entity.displayText}\n);\n\nconst DefaultTag = ({ entity }: { entity: TagEntity }) => (\n \n {entity.text}\n \n);\n\nexport const ContentTextWithSuggestions = ({\n renderMention,\n renderTag,\n ...props\n}: BaseContentTextProps) => {\n return (\n \n renderMention ? renderMention(entity, index) : \n }\n renderTag={(entity, index) =>\n renderTag ? (\n renderTag(entity, index)\n ) : (\n \n )\n }\n />\n );\n};\n","import type { ComponentProps } from \"react\";\n\nimport React from \"react\";\n\nimport { ContentTextWithSuggestions } from \"./content-text-with-suggestions\";\n\ninterface ContentTitleWithSuggestionsProps\n extends Omit, \"weight\"> {}\n\nexport const ContentTitleWithSuggestions = ({\n text,\n ellipsis,\n blur = false,\n ...rest\n}: ContentTitleWithSuggestionsProps) => {\n const normalizedEllipsis = ellipsis === undefined ? { rows: 2 } : ellipsis;\n const textProps = text === undefined ? {} : { text };\n\n return (\n \n );\n};\n"]} \ No newline at end of file diff --git a/packages/content-suggestions/dist/react/index.d.cts b/packages/content-suggestions/dist/react/index.d.cts new file mode 100644 index 0000000..776f1a4 --- /dev/null +++ b/packages/content-suggestions/dist/react/index.d.cts @@ -0,0 +1,48 @@ +import React, { ComponentProps, ReactNode } from 'react'; +import { EllipsisConfig } from 'antd/lib/typography/Base'; +import { M as MentionEntity, T as TagEntity, L as LinkEntity } from '../types-BRt4hd7A.cjs'; +export { B as BaseEntity, C as ContentEntity, P as ParsedMention, a as ProcessedContent } from '../types-BRt4hd7A.cjs'; +import { TachTypography } from '@hublib-web/tach-typography/react'; +import * as react_jsx_runtime from 'react/jsx-runtime'; +export { findAllEntities, findLinks, findMentions, findTags, mentionLinkRegexp, parseMention, processContent } from '../core/index.cjs'; + +type CustomEllipsisConfig = ({ + count: number; + rows?: never; + expandable?: boolean; +} & Partial) | ({ + rows: number; + count?: never; + expandable?: boolean; +} & Partial) | false; +type ParagraphBodyProps = ComponentProps; +type TextBodyProps = ComponentProps; +type TitleBodyProps = ComponentProps; +interface ContentTextProps { + className?: string; + weight?: TextBodyProps["weight"]; + text?: string | null; + ellipsis?: CustomEllipsisConfig; + blur?: boolean; + style?: TextBodyProps["style"]; + onView?: () => void; + renderMention?: (entity: MentionEntity, index: number) => ReactNode; + renderTag?: (entity: TagEntity, index: number) => ReactNode; + renderLink?: (entity: LinkEntity, index: number) => ReactNode; + ParagraphComponent?: React.ComponentType; + TextComponent?: React.ComponentType; + TitleComponent?: React.ComponentType; +} +declare const ContentText: React.NamedExoticComponent; + +type BaseContentTextProps = Omit, "renderMention" | "renderTag"> & { + renderMention?: (entity: MentionEntity, index: number) => React.ReactNode; + renderTag?: (entity: TagEntity, index: number) => React.ReactNode; +}; +declare const ContentTextWithSuggestions: ({ renderMention, renderTag, ...props }: BaseContentTextProps) => react_jsx_runtime.JSX.Element; + +interface ContentTitleWithSuggestionsProps extends Omit, "weight"> { +} +declare const ContentTitleWithSuggestions: ({ text, ellipsis, blur, ...rest }: ContentTitleWithSuggestionsProps) => react_jsx_runtime.JSX.Element; + +export { ContentText, type ContentTextProps, ContentTextWithSuggestions, ContentTitleWithSuggestions, LinkEntity, MentionEntity, TagEntity }; diff --git a/packages/content-suggestions/dist/react/index.d.ts b/packages/content-suggestions/dist/react/index.d.ts new file mode 100644 index 0000000..9fa4ef3 --- /dev/null +++ b/packages/content-suggestions/dist/react/index.d.ts @@ -0,0 +1,48 @@ +import React, { ComponentProps, ReactNode } from 'react'; +import { EllipsisConfig } from 'antd/lib/typography/Base'; +import { M as MentionEntity, T as TagEntity, L as LinkEntity } from '../types-BRt4hd7A.js'; +export { B as BaseEntity, C as ContentEntity, P as ParsedMention, a as ProcessedContent } from '../types-BRt4hd7A.js'; +import { TachTypography } from '@hublib-web/tach-typography/react'; +import * as react_jsx_runtime from 'react/jsx-runtime'; +export { findAllEntities, findLinks, findMentions, findTags, mentionLinkRegexp, parseMention, processContent } from '../core/index.js'; + +type CustomEllipsisConfig = ({ + count: number; + rows?: never; + expandable?: boolean; +} & Partial) | ({ + rows: number; + count?: never; + expandable?: boolean; +} & Partial) | false; +type ParagraphBodyProps = ComponentProps; +type TextBodyProps = ComponentProps; +type TitleBodyProps = ComponentProps; +interface ContentTextProps { + className?: string; + weight?: TextBodyProps["weight"]; + text?: string | null; + ellipsis?: CustomEllipsisConfig; + blur?: boolean; + style?: TextBodyProps["style"]; + onView?: () => void; + renderMention?: (entity: MentionEntity, index: number) => ReactNode; + renderTag?: (entity: TagEntity, index: number) => ReactNode; + renderLink?: (entity: LinkEntity, index: number) => ReactNode; + ParagraphComponent?: React.ComponentType; + TextComponent?: React.ComponentType; + TitleComponent?: React.ComponentType; +} +declare const ContentText: React.NamedExoticComponent; + +type BaseContentTextProps = Omit, "renderMention" | "renderTag"> & { + renderMention?: (entity: MentionEntity, index: number) => React.ReactNode; + renderTag?: (entity: TagEntity, index: number) => React.ReactNode; +}; +declare const ContentTextWithSuggestions: ({ renderMention, renderTag, ...props }: BaseContentTextProps) => react_jsx_runtime.JSX.Element; + +interface ContentTitleWithSuggestionsProps extends Omit, "weight"> { +} +declare const ContentTitleWithSuggestions: ({ text, ellipsis, blur, ...rest }: ContentTitleWithSuggestionsProps) => react_jsx_runtime.JSX.Element; + +export { ContentText, type ContentTextProps, ContentTextWithSuggestions, ContentTitleWithSuggestions, LinkEntity, MentionEntity, TagEntity }; diff --git a/packages/content-suggestions/dist/react/index.js b/packages/content-suggestions/dist/react/index.js new file mode 100644 index 0000000..5944fe8 --- /dev/null +++ b/packages/content-suggestions/dist/react/index.js @@ -0,0 +1,381 @@ +import React, { useRef, useState, useMemo, useCallback, useEffect } from 'react'; +import { TachTypography } from '@hublib-web/tach-typography/react'; +import { jsxs, jsx } from 'react/jsx-runtime'; + +// src/react/components/content-text.tsx + +// src/core/parser.ts +var mentionLinkRegexp = /@\[[^\]]+]\([0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}\)/g; +var parseMention = (mention) => { + const regex = /@\[([^\]]+)\]\(([\w-]{36})\)/; + const match = mention.match(regex); + if (!match) { + return null; + } + const mentionText = match[1]; + const mentionId = match[2]; + if (!mentionText || !mentionId) { + return null; + } + return { + mention: `@${mentionText}`, + id: mentionId + }; +}; +var findMentions = (text) => { + let match; + const matches = []; + while ((match = mentionLinkRegexp.exec(text)) !== null) { + const parsed = parseMention(match[0]); + const baseMention = { + start: match.index, + end: mentionLinkRegexp.lastIndex, + text: match[0], + type: "mention", + displayText: parsed?.mention ?? match[0] + }; + matches.push(parsed?.id ? { ...baseMention, userId: parsed.id } : baseMention); + } + return matches; +}; +var findTags = (content) => { + const regex = /#[^\s]{1,201}/g; + const results = []; + let match; + while ((match = regex.exec(content)) !== null) { + const value = match[0]; + results.push({ + start: match.index, + end: match.index + value.length, + text: value, + type: "tag", + tag: value.replace("#", "") + }); + } + return results; +}; +var findLinks = (content) => { + const regex = /\b((https?:\/\/)?(?:[\w-]+\.)+[a-z]{2,}(\/[\w\-._~:/?#[\]@!$&'()*+,;=]*)?)/gi; + const results = []; + let match; + while ((match = regex.exec(content)) !== null) { + const rawUrl = match[0]; + const hasProtocol = /^https?:\/\//i.test(rawUrl); + const fullUrl = hasProtocol ? rawUrl : `https://${rawUrl}`; + results.push({ + start: match.index, + end: match.index + rawUrl.length, + text: rawUrl, + url: fullUrl, + type: "link" + }); + } + return results; +}; +var findAllEntities = (content) => { + const mentions = findMentions(content); + const tags = findTags(content); + const links = findLinks(content); + return [...mentions, ...tags, ...links].sort((a, b) => a.start - b.start); +}; +var processContent = (content) => { + const processedText = content.replace(mentionLinkRegexp, (match) => { + const parsed = parseMention(match); + return parsed ? parsed.mention : match; + }); + const tags = findTags(content).map((tag) => tag.tag); + return { + processedText, + tags + }; +}; +var joinClassName = (...values) => values.filter(Boolean).join(" "); +var baseSelectableStyle = { + whiteSpace: "pre-wrap", + WebkitTouchCallout: "default", + WebkitUserSelect: "text", + KhtmlUserSelect: "text", + MozUserSelect: "text", + msUserSelect: "text", + userSelect: "text" +}; +var blurStyle = { + filter: "blur(3px)", + WebkitUserSelect: "none", + KhtmlUserSelect: "none", + MozUserSelect: "none", + msUserSelect: "none", + userSelect: "none", + pointerEvents: "none" +}; +var ReadMoreButton = ({ onClick, symbol = "\u0427\u0438\u0442\u0430\u0442\u044C \u043F\u043E\u043B\u043D\u043E\u0441\u0442\u044C\u044E", expanded = false, TitleComponent }) => /* @__PURE__ */ jsx( + TitleComponent, + { + onClick: (event) => { + event.preventDefault(); + event.stopPropagation(); + onClick(event); + }, + weight: "bold", + level: 5, + children: typeof symbol === "function" ? symbol(expanded) : symbol + } +); +var ContentText = React.memo( + ({ + text, + className, + ellipsis = false, + blur = false, + weight = "normal", + style, + onView, + renderMention, + renderTag, + renderLink, + ParagraphComponent = TachTypography.Paragraph.Body, + TextComponent = TachTypography.Text.Body, + TitleComponent = TachTypography.Title.Body, + ...props + }) => { + const containerRef = useRef(null); + const [expanded, setExpanded] = useState(false); + const [containerInsideView, setContainerInsideView] = useState(false); + const [viewed, setViewed] = useState(false); + const content = text || ""; + const entities = useMemo(() => findAllEntities(content), [content]); + const wrapWithKey = (node, key) => { + if (React.isValidElement(node)) { + return React.cloneElement(node, { key }); + } + return /* @__PURE__ */ jsx(React.Fragment, { children: node }, key); + }; + const buildMentionNode = (entity, index) => { + const defaultNode = /* @__PURE__ */ jsx(TextComponent, { color: "link", weight, children: entity.displayText }); + const customNode = renderMention?.(entity, index) ?? defaultNode; + return wrapWithKey(customNode, `mention-${entity.start}-${index}`); + }; + const buildTagNode = (entity, index) => { + const defaultNode = /* @__PURE__ */ jsx(TextComponent, { color: "link", weight, children: entity.text }); + const customNode = renderTag?.(entity, index) ?? defaultNode; + return wrapWithKey(customNode, `tag-${entity.start}-${index}`); + }; + const buildLinkNode = (entity, index) => { + const defaultNode = /* @__PURE__ */ jsx( + TachTypography.Link.Body, + { + target: "_blank", + referrerPolicy: "no-referrer", + color: "link", + weight, + href: entity.url, + children: entity.text + } + ); + const customNode = renderLink?.(entity, index) ?? defaultNode; + return wrapWithKey(customNode, `link-${entity.start}-${index}`); + }; + const buildParts = (upto = null) => { + let lastIndex = 0; + const nodes = []; + for (const [i, entity] of entities.entries()) { + if (upto !== null && entity.start >= upto) { + break; + } + const textEnd = upto !== null ? Math.min(entity.start, upto) : entity.start; + if (entity.start > lastIndex && lastIndex < textEnd) { + nodes.push(content.slice(lastIndex, textEnd)); + } + if (upto === null || entity.end <= upto) { + if (entity.type === "mention") { + nodes.push(buildMentionNode(entity, i)); + } else if (entity.type === "tag") { + nodes.push(buildTagNode(entity, i)); + } else if (entity.type === "link") { + nodes.push(buildLinkNode(entity, i)); + } + } + lastIndex = entity.end; + } + if (upto === null) { + if (lastIndex < content.length) { + nodes.push(content.slice(lastIndex)); + } + } else if (lastIndex < upto) { + nodes.push(content.slice(lastIndex, upto)); + } + return nodes; + }; + const ellipsisConfig = ellipsis && typeof ellipsis === "object" ? ellipsis : null; + const expandedFromProps = ellipsisConfig && typeof ellipsisConfig.expanded === "boolean" ? ellipsisConfig.expanded : void 0; + const isExpandedControlled = expandedFromProps !== void 0; + const mergedExpanded = isExpandedControlled ? expandedFromProps : expanded; + const handleExpand = useCallback( + (event) => { + if (!isExpandedControlled) { + setExpanded(true); + } + ellipsisConfig?.onExpand?.(event, { expanded: true }); + }, + [ellipsisConfig, isExpandedControlled] + ); + useEffect(() => { + if (isExpandedControlled) { + return; + } + if (ellipsisConfig && "count" in ellipsisConfig) { + const count = ellipsisConfig.count ?? 0; + if (content.length <= count && !expanded) { + setExpanded(true); + } + } + }, [content.length, ellipsisConfig, expanded, isExpandedControlled]); + useEffect(() => { + if (mergedExpanded && !viewed && containerInsideView) { + setViewed(true); + onView?.(); + } + }, [mergedExpanded, viewed, containerInsideView, onView]); + useEffect(() => { + const ref = containerRef.current; + if (!ref) { + return; + } + const observer = new IntersectionObserver((entries) => { + const entry = entries[0]; + if (!entry) { + return; + } + if (entry.isIntersecting && !containerInsideView) { + setContainerInsideView(true); + } + }, { threshold: 0.5 }); + observer.observe(ref); + return () => { + observer.unobserve(ref); + }; + }, [containerInsideView]); + const mergedStyle = { + ...baseSelectableStyle, + ...blur ? blurStyle : void 0, + ...style + }; + if (ellipsisConfig && "count" in ellipsisConfig) { + const { count, expandable } = ellipsisConfig; + if (!mergedExpanded && count && content.length > count) { + let cutoff = count; + let extended = true; + while (extended) { + extended = false; + for (const entity of entities) { + if (entity.start < cutoff && entity.end > cutoff) { + cutoff = entity.end; + extended = true; + } + } + } + const truncatedNodes = buildParts(cutoff); + return /* @__PURE__ */ jsxs( + ParagraphComponent, + { + ref: containerRef, + weight, + className: joinClassName(className), + style: mergedStyle, + ...props, + children: [ + truncatedNodes, + "\u2026", + expandable && /* @__PURE__ */ jsx( + ReadMoreButton, + { + symbol: ellipsisConfig.symbol, + onClick: handleExpand, + expanded: mergedExpanded, + TitleComponent + } + ) + ] + } + ); + } + } + if (ellipsisConfig && "rows" in ellipsisConfig) { + const paragraphEllipsis = mergedExpanded ? false : { + ...ellipsisConfig, + symbol: ellipsisConfig.expandable ? /* @__PURE__ */ jsx( + ReadMoreButton, + { + symbol: ellipsisConfig.symbol, + onClick: handleExpand, + expanded: mergedExpanded, + TitleComponent + } + ) : ellipsisConfig.symbol + }; + return /* @__PURE__ */ jsx( + ParagraphComponent, + { + ref: containerRef, + weight, + className: joinClassName(className), + style: mergedStyle, + ellipsis: paragraphEllipsis, + ...props, + children: buildParts() + } + ); + } + return /* @__PURE__ */ jsx( + ParagraphComponent, + { + ref: containerRef, + weight, + className: joinClassName(className), + style: mergedStyle, + ...props, + children: buildParts() + } + ); + } +); +ContentText.displayName = "ContentText"; +var DefaultMention = ({ entity }) => /* @__PURE__ */ jsx(TachTypography.Text.Body, { color: "link", children: entity.displayText }); +var DefaultTag = ({ entity }) => /* @__PURE__ */ jsx(TachTypography.Text.Body, { color: "link", children: entity.text }); +var ContentTextWithSuggestions = ({ + renderMention, + renderTag, + ...props +}) => { + return /* @__PURE__ */ jsx( + ContentText, + { + ...props, + renderMention: (entity, index) => renderMention ? renderMention(entity, index) : /* @__PURE__ */ jsx(DefaultMention, { entity }), + renderTag: (entity, index) => renderTag ? renderTag(entity, index) : /* @__PURE__ */ jsx(DefaultTag, { entity }) + } + ); +}; +var ContentTitleWithSuggestions = ({ + text, + ellipsis, + blur = false, + ...rest +}) => { + const normalizedEllipsis = ellipsis === void 0 ? { rows: 2 } : ellipsis; + const textProps = text === void 0 ? {} : { text }; + return /* @__PURE__ */ jsx( + ContentTextWithSuggestions, + { + weight: "bold", + blur, + ellipsis: normalizedEllipsis, + ...textProps, + ...rest + } + ); +}; + +export { ContentText, ContentTextWithSuggestions, ContentTitleWithSuggestions, findAllEntities, findLinks, findMentions, findTags, mentionLinkRegexp, parseMention, processContent }; +//# sourceMappingURL=index.js.map +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/packages/content-suggestions/dist/react/index.js.map b/packages/content-suggestions/dist/react/index.js.map new file mode 100644 index 0000000..1f7f0d2 --- /dev/null +++ b/packages/content-suggestions/dist/react/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../src/core/parser.ts","../../src/react/components/content-text.tsx","../../src/react/components/content-text-with-suggestions.tsx","../../src/react/components/content-title-with-suggestions.tsx"],"names":["jsx","TachTypography"],"mappings":"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","file":"index.js","sourcesContent":["import type {\n ContentEntity,\n LinkEntity,\n MentionEntity,\n ParsedMention,\n ProcessedContent,\n TagEntity,\n} from \"./types\";\n\nexport const mentionLinkRegexp =\n /@\\[[^\\]]+]\\([0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}\\)/g;\n\nexport const parseMention = (mention: string): ParsedMention | null => {\n const regex = /@\\[([^\\]]+)\\]\\(([\\w-]{36})\\)/;\n const match = mention.match(regex);\n\n if (!match) {\n return null;\n }\n\n const mentionText = match[1];\n const mentionId = match[2];\n if (!mentionText || !mentionId) {\n return null;\n }\n\n return {\n mention: `@${mentionText}`,\n id: mentionId,\n };\n};\n\nexport const findMentions = (text: string): MentionEntity[] => {\n let match: RegExpExecArray | null;\n const matches: MentionEntity[] = [];\n\n while ((match = mentionLinkRegexp.exec(text)) !== null) {\n const parsed = parseMention(match[0]);\n const baseMention: Omit = {\n start: match.index,\n end: mentionLinkRegexp.lastIndex,\n text: match[0],\n type: \"mention\",\n displayText: parsed?.mention ?? match[0],\n };\n\n matches.push(parsed?.id ? { ...baseMention, userId: parsed.id } : baseMention);\n }\n\n return matches;\n};\n\nexport const findTags = (content: string): TagEntity[] => {\n const regex = /#[^\\s]{1,201}/g;\n const results: TagEntity[] = [];\n let match: RegExpExecArray | null;\n\n while ((match = regex.exec(content)) !== null) {\n const value = match[0];\n results.push({\n start: match.index,\n end: match.index + value.length,\n text: value,\n type: \"tag\",\n tag: value.replace(\"#\", \"\"),\n });\n }\n\n return results;\n};\n\nexport const findLinks = (content: string): LinkEntity[] => {\n const regex =\n /\\b((https?:\\/\\/)?(?:[\\w-]+\\.)+[a-z]{2,}(\\/[\\w\\-._~:/?#[\\]@!$&'()*+,;=]*)?)/gi;\n const results: LinkEntity[] = [];\n let match: RegExpExecArray | null;\n\n while ((match = regex.exec(content)) !== null) {\n const rawUrl = match[0];\n const hasProtocol = /^https?:\\/\\//i.test(rawUrl);\n const fullUrl = hasProtocol ? rawUrl : `https://${rawUrl}`;\n\n results.push({\n start: match.index,\n end: match.index + rawUrl.length,\n text: rawUrl,\n url: fullUrl,\n type: \"link\",\n });\n }\n\n return results;\n};\n\nexport const findAllEntities = (content: string): ContentEntity[] => {\n const mentions = findMentions(content);\n const tags = findTags(content);\n const links = findLinks(content);\n\n return [...mentions, ...tags, ...links].sort((a, b) => a.start - b.start);\n};\n\nexport const processContent = (content: string): ProcessedContent => {\n const processedText = content.replace(mentionLinkRegexp, match => {\n const parsed = parseMention(match);\n return parsed ? parsed.mention : match;\n });\n\n const tags = findTags(content).map(tag => tag.tag);\n\n return {\n processedText,\n tags,\n };\n};\n","import type { ComponentProps, CSSProperties, ReactNode } from \"react\";\nimport type { EllipsisConfig } from \"antd/lib/typography/Base\";\nimport type {\n ContentEntity,\n LinkEntity,\n MentionEntity,\n TagEntity,\n} from \"../../core\";\n\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\n\nimport { TachTypography } from \"@hublib-web/tach-typography/react\";\nimport { findAllEntities } from \"../../core\";\n\ntype CustomEllipsisConfig =\n | ({\n count: number;\n rows?: never;\n expandable?: boolean;\n } & Partial)\n | ({\n rows: number;\n count?: never;\n expandable?: boolean;\n } & Partial)\n | false;\n\ntype ParagraphBodyProps = ComponentProps;\ntype TextBodyProps = ComponentProps;\ntype TitleBodyProps = ComponentProps;\n\nconst joinClassName = (...values: Array) =>\n values.filter(Boolean).join(\" \");\n\nconst baseSelectableStyle: CSSProperties = {\n whiteSpace: \"pre-wrap\",\n WebkitTouchCallout: \"default\",\n WebkitUserSelect: \"text\",\n KhtmlUserSelect: \"text\",\n MozUserSelect: \"text\",\n msUserSelect: \"text\",\n userSelect: \"text\",\n};\n\nconst blurStyle: CSSProperties = {\n filter: \"blur(3px)\",\n WebkitUserSelect: \"none\",\n KhtmlUserSelect: \"none\",\n MozUserSelect: \"none\",\n msUserSelect: \"none\",\n userSelect: \"none\",\n pointerEvents: \"none\",\n};\n\nconst ReadMoreButton: React.FC<{\n onClick: (event: React.MouseEvent) => void;\n symbol?: EllipsisConfig[\"symbol\"];\n expanded?: boolean;\n TitleComponent: React.ComponentType;\n}> = ({ onClick, symbol = \"Читать полностью\", expanded = false, TitleComponent }) => (\n {\n event.preventDefault();\n event.stopPropagation();\n onClick(event);\n }}\n weight=\"bold\"\n level={5}\n >\n {typeof symbol === \"function\" ? symbol(expanded) : symbol}\n \n);\n\nexport interface ContentTextProps {\n className?: string;\n weight?: TextBodyProps[\"weight\"];\n text?: string | null;\n ellipsis?: CustomEllipsisConfig;\n blur?: boolean;\n style?: TextBodyProps[\"style\"];\n onView?: () => void;\n renderMention?: (entity: MentionEntity, index: number) => ReactNode;\n renderTag?: (entity: TagEntity, index: number) => ReactNode;\n renderLink?: (entity: LinkEntity, index: number) => ReactNode;\n ParagraphComponent?: React.ComponentType;\n TextComponent?: React.ComponentType;\n TitleComponent?: React.ComponentType;\n}\n\nexport const ContentText: React.NamedExoticComponent = React.memo(\n ({\n text,\n className,\n ellipsis = false,\n blur = false,\n weight = \"normal\",\n style,\n onView,\n renderMention,\n renderTag,\n renderLink,\n ParagraphComponent = TachTypography.Paragraph.Body,\n TextComponent = TachTypography.Text.Body,\n TitleComponent = TachTypography.Title.Body,\n ...props\n }: ContentTextProps) => {\n const containerRef = useRef(null);\n const [expanded, setExpanded] = useState(false);\n const [containerInsideView, setContainerInsideView] = useState(false);\n const [viewed, setViewed] = useState(false);\n const content = text || \"\";\n\n const entities = useMemo(() => findAllEntities(content), [content]);\n\n const wrapWithKey = (node: ReactNode, key: React.Key) => {\n if (React.isValidElement(node)) {\n return React.cloneElement(node, { key });\n }\n\n return {node};\n };\n\n const buildMentionNode = (entity: MentionEntity, index: number) => {\n const defaultNode = (\n \n {entity.displayText}\n \n );\n const customNode = renderMention?.(entity, index) ?? defaultNode;\n return wrapWithKey(customNode, `mention-${entity.start}-${index}`);\n };\n\n const buildTagNode = (entity: TagEntity, index: number) => {\n const defaultNode = (\n \n {entity.text}\n \n );\n const customNode = renderTag?.(entity, index) ?? defaultNode;\n return wrapWithKey(customNode, `tag-${entity.start}-${index}`);\n };\n\n const buildLinkNode = (entity: LinkEntity, index: number) => {\n const defaultNode = (\n \n {entity.text}\n \n );\n const customNode = renderLink?.(entity, index) ?? defaultNode;\n return wrapWithKey(customNode, `link-${entity.start}-${index}`);\n };\n\n const buildParts = (upto: number | null = null): ReactNode[] => {\n let lastIndex = 0;\n const nodes: ReactNode[] = [];\n\n for (const [i, entity] of entities.entries()) {\n\n if (upto !== null && entity.start >= upto) {\n break;\n }\n\n const textEnd = upto !== null ? Math.min(entity.start, upto) : entity.start;\n if (entity.start > lastIndex && lastIndex < textEnd) {\n nodes.push(content.slice(lastIndex, textEnd));\n }\n\n if (upto === null || entity.end <= upto) {\n if (entity.type === \"mention\") {\n nodes.push(buildMentionNode(entity, i));\n } else if (entity.type === \"tag\") {\n nodes.push(buildTagNode(entity, i));\n } else if (entity.type === \"link\") {\n nodes.push(buildLinkNode(entity, i));\n }\n }\n\n lastIndex = entity.end;\n }\n\n if (upto === null) {\n if (lastIndex < content.length) {\n nodes.push(content.slice(lastIndex));\n }\n } else if (lastIndex < upto) {\n nodes.push(content.slice(lastIndex, upto));\n }\n\n return nodes;\n };\n\n const ellipsisConfig = ellipsis && typeof ellipsis === \"object\" ? ellipsis : null;\n const expandedFromProps =\n ellipsisConfig && typeof ellipsisConfig.expanded === \"boolean\"\n ? ellipsisConfig.expanded\n : undefined;\n const isExpandedControlled = expandedFromProps !== undefined;\n const mergedExpanded = isExpandedControlled ? expandedFromProps : expanded;\n\n const handleExpand = useCallback(\n (event: React.MouseEvent) => {\n if (!isExpandedControlled) {\n setExpanded(true);\n }\n\n ellipsisConfig?.onExpand?.(event, { expanded: true });\n },\n [ellipsisConfig, isExpandedControlled],\n );\n\n useEffect(() => {\n if (isExpandedControlled) {\n return;\n }\n\n if (ellipsisConfig && \"count\" in ellipsisConfig) {\n const count = ellipsisConfig.count ?? 0;\n if (content.length <= count && !expanded) {\n setExpanded(true);\n }\n }\n }, [content.length, ellipsisConfig, expanded, isExpandedControlled]);\n\n useEffect(() => {\n if (mergedExpanded && !viewed && containerInsideView) {\n setViewed(true);\n onView?.();\n }\n }, [mergedExpanded, viewed, containerInsideView, onView]);\n\n useEffect(() => {\n const ref = containerRef.current;\n if (!ref) {\n return;\n }\n\n const observer = new IntersectionObserver((entries) => {\n const entry = entries[0];\n if (!entry) {\n return;\n }\n\n if (entry.isIntersecting && !containerInsideView) {\n setContainerInsideView(true);\n }\n }, { threshold: 0.5 });\n\n observer.observe(ref);\n\n return () => {\n observer.unobserve(ref);\n };\n }, [containerInsideView]);\n\n const mergedStyle: CSSProperties = {\n ...baseSelectableStyle,\n ...(blur ? blurStyle : undefined),\n ...(style as CSSProperties | undefined),\n };\n\n if (ellipsisConfig && \"count\" in ellipsisConfig) {\n const { count, expandable } = ellipsisConfig;\n\n if (!mergedExpanded && count && content.length > count) {\n let cutoff = count;\n let extended = true;\n\n while (extended) {\n extended = false;\n for (const entity of entities) {\n if (entity.start < cutoff && entity.end > cutoff) {\n cutoff = entity.end;\n extended = true;\n }\n }\n }\n\n const truncatedNodes = buildParts(cutoff);\n\n return (\n \n {truncatedNodes}…\n {expandable && (\n \n )}\n \n );\n }\n }\n\n if (ellipsisConfig && \"rows\" in ellipsisConfig) {\n const paragraphEllipsis = mergedExpanded\n ? false\n : {\n ...ellipsisConfig,\n symbol: ellipsisConfig.expandable ? (\n \n ) : (\n ellipsisConfig.symbol\n ),\n };\n\n return (\n \n {buildParts()}\n \n );\n }\n\n return (\n \n {buildParts()}\n \n );\n },\n);\n\nContentText.displayName = \"ContentText\";\n","import type { ComponentProps } from \"react\";\nimport type { MentionEntity, TagEntity } from \"../../core\";\n\nimport React from \"react\";\n\nimport { TachTypography } from \"@hublib-web/tach-typography/react\";\nimport { ContentText } from \"./content-text\";\n\ntype BaseContentTextProps = Omit<\n ComponentProps,\n \"renderMention\" | \"renderTag\"\n> & {\n renderMention?: (entity: MentionEntity, index: number) => React.ReactNode;\n renderTag?: (entity: TagEntity, index: number) => React.ReactNode;\n};\n\nconst DefaultMention = ({ entity }: { entity: MentionEntity }) => (\n {entity.displayText}\n);\n\nconst DefaultTag = ({ entity }: { entity: TagEntity }) => (\n \n {entity.text}\n \n);\n\nexport const ContentTextWithSuggestions = ({\n renderMention,\n renderTag,\n ...props\n}: BaseContentTextProps) => {\n return (\n \n renderMention ? renderMention(entity, index) : \n }\n renderTag={(entity, index) =>\n renderTag ? (\n renderTag(entity, index)\n ) : (\n \n )\n }\n />\n );\n};\n","import type { ComponentProps } from \"react\";\n\nimport React from \"react\";\n\nimport { ContentTextWithSuggestions } from \"./content-text-with-suggestions\";\n\ninterface ContentTitleWithSuggestionsProps\n extends Omit, \"weight\"> {}\n\nexport const ContentTitleWithSuggestions = ({\n text,\n ellipsis,\n blur = false,\n ...rest\n}: ContentTitleWithSuggestionsProps) => {\n const normalizedEllipsis = ellipsis === undefined ? { rows: 2 } : ellipsis;\n const textProps = text === undefined ? {} : { text };\n\n return (\n \n );\n};\n"]} \ No newline at end of file diff --git a/packages/content-suggestions/dist/types-BRt4hd7A.d.cts b/packages/content-suggestions/dist/types-BRt4hd7A.d.cts new file mode 100644 index 0000000..3c40b78 --- /dev/null +++ b/packages/content-suggestions/dist/types-BRt4hd7A.d.cts @@ -0,0 +1,29 @@ +interface BaseEntity { + start: number; + end: number; + text: string; +} +interface MentionEntity extends BaseEntity { + type: "mention"; + displayText: string; + userId?: string; +} +interface TagEntity extends BaseEntity { + type: "tag"; + tag: string; +} +interface LinkEntity extends BaseEntity { + type: "link"; + url: string; +} +type ContentEntity = MentionEntity | TagEntity | LinkEntity; +interface ParsedMention { + mention: string; + id: string; +} +interface ProcessedContent { + processedText: string; + tags: string[]; +} + +export type { BaseEntity as B, ContentEntity as C, LinkEntity as L, MentionEntity as M, ParsedMention as P, TagEntity as T, ProcessedContent as a }; diff --git a/packages/content-suggestions/dist/types-BRt4hd7A.d.ts b/packages/content-suggestions/dist/types-BRt4hd7A.d.ts new file mode 100644 index 0000000..3c40b78 --- /dev/null +++ b/packages/content-suggestions/dist/types-BRt4hd7A.d.ts @@ -0,0 +1,29 @@ +interface BaseEntity { + start: number; + end: number; + text: string; +} +interface MentionEntity extends BaseEntity { + type: "mention"; + displayText: string; + userId?: string; +} +interface TagEntity extends BaseEntity { + type: "tag"; + tag: string; +} +interface LinkEntity extends BaseEntity { + type: "link"; + url: string; +} +type ContentEntity = MentionEntity | TagEntity | LinkEntity; +interface ParsedMention { + mention: string; + id: string; +} +interface ProcessedContent { + processedText: string; + tags: string[]; +} + +export type { BaseEntity as B, ContentEntity as C, LinkEntity as L, MentionEntity as M, ParsedMention as P, TagEntity as T, ProcessedContent as a }; diff --git a/packages/content-suggestions/package.json b/packages/content-suggestions/package.json new file mode 100644 index 0000000..ced7e24 --- /dev/null +++ b/packages/content-suggestions/package.json @@ -0,0 +1,105 @@ +{ + "name": "@hublib-web/content-suggestions", + "version": "0.1.0", + "description": "Content text/title with mentions, tags and links for React and Angular", + "license": "MIT", + "type": "module", + "main": "./dist/core/index.cjs", + "module": "./dist/core/index.js", + "types": "./dist/core/index.d.ts", + "sideEffects": false, + "files": [ + "dist", + "README.md" + ], + "typesVersions": { + "*": { + "react": [ + "dist/react/index.d.ts" + ], + "angular": [ + "dist/angular/index.d.ts" + ], + "core": [ + "dist/core/index.d.ts" + ] + } + }, + "exports": { + ".": { + "types": "./dist/core/index.d.ts", + "import": "./dist/core/index.js", + "require": "./dist/core/index.cjs" + }, + "./core": { + "types": "./dist/core/index.d.ts", + "import": "./dist/core/index.js", + "require": "./dist/core/index.cjs" + }, + "./react": { + "types": "./dist/react/index.d.ts", + "import": "./dist/react/index.js", + "require": "./dist/react/index.cjs" + }, + "./angular": { + "types": "./dist/angular/index.d.ts", + "import": "./dist/angular/index.js", + "require": "./dist/angular/index.cjs" + } + }, + "scripts": { + "build": "yarn clean && tsup", + "clean": "rm -rf dist storybook-static", + "typecheck": "tsc -p tsconfig.json --noEmit", + "test": "vitest run --passWithNoTests", + "lint": "eslint src --ext .ts,.tsx", + "storybook": "storybook dev -p 6006", + "storybook:build": "storybook build" + }, + "peerDependencies": { + "@angular/common": ">=17.0.0", + "@angular/core": ">=17.0.0", + "@hublib-web/tach-typography": ">=0.1.0", + "antd": ">=5.0.0", + "react": ">=18.0.0", + "react-dom": ">=18.0.0", + "rxjs": ">=7.0.0" + }, + "peerDependenciesMeta": { + "@angular/common": { + "optional": true + }, + "@angular/core": { + "optional": true + }, + "antd": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + }, + "rxjs": { + "optional": true + } + }, + "devDependencies": { + "@angular/common": "^20.3.17", + "@angular/core": "^20.3.17", + "@hublib-web/tach-typography": "workspace:*", + "@storybook/addon-essentials": "8.6.14", + "@storybook/react": "8.6.14", + "@storybook/react-vite": "8.6.14", + "@types/react": "^19.2.2", + "antd": "^5.29.3", + "react": "^19.2.0", + "react-dom": "^19.2.0", + "rxjs": "^7.8.2", + "storybook": "8.6.14", + "tsup": "^8.5.0", + "typescript": "^5.9.3", + "vite": "6.4.1" + } +} diff --git a/packages/content-suggestions/src/angular/index.ts b/packages/content-suggestions/src/angular/index.ts new file mode 100644 index 0000000..78dc06c --- /dev/null +++ b/packages/content-suggestions/src/angular/index.ts @@ -0,0 +1,106 @@ +import type { ContentEntity, LinkEntity, MentionEntity, TagEntity } from "../core"; + +import { findAllEntities } from "../core"; + +export interface AngularTextToken { + kind: "text"; + text: string; + start: number; + end: number; +} + +export interface AngularMentionToken { + kind: "mention"; + entity: MentionEntity; +} + +export interface AngularTagToken { + kind: "tag"; + entity: TagEntity; +} + +export interface AngularLinkToken { + kind: "link"; + entity: LinkEntity; +} + +export type AngularContentToken = + | AngularTextToken + | AngularMentionToken + | AngularTagToken + | AngularLinkToken; + +export interface AngularContentSnapshot { + text: string; + entities: ContentEntity[]; + tokens: AngularContentToken[]; +} + +export const buildAngularTagHref = (entity: TagEntity): string => { + return `/search/?query=${encodeURIComponent(entity.tag.toLowerCase())}`; +}; + +export const createAngularContentTokens = ( + inputText: string | null | undefined, +): AngularContentToken[] => { + const text = inputText ?? ""; + const entities = findAllEntities(text); + + let cursor = 0; + const tokens: AngularContentToken[] = []; + + for (const entity of entities) { + if (entity.start > cursor) { + tokens.push({ + kind: "text", + text: text.slice(cursor, entity.start), + start: cursor, + end: entity.start, + }); + } + + if (entity.type === "mention") { + tokens.push({ + kind: "mention", + entity, + }); + } else if (entity.type === "tag") { + tokens.push({ + kind: "tag", + entity, + }); + } else { + tokens.push({ + kind: "link", + entity, + }); + } + + cursor = entity.end; + } + + if (cursor < text.length) { + tokens.push({ + kind: "text", + text: text.slice(cursor), + start: cursor, + end: text.length, + }); + } + + return tokens; +}; + +export class AngularContentSuggestionsAdapter { + snapshot(inputText: string | null | undefined): AngularContentSnapshot { + const text = inputText ?? ""; + const entities = findAllEntities(text); + const tokens = createAngularContentTokens(text); + + return { + text, + entities, + tokens, + }; + } +} diff --git a/packages/content-suggestions/src/core/index.ts b/packages/content-suggestions/src/core/index.ts new file mode 100644 index 0000000..5e386be --- /dev/null +++ b/packages/content-suggestions/src/core/index.ts @@ -0,0 +1,19 @@ +export type { + BaseEntity, + ContentEntity, + LinkEntity, + MentionEntity, + ParsedMention, + ProcessedContent, + TagEntity, +} from "./types"; + +export { + findAllEntities, + findLinks, + findMentions, + findTags, + mentionLinkRegexp, + parseMention, + processContent, +} from "./parser"; diff --git a/packages/content-suggestions/src/core/parser.ts b/packages/content-suggestions/src/core/parser.ts new file mode 100644 index 0000000..f13b7fd --- /dev/null +++ b/packages/content-suggestions/src/core/parser.ts @@ -0,0 +1,115 @@ +import type { + ContentEntity, + LinkEntity, + MentionEntity, + ParsedMention, + ProcessedContent, + TagEntity, +} from "./types"; + +export const mentionLinkRegexp = + /@\[[^\]]+]\([0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}\)/g; + +export const parseMention = (mention: string): ParsedMention | null => { + const regex = /@\[([^\]]+)\]\(([\w-]{36})\)/; + const match = mention.match(regex); + + if (!match) { + return null; + } + + const mentionText = match[1]; + const mentionId = match[2]; + if (!mentionText || !mentionId) { + return null; + } + + return { + mention: `@${mentionText}`, + id: mentionId, + }; +}; + +export const findMentions = (text: string): MentionEntity[] => { + let match: RegExpExecArray | null; + const matches: MentionEntity[] = []; + + while ((match = mentionLinkRegexp.exec(text)) !== null) { + const parsed = parseMention(match[0]); + const baseMention: Omit = { + start: match.index, + end: mentionLinkRegexp.lastIndex, + text: match[0], + type: "mention", + displayText: parsed?.mention ?? match[0], + }; + + matches.push(parsed?.id ? { ...baseMention, userId: parsed.id } : baseMention); + } + + return matches; +}; + +export const findTags = (content: string): TagEntity[] => { + const regex = /#[^\s]{1,201}/g; + const results: TagEntity[] = []; + let match: RegExpExecArray | null; + + while ((match = regex.exec(content)) !== null) { + const value = match[0]; + results.push({ + start: match.index, + end: match.index + value.length, + text: value, + type: "tag", + tag: value.replace("#", ""), + }); + } + + return results; +}; + +export const findLinks = (content: string): LinkEntity[] => { + const regex = + /\b((https?:\/\/)?(?:[\w-]+\.)+[a-z]{2,}(\/[\w\-._~:/?#[\]@!$&'()*+,;=]*)?)/gi; + const results: LinkEntity[] = []; + let match: RegExpExecArray | null; + + while ((match = regex.exec(content)) !== null) { + const rawUrl = match[0]; + const hasProtocol = /^https?:\/\//i.test(rawUrl); + const fullUrl = hasProtocol ? rawUrl : `https://${rawUrl}`; + + results.push({ + start: match.index, + end: match.index + rawUrl.length, + text: rawUrl, + url: fullUrl, + type: "link", + }); + } + + return results; +}; + +export const findAllEntities = (content: string): ContentEntity[] => { + const mentions = findMentions(content); + const tags = findTags(content); + const links = findLinks(content); + + return [...mentions, ...tags, ...links].sort((a, b) => a.start - b.start); +}; + +export const processContent = (content: string): ProcessedContent => { + const processedText = content.replace(mentionLinkRegexp, match => { + const parsed = parseMention(match); + return parsed ? parsed.mention : match; + }); + + const tags = findTags(content).map(tag => tag.tag); + + return { + processedText, + tags, + }; +}; diff --git a/packages/content-suggestions/src/core/types.ts b/packages/content-suggestions/src/core/types.ts new file mode 100644 index 0000000..410ebdc --- /dev/null +++ b/packages/content-suggestions/src/core/types.ts @@ -0,0 +1,33 @@ +export interface BaseEntity { + start: number; + end: number; + text: string; +} + +export interface MentionEntity extends BaseEntity { + type: "mention"; + displayText: string; + userId?: string; +} + +export interface TagEntity extends BaseEntity { + type: "tag"; + tag: string; +} + +export interface LinkEntity extends BaseEntity { + type: "link"; + url: string; +} + +export type ContentEntity = MentionEntity | TagEntity | LinkEntity; + +export interface ParsedMention { + mention: string; + id: string; +} + +export interface ProcessedContent { + processedText: string; + tags: string[]; +} diff --git a/packages/content-suggestions/src/react/components/content-text-with-suggestions.tsx b/packages/content-suggestions/src/react/components/content-text-with-suggestions.tsx new file mode 100644 index 0000000..df9712b --- /dev/null +++ b/packages/content-suggestions/src/react/components/content-text-with-suggestions.tsx @@ -0,0 +1,47 @@ +import type { ComponentProps } from "react"; +import type { MentionEntity, TagEntity } from "../../core"; + +import React from "react"; + +import { TachTypography } from "@hublib-web/tach-typography/react"; +import { ContentText } from "./content-text"; + +type BaseContentTextProps = Omit< + ComponentProps, + "renderMention" | "renderTag" +> & { + renderMention?: (entity: MentionEntity, index: number) => React.ReactNode; + renderTag?: (entity: TagEntity, index: number) => React.ReactNode; +}; + +const DefaultMention = ({ entity }: { entity: MentionEntity }) => ( + {entity.displayText} +); + +const DefaultTag = ({ entity }: { entity: TagEntity }) => ( + + {entity.text} + +); + +export const ContentTextWithSuggestions = ({ + renderMention, + renderTag, + ...props +}: BaseContentTextProps) => { + return ( + + renderMention ? renderMention(entity, index) : + } + renderTag={(entity, index) => + renderTag ? ( + renderTag(entity, index) + ) : ( + + ) + } + /> + ); +}; diff --git a/packages/content-suggestions/src/react/components/content-text.tsx b/packages/content-suggestions/src/react/components/content-text.tsx new file mode 100644 index 0000000..e683e93 --- /dev/null +++ b/packages/content-suggestions/src/react/components/content-text.tsx @@ -0,0 +1,353 @@ +import type { ComponentProps, CSSProperties, ReactNode } from "react"; +import type { EllipsisConfig } from "antd/lib/typography/Base"; +import type { + ContentEntity, + LinkEntity, + MentionEntity, + TagEntity, +} from "../../core"; + +import React, { useCallback, useEffect, useMemo, useRef, useState } from "react"; + +import { TachTypography } from "@hublib-web/tach-typography/react"; +import { findAllEntities } from "../../core"; + +type CustomEllipsisConfig = + | ({ + count: number; + rows?: never; + expandable?: boolean; + } & Partial) + | ({ + rows: number; + count?: never; + expandable?: boolean; + } & Partial) + | false; + +type ParagraphBodyProps = ComponentProps; +type TextBodyProps = ComponentProps; +type TitleBodyProps = ComponentProps; + +const joinClassName = (...values: Array) => + values.filter(Boolean).join(" "); + +const baseSelectableStyle: CSSProperties = { + whiteSpace: "pre-wrap", + WebkitTouchCallout: "default", + WebkitUserSelect: "text", + KhtmlUserSelect: "text", + MozUserSelect: "text", + msUserSelect: "text", + userSelect: "text", +}; + +const blurStyle: CSSProperties = { + filter: "blur(3px)", + WebkitUserSelect: "none", + KhtmlUserSelect: "none", + MozUserSelect: "none", + msUserSelect: "none", + userSelect: "none", + pointerEvents: "none", +}; + +const ReadMoreButton: React.FC<{ + onClick: (event: React.MouseEvent) => void; + symbol?: EllipsisConfig["symbol"]; + expanded?: boolean; + TitleComponent: React.ComponentType; +}> = ({ onClick, symbol = "Читать полностью", expanded = false, TitleComponent }) => ( + { + event.preventDefault(); + event.stopPropagation(); + onClick(event); + }} + weight="bold" + level={5} + > + {typeof symbol === "function" ? symbol(expanded) : symbol} + +); + +export interface ContentTextProps { + className?: string; + weight?: TextBodyProps["weight"]; + text?: string | null; + ellipsis?: CustomEllipsisConfig; + blur?: boolean; + style?: TextBodyProps["style"]; + onView?: () => void; + renderMention?: (entity: MentionEntity, index: number) => ReactNode; + renderTag?: (entity: TagEntity, index: number) => ReactNode; + renderLink?: (entity: LinkEntity, index: number) => ReactNode; + ParagraphComponent?: React.ComponentType; + TextComponent?: React.ComponentType; + TitleComponent?: React.ComponentType; +} + +export const ContentText: React.NamedExoticComponent = React.memo( + ({ + text, + className, + ellipsis = false, + blur = false, + weight = "normal", + style, + onView, + renderMention, + renderTag, + renderLink, + ParagraphComponent = TachTypography.Paragraph.Body, + TextComponent = TachTypography.Text.Body, + TitleComponent = TachTypography.Title.Body, + ...props + }: ContentTextProps) => { + const containerRef = useRef(null); + const [expanded, setExpanded] = useState(false); + const [containerInsideView, setContainerInsideView] = useState(false); + const [viewed, setViewed] = useState(false); + const content = text || ""; + + const entities = useMemo(() => findAllEntities(content), [content]); + + const wrapWithKey = (node: ReactNode, key: React.Key) => { + if (React.isValidElement(node)) { + return React.cloneElement(node, { key }); + } + + return {node}; + }; + + const buildMentionNode = (entity: MentionEntity, index: number) => { + const defaultNode = ( + + {entity.displayText} + + ); + const customNode = renderMention?.(entity, index) ?? defaultNode; + return wrapWithKey(customNode, `mention-${entity.start}-${index}`); + }; + + const buildTagNode = (entity: TagEntity, index: number) => { + const defaultNode = ( + + {entity.text} + + ); + const customNode = renderTag?.(entity, index) ?? defaultNode; + return wrapWithKey(customNode, `tag-${entity.start}-${index}`); + }; + + const buildLinkNode = (entity: LinkEntity, index: number) => { + const defaultNode = ( + + {entity.text} + + ); + const customNode = renderLink?.(entity, index) ?? defaultNode; + return wrapWithKey(customNode, `link-${entity.start}-${index}`); + }; + + const buildParts = (upto: number | null = null): ReactNode[] => { + let lastIndex = 0; + const nodes: ReactNode[] = []; + + for (const [i, entity] of entities.entries()) { + + if (upto !== null && entity.start >= upto) { + break; + } + + const textEnd = upto !== null ? Math.min(entity.start, upto) : entity.start; + if (entity.start > lastIndex && lastIndex < textEnd) { + nodes.push(content.slice(lastIndex, textEnd)); + } + + if (upto === null || entity.end <= upto) { + if (entity.type === "mention") { + nodes.push(buildMentionNode(entity, i)); + } else if (entity.type === "tag") { + nodes.push(buildTagNode(entity, i)); + } else if (entity.type === "link") { + nodes.push(buildLinkNode(entity, i)); + } + } + + lastIndex = entity.end; + } + + if (upto === null) { + if (lastIndex < content.length) { + nodes.push(content.slice(lastIndex)); + } + } else if (lastIndex < upto) { + nodes.push(content.slice(lastIndex, upto)); + } + + return nodes; + }; + + const ellipsisConfig = ellipsis && typeof ellipsis === "object" ? ellipsis : null; + const expandedFromProps = + ellipsisConfig && typeof ellipsisConfig.expanded === "boolean" + ? ellipsisConfig.expanded + : undefined; + const isExpandedControlled = expandedFromProps !== undefined; + const mergedExpanded = isExpandedControlled ? expandedFromProps : expanded; + + const handleExpand = useCallback( + (event: React.MouseEvent) => { + if (!isExpandedControlled) { + setExpanded(true); + } + + ellipsisConfig?.onExpand?.(event, { expanded: true }); + }, + [ellipsisConfig, isExpandedControlled], + ); + + useEffect(() => { + if (isExpandedControlled) { + return; + } + + if (ellipsisConfig && "count" in ellipsisConfig) { + const count = ellipsisConfig.count ?? 0; + if (content.length <= count && !expanded) { + setExpanded(true); + } + } + }, [content.length, ellipsisConfig, expanded, isExpandedControlled]); + + useEffect(() => { + if (mergedExpanded && !viewed && containerInsideView) { + setViewed(true); + onView?.(); + } + }, [mergedExpanded, viewed, containerInsideView, onView]); + + useEffect(() => { + const ref = containerRef.current; + if (!ref) { + return; + } + + const observer = new IntersectionObserver((entries) => { + const entry = entries[0]; + if (!entry) { + return; + } + + if (entry.isIntersecting && !containerInsideView) { + setContainerInsideView(true); + } + }, { threshold: 0.5 }); + + observer.observe(ref); + + return () => { + observer.unobserve(ref); + }; + }, [containerInsideView]); + + const mergedStyle: CSSProperties = { + ...baseSelectableStyle, + ...(blur ? blurStyle : undefined), + ...(style as CSSProperties | undefined), + }; + + if (ellipsisConfig && "count" in ellipsisConfig) { + const { count, expandable } = ellipsisConfig; + + if (!mergedExpanded && count && content.length > count) { + let cutoff = count; + let extended = true; + + while (extended) { + extended = false; + for (const entity of entities) { + if (entity.start < cutoff && entity.end > cutoff) { + cutoff = entity.end; + extended = true; + } + } + } + + const truncatedNodes = buildParts(cutoff); + + return ( + + {truncatedNodes}… + {expandable && ( + + )} + + ); + } + } + + if (ellipsisConfig && "rows" in ellipsisConfig) { + const paragraphEllipsis = mergedExpanded + ? false + : { + ...ellipsisConfig, + symbol: ellipsisConfig.expandable ? ( + + ) : ( + ellipsisConfig.symbol + ), + }; + + return ( + + {buildParts()} + + ); + } + + return ( + + {buildParts()} + + ); + }, +); + +ContentText.displayName = "ContentText"; diff --git a/packages/content-suggestions/src/react/components/content-title-with-suggestions.tsx b/packages/content-suggestions/src/react/components/content-title-with-suggestions.tsx new file mode 100644 index 0000000..871d6a5 --- /dev/null +++ b/packages/content-suggestions/src/react/components/content-title-with-suggestions.tsx @@ -0,0 +1,28 @@ +import type { ComponentProps } from "react"; + +import React from "react"; + +import { ContentTextWithSuggestions } from "./content-text-with-suggestions"; + +interface ContentTitleWithSuggestionsProps + extends Omit, "weight"> {} + +export const ContentTitleWithSuggestions = ({ + text, + ellipsis, + blur = false, + ...rest +}: ContentTitleWithSuggestionsProps) => { + const normalizedEllipsis = ellipsis === undefined ? { rows: 2 } : ellipsis; + const textProps = text === undefined ? {} : { text }; + + return ( + + ); +}; diff --git a/packages/content-suggestions/src/react/index.tsx b/packages/content-suggestions/src/react/index.tsx new file mode 100644 index 0000000..8b06992 --- /dev/null +++ b/packages/content-suggestions/src/react/index.tsx @@ -0,0 +1,27 @@ +export { ContentText, type ContentTextProps } from "./components/content-text"; +export { + ContentTextWithSuggestions, +} from "./components/content-text-with-suggestions"; +export { + ContentTitleWithSuggestions, +} from "./components/content-title-with-suggestions"; + +export type { + BaseEntity, + ContentEntity, + LinkEntity, + MentionEntity, + ParsedMention, + ProcessedContent, + TagEntity, +} from "../core"; + +export { + findAllEntities, + findLinks, + findMentions, + findTags, + mentionLinkRegexp, + parseMention, + processContent, +} from "../core"; diff --git a/packages/content-suggestions/src/stories/ContentTextWithSuggestions.stories.tsx b/packages/content-suggestions/src/stories/ContentTextWithSuggestions.stories.tsx new file mode 100644 index 0000000..90194f7 --- /dev/null +++ b/packages/content-suggestions/src/stories/ContentTextWithSuggestions.stories.tsx @@ -0,0 +1,77 @@ +import type { Meta, StoryObj } from "@storybook/react"; +import type { MentionEntity, TagEntity } from "../core"; +import React from "react"; + +import { TachTypography } from "@hublib-web/tach-typography/react"; +import { ContentTextWithSuggestions } from "../react"; + +const DEMO_TEXT = + "Пример текста с упоминанием @[Иван Петров](123e4567-e89b-12d3-a456-426614174000), тегом #frontend и ссылкой docs.example.com"; + +const meta: Meta = { + title: "React/ContentTextWithSuggestions", + component: ContentTextWithSuggestions, + tags: ["autodocs"], + args: { + text: DEMO_TEXT, + blur: false, + }, + argTypes: { + text: { control: "text" }, + blur: { control: "boolean" }, + ellipsis: { control: false }, + renderMention: { control: false }, + renderTag: { control: false }, + renderLink: { control: false }, + ParagraphComponent: { control: false }, + TextComponent: { control: false }, + TitleComponent: { control: false }, + }, + render: args => ( +
+ +
+ ), +}; + +export default meta; + +type Story = StoryObj; + +export const Playground: Story = {}; + +export const WithExpandableEllipsis: Story = { + args: { + ellipsis: { + rows: 2, + expandable: true, + symbol: "Читать полностью", + }, + }, +}; + +export const WithCustomMentionAndTagRender: Story = { + render: args => { + const renderMention = (entity: MentionEntity) => ( + + {entity.displayText} + + ); + + const renderTag = (entity: TagEntity) => ( + + {entity.text} + + ); + + return ( +
+ +
+ ); + }, +}; diff --git a/packages/content-suggestions/src/stories/ContentTitleWithSuggestions.stories.tsx b/packages/content-suggestions/src/stories/ContentTitleWithSuggestions.stories.tsx new file mode 100644 index 0000000..c71ff6a --- /dev/null +++ b/packages/content-suggestions/src/stories/ContentTitleWithSuggestions.stories.tsx @@ -0,0 +1,50 @@ +import type { Meta, StoryObj } from "@storybook/react"; +import React from "react"; + +import { ContentTitleWithSuggestions } from "../react"; + +const DEMO_TITLE = + "Заголовок с @[Мария](123e4567-e89b-12d3-a456-426614174001), тегом #release и ссылкой github.com"; + +const meta: Meta = { + title: "React/ContentTitleWithSuggestions", + component: ContentTitleWithSuggestions, + tags: ["autodocs"], + args: { + text: DEMO_TITLE, + blur: false, + ellipsis: { + rows: 2, + expandable: true, + symbol: "Читать полностью", + }, + }, + argTypes: { + text: { control: "text" }, + blur: { control: "boolean" }, + ellipsis: { control: false }, + renderMention: { control: false }, + renderTag: { control: false }, + renderLink: { control: false }, + ParagraphComponent: { control: false }, + TextComponent: { control: false }, + TitleComponent: { control: false }, + }, + render: args => ( +
+ +
+ ), +}; + +export default meta; + +type Story = StoryObj; + +export const Playground: Story = {}; + +export const Blurred: Story = { + args: { + blur: true, + }, +}; diff --git a/packages/content-suggestions/tsconfig.json b/packages/content-suggestions/tsconfig.json new file mode 100644 index 0000000..8a95d21 --- /dev/null +++ b/packages/content-suggestions/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "rootDir": "src", + "outDir": "dist", + "types": ["node", "react"] + }, + "include": ["src"], + "exclude": ["dist"] +} diff --git a/packages/content-suggestions/tsup.config.ts b/packages/content-suggestions/tsup.config.ts new file mode 100644 index 0000000..8d92af3 --- /dev/null +++ b/packages/content-suggestions/tsup.config.ts @@ -0,0 +1,25 @@ +import { defineConfig } from "tsup"; + +export default defineConfig({ + entry: { + "core/index": "src/core/index.ts", + "react/index": "src/react/index.tsx", + "angular/index": "src/angular/index.ts", + }, + format: ["esm", "cjs"], + dts: true, + sourcemap: true, + clean: false, + target: "es2022", + minify: false, + treeshake: true, + splitting: false, + external: [ + "react", + "react-dom", + "antd", + "@angular/core", + "@angular/common", + "@hublib-web/tach-typography/react", + ], +}); diff --git a/packages/tach-typography/.storybook/main.ts b/packages/tach-typography/.storybook/main.ts new file mode 100644 index 0000000..b778fb6 --- /dev/null +++ b/packages/tach-typography/.storybook/main.ts @@ -0,0 +1,22 @@ +import type { StorybookConfig } from "@storybook/react-vite"; + +const config: StorybookConfig = { + stories: ["../src/**/*.stories.@(ts|tsx)"], + addons: [ + "@storybook/addon-essentials", + "@storybook/addon-interactions", + "@storybook/addon-a11y", + ], + framework: { + name: "@storybook/react-vite", + options: {}, + }, + docs: { + autodocs: "tag", + }, + core: { + disableTelemetry: true, + }, +}; + +export default config; diff --git a/packages/tach-typography/.storybook/preview.css b/packages/tach-typography/.storybook/preview.css new file mode 100644 index 0000000..c6d2545 --- /dev/null +++ b/packages/tach-typography/.storybook/preview.css @@ -0,0 +1,90 @@ +:root { + --Text-Primary: #0f172a; + --Text-Secondary: #334155; + --Text-Tertiary: #64748b; + --Text-Quaternary: #94a3b8; + --System-HashtagsInPost: #2563eb; + --Default-White: #ffffff; + --Default-Dark: #020617; + --System-Alert: #dc2626; + --Accent-Malahit: #16a34a; + --System-Attantion: #d97706; +} + +body { + font-family: Inter, "Segoe UI", sans-serif; +} + +.sb-show-main { + padding: 24px; +} + +.tach-story-surface { + min-width: 320px; + max-width: 920px; + padding: 20px; + border-radius: 14px; + border: 1px solid #dbe1ea; + background: #ffffff; +} + +.tach-story-stack { + display: flex; + flex-direction: column; + gap: 12px; +} + +.tach-story-grid { + display: grid; + gap: 10px; +} + +.tach-story-grid--colors { + grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); +} + +.tach-story-row { + display: grid; + gap: 12px; + grid-template-columns: 220px minmax(0, 1fr); + align-items: center; + padding: 10px 12px; + border-radius: 10px; + border: 1px solid #e2e8f0; + background: #fff; +} + +.tach-story-label { + color: #475569; + font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + font-size: 12px; +} + +.tach-story-token-list { + margin: 0; + padding-left: 18px; + color: #334155; +} + +.tach-story-table { + width: 100%; + border-collapse: collapse; + font-size: 13px; +} + +.tach-story-table th, +.tach-story-table td { + padding: 8px 10px; + border: 1px solid #e2e8f0; + text-align: left; +} + +.tach-story-table thead { + background: #f8fafc; +} + +@media (max-width: 720px) { + .tach-story-row { + grid-template-columns: 1fr; + } +} diff --git a/packages/tach-typography/.storybook/preview.ts b/packages/tach-typography/.storybook/preview.ts new file mode 100644 index 0000000..c3a2fa2 --- /dev/null +++ b/packages/tach-typography/.storybook/preview.ts @@ -0,0 +1,27 @@ +import type { Preview } from "@storybook/react"; + +import "antd/dist/reset.css"; +import "../src/styles/tach-typography.css"; +import "./preview.css"; + +const preview: Preview = { + parameters: { + layout: "centered", + controls: { + expanded: true, + sort: "requiredFirst", + }, + actions: { + argTypesRegex: "^on[A-Z].*", + }, + backgrounds: { + default: "surface", + values: [ + { name: "surface", value: "#F5F7FB" }, + { name: "dark", value: "#0F172A" }, + ], + }, + }, +}; + +export default preview; diff --git a/packages/tach-typography/README.md b/packages/tach-typography/README.md new file mode 100644 index 0000000..b75ec94 --- /dev/null +++ b/packages/tach-typography/README.md @@ -0,0 +1,98 @@ +# @hublib-web/tach-typography + +Typography package with shared tokens and framework adapters: + +- `react` adapter based on `antd/Typography` +- `angular` adapter based on `ng-zorro-antd/typography` + +## Install from Git (SSH tag) + +```bash +yarn add "@hublib-web/tach-typography@git+ssh://git@github.com/ORG/REPO.git#workspace=@hublib-web/tach-typography&tag=tach-typography-v0.1.0" +``` + +## Install inside this monorepo + +```bash +yarn add @hublib-web/tach-typography +``` + +## Release this package + +1. Bump `version` in `packages/tach-typography/package.json`. +2. Build package artifacts: + +```bash +yarn workspace @hublib-web/tach-typography build +``` + +3. Commit release files: + +```bash +git add packages/tach-typography/package.json packages/tach-typography/dist +git commit -m "release(tach-typography): v0.1.0" +``` + +4. Create and push tag: + +```bash +git tag -a tach-typography-v0.1.0 -m "@hublib-web/tach-typography v0.1.0" +git push origin main --follow-tags +``` + +Detailed docs: + +- [Release policy](../../docs/release-policy.md) +- [Git installation](../../docs/git-installation.md) + +## React usage (Ant Design) + +```tsx +import "@hublib-web/tach-typography/styles.css"; +import { TachTypography } from "@hublib-web/tach-typography/react"; + +export const Example = () => ( + + Hello from React + AntD + +); +``` + +## Angular usage (NG-ZORRO) + +```ts +import { Component } from "@angular/core"; +import { TachTypographyDirective, TachTypographyNzModule } from "@hublib-web/tach-typography/angular"; + +@Component({ + selector: "app-example", + standalone: true, + imports: [TachTypographyNzModule, TachTypographyDirective], + template: ` + + Hello from Angular + NG-ZORRO + + `, +}) +export class ExampleComponent {} +``` + +## Storybook (dev/design system) + +Run from repository root: + +```bash +yarn workspace @hublib-web/tach-typography storybook +``` + +Build static Storybook: + +```bash +yarn workspace @hublib-web/tach-typography storybook:build +``` diff --git a/packages/tach-typography/dist/angular/index.cjs b/packages/tach-typography/dist/angular/index.cjs new file mode 100644 index 0000000..8310c86 --- /dev/null +++ b/packages/tach-typography/dist/angular/index.cjs @@ -0,0 +1,204 @@ +'use strict'; + +var core = require('@angular/core'); +var typography = require('ng-zorro-antd/typography'); + +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : /* @__PURE__ */ Symbol.for("Symbol." + name); +var __typeError = (msg) => { + throw TypeError(msg); +}; +var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); +var __decoratorStart = (base) => [, , , __create(null)]; +var __decoratorStrings = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"]; +var __expectFn = (fn) => fn !== void 0 && typeof fn !== "function" ? __typeError("Function expected") : fn; +var __decoratorContext = (kind, name, done, metadata, fns) => ({ kind: __decoratorStrings[kind], name, metadata, addInitializer: (fn) => done._ ? __typeError("Already initialized") : fns.push(__expectFn(fn || null)) }); +var __decoratorMetadata = (array, target) => __defNormalProp(target, __knownSymbol("metadata"), array[3]); +var __runInitializers = (array, flags, self, value) => { + for (var i = 0, fns = array[flags >> 1], n = fns && fns.length; i < n; i++) flags & 1 ? fns[i].call(self) : value = fns[i].call(self, value); + return value; +}; +var __decorateElement = (array, flags, name, decorators, target, extra) => { + var fn, it, done, ctx, access, k = flags & 7, s = !!(flags & 8), p = !!(flags & 16); + var j = k > 3 ? array.length + 1 : k ? s ? 1 : 2 : 0, key = __decoratorStrings[k + 5]; + var initializers = k > 3 && (array[j - 1] = []), extraInitializers = array[j] || (array[j] = []); + var desc = k && (!p && !s && (target = target.prototype), k < 5 && (k > 3 || !p) && __getOwnPropDesc(k < 4 ? target : { get [name]() { + return __privateGet(this, extra); + }, set [name](x) { + return __privateSet(this, extra, x); + } }, name)); + k ? p && k < 4 && __name(extra, (k > 2 ? "set " : k > 1 ? "get " : "") + name) : __name(target, name); + for (var i = decorators.length - 1; i >= 0; i--) { + ctx = __decoratorContext(k, name, done = {}, array[3], extraInitializers); + if (k) { + ctx.static = s, ctx.private = p, access = ctx.access = { has: p ? (x) => __privateIn(target, x) : (x) => name in x }; + if (k ^ 3) access.get = p ? (x) => (k ^ 1 ? __privateGet : __privateMethod)(x, target, k ^ 4 ? extra : desc.get) : (x) => x[name]; + if (k > 2) access.set = p ? (x, y) => __privateSet(x, target, y, k ^ 4 ? extra : desc.set) : (x, y) => x[name] = y; + } + it = (0, decorators[i])(k ? k < 4 ? p ? extra : desc[key] : k > 4 ? void 0 : { get: desc.get, set: desc.set } : target, ctx), done._ = 1; + if (k ^ 4 || it === void 0) __expectFn(it) && (k > 4 ? initializers.unshift(it) : k ? p ? extra = it : desc[key] = it : target = it); + else if (typeof it !== "object" || it === null) __typeError("Object expected"); + else __expectFn(fn = it.get) && (desc.get = fn), __expectFn(fn = it.set) && (desc.set = fn), __expectFn(fn = it.init) && initializers.unshift(fn); + } + return k || __decoratorMetadata(array, target), desc && __defProp(target, name, desc), p ? k ^ 4 ? extra : desc : target; +}; +var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); +var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg); +var __privateIn = (member, obj) => Object(obj) !== obj ? __typeError('Cannot use the "in" operator on this value') : member.has(obj); +var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj)); +var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value); +var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method); + +// src/core/classnames.ts +var BASE_CLASS = "tach-typography"; +var join = (...parts) => parts.filter(Boolean).join(" "); +var tachTypographyClassName = ({ + variant = "Body", + color = "primary", + weight = "normal", + clickable = false, + className +} = {}) => { + return join( + BASE_CLASS, + `${BASE_CLASS}--${variant}`, + `${BASE_CLASS}--color-${color}`, + weight === "bold" && `${BASE_CLASS}--bold`, + clickable && `${BASE_CLASS}--pointer`, + className + ); +}; +var tachTypographyClassList = (options = {}) => { + return tachTypographyClassName(options).split(" ").filter(Boolean); +}; + +// src/core/ellipsis.ts +var tachTypographyEllipsisStyle = (ellipsis) => { + if (!ellipsis) { + return void 0; + } + const rows = typeof ellipsis === "object" ? ellipsis.rows ?? 1 : 1; + return { + overflow: "hidden", + textOverflow: "ellipsis", + display: "-webkit-box", + WebkitBoxOrient: "vertical", + WebkitLineClamp: rows + }; +}; + +// src/angular/index.ts +var camelToKebab = (value) => value.replace(/[A-Z]/g, (match) => `-${match.toLowerCase()}`); +var toCssProperty = (styleKey) => { + if (styleKey.startsWith("Webkit")) { + return `-webkit-${camelToKebab(styleKey.slice(6))}`; + } + return camelToKebab(styleKey); +}; +var tachAngularTypographyClassName = (options = {}) => { + return tachTypographyClassName(options); +}; +var tachAngularTypographyClassList = (options = {}) => { + return tachTypographyClassList(options); +}; +var tachAngularTypographyStyles = (ellipsis, preserveStyle = {}) => { + const ellipsisStyle = tachTypographyEllipsisStyle(ellipsis); + if (!ellipsisStyle) { + return preserveStyle; + } + return { + ...ellipsisStyle, + ...preserveStyle + }; +}; +var _tachTypographyEllipsis_dec, _tachTypographyClassName_dec, _tachTypographyClickable_dec, _tachTypographyWeight_dec, _tachTypographyColor_dec, _tachTypographyVariant_dec, _tachTypography_dec, _TachTypographyDirective_decorators, _init; +_TachTypographyDirective_decorators = [core.Directive({ + selector: "[tachTypography]", + standalone: true +})], _tachTypography_dec = [core.Input()], _tachTypographyVariant_dec = [core.Input()], _tachTypographyColor_dec = [core.Input()], _tachTypographyWeight_dec = [core.Input()], _tachTypographyClickable_dec = [core.Input()], _tachTypographyClassName_dec = [core.Input()], _tachTypographyEllipsis_dec = [core.Input()]; +exports.TachTypographyDirective = class TachTypographyDirective { + constructor(elementRef, renderer) { + this.elementRef = elementRef; + this.renderer = renderer; + __publicField(this, "tachTypography", __runInitializers(_init, 8, this)), __runInitializers(_init, 11, this); + __publicField(this, "tachTypographyVariant", __runInitializers(_init, 12, this, "Body")), __runInitializers(_init, 15, this); + __publicField(this, "tachTypographyColor", __runInitializers(_init, 16, this, "primary")), __runInitializers(_init, 19, this); + __publicField(this, "tachTypographyWeight", __runInitializers(_init, 20, this, "normal")), __runInitializers(_init, 23, this); + __publicField(this, "tachTypographyClickable", __runInitializers(_init, 24, this, false)), __runInitializers(_init, 27, this); + __publicField(this, "tachTypographyClassName", __runInitializers(_init, 28, this)), __runInitializers(_init, 31, this); + __publicField(this, "tachTypographyEllipsis", __runInitializers(_init, 32, this)), __runInitializers(_init, 35, this); + __publicField(this, "appliedClasses", /* @__PURE__ */ new Set()); + __publicField(this, "appliedStyleProperties", /* @__PURE__ */ new Set()); + } + ngOnChanges(_changes) { + this.syncClasses(); + this.syncEllipsisStyles(); + } + syncClasses() { + const nextClassList = tachTypographyClassList({ + variant: this.tachTypography || this.tachTypographyVariant, + color: this.tachTypographyColor, + weight: this.tachTypographyWeight, + clickable: this.tachTypographyClickable, + className: this.tachTypographyClassName + }); + const nextSet = new Set(nextClassList); + for (const className of this.appliedClasses) { + if (!nextSet.has(className)) { + this.renderer.removeClass(this.elementRef.nativeElement, className); + } + } + for (const className of nextSet) { + this.renderer.addClass(this.elementRef.nativeElement, className); + } + this.appliedClasses.clear(); + for (const className of nextSet) { + this.appliedClasses.add(className); + } + } + syncEllipsisStyles() { + const nextStyles = tachTypographyEllipsisStyle(this.tachTypographyEllipsis) || {}; + const nextStyleKeys = new Set(Object.keys(nextStyles)); + for (const styleKey of this.appliedStyleProperties) { + if (!nextStyleKeys.has(styleKey)) { + this.renderer.removeStyle(this.elementRef.nativeElement, toCssProperty(styleKey)); + } + } + for (const [styleKey, styleValue] of Object.entries(nextStyles)) { + this.renderer.setStyle(this.elementRef.nativeElement, toCssProperty(styleKey), styleValue); + } + this.appliedStyleProperties.clear(); + for (const styleKey of nextStyleKeys) { + this.appliedStyleProperties.add(styleKey); + } + } +}; +_init = __decoratorStart(); +__decorateElement(_init, 5, "tachTypography", _tachTypography_dec, exports.TachTypographyDirective); +__decorateElement(_init, 5, "tachTypographyVariant", _tachTypographyVariant_dec, exports.TachTypographyDirective); +__decorateElement(_init, 5, "tachTypographyColor", _tachTypographyColor_dec, exports.TachTypographyDirective); +__decorateElement(_init, 5, "tachTypographyWeight", _tachTypographyWeight_dec, exports.TachTypographyDirective); +__decorateElement(_init, 5, "tachTypographyClickable", _tachTypographyClickable_dec, exports.TachTypographyDirective); +__decorateElement(_init, 5, "tachTypographyClassName", _tachTypographyClassName_dec, exports.TachTypographyDirective); +__decorateElement(_init, 5, "tachTypographyEllipsis", _tachTypographyEllipsis_dec, exports.TachTypographyDirective); +exports.TachTypographyDirective = __decorateElement(_init, 0, "TachTypographyDirective", _TachTypographyDirective_decorators, exports.TachTypographyDirective); +__runInitializers(_init, 1, exports.TachTypographyDirective); +var _TachTypographyNzModule_decorators, _init2; +_TachTypographyNzModule_decorators = [core.NgModule({ + imports: [typography.NzTypographyModule, exports.TachTypographyDirective], + exports: [typography.NzTypographyModule, exports.TachTypographyDirective] +})]; +exports.TachTypographyNzModule = class TachTypographyNzModule { +}; +_init2 = __decoratorStart(); +exports.TachTypographyNzModule = __decorateElement(_init2, 0, "TachTypographyNzModule", _TachTypographyNzModule_decorators, exports.TachTypographyNzModule); +__runInitializers(_init2, 1, exports.TachTypographyNzModule); + +exports.tachAngularTypographyClassList = tachAngularTypographyClassList; +exports.tachAngularTypographyClassName = tachAngularTypographyClassName; +exports.tachAngularTypographyStyles = tachAngularTypographyStyles; +//# sourceMappingURL=index.cjs.map +//# sourceMappingURL=index.cjs.map \ No newline at end of file diff --git a/packages/tach-typography/dist/angular/index.cjs.map b/packages/tach-typography/dist/angular/index.cjs.map new file mode 100644 index 0000000..da96c61 --- /dev/null +++ b/packages/tach-typography/dist/angular/index.cjs.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../src/core/classnames.ts","../../src/core/ellipsis.ts","../../src/angular/index.ts"],"names":["Directive","Input","TachTypographyDirective","_init","NgModule","NzTypographyModule","TachTypographyNzModule"],"mappings":"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","file":"index.cjs","sourcesContent":["import type { TypographyClassOptions } from \"./types\";\n\nconst BASE_CLASS = \"tach-typography\";\n\nconst join = (...parts: Array): string =>\n parts.filter(Boolean).join(\" \");\n\nexport const tachTypographyClassName = ({\n variant = \"Body\",\n color = \"primary\",\n weight = \"normal\",\n clickable = false,\n className,\n}: TypographyClassOptions = {}): string => {\n return join(\n BASE_CLASS,\n `${BASE_CLASS}--${variant}`,\n `${BASE_CLASS}--color-${color}`,\n weight === \"bold\" && `${BASE_CLASS}--bold`,\n clickable && `${BASE_CLASS}--pointer`,\n className,\n );\n};\n\nexport const tachTypographyClassList = (options: TypographyClassOptions = {}): string[] => {\n return tachTypographyClassName(options)\n .split(\" \")\n .filter(Boolean);\n};\n","import type { EllipsisOptions } from \"./types\";\n\ntype StyleRecord = Record;\n\nexport const tachTypographyEllipsisStyle = (\n ellipsis?: EllipsisOptions,\n): StyleRecord | undefined => {\n if (!ellipsis) {\n return undefined;\n }\n\n const rows = typeof ellipsis === \"object\" ? ellipsis.rows ?? 1 : 1;\n\n return {\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n display: \"-webkit-box\",\n WebkitBoxOrient: \"vertical\",\n WebkitLineClamp: rows,\n };\n};\n","import { NgModule } from \"@angular/core\";\nimport { Directive, ElementRef, Input, OnChanges, Renderer2, SimpleChanges } from \"@angular/core\";\nimport { NzTypographyModule } from \"ng-zorro-antd/typography\";\n\nimport {\n tachTypographyClassList,\n tachTypographyClassName,\n tachTypographyEllipsisStyle,\n type EllipsisOptions,\n type TypographyClassOptions,\n type TypographyColor,\n type TypographyRenderOptions,\n type TypographyVariant,\n type TypographyWeight,\n} from \"../core\";\n\nexport type AngularTypographyClassInput = TypographyClassOptions;\n\nexport interface AngularTypographyRenderOptions extends TypographyRenderOptions {\n preserveStyle?: Record;\n}\n\nconst camelToKebab = (value: string): string =>\n value.replace(/[A-Z]/g, match => `-${match.toLowerCase()}`);\n\nconst toCssProperty = (styleKey: string): string => {\n if (styleKey.startsWith(\"Webkit\")) {\n return `-webkit-${camelToKebab(styleKey.slice(6))}`;\n }\n\n return camelToKebab(styleKey);\n};\n\nexport const tachAngularTypographyClassName = (\n options: AngularTypographyClassInput = {},\n): string => {\n return tachTypographyClassName(options);\n};\n\nexport const tachAngularTypographyClassList = (\n options: AngularTypographyClassInput = {},\n): string[] => {\n return tachTypographyClassList(options);\n};\n\nexport const tachAngularTypographyStyles = (\n ellipsis?: EllipsisOptions,\n preserveStyle: Record = {},\n): Record => {\n const ellipsisStyle = tachTypographyEllipsisStyle(ellipsis);\n\n if (!ellipsisStyle) {\n return preserveStyle;\n }\n\n return {\n ...ellipsisStyle,\n ...preserveStyle,\n };\n};\n\n@Directive({\n selector: \"[tachTypography]\",\n standalone: true,\n})\nexport class TachTypographyDirective implements OnChanges {\n @Input() tachTypography: TypographyVariant | \"\" | undefined;\n @Input() tachTypographyVariant: TypographyVariant = \"Body\";\n @Input() tachTypographyColor: TypographyColor = \"primary\";\n @Input() tachTypographyWeight: TypographyWeight = \"normal\";\n @Input() tachTypographyClickable = false;\n @Input() tachTypographyClassName: string | undefined;\n @Input() tachTypographyEllipsis: EllipsisOptions | undefined;\n\n private readonly appliedClasses = new Set();\n private readonly appliedStyleProperties = new Set();\n\n constructor(\n private readonly elementRef: ElementRef,\n private readonly renderer: Renderer2,\n ) {}\n\n ngOnChanges(_changes: SimpleChanges): void {\n this.syncClasses();\n this.syncEllipsisStyles();\n }\n\n private syncClasses(): void {\n const nextClassList = tachTypographyClassList({\n variant: this.tachTypography || this.tachTypographyVariant,\n color: this.tachTypographyColor,\n weight: this.tachTypographyWeight,\n clickable: this.tachTypographyClickable,\n className: this.tachTypographyClassName,\n });\n\n const nextSet = new Set(nextClassList);\n\n for (const className of this.appliedClasses) {\n if (!nextSet.has(className)) {\n this.renderer.removeClass(this.elementRef.nativeElement, className);\n }\n }\n\n for (const className of nextSet) {\n this.renderer.addClass(this.elementRef.nativeElement, className);\n }\n\n this.appliedClasses.clear();\n for (const className of nextSet) {\n this.appliedClasses.add(className);\n }\n }\n\n private syncEllipsisStyles(): void {\n const nextStyles = tachTypographyEllipsisStyle(this.tachTypographyEllipsis) || {};\n const nextStyleKeys = new Set(Object.keys(nextStyles));\n\n for (const styleKey of this.appliedStyleProperties) {\n if (!nextStyleKeys.has(styleKey)) {\n this.renderer.removeStyle(this.elementRef.nativeElement, toCssProperty(styleKey));\n }\n }\n\n for (const [styleKey, styleValue] of Object.entries(nextStyles)) {\n this.renderer.setStyle(this.elementRef.nativeElement, toCssProperty(styleKey), styleValue);\n }\n\n this.appliedStyleProperties.clear();\n for (const styleKey of nextStyleKeys) {\n this.appliedStyleProperties.add(styleKey);\n }\n }\n}\n\n@NgModule({\n imports: [NzTypographyModule, TachTypographyDirective],\n exports: [NzTypographyModule, TachTypographyDirective],\n})\nexport class TachTypographyNzModule {}\n"]} \ No newline at end of file diff --git a/packages/tach-typography/dist/angular/index.d.cts b/packages/tach-typography/dist/angular/index.d.cts new file mode 100644 index 0000000..dba128f --- /dev/null +++ b/packages/tach-typography/dist/angular/index.d.cts @@ -0,0 +1,31 @@ +import { OnChanges, ElementRef, Renderer2, SimpleChanges } from '@angular/core'; +import { T as TypographyClassOptions, d as TypographyRenderOptions, e as TypographyVariant, c as TypographyColor, f as TypographyWeight, E as EllipsisOptions } from '../types-CQyFuLqp.cjs'; + +type AngularTypographyClassInput = TypographyClassOptions; +interface AngularTypographyRenderOptions extends TypographyRenderOptions { + preserveStyle?: Record; +} +declare const tachAngularTypographyClassName: (options?: AngularTypographyClassInput) => string; +declare const tachAngularTypographyClassList: (options?: AngularTypographyClassInput) => string[]; +declare const tachAngularTypographyStyles: (ellipsis?: EllipsisOptions, preserveStyle?: Record) => Record; +declare class TachTypographyDirective implements OnChanges { + private readonly elementRef; + private readonly renderer; + tachTypography: TypographyVariant | "" | undefined; + tachTypographyVariant: TypographyVariant; + tachTypographyColor: TypographyColor; + tachTypographyWeight: TypographyWeight; + tachTypographyClickable: boolean; + tachTypographyClassName: string | undefined; + tachTypographyEllipsis: EllipsisOptions | undefined; + private readonly appliedClasses; + private readonly appliedStyleProperties; + constructor(elementRef: ElementRef, renderer: Renderer2); + ngOnChanges(_changes: SimpleChanges): void; + private syncClasses; + private syncEllipsisStyles; +} +declare class TachTypographyNzModule { +} + +export { type AngularTypographyClassInput, type AngularTypographyRenderOptions, TachTypographyDirective, TachTypographyNzModule, tachAngularTypographyClassList, tachAngularTypographyClassName, tachAngularTypographyStyles }; diff --git a/packages/tach-typography/dist/angular/index.d.ts b/packages/tach-typography/dist/angular/index.d.ts new file mode 100644 index 0000000..a27514c --- /dev/null +++ b/packages/tach-typography/dist/angular/index.d.ts @@ -0,0 +1,31 @@ +import { OnChanges, ElementRef, Renderer2, SimpleChanges } from '@angular/core'; +import { T as TypographyClassOptions, d as TypographyRenderOptions, e as TypographyVariant, c as TypographyColor, f as TypographyWeight, E as EllipsisOptions } from '../types-CQyFuLqp.js'; + +type AngularTypographyClassInput = TypographyClassOptions; +interface AngularTypographyRenderOptions extends TypographyRenderOptions { + preserveStyle?: Record; +} +declare const tachAngularTypographyClassName: (options?: AngularTypographyClassInput) => string; +declare const tachAngularTypographyClassList: (options?: AngularTypographyClassInput) => string[]; +declare const tachAngularTypographyStyles: (ellipsis?: EllipsisOptions, preserveStyle?: Record) => Record; +declare class TachTypographyDirective implements OnChanges { + private readonly elementRef; + private readonly renderer; + tachTypography: TypographyVariant | "" | undefined; + tachTypographyVariant: TypographyVariant; + tachTypographyColor: TypographyColor; + tachTypographyWeight: TypographyWeight; + tachTypographyClickable: boolean; + tachTypographyClassName: string | undefined; + tachTypographyEllipsis: EllipsisOptions | undefined; + private readonly appliedClasses; + private readonly appliedStyleProperties; + constructor(elementRef: ElementRef, renderer: Renderer2); + ngOnChanges(_changes: SimpleChanges): void; + private syncClasses; + private syncEllipsisStyles; +} +declare class TachTypographyNzModule { +} + +export { type AngularTypographyClassInput, type AngularTypographyRenderOptions, TachTypographyDirective, TachTypographyNzModule, tachAngularTypographyClassList, tachAngularTypographyClassName, tachAngularTypographyStyles }; diff --git a/packages/tach-typography/dist/angular/index.js b/packages/tach-typography/dist/angular/index.js new file mode 100644 index 0000000..4dee6bc --- /dev/null +++ b/packages/tach-typography/dist/angular/index.js @@ -0,0 +1,200 @@ +import { Directive, Input, NgModule } from '@angular/core'; +import { NzTypographyModule } from 'ng-zorro-antd/typography'; + +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : /* @__PURE__ */ Symbol.for("Symbol." + name); +var __typeError = (msg) => { + throw TypeError(msg); +}; +var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); +var __decoratorStart = (base) => [, , , __create(null)]; +var __decoratorStrings = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"]; +var __expectFn = (fn) => fn !== void 0 && typeof fn !== "function" ? __typeError("Function expected") : fn; +var __decoratorContext = (kind, name, done, metadata, fns) => ({ kind: __decoratorStrings[kind], name, metadata, addInitializer: (fn) => done._ ? __typeError("Already initialized") : fns.push(__expectFn(fn || null)) }); +var __decoratorMetadata = (array, target) => __defNormalProp(target, __knownSymbol("metadata"), array[3]); +var __runInitializers = (array, flags, self, value) => { + for (var i = 0, fns = array[flags >> 1], n = fns && fns.length; i < n; i++) flags & 1 ? fns[i].call(self) : value = fns[i].call(self, value); + return value; +}; +var __decorateElement = (array, flags, name, decorators, target, extra) => { + var fn, it, done, ctx, access, k = flags & 7, s = !!(flags & 8), p = !!(flags & 16); + var j = k > 3 ? array.length + 1 : k ? s ? 1 : 2 : 0, key = __decoratorStrings[k + 5]; + var initializers = k > 3 && (array[j - 1] = []), extraInitializers = array[j] || (array[j] = []); + var desc = k && (!p && !s && (target = target.prototype), k < 5 && (k > 3 || !p) && __getOwnPropDesc(k < 4 ? target : { get [name]() { + return __privateGet(this, extra); + }, set [name](x) { + return __privateSet(this, extra, x); + } }, name)); + k ? p && k < 4 && __name(extra, (k > 2 ? "set " : k > 1 ? "get " : "") + name) : __name(target, name); + for (var i = decorators.length - 1; i >= 0; i--) { + ctx = __decoratorContext(k, name, done = {}, array[3], extraInitializers); + if (k) { + ctx.static = s, ctx.private = p, access = ctx.access = { has: p ? (x) => __privateIn(target, x) : (x) => name in x }; + if (k ^ 3) access.get = p ? (x) => (k ^ 1 ? __privateGet : __privateMethod)(x, target, k ^ 4 ? extra : desc.get) : (x) => x[name]; + if (k > 2) access.set = p ? (x, y) => __privateSet(x, target, y, k ^ 4 ? extra : desc.set) : (x, y) => x[name] = y; + } + it = (0, decorators[i])(k ? k < 4 ? p ? extra : desc[key] : k > 4 ? void 0 : { get: desc.get, set: desc.set } : target, ctx), done._ = 1; + if (k ^ 4 || it === void 0) __expectFn(it) && (k > 4 ? initializers.unshift(it) : k ? p ? extra = it : desc[key] = it : target = it); + else if (typeof it !== "object" || it === null) __typeError("Object expected"); + else __expectFn(fn = it.get) && (desc.get = fn), __expectFn(fn = it.set) && (desc.set = fn), __expectFn(fn = it.init) && initializers.unshift(fn); + } + return k || __decoratorMetadata(array, target), desc && __defProp(target, name, desc), p ? k ^ 4 ? extra : desc : target; +}; +var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); +var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg); +var __privateIn = (member, obj) => Object(obj) !== obj ? __typeError('Cannot use the "in" operator on this value') : member.has(obj); +var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj)); +var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value); +var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method); + +// src/core/classnames.ts +var BASE_CLASS = "tach-typography"; +var join = (...parts) => parts.filter(Boolean).join(" "); +var tachTypographyClassName = ({ + variant = "Body", + color = "primary", + weight = "normal", + clickable = false, + className +} = {}) => { + return join( + BASE_CLASS, + `${BASE_CLASS}--${variant}`, + `${BASE_CLASS}--color-${color}`, + weight === "bold" && `${BASE_CLASS}--bold`, + clickable && `${BASE_CLASS}--pointer`, + className + ); +}; +var tachTypographyClassList = (options = {}) => { + return tachTypographyClassName(options).split(" ").filter(Boolean); +}; + +// src/core/ellipsis.ts +var tachTypographyEllipsisStyle = (ellipsis) => { + if (!ellipsis) { + return void 0; + } + const rows = typeof ellipsis === "object" ? ellipsis.rows ?? 1 : 1; + return { + overflow: "hidden", + textOverflow: "ellipsis", + display: "-webkit-box", + WebkitBoxOrient: "vertical", + WebkitLineClamp: rows + }; +}; + +// src/angular/index.ts +var camelToKebab = (value) => value.replace(/[A-Z]/g, (match) => `-${match.toLowerCase()}`); +var toCssProperty = (styleKey) => { + if (styleKey.startsWith("Webkit")) { + return `-webkit-${camelToKebab(styleKey.slice(6))}`; + } + return camelToKebab(styleKey); +}; +var tachAngularTypographyClassName = (options = {}) => { + return tachTypographyClassName(options); +}; +var tachAngularTypographyClassList = (options = {}) => { + return tachTypographyClassList(options); +}; +var tachAngularTypographyStyles = (ellipsis, preserveStyle = {}) => { + const ellipsisStyle = tachTypographyEllipsisStyle(ellipsis); + if (!ellipsisStyle) { + return preserveStyle; + } + return { + ...ellipsisStyle, + ...preserveStyle + }; +}; +var _tachTypographyEllipsis_dec, _tachTypographyClassName_dec, _tachTypographyClickable_dec, _tachTypographyWeight_dec, _tachTypographyColor_dec, _tachTypographyVariant_dec, _tachTypography_dec, _TachTypographyDirective_decorators, _init; +_TachTypographyDirective_decorators = [Directive({ + selector: "[tachTypography]", + standalone: true +})], _tachTypography_dec = [Input()], _tachTypographyVariant_dec = [Input()], _tachTypographyColor_dec = [Input()], _tachTypographyWeight_dec = [Input()], _tachTypographyClickable_dec = [Input()], _tachTypographyClassName_dec = [Input()], _tachTypographyEllipsis_dec = [Input()]; +var TachTypographyDirective = class { + constructor(elementRef, renderer) { + this.elementRef = elementRef; + this.renderer = renderer; + __publicField(this, "tachTypography", __runInitializers(_init, 8, this)), __runInitializers(_init, 11, this); + __publicField(this, "tachTypographyVariant", __runInitializers(_init, 12, this, "Body")), __runInitializers(_init, 15, this); + __publicField(this, "tachTypographyColor", __runInitializers(_init, 16, this, "primary")), __runInitializers(_init, 19, this); + __publicField(this, "tachTypographyWeight", __runInitializers(_init, 20, this, "normal")), __runInitializers(_init, 23, this); + __publicField(this, "tachTypographyClickable", __runInitializers(_init, 24, this, false)), __runInitializers(_init, 27, this); + __publicField(this, "tachTypographyClassName", __runInitializers(_init, 28, this)), __runInitializers(_init, 31, this); + __publicField(this, "tachTypographyEllipsis", __runInitializers(_init, 32, this)), __runInitializers(_init, 35, this); + __publicField(this, "appliedClasses", /* @__PURE__ */ new Set()); + __publicField(this, "appliedStyleProperties", /* @__PURE__ */ new Set()); + } + ngOnChanges(_changes) { + this.syncClasses(); + this.syncEllipsisStyles(); + } + syncClasses() { + const nextClassList = tachTypographyClassList({ + variant: this.tachTypography || this.tachTypographyVariant, + color: this.tachTypographyColor, + weight: this.tachTypographyWeight, + clickable: this.tachTypographyClickable, + className: this.tachTypographyClassName + }); + const nextSet = new Set(nextClassList); + for (const className of this.appliedClasses) { + if (!nextSet.has(className)) { + this.renderer.removeClass(this.elementRef.nativeElement, className); + } + } + for (const className of nextSet) { + this.renderer.addClass(this.elementRef.nativeElement, className); + } + this.appliedClasses.clear(); + for (const className of nextSet) { + this.appliedClasses.add(className); + } + } + syncEllipsisStyles() { + const nextStyles = tachTypographyEllipsisStyle(this.tachTypographyEllipsis) || {}; + const nextStyleKeys = new Set(Object.keys(nextStyles)); + for (const styleKey of this.appliedStyleProperties) { + if (!nextStyleKeys.has(styleKey)) { + this.renderer.removeStyle(this.elementRef.nativeElement, toCssProperty(styleKey)); + } + } + for (const [styleKey, styleValue] of Object.entries(nextStyles)) { + this.renderer.setStyle(this.elementRef.nativeElement, toCssProperty(styleKey), styleValue); + } + this.appliedStyleProperties.clear(); + for (const styleKey of nextStyleKeys) { + this.appliedStyleProperties.add(styleKey); + } + } +}; +_init = __decoratorStart(); +__decorateElement(_init, 5, "tachTypography", _tachTypography_dec, TachTypographyDirective); +__decorateElement(_init, 5, "tachTypographyVariant", _tachTypographyVariant_dec, TachTypographyDirective); +__decorateElement(_init, 5, "tachTypographyColor", _tachTypographyColor_dec, TachTypographyDirective); +__decorateElement(_init, 5, "tachTypographyWeight", _tachTypographyWeight_dec, TachTypographyDirective); +__decorateElement(_init, 5, "tachTypographyClickable", _tachTypographyClickable_dec, TachTypographyDirective); +__decorateElement(_init, 5, "tachTypographyClassName", _tachTypographyClassName_dec, TachTypographyDirective); +__decorateElement(_init, 5, "tachTypographyEllipsis", _tachTypographyEllipsis_dec, TachTypographyDirective); +TachTypographyDirective = __decorateElement(_init, 0, "TachTypographyDirective", _TachTypographyDirective_decorators, TachTypographyDirective); +__runInitializers(_init, 1, TachTypographyDirective); +var _TachTypographyNzModule_decorators, _init2; +_TachTypographyNzModule_decorators = [NgModule({ + imports: [NzTypographyModule, TachTypographyDirective], + exports: [NzTypographyModule, TachTypographyDirective] +})]; +var TachTypographyNzModule = class { +}; +_init2 = __decoratorStart(); +TachTypographyNzModule = __decorateElement(_init2, 0, "TachTypographyNzModule", _TachTypographyNzModule_decorators, TachTypographyNzModule); +__runInitializers(_init2, 1, TachTypographyNzModule); + +export { TachTypographyDirective, TachTypographyNzModule, tachAngularTypographyClassList, tachAngularTypographyClassName, tachAngularTypographyStyles }; +//# sourceMappingURL=index.js.map +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/packages/tach-typography/dist/angular/index.js.map b/packages/tach-typography/dist/angular/index.js.map new file mode 100644 index 0000000..f7d71df --- /dev/null +++ b/packages/tach-typography/dist/angular/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../src/core/classnames.ts","../../src/core/ellipsis.ts","../../src/angular/index.ts"],"names":["_init"],"mappings":"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","file":"index.js","sourcesContent":["import type { TypographyClassOptions } from \"./types\";\n\nconst BASE_CLASS = \"tach-typography\";\n\nconst join = (...parts: Array): string =>\n parts.filter(Boolean).join(\" \");\n\nexport const tachTypographyClassName = ({\n variant = \"Body\",\n color = \"primary\",\n weight = \"normal\",\n clickable = false,\n className,\n}: TypographyClassOptions = {}): string => {\n return join(\n BASE_CLASS,\n `${BASE_CLASS}--${variant}`,\n `${BASE_CLASS}--color-${color}`,\n weight === \"bold\" && `${BASE_CLASS}--bold`,\n clickable && `${BASE_CLASS}--pointer`,\n className,\n );\n};\n\nexport const tachTypographyClassList = (options: TypographyClassOptions = {}): string[] => {\n return tachTypographyClassName(options)\n .split(\" \")\n .filter(Boolean);\n};\n","import type { EllipsisOptions } from \"./types\";\n\ntype StyleRecord = Record;\n\nexport const tachTypographyEllipsisStyle = (\n ellipsis?: EllipsisOptions,\n): StyleRecord | undefined => {\n if (!ellipsis) {\n return undefined;\n }\n\n const rows = typeof ellipsis === \"object\" ? ellipsis.rows ?? 1 : 1;\n\n return {\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n display: \"-webkit-box\",\n WebkitBoxOrient: \"vertical\",\n WebkitLineClamp: rows,\n };\n};\n","import { NgModule } from \"@angular/core\";\nimport { Directive, ElementRef, Input, OnChanges, Renderer2, SimpleChanges } from \"@angular/core\";\nimport { NzTypographyModule } from \"ng-zorro-antd/typography\";\n\nimport {\n tachTypographyClassList,\n tachTypographyClassName,\n tachTypographyEllipsisStyle,\n type EllipsisOptions,\n type TypographyClassOptions,\n type TypographyColor,\n type TypographyRenderOptions,\n type TypographyVariant,\n type TypographyWeight,\n} from \"../core\";\n\nexport type AngularTypographyClassInput = TypographyClassOptions;\n\nexport interface AngularTypographyRenderOptions extends TypographyRenderOptions {\n preserveStyle?: Record;\n}\n\nconst camelToKebab = (value: string): string =>\n value.replace(/[A-Z]/g, match => `-${match.toLowerCase()}`);\n\nconst toCssProperty = (styleKey: string): string => {\n if (styleKey.startsWith(\"Webkit\")) {\n return `-webkit-${camelToKebab(styleKey.slice(6))}`;\n }\n\n return camelToKebab(styleKey);\n};\n\nexport const tachAngularTypographyClassName = (\n options: AngularTypographyClassInput = {},\n): string => {\n return tachTypographyClassName(options);\n};\n\nexport const tachAngularTypographyClassList = (\n options: AngularTypographyClassInput = {},\n): string[] => {\n return tachTypographyClassList(options);\n};\n\nexport const tachAngularTypographyStyles = (\n ellipsis?: EllipsisOptions,\n preserveStyle: Record = {},\n): Record => {\n const ellipsisStyle = tachTypographyEllipsisStyle(ellipsis);\n\n if (!ellipsisStyle) {\n return preserveStyle;\n }\n\n return {\n ...ellipsisStyle,\n ...preserveStyle,\n };\n};\n\n@Directive({\n selector: \"[tachTypography]\",\n standalone: true,\n})\nexport class TachTypographyDirective implements OnChanges {\n @Input() tachTypography: TypographyVariant | \"\" | undefined;\n @Input() tachTypographyVariant: TypographyVariant = \"Body\";\n @Input() tachTypographyColor: TypographyColor = \"primary\";\n @Input() tachTypographyWeight: TypographyWeight = \"normal\";\n @Input() tachTypographyClickable = false;\n @Input() tachTypographyClassName: string | undefined;\n @Input() tachTypographyEllipsis: EllipsisOptions | undefined;\n\n private readonly appliedClasses = new Set();\n private readonly appliedStyleProperties = new Set();\n\n constructor(\n private readonly elementRef: ElementRef,\n private readonly renderer: Renderer2,\n ) {}\n\n ngOnChanges(_changes: SimpleChanges): void {\n this.syncClasses();\n this.syncEllipsisStyles();\n }\n\n private syncClasses(): void {\n const nextClassList = tachTypographyClassList({\n variant: this.tachTypography || this.tachTypographyVariant,\n color: this.tachTypographyColor,\n weight: this.tachTypographyWeight,\n clickable: this.tachTypographyClickable,\n className: this.tachTypographyClassName,\n });\n\n const nextSet = new Set(nextClassList);\n\n for (const className of this.appliedClasses) {\n if (!nextSet.has(className)) {\n this.renderer.removeClass(this.elementRef.nativeElement, className);\n }\n }\n\n for (const className of nextSet) {\n this.renderer.addClass(this.elementRef.nativeElement, className);\n }\n\n this.appliedClasses.clear();\n for (const className of nextSet) {\n this.appliedClasses.add(className);\n }\n }\n\n private syncEllipsisStyles(): void {\n const nextStyles = tachTypographyEllipsisStyle(this.tachTypographyEllipsis) || {};\n const nextStyleKeys = new Set(Object.keys(nextStyles));\n\n for (const styleKey of this.appliedStyleProperties) {\n if (!nextStyleKeys.has(styleKey)) {\n this.renderer.removeStyle(this.elementRef.nativeElement, toCssProperty(styleKey));\n }\n }\n\n for (const [styleKey, styleValue] of Object.entries(nextStyles)) {\n this.renderer.setStyle(this.elementRef.nativeElement, toCssProperty(styleKey), styleValue);\n }\n\n this.appliedStyleProperties.clear();\n for (const styleKey of nextStyleKeys) {\n this.appliedStyleProperties.add(styleKey);\n }\n }\n}\n\n@NgModule({\n imports: [NzTypographyModule, TachTypographyDirective],\n exports: [NzTypographyModule, TachTypographyDirective],\n})\nexport class TachTypographyNzModule {}\n"]} \ No newline at end of file diff --git a/packages/tach-typography/dist/core/index.cjs b/packages/tach-typography/dist/core/index.cjs new file mode 100644 index 0000000..7a4ff5b --- /dev/null +++ b/packages/tach-typography/dist/core/index.cjs @@ -0,0 +1,87 @@ +'use strict'; + +// src/core/types.ts +var TYPOGRAPHY_VARIANTS = [ + "LargeTitle", + "Title1", + "Title2", + "Title3", + "Headline", + "Body", + "Inputs", + "Subheadline", + "FootnoteUnderline", + "Footnote", + "Caption", + "Caption2", + "AccentH1", + "AccentH2", + "AccentSubttl", + "AccentSubttl2", + "AccentCaption", + "AccentCaption2", + "AccentRegularM", + "AccentRegularS", + "AccentLargeTtl", + "AppMediumBody", + "AppMediumSubtext", + "AppMediumSubtextUnderline" +]; +var TYPOGRAPHY_COLORS = [ + "primary", + "secondary", + "tertiary", + "quaternary", + "link", + "white", + "dark", + "alert", + "malahit", + "attantion" +]; + +// src/core/classnames.ts +var BASE_CLASS = "tach-typography"; +var join = (...parts) => parts.filter(Boolean).join(" "); +var tachTypographyClassName = ({ + variant = "Body", + color = "primary", + weight = "normal", + clickable = false, + className +} = {}) => { + return join( + BASE_CLASS, + `${BASE_CLASS}--${variant}`, + `${BASE_CLASS}--color-${color}`, + weight === "bold" && `${BASE_CLASS}--bold`, + clickable && `${BASE_CLASS}--pointer`, + className + ); +}; +var tachTypographyClassList = (options = {}) => { + return tachTypographyClassName(options).split(" ").filter(Boolean); +}; + +// src/core/ellipsis.ts +var tachTypographyEllipsisStyle = (ellipsis) => { + if (!ellipsis) { + return void 0; + } + const rows = typeof ellipsis === "object" ? ellipsis.rows ?? 1 : 1; + return { + overflow: "hidden", + textOverflow: "ellipsis", + display: "-webkit-box", + WebkitBoxOrient: "vertical", + WebkitLineClamp: rows + }; +}; + +exports.TYPOGRAPHY_COLORS = TYPOGRAPHY_COLORS; +exports.TYPOGRAPHY_VARIANTS = TYPOGRAPHY_VARIANTS; +exports.tachTypographyClassList = tachTypographyClassList; +exports.tachTypographyClassName = tachTypographyClassName; +exports.tachTypographyEllipsisStyle = tachTypographyEllipsisStyle; +//# sourceMappingURL=index.cjs.map +//# sourceMappingURL=index.cjs.map \ No newline at end of file diff --git a/packages/tach-typography/dist/core/index.cjs.map b/packages/tach-typography/dist/core/index.cjs.map new file mode 100644 index 0000000..034429a --- /dev/null +++ b/packages/tach-typography/dist/core/index.cjs.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../src/core/types.ts","../../src/core/classnames.ts","../../src/core/ellipsis.ts"],"names":[],"mappings":";;;AAAO,IAAM,mBAAA,GAAsB;AAAA,EACjC,YAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,UAAA;AAAA,EACA,MAAA;AAAA,EACA,QAAA;AAAA,EACA,aAAA;AAAA,EACA,mBAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,UAAA;AAAA,EACA,UAAA;AAAA,EACA,cAAA;AAAA,EACA,eAAA;AAAA,EACA,eAAA;AAAA,EACA,gBAAA;AAAA,EACA,gBAAA;AAAA,EACA,gBAAA;AAAA,EACA,gBAAA;AAAA,EACA,eAAA;AAAA,EACA,kBAAA;AAAA,EACA;AACF;AAEO,IAAM,iBAAA,GAAoB;AAAA,EAC/B,SAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA;AAAA,EACA,YAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF;;;ACpCA,IAAM,UAAA,GAAa,iBAAA;AAEnB,IAAM,IAAA,GAAO,IAAI,KAAA,KACf,KAAA,CAAM,OAAO,OAAO,CAAA,CAAE,KAAK,GAAG,CAAA;AAEzB,IAAM,0BAA0B,CAAC;AAAA,EACtC,OAAA,GAAU,MAAA;AAAA,EACV,KAAA,GAAQ,SAAA;AAAA,EACR,MAAA,GAAS,QAAA;AAAA,EACT,SAAA,GAAY,KAAA;AAAA,EACZ;AACF,CAAA,GAA4B,EAAC,KAAc;AACzC,EAAA,OAAO,IAAA;AAAA,IACL,UAAA;AAAA,IACA,CAAA,EAAG,UAAU,CAAA,EAAA,EAAK,OAAO,CAAA,CAAA;AAAA,IACzB,CAAA,EAAG,UAAU,CAAA,QAAA,EAAW,KAAK,CAAA,CAAA;AAAA,IAC7B,MAAA,KAAW,MAAA,IAAU,CAAA,EAAG,UAAU,CAAA,MAAA,CAAA;AAAA,IAClC,SAAA,IAAa,GAAG,UAAU,CAAA,SAAA,CAAA;AAAA,IAC1B;AAAA,GACF;AACF;AAEO,IAAM,uBAAA,GAA0B,CAAC,OAAA,GAAkC,EAAC,KAAgB;AACzF,EAAA,OAAO,wBAAwB,OAAO,CAAA,CACnC,MAAM,GAAG,CAAA,CACT,OAAO,OAAO,CAAA;AACnB;;;ACxBO,IAAM,2BAAA,GAA8B,CACzC,QAAA,KAC4B;AAC5B,EAAA,IAAI,CAAC,QAAA,EAAU;AACb,IAAA,OAAO,MAAA;AAAA,EACT;AAEA,EAAA,MAAM,OAAO,OAAO,QAAA,KAAa,QAAA,GAAW,QAAA,CAAS,QAAQ,CAAA,GAAI,CAAA;AAEjE,EAAA,OAAO;AAAA,IACL,QAAA,EAAU,QAAA;AAAA,IACV,YAAA,EAAc,UAAA;AAAA,IACd,OAAA,EAAS,aAAA;AAAA,IACT,eAAA,EAAiB,UAAA;AAAA,IACjB,eAAA,EAAiB;AAAA,GACnB;AACF","file":"index.cjs","sourcesContent":["export const TYPOGRAPHY_VARIANTS = [\n \"LargeTitle\",\n \"Title1\",\n \"Title2\",\n \"Title3\",\n \"Headline\",\n \"Body\",\n \"Inputs\",\n \"Subheadline\",\n \"FootnoteUnderline\",\n \"Footnote\",\n \"Caption\",\n \"Caption2\",\n \"AccentH1\",\n \"AccentH2\",\n \"AccentSubttl\",\n \"AccentSubttl2\",\n \"AccentCaption\",\n \"AccentCaption2\",\n \"AccentRegularM\",\n \"AccentRegularS\",\n \"AccentLargeTtl\",\n \"AppMediumBody\",\n \"AppMediumSubtext\",\n \"AppMediumSubtextUnderline\",\n] as const;\n\nexport const TYPOGRAPHY_COLORS = [\n \"primary\",\n \"secondary\",\n \"tertiary\",\n \"quaternary\",\n \"link\",\n \"white\",\n \"dark\",\n \"alert\",\n \"malahit\",\n \"attantion\",\n] as const;\n\nexport type TypographyVariant = (typeof TYPOGRAPHY_VARIANTS)[number];\nexport type TypographyColor = (typeof TYPOGRAPHY_COLORS)[number];\nexport type TypographyWeight = \"normal\" | \"bold\";\n\nexport interface TypographyClassOptions {\n variant?: TypographyVariant;\n color?: TypographyColor;\n weight?: TypographyWeight;\n clickable?: boolean;\n className?: string | undefined;\n}\n\nexport type EllipsisOptions =\n | boolean\n | {\n rows?: number;\n };\n\nexport interface TypographyRenderOptions extends TypographyClassOptions {\n ellipsis?: EllipsisOptions;\n}\n","import type { TypographyClassOptions } from \"./types\";\n\nconst BASE_CLASS = \"tach-typography\";\n\nconst join = (...parts: Array): string =>\n parts.filter(Boolean).join(\" \");\n\nexport const tachTypographyClassName = ({\n variant = \"Body\",\n color = \"primary\",\n weight = \"normal\",\n clickable = false,\n className,\n}: TypographyClassOptions = {}): string => {\n return join(\n BASE_CLASS,\n `${BASE_CLASS}--${variant}`,\n `${BASE_CLASS}--color-${color}`,\n weight === \"bold\" && `${BASE_CLASS}--bold`,\n clickable && `${BASE_CLASS}--pointer`,\n className,\n );\n};\n\nexport const tachTypographyClassList = (options: TypographyClassOptions = {}): string[] => {\n return tachTypographyClassName(options)\n .split(\" \")\n .filter(Boolean);\n};\n","import type { EllipsisOptions } from \"./types\";\n\ntype StyleRecord = Record;\n\nexport const tachTypographyEllipsisStyle = (\n ellipsis?: EllipsisOptions,\n): StyleRecord | undefined => {\n if (!ellipsis) {\n return undefined;\n }\n\n const rows = typeof ellipsis === \"object\" ? ellipsis.rows ?? 1 : 1;\n\n return {\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n display: \"-webkit-box\",\n WebkitBoxOrient: \"vertical\",\n WebkitLineClamp: rows,\n };\n};\n"]} \ No newline at end of file diff --git a/packages/tach-typography/dist/core/index.d.cts b/packages/tach-typography/dist/core/index.d.cts new file mode 100644 index 0000000..5ac3a7f --- /dev/null +++ b/packages/tach-typography/dist/core/index.d.cts @@ -0,0 +1,10 @@ +import { T as TypographyClassOptions, E as EllipsisOptions } from '../types-CQyFuLqp.cjs'; +export { a as TYPOGRAPHY_COLORS, b as TYPOGRAPHY_VARIANTS, c as TypographyColor, d as TypographyRenderOptions, e as TypographyVariant, f as TypographyWeight } from '../types-CQyFuLqp.cjs'; + +declare const tachTypographyClassName: ({ variant, color, weight, clickable, className, }?: TypographyClassOptions) => string; +declare const tachTypographyClassList: (options?: TypographyClassOptions) => string[]; + +type StyleRecord = Record; +declare const tachTypographyEllipsisStyle: (ellipsis?: EllipsisOptions) => StyleRecord | undefined; + +export { EllipsisOptions, TypographyClassOptions, tachTypographyClassList, tachTypographyClassName, tachTypographyEllipsisStyle }; diff --git a/packages/tach-typography/dist/core/index.d.ts b/packages/tach-typography/dist/core/index.d.ts new file mode 100644 index 0000000..f3b311b --- /dev/null +++ b/packages/tach-typography/dist/core/index.d.ts @@ -0,0 +1,10 @@ +import { T as TypographyClassOptions, E as EllipsisOptions } from '../types-CQyFuLqp.js'; +export { a as TYPOGRAPHY_COLORS, b as TYPOGRAPHY_VARIANTS, c as TypographyColor, d as TypographyRenderOptions, e as TypographyVariant, f as TypographyWeight } from '../types-CQyFuLqp.js'; + +declare const tachTypographyClassName: ({ variant, color, weight, clickable, className, }?: TypographyClassOptions) => string; +declare const tachTypographyClassList: (options?: TypographyClassOptions) => string[]; + +type StyleRecord = Record; +declare const tachTypographyEllipsisStyle: (ellipsis?: EllipsisOptions) => StyleRecord | undefined; + +export { EllipsisOptions, TypographyClassOptions, tachTypographyClassList, tachTypographyClassName, tachTypographyEllipsisStyle }; diff --git a/packages/tach-typography/dist/core/index.js b/packages/tach-typography/dist/core/index.js new file mode 100644 index 0000000..be35d87 --- /dev/null +++ b/packages/tach-typography/dist/core/index.js @@ -0,0 +1,81 @@ +// src/core/types.ts +var TYPOGRAPHY_VARIANTS = [ + "LargeTitle", + "Title1", + "Title2", + "Title3", + "Headline", + "Body", + "Inputs", + "Subheadline", + "FootnoteUnderline", + "Footnote", + "Caption", + "Caption2", + "AccentH1", + "AccentH2", + "AccentSubttl", + "AccentSubttl2", + "AccentCaption", + "AccentCaption2", + "AccentRegularM", + "AccentRegularS", + "AccentLargeTtl", + "AppMediumBody", + "AppMediumSubtext", + "AppMediumSubtextUnderline" +]; +var TYPOGRAPHY_COLORS = [ + "primary", + "secondary", + "tertiary", + "quaternary", + "link", + "white", + "dark", + "alert", + "malahit", + "attantion" +]; + +// src/core/classnames.ts +var BASE_CLASS = "tach-typography"; +var join = (...parts) => parts.filter(Boolean).join(" "); +var tachTypographyClassName = ({ + variant = "Body", + color = "primary", + weight = "normal", + clickable = false, + className +} = {}) => { + return join( + BASE_CLASS, + `${BASE_CLASS}--${variant}`, + `${BASE_CLASS}--color-${color}`, + weight === "bold" && `${BASE_CLASS}--bold`, + clickable && `${BASE_CLASS}--pointer`, + className + ); +}; +var tachTypographyClassList = (options = {}) => { + return tachTypographyClassName(options).split(" ").filter(Boolean); +}; + +// src/core/ellipsis.ts +var tachTypographyEllipsisStyle = (ellipsis) => { + if (!ellipsis) { + return void 0; + } + const rows = typeof ellipsis === "object" ? ellipsis.rows ?? 1 : 1; + return { + overflow: "hidden", + textOverflow: "ellipsis", + display: "-webkit-box", + WebkitBoxOrient: "vertical", + WebkitLineClamp: rows + }; +}; + +export { TYPOGRAPHY_COLORS, TYPOGRAPHY_VARIANTS, tachTypographyClassList, tachTypographyClassName, tachTypographyEllipsisStyle }; +//# sourceMappingURL=index.js.map +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/packages/tach-typography/dist/core/index.js.map b/packages/tach-typography/dist/core/index.js.map new file mode 100644 index 0000000..ad5a864 --- /dev/null +++ b/packages/tach-typography/dist/core/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../src/core/types.ts","../../src/core/classnames.ts","../../src/core/ellipsis.ts"],"names":[],"mappings":";AAAO,IAAM,mBAAA,GAAsB;AAAA,EACjC,YAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,UAAA;AAAA,EACA,MAAA;AAAA,EACA,QAAA;AAAA,EACA,aAAA;AAAA,EACA,mBAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,UAAA;AAAA,EACA,UAAA;AAAA,EACA,cAAA;AAAA,EACA,eAAA;AAAA,EACA,eAAA;AAAA,EACA,gBAAA;AAAA,EACA,gBAAA;AAAA,EACA,gBAAA;AAAA,EACA,gBAAA;AAAA,EACA,eAAA;AAAA,EACA,kBAAA;AAAA,EACA;AACF;AAEO,IAAM,iBAAA,GAAoB;AAAA,EAC/B,SAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA;AAAA,EACA,YAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF;;;ACpCA,IAAM,UAAA,GAAa,iBAAA;AAEnB,IAAM,IAAA,GAAO,IAAI,KAAA,KACf,KAAA,CAAM,OAAO,OAAO,CAAA,CAAE,KAAK,GAAG,CAAA;AAEzB,IAAM,0BAA0B,CAAC;AAAA,EACtC,OAAA,GAAU,MAAA;AAAA,EACV,KAAA,GAAQ,SAAA;AAAA,EACR,MAAA,GAAS,QAAA;AAAA,EACT,SAAA,GAAY,KAAA;AAAA,EACZ;AACF,CAAA,GAA4B,EAAC,KAAc;AACzC,EAAA,OAAO,IAAA;AAAA,IACL,UAAA;AAAA,IACA,CAAA,EAAG,UAAU,CAAA,EAAA,EAAK,OAAO,CAAA,CAAA;AAAA,IACzB,CAAA,EAAG,UAAU,CAAA,QAAA,EAAW,KAAK,CAAA,CAAA;AAAA,IAC7B,MAAA,KAAW,MAAA,IAAU,CAAA,EAAG,UAAU,CAAA,MAAA,CAAA;AAAA,IAClC,SAAA,IAAa,GAAG,UAAU,CAAA,SAAA,CAAA;AAAA,IAC1B;AAAA,GACF;AACF;AAEO,IAAM,uBAAA,GAA0B,CAAC,OAAA,GAAkC,EAAC,KAAgB;AACzF,EAAA,OAAO,wBAAwB,OAAO,CAAA,CACnC,MAAM,GAAG,CAAA,CACT,OAAO,OAAO,CAAA;AACnB;;;ACxBO,IAAM,2BAAA,GAA8B,CACzC,QAAA,KAC4B;AAC5B,EAAA,IAAI,CAAC,QAAA,EAAU;AACb,IAAA,OAAO,MAAA;AAAA,EACT;AAEA,EAAA,MAAM,OAAO,OAAO,QAAA,KAAa,QAAA,GAAW,QAAA,CAAS,QAAQ,CAAA,GAAI,CAAA;AAEjE,EAAA,OAAO;AAAA,IACL,QAAA,EAAU,QAAA;AAAA,IACV,YAAA,EAAc,UAAA;AAAA,IACd,OAAA,EAAS,aAAA;AAAA,IACT,eAAA,EAAiB,UAAA;AAAA,IACjB,eAAA,EAAiB;AAAA,GACnB;AACF","file":"index.js","sourcesContent":["export const TYPOGRAPHY_VARIANTS = [\n \"LargeTitle\",\n \"Title1\",\n \"Title2\",\n \"Title3\",\n \"Headline\",\n \"Body\",\n \"Inputs\",\n \"Subheadline\",\n \"FootnoteUnderline\",\n \"Footnote\",\n \"Caption\",\n \"Caption2\",\n \"AccentH1\",\n \"AccentH2\",\n \"AccentSubttl\",\n \"AccentSubttl2\",\n \"AccentCaption\",\n \"AccentCaption2\",\n \"AccentRegularM\",\n \"AccentRegularS\",\n \"AccentLargeTtl\",\n \"AppMediumBody\",\n \"AppMediumSubtext\",\n \"AppMediumSubtextUnderline\",\n] as const;\n\nexport const TYPOGRAPHY_COLORS = [\n \"primary\",\n \"secondary\",\n \"tertiary\",\n \"quaternary\",\n \"link\",\n \"white\",\n \"dark\",\n \"alert\",\n \"malahit\",\n \"attantion\",\n] as const;\n\nexport type TypographyVariant = (typeof TYPOGRAPHY_VARIANTS)[number];\nexport type TypographyColor = (typeof TYPOGRAPHY_COLORS)[number];\nexport type TypographyWeight = \"normal\" | \"bold\";\n\nexport interface TypographyClassOptions {\n variant?: TypographyVariant;\n color?: TypographyColor;\n weight?: TypographyWeight;\n clickable?: boolean;\n className?: string | undefined;\n}\n\nexport type EllipsisOptions =\n | boolean\n | {\n rows?: number;\n };\n\nexport interface TypographyRenderOptions extends TypographyClassOptions {\n ellipsis?: EllipsisOptions;\n}\n","import type { TypographyClassOptions } from \"./types\";\n\nconst BASE_CLASS = \"tach-typography\";\n\nconst join = (...parts: Array): string =>\n parts.filter(Boolean).join(\" \");\n\nexport const tachTypographyClassName = ({\n variant = \"Body\",\n color = \"primary\",\n weight = \"normal\",\n clickable = false,\n className,\n}: TypographyClassOptions = {}): string => {\n return join(\n BASE_CLASS,\n `${BASE_CLASS}--${variant}`,\n `${BASE_CLASS}--color-${color}`,\n weight === \"bold\" && `${BASE_CLASS}--bold`,\n clickable && `${BASE_CLASS}--pointer`,\n className,\n );\n};\n\nexport const tachTypographyClassList = (options: TypographyClassOptions = {}): string[] => {\n return tachTypographyClassName(options)\n .split(\" \")\n .filter(Boolean);\n};\n","import type { EllipsisOptions } from \"./types\";\n\ntype StyleRecord = Record;\n\nexport const tachTypographyEllipsisStyle = (\n ellipsis?: EllipsisOptions,\n): StyleRecord | undefined => {\n if (!ellipsis) {\n return undefined;\n }\n\n const rows = typeof ellipsis === \"object\" ? ellipsis.rows ?? 1 : 1;\n\n return {\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n display: \"-webkit-box\",\n WebkitBoxOrient: \"vertical\",\n WebkitLineClamp: rows,\n };\n};\n"]} \ No newline at end of file diff --git a/packages/tach-typography/dist/react/index.cjs b/packages/tach-typography/dist/react/index.cjs new file mode 100644 index 0000000..de3f8ff --- /dev/null +++ b/packages/tach-typography/dist/react/index.cjs @@ -0,0 +1,88 @@ +'use strict'; + +var React = require('react'); +var antd = require('antd'); +var jsxRuntime = require('react/jsx-runtime'); + +function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; } + +var React__default = /*#__PURE__*/_interopDefault(React); + +// src/react/index.tsx + +// src/core/classnames.ts +var BASE_CLASS = "tach-typography"; +var join = (...parts) => parts.filter(Boolean).join(" "); +var tachTypographyClassName = ({ + variant = "Body", + color = "primary", + weight = "normal", + clickable = false, + className +} = {}) => { + return join( + BASE_CLASS, + `${BASE_CLASS}--${variant}`, + `${BASE_CLASS}--color-${color}`, + weight === "bold" && `${BASE_CLASS}--bold`, + clickable && `${BASE_CLASS}--pointer`, + className + ); +}; +var createTypographyVariant = (Component, variant) => { + const Variant = React__default.default.forwardRef( + ({ color = "primary", weight = "normal", className, onClick, ...rest }, ref) => /* @__PURE__ */ jsxRuntime.jsx( + Component, + { + ref, + className: tachTypographyClassName({ + variant, + color, + weight, + className, + clickable: Boolean(onClick) + }), + onClick, + ...rest + } + ) + ); + Variant.displayName = String(variant); + return Variant; +}; +var createTypographyComponent = (Component) => ({ + LargeTitle: createTypographyVariant(Component, "LargeTitle"), + Title1: createTypographyVariant(Component, "Title1"), + Title2: createTypographyVariant(Component, "Title2"), + Title3: createTypographyVariant(Component, "Title3"), + Headline: createTypographyVariant(Component, "Headline"), + Body: createTypographyVariant(Component, "Body"), + Inputs: createTypographyVariant(Component, "Inputs"), + Subheadline: createTypographyVariant(Component, "Subheadline"), + FootnoteUnderline: createTypographyVariant(Component, "FootnoteUnderline"), + Footnote: createTypographyVariant(Component, "Footnote"), + Caption: createTypographyVariant(Component, "Caption"), + Caption2: createTypographyVariant(Component, "Caption2"), + AccentH1: createTypographyVariant(Component, "AccentH1"), + AccentH2: createTypographyVariant(Component, "AccentH2"), + AccentSubttl: createTypographyVariant(Component, "AccentSubttl"), + AccentSubttl2: createTypographyVariant(Component, "AccentSubttl2"), + AccentCaption: createTypographyVariant(Component, "AccentCaption"), + AccentCaption2: createTypographyVariant(Component, "AccentCaption2"), + AccentRegularM: createTypographyVariant(Component, "AccentRegularM"), + AccentRegularS: createTypographyVariant(Component, "AccentRegularS"), + AccentLargeTtl: createTypographyVariant(Component, "AccentLargeTtl"), + AppMediumBody: createTypographyVariant(Component, "AppMediumBody"), + AppMediumSubtext: createTypographyVariant(Component, "AppMediumSubtext"), + AppMediumSubtextUnderline: createTypographyVariant(Component, "AppMediumSubtextUnderline") +}); +var TachTypography = { + Text: createTypographyComponent(antd.Typography.Text), + Paragraph: createTypographyComponent(antd.Typography.Paragraph), + Link: createTypographyComponent(antd.Typography.Link), + Title: createTypographyComponent(antd.Typography.Title) +}; + +exports.TachTypography = TachTypography; +//# sourceMappingURL=index.cjs.map +//# sourceMappingURL=index.cjs.map \ No newline at end of file diff --git a/packages/tach-typography/dist/react/index.cjs.map b/packages/tach-typography/dist/react/index.cjs.map new file mode 100644 index 0000000..1a9d1cb --- /dev/null +++ b/packages/tach-typography/dist/react/index.cjs.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../src/core/classnames.ts","../../src/react/index.tsx"],"names":["React","jsx","Typography"],"mappings":"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","file":"index.cjs","sourcesContent":["import type { TypographyClassOptions } from \"./types\";\n\nconst BASE_CLASS = \"tach-typography\";\n\nconst join = (...parts: Array): string =>\n parts.filter(Boolean).join(\" \");\n\nexport const tachTypographyClassName = ({\n variant = \"Body\",\n color = \"primary\",\n weight = \"normal\",\n clickable = false,\n className,\n}: TypographyClassOptions = {}): string => {\n return join(\n BASE_CLASS,\n `${BASE_CLASS}--${variant}`,\n `${BASE_CLASS}--color-${color}`,\n weight === \"bold\" && `${BASE_CLASS}--bold`,\n clickable && `${BASE_CLASS}--pointer`,\n className,\n );\n};\n\nexport const tachTypographyClassList = (options: TypographyClassOptions = {}): string[] => {\n return tachTypographyClassName(options)\n .split(\" \")\n .filter(Boolean);\n};\n","import React from \"react\";\n\nimport { Typography } from \"antd\";\nimport type { LinkProps } from \"antd/lib/typography/Link\";\nimport type { ParagraphProps } from \"antd/lib/typography/Paragraph\";\nimport type { TextProps } from \"antd/lib/typography/Text\";\nimport type { TitleProps } from \"antd/lib/typography/Title\";\n\nimport {\n tachTypographyClassName,\n type TypographyColor,\n type TypographyVariant,\n type TypographyWeight,\n} from \"../core\";\n\ninterface AdditionalProps {\n color?: TypographyColor;\n weight?: TypographyWeight;\n onClick?: (event: React.MouseEvent) => void;\n className?: string | undefined;\n}\n\nconst createTypographyVariant =

(\n Component: React.ComponentType

,\n variant: TypographyVariant,\n) => {\n const Variant = React.forwardRef(\n ({ color = \"primary\", weight = \"normal\", className, onClick, ...rest }, ref) => (\n \n ),\n );\n\n Variant.displayName = String(variant);\n\n return Variant;\n};\n\nconst createTypographyComponent =

(Component: React.ComponentType

) => ({\n LargeTitle: createTypographyVariant(Component, \"LargeTitle\"),\n Title1: createTypographyVariant(Component, \"Title1\"),\n Title2: createTypographyVariant(Component, \"Title2\"),\n Title3: createTypographyVariant(Component, \"Title3\"),\n Headline: createTypographyVariant(Component, \"Headline\"),\n Body: createTypographyVariant(Component, \"Body\"),\n Inputs: createTypographyVariant(Component, \"Inputs\"),\n Subheadline: createTypographyVariant(Component, \"Subheadline\"),\n FootnoteUnderline: createTypographyVariant(Component, \"FootnoteUnderline\"),\n Footnote: createTypographyVariant(Component, \"Footnote\"),\n Caption: createTypographyVariant(Component, \"Caption\"),\n Caption2: createTypographyVariant(Component, \"Caption2\"),\n\n AccentH1: createTypographyVariant(Component, \"AccentH1\"),\n AccentH2: createTypographyVariant(Component, \"AccentH2\"),\n AccentSubttl: createTypographyVariant(Component, \"AccentSubttl\"),\n AccentSubttl2: createTypographyVariant(Component, \"AccentSubttl2\"),\n AccentCaption: createTypographyVariant(Component, \"AccentCaption\"),\n AccentCaption2: createTypographyVariant(Component, \"AccentCaption2\"),\n AccentRegularM: createTypographyVariant(Component, \"AccentRegularM\"),\n AccentRegularS: createTypographyVariant(Component, \"AccentRegularS\"),\n AccentLargeTtl: createTypographyVariant(Component, \"AccentLargeTtl\"),\n AppMediumBody: createTypographyVariant(Component, \"AppMediumBody\"),\n AppMediumSubtext: createTypographyVariant(Component, \"AppMediumSubtext\"),\n AppMediumSubtextUnderline: createTypographyVariant(Component, \"AppMediumSubtextUnderline\"),\n});\n\nexport const TachTypography = {\n Text: createTypographyComponent>(Typography.Text),\n Paragraph: createTypographyComponent(Typography.Paragraph),\n Link: createTypographyComponent(Typography.Link),\n Title: createTypographyComponent(Typography.Title),\n};\n"]} \ No newline at end of file diff --git a/packages/tach-typography/dist/react/index.d.cts b/packages/tach-typography/dist/react/index.d.cts new file mode 100644 index 0000000..f821244 --- /dev/null +++ b/packages/tach-typography/dist/react/index.d.cts @@ -0,0 +1,121 @@ +import React from 'react'; +import { LinkProps } from 'antd/lib/typography/Link'; +import { ParagraphProps } from 'antd/lib/typography/Paragraph'; +import { TextProps } from 'antd/lib/typography/Text'; +import { TitleProps } from 'antd/lib/typography/Title'; +import { c as TypographyColor, f as TypographyWeight } from '../types-CQyFuLqp.cjs'; + +interface AdditionalProps { + color?: TypographyColor; + weight?: TypographyWeight; + onClick?: (event: React.MouseEvent) => void; + className?: string | undefined; +} +declare const TachTypography: { + Text: { + LargeTitle: React.ForwardRefExoticComponent & AdditionalProps & React.RefAttributes>; + Title1: React.ForwardRefExoticComponent & AdditionalProps & React.RefAttributes>; + Title2: React.ForwardRefExoticComponent & AdditionalProps & React.RefAttributes>; + Title3: React.ForwardRefExoticComponent & AdditionalProps & React.RefAttributes>; + Headline: React.ForwardRefExoticComponent & AdditionalProps & React.RefAttributes>; + Body: React.ForwardRefExoticComponent & AdditionalProps & React.RefAttributes>; + Inputs: React.ForwardRefExoticComponent & AdditionalProps & React.RefAttributes>; + Subheadline: React.ForwardRefExoticComponent & AdditionalProps & React.RefAttributes>; + FootnoteUnderline: React.ForwardRefExoticComponent & AdditionalProps & React.RefAttributes>; + Footnote: React.ForwardRefExoticComponent & AdditionalProps & React.RefAttributes>; + Caption: React.ForwardRefExoticComponent & AdditionalProps & React.RefAttributes>; + Caption2: React.ForwardRefExoticComponent & AdditionalProps & React.RefAttributes>; + AccentH1: React.ForwardRefExoticComponent & AdditionalProps & React.RefAttributes>; + AccentH2: React.ForwardRefExoticComponent & AdditionalProps & React.RefAttributes>; + AccentSubttl: React.ForwardRefExoticComponent & AdditionalProps & React.RefAttributes>; + AccentSubttl2: React.ForwardRefExoticComponent & AdditionalProps & React.RefAttributes>; + AccentCaption: React.ForwardRefExoticComponent & AdditionalProps & React.RefAttributes>; + AccentCaption2: React.ForwardRefExoticComponent & AdditionalProps & React.RefAttributes>; + AccentRegularM: React.ForwardRefExoticComponent & AdditionalProps & React.RefAttributes>; + AccentRegularS: React.ForwardRefExoticComponent & AdditionalProps & React.RefAttributes>; + AccentLargeTtl: React.ForwardRefExoticComponent & AdditionalProps & React.RefAttributes>; + AppMediumBody: React.ForwardRefExoticComponent & AdditionalProps & React.RefAttributes>; + AppMediumSubtext: React.ForwardRefExoticComponent & AdditionalProps & React.RefAttributes>; + AppMediumSubtextUnderline: React.ForwardRefExoticComponent & AdditionalProps & React.RefAttributes>; + }; + Paragraph: { + LargeTitle: React.ForwardRefExoticComponent>; + Title1: React.ForwardRefExoticComponent>; + Title2: React.ForwardRefExoticComponent>; + Title3: React.ForwardRefExoticComponent>; + Headline: React.ForwardRefExoticComponent>; + Body: React.ForwardRefExoticComponent>; + Inputs: React.ForwardRefExoticComponent>; + Subheadline: React.ForwardRefExoticComponent>; + FootnoteUnderline: React.ForwardRefExoticComponent>; + Footnote: React.ForwardRefExoticComponent>; + Caption: React.ForwardRefExoticComponent>; + Caption2: React.ForwardRefExoticComponent>; + AccentH1: React.ForwardRefExoticComponent>; + AccentH2: React.ForwardRefExoticComponent>; + AccentSubttl: React.ForwardRefExoticComponent>; + AccentSubttl2: React.ForwardRefExoticComponent>; + AccentCaption: React.ForwardRefExoticComponent>; + AccentCaption2: React.ForwardRefExoticComponent>; + AccentRegularM: React.ForwardRefExoticComponent>; + AccentRegularS: React.ForwardRefExoticComponent>; + AccentLargeTtl: React.ForwardRefExoticComponent>; + AppMediumBody: React.ForwardRefExoticComponent>; + AppMediumSubtext: React.ForwardRefExoticComponent>; + AppMediumSubtextUnderline: React.ForwardRefExoticComponent>; + }; + Link: { + LargeTitle: React.ForwardRefExoticComponent>; + Title1: React.ForwardRefExoticComponent>; + Title2: React.ForwardRefExoticComponent>; + Title3: React.ForwardRefExoticComponent>; + Headline: React.ForwardRefExoticComponent>; + Body: React.ForwardRefExoticComponent>; + Inputs: React.ForwardRefExoticComponent>; + Subheadline: React.ForwardRefExoticComponent>; + FootnoteUnderline: React.ForwardRefExoticComponent>; + Footnote: React.ForwardRefExoticComponent>; + Caption: React.ForwardRefExoticComponent>; + Caption2: React.ForwardRefExoticComponent>; + AccentH1: React.ForwardRefExoticComponent>; + AccentH2: React.ForwardRefExoticComponent>; + AccentSubttl: React.ForwardRefExoticComponent>; + AccentSubttl2: React.ForwardRefExoticComponent>; + AccentCaption: React.ForwardRefExoticComponent>; + AccentCaption2: React.ForwardRefExoticComponent>; + AccentRegularM: React.ForwardRefExoticComponent>; + AccentRegularS: React.ForwardRefExoticComponent>; + AccentLargeTtl: React.ForwardRefExoticComponent>; + AppMediumBody: React.ForwardRefExoticComponent>; + AppMediumSubtext: React.ForwardRefExoticComponent>; + AppMediumSubtextUnderline: React.ForwardRefExoticComponent>; + }; + Title: { + LargeTitle: React.ForwardRefExoticComponent>; + Title1: React.ForwardRefExoticComponent>; + Title2: React.ForwardRefExoticComponent>; + Title3: React.ForwardRefExoticComponent>; + Headline: React.ForwardRefExoticComponent>; + Body: React.ForwardRefExoticComponent>; + Inputs: React.ForwardRefExoticComponent>; + Subheadline: React.ForwardRefExoticComponent>; + FootnoteUnderline: React.ForwardRefExoticComponent>; + Footnote: React.ForwardRefExoticComponent>; + Caption: React.ForwardRefExoticComponent>; + Caption2: React.ForwardRefExoticComponent>; + AccentH1: React.ForwardRefExoticComponent>; + AccentH2: React.ForwardRefExoticComponent>; + AccentSubttl: React.ForwardRefExoticComponent>; + AccentSubttl2: React.ForwardRefExoticComponent>; + AccentCaption: React.ForwardRefExoticComponent>; + AccentCaption2: React.ForwardRefExoticComponent>; + AccentRegularM: React.ForwardRefExoticComponent>; + AccentRegularS: React.ForwardRefExoticComponent>; + AccentLargeTtl: React.ForwardRefExoticComponent>; + AppMediumBody: React.ForwardRefExoticComponent>; + AppMediumSubtext: React.ForwardRefExoticComponent>; + AppMediumSubtextUnderline: React.ForwardRefExoticComponent>; + }; +}; + +export { TachTypography }; diff --git a/packages/tach-typography/dist/react/index.d.ts b/packages/tach-typography/dist/react/index.d.ts new file mode 100644 index 0000000..f80de44 --- /dev/null +++ b/packages/tach-typography/dist/react/index.d.ts @@ -0,0 +1,121 @@ +import React from 'react'; +import { LinkProps } from 'antd/lib/typography/Link'; +import { ParagraphProps } from 'antd/lib/typography/Paragraph'; +import { TextProps } from 'antd/lib/typography/Text'; +import { TitleProps } from 'antd/lib/typography/Title'; +import { c as TypographyColor, f as TypographyWeight } from '../types-CQyFuLqp.js'; + +interface AdditionalProps { + color?: TypographyColor; + weight?: TypographyWeight; + onClick?: (event: React.MouseEvent) => void; + className?: string | undefined; +} +declare const TachTypography: { + Text: { + LargeTitle: React.ForwardRefExoticComponent & AdditionalProps & React.RefAttributes>; + Title1: React.ForwardRefExoticComponent & AdditionalProps & React.RefAttributes>; + Title2: React.ForwardRefExoticComponent & AdditionalProps & React.RefAttributes>; + Title3: React.ForwardRefExoticComponent & AdditionalProps & React.RefAttributes>; + Headline: React.ForwardRefExoticComponent & AdditionalProps & React.RefAttributes>; + Body: React.ForwardRefExoticComponent & AdditionalProps & React.RefAttributes>; + Inputs: React.ForwardRefExoticComponent & AdditionalProps & React.RefAttributes>; + Subheadline: React.ForwardRefExoticComponent & AdditionalProps & React.RefAttributes>; + FootnoteUnderline: React.ForwardRefExoticComponent & AdditionalProps & React.RefAttributes>; + Footnote: React.ForwardRefExoticComponent & AdditionalProps & React.RefAttributes>; + Caption: React.ForwardRefExoticComponent & AdditionalProps & React.RefAttributes>; + Caption2: React.ForwardRefExoticComponent & AdditionalProps & React.RefAttributes>; + AccentH1: React.ForwardRefExoticComponent & AdditionalProps & React.RefAttributes>; + AccentH2: React.ForwardRefExoticComponent & AdditionalProps & React.RefAttributes>; + AccentSubttl: React.ForwardRefExoticComponent & AdditionalProps & React.RefAttributes>; + AccentSubttl2: React.ForwardRefExoticComponent & AdditionalProps & React.RefAttributes>; + AccentCaption: React.ForwardRefExoticComponent & AdditionalProps & React.RefAttributes>; + AccentCaption2: React.ForwardRefExoticComponent & AdditionalProps & React.RefAttributes>; + AccentRegularM: React.ForwardRefExoticComponent & AdditionalProps & React.RefAttributes>; + AccentRegularS: React.ForwardRefExoticComponent & AdditionalProps & React.RefAttributes>; + AccentLargeTtl: React.ForwardRefExoticComponent & AdditionalProps & React.RefAttributes>; + AppMediumBody: React.ForwardRefExoticComponent & AdditionalProps & React.RefAttributes>; + AppMediumSubtext: React.ForwardRefExoticComponent & AdditionalProps & React.RefAttributes>; + AppMediumSubtextUnderline: React.ForwardRefExoticComponent & AdditionalProps & React.RefAttributes>; + }; + Paragraph: { + LargeTitle: React.ForwardRefExoticComponent>; + Title1: React.ForwardRefExoticComponent>; + Title2: React.ForwardRefExoticComponent>; + Title3: React.ForwardRefExoticComponent>; + Headline: React.ForwardRefExoticComponent>; + Body: React.ForwardRefExoticComponent>; + Inputs: React.ForwardRefExoticComponent>; + Subheadline: React.ForwardRefExoticComponent>; + FootnoteUnderline: React.ForwardRefExoticComponent>; + Footnote: React.ForwardRefExoticComponent>; + Caption: React.ForwardRefExoticComponent>; + Caption2: React.ForwardRefExoticComponent>; + AccentH1: React.ForwardRefExoticComponent>; + AccentH2: React.ForwardRefExoticComponent>; + AccentSubttl: React.ForwardRefExoticComponent>; + AccentSubttl2: React.ForwardRefExoticComponent>; + AccentCaption: React.ForwardRefExoticComponent>; + AccentCaption2: React.ForwardRefExoticComponent>; + AccentRegularM: React.ForwardRefExoticComponent>; + AccentRegularS: React.ForwardRefExoticComponent>; + AccentLargeTtl: React.ForwardRefExoticComponent>; + AppMediumBody: React.ForwardRefExoticComponent>; + AppMediumSubtext: React.ForwardRefExoticComponent>; + AppMediumSubtextUnderline: React.ForwardRefExoticComponent>; + }; + Link: { + LargeTitle: React.ForwardRefExoticComponent>; + Title1: React.ForwardRefExoticComponent>; + Title2: React.ForwardRefExoticComponent>; + Title3: React.ForwardRefExoticComponent>; + Headline: React.ForwardRefExoticComponent>; + Body: React.ForwardRefExoticComponent>; + Inputs: React.ForwardRefExoticComponent>; + Subheadline: React.ForwardRefExoticComponent>; + FootnoteUnderline: React.ForwardRefExoticComponent>; + Footnote: React.ForwardRefExoticComponent>; + Caption: React.ForwardRefExoticComponent>; + Caption2: React.ForwardRefExoticComponent>; + AccentH1: React.ForwardRefExoticComponent>; + AccentH2: React.ForwardRefExoticComponent>; + AccentSubttl: React.ForwardRefExoticComponent>; + AccentSubttl2: React.ForwardRefExoticComponent>; + AccentCaption: React.ForwardRefExoticComponent>; + AccentCaption2: React.ForwardRefExoticComponent>; + AccentRegularM: React.ForwardRefExoticComponent>; + AccentRegularS: React.ForwardRefExoticComponent>; + AccentLargeTtl: React.ForwardRefExoticComponent>; + AppMediumBody: React.ForwardRefExoticComponent>; + AppMediumSubtext: React.ForwardRefExoticComponent>; + AppMediumSubtextUnderline: React.ForwardRefExoticComponent>; + }; + Title: { + LargeTitle: React.ForwardRefExoticComponent>; + Title1: React.ForwardRefExoticComponent>; + Title2: React.ForwardRefExoticComponent>; + Title3: React.ForwardRefExoticComponent>; + Headline: React.ForwardRefExoticComponent>; + Body: React.ForwardRefExoticComponent>; + Inputs: React.ForwardRefExoticComponent>; + Subheadline: React.ForwardRefExoticComponent>; + FootnoteUnderline: React.ForwardRefExoticComponent>; + Footnote: React.ForwardRefExoticComponent>; + Caption: React.ForwardRefExoticComponent>; + Caption2: React.ForwardRefExoticComponent>; + AccentH1: React.ForwardRefExoticComponent>; + AccentH2: React.ForwardRefExoticComponent>; + AccentSubttl: React.ForwardRefExoticComponent>; + AccentSubttl2: React.ForwardRefExoticComponent>; + AccentCaption: React.ForwardRefExoticComponent>; + AccentCaption2: React.ForwardRefExoticComponent>; + AccentRegularM: React.ForwardRefExoticComponent>; + AccentRegularS: React.ForwardRefExoticComponent>; + AccentLargeTtl: React.ForwardRefExoticComponent>; + AppMediumBody: React.ForwardRefExoticComponent>; + AppMediumSubtext: React.ForwardRefExoticComponent>; + AppMediumSubtextUnderline: React.ForwardRefExoticComponent>; + }; +}; + +export { TachTypography }; diff --git a/packages/tach-typography/dist/react/index.js b/packages/tach-typography/dist/react/index.js new file mode 100644 index 0000000..9bda140 --- /dev/null +++ b/packages/tach-typography/dist/react/index.js @@ -0,0 +1,82 @@ +import React from 'react'; +import { Typography } from 'antd'; +import { jsx } from 'react/jsx-runtime'; + +// src/react/index.tsx + +// src/core/classnames.ts +var BASE_CLASS = "tach-typography"; +var join = (...parts) => parts.filter(Boolean).join(" "); +var tachTypographyClassName = ({ + variant = "Body", + color = "primary", + weight = "normal", + clickable = false, + className +} = {}) => { + return join( + BASE_CLASS, + `${BASE_CLASS}--${variant}`, + `${BASE_CLASS}--color-${color}`, + weight === "bold" && `${BASE_CLASS}--bold`, + clickable && `${BASE_CLASS}--pointer`, + className + ); +}; +var createTypographyVariant = (Component, variant) => { + const Variant = React.forwardRef( + ({ color = "primary", weight = "normal", className, onClick, ...rest }, ref) => /* @__PURE__ */ jsx( + Component, + { + ref, + className: tachTypographyClassName({ + variant, + color, + weight, + className, + clickable: Boolean(onClick) + }), + onClick, + ...rest + } + ) + ); + Variant.displayName = String(variant); + return Variant; +}; +var createTypographyComponent = (Component) => ({ + LargeTitle: createTypographyVariant(Component, "LargeTitle"), + Title1: createTypographyVariant(Component, "Title1"), + Title2: createTypographyVariant(Component, "Title2"), + Title3: createTypographyVariant(Component, "Title3"), + Headline: createTypographyVariant(Component, "Headline"), + Body: createTypographyVariant(Component, "Body"), + Inputs: createTypographyVariant(Component, "Inputs"), + Subheadline: createTypographyVariant(Component, "Subheadline"), + FootnoteUnderline: createTypographyVariant(Component, "FootnoteUnderline"), + Footnote: createTypographyVariant(Component, "Footnote"), + Caption: createTypographyVariant(Component, "Caption"), + Caption2: createTypographyVariant(Component, "Caption2"), + AccentH1: createTypographyVariant(Component, "AccentH1"), + AccentH2: createTypographyVariant(Component, "AccentH2"), + AccentSubttl: createTypographyVariant(Component, "AccentSubttl"), + AccentSubttl2: createTypographyVariant(Component, "AccentSubttl2"), + AccentCaption: createTypographyVariant(Component, "AccentCaption"), + AccentCaption2: createTypographyVariant(Component, "AccentCaption2"), + AccentRegularM: createTypographyVariant(Component, "AccentRegularM"), + AccentRegularS: createTypographyVariant(Component, "AccentRegularS"), + AccentLargeTtl: createTypographyVariant(Component, "AccentLargeTtl"), + AppMediumBody: createTypographyVariant(Component, "AppMediumBody"), + AppMediumSubtext: createTypographyVariant(Component, "AppMediumSubtext"), + AppMediumSubtextUnderline: createTypographyVariant(Component, "AppMediumSubtextUnderline") +}); +var TachTypography = { + Text: createTypographyComponent(Typography.Text), + Paragraph: createTypographyComponent(Typography.Paragraph), + Link: createTypographyComponent(Typography.Link), + Title: createTypographyComponent(Typography.Title) +}; + +export { TachTypography }; +//# sourceMappingURL=index.js.map +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/packages/tach-typography/dist/react/index.js.map b/packages/tach-typography/dist/react/index.js.map new file mode 100644 index 0000000..a4e029b --- /dev/null +++ b/packages/tach-typography/dist/react/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../src/core/classnames.ts","../../src/react/index.tsx"],"names":[],"mappings":";;;;;;;AAEA,IAAM,UAAA,GAAa,iBAAA;AAEnB,IAAM,IAAA,GAAO,IAAI,KAAA,KACf,KAAA,CAAM,OAAO,OAAO,CAAA,CAAE,KAAK,GAAG,CAAA;AAEzB,IAAM,0BAA0B,CAAC;AAAA,EACtC,OAAA,GAAU,MAAA;AAAA,EACV,KAAA,GAAQ,SAAA;AAAA,EACR,MAAA,GAAS,QAAA;AAAA,EACT,SAAA,GAAY,KAAA;AAAA,EACZ;AACF,CAAA,GAA4B,EAAC,KAAc;AACzC,EAAA,OAAO,IAAA;AAAA,IACL,UAAA;AAAA,IACA,CAAA,EAAG,UAAU,CAAA,EAAA,EAAK,OAAO,CAAA,CAAA;AAAA,IACzB,CAAA,EAAG,UAAU,CAAA,QAAA,EAAW,KAAK,CAAA,CAAA;AAAA,IAC7B,MAAA,KAAW,MAAA,IAAU,CAAA,EAAG,UAAU,CAAA,MAAA,CAAA;AAAA,IAClC,SAAA,IAAa,GAAG,UAAU,CAAA,SAAA,CAAA;AAAA,IAC1B;AAAA,GACF;AACF,CAAA;ACAA,IAAM,uBAAA,GAA0B,CAC9B,SAAA,EACA,OAAA,KACG;AACH,EAAA,MAAM,UAAU,KAAA,CAAM,UAAA;AAAA,IACpB,CAAC,EAAE,KAAA,GAAQ,SAAA,EAAW,MAAA,GAAS,QAAA,EAAU,SAAA,EAAW,OAAA,EAAS,GAAG,IAAA,EAAK,EAAG,GAAA,qBACtE,GAAA;AAAA,MAAC,SAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,WAAW,uBAAA,CAAwB;AAAA,UACjC,OAAA;AAAA,UACA,KAAA;AAAA,UACA,MAAA;AAAA,UACA,SAAA;AAAA,UACA,SAAA,EAAW,QAAQ,OAAO;AAAA,SAC3B,CAAA;AAAA,QACD,OAAA;AAAA,QACC,GAAI;AAAA;AAAA;AACP,GAEJ;AAEA,EAAA,OAAA,CAAQ,WAAA,GAAc,OAAO,OAAO,CAAA;AAEpC,EAAA,OAAO,OAAA;AACT,CAAA;AAEA,IAAM,yBAAA,GAA4B,CAAmB,SAAA,MAAuC;AAAA,EAC1F,UAAA,EAAY,uBAAA,CAAwB,SAAA,EAAW,YAAY,CAAA;AAAA,EAC3D,MAAA,EAAQ,uBAAA,CAAwB,SAAA,EAAW,QAAQ,CAAA;AAAA,EACnD,MAAA,EAAQ,uBAAA,CAAwB,SAAA,EAAW,QAAQ,CAAA;AAAA,EACnD,MAAA,EAAQ,uBAAA,CAAwB,SAAA,EAAW,QAAQ,CAAA;AAAA,EACnD,QAAA,EAAU,uBAAA,CAAwB,SAAA,EAAW,UAAU,CAAA;AAAA,EACvD,IAAA,EAAM,uBAAA,CAAwB,SAAA,EAAW,MAAM,CAAA;AAAA,EAC/C,MAAA,EAAQ,uBAAA,CAAwB,SAAA,EAAW,QAAQ,CAAA;AAAA,EACnD,WAAA,EAAa,uBAAA,CAAwB,SAAA,EAAW,aAAa,CAAA;AAAA,EAC7D,iBAAA,EAAmB,uBAAA,CAAwB,SAAA,EAAW,mBAAmB,CAAA;AAAA,EACzE,QAAA,EAAU,uBAAA,CAAwB,SAAA,EAAW,UAAU,CAAA;AAAA,EACvD,OAAA,EAAS,uBAAA,CAAwB,SAAA,EAAW,SAAS,CAAA;AAAA,EACrD,QAAA,EAAU,uBAAA,CAAwB,SAAA,EAAW,UAAU,CAAA;AAAA,EAEvD,QAAA,EAAU,uBAAA,CAAwB,SAAA,EAAW,UAAU,CAAA;AAAA,EACvD,QAAA,EAAU,uBAAA,CAAwB,SAAA,EAAW,UAAU,CAAA;AAAA,EACvD,YAAA,EAAc,uBAAA,CAAwB,SAAA,EAAW,cAAc,CAAA;AAAA,EAC/D,aAAA,EAAe,uBAAA,CAAwB,SAAA,EAAW,eAAe,CAAA;AAAA,EACjE,aAAA,EAAe,uBAAA,CAAwB,SAAA,EAAW,eAAe,CAAA;AAAA,EACjE,cAAA,EAAgB,uBAAA,CAAwB,SAAA,EAAW,gBAAgB,CAAA;AAAA,EACnE,cAAA,EAAgB,uBAAA,CAAwB,SAAA,EAAW,gBAAgB,CAAA;AAAA,EACnE,cAAA,EAAgB,uBAAA,CAAwB,SAAA,EAAW,gBAAgB,CAAA;AAAA,EACnE,cAAA,EAAgB,uBAAA,CAAwB,SAAA,EAAW,gBAAgB,CAAA;AAAA,EACnE,aAAA,EAAe,uBAAA,CAAwB,SAAA,EAAW,eAAe,CAAA;AAAA,EACjE,gBAAA,EAAkB,uBAAA,CAAwB,SAAA,EAAW,kBAAkB,CAAA;AAAA,EACvE,yBAAA,EAA2B,uBAAA,CAAwB,SAAA,EAAW,2BAA2B;AAC3F,CAAA,CAAA;AAEO,IAAM,cAAA,GAAiB;AAAA,EAC5B,IAAA,EAAM,yBAAA,CAAwE,UAAA,CAAW,IAAI,CAAA;AAAA,EAC7F,SAAA,EAAW,yBAAA,CAA0C,UAAA,CAAW,SAAS,CAAA;AAAA,EACzE,IAAA,EAAM,yBAAA,CAAqC,UAAA,CAAW,IAAI,CAAA;AAAA,EAC1D,KAAA,EAAO,yBAAA,CAAsC,UAAA,CAAW,KAAK;AAC/D","file":"index.js","sourcesContent":["import type { TypographyClassOptions } from \"./types\";\n\nconst BASE_CLASS = \"tach-typography\";\n\nconst join = (...parts: Array): string =>\n parts.filter(Boolean).join(\" \");\n\nexport const tachTypographyClassName = ({\n variant = \"Body\",\n color = \"primary\",\n weight = \"normal\",\n clickable = false,\n className,\n}: TypographyClassOptions = {}): string => {\n return join(\n BASE_CLASS,\n `${BASE_CLASS}--${variant}`,\n `${BASE_CLASS}--color-${color}`,\n weight === \"bold\" && `${BASE_CLASS}--bold`,\n clickable && `${BASE_CLASS}--pointer`,\n className,\n );\n};\n\nexport const tachTypographyClassList = (options: TypographyClassOptions = {}): string[] => {\n return tachTypographyClassName(options)\n .split(\" \")\n .filter(Boolean);\n};\n","import React from \"react\";\n\nimport { Typography } from \"antd\";\nimport type { LinkProps } from \"antd/lib/typography/Link\";\nimport type { ParagraphProps } from \"antd/lib/typography/Paragraph\";\nimport type { TextProps } from \"antd/lib/typography/Text\";\nimport type { TitleProps } from \"antd/lib/typography/Title\";\n\nimport {\n tachTypographyClassName,\n type TypographyColor,\n type TypographyVariant,\n type TypographyWeight,\n} from \"../core\";\n\ninterface AdditionalProps {\n color?: TypographyColor;\n weight?: TypographyWeight;\n onClick?: (event: React.MouseEvent) => void;\n className?: string | undefined;\n}\n\nconst createTypographyVariant =

(\n Component: React.ComponentType

,\n variant: TypographyVariant,\n) => {\n const Variant = React.forwardRef(\n ({ color = \"primary\", weight = \"normal\", className, onClick, ...rest }, ref) => (\n \n ),\n );\n\n Variant.displayName = String(variant);\n\n return Variant;\n};\n\nconst createTypographyComponent =

(Component: React.ComponentType

) => ({\n LargeTitle: createTypographyVariant(Component, \"LargeTitle\"),\n Title1: createTypographyVariant(Component, \"Title1\"),\n Title2: createTypographyVariant(Component, \"Title2\"),\n Title3: createTypographyVariant(Component, \"Title3\"),\n Headline: createTypographyVariant(Component, \"Headline\"),\n Body: createTypographyVariant(Component, \"Body\"),\n Inputs: createTypographyVariant(Component, \"Inputs\"),\n Subheadline: createTypographyVariant(Component, \"Subheadline\"),\n FootnoteUnderline: createTypographyVariant(Component, \"FootnoteUnderline\"),\n Footnote: createTypographyVariant(Component, \"Footnote\"),\n Caption: createTypographyVariant(Component, \"Caption\"),\n Caption2: createTypographyVariant(Component, \"Caption2\"),\n\n AccentH1: createTypographyVariant(Component, \"AccentH1\"),\n AccentH2: createTypographyVariant(Component, \"AccentH2\"),\n AccentSubttl: createTypographyVariant(Component, \"AccentSubttl\"),\n AccentSubttl2: createTypographyVariant(Component, \"AccentSubttl2\"),\n AccentCaption: createTypographyVariant(Component, \"AccentCaption\"),\n AccentCaption2: createTypographyVariant(Component, \"AccentCaption2\"),\n AccentRegularM: createTypographyVariant(Component, \"AccentRegularM\"),\n AccentRegularS: createTypographyVariant(Component, \"AccentRegularS\"),\n AccentLargeTtl: createTypographyVariant(Component, \"AccentLargeTtl\"),\n AppMediumBody: createTypographyVariant(Component, \"AppMediumBody\"),\n AppMediumSubtext: createTypographyVariant(Component, \"AppMediumSubtext\"),\n AppMediumSubtextUnderline: createTypographyVariant(Component, \"AppMediumSubtextUnderline\"),\n});\n\nexport const TachTypography = {\n Text: createTypographyComponent>(Typography.Text),\n Paragraph: createTypographyComponent(Typography.Paragraph),\n Link: createTypographyComponent(Typography.Link),\n Title: createTypographyComponent(Typography.Title),\n};\n"]} \ No newline at end of file diff --git a/packages/tach-typography/dist/styles.css b/packages/tach-typography/dist/styles.css new file mode 100644 index 0000000..341acfd --- /dev/null +++ b/packages/tach-typography/dist/styles.css @@ -0,0 +1,103 @@ +.tach-typography { + margin: 0; +} + +.ant-typography.tach-typography { + margin-top: 0 !important; + margin-bottom: 0 !important; +} + +.tach-typography--pointer, +.ant-typography.tach-typography--pointer { + cursor: pointer; +} + +.tach-typography--bold, +.ant-typography.tach-typography--bold { + font-weight: 700 !important; +} + +.tach-typography--color-primary, +.ant-typography.tach-typography--color-primary { color: var(--Text-Primary); } +.tach-typography--color-secondary, +.ant-typography.tach-typography--color-secondary { color: var(--Text-Secondary); } +.tach-typography--color-tertiary, +.ant-typography.tach-typography--color-tertiary { color: var(--Text-Tertiary); } +.tach-typography--color-quaternary, +.ant-typography.tach-typography--color-quaternary { color: var(--Text-Quaternary); } +.tach-typography--color-link, +.ant-typography.tach-typography--color-link { color: var(--System-HashtagsInPost); } +.tach-typography--color-white, +.ant-typography.tach-typography--color-white { color: var(--Default-White); } +.tach-typography--color-dark, +.ant-typography.tach-typography--color-dark { color: var(--Default-Dark); } +.tach-typography--color-alert, +.ant-typography.tach-typography--color-alert { color: var(--System-Alert); } +.tach-typography--color-malahit, +.ant-typography.tach-typography--color-malahit { color: var(--Accent-Malahit); } +.tach-typography--color-attantion, +.ant-typography.tach-typography--color-attantion { color: var(--System-Attantion); } + +.tach-typography--LargeTitle, +.ant-typography.tach-typography--LargeTitle { font-family: Inter, sans-serif; font-size: 38px; font-weight: 500; line-height: 46px; } +.tach-typography--Title1, +.ant-typography.tach-typography--Title1 { font-family: Inter, sans-serif; font-size: 28px; font-weight: 500; line-height: 34px; } +.tach-typography--Title2, +.ant-typography.tach-typography--Title2 { font-family: Inter, sans-serif; font-size: 22px; font-weight: 500; line-height: 28px; } +.tach-typography--Title3, +.ant-typography.tach-typography--Title3 { font-family: Inter, sans-serif; font-size: 20px; font-weight: 500; line-height: 26px; } +.tach-typography--Headline, +.ant-typography.tach-typography--Headline { font-family: Inter, sans-serif; font-size: 16px; font-weight: 500; line-height: 24px; } +.tach-typography--Body, +.tach-typography--AppMediumBody, +.ant-typography.tach-typography--Body, +.ant-typography.tach-typography--AppMediumBody { font-family: Inter, sans-serif; font-size: 14px; font-weight: 500; line-height: 20px; } +.tach-typography--Inputs, +.ant-typography.tach-typography--Inputs { font-family: Inter, sans-serif; font-size: 14px; font-weight: 500; line-height: 24px; } +.tach-typography--Subheadline, +.ant-typography.tach-typography--Subheadline { font-family: Inter, sans-serif; font-size: 14px; font-weight: 500; line-height: 18px; } +.tach-typography--FootnoteUnderline, +.ant-typography.tach-typography--FootnoteUnderline { font-family: Inter, sans-serif; font-size: 13px; font-weight: 500; line-height: 18px; text-decoration: underline; } +.tach-typography--Footnote, +.ant-typography.tach-typography--Footnote { font-family: Inter, sans-serif; font-size: 13px; font-weight: 500; line-height: 18px; } +.tach-typography--Caption, +.ant-typography.tach-typography--Caption { font-family: Inter, sans-serif; font-size: 10px; font-weight: 500; line-height: 12px; text-transform: uppercase; } +.tach-typography--Caption2, +.ant-typography.tach-typography--Caption2 { font-family: Inter, sans-serif; font-size: 8px; font-weight: 500; line-height: 10px; text-transform: uppercase; } + +.tach-typography--AccentH1, +.ant-typography.tach-typography--AccentH1 { font-family: Unbounded, sans-serif; font-size: 20px; font-weight: 700; line-height: 30px; } +.tach-typography--AccentH2, +.ant-typography.tach-typography--AccentH2 { font-family: Unbounded, sans-serif; font-size: 16px; font-weight: 700; line-height: 24px; } +.tach-typography--AccentSubttl, +.ant-typography.tach-typography--AccentSubttl { font-family: Unbounded, sans-serif; font-size: 14px; font-weight: 700; line-height: 22px; } +.tach-typography--AccentSubttl2, +.ant-typography.tach-typography--AccentSubttl2 { font-family: Unbounded, sans-serif; font-size: 12px; font-weight: 700; line-height: 20px; } +.tach-typography--AccentCaption, +.ant-typography.tach-typography--AccentCaption { font-family: Unbounded, sans-serif; font-size: 9px; font-weight: 700; line-height: 12px; text-transform: uppercase; } +.tach-typography--AccentCaption2, +.ant-typography.tach-typography--AccentCaption2 { font-family: Unbounded, sans-serif; font-size: 7px; font-weight: 700; line-height: 10px; text-transform: uppercase; } +.tach-typography--AccentRegularM, +.ant-typography.tach-typography--AccentRegularM { font-family: Unbounded, sans-serif; font-size: 14px; font-weight: 400; line-height: 22px; } +.tach-typography--AccentRegularS, +.ant-typography.tach-typography--AccentRegularS { font-family: Unbounded, sans-serif; font-size: 12px; font-weight: 400; line-height: 20px; } +.tach-typography--AccentLargeTtl, +.ant-typography.tach-typography--AccentLargeTtl { font-family: Unbounded, sans-serif; font-size: 38px; font-weight: 700; line-height: 52px; } +.tach-typography--AppMediumSubtext, +.ant-typography.tach-typography--AppMediumSubtext { text-align: center; font-family: Inter, sans-serif; font-size: 11px; font-weight: 400; line-height: 17px; } +.tach-typography--AppMediumSubtextUnderline, +.ant-typography.tach-typography--AppMediumSubtextUnderline { font-family: Inter, sans-serif; font-size: 11px; font-weight: 400; line-height: 17px; text-decoration: underline; } + +@media (max-width: 575px) { + .tach-typography--AccentLargeTtl, + .ant-typography.tach-typography--AccentLargeTtl { + font-size: 20px; + line-height: 30px; + } + + .tach-typography--AccentRegularM, + .ant-typography.tach-typography--AccentRegularM { + font-size: 12px; + line-height: 20px; + } +} diff --git a/packages/tach-typography/dist/types-CQyFuLqp.d.cts b/packages/tach-typography/dist/types-CQyFuLqp.d.cts new file mode 100644 index 0000000..9a56089 --- /dev/null +++ b/packages/tach-typography/dist/types-CQyFuLqp.d.cts @@ -0,0 +1,20 @@ +declare const TYPOGRAPHY_VARIANTS: readonly ["LargeTitle", "Title1", "Title2", "Title3", "Headline", "Body", "Inputs", "Subheadline", "FootnoteUnderline", "Footnote", "Caption", "Caption2", "AccentH1", "AccentH2", "AccentSubttl", "AccentSubttl2", "AccentCaption", "AccentCaption2", "AccentRegularM", "AccentRegularS", "AccentLargeTtl", "AppMediumBody", "AppMediumSubtext", "AppMediumSubtextUnderline"]; +declare const TYPOGRAPHY_COLORS: readonly ["primary", "secondary", "tertiary", "quaternary", "link", "white", "dark", "alert", "malahit", "attantion"]; +type TypographyVariant = (typeof TYPOGRAPHY_VARIANTS)[number]; +type TypographyColor = (typeof TYPOGRAPHY_COLORS)[number]; +type TypographyWeight = "normal" | "bold"; +interface TypographyClassOptions { + variant?: TypographyVariant; + color?: TypographyColor; + weight?: TypographyWeight; + clickable?: boolean; + className?: string | undefined; +} +type EllipsisOptions = boolean | { + rows?: number; +}; +interface TypographyRenderOptions extends TypographyClassOptions { + ellipsis?: EllipsisOptions; +} + +export { type EllipsisOptions as E, type TypographyClassOptions as T, TYPOGRAPHY_COLORS as a, TYPOGRAPHY_VARIANTS as b, type TypographyColor as c, type TypographyRenderOptions as d, type TypographyVariant as e, type TypographyWeight as f }; diff --git a/packages/tach-typography/dist/types-CQyFuLqp.d.ts b/packages/tach-typography/dist/types-CQyFuLqp.d.ts new file mode 100644 index 0000000..9a56089 --- /dev/null +++ b/packages/tach-typography/dist/types-CQyFuLqp.d.ts @@ -0,0 +1,20 @@ +declare const TYPOGRAPHY_VARIANTS: readonly ["LargeTitle", "Title1", "Title2", "Title3", "Headline", "Body", "Inputs", "Subheadline", "FootnoteUnderline", "Footnote", "Caption", "Caption2", "AccentH1", "AccentH2", "AccentSubttl", "AccentSubttl2", "AccentCaption", "AccentCaption2", "AccentRegularM", "AccentRegularS", "AccentLargeTtl", "AppMediumBody", "AppMediumSubtext", "AppMediumSubtextUnderline"]; +declare const TYPOGRAPHY_COLORS: readonly ["primary", "secondary", "tertiary", "quaternary", "link", "white", "dark", "alert", "malahit", "attantion"]; +type TypographyVariant = (typeof TYPOGRAPHY_VARIANTS)[number]; +type TypographyColor = (typeof TYPOGRAPHY_COLORS)[number]; +type TypographyWeight = "normal" | "bold"; +interface TypographyClassOptions { + variant?: TypographyVariant; + color?: TypographyColor; + weight?: TypographyWeight; + clickable?: boolean; + className?: string | undefined; +} +type EllipsisOptions = boolean | { + rows?: number; +}; +interface TypographyRenderOptions extends TypographyClassOptions { + ellipsis?: EllipsisOptions; +} + +export { type EllipsisOptions as E, type TypographyClassOptions as T, TYPOGRAPHY_COLORS as a, TYPOGRAPHY_VARIANTS as b, type TypographyColor as c, type TypographyRenderOptions as d, type TypographyVariant as e, type TypographyWeight as f }; diff --git a/packages/tach-typography/package.json b/packages/tach-typography/package.json new file mode 100644 index 0000000..f72a59d --- /dev/null +++ b/packages/tach-typography/package.json @@ -0,0 +1,136 @@ +{ + "name": "@hublib-web/tach-typography", + "version": "0.1.0", + "description": "Cross-framework typography package for React and Angular", + "license": "MIT", + "type": "module", + "main": "./dist/core/index.cjs", + "module": "./dist/core/index.js", + "types": "./dist/core/index.d.ts", + "sideEffects": [ + "./dist/styles.css" + ], + "files": [ + "dist", + "README.md", + "styles" + ], + "typesVersions": { + "*": { + "react": [ + "dist/react/index.d.ts" + ], + "angular": [ + "dist/angular/index.d.ts" + ], + "core": [ + "dist/core/index.d.ts" + ] + } + }, + "exports": { + ".": { + "types": "./dist/core/index.d.ts", + "import": "./dist/core/index.js", + "require": "./dist/core/index.cjs" + }, + "./core": { + "types": "./dist/core/index.d.ts", + "import": "./dist/core/index.js", + "require": "./dist/core/index.cjs" + }, + "./react": { + "types": "./dist/react/index.d.ts", + "import": "./dist/react/index.js", + "require": "./dist/react/index.cjs" + }, + "./angular": { + "types": "./dist/angular/index.d.ts", + "import": "./dist/angular/index.js", + "require": "./dist/angular/index.cjs" + }, + "./styles.css": "./dist/styles.css", + "./styles/typography-vars.scss": "./styles/typography-vars.scss" + }, + "scripts": { + "build": "yarn clean && tsup && node ./scripts/copy-styles.mjs", + "clean": "rm -rf dist", + "typecheck": "tsc -p tsconfig.json --noEmit", + "test": "vitest run", + "lint": "eslint src --ext .ts,.tsx", + "storybook": "storybook dev -p 6006", + "storybook:build": "storybook build" + }, + "peerDependencies": { + "@angular/animations": ">=17.0.0", + "@angular/common": ">=17.0.0", + "@angular/core": ">=17.0.0", + "@angular/forms": ">=17.0.0", + "@angular/platform-browser": ">=17.0.0", + "@angular/router": ">=17.0.0", + "antd": ">=5.0.0", + "ng-zorro-antd": ">=17.0.0", + "react": ">=18.0.0", + "react-dom": ">=18.0.0", + "rxjs": ">=7.0.0" + }, + "peerDependenciesMeta": { + "@angular/animations": { + "optional": true + }, + "@angular/common": { + "optional": true + }, + "@angular/core": { + "optional": true + }, + "@angular/forms": { + "optional": true + }, + "@angular/platform-browser": { + "optional": true + }, + "@angular/router": { + "optional": true + }, + "antd": { + "optional": true + }, + "ng-zorro-antd": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + }, + "rxjs": { + "optional": true + } + }, + "devDependencies": { + "@angular/animations": "^20.3.17", + "@angular/common": "^20.3.17", + "@angular/core": "^20.3.17", + "@angular/forms": "^20.3.17", + "@angular/platform-browser": "^20.3.17", + "@angular/router": "^20.3.17", + "@storybook/addon-a11y": "8.6.14", + "@storybook/addon-essentials": "8.6.14", + "@storybook/addon-interactions": "8.6.14", + "@storybook/blocks": "8.6.14", + "@storybook/react-vite": "8.6.14", + "@storybook/test": "8.6.14", + "@types/react": "^19.2.2", + "antd": "^5.29.3", + "ng-zorro-antd": "^20.4.4", + "react": "^19.2.0", + "react-dom": "^19.2.0", + "rxjs": "^7.8.2", + "storybook": "8.6.14", + "tsup": "^8.5.0", + "typescript": "^5.9.3", + "vite": "6.4.1" + } +} diff --git a/packages/tach-typography/scripts/copy-styles.mjs b/packages/tach-typography/scripts/copy-styles.mjs new file mode 100644 index 0000000..de93fad --- /dev/null +++ b/packages/tach-typography/scripts/copy-styles.mjs @@ -0,0 +1,12 @@ +import { cpSync, existsSync, mkdirSync } from "node:fs"; +import { dirname, resolve } from "node:path"; + +const source = resolve("src/styles/tach-typography.css"); +const destination = resolve("dist/styles.css"); + +if (!existsSync(source)) { + throw new Error(`Styles file not found: ${source}`); +} + +mkdirSync(dirname(destination), { recursive: true }); +cpSync(source, destination); diff --git a/packages/tach-typography/src/angular/index.ts b/packages/tach-typography/src/angular/index.ts new file mode 100644 index 0000000..2cfae19 --- /dev/null +++ b/packages/tach-typography/src/angular/index.ts @@ -0,0 +1,140 @@ +import { NgModule } from "@angular/core"; +import { Directive, ElementRef, Input, OnChanges, Renderer2, SimpleChanges } from "@angular/core"; +import { NzTypographyModule } from "ng-zorro-antd/typography"; + +import { + tachTypographyClassList, + tachTypographyClassName, + tachTypographyEllipsisStyle, + type EllipsisOptions, + type TypographyClassOptions, + type TypographyColor, + type TypographyRenderOptions, + type TypographyVariant, + type TypographyWeight, +} from "../core"; + +export type AngularTypographyClassInput = TypographyClassOptions; + +export interface AngularTypographyRenderOptions extends TypographyRenderOptions { + preserveStyle?: Record; +} + +const camelToKebab = (value: string): string => + value.replace(/[A-Z]/g, match => `-${match.toLowerCase()}`); + +const toCssProperty = (styleKey: string): string => { + if (styleKey.startsWith("Webkit")) { + return `-webkit-${camelToKebab(styleKey.slice(6))}`; + } + + return camelToKebab(styleKey); +}; + +export const tachAngularTypographyClassName = ( + options: AngularTypographyClassInput = {}, +): string => { + return tachTypographyClassName(options); +}; + +export const tachAngularTypographyClassList = ( + options: AngularTypographyClassInput = {}, +): string[] => { + return tachTypographyClassList(options); +}; + +export const tachAngularTypographyStyles = ( + ellipsis?: EllipsisOptions, + preserveStyle: Record = {}, +): Record => { + const ellipsisStyle = tachTypographyEllipsisStyle(ellipsis); + + if (!ellipsisStyle) { + return preserveStyle; + } + + return { + ...ellipsisStyle, + ...preserveStyle, + }; +}; + +@Directive({ + selector: "[tachTypography]", + standalone: true, +}) +export class TachTypographyDirective implements OnChanges { + @Input() tachTypography: TypographyVariant | "" | undefined; + @Input() tachTypographyVariant: TypographyVariant = "Body"; + @Input() tachTypographyColor: TypographyColor = "primary"; + @Input() tachTypographyWeight: TypographyWeight = "normal"; + @Input() tachTypographyClickable = false; + @Input() tachTypographyClassName: string | undefined; + @Input() tachTypographyEllipsis: EllipsisOptions | undefined; + + private readonly appliedClasses = new Set(); + private readonly appliedStyleProperties = new Set(); + + constructor( + private readonly elementRef: ElementRef, + private readonly renderer: Renderer2, + ) {} + + ngOnChanges(_changes: SimpleChanges): void { + this.syncClasses(); + this.syncEllipsisStyles(); + } + + private syncClasses(): void { + const nextClassList = tachTypographyClassList({ + variant: this.tachTypography || this.tachTypographyVariant, + color: this.tachTypographyColor, + weight: this.tachTypographyWeight, + clickable: this.tachTypographyClickable, + className: this.tachTypographyClassName, + }); + + const nextSet = new Set(nextClassList); + + for (const className of this.appliedClasses) { + if (!nextSet.has(className)) { + this.renderer.removeClass(this.elementRef.nativeElement, className); + } + } + + for (const className of nextSet) { + this.renderer.addClass(this.elementRef.nativeElement, className); + } + + this.appliedClasses.clear(); + for (const className of nextSet) { + this.appliedClasses.add(className); + } + } + + private syncEllipsisStyles(): void { + const nextStyles = tachTypographyEllipsisStyle(this.tachTypographyEllipsis) || {}; + const nextStyleKeys = new Set(Object.keys(nextStyles)); + + for (const styleKey of this.appliedStyleProperties) { + if (!nextStyleKeys.has(styleKey)) { + this.renderer.removeStyle(this.elementRef.nativeElement, toCssProperty(styleKey)); + } + } + + for (const [styleKey, styleValue] of Object.entries(nextStyles)) { + this.renderer.setStyle(this.elementRef.nativeElement, toCssProperty(styleKey), styleValue); + } + + this.appliedStyleProperties.clear(); + for (const styleKey of nextStyleKeys) { + this.appliedStyleProperties.add(styleKey); + } + } +} + +@NgModule({ + imports: [NzTypographyModule, TachTypographyDirective], + exports: [NzTypographyModule, TachTypographyDirective], +}) +export class TachTypographyNzModule {} diff --git a/packages/tach-typography/src/core/classnames.ts b/packages/tach-typography/src/core/classnames.ts new file mode 100644 index 0000000..60ec56a --- /dev/null +++ b/packages/tach-typography/src/core/classnames.ts @@ -0,0 +1,29 @@ +import type { TypographyClassOptions } from "./types"; + +const BASE_CLASS = "tach-typography"; + +const join = (...parts: Array): string => + parts.filter(Boolean).join(" "); + +export const tachTypographyClassName = ({ + variant = "Body", + color = "primary", + weight = "normal", + clickable = false, + className, +}: TypographyClassOptions = {}): string => { + return join( + BASE_CLASS, + `${BASE_CLASS}--${variant}`, + `${BASE_CLASS}--color-${color}`, + weight === "bold" && `${BASE_CLASS}--bold`, + clickable && `${BASE_CLASS}--pointer`, + className, + ); +}; + +export const tachTypographyClassList = (options: TypographyClassOptions = {}): string[] => { + return tachTypographyClassName(options) + .split(" ") + .filter(Boolean); +}; diff --git a/packages/tach-typography/src/core/ellipsis.ts b/packages/tach-typography/src/core/ellipsis.ts new file mode 100644 index 0000000..435df52 --- /dev/null +++ b/packages/tach-typography/src/core/ellipsis.ts @@ -0,0 +1,21 @@ +import type { EllipsisOptions } from "./types"; + +type StyleRecord = Record; + +export const tachTypographyEllipsisStyle = ( + ellipsis?: EllipsisOptions, +): StyleRecord | undefined => { + if (!ellipsis) { + return undefined; + } + + const rows = typeof ellipsis === "object" ? ellipsis.rows ?? 1 : 1; + + return { + overflow: "hidden", + textOverflow: "ellipsis", + display: "-webkit-box", + WebkitBoxOrient: "vertical", + WebkitLineClamp: rows, + }; +}; diff --git a/packages/tach-typography/src/core/index.test.ts b/packages/tach-typography/src/core/index.test.ts new file mode 100644 index 0000000..499e40a --- /dev/null +++ b/packages/tach-typography/src/core/index.test.ts @@ -0,0 +1,56 @@ +import { describe, expect, it } from "vitest"; + +import { + tachTypographyClassList, + tachTypographyClassName, + tachTypographyEllipsisStyle, +} from "./index"; + +describe("tachTypographyClassName", () => { + it("builds className string with defaults", () => { + expect(tachTypographyClassName()).toBe( + "tach-typography tach-typography--Body tach-typography--color-primary", + ); + }); + + it("adds optional states", () => { + expect( + tachTypographyClassName({ + variant: "AccentH1", + color: "link", + weight: "bold", + clickable: true, + className: "custom", + }), + ).toBe( + "tach-typography tach-typography--AccentH1 tach-typography--color-link tach-typography--bold tach-typography--pointer custom", + ); + }); + + it("returns list helper", () => { + expect(tachTypographyClassList({ variant: "Title1" })).toEqual([ + "tach-typography", + "tach-typography--Title1", + "tach-typography--color-primary", + ]); + }); +}); + +describe("tachTypographyEllipsisStyle", () => { + it("returns undefined without ellipsis", () => { + expect(tachTypographyEllipsisStyle()).toBeUndefined(); + }); + + it("returns one-line style for true", () => { + expect(tachTypographyEllipsisStyle(true)).toMatchObject({ + WebkitLineClamp: 1, + overflow: "hidden", + }); + }); + + it("respects rows value", () => { + expect(tachTypographyEllipsisStyle({ rows: 3 })).toMatchObject({ + WebkitLineClamp: 3, + }); + }); +}); diff --git a/packages/tach-typography/src/core/index.ts b/packages/tach-typography/src/core/index.ts new file mode 100644 index 0000000..804f5ac --- /dev/null +++ b/packages/tach-typography/src/core/index.ts @@ -0,0 +1,3 @@ +export * from "./types"; +export * from "./classnames"; +export * from "./ellipsis"; diff --git a/packages/tach-typography/src/core/types.ts b/packages/tach-typography/src/core/types.ts new file mode 100644 index 0000000..05fb1ae --- /dev/null +++ b/packages/tach-typography/src/core/types.ts @@ -0,0 +1,61 @@ +export const TYPOGRAPHY_VARIANTS = [ + "LargeTitle", + "Title1", + "Title2", + "Title3", + "Headline", + "Body", + "Inputs", + "Subheadline", + "FootnoteUnderline", + "Footnote", + "Caption", + "Caption2", + "AccentH1", + "AccentH2", + "AccentSubttl", + "AccentSubttl2", + "AccentCaption", + "AccentCaption2", + "AccentRegularM", + "AccentRegularS", + "AccentLargeTtl", + "AppMediumBody", + "AppMediumSubtext", + "AppMediumSubtextUnderline", +] as const; + +export const TYPOGRAPHY_COLORS = [ + "primary", + "secondary", + "tertiary", + "quaternary", + "link", + "white", + "dark", + "alert", + "malahit", + "attantion", +] as const; + +export type TypographyVariant = (typeof TYPOGRAPHY_VARIANTS)[number]; +export type TypographyColor = (typeof TYPOGRAPHY_COLORS)[number]; +export type TypographyWeight = "normal" | "bold"; + +export interface TypographyClassOptions { + variant?: TypographyVariant; + color?: TypographyColor; + weight?: TypographyWeight; + clickable?: boolean; + className?: string | undefined; +} + +export type EllipsisOptions = + | boolean + | { + rows?: number; + }; + +export interface TypographyRenderOptions extends TypographyClassOptions { + ellipsis?: EllipsisOptions; +} diff --git a/packages/tach-typography/src/react/index.tsx b/packages/tach-typography/src/react/index.tsx new file mode 100644 index 0000000..e93c7e0 --- /dev/null +++ b/packages/tach-typography/src/react/index.tsx @@ -0,0 +1,82 @@ +import React from "react"; + +import { Typography } from "antd"; +import type { LinkProps } from "antd/lib/typography/Link"; +import type { ParagraphProps } from "antd/lib/typography/Paragraph"; +import type { TextProps } from "antd/lib/typography/Text"; +import type { TitleProps } from "antd/lib/typography/Title"; + +import { + tachTypographyClassName, + type TypographyColor, + type TypographyVariant, + type TypographyWeight, +} from "../core"; + +interface AdditionalProps { + color?: TypographyColor; + weight?: TypographyWeight; + onClick?: (event: React.MouseEvent) => void; + className?: string | undefined; +} + +const createTypographyVariant =

( + Component: React.ComponentType

, + variant: TypographyVariant, +) => { + const Variant = React.forwardRef( + ({ color = "primary", weight = "normal", className, onClick, ...rest }, ref) => ( + + ), + ); + + Variant.displayName = String(variant); + + return Variant; +}; + +const createTypographyComponent =

(Component: React.ComponentType

) => ({ + LargeTitle: createTypographyVariant(Component, "LargeTitle"), + Title1: createTypographyVariant(Component, "Title1"), + Title2: createTypographyVariant(Component, "Title2"), + Title3: createTypographyVariant(Component, "Title3"), + Headline: createTypographyVariant(Component, "Headline"), + Body: createTypographyVariant(Component, "Body"), + Inputs: createTypographyVariant(Component, "Inputs"), + Subheadline: createTypographyVariant(Component, "Subheadline"), + FootnoteUnderline: createTypographyVariant(Component, "FootnoteUnderline"), + Footnote: createTypographyVariant(Component, "Footnote"), + Caption: createTypographyVariant(Component, "Caption"), + Caption2: createTypographyVariant(Component, "Caption2"), + + AccentH1: createTypographyVariant(Component, "AccentH1"), + AccentH2: createTypographyVariant(Component, "AccentH2"), + AccentSubttl: createTypographyVariant(Component, "AccentSubttl"), + AccentSubttl2: createTypographyVariant(Component, "AccentSubttl2"), + AccentCaption: createTypographyVariant(Component, "AccentCaption"), + AccentCaption2: createTypographyVariant(Component, "AccentCaption2"), + AccentRegularM: createTypographyVariant(Component, "AccentRegularM"), + AccentRegularS: createTypographyVariant(Component, "AccentRegularS"), + AccentLargeTtl: createTypographyVariant(Component, "AccentLargeTtl"), + AppMediumBody: createTypographyVariant(Component, "AppMediumBody"), + AppMediumSubtext: createTypographyVariant(Component, "AppMediumSubtext"), + AppMediumSubtextUnderline: createTypographyVariant(Component, "AppMediumSubtextUnderline"), +}); + +export const TachTypography = { + Text: createTypographyComponent>(Typography.Text), + Paragraph: createTypographyComponent(Typography.Paragraph), + Link: createTypographyComponent(Typography.Link), + Title: createTypographyComponent(Typography.Title), +}; diff --git a/packages/tach-typography/src/stories/TachTypography.Playground.stories.tsx b/packages/tach-typography/src/stories/TachTypography.Playground.stories.tsx new file mode 100644 index 0000000..c57a3ad --- /dev/null +++ b/packages/tach-typography/src/stories/TachTypography.Playground.stories.tsx @@ -0,0 +1,183 @@ +import React from "react"; + +import type { Meta, StoryObj } from "@storybook/react"; +import { expect, fn, userEvent, within } from "@storybook/test"; + +import { + TYPOGRAPHY_COLORS, + TYPOGRAPHY_VARIANTS, + type TypographyColor, + type TypographyVariant, + type TypographyWeight, +} from "../core"; +import { TachTypography } from "../react"; + +type TypographyNamespace = keyof typeof TachTypography; + +type VariantComponentProps = { + children?: React.ReactNode; + className?: string; + color?: TypographyColor; + ellipsis?: boolean | { rows?: number }; + href?: string; + level?: 1 | 2 | 3 | 4 | 5; + onClick?: (event: React.MouseEvent) => void; + weight?: TypographyWeight; +}; + +type VariantComponent = React.ComponentType; + +const getVariantComponent = ( + namespace: TypographyNamespace, + variant: TypographyVariant, +): VariantComponent => { + return (TachTypography[namespace] as unknown as Record)[variant]; +}; + +interface PlaygroundArgs { + namespace: TypographyNamespace; + variant: TypographyVariant; + color: TypographyColor; + weight: TypographyWeight; + children: string; + clickable: boolean; + ellipsisRows: number; + href: string; + titleLevel: 1 | 2 | 3 | 4 | 5; + onClick?: (event: React.MouseEvent) => void; +} + +const renderTypography = (args: PlaygroundArgs) => { + const Component = getVariantComponent(args.namespace, args.variant); + + const componentProps: VariantComponentProps = { + color: args.color, + weight: args.weight, + }; + + if (args.clickable && args.onClick) { + componentProps.onClick = (event: React.MouseEvent) => { + args.onClick?.(event); + }; + } + + if (args.namespace === "Text" || args.namespace === "Paragraph") { + componentProps.ellipsis = args.ellipsisRows > 0 ? { rows: args.ellipsisRows } : false; + } + + if (args.namespace === "Link") { + componentProps.href = args.href; + } + + if (args.namespace === "Title") { + componentProps.level = args.titleLevel; + } + + return ( +

+ {args.children} +
+ ); +}; + +const meta: Meta = { + title: "TachTypography/Playground", + tags: ["autodocs"], + render: renderTypography, + args: { + namespace: "Text", + variant: "Body", + color: "primary", + weight: "normal", + children: "TachTypography playground text", + clickable: false, + ellipsisRows: 0, + href: "https://example.com", + titleLevel: 3, + }, + argTypes: { + namespace: { + control: "select", + options: ["Text", "Paragraph", "Link", "Title"], + }, + variant: { + control: "select", + options: TYPOGRAPHY_VARIANTS, + }, + color: { + control: "select", + options: TYPOGRAPHY_COLORS, + }, + weight: { + control: "inline-radio", + options: ["normal", "bold"], + }, + children: { + control: "text", + }, + clickable: { + control: "boolean", + }, + ellipsisRows: { + control: { + type: "number", + min: 0, + max: 5, + }, + description: "Works for Text and Paragraph namespaces", + }, + href: { + control: "text", + description: "Works for Link namespace", + }, + titleLevel: { + control: "inline-radio", + options: [1, 2, 3, 4, 5], + description: "Works for Title namespace", + }, + onClick: { + table: { + disable: true, + }, + }, + }, + parameters: { + docs: { + description: { + component: + "Interactive playground for all TachTypography namespaces with full token and prop controls.", + }, + }, + }, +}; + +export default meta; + +type Story = StoryObj; + +export const Interactive: Story = {}; + +export const WithEllipsis: Story = { + args: { + namespace: "Paragraph", + variant: "Body", + ellipsisRows: 2, + children: + "This paragraph demonstrates multi-line truncation in Storybook. Increase or decrease ellipsisRows to validate visual behavior and clipping boundaries.", + }, +}; + +export const ClickInteraction: Story = { + args: { + namespace: "Text", + variant: "Subheadline", + clickable: true, + children: "Click this text to run interaction assertion", + onClick: fn(), + }, + play: async ({ canvasElement, args }) => { + const canvas = within(canvasElement); + await userEvent.click(canvas.getByText(args.children)); + await expect(args.onClick as ReturnType).toHaveBeenCalledTimes(1); + }, +}; diff --git a/packages/tach-typography/src/stories/TachTypography.Reference.stories.tsx b/packages/tach-typography/src/stories/TachTypography.Reference.stories.tsx new file mode 100644 index 0000000..d794324 --- /dev/null +++ b/packages/tach-typography/src/stories/TachTypography.Reference.stories.tsx @@ -0,0 +1,105 @@ +import React from "react"; + +import type { Meta, StoryObj } from "@storybook/react"; + +const meta = { + title: "TachTypography/Reference", + tags: ["autodocs"], +} satisfies Meta; + +export default meta; + +type Story = StoryObj; + +export const PropsMatrix: Story = { + render: () => ( +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropTypeReactAngularNotes
variantTypographyVariantTachTypography.[Text|Paragraph|Link|Title].VarianttachTypography / tachTypographyVariantMain typography token
colorTypographyColorcolortachTypographyColorMaps to CSS variables
weight"normal" | "bold"weighttachTypographyWeightBold class modifier
ellipsis{"boolean | { rows?: number }"}ellipsis (Text/Paragraph)tachTypographyEllipsisApplies line clamp styles
clickablebooleanonClick adds pointer classtachTypographyClickableVisual affordance + cursor
classNamestringclassNametachTypographyClassNameMerges with token classes
+
+ ), +}; + +export const AngularAdapter: Story = { + render: () => ( +
+

Angular adapter usage

+
+        
+{`import { TachTypographyDirective, TachTypographyNzModule } from "@hublib-web/tach-typography/angular";
+
+@Component({
+  standalone: true,
+  imports: [TachTypographyNzModule, TachTypographyDirective],
+  template: \
+    \`
+      Typography for Angular + NG-ZORRO
+    \`,
+})
+export class ExampleComponent {}
+`}
+        
+      
+
+ ), +}; diff --git a/packages/tach-typography/src/stories/TachTypography.Tokens.stories.tsx b/packages/tach-typography/src/stories/TachTypography.Tokens.stories.tsx new file mode 100644 index 0000000..c5e6b03 --- /dev/null +++ b/packages/tach-typography/src/stories/TachTypography.Tokens.stories.tsx @@ -0,0 +1,189 @@ +import React from "react"; + +import type { Meta, StoryObj } from "@storybook/react"; + +import { + TYPOGRAPHY_COLORS, + TYPOGRAPHY_VARIANTS, + type TypographyColor, + type TypographyVariant, + type TypographyWeight, +} from "../core"; +import { TachTypography } from "../react"; + +type TypographyNamespace = keyof typeof TachTypography; + +type VariantComponentProps = { + children?: React.ReactNode; + color?: TypographyColor; + ellipsis?: boolean | { rows?: number }; + href?: string; + level?: 1 | 2 | 3 | 4 | 5; + weight?: TypographyWeight; +}; + +type VariantComponent = React.ComponentType; + +const getVariantComponent = ( + namespace: TypographyNamespace, + variant: TypographyVariant, +): VariantComponent => { + return (TachTypography[namespace] as unknown as Record)[variant]; +}; + +interface VariantScaleArgs { + namespace: TypographyNamespace; + color: TypographyColor; + weight: TypographyWeight; + sampleText: string; +} + +interface ColorPaletteArgs { + namespace: TypographyNamespace; + variant: TypographyVariant; + weight: TypographyWeight; +} + +const meta = { + title: "TachTypography/Tokens", + tags: ["autodocs"], + parameters: { + docs: { + description: { + component: + "Token showcase for typography variants and colors. Useful for validating visual consistency against the design system.", + }, + }, + }, +} satisfies Meta; + +export default meta; + +type Story = StoryObj; + +export const VariantScale: StoryObj = { + args: { + namespace: "Text", + color: "primary", + weight: "normal", + sampleText: "The quick brown fox jumps over the lazy dog", + }, + argTypes: { + namespace: { + control: "select", + options: ["Text", "Paragraph", "Link", "Title"], + }, + color: { + control: "select", + options: TYPOGRAPHY_COLORS, + }, + weight: { + control: "inline-radio", + options: ["normal", "bold"], + }, + sampleText: { + control: "text", + }, + }, + render: args => ( +
+ {TYPOGRAPHY_VARIANTS.map(variant => { + const Component = getVariantComponent(args.namespace, variant); + const componentProps: VariantComponentProps = { + color: args.color, + weight: args.weight, + }; + + if (args.namespace === "Link") { + componentProps.href = "https://example.com"; + } + + if (args.namespace === "Title") { + componentProps.level = 4; + } + + return ( +
+ {variant} + {args.sampleText} +
+ ); + })} +
+ ), +}; + +export const ColorPalette: StoryObj = { + args: { + namespace: "Text", + variant: "Body", + weight: "normal", + }, + argTypes: { + namespace: { + control: "select", + options: ["Text", "Paragraph", "Link", "Title"], + }, + variant: { + control: "select", + options: TYPOGRAPHY_VARIANTS, + }, + weight: { + control: "inline-radio", + options: ["normal", "bold"], + }, + }, + render: args => { + const Component = getVariantComponent(args.namespace, args.variant); + + return ( +
+ {TYPOGRAPHY_COLORS.map(color => { + const componentProps: VariantComponentProps = { + color, + weight: args.weight, + }; + + if (args.namespace === "Link") { + componentProps.href = "https://example.com"; + } + + if (args.namespace === "Title") { + componentProps.level = 4; + } + + return ( +
+ {color} + Color token preview +
+ ); + })} +
+ ); + }, +}; + +export const TokenReference: Story = { + render: () => ( +
+
+

Variants ({TYPOGRAPHY_VARIANTS.length})

+
    + {TYPOGRAPHY_VARIANTS.map(token => ( +
  • {token}
  • + ))} +
+
+ +
+

Colors ({TYPOGRAPHY_COLORS.length})

+
    + {TYPOGRAPHY_COLORS.map(token => ( +
  • {token}
  • + ))} +
+
+
+ ), +}; diff --git a/packages/tach-typography/src/styles/tach-typography.css b/packages/tach-typography/src/styles/tach-typography.css new file mode 100644 index 0000000..341acfd --- /dev/null +++ b/packages/tach-typography/src/styles/tach-typography.css @@ -0,0 +1,103 @@ +.tach-typography { + margin: 0; +} + +.ant-typography.tach-typography { + margin-top: 0 !important; + margin-bottom: 0 !important; +} + +.tach-typography--pointer, +.ant-typography.tach-typography--pointer { + cursor: pointer; +} + +.tach-typography--bold, +.ant-typography.tach-typography--bold { + font-weight: 700 !important; +} + +.tach-typography--color-primary, +.ant-typography.tach-typography--color-primary { color: var(--Text-Primary); } +.tach-typography--color-secondary, +.ant-typography.tach-typography--color-secondary { color: var(--Text-Secondary); } +.tach-typography--color-tertiary, +.ant-typography.tach-typography--color-tertiary { color: var(--Text-Tertiary); } +.tach-typography--color-quaternary, +.ant-typography.tach-typography--color-quaternary { color: var(--Text-Quaternary); } +.tach-typography--color-link, +.ant-typography.tach-typography--color-link { color: var(--System-HashtagsInPost); } +.tach-typography--color-white, +.ant-typography.tach-typography--color-white { color: var(--Default-White); } +.tach-typography--color-dark, +.ant-typography.tach-typography--color-dark { color: var(--Default-Dark); } +.tach-typography--color-alert, +.ant-typography.tach-typography--color-alert { color: var(--System-Alert); } +.tach-typography--color-malahit, +.ant-typography.tach-typography--color-malahit { color: var(--Accent-Malahit); } +.tach-typography--color-attantion, +.ant-typography.tach-typography--color-attantion { color: var(--System-Attantion); } + +.tach-typography--LargeTitle, +.ant-typography.tach-typography--LargeTitle { font-family: Inter, sans-serif; font-size: 38px; font-weight: 500; line-height: 46px; } +.tach-typography--Title1, +.ant-typography.tach-typography--Title1 { font-family: Inter, sans-serif; font-size: 28px; font-weight: 500; line-height: 34px; } +.tach-typography--Title2, +.ant-typography.tach-typography--Title2 { font-family: Inter, sans-serif; font-size: 22px; font-weight: 500; line-height: 28px; } +.tach-typography--Title3, +.ant-typography.tach-typography--Title3 { font-family: Inter, sans-serif; font-size: 20px; font-weight: 500; line-height: 26px; } +.tach-typography--Headline, +.ant-typography.tach-typography--Headline { font-family: Inter, sans-serif; font-size: 16px; font-weight: 500; line-height: 24px; } +.tach-typography--Body, +.tach-typography--AppMediumBody, +.ant-typography.tach-typography--Body, +.ant-typography.tach-typography--AppMediumBody { font-family: Inter, sans-serif; font-size: 14px; font-weight: 500; line-height: 20px; } +.tach-typography--Inputs, +.ant-typography.tach-typography--Inputs { font-family: Inter, sans-serif; font-size: 14px; font-weight: 500; line-height: 24px; } +.tach-typography--Subheadline, +.ant-typography.tach-typography--Subheadline { font-family: Inter, sans-serif; font-size: 14px; font-weight: 500; line-height: 18px; } +.tach-typography--FootnoteUnderline, +.ant-typography.tach-typography--FootnoteUnderline { font-family: Inter, sans-serif; font-size: 13px; font-weight: 500; line-height: 18px; text-decoration: underline; } +.tach-typography--Footnote, +.ant-typography.tach-typography--Footnote { font-family: Inter, sans-serif; font-size: 13px; font-weight: 500; line-height: 18px; } +.tach-typography--Caption, +.ant-typography.tach-typography--Caption { font-family: Inter, sans-serif; font-size: 10px; font-weight: 500; line-height: 12px; text-transform: uppercase; } +.tach-typography--Caption2, +.ant-typography.tach-typography--Caption2 { font-family: Inter, sans-serif; font-size: 8px; font-weight: 500; line-height: 10px; text-transform: uppercase; } + +.tach-typography--AccentH1, +.ant-typography.tach-typography--AccentH1 { font-family: Unbounded, sans-serif; font-size: 20px; font-weight: 700; line-height: 30px; } +.tach-typography--AccentH2, +.ant-typography.tach-typography--AccentH2 { font-family: Unbounded, sans-serif; font-size: 16px; font-weight: 700; line-height: 24px; } +.tach-typography--AccentSubttl, +.ant-typography.tach-typography--AccentSubttl { font-family: Unbounded, sans-serif; font-size: 14px; font-weight: 700; line-height: 22px; } +.tach-typography--AccentSubttl2, +.ant-typography.tach-typography--AccentSubttl2 { font-family: Unbounded, sans-serif; font-size: 12px; font-weight: 700; line-height: 20px; } +.tach-typography--AccentCaption, +.ant-typography.tach-typography--AccentCaption { font-family: Unbounded, sans-serif; font-size: 9px; font-weight: 700; line-height: 12px; text-transform: uppercase; } +.tach-typography--AccentCaption2, +.ant-typography.tach-typography--AccentCaption2 { font-family: Unbounded, sans-serif; font-size: 7px; font-weight: 700; line-height: 10px; text-transform: uppercase; } +.tach-typography--AccentRegularM, +.ant-typography.tach-typography--AccentRegularM { font-family: Unbounded, sans-serif; font-size: 14px; font-weight: 400; line-height: 22px; } +.tach-typography--AccentRegularS, +.ant-typography.tach-typography--AccentRegularS { font-family: Unbounded, sans-serif; font-size: 12px; font-weight: 400; line-height: 20px; } +.tach-typography--AccentLargeTtl, +.ant-typography.tach-typography--AccentLargeTtl { font-family: Unbounded, sans-serif; font-size: 38px; font-weight: 700; line-height: 52px; } +.tach-typography--AppMediumSubtext, +.ant-typography.tach-typography--AppMediumSubtext { text-align: center; font-family: Inter, sans-serif; font-size: 11px; font-weight: 400; line-height: 17px; } +.tach-typography--AppMediumSubtextUnderline, +.ant-typography.tach-typography--AppMediumSubtextUnderline { font-family: Inter, sans-serif; font-size: 11px; font-weight: 400; line-height: 17px; text-decoration: underline; } + +@media (max-width: 575px) { + .tach-typography--AccentLargeTtl, + .ant-typography.tach-typography--AccentLargeTtl { + font-size: 20px; + line-height: 30px; + } + + .tach-typography--AccentRegularM, + .ant-typography.tach-typography--AccentRegularM { + font-size: 12px; + line-height: 20px; + } +} diff --git a/packages/tach-typography/styles/typography-vars.scss b/packages/tach-typography/styles/typography-vars.scss new file mode 100644 index 0000000..11395cd --- /dev/null +++ b/packages/tach-typography/styles/typography-vars.scss @@ -0,0 +1,262 @@ +// Medium styles +@mixin AppMediumLargeTitle { + /* app/Medium/LargeTitle */ + font-family: Inter; + font-size: 38px; + font-style: normal; + font-weight: 500; + line-height: 46px; /* 121.053% */ +} +@mixin AppMediumTitle1 { + /* app/Medium/Title1 */ + font-family: Inter; + font-size: 28px; + font-style: normal; + font-weight: 500; + line-height: 34px; /* 121.429% */ +} +@mixin AppMediumTitle2 { + /* app/Medium/Title2 */ + font-family: Inter; + font-size: 22px; + font-style: normal; + font-weight: 500; + line-height: 28px; /* 127.273% */ +} + +@mixin AppMediumTitle3 { + /* app/Medium/Title3 */ + font-family: Inter; + font-size: 20px; + font-style: normal; + font-weight: 500; + line-height: 26px; /* 130% */ +} +@mixin AppMediumHeadline { + /* app/Medium/Headline */ + font-family: Inter; + font-size: 16px; + font-style: normal; + font-weight: 500; + line-height: 24px; /* 150% */ +} +@mixin AppMediumBody { + /* app/Medium/Body */ + font-family: Inter; + font-size: 14px; + font-style: normal; + font-weight: 500; + line-height: 20px; /* 142.857% */ +} +@mixin AppMediumInputs { + /* app/Medium/Inputs */ + font-family: Inter; + font-size: 14px; + font-style: normal; + font-weight: 500; + line-height: 24px; /* 171.429% */ +} +@mixin AppMediumSubheadline { + /* app/Medium/Subheadline */ + font-family: Inter; + font-size: 14px; + font-style: normal; + font-weight: 500; + line-height: 18px; /* 128.571% */ +} +@mixin AppMediumFootnoteUnderline { + /* app/Medium/Footnote Underline */ + font-family: Inter; + font-size: 13px; + font-style: normal; + font-weight: 500; + line-height: 18px; + text-decoration-line: underline; + text-decoration-style: solid; + text-decoration-skip-ink: none; + text-decoration-thickness: auto; + text-underline-offset: auto; + text-underline-position: from-font; +} +@mixin AppMediumFootnote { + /* app/Medium/footnote */ + font-family: Inter; + font-size: 13px; + font-style: normal; + font-weight: 500; + line-height: 18px; /* 138.462% */ +} +@mixin AppMediumCaption { + /* app/Medium/Caption */ + font-family: Inter; + font-size: 10px; + font-style: normal; + font-weight: 500; + line-height: 12px; /* 120% */ + text-transform: uppercase; +} +@mixin AppMediumCaption2 { + /* app/Medium/Caption2 */ + font-family: Inter; + font-size: 8px; + font-style: normal; + font-weight: 500; + line-height: 10px; /* 125% */ + text-transform: uppercase; +} + +@mixin AppMediumSubtext { + text-align: center; + font-family: Inter; + font-size: 11px; + font-style: normal; + font-weight: 400; + line-height: 17px; /* 154.545% */ +} + +@mixin AppMediumSubtextUnderline { + font-family: Inter; + font-size: 11px; + font-style: normal; + font-weight: 400; + line-height: 17px; + text-decoration-line: underline; + text-decoration-style: solid; + text-decoration-skip-ink: none; + text-decoration-thickness: auto; + text-underline-offset: auto; + text-underline-position: from-font; +} + +// Bold Styles +@mixin AppBoldLargeTitle { + @include AppMediumLargeTitle; + font-weight: 700; +} +@mixin AppBoldTitle1 { + @include AppMediumTitle1; + font-weight: 700; +} +@mixin AppBoldTitle2 { + @include AppMediumTitle2; + font-weight: 700; +} +@mixin AppBoldTitle3 { + @include AppMediumTitle3; + font-weight: 700; +} +@mixin AppBoldHeadline { + @include AppMediumHeadline; + font-weight: 700; +} +@mixin AppBoldBody { + @include AppMediumBody; + font-weight: 700; +} +@mixin AppBoldInputs { + @include AppBoldInputs; + font-weight: 700; +} +@mixin AppBoldSubheadline { + @include AppMediumSubheadline; + font-weight: 700; +} +@mixin AppBoldFootnoteUnderline { + @include AppMediumFootnoteUnderline; + font-weight: 700; +} +@mixin AppBoldFootnote { + @include AppMediumFootnote; + font-weight: 700; +} +@mixin AppBoldCaption { + @include AppMediumCaption; + font-weight: 700; +} +@mixin AppBoldCaption2 { + @include AppMediumCaption2; + font-weight: 700; +} + +// Accent Styles +@mixin AccentLargeTtl { + font-family: Unbounded; + font-size: 38px; + font-style: normal; + font-weight: 700; + line-height: 52px; /* 136.842% */ + + @media (max-width: 575px) { + @include AccentFontH1; + } +} +@mixin AccentFontH1 { + /* Accent font/h1 */ + font-family: Unbounded; + font-size: 20px; + font-style: normal; + font-weight: 700; + line-height: 30px; /* 150% */ +} +@mixin AccentFontH2 { + /* Accent font/h2 */ + font-family: Unbounded; + font-size: 16px; + font-style: normal; + font-weight: 700; + line-height: 24px; /* 150% */ +} +@mixin AccentFontSubttl { + /* Accent font/subttl */ + font-family: Unbounded; + font-size: 14px; + font-style: normal; + font-weight: 700; + line-height: 22px; /* 157.143% */ +} +@mixin AccentFontSubttl2 { + /* Accent font/subttl2 */ + font-family: Unbounded; + font-size: 12px; + font-style: normal; + font-weight: 700; + line-height: 20px; /* 166.667% */ +} +@mixin AccentFontCaption { + /* Accent font/caption */ + font-family: Unbounded; + font-size: 9px; + font-style: normal; + font-weight: 700; + line-height: 12px; /* 133.333% */ + text-transform: uppercase; +} +@mixin AccentFontCaption2 { + /* Accent font/caption2 */ + font-family: Unbounded; + font-size: 7px; + font-style: normal; + font-weight: 700; + line-height: 10px; /* 142.857% */ + text-transform: uppercase; +} +@mixin AccentFontRegularM { + /* accent font/regularM */ + font-family: Unbounded; + font-size: 14px; + font-style: normal; + font-weight: 400; + line-height: 22px; /* 157.143% */ + + @media (max-width: 575px) { + @include AccentFontRegularS; + } +} +@mixin AccentFontRegularS { + /* accent font/regularS */ + font-family: Unbounded; + font-size: 12px; + font-style: normal; + font-weight: 400; + line-height: 20px; /* 166.667% */ +} diff --git a/packages/tach-typography/tsconfig.json b/packages/tach-typography/tsconfig.json new file mode 100644 index 0000000..8a95d21 --- /dev/null +++ b/packages/tach-typography/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "rootDir": "src", + "outDir": "dist", + "types": ["node", "react"] + }, + "include": ["src"], + "exclude": ["dist"] +} diff --git a/packages/tach-typography/tsup.config.ts b/packages/tach-typography/tsup.config.ts new file mode 100644 index 0000000..81030fe --- /dev/null +++ b/packages/tach-typography/tsup.config.ts @@ -0,0 +1,25 @@ +import { defineConfig } from "tsup"; + +export default defineConfig({ + entry: { + "core/index": "src/core/index.ts", + "react/index": "src/react/index.tsx", + "angular/index": "src/angular/index.ts", + }, + format: ["esm", "cjs"], + dts: true, + sourcemap: true, + clean: false, + target: "es2022", + minify: false, + treeshake: true, + splitting: false, + external: [ + "react", + "react-dom", + "antd", + "@angular/core", + "@angular/common", + "ng-zorro-antd/typography", + ], +}); diff --git a/packages/video-player/.storybook/main.ts b/packages/video-player/.storybook/main.ts new file mode 100644 index 0000000..20717c9 --- /dev/null +++ b/packages/video-player/.storybook/main.ts @@ -0,0 +1,18 @@ +import type { StorybookConfig } from "@storybook/react-vite"; + +const config: StorybookConfig = { + stories: ["../stories/**/*.stories.@(ts|tsx)"], + addons: ["@storybook/addon-essentials"], + framework: { + name: "@storybook/react-vite", + options: {}, + }, + docs: { + autodocs: "tag", + }, + core: { + disableTelemetry: true, + }, +}; + +export default config; diff --git a/packages/video-player/.storybook/preview.ts b/packages/video-player/.storybook/preview.ts new file mode 100644 index 0000000..d149c0e --- /dev/null +++ b/packages/video-player/.storybook/preview.ts @@ -0,0 +1,13 @@ +import type { Preview } from "@storybook/react"; + +const preview: Preview = { + parameters: { + layout: "padded", + controls: { + expanded: true, + sort: "requiredFirst", + }, + }, +}; + +export default preview; diff --git a/packages/video-player/README.md b/packages/video-player/README.md new file mode 100644 index 0000000..978aaa6 --- /dev/null +++ b/packages/video-player/README.md @@ -0,0 +1,103 @@ +# @hublib-web/video-player + +Video player package with shared runtime and framework adapters: + +- `react` entrypoint with SSR-friendly player component +- `angular` adapter over framework-agnostic runtime +- `core` runtime/utilities for engine selection and token provider + +## Install from Git (SSH tag) + +```bash +yarn add "@hublib-web/video-player@git+ssh://git@github.com/ORG/REPO.git#workspace=@hublib-web/video-player&tag=video-player-v0.1.0" +``` + +## Install inside this monorepo + +```bash +yarn add @hublib-web/video-player +``` + +## Release this package + +1. Bump `version` in `packages/video-player/package.json`. +2. Build package artifacts: + +```bash +yarn workspace @hublib-web/video-player build +``` + +3. Commit release files: + +```bash +git add packages/video-player/package.json packages/video-player/dist +git commit -m "release(video-player): v0.1.0" +``` + +4. Create and push tag: + +```bash +git tag -a video-player-v0.1.0 -m "@hublib-web/video-player v0.1.0" +git push origin main --follow-tags +``` + +Detailed docs: + +- [Release policy](../../docs/release-policy.md) +- [Git installation](../../docs/git-installation.md) + +## React usage + +```tsx +import VideoPlayer, { type VideoJsPlayer } from "@hublib-web/video-player/react"; + +export const Example = () => ( + { + player.play(); + }} + /> +); +``` + +## Core usage + +```ts +import { setVideoPlayerTokenProvider } from "@hublib-web/video-player/core"; + +setVideoPlayerTokenProvider(async () => { + // host app token resolver + return null; +}); +``` + +## Angular usage + +```ts +import { AngularVideoPlayerAdapter } from "@hublib-web/video-player/angular"; + +const adapter = new AngularVideoPlayerAdapter(); +await adapter.attach(containerElement, { + source: { src: "https://example.com/stream.m3u8" }, +}); +``` + +## Development + +Run from repository root: + +```bash +yarn workspace @hublib-web/video-player build +yarn workspace @hublib-web/video-player typecheck +yarn workspace @hublib-web/video-player storybook +``` + +Build static Storybook: + +```bash +yarn workspace @hublib-web/video-player storybook:build +``` diff --git a/dist/angular/index.d.ts b/packages/video-player/dist/angular/index.d.ts similarity index 100% rename from dist/angular/index.d.ts rename to packages/video-player/dist/angular/index.d.ts diff --git a/dist/angular/index.d.ts.map b/packages/video-player/dist/angular/index.d.ts.map similarity index 100% rename from dist/angular/index.d.ts.map rename to packages/video-player/dist/angular/index.d.ts.map diff --git a/dist/angular/index.js b/packages/video-player/dist/angular/index.js similarity index 100% rename from dist/angular/index.js rename to packages/video-player/dist/angular/index.js diff --git a/dist/angular/index.js.map b/packages/video-player/dist/angular/index.js.map similarity index 100% rename from dist/angular/index.js.map rename to packages/video-player/dist/angular/index.js.map diff --git a/dist/core/engine-selector.d.ts b/packages/video-player/dist/core/engine-selector.d.ts similarity index 100% rename from dist/core/engine-selector.d.ts rename to packages/video-player/dist/core/engine-selector.d.ts diff --git a/dist/core/engine-selector.d.ts.map b/packages/video-player/dist/core/engine-selector.d.ts.map similarity index 100% rename from dist/core/engine-selector.d.ts.map rename to packages/video-player/dist/core/engine-selector.d.ts.map diff --git a/dist/core/engine-selector.js b/packages/video-player/dist/core/engine-selector.js similarity index 100% rename from dist/core/engine-selector.js rename to packages/video-player/dist/core/engine-selector.js diff --git a/dist/core/engine-selector.js.map b/packages/video-player/dist/core/engine-selector.js.map similarity index 100% rename from dist/core/engine-selector.js.map rename to packages/video-player/dist/core/engine-selector.js.map diff --git a/dist/core/format-time.d.ts b/packages/video-player/dist/core/format-time.d.ts similarity index 100% rename from dist/core/format-time.d.ts rename to packages/video-player/dist/core/format-time.d.ts diff --git a/dist/core/format-time.d.ts.map b/packages/video-player/dist/core/format-time.d.ts.map similarity index 100% rename from dist/core/format-time.d.ts.map rename to packages/video-player/dist/core/format-time.d.ts.map diff --git a/dist/core/format-time.js b/packages/video-player/dist/core/format-time.js similarity index 100% rename from dist/core/format-time.js rename to packages/video-player/dist/core/format-time.js diff --git a/dist/core/format-time.js.map b/packages/video-player/dist/core/format-time.js.map similarity index 100% rename from dist/core/format-time.js.map rename to packages/video-player/dist/core/format-time.js.map diff --git a/dist/core/index.d.ts b/packages/video-player/dist/core/index.d.ts similarity index 100% rename from dist/core/index.d.ts rename to packages/video-player/dist/core/index.d.ts diff --git a/dist/core/index.d.ts.map b/packages/video-player/dist/core/index.d.ts.map similarity index 100% rename from dist/core/index.d.ts.map rename to packages/video-player/dist/core/index.d.ts.map diff --git a/dist/core/index.js b/packages/video-player/dist/core/index.js similarity index 100% rename from dist/core/index.js rename to packages/video-player/dist/core/index.js diff --git a/dist/core/index.js.map b/packages/video-player/dist/core/index.js.map similarity index 100% rename from dist/core/index.js.map rename to packages/video-player/dist/core/index.js.map diff --git a/dist/core/player-runtime.d.ts b/packages/video-player/dist/core/player-runtime.d.ts similarity index 100% rename from dist/core/player-runtime.d.ts rename to packages/video-player/dist/core/player-runtime.d.ts diff --git a/dist/core/player-runtime.d.ts.map b/packages/video-player/dist/core/player-runtime.d.ts.map similarity index 100% rename from dist/core/player-runtime.d.ts.map rename to packages/video-player/dist/core/player-runtime.d.ts.map diff --git a/dist/core/player-runtime.js b/packages/video-player/dist/core/player-runtime.js similarity index 100% rename from dist/core/player-runtime.js rename to packages/video-player/dist/core/player-runtime.js diff --git a/dist/core/player-runtime.js.map b/packages/video-player/dist/core/player-runtime.js.map similarity index 100% rename from dist/core/player-runtime.js.map rename to packages/video-player/dist/core/player-runtime.js.map diff --git a/dist/core/plugins/big-play-pause-button.d.ts b/packages/video-player/dist/core/plugins/big-play-pause-button.d.ts similarity index 100% rename from dist/core/plugins/big-play-pause-button.d.ts rename to packages/video-player/dist/core/plugins/big-play-pause-button.d.ts diff --git a/dist/core/plugins/big-play-pause-button.d.ts.map b/packages/video-player/dist/core/plugins/big-play-pause-button.d.ts.map similarity index 100% rename from dist/core/plugins/big-play-pause-button.d.ts.map rename to packages/video-player/dist/core/plugins/big-play-pause-button.d.ts.map diff --git a/dist/core/plugins/big-play-pause-button.js b/packages/video-player/dist/core/plugins/big-play-pause-button.js similarity index 100% rename from dist/core/plugins/big-play-pause-button.js rename to packages/video-player/dist/core/plugins/big-play-pause-button.js diff --git a/dist/core/plugins/big-play-pause-button.js.map b/packages/video-player/dist/core/plugins/big-play-pause-button.js.map similarity index 100% rename from dist/core/plugins/big-play-pause-button.js.map rename to packages/video-player/dist/core/plugins/big-play-pause-button.js.map diff --git a/dist/core/plugins/register.d.ts b/packages/video-player/dist/core/plugins/register.d.ts similarity index 100% rename from dist/core/plugins/register.d.ts rename to packages/video-player/dist/core/plugins/register.d.ts diff --git a/dist/core/plugins/register.d.ts.map b/packages/video-player/dist/core/plugins/register.d.ts.map similarity index 100% rename from dist/core/plugins/register.d.ts.map rename to packages/video-player/dist/core/plugins/register.d.ts.map diff --git a/dist/core/plugins/register.js b/packages/video-player/dist/core/plugins/register.js similarity index 100% rename from dist/core/plugins/register.js rename to packages/video-player/dist/core/plugins/register.js diff --git a/dist/core/plugins/register.js.map b/packages/video-player/dist/core/plugins/register.js.map similarity index 100% rename from dist/core/plugins/register.js.map rename to packages/video-player/dist/core/plugins/register.js.map diff --git a/dist/core/plugins/settings/components/tach-video-menu-button/index.d.ts b/packages/video-player/dist/core/plugins/settings/components/tach-video-menu-button/index.d.ts similarity index 100% rename from dist/core/plugins/settings/components/tach-video-menu-button/index.d.ts rename to packages/video-player/dist/core/plugins/settings/components/tach-video-menu-button/index.d.ts diff --git a/dist/core/plugins/settings/components/tach-video-menu-button/index.d.ts.map b/packages/video-player/dist/core/plugins/settings/components/tach-video-menu-button/index.d.ts.map similarity index 100% rename from dist/core/plugins/settings/components/tach-video-menu-button/index.d.ts.map rename to packages/video-player/dist/core/plugins/settings/components/tach-video-menu-button/index.d.ts.map diff --git a/dist/core/plugins/settings/components/tach-video-menu-button/index.js b/packages/video-player/dist/core/plugins/settings/components/tach-video-menu-button/index.js similarity index 100% rename from dist/core/plugins/settings/components/tach-video-menu-button/index.js rename to packages/video-player/dist/core/plugins/settings/components/tach-video-menu-button/index.js diff --git a/dist/core/plugins/settings/components/tach-video-menu-button/index.js.map b/packages/video-player/dist/core/plugins/settings/components/tach-video-menu-button/index.js.map similarity index 100% rename from dist/core/plugins/settings/components/tach-video-menu-button/index.js.map rename to packages/video-player/dist/core/plugins/settings/components/tach-video-menu-button/index.js.map diff --git a/dist/core/plugins/settings/components/tach-video-menu-item/index.d.ts b/packages/video-player/dist/core/plugins/settings/components/tach-video-menu-item/index.d.ts similarity index 100% rename from dist/core/plugins/settings/components/tach-video-menu-item/index.d.ts rename to packages/video-player/dist/core/plugins/settings/components/tach-video-menu-item/index.d.ts diff --git a/dist/core/plugins/settings/components/tach-video-menu-item/index.d.ts.map b/packages/video-player/dist/core/plugins/settings/components/tach-video-menu-item/index.d.ts.map similarity index 100% rename from dist/core/plugins/settings/components/tach-video-menu-item/index.d.ts.map rename to packages/video-player/dist/core/plugins/settings/components/tach-video-menu-item/index.d.ts.map diff --git a/dist/core/plugins/settings/components/tach-video-menu-item/index.js b/packages/video-player/dist/core/plugins/settings/components/tach-video-menu-item/index.js similarity index 100% rename from dist/core/plugins/settings/components/tach-video-menu-item/index.js rename to packages/video-player/dist/core/plugins/settings/components/tach-video-menu-item/index.js diff --git a/dist/core/plugins/settings/components/tach-video-menu-item/index.js.map b/packages/video-player/dist/core/plugins/settings/components/tach-video-menu-item/index.js.map similarity index 100% rename from dist/core/plugins/settings/components/tach-video-menu-item/index.js.map rename to packages/video-player/dist/core/plugins/settings/components/tach-video-menu-item/index.js.map diff --git a/dist/core/plugins/settings/components/tach-video-menu/index.d.ts b/packages/video-player/dist/core/plugins/settings/components/tach-video-menu/index.d.ts similarity index 100% rename from dist/core/plugins/settings/components/tach-video-menu/index.d.ts rename to packages/video-player/dist/core/plugins/settings/components/tach-video-menu/index.d.ts diff --git a/dist/core/plugins/settings/components/tach-video-menu/index.d.ts.map b/packages/video-player/dist/core/plugins/settings/components/tach-video-menu/index.d.ts.map similarity index 100% rename from dist/core/plugins/settings/components/tach-video-menu/index.d.ts.map rename to packages/video-player/dist/core/plugins/settings/components/tach-video-menu/index.d.ts.map diff --git a/dist/core/plugins/settings/components/tach-video-menu/index.js b/packages/video-player/dist/core/plugins/settings/components/tach-video-menu/index.js similarity index 100% rename from dist/core/plugins/settings/components/tach-video-menu/index.js rename to packages/video-player/dist/core/plugins/settings/components/tach-video-menu/index.js diff --git a/dist/core/plugins/settings/components/tach-video-menu/index.js.map b/packages/video-player/dist/core/plugins/settings/components/tach-video-menu/index.js.map similarity index 100% rename from dist/core/plugins/settings/components/tach-video-menu/index.js.map rename to packages/video-player/dist/core/plugins/settings/components/tach-video-menu/index.js.map diff --git a/dist/core/plugins/settings/index.d.ts b/packages/video-player/dist/core/plugins/settings/index.d.ts similarity index 100% rename from dist/core/plugins/settings/index.d.ts rename to packages/video-player/dist/core/plugins/settings/index.d.ts diff --git a/dist/core/plugins/settings/index.d.ts.map b/packages/video-player/dist/core/plugins/settings/index.d.ts.map similarity index 100% rename from dist/core/plugins/settings/index.d.ts.map rename to packages/video-player/dist/core/plugins/settings/index.d.ts.map diff --git a/dist/core/plugins/settings/index.js b/packages/video-player/dist/core/plugins/settings/index.js similarity index 100% rename from dist/core/plugins/settings/index.js rename to packages/video-player/dist/core/plugins/settings/index.js diff --git a/dist/core/plugins/settings/index.js.map b/packages/video-player/dist/core/plugins/settings/index.js.map similarity index 100% rename from dist/core/plugins/settings/index.js.map rename to packages/video-player/dist/core/plugins/settings/index.js.map diff --git a/dist/core/plugins/settings/selectors/audio-track-selector/index.d.ts b/packages/video-player/dist/core/plugins/settings/selectors/audio-track-selector/index.d.ts similarity index 100% rename from dist/core/plugins/settings/selectors/audio-track-selector/index.d.ts rename to packages/video-player/dist/core/plugins/settings/selectors/audio-track-selector/index.d.ts diff --git a/dist/core/plugins/settings/selectors/audio-track-selector/index.d.ts.map b/packages/video-player/dist/core/plugins/settings/selectors/audio-track-selector/index.d.ts.map similarity index 100% rename from dist/core/plugins/settings/selectors/audio-track-selector/index.d.ts.map rename to packages/video-player/dist/core/plugins/settings/selectors/audio-track-selector/index.d.ts.map diff --git a/dist/core/plugins/settings/selectors/audio-track-selector/index.js b/packages/video-player/dist/core/plugins/settings/selectors/audio-track-selector/index.js similarity index 100% rename from dist/core/plugins/settings/selectors/audio-track-selector/index.js rename to packages/video-player/dist/core/plugins/settings/selectors/audio-track-selector/index.js diff --git a/dist/core/plugins/settings/selectors/audio-track-selector/index.js.map b/packages/video-player/dist/core/plugins/settings/selectors/audio-track-selector/index.js.map similarity index 100% rename from dist/core/plugins/settings/selectors/audio-track-selector/index.js.map rename to packages/video-player/dist/core/plugins/settings/selectors/audio-track-selector/index.js.map diff --git a/dist/core/plugins/settings/selectors/playback-rate-selector/index.d.ts b/packages/video-player/dist/core/plugins/settings/selectors/playback-rate-selector/index.d.ts similarity index 100% rename from dist/core/plugins/settings/selectors/playback-rate-selector/index.d.ts rename to packages/video-player/dist/core/plugins/settings/selectors/playback-rate-selector/index.d.ts diff --git a/dist/core/plugins/settings/selectors/playback-rate-selector/index.d.ts.map b/packages/video-player/dist/core/plugins/settings/selectors/playback-rate-selector/index.d.ts.map similarity index 100% rename from dist/core/plugins/settings/selectors/playback-rate-selector/index.d.ts.map rename to packages/video-player/dist/core/plugins/settings/selectors/playback-rate-selector/index.d.ts.map diff --git a/dist/core/plugins/settings/selectors/playback-rate-selector/index.js b/packages/video-player/dist/core/plugins/settings/selectors/playback-rate-selector/index.js similarity index 100% rename from dist/core/plugins/settings/selectors/playback-rate-selector/index.js rename to packages/video-player/dist/core/plugins/settings/selectors/playback-rate-selector/index.js diff --git a/dist/core/plugins/settings/selectors/playback-rate-selector/index.js.map b/packages/video-player/dist/core/plugins/settings/selectors/playback-rate-selector/index.js.map similarity index 100% rename from dist/core/plugins/settings/selectors/playback-rate-selector/index.js.map rename to packages/video-player/dist/core/plugins/settings/selectors/playback-rate-selector/index.js.map diff --git a/dist/core/plugins/settings/selectors/quality-rate-selector/index.d.ts b/packages/video-player/dist/core/plugins/settings/selectors/quality-rate-selector/index.d.ts similarity index 100% rename from dist/core/plugins/settings/selectors/quality-rate-selector/index.d.ts rename to packages/video-player/dist/core/plugins/settings/selectors/quality-rate-selector/index.d.ts diff --git a/dist/core/plugins/settings/selectors/quality-rate-selector/index.d.ts.map b/packages/video-player/dist/core/plugins/settings/selectors/quality-rate-selector/index.d.ts.map similarity index 100% rename from dist/core/plugins/settings/selectors/quality-rate-selector/index.d.ts.map rename to packages/video-player/dist/core/plugins/settings/selectors/quality-rate-selector/index.d.ts.map diff --git a/dist/core/plugins/settings/selectors/quality-rate-selector/index.js b/packages/video-player/dist/core/plugins/settings/selectors/quality-rate-selector/index.js similarity index 100% rename from dist/core/plugins/settings/selectors/quality-rate-selector/index.js rename to packages/video-player/dist/core/plugins/settings/selectors/quality-rate-selector/index.js diff --git a/dist/core/plugins/settings/selectors/quality-rate-selector/index.js.map b/packages/video-player/dist/core/plugins/settings/selectors/quality-rate-selector/index.js.map similarity index 100% rename from dist/core/plugins/settings/selectors/quality-rate-selector/index.js.map rename to packages/video-player/dist/core/plugins/settings/selectors/quality-rate-selector/index.js.map diff --git a/dist/core/plugins/settings/selectors/text-track-selector/index.d.ts b/packages/video-player/dist/core/plugins/settings/selectors/text-track-selector/index.d.ts similarity index 100% rename from dist/core/plugins/settings/selectors/text-track-selector/index.d.ts rename to packages/video-player/dist/core/plugins/settings/selectors/text-track-selector/index.d.ts diff --git a/dist/core/plugins/settings/selectors/text-track-selector/index.d.ts.map b/packages/video-player/dist/core/plugins/settings/selectors/text-track-selector/index.d.ts.map similarity index 100% rename from dist/core/plugins/settings/selectors/text-track-selector/index.d.ts.map rename to packages/video-player/dist/core/plugins/settings/selectors/text-track-selector/index.d.ts.map diff --git a/dist/core/plugins/settings/selectors/text-track-selector/index.js b/packages/video-player/dist/core/plugins/settings/selectors/text-track-selector/index.js similarity index 100% rename from dist/core/plugins/settings/selectors/text-track-selector/index.js rename to packages/video-player/dist/core/plugins/settings/selectors/text-track-selector/index.js diff --git a/dist/core/plugins/settings/selectors/text-track-selector/index.js.map b/packages/video-player/dist/core/plugins/settings/selectors/text-track-selector/index.js.map similarity index 100% rename from dist/core/plugins/settings/selectors/text-track-selector/index.js.map rename to packages/video-player/dist/core/plugins/settings/selectors/text-track-selector/index.js.map diff --git a/dist/core/plugins/settings/settings.css b/packages/video-player/dist/core/plugins/settings/settings.css similarity index 100% rename from dist/core/plugins/settings/settings.css rename to packages/video-player/dist/core/plugins/settings/settings.css diff --git a/dist/core/plugins/settings/types.d.ts b/packages/video-player/dist/core/plugins/settings/types.d.ts similarity index 100% rename from dist/core/plugins/settings/types.d.ts rename to packages/video-player/dist/core/plugins/settings/types.d.ts diff --git a/dist/core/plugins/settings/types.d.ts.map b/packages/video-player/dist/core/plugins/settings/types.d.ts.map similarity index 100% rename from dist/core/plugins/settings/types.d.ts.map rename to packages/video-player/dist/core/plugins/settings/types.d.ts.map diff --git a/dist/core/plugins/settings/types.js b/packages/video-player/dist/core/plugins/settings/types.js similarity index 100% rename from dist/core/plugins/settings/types.js rename to packages/video-player/dist/core/plugins/settings/types.js diff --git a/dist/core/plugins/settings/types.js.map b/packages/video-player/dist/core/plugins/settings/types.js.map similarity index 100% rename from dist/core/plugins/settings/types.js.map rename to packages/video-player/dist/core/plugins/settings/types.js.map diff --git a/dist/core/plugins/skip-buttons.css b/packages/video-player/dist/core/plugins/skip-buttons.css similarity index 100% rename from dist/core/plugins/skip-buttons.css rename to packages/video-player/dist/core/plugins/skip-buttons.css diff --git a/dist/core/plugins/skip-buttons.d.ts b/packages/video-player/dist/core/plugins/skip-buttons.d.ts similarity index 100% rename from dist/core/plugins/skip-buttons.d.ts rename to packages/video-player/dist/core/plugins/skip-buttons.d.ts diff --git a/dist/core/plugins/skip-buttons.d.ts.map b/packages/video-player/dist/core/plugins/skip-buttons.d.ts.map similarity index 100% rename from dist/core/plugins/skip-buttons.d.ts.map rename to packages/video-player/dist/core/plugins/skip-buttons.d.ts.map diff --git a/dist/core/plugins/skip-buttons.js b/packages/video-player/dist/core/plugins/skip-buttons.js similarity index 100% rename from dist/core/plugins/skip-buttons.js rename to packages/video-player/dist/core/plugins/skip-buttons.js diff --git a/dist/core/plugins/skip-buttons.js.map b/packages/video-player/dist/core/plugins/skip-buttons.js.map similarity index 100% rename from dist/core/plugins/skip-buttons.js.map rename to packages/video-player/dist/core/plugins/skip-buttons.js.map diff --git a/dist/core/token-provider.d.ts b/packages/video-player/dist/core/token-provider.d.ts similarity index 100% rename from dist/core/token-provider.d.ts rename to packages/video-player/dist/core/token-provider.d.ts diff --git a/dist/core/token-provider.d.ts.map b/packages/video-player/dist/core/token-provider.d.ts.map similarity index 100% rename from dist/core/token-provider.d.ts.map rename to packages/video-player/dist/core/token-provider.d.ts.map diff --git a/dist/core/token-provider.js b/packages/video-player/dist/core/token-provider.js similarity index 100% rename from dist/core/token-provider.js rename to packages/video-player/dist/core/token-provider.js diff --git a/dist/core/token-provider.js.map b/packages/video-player/dist/core/token-provider.js.map similarity index 100% rename from dist/core/token-provider.js.map rename to packages/video-player/dist/core/token-provider.js.map diff --git a/dist/react/index.d.ts b/packages/video-player/dist/react/index.d.ts similarity index 100% rename from dist/react/index.d.ts rename to packages/video-player/dist/react/index.d.ts diff --git a/dist/react/index.d.ts.map b/packages/video-player/dist/react/index.d.ts.map similarity index 100% rename from dist/react/index.d.ts.map rename to packages/video-player/dist/react/index.d.ts.map diff --git a/dist/react/index.js b/packages/video-player/dist/react/index.js similarity index 100% rename from dist/react/index.js rename to packages/video-player/dist/react/index.js diff --git a/dist/react/index.js.map b/packages/video-player/dist/react/index.js.map similarity index 100% rename from dist/react/index.js.map rename to packages/video-player/dist/react/index.js.map diff --git a/dist/react/video-player/components/player-extension/index.d.ts b/packages/video-player/dist/react/video-player/components/player-extension/index.d.ts similarity index 100% rename from dist/react/video-player/components/player-extension/index.d.ts rename to packages/video-player/dist/react/video-player/components/player-extension/index.d.ts diff --git a/dist/react/video-player/components/player-extension/index.d.ts.map b/packages/video-player/dist/react/video-player/components/player-extension/index.d.ts.map similarity index 100% rename from dist/react/video-player/components/player-extension/index.d.ts.map rename to packages/video-player/dist/react/video-player/components/player-extension/index.d.ts.map diff --git a/dist/react/video-player/components/player-extension/index.js b/packages/video-player/dist/react/video-player/components/player-extension/index.js similarity index 100% rename from dist/react/video-player/components/player-extension/index.js rename to packages/video-player/dist/react/video-player/components/player-extension/index.js diff --git a/dist/react/video-player/components/player-extension/index.js.map b/packages/video-player/dist/react/video-player/components/player-extension/index.js.map similarity index 100% rename from dist/react/video-player/components/player-extension/index.js.map rename to packages/video-player/dist/react/video-player/components/player-extension/index.js.map diff --git a/dist/react/video-player/components/video-js/default.css b/packages/video-player/dist/react/video-player/components/video-js/default.css similarity index 100% rename from dist/react/video-player/components/video-js/default.css rename to packages/video-player/dist/react/video-player/components/video-js/default.css diff --git a/dist/react/video-player/components/video-js/hls-or-videojs-player.d.ts b/packages/video-player/dist/react/video-player/components/video-js/hls-or-videojs-player.d.ts similarity index 100% rename from dist/react/video-player/components/video-js/hls-or-videojs-player.d.ts rename to packages/video-player/dist/react/video-player/components/video-js/hls-or-videojs-player.d.ts diff --git a/dist/react/video-player/components/video-js/hls-or-videojs-player.d.ts.map b/packages/video-player/dist/react/video-player/components/video-js/hls-or-videojs-player.d.ts.map similarity index 100% rename from dist/react/video-player/components/video-js/hls-or-videojs-player.d.ts.map rename to packages/video-player/dist/react/video-player/components/video-js/hls-or-videojs-player.d.ts.map diff --git a/dist/react/video-player/components/video-js/hls-or-videojs-player.js b/packages/video-player/dist/react/video-player/components/video-js/hls-or-videojs-player.js similarity index 100% rename from dist/react/video-player/components/video-js/hls-or-videojs-player.js rename to packages/video-player/dist/react/video-player/components/video-js/hls-or-videojs-player.js diff --git a/dist/react/video-player/components/video-js/hls-or-videojs-player.js.map b/packages/video-player/dist/react/video-player/components/video-js/hls-or-videojs-player.js.map similarity index 100% rename from dist/react/video-player/components/video-js/hls-or-videojs-player.js.map rename to packages/video-player/dist/react/video-player/components/video-js/hls-or-videojs-player.js.map diff --git a/dist/react/video-player/components/video-js/index.d.ts b/packages/video-player/dist/react/video-player/components/video-js/index.d.ts similarity index 100% rename from dist/react/video-player/components/video-js/index.d.ts rename to packages/video-player/dist/react/video-player/components/video-js/index.d.ts diff --git a/dist/react/video-player/components/video-js/index.d.ts.map b/packages/video-player/dist/react/video-player/components/video-js/index.d.ts.map similarity index 100% rename from dist/react/video-player/components/video-js/index.d.ts.map rename to packages/video-player/dist/react/video-player/components/video-js/index.d.ts.map diff --git a/dist/react/video-player/components/video-js/index.js b/packages/video-player/dist/react/video-player/components/video-js/index.js similarity index 100% rename from dist/react/video-player/components/video-js/index.js rename to packages/video-player/dist/react/video-player/components/video-js/index.js diff --git a/dist/react/video-player/components/video-js/index.js.map b/packages/video-player/dist/react/video-player/components/video-js/index.js.map similarity index 100% rename from dist/react/video-player/components/video-js/index.js.map rename to packages/video-player/dist/react/video-player/components/video-js/index.js.map diff --git a/dist/react/video-player/components/video-js/plugins/big-play-pause-button/index.d.ts b/packages/video-player/dist/react/video-player/components/video-js/plugins/big-play-pause-button/index.d.ts similarity index 100% rename from dist/react/video-player/components/video-js/plugins/big-play-pause-button/index.d.ts rename to packages/video-player/dist/react/video-player/components/video-js/plugins/big-play-pause-button/index.d.ts diff --git a/dist/react/video-player/components/video-js/plugins/big-play-pause-button/index.d.ts.map b/packages/video-player/dist/react/video-player/components/video-js/plugins/big-play-pause-button/index.d.ts.map similarity index 100% rename from dist/react/video-player/components/video-js/plugins/big-play-pause-button/index.d.ts.map rename to packages/video-player/dist/react/video-player/components/video-js/plugins/big-play-pause-button/index.d.ts.map diff --git a/dist/react/video-player/components/video-js/plugins/big-play-pause-button/index.js b/packages/video-player/dist/react/video-player/components/video-js/plugins/big-play-pause-button/index.js similarity index 100% rename from dist/react/video-player/components/video-js/plugins/big-play-pause-button/index.js rename to packages/video-player/dist/react/video-player/components/video-js/plugins/big-play-pause-button/index.js diff --git a/dist/react/video-player/components/video-js/plugins/big-play-pause-button/index.js.map b/packages/video-player/dist/react/video-player/components/video-js/plugins/big-play-pause-button/index.js.map similarity index 100% rename from dist/react/video-player/components/video-js/plugins/big-play-pause-button/index.js.map rename to packages/video-player/dist/react/video-player/components/video-js/plugins/big-play-pause-button/index.js.map diff --git a/dist/react/video-player/components/video-js/plugins/components/tach-video-menu-button/index.d.ts b/packages/video-player/dist/react/video-player/components/video-js/plugins/components/tach-video-menu-button/index.d.ts similarity index 100% rename from dist/react/video-player/components/video-js/plugins/components/tach-video-menu-button/index.d.ts rename to packages/video-player/dist/react/video-player/components/video-js/plugins/components/tach-video-menu-button/index.d.ts diff --git a/dist/react/video-player/components/video-js/plugins/components/tach-video-menu-button/index.d.ts.map b/packages/video-player/dist/react/video-player/components/video-js/plugins/components/tach-video-menu-button/index.d.ts.map similarity index 100% rename from dist/react/video-player/components/video-js/plugins/components/tach-video-menu-button/index.d.ts.map rename to packages/video-player/dist/react/video-player/components/video-js/plugins/components/tach-video-menu-button/index.d.ts.map diff --git a/dist/react/video-player/components/video-js/plugins/components/tach-video-menu-button/index.js b/packages/video-player/dist/react/video-player/components/video-js/plugins/components/tach-video-menu-button/index.js similarity index 100% rename from dist/react/video-player/components/video-js/plugins/components/tach-video-menu-button/index.js rename to packages/video-player/dist/react/video-player/components/video-js/plugins/components/tach-video-menu-button/index.js diff --git a/dist/react/video-player/components/video-js/plugins/components/tach-video-menu-button/index.js.map b/packages/video-player/dist/react/video-player/components/video-js/plugins/components/tach-video-menu-button/index.js.map similarity index 100% rename from dist/react/video-player/components/video-js/plugins/components/tach-video-menu-button/index.js.map rename to packages/video-player/dist/react/video-player/components/video-js/plugins/components/tach-video-menu-button/index.js.map diff --git a/dist/react/video-player/components/video-js/plugins/components/tach-video-menu-item/index.d.ts b/packages/video-player/dist/react/video-player/components/video-js/plugins/components/tach-video-menu-item/index.d.ts similarity index 100% rename from dist/react/video-player/components/video-js/plugins/components/tach-video-menu-item/index.d.ts rename to packages/video-player/dist/react/video-player/components/video-js/plugins/components/tach-video-menu-item/index.d.ts diff --git a/dist/react/video-player/components/video-js/plugins/components/tach-video-menu-item/index.d.ts.map b/packages/video-player/dist/react/video-player/components/video-js/plugins/components/tach-video-menu-item/index.d.ts.map similarity index 100% rename from dist/react/video-player/components/video-js/plugins/components/tach-video-menu-item/index.d.ts.map rename to packages/video-player/dist/react/video-player/components/video-js/plugins/components/tach-video-menu-item/index.d.ts.map diff --git a/dist/react/video-player/components/video-js/plugins/components/tach-video-menu-item/index.js b/packages/video-player/dist/react/video-player/components/video-js/plugins/components/tach-video-menu-item/index.js similarity index 100% rename from dist/react/video-player/components/video-js/plugins/components/tach-video-menu-item/index.js rename to packages/video-player/dist/react/video-player/components/video-js/plugins/components/tach-video-menu-item/index.js diff --git a/dist/react/video-player/components/video-js/plugins/components/tach-video-menu-item/index.js.map b/packages/video-player/dist/react/video-player/components/video-js/plugins/components/tach-video-menu-item/index.js.map similarity index 100% rename from dist/react/video-player/components/video-js/plugins/components/tach-video-menu-item/index.js.map rename to packages/video-player/dist/react/video-player/components/video-js/plugins/components/tach-video-menu-item/index.js.map diff --git a/dist/react/video-player/components/video-js/plugins/components/tach-video-menu/index.d.ts b/packages/video-player/dist/react/video-player/components/video-js/plugins/components/tach-video-menu/index.d.ts similarity index 100% rename from dist/react/video-player/components/video-js/plugins/components/tach-video-menu/index.d.ts rename to packages/video-player/dist/react/video-player/components/video-js/plugins/components/tach-video-menu/index.d.ts diff --git a/dist/react/video-player/components/video-js/plugins/components/tach-video-menu/index.d.ts.map b/packages/video-player/dist/react/video-player/components/video-js/plugins/components/tach-video-menu/index.d.ts.map similarity index 100% rename from dist/react/video-player/components/video-js/plugins/components/tach-video-menu/index.d.ts.map rename to packages/video-player/dist/react/video-player/components/video-js/plugins/components/tach-video-menu/index.d.ts.map diff --git a/dist/react/video-player/components/video-js/plugins/components/tach-video-menu/index.js b/packages/video-player/dist/react/video-player/components/video-js/plugins/components/tach-video-menu/index.js similarity index 100% rename from dist/react/video-player/components/video-js/plugins/components/tach-video-menu/index.js rename to packages/video-player/dist/react/video-player/components/video-js/plugins/components/tach-video-menu/index.js diff --git a/dist/react/video-player/components/video-js/plugins/components/tach-video-menu/index.js.map b/packages/video-player/dist/react/video-player/components/video-js/plugins/components/tach-video-menu/index.js.map similarity index 100% rename from dist/react/video-player/components/video-js/plugins/components/tach-video-menu/index.js.map rename to packages/video-player/dist/react/video-player/components/video-js/plugins/components/tach-video-menu/index.js.map diff --git a/dist/react/video-player/components/video-js/plugins/settings/index.d.ts b/packages/video-player/dist/react/video-player/components/video-js/plugins/settings/index.d.ts similarity index 95% rename from dist/react/video-player/components/video-js/plugins/settings/index.d.ts rename to packages/video-player/dist/react/video-player/components/video-js/plugins/settings/index.d.ts index 599d4e2..d9de70d 100644 --- a/dist/react/video-player/components/video-js/plugins/settings/index.d.ts +++ b/packages/video-player/dist/react/video-player/components/video-js/plugins/settings/index.d.ts @@ -1,10 +1,10 @@ import Component from "video.js/dist/types/component"; +import Player from "video.js/dist/types/player"; import Plugin from "video.js/dist/types/plugin"; import "./settings.css"; -import { VideoJsPlayer } from "../../types"; interface SettingsButtonOptions { } -interface PlayerWithControlBar extends VideoJsPlayer { +interface PlayerWithControlBar extends Player { controlBar: Component; } declare const BasePlugin: typeof Plugin; diff --git a/packages/video-player/dist/react/video-player/components/video-js/plugins/settings/index.d.ts.map b/packages/video-player/dist/react/video-player/components/video-js/plugins/settings/index.d.ts.map new file mode 100644 index 0000000..8e792dc --- /dev/null +++ b/packages/video-player/dist/react/video-player/components/video-js/plugins/settings/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/react/video-player/components/video-js/plugins/settings/index.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,+BAA+B,CAAC;AACtD,OAAO,MAAM,MAAM,4BAA4B,CAAC;AAChD,OAAO,MAAM,MAAM,4BAA4B,CAAC;AAYhD,OAAO,gBAAgB,CAAC;AAGxB,UAAU,qBAAqB;CAE9B;AAGD,UAAU,oBAAqB,SAAQ,MAAM;IAC5C,UAAU,EAAE,SAAS,CAAC;CACtB;AAED,QAAA,MAAM,UAAU,EAAmC,OAAO,MAAM,CAAC;AAKjE,cAAM,cAAe,SAAQ,UAAU;IACtC,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,cAAc,CAAa;IAGnC,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,kBAAkB,CAA6B;IACvD,OAAO,CAAC,iBAAiB,CAA6B;IACtD,OAAO,CAAC,iBAAiB,CAA6B;IACtD,OAAO,CAAC,gBAAgB,CAA6B;gBAEzC,MAAM,EAAE,oBAAoB,EAAE,OAAO,EAAE,qBAAqB;IAMxE;;OAEG;IACH,OAAO,CAAC,UAAU;IAKlB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAKxB;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IA8D5B;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAInB;;;;;;OAMG;YACW,OAAO;CA8CrB;AAID,eAAe,cAAc,CAAC"} \ No newline at end of file diff --git a/dist/react/video-player/components/video-js/plugins/settings/index.js b/packages/video-player/dist/react/video-player/components/video-js/plugins/settings/index.js similarity index 100% rename from dist/react/video-player/components/video-js/plugins/settings/index.js rename to packages/video-player/dist/react/video-player/components/video-js/plugins/settings/index.js diff --git a/dist/react/video-player/components/video-js/plugins/settings/index.js.map b/packages/video-player/dist/react/video-player/components/video-js/plugins/settings/index.js.map similarity index 98% rename from dist/react/video-player/components/video-js/plugins/settings/index.js.map rename to packages/video-player/dist/react/video-player/components/video-js/plugins/settings/index.js.map index 4cbf6e9..87390a7 100644 --- a/dist/react/video-player/components/video-js/plugins/settings/index.js.map +++ b/packages/video-player/dist/react/video-player/components/video-js/plugins/settings/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/react/video-player/components/video-js/plugins/settings/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/react/video-player/components/video-js/plugins/settings/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/react/video-player/components/video-js/plugins/settings/selectors/audio-track-selector/index.d.ts b/packages/video-player/dist/react/video-player/components/video-js/plugins/settings/selectors/audio-track-selector/index.d.ts similarity index 100% rename from dist/react/video-player/components/video-js/plugins/settings/selectors/audio-track-selector/index.d.ts rename to packages/video-player/dist/react/video-player/components/video-js/plugins/settings/selectors/audio-track-selector/index.d.ts diff --git a/dist/react/video-player/components/video-js/plugins/settings/selectors/audio-track-selector/index.d.ts.map b/packages/video-player/dist/react/video-player/components/video-js/plugins/settings/selectors/audio-track-selector/index.d.ts.map similarity index 100% rename from dist/react/video-player/components/video-js/plugins/settings/selectors/audio-track-selector/index.d.ts.map rename to packages/video-player/dist/react/video-player/components/video-js/plugins/settings/selectors/audio-track-selector/index.d.ts.map diff --git a/dist/react/video-player/components/video-js/plugins/settings/selectors/audio-track-selector/index.js b/packages/video-player/dist/react/video-player/components/video-js/plugins/settings/selectors/audio-track-selector/index.js similarity index 100% rename from dist/react/video-player/components/video-js/plugins/settings/selectors/audio-track-selector/index.js rename to packages/video-player/dist/react/video-player/components/video-js/plugins/settings/selectors/audio-track-selector/index.js diff --git a/dist/react/video-player/components/video-js/plugins/settings/selectors/audio-track-selector/index.js.map b/packages/video-player/dist/react/video-player/components/video-js/plugins/settings/selectors/audio-track-selector/index.js.map similarity index 100% rename from dist/react/video-player/components/video-js/plugins/settings/selectors/audio-track-selector/index.js.map rename to packages/video-player/dist/react/video-player/components/video-js/plugins/settings/selectors/audio-track-selector/index.js.map diff --git a/dist/react/video-player/components/video-js/plugins/settings/selectors/playback-rate-selector/index.d.ts b/packages/video-player/dist/react/video-player/components/video-js/plugins/settings/selectors/playback-rate-selector/index.d.ts similarity index 100% rename from dist/react/video-player/components/video-js/plugins/settings/selectors/playback-rate-selector/index.d.ts rename to packages/video-player/dist/react/video-player/components/video-js/plugins/settings/selectors/playback-rate-selector/index.d.ts diff --git a/dist/react/video-player/components/video-js/plugins/settings/selectors/playback-rate-selector/index.d.ts.map b/packages/video-player/dist/react/video-player/components/video-js/plugins/settings/selectors/playback-rate-selector/index.d.ts.map similarity index 100% rename from dist/react/video-player/components/video-js/plugins/settings/selectors/playback-rate-selector/index.d.ts.map rename to packages/video-player/dist/react/video-player/components/video-js/plugins/settings/selectors/playback-rate-selector/index.d.ts.map diff --git a/dist/react/video-player/components/video-js/plugins/settings/selectors/playback-rate-selector/index.js b/packages/video-player/dist/react/video-player/components/video-js/plugins/settings/selectors/playback-rate-selector/index.js similarity index 100% rename from dist/react/video-player/components/video-js/plugins/settings/selectors/playback-rate-selector/index.js rename to packages/video-player/dist/react/video-player/components/video-js/plugins/settings/selectors/playback-rate-selector/index.js diff --git a/dist/react/video-player/components/video-js/plugins/settings/selectors/playback-rate-selector/index.js.map b/packages/video-player/dist/react/video-player/components/video-js/plugins/settings/selectors/playback-rate-selector/index.js.map similarity index 100% rename from dist/react/video-player/components/video-js/plugins/settings/selectors/playback-rate-selector/index.js.map rename to packages/video-player/dist/react/video-player/components/video-js/plugins/settings/selectors/playback-rate-selector/index.js.map diff --git a/dist/react/video-player/components/video-js/plugins/settings/selectors/quality-rate-selector/index.d.ts b/packages/video-player/dist/react/video-player/components/video-js/plugins/settings/selectors/quality-rate-selector/index.d.ts similarity index 100% rename from dist/react/video-player/components/video-js/plugins/settings/selectors/quality-rate-selector/index.d.ts rename to packages/video-player/dist/react/video-player/components/video-js/plugins/settings/selectors/quality-rate-selector/index.d.ts diff --git a/dist/react/video-player/components/video-js/plugins/settings/selectors/quality-rate-selector/index.d.ts.map b/packages/video-player/dist/react/video-player/components/video-js/plugins/settings/selectors/quality-rate-selector/index.d.ts.map similarity index 100% rename from dist/react/video-player/components/video-js/plugins/settings/selectors/quality-rate-selector/index.d.ts.map rename to packages/video-player/dist/react/video-player/components/video-js/plugins/settings/selectors/quality-rate-selector/index.d.ts.map diff --git a/dist/react/video-player/components/video-js/plugins/settings/selectors/quality-rate-selector/index.js b/packages/video-player/dist/react/video-player/components/video-js/plugins/settings/selectors/quality-rate-selector/index.js similarity index 100% rename from dist/react/video-player/components/video-js/plugins/settings/selectors/quality-rate-selector/index.js rename to packages/video-player/dist/react/video-player/components/video-js/plugins/settings/selectors/quality-rate-selector/index.js diff --git a/dist/react/video-player/components/video-js/plugins/settings/selectors/quality-rate-selector/index.js.map b/packages/video-player/dist/react/video-player/components/video-js/plugins/settings/selectors/quality-rate-selector/index.js.map similarity index 100% rename from dist/react/video-player/components/video-js/plugins/settings/selectors/quality-rate-selector/index.js.map rename to packages/video-player/dist/react/video-player/components/video-js/plugins/settings/selectors/quality-rate-selector/index.js.map diff --git a/dist/react/video-player/components/video-js/plugins/settings/selectors/text-track-selector/index.d.ts b/packages/video-player/dist/react/video-player/components/video-js/plugins/settings/selectors/text-track-selector/index.d.ts similarity index 63% rename from dist/react/video-player/components/video-js/plugins/settings/selectors/text-track-selector/index.d.ts rename to packages/video-player/dist/react/video-player/components/video-js/plugins/settings/selectors/text-track-selector/index.d.ts index 36627d6..5cde2e7 100644 --- a/dist/react/video-player/components/video-js/plugins/settings/selectors/text-track-selector/index.d.ts +++ b/packages/video-player/dist/react/video-player/components/video-js/plugins/settings/selectors/text-track-selector/index.d.ts @@ -1,11 +1,14 @@ -import { VideoJsPlayer } from "../../../../types"; import { TachPlayerMenuItemOptions } from "../../../types"; +import { VideoJsTextTrackList } from "../../../../types"; interface QualityMenuOptions extends TachPlayerMenuItemOptions { } -declare const textTracks: (player: VideoJsPlayer, options?: QualityMenuOptions) => { +interface ITextTrackPlayer { + textTracks: () => VideoJsTextTrackList; +} +declare const textTracks: (player: ITextTrackPlayer, options?: QualityMenuOptions) => { menuItems: () => { - label: any; - value: any; + label: string; + value: string; selected: boolean; onClick: () => void; }[]; diff --git a/packages/video-player/dist/react/video-player/components/video-js/plugins/settings/selectors/text-track-selector/index.d.ts.map b/packages/video-player/dist/react/video-player/components/video-js/plugins/settings/selectors/text-track-selector/index.d.ts.map new file mode 100644 index 0000000..aab301b --- /dev/null +++ b/packages/video-player/dist/react/video-player/components/video-js/plugins/settings/selectors/text-track-selector/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/react/video-player/components/video-js/plugins/settings/selectors/text-track-selector/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AASzD,UAAU,kBAAmB,SAAQ,yBAAyB;CAAG;AACjE,UAAU,gBAAgB;IACzB,UAAU,EAAE,MAAM,oBAAoB,CAAC;CACvC;AAED,QAAA,MAAM,UAAU,GACf,QAAQ,gBAAgB,EACxB,UAAS,kBAA6B;;;;;;;;;;;;;;;CAkDtC,CAAC;AAEF,eAAe,UAAU,CAAC"} \ No newline at end of file diff --git a/dist/react/video-player/components/video-js/plugins/settings/selectors/text-track-selector/index.js b/packages/video-player/dist/react/video-player/components/video-js/plugins/settings/selectors/text-track-selector/index.js similarity index 65% rename from dist/react/video-player/components/video-js/plugins/settings/selectors/text-track-selector/index.js rename to packages/video-player/dist/react/video-player/components/video-js/plugins/settings/selectors/text-track-selector/index.js index 4fc33cf..a47ff22 100644 --- a/dist/react/video-player/components/video-js/plugins/settings/selectors/text-track-selector/index.js +++ b/packages/video-player/dist/react/video-player/components/video-js/plugins/settings/selectors/text-track-selector/index.js @@ -9,14 +9,15 @@ const textTracks = (player, options = defaults) => { const textTracks = player.textTracks().tracks_; const trackItems = []; for (let i = 0; i < textTracks?.length; ++i) { - if (textTracks[i].mode === "hidden") { + const track = textTracks[i]; + if (!track || track.mode === "hidden") { continue; } const trackItem = { - label: textTracks[i].label, - value: textTracks[i].label, - selected: textTracks[i].mode === "showing", - onClick: () => setTrack(textTracks[i]), + label: track.label, + value: track.label, + selected: track.mode === "showing", + onClick: () => setTrack(track), }; trackItems.push(trackItem); } @@ -25,13 +26,14 @@ const textTracks = (player, options = defaults) => { const setTrack = (track) => { const textTracks = player.textTracks().tracks_; for (let i = 0; i < textTracks?.length; ++i) { - if (textTracks[i].mode === "hidden") { + const currentTrack = textTracks[i]; + if (!currentTrack || currentTrack.mode === "hidden") { continue; } - if (textTracks[i].label === track.label) - textTracks[i].mode = "showing"; + if (currentTrack.label === track.label) + currentTrack.mode = "showing"; else - textTracks[i].mode = "disabled"; + currentTrack.mode = "disabled"; } }; const menuItem = () => { diff --git a/packages/video-player/dist/react/video-player/components/video-js/plugins/settings/selectors/text-track-selector/index.js.map b/packages/video-player/dist/react/video-player/components/video-js/plugins/settings/selectors/text-track-selector/index.js.map new file mode 100644 index 0000000..4269192 --- /dev/null +++ b/packages/video-player/dist/react/video-player/components/video-js/plugins/settings/selectors/text-track-selector/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../../src/react/video-player/components/video-js/plugins/settings/selectors/text-track-selector/index.ts"],"names":[],"mappings":"AAGA,MAAM,QAAQ,GAAG;IAChB,KAAK,EAAE,UAAU;IACjB,QAAQ,EAAE,KAAK;IACf,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE,eAAe;CAC1B,CAAC;AAOF,MAAM,UAAU,GAAG,CAClB,MAAwB,EACxB,UAA8B,QAAQ,EACrC,EAAE;IACH,MAAM,SAAS,GAAG,GAAG,EAAE;QACtB,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC;QAC/C,MAAM,UAAU,GAAG,EAAE,CAAC;QAEtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;YAC7C,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACvC,SAAS;YACV,CAAC;YAED,MAAM,SAAS,GAAG;gBACjB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,QAAQ,EAAE,KAAK,CAAC,IAAI,KAAK,SAAS;gBAClC,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;aAC9B,CAAC;YAEF,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5B,CAAC;QAED,OAAO,UAAU,CAAC;IACnB,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,CAAC,KAAgB,EAAE,EAAE;QACrC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC;QAE/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;YAC7C,MAAM,YAAY,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YACnC,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACrD,SAAS;YACV,CAAC;YAED,IAAI,YAAY,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK;gBAAE,YAAY,CAAC,IAAI,GAAG,SAAS,CAAC;;gBACjE,YAAY,CAAC,IAAI,GAAG,UAAU,CAAC;QACrC,CAAC;IACF,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,GAAG,EAAE;QACrB,OAAO;YACN,GAAG,OAAO;YACV,OAAO,EAAE,SAAS,EAAE,CAAC,MAAM,GAAG,CAAC;SAC/B,CAAC;IACH,CAAC,CAAC;IAEF,OAAO;QACN,SAAS;QACT,QAAQ;KACR,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC"} \ No newline at end of file diff --git a/dist/react/video-player/components/video-js/plugins/settings/settings.css b/packages/video-player/dist/react/video-player/components/video-js/plugins/settings/settings.css similarity index 100% rename from dist/react/video-player/components/video-js/plugins/settings/settings.css rename to packages/video-player/dist/react/video-player/components/video-js/plugins/settings/settings.css diff --git a/dist/react/video-player/components/video-js/plugins/skip-buttons/index.d.ts b/packages/video-player/dist/react/video-player/components/video-js/plugins/skip-buttons/index.d.ts similarity index 100% rename from dist/react/video-player/components/video-js/plugins/skip-buttons/index.d.ts rename to packages/video-player/dist/react/video-player/components/video-js/plugins/skip-buttons/index.d.ts diff --git a/dist/react/video-player/components/video-js/plugins/skip-buttons/index.d.ts.map b/packages/video-player/dist/react/video-player/components/video-js/plugins/skip-buttons/index.d.ts.map similarity index 83% rename from dist/react/video-player/components/video-js/plugins/skip-buttons/index.d.ts.map rename to packages/video-player/dist/react/video-player/components/video-js/plugins/skip-buttons/index.d.ts.map index 107f138..be34d8d 100644 --- a/dist/react/video-player/components/video-js/plugins/skip-buttons/index.d.ts.map +++ b/packages/video-player/dist/react/video-player/components/video-js/plugins/skip-buttons/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/react/video-player/components/video-js/plugins/skip-buttons/index.tsx"],"names":[],"mappings":"AAKA,OAAO,MAAM,MAAM,4BAA4B,CAAC;AAKhD,OAAO,oBAAoB,CAAC;AAM5B,MAAM,WAAW,kBAAkB;IAClC,IAAI,EAAE,MAAM,CAAC;CACb;AAgID,QAAA,MAAM,iBAAiB,GAAa,MAAM,MAAM,EAAE,SAAS,kBAAkB,SAsD5E,CAAC;AAIF,eAAe,iBAAiB,CAAC"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/react/video-player/components/video-js/plugins/skip-buttons/index.tsx"],"names":[],"mappings":"AAKA,OAAO,MAAM,MAAM,4BAA4B,CAAC;AAKhD,OAAO,oBAAoB,CAAC;AAK5B,MAAM,WAAW,kBAAkB;IAClC,IAAI,EAAE,MAAM,CAAC;CACb;AAgID,QAAA,MAAM,iBAAiB,GAAa,MAAM,MAAM,EAAE,SAAS,kBAAkB,SAsD5E,CAAC;AAIF,eAAe,iBAAiB,CAAC"} \ No newline at end of file diff --git a/dist/react/video-player/components/video-js/plugins/skip-buttons/index.js b/packages/video-player/dist/react/video-player/components/video-js/plugins/skip-buttons/index.js similarity index 100% rename from dist/react/video-player/components/video-js/plugins/skip-buttons/index.js rename to packages/video-player/dist/react/video-player/components/video-js/plugins/skip-buttons/index.js diff --git a/dist/react/video-player/components/video-js/plugins/skip-buttons/index.js.map b/packages/video-player/dist/react/video-player/components/video-js/plugins/skip-buttons/index.js.map similarity index 93% rename from dist/react/video-player/components/video-js/plugins/skip-buttons/index.js.map rename to packages/video-player/dist/react/video-player/components/video-js/plugins/skip-buttons/index.js.map index 53e8b1f..a556e33 100644 --- a/dist/react/video-player/components/video-js/plugins/skip-buttons/index.js.map +++ b/packages/video-player/dist/react/video-player/components/video-js/plugins/skip-buttons/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/react/video-player/components/video-js/plugins/skip-buttons/index.tsx"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/react/video-player/components/video-js/plugins/skip-buttons/index.tsx"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/react/video-player/components/video-js/plugins/skip-buttons/skip-backward.svg b/packages/video-player/dist/react/video-player/components/video-js/plugins/skip-buttons/skip-backward.svg similarity index 100% rename from dist/react/video-player/components/video-js/plugins/skip-buttons/skip-backward.svg rename to packages/video-player/dist/react/video-player/components/video-js/plugins/skip-buttons/skip-backward.svg diff --git a/dist/react/video-player/components/video-js/plugins/skip-buttons/skip-buttons.css b/packages/video-player/dist/react/video-player/components/video-js/plugins/skip-buttons/skip-buttons.css similarity index 100% rename from dist/react/video-player/components/video-js/plugins/skip-buttons/skip-buttons.css rename to packages/video-player/dist/react/video-player/components/video-js/plugins/skip-buttons/skip-buttons.css diff --git a/dist/react/video-player/components/video-js/plugins/skip-buttons/skip-forward.svg b/packages/video-player/dist/react/video-player/components/video-js/plugins/skip-buttons/skip-forward.svg similarity index 100% rename from dist/react/video-player/components/video-js/plugins/skip-buttons/skip-forward.svg rename to packages/video-player/dist/react/video-player/components/video-js/plugins/skip-buttons/skip-forward.svg diff --git a/dist/react/video-player/components/video-js/plugins/types/index.d.ts b/packages/video-player/dist/react/video-player/components/video-js/plugins/types/index.d.ts similarity index 100% rename from dist/react/video-player/components/video-js/plugins/types/index.d.ts rename to packages/video-player/dist/react/video-player/components/video-js/plugins/types/index.d.ts diff --git a/dist/react/video-player/components/video-js/plugins/types/index.d.ts.map b/packages/video-player/dist/react/video-player/components/video-js/plugins/types/index.d.ts.map similarity index 100% rename from dist/react/video-player/components/video-js/plugins/types/index.d.ts.map rename to packages/video-player/dist/react/video-player/components/video-js/plugins/types/index.d.ts.map diff --git a/dist/react/video-player/components/video-js/plugins/types/index.js b/packages/video-player/dist/react/video-player/components/video-js/plugins/types/index.js similarity index 100% rename from dist/react/video-player/components/video-js/plugins/types/index.js rename to packages/video-player/dist/react/video-player/components/video-js/plugins/types/index.js diff --git a/dist/react/video-player/components/video-js/plugins/types/index.js.map b/packages/video-player/dist/react/video-player/components/video-js/plugins/types/index.js.map similarity index 100% rename from dist/react/video-player/components/video-js/plugins/types/index.js.map rename to packages/video-player/dist/react/video-player/components/video-js/plugins/types/index.js.map diff --git a/packages/video-player/dist/react/video-player/components/video-js/types.d.ts b/packages/video-player/dist/react/video-player/components/video-js/types.d.ts new file mode 100644 index 0000000..d6d19a0 --- /dev/null +++ b/packages/video-player/dist/react/video-player/components/video-js/types.d.ts @@ -0,0 +1,94 @@ +import { SkipButtonsOptions } from "./plugins/skip-buttons"; +export interface IVideoJSSource { + src: string; + type: string; +} +export type PreloadType = "auto" | "metadata" | "none" | "visibility"; +export interface IVideoJSOptions { + autoplay: boolean; + controls: boolean; + responsive: boolean; + aspectRatio?: string; + preload: PreloadType; + fluid: boolean; + muted: boolean; + sources: IVideoJSSource[]; + poster?: string; + preferHQ?: boolean; + /** Включить детальное логирование */ + debug?: boolean; +} +export interface IVideoJSProps { + options: IVideoJSOptions; + onReady?: (player: VideoJsPlayer) => void; + className?: string; + classNames?: string[]; + initialTime?: number; + full?: boolean; + withRewind?: boolean; +} +export interface VideoJsLiveTracker { + isLive_: boolean; + atLiveEdge?: () => boolean; + startTracking: () => void; + trigger: (event: string) => void; +} +export type VideoJsEventArgument = string | number | boolean | null | undefined | object; +export type VideoJsEventHandler = (...args: VideoJsEventArgument[]) => void; +export interface VideoJsSegmentInfo { + sn?: number; + level?: number; + duration?: number; + start?: number; + end?: number; + cc?: number; +} +export interface HlsLikeEventData { + fatal?: boolean; + details?: string; + reason?: string; +} +export interface HlsLikeLevelDetails { + live?: boolean; + totalduration?: number; +} +export interface HlsLikeLevel { + details?: HlsLikeLevelDetails; +} +export interface HlsLikeInstance { + on?: (event: string, callback: (event: string, data?: HlsLikeEventData) => void) => void; + loadSource?: (src: string) => void; + destroy?: () => void; + levels?: HlsLikeLevel[]; +} +export interface VideoJsTextTrackList { + tracks_: TextTrack[]; +} +export interface VideoJsPlayer { + play: () => void | Promise; + pause: () => void; + load: () => void; + on: (event: string, callback: VideoJsEventHandler) => void; + off?: (event: string, callback?: VideoJsEventHandler) => void; + one: (event: string, callback: VideoJsEventHandler) => void; + currentTime: (seconds?: number) => number | undefined; + duration: () => number; + controls: (state?: boolean) => boolean; + paused: () => boolean; + el: () => Element | null; + dispose: () => void; + hlsInstance?: HlsLikeInstance | null; + liveTracker?: VideoJsLiveTracker; + settingsMenu?: () => void; + mobileUi?: () => void; + bigPlayPauseButton?: () => void; + skipButtons?: (options: SkipButtonsOptions) => void; + subscribeToSegmentChange: (callback: (segment: VideoJsSegmentInfo) => void) => void; + subscribeToDuration: (callback: (duration: number) => void) => void; + subscribeToPlayStart: (callback: () => void) => void; + subscribeToPlayStarted: (callback: () => void) => void; + subscribeToManifestLoaded: (callback: () => void) => void; + mediaduration: () => number | undefined; + textTracks: () => VideoJsTextTrackList; +} +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/video-player/dist/react/video-player/components/video-js/types.d.ts.map b/packages/video-player/dist/react/video-player/components/video-js/types.d.ts.map new file mode 100644 index 0000000..e0e3a82 --- /dev/null +++ b/packages/video-player/dist/react/video-player/components/video-js/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/react/video-player/components/video-js/types.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/react/video-player/components/video-js/types.js b/packages/video-player/dist/react/video-player/components/video-js/types.js similarity index 100% rename from dist/react/video-player/components/video-js/types.js rename to packages/video-player/dist/react/video-player/components/video-js/types.js diff --git a/dist/react/video-player/components/video-js/types.js.map b/packages/video-player/dist/react/video-player/components/video-js/types.js.map similarity index 100% rename from dist/react/video-player/components/video-js/types.js.map rename to packages/video-player/dist/react/video-player/components/video-js/types.js.map diff --git a/dist/react/video-player/components/video-js/utils.d.ts b/packages/video-player/dist/react/video-player/components/video-js/utils.d.ts similarity index 100% rename from dist/react/video-player/components/video-js/utils.d.ts rename to packages/video-player/dist/react/video-player/components/video-js/utils.d.ts diff --git a/dist/react/video-player/components/video-js/utils.d.ts.map b/packages/video-player/dist/react/video-player/components/video-js/utils.d.ts.map similarity index 100% rename from dist/react/video-player/components/video-js/utils.d.ts.map rename to packages/video-player/dist/react/video-player/components/video-js/utils.d.ts.map diff --git a/dist/react/video-player/components/video-js/utils.js b/packages/video-player/dist/react/video-player/components/video-js/utils.js similarity index 100% rename from dist/react/video-player/components/video-js/utils.js rename to packages/video-player/dist/react/video-player/components/video-js/utils.js diff --git a/dist/react/video-player/components/video-js/utils.js.map b/packages/video-player/dist/react/video-player/components/video-js/utils.js.map similarity index 100% rename from dist/react/video-player/components/video-js/utils.js.map rename to packages/video-player/dist/react/video-player/components/video-js/utils.js.map diff --git a/dist/react/video-player/components/video-js/videojs.module.scss b/packages/video-player/dist/react/video-player/components/video-js/videojs.module.scss similarity index 100% rename from dist/react/video-player/components/video-js/videojs.module.scss rename to packages/video-player/dist/react/video-player/components/video-js/videojs.module.scss diff --git a/dist/react/video-player/components/with-blur/index.d.ts b/packages/video-player/dist/react/video-player/components/with-blur/index.d.ts similarity index 100% rename from dist/react/video-player/components/with-blur/index.d.ts rename to packages/video-player/dist/react/video-player/components/with-blur/index.d.ts diff --git a/dist/react/video-player/components/with-blur/index.d.ts.map b/packages/video-player/dist/react/video-player/components/with-blur/index.d.ts.map similarity index 81% rename from dist/react/video-player/components/with-blur/index.d.ts.map rename to packages/video-player/dist/react/video-player/components/with-blur/index.d.ts.map index f816a79..236f48f 100644 --- a/dist/react/video-player/components/with-blur/index.d.ts.map +++ b/packages/video-player/dist/react/video-player/components/with-blur/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/react/video-player/components/with-blur/index.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAG5D,MAAM,WAAW,yBAA0B,SAAQ,qBAAqB;IACvE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,QAAA,MAAM,QAAQ,GAAI,2CAKf,yBAAyB,4CAiF3B,CAAC;AAEF,eAAe,QAAQ,CAAC"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/react/video-player/components/with-blur/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAG5D,MAAM,WAAW,yBAA0B,SAAQ,qBAAqB;IACvE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,QAAA,MAAM,QAAQ,GAAI,2CAKf,yBAAyB,4CAiF3B,CAAC;AAEF,eAAe,QAAQ,CAAC"} \ No newline at end of file diff --git a/dist/react/video-player/components/with-blur/index.js b/packages/video-player/dist/react/video-player/components/with-blur/index.js similarity index 100% rename from dist/react/video-player/components/with-blur/index.js rename to packages/video-player/dist/react/video-player/components/with-blur/index.js diff --git a/dist/react/video-player/components/with-blur/index.js.map b/packages/video-player/dist/react/video-player/components/with-blur/index.js.map similarity index 97% rename from dist/react/video-player/components/with-blur/index.js.map rename to packages/video-player/dist/react/video-player/components/with-blur/index.js.map index 8ad9ed7..b90652d 100644 --- a/dist/react/video-player/components/with-blur/index.js.map +++ b/packages/video-player/dist/react/video-player/components/with-blur/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/react/video-player/components/with-blur/index.tsx"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/react/video-player/components/with-blur/index.tsx"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/react/video-player/components/with-blur/with-blur.css b/packages/video-player/dist/react/video-player/components/with-blur/with-blur.css similarity index 100% rename from dist/react/video-player/components/with-blur/with-blur.css rename to packages/video-player/dist/react/video-player/components/with-blur/with-blur.css diff --git a/dist/react/video-player/components/with-blur/with-blur.module.scss b/packages/video-player/dist/react/video-player/components/with-blur/with-blur.module.scss similarity index 100% rename from dist/react/video-player/components/with-blur/with-blur.module.scss rename to packages/video-player/dist/react/video-player/components/with-blur/with-blur.module.scss diff --git a/dist/react/video-player/components/with-cover/index.d.ts b/packages/video-player/dist/react/video-player/components/with-cover/index.d.ts similarity index 100% rename from dist/react/video-player/components/with-cover/index.d.ts rename to packages/video-player/dist/react/video-player/components/with-cover/index.d.ts diff --git a/dist/react/video-player/components/with-cover/index.d.ts.map b/packages/video-player/dist/react/video-player/components/with-cover/index.d.ts.map similarity index 100% rename from dist/react/video-player/components/with-cover/index.d.ts.map rename to packages/video-player/dist/react/video-player/components/with-cover/index.d.ts.map diff --git a/dist/react/video-player/components/with-cover/index.js b/packages/video-player/dist/react/video-player/components/with-cover/index.js similarity index 100% rename from dist/react/video-player/components/with-cover/index.js rename to packages/video-player/dist/react/video-player/components/with-cover/index.js diff --git a/dist/react/video-player/components/with-cover/index.js.map b/packages/video-player/dist/react/video-player/components/with-cover/index.js.map similarity index 100% rename from dist/react/video-player/components/with-cover/index.js.map rename to packages/video-player/dist/react/video-player/components/with-cover/index.js.map diff --git a/dist/react/video-player/components/with-cover/with-cover.module.scss b/packages/video-player/dist/react/video-player/components/with-cover/with-cover.module.scss similarity index 100% rename from dist/react/video-player/components/with-cover/with-cover.module.scss rename to packages/video-player/dist/react/video-player/components/with-cover/with-cover.module.scss diff --git a/dist/react/video-player/components/with-duration-badge/index.d.ts b/packages/video-player/dist/react/video-player/components/with-duration-badge/index.d.ts similarity index 100% rename from dist/react/video-player/components/with-duration-badge/index.d.ts rename to packages/video-player/dist/react/video-player/components/with-duration-badge/index.d.ts diff --git a/dist/react/video-player/components/with-duration-badge/index.d.ts.map b/packages/video-player/dist/react/video-player/components/with-duration-badge/index.d.ts.map similarity index 100% rename from dist/react/video-player/components/with-duration-badge/index.d.ts.map rename to packages/video-player/dist/react/video-player/components/with-duration-badge/index.d.ts.map diff --git a/dist/react/video-player/components/with-duration-badge/index.js b/packages/video-player/dist/react/video-player/components/with-duration-badge/index.js similarity index 100% rename from dist/react/video-player/components/with-duration-badge/index.js rename to packages/video-player/dist/react/video-player/components/with-duration-badge/index.js diff --git a/dist/react/video-player/components/with-duration-badge/index.js.map b/packages/video-player/dist/react/video-player/components/with-duration-badge/index.js.map similarity index 100% rename from dist/react/video-player/components/with-duration-badge/index.js.map rename to packages/video-player/dist/react/video-player/components/with-duration-badge/index.js.map diff --git a/dist/react/video-player/components/with-duration-badge/with-duration-badge.module.scss b/packages/video-player/dist/react/video-player/components/with-duration-badge/with-duration-badge.module.scss similarity index 100% rename from dist/react/video-player/components/with-duration-badge/with-duration-badge.module.scss rename to packages/video-player/dist/react/video-player/components/with-duration-badge/with-duration-badge.module.scss diff --git a/dist/react/video-player/components/with-errors/index.d.ts b/packages/video-player/dist/react/video-player/components/with-errors/index.d.ts similarity index 100% rename from dist/react/video-player/components/with-errors/index.d.ts rename to packages/video-player/dist/react/video-player/components/with-errors/index.d.ts diff --git a/dist/react/video-player/components/with-errors/index.d.ts.map b/packages/video-player/dist/react/video-player/components/with-errors/index.d.ts.map similarity index 62% rename from dist/react/video-player/components/with-errors/index.d.ts.map rename to packages/video-player/dist/react/video-player/components/with-errors/index.d.ts.map index cea4cad..2473050 100644 --- a/dist/react/video-player/components/with-errors/index.d.ts.map +++ b/packages/video-player/dist/react/video-player/components/with-errors/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/react/video-player/components/with-errors/index.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AAIvE,MAAM,WAAW,2BAChB,SAAQ,6BAA6B;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,QAAA,MAAM,UAAU,GAAI,oCAIjB,2BAA2B,4CAW7B,CAAC;AAEF,eAAe,UAAU,CAAC"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/react/video-player/components/with-errors/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AAIvE,MAAM,WAAW,2BAChB,SAAQ,6BAA6B;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,QAAA,MAAM,UAAU,GAAI,oCAIjB,2BAA2B,4CAU7B,CAAC;AAEF,eAAe,UAAU,CAAC"} \ No newline at end of file diff --git a/dist/react/video-player/components/with-errors/index.js b/packages/video-player/dist/react/video-player/components/with-errors/index.js similarity index 100% rename from dist/react/video-player/components/with-errors/index.js rename to packages/video-player/dist/react/video-player/components/with-errors/index.js diff --git a/packages/video-player/dist/react/video-player/components/with-errors/index.js.map b/packages/video-player/dist/react/video-player/components/with-errors/index.js.map new file mode 100644 index 0000000..213d146 --- /dev/null +++ b/packages/video-player/dist/react/video-player/components/with-errors/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/react/video-player/components/with-errors/index.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,UAAU,MAAM,eAAe,CAAC;AACvC,OAAO,MAAM,MAAM,2BAA2B,CAAC;AAO/C,MAAM,UAAU,GAAG,CAAC,EACnB,UAAU,GAAG,KAAK,EAClB,QAAQ,EACR,GAAG,KAAK,EACqB,EAAE,EAAE;IACjC,OAAO,CACN,eACC,SAAS,EAAE,MAAM,CAAC,SAAS,EAC3B,KAAK,EAAE,EAAE,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,aAEhD,UAAU,IAAI,KAAC,UAAU,IAAC,SAAS,EAAE,MAAM,CAAC,MAAM,GAAI,EACtD,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC,IACtC,CACN,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC"} \ No newline at end of file diff --git a/dist/react/video-player/components/with-errors/video-error/index.d.ts b/packages/video-player/dist/react/video-player/components/with-errors/video-error/index.d.ts similarity index 100% rename from dist/react/video-player/components/with-errors/video-error/index.d.ts rename to packages/video-player/dist/react/video-player/components/with-errors/video-error/index.d.ts diff --git a/dist/react/video-player/components/with-errors/video-error/index.d.ts.map b/packages/video-player/dist/react/video-player/components/with-errors/video-error/index.d.ts.map similarity index 100% rename from dist/react/video-player/components/with-errors/video-error/index.d.ts.map rename to packages/video-player/dist/react/video-player/components/with-errors/video-error/index.d.ts.map diff --git a/dist/react/video-player/components/with-errors/video-error/index.js b/packages/video-player/dist/react/video-player/components/with-errors/video-error/index.js similarity index 100% rename from dist/react/video-player/components/with-errors/video-error/index.js rename to packages/video-player/dist/react/video-player/components/with-errors/video-error/index.js diff --git a/dist/react/video-player/components/with-errors/video-error/index.js.map b/packages/video-player/dist/react/video-player/components/with-errors/video-error/index.js.map similarity index 100% rename from dist/react/video-player/components/with-errors/video-error/index.js.map rename to packages/video-player/dist/react/video-player/components/with-errors/video-error/index.js.map diff --git a/dist/react/video-player/components/with-errors/video-error/video-error-icon.svg b/packages/video-player/dist/react/video-player/components/with-errors/video-error/video-error-icon.svg similarity index 100% rename from dist/react/video-player/components/with-errors/video-error/video-error-icon.svg rename to packages/video-player/dist/react/video-player/components/with-errors/video-error/video-error-icon.svg diff --git a/dist/react/video-player/components/with-errors/video-error/video-error.module.scss b/packages/video-player/dist/react/video-player/components/with-errors/video-error/video-error.module.scss similarity index 100% rename from dist/react/video-player/components/with-errors/video-error/video-error.module.scss rename to packages/video-player/dist/react/video-player/components/with-errors/video-error/video-error.module.scss diff --git a/dist/react/video-player/components/with-errors/with-errors.module.scss b/packages/video-player/dist/react/video-player/components/with-errors/with-errors.module.scss similarity index 100% rename from dist/react/video-player/components/with-errors/with-errors.module.scss rename to packages/video-player/dist/react/video-player/components/with-errors/with-errors.module.scss diff --git a/dist/react/video-player/components/with-lazy/index.d.ts b/packages/video-player/dist/react/video-player/components/with-lazy/index.d.ts similarity index 100% rename from dist/react/video-player/components/with-lazy/index.d.ts rename to packages/video-player/dist/react/video-player/components/with-lazy/index.d.ts diff --git a/dist/react/video-player/components/with-lazy/index.d.ts.map b/packages/video-player/dist/react/video-player/components/with-lazy/index.d.ts.map similarity index 62% rename from dist/react/video-player/components/with-lazy/index.d.ts.map rename to packages/video-player/dist/react/video-player/components/with-lazy/index.d.ts.map index f289a2f..2317a9c 100644 --- a/dist/react/video-player/components/with-lazy/index.d.ts.map +++ b/packages/video-player/dist/react/video-player/components/with-lazy/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/react/video-player/components/with-lazy/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAI7D,MAAM,WAAW,yBAA0B,SAAQ,2BAA2B;IAC5E,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,QAAA,MAAM,QAAQ,GAAI,sCAKf,yBAAyB,4CA2D3B,CAAC;AAEF,eAAe,QAAQ,CAAC"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/react/video-player/components/with-lazy/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAK7D,MAAM,WAAW,yBAA0B,SAAQ,2BAA2B;IAC5E,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,QAAA,MAAM,QAAQ,GAAI,sCAKf,yBAAyB,4CA2D3B,CAAC;AAEF,eAAe,QAAQ,CAAC"} \ No newline at end of file diff --git a/dist/react/video-player/components/with-lazy/index.js b/packages/video-player/dist/react/video-player/components/with-lazy/index.js similarity index 100% rename from dist/react/video-player/components/with-lazy/index.js rename to packages/video-player/dist/react/video-player/components/with-lazy/index.js diff --git a/dist/react/video-player/components/with-lazy/index.js.map b/packages/video-player/dist/react/video-player/components/with-lazy/index.js.map similarity index 90% rename from dist/react/video-player/components/with-lazy/index.js.map rename to packages/video-player/dist/react/video-player/components/with-lazy/index.js.map index 63b7b84..a17b526 100644 --- a/dist/react/video-player/components/with-lazy/index.js.map +++ b/packages/video-player/dist/react/video-player/components/with-lazy/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/react/video-player/components/with-lazy/index.tsx"],"names":[],"mappings":";AAAA,OAAO,MAAM,MAAM,yBAAyB,CAAC;AAC7C,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAGxE,OAAO,eAAe,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAM5C,MAAM,QAAQ,GAAG,CAAC,EAChB,IAAI,GAAG,KAAK,EACZ,QAAQ,EACR,MAAM,EACN,GAAG,KAAK,EACkB,EAAE,EAAE;IAC9B,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE/C,MAAM,IAAI,GAAG,WAAW,CACtB,CAAC,MAAqB,EAAE,EAAE;QACxB,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,YAAY,CAAC,IAAI,CAAC,CAAC;YACnB,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC,EACD,CAAC,MAAM,EAAE,OAAO,CAAC,CAClB,CAAC;IAEF,uCAAuC;IACvC,MAAM,aAAa,GAAG,WAAW,CAC/B,QAAQ,CAAC,GAAG,EAAE;QACZ,OAAO,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC,EAAE,IAAI,CAAC,EAAE,2BAA2B;IACrC,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,mCAAmC;IACnC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,CAAC,KAAgC,EAAE,EAAE;QACrE,aAAa,CAAC,MAAM,EAAE,CAAC;QACvB,IAAI,KAAK,CAAC,cAAc,IAAI,CAAC,OAAO,EAAE,CAAC;YACrC,YAAY,CAAC,IAAI,CAAC,CAAC;YACnB,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,CAAC;aAAM,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,OAAO,EAAE,CAAC;YAC5C,aAAa,EAAE,CAAC;QAClB,CAAC;IACH,CAAC,EAAE,GAAG,CAAC,CAAC;IAER,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC;QACvC,MAAM,QAAQ,GAAG,IAAI,oBAAoB,CACvC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,EACpC;YACE,SAAS,EAAE,CAAC;SACb,CACF,CAAC;QAEF,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;YACtB,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC9B,CAAC;QAED,OAAO,GAAG,EAAE;YACV,IAAI,SAAS,EAAE,CAAC;gBACd,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAChC,CAAC;YACD,gBAAgB,CAAC,MAAM,EAAE,CAAC;QAC5B,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAC;IAE7B,OAAO,CACL,KAAC,eAAe,IAAC,SAAS,EAAE,MAAM,CAAC,UAAU,EAAE,YAAY,EAAE,YAAY,YACtE,OAAO,IAAI,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,CAAC,GAC9C,CACnB,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,QAAQ,CAAC"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/react/video-player/components/with-lazy/index.tsx"],"names":[],"mappings":";AAAA,OAAO,MAAM,MAAM,yBAAyB,CAAC;AAC7C,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAExE,OAAO,eAAe,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAO5C,MAAM,QAAQ,GAAG,CAAC,EAChB,IAAI,GAAG,KAAK,EACZ,QAAQ,EACR,MAAM,EACN,GAAG,KAAK,EACkB,EAAE,EAAE;IAC9B,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE/C,MAAM,IAAI,GAAG,WAAW,CACtB,CAAC,MAA4B,EAAE,EAAE;QAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,YAAY,CAAC,IAAI,CAAC,CAAC;YACnB,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC,EACD,CAAC,MAAM,EAAE,OAAO,CAAC,CAClB,CAAC;IAEF,uCAAuC;IACvC,MAAM,aAAa,GAAG,WAAW,CAC/B,QAAQ,CAAC,GAAG,EAAE;QACZ,OAAO,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC,EAAE,IAAI,CAAC,EAAE,2BAA2B;IACrC,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,mCAAmC;IACnC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,CAAC,KAAgC,EAAE,EAAE;QACrE,aAAa,CAAC,MAAM,EAAE,CAAC;QACvB,IAAI,KAAK,CAAC,cAAc,IAAI,CAAC,OAAO,EAAE,CAAC;YACrC,YAAY,CAAC,IAAI,CAAC,CAAC;YACnB,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,CAAC;aAAM,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,OAAO,EAAE,CAAC;YAC5C,aAAa,EAAE,CAAC;QAClB,CAAC;IACH,CAAC,EAAE,GAAG,CAAC,CAAC;IAER,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC;QACvC,MAAM,QAAQ,GAAG,IAAI,oBAAoB,CACvC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,EACpC;YACE,SAAS,EAAE,CAAC;SACb,CACF,CAAC;QAEF,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;YACtB,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC9B,CAAC;QAED,OAAO,GAAG,EAAE;YACV,IAAI,SAAS,EAAE,CAAC;gBACd,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAChC,CAAC;YACD,gBAAgB,CAAC,MAAM,EAAE,CAAC;QAC5B,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAC;IAE7B,OAAO,CACL,KAAC,eAAe,IAAC,SAAS,EAAE,MAAM,CAAC,UAAU,EAAE,YAAY,EAAE,YAAY,YACtE,OAAO,IAAI,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,CAAC,GAC9C,CACnB,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,QAAQ,CAAC"} \ No newline at end of file diff --git a/dist/react/video-player/components/with-lazy/with-lazy.module.scss b/packages/video-player/dist/react/video-player/components/with-lazy/with-lazy.module.scss similarity index 100% rename from dist/react/video-player/components/with-lazy/with-lazy.module.scss rename to packages/video-player/dist/react/video-player/components/with-lazy/with-lazy.module.scss diff --git a/dist/react/video-player/components/with-loader/index.d.ts b/packages/video-player/dist/react/video-player/components/with-loader/index.d.ts similarity index 100% rename from dist/react/video-player/components/with-loader/index.d.ts rename to packages/video-player/dist/react/video-player/components/with-loader/index.d.ts diff --git a/dist/react/video-player/components/with-loader/index.d.ts.map b/packages/video-player/dist/react/video-player/components/with-loader/index.d.ts.map similarity index 81% rename from dist/react/video-player/components/with-loader/index.d.ts.map rename to packages/video-player/dist/react/video-player/components/with-loader/index.d.ts.map index b2c87ca..35da4de 100644 --- a/dist/react/video-player/components/with-loader/index.d.ts.map +++ b/packages/video-player/dist/react/video-player/components/with-loader/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/react/video-player/components/with-loader/index.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAGzD,MAAM,WAAW,4BAChB,SAAQ,yBAAyB;IACjC,WAAW,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,QAAA,MAAM,WAAW,GAAI,8CAKlB,4BAA4B,4CAsB9B,CAAC;AAEF,eAAe,WAAW,CAAC"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/react/video-player/components/with-loader/index.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAGzD,MAAM,WAAW,4BAChB,SAAQ,yBAAyB;IACjC,WAAW,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,QAAA,MAAM,WAAW,GAAI,8CAKlB,4BAA4B,4CAsB9B,CAAC;AAEF,eAAe,WAAW,CAAC"} \ No newline at end of file diff --git a/dist/react/video-player/components/with-loader/index.js b/packages/video-player/dist/react/video-player/components/with-loader/index.js similarity index 100% rename from dist/react/video-player/components/with-loader/index.js rename to packages/video-player/dist/react/video-player/components/with-loader/index.js diff --git a/dist/react/video-player/components/with-loader/index.js.map b/packages/video-player/dist/react/video-player/components/with-loader/index.js.map similarity index 94% rename from dist/react/video-player/components/with-loader/index.js.map rename to packages/video-player/dist/react/video-player/components/with-loader/index.js.map index a960161..3b2c406 100644 --- a/dist/react/video-player/components/with-loader/index.js.map +++ b/packages/video-player/dist/react/video-player/components/with-loader/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/react/video-player/components/with-loader/index.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAIrD,OAAO,eAAe,MAAM,qBAAqB,CAAC;AAClD,OAAO,eAAe,MAAM,kCAAkC,CAAC;AAG/D,OAAO,MAAM,MAAM,2BAA2B,CAAC;AAO/C,MAAM,WAAW,GAAG,CAAC,EACpB,WAAW,GAAG,KAAK,EACnB,OAAO,EACP,QAAQ,EACR,GAAG,KAAK,EACsB,EAAE,EAAE;IAClC,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;IAEtD,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,MAAqB,EAAE,EAAE;QAC1D,MAAM,CAAC,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE;YAChC,YAAY,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACvB,YAAY,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;YACzB,YAAY,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACN,MAAC,eAAe,IAAC,SAAS,EAAE,KAAK,CAAC,SAAS,aACzC,WAAW,IAAI,OAAO,IAAI,KAAC,eAAe,IAAC,SAAS,EAAE,MAAM,CAAC,OAAO,GAAI,EACxE,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,IACjD,CAClB,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,WAAW,CAAC"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/react/video-player/components/with-loader/index.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAErD,OAAO,eAAe,MAAM,qBAAqB,CAAC;AAClD,OAAO,eAAe,MAAM,kCAAkC,CAAC;AAG/D,OAAO,MAAM,MAAM,2BAA2B,CAAC;AAO/C,MAAM,WAAW,GAAG,CAAC,EACpB,WAAW,GAAG,KAAK,EACnB,OAAO,EACP,QAAQ,EACR,GAAG,KAAK,EACsB,EAAE,EAAE;IAClC,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;IAEtD,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,MAAqB,EAAE,EAAE;QAC1D,MAAM,CAAC,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE;YAChC,YAAY,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACvB,YAAY,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;YACzB,YAAY,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACN,MAAC,eAAe,IAAC,SAAS,EAAE,KAAK,CAAC,SAAS,aACzC,WAAW,IAAI,OAAO,IAAI,KAAC,eAAe,IAAC,SAAS,EAAE,MAAM,CAAC,OAAO,GAAI,EACxE,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,IACjD,CAClB,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,WAAW,CAAC"} \ No newline at end of file diff --git a/dist/react/video-player/components/with-loader/with-loader.module.scss b/packages/video-player/dist/react/video-player/components/with-loader/with-loader.module.scss similarity index 100% rename from dist/react/video-player/components/with-loader/with-loader.module.scss rename to packages/video-player/dist/react/video-player/components/with-loader/with-loader.module.scss diff --git a/dist/react/video-player/components/with-mouse-events/index.d.ts b/packages/video-player/dist/react/video-player/components/with-mouse-events/index.d.ts similarity index 57% rename from dist/react/video-player/components/with-mouse-events/index.d.ts rename to packages/video-player/dist/react/video-player/components/with-mouse-events/index.d.ts index 1a3b83a..f9d3761 100644 --- a/dist/react/video-player/components/with-mouse-events/index.d.ts +++ b/packages/video-player/dist/react/video-player/components/with-mouse-events/index.d.ts @@ -1,10 +1,9 @@ import type { JSX } from "react"; -import Player from "video.js/dist/types/player"; -import { IVideoJSProps } from "../video-js/types"; +import { IVideoJSProps, VideoJsPlayer } from "../video-js/types"; export interface IWithMouseEventsProps extends IVideoJSProps { - onClick?: (player: Player | null) => void; - onMouseLeave?: (player: Player | null) => void; - onMouseEnter?: (player: Player | null) => void; + onClick?: (player: VideoJsPlayer | null) => void; + onMouseLeave?: (player: VideoJsPlayer | null) => void; + onMouseEnter?: (player: VideoJsPlayer | null) => void; children: JSX.Element; } export declare const WithMouseEvents: ({ children, onMouseEnter, onMouseLeave, onClick, onReady, ...props }: IWithMouseEventsProps) => import("react/jsx-runtime").JSX.Element; diff --git a/packages/video-player/dist/react/video-player/components/with-mouse-events/index.d.ts.map b/packages/video-player/dist/react/video-player/components/with-mouse-events/index.d.ts.map new file mode 100644 index 0000000..7414f4b --- /dev/null +++ b/packages/video-player/dist/react/video-player/components/with-mouse-events/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/react/video-player/components/with-mouse-events/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAIjC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGjE,MAAM,WAAW,qBAAsB,SAAQ,aAAa;IAC3D,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,KAAK,IAAI,CAAC;IACjD,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,KAAK,IAAI,CAAC;IACtD,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,KAAK,IAAI,CAAC;IACtD,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;CACtB;AAED,eAAO,MAAM,eAAe,GAAI,sEAO7B,qBAAqB,4CAkEvB,CAAC"} \ No newline at end of file diff --git a/dist/react/video-player/components/with-mouse-events/index.js b/packages/video-player/dist/react/video-player/components/with-mouse-events/index.js similarity index 100% rename from dist/react/video-player/components/with-mouse-events/index.js rename to packages/video-player/dist/react/video-player/components/with-mouse-events/index.js diff --git a/dist/react/video-player/components/with-mouse-events/index.js.map b/packages/video-player/dist/react/video-player/components/with-mouse-events/index.js.map similarity index 96% rename from dist/react/video-player/components/with-mouse-events/index.js.map rename to packages/video-player/dist/react/video-player/components/with-mouse-events/index.js.map index 04fb7b4..947c9a5 100644 --- a/dist/react/video-player/components/with-mouse-events/index.js.map +++ b/packages/video-player/dist/react/video-player/components/with-mouse-events/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/react/video-player/components/with-mouse-events/index.tsx"],"names":[],"mappings":";AAEA,OAAO,KAAK,EAAE,EAAc,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAKzE,OAAO,MAAM,MAAM,iCAAiC,CAAC;AASrD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAC/B,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,OAAO,EACP,GAAG,KAAK,EACe,EAAE,EAAE;IAC3B,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAuB,IAAI,CAAC,CAAC;IACjE,MAAM,oBAAoB,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC,CAAC,2BAA2B;IAC7F,MAAM,YAAY,GAAG,MAAM,CAAU,KAAK,CAAC,CAAC,CAAC,2CAA2C;IAExF,MAAM,YAAY,GAAG,WAAW,CAC/B,CAAC,MAAqB,EAAE,EAAE;QACzB,SAAS,CAAC,MAAM,CAAC,CAAC;QAClB,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC,EAED,EAAE,CACF,CAAC;IAEF,oCAAoC;IACpC,MAAM,WAAW,GAAG,WAAW,CAC9B,CAAC,CAA6B,EAAE,EAAE;QACjC,IAAI,OAAO,EAAE,CAAC;YACb,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,CAAC,CAAC,eAAe,EAAE,CAAC;YAEpB,OAAO,CAAC,MAAM,CAAC,CAAC;QACjB,CAAC;IACF,CAAC,EACD,CAAC,OAAO,EAAE,MAAM,CAAC,CACjB,CAAC;IAEF,gCAAgC;IAChC,MAAM,gBAAgB,GAAG,WAAW,CAAC,GAAG,EAAE;QACzC,wCAAwC;QACxC,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;QAE5B,gCAAgC;QAChC,oBAAoB,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YAC9C,mDAAmD;YACnD,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;gBAC1B,YAAY,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;YACtC,CAAC;QACF,CAAC,EAAE,CAAC,CAAC,CAAC;IACP,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;IAE3B,sCAAsC;IACtC,MAAM,gBAAgB,GAAG,WAAW,CAAC,GAAG,EAAE;QACzC,wCAAwC;QACxC,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC;QAE7B,wDAAwD;QACxD,IAAI,oBAAoB,CAAC,OAAO,EAAE,CAAC;YAClC,YAAY,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;YAC3C,oBAAoB,CAAC,OAAO,GAAG,IAAI,CAAC;QACrC,CAAC;QAED,8CAA8C;QAC9C,YAAY,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;IAE3B,OAAO,CACN,cACC,SAAS,EAAE,MAAM,CAAC,SAAS,EAC3B,YAAY,EAAE,gBAAgB,EAC9B,YAAY,EAAE,gBAAgB,EAC9B,OAAO,EAAE,WAAW,YAEnB,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,GAC7D,CACN,CAAC;AACH,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/react/video-player/components/with-mouse-events/index.tsx"],"names":[],"mappings":";AAEA,OAAO,KAAK,EAAE,EAAc,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAGzE,OAAO,MAAM,MAAM,iCAAiC,CAAC;AASrD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAC/B,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,OAAO,EACP,GAAG,KAAK,EACe,EAAE,EAAE;IAC3B,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAuB,IAAI,CAAC,CAAC;IACjE,MAAM,oBAAoB,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC,CAAC,2BAA2B;IAC7F,MAAM,YAAY,GAAG,MAAM,CAAU,KAAK,CAAC,CAAC,CAAC,2CAA2C;IAExF,MAAM,YAAY,GAAG,WAAW,CAC/B,CAAC,MAAqB,EAAE,EAAE;QACzB,SAAS,CAAC,MAAM,CAAC,CAAC;QAClB,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC,EAED,EAAE,CACF,CAAC;IAEF,oCAAoC;IACpC,MAAM,WAAW,GAAG,WAAW,CAC9B,CAAC,CAA6B,EAAE,EAAE;QACjC,IAAI,OAAO,EAAE,CAAC;YACb,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,CAAC,CAAC,eAAe,EAAE,CAAC;YAEpB,OAAO,CAAC,MAAM,CAAC,CAAC;QACjB,CAAC;IACF,CAAC,EACD,CAAC,OAAO,EAAE,MAAM,CAAC,CACjB,CAAC;IAEF,gCAAgC;IAChC,MAAM,gBAAgB,GAAG,WAAW,CAAC,GAAG,EAAE;QACzC,wCAAwC;QACxC,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;QAE5B,gCAAgC;QAChC,oBAAoB,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YAC9C,mDAAmD;YACnD,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;gBAC1B,YAAY,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;YACtC,CAAC;QACF,CAAC,EAAE,CAAC,CAAC,CAAC;IACP,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;IAE3B,sCAAsC;IACtC,MAAM,gBAAgB,GAAG,WAAW,CAAC,GAAG,EAAE;QACzC,wCAAwC;QACxC,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC;QAE7B,wDAAwD;QACxD,IAAI,oBAAoB,CAAC,OAAO,EAAE,CAAC;YAClC,YAAY,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;YAC3C,oBAAoB,CAAC,OAAO,GAAG,IAAI,CAAC;QACrC,CAAC;QAED,8CAA8C;QAC9C,YAAY,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;IAE3B,OAAO,CACN,cACC,SAAS,EAAE,MAAM,CAAC,SAAS,EAC3B,YAAY,EAAE,gBAAgB,EAC9B,YAAY,EAAE,gBAAgB,EAC9B,OAAO,EAAE,WAAW,YAEnB,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,GAC7D,CACN,CAAC;AACH,CAAC,CAAC"} \ No newline at end of file diff --git a/dist/react/video-player/components/with-mouse-events/with-mouse-events.module.scss b/packages/video-player/dist/react/video-player/components/with-mouse-events/with-mouse-events.module.scss similarity index 100% rename from dist/react/video-player/components/with-mouse-events/with-mouse-events.module.scss rename to packages/video-player/dist/react/video-player/components/with-mouse-events/with-mouse-events.module.scss diff --git a/dist/react/video-player/components/with-observation/index.d.ts b/packages/video-player/dist/react/video-player/components/with-observation/index.d.ts similarity index 71% rename from dist/react/video-player/components/with-observation/index.d.ts rename to packages/video-player/dist/react/video-player/components/with-observation/index.d.ts index 6153620..f86ad1d 100644 --- a/dist/react/video-player/components/with-observation/index.d.ts +++ b/packages/video-player/dist/react/video-player/components/with-observation/index.d.ts @@ -1,9 +1,9 @@ import type { JSX } from "react"; -import Player from "video.js/dist/types/player"; +import { VideoJsPlayer } from "../video-js/types"; import { IWithMouseEventsProps } from "../with-mouse-events"; export interface IWithObservationProps extends IWithMouseEventsProps { - onShow?: (player: Player | null) => void; - onHide?: (player: Player | null) => void; + onShow?: (player: VideoJsPlayer | null) => void; + onHide?: (player: VideoJsPlayer | null) => void; children: JSX.Element; } export declare const WithObservation: ({ children, onShow, onHide, onReady, ...props }: IWithObservationProps) => import("react/jsx-runtime").JSX.Element; diff --git a/packages/video-player/dist/react/video-player/components/with-observation/index.d.ts.map b/packages/video-player/dist/react/video-player/components/with-observation/index.d.ts.map new file mode 100644 index 0000000..16bed97 --- /dev/null +++ b/packages/video-player/dist/react/video-player/components/with-observation/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/react/video-player/components/with-observation/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAMjC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAG7D,MAAM,WAAW,qBAAsB,SAAQ,qBAAqB;IACnE,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,KAAK,IAAI,CAAC;IAChD,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,KAAK,IAAI,CAAC;IAChD,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;CACtB;AAED,eAAO,MAAM,eAAe,GAAI,iDAM7B,qBAAqB,4CAsDvB,CAAC"} \ No newline at end of file diff --git a/dist/react/video-player/components/with-observation/index.js b/packages/video-player/dist/react/video-player/components/with-observation/index.js similarity index 100% rename from dist/react/video-player/components/with-observation/index.js rename to packages/video-player/dist/react/video-player/components/with-observation/index.js diff --git a/dist/react/video-player/components/with-observation/index.js.map b/packages/video-player/dist/react/video-player/components/with-observation/index.js.map similarity index 90% rename from dist/react/video-player/components/with-observation/index.js.map rename to packages/video-player/dist/react/video-player/components/with-observation/index.js.map index 1b1823d..5d8c70b 100644 --- a/dist/react/video-player/components/with-observation/index.js.map +++ b/packages/video-player/dist/react/video-player/components/with-observation/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/react/video-player/components/with-observation/index.tsx"],"names":[],"mappings":";AAEA,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAExE,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAKlC,OAAO,MAAM,MAAM,gCAAgC,CAAC;AAQpD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAC/B,QAAQ,EACR,MAAM,EACN,MAAM,EACN,OAAO,EACP,GAAG,KAAK,EACe,EAAE,EAAE;IAC3B,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,SAAS,GAAG,MAAM,CAAgB,IAAI,CAAC,CAAC;IAC9C,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAElD,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,MAAqB,EAAE,EAAE;QAC1D,SAAS,CAAC,OAAO,GAAG,MAAM,CAAC;QAC3B,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7B,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7B,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,mCAAmC;IACnC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,CAAC,KAAgC,EAAE,EAAE;QACtE,IAAI,KAAK,CAAC,cAAc,IAAI,CAAC,SAAS,EAAE,CAAC;YACxC,YAAY,CAAC,IAAI,CAAC,CAAC;YACnB,IAAI,EAAE,CAAC;QACR,CAAC;aAAM,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,SAAS,EAAE,CAAC;YAC/C,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,IAAI,EAAE,CAAC;QACR,CAAC;IACF,CAAC,EAAE,GAAG,CAAC,CAAC;IAER,SAAS,CAAC,GAAG,EAAE;QACd,MAAM,QAAQ,GAAG,IAAI,oBAAoB,CACxC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,EACpC;YACC,SAAS,EAAE,IAAI;SACf,CACD,CAAC;QAEF,IAAI,iBAAiB,CAAC,OAAO,EAAE,CAAC;YAC/B,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,GAAG,EAAE;YACX,IAAI,iBAAiB,CAAC,OAAO,EAAE,CAAC;gBAC/B,QAAQ,CAAC,SAAS,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAC/C,CAAC;YACD,gBAAgB,CAAC,MAAM,EAAE,CAAC;QAC3B,CAAC,CAAC;IACH,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAEvB,OAAO,CACN,cAAK,GAAG,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,YACtD,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,GAC7D,CACN,CAAC;AACH,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/react/video-player/components/with-observation/index.tsx"],"names":[],"mappings":";AAEA,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAExE,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAIlC,OAAO,MAAM,MAAM,gCAAgC,CAAC;AAQpD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAC/B,QAAQ,EACR,MAAM,EACN,MAAM,EACN,OAAO,EACP,GAAG,KAAK,EACe,EAAE,EAAE;IAC3B,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,SAAS,GAAG,MAAM,CAAuB,IAAI,CAAC,CAAC;IACrD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAElD,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,MAAqB,EAAE,EAAE;QAC1D,SAAS,CAAC,OAAO,GAAG,MAAM,CAAC;QAC3B,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7B,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7B,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,mCAAmC;IACnC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,CAAC,KAAgC,EAAE,EAAE;QACtE,IAAI,KAAK,CAAC,cAAc,IAAI,CAAC,SAAS,EAAE,CAAC;YACxC,YAAY,CAAC,IAAI,CAAC,CAAC;YACnB,IAAI,EAAE,CAAC;QACR,CAAC;aAAM,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,SAAS,EAAE,CAAC;YAC/C,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,IAAI,EAAE,CAAC;QACR,CAAC;IACF,CAAC,EAAE,GAAG,CAAC,CAAC;IAER,SAAS,CAAC,GAAG,EAAE;QACd,MAAM,QAAQ,GAAG,IAAI,oBAAoB,CACxC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,EACpC;YACC,SAAS,EAAE,IAAI;SACf,CACD,CAAC;QAEF,IAAI,iBAAiB,CAAC,OAAO,EAAE,CAAC;YAC/B,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,GAAG,EAAE;YACX,IAAI,iBAAiB,CAAC,OAAO,EAAE,CAAC;gBAC/B,QAAQ,CAAC,SAAS,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAC/C,CAAC;YACD,gBAAgB,CAAC,MAAM,EAAE,CAAC;QAC3B,CAAC,CAAC;IACH,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAEvB,OAAO,CACN,cAAK,GAAG,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,YACtD,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,GAC7D,CACN,CAAC;AACH,CAAC,CAAC"} \ No newline at end of file diff --git a/dist/react/video-player/components/with-observation/with-observation.module.scss b/packages/video-player/dist/react/video-player/components/with-observation/with-observation.module.scss similarity index 100% rename from dist/react/video-player/components/with-observation/with-observation.module.scss rename to packages/video-player/dist/react/video-player/components/with-observation/with-observation.module.scss diff --git a/dist/react/video-player/components/with-processing/index.d.ts b/packages/video-player/dist/react/video-player/components/with-processing/index.d.ts similarity index 100% rename from dist/react/video-player/components/with-processing/index.d.ts rename to packages/video-player/dist/react/video-player/components/with-processing/index.d.ts diff --git a/dist/react/video-player/components/with-processing/index.d.ts.map b/packages/video-player/dist/react/video-player/components/with-processing/index.d.ts.map similarity index 100% rename from dist/react/video-player/components/with-processing/index.d.ts.map rename to packages/video-player/dist/react/video-player/components/with-processing/index.d.ts.map diff --git a/dist/react/video-player/components/with-processing/index.js b/packages/video-player/dist/react/video-player/components/with-processing/index.js similarity index 100% rename from dist/react/video-player/components/with-processing/index.js rename to packages/video-player/dist/react/video-player/components/with-processing/index.js diff --git a/dist/react/video-player/components/with-processing/index.js.map b/packages/video-player/dist/react/video-player/components/with-processing/index.js.map similarity index 100% rename from dist/react/video-player/components/with-processing/index.js.map rename to packages/video-player/dist/react/video-player/components/with-processing/index.js.map diff --git a/dist/react/video-player/components/with-processing/video-processing/index.d.ts b/packages/video-player/dist/react/video-player/components/with-processing/video-processing/index.d.ts similarity index 100% rename from dist/react/video-player/components/with-processing/video-processing/index.d.ts rename to packages/video-player/dist/react/video-player/components/with-processing/video-processing/index.d.ts diff --git a/dist/react/video-player/components/with-processing/video-processing/index.d.ts.map b/packages/video-player/dist/react/video-player/components/with-processing/video-processing/index.d.ts.map similarity index 100% rename from dist/react/video-player/components/with-processing/video-processing/index.d.ts.map rename to packages/video-player/dist/react/video-player/components/with-processing/video-processing/index.d.ts.map diff --git a/dist/react/video-player/components/with-processing/video-processing/index.js b/packages/video-player/dist/react/video-player/components/with-processing/video-processing/index.js similarity index 100% rename from dist/react/video-player/components/with-processing/video-processing/index.js rename to packages/video-player/dist/react/video-player/components/with-processing/video-processing/index.js diff --git a/dist/react/video-player/components/with-processing/video-processing/index.js.map b/packages/video-player/dist/react/video-player/components/with-processing/video-processing/index.js.map similarity index 100% rename from dist/react/video-player/components/with-processing/video-processing/index.js.map rename to packages/video-player/dist/react/video-player/components/with-processing/video-processing/index.js.map diff --git a/dist/react/video-player/components/with-processing/video-processing/video-processing.module.scss b/packages/video-player/dist/react/video-player/components/with-processing/video-processing/video-processing.module.scss similarity index 100% rename from dist/react/video-player/components/with-processing/video-processing/video-processing.module.scss rename to packages/video-player/dist/react/video-player/components/with-processing/video-processing/video-processing.module.scss diff --git a/dist/react/video-player/components/with-processing/with-processing.module.scss b/packages/video-player/dist/react/video-player/components/with-processing/with-processing.module.scss similarity index 100% rename from dist/react/video-player/components/with-processing/with-processing.module.scss rename to packages/video-player/dist/react/video-player/components/with-processing/with-processing.module.scss diff --git a/dist/react/video-player/index.d.ts b/packages/video-player/dist/react/video-player/index.d.ts similarity index 100% rename from dist/react/video-player/index.d.ts rename to packages/video-player/dist/react/video-player/index.d.ts diff --git a/dist/react/video-player/index.d.ts.map b/packages/video-player/dist/react/video-player/index.d.ts.map similarity index 100% rename from dist/react/video-player/index.d.ts.map rename to packages/video-player/dist/react/video-player/index.d.ts.map diff --git a/dist/react/video-player/index.js b/packages/video-player/dist/react/video-player/index.js similarity index 100% rename from dist/react/video-player/index.js rename to packages/video-player/dist/react/video-player/index.js diff --git a/dist/react/video-player/index.js.map b/packages/video-player/dist/react/video-player/index.js.map similarity index 100% rename from dist/react/video-player/index.js.map rename to packages/video-player/dist/react/video-player/index.js.map diff --git a/dist/react/video-player/shared/math.d.ts b/packages/video-player/dist/react/video-player/shared/math.d.ts similarity index 100% rename from dist/react/video-player/shared/math.d.ts rename to packages/video-player/dist/react/video-player/shared/math.d.ts diff --git a/dist/react/video-player/shared/math.d.ts.map b/packages/video-player/dist/react/video-player/shared/math.d.ts.map similarity index 100% rename from dist/react/video-player/shared/math.d.ts.map rename to packages/video-player/dist/react/video-player/shared/math.d.ts.map diff --git a/dist/react/video-player/shared/math.js b/packages/video-player/dist/react/video-player/shared/math.js similarity index 100% rename from dist/react/video-player/shared/math.js rename to packages/video-player/dist/react/video-player/shared/math.js diff --git a/dist/react/video-player/shared/math.js.map b/packages/video-player/dist/react/video-player/shared/math.js.map similarity index 100% rename from dist/react/video-player/shared/math.js.map rename to packages/video-player/dist/react/video-player/shared/math.js.map diff --git a/dist/react/video-player/shared/types.d.ts b/packages/video-player/dist/react/video-player/shared/types.d.ts similarity index 100% rename from dist/react/video-player/shared/types.d.ts rename to packages/video-player/dist/react/video-player/shared/types.d.ts diff --git a/dist/react/video-player/shared/types.d.ts.map b/packages/video-player/dist/react/video-player/shared/types.d.ts.map similarity index 100% rename from dist/react/video-player/shared/types.d.ts.map rename to packages/video-player/dist/react/video-player/shared/types.d.ts.map diff --git a/dist/react/video-player/shared/types.js b/packages/video-player/dist/react/video-player/shared/types.js similarity index 100% rename from dist/react/video-player/shared/types.js rename to packages/video-player/dist/react/video-player/shared/types.js diff --git a/dist/react/video-player/shared/types.js.map b/packages/video-player/dist/react/video-player/shared/types.js.map similarity index 100% rename from dist/react/video-player/shared/types.js.map rename to packages/video-player/dist/react/video-player/shared/types.js.map diff --git a/dist/react/video-player/shared/ui/content-skeleton.d.ts b/packages/video-player/dist/react/video-player/shared/ui/content-skeleton.d.ts similarity index 100% rename from dist/react/video-player/shared/ui/content-skeleton.d.ts rename to packages/video-player/dist/react/video-player/shared/ui/content-skeleton.d.ts diff --git a/dist/react/video-player/shared/ui/content-skeleton.d.ts.map b/packages/video-player/dist/react/video-player/shared/ui/content-skeleton.d.ts.map similarity index 100% rename from dist/react/video-player/shared/ui/content-skeleton.d.ts.map rename to packages/video-player/dist/react/video-player/shared/ui/content-skeleton.d.ts.map diff --git a/dist/react/video-player/shared/ui/content-skeleton.js b/packages/video-player/dist/react/video-player/shared/ui/content-skeleton.js similarity index 100% rename from dist/react/video-player/shared/ui/content-skeleton.js rename to packages/video-player/dist/react/video-player/shared/ui/content-skeleton.js diff --git a/dist/react/video-player/shared/ui/content-skeleton.js.map b/packages/video-player/dist/react/video-player/shared/ui/content-skeleton.js.map similarity index 100% rename from dist/react/video-player/shared/ui/content-skeleton.js.map rename to packages/video-player/dist/react/video-player/shared/ui/content-skeleton.js.map diff --git a/dist/react/video-player/tach-video-js.css b/packages/video-player/dist/react/video-player/tach-video-js.css similarity index 100% rename from dist/react/video-player/tach-video-js.css rename to packages/video-player/dist/react/video-player/tach-video-js.css diff --git a/dist/react/video-player/video-player.d.ts b/packages/video-player/dist/react/video-player/video-player.d.ts similarity index 100% rename from dist/react/video-player/video-player.d.ts rename to packages/video-player/dist/react/video-player/video-player.d.ts diff --git a/dist/react/video-player/video-player.d.ts.map b/packages/video-player/dist/react/video-player/video-player.d.ts.map similarity index 100% rename from dist/react/video-player/video-player.d.ts.map rename to packages/video-player/dist/react/video-player/video-player.d.ts.map diff --git a/dist/react/video-player/video-player.js b/packages/video-player/dist/react/video-player/video-player.js similarity index 100% rename from dist/react/video-player/video-player.js rename to packages/video-player/dist/react/video-player/video-player.js diff --git a/dist/react/video-player/video-player.js.map b/packages/video-player/dist/react/video-player/video-player.js.map similarity index 100% rename from dist/react/video-player/video-player.js.map rename to packages/video-player/dist/react/video-player/video-player.js.map diff --git a/dist/react/video-player/video.module.scss b/packages/video-player/dist/react/video-player/video.module.scss similarity index 100% rename from dist/react/video-player/video.module.scss rename to packages/video-player/dist/react/video-player/video.module.scss diff --git a/packages/video-player/package.json b/packages/video-player/package.json new file mode 100644 index 0000000..dc5364c --- /dev/null +++ b/packages/video-player/package.json @@ -0,0 +1,112 @@ +{ + "name": "@hublib-web/video-player", + "version": "0.1.0", + "description": "Cross-framework video player package for React and Angular", + "license": "MIT", + "type": "module", + "main": "./dist/core/index.js", + "module": "./dist/core/index.js", + "types": "./dist/core/index.d.ts", + "sideEffects": true, + "files": [ + "dist", + "README.md" + ], + "typesVersions": { + "*": { + "react": [ + "dist/react/index.d.ts" + ], + "angular": [ + "dist/angular/index.d.ts" + ], + "core": [ + "dist/core/index.d.ts" + ] + } + }, + "exports": { + ".": { + "types": "./dist/core/index.d.ts", + "import": "./dist/core/index.js", + "default": "./dist/core/index.js" + }, + "./core": { + "types": "./dist/core/index.d.ts", + "import": "./dist/core/index.js", + "default": "./dist/core/index.js" + }, + "./react": { + "types": "./dist/react/index.d.ts", + "import": "./dist/react/index.js", + "default": "./dist/react/index.js" + }, + "./angular": { + "types": "./dist/angular/index.d.ts", + "import": "./dist/angular/index.js", + "default": "./dist/angular/index.js" + } + }, + "scripts": { + "build": "yarn clean && node ./scripts/build.mjs", + "clean": "rm -rf dist storybook-static", + "typecheck": "tsc -p ./tsconfig.json --noEmit", + "test": "vitest run --passWithNoTests", + "lint": "eslint src stories --ext .ts,.tsx", + "storybook": "storybook dev -p 6006", + "storybook:build": "storybook build" + }, + "dependencies": { + "@ant-design/icons": "5.3.7", + "antd": "5.29.3", + "classnames": "2.5.1", + "hls.js": "1.6.14", + "lodash": "4.17.21", + "react-device-detect": "2.2.3", + "video.js": "8.23.4" + }, + "peerDependencies": { + "@angular/common": "^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0", + "@angular/core": "^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0", + "@angular/forms": "^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@angular/common": { + "optional": true + }, + "@angular/core": { + "optional": true + }, + "@angular/forms": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + }, + "devDependencies": { + "@storybook/addon-essentials": "8.6.14", + "@storybook/react": "8.6.14", + "@storybook/react-vite": "8.6.14", + "@testing-library/dom": "^10.4.1", + "@testing-library/jest-dom": "^6.9.1", + "@testing-library/react": "^16.3.0", + "@types/node": "22.12.0", + "@types/react": "19.0.2", + "@types/react-dom": "19.0.2", + "eslint": "^9.37.0", + "jsdom": "^22.1.0", + "react": "19.0.0", + "react-dom": "19.0.0", + "sass": "1.83.4", + "storybook": "8.6.14", + "typescript": "5.9.3", + "vite": "6.4.1", + "vitest": "^3.2.4" + } +} diff --git a/scripts/build.mjs b/packages/video-player/scripts/build.mjs similarity index 100% rename from scripts/build.mjs rename to packages/video-player/scripts/build.mjs diff --git a/src/angular/index.ts b/packages/video-player/src/angular/index.ts similarity index 100% rename from src/angular/index.ts rename to packages/video-player/src/angular/index.ts diff --git a/src/core/engine-selector.ts b/packages/video-player/src/core/engine-selector.ts similarity index 100% rename from src/core/engine-selector.ts rename to packages/video-player/src/core/engine-selector.ts diff --git a/src/core/format-time.ts b/packages/video-player/src/core/format-time.ts similarity index 100% rename from src/core/format-time.ts rename to packages/video-player/src/core/format-time.ts diff --git a/src/core/index.ts b/packages/video-player/src/core/index.ts similarity index 100% rename from src/core/index.ts rename to packages/video-player/src/core/index.ts diff --git a/src/core/player-runtime.ts b/packages/video-player/src/core/player-runtime.ts similarity index 100% rename from src/core/player-runtime.ts rename to packages/video-player/src/core/player-runtime.ts diff --git a/src/core/plugins/big-play-pause-button.ts b/packages/video-player/src/core/plugins/big-play-pause-button.ts similarity index 100% rename from src/core/plugins/big-play-pause-button.ts rename to packages/video-player/src/core/plugins/big-play-pause-button.ts diff --git a/src/core/plugins/register.ts b/packages/video-player/src/core/plugins/register.ts similarity index 100% rename from src/core/plugins/register.ts rename to packages/video-player/src/core/plugins/register.ts diff --git a/src/core/plugins/settings/components/tach-video-menu-button/index.ts b/packages/video-player/src/core/plugins/settings/components/tach-video-menu-button/index.ts similarity index 100% rename from src/core/plugins/settings/components/tach-video-menu-button/index.ts rename to packages/video-player/src/core/plugins/settings/components/tach-video-menu-button/index.ts diff --git a/src/core/plugins/settings/components/tach-video-menu-item/index.ts b/packages/video-player/src/core/plugins/settings/components/tach-video-menu-item/index.ts similarity index 100% rename from src/core/plugins/settings/components/tach-video-menu-item/index.ts rename to packages/video-player/src/core/plugins/settings/components/tach-video-menu-item/index.ts diff --git a/src/core/plugins/settings/components/tach-video-menu/index.ts b/packages/video-player/src/core/plugins/settings/components/tach-video-menu/index.ts similarity index 100% rename from src/core/plugins/settings/components/tach-video-menu/index.ts rename to packages/video-player/src/core/plugins/settings/components/tach-video-menu/index.ts diff --git a/src/core/plugins/settings/index.ts b/packages/video-player/src/core/plugins/settings/index.ts similarity index 100% rename from src/core/plugins/settings/index.ts rename to packages/video-player/src/core/plugins/settings/index.ts diff --git a/src/core/plugins/settings/selectors/audio-track-selector/index.ts b/packages/video-player/src/core/plugins/settings/selectors/audio-track-selector/index.ts similarity index 100% rename from src/core/plugins/settings/selectors/audio-track-selector/index.ts rename to packages/video-player/src/core/plugins/settings/selectors/audio-track-selector/index.ts diff --git a/src/core/plugins/settings/selectors/playback-rate-selector/index.ts b/packages/video-player/src/core/plugins/settings/selectors/playback-rate-selector/index.ts similarity index 100% rename from src/core/plugins/settings/selectors/playback-rate-selector/index.ts rename to packages/video-player/src/core/plugins/settings/selectors/playback-rate-selector/index.ts diff --git a/src/core/plugins/settings/selectors/quality-rate-selector/index.ts b/packages/video-player/src/core/plugins/settings/selectors/quality-rate-selector/index.ts similarity index 100% rename from src/core/plugins/settings/selectors/quality-rate-selector/index.ts rename to packages/video-player/src/core/plugins/settings/selectors/quality-rate-selector/index.ts diff --git a/src/core/plugins/settings/selectors/text-track-selector/index.ts b/packages/video-player/src/core/plugins/settings/selectors/text-track-selector/index.ts similarity index 100% rename from src/core/plugins/settings/selectors/text-track-selector/index.ts rename to packages/video-player/src/core/plugins/settings/selectors/text-track-selector/index.ts diff --git a/src/core/plugins/settings/settings.css b/packages/video-player/src/core/plugins/settings/settings.css similarity index 100% rename from src/core/plugins/settings/settings.css rename to packages/video-player/src/core/plugins/settings/settings.css diff --git a/src/core/plugins/settings/types.ts b/packages/video-player/src/core/plugins/settings/types.ts similarity index 100% rename from src/core/plugins/settings/types.ts rename to packages/video-player/src/core/plugins/settings/types.ts diff --git a/src/core/plugins/skip-buttons.css b/packages/video-player/src/core/plugins/skip-buttons.css similarity index 100% rename from src/core/plugins/skip-buttons.css rename to packages/video-player/src/core/plugins/skip-buttons.css diff --git a/src/core/plugins/skip-buttons.ts b/packages/video-player/src/core/plugins/skip-buttons.ts similarity index 100% rename from src/core/plugins/skip-buttons.ts rename to packages/video-player/src/core/plugins/skip-buttons.ts diff --git a/src/core/token-provider.ts b/packages/video-player/src/core/token-provider.ts similarity index 100% rename from src/core/token-provider.ts rename to packages/video-player/src/core/token-provider.ts diff --git a/src/react/index.ts b/packages/video-player/src/react/index.ts similarity index 100% rename from src/react/index.ts rename to packages/video-player/src/react/index.ts diff --git a/src/react/video-player/components/player-extension/index.tsx b/packages/video-player/src/react/video-player/components/player-extension/index.tsx similarity index 100% rename from src/react/video-player/components/player-extension/index.tsx rename to packages/video-player/src/react/video-player/components/player-extension/index.tsx diff --git a/src/react/video-player/components/video-js/__tests__/hls-or-videojs-player.test.tsx b/packages/video-player/src/react/video-player/components/video-js/__tests__/hls-or-videojs-player.test.tsx similarity index 98% rename from src/react/video-player/components/video-js/__tests__/hls-or-videojs-player.test.tsx rename to packages/video-player/src/react/video-player/components/video-js/__tests__/hls-or-videojs-player.test.tsx index 19df28d..f9b6a23 100644 --- a/src/react/video-player/components/video-js/__tests__/hls-or-videojs-player.test.tsx +++ b/packages/video-player/src/react/video-player/components/video-js/__tests__/hls-or-videojs-player.test.tsx @@ -14,9 +14,9 @@ vi.mock("../plugins/settings", () => ({})); vi.mock("../plugins/big-play-pause-button", () => ({})); vi.mock("../plugins/skip-buttons", () => ({})); -vi.mock("@tach/video-player/core", async () => { - const actual = await vi.importActual( - "@tach/video-player/core", +vi.mock("@hublib-web/video-player/core", async () => { + const actual = await vi.importActual( + "@hublib-web/video-player/core", ); return { diff --git a/src/react/video-player/components/video-js/default.css b/packages/video-player/src/react/video-player/components/video-js/default.css similarity index 100% rename from src/react/video-player/components/video-js/default.css rename to packages/video-player/src/react/video-player/components/video-js/default.css diff --git a/src/react/video-player/components/video-js/hls-or-videojs-player.tsx b/packages/video-player/src/react/video-player/components/video-js/hls-or-videojs-player.tsx similarity index 100% rename from src/react/video-player/components/video-js/hls-or-videojs-player.tsx rename to packages/video-player/src/react/video-player/components/video-js/hls-or-videojs-player.tsx diff --git a/src/react/video-player/components/video-js/index.tsx b/packages/video-player/src/react/video-player/components/video-js/index.tsx similarity index 100% rename from src/react/video-player/components/video-js/index.tsx rename to packages/video-player/src/react/video-player/components/video-js/index.tsx diff --git a/src/react/video-player/components/video-js/plugins/big-play-pause-button/index.ts b/packages/video-player/src/react/video-player/components/video-js/plugins/big-play-pause-button/index.ts similarity index 100% rename from src/react/video-player/components/video-js/plugins/big-play-pause-button/index.ts rename to packages/video-player/src/react/video-player/components/video-js/plugins/big-play-pause-button/index.ts diff --git a/src/react/video-player/components/video-js/plugins/components/tach-video-menu-button/index.ts b/packages/video-player/src/react/video-player/components/video-js/plugins/components/tach-video-menu-button/index.ts similarity index 100% rename from src/react/video-player/components/video-js/plugins/components/tach-video-menu-button/index.ts rename to packages/video-player/src/react/video-player/components/video-js/plugins/components/tach-video-menu-button/index.ts diff --git a/src/react/video-player/components/video-js/plugins/components/tach-video-menu-item/index.ts b/packages/video-player/src/react/video-player/components/video-js/plugins/components/tach-video-menu-item/index.ts similarity index 100% rename from src/react/video-player/components/video-js/plugins/components/tach-video-menu-item/index.ts rename to packages/video-player/src/react/video-player/components/video-js/plugins/components/tach-video-menu-item/index.ts diff --git a/src/react/video-player/components/video-js/plugins/components/tach-video-menu/index.ts b/packages/video-player/src/react/video-player/components/video-js/plugins/components/tach-video-menu/index.ts similarity index 100% rename from src/react/video-player/components/video-js/plugins/components/tach-video-menu/index.ts rename to packages/video-player/src/react/video-player/components/video-js/plugins/components/tach-video-menu/index.ts diff --git a/src/react/video-player/components/video-js/plugins/settings/index.ts b/packages/video-player/src/react/video-player/components/video-js/plugins/settings/index.ts similarity index 98% rename from src/react/video-player/components/video-js/plugins/settings/index.ts rename to packages/video-player/src/react/video-player/components/video-js/plugins/settings/index.ts index d95267e..66cc4a1 100644 --- a/src/react/video-player/components/video-js/plugins/settings/index.ts +++ b/packages/video-player/src/react/video-player/components/video-js/plugins/settings/index.ts @@ -15,15 +15,13 @@ import textTracksSelector from "./selectors/text-track-selector"; import "./settings.css"; -import { VideoJsPlayer } from "../../types"; - // Интерфейс опций плагина (расширяем по необходимости) interface SettingsButtonOptions { // например, customLabel?: string; } // Интерфейс плеера с controlBar -interface PlayerWithControlBar extends VideoJsPlayer { +interface PlayerWithControlBar extends Player { controlBar: Component; } diff --git a/src/react/video-player/components/video-js/plugins/settings/selectors/audio-track-selector/index.ts b/packages/video-player/src/react/video-player/components/video-js/plugins/settings/selectors/audio-track-selector/index.ts similarity index 100% rename from src/react/video-player/components/video-js/plugins/settings/selectors/audio-track-selector/index.ts rename to packages/video-player/src/react/video-player/components/video-js/plugins/settings/selectors/audio-track-selector/index.ts diff --git a/src/react/video-player/components/video-js/plugins/settings/selectors/playback-rate-selector/index.ts b/packages/video-player/src/react/video-player/components/video-js/plugins/settings/selectors/playback-rate-selector/index.ts similarity index 100% rename from src/react/video-player/components/video-js/plugins/settings/selectors/playback-rate-selector/index.ts rename to packages/video-player/src/react/video-player/components/video-js/plugins/settings/selectors/playback-rate-selector/index.ts diff --git a/src/react/video-player/components/video-js/plugins/settings/selectors/quality-rate-selector/index.ts b/packages/video-player/src/react/video-player/components/video-js/plugins/settings/selectors/quality-rate-selector/index.ts similarity index 100% rename from src/react/video-player/components/video-js/plugins/settings/selectors/quality-rate-selector/index.ts rename to packages/video-player/src/react/video-player/components/video-js/plugins/settings/selectors/quality-rate-selector/index.ts diff --git a/src/react/video-player/components/video-js/plugins/settings/selectors/text-track-selector/index.ts b/packages/video-player/src/react/video-player/components/video-js/plugins/settings/selectors/text-track-selector/index.ts similarity index 61% rename from src/react/video-player/components/video-js/plugins/settings/selectors/text-track-selector/index.ts rename to packages/video-player/src/react/video-player/components/video-js/plugins/settings/selectors/text-track-selector/index.ts index a15d478..a65e3da 100644 --- a/src/react/video-player/components/video-js/plugins/settings/selectors/text-track-selector/index.ts +++ b/packages/video-player/src/react/video-player/components/video-js/plugins/settings/selectors/text-track-selector/index.ts @@ -1,5 +1,5 @@ -import { VideoJsPlayer } from "../../../../types"; import { TachPlayerMenuItemOptions } from "../../../types"; +import { VideoJsTextTrackList } from "../../../../types"; const defaults = { label: "Субтитры", @@ -9,9 +9,12 @@ const defaults = { }; interface QualityMenuOptions extends TachPlayerMenuItemOptions {} +interface ITextTrackPlayer { + textTracks: () => VideoJsTextTrackList; +} const textTracks = ( - player: VideoJsPlayer, + player: ITextTrackPlayer, options: QualityMenuOptions = defaults, ) => { const menuItems = () => { @@ -19,15 +22,16 @@ const textTracks = ( const trackItems = []; for (let i = 0; i < textTracks?.length; ++i) { - if (textTracks[i].mode === "hidden") { + const track = textTracks[i]; + if (!track || track.mode === "hidden") { continue; } const trackItem = { - label: textTracks[i].label, - value: textTracks[i].label, - selected: textTracks[i].mode === "showing", - onClick: () => setTrack(textTracks[i]), + label: track.label, + value: track.label, + selected: track.mode === "showing", + onClick: () => setTrack(track), }; trackItems.push(trackItem); @@ -40,12 +44,13 @@ const textTracks = ( const textTracks = player.textTracks().tracks_; for (let i = 0; i < textTracks?.length; ++i) { - if (textTracks[i].mode === "hidden") { + const currentTrack = textTracks[i]; + if (!currentTrack || currentTrack.mode === "hidden") { continue; } - if (textTracks[i].label === track.label) textTracks[i].mode = "showing"; - else textTracks[i].mode = "disabled"; + if (currentTrack.label === track.label) currentTrack.mode = "showing"; + else currentTrack.mode = "disabled"; } }; diff --git a/src/react/video-player/components/video-js/plugins/settings/settings.css b/packages/video-player/src/react/video-player/components/video-js/plugins/settings/settings.css similarity index 100% rename from src/react/video-player/components/video-js/plugins/settings/settings.css rename to packages/video-player/src/react/video-player/components/video-js/plugins/settings/settings.css diff --git a/src/react/video-player/components/video-js/plugins/skip-buttons/index.tsx b/packages/video-player/src/react/video-player/components/video-js/plugins/skip-buttons/index.tsx similarity index 96% rename from src/react/video-player/components/video-js/plugins/skip-buttons/index.tsx rename to packages/video-player/src/react/video-player/components/video-js/plugins/skip-buttons/index.tsx index 7f44767..84db08a 100644 --- a/src/react/video-player/components/video-js/plugins/skip-buttons/index.tsx +++ b/packages/video-player/src/react/video-player/components/video-js/plugins/skip-buttons/index.tsx @@ -11,7 +11,6 @@ import ForwardSvg from "./skip-forward.svg"; import "./skip-buttons.css"; import { numWord } from "../../../../shared/math"; -import { VideoJsPlayer } from "../../types"; // Опции плагина export interface SkipButtonsOptions { @@ -173,7 +172,7 @@ const skipButtonsPlugin = function (this: Player, options: SkipButtonsOptions) { if (isEditable) return; if (e.key === " " || e.code === "Space") { - (player.el() as unknown as VideoJsPlayer)?.focus(); + (player.el() as HTMLElement | null)?.focus(); e.preventDefault(); if (player.paused()) player.play(); else player.pause(); @@ -181,11 +180,11 @@ const skipButtonsPlugin = function (this: Player, options: SkipButtonsOptions) { } if (e.key === "ArrowRight") { - (player.el() as unknown as VideoJsPlayer)?.focus(); + (player.el() as HTMLElement | null)?.focus(); e.preventDefault(); triggerSkipClick("forward"); } else if (e.key === "ArrowLeft") { - (player.el() as unknown as VideoJsPlayer)?.focus(); + (player.el() as HTMLElement | null)?.focus(); e.preventDefault(); triggerSkipClick("backward"); } diff --git a/src/react/video-player/components/video-js/plugins/skip-buttons/skip-backward.svg b/packages/video-player/src/react/video-player/components/video-js/plugins/skip-buttons/skip-backward.svg similarity index 100% rename from src/react/video-player/components/video-js/plugins/skip-buttons/skip-backward.svg rename to packages/video-player/src/react/video-player/components/video-js/plugins/skip-buttons/skip-backward.svg diff --git a/src/react/video-player/components/video-js/plugins/skip-buttons/skip-buttons.css b/packages/video-player/src/react/video-player/components/video-js/plugins/skip-buttons/skip-buttons.css similarity index 100% rename from src/react/video-player/components/video-js/plugins/skip-buttons/skip-buttons.css rename to packages/video-player/src/react/video-player/components/video-js/plugins/skip-buttons/skip-buttons.css diff --git a/src/react/video-player/components/video-js/plugins/skip-buttons/skip-forward.svg b/packages/video-player/src/react/video-player/components/video-js/plugins/skip-buttons/skip-forward.svg similarity index 100% rename from src/react/video-player/components/video-js/plugins/skip-buttons/skip-forward.svg rename to packages/video-player/src/react/video-player/components/video-js/plugins/skip-buttons/skip-forward.svg diff --git a/src/react/video-player/components/video-js/plugins/types/index.ts b/packages/video-player/src/react/video-player/components/video-js/plugins/types/index.ts similarity index 100% rename from src/react/video-player/components/video-js/plugins/types/index.ts rename to packages/video-player/src/react/video-player/components/video-js/plugins/types/index.ts diff --git a/packages/video-player/src/react/video-player/components/video-js/types.ts b/packages/video-player/src/react/video-player/components/video-js/types.ts new file mode 100644 index 0000000..3c08b49 --- /dev/null +++ b/packages/video-player/src/react/video-player/components/video-js/types.ts @@ -0,0 +1,118 @@ +import { SkipButtonsOptions } from "./plugins/skip-buttons"; + +export interface IVideoJSSource { + src: string; + type: string; +} + +export type PreloadType = "auto" | "metadata" | "none" | "visibility"; + +export interface IVideoJSOptions { + autoplay: boolean; + controls: boolean; + responsive: boolean; + aspectRatio?: string; + preload: PreloadType; + fluid: boolean; + muted: boolean; + sources: IVideoJSSource[]; + poster?: string; + preferHQ?: boolean; + /** Включить детальное логирование */ + debug?: boolean; +} + +export interface IVideoJSProps { + options: IVideoJSOptions; + onReady?: (player: VideoJsPlayer) => void; + className?: string; + classNames?: string[]; + initialTime?: number; + full?: boolean; + withRewind?: boolean; +} + +export interface VideoJsLiveTracker { + isLive_: boolean; + atLiveEdge?: () => boolean; + startTracking: () => void; + trigger: (event: string) => void; +} + +export type VideoJsEventArgument = + | string + | number + | boolean + | null + | undefined + | object; + +export type VideoJsEventHandler = (...args: VideoJsEventArgument[]) => void; + +export interface VideoJsSegmentInfo { + sn?: number; + level?: number; + duration?: number; + start?: number; + end?: number; + cc?: number; +} + +export interface HlsLikeEventData { + fatal?: boolean; + details?: string; + reason?: string; +} + +export interface HlsLikeLevelDetails { + live?: boolean; + totalduration?: number; +} + +export interface HlsLikeLevel { + details?: HlsLikeLevelDetails; +} + +export interface HlsLikeInstance { + on?: ( + event: string, + callback: (event: string, data?: HlsLikeEventData) => void, + ) => void; + loadSource?: (src: string) => void; + destroy?: () => void; + levels?: HlsLikeLevel[]; +} + +export interface VideoJsTextTrackList { + tracks_: TextTrack[]; +} + +// Public player contract exported by the package. +// It intentionally does not depend on video.js types to avoid leaking them to consumers. +export interface VideoJsPlayer { + play: () => void | Promise; + pause: () => void; + load: () => void; + on: (event: string, callback: VideoJsEventHandler) => void; + off?: (event: string, callback?: VideoJsEventHandler) => void; + one: (event: string, callback: VideoJsEventHandler) => void; + currentTime: (seconds?: number) => number | undefined; + duration: () => number; + controls: (state?: boolean) => boolean; + paused: () => boolean; + el: () => Element | null; + dispose: () => void; + hlsInstance?: HlsLikeInstance | null; + liveTracker?: VideoJsLiveTracker; + settingsMenu?: () => void; + mobileUi?: () => void; + bigPlayPauseButton?: () => void; + skipButtons?: (options: SkipButtonsOptions) => void; + subscribeToSegmentChange: (callback: (segment: VideoJsSegmentInfo) => void) => void; + subscribeToDuration: (callback: (duration: number) => void) => void; + subscribeToPlayStart: (callback: () => void) => void; + subscribeToPlayStarted: (callback: () => void) => void; + subscribeToManifestLoaded: (callback: () => void) => void; + mediaduration: () => number | undefined; + textTracks: () => VideoJsTextTrackList; +} diff --git a/src/react/video-player/components/video-js/utils.ts b/packages/video-player/src/react/video-player/components/video-js/utils.ts similarity index 100% rename from src/react/video-player/components/video-js/utils.ts rename to packages/video-player/src/react/video-player/components/video-js/utils.ts diff --git a/src/react/video-player/components/video-js/videojs.module.scss b/packages/video-player/src/react/video-player/components/video-js/videojs.module.scss similarity index 100% rename from src/react/video-player/components/video-js/videojs.module.scss rename to packages/video-player/src/react/video-player/components/video-js/videojs.module.scss diff --git a/src/react/video-player/components/with-blur/index.tsx b/packages/video-player/src/react/video-player/components/with-blur/index.tsx similarity index 98% rename from src/react/video-player/components/with-blur/index.tsx rename to packages/video-player/src/react/video-player/components/with-blur/index.tsx index 5836cbf..3072147 100644 --- a/src/react/video-player/components/with-blur/index.tsx +++ b/packages/video-player/src/react/video-player/components/with-blur/index.tsx @@ -1,7 +1,5 @@ import React, { cloneElement, useEffect, useRef, useState } from "react"; -import Player from "video.js/dist/types/player"; - import { VideoJsPlayer } from "../video-js/types"; import { IWithObservationProps } from "../with-observation"; import styles from "./with-blur.module.scss"; diff --git a/src/react/video-player/components/with-blur/with-blur.css b/packages/video-player/src/react/video-player/components/with-blur/with-blur.css similarity index 100% rename from src/react/video-player/components/with-blur/with-blur.css rename to packages/video-player/src/react/video-player/components/with-blur/with-blur.css diff --git a/src/react/video-player/components/with-blur/with-blur.module.scss b/packages/video-player/src/react/video-player/components/with-blur/with-blur.module.scss similarity index 100% rename from src/react/video-player/components/with-blur/with-blur.module.scss rename to packages/video-player/src/react/video-player/components/with-blur/with-blur.module.scss diff --git a/src/react/video-player/components/with-cover/index.tsx b/packages/video-player/src/react/video-player/components/with-cover/index.tsx similarity index 100% rename from src/react/video-player/components/with-cover/index.tsx rename to packages/video-player/src/react/video-player/components/with-cover/index.tsx diff --git a/src/react/video-player/components/with-cover/with-cover.module.scss b/packages/video-player/src/react/video-player/components/with-cover/with-cover.module.scss similarity index 100% rename from src/react/video-player/components/with-cover/with-cover.module.scss rename to packages/video-player/src/react/video-player/components/with-cover/with-cover.module.scss diff --git a/src/react/video-player/components/with-duration-badge/index.tsx b/packages/video-player/src/react/video-player/components/with-duration-badge/index.tsx similarity index 100% rename from src/react/video-player/components/with-duration-badge/index.tsx rename to packages/video-player/src/react/video-player/components/with-duration-badge/index.tsx diff --git a/src/react/video-player/components/with-duration-badge/with-duration-badge.module.scss b/packages/video-player/src/react/video-player/components/with-duration-badge/with-duration-badge.module.scss similarity index 100% rename from src/react/video-player/components/with-duration-badge/with-duration-badge.module.scss rename to packages/video-player/src/react/video-player/components/with-duration-badge/with-duration-badge.module.scss diff --git a/src/react/video-player/components/with-errors/index.tsx b/packages/video-player/src/react/video-player/components/with-errors/index.tsx similarity index 80% rename from src/react/video-player/components/with-errors/index.tsx rename to packages/video-player/src/react/video-player/components/with-errors/index.tsx index 60df39f..0cfe894 100644 --- a/src/react/video-player/components/with-errors/index.tsx +++ b/packages/video-player/src/react/video-player/components/with-errors/index.tsx @@ -1,8 +1,5 @@ -import React, { useCallback, useState } from "react"; +import React from "react"; -import Player from "video.js/dist/types/player"; - -import { VideoJsPlayer } from "../video-js/types"; import { IWithDurationBadgePlayerProps } from "../with-duration-badge"; import VideoError from "./video-error"; import styles from "./with-errors.module.scss"; @@ -17,7 +14,6 @@ const WithErrors = ({ children, ...props }: IWithErrorsVideoPlayerProps) => { - return (
{ + (player: VideoJsPlayer | null) => { if (!visible) { setIsVisible(true); onShow && onShow(player); diff --git a/src/react/video-player/components/with-lazy/with-lazy.module.scss b/packages/video-player/src/react/video-player/components/with-lazy/with-lazy.module.scss similarity index 100% rename from src/react/video-player/components/with-lazy/with-lazy.module.scss rename to packages/video-player/src/react/video-player/components/with-lazy/with-lazy.module.scss diff --git a/src/react/video-player/components/with-loader/index.tsx b/packages/video-player/src/react/video-player/components/with-loader/index.tsx similarity index 95% rename from src/react/video-player/components/with-loader/index.tsx rename to packages/video-player/src/react/video-player/components/with-loader/index.tsx index 44d052f..daa871e 100644 --- a/src/react/video-player/components/with-loader/index.tsx +++ b/packages/video-player/src/react/video-player/components/with-loader/index.tsx @@ -1,7 +1,5 @@ import React, { useCallback, useState } from "react"; -import Player from "video.js/dist/types/player"; - import PlayerExtension from "../player-extension"; import ContentSkeleton from "../../shared/ui/content-skeleton"; import { VideoJsPlayer } from "../video-js/types"; diff --git a/src/react/video-player/components/with-loader/with-loader.module.scss b/packages/video-player/src/react/video-player/components/with-loader/with-loader.module.scss similarity index 100% rename from src/react/video-player/components/with-loader/with-loader.module.scss rename to packages/video-player/src/react/video-player/components/with-loader/with-loader.module.scss diff --git a/src/react/video-player/components/with-mouse-events/index.tsx b/packages/video-player/src/react/video-player/components/with-mouse-events/index.tsx similarity index 93% rename from src/react/video-player/components/with-mouse-events/index.tsx rename to packages/video-player/src/react/video-player/components/with-mouse-events/index.tsx index 2620d45..e5aa2d5 100644 --- a/src/react/video-player/components/with-mouse-events/index.tsx +++ b/packages/video-player/src/react/video-player/components/with-mouse-events/index.tsx @@ -2,15 +2,13 @@ import type { JSX } from "react"; import React, { MouseEvent, useCallback, useRef, useState } from "react"; -import Player from "video.js/dist/types/player"; - import { IVideoJSProps, VideoJsPlayer } from "../video-js/types"; import styles from "./with-mouse-events.module.scss"; export interface IWithMouseEventsProps extends IVideoJSProps { - onClick?: (player: Player | null) => void; - onMouseLeave?: (player: Player | null) => void; - onMouseEnter?: (player: Player | null) => void; + onClick?: (player: VideoJsPlayer | null) => void; + onMouseLeave?: (player: VideoJsPlayer | null) => void; + onMouseEnter?: (player: VideoJsPlayer | null) => void; children: JSX.Element; } diff --git a/src/react/video-player/components/with-mouse-events/with-mouse-events.module.scss b/packages/video-player/src/react/video-player/components/with-mouse-events/with-mouse-events.module.scss similarity index 100% rename from src/react/video-player/components/with-mouse-events/with-mouse-events.module.scss rename to packages/video-player/src/react/video-player/components/with-mouse-events/with-mouse-events.module.scss diff --git a/src/react/video-player/components/with-observation/index.tsx b/packages/video-player/src/react/video-player/components/with-observation/index.tsx similarity index 90% rename from src/react/video-player/components/with-observation/index.tsx rename to packages/video-player/src/react/video-player/components/with-observation/index.tsx index 43866d7..e448595 100644 --- a/src/react/video-player/components/with-observation/index.tsx +++ b/packages/video-player/src/react/video-player/components/with-observation/index.tsx @@ -3,15 +3,14 @@ import type { JSX } from "react"; import React, { useCallback, useEffect, useRef, useState } from "react"; import { throttle } from "lodash"; -import Player from "video.js/dist/types/player"; import { VideoJsPlayer } from "../video-js/types"; import { IWithMouseEventsProps } from "../with-mouse-events"; import styles from "./with-observation.module.scss"; export interface IWithObservationProps extends IWithMouseEventsProps { - onShow?: (player: Player | null) => void; - onHide?: (player: Player | null) => void; + onShow?: (player: VideoJsPlayer | null) => void; + onHide?: (player: VideoJsPlayer | null) => void; children: JSX.Element; } @@ -23,7 +22,7 @@ export const WithObservation = ({ ...props }: IWithObservationProps) => { const videoContainerRef = useRef(null); - const playerRef = useRef(null); + const playerRef = useRef(null); const [isVisible, setIsVisible] = useState(false); const handlePlayer = useCallback((player: VideoJsPlayer) => { diff --git a/src/react/video-player/components/with-observation/with-observation.module.scss b/packages/video-player/src/react/video-player/components/with-observation/with-observation.module.scss similarity index 100% rename from src/react/video-player/components/with-observation/with-observation.module.scss rename to packages/video-player/src/react/video-player/components/with-observation/with-observation.module.scss diff --git a/src/react/video-player/components/with-processing/index.tsx b/packages/video-player/src/react/video-player/components/with-processing/index.tsx similarity index 100% rename from src/react/video-player/components/with-processing/index.tsx rename to packages/video-player/src/react/video-player/components/with-processing/index.tsx diff --git a/src/react/video-player/components/with-processing/video-processing/index.tsx b/packages/video-player/src/react/video-player/components/with-processing/video-processing/index.tsx similarity index 100% rename from src/react/video-player/components/with-processing/video-processing/index.tsx rename to packages/video-player/src/react/video-player/components/with-processing/video-processing/index.tsx diff --git a/src/react/video-player/components/with-processing/video-processing/video-processing.module.scss b/packages/video-player/src/react/video-player/components/with-processing/video-processing/video-processing.module.scss similarity index 100% rename from src/react/video-player/components/with-processing/video-processing/video-processing.module.scss rename to packages/video-player/src/react/video-player/components/with-processing/video-processing/video-processing.module.scss diff --git a/src/react/video-player/components/with-processing/with-processing.module.scss b/packages/video-player/src/react/video-player/components/with-processing/with-processing.module.scss similarity index 100% rename from src/react/video-player/components/with-processing/with-processing.module.scss rename to packages/video-player/src/react/video-player/components/with-processing/with-processing.module.scss diff --git a/src/react/video-player/index.tsx b/packages/video-player/src/react/video-player/index.tsx similarity index 100% rename from src/react/video-player/index.tsx rename to packages/video-player/src/react/video-player/index.tsx diff --git a/src/react/video-player/shared/math.ts b/packages/video-player/src/react/video-player/shared/math.ts similarity index 100% rename from src/react/video-player/shared/math.ts rename to packages/video-player/src/react/video-player/shared/math.ts diff --git a/src/react/video-player/shared/types.ts b/packages/video-player/src/react/video-player/shared/types.ts similarity index 100% rename from src/react/video-player/shared/types.ts rename to packages/video-player/src/react/video-player/shared/types.ts diff --git a/src/react/video-player/shared/ui/content-skeleton.tsx b/packages/video-player/src/react/video-player/shared/ui/content-skeleton.tsx similarity index 100% rename from src/react/video-player/shared/ui/content-skeleton.tsx rename to packages/video-player/src/react/video-player/shared/ui/content-skeleton.tsx diff --git a/src/react/video-player/tach-video-js.css b/packages/video-player/src/react/video-player/tach-video-js.css similarity index 100% rename from src/react/video-player/tach-video-js.css rename to packages/video-player/src/react/video-player/tach-video-js.css diff --git a/src/react/video-player/video-player.tsx b/packages/video-player/src/react/video-player/video-player.tsx similarity index 100% rename from src/react/video-player/video-player.tsx rename to packages/video-player/src/react/video-player/video-player.tsx diff --git a/src/react/video-player/video.module.scss b/packages/video-player/src/react/video-player/video.module.scss similarity index 100% rename from src/react/video-player/video.module.scss rename to packages/video-player/src/react/video-player/video.module.scss diff --git a/src/types/assets.d.ts b/packages/video-player/src/types/assets.d.ts similarity index 100% rename from src/types/assets.d.ts rename to packages/video-player/src/types/assets.d.ts diff --git a/src/types/lodash.d.ts b/packages/video-player/src/types/lodash.d.ts similarity index 100% rename from src/types/lodash.d.ts rename to packages/video-player/src/types/lodash.d.ts diff --git a/stories/angular-video-player-adapter.stories.tsx b/packages/video-player/stories/angular-video-player-adapter.stories.tsx similarity index 100% rename from stories/angular-video-player-adapter.stories.tsx rename to packages/video-player/stories/angular-video-player-adapter.stories.tsx diff --git a/stories/react-video-player.stories.tsx b/packages/video-player/stories/react-video-player.stories.tsx similarity index 100% rename from stories/react-video-player.stories.tsx rename to packages/video-player/stories/react-video-player.stories.tsx diff --git a/tsconfig.build.json b/packages/video-player/tsconfig.build.json similarity index 100% rename from tsconfig.build.json rename to packages/video-player/tsconfig.build.json diff --git a/packages/video-player/tsconfig.json b/packages/video-player/tsconfig.json new file mode 100644 index 0000000..135ac3f --- /dev/null +++ b/packages/video-player/tsconfig.json @@ -0,0 +1,26 @@ +{ + "extends": "./tsconfig.build.json", + "compilerOptions": { + "noEmit": true, + "declaration": false, + "declarationMap": false, + "rootDir": "." + }, + "include": [ + "src/**/*.ts", + "src/**/*.tsx", + "src/**/*.d.ts", + "stories/**/*.ts", + "stories/**/*.tsx", + ".storybook/**/*.ts", + ".storybook/**/*.tsx" + ], + "exclude": [ + "src/**/*.test.ts", + "src/**/*.test.tsx", + "src/**/__tests__/**", + "dist", + "node_modules", + "storybook-static" + ] +} diff --git a/prettier.config.cjs b/prettier.config.cjs new file mode 100644 index 0000000..29e942a --- /dev/null +++ b/prettier.config.cjs @@ -0,0 +1,6 @@ +module.exports = { + semi: true, + singleQuote: false, + trailingComma: "all", + printWidth: 100, +}; diff --git a/src/react/video-player/components/qr-scanner/index.tsx b/src/react/video-player/components/qr-scanner/index.tsx deleted file mode 100644 index 9633fbf..0000000 --- a/src/react/video-player/components/qr-scanner/index.tsx +++ /dev/null @@ -1,310 +0,0 @@ -import React, { useCallback, useEffect, useRef, useState } from "react"; -import { createPortal } from "react-dom"; - -import { Popover } from "antd"; -import QrScanner from "qr-scanner"; -import Player from "video.js/dist/types/player"; - -import { CloseOutlined } from "@ant-design/icons"; - -interface VideoQRScannerPluginProps { - player: Player | null; - enabled?: boolean; - /** - * Интервал между запусками сканирования в миллисекундах. - * По умолчанию 200 мс. - */ - scanInterval?: number; - /** - * Масштаб для сканирования (0 < scanningScale <= 1). - * Значение меньше 1 уменьшает разрешение для ускорения обработки. - * По умолчанию 1. - */ - scanningScale?: number; - /** - * Количество неудачных попыток обнаружения QR-кода до снятия маски. - * По умолчанию 2.a - */ - maxFailedAttempts?: number; -} - -const VideoQRScannerPlugin: React.FC = ({ - player, - enabled = true, - scanInterval = 200, - scanningScale = 1, - maxFailedAttempts = 2, -}) => { - const canvasRef = useRef(null); - const [detectedQr, setDetectedQr] = useState<{ - data: string; - position: DOMRect; - } | null>(null); - const animationFrameRef = useRef(null); - const ignoredQRCodes = useRef>(new Set()); - const [playerEl, setPlayerEl] = useState(null); - const lastScanTimeRef = useRef(0); - const isScanningRef = useRef(false); - // Счётчик неудачных попыток обнаружения QR, если код уже отображается - const failedAttemptsRef = useRef(0); - // Для получения актуального значения detectedQr внутри асинхронного колбэка - const detectedQrRef = useRef(null); - useEffect(() => { - detectedQrRef.current = detectedQr; - }, [detectedQr]); - - // Изначально устанавливаем контейнер для портала как элемент плеера - useEffect(() => { - if (player) { - setPlayerEl(player.el() as any); - } - }, [player]); - - // Обновление контейнера при переходе в полноэкранный режим - useEffect(() => { - const handleFullscreenChange = () => { - if (document.fullscreenElement) { - setPlayerEl(document.fullscreenElement as HTMLElement); - } else if (player) { - setPlayerEl(player.el() as any); - } - }; - - document.addEventListener("fullscreenchange", handleFullscreenChange); - return () => { - document.removeEventListener("fullscreenchange", handleFullscreenChange); - }; - }, [player]); - - const scanFrame = useCallback(async () => { - if (!player || player.paused() || !canvasRef.current || !enabled) return; - - const now = performance.now(); - if (now - lastScanTimeRef.current < scanInterval) { - animationFrameRef.current = requestAnimationFrame(scanFrame); - return; - } - lastScanTimeRef.current = now; - - // Предотвращаем параллельное выполнение сканирования - if (isScanningRef.current) { - animationFrameRef.current = requestAnimationFrame(scanFrame); - return; - } - isScanningRef.current = true; - - const videoEl = player.tech(true).el() as HTMLVideoElement; - const canvas = canvasRef.current; - const ctx = canvas.getContext("2d"); - if (!ctx) { - isScanningRef.current = false; - return; - } - - // Получаем оригинальные размеры видео - const originalVideoWidth = videoEl.videoWidth; - const originalVideoHeight = videoEl.videoHeight; - - // Устанавливаем canvas с пониженным разрешением для сканирования - canvas.width = originalVideoWidth * scanningScale; - canvas.height = originalVideoHeight * scanningScale; - - // Рисуем видео в canvas с пониженным разрешением - ctx.drawImage(videoEl, 0, 0, canvas.width, canvas.height); - - try { - const result = await QrScanner.scanImage(canvas, { - returnDetailedScanResult: true, - }); - - if ( - result && - result.data && - result.cornerPoints?.length === 4 && - !ignoredQRCodes.current.has(result.data) - ) { - // Сброс неудачных попыток при успешном обнаружении - failedAttemptsRef.current = 0; - - // Преобразуем координаты из масштабированного canvas в координаты оригинального видео - const points = result.cornerPoints.map(p => ({ - x: p.x / scanningScale, - y: p.y / scanningScale, - })); - const minX = Math.min(...points.map(p => p.x)); - const minY = Math.min(...points.map(p => p.y)); - const maxX = Math.max(...points.map(p => p.x)); - const maxY = Math.max(...points.map(p => p.y)); - - // Получаем размеры отображаемого видео - const rect = videoEl.getBoundingClientRect(); - const displayScale = Math.min( - rect.width / originalVideoWidth, - rect.height / originalVideoHeight, - ); - const offsetX = (rect.width - originalVideoWidth * displayScale) / 2; - const offsetY = (rect.height - originalVideoHeight * displayScale) / 2; - - const qrWidth = (maxX - minX) * displayScale; - const qrHeight = (maxY - minY) * displayScale; - const padding = 8; - const x = minX * displayScale + offsetX - padding; - const y = minY * displayScale + offsetY - padding; - - setDetectedQr({ - data: result.data, - position: new DOMRect( - x, - y, - qrWidth + padding * 2, - qrHeight + padding * 2, - ), - }); - } else { - // Если код не найден, и он уже отображался, даем maxFailedAttempts попыток - if (detectedQrRef.current) { - failedAttemptsRef.current += 1; - if (failedAttemptsRef.current >= maxFailedAttempts) { - setDetectedQr(null); - failedAttemptsRef.current = 0; - } - } - } - } catch (error) { - // В случае ошибки аналогичная логика: если код уже отображался — даем maxFailedAttempts попыток - if (detectedQrRef.current) { - failedAttemptsRef.current += 1; - if (failedAttemptsRef.current >= maxFailedAttempts) { - setDetectedQr(null); - failedAttemptsRef.current = 0; - } - } - } finally { - isScanningRef.current = false; - } - - animationFrameRef.current = requestAnimationFrame(scanFrame); - }, [player, enabled, scanInterval, scanningScale, maxFailedAttempts]); - - useEffect(() => { - if (!player || !enabled) return; - - const startScanning = () => { - if (animationFrameRef.current) - cancelAnimationFrame(animationFrameRef.current); - animationFrameRef.current = requestAnimationFrame(scanFrame); - }; - - const stopScanning = () => { - if (animationFrameRef.current) { - cancelAnimationFrame(animationFrameRef.current); - animationFrameRef.current = null; - } - setDetectedQr(null); - }; - - player.on("play", startScanning); - player.on("pause", stopScanning); - player.on("ended", stopScanning); - - window.addEventListener("resize", startScanning); - - return () => { - stopScanning(); - player.off("play", startScanning); - player.off("pause", stopScanning); - player.off("ended", stopScanning); - window.removeEventListener("resize", startScanning); - }; - }, [player, enabled, scanFrame]); - - const ignoreQRCode = () => { - if (detectedQr) { - ignoredQRCodes.current.add(detectedQr.data); - setDetectedQr(null); - } - }; - - return ( - <> - - {detectedQr && - playerEl && - createPortal( - playerEl} - content={ - - {detectedQr.data} - - } - placement="top" - > -
- {["top-left", "top-right", "bottom-left", "bottom-right"].map( - corner => ( -
- ), - )} - -
- , - playerEl, - )} - - ); -}; - -export default VideoQRScannerPlugin; diff --git a/src/react/video-player/components/video-js/types.ts b/src/react/video-player/components/video-js/types.ts deleted file mode 100644 index 68f8414..0000000 --- a/src/react/video-player/components/video-js/types.ts +++ /dev/null @@ -1,58 +0,0 @@ -import Player from "video.js/dist/types/player"; - -import { SkipButtonsOptions } from "./plugins/skip-buttons"; - -export interface IVideoJSSource { - src: string; - type: string; -} - -export type PreloadType = "auto" | "metadata" | "none" | "visibility"; - -export interface IVideoJSOptions { - autoplay: boolean; - controls: boolean; - responsive: boolean; - aspectRatio?: string; - preload: PreloadType; - fluid: boolean; - muted: boolean; - sources: IVideoJSSource[]; - poster?: string; - preferHQ?: boolean; - /** Включить детальное логирование */ - debug?: boolean; -} - -export interface IVideoJSProps { - options: IVideoJSOptions; - onReady?: (player: VideoJsPlayer) => void; - className?: string; - classNames?: string[]; - initialTime?: number; - full?: boolean; - withRewind?: boolean; -} - -export interface VideoJsLiveTracker { - isLive_: boolean; - atLiveEdge?: () => boolean; - startTracking: () => void; - trigger: (event: string) => void; -} - -// Расширяем интерфейс плеера дополнительными методами -export type VideoJsPlayer = Player & { - liveTracker?: VideoJsLiveTracker; - settingsMenu?: () => void; - mobileUi?: () => void; - bigPlayPauseButton?: () => void; - skipButtons?: (options: SkipButtonsOptions) => void; - subscribeToSegmentChange: (callback: (segment: any) => void) => void; - subscribeToDuration: (callback: (duration: number) => void) => void; - subscribeToPlayStart: (callback: () => void) => void; - subscribeToPlayStarted: (callback: () => void) => void; - subscribeToManifestLoaded: (callback: () => void) => void; - mediaduration: () => number | undefined; - textTracks: () => TextTrack[]; -}; diff --git a/tsconfig.base.json b/tsconfig.base.json new file mode 100644 index 0000000..c976be4 --- /dev/null +++ b/tsconfig.base.json @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "target": "ES2022", + "module": "ESNext", + "moduleResolution": "Bundler", + "lib": ["ES2022", "DOM"], + "declaration": true, + "declarationMap": true, + "sourceMap": true, + "strict": true, + "noUncheckedIndexedAccess": true, + "exactOptionalPropertyTypes": true, + "skipLibCheck": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "jsx": "react-jsx", + "isolatedModules": true, + "resolveJsonModule": true, + "types": ["node"] + } +} diff --git a/tsconfig.json b/tsconfig.json index 135ac3f..d2adb24 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,26 +1,6 @@ { - "extends": "./tsconfig.build.json", - "compilerOptions": { - "noEmit": true, - "declaration": false, - "declarationMap": false, - "rootDir": "." - }, - "include": [ - "src/**/*.ts", - "src/**/*.tsx", - "src/**/*.d.ts", - "stories/**/*.ts", - "stories/**/*.tsx", - ".storybook/**/*.ts", - ".storybook/**/*.tsx" - ], - "exclude": [ - "src/**/*.test.ts", - "src/**/*.test.tsx", - "src/**/__tests__/**", - "dist", - "node_modules", - "storybook-static" - ] + "files": [], + "references": [ + { "path": "./packages/tach-typography" } + ] } diff --git a/vitest.config.mts b/vitest.config.mts new file mode 100644 index 0000000..cc3f971 --- /dev/null +++ b/vitest.config.mts @@ -0,0 +1,11 @@ +import { defineConfig } from "vitest/config"; + +export default defineConfig({ + test: { + include: ["**/*.test.ts"], + environment: "node", + coverage: { + reporter: ["text", "html"], + }, + }, +}); diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..bd5a10e --- /dev/null +++ b/yarn.lock @@ -0,0 +1,7119 @@ +# This file is generated by running "yarn install" inside your project. +# Manual changes might be lost - proceed with caution! + +__metadata: + version: 8 + cacheKey: 10c0 + +"@adobe/css-tools@npm:^4.4.0": + version: 4.4.4 + resolution: "@adobe/css-tools@npm:4.4.4" + checksum: 10c0/8f3e6cfaa5e6286e6f05de01d91d060425be2ebaef490881f5fe6da8bbdb336835c5d373ea337b0c3b0a1af4be048ba18780f0f6021d30809b4545922a7e13d9 + languageName: node + linkType: hard + +"@angular/animations@npm:^20.3.17": + version: 20.3.17 + resolution: "@angular/animations@npm:20.3.17" + dependencies: + tslib: "npm:^2.3.0" + peerDependencies: + "@angular/core": 20.3.17 + checksum: 10c0/c0baa596fd4af75299b4f86abac809def11b0a1379e09bac20150dff773da4bdad1b05fd54f2cd43a6800dd326407bebaba64698a7526bbee1590013c2c39258 + languageName: node + linkType: hard + +"@angular/cdk@npm:^20.0.0": + version: 20.2.14 + resolution: "@angular/cdk@npm:20.2.14" + dependencies: + parse5: "npm:^8.0.0" + tslib: "npm:^2.3.0" + peerDependencies: + "@angular/common": ^20.0.0 || ^21.0.0 + "@angular/core": ^20.0.0 || ^21.0.0 + rxjs: ^6.5.3 || ^7.4.0 + checksum: 10c0/8f6463252d942cc2a62b861fcb206abeca097e89018191c7d8f390187a7ff6917ee42918e53b4da40e2f9d407fb42bb94b515d82e1daa17fa0c7be4d4fce6de8 + languageName: node + linkType: hard + +"@angular/common@npm:^20.3.17": + version: 20.3.17 + resolution: "@angular/common@npm:20.3.17" + dependencies: + tslib: "npm:^2.3.0" + peerDependencies: + "@angular/core": 20.3.17 + rxjs: ^6.5.3 || ^7.4.0 + checksum: 10c0/4048e907bd8258bdc7adeac30af3c84e7b89e929ab886e05c79d7a29777c9f078014e236844e151ea9189898995a168ece8e76599dc170c9ad093d02e1fede9f + languageName: node + linkType: hard + +"@angular/core@npm:^20.3.17": + version: 20.3.17 + resolution: "@angular/core@npm:20.3.17" + dependencies: + tslib: "npm:^2.3.0" + peerDependencies: + "@angular/compiler": 20.3.17 + rxjs: ^6.5.3 || ^7.4.0 + zone.js: ~0.15.0 + peerDependenciesMeta: + "@angular/compiler": + optional: true + zone.js: + optional: true + checksum: 10c0/272241ffc85c94b01b34750d3d62b0d7230cb127e92387286644e7b2ee157ec9db694234f8f365acd4daf550724642b440e1f3219e3aa52028a22cba3a55a1a4 + languageName: node + linkType: hard + +"@angular/forms@npm:^20.3.17": + version: 20.3.17 + resolution: "@angular/forms@npm:20.3.17" + dependencies: + tslib: "npm:^2.3.0" + peerDependencies: + "@angular/common": 20.3.17 + "@angular/core": 20.3.17 + "@angular/platform-browser": 20.3.17 + rxjs: ^6.5.3 || ^7.4.0 + checksum: 10c0/3a5793ce8bc79d07165b25c33c5a8e8c4dc3bf6dcaa4953e9ef9d08135ea2c571f4d74bf8acea7a7eaf9828e3a2f125fc8d918453c1fbb2b5e4fb30bfce7d8bc + languageName: node + linkType: hard + +"@angular/platform-browser@npm:^20.3.17": + version: 20.3.17 + resolution: "@angular/platform-browser@npm:20.3.17" + dependencies: + tslib: "npm:^2.3.0" + peerDependencies: + "@angular/animations": 20.3.17 + "@angular/common": 20.3.17 + "@angular/core": 20.3.17 + peerDependenciesMeta: + "@angular/animations": + optional: true + checksum: 10c0/baecb79f01b0f483c2e83139f1424e4b87fdace64d6daecc410ff75f7565794bfee663bfd11ade56183c9016eecc2952a97d17d9230ffbe0936f70d4e13c8a73 + languageName: node + linkType: hard + +"@angular/router@npm:^20.3.17": + version: 20.3.17 + resolution: "@angular/router@npm:20.3.17" + dependencies: + tslib: "npm:^2.3.0" + peerDependencies: + "@angular/common": 20.3.17 + "@angular/core": 20.3.17 + "@angular/platform-browser": 20.3.17 + rxjs: ^6.5.3 || ^7.4.0 + checksum: 10c0/0e32993bc1db624ff11bed6008793770cb93720c6891b2fea8cb410163afbba4fce1001f287f9b8c39681077fbf726cae2c33a8f04802eb40a4aee6ff39216e7 + languageName: node + linkType: hard + +"@ant-design/colors@npm:^7.0.0, @ant-design/colors@npm:^7.2.1": + version: 7.2.1 + resolution: "@ant-design/colors@npm:7.2.1" + dependencies: + "@ant-design/fast-color": "npm:^2.0.6" + checksum: 10c0/4748a0bfb1ea98e08e29dcd4f7afd2781ae2119f783e6e9f80e889fd15fc19f7137e2a3d91f26bae2ab1ee76c04d520cc35f2bb0a708cd71e463f4d9deb4192d + languageName: node + linkType: hard + +"@ant-design/cssinjs-utils@npm:^1.1.3": + version: 1.1.3 + resolution: "@ant-design/cssinjs-utils@npm:1.1.3" + dependencies: + "@ant-design/cssinjs": "npm:^1.21.0" + "@babel/runtime": "npm:^7.23.2" + rc-util: "npm:^5.38.0" + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 10c0/e8a443a613689c4e984f5cf44b799f6288a6debf9a35cafb27a0411ef77ae335ba5ace7a38efd8e04f04ac897ddf24c81f0ad6615ac586f2616cb7f2b72f6176 + languageName: node + linkType: hard + +"@ant-design/cssinjs@npm:^1.21.0, @ant-design/cssinjs@npm:^1.23.0": + version: 1.24.0 + resolution: "@ant-design/cssinjs@npm:1.24.0" + dependencies: + "@babel/runtime": "npm:^7.11.1" + "@emotion/hash": "npm:^0.8.0" + "@emotion/unitless": "npm:^0.7.5" + classnames: "npm:^2.3.1" + csstype: "npm:^3.1.3" + rc-util: "npm:^5.35.0" + stylis: "npm:^4.3.4" + peerDependencies: + react: ">=16.0.0" + react-dom: ">=16.0.0" + checksum: 10c0/e84bc33bd74d386f87813641287ad3ba7494adcde944277bbec3745ea14cc19bb430c0723d8e86058d23c450a4c22e7fe63281e0d5e50d3a0e94ea55185305b4 + languageName: node + linkType: hard + +"@ant-design/fast-color@npm:^2.0.6": + version: 2.0.6 + resolution: "@ant-design/fast-color@npm:2.0.6" + dependencies: + "@babel/runtime": "npm:^7.24.7" + checksum: 10c0/8d30649bd8d4e56d5c48393fcf0ad5c24d1099ec4cbf88f55bd9f4489e61efc30087d301da384c4ed21f2d5597087c8ba27dfbcc7693915310c26d307f5a8276 + languageName: node + linkType: hard + +"@ant-design/icons-angular@npm:^20.0.0": + version: 20.0.0 + resolution: "@ant-design/icons-angular@npm:20.0.0" + dependencies: + "@ant-design/colors": "npm:^7.0.0" + tslib: "npm:^2.0.0" + peerDependencies: + "@angular/common": ^20.0.0 + "@angular/core": ^20.0.0 + "@angular/platform-browser": ^20.0.0 + rxjs: ^6.5.3 || ^7.4.0 + checksum: 10c0/88de1bb23af2f6f6818855f611d304435afed15dd44c59b1cac25b81ef29e83d48aabbd990ea48cff5d3f12dcb0334f9c123035b7c46de78d543701cbe145311 + languageName: node + linkType: hard + +"@ant-design/icons-svg@npm:^4.4.0": + version: 4.4.2 + resolution: "@ant-design/icons-svg@npm:4.4.2" + checksum: 10c0/d08f051824599850efcd691a67b0ee602ee886f23fe04e77890b083a0343cde72560317e3909fd029f999df00aef7b57142c863326fff7293251d9162828079b + languageName: node + linkType: hard + +"@ant-design/icons@npm:5.3.7": + version: 5.3.7 + resolution: "@ant-design/icons@npm:5.3.7" + dependencies: + "@ant-design/colors": "npm:^7.0.0" + "@ant-design/icons-svg": "npm:^4.4.0" + "@babel/runtime": "npm:^7.11.2" + classnames: "npm:^2.2.6" + rc-util: "npm:^5.31.1" + peerDependencies: + react: ">=16.0.0" + react-dom: ">=16.0.0" + checksum: 10c0/1db109da6893938c431381ad25b4709cbc9c928b9c50b7e1e53a3f49c4faac91e5ec70f1b7df3bf714197841810d858be09c1b61e6cc407cd093b3ab65451daa + languageName: node + linkType: hard + +"@ant-design/icons@npm:^5.6.1": + version: 5.6.1 + resolution: "@ant-design/icons@npm:5.6.1" + dependencies: + "@ant-design/colors": "npm:^7.0.0" + "@ant-design/icons-svg": "npm:^4.4.0" + "@babel/runtime": "npm:^7.24.8" + classnames: "npm:^2.2.6" + rc-util: "npm:^5.31.1" + peerDependencies: + react: ">=16.0.0" + react-dom: ">=16.0.0" + checksum: 10c0/7a9d9fd388c5c66d92818fd0eb794a54ef0b0dc3d75f15ac24c7cfde21c5c836c220cf35423768fd1faa28d55443a6917bf4260469c1485be83f799daa351976 + languageName: node + linkType: hard + +"@ant-design/react-slick@npm:~1.1.2": + version: 1.1.2 + resolution: "@ant-design/react-slick@npm:1.1.2" + dependencies: + "@babel/runtime": "npm:^7.10.4" + classnames: "npm:^2.2.5" + json2mq: "npm:^0.2.0" + resize-observer-polyfill: "npm:^1.5.1" + throttle-debounce: "npm:^5.0.0" + peerDependencies: + react: ">=16.9.0" + checksum: 10c0/4f758e28cf8418e9f1a9b03da3814b2342fcee8a4039cae2fe6f77c01e9c8b7ea78a7e10961128a5ccba4992f520e88cb72c4f7fa1bd22314ce628b0d9fb3f5c + languageName: node + linkType: hard + +"@babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.28.6, @babel/code-frame@npm:^7.29.0": + version: 7.29.0 + resolution: "@babel/code-frame@npm:7.29.0" + dependencies: + "@babel/helper-validator-identifier": "npm:^7.28.5" + js-tokens: "npm:^4.0.0" + picocolors: "npm:^1.1.1" + checksum: 10c0/d34cc504e7765dfb576a663d97067afb614525806b5cad1a5cc1a7183b916fec8ff57fa233585e3926fd5a9e6b31aae6df91aa81ae9775fb7a28f658d3346f0d + languageName: node + linkType: hard + +"@babel/compat-data@npm:^7.28.6": + version: 7.29.0 + resolution: "@babel/compat-data@npm:7.29.0" + checksum: 10c0/08f348554989d23aa801bf1405aa34b15e841c0d52d79da7e524285c77a5f9d298e70e11d91cc578d8e2c9542efc586d50c5f5cf8e1915b254a9dcf786913a94 + languageName: node + linkType: hard + +"@babel/core@npm:^7.18.9": + version: 7.29.0 + resolution: "@babel/core@npm:7.29.0" + dependencies: + "@babel/code-frame": "npm:^7.29.0" + "@babel/generator": "npm:^7.29.0" + "@babel/helper-compilation-targets": "npm:^7.28.6" + "@babel/helper-module-transforms": "npm:^7.28.6" + "@babel/helpers": "npm:^7.28.6" + "@babel/parser": "npm:^7.29.0" + "@babel/template": "npm:^7.28.6" + "@babel/traverse": "npm:^7.29.0" + "@babel/types": "npm:^7.29.0" + "@jridgewell/remapping": "npm:^2.3.5" + convert-source-map: "npm:^2.0.0" + debug: "npm:^4.1.0" + gensync: "npm:^1.0.0-beta.2" + json5: "npm:^2.2.3" + semver: "npm:^6.3.1" + checksum: 10c0/5127d2e8e842ae409e11bcbb5c2dff9874abf5415e8026925af7308e903f4f43397341467a130490d1a39884f461bc2b67f3063bce0be44340db89687fd852aa + languageName: node + linkType: hard + +"@babel/generator@npm:^7.29.0": + version: 7.29.1 + resolution: "@babel/generator@npm:7.29.1" + dependencies: + "@babel/parser": "npm:^7.29.0" + "@babel/types": "npm:^7.29.0" + "@jridgewell/gen-mapping": "npm:^0.3.12" + "@jridgewell/trace-mapping": "npm:^0.3.28" + jsesc: "npm:^3.0.2" + checksum: 10c0/349086e6876258ef3fb2823030fee0f6c0eb9c3ebe35fc572e16997f8c030d765f636ddc6299edae63e760ea6658f8ee9a2edfa6d6b24c9a80c917916b973551 + languageName: node + linkType: hard + +"@babel/helper-compilation-targets@npm:^7.28.6": + version: 7.28.6 + resolution: "@babel/helper-compilation-targets@npm:7.28.6" + dependencies: + "@babel/compat-data": "npm:^7.28.6" + "@babel/helper-validator-option": "npm:^7.27.1" + browserslist: "npm:^4.24.0" + lru-cache: "npm:^5.1.1" + semver: "npm:^6.3.1" + checksum: 10c0/3fcdf3b1b857a1578e99d20508859dbd3f22f3c87b8a0f3dc540627b4be539bae7f6e61e49d931542fe5b557545347272bbdacd7f58a5c77025a18b745593a50 + languageName: node + linkType: hard + +"@babel/helper-globals@npm:^7.28.0": + version: 7.28.0 + resolution: "@babel/helper-globals@npm:7.28.0" + checksum: 10c0/5a0cd0c0e8c764b5f27f2095e4243e8af6fa145daea2b41b53c0c1414fe6ff139e3640f4e2207ae2b3d2153a1abd346f901c26c290ee7cb3881dd922d4ee9232 + languageName: node + linkType: hard + +"@babel/helper-module-imports@npm:^7.28.6": + version: 7.28.6 + resolution: "@babel/helper-module-imports@npm:7.28.6" + dependencies: + "@babel/traverse": "npm:^7.28.6" + "@babel/types": "npm:^7.28.6" + checksum: 10c0/b49d8d8f204d9dbfd5ac70c54e533e5269afb3cea966a9d976722b13e9922cc773a653405f53c89acb247d5aebdae4681d631a3ae3df77ec046b58da76eda2ac + languageName: node + linkType: hard + +"@babel/helper-module-transforms@npm:^7.28.6": + version: 7.28.6 + resolution: "@babel/helper-module-transforms@npm:7.28.6" + dependencies: + "@babel/helper-module-imports": "npm:^7.28.6" + "@babel/helper-validator-identifier": "npm:^7.28.5" + "@babel/traverse": "npm:^7.28.6" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/6f03e14fc30b287ce0b839474b5f271e72837d0cafe6b172d759184d998fbee3903a035e81e07c2c596449e504f453463d58baa65b6f40a37ded5bec74620b2b + languageName: node + linkType: hard + +"@babel/helper-string-parser@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-string-parser@npm:7.27.1" + checksum: 10c0/8bda3448e07b5583727c103560bcf9c4c24b3c1051a4c516d4050ef69df37bb9a4734a585fe12725b8c2763de0a265aa1e909b485a4e3270b7cfd3e4dbe4b602 + languageName: node + linkType: hard + +"@babel/helper-validator-identifier@npm:^7.28.5": + version: 7.28.5 + resolution: "@babel/helper-validator-identifier@npm:7.28.5" + checksum: 10c0/42aaebed91f739a41f3d80b72752d1f95fd7c72394e8e4bd7cdd88817e0774d80a432451bcba17c2c642c257c483bf1d409dd4548883429ea9493a3bc4ab0847 + languageName: node + linkType: hard + +"@babel/helper-validator-option@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-validator-option@npm:7.27.1" + checksum: 10c0/6fec5f006eba40001a20f26b1ef5dbbda377b7b68c8ad518c05baa9af3f396e780bdfded24c4eef95d14bb7b8fd56192a6ed38d5d439b97d10efc5f1a191d148 + languageName: node + linkType: hard + +"@babel/helpers@npm:^7.28.6": + version: 7.28.6 + resolution: "@babel/helpers@npm:7.28.6" + dependencies: + "@babel/template": "npm:^7.28.6" + "@babel/types": "npm:^7.28.6" + checksum: 10c0/c4a779c66396bb0cf619402d92f1610601ff3832db2d3b86b9c9dd10983bf79502270e97ac6d5280cea1b1a37de2f06ecbac561bd2271545270407fbe64027cb + languageName: node + linkType: hard + +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.28.6, @babel/parser@npm:^7.29.0": + version: 7.29.0 + resolution: "@babel/parser@npm:7.29.0" + dependencies: + "@babel/types": "npm:^7.29.0" + bin: + parser: ./bin/babel-parser.js + checksum: 10c0/333b2aa761264b91577a74bee86141ef733f9f9f6d4fc52548e4847dc35dfbf821f58c46832c637bfa761a6d9909d6a68f7d1ed59e17e4ffbb958dc510c17b62 + languageName: node + linkType: hard + +"@babel/runtime@npm:^7.10.1, @babel/runtime@npm:^7.10.4, @babel/runtime@npm:^7.11.1, @babel/runtime@npm:^7.11.2, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.16.7, @babel/runtime@npm:^7.17.8, @babel/runtime@npm:^7.18.0, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.20.0, @babel/runtime@npm:^7.20.7, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.22.5, @babel/runtime@npm:^7.23.2, @babel/runtime@npm:^7.23.6, @babel/runtime@npm:^7.23.9, @babel/runtime@npm:^7.24.4, @babel/runtime@npm:^7.24.7, @babel/runtime@npm:^7.24.8, @babel/runtime@npm:^7.25.7, @babel/runtime@npm:^7.26.0, @babel/runtime@npm:^7.28.4, @babel/runtime@npm:^7.5.5": + version: 7.28.6 + resolution: "@babel/runtime@npm:7.28.6" + checksum: 10c0/358cf2429992ac1c466df1a21c1601d595c46930a13c1d4662fde908d44ee78ec3c183aaff513ecb01ef8c55c3624afe0309eeeb34715672dbfadb7feedb2c0d + languageName: node + linkType: hard + +"@babel/template@npm:^7.28.6": + version: 7.28.6 + resolution: "@babel/template@npm:7.28.6" + dependencies: + "@babel/code-frame": "npm:^7.28.6" + "@babel/parser": "npm:^7.28.6" + "@babel/types": "npm:^7.28.6" + checksum: 10c0/66d87225ed0bc77f888181ae2d97845021838c619944877f7c4398c6748bcf611f216dfd6be74d39016af502bca876e6ce6873db3c49e4ac354c56d34d57e9f5 + languageName: node + linkType: hard + +"@babel/traverse@npm:^7.18.9, @babel/traverse@npm:^7.28.6, @babel/traverse@npm:^7.29.0": + version: 7.29.0 + resolution: "@babel/traverse@npm:7.29.0" + dependencies: + "@babel/code-frame": "npm:^7.29.0" + "@babel/generator": "npm:^7.29.0" + "@babel/helper-globals": "npm:^7.28.0" + "@babel/parser": "npm:^7.29.0" + "@babel/template": "npm:^7.28.6" + "@babel/types": "npm:^7.29.0" + debug: "npm:^4.3.1" + checksum: 10c0/f63ef6e58d02a9fbf3c0e2e5f1c877da3e0bc57f91a19d2223d53e356a76859cbaf51171c9211c71816d94a0e69efa2732fd27ffc0e1bbc84b636e60932333eb + languageName: node + linkType: hard + +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.18.9, @babel/types@npm:^7.20.7, @babel/types@npm:^7.28.2, @babel/types@npm:^7.28.6, @babel/types@npm:^7.29.0": + version: 7.29.0 + resolution: "@babel/types@npm:7.29.0" + dependencies: + "@babel/helper-string-parser": "npm:^7.27.1" + "@babel/helper-validator-identifier": "npm:^7.28.5" + checksum: 10c0/23cc3466e83bcbfab8b9bd0edaafdb5d4efdb88b82b3be6728bbade5ba2f0996f84f63b1c5f7a8c0d67efded28300898a5f930b171bb40b311bca2029c4e9b4f + languageName: node + linkType: hard + +"@ctrl/tinycolor@npm:^3.6.0": + version: 3.6.1 + resolution: "@ctrl/tinycolor@npm:3.6.1" + checksum: 10c0/444d81612cd8c5c802a3d1253df83d5f77d3db87f351861655683a4743990e6b38976bf2e4129591c5a258607b63574b3c7bed702cf6a0eb7912222edf4570e9 + languageName: node + linkType: hard + +"@emotion/hash@npm:^0.8.0": + version: 0.8.0 + resolution: "@emotion/hash@npm:0.8.0" + checksum: 10c0/706303d35d416217cd7eb0d36dbda4627bb8bdf4a32ea387e8dd99be11b8e0a998e10af21216e8a5fade518ad955ff06aa8890f20e694ce3a038ae7fc1000556 + languageName: node + linkType: hard + +"@emotion/unitless@npm:^0.7.5": + version: 0.7.5 + resolution: "@emotion/unitless@npm:0.7.5" + checksum: 10c0/4d0d94f53cb97b4481bbfa394953e1899a0b877644642ba9dd7247c27eb8c48e14e22aeb11411d7d9874685ad85dd5fb5b50eb78c6d8840eb56a84b92dcef2f4 + languageName: node + linkType: hard + +"@esbuild/aix-ppc64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/aix-ppc64@npm:0.25.12" + conditions: os=aix & cpu=ppc64 + languageName: node + linkType: hard + +"@esbuild/aix-ppc64@npm:0.27.3": + version: 0.27.3 + resolution: "@esbuild/aix-ppc64@npm:0.27.3" + conditions: os=aix & cpu=ppc64 + languageName: node + linkType: hard + +"@esbuild/android-arm64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/android-arm64@npm:0.25.12" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/android-arm64@npm:0.27.3": + version: 0.27.3 + resolution: "@esbuild/android-arm64@npm:0.27.3" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/android-arm@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/android-arm@npm:0.25.12" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@esbuild/android-arm@npm:0.27.3": + version: 0.27.3 + resolution: "@esbuild/android-arm@npm:0.27.3" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@esbuild/android-x64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/android-x64@npm:0.25.12" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/android-x64@npm:0.27.3": + version: 0.27.3 + resolution: "@esbuild/android-x64@npm:0.27.3" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/darwin-arm64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/darwin-arm64@npm:0.25.12" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/darwin-arm64@npm:0.27.3": + version: 0.27.3 + resolution: "@esbuild/darwin-arm64@npm:0.27.3" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/darwin-x64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/darwin-x64@npm:0.25.12" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/darwin-x64@npm:0.27.3": + version: 0.27.3 + resolution: "@esbuild/darwin-x64@npm:0.27.3" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/freebsd-arm64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/freebsd-arm64@npm:0.25.12" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/freebsd-arm64@npm:0.27.3": + version: 0.27.3 + resolution: "@esbuild/freebsd-arm64@npm:0.27.3" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/freebsd-x64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/freebsd-x64@npm:0.25.12" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/freebsd-x64@npm:0.27.3": + version: 0.27.3 + resolution: "@esbuild/freebsd-x64@npm:0.27.3" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/linux-arm64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/linux-arm64@npm:0.25.12" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/linux-arm64@npm:0.27.3": + version: 0.27.3 + resolution: "@esbuild/linux-arm64@npm:0.27.3" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/linux-arm@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/linux-arm@npm:0.25.12" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@esbuild/linux-arm@npm:0.27.3": + version: 0.27.3 + resolution: "@esbuild/linux-arm@npm:0.27.3" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@esbuild/linux-ia32@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/linux-ia32@npm:0.25.12" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/linux-ia32@npm:0.27.3": + version: 0.27.3 + resolution: "@esbuild/linux-ia32@npm:0.27.3" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/linux-loong64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/linux-loong64@npm:0.25.12" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + +"@esbuild/linux-loong64@npm:0.27.3": + version: 0.27.3 + resolution: "@esbuild/linux-loong64@npm:0.27.3" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + +"@esbuild/linux-mips64el@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/linux-mips64el@npm:0.25.12" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + +"@esbuild/linux-mips64el@npm:0.27.3": + version: 0.27.3 + resolution: "@esbuild/linux-mips64el@npm:0.27.3" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + +"@esbuild/linux-ppc64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/linux-ppc64@npm:0.25.12" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + +"@esbuild/linux-ppc64@npm:0.27.3": + version: 0.27.3 + resolution: "@esbuild/linux-ppc64@npm:0.27.3" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + +"@esbuild/linux-riscv64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/linux-riscv64@npm:0.25.12" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + +"@esbuild/linux-riscv64@npm:0.27.3": + version: 0.27.3 + resolution: "@esbuild/linux-riscv64@npm:0.27.3" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + +"@esbuild/linux-s390x@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/linux-s390x@npm:0.25.12" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + +"@esbuild/linux-s390x@npm:0.27.3": + version: 0.27.3 + resolution: "@esbuild/linux-s390x@npm:0.27.3" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + +"@esbuild/linux-x64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/linux-x64@npm:0.25.12" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/linux-x64@npm:0.27.3": + version: 0.27.3 + resolution: "@esbuild/linux-x64@npm:0.27.3" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/netbsd-arm64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/netbsd-arm64@npm:0.25.12" + conditions: os=netbsd & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/netbsd-arm64@npm:0.27.3": + version: 0.27.3 + resolution: "@esbuild/netbsd-arm64@npm:0.27.3" + conditions: os=netbsd & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/netbsd-x64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/netbsd-x64@npm:0.25.12" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/netbsd-x64@npm:0.27.3": + version: 0.27.3 + resolution: "@esbuild/netbsd-x64@npm:0.27.3" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/openbsd-arm64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/openbsd-arm64@npm:0.25.12" + conditions: os=openbsd & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/openbsd-arm64@npm:0.27.3": + version: 0.27.3 + resolution: "@esbuild/openbsd-arm64@npm:0.27.3" + conditions: os=openbsd & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/openbsd-x64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/openbsd-x64@npm:0.25.12" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/openbsd-x64@npm:0.27.3": + version: 0.27.3 + resolution: "@esbuild/openbsd-x64@npm:0.27.3" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/openharmony-arm64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/openharmony-arm64@npm:0.25.12" + conditions: os=openharmony & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/openharmony-arm64@npm:0.27.3": + version: 0.27.3 + resolution: "@esbuild/openharmony-arm64@npm:0.27.3" + conditions: os=openharmony & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/sunos-x64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/sunos-x64@npm:0.25.12" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/sunos-x64@npm:0.27.3": + version: 0.27.3 + resolution: "@esbuild/sunos-x64@npm:0.27.3" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/win32-arm64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/win32-arm64@npm:0.25.12" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/win32-arm64@npm:0.27.3": + version: 0.27.3 + resolution: "@esbuild/win32-arm64@npm:0.27.3" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/win32-ia32@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/win32-ia32@npm:0.25.12" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/win32-ia32@npm:0.27.3": + version: 0.27.3 + resolution: "@esbuild/win32-ia32@npm:0.27.3" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/win32-x64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/win32-x64@npm:0.25.12" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/win32-x64@npm:0.27.3": + version: 0.27.3 + resolution: "@esbuild/win32-x64@npm:0.27.3" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@eslint-community/eslint-utils@npm:^4.8.0": + version: 4.9.1 + resolution: "@eslint-community/eslint-utils@npm:4.9.1" + dependencies: + eslint-visitor-keys: "npm:^3.4.3" + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + checksum: 10c0/dc4ab5e3e364ef27e33666b11f4b86e1a6c1d7cbf16f0c6ff87b1619b3562335e9201a3d6ce806221887ff780ec9d828962a290bb910759fd40a674686503f02 + languageName: node + linkType: hard + +"@eslint-community/regexpp@npm:^4.12.1": + version: 4.12.2 + resolution: "@eslint-community/regexpp@npm:4.12.2" + checksum: 10c0/fddcbc66851b308478d04e302a4d771d6917a0b3740dc351513c0da9ca2eab8a1adf99f5e0aa7ab8b13fa0df005c81adeee7e63a92f3effd7d367a163b721c2d + languageName: node + linkType: hard + +"@eslint/config-array@npm:^0.21.1": + version: 0.21.1 + resolution: "@eslint/config-array@npm:0.21.1" + dependencies: + "@eslint/object-schema": "npm:^2.1.7" + debug: "npm:^4.3.1" + minimatch: "npm:^3.1.2" + checksum: 10c0/2f657d4edd6ddcb920579b72e7a5b127865d4c3fb4dda24f11d5c4f445a93ca481aebdbd6bf3291c536f5d034458dbcbb298ee3b698bc6c9dd02900fe87eec3c + languageName: node + linkType: hard + +"@eslint/config-helpers@npm:^0.4.2": + version: 0.4.2 + resolution: "@eslint/config-helpers@npm:0.4.2" + dependencies: + "@eslint/core": "npm:^0.17.0" + checksum: 10c0/92efd7a527b2d17eb1a148409d71d80f9ac160b565ac73ee092252e8bf08ecd08670699f46b306b94f13d22e88ac88a612120e7847570dd7cdc72f234d50dcb4 + languageName: node + linkType: hard + +"@eslint/core@npm:^0.17.0": + version: 0.17.0 + resolution: "@eslint/core@npm:0.17.0" + dependencies: + "@types/json-schema": "npm:^7.0.15" + checksum: 10c0/9a580f2246633bc752298e7440dd942ec421860d1946d0801f0423830e67887e4aeba10ab9a23d281727a978eb93d053d1922a587d502942a713607f40ed704e + languageName: node + linkType: hard + +"@eslint/eslintrc@npm:^3.3.1": + version: 3.3.4 + resolution: "@eslint/eslintrc@npm:3.3.4" + dependencies: + ajv: "npm:^6.14.0" + debug: "npm:^4.3.2" + espree: "npm:^10.0.1" + globals: "npm:^14.0.0" + ignore: "npm:^5.2.0" + import-fresh: "npm:^3.2.1" + js-yaml: "npm:^4.1.1" + minimatch: "npm:^3.1.3" + strip-json-comments: "npm:^3.1.1" + checksum: 10c0/1fe481a6af03c09be8d92d67e2bbf693b7522b0591934bfb44bd13e297649b13e4ec5e3fc70b02e4497a17c1afbfa22f5bf5efa4fc06a24abace8e5d097fec8c + languageName: node + linkType: hard + +"@eslint/js@npm:9.39.3, @eslint/js@npm:^9.37.0": + version: 9.39.3 + resolution: "@eslint/js@npm:9.39.3" + checksum: 10c0/df1c70d6681c8daf4a3c86dfac159fcd98a73c4620c4fbe2be6caab1f30a34c7de0ad88ab0e81162376d2cde1a2eed1c32eff5f917ca369870930a51f8e818f1 + languageName: node + linkType: hard + +"@eslint/object-schema@npm:^2.1.7": + version: 2.1.7 + resolution: "@eslint/object-schema@npm:2.1.7" + checksum: 10c0/936b6e499853d1335803f556d526c86f5fe2259ed241bc665000e1d6353828edd913feed43120d150adb75570cae162cf000b5b0dfc9596726761c36b82f4e87 + languageName: node + linkType: hard + +"@eslint/plugin-kit@npm:^0.4.1": + version: 0.4.1 + resolution: "@eslint/plugin-kit@npm:0.4.1" + dependencies: + "@eslint/core": "npm:^0.17.0" + levn: "npm:^0.4.1" + checksum: 10c0/51600f78b798f172a9915dffb295e2ffb44840d583427bc732baf12ecb963eb841b253300e657da91d890f4b323d10a1bd12934bf293e3018d8bb66fdce5217b + languageName: node + linkType: hard + +"@gar/promise-retry@npm:^1.0.0": + version: 1.0.2 + resolution: "@gar/promise-retry@npm:1.0.2" + dependencies: + retry: "npm:^0.13.1" + checksum: 10c0/748a84fb0ab962f7867966f21dc24d1872c53c1656dd3352320fe69ad3b2043f2dfdb3be024c7636ce4904c5ba1da22d0f3558e489c3de578f5bb520f062d0fd + languageName: node + linkType: hard + +"@hublib-web/content-suggestions@workspace:packages/content-suggestions": + version: 0.0.0-use.local + resolution: "@hublib-web/content-suggestions@workspace:packages/content-suggestions" + dependencies: + "@angular/common": "npm:^20.3.17" + "@angular/core": "npm:^20.3.17" + "@hublib-web/tach-typography": "workspace:*" + "@storybook/addon-essentials": "npm:8.6.14" + "@storybook/react": "npm:8.6.14" + "@storybook/react-vite": "npm:8.6.14" + "@types/react": "npm:^19.2.2" + antd: "npm:^5.29.3" + react: "npm:^19.2.0" + react-dom: "npm:^19.2.0" + rxjs: "npm:^7.8.2" + storybook: "npm:8.6.14" + tsup: "npm:^8.5.0" + typescript: "npm:^5.9.3" + vite: "npm:6.4.1" + peerDependencies: + "@angular/common": ">=17.0.0" + "@angular/core": ">=17.0.0" + "@hublib-web/tach-typography": ">=0.1.0" + antd: ">=5.0.0" + react: ">=18.0.0" + react-dom: ">=18.0.0" + rxjs: ">=7.0.0" + peerDependenciesMeta: + "@angular/common": + optional: true + "@angular/core": + optional: true + antd: + optional: true + react: + optional: true + react-dom: + optional: true + rxjs: + optional: true + languageName: unknown + linkType: soft + +"@hublib-web/root@workspace:.": + version: 0.0.0-use.local + resolution: "@hublib-web/root@workspace:." + dependencies: + "@eslint/js": "npm:^9.37.0" + "@storybook/addon-essentials": "npm:8.6.14" + "@storybook/react-vite": "npm:8.6.14" + "@types/node": "npm:^24.6.1" + eslint: "npm:^9.37.0" + prettier: "npm:^3.6.2" + storybook: "npm:8.6.14" + typescript: "npm:^5.9.3" + vitest: "npm:^3.2.4" + languageName: unknown + linkType: soft + +"@hublib-web/tach-typography@workspace:*, @hublib-web/tach-typography@workspace:packages/tach-typography": + version: 0.0.0-use.local + resolution: "@hublib-web/tach-typography@workspace:packages/tach-typography" + dependencies: + "@angular/animations": "npm:^20.3.17" + "@angular/common": "npm:^20.3.17" + "@angular/core": "npm:^20.3.17" + "@angular/forms": "npm:^20.3.17" + "@angular/platform-browser": "npm:^20.3.17" + "@angular/router": "npm:^20.3.17" + "@storybook/addon-a11y": "npm:8.6.14" + "@storybook/addon-essentials": "npm:8.6.14" + "@storybook/addon-interactions": "npm:8.6.14" + "@storybook/blocks": "npm:8.6.14" + "@storybook/react-vite": "npm:8.6.14" + "@storybook/test": "npm:8.6.14" + "@types/react": "npm:^19.2.2" + antd: "npm:^5.29.3" + ng-zorro-antd: "npm:^20.4.4" + react: "npm:^19.2.0" + react-dom: "npm:^19.2.0" + rxjs: "npm:^7.8.2" + storybook: "npm:8.6.14" + tsup: "npm:^8.5.0" + typescript: "npm:^5.9.3" + vite: "npm:6.4.1" + peerDependencies: + "@angular/animations": ">=17.0.0" + "@angular/common": ">=17.0.0" + "@angular/core": ">=17.0.0" + "@angular/forms": ">=17.0.0" + "@angular/platform-browser": ">=17.0.0" + "@angular/router": ">=17.0.0" + antd: ">=5.0.0" + ng-zorro-antd: ">=17.0.0" + react: ">=18.0.0" + react-dom: ">=18.0.0" + rxjs: ">=7.0.0" + peerDependenciesMeta: + "@angular/animations": + optional: true + "@angular/common": + optional: true + "@angular/core": + optional: true + "@angular/forms": + optional: true + "@angular/platform-browser": + optional: true + "@angular/router": + optional: true + antd: + optional: true + ng-zorro-antd: + optional: true + react: + optional: true + react-dom: + optional: true + rxjs: + optional: true + languageName: unknown + linkType: soft + +"@hublib-web/video-player@workspace:packages/video-player": + version: 0.0.0-use.local + resolution: "@hublib-web/video-player@workspace:packages/video-player" + dependencies: + "@ant-design/icons": "npm:5.3.7" + "@storybook/addon-essentials": "npm:8.6.14" + "@storybook/react": "npm:8.6.14" + "@storybook/react-vite": "npm:8.6.14" + "@testing-library/dom": "npm:^10.4.1" + "@testing-library/jest-dom": "npm:^6.9.1" + "@testing-library/react": "npm:^16.3.0" + "@types/node": "npm:22.12.0" + "@types/react": "npm:19.0.2" + "@types/react-dom": "npm:19.0.2" + antd: "npm:5.29.3" + classnames: "npm:2.5.1" + eslint: "npm:^9.37.0" + hls.js: "npm:1.6.14" + jsdom: "npm:^22.1.0" + lodash: "npm:4.17.21" + react: "npm:19.0.0" + react-device-detect: "npm:2.2.3" + react-dom: "npm:19.0.0" + sass: "npm:1.83.4" + storybook: "npm:8.6.14" + typescript: "npm:5.9.3" + video.js: "npm:8.23.4" + vite: "npm:6.4.1" + vitest: "npm:^3.2.4" + peerDependencies: + "@angular/common": ^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0 + "@angular/core": ^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0 + "@angular/forms": ^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0 + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + "@angular/common": + optional: true + "@angular/core": + optional: true + "@angular/forms": + optional: true + react: + optional: true + react-dom: + optional: true + languageName: unknown + linkType: soft + +"@humanfs/core@npm:^0.19.1": + version: 0.19.1 + resolution: "@humanfs/core@npm:0.19.1" + checksum: 10c0/aa4e0152171c07879b458d0e8a704b8c3a89a8c0541726c6b65b81e84fd8b7564b5d6c633feadc6598307d34564bd53294b533491424e8e313d7ab6c7bc5dc67 + languageName: node + linkType: hard + +"@humanfs/node@npm:^0.16.6": + version: 0.16.7 + resolution: "@humanfs/node@npm:0.16.7" + dependencies: + "@humanfs/core": "npm:^0.19.1" + "@humanwhocodes/retry": "npm:^0.4.0" + checksum: 10c0/9f83d3cf2cfa37383e01e3cdaead11cd426208e04c44adcdd291aa983aaf72d7d3598844d2fe9ce54896bb1bf8bd4b56883376611c8905a19c44684642823f30 + languageName: node + linkType: hard + +"@humanwhocodes/module-importer@npm:^1.0.1": + version: 1.0.1 + resolution: "@humanwhocodes/module-importer@npm:1.0.1" + checksum: 10c0/909b69c3b86d482c26b3359db16e46a32e0fb30bd306a3c176b8313b9e7313dba0f37f519de6aa8b0a1921349e505f259d19475e123182416a506d7f87e7f529 + languageName: node + linkType: hard + +"@humanwhocodes/retry@npm:^0.4.0, @humanwhocodes/retry@npm:^0.4.2": + version: 0.4.3 + resolution: "@humanwhocodes/retry@npm:0.4.3" + checksum: 10c0/3775bb30087d4440b3f7406d5a057777d90e4b9f435af488a4923ef249e93615fb78565a85f173a186a076c7706a81d0d57d563a2624e4de2c5c9c66c486ce42 + languageName: node + linkType: hard + +"@isaacs/cliui@npm:^8.0.2": + version: 8.0.2 + resolution: "@isaacs/cliui@npm:8.0.2" + dependencies: + string-width: "npm:^5.1.2" + string-width-cjs: "npm:string-width@^4.2.0" + strip-ansi: "npm:^7.0.1" + strip-ansi-cjs: "npm:strip-ansi@^6.0.1" + wrap-ansi: "npm:^8.1.0" + wrap-ansi-cjs: "npm:wrap-ansi@^7.0.0" + checksum: 10c0/b1bf42535d49f11dc137f18d5e4e63a28c5569de438a221c369483731e9dac9fb797af554e8bf02b6192d1e5eba6e6402cf93900c3d0ac86391d00d04876789e + languageName: node + linkType: hard + +"@isaacs/fs-minipass@npm:^4.0.0": + version: 4.0.1 + resolution: "@isaacs/fs-minipass@npm:4.0.1" + dependencies: + minipass: "npm:^7.0.4" + checksum: 10c0/c25b6dc1598790d5b55c0947a9b7d111cfa92594db5296c3b907e2f533c033666f692a3939eadac17b1c7c40d362d0b0635dc874cbfe3e70db7c2b07cc97a5d2 + languageName: node + linkType: hard + +"@joshwooding/vite-plugin-react-docgen-typescript@npm:0.5.0": + version: 0.5.0 + resolution: "@joshwooding/vite-plugin-react-docgen-typescript@npm:0.5.0" + dependencies: + glob: "npm:^10.0.0" + magic-string: "npm:^0.27.0" + react-docgen-typescript: "npm:^2.2.2" + peerDependencies: + typescript: ">= 4.3.x" + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/dd5bcd01c685c67bcfb4676639f15319937867ad5af0dc083991fe9ae9e66302c72fec53d12e0616a45eadb0ae715bea144d0302f408a44f1eeab14c5160ad4a + languageName: node + linkType: hard + +"@jridgewell/gen-mapping@npm:^0.3.12, @jridgewell/gen-mapping@npm:^0.3.2, @jridgewell/gen-mapping@npm:^0.3.5": + version: 0.3.13 + resolution: "@jridgewell/gen-mapping@npm:0.3.13" + dependencies: + "@jridgewell/sourcemap-codec": "npm:^1.5.0" + "@jridgewell/trace-mapping": "npm:^0.3.24" + checksum: 10c0/9a7d65fb13bd9aec1fbab74cda08496839b7e2ceb31f5ab922b323e94d7c481ce0fc4fd7e12e2610915ed8af51178bdc61e168e92a8c8b8303b030b03489b13b + languageName: node + linkType: hard + +"@jridgewell/remapping@npm:^2.3.5": + version: 2.3.5 + resolution: "@jridgewell/remapping@npm:2.3.5" + dependencies: + "@jridgewell/gen-mapping": "npm:^0.3.5" + "@jridgewell/trace-mapping": "npm:^0.3.24" + checksum: 10c0/3de494219ffeb2c5c38711d0d7bb128097edf91893090a2dbc8ee0b55d092bb7347b1fd0f478486c5eab010e855c73927b1666f2107516d472d24a73017d1194 + languageName: node + linkType: hard + +"@jridgewell/resolve-uri@npm:^3.1.0": + version: 3.1.2 + resolution: "@jridgewell/resolve-uri@npm:3.1.2" + checksum: 10c0/d502e6fb516b35032331406d4e962c21fe77cdf1cbdb49c6142bcbd9e30507094b18972778a6e27cbad756209cfe34b1a27729e6fa08a2eb92b33943f680cf1e + languageName: node + linkType: hard + +"@jridgewell/sourcemap-codec@npm:^1.4.13, @jridgewell/sourcemap-codec@npm:^1.4.14, @jridgewell/sourcemap-codec@npm:^1.5.0, @jridgewell/sourcemap-codec@npm:^1.5.5": + version: 1.5.5 + resolution: "@jridgewell/sourcemap-codec@npm:1.5.5" + checksum: 10c0/f9e538f302b63c0ebc06eecb1dd9918dd4289ed36147a0ddce35d6ea4d7ebbda243cda7b2213b6a5e1d8087a298d5cf630fb2bd39329cdecb82017023f6081a0 + languageName: node + linkType: hard + +"@jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.28": + version: 0.3.31 + resolution: "@jridgewell/trace-mapping@npm:0.3.31" + dependencies: + "@jridgewell/resolve-uri": "npm:^3.1.0" + "@jridgewell/sourcemap-codec": "npm:^1.4.14" + checksum: 10c0/4b30ec8cd56c5fd9a661f088230af01e0c1a3888d11ffb6b47639700f71225be21d1f7e168048d6d4f9449207b978a235c07c8f15c07705685d16dc06280e9d9 + languageName: node + linkType: hard + +"@mdx-js/react@npm:^3.0.0": + version: 3.1.1 + resolution: "@mdx-js/react@npm:3.1.1" + dependencies: + "@types/mdx": "npm:^2.0.0" + peerDependencies: + "@types/react": ">=16" + react: ">=16" + checksum: 10c0/34ca98bc2a0f969894ea144dc5c8a5294690505458cd24965cd9be854d779c193ad9192bf9143c4c18438fafd1902e100d99067e045c69319288562d497558c6 + languageName: node + linkType: hard + +"@npmcli/agent@npm:^4.0.0": + version: 4.0.0 + resolution: "@npmcli/agent@npm:4.0.0" + dependencies: + agent-base: "npm:^7.1.0" + http-proxy-agent: "npm:^7.0.0" + https-proxy-agent: "npm:^7.0.1" + lru-cache: "npm:^11.2.1" + socks-proxy-agent: "npm:^8.0.3" + checksum: 10c0/f7b5ce0f3dd42c3f8c6546e8433573d8049f67ef11ec22aa4704bc41483122f68bf97752e06302c455ead667af5cb753e6a09bff06632bc465c1cfd4c4b75a53 + languageName: node + linkType: hard + +"@npmcli/fs@npm:^5.0.0": + version: 5.0.0 + resolution: "@npmcli/fs@npm:5.0.0" + dependencies: + semver: "npm:^7.3.5" + checksum: 10c0/26e376d780f60ff16e874a0ac9bc3399186846baae0b6e1352286385ac134d900cc5dafaded77f38d77f86898fc923ae1cee9d7399f0275b1aa24878915d722b + languageName: node + linkType: hard + +"@parcel/watcher-android-arm64@npm:2.5.6": + version: 2.5.6 + resolution: "@parcel/watcher-android-arm64@npm:2.5.6" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@parcel/watcher-darwin-arm64@npm:2.5.6": + version: 2.5.6 + resolution: "@parcel/watcher-darwin-arm64@npm:2.5.6" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@parcel/watcher-darwin-x64@npm:2.5.6": + version: 2.5.6 + resolution: "@parcel/watcher-darwin-x64@npm:2.5.6" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@parcel/watcher-freebsd-x64@npm:2.5.6": + version: 2.5.6 + resolution: "@parcel/watcher-freebsd-x64@npm:2.5.6" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@parcel/watcher-linux-arm-glibc@npm:2.5.6": + version: 2.5.6 + resolution: "@parcel/watcher-linux-arm-glibc@npm:2.5.6" + conditions: os=linux & cpu=arm & libc=glibc + languageName: node + linkType: hard + +"@parcel/watcher-linux-arm-musl@npm:2.5.6": + version: 2.5.6 + resolution: "@parcel/watcher-linux-arm-musl@npm:2.5.6" + conditions: os=linux & cpu=arm & libc=musl + languageName: node + linkType: hard + +"@parcel/watcher-linux-arm64-glibc@npm:2.5.6": + version: 2.5.6 + resolution: "@parcel/watcher-linux-arm64-glibc@npm:2.5.6" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@parcel/watcher-linux-arm64-musl@npm:2.5.6": + version: 2.5.6 + resolution: "@parcel/watcher-linux-arm64-musl@npm:2.5.6" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@parcel/watcher-linux-x64-glibc@npm:2.5.6": + version: 2.5.6 + resolution: "@parcel/watcher-linux-x64-glibc@npm:2.5.6" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@parcel/watcher-linux-x64-musl@npm:2.5.6": + version: 2.5.6 + resolution: "@parcel/watcher-linux-x64-musl@npm:2.5.6" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@parcel/watcher-win32-arm64@npm:2.5.6": + version: 2.5.6 + resolution: "@parcel/watcher-win32-arm64@npm:2.5.6" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@parcel/watcher-win32-ia32@npm:2.5.6": + version: 2.5.6 + resolution: "@parcel/watcher-win32-ia32@npm:2.5.6" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@parcel/watcher-win32-x64@npm:2.5.6": + version: 2.5.6 + resolution: "@parcel/watcher-win32-x64@npm:2.5.6" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@parcel/watcher@npm:^2.4.1": + version: 2.5.6 + resolution: "@parcel/watcher@npm:2.5.6" + dependencies: + "@parcel/watcher-android-arm64": "npm:2.5.6" + "@parcel/watcher-darwin-arm64": "npm:2.5.6" + "@parcel/watcher-darwin-x64": "npm:2.5.6" + "@parcel/watcher-freebsd-x64": "npm:2.5.6" + "@parcel/watcher-linux-arm-glibc": "npm:2.5.6" + "@parcel/watcher-linux-arm-musl": "npm:2.5.6" + "@parcel/watcher-linux-arm64-glibc": "npm:2.5.6" + "@parcel/watcher-linux-arm64-musl": "npm:2.5.6" + "@parcel/watcher-linux-x64-glibc": "npm:2.5.6" + "@parcel/watcher-linux-x64-musl": "npm:2.5.6" + "@parcel/watcher-win32-arm64": "npm:2.5.6" + "@parcel/watcher-win32-ia32": "npm:2.5.6" + "@parcel/watcher-win32-x64": "npm:2.5.6" + detect-libc: "npm:^2.0.3" + is-glob: "npm:^4.0.3" + node-addon-api: "npm:^7.0.0" + node-gyp: "npm:latest" + picomatch: "npm:^4.0.3" + dependenciesMeta: + "@parcel/watcher-android-arm64": + optional: true + "@parcel/watcher-darwin-arm64": + optional: true + "@parcel/watcher-darwin-x64": + optional: true + "@parcel/watcher-freebsd-x64": + optional: true + "@parcel/watcher-linux-arm-glibc": + optional: true + "@parcel/watcher-linux-arm-musl": + optional: true + "@parcel/watcher-linux-arm64-glibc": + optional: true + "@parcel/watcher-linux-arm64-musl": + optional: true + "@parcel/watcher-linux-x64-glibc": + optional: true + "@parcel/watcher-linux-x64-musl": + optional: true + "@parcel/watcher-win32-arm64": + optional: true + "@parcel/watcher-win32-ia32": + optional: true + "@parcel/watcher-win32-x64": + optional: true + checksum: 10c0/1e1d91f92e94e4640089a7cead243b2b81ca9aa8e1c862a97a25f589e84fbf1ad93abeb503f325c43a8c0e024ae0e74b48ec42c1cd84e8e423a3a87d25ded4f2 + languageName: node + linkType: hard + +"@pkgjs/parseargs@npm:^0.11.0": + version: 0.11.0 + resolution: "@pkgjs/parseargs@npm:0.11.0" + checksum: 10c0/5bd7576bb1b38a47a7fc7b51ac9f38748e772beebc56200450c4a817d712232b8f1d3ef70532c80840243c657d491cf6a6be1e3a214cff907645819fdc34aadd + languageName: node + linkType: hard + +"@rc-component/async-validator@npm:^5.0.3": + version: 5.1.0 + resolution: "@rc-component/async-validator@npm:5.1.0" + dependencies: + "@babel/runtime": "npm:^7.24.4" + checksum: 10c0/6acbac53777a4e189ec3d825cd689af9a1ba6e370289794d573a7b8fa4678ae9cb9583d9a4f67035e6165d19e414a5fb406b73549d44b973d981f627f996480e + languageName: node + linkType: hard + +"@rc-component/color-picker@npm:~2.0.1": + version: 2.0.1 + resolution: "@rc-component/color-picker@npm:2.0.1" + dependencies: + "@ant-design/fast-color": "npm:^2.0.6" + "@babel/runtime": "npm:^7.23.6" + classnames: "npm:^2.2.6" + rc-util: "npm:^5.38.1" + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 10c0/be0b851a609fdb360367f38765b568c52f935dde4e70f7b832146a921eb221ddd51735144a35ce36c55810f47f830078e271508920585e3ab789e47c4f824775 + languageName: node + linkType: hard + +"@rc-component/context@npm:^1.4.0": + version: 1.4.0 + resolution: "@rc-component/context@npm:1.4.0" + dependencies: + "@babel/runtime": "npm:^7.10.1" + rc-util: "npm:^5.27.0" + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 10c0/4da3773deca15107adccf6635c703663f5a9202c09d8877ee003ccf144de9991c5eefbca4458f31d95d234e57babf0f8f1926e0b887f8a503a43119a39a653aa + languageName: node + linkType: hard + +"@rc-component/mini-decimal@npm:^1.0.1": + version: 1.1.0 + resolution: "@rc-component/mini-decimal@npm:1.1.0" + dependencies: + "@babel/runtime": "npm:^7.18.0" + checksum: 10c0/53a7ca71591bc03eba71ab844016df788e83c96c3c7c542710c3eeeae7f55340c88c4930d7a0b11ebe7f1cd9fc65cb5bc284f466fbe95589992dd9833edf6ddf + languageName: node + linkType: hard + +"@rc-component/mutate-observer@npm:^1.1.0": + version: 1.1.0 + resolution: "@rc-component/mutate-observer@npm:1.1.0" + dependencies: + "@babel/runtime": "npm:^7.18.0" + classnames: "npm:^2.3.2" + rc-util: "npm:^5.24.4" + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 10c0/90159acd831ed04b7d2d412354892fd042ad51e63bf17a9fcfa84f3b799e23479617fcc7404566a5b97e5b512b6097b87b8eb36e0c419d803692796a39186a2e + languageName: node + linkType: hard + +"@rc-component/portal@npm:^1.0.0-8, @rc-component/portal@npm:^1.0.0-9, @rc-component/portal@npm:^1.0.2, @rc-component/portal@npm:^1.1.0, @rc-component/portal@npm:^1.1.1": + version: 1.1.2 + resolution: "@rc-component/portal@npm:1.1.2" + dependencies: + "@babel/runtime": "npm:^7.18.0" + classnames: "npm:^2.3.2" + rc-util: "npm:^5.24.4" + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 10c0/3c0297356635d47f364be79de02bb16009f06b1ce82124c3e63da9a71b8e7d3ea2c147e4703ead9cae0f662435a21e9feb30d2edf7197108bc3dbf969f3ca51f + languageName: node + linkType: hard + +"@rc-component/qrcode@npm:~1.1.0": + version: 1.1.1 + resolution: "@rc-component/qrcode@npm:1.1.1" + dependencies: + "@babel/runtime": "npm:^7.24.7" + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 10c0/8b7f38b2f1b319322a7b1b75ce2766789035cdf61d31ee45d0ca9e3570ee7345760c9fc1d51bb9ff9c65d8d7a823d90abd31b1ff4f207480c54ed04479fb8b25 + languageName: node + linkType: hard + +"@rc-component/tour@npm:~1.15.1": + version: 1.15.1 + resolution: "@rc-component/tour@npm:1.15.1" + dependencies: + "@babel/runtime": "npm:^7.18.0" + "@rc-component/portal": "npm:^1.0.0-9" + "@rc-component/trigger": "npm:^2.0.0" + classnames: "npm:^2.3.2" + rc-util: "npm:^5.24.4" + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 10c0/8324edb96bbca2838e9bdcca5ac02e615596593d0e79ee74ad2e7d3a4801975f205907170bb16f92303b22701bc730c34337cb10270281cea36659bac10193b5 + languageName: node + linkType: hard + +"@rc-component/trigger@npm:^2.0.0, @rc-component/trigger@npm:^2.1.1, @rc-component/trigger@npm:^2.3.0": + version: 2.3.1 + resolution: "@rc-component/trigger@npm:2.3.1" + dependencies: + "@babel/runtime": "npm:^7.23.2" + "@rc-component/portal": "npm:^1.1.0" + classnames: "npm:^2.3.2" + rc-motion: "npm:^2.0.0" + rc-resize-observer: "npm:^1.3.1" + rc-util: "npm:^5.44.0" + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 10c0/6baf0b0c22cea1a3869f931948145d32c6a3dfb711d022d290453685e79a4f06fedaf9e250e60082506ce3dee5a861ef5b78b337b05a2fa5a9a77cf0b4d97ec4 + languageName: node + linkType: hard + +"@rollup/pluginutils@npm:^5.0.2": + version: 5.3.0 + resolution: "@rollup/pluginutils@npm:5.3.0" + dependencies: + "@types/estree": "npm:^1.0.0" + estree-walker: "npm:^2.0.2" + picomatch: "npm:^4.0.2" + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + checksum: 10c0/001834bf62d7cf5bac424d2617c113f7f7d3b2bf3c1778cbcccb72cdc957b68989f8e7747c782c2b911f1dde8257f56f8ac1e779e29e74e638e3f1e2cac2bcd0 + languageName: node + linkType: hard + +"@rollup/rollup-android-arm-eabi@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.59.0" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@rollup/rollup-android-arm64@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-android-arm64@npm:4.59.0" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-darwin-arm64@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-darwin-arm64@npm:4.59.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-darwin-x64@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-darwin-x64@npm:4.59.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-freebsd-arm64@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-freebsd-arm64@npm:4.59.0" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-freebsd-x64@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-freebsd-x64@npm:4.59.0" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm-gnueabihf@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.59.0" + conditions: os=linux & cpu=arm & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm-musleabihf@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.59.0" + conditions: os=linux & cpu=arm & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-gnu@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.59.0" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-musl@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.59.0" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-loong64-gnu@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-linux-loong64-gnu@npm:4.59.0" + conditions: os=linux & cpu=loong64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-loong64-musl@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-linux-loong64-musl@npm:4.59.0" + conditions: os=linux & cpu=loong64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-ppc64-gnu@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-linux-ppc64-gnu@npm:4.59.0" + conditions: os=linux & cpu=ppc64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-ppc64-musl@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-linux-ppc64-musl@npm:4.59.0" + conditions: os=linux & cpu=ppc64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-riscv64-gnu@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.59.0" + conditions: os=linux & cpu=riscv64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-riscv64-musl@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.59.0" + conditions: os=linux & cpu=riscv64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-s390x-gnu@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.59.0" + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-gnu@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.59.0" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-musl@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.59.0" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-openbsd-x64@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-openbsd-x64@npm:4.59.0" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-openharmony-arm64@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-openharmony-arm64@npm:4.59.0" + conditions: os=openharmony & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-win32-arm64-msvc@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.59.0" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-win32-ia32-msvc@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.59.0" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@rollup/rollup-win32-x64-gnu@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-win32-x64-gnu@npm:4.59.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-win32-x64-msvc@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.59.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@storybook/addon-a11y@npm:8.6.14": + version: 8.6.14 + resolution: "@storybook/addon-a11y@npm:8.6.14" + dependencies: + "@storybook/addon-highlight": "npm:8.6.14" + "@storybook/global": "npm:^5.0.0" + "@storybook/test": "npm:8.6.14" + axe-core: "npm:^4.2.0" + peerDependencies: + storybook: ^8.6.14 + checksum: 10c0/bc1ea6bc4f4229f2a88f40a1fc768628cad7744ca39676228a99656211942d96783d1d20aa475ac03bc653c29ed896a6179b3b17c8226effb598111cd8c8d146 + languageName: node + linkType: hard + +"@storybook/addon-actions@npm:8.6.14": + version: 8.6.14 + resolution: "@storybook/addon-actions@npm:8.6.14" + dependencies: + "@storybook/global": "npm:^5.0.0" + "@types/uuid": "npm:^9.0.1" + dequal: "npm:^2.0.2" + polished: "npm:^4.2.2" + uuid: "npm:^9.0.0" + peerDependencies: + storybook: ^8.6.14 + checksum: 10c0/7a5d4faa15dd42f8f98335b6d817e1e2ffb50084001dc430aa3baf5c77edece16f0e866e8ce488e1c7a7a8f85465a6a71421373b87877375beafbe4729ada14a + languageName: node + linkType: hard + +"@storybook/addon-backgrounds@npm:8.6.14": + version: 8.6.14 + resolution: "@storybook/addon-backgrounds@npm:8.6.14" + dependencies: + "@storybook/global": "npm:^5.0.0" + memoizerific: "npm:^1.11.3" + ts-dedent: "npm:^2.0.0" + peerDependencies: + storybook: ^8.6.14 + checksum: 10c0/e42befb774082313e7c0b94676dbbaa6a79dfd65b127dd474966d878fbd94e70a35651d5daccd1e09138775a1d275257279ae1092ddaaa840b7dc21839f0f5b9 + languageName: node + linkType: hard + +"@storybook/addon-controls@npm:8.6.14": + version: 8.6.14 + resolution: "@storybook/addon-controls@npm:8.6.14" + dependencies: + "@storybook/global": "npm:^5.0.0" + dequal: "npm:^2.0.2" + ts-dedent: "npm:^2.0.0" + peerDependencies: + storybook: ^8.6.14 + checksum: 10c0/a02a818be873ee7a630f5ca4a46fe16fc31edec2b16b0988ce4f8bcdd63650aaf1a2cd0356e1b42557e1a1bb2f46de4653e071e7b2b53a60c9a3e60a93fe19ef + languageName: node + linkType: hard + +"@storybook/addon-docs@npm:8.6.14": + version: 8.6.14 + resolution: "@storybook/addon-docs@npm:8.6.14" + dependencies: + "@mdx-js/react": "npm:^3.0.0" + "@storybook/blocks": "npm:8.6.14" + "@storybook/csf-plugin": "npm:8.6.14" + "@storybook/react-dom-shim": "npm:8.6.14" + react: "npm:^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + react-dom: "npm:^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + ts-dedent: "npm:^2.0.0" + peerDependencies: + storybook: ^8.6.14 + checksum: 10c0/1668d40977624e3495b0cd3f009957994db04cec6de39645311e892cc1de99bf5a98bea9e9783d8063627c27b9545d222b1fdc490c23c6fadeead42ce0605fcb + languageName: node + linkType: hard + +"@storybook/addon-essentials@npm:8.6.14": + version: 8.6.14 + resolution: "@storybook/addon-essentials@npm:8.6.14" + dependencies: + "@storybook/addon-actions": "npm:8.6.14" + "@storybook/addon-backgrounds": "npm:8.6.14" + "@storybook/addon-controls": "npm:8.6.14" + "@storybook/addon-docs": "npm:8.6.14" + "@storybook/addon-highlight": "npm:8.6.14" + "@storybook/addon-measure": "npm:8.6.14" + "@storybook/addon-outline": "npm:8.6.14" + "@storybook/addon-toolbars": "npm:8.6.14" + "@storybook/addon-viewport": "npm:8.6.14" + ts-dedent: "npm:^2.0.0" + peerDependencies: + storybook: ^8.6.14 + checksum: 10c0/77235e359d25267f7339e3c4a920329fccf7febbc5b81e13e7fc1f7d429e22385027dfaf30e2639865271c270d810df815a165e11a512735eedebb5c649c5adf + languageName: node + linkType: hard + +"@storybook/addon-highlight@npm:8.6.14": + version: 8.6.14 + resolution: "@storybook/addon-highlight@npm:8.6.14" + dependencies: + "@storybook/global": "npm:^5.0.0" + peerDependencies: + storybook: ^8.6.14 + checksum: 10c0/db04b21cc3dc6185ce0051de08e0402899986d0b4b640ddbf1c8386bea5b1ed54b5a9b7e8a40e02973b73706839bcda1b324daf1eaafb465215247e6f548f817 + languageName: node + linkType: hard + +"@storybook/addon-interactions@npm:8.6.14": + version: 8.6.14 + resolution: "@storybook/addon-interactions@npm:8.6.14" + dependencies: + "@storybook/global": "npm:^5.0.0" + "@storybook/instrumenter": "npm:8.6.14" + "@storybook/test": "npm:8.6.14" + polished: "npm:^4.2.2" + ts-dedent: "npm:^2.2.0" + peerDependencies: + storybook: ^8.6.14 + checksum: 10c0/953a6087a416f21355641bf3306aeaf8b8177a6e702148c07c26bbb1a2a25bc40ca19693760a7dc169813da0d4d3da005fbfd48cba6615391d72bddcdda95587 + languageName: node + linkType: hard + +"@storybook/addon-measure@npm:8.6.14": + version: 8.6.14 + resolution: "@storybook/addon-measure@npm:8.6.14" + dependencies: + "@storybook/global": "npm:^5.0.0" + tiny-invariant: "npm:^1.3.1" + peerDependencies: + storybook: ^8.6.14 + checksum: 10c0/a44f1c23e1665adf01684ce62b9c98e5b460aa96024c3c7be4bf9caa7c1073c4d9470b88bc5f814856594b7b90d9b877d5d58cfdbef2df77d483c1c3694ce37e + languageName: node + linkType: hard + +"@storybook/addon-outline@npm:8.6.14": + version: 8.6.14 + resolution: "@storybook/addon-outline@npm:8.6.14" + dependencies: + "@storybook/global": "npm:^5.0.0" + ts-dedent: "npm:^2.0.0" + peerDependencies: + storybook: ^8.6.14 + checksum: 10c0/b54d71299a75588d7d424fb986433435d69974f4782986b7c4ef7db964bc9f85c75a07d5b0a2a0eec5b018284ddd4d4851e14fb4e131f41a6463fc16db234617 + languageName: node + linkType: hard + +"@storybook/addon-toolbars@npm:8.6.14": + version: 8.6.14 + resolution: "@storybook/addon-toolbars@npm:8.6.14" + peerDependencies: + storybook: ^8.6.14 + checksum: 10c0/3fb0fe13fab65be101abda613c1c92e08c2aa0cba97ff2e37aa410af5fe2c1ebc15203627039c265e9667af294ea0cd7bb6e7bd84cb854bad5d0245a9ce66b79 + languageName: node + linkType: hard + +"@storybook/addon-viewport@npm:8.6.14": + version: 8.6.14 + resolution: "@storybook/addon-viewport@npm:8.6.14" + dependencies: + memoizerific: "npm:^1.11.3" + peerDependencies: + storybook: ^8.6.14 + checksum: 10c0/00a353ce87c79a7b08fd78cab87045c5d29996ea3fcd2a4072380e0f76a6e0bfc9385f743b98764aaff0740e8460b9d2a37864a1d0e91bf48f26e3d5a1984e51 + languageName: node + linkType: hard + +"@storybook/blocks@npm:8.6.14": + version: 8.6.14 + resolution: "@storybook/blocks@npm:8.6.14" + dependencies: + "@storybook/icons": "npm:^1.2.12" + ts-dedent: "npm:^2.0.0" + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + storybook: ^8.6.14 + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true + checksum: 10c0/3f87c1f224031dee8b5fa6e296022997d21956832fea1e4ffa3525931c05a8ef6450b67c728635297a08548d65ef5abde05d7740d4ea3a9a811f2ff08a5f0148 + languageName: node + linkType: hard + +"@storybook/builder-vite@npm:8.6.14": + version: 8.6.14 + resolution: "@storybook/builder-vite@npm:8.6.14" + dependencies: + "@storybook/csf-plugin": "npm:8.6.14" + browser-assert: "npm:^1.2.1" + ts-dedent: "npm:^2.0.0" + peerDependencies: + storybook: ^8.6.14 + vite: ^4.0.0 || ^5.0.0 || ^6.0.0 + checksum: 10c0/c24008f8a6109156be4c1cd5772a0e1061c5993d4df0b999844c4de9f7345cfc2d6069ef2f95a55c1bc2a5e48ed4b3a88ba01fc7d190d6ef4238b28ca2e7e172 + languageName: node + linkType: hard + +"@storybook/components@npm:8.6.14": + version: 8.6.14 + resolution: "@storybook/components@npm:8.6.14" + peerDependencies: + storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 + checksum: 10c0/43a9192f312c8b2ac1aaeabcfc7c766215e934efd340b01edd9e71ca194ebf30ac896f60817ed539aec9d4183dc77296056e78c5c3705607875df79df7ab7acc + languageName: node + linkType: hard + +"@storybook/core@npm:8.6.14": + version: 8.6.14 + resolution: "@storybook/core@npm:8.6.14" + dependencies: + "@storybook/theming": "npm:8.6.14" + better-opn: "npm:^3.0.2" + browser-assert: "npm:^1.2.1" + esbuild: "npm:^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0 || ^0.25.0" + esbuild-register: "npm:^3.5.0" + jsdoc-type-pratt-parser: "npm:^4.0.0" + process: "npm:^0.11.10" + recast: "npm:^0.23.5" + semver: "npm:^7.6.2" + util: "npm:^0.12.5" + ws: "npm:^8.2.3" + peerDependencies: + prettier: ^2 || ^3 + peerDependenciesMeta: + prettier: + optional: true + checksum: 10c0/d1756b4a120c76b8eafa0b54d43969180b4cba8b212b98295a422ab738d7e9ae19d0fd1853de9e8335a6b4f8091dd6457649f6db9615d268c83b2248ffe5bf30 + languageName: node + linkType: hard + +"@storybook/csf-plugin@npm:8.6.14": + version: 8.6.14 + resolution: "@storybook/csf-plugin@npm:8.6.14" + dependencies: + unplugin: "npm:^1.3.1" + peerDependencies: + storybook: ^8.6.14 + checksum: 10c0/3f2cebd6046aea554d2e740c4d262005c580018dfcbcca8d9a589f9e893d407da405ace235595b3e110fb6ed21b840ff1645508a98764017ca5d1d4c56027172 + languageName: node + linkType: hard + +"@storybook/global@npm:^5.0.0": + version: 5.0.0 + resolution: "@storybook/global@npm:5.0.0" + checksum: 10c0/8f1b61dcdd3a89584540896e659af2ecc700bc740c16909a7be24ac19127ea213324de144a141f7caf8affaed017d064fea0618d453afbe027cf60f54b4a6d0b + languageName: node + linkType: hard + +"@storybook/icons@npm:^1.2.12": + version: 1.6.0 + resolution: "@storybook/icons@npm:1.6.0" + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + checksum: 10c0/bbec9201a78a730195f9cf377b15856dc414a54d04e30d16c379d062425cc617bfd0d6586ba1716012cfbdab461f0c9693a6a52920f9bd09c7b4291fb116f59c + languageName: node + linkType: hard + +"@storybook/instrumenter@npm:8.6.14": + version: 8.6.14 + resolution: "@storybook/instrumenter@npm:8.6.14" + dependencies: + "@storybook/global": "npm:^5.0.0" + "@vitest/utils": "npm:^2.1.1" + peerDependencies: + storybook: ^8.6.14 + checksum: 10c0/6b887e25d11404bb1b0f27eea310529732d9a6222d2581ae9f5d66d28e02b76a4ebe0a31d97322d88d5c9d2d2bd503e5f3da6b6f7dfc4c025eb7f86371db0e23 + languageName: node + linkType: hard + +"@storybook/manager-api@npm:8.6.14": + version: 8.6.14 + resolution: "@storybook/manager-api@npm:8.6.14" + peerDependencies: + storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 + checksum: 10c0/141089caf50df9f1dbd18c22b8e8dfa45641f67ab148c9956c046c0141ff7a70f3341f440c454d5f6247dac389499d67bad8b6c81cbcd6f08c7fe34bf42fd264 + languageName: node + linkType: hard + +"@storybook/preview-api@npm:8.6.14": + version: 8.6.14 + resolution: "@storybook/preview-api@npm:8.6.14" + peerDependencies: + storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 + checksum: 10c0/2e960ae54453d50d27f706dbfc685881534fbc8c5c7ebf4ebfba7d24f33b007f5814f8f9613cd36feb495e7f82cd746c1f88a04e9e107f5aba9972c886afc040 + languageName: node + linkType: hard + +"@storybook/react-dom-shim@npm:8.6.14": + version: 8.6.14 + resolution: "@storybook/react-dom-shim@npm:8.6.14" + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^8.6.14 + checksum: 10c0/6e54c05ab19be1c34084e8acd133d8d358c3b6824db01b4aff159be3f818bd12c3a17217fe1947244c4576d7d02875b486578f011edb0e2290cb62541a263c5f + languageName: node + linkType: hard + +"@storybook/react-vite@npm:8.6.14": + version: 8.6.14 + resolution: "@storybook/react-vite@npm:8.6.14" + dependencies: + "@joshwooding/vite-plugin-react-docgen-typescript": "npm:0.5.0" + "@rollup/pluginutils": "npm:^5.0.2" + "@storybook/builder-vite": "npm:8.6.14" + "@storybook/react": "npm:8.6.14" + find-up: "npm:^5.0.0" + magic-string: "npm:^0.30.0" + react-docgen: "npm:^7.0.0" + resolve: "npm:^1.22.8" + tsconfig-paths: "npm:^4.2.0" + peerDependencies: + "@storybook/test": 8.6.14 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^8.6.14 + vite: ^4.0.0 || ^5.0.0 || ^6.0.0 + peerDependenciesMeta: + "@storybook/test": + optional: true + checksum: 10c0/bbe1dc02e7ea01b27f0887cb5bb1b566ad8df76bcdda7d05307ecf348a9208fcdcbfe5a1a3482c8969335ba20ae65918e53cc6498ada5a9546e640e2d9d41fac + languageName: node + linkType: hard + +"@storybook/react@npm:8.6.14": + version: 8.6.14 + resolution: "@storybook/react@npm:8.6.14" + dependencies: + "@storybook/components": "npm:8.6.14" + "@storybook/global": "npm:^5.0.0" + "@storybook/manager-api": "npm:8.6.14" + "@storybook/preview-api": "npm:8.6.14" + "@storybook/react-dom-shim": "npm:8.6.14" + "@storybook/theming": "npm:8.6.14" + peerDependencies: + "@storybook/test": 8.6.14 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^8.6.14 + typescript: ">= 4.2.x" + peerDependenciesMeta: + "@storybook/test": + optional: true + typescript: + optional: true + checksum: 10c0/e447892d523b32a52708e6eabc142a3dc0433c23fc28d59206e3b03fe070df77e80998839c3496c22ad11b712499b8e0fbec0dacf31a006ea99b171dba74c43b + languageName: node + linkType: hard + +"@storybook/test@npm:8.6.14": + version: 8.6.14 + resolution: "@storybook/test@npm:8.6.14" + dependencies: + "@storybook/global": "npm:^5.0.0" + "@storybook/instrumenter": "npm:8.6.14" + "@testing-library/dom": "npm:10.4.0" + "@testing-library/jest-dom": "npm:6.5.0" + "@testing-library/user-event": "npm:14.5.2" + "@vitest/expect": "npm:2.0.5" + "@vitest/spy": "npm:2.0.5" + peerDependencies: + storybook: ^8.6.14 + checksum: 10c0/f2808db7d567b03320dbdd4a5e2b8ff8a92860138ff4fc87c7c18c3b2fbfb57158cc5ae936770222d7c3ef0fbed85f5e826762ddbeb7f0399961ab9528dbbcb8 + languageName: node + linkType: hard + +"@storybook/theming@npm:8.6.14": + version: 8.6.14 + resolution: "@storybook/theming@npm:8.6.14" + peerDependencies: + storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 + checksum: 10c0/765bfbfedcbdcdb719b164a14bb61b8ad60819c6124d0e1f243b6b45e62de877ec8dff6259092207a58d6c2771f4883650e9784a2be1aaf7e0ef0fe75465db0d + languageName: node + linkType: hard + +"@testing-library/dom@npm:10.4.0": + version: 10.4.0 + resolution: "@testing-library/dom@npm:10.4.0" + dependencies: + "@babel/code-frame": "npm:^7.10.4" + "@babel/runtime": "npm:^7.12.5" + "@types/aria-query": "npm:^5.0.1" + aria-query: "npm:5.3.0" + chalk: "npm:^4.1.0" + dom-accessibility-api: "npm:^0.5.9" + lz-string: "npm:^1.5.0" + pretty-format: "npm:^27.0.2" + checksum: 10c0/0352487720ecd433400671e773df0b84b8268fb3fe8e527cdfd7c11b1365b398b4e0eddba6e7e0c85e8d615f48257753283fccec41f6b986fd6c85f15eb5f84f + languageName: node + linkType: hard + +"@testing-library/dom@npm:^10.4.1": + version: 10.4.1 + resolution: "@testing-library/dom@npm:10.4.1" + dependencies: + "@babel/code-frame": "npm:^7.10.4" + "@babel/runtime": "npm:^7.12.5" + "@types/aria-query": "npm:^5.0.1" + aria-query: "npm:5.3.0" + dom-accessibility-api: "npm:^0.5.9" + lz-string: "npm:^1.5.0" + picocolors: "npm:1.1.1" + pretty-format: "npm:^27.0.2" + checksum: 10c0/19ce048012d395ad0468b0dbcc4d0911f6f9e39464d7a8464a587b29707eed5482000dad728f5acc4ed314d2f4d54f34982999a114d2404f36d048278db815b1 + languageName: node + linkType: hard + +"@testing-library/jest-dom@npm:6.5.0": + version: 6.5.0 + resolution: "@testing-library/jest-dom@npm:6.5.0" + dependencies: + "@adobe/css-tools": "npm:^4.4.0" + aria-query: "npm:^5.0.0" + chalk: "npm:^3.0.0" + css.escape: "npm:^1.5.1" + dom-accessibility-api: "npm:^0.6.3" + lodash: "npm:^4.17.21" + redent: "npm:^3.0.0" + checksum: 10c0/fd5936a547f04608d8de15a7de3ae26516f21023f8f45169b10c8c8847015fd20ec259b7309f08aa1031bcbc37c6e5e6f532d1bb85ef8f91bad654193ec66a4c + languageName: node + linkType: hard + +"@testing-library/jest-dom@npm:^6.9.1": + version: 6.9.1 + resolution: "@testing-library/jest-dom@npm:6.9.1" + dependencies: + "@adobe/css-tools": "npm:^4.4.0" + aria-query: "npm:^5.0.0" + css.escape: "npm:^1.5.1" + dom-accessibility-api: "npm:^0.6.3" + picocolors: "npm:^1.1.1" + redent: "npm:^3.0.0" + checksum: 10c0/4291ebd2f0f38d14cefac142c56c337941775a5807e2a3d6f1a14c2fbd6be76a18e498ed189e95bedc97d9e8cf1738049bc76c85b5bc5e23fae7c9e10f7b3a12 + languageName: node + linkType: hard + +"@testing-library/react@npm:^16.3.0": + version: 16.3.2 + resolution: "@testing-library/react@npm:16.3.2" + dependencies: + "@babel/runtime": "npm:^7.12.5" + peerDependencies: + "@testing-library/dom": ^10.0.0 + "@types/react": ^18.0.0 || ^19.0.0 + "@types/react-dom": ^18.0.0 || ^19.0.0 + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/f9c7f0915e1b5f7b750e6c7d8b51f091b8ae7ea99bacb761d7b8505ba25de9cfcb749a0f779f1650fb268b499dd79165dc7e1ee0b8b4cb63430d3ddc81ffe044 + languageName: node + linkType: hard + +"@testing-library/user-event@npm:14.5.2": + version: 14.5.2 + resolution: "@testing-library/user-event@npm:14.5.2" + peerDependencies: + "@testing-library/dom": ">=7.21.4" + checksum: 10c0/68a0c2aa28a3c8e6eb05cafee29705438d7d8a9427423ce5064d44f19c29e89b5636de46dd2f28620fb10abba75c67130185bbc3aa23ac1163a227a5f36641e1 + languageName: node + linkType: hard + +"@tootallnate/once@npm:2": + version: 2.0.0 + resolution: "@tootallnate/once@npm:2.0.0" + checksum: 10c0/073bfa548026b1ebaf1659eb8961e526be22fa77139b10d60e712f46d2f0f05f4e6c8bec62a087d41088ee9e29faa7f54838568e475ab2f776171003c3920858 + languageName: node + linkType: hard + +"@types/aria-query@npm:^5.0.1": + version: 5.0.4 + resolution: "@types/aria-query@npm:5.0.4" + checksum: 10c0/dc667bc6a3acc7bba2bccf8c23d56cb1f2f4defaa704cfef595437107efaa972d3b3db9ec1d66bc2711bfc35086821edd32c302bffab36f2e79b97f312069f08 + languageName: node + linkType: hard + +"@types/babel__core@npm:^7.18.0": + version: 7.20.5 + resolution: "@types/babel__core@npm:7.20.5" + dependencies: + "@babel/parser": "npm:^7.20.7" + "@babel/types": "npm:^7.20.7" + "@types/babel__generator": "npm:*" + "@types/babel__template": "npm:*" + "@types/babel__traverse": "npm:*" + checksum: 10c0/bdee3bb69951e833a4b811b8ee9356b69a61ed5b7a23e1a081ec9249769117fa83aaaf023bb06562a038eb5845155ff663e2d5c75dd95c1d5ccc91db012868ff + languageName: node + linkType: hard + +"@types/babel__generator@npm:*": + version: 7.27.0 + resolution: "@types/babel__generator@npm:7.27.0" + dependencies: + "@babel/types": "npm:^7.0.0" + checksum: 10c0/9f9e959a8792df208a9d048092fda7e1858bddc95c6314857a8211a99e20e6830bdeb572e3587ae8be5429e37f2a96fcf222a9f53ad232f5537764c9e13a2bbd + languageName: node + linkType: hard + +"@types/babel__template@npm:*": + version: 7.4.4 + resolution: "@types/babel__template@npm:7.4.4" + dependencies: + "@babel/parser": "npm:^7.1.0" + "@babel/types": "npm:^7.0.0" + checksum: 10c0/cc84f6c6ab1eab1427e90dd2b76ccee65ce940b778a9a67be2c8c39e1994e6f5bbc8efa309f6cea8dc6754994524cd4d2896558df76d92e7a1f46ecffee7112b + languageName: node + linkType: hard + +"@types/babel__traverse@npm:*, @types/babel__traverse@npm:^7.18.0": + version: 7.28.0 + resolution: "@types/babel__traverse@npm:7.28.0" + dependencies: + "@babel/types": "npm:^7.28.2" + checksum: 10c0/b52d7d4e8fc6a9018fe7361c4062c1c190f5778cf2466817cb9ed19d69fbbb54f9a85ffedeb748ed8062d2cf7d4cc088ee739848f47c57740de1c48cbf0d0994 + languageName: node + linkType: hard + +"@types/chai@npm:^5.2.2": + version: 5.2.3 + resolution: "@types/chai@npm:5.2.3" + dependencies: + "@types/deep-eql": "npm:*" + assertion-error: "npm:^2.0.1" + checksum: 10c0/e0ef1de3b6f8045a5e473e867c8565788c444271409d155588504840ad1a53611011f85072188c2833941189400228c1745d78323dac13fcede9c2b28bacfb2f + languageName: node + linkType: hard + +"@types/deep-eql@npm:*": + version: 4.0.2 + resolution: "@types/deep-eql@npm:4.0.2" + checksum: 10c0/bf3f811843117900d7084b9d0c852da9a044d12eb40e6de73b552598a6843c21291a8a381b0532644574beecd5e3491c5ff3a0365ab86b15d59862c025384844 + languageName: node + linkType: hard + +"@types/doctrine@npm:^0.0.9": + version: 0.0.9 + resolution: "@types/doctrine@npm:0.0.9" + checksum: 10c0/cdaca493f13c321cf0cacd1973efc0ae74569633145d9e6fc1128f32217a6968c33bea1f858275239fe90c98f3be57ec8f452b416a9ff48b8e8c1098b20fa51c + languageName: node + linkType: hard + +"@types/estree@npm:1.0.8, @types/estree@npm:^1.0.0, @types/estree@npm:^1.0.6": + version: 1.0.8 + resolution: "@types/estree@npm:1.0.8" + checksum: 10c0/39d34d1afaa338ab9763f37ad6066e3f349444f9052b9676a7cc0252ef9485a41c6d81c9c4e0d26e9077993354edf25efc853f3224dd4b447175ef62bdcc86a5 + languageName: node + linkType: hard + +"@types/json-schema@npm:^7.0.15": + version: 7.0.15 + resolution: "@types/json-schema@npm:7.0.15" + checksum: 10c0/a996a745e6c5d60292f36731dd41341339d4eeed8180bb09226e5c8d23759067692b1d88e5d91d72ee83dfc00d3aca8e7bd43ea120516c17922cbcb7c3e252db + languageName: node + linkType: hard + +"@types/mdx@npm:^2.0.0": + version: 2.0.13 + resolution: "@types/mdx@npm:2.0.13" + checksum: 10c0/5edf1099505ac568da55f9ae8a93e7e314e8cbc13d3445d0be61b75941226b005e1390d9b95caecf5dcb00c9d1bab2f1f60f6ff9876dc091a48b547495007720 + languageName: node + linkType: hard + +"@types/node@npm:22.12.0": + version: 22.12.0 + resolution: "@types/node@npm:22.12.0" + dependencies: + undici-types: "npm:~6.20.0" + checksum: 10c0/be220706732d95db2ed1c441c1e64cab90bf9a47519ce6f4c79cc5a9ec9d5c517131a149a9ac30afac1a30103e67e3a00d453ba7c1b0141608a3a7ba6397c303 + languageName: node + linkType: hard + +"@types/node@npm:^24.6.1": + version: 24.11.0 + resolution: "@types/node@npm:24.11.0" + dependencies: + undici-types: "npm:~7.16.0" + checksum: 10c0/4fb7390259e3b158d25dbecf52de8ce70fa18a4ed0949c9444bb6384517c361fa19781e6821ca8c18dc5f6af43eab72e9e159e07000e6b1286d082e8585d8c41 + languageName: node + linkType: hard + +"@types/react-dom@npm:19.0.2": + version: 19.0.2 + resolution: "@types/react-dom@npm:19.0.2" + peerDependencies: + "@types/react": ^19.0.0 + checksum: 10c0/3d0c7b78dbe8df64ea769f30af990a5950173a8321c745fe11094d765423f7964c3519dca6e7cd36b4be6521c8efc690bdd3b79b327b229dd1e9d5a8bad677dd + languageName: node + linkType: hard + +"@types/react@npm:19.0.2": + version: 19.0.2 + resolution: "@types/react@npm:19.0.2" + dependencies: + csstype: "npm:^3.0.2" + checksum: 10c0/8992f39701fcf1bf893ef8f94a56196445667baf08fe4f6050a14e229a17aad3265ad3efc01595ff3b4d5d5c69da885f9aa4ff80f164a613018734efcff1eb8f + languageName: node + linkType: hard + +"@types/react@npm:^19.2.2": + version: 19.2.14 + resolution: "@types/react@npm:19.2.14" + dependencies: + csstype: "npm:^3.2.2" + checksum: 10c0/7d25bf41b57719452d86d2ac0570b659210402707313a36ee612666bf11275a1c69824f8c3ee1fdca077ccfe15452f6da8f1224529b917050eb2d861e52b59b7 + languageName: node + linkType: hard + +"@types/resolve@npm:^1.20.2": + version: 1.20.6 + resolution: "@types/resolve@npm:1.20.6" + checksum: 10c0/a9b0549d816ff2c353077365d865a33655a141d066d0f5a3ba6fd4b28bc2f4188a510079f7c1f715b3e7af505a27374adce2a5140a3ece2a059aab3d6e1a4244 + languageName: node + linkType: hard + +"@types/uuid@npm:^9.0.1": + version: 9.0.8 + resolution: "@types/uuid@npm:9.0.8" + checksum: 10c0/b411b93054cb1d4361919579ef3508a1f12bf15b5fdd97337d3d351bece6c921b52b6daeef89b62340fd73fd60da407878432a1af777f40648cbe53a01723489 + languageName: node + linkType: hard + +"@videojs/http-streaming@npm:^3.17.2, @videojs/http-streaming@npm:^3.17.4": + version: 3.17.4 + resolution: "@videojs/http-streaming@npm:3.17.4" + dependencies: + "@babel/runtime": "npm:^7.12.5" + "@videojs/vhs-utils": "npm:^4.1.1" + aes-decrypter: "npm:^4.0.2" + global: "npm:^4.4.0" + m3u8-parser: "npm:^7.2.0" + mpd-parser: "npm:^1.3.1" + mux.js: "npm:7.1.0" + video.js: "npm:^7 || ^8" + peerDependencies: + video.js: ^8.19.0 + checksum: 10c0/b975ff15ddcdf619f08e0676edcb7a06902029af9c3891902d1d8b813c56b6dd2a5da08a50cc6dea62c596c4d5a5d3e37b94d45f7afc729e7210310c5efe44a2 + languageName: node + linkType: hard + +"@videojs/vhs-utils@npm:^4.0.0, @videojs/vhs-utils@npm:^4.1.1": + version: 4.1.1 + resolution: "@videojs/vhs-utils@npm:4.1.1" + dependencies: + "@babel/runtime": "npm:^7.12.5" + global: "npm:^4.4.0" + checksum: 10c0/3b874ee5f66b54b5b158b85c27c86aef859ff90eb0da37cdf2e95b3757413c397a3680ddb37fcf5c33ea967d121b56a0f845ac311e0192fb4ef8e1a2936573c4 + languageName: node + linkType: hard + +"@videojs/xhr@npm:2.7.0": + version: 2.7.0 + resolution: "@videojs/xhr@npm:2.7.0" + dependencies: + "@babel/runtime": "npm:^7.5.5" + global: "npm:~4.4.0" + is-function: "npm:^1.0.1" + checksum: 10c0/5dc0dd97bd8e4d5ef05bfd46ced6a9e26cad93335d3e4804ad1d8621d521c943712ad47ebc1968ed153b8cfad6702eafe400e659e724b8c1d005a5ad5f601d8a + languageName: node + linkType: hard + +"@vitest/expect@npm:2.0.5": + version: 2.0.5 + resolution: "@vitest/expect@npm:2.0.5" + dependencies: + "@vitest/spy": "npm:2.0.5" + "@vitest/utils": "npm:2.0.5" + chai: "npm:^5.1.1" + tinyrainbow: "npm:^1.2.0" + checksum: 10c0/08cb1b0f106d16a5b60db733e3d436fa5eefc68571488eb570dfe4f599f214ab52e4342273b03dbe12331cc6c0cdc325ac6c94f651ad254cd62f3aa0e3d185aa + languageName: node + linkType: hard + +"@vitest/expect@npm:3.2.4": + version: 3.2.4 + resolution: "@vitest/expect@npm:3.2.4" + dependencies: + "@types/chai": "npm:^5.2.2" + "@vitest/spy": "npm:3.2.4" + "@vitest/utils": "npm:3.2.4" + chai: "npm:^5.2.0" + tinyrainbow: "npm:^2.0.0" + checksum: 10c0/7586104e3fd31dbe1e6ecaafb9a70131e4197dce2940f727b6a84131eee3decac7b10f9c7c72fa5edbdb68b6f854353bd4c0fa84779e274207fb7379563b10db + languageName: node + linkType: hard + +"@vitest/mocker@npm:3.2.4": + version: 3.2.4 + resolution: "@vitest/mocker@npm:3.2.4" + dependencies: + "@vitest/spy": "npm:3.2.4" + estree-walker: "npm:^3.0.3" + magic-string: "npm:^0.30.17" + peerDependencies: + msw: ^2.4.9 + vite: ^5.0.0 || ^6.0.0 || ^7.0.0-0 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true + checksum: 10c0/f7a4aea19bbbf8f15905847ee9143b6298b2c110f8b64789224cb0ffdc2e96f9802876aa2ca83f1ec1b6e1ff45e822abb34f0054c24d57b29ab18add06536ccd + languageName: node + linkType: hard + +"@vitest/pretty-format@npm:2.0.5": + version: 2.0.5 + resolution: "@vitest/pretty-format@npm:2.0.5" + dependencies: + tinyrainbow: "npm:^1.2.0" + checksum: 10c0/236c0798c5170a0b5ad5d4bd06118533738e820b4dd30079d8fbcb15baee949d41c60f42a9f769906c4a5ce366d7ef11279546070646c0efc03128c220c31f37 + languageName: node + linkType: hard + +"@vitest/pretty-format@npm:2.1.9": + version: 2.1.9 + resolution: "@vitest/pretty-format@npm:2.1.9" + dependencies: + tinyrainbow: "npm:^1.2.0" + checksum: 10c0/155f9ede5090eabed2a73361094bb35ed4ec6769ae3546d2a2af139166569aec41bb80e031c25ff2da22b71dd4ed51e5468e66a05e6aeda5f14b32e30bc18f00 + languageName: node + linkType: hard + +"@vitest/pretty-format@npm:3.2.4, @vitest/pretty-format@npm:^3.2.4": + version: 3.2.4 + resolution: "@vitest/pretty-format@npm:3.2.4" + dependencies: + tinyrainbow: "npm:^2.0.0" + checksum: 10c0/5ad7d4278e067390d7d633e307fee8103958806a419ca380aec0e33fae71b44a64415f7a9b4bc11635d3c13d4a9186111c581d3cef9c65cc317e68f077456887 + languageName: node + linkType: hard + +"@vitest/runner@npm:3.2.4": + version: 3.2.4 + resolution: "@vitest/runner@npm:3.2.4" + dependencies: + "@vitest/utils": "npm:3.2.4" + pathe: "npm:^2.0.3" + strip-literal: "npm:^3.0.0" + checksum: 10c0/e8be51666c72b3668ae3ea348b0196656a4a5adb836cb5e270720885d9517421815b0d6c98bfdf1795ed02b994b7bfb2b21566ee356a40021f5bf4f6ed4e418a + languageName: node + linkType: hard + +"@vitest/snapshot@npm:3.2.4": + version: 3.2.4 + resolution: "@vitest/snapshot@npm:3.2.4" + dependencies: + "@vitest/pretty-format": "npm:3.2.4" + magic-string: "npm:^0.30.17" + pathe: "npm:^2.0.3" + checksum: 10c0/f8301a3d7d1559fd3d59ed51176dd52e1ed5c2d23aa6d8d6aa18787ef46e295056bc726a021698d8454c16ed825ecba163362f42fa90258bb4a98cfd2c9424fc + languageName: node + linkType: hard + +"@vitest/spy@npm:2.0.5": + version: 2.0.5 + resolution: "@vitest/spy@npm:2.0.5" + dependencies: + tinyspy: "npm:^3.0.0" + checksum: 10c0/70634c21921eb271b54d2986c21d7ab6896a31c0f4f1d266940c9bafb8ac36237846d6736638cbf18b958bd98e5261b158a6944352742accfde50b7818ff655e + languageName: node + linkType: hard + +"@vitest/spy@npm:3.2.4": + version: 3.2.4 + resolution: "@vitest/spy@npm:3.2.4" + dependencies: + tinyspy: "npm:^4.0.3" + checksum: 10c0/6ebf0b4697dc238476d6b6a60c76ba9eb1dd8167a307e30f08f64149612fd50227682b876420e4c2e09a76334e73f72e3ebf0e350714dc22474258292e202024 + languageName: node + linkType: hard + +"@vitest/utils@npm:2.0.5": + version: 2.0.5 + resolution: "@vitest/utils@npm:2.0.5" + dependencies: + "@vitest/pretty-format": "npm:2.0.5" + estree-walker: "npm:^3.0.3" + loupe: "npm:^3.1.1" + tinyrainbow: "npm:^1.2.0" + checksum: 10c0/0d1de748298f07a50281e1ba058b05dcd58da3280c14e6f016265e950bd79adab6b97822de8f0ea82d3070f585654801a9b1bcf26db4372e51cf7746bf86d73b + languageName: node + linkType: hard + +"@vitest/utils@npm:3.2.4": + version: 3.2.4 + resolution: "@vitest/utils@npm:3.2.4" + dependencies: + "@vitest/pretty-format": "npm:3.2.4" + loupe: "npm:^3.1.4" + tinyrainbow: "npm:^2.0.0" + checksum: 10c0/024a9b8c8bcc12cf40183c246c244b52ecff861c6deb3477cbf487ac8781ad44c68a9c5fd69f8c1361878e55b97c10d99d511f2597f1f7244b5e5101d028ba64 + languageName: node + linkType: hard + +"@vitest/utils@npm:^2.1.1": + version: 2.1.9 + resolution: "@vitest/utils@npm:2.1.9" + dependencies: + "@vitest/pretty-format": "npm:2.1.9" + loupe: "npm:^3.1.2" + tinyrainbow: "npm:^1.2.0" + checksum: 10c0/81a346cd72b47941f55411f5df4cc230e5f740d1e97e0d3f771b27f007266fc1f28d0438582f6409ea571bc0030ed37f684c64c58d1947d6298d770c21026fdf + languageName: node + linkType: hard + +"@xmldom/xmldom@npm:^0.8.3": + version: 0.8.11 + resolution: "@xmldom/xmldom@npm:0.8.11" + checksum: 10c0/e768623de72c95d3dae6b5da8e33dda0d81665047811b5498d23a328d45b13feb5536fe921d0308b96a4a8dd8addf80b1f6ef466508051c0b581e63e0dc74ed5 + languageName: node + linkType: hard + +"abab@npm:^2.0.6": + version: 2.0.6 + resolution: "abab@npm:2.0.6" + checksum: 10c0/0b245c3c3ea2598fe0025abf7cc7bb507b06949d51e8edae5d12c1b847a0a0c09639abcb94788332b4e2044ac4491c1e8f571b51c7826fd4b0bda1685ad4a278 + languageName: node + linkType: hard + +"abbrev@npm:^4.0.0": + version: 4.0.0 + resolution: "abbrev@npm:4.0.0" + checksum: 10c0/b4cc16935235e80702fc90192e349e32f8ef0ed151ef506aa78c81a7c455ec18375c4125414b99f84b2e055199d66383e787675f0bcd87da7a4dbd59f9eac1d5 + languageName: node + linkType: hard + +"acorn-jsx@npm:^5.3.2": + version: 5.3.2 + resolution: "acorn-jsx@npm:5.3.2" + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + checksum: 10c0/4c54868fbef3b8d58927d5e33f0a4de35f59012fe7b12cf9dfbb345fb8f46607709e1c4431be869a23fb63c151033d84c4198fa9f79385cec34fcb1dd53974c1 + languageName: node + linkType: hard + +"acorn@npm:^8.14.0, acorn@npm:^8.15.0": + version: 8.16.0 + resolution: "acorn@npm:8.16.0" + bin: + acorn: bin/acorn + checksum: 10c0/c9c52697227661b68d0debaf972222d4f622aa06b185824164e153438afa7b08273432ca43ea792cadb24dada1d46f6f6bb1ef8de9956979288cc1b96bf9914e + languageName: node + linkType: hard + +"aes-decrypter@npm:^4.0.2": + version: 4.0.2 + resolution: "aes-decrypter@npm:4.0.2" + dependencies: + "@babel/runtime": "npm:^7.12.5" + "@videojs/vhs-utils": "npm:^4.1.1" + global: "npm:^4.4.0" + pkcs7: "npm:^1.0.4" + checksum: 10c0/fee05bd1e5bfc501c6446e2b6dd1811e33c045f7f408e7fb42697a2e8282235d5719b6b8547e96cdf86c826e4ed0e27ca98c0c5ddd34e3b9b3adf5b2f84fd99b + languageName: node + linkType: hard + +"agent-base@npm:6": + version: 6.0.2 + resolution: "agent-base@npm:6.0.2" + dependencies: + debug: "npm:4" + checksum: 10c0/dc4f757e40b5f3e3d674bc9beb4f1048f4ee83af189bae39be99f57bf1f48dde166a8b0a5342a84b5944ee8e6ed1e5a9d801858f4ad44764e84957122fe46261 + languageName: node + linkType: hard + +"agent-base@npm:^7.1.0, agent-base@npm:^7.1.2": + version: 7.1.4 + resolution: "agent-base@npm:7.1.4" + checksum: 10c0/c2c9ab7599692d594b6a161559ada307b7a624fa4c7b03e3afdb5a5e31cd0e53269115b620fcab024c5ac6a6f37fa5eb2e004f076ad30f5f7e6b8b671f7b35fe + languageName: node + linkType: hard + +"ajv@npm:^6.12.4, ajv@npm:^6.14.0": + version: 6.14.0 + resolution: "ajv@npm:6.14.0" + dependencies: + fast-deep-equal: "npm:^3.1.1" + fast-json-stable-stringify: "npm:^2.0.0" + json-schema-traverse: "npm:^0.4.1" + uri-js: "npm:^4.2.2" + checksum: 10c0/a2bc39b0555dc9802c899f86990eb8eed6e366cddbf65be43d5aa7e4f3c4e1a199d5460fd7ca4fb3d864000dbbc049253b72faa83b3b30e641ca52cb29a68c22 + languageName: node + linkType: hard + +"ansi-regex@npm:^5.0.1": + version: 5.0.1 + resolution: "ansi-regex@npm:5.0.1" + checksum: 10c0/9a64bb8627b434ba9327b60c027742e5d17ac69277960d041898596271d992d4d52ba7267a63ca10232e29f6107fc8a835f6ce8d719b88c5f8493f8254813737 + languageName: node + linkType: hard + +"ansi-regex@npm:^6.2.2": + version: 6.2.2 + resolution: "ansi-regex@npm:6.2.2" + checksum: 10c0/05d4acb1d2f59ab2cf4b794339c7b168890d44dda4bf0ce01152a8da0213aca207802f930442ce8cd22d7a92f44907664aac6508904e75e038fa944d2601b30f + languageName: node + linkType: hard + +"ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0": + version: 4.3.0 + resolution: "ansi-styles@npm:4.3.0" + dependencies: + color-convert: "npm:^2.0.1" + checksum: 10c0/895a23929da416f2bd3de7e9cb4eabd340949328ab85ddd6e484a637d8f6820d485f53933446f5291c3b760cbc488beb8e88573dd0f9c7daf83dccc8fe81b041 + languageName: node + linkType: hard + +"ansi-styles@npm:^5.0.0": + version: 5.2.0 + resolution: "ansi-styles@npm:5.2.0" + checksum: 10c0/9c4ca80eb3c2fb7b33841c210d2f20807f40865d27008d7c3f707b7f95cab7d67462a565e2388ac3285b71cb3d9bb2173de8da37c57692a362885ec34d6e27df + languageName: node + linkType: hard + +"ansi-styles@npm:^6.1.0": + version: 6.2.3 + resolution: "ansi-styles@npm:6.2.3" + checksum: 10c0/23b8a4ce14e18fb854693b95351e286b771d23d8844057ed2e7d083cd3e708376c3323707ec6a24365f7d7eda3ca00327fe04092e29e551499ec4c8b7bfac868 + languageName: node + linkType: hard + +"antd@npm:5.29.3, antd@npm:^5.29.3": + version: 5.29.3 + resolution: "antd@npm:5.29.3" + dependencies: + "@ant-design/colors": "npm:^7.2.1" + "@ant-design/cssinjs": "npm:^1.23.0" + "@ant-design/cssinjs-utils": "npm:^1.1.3" + "@ant-design/fast-color": "npm:^2.0.6" + "@ant-design/icons": "npm:^5.6.1" + "@ant-design/react-slick": "npm:~1.1.2" + "@babel/runtime": "npm:^7.26.0" + "@rc-component/color-picker": "npm:~2.0.1" + "@rc-component/mutate-observer": "npm:^1.1.0" + "@rc-component/qrcode": "npm:~1.1.0" + "@rc-component/tour": "npm:~1.15.1" + "@rc-component/trigger": "npm:^2.3.0" + classnames: "npm:^2.5.1" + copy-to-clipboard: "npm:^3.3.3" + dayjs: "npm:^1.11.11" + rc-cascader: "npm:~3.34.0" + rc-checkbox: "npm:~3.5.0" + rc-collapse: "npm:~3.9.0" + rc-dialog: "npm:~9.6.0" + rc-drawer: "npm:~7.3.0" + rc-dropdown: "npm:~4.2.1" + rc-field-form: "npm:~2.7.1" + rc-image: "npm:~7.12.0" + rc-input: "npm:~1.8.0" + rc-input-number: "npm:~9.5.0" + rc-mentions: "npm:~2.20.0" + rc-menu: "npm:~9.16.1" + rc-motion: "npm:^2.9.5" + rc-notification: "npm:~5.6.4" + rc-pagination: "npm:~5.1.0" + rc-picker: "npm:~4.11.3" + rc-progress: "npm:~4.0.0" + rc-rate: "npm:~2.13.1" + rc-resize-observer: "npm:^1.4.3" + rc-segmented: "npm:~2.7.0" + rc-select: "npm:~14.16.8" + rc-slider: "npm:~11.1.9" + rc-steps: "npm:~6.0.1" + rc-switch: "npm:~4.1.0" + rc-table: "npm:~7.54.0" + rc-tabs: "npm:~15.7.0" + rc-textarea: "npm:~1.10.2" + rc-tooltip: "npm:~6.4.0" + rc-tree: "npm:~5.13.1" + rc-tree-select: "npm:~5.27.0" + rc-upload: "npm:~4.11.0" + rc-util: "npm:^5.44.4" + scroll-into-view-if-needed: "npm:^3.1.0" + throttle-debounce: "npm:^5.0.2" + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 10c0/e2e488dfd51f0a7c1e5ef2aa51ab6809b0015151d338dcdd27a7bef6f7ac9f7644e73693b37d0213089f6aa02718090ceba957966c76c387b258c789b3ca28fd + languageName: node + linkType: hard + +"any-promise@npm:^1.0.0": + version: 1.3.0 + resolution: "any-promise@npm:1.3.0" + checksum: 10c0/60f0298ed34c74fef50daab88e8dab786036ed5a7fad02e012ab57e376e0a0b4b29e83b95ea9b5e7d89df762f5f25119b83e00706ecaccb22cfbacee98d74889 + languageName: node + linkType: hard + +"argparse@npm:^2.0.1": + version: 2.0.1 + resolution: "argparse@npm:2.0.1" + checksum: 10c0/c5640c2d89045371c7cedd6a70212a04e360fd34d6edeae32f6952c63949e3525ea77dbec0289d8213a99bbaeab5abfa860b5c12cf88a2e6cf8106e90dd27a7e + languageName: node + linkType: hard + +"aria-query@npm:5.3.0": + version: 5.3.0 + resolution: "aria-query@npm:5.3.0" + dependencies: + dequal: "npm:^2.0.3" + checksum: 10c0/2bff0d4eba5852a9dd578ecf47eaef0e82cc52569b48469b0aac2db5145db0b17b7a58d9e01237706d1e14b7a1b0ac9b78e9c97027ad97679dd8f91b85da1469 + languageName: node + linkType: hard + +"aria-query@npm:^5.0.0": + version: 5.3.2 + resolution: "aria-query@npm:5.3.2" + checksum: 10c0/003c7e3e2cff5540bf7a7893775fc614de82b0c5dde8ae823d47b7a28a9d4da1f7ed85f340bdb93d5649caa927755f0e31ecc7ab63edfdfc00c8ef07e505e03e + languageName: node + linkType: hard + +"assertion-error@npm:^2.0.1": + version: 2.0.1 + resolution: "assertion-error@npm:2.0.1" + checksum: 10c0/bbbcb117ac6480138f8c93cf7f535614282dea9dc828f540cdece85e3c665e8f78958b96afac52f29ff883c72638e6a87d469ecc9fe5bc902df03ed24a55dba8 + languageName: node + linkType: hard + +"ast-types@npm:^0.16.1": + version: 0.16.1 + resolution: "ast-types@npm:0.16.1" + dependencies: + tslib: "npm:^2.0.1" + checksum: 10c0/abcc49e42eb921a7ebc013d5bec1154651fb6dbc3f497541d488859e681256901b2990b954d530ba0da4d0851271d484f7057d5eff5e07cb73e8b10909f711bf + languageName: node + linkType: hard + +"async-function@npm:^1.0.0": + version: 1.0.0 + resolution: "async-function@npm:1.0.0" + checksum: 10c0/669a32c2cb7e45091330c680e92eaeb791bc1d4132d827591e499cd1f776ff5a873e77e5f92d0ce795a8d60f10761dec9ddfe7225a5de680f5d357f67b1aac73 + languageName: node + linkType: hard + +"async-generator-function@npm:^1.0.0": + version: 1.0.0 + resolution: "async-generator-function@npm:1.0.0" + checksum: 10c0/2c50ef856c543ad500d8d8777d347e3c1ba623b93e99c9263ecc5f965c1b12d2a140e2ab6e43c3d0b85366110696f28114649411cbcd10b452a92a2318394186 + languageName: node + linkType: hard + +"asynckit@npm:^0.4.0": + version: 0.4.0 + resolution: "asynckit@npm:0.4.0" + checksum: 10c0/d73e2ddf20c4eb9337e1b3df1a0f6159481050a5de457c55b14ea2e5cb6d90bb69e004c9af54737a5ee0917fcf2c9e25de67777bbe58261847846066ba75bc9d + languageName: node + linkType: hard + +"available-typed-arrays@npm:^1.0.7": + version: 1.0.7 + resolution: "available-typed-arrays@npm:1.0.7" + dependencies: + possible-typed-array-names: "npm:^1.0.0" + checksum: 10c0/d07226ef4f87daa01bd0fe80f8f310982e345f372926da2e5296aecc25c41cab440916bbaa4c5e1034b453af3392f67df5961124e4b586df1e99793a1374bdb2 + languageName: node + linkType: hard + +"axe-core@npm:^4.2.0": + version: 4.11.1 + resolution: "axe-core@npm:4.11.1" + checksum: 10c0/1e6997454b61c7c9a4d740f395952835dcf87f2c04fd81577217d68634d197d602c224f9e8f17b22815db4c117a2519980cfc8911fc0027c54a6d8ebca47c6a7 + languageName: node + linkType: hard + +"balanced-match@npm:^1.0.0": + version: 1.0.2 + resolution: "balanced-match@npm:1.0.2" + checksum: 10c0/9308baf0a7e4838a82bbfd11e01b1cb0f0cf2893bc1676c27c2a8c0e70cbae1c59120c3268517a8ae7fb6376b4639ef81ca22582611dbee4ed28df945134aaee + languageName: node + linkType: hard + +"balanced-match@npm:^4.0.2": + version: 4.0.4 + resolution: "balanced-match@npm:4.0.4" + checksum: 10c0/07e86102a3eb2ee2a6a1a89164f29d0dbaebd28f2ca3f5ca786f36b8b23d9e417eb3be45a4acf754f837be5ac0a2317de90d3fcb7f4f4dc95720a1f36b26a17b + languageName: node + linkType: hard + +"baseline-browser-mapping@npm:^2.9.0": + version: 2.10.0 + resolution: "baseline-browser-mapping@npm:2.10.0" + bin: + baseline-browser-mapping: dist/cli.cjs + checksum: 10c0/da9c3ec0fcd7f325226a47d2142794d41706b6e0a405718a2c15410bbdb72aacadd65738bedef558c6f1b106ed19458cb25b06f63b66df2c284799905dbbd003 + languageName: node + linkType: hard + +"better-opn@npm:^3.0.2": + version: 3.0.2 + resolution: "better-opn@npm:3.0.2" + dependencies: + open: "npm:^8.0.4" + checksum: 10c0/911ef25d44da75aabfd2444ce7a4294a8000ebcac73068c04a60298b0f7c7506b60421aa4cd02ac82502fb42baaff7e4892234b51e6923eded44c5a11185f2f5 + languageName: node + linkType: hard + +"brace-expansion@npm:^1.1.7": + version: 1.1.12 + resolution: "brace-expansion@npm:1.1.12" + dependencies: + balanced-match: "npm:^1.0.0" + concat-map: "npm:0.0.1" + checksum: 10c0/975fecac2bb7758c062c20d0b3b6288c7cc895219ee25f0a64a9de662dbac981ff0b6e89909c3897c1f84fa353113a721923afdec5f8b2350255b097f12b1f73 + languageName: node + linkType: hard + +"brace-expansion@npm:^2.0.2": + version: 2.0.2 + resolution: "brace-expansion@npm:2.0.2" + dependencies: + balanced-match: "npm:^1.0.0" + checksum: 10c0/6d117a4c793488af86b83172deb6af143e94c17bc53b0b3cec259733923b4ca84679d506ac261f4ba3c7ed37c46018e2ff442f9ce453af8643ecd64f4a54e6cf + languageName: node + linkType: hard + +"brace-expansion@npm:^5.0.2": + version: 5.0.4 + resolution: "brace-expansion@npm:5.0.4" + dependencies: + balanced-match: "npm:^4.0.2" + checksum: 10c0/359cbcfa80b2eb914ca1f3440e92313fbfe7919ee6b274c35db55bec555aded69dac5ee78f102cec90c35f98c20fa43d10936d0cd9978158823c249257e1643a + languageName: node + linkType: hard + +"browser-assert@npm:^1.2.1": + version: 1.2.1 + resolution: "browser-assert@npm:1.2.1" + checksum: 10c0/902abf999f92c9c951fdb6d7352c09eea9a84706258699655f7e7906e42daa06a1ae286398a755872740e05a6a71c43c5d1a0c0431d67a8cdb66e5d859a3fc0c + languageName: node + linkType: hard + +"browserslist@npm:^4.24.0": + version: 4.28.1 + resolution: "browserslist@npm:4.28.1" + dependencies: + baseline-browser-mapping: "npm:^2.9.0" + caniuse-lite: "npm:^1.0.30001759" + electron-to-chromium: "npm:^1.5.263" + node-releases: "npm:^2.0.27" + update-browserslist-db: "npm:^1.2.0" + bin: + browserslist: cli.js + checksum: 10c0/545a5fa9d7234e3777a7177ec1e9134bb2ba60a69e6b95683f6982b1473aad347c77c1264ccf2ac5dea609a9731fbfbda6b85782bdca70f80f86e28a402504bd + languageName: node + linkType: hard + +"bundle-require@npm:^5.1.0": + version: 5.1.0 + resolution: "bundle-require@npm:5.1.0" + dependencies: + load-tsconfig: "npm:^0.2.3" + peerDependencies: + esbuild: ">=0.18" + checksum: 10c0/8bff9df68eb686f05af952003c78e70ffed2817968f92aebb2af620cc0b7428c8154df761d28f1b38508532204278950624ef86ce63644013dc57660a9d1810f + languageName: node + linkType: hard + +"cac@npm:^6.7.14": + version: 6.7.14 + resolution: "cac@npm:6.7.14" + checksum: 10c0/4ee06aaa7bab8981f0d54e5f5f9d4adcd64058e9697563ce336d8a3878ed018ee18ebe5359b2430eceae87e0758e62ea2019c3f52ae6e211b1bd2e133856cd10 + languageName: node + linkType: hard + +"cacache@npm:^20.0.1": + version: 20.0.3 + resolution: "cacache@npm:20.0.3" + dependencies: + "@npmcli/fs": "npm:^5.0.0" + fs-minipass: "npm:^3.0.0" + glob: "npm:^13.0.0" + lru-cache: "npm:^11.1.0" + minipass: "npm:^7.0.3" + minipass-collect: "npm:^2.0.1" + minipass-flush: "npm:^1.0.5" + minipass-pipeline: "npm:^1.2.4" + p-map: "npm:^7.0.2" + ssri: "npm:^13.0.0" + unique-filename: "npm:^5.0.0" + checksum: 10c0/c7da1ca694d20e8f8aedabd21dc11518f809a7d2b59aa76a1fc655db5a9e62379e465c157ddd2afe34b19230808882288effa6911b2de26a088a6d5645123462 + languageName: node + linkType: hard + +"call-bind-apply-helpers@npm:^1.0.0, call-bind-apply-helpers@npm:^1.0.1, call-bind-apply-helpers@npm:^1.0.2": + version: 1.0.2 + resolution: "call-bind-apply-helpers@npm:1.0.2" + dependencies: + es-errors: "npm:^1.3.0" + function-bind: "npm:^1.1.2" + checksum: 10c0/47bd9901d57b857590431243fea704ff18078b16890a6b3e021e12d279bbf211d039155e27d7566b374d49ee1f8189344bac9833dec7a20cdec370506361c938 + languageName: node + linkType: hard + +"call-bind@npm:^1.0.8": + version: 1.0.8 + resolution: "call-bind@npm:1.0.8" + dependencies: + call-bind-apply-helpers: "npm:^1.0.0" + es-define-property: "npm:^1.0.0" + get-intrinsic: "npm:^1.2.4" + set-function-length: "npm:^1.2.2" + checksum: 10c0/a13819be0681d915144467741b69875ae5f4eba8961eb0bf322aab63ec87f8250eb6d6b0dcbb2e1349876412a56129ca338592b3829ef4343527f5f18a0752d4 + languageName: node + linkType: hard + +"call-bound@npm:^1.0.2, call-bound@npm:^1.0.4": + version: 1.0.4 + resolution: "call-bound@npm:1.0.4" + dependencies: + call-bind-apply-helpers: "npm:^1.0.2" + get-intrinsic: "npm:^1.3.0" + checksum: 10c0/f4796a6a0941e71c766aea672f63b72bc61234c4f4964dc6d7606e3664c307e7d77845328a8f3359ce39ddb377fed67318f9ee203dea1d47e46165dcf2917644 + languageName: node + linkType: hard + +"callsites@npm:^3.0.0": + version: 3.1.0 + resolution: "callsites@npm:3.1.0" + checksum: 10c0/fff92277400eb06c3079f9e74f3af120db9f8ea03bad0e84d9aede54bbe2d44a56cccb5f6cf12211f93f52306df87077ecec5b712794c5a9b5dac6d615a3f301 + languageName: node + linkType: hard + +"caniuse-lite@npm:^1.0.30001759": + version: 1.0.30001776 + resolution: "caniuse-lite@npm:1.0.30001776" + checksum: 10c0/d5a7624ea50548c6c4381979a2900ac451caa7ecbeafec209309da25d547ba1406355cf66d6c6d537d8532ab5a56f2bbc0bf62300a4c3f66aa6fca5954264735 + languageName: node + linkType: hard + +"chai@npm:^5.1.1, chai@npm:^5.2.0": + version: 5.3.3 + resolution: "chai@npm:5.3.3" + dependencies: + assertion-error: "npm:^2.0.1" + check-error: "npm:^2.1.1" + deep-eql: "npm:^5.0.1" + loupe: "npm:^3.1.0" + pathval: "npm:^2.0.0" + checksum: 10c0/b360fd4d38861622e5010c2f709736988b05c7f31042305fa3f4e9911f6adb80ccfb4e302068bf8ed10e835c2e2520cba0f5edc13d878b886987e5aa62483f53 + languageName: node + linkType: hard + +"chalk@npm:^3.0.0": + version: 3.0.0 + resolution: "chalk@npm:3.0.0" + dependencies: + ansi-styles: "npm:^4.1.0" + supports-color: "npm:^7.1.0" + checksum: 10c0/ee650b0a065b3d7a6fda258e75d3a86fc8e4effa55871da730a9e42ccb035bf5fd203525e5a1ef45ec2582ecc4f65b47eb11357c526b84dd29a14fb162c414d2 + languageName: node + linkType: hard + +"chalk@npm:^4.0.0, chalk@npm:^4.1.0": + version: 4.1.2 + resolution: "chalk@npm:4.1.2" + dependencies: + ansi-styles: "npm:^4.1.0" + supports-color: "npm:^7.1.0" + checksum: 10c0/4a3fef5cc34975c898ffe77141450f679721df9dde00f6c304353fa9c8b571929123b26a0e4617bde5018977eb655b31970c297b91b63ee83bb82aeb04666880 + languageName: node + linkType: hard + +"check-error@npm:^2.1.1": + version: 2.1.3 + resolution: "check-error@npm:2.1.3" + checksum: 10c0/878e99038fb6476316b74668cd6a498c7e66df3efe48158fa40db80a06ba4258742ac3ee2229c4a2a98c5e73f5dff84eb3e50ceb6b65bbd8f831eafc8338607d + languageName: node + linkType: hard + +"chokidar@npm:^4.0.0, chokidar@npm:^4.0.3": + version: 4.0.3 + resolution: "chokidar@npm:4.0.3" + dependencies: + readdirp: "npm:^4.0.1" + checksum: 10c0/a58b9df05bb452f7d105d9e7229ac82fa873741c0c40ddcc7bb82f8a909fbe3f7814c9ebe9bc9a2bef9b737c0ec6e2d699d179048ef06ad3ec46315df0ebe6ad + languageName: node + linkType: hard + +"chownr@npm:^3.0.0": + version: 3.0.0 + resolution: "chownr@npm:3.0.0" + checksum: 10c0/43925b87700f7e3893296c8e9c56cc58f926411cce3a6e5898136daaf08f08b9a8eb76d37d3267e707d0dcc17aed2e2ebdf5848c0c3ce95cf910a919935c1b10 + languageName: node + linkType: hard + +"classnames@npm:2.5.1, classnames@npm:2.x, classnames@npm:^2.2.1, classnames@npm:^2.2.3, classnames@npm:^2.2.5, classnames@npm:^2.2.6, classnames@npm:^2.3.1, classnames@npm:^2.3.2, classnames@npm:^2.5.1": + version: 2.5.1 + resolution: "classnames@npm:2.5.1" + checksum: 10c0/afff4f77e62cea2d79c39962980bf316bacb0d7c49e13a21adaadb9221e1c6b9d3cdb829d8bb1b23c406f4e740507f37e1dcf506f7e3b7113d17c5bab787aa69 + languageName: node + linkType: hard + +"color-convert@npm:^2.0.1": + version: 2.0.1 + resolution: "color-convert@npm:2.0.1" + dependencies: + color-name: "npm:~1.1.4" + checksum: 10c0/37e1150172f2e311fe1b2df62c6293a342ee7380da7b9cfdba67ea539909afbd74da27033208d01d6d5cfc65ee7868a22e18d7e7648e004425441c0f8a15a7d7 + languageName: node + linkType: hard + +"color-name@npm:~1.1.4": + version: 1.1.4 + resolution: "color-name@npm:1.1.4" + checksum: 10c0/a1a3f914156960902f46f7f56bc62effc6c94e84b2cae157a526b1c1f74b677a47ec602bf68a61abfa2b42d15b7c5651c6dbe72a43af720bc588dff885b10f95 + languageName: node + linkType: hard + +"combined-stream@npm:^1.0.8": + version: 1.0.8 + resolution: "combined-stream@npm:1.0.8" + dependencies: + delayed-stream: "npm:~1.0.0" + checksum: 10c0/0dbb829577e1b1e839fa82b40c07ffaf7de8a09b935cadd355a73652ae70a88b4320db322f6634a4ad93424292fa80973ac6480986247f1734a1137debf271d5 + languageName: node + linkType: hard + +"commander@npm:^4.0.0": + version: 4.1.1 + resolution: "commander@npm:4.1.1" + checksum: 10c0/84a76c08fe6cc08c9c93f62ac573d2907d8e79138999312c92d4155bc2325d487d64d13f669b2000c9f8caf70493c1be2dac74fec3c51d5a04f8bc3ae1830bab + languageName: node + linkType: hard + +"compute-scroll-into-view@npm:^3.0.2": + version: 3.1.1 + resolution: "compute-scroll-into-view@npm:3.1.1" + checksum: 10c0/59761ed62304a9599b52ad75d0d6fbf0669ee2ab7dd472fdb0ad9da36628414c014dea7b5810046560180ad30ffec52a953d19297f66a1d4f3aa0999b9d2521d + languageName: node + linkType: hard + +"concat-map@npm:0.0.1": + version: 0.0.1 + resolution: "concat-map@npm:0.0.1" + checksum: 10c0/c996b1cfdf95b6c90fee4dae37e332c8b6eb7d106430c17d538034c0ad9a1630cb194d2ab37293b1bdd4d779494beee7786d586a50bd9376fd6f7bcc2bd4c98f + languageName: node + linkType: hard + +"confbox@npm:^0.1.8": + version: 0.1.8 + resolution: "confbox@npm:0.1.8" + checksum: 10c0/fc2c68d97cb54d885b10b63e45bd8da83a8a71459d3ecf1825143dd4c7f9f1b696b3283e07d9d12a144c1301c2ebc7842380bdf0014e55acc4ae1c9550102418 + languageName: node + linkType: hard + +"consola@npm:^3.4.0": + version: 3.4.2 + resolution: "consola@npm:3.4.2" + checksum: 10c0/7cebe57ecf646ba74b300bcce23bff43034ed6fbec9f7e39c27cee1dc00df8a21cd336b466ad32e304ea70fba04ec9e890c200270de9a526ce021ba8a7e4c11a + languageName: node + linkType: hard + +"convert-source-map@npm:^2.0.0": + version: 2.0.0 + resolution: "convert-source-map@npm:2.0.0" + checksum: 10c0/8f2f7a27a1a011cc6cc88cc4da2d7d0cfa5ee0369508baae3d98c260bb3ac520691464e5bbe4ae7cdf09860c1d69ecc6f70c63c6e7c7f7e3f18ec08484dc7d9b + languageName: node + linkType: hard + +"copy-to-clipboard@npm:^3.3.3": + version: 3.3.3 + resolution: "copy-to-clipboard@npm:3.3.3" + dependencies: + toggle-selection: "npm:^1.0.6" + checksum: 10c0/3ebf5e8ee00601f8c440b83ec08d838e8eabb068c1fae94a9cda6b42f288f7e1b552f3463635f419af44bf7675afc8d0390d30876cf5c2d5d35f86d9c56a3e5f + languageName: node + linkType: hard + +"cross-spawn@npm:^7.0.6": + version: 7.0.6 + resolution: "cross-spawn@npm:7.0.6" + dependencies: + path-key: "npm:^3.1.0" + shebang-command: "npm:^2.0.0" + which: "npm:^2.0.1" + checksum: 10c0/053ea8b2135caff68a9e81470e845613e374e7309a47731e81639de3eaeb90c3d01af0e0b44d2ab9d50b43467223b88567dfeb3262db942dc063b9976718ffc1 + languageName: node + linkType: hard + +"css.escape@npm:^1.5.1": + version: 1.5.1 + resolution: "css.escape@npm:1.5.1" + checksum: 10c0/5e09035e5bf6c2c422b40c6df2eb1529657a17df37fda5d0433d722609527ab98090baf25b13970ca754079a0f3161dd3dfc0e743563ded8cfa0749d861c1525 + languageName: node + linkType: hard + +"cssstyle@npm:^3.0.0": + version: 3.0.0 + resolution: "cssstyle@npm:3.0.0" + dependencies: + rrweb-cssom: "npm:^0.6.0" + checksum: 10c0/23acee092c1cec670fb7b8110e48abd740dc4e574d3b74848743067cb3377a86a1f64cf02606aabd7bb153785e68c2c1e09ce53295ddf7a4b470b3c7c55ec807 + languageName: node + linkType: hard + +"csstype@npm:^3.0.2, csstype@npm:^3.1.3, csstype@npm:^3.2.2": + version: 3.2.3 + resolution: "csstype@npm:3.2.3" + checksum: 10c0/cd29c51e70fa822f1cecd8641a1445bed7063697469d35633b516e60fe8c1bde04b08f6c5b6022136bb669b64c63d4173af54864510fbb4ee23281801841a3ce + languageName: node + linkType: hard + +"data-urls@npm:^4.0.0": + version: 4.0.0 + resolution: "data-urls@npm:4.0.0" + dependencies: + abab: "npm:^2.0.6" + whatwg-mimetype: "npm:^3.0.0" + whatwg-url: "npm:^12.0.0" + checksum: 10c0/928d9a21db31d3dcee125d514fddfeb88067c348b1225e9d2c6ca55db16e1cbe49bf58c092cae7163de958f415fd5c612c2aef2eef87896e097656fce205d766 + languageName: node + linkType: hard + +"date-fns@npm:^2.16.1": + version: 2.30.0 + resolution: "date-fns@npm:2.30.0" + dependencies: + "@babel/runtime": "npm:^7.21.0" + checksum: 10c0/e4b521fbf22bc8c3db332bbfb7b094fd3e7627de0259a9d17c7551e2d2702608a7307a449206065916538e384f37b181565447ce2637ae09828427aed9cb5581 + languageName: node + linkType: hard + +"dayjs@npm:^1.11.11": + version: 1.11.19 + resolution: "dayjs@npm:1.11.19" + checksum: 10c0/7d8a6074a343f821f81ea284d700bd34ea6c7abbe8d93bce7aba818948957c1b7f56131702e5e890a5622cdfc05dcebe8aed0b8313bdc6838a594d7846b0b000 + languageName: node + linkType: hard + +"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.4.0, debug@npm:^4.4.1": + version: 4.4.3 + resolution: "debug@npm:4.4.3" + dependencies: + ms: "npm:^2.1.3" + peerDependenciesMeta: + supports-color: + optional: true + checksum: 10c0/d79136ec6c83ecbefd0f6a5593da6a9c91ec4d7ddc4b54c883d6e71ec9accb5f67a1a5e96d00a328196b5b5c86d365e98d8a3a70856aaf16b4e7b1985e67f5a6 + languageName: node + linkType: hard + +"decimal.js@npm:^10.4.3": + version: 10.6.0 + resolution: "decimal.js@npm:10.6.0" + checksum: 10c0/07d69fbcc54167a340d2d97de95f546f9ff1f69d2b45a02fd7a5292412df3cd9eb7e23065e532a318f5474a2e1bccf8392fdf0443ef467f97f3bf8cb0477e5aa + languageName: node + linkType: hard + +"deep-eql@npm:^5.0.1": + version: 5.0.2 + resolution: "deep-eql@npm:5.0.2" + checksum: 10c0/7102cf3b7bb719c6b9c0db2e19bf0aa9318d141581befe8c7ce8ccd39af9eaa4346e5e05adef7f9bd7015da0f13a3a25dcfe306ef79dc8668aedbecb658dd247 + languageName: node + linkType: hard + +"deep-is@npm:^0.1.3": + version: 0.1.4 + resolution: "deep-is@npm:0.1.4" + checksum: 10c0/7f0ee496e0dff14a573dc6127f14c95061b448b87b995fc96c017ce0a1e66af1675e73f1d6064407975bc4ea6ab679497a29fff7b5b9c4e99cb10797c1ad0b4c + languageName: node + linkType: hard + +"define-data-property@npm:^1.1.4": + version: 1.1.4 + resolution: "define-data-property@npm:1.1.4" + dependencies: + es-define-property: "npm:^1.0.0" + es-errors: "npm:^1.3.0" + gopd: "npm:^1.0.1" + checksum: 10c0/dea0606d1483eb9db8d930d4eac62ca0fa16738b0b3e07046cddfacf7d8c868bbe13fa0cb263eb91c7d0d527960dc3f2f2471a69ed7816210307f6744fe62e37 + languageName: node + linkType: hard + +"define-lazy-prop@npm:^2.0.0": + version: 2.0.0 + resolution: "define-lazy-prop@npm:2.0.0" + checksum: 10c0/db6c63864a9d3b7dc9def55d52764968a5af296de87c1b2cc71d8be8142e445208071953649e0386a8cc37cfcf9a2067a47207f1eb9ff250c2a269658fdae422 + languageName: node + linkType: hard + +"delayed-stream@npm:~1.0.0": + version: 1.0.0 + resolution: "delayed-stream@npm:1.0.0" + checksum: 10c0/d758899da03392e6712f042bec80aa293bbe9e9ff1b2634baae6a360113e708b91326594c8a486d475c69d6259afb7efacdc3537bfcda1c6c648e390ce601b19 + languageName: node + linkType: hard + +"dequal@npm:^2.0.2, dequal@npm:^2.0.3": + version: 2.0.3 + resolution: "dequal@npm:2.0.3" + checksum: 10c0/f98860cdf58b64991ae10205137c0e97d384c3a4edc7f807603887b7c4b850af1224a33d88012009f150861cbee4fa2d322c4cc04b9313bee312e47f6ecaa888 + languageName: node + linkType: hard + +"detect-libc@npm:^2.0.3": + version: 2.1.2 + resolution: "detect-libc@npm:2.1.2" + checksum: 10c0/acc675c29a5649fa1fb6e255f993b8ee829e510b6b56b0910666949c80c364738833417d0edb5f90e4e46be17228b0f2b66a010513984e18b15deeeac49369c4 + languageName: node + linkType: hard + +"doctrine@npm:^3.0.0": + version: 3.0.0 + resolution: "doctrine@npm:3.0.0" + dependencies: + esutils: "npm:^2.0.2" + checksum: 10c0/c96bdccabe9d62ab6fea9399fdff04a66e6563c1d6fb3a3a063e8d53c3bb136ba63e84250bbf63d00086a769ad53aef92d2bd483f03f837fc97b71cbee6b2520 + languageName: node + linkType: hard + +"dom-accessibility-api@npm:^0.5.9": + version: 0.5.16 + resolution: "dom-accessibility-api@npm:0.5.16" + checksum: 10c0/b2c2eda4fae568977cdac27a9f0c001edf4f95a6a6191dfa611e3721db2478d1badc01db5bb4fa8a848aeee13e442a6c2a4386d65ec65a1436f24715a2f8d053 + languageName: node + linkType: hard + +"dom-accessibility-api@npm:^0.6.3": + version: 0.6.3 + resolution: "dom-accessibility-api@npm:0.6.3" + checksum: 10c0/10bee5aa514b2a9a37c87cd81268db607a2e933a050074abc2f6fa3da9080ebed206a320cbc123567f2c3087d22292853bdfdceaffdd4334ffe2af9510b29360 + languageName: node + linkType: hard + +"dom-walk@npm:^0.1.0": + version: 0.1.2 + resolution: "dom-walk@npm:0.1.2" + checksum: 10c0/4d2ad9062a9423d890f8577aa202b597a6b85f9489bdde656b9443901b8b322b289655c3affefc58ec2e41931e0828dfee0a1d2db6829a607d76def5901fc5a9 + languageName: node + linkType: hard + +"domexception@npm:^4.0.0": + version: 4.0.0 + resolution: "domexception@npm:4.0.0" + dependencies: + webidl-conversions: "npm:^7.0.0" + checksum: 10c0/774277cd9d4df033f852196e3c0077a34dbd15a96baa4d166e0e47138a80f4c0bdf0d94e4703e6ff5883cec56bb821a6fff84402d8a498e31de7c87eb932a294 + languageName: node + linkType: hard + +"dunder-proto@npm:^1.0.1": + version: 1.0.1 + resolution: "dunder-proto@npm:1.0.1" + dependencies: + call-bind-apply-helpers: "npm:^1.0.1" + es-errors: "npm:^1.3.0" + gopd: "npm:^1.2.0" + checksum: 10c0/199f2a0c1c16593ca0a145dbf76a962f8033ce3129f01284d48c45ed4e14fea9bbacd7b3610b6cdc33486cef20385ac054948fefc6272fcce645c09468f93031 + languageName: node + linkType: hard + +"eastasianwidth@npm:^0.2.0": + version: 0.2.0 + resolution: "eastasianwidth@npm:0.2.0" + checksum: 10c0/26f364ebcdb6395f95124fda411f63137a4bfb5d3a06453f7f23dfe52502905bd84e0488172e0f9ec295fdc45f05c23d5d91baf16bd26f0fe9acd777a188dc39 + languageName: node + linkType: hard + +"electron-to-chromium@npm:^1.5.263": + version: 1.5.307 + resolution: "electron-to-chromium@npm:1.5.307" + checksum: 10c0/eb773a28af0dd7b3717b9bc2b31f332bcb42b43019866e039276db75c8c14063f96e29d19bea47231b4335a319d8518997b2d577dec6b5b237b768c7afdc5588 + languageName: node + linkType: hard + +"emoji-regex@npm:^8.0.0": + version: 8.0.0 + resolution: "emoji-regex@npm:8.0.0" + checksum: 10c0/b6053ad39951c4cf338f9092d7bfba448cdfd46fe6a2a034700b149ac9ffbc137e361cbd3c442297f86bed2e5f7576c1b54cc0a6bf8ef5106cc62f496af35010 + languageName: node + linkType: hard + +"emoji-regex@npm:^9.2.2": + version: 9.2.2 + resolution: "emoji-regex@npm:9.2.2" + checksum: 10c0/af014e759a72064cf66e6e694a7fc6b0ed3d8db680427b021a89727689671cefe9d04151b2cad51dbaf85d5ba790d061cd167f1cf32eb7b281f6368b3c181639 + languageName: node + linkType: hard + +"entities@npm:^6.0.0": + version: 6.0.1 + resolution: "entities@npm:6.0.1" + checksum: 10c0/ed836ddac5acb34341094eb495185d527bd70e8632b6c0d59548cbfa23defdbae70b96f9a405c82904efa421230b5b3fd2283752447d737beffd3f3e6ee74414 + languageName: node + linkType: hard + +"env-paths@npm:^2.2.0": + version: 2.2.1 + resolution: "env-paths@npm:2.2.1" + checksum: 10c0/285325677bf00e30845e330eec32894f5105529db97496ee3f598478e50f008c5352a41a30e5e72ec9de8a542b5a570b85699cd63bd2bc646dbcb9f311d83bc4 + languageName: node + linkType: hard + +"es-define-property@npm:^1.0.0, es-define-property@npm:^1.0.1": + version: 1.0.1 + resolution: "es-define-property@npm:1.0.1" + checksum: 10c0/3f54eb49c16c18707949ff25a1456728c883e81259f045003499efba399c08bad00deebf65cccde8c0e07908c1a225c9d472b7107e558f2a48e28d530e34527c + languageName: node + linkType: hard + +"es-errors@npm:^1.3.0": + version: 1.3.0 + resolution: "es-errors@npm:1.3.0" + checksum: 10c0/0a61325670072f98d8ae3b914edab3559b6caa980f08054a3b872052640d91da01d38df55df797fcc916389d77fc92b8d5906cf028f4db46d7e3003abecbca85 + languageName: node + linkType: hard + +"es-module-lexer@npm:^1.7.0": + version: 1.7.0 + resolution: "es-module-lexer@npm:1.7.0" + checksum: 10c0/4c935affcbfeba7fb4533e1da10fa8568043df1e3574b869385980de9e2d475ddc36769891936dbb07036edb3c3786a8b78ccf44964cd130dedc1f2c984b6c7b + languageName: node + linkType: hard + +"es-object-atoms@npm:^1.0.0, es-object-atoms@npm:^1.1.1": + version: 1.1.1 + resolution: "es-object-atoms@npm:1.1.1" + dependencies: + es-errors: "npm:^1.3.0" + checksum: 10c0/65364812ca4daf48eb76e2a3b7a89b3f6a2e62a1c420766ce9f692665a29d94fe41fe88b65f24106f449859549711e4b40d9fb8002d862dfd7eb1c512d10be0c + languageName: node + linkType: hard + +"es-set-tostringtag@npm:^2.1.0": + version: 2.1.0 + resolution: "es-set-tostringtag@npm:2.1.0" + dependencies: + es-errors: "npm:^1.3.0" + get-intrinsic: "npm:^1.2.6" + has-tostringtag: "npm:^1.0.2" + hasown: "npm:^2.0.2" + checksum: 10c0/ef2ca9ce49afe3931cb32e35da4dcb6d86ab02592cfc2ce3e49ced199d9d0bb5085fc7e73e06312213765f5efa47cc1df553a6a5154584b21448e9fb8355b1af + languageName: node + linkType: hard + +"esbuild-register@npm:^3.5.0": + version: 3.6.0 + resolution: "esbuild-register@npm:3.6.0" + dependencies: + debug: "npm:^4.3.4" + peerDependencies: + esbuild: ">=0.12 <1" + checksum: 10c0/77193b7ca32ba9f81b35ddf3d3d0138efb0b1429d71b39480cfee932e1189dd2e492bd32bf04a4d0bc3adfbc7ec7381ceb5ffd06efe35f3e70904f1f686566d5 + languageName: node + linkType: hard + +"esbuild@npm:^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0 || ^0.25.0, esbuild@npm:^0.25.0": + version: 0.25.12 + resolution: "esbuild@npm:0.25.12" + dependencies: + "@esbuild/aix-ppc64": "npm:0.25.12" + "@esbuild/android-arm": "npm:0.25.12" + "@esbuild/android-arm64": "npm:0.25.12" + "@esbuild/android-x64": "npm:0.25.12" + "@esbuild/darwin-arm64": "npm:0.25.12" + "@esbuild/darwin-x64": "npm:0.25.12" + "@esbuild/freebsd-arm64": "npm:0.25.12" + "@esbuild/freebsd-x64": "npm:0.25.12" + "@esbuild/linux-arm": "npm:0.25.12" + "@esbuild/linux-arm64": "npm:0.25.12" + "@esbuild/linux-ia32": "npm:0.25.12" + "@esbuild/linux-loong64": "npm:0.25.12" + "@esbuild/linux-mips64el": "npm:0.25.12" + "@esbuild/linux-ppc64": "npm:0.25.12" + "@esbuild/linux-riscv64": "npm:0.25.12" + "@esbuild/linux-s390x": "npm:0.25.12" + "@esbuild/linux-x64": "npm:0.25.12" + "@esbuild/netbsd-arm64": "npm:0.25.12" + "@esbuild/netbsd-x64": "npm:0.25.12" + "@esbuild/openbsd-arm64": "npm:0.25.12" + "@esbuild/openbsd-x64": "npm:0.25.12" + "@esbuild/openharmony-arm64": "npm:0.25.12" + "@esbuild/sunos-x64": "npm:0.25.12" + "@esbuild/win32-arm64": "npm:0.25.12" + "@esbuild/win32-ia32": "npm:0.25.12" + "@esbuild/win32-x64": "npm:0.25.12" + dependenciesMeta: + "@esbuild/aix-ppc64": + optional: true + "@esbuild/android-arm": + optional: true + "@esbuild/android-arm64": + optional: true + "@esbuild/android-x64": + optional: true + "@esbuild/darwin-arm64": + optional: true + "@esbuild/darwin-x64": + optional: true + "@esbuild/freebsd-arm64": + optional: true + "@esbuild/freebsd-x64": + optional: true + "@esbuild/linux-arm": + optional: true + "@esbuild/linux-arm64": + optional: true + "@esbuild/linux-ia32": + optional: true + "@esbuild/linux-loong64": + optional: true + "@esbuild/linux-mips64el": + optional: true + "@esbuild/linux-ppc64": + optional: true + "@esbuild/linux-riscv64": + optional: true + "@esbuild/linux-s390x": + optional: true + "@esbuild/linux-x64": + optional: true + "@esbuild/netbsd-arm64": + optional: true + "@esbuild/netbsd-x64": + optional: true + "@esbuild/openbsd-arm64": + optional: true + "@esbuild/openbsd-x64": + optional: true + "@esbuild/openharmony-arm64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": + optional: true + bin: + esbuild: bin/esbuild + checksum: 10c0/c205357531423220a9de8e1e6c6514242bc9b1666e762cd67ccdf8fdfdc3f1d0bd76f8d9383958b97ad4c953efdb7b6e8c1f9ca5951cd2b7c5235e8755b34a6b + languageName: node + linkType: hard + +"esbuild@npm:^0.27.0": + version: 0.27.3 + resolution: "esbuild@npm:0.27.3" + dependencies: + "@esbuild/aix-ppc64": "npm:0.27.3" + "@esbuild/android-arm": "npm:0.27.3" + "@esbuild/android-arm64": "npm:0.27.3" + "@esbuild/android-x64": "npm:0.27.3" + "@esbuild/darwin-arm64": "npm:0.27.3" + "@esbuild/darwin-x64": "npm:0.27.3" + "@esbuild/freebsd-arm64": "npm:0.27.3" + "@esbuild/freebsd-x64": "npm:0.27.3" + "@esbuild/linux-arm": "npm:0.27.3" + "@esbuild/linux-arm64": "npm:0.27.3" + "@esbuild/linux-ia32": "npm:0.27.3" + "@esbuild/linux-loong64": "npm:0.27.3" + "@esbuild/linux-mips64el": "npm:0.27.3" + "@esbuild/linux-ppc64": "npm:0.27.3" + "@esbuild/linux-riscv64": "npm:0.27.3" + "@esbuild/linux-s390x": "npm:0.27.3" + "@esbuild/linux-x64": "npm:0.27.3" + "@esbuild/netbsd-arm64": "npm:0.27.3" + "@esbuild/netbsd-x64": "npm:0.27.3" + "@esbuild/openbsd-arm64": "npm:0.27.3" + "@esbuild/openbsd-x64": "npm:0.27.3" + "@esbuild/openharmony-arm64": "npm:0.27.3" + "@esbuild/sunos-x64": "npm:0.27.3" + "@esbuild/win32-arm64": "npm:0.27.3" + "@esbuild/win32-ia32": "npm:0.27.3" + "@esbuild/win32-x64": "npm:0.27.3" + dependenciesMeta: + "@esbuild/aix-ppc64": + optional: true + "@esbuild/android-arm": + optional: true + "@esbuild/android-arm64": + optional: true + "@esbuild/android-x64": + optional: true + "@esbuild/darwin-arm64": + optional: true + "@esbuild/darwin-x64": + optional: true + "@esbuild/freebsd-arm64": + optional: true + "@esbuild/freebsd-x64": + optional: true + "@esbuild/linux-arm": + optional: true + "@esbuild/linux-arm64": + optional: true + "@esbuild/linux-ia32": + optional: true + "@esbuild/linux-loong64": + optional: true + "@esbuild/linux-mips64el": + optional: true + "@esbuild/linux-ppc64": + optional: true + "@esbuild/linux-riscv64": + optional: true + "@esbuild/linux-s390x": + optional: true + "@esbuild/linux-x64": + optional: true + "@esbuild/netbsd-arm64": + optional: true + "@esbuild/netbsd-x64": + optional: true + "@esbuild/openbsd-arm64": + optional: true + "@esbuild/openbsd-x64": + optional: true + "@esbuild/openharmony-arm64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": + optional: true + bin: + esbuild: bin/esbuild + checksum: 10c0/fdc3f87a3f08b3ef98362f37377136c389a0d180fda4b8d073b26ba930cf245521db0a368f119cc7624bc619248fff1439f5811f062d853576f8ffa3df8ee5f1 + languageName: node + linkType: hard + +"escalade@npm:^3.2.0": + version: 3.2.0 + resolution: "escalade@npm:3.2.0" + checksum: 10c0/ced4dd3a78e15897ed3be74e635110bbf3b08877b0a41be50dcb325ee0e0b5f65fc2d50e9845194d7c4633f327e2e1c6cce00a71b617c5673df0374201d67f65 + languageName: node + linkType: hard + +"escape-string-regexp@npm:^4.0.0": + version: 4.0.0 + resolution: "escape-string-regexp@npm:4.0.0" + checksum: 10c0/9497d4dd307d845bd7f75180d8188bb17ea8c151c1edbf6b6717c100e104d629dc2dfb687686181b0f4b7d732c7dfdc4d5e7a8ff72de1b0ca283a75bbb3a9cd9 + languageName: node + linkType: hard + +"eslint-scope@npm:^8.4.0": + version: 8.4.0 + resolution: "eslint-scope@npm:8.4.0" + dependencies: + esrecurse: "npm:^4.3.0" + estraverse: "npm:^5.2.0" + checksum: 10c0/407f6c600204d0f3705bd557f81bd0189e69cd7996f408f8971ab5779c0af733d1af2f1412066b40ee1588b085874fc37a2333986c6521669cdbdd36ca5058e0 + languageName: node + linkType: hard + +"eslint-visitor-keys@npm:^3.4.3": + version: 3.4.3 + resolution: "eslint-visitor-keys@npm:3.4.3" + checksum: 10c0/92708e882c0a5ffd88c23c0b404ac1628cf20104a108c745f240a13c332a11aac54f49a22d5762efbffc18ecbc9a580d1b7ad034bf5f3cc3307e5cbff2ec9820 + languageName: node + linkType: hard + +"eslint-visitor-keys@npm:^4.2.1": + version: 4.2.1 + resolution: "eslint-visitor-keys@npm:4.2.1" + checksum: 10c0/fcd43999199d6740db26c58dbe0c2594623e31ca307e616ac05153c9272f12f1364f5a0b1917a8e962268fdecc6f3622c1c2908b4fcc2e047a106fe6de69dc43 + languageName: node + linkType: hard + +"eslint@npm:^9.37.0": + version: 9.39.3 + resolution: "eslint@npm:9.39.3" + dependencies: + "@eslint-community/eslint-utils": "npm:^4.8.0" + "@eslint-community/regexpp": "npm:^4.12.1" + "@eslint/config-array": "npm:^0.21.1" + "@eslint/config-helpers": "npm:^0.4.2" + "@eslint/core": "npm:^0.17.0" + "@eslint/eslintrc": "npm:^3.3.1" + "@eslint/js": "npm:9.39.3" + "@eslint/plugin-kit": "npm:^0.4.1" + "@humanfs/node": "npm:^0.16.6" + "@humanwhocodes/module-importer": "npm:^1.0.1" + "@humanwhocodes/retry": "npm:^0.4.2" + "@types/estree": "npm:^1.0.6" + ajv: "npm:^6.12.4" + chalk: "npm:^4.0.0" + cross-spawn: "npm:^7.0.6" + debug: "npm:^4.3.2" + escape-string-regexp: "npm:^4.0.0" + eslint-scope: "npm:^8.4.0" + eslint-visitor-keys: "npm:^4.2.1" + espree: "npm:^10.4.0" + esquery: "npm:^1.5.0" + esutils: "npm:^2.0.2" + fast-deep-equal: "npm:^3.1.3" + file-entry-cache: "npm:^8.0.0" + find-up: "npm:^5.0.0" + glob-parent: "npm:^6.0.2" + ignore: "npm:^5.2.0" + imurmurhash: "npm:^0.1.4" + is-glob: "npm:^4.0.0" + json-stable-stringify-without-jsonify: "npm:^1.0.1" + lodash.merge: "npm:^4.6.2" + minimatch: "npm:^3.1.2" + natural-compare: "npm:^1.4.0" + optionator: "npm:^0.9.3" + peerDependencies: + jiti: "*" + peerDependenciesMeta: + jiti: + optional: true + bin: + eslint: bin/eslint.js + checksum: 10c0/5e5dbf84d4f604f5d2d7a58c5c3fcdde30a01b8973ff3caeca8b2bacc16066717cedb4385ce52db1a2746d0b621770d4d4227cc7f44982b0b03818be2c31538d + languageName: node + linkType: hard + +"espree@npm:^10.0.1, espree@npm:^10.4.0": + version: 10.4.0 + resolution: "espree@npm:10.4.0" + dependencies: + acorn: "npm:^8.15.0" + acorn-jsx: "npm:^5.3.2" + eslint-visitor-keys: "npm:^4.2.1" + checksum: 10c0/c63fe06131c26c8157b4083313cb02a9a54720a08e21543300e55288c40e06c3fc284bdecf108d3a1372c5934a0a88644c98714f38b6ae8ed272b40d9ea08d6b + languageName: node + linkType: hard + +"esprima@npm:~4.0.0": + version: 4.0.1 + resolution: "esprima@npm:4.0.1" + bin: + esparse: ./bin/esparse.js + esvalidate: ./bin/esvalidate.js + checksum: 10c0/ad4bab9ead0808cf56501750fd9d3fb276f6b105f987707d059005d57e182d18a7c9ec7f3a01794ebddcca676773e42ca48a32d67a250c9d35e009ca613caba3 + languageName: node + linkType: hard + +"esquery@npm:^1.5.0": + version: 1.7.0 + resolution: "esquery@npm:1.7.0" + dependencies: + estraverse: "npm:^5.1.0" + checksum: 10c0/77d5173db450b66f3bc685d11af4c90cffeedb340f34a39af96d43509a335ce39c894fd79233df32d38f5e4e219fa0f7076f6ec90bae8320170ba082c0db4793 + languageName: node + linkType: hard + +"esrecurse@npm:^4.3.0": + version: 4.3.0 + resolution: "esrecurse@npm:4.3.0" + dependencies: + estraverse: "npm:^5.2.0" + checksum: 10c0/81a37116d1408ded88ada45b9fb16dbd26fba3aadc369ce50fcaf82a0bac12772ebd7b24cd7b91fc66786bf2c1ac7b5f196bc990a473efff972f5cb338877cf5 + languageName: node + linkType: hard + +"estraverse@npm:^5.1.0, estraverse@npm:^5.2.0": + version: 5.3.0 + resolution: "estraverse@npm:5.3.0" + checksum: 10c0/1ff9447b96263dec95d6d67431c5e0771eb9776427421260a3e2f0fdd5d6bd4f8e37a7338f5ad2880c9f143450c9b1e4fc2069060724570a49cf9cf0312bd107 + languageName: node + linkType: hard + +"estree-walker@npm:^2.0.2": + version: 2.0.2 + resolution: "estree-walker@npm:2.0.2" + checksum: 10c0/53a6c54e2019b8c914dc395890153ffdc2322781acf4bd7d1a32d7aedc1710807bdcd866ac133903d5629ec601fbb50abe8c2e5553c7f5a0afdd9b6af6c945af + languageName: node + linkType: hard + +"estree-walker@npm:^3.0.3": + version: 3.0.3 + resolution: "estree-walker@npm:3.0.3" + dependencies: + "@types/estree": "npm:^1.0.0" + checksum: 10c0/c12e3c2b2642d2bcae7d5aa495c60fa2f299160946535763969a1c83fc74518ffa9c2cd3a8b69ac56aea547df6a8aac25f729a342992ef0bbac5f1c73e78995d + languageName: node + linkType: hard + +"esutils@npm:^2.0.2": + version: 2.0.3 + resolution: "esutils@npm:2.0.3" + checksum: 10c0/9a2fe69a41bfdade834ba7c42de4723c97ec776e40656919c62cbd13607c45e127a003f05f724a1ea55e5029a4cf2de444b13009f2af71271e42d93a637137c7 + languageName: node + linkType: hard + +"expect-type@npm:^1.2.1": + version: 1.3.0 + resolution: "expect-type@npm:1.3.0" + checksum: 10c0/8412b3fe4f392c420ab41dae220b09700e4e47c639a29ba7ba2e83cc6cffd2b4926f7ac9e47d7e277e8f4f02acda76fd6931cb81fd2b382fa9477ef9ada953fd + languageName: node + linkType: hard + +"exponential-backoff@npm:^3.1.1": + version: 3.1.3 + resolution: "exponential-backoff@npm:3.1.3" + checksum: 10c0/77e3ae682b7b1f4972f563c6dbcd2b0d54ac679e62d5d32f3e5085feba20483cf28bd505543f520e287a56d4d55a28d7874299941faf637e779a1aa5994d1267 + languageName: node + linkType: hard + +"fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3": + version: 3.1.3 + resolution: "fast-deep-equal@npm:3.1.3" + checksum: 10c0/40dedc862eb8992c54579c66d914635afbec43350afbbe991235fdcb4e3a8d5af1b23ae7e79bef7d4882d0ecee06c3197488026998fb19f72dc95acff1d1b1d0 + languageName: node + linkType: hard + +"fast-json-stable-stringify@npm:^2.0.0": + version: 2.1.0 + resolution: "fast-json-stable-stringify@npm:2.1.0" + checksum: 10c0/7f081eb0b8a64e0057b3bb03f974b3ef00135fbf36c1c710895cd9300f13c94ba809bb3a81cf4e1b03f6e5285610a61abbd7602d0652de423144dfee5a389c9b + languageName: node + linkType: hard + +"fast-levenshtein@npm:^2.0.6": + version: 2.0.6 + resolution: "fast-levenshtein@npm:2.0.6" + checksum: 10c0/111972b37338bcb88f7d9e2c5907862c280ebf4234433b95bc611e518d192ccb2d38119c4ac86e26b668d75f7f3894f4ff5c4982899afced7ca78633b08287c4 + languageName: node + linkType: hard + +"fdir@npm:^6.4.4, fdir@npm:^6.5.0": + version: 6.5.0 + resolution: "fdir@npm:6.5.0" + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + checksum: 10c0/e345083c4306b3aed6cb8ec551e26c36bab5c511e99ea4576a16750ddc8d3240e63826cc624f5ae17ad4dc82e68a253213b60d556c11bfad064b7607847ed07f + languageName: node + linkType: hard + +"file-entry-cache@npm:^8.0.0": + version: 8.0.0 + resolution: "file-entry-cache@npm:8.0.0" + dependencies: + flat-cache: "npm:^4.0.0" + checksum: 10c0/9e2b5938b1cd9b6d7e3612bdc533afd4ac17b2fc646569e9a8abbf2eb48e5eb8e316bc38815a3ef6a1b456f4107f0d0f055a614ca613e75db6bf9ff4d72c1638 + languageName: node + linkType: hard + +"find-up@npm:^5.0.0": + version: 5.0.0 + resolution: "find-up@npm:5.0.0" + dependencies: + locate-path: "npm:^6.0.0" + path-exists: "npm:^4.0.0" + checksum: 10c0/062c5a83a9c02f53cdd6d175a37ecf8f87ea5bbff1fdfb828f04bfa021441bc7583e8ebc0872a4c1baab96221fb8a8a275a19809fb93fbc40bd69ec35634069a + languageName: node + linkType: hard + +"fix-dts-default-cjs-exports@npm:^1.0.0": + version: 1.0.1 + resolution: "fix-dts-default-cjs-exports@npm:1.0.1" + dependencies: + magic-string: "npm:^0.30.17" + mlly: "npm:^1.7.4" + rollup: "npm:^4.34.8" + checksum: 10c0/61a3cbe32b6c29df495ef3aded78199fe9dbb52e2801c899fe76d9ca413d3c8c51f79986bac83f8b4b2094ebde883ddcfe47b68ce469806ba13ca6ed4e7cd362 + languageName: node + linkType: hard + +"flat-cache@npm:^4.0.0": + version: 4.0.1 + resolution: "flat-cache@npm:4.0.1" + dependencies: + flatted: "npm:^3.2.9" + keyv: "npm:^4.5.4" + checksum: 10c0/2c59d93e9faa2523e4fda6b4ada749bed432cfa28c8e251f33b25795e426a1c6dbada777afb1f74fcfff33934fdbdea921ee738fcc33e71adc9d6eca984a1cfc + languageName: node + linkType: hard + +"flatted@npm:^3.2.9": + version: 3.3.4 + resolution: "flatted@npm:3.3.4" + checksum: 10c0/d1f33426e9714063a65a90940acdb2897eceb810230a58e496d90334dcecfa81a90135bbc660df6827939865d57cb4a2afab14dcd3d505e16a8484fd73bf9642 + languageName: node + linkType: hard + +"for-each@npm:^0.3.5": + version: 0.3.5 + resolution: "for-each@npm:0.3.5" + dependencies: + is-callable: "npm:^1.2.7" + checksum: 10c0/0e0b50f6a843a282637d43674d1fb278dda1dd85f4f99b640024cfb10b85058aac0cc781bf689d5fe50b4b7f638e91e548560723a4e76e04fe96ae35ef039cee + languageName: node + linkType: hard + +"foreground-child@npm:^3.1.0": + version: 3.3.1 + resolution: "foreground-child@npm:3.3.1" + dependencies: + cross-spawn: "npm:^7.0.6" + signal-exit: "npm:^4.0.1" + checksum: 10c0/8986e4af2430896e65bc2788d6679067294d6aee9545daefc84923a0a4b399ad9c7a3ea7bd8c0b2b80fdf4a92de4c69df3f628233ff3224260e9c1541a9e9ed3 + languageName: node + linkType: hard + +"form-data@npm:^4.0.0": + version: 4.0.5 + resolution: "form-data@npm:4.0.5" + dependencies: + asynckit: "npm:^0.4.0" + combined-stream: "npm:^1.0.8" + es-set-tostringtag: "npm:^2.1.0" + hasown: "npm:^2.0.2" + mime-types: "npm:^2.1.12" + checksum: 10c0/dd6b767ee0bbd6d84039db12a0fa5a2028160ffbfaba1800695713b46ae974a5f6e08b3356c3195137f8530dcd9dfcb5d5ae1eeff53d0db1e5aad863b619ce3b + languageName: node + linkType: hard + +"fs-minipass@npm:^3.0.0": + version: 3.0.3 + resolution: "fs-minipass@npm:3.0.3" + dependencies: + minipass: "npm:^7.0.3" + checksum: 10c0/63e80da2ff9b621e2cb1596abcb9207f1cf82b968b116ccd7b959e3323144cce7fb141462200971c38bbf2ecca51695069db45265705bed09a7cd93ae5b89f94 + languageName: node + linkType: hard + +"fsevents@npm:~2.3.2, fsevents@npm:~2.3.3": + version: 2.3.3 + resolution: "fsevents@npm:2.3.3" + dependencies: + node-gyp: "npm:latest" + checksum: 10c0/a1f0c44595123ed717febbc478aa952e47adfc28e2092be66b8ab1635147254ca6cfe1df792a8997f22716d4cbafc73309899ff7bfac2ac3ad8cf2e4ecc3ec60 + conditions: os=darwin + languageName: node + linkType: hard + +"fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin, fsevents@patch:fsevents@npm%3A~2.3.3#optional!builtin": + version: 2.3.3 + resolution: "fsevents@patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1" + dependencies: + node-gyp: "npm:latest" + conditions: os=darwin + languageName: node + linkType: hard + +"function-bind@npm:^1.1.2": + version: 1.1.2 + resolution: "function-bind@npm:1.1.2" + checksum: 10c0/d8680ee1e5fcd4c197e4ac33b2b4dce03c71f4d91717292785703db200f5c21f977c568d28061226f9b5900cbcd2c84463646134fd5337e7925e0942bc3f46d5 + languageName: node + linkType: hard + +"generator-function@npm:^2.0.0": + version: 2.0.1 + resolution: "generator-function@npm:2.0.1" + checksum: 10c0/8a9f59df0f01cfefafdb3b451b80555e5cf6d76487095db91ac461a0e682e4ff7a9dbce15f4ecec191e53586d59eece01949e05a4b4492879600bbbe8e28d6b8 + languageName: node + linkType: hard + +"gensync@npm:^1.0.0-beta.2": + version: 1.0.0-beta.2 + resolution: "gensync@npm:1.0.0-beta.2" + checksum: 10c0/782aba6cba65b1bb5af3b095d96249d20edbe8df32dbf4696fd49be2583faf676173bf4809386588828e4dd76a3354fcbeb577bab1c833ccd9fc4577f26103f8 + languageName: node + linkType: hard + +"get-intrinsic@npm:^1.2.4, get-intrinsic@npm:^1.2.6, get-intrinsic@npm:^1.3.0": + version: 1.3.1 + resolution: "get-intrinsic@npm:1.3.1" + dependencies: + async-function: "npm:^1.0.0" + async-generator-function: "npm:^1.0.0" + call-bind-apply-helpers: "npm:^1.0.2" + es-define-property: "npm:^1.0.1" + es-errors: "npm:^1.3.0" + es-object-atoms: "npm:^1.1.1" + function-bind: "npm:^1.1.2" + generator-function: "npm:^2.0.0" + get-proto: "npm:^1.0.1" + gopd: "npm:^1.2.0" + has-symbols: "npm:^1.1.0" + hasown: "npm:^2.0.2" + math-intrinsics: "npm:^1.1.0" + checksum: 10c0/9f4ab0cf7efe0fd2c8185f52e6f637e708f3a112610c88869f8f041bb9ecc2ce44bf285dfdbdc6f4f7c277a5b88d8e94a432374d97cca22f3de7fc63795deb5d + languageName: node + linkType: hard + +"get-proto@npm:^1.0.1": + version: 1.0.1 + resolution: "get-proto@npm:1.0.1" + dependencies: + dunder-proto: "npm:^1.0.1" + es-object-atoms: "npm:^1.0.0" + checksum: 10c0/9224acb44603c5526955e83510b9da41baf6ae73f7398875fba50edc5e944223a89c4a72b070fcd78beb5f7bdda58ecb6294adc28f7acfc0da05f76a2399643c + languageName: node + linkType: hard + +"glob-parent@npm:^6.0.2": + version: 6.0.2 + resolution: "glob-parent@npm:6.0.2" + dependencies: + is-glob: "npm:^4.0.3" + checksum: 10c0/317034d88654730230b3f43bb7ad4f7c90257a426e872ea0bf157473ac61c99bf5d205fad8f0185f989be8d2fa6d3c7dce1645d99d545b6ea9089c39f838e7f8 + languageName: node + linkType: hard + +"glob@npm:^10.0.0": + version: 10.5.0 + resolution: "glob@npm:10.5.0" + dependencies: + foreground-child: "npm:^3.1.0" + jackspeak: "npm:^3.1.2" + minimatch: "npm:^9.0.4" + minipass: "npm:^7.1.2" + package-json-from-dist: "npm:^1.0.0" + path-scurry: "npm:^1.11.1" + bin: + glob: dist/esm/bin.mjs + checksum: 10c0/100705eddbde6323e7b35e1d1ac28bcb58322095bd8e63a7d0bef1a2cdafe0d0f7922a981b2b48369a4f8c1b077be5c171804534c3509dfe950dde15fbe6d828 + languageName: node + linkType: hard + +"glob@npm:^13.0.0": + version: 13.0.6 + resolution: "glob@npm:13.0.6" + dependencies: + minimatch: "npm:^10.2.2" + minipass: "npm:^7.1.3" + path-scurry: "npm:^2.0.2" + checksum: 10c0/269c236f11a9b50357fe7a8c6aadac667e01deb5242b19c84975628f05f4438d8ee1354bb62c5d6c10f37fd59911b54d7799730633a2786660d8c69f1d18120a + languageName: node + linkType: hard + +"global@npm:4.4.0, global@npm:^4.3.1, global@npm:^4.4.0, global@npm:~4.4.0": + version: 4.4.0 + resolution: "global@npm:4.4.0" + dependencies: + min-document: "npm:^2.19.0" + process: "npm:^0.11.10" + checksum: 10c0/4a467aec6602c00a7c5685f310574ab04e289ad7f894f0f01c9c5763562b82f4b92d1e381ce6c5bbb12173e2a9f759c1b63dda6370cfb199970267e14d90aa91 + languageName: node + linkType: hard + +"globals@npm:^14.0.0": + version: 14.0.0 + resolution: "globals@npm:14.0.0" + checksum: 10c0/b96ff42620c9231ad468d4c58ff42afee7777ee1c963013ff8aabe095a451d0ceeb8dcd8ef4cbd64d2538cef45f787a78ba3a9574f4a634438963e334471302d + languageName: node + linkType: hard + +"gopd@npm:^1.0.1, gopd@npm:^1.2.0": + version: 1.2.0 + resolution: "gopd@npm:1.2.0" + checksum: 10c0/50fff1e04ba2b7737c097358534eacadad1e68d24cccee3272e04e007bed008e68d2614f3987788428fd192a5ae3889d08fb2331417e4fc4a9ab366b2043cead + languageName: node + linkType: hard + +"graceful-fs@npm:^4.2.6": + version: 4.2.11 + resolution: "graceful-fs@npm:4.2.11" + checksum: 10c0/386d011a553e02bc594ac2ca0bd6d9e4c22d7fa8cfbfc448a6d148c59ea881b092db9dbe3547ae4b88e55f1b01f7c4a2ecc53b310c042793e63aa44cf6c257f2 + languageName: node + linkType: hard + +"has-flag@npm:^4.0.0": + version: 4.0.0 + resolution: "has-flag@npm:4.0.0" + checksum: 10c0/2e789c61b7888d66993e14e8331449e525ef42aac53c627cc53d1c3334e768bcb6abdc4f5f0de1478a25beec6f0bd62c7549058b7ac53e924040d4f301f02fd1 + languageName: node + linkType: hard + +"has-property-descriptors@npm:^1.0.2": + version: 1.0.2 + resolution: "has-property-descriptors@npm:1.0.2" + dependencies: + es-define-property: "npm:^1.0.0" + checksum: 10c0/253c1f59e80bb476cf0dde8ff5284505d90c3bdb762983c3514d36414290475fe3fd6f574929d84de2a8eec00d35cf07cb6776205ff32efd7c50719125f00236 + languageName: node + linkType: hard + +"has-symbols@npm:^1.0.3, has-symbols@npm:^1.1.0": + version: 1.1.0 + resolution: "has-symbols@npm:1.1.0" + checksum: 10c0/dde0a734b17ae51e84b10986e651c664379018d10b91b6b0e9b293eddb32f0f069688c841fb40f19e9611546130153e0a2a48fd7f512891fb000ddfa36f5a20e + languageName: node + linkType: hard + +"has-tostringtag@npm:^1.0.2": + version: 1.0.2 + resolution: "has-tostringtag@npm:1.0.2" + dependencies: + has-symbols: "npm:^1.0.3" + checksum: 10c0/a8b166462192bafe3d9b6e420a1d581d93dd867adb61be223a17a8d6dad147aa77a8be32c961bb2f27b3ef893cae8d36f564ab651f5e9b7938ae86f74027c48c + languageName: node + linkType: hard + +"hasown@npm:^2.0.2": + version: 2.0.2 + resolution: "hasown@npm:2.0.2" + dependencies: + function-bind: "npm:^1.1.2" + checksum: 10c0/3769d434703b8ac66b209a4cca0737519925bbdb61dd887f93a16372b14694c63ff4e797686d87c90f08168e81082248b9b028bad60d4da9e0d1148766f56eb9 + languageName: node + linkType: hard + +"hls.js@npm:1.6.14": + version: 1.6.14 + resolution: "hls.js@npm:1.6.14" + checksum: 10c0/79d978d1242681eb3181d7fc579d4432fbddd6912f80a3352de92185be1179b20f96cbe588168b4e83285690341b646f9c6d73b6018ee764e595a6d9dcdd3f06 + languageName: node + linkType: hard + +"html-encoding-sniffer@npm:^3.0.0": + version: 3.0.0 + resolution: "html-encoding-sniffer@npm:3.0.0" + dependencies: + whatwg-encoding: "npm:^2.0.0" + checksum: 10c0/b17b3b0fb5d061d8eb15121c3b0b536376c3e295ecaf09ba48dd69c6b6c957839db124fe1e2b3f11329753a4ee01aa7dedf63b7677999e86da17fbbdd82c5386 + languageName: node + linkType: hard + +"http-cache-semantics@npm:^4.1.1": + version: 4.2.0 + resolution: "http-cache-semantics@npm:4.2.0" + checksum: 10c0/45b66a945cf13ec2d1f29432277201313babf4a01d9e52f44b31ca923434083afeca03f18417f599c9ab3d0e7b618ceb21257542338b57c54b710463b4a53e37 + languageName: node + linkType: hard + +"http-proxy-agent@npm:^5.0.0": + version: 5.0.0 + resolution: "http-proxy-agent@npm:5.0.0" + dependencies: + "@tootallnate/once": "npm:2" + agent-base: "npm:6" + debug: "npm:4" + checksum: 10c0/32a05e413430b2c1e542e5c74b38a9f14865301dd69dff2e53ddb684989440e3d2ce0c4b64d25eb63cf6283e6265ff979a61cf93e3ca3d23047ddfdc8df34a32 + languageName: node + linkType: hard + +"http-proxy-agent@npm:^7.0.0": + version: 7.0.2 + resolution: "http-proxy-agent@npm:7.0.2" + dependencies: + agent-base: "npm:^7.1.0" + debug: "npm:^4.3.4" + checksum: 10c0/4207b06a4580fb85dd6dff521f0abf6db517489e70863dca1a0291daa7f2d3d2d6015a57bd702af068ea5cf9f1f6ff72314f5f5b4228d299c0904135d2aef921 + languageName: node + linkType: hard + +"https-proxy-agent@npm:^5.0.1": + version: 5.0.1 + resolution: "https-proxy-agent@npm:5.0.1" + dependencies: + agent-base: "npm:6" + debug: "npm:4" + checksum: 10c0/6dd639f03434003577c62b27cafdb864784ef19b2de430d8ae2a1d45e31c4fd60719e5637b44db1a88a046934307da7089e03d6089ec3ddacc1189d8de8897d1 + languageName: node + linkType: hard + +"https-proxy-agent@npm:^7.0.1": + version: 7.0.6 + resolution: "https-proxy-agent@npm:7.0.6" + dependencies: + agent-base: "npm:^7.1.2" + debug: "npm:4" + checksum: 10c0/f729219bc735edb621fa30e6e84e60ee5d00802b8247aac0d7b79b0bd6d4b3294737a337b93b86a0bd9e68099d031858a39260c976dc14cdbba238ba1f8779ac + languageName: node + linkType: hard + +"iconv-lite@npm:0.6.3": + version: 0.6.3 + resolution: "iconv-lite@npm:0.6.3" + dependencies: + safer-buffer: "npm:>= 2.1.2 < 3.0.0" + checksum: 10c0/98102bc66b33fcf5ac044099d1257ba0b7ad5e3ccd3221f34dd508ab4070edff183276221684e1e0555b145fce0850c9f7d2b60a9fcac50fbb4ea0d6e845a3b1 + languageName: node + linkType: hard + +"iconv-lite@npm:^0.7.2": + version: 0.7.2 + resolution: "iconv-lite@npm:0.7.2" + dependencies: + safer-buffer: "npm:>= 2.1.2 < 3.0.0" + checksum: 10c0/3c228920f3bd307f56bf8363706a776f4a060eb042f131cd23855ceca962951b264d0997ab38a1ad340e1c5df8499ed26e1f4f0db6b2a2ad9befaff22f14b722 + languageName: node + linkType: hard + +"ignore@npm:^5.2.0": + version: 5.3.2 + resolution: "ignore@npm:5.3.2" + checksum: 10c0/f9f652c957983634ded1e7f02da3b559a0d4cc210fca3792cb67f1b153623c9c42efdc1c4121af171e295444459fc4a9201101fb041b1104a3c000bccb188337 + languageName: node + linkType: hard + +"immutable@npm:^5.0.2": + version: 5.1.5 + resolution: "immutable@npm:5.1.5" + checksum: 10c0/8017ece1578e3c5939ba3305176aee059def1b8a90c7fa2a347ef583ebbd38cbe77ce1bbd786a5fab57e2da00bbcb0493b92e4332cdc4e1fe5cfb09a4688df31 + languageName: node + linkType: hard + +"import-fresh@npm:^3.2.1": + version: 3.3.1 + resolution: "import-fresh@npm:3.3.1" + dependencies: + parent-module: "npm:^1.0.0" + resolve-from: "npm:^4.0.0" + checksum: 10c0/bf8cc494872fef783249709385ae883b447e3eb09db0ebd15dcead7d9afe7224dad7bd7591c6b73b0b19b3c0f9640eb8ee884f01cfaf2887ab995b0b36a0cbec + languageName: node + linkType: hard + +"imurmurhash@npm:^0.1.4": + version: 0.1.4 + resolution: "imurmurhash@npm:0.1.4" + checksum: 10c0/8b51313850dd33605c6c9d3fd9638b714f4c4c40250cff658209f30d40da60f78992fb2df5dabee4acf589a6a82bbc79ad5486550754bd9ec4e3fc0d4a57d6a6 + languageName: node + linkType: hard + +"indent-string@npm:^4.0.0": + version: 4.0.0 + resolution: "indent-string@npm:4.0.0" + checksum: 10c0/1e1904ddb0cb3d6cce7cd09e27a90184908b7a5d5c21b92e232c93579d314f0b83c246ffb035493d0504b1e9147ba2c9b21df0030f48673fba0496ecd698161f + languageName: node + linkType: hard + +"inherits@npm:^2.0.3": + version: 2.0.4 + resolution: "inherits@npm:2.0.4" + checksum: 10c0/4e531f648b29039fb7426fb94075e6545faa1eb9fe83c29f0b6d9e7263aceb4289d2d4557db0d428188eeb449cc7c5e77b0a0b2c4e248ff2a65933a0dee49ef2 + languageName: node + linkType: hard + +"ip-address@npm:^10.0.1": + version: 10.1.0 + resolution: "ip-address@npm:10.1.0" + checksum: 10c0/0103516cfa93f6433b3bd7333fa876eb21263912329bfa47010af5e16934eeeff86f3d2ae700a3744a137839ddfad62b900c7a445607884a49b5d1e32a3d7566 + languageName: node + linkType: hard + +"is-arguments@npm:^1.0.4": + version: 1.2.0 + resolution: "is-arguments@npm:1.2.0" + dependencies: + call-bound: "npm:^1.0.2" + has-tostringtag: "npm:^1.0.2" + checksum: 10c0/6377344b31e9fcb707c6751ee89b11f132f32338e6a782ec2eac9393b0cbd32235dad93052998cda778ee058754860738341d8114910d50ada5615912bb929fc + languageName: node + linkType: hard + +"is-callable@npm:^1.2.7": + version: 1.2.7 + resolution: "is-callable@npm:1.2.7" + checksum: 10c0/ceebaeb9d92e8adee604076971dd6000d38d6afc40bb843ea8e45c5579b57671c3f3b50d7f04869618242c6cee08d1b67806a8cb8edaaaf7c0748b3720d6066f + languageName: node + linkType: hard + +"is-core-module@npm:^2.16.1": + version: 2.16.1 + resolution: "is-core-module@npm:2.16.1" + dependencies: + hasown: "npm:^2.0.2" + checksum: 10c0/898443c14780a577e807618aaae2b6f745c8538eca5c7bc11388a3f2dc6de82b9902bcc7eb74f07be672b11bbe82dd6a6edded44a00cb3d8f933d0459905eedd + languageName: node + linkType: hard + +"is-docker@npm:^2.0.0, is-docker@npm:^2.1.1": + version: 2.2.1 + resolution: "is-docker@npm:2.2.1" + bin: + is-docker: cli.js + checksum: 10c0/e828365958d155f90c409cdbe958f64051d99e8aedc2c8c4cd7c89dcf35329daed42f7b99346f7828df013e27deb8f721cf9408ba878c76eb9e8290235fbcdcc + languageName: node + linkType: hard + +"is-extglob@npm:^2.1.1": + version: 2.1.1 + resolution: "is-extglob@npm:2.1.1" + checksum: 10c0/5487da35691fbc339700bbb2730430b07777a3c21b9ebaecb3072512dfd7b4ba78ac2381a87e8d78d20ea08affb3f1971b4af629173a6bf435ff8a4c47747912 + languageName: node + linkType: hard + +"is-fullwidth-code-point@npm:^3.0.0": + version: 3.0.0 + resolution: "is-fullwidth-code-point@npm:3.0.0" + checksum: 10c0/bb11d825e049f38e04c06373a8d72782eee0205bda9d908cc550ccb3c59b99d750ff9537982e01733c1c94a58e35400661f57042158ff5e8f3e90cf936daf0fc + languageName: node + linkType: hard + +"is-function@npm:^1.0.1": + version: 1.0.2 + resolution: "is-function@npm:1.0.2" + checksum: 10c0/c55289042a0e828a773f1245e2652e0c029efacc78ebe03e61787746fda74e2c41006cd908f20b53c36e45f9e75464475a4b2d68b17f4c7b9f8018bcaec42f9e + languageName: node + linkType: hard + +"is-generator-function@npm:^1.0.7": + version: 1.1.2 + resolution: "is-generator-function@npm:1.1.2" + dependencies: + call-bound: "npm:^1.0.4" + generator-function: "npm:^2.0.0" + get-proto: "npm:^1.0.1" + has-tostringtag: "npm:^1.0.2" + safe-regex-test: "npm:^1.1.0" + checksum: 10c0/83da102e89c3e3b71d67b51d47c9f9bc862bceb58f87201727e27f7fa19d1d90b0ab223644ecaee6fc6e3d2d622bb25c966fbdaf87c59158b01ce7c0fe2fa372 + languageName: node + linkType: hard + +"is-glob@npm:^4.0.0, is-glob@npm:^4.0.3": + version: 4.0.3 + resolution: "is-glob@npm:4.0.3" + dependencies: + is-extglob: "npm:^2.1.1" + checksum: 10c0/17fb4014e22be3bbecea9b2e3a76e9e34ff645466be702f1693e8f1ee1adac84710d0be0bd9f967d6354036fd51ab7c2741d954d6e91dae6bb69714de92c197a + languageName: node + linkType: hard + +"is-potential-custom-element-name@npm:^1.0.1": + version: 1.0.1 + resolution: "is-potential-custom-element-name@npm:1.0.1" + checksum: 10c0/b73e2f22bc863b0939941d369486d308b43d7aef1f9439705e3582bfccaa4516406865e32c968a35f97a99396dac84e2624e67b0a16b0a15086a785e16ce7db9 + languageName: node + linkType: hard + +"is-regex@npm:^1.2.1": + version: 1.2.1 + resolution: "is-regex@npm:1.2.1" + dependencies: + call-bound: "npm:^1.0.2" + gopd: "npm:^1.2.0" + has-tostringtag: "npm:^1.0.2" + hasown: "npm:^2.0.2" + checksum: 10c0/1d3715d2b7889932349241680032e85d0b492cfcb045acb75ffc2c3085e8d561184f1f7e84b6f8321935b4aea39bc9c6ba74ed595b57ce4881a51dfdbc214e04 + languageName: node + linkType: hard + +"is-typed-array@npm:^1.1.3": + version: 1.1.15 + resolution: "is-typed-array@npm:1.1.15" + dependencies: + which-typed-array: "npm:^1.1.16" + checksum: 10c0/415511da3669e36e002820584e264997ffe277ff136643a3126cc949197e6ca3334d0f12d084e83b1994af2e9c8141275c741cf2b7da5a2ff62dd0cac26f76c4 + languageName: node + linkType: hard + +"is-wsl@npm:^2.2.0": + version: 2.2.0 + resolution: "is-wsl@npm:2.2.0" + dependencies: + is-docker: "npm:^2.0.0" + checksum: 10c0/a6fa2d370d21be487c0165c7a440d567274fbba1a817f2f0bfa41cc5e3af25041d84267baa22df66696956038a43973e72fca117918c91431920bdef490fa25e + languageName: node + linkType: hard + +"isexe@npm:^2.0.0": + version: 2.0.0 + resolution: "isexe@npm:2.0.0" + checksum: 10c0/228cfa503fadc2c31596ab06ed6aa82c9976eec2bfd83397e7eaf06d0ccf42cd1dfd6743bf9aeb01aebd4156d009994c5f76ea898d2832c1fe342da923ca457d + languageName: node + linkType: hard + +"isexe@npm:^4.0.0": + version: 4.0.0 + resolution: "isexe@npm:4.0.0" + checksum: 10c0/5884815115bceac452877659a9c7726382531592f43dc29e5d48b7c4100661aed54018cb90bd36cb2eaeba521092570769167acbb95c18d39afdccbcca06c5ce + languageName: node + linkType: hard + +"jackspeak@npm:^3.1.2": + version: 3.4.3 + resolution: "jackspeak@npm:3.4.3" + dependencies: + "@isaacs/cliui": "npm:^8.0.2" + "@pkgjs/parseargs": "npm:^0.11.0" + dependenciesMeta: + "@pkgjs/parseargs": + optional: true + checksum: 10c0/6acc10d139eaefdbe04d2f679e6191b3abf073f111edf10b1de5302c97ec93fffeb2fdd8681ed17f16268aa9dd4f8c588ed9d1d3bffbbfa6e8bf897cbb3149b9 + languageName: node + linkType: hard + +"joycon@npm:^3.1.1": + version: 3.1.1 + resolution: "joycon@npm:3.1.1" + checksum: 10c0/131fb1e98c9065d067fd49b6e685487ac4ad4d254191d7aa2c9e3b90f4e9ca70430c43cad001602bdbdabcf58717d3b5c5b7461c1bd8e39478c8de706b3fe6ae + languageName: node + linkType: hard + +"js-tokens@npm:^4.0.0": + version: 4.0.0 + resolution: "js-tokens@npm:4.0.0" + checksum: 10c0/e248708d377aa058eacf2037b07ded847790e6de892bbad3dac0abba2e759cb9f121b00099a65195616badcb6eca8d14d975cb3e89eb1cfda644756402c8aeed + languageName: node + linkType: hard + +"js-tokens@npm:^9.0.1": + version: 9.0.1 + resolution: "js-tokens@npm:9.0.1" + checksum: 10c0/68dcab8f233dde211a6b5fd98079783cbcd04b53617c1250e3553ee16ab3e6134f5e65478e41d82f6d351a052a63d71024553933808570f04dbf828d7921e80e + languageName: node + linkType: hard + +"js-yaml@npm:^4.1.1": + version: 4.1.1 + resolution: "js-yaml@npm:4.1.1" + dependencies: + argparse: "npm:^2.0.1" + bin: + js-yaml: bin/js-yaml.js + checksum: 10c0/561c7d7088c40a9bb53cc75becbfb1df6ae49b34b5e6e5a81744b14ae8667ec564ad2527709d1a6e7d5e5fa6d483aa0f373a50ad98d42fde368ec4a190d4fae7 + languageName: node + linkType: hard + +"jsdoc-type-pratt-parser@npm:^4.0.0": + version: 4.8.0 + resolution: "jsdoc-type-pratt-parser@npm:4.8.0" + checksum: 10c0/c2b77751d35e3931db9da96720b544b215830722b748b58ee8ce51ec72092006a4a03c5a59c86a4552d0094975c8d3bcc21a7241a0e47860e127d3fba5b55f33 + languageName: node + linkType: hard + +"jsdom@npm:^22.1.0": + version: 22.1.0 + resolution: "jsdom@npm:22.1.0" + dependencies: + abab: "npm:^2.0.6" + cssstyle: "npm:^3.0.0" + data-urls: "npm:^4.0.0" + decimal.js: "npm:^10.4.3" + domexception: "npm:^4.0.0" + form-data: "npm:^4.0.0" + html-encoding-sniffer: "npm:^3.0.0" + http-proxy-agent: "npm:^5.0.0" + https-proxy-agent: "npm:^5.0.1" + is-potential-custom-element-name: "npm:^1.0.1" + nwsapi: "npm:^2.2.4" + parse5: "npm:^7.1.2" + rrweb-cssom: "npm:^0.6.0" + saxes: "npm:^6.0.0" + symbol-tree: "npm:^3.2.4" + tough-cookie: "npm:^4.1.2" + w3c-xmlserializer: "npm:^4.0.0" + webidl-conversions: "npm:^7.0.0" + whatwg-encoding: "npm:^2.0.0" + whatwg-mimetype: "npm:^3.0.0" + whatwg-url: "npm:^12.0.1" + ws: "npm:^8.13.0" + xml-name-validator: "npm:^4.0.0" + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + checksum: 10c0/a1c1501c611d1fe833e0a28796a234325aa09d4c597a9d8ccf6970004a9d946d261469502eadb555bdd7a55f5a2fbf3ce60c727cd99acb0d63f257fb9afcd33d + languageName: node + linkType: hard + +"jsesc@npm:^3.0.2": + version: 3.1.0 + resolution: "jsesc@npm:3.1.0" + bin: + jsesc: bin/jsesc + checksum: 10c0/531779df5ec94f47e462da26b4cbf05eb88a83d9f08aac2ba04206508fc598527a153d08bd462bae82fc78b3eaa1a908e1a4a79f886e9238641c4cdefaf118b1 + languageName: node + linkType: hard + +"json-buffer@npm:3.0.1": + version: 3.0.1 + resolution: "json-buffer@npm:3.0.1" + checksum: 10c0/0d1c91569d9588e7eef2b49b59851f297f3ab93c7b35c7c221e288099322be6b562767d11e4821da500f3219542b9afd2e54c5dc573107c1126ed1080f8e96d7 + languageName: node + linkType: hard + +"json-schema-traverse@npm:^0.4.1": + version: 0.4.1 + resolution: "json-schema-traverse@npm:0.4.1" + checksum: 10c0/108fa90d4cc6f08243aedc6da16c408daf81793bf903e9fd5ab21983cda433d5d2da49e40711da016289465ec2e62e0324dcdfbc06275a607fe3233fde4942ce + languageName: node + linkType: hard + +"json-stable-stringify-without-jsonify@npm:^1.0.1": + version: 1.0.1 + resolution: "json-stable-stringify-without-jsonify@npm:1.0.1" + checksum: 10c0/cb168b61fd4de83e58d09aaa6425ef71001bae30d260e2c57e7d09a5fd82223e2f22a042dedaab8db23b7d9ae46854b08bb1f91675a8be11c5cffebef5fb66a5 + languageName: node + linkType: hard + +"json2mq@npm:^0.2.0": + version: 0.2.0 + resolution: "json2mq@npm:0.2.0" + dependencies: + string-convert: "npm:^0.2.0" + checksum: 10c0/fc9e2f2306572522d3e61d246afdf70b56ca9ea32f4ad5924c30949867851ab59c926bd0ffc821ebb54d32f3e82e95225f3906eacdb3e54c1ad49acdadf7e0c7 + languageName: node + linkType: hard + +"json5@npm:^2.2.2, json5@npm:^2.2.3": + version: 2.2.3 + resolution: "json5@npm:2.2.3" + bin: + json5: lib/cli.js + checksum: 10c0/5a04eed94810fa55c5ea138b2f7a5c12b97c3750bc63d11e511dcecbfef758003861522a070c2272764ee0f4e3e323862f386945aeb5b85b87ee43f084ba586c + languageName: node + linkType: hard + +"keyv@npm:^4.5.4": + version: 4.5.4 + resolution: "keyv@npm:4.5.4" + dependencies: + json-buffer: "npm:3.0.1" + checksum: 10c0/aa52f3c5e18e16bb6324876bb8b59dd02acf782a4b789c7b2ae21107fab95fab3890ed448d4f8dba80ce05391eeac4bfabb4f02a20221342982f806fa2cf271e + languageName: node + linkType: hard + +"levn@npm:^0.4.1": + version: 0.4.1 + resolution: "levn@npm:0.4.1" + dependencies: + prelude-ls: "npm:^1.2.1" + type-check: "npm:~0.4.0" + checksum: 10c0/effb03cad7c89dfa5bd4f6989364bfc79994c2042ec5966cb9b95990e2edee5cd8969ddf42616a0373ac49fac1403437deaf6e9050fbbaa3546093a59b9ac94e + languageName: node + linkType: hard + +"lilconfig@npm:^3.1.1": + version: 3.1.3 + resolution: "lilconfig@npm:3.1.3" + checksum: 10c0/f5604e7240c5c275743561442fbc5abf2a84ad94da0f5adc71d25e31fa8483048de3dcedcb7a44112a942fed305fd75841cdf6c9681c7f640c63f1049e9a5dcc + languageName: node + linkType: hard + +"lines-and-columns@npm:^1.1.6": + version: 1.2.4 + resolution: "lines-and-columns@npm:1.2.4" + checksum: 10c0/3da6ee62d4cd9f03f5dc90b4df2540fb85b352081bee77fe4bbcd12c9000ead7f35e0a38b8d09a9bb99b13223446dd8689ff3c4959807620726d788701a83d2d + languageName: node + linkType: hard + +"load-tsconfig@npm:^0.2.3": + version: 0.2.5 + resolution: "load-tsconfig@npm:0.2.5" + checksum: 10c0/bf2823dd26389d3497b6567f07435c5a7a58d9df82e879b0b3892f87d8db26900f84c85bc329ef41c0540c0d6a448d1c23ddc64a80f3ff6838b940f3915a3fcb + languageName: node + linkType: hard + +"locate-path@npm:^6.0.0": + version: 6.0.0 + resolution: "locate-path@npm:6.0.0" + dependencies: + p-locate: "npm:^5.0.0" + checksum: 10c0/d3972ab70dfe58ce620e64265f90162d247e87159b6126b01314dd67be43d50e96a50b517bce2d9452a79409c7614054c277b5232377de50416564a77ac7aad3 + languageName: node + linkType: hard + +"lodash.merge@npm:^4.6.2": + version: 4.6.2 + resolution: "lodash.merge@npm:4.6.2" + checksum: 10c0/402fa16a1edd7538de5b5903a90228aa48eb5533986ba7fa26606a49db2572bf414ff73a2c9f5d5fd36b31c46a5d5c7e1527749c07cbcf965ccff5fbdf32c506 + languageName: node + linkType: hard + +"lodash@npm:4.17.21": + version: 4.17.21 + resolution: "lodash@npm:4.17.21" + checksum: 10c0/d8cbea072bb08655bb4c989da418994b073a608dffa608b09ac04b43a791b12aeae7cd7ad919aa4c925f33b48490b5cfe6c1f71d827956071dae2e7bb3a6b74c + languageName: node + linkType: hard + +"lodash@npm:^4.17.21": + version: 4.17.23 + resolution: "lodash@npm:4.17.23" + checksum: 10c0/1264a90469f5bb95d4739c43eb6277d15b6d9e186df4ac68c3620443160fc669e2f14c11e7d8b2ccf078b81d06147c01a8ccced9aab9f9f63d50dcf8cace6bf6 + languageName: node + linkType: hard + +"loupe@npm:^3.1.0, loupe@npm:^3.1.1, loupe@npm:^3.1.2, loupe@npm:^3.1.4": + version: 3.2.1 + resolution: "loupe@npm:3.2.1" + checksum: 10c0/910c872cba291309664c2d094368d31a68907b6f5913e989d301b5c25f30e97d76d77f23ab3bf3b46d0f601ff0b6af8810c10c31b91d2c6b2f132809ca2cc705 + languageName: node + linkType: hard + +"lru-cache@npm:^10.2.0": + version: 10.4.3 + resolution: "lru-cache@npm:10.4.3" + checksum: 10c0/ebd04fbca961e6c1d6c0af3799adcc966a1babe798f685bb84e6599266599cd95d94630b10262f5424539bc4640107e8a33aa28585374abf561d30d16f4b39fb + languageName: node + linkType: hard + +"lru-cache@npm:^11.0.0, lru-cache@npm:^11.1.0, lru-cache@npm:^11.2.1": + version: 11.2.6 + resolution: "lru-cache@npm:11.2.6" + checksum: 10c0/73bbffb298760e71b2bfe8ebc16a311c6a60ceddbba919cfedfd8635c2d125fbfb5a39b71818200e67973b11f8d59c5a9e31d6f90722e340e90393663a66e5cd + languageName: node + linkType: hard + +"lru-cache@npm:^5.1.1": + version: 5.1.1 + resolution: "lru-cache@npm:5.1.1" + dependencies: + yallist: "npm:^3.0.2" + checksum: 10c0/89b2ef2ef45f543011e38737b8a8622a2f8998cddf0e5437174ef8f1f70a8b9d14a918ab3e232cb3ba343b7abddffa667f0b59075b2b80e6b4d63c3de6127482 + languageName: node + linkType: hard + +"lz-string@npm:^1.5.0": + version: 1.5.0 + resolution: "lz-string@npm:1.5.0" + bin: + lz-string: bin/bin.js + checksum: 10c0/36128e4de34791838abe979b19927c26e67201ca5acf00880377af7d765b38d1c60847e01c5ec61b1a260c48029084ab3893a3925fd6e48a04011364b089991b + languageName: node + linkType: hard + +"m3u8-parser@npm:^7.2.0": + version: 7.2.0 + resolution: "m3u8-parser@npm:7.2.0" + dependencies: + "@babel/runtime": "npm:^7.12.5" + "@videojs/vhs-utils": "npm:^4.1.1" + global: "npm:^4.4.0" + checksum: 10c0/059571722e842a125f380c1eabb1897bfcda02732525fae73fd404bc18dcf6c8f2383a3102f3f1de45ecdb5774e0312f4558ad178e6fcbd10718f239925f7d83 + languageName: node + linkType: hard + +"magic-string@npm:^0.27.0": + version: 0.27.0 + resolution: "magic-string@npm:0.27.0" + dependencies: + "@jridgewell/sourcemap-codec": "npm:^1.4.13" + checksum: 10c0/cddacfea14441ca57ae8a307bc3cf90bac69efaa4138dd9a80804cffc2759bf06f32da3a293fb13eaa96334b7d45b7768a34f1d226afae25d2f05b05a3bb37d8 + languageName: node + linkType: hard + +"magic-string@npm:^0.30.0, magic-string@npm:^0.30.17": + version: 0.30.21 + resolution: "magic-string@npm:0.30.21" + dependencies: + "@jridgewell/sourcemap-codec": "npm:^1.5.5" + checksum: 10c0/299378e38f9a270069fc62358522ddfb44e94244baa0d6a8980ab2a9b2490a1d03b236b447eee309e17eb3bddfa482c61259d47960eb018a904f0ded52780c4a + languageName: node + linkType: hard + +"make-fetch-happen@npm:^15.0.0": + version: 15.0.4 + resolution: "make-fetch-happen@npm:15.0.4" + dependencies: + "@gar/promise-retry": "npm:^1.0.0" + "@npmcli/agent": "npm:^4.0.0" + cacache: "npm:^20.0.1" + http-cache-semantics: "npm:^4.1.1" + minipass: "npm:^7.0.2" + minipass-fetch: "npm:^5.0.0" + minipass-flush: "npm:^1.0.5" + minipass-pipeline: "npm:^1.2.4" + negotiator: "npm:^1.0.0" + proc-log: "npm:^6.0.0" + ssri: "npm:^13.0.0" + checksum: 10c0/b874bf6879fc0b8ef3a3cafdddadea4d956acf94790f8dede1a9d3c74c7886b6cd3eb992616b8e5935e6fd550016a465f10ba51bf6723a0c6f4d98883ae2926b + languageName: node + linkType: hard + +"map-or-similar@npm:^1.5.0": + version: 1.5.0 + resolution: "map-or-similar@npm:1.5.0" + checksum: 10c0/33c6ccfdc272992e33e4e99a69541a3e7faed9de3ac5bc732feb2500a9ee71d3f9d098980a70b7746e7eeb7f859ff7dfb8aa9b5ecc4e34170a32ab78cfb18def + languageName: node + linkType: hard + +"math-intrinsics@npm:^1.1.0": + version: 1.1.0 + resolution: "math-intrinsics@npm:1.1.0" + checksum: 10c0/7579ff94e899e2f76ab64491d76cf606274c874d8f2af4a442c016bd85688927fcfca157ba6bf74b08e9439dc010b248ce05b96cc7c126a354c3bae7fcb48b7f + languageName: node + linkType: hard + +"memoizerific@npm:^1.11.3": + version: 1.11.3 + resolution: "memoizerific@npm:1.11.3" + dependencies: + map-or-similar: "npm:^1.5.0" + checksum: 10c0/661bf69b7afbfad57f0208f0c63324f4c96087b480708115b78ee3f0237d86c7f91347f6db31528740b2776c2e34c709bcb034e1e910edee2270c9603a0a469e + languageName: node + linkType: hard + +"mime-db@npm:1.52.0": + version: 1.52.0 + resolution: "mime-db@npm:1.52.0" + checksum: 10c0/0557a01deebf45ac5f5777fe7740b2a5c309c6d62d40ceab4e23da9f821899ce7a900b7ac8157d4548ddbb7beffe9abc621250e6d182b0397ec7f10c7b91a5aa + languageName: node + linkType: hard + +"mime-types@npm:^2.1.12": + version: 2.1.35 + resolution: "mime-types@npm:2.1.35" + dependencies: + mime-db: "npm:1.52.0" + checksum: 10c0/82fb07ec56d8ff1fc999a84f2f217aa46cb6ed1033fefaabd5785b9a974ed225c90dc72fff460259e66b95b73648596dbcc50d51ed69cdf464af2d237d3149b2 + languageName: node + linkType: hard + +"min-document@npm:^2.19.0": + version: 2.19.2 + resolution: "min-document@npm:2.19.2" + dependencies: + dom-walk: "npm:^0.1.0" + checksum: 10c0/f6cd59ae07758583bda19cf86ffa8e072cc6e1d72d4e2a62fbf72af3ca630f66ac6a0b3e0ca2b83d5939886da2d006c309fbd0e94f17931ad117860c3fb51bf7 + languageName: node + linkType: hard + +"min-indent@npm:^1.0.0": + version: 1.0.1 + resolution: "min-indent@npm:1.0.1" + checksum: 10c0/7e207bd5c20401b292de291f02913230cb1163abca162044f7db1d951fa245b174dc00869d40dd9a9f32a885ad6a5f3e767ee104cf278f399cb4e92d3f582d5c + languageName: node + linkType: hard + +"minimatch@npm:^10.2.2": + version: 10.2.4 + resolution: "minimatch@npm:10.2.4" + dependencies: + brace-expansion: "npm:^5.0.2" + checksum: 10c0/35f3dfb7b99b51efd46afd378486889f590e7efb10e0f6a10ba6800428cf65c9a8dedb74427d0570b318d749b543dc4e85f06d46d2858bc8cac7e1eb49a95945 + languageName: node + linkType: hard + +"minimatch@npm:^3.1.2, minimatch@npm:^3.1.3": + version: 3.1.5 + resolution: "minimatch@npm:3.1.5" + dependencies: + brace-expansion: "npm:^1.1.7" + checksum: 10c0/2ecbdc0d33f07bddb0315a8b5afbcb761307a8778b48f0b312418ccbced99f104a2d17d8aca7573433c70e8ccd1c56823a441897a45e384ea76ef401a26ace70 + languageName: node + linkType: hard + +"minimatch@npm:^9.0.4": + version: 9.0.9 + resolution: "minimatch@npm:9.0.9" + dependencies: + brace-expansion: "npm:^2.0.2" + checksum: 10c0/0b6a58530dbb00361745aa6c8cffaba4c90f551afe7c734830bd95fd88ebf469dd7355a027824ea1d09e37181cfeb0a797fb17df60c15ac174303ac110eb7e86 + languageName: node + linkType: hard + +"minimist@npm:^1.2.6": + version: 1.2.8 + resolution: "minimist@npm:1.2.8" + checksum: 10c0/19d3fcdca050087b84c2029841a093691a91259a47def2f18222f41e7645a0b7c44ef4b40e88a1e58a40c84d2ef0ee6047c55594d298146d0eb3f6b737c20ce6 + languageName: node + linkType: hard + +"minipass-collect@npm:^2.0.1": + version: 2.0.1 + resolution: "minipass-collect@npm:2.0.1" + dependencies: + minipass: "npm:^7.0.3" + checksum: 10c0/5167e73f62bb74cc5019594709c77e6a742051a647fe9499abf03c71dca75515b7959d67a764bdc4f8b361cf897fbf25e2d9869ee039203ed45240f48b9aa06e + languageName: node + linkType: hard + +"minipass-fetch@npm:^5.0.0": + version: 5.0.2 + resolution: "minipass-fetch@npm:5.0.2" + dependencies: + iconv-lite: "npm:^0.7.2" + minipass: "npm:^7.0.3" + minipass-sized: "npm:^2.0.0" + minizlib: "npm:^3.0.1" + dependenciesMeta: + iconv-lite: + optional: true + checksum: 10c0/ce4ab9f21cfabaead2097d95dd33f485af8072fbc6b19611bce694965393453a1639d641c2bcf1c48f2ea7d41ea7fab8278373f1d0bee4e63b0a5b2cdd0ef649 + languageName: node + linkType: hard + +"minipass-flush@npm:^1.0.5": + version: 1.0.5 + resolution: "minipass-flush@npm:1.0.5" + dependencies: + minipass: "npm:^3.0.0" + checksum: 10c0/2a51b63feb799d2bb34669205eee7c0eaf9dce01883261a5b77410c9408aa447e478efd191b4de6fc1101e796ff5892f8443ef20d9544385819093dbb32d36bd + languageName: node + linkType: hard + +"minipass-pipeline@npm:^1.2.4": + version: 1.2.4 + resolution: "minipass-pipeline@npm:1.2.4" + dependencies: + minipass: "npm:^3.0.0" + checksum: 10c0/cbda57cea20b140b797505dc2cac71581a70b3247b84480c1fed5ca5ba46c25ecc25f68bfc9e6dcb1a6e9017dab5c7ada5eab73ad4f0a49d84e35093e0c643f2 + languageName: node + linkType: hard + +"minipass-sized@npm:^2.0.0": + version: 2.0.0 + resolution: "minipass-sized@npm:2.0.0" + dependencies: + minipass: "npm:^7.1.2" + checksum: 10c0/f9201696a6f6d68610d04c9c83e3d2e5cb9c026aae1c8cbf7e17f386105cb79c1bb088dbc21bf0b1eb4f3fb5df384fd1e7aa3bf1f33868c416ae8c8a92679db8 + languageName: node + linkType: hard + +"minipass@npm:^3.0.0": + version: 3.3.6 + resolution: "minipass@npm:3.3.6" + dependencies: + yallist: "npm:^4.0.0" + checksum: 10c0/a114746943afa1dbbca8249e706d1d38b85ed1298b530f5808ce51f8e9e941962e2a5ad2e00eae7dd21d8a4aae6586a66d4216d1a259385e9d0358f0c1eba16c + languageName: node + linkType: hard + +"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.0.4, minipass@npm:^7.1.2, minipass@npm:^7.1.3": + version: 7.1.3 + resolution: "minipass@npm:7.1.3" + checksum: 10c0/539da88daca16533211ea5a9ee98dc62ff5742f531f54640dd34429e621955e91cc280a91a776026264b7f9f6735947629f920944e9c1558369e8bf22eb33fbb + languageName: node + linkType: hard + +"minizlib@npm:^3.0.1, minizlib@npm:^3.1.0": + version: 3.1.0 + resolution: "minizlib@npm:3.1.0" + dependencies: + minipass: "npm:^7.1.2" + checksum: 10c0/5aad75ab0090b8266069c9aabe582c021ae53eb33c6c691054a13a45db3b4f91a7fb1bd79151e6b4e9e9a86727b522527c0a06ec7d45206b745d54cd3097bcec + languageName: node + linkType: hard + +"mlly@npm:^1.7.4": + version: 1.8.0 + resolution: "mlly@npm:1.8.0" + dependencies: + acorn: "npm:^8.15.0" + pathe: "npm:^2.0.3" + pkg-types: "npm:^1.3.1" + ufo: "npm:^1.6.1" + checksum: 10c0/f174b844ae066c71e9b128046677868e2e28694f0bbeeffbe760b2a9d8ff24de0748d0fde6fabe706700c1d2e11d3c0d7a53071b5ea99671592fac03364604ab + languageName: node + linkType: hard + +"mpd-parser@npm:^1.3.1": + version: 1.3.1 + resolution: "mpd-parser@npm:1.3.1" + dependencies: + "@babel/runtime": "npm:^7.12.5" + "@videojs/vhs-utils": "npm:^4.0.0" + "@xmldom/xmldom": "npm:^0.8.3" + global: "npm:^4.4.0" + bin: + mpd-to-m3u8-json: bin/parse.js + checksum: 10c0/aee95695d18e91262c442e03bb71cdccd1023156b34f5521fa96ba6c0b456a823ed6d7bfe506493ba3119d294f185ee3514ac306ba392add9b7b200c354d8ede + languageName: node + linkType: hard + +"ms@npm:^2.1.3": + version: 2.1.3 + resolution: "ms@npm:2.1.3" + checksum: 10c0/d924b57e7312b3b63ad21fc5b3dc0af5e78d61a1fc7cfb5457edaf26326bf62be5307cc87ffb6862ef1c2b33b0233cdb5d4f01c4c958cc0d660948b65a287a48 + languageName: node + linkType: hard + +"mux.js@npm:7.1.0, mux.js@npm:^7.0.1": + version: 7.1.0 + resolution: "mux.js@npm:7.1.0" + dependencies: + "@babel/runtime": "npm:^7.11.2" + global: "npm:^4.4.0" + bin: + muxjs-transmux: bin/transmux.js + checksum: 10c0/7e57de7087511ab8c0e8dae2ce0221c9f8e2dc53d484635a588ba1e6ed3638c4a8bf10f06b8a517bd8ebab25b303bc3069d3277f31387f7822418a162bbceb6a + languageName: node + linkType: hard + +"mz@npm:^2.7.0": + version: 2.7.0 + resolution: "mz@npm:2.7.0" + dependencies: + any-promise: "npm:^1.0.0" + object-assign: "npm:^4.0.1" + thenify-all: "npm:^1.0.0" + checksum: 10c0/103114e93f87362f0b56ab5b2e7245051ad0276b646e3902c98397d18bb8f4a77f2ea4a2c9d3ad516034ea3a56553b60d3f5f78220001ca4c404bd711bd0af39 + languageName: node + linkType: hard + +"nanoid@npm:^3.3.11": + version: 3.3.11 + resolution: "nanoid@npm:3.3.11" + bin: + nanoid: bin/nanoid.cjs + checksum: 10c0/40e7f70b3d15f725ca072dfc4f74e81fcf1fbb02e491cf58ac0c79093adc9b0a73b152bcde57df4b79cd097e13023d7504acb38404a4da7bc1cd8e887b82fe0b + languageName: node + linkType: hard + +"natural-compare@npm:^1.4.0": + version: 1.4.0 + resolution: "natural-compare@npm:1.4.0" + checksum: 10c0/f5f9a7974bfb28a91afafa254b197f0f22c684d4a1731763dda960d2c8e375b36c7d690e0d9dc8fba774c537af14a7e979129bca23d88d052fbeb9466955e447 + languageName: node + linkType: hard + +"negotiator@npm:^1.0.0": + version: 1.0.0 + resolution: "negotiator@npm:1.0.0" + checksum: 10c0/4c559dd52669ea48e1914f9d634227c561221dd54734070791f999c52ed0ff36e437b2e07d5c1f6e32909fc625fe46491c16e4a8f0572567d4dd15c3a4fda04b + languageName: node + linkType: hard + +"ng-zorro-antd@npm:^20.4.4": + version: 20.4.4 + resolution: "ng-zorro-antd@npm:20.4.4" + dependencies: + "@angular/cdk": "npm:^20.0.0" + "@ant-design/icons-angular": "npm:^20.0.0" + "@ctrl/tinycolor": "npm:^3.6.0" + date-fns: "npm:^2.16.1" + tslib: "npm:^2.3.0" + peerDependencies: + "@angular/animations": ^20.0.0 + "@angular/common": ^20.0.0 + "@angular/core": ^20.0.0 + "@angular/forms": ^20.0.0 + "@angular/platform-browser": ^20.0.0 + "@angular/router": ^20.0.0 + checksum: 10c0/2051686e1ed3dc63adb5a3330b2306dd4deb5b610896a0f0f650d046ec93ea06c7f5a759d98de3fd9f3bb09a6041ed26257a37c61e2201fa0643b6a230c1d004 + languageName: node + linkType: hard + +"node-addon-api@npm:^7.0.0": + version: 7.1.1 + resolution: "node-addon-api@npm:7.1.1" + dependencies: + node-gyp: "npm:latest" + checksum: 10c0/fb32a206276d608037fa1bcd7e9921e177fe992fc610d098aa3128baca3c0050fc1e014fa007e9b3874cf865ddb4f5bd9f43ccb7cbbbe4efaff6a83e920b17e9 + languageName: node + linkType: hard + +"node-gyp@npm:latest": + version: 12.2.0 + resolution: "node-gyp@npm:12.2.0" + dependencies: + env-paths: "npm:^2.2.0" + exponential-backoff: "npm:^3.1.1" + graceful-fs: "npm:^4.2.6" + make-fetch-happen: "npm:^15.0.0" + nopt: "npm:^9.0.0" + proc-log: "npm:^6.0.0" + semver: "npm:^7.3.5" + tar: "npm:^7.5.4" + tinyglobby: "npm:^0.2.12" + which: "npm:^6.0.0" + bin: + node-gyp: bin/node-gyp.js + checksum: 10c0/3ed046746a5a7d90950cd8b0547332b06598443f31fe213ef4332a7174c7b7d259e1704835feda79b87d3f02e59d7791842aac60642ede4396ab25fdf0f8f759 + languageName: node + linkType: hard + +"node-releases@npm:^2.0.27": + version: 2.0.27 + resolution: "node-releases@npm:2.0.27" + checksum: 10c0/f1e6583b7833ea81880627748d28a3a7ff5703d5409328c216ae57befbced10ce2c991bea86434e8ec39003bd017f70481e2e5f8c1f7e0a7663241f81d6e00e2 + languageName: node + linkType: hard + +"nopt@npm:^9.0.0": + version: 9.0.0 + resolution: "nopt@npm:9.0.0" + dependencies: + abbrev: "npm:^4.0.0" + bin: + nopt: bin/nopt.js + checksum: 10c0/1822eb6f9b020ef6f7a7516d7b64a8036e09666ea55ac40416c36e4b2b343122c3cff0e2f085675f53de1d2db99a2a89a60ccea1d120bcd6a5347bf6ceb4a7fd + languageName: node + linkType: hard + +"nwsapi@npm:^2.2.4": + version: 2.2.23 + resolution: "nwsapi@npm:2.2.23" + checksum: 10c0/e44bfc9246baf659581206ed716d291a1905185247795fb8a302cb09315c943a31023b4ac4d026a5eaf32b2def51d77b3d0f9ebf4f3d35f70e105fcb6447c76e + languageName: node + linkType: hard + +"object-assign@npm:^4.0.1": + version: 4.1.1 + resolution: "object-assign@npm:4.1.1" + checksum: 10c0/1f4df9945120325d041ccf7b86f31e8bcc14e73d29171e37a7903050e96b81323784ec59f93f102ec635bcf6fa8034ba3ea0a8c7e69fa202b87ae3b6cec5a414 + languageName: node + linkType: hard + +"open@npm:^8.0.4": + version: 8.4.2 + resolution: "open@npm:8.4.2" + dependencies: + define-lazy-prop: "npm:^2.0.0" + is-docker: "npm:^2.1.1" + is-wsl: "npm:^2.2.0" + checksum: 10c0/bb6b3a58401dacdb0aad14360626faf3fb7fba4b77816b373495988b724fb48941cad80c1b65d62bb31a17609b2cd91c41a181602caea597ca80dfbcc27e84c9 + languageName: node + linkType: hard + +"optionator@npm:^0.9.3": + version: 0.9.4 + resolution: "optionator@npm:0.9.4" + dependencies: + deep-is: "npm:^0.1.3" + fast-levenshtein: "npm:^2.0.6" + levn: "npm:^0.4.1" + prelude-ls: "npm:^1.2.1" + type-check: "npm:^0.4.0" + word-wrap: "npm:^1.2.5" + checksum: 10c0/4afb687a059ee65b61df74dfe87d8d6815cd6883cb8b3d5883a910df72d0f5d029821f37025e4bccf4048873dbdb09acc6d303d27b8f76b1a80dd5a7d5334675 + languageName: node + linkType: hard + +"p-limit@npm:^3.0.2": + version: 3.1.0 + resolution: "p-limit@npm:3.1.0" + dependencies: + yocto-queue: "npm:^0.1.0" + checksum: 10c0/9db675949dbdc9c3763c89e748d0ef8bdad0afbb24d49ceaf4c46c02c77d30db4e0652ed36d0a0a7a95154335fab810d95c86153105bb73b3a90448e2bb14e1a + languageName: node + linkType: hard + +"p-locate@npm:^5.0.0": + version: 5.0.0 + resolution: "p-locate@npm:5.0.0" + dependencies: + p-limit: "npm:^3.0.2" + checksum: 10c0/2290d627ab7903b8b70d11d384fee714b797f6040d9278932754a6860845c4d3190603a0772a663c8cb5a7b21d1b16acb3a6487ebcafa9773094edc3dfe6009a + languageName: node + linkType: hard + +"p-map@npm:^7.0.2": + version: 7.0.4 + resolution: "p-map@npm:7.0.4" + checksum: 10c0/a5030935d3cb2919d7e89454d1ce82141e6f9955413658b8c9403cfe379283770ed3048146b44cde168aa9e8c716505f196d5689db0ae3ce9a71521a2fef3abd + languageName: node + linkType: hard + +"package-json-from-dist@npm:^1.0.0": + version: 1.0.1 + resolution: "package-json-from-dist@npm:1.0.1" + checksum: 10c0/62ba2785eb655fec084a257af34dbe24292ab74516d6aecef97ef72d4897310bc6898f6c85b5cd22770eaa1ce60d55a0230e150fb6a966e3ecd6c511e23d164b + languageName: node + linkType: hard + +"parent-module@npm:^1.0.0": + version: 1.0.1 + resolution: "parent-module@npm:1.0.1" + dependencies: + callsites: "npm:^3.0.0" + checksum: 10c0/c63d6e80000d4babd11978e0d3fee386ca7752a02b035fd2435960ffaa7219dc42146f07069fb65e6e8bf1caef89daf9af7535a39bddf354d78bf50d8294f556 + languageName: node + linkType: hard + +"parse5@npm:^7.1.2": + version: 7.3.0 + resolution: "parse5@npm:7.3.0" + dependencies: + entities: "npm:^6.0.0" + checksum: 10c0/7fd2e4e247e85241d6f2a464d0085eed599a26d7b0a5233790c49f53473232eb85350e8133344d9b3fd58b89339e7ad7270fe1f89d28abe50674ec97b87f80b5 + languageName: node + linkType: hard + +"parse5@npm:^8.0.0": + version: 8.0.0 + resolution: "parse5@npm:8.0.0" + dependencies: + entities: "npm:^6.0.0" + checksum: 10c0/8279892dcd77b2f2229707f60eb039e303adf0288812b2a8fd5acf506a4d432da833c6c5d07a6554bef722c2367a81ef4a1f7e9336564379a7dba3e798bf16b3 + languageName: node + linkType: hard + +"path-exists@npm:^4.0.0": + version: 4.0.0 + resolution: "path-exists@npm:4.0.0" + checksum: 10c0/8c0bd3f5238188197dc78dced15207a4716c51cc4e3624c44fc97acf69558f5ebb9a2afff486fe1b4ee148e0c133e96c5e11a9aa5c48a3006e3467da070e5e1b + languageName: node + linkType: hard + +"path-key@npm:^3.1.0": + version: 3.1.1 + resolution: "path-key@npm:3.1.1" + checksum: 10c0/748c43efd5a569c039d7a00a03b58eecd1d75f3999f5a28303d75f521288df4823bc057d8784eb72358b2895a05f29a070bc9f1f17d28226cc4e62494cc58c4c + languageName: node + linkType: hard + +"path-parse@npm:^1.0.7": + version: 1.0.7 + resolution: "path-parse@npm:1.0.7" + checksum: 10c0/11ce261f9d294cc7a58d6a574b7f1b935842355ec66fba3c3fd79e0f036462eaf07d0aa95bb74ff432f9afef97ce1926c720988c6a7451d8a584930ae7de86e1 + languageName: node + linkType: hard + +"path-scurry@npm:^1.11.1": + version: 1.11.1 + resolution: "path-scurry@npm:1.11.1" + dependencies: + lru-cache: "npm:^10.2.0" + minipass: "npm:^5.0.0 || ^6.0.2 || ^7.0.0" + checksum: 10c0/32a13711a2a505616ae1cc1b5076801e453e7aae6ac40ab55b388bb91b9d0547a52f5aaceff710ea400205f18691120d4431e520afbe4266b836fadede15872d + languageName: node + linkType: hard + +"path-scurry@npm:^2.0.2": + version: 2.0.2 + resolution: "path-scurry@npm:2.0.2" + dependencies: + lru-cache: "npm:^11.0.0" + minipass: "npm:^7.1.2" + checksum: 10c0/b35ad37cf6557a87fd057121ce2be7695380c9138d93e87ae928609da259ea0a170fac6f3ef1eb3ece8a068e8b7f2f3adf5bb2374cf4d4a57fe484954fcc9482 + languageName: node + linkType: hard + +"pathe@npm:^2.0.1, pathe@npm:^2.0.3": + version: 2.0.3 + resolution: "pathe@npm:2.0.3" + checksum: 10c0/c118dc5a8b5c4166011b2b70608762e260085180bb9e33e80a50dcdb1e78c010b1624f4280c492c92b05fc276715a4c357d1f9edc570f8f1b3d90b6839ebaca1 + languageName: node + linkType: hard + +"pathval@npm:^2.0.0": + version: 2.0.1 + resolution: "pathval@npm:2.0.1" + checksum: 10c0/460f4709479fbf2c45903a65655fc8f0a5f6d808f989173aeef5fdea4ff4f303dc13f7870303999add60ec49d4c14733895c0a869392e9866f1091fa64fd7581 + languageName: node + linkType: hard + +"picocolors@npm:1.1.1, picocolors@npm:^1.1.1": + version: 1.1.1 + resolution: "picocolors@npm:1.1.1" + checksum: 10c0/e2e3e8170ab9d7c7421969adaa7e1b31434f789afb9b3f115f6b96d91945041ac3ceb02e9ec6fe6510ff036bcc0bf91e69a1772edc0b707e12b19c0f2d6bcf58 + languageName: node + linkType: hard + +"picomatch@npm:^4.0.2, picomatch@npm:^4.0.3": + version: 4.0.3 + resolution: "picomatch@npm:4.0.3" + checksum: 10c0/9582c951e95eebee5434f59e426cddd228a7b97a0161a375aed4be244bd3fe8e3a31b846808ea14ef2c8a2527a6eeab7b3946a67d5979e81694654f939473ae2 + languageName: node + linkType: hard + +"pirates@npm:^4.0.1": + version: 4.0.7 + resolution: "pirates@npm:4.0.7" + checksum: 10c0/a51f108dd811beb779d58a76864bbd49e239fa40c7984cd11596c75a121a8cc789f1c8971d8bb15f0dbf9d48b76c05bb62fcbce840f89b688c0fa64b37e8478a + languageName: node + linkType: hard + +"pkcs7@npm:^1.0.4": + version: 1.0.4 + resolution: "pkcs7@npm:1.0.4" + dependencies: + "@babel/runtime": "npm:^7.5.5" + bin: + pkcs7: bin/cli.js + checksum: 10c0/455b6b9cb890ad5c63756cf8acca1764455aea15c9c694b4113b0a7ce2f64321a7625d73ec240b3984ccd120ceaaa69aec8a4420ae81f27df988d3fe27650d51 + languageName: node + linkType: hard + +"pkg-types@npm:^1.3.1": + version: 1.3.1 + resolution: "pkg-types@npm:1.3.1" + dependencies: + confbox: "npm:^0.1.8" + mlly: "npm:^1.7.4" + pathe: "npm:^2.0.1" + checksum: 10c0/19e6cb8b66dcc66c89f2344aecfa47f2431c988cfa3366bdfdcfb1dd6695f87dcce37fbd90fe9d1605e2f4440b77f391e83c23255347c35cf84e7fd774d7fcea + languageName: node + linkType: hard + +"polished@npm:^4.2.2": + version: 4.3.1 + resolution: "polished@npm:4.3.1" + dependencies: + "@babel/runtime": "npm:^7.17.8" + checksum: 10c0/45480d4c7281a134281cef092f6ecc202a868475ff66a390fee6e9261386e16f3047b4de46a2f2e1cf7fb7aa8f52d30b4ed631a1e3bcd6f303ca31161d4f07fe + languageName: node + linkType: hard + +"possible-typed-array-names@npm:^1.0.0": + version: 1.1.0 + resolution: "possible-typed-array-names@npm:1.1.0" + checksum: 10c0/c810983414142071da1d644662ce4caebce890203eb2bc7bf119f37f3fe5796226e117e6cca146b521921fa6531072674174a3325066ac66fce089a53e1e5196 + languageName: node + linkType: hard + +"postcss-load-config@npm:^6.0.1": + version: 6.0.1 + resolution: "postcss-load-config@npm:6.0.1" + dependencies: + lilconfig: "npm:^3.1.1" + peerDependencies: + jiti: ">=1.21.0" + postcss: ">=8.0.9" + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + jiti: + optional: true + postcss: + optional: true + tsx: + optional: true + yaml: + optional: true + checksum: 10c0/74173a58816dac84e44853f7afbd283f4ef13ca0b6baeba27701214beec33f9e309b128f8102e2b173e8d45ecba45d279a9be94b46bf48d219626aa9b5730848 + languageName: node + linkType: hard + +"postcss@npm:^8.5.3, postcss@npm:^8.5.6": + version: 8.5.8 + resolution: "postcss@npm:8.5.8" + dependencies: + nanoid: "npm:^3.3.11" + picocolors: "npm:^1.1.1" + source-map-js: "npm:^1.2.1" + checksum: 10c0/dd918f7127ee7c60a0295bae2e72b3787892296e1d1c3c564d7a2a00c68d8df83cadc3178491259daa19ccc54804fb71ed8c937c6787e08d8bd4bedf8d17044c + languageName: node + linkType: hard + +"prelude-ls@npm:^1.2.1": + version: 1.2.1 + resolution: "prelude-ls@npm:1.2.1" + checksum: 10c0/b00d617431e7886c520a6f498a2e14c75ec58f6d93ba48c3b639cf241b54232d90daa05d83a9e9b9fef6baa63cb7e1e4602c2372fea5bc169668401eb127d0cd + languageName: node + linkType: hard + +"prettier@npm:^3.6.2": + version: 3.8.1 + resolution: "prettier@npm:3.8.1" + bin: + prettier: bin/prettier.cjs + checksum: 10c0/33169b594009e48f570471271be7eac7cdcf88a209eed39ac3b8d6d78984039bfa9132f82b7e6ba3b06711f3bfe0222a62a1bfb87c43f50c25a83df1b78a2c42 + languageName: node + linkType: hard + +"pretty-format@npm:^27.0.2": + version: 27.5.1 + resolution: "pretty-format@npm:27.5.1" + dependencies: + ansi-regex: "npm:^5.0.1" + ansi-styles: "npm:^5.0.0" + react-is: "npm:^17.0.1" + checksum: 10c0/0cbda1031aa30c659e10921fa94e0dd3f903ecbbbe7184a729ad66f2b6e7f17891e8c7d7654c458fa4ccb1a411ffb695b4f17bbcd3fe075fabe181027c4040ed + languageName: node + linkType: hard + +"proc-log@npm:^6.0.0": + version: 6.1.0 + resolution: "proc-log@npm:6.1.0" + checksum: 10c0/4f178d4062733ead9d71a9b1ab24ebcecdfe2250916a5b1555f04fe2eda972a0ec76fbaa8df1ad9c02707add6749219d118a4fc46dc56bdfe4dde4b47d80bb82 + languageName: node + linkType: hard + +"process@npm:^0.11.10": + version: 0.11.10 + resolution: "process@npm:0.11.10" + checksum: 10c0/40c3ce4b7e6d4b8c3355479df77aeed46f81b279818ccdc500124e6a5ab882c0cc81ff7ea16384873a95a74c4570b01b120f287abbdd4c877931460eca6084b3 + languageName: node + linkType: hard + +"psl@npm:^1.1.33": + version: 1.15.0 + resolution: "psl@npm:1.15.0" + dependencies: + punycode: "npm:^2.3.1" + checksum: 10c0/d8d45a99e4ca62ca12ac3c373e63d80d2368d38892daa40cfddaa1eb908be98cd549ac059783ef3a56cfd96d57ae8e2fd9ae53d1378d90d42bc661ff924e102a + languageName: node + linkType: hard + +"punycode@npm:^2.1.0, punycode@npm:^2.1.1, punycode@npm:^2.3.0, punycode@npm:^2.3.1": + version: 2.3.1 + resolution: "punycode@npm:2.3.1" + checksum: 10c0/14f76a8206bc3464f794fb2e3d3cc665ae416c01893ad7a02b23766eb07159144ee612ad67af5e84fa4479ccfe67678c4feb126b0485651b302babf66f04f9e9 + languageName: node + linkType: hard + +"querystringify@npm:^2.1.1": + version: 2.2.0 + resolution: "querystringify@npm:2.2.0" + checksum: 10c0/3258bc3dbdf322ff2663619afe5947c7926a6ef5fb78ad7d384602974c467fadfc8272af44f5eb8cddd0d011aae8fabf3a929a8eee4b86edcc0a21e6bd10f9aa + languageName: node + linkType: hard + +"rc-cascader@npm:~3.34.0": + version: 3.34.0 + resolution: "rc-cascader@npm:3.34.0" + dependencies: + "@babel/runtime": "npm:^7.25.7" + classnames: "npm:^2.3.1" + rc-select: "npm:~14.16.2" + rc-tree: "npm:~5.13.0" + rc-util: "npm:^5.43.0" + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 10c0/1fc8c55e0f78ff2be59e2bcd8faa53aafecebbb28f4bb9982ad39e8f9f9620e15d6119797c7890347e46b05c32b43177ece047e81ef04c22a9f041eb0dd53e0a + languageName: node + linkType: hard + +"rc-checkbox@npm:~3.5.0": + version: 3.5.0 + resolution: "rc-checkbox@npm:3.5.0" + dependencies: + "@babel/runtime": "npm:^7.10.1" + classnames: "npm:^2.3.2" + rc-util: "npm:^5.25.2" + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 10c0/53fd419030a8c9e3d08ebb7c51dee79be810ccd92ed177066c2afa8f61a8fe4417232bbc4741ecc0a627d0c4b939a5e945c6f0d6a941c748d65c2ddad71775e3 + languageName: node + linkType: hard + +"rc-collapse@npm:~3.9.0": + version: 3.9.0 + resolution: "rc-collapse@npm:3.9.0" + dependencies: + "@babel/runtime": "npm:^7.10.1" + classnames: "npm:2.x" + rc-motion: "npm:^2.3.4" + rc-util: "npm:^5.27.0" + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 10c0/68d2c7a6614fea2bf4a30a39e67d5b74b933fd25e31762cd810ff0f7bcf7e57676db6c3c1389461d5d18be4a68b9cfeda65321a8d1f5978ec2a5aa3d7b9010cc + languageName: node + linkType: hard + +"rc-dialog@npm:~9.6.0": + version: 9.6.0 + resolution: "rc-dialog@npm:9.6.0" + dependencies: + "@babel/runtime": "npm:^7.10.1" + "@rc-component/portal": "npm:^1.0.0-8" + classnames: "npm:^2.2.6" + rc-motion: "npm:^2.3.0" + rc-util: "npm:^5.21.0" + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 10c0/19e9acef746baa25c3167a961919123b0b457288188c18bc4d468ae31144bf750d6d6468dd3be43b376eba42ddda26fef1aac8ae9bd016f5d0428ffee0c615e7 + languageName: node + linkType: hard + +"rc-drawer@npm:~7.3.0": + version: 7.3.0 + resolution: "rc-drawer@npm:7.3.0" + dependencies: + "@babel/runtime": "npm:^7.23.9" + "@rc-component/portal": "npm:^1.1.1" + classnames: "npm:^2.2.6" + rc-motion: "npm:^2.6.1" + rc-util: "npm:^5.38.1" + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 10c0/e2c3211d6a3790813bf2c1626cebf3fdb3a4c48ab56bee2d208ba07dd0e5058154981563e89e02571d573dd56c2ddc65db33a0cf37c58820ecc4b08785e8d169 + languageName: node + linkType: hard + +"rc-dropdown@npm:~4.2.0, rc-dropdown@npm:~4.2.1": + version: 4.2.1 + resolution: "rc-dropdown@npm:4.2.1" + dependencies: + "@babel/runtime": "npm:^7.18.3" + "@rc-component/trigger": "npm:^2.0.0" + classnames: "npm:^2.2.6" + rc-util: "npm:^5.44.1" + peerDependencies: + react: ">=16.11.0" + react-dom: ">=16.11.0" + checksum: 10c0/ec980e6c9f8bbba53e895002a0c3a28f294ae07f3ebc6c9a9cb80c7e1bb74ba9f0e0c4b9c23f487fdf8c5a4531000e05b5b43744ef506f0fd869165486768817 + languageName: node + linkType: hard + +"rc-field-form@npm:~2.7.1": + version: 2.7.1 + resolution: "rc-field-form@npm:2.7.1" + dependencies: + "@babel/runtime": "npm:^7.18.0" + "@rc-component/async-validator": "npm:^5.0.3" + rc-util: "npm:^5.32.2" + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 10c0/2493cb9f26e69e17d55f32ad689da103a325e613d9222bfb332c2dcbdc96d44ce7dc4c8642a9b89a932ad2c2573508c997a4685e7fe6de2e951a027d2837403a + languageName: node + linkType: hard + +"rc-image@npm:~7.12.0": + version: 7.12.0 + resolution: "rc-image@npm:7.12.0" + dependencies: + "@babel/runtime": "npm:^7.11.2" + "@rc-component/portal": "npm:^1.0.2" + classnames: "npm:^2.2.6" + rc-dialog: "npm:~9.6.0" + rc-motion: "npm:^2.6.2" + rc-util: "npm:^5.34.1" + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 10c0/229f848725f8cff5b6015eb0468a24a3d92c2aead48dc98abe19e6ff15840defc9b42f1a126b7f8180f678b5380ff99528bb89e972298ad456773e4070f33934 + languageName: node + linkType: hard + +"rc-input-number@npm:~9.5.0": + version: 9.5.0 + resolution: "rc-input-number@npm:9.5.0" + dependencies: + "@babel/runtime": "npm:^7.10.1" + "@rc-component/mini-decimal": "npm:^1.0.1" + classnames: "npm:^2.2.5" + rc-input: "npm:~1.8.0" + rc-util: "npm:^5.40.1" + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 10c0/332aef42cd1f0e9eeee08c85db978c9615dfec5c8972e91c37a2ba4e06c3578d84dda05698e98893c6e62620d0d53aa910c0fbee2afac8f54c6f68759c296a58 + languageName: node + linkType: hard + +"rc-input@npm:~1.8.0": + version: 1.8.0 + resolution: "rc-input@npm:1.8.0" + dependencies: + "@babel/runtime": "npm:^7.11.1" + classnames: "npm:^2.2.1" + rc-util: "npm:^5.18.1" + peerDependencies: + react: ">=16.0.0" + react-dom: ">=16.0.0" + checksum: 10c0/fe4e67b6980b22f77d62dcd87177a2381976baeaff265a27c4adb63bab48735f7c89b271c541eb0aab8c9d58af66979f45e79b44b72342838ac038ee5db0ba73 + languageName: node + linkType: hard + +"rc-mentions@npm:~2.20.0": + version: 2.20.0 + resolution: "rc-mentions@npm:2.20.0" + dependencies: + "@babel/runtime": "npm:^7.22.5" + "@rc-component/trigger": "npm:^2.0.0" + classnames: "npm:^2.2.6" + rc-input: "npm:~1.8.0" + rc-menu: "npm:~9.16.0" + rc-textarea: "npm:~1.10.0" + rc-util: "npm:^5.34.1" + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 10c0/2b242221772bad982c47916328e0245365134ba48519d171a93a8d79ddbdfb20a98421d7962215867dc9097dd58c307ea9bb6c9590125c0484c01d0b78e207e0 + languageName: node + linkType: hard + +"rc-menu@npm:~9.16.0, rc-menu@npm:~9.16.1": + version: 9.16.1 + resolution: "rc-menu@npm:9.16.1" + dependencies: + "@babel/runtime": "npm:^7.10.1" + "@rc-component/trigger": "npm:^2.0.0" + classnames: "npm:2.x" + rc-motion: "npm:^2.4.3" + rc-overflow: "npm:^1.3.1" + rc-util: "npm:^5.27.0" + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 10c0/b61f21013cd679777b673d6e1a9f8429ffd9481a49665fc9a9c78198025d52aa76ae162186c46ca9f332117c8c7ff32f30d72435e1ae1b2a3daec0f86cb48810 + languageName: node + linkType: hard + +"rc-motion@npm:^2.0.0, rc-motion@npm:^2.0.1, rc-motion@npm:^2.3.0, rc-motion@npm:^2.3.4, rc-motion@npm:^2.4.3, rc-motion@npm:^2.4.4, rc-motion@npm:^2.6.1, rc-motion@npm:^2.6.2, rc-motion@npm:^2.9.0, rc-motion@npm:^2.9.5": + version: 2.9.5 + resolution: "rc-motion@npm:2.9.5" + dependencies: + "@babel/runtime": "npm:^7.11.1" + classnames: "npm:^2.2.1" + rc-util: "npm:^5.44.0" + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 10c0/84b12b2443dc1b929c8a688e8c9834a44cf88897402e9363fcea80b77f2803b2de83b24dac5873a8695304827e02fb3103c74349d0451ed247cb366553f9d88e + languageName: node + linkType: hard + +"rc-notification@npm:~5.6.4": + version: 5.6.4 + resolution: "rc-notification@npm:5.6.4" + dependencies: + "@babel/runtime": "npm:^7.10.1" + classnames: "npm:2.x" + rc-motion: "npm:^2.9.0" + rc-util: "npm:^5.20.1" + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 10c0/ea6a587b6a6057e8e6273d642cac5608b44948374ed636c9a83d104d21731c114b43036e33add05f755ceefb3f9258b881776672d5745c0e5d19f1d66449f37a + languageName: node + linkType: hard + +"rc-overflow@npm:^1.3.1, rc-overflow@npm:^1.3.2": + version: 1.5.0 + resolution: "rc-overflow@npm:1.5.0" + dependencies: + "@babel/runtime": "npm:^7.11.1" + classnames: "npm:^2.2.1" + rc-resize-observer: "npm:^1.0.0" + rc-util: "npm:^5.37.0" + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 10c0/7e9ce2fc3db7eb6e960b2848c0da9f67dcdc2a06eadd22baebe9933253424f6243c98fa7f093b765cb355d5fc3a880542748e199bee279dabc790fcf1bb2d34b + languageName: node + linkType: hard + +"rc-pagination@npm:~5.1.0": + version: 5.1.0 + resolution: "rc-pagination@npm:5.1.0" + dependencies: + "@babel/runtime": "npm:^7.10.1" + classnames: "npm:^2.3.2" + rc-util: "npm:^5.38.0" + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 10c0/6cc6f0fa591c3d9f1cd0abcc1f918ddf18d6b5c71fefb97a6c3888b8492505e8e8951903de2bae7c64c0947cf1d53bc70f52577a3f6b38bdb3e9140a7bb5a32e + languageName: node + linkType: hard + +"rc-picker@npm:~4.11.3": + version: 4.11.3 + resolution: "rc-picker@npm:4.11.3" + dependencies: + "@babel/runtime": "npm:^7.24.7" + "@rc-component/trigger": "npm:^2.0.0" + classnames: "npm:^2.2.1" + rc-overflow: "npm:^1.3.2" + rc-resize-observer: "npm:^1.4.0" + rc-util: "npm:^5.43.0" + peerDependencies: + date-fns: ">= 2.x" + dayjs: ">= 1.x" + luxon: ">= 3.x" + moment: ">= 2.x" + react: ">=16.9.0" + react-dom: ">=16.9.0" + peerDependenciesMeta: + date-fns: + optional: true + dayjs: + optional: true + luxon: + optional: true + moment: + optional: true + checksum: 10c0/5136966ae7f9c0fa9acb9620f3d5e12341a4f2d1369d1c0e12697fbd519be47025a427acd63c8c39ec6b0a88acc5408b8318d197d8bf37f8d2b19d6726e6868d + languageName: node + linkType: hard + +"rc-progress@npm:~4.0.0": + version: 4.0.0 + resolution: "rc-progress@npm:4.0.0" + dependencies: + "@babel/runtime": "npm:^7.10.1" + classnames: "npm:^2.2.6" + rc-util: "npm:^5.16.1" + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 10c0/d3b47565470c5fec71a16f8d1939f1b1dd7d2dc9260893c6f70cafa84d9ee4231f3466be817db5fb9580932af46e34d52c74a710700ca9391b1901fa06c31f1e + languageName: node + linkType: hard + +"rc-rate@npm:~2.13.1": + version: 2.13.1 + resolution: "rc-rate@npm:2.13.1" + dependencies: + "@babel/runtime": "npm:^7.10.1" + classnames: "npm:^2.2.5" + rc-util: "npm:^5.0.1" + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 10c0/b26d4741fffb06e1beebe1aba135ba6ab4ee898faf1f876ce802ed5ddcdc8dabe7a4662be63e60226713fad9b3dd8d4034ed9b8b3e27ba5ef9673d7e8f47d497 + languageName: node + linkType: hard + +"rc-resize-observer@npm:^1.0.0, rc-resize-observer@npm:^1.1.0, rc-resize-observer@npm:^1.3.1, rc-resize-observer@npm:^1.4.0, rc-resize-observer@npm:^1.4.3": + version: 1.4.3 + resolution: "rc-resize-observer@npm:1.4.3" + dependencies: + "@babel/runtime": "npm:^7.20.7" + classnames: "npm:^2.2.1" + rc-util: "npm:^5.44.1" + resize-observer-polyfill: "npm:^1.5.1" + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 10c0/93073c9ef5cc704f9d99307f58f8eeccabb953edf4e8a056b090104fc28ed19b77c2a32bd88ca2e0407fbedeb266d1985e655b35b8bc36b04d243e9d0471c911 + languageName: node + linkType: hard + +"rc-segmented@npm:~2.7.0": + version: 2.7.1 + resolution: "rc-segmented@npm:2.7.1" + dependencies: + "@babel/runtime": "npm:^7.11.1" + classnames: "npm:^2.2.1" + rc-motion: "npm:^2.4.4" + rc-util: "npm:^5.17.0" + peerDependencies: + react: ">=16.0.0" + react-dom: ">=16.0.0" + checksum: 10c0/051626c9124b641284d0b63a64c56bc21282d5e4bbd906a722f92b87a63e7b0d0ede1f541c623dab0355b16f7aaecb26792915e46d74fb1540aa9e0881715d3e + languageName: node + linkType: hard + +"rc-select@npm:~14.16.2, rc-select@npm:~14.16.8": + version: 14.16.8 + resolution: "rc-select@npm:14.16.8" + dependencies: + "@babel/runtime": "npm:^7.10.1" + "@rc-component/trigger": "npm:^2.1.1" + classnames: "npm:2.x" + rc-motion: "npm:^2.0.1" + rc-overflow: "npm:^1.3.1" + rc-util: "npm:^5.16.1" + rc-virtual-list: "npm:^3.5.2" + peerDependencies: + react: "*" + react-dom: "*" + checksum: 10c0/45f93e270c4b5e5ffc4b0ba0ce5e5ea72fff591a9a7a19b460b1ead0517d17327af9a4c32ce3c7f92b765724f4dabd1aa7146f5a06db73be91c884fe13c92774 + languageName: node + linkType: hard + +"rc-slider@npm:~11.1.9": + version: 11.1.9 + resolution: "rc-slider@npm:11.1.9" + dependencies: + "@babel/runtime": "npm:^7.10.1" + classnames: "npm:^2.2.5" + rc-util: "npm:^5.36.0" + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 10c0/193c432e2859ba42b2235cc1949de2d929ba70fa4aa5672eaa5da692797f3fe927f8c0b2a75cc45c6b9f666f204f4ed038ccf904273d6cbc39e112f4a00ddd4a + languageName: node + linkType: hard + +"rc-steps@npm:~6.0.1": + version: 6.0.1 + resolution: "rc-steps@npm:6.0.1" + dependencies: + "@babel/runtime": "npm:^7.16.7" + classnames: "npm:^2.2.3" + rc-util: "npm:^5.16.1" + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 10c0/0ba1051a469ae95916cafbb6d7fe76f94e6666181129d3012174d8cc25913c6afd691f551ee0dac48a4a86b59cb91699d6a44a1398dcafd661a8a519f70c95e1 + languageName: node + linkType: hard + +"rc-switch@npm:~4.1.0": + version: 4.1.0 + resolution: "rc-switch@npm:4.1.0" + dependencies: + "@babel/runtime": "npm:^7.21.0" + classnames: "npm:^2.2.1" + rc-util: "npm:^5.30.0" + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 10c0/5ce5b1cadea6e7cd38c0725456ea15c39748fefc39576f7c9288192e69b7f426c4ac7627e266369ece164f281ae08e14ab8f54d4d7858c8bd20707b296980743 + languageName: node + linkType: hard + +"rc-table@npm:~7.54.0": + version: 7.54.0 + resolution: "rc-table@npm:7.54.0" + dependencies: + "@babel/runtime": "npm:^7.10.1" + "@rc-component/context": "npm:^1.4.0" + classnames: "npm:^2.2.5" + rc-resize-observer: "npm:^1.1.0" + rc-util: "npm:^5.44.3" + rc-virtual-list: "npm:^3.14.2" + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 10c0/bf78af66c97aca8437bcf1f88df81b4171afbf647959c9b3600b246c15f9db8763fa50255749390d7f2c0ba0a6aea4f467f64aa4dd6265d56ebf35ffc0d6b94f + languageName: node + linkType: hard + +"rc-tabs@npm:~15.7.0": + version: 15.7.0 + resolution: "rc-tabs@npm:15.7.0" + dependencies: + "@babel/runtime": "npm:^7.11.2" + classnames: "npm:2.x" + rc-dropdown: "npm:~4.2.0" + rc-menu: "npm:~9.16.0" + rc-motion: "npm:^2.6.2" + rc-resize-observer: "npm:^1.0.0" + rc-util: "npm:^5.34.1" + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 10c0/472561f2ec611e9f2a396ba9fec6b83138621651aa2e9fb5a1c68b4da8cb6cab01c23ca71b3940876a595f30c2b8324b8899f93486862271be8eb16a95433764 + languageName: node + linkType: hard + +"rc-textarea@npm:~1.10.0, rc-textarea@npm:~1.10.2": + version: 1.10.2 + resolution: "rc-textarea@npm:1.10.2" + dependencies: + "@babel/runtime": "npm:^7.10.1" + classnames: "npm:^2.2.1" + rc-input: "npm:~1.8.0" + rc-resize-observer: "npm:^1.0.0" + rc-util: "npm:^5.27.0" + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 10c0/ccfe7bae33187c382e12bc14e9f2617fe183a4d4e8c0d3b9f71455728172f31a6140d0855ff557b6c658daf31c7ff935a1a347a336f8106ddda84e042ab23448 + languageName: node + linkType: hard + +"rc-tooltip@npm:~6.4.0": + version: 6.4.0 + resolution: "rc-tooltip@npm:6.4.0" + dependencies: + "@babel/runtime": "npm:^7.11.2" + "@rc-component/trigger": "npm:^2.0.0" + classnames: "npm:^2.3.1" + rc-util: "npm:^5.44.3" + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 10c0/49b9c56fc877b38084b4076edb1b61f0272bdd290c6ef161a0e1cf6426488e948c20439cf4ae31e076f3957b894feb326e4a1d7880400de2c29b1d54f736a342 + languageName: node + linkType: hard + +"rc-tree-select@npm:~5.27.0": + version: 5.27.0 + resolution: "rc-tree-select@npm:5.27.0" + dependencies: + "@babel/runtime": "npm:^7.25.7" + classnames: "npm:2.x" + rc-select: "npm:~14.16.2" + rc-tree: "npm:~5.13.0" + rc-util: "npm:^5.43.0" + peerDependencies: + react: "*" + react-dom: "*" + checksum: 10c0/26aad0e13e5f9fe501574ba50826edda9b67a5bf22adbe1dc8e3a793fb784318b235165d6054a047b5934cdfbbd88ea1a524726edbad9107cd0f1d28782f9cc5 + languageName: node + linkType: hard + +"rc-tree@npm:~5.13.0, rc-tree@npm:~5.13.1": + version: 5.13.1 + resolution: "rc-tree@npm:5.13.1" + dependencies: + "@babel/runtime": "npm:^7.10.1" + classnames: "npm:2.x" + rc-motion: "npm:^2.0.1" + rc-util: "npm:^5.16.1" + rc-virtual-list: "npm:^3.5.1" + peerDependencies: + react: "*" + react-dom: "*" + checksum: 10c0/4a27783d319f9e5367e9d123a2f9a6daa0383e705e055abb47f3ff7fa93249c5c26bbb27b7c6602163faefbfe0f3e923eb3a55d1e1f1d09d04b7bdf37942c2d4 + languageName: node + linkType: hard + +"rc-upload@npm:~4.11.0": + version: 4.11.0 + resolution: "rc-upload@npm:4.11.0" + dependencies: + "@babel/runtime": "npm:^7.18.3" + classnames: "npm:^2.2.5" + rc-util: "npm:^5.2.0" + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 10c0/9ce59e22e0f9839e482fd37e63d8489e1a9d418113bfe39cd4d2b1e88f59236d4f7c60a3bb5928d2d85781d6f4cf8c30b6085863c802de605ef339fa415903d3 + languageName: node + linkType: hard + +"rc-util@npm:^5.0.1, rc-util@npm:^5.16.1, rc-util@npm:^5.17.0, rc-util@npm:^5.18.1, rc-util@npm:^5.2.0, rc-util@npm:^5.20.1, rc-util@npm:^5.21.0, rc-util@npm:^5.24.4, rc-util@npm:^5.25.2, rc-util@npm:^5.27.0, rc-util@npm:^5.30.0, rc-util@npm:^5.31.1, rc-util@npm:^5.32.2, rc-util@npm:^5.34.1, rc-util@npm:^5.35.0, rc-util@npm:^5.36.0, rc-util@npm:^5.37.0, rc-util@npm:^5.38.0, rc-util@npm:^5.38.1, rc-util@npm:^5.40.1, rc-util@npm:^5.43.0, rc-util@npm:^5.44.0, rc-util@npm:^5.44.1, rc-util@npm:^5.44.3, rc-util@npm:^5.44.4": + version: 5.44.4 + resolution: "rc-util@npm:5.44.4" + dependencies: + "@babel/runtime": "npm:^7.18.3" + react-is: "npm:^18.2.0" + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 10c0/748b71a6280ddaaac93d1fb2c92f03818775468e7ccb6c221484687cc0b7e879d083e98e338f75ac0fe2e942dbb9c2405bd32d25e5a804bf1fb7a11f3f897127 + languageName: node + linkType: hard + +"rc-virtual-list@npm:^3.14.2, rc-virtual-list@npm:^3.5.1, rc-virtual-list@npm:^3.5.2": + version: 3.19.2 + resolution: "rc-virtual-list@npm:3.19.2" + dependencies: + "@babel/runtime": "npm:^7.20.0" + classnames: "npm:^2.2.6" + rc-resize-observer: "npm:^1.0.0" + rc-util: "npm:^5.36.0" + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 10c0/3778ade183a33d113555fb99465c2f59391c9b5178629cb7bb2947d5ee71a1b166bf9468b063394f63384965166ef368acf78cb5f4b3a23e9393af04543b6626 + languageName: node + linkType: hard + +"react-device-detect@npm:2.2.3": + version: 2.2.3 + resolution: "react-device-detect@npm:2.2.3" + dependencies: + ua-parser-js: "npm:^1.0.33" + peerDependencies: + react: ">= 0.14.0" + react-dom: ">= 0.14.0" + checksum: 10c0/396bbeeab0cb21da084c67434d204c9cf502fad6c683903313084d3f6487950a36a34f9bf67ccf5c1772a1bb5b79a2a4403fcfe6b51d93877db4c2d9f3a3a925 + languageName: node + linkType: hard + +"react-docgen-typescript@npm:^2.2.2": + version: 2.4.0 + resolution: "react-docgen-typescript@npm:2.4.0" + peerDependencies: + typescript: ">= 4.3.x" + checksum: 10c0/18e3e1c80d28abcdd72e62261d2f70b0904d9b088f9c2ebe485ffee5e46f5735208bc174a20ed2772112b3ca6432b5f3d5f0ac345872fe76e541f84543e49e50 + languageName: node + linkType: hard + +"react-docgen@npm:^7.0.0": + version: 7.1.1 + resolution: "react-docgen@npm:7.1.1" + dependencies: + "@babel/core": "npm:^7.18.9" + "@babel/traverse": "npm:^7.18.9" + "@babel/types": "npm:^7.18.9" + "@types/babel__core": "npm:^7.18.0" + "@types/babel__traverse": "npm:^7.18.0" + "@types/doctrine": "npm:^0.0.9" + "@types/resolve": "npm:^1.20.2" + doctrine: "npm:^3.0.0" + resolve: "npm:^1.22.1" + strip-indent: "npm:^4.0.0" + checksum: 10c0/961e69487f6acbd9110afbda31f5a0c7fa7ab8b1ebe09fc0138c17efd297fa0b69518df873e937cac108732cd8125433bf939115d23ff99c1c171844140705a7 + languageName: node + linkType: hard + +"react-dom@npm:19.0.0": + version: 19.0.0 + resolution: "react-dom@npm:19.0.0" + dependencies: + scheduler: "npm:^0.25.0" + peerDependencies: + react: ^19.0.0 + checksum: 10c0/a36ce7ab507b237ae2759c984cdaad4af4096d8199fb65b3815c16825e5cfeb7293da790a3fc2184b52bfba7ba3ff31c058c01947aff6fd1a3701632aabaa6a9 + languageName: node + linkType: hard + +"react-dom@npm:^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0, react-dom@npm:^19.2.0": + version: 19.2.4 + resolution: "react-dom@npm:19.2.4" + dependencies: + scheduler: "npm:^0.27.0" + peerDependencies: + react: ^19.2.4 + checksum: 10c0/f0c63f1794dedb154136d4d0f59af00b41907f4859571c155940296808f4b94bf9c0c20633db75b5b2112ec13d8d7dd4f9bf57362ed48782f317b11d05a44f35 + languageName: node + linkType: hard + +"react-is@npm:^17.0.1": + version: 17.0.2 + resolution: "react-is@npm:17.0.2" + checksum: 10c0/2bdb6b93fbb1820b024b496042cce405c57e2f85e777c9aabd55f9b26d145408f9f74f5934676ffdc46f3dcff656d78413a6e43968e7b3f92eea35b3052e9053 + languageName: node + linkType: hard + +"react-is@npm:^18.2.0": + version: 18.3.1 + resolution: "react-is@npm:18.3.1" + checksum: 10c0/f2f1e60010c683479e74c63f96b09fb41603527cd131a9959e2aee1e5a8b0caf270b365e5ca77d4a6b18aae659b60a86150bb3979073528877029b35aecd2072 + languageName: node + linkType: hard + +"react@npm:19.0.0": + version: 19.0.0 + resolution: "react@npm:19.0.0" + checksum: 10c0/9cad8f103e8e3a16d15cb18a0d8115d8bd9f9e1ce3420310aea381eb42aa0a4f812cf047bb5441349257a05fba8a291515691e3cb51267279b2d2c3253f38471 + languageName: node + linkType: hard + +"react@npm:^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0, react@npm:^19.2.0": + version: 19.2.4 + resolution: "react@npm:19.2.4" + checksum: 10c0/cd2c9ff67a720799cc3b38a516009986f7fc4cb8d3e15716c6211cf098d1357ee3e348ab05ad0600042bbb0fd888530ba92e329198c92eafa0994f5213396596 + languageName: node + linkType: hard + +"readdirp@npm:^4.0.1": + version: 4.1.2 + resolution: "readdirp@npm:4.1.2" + checksum: 10c0/60a14f7619dec48c9c850255cd523e2717001b0e179dc7037cfa0895da7b9e9ab07532d324bfb118d73a710887d1e35f79c495fa91582784493e085d18c72c62 + languageName: node + linkType: hard + +"recast@npm:^0.23.5": + version: 0.23.11 + resolution: "recast@npm:0.23.11" + dependencies: + ast-types: "npm:^0.16.1" + esprima: "npm:~4.0.0" + source-map: "npm:~0.6.1" + tiny-invariant: "npm:^1.3.3" + tslib: "npm:^2.0.1" + checksum: 10c0/45b520a8f0868a5a24ecde495be9de3c48e69a54295d82a7331106554b75cfba75d16c909959d056e9ceed47a1be5e061e2db8b9ecbcd6ba44c2f3ef9a47bd18 + languageName: node + linkType: hard + +"redent@npm:^3.0.0": + version: 3.0.0 + resolution: "redent@npm:3.0.0" + dependencies: + indent-string: "npm:^4.0.0" + strip-indent: "npm:^3.0.0" + checksum: 10c0/d64a6b5c0b50eb3ddce3ab770f866658a2b9998c678f797919ceb1b586bab9259b311407280bd80b804e2a7c7539b19238ae6a2a20c843f1a7fcff21d48c2eae + languageName: node + linkType: hard + +"requires-port@npm:^1.0.0": + version: 1.0.0 + resolution: "requires-port@npm:1.0.0" + checksum: 10c0/b2bfdd09db16c082c4326e573a82c0771daaf7b53b9ce8ad60ea46aa6e30aaf475fe9b164800b89f93b748d2c234d8abff945d2551ba47bf5698e04cd7713267 + languageName: node + linkType: hard + +"resize-observer-polyfill@npm:^1.5.1": + version: 1.5.1 + resolution: "resize-observer-polyfill@npm:1.5.1" + checksum: 10c0/5e882475067f0b97dc07e0f37c3e335ac5bc3520d463f777cec7e894bb273eddbfecb857ae668e6fb6881fd6f6bb7148246967172139302da50fa12ea3a15d95 + languageName: node + linkType: hard + +"resolve-from@npm:^4.0.0": + version: 4.0.0 + resolution: "resolve-from@npm:4.0.0" + checksum: 10c0/8408eec31a3112ef96e3746c37be7d64020cda07c03a920f5024e77290a218ea758b26ca9529fd7b1ad283947f34b2291c1c0f6aa0ed34acfdda9c6014c8d190 + languageName: node + linkType: hard + +"resolve-from@npm:^5.0.0": + version: 5.0.0 + resolution: "resolve-from@npm:5.0.0" + checksum: 10c0/b21cb7f1fb746de8107b9febab60095187781137fd803e6a59a76d421444b1531b641bba5857f5dc011974d8a5c635d61cec49e6bd3b7fc20e01f0fafc4efbf2 + languageName: node + linkType: hard + +"resolve@npm:^1.22.1, resolve@npm:^1.22.8": + version: 1.22.11 + resolution: "resolve@npm:1.22.11" + dependencies: + is-core-module: "npm:^2.16.1" + path-parse: "npm:^1.0.7" + supports-preserve-symlinks-flag: "npm:^1.0.0" + bin: + resolve: bin/resolve + checksum: 10c0/f657191507530f2cbecb5815b1ee99b20741ea6ee02a59c57028e9ec4c2c8d7681afcc35febbd554ac0ded459db6f2d8153382c53a2f266cee2575e512674409 + languageName: node + linkType: hard + +"resolve@patch:resolve@npm%3A^1.22.1#optional!builtin, resolve@patch:resolve@npm%3A^1.22.8#optional!builtin": + version: 1.22.11 + resolution: "resolve@patch:resolve@npm%3A1.22.11#optional!builtin::version=1.22.11&hash=c3c19d" + dependencies: + is-core-module: "npm:^2.16.1" + path-parse: "npm:^1.0.7" + supports-preserve-symlinks-flag: "npm:^1.0.0" + bin: + resolve: bin/resolve + checksum: 10c0/ee5b182f2e37cb1165465e58c6abc797fec0a80b5ba3231607beb4677db0c9291ac010c47cf092b6daa2b7f518d69a0e21888e7e2b633f68d501a874212a8c63 + languageName: node + linkType: hard + +"retry@npm:^0.13.1": + version: 0.13.1 + resolution: "retry@npm:0.13.1" + checksum: 10c0/9ae822ee19db2163497e074ea919780b1efa00431d197c7afdb950e42bf109196774b92a49fc9821f0b8b328a98eea6017410bfc5e8a0fc19c85c6d11adb3772 + languageName: node + linkType: hard + +"rollup@npm:^4.34.8, rollup@npm:^4.34.9, rollup@npm:^4.43.0": + version: 4.59.0 + resolution: "rollup@npm:4.59.0" + dependencies: + "@rollup/rollup-android-arm-eabi": "npm:4.59.0" + "@rollup/rollup-android-arm64": "npm:4.59.0" + "@rollup/rollup-darwin-arm64": "npm:4.59.0" + "@rollup/rollup-darwin-x64": "npm:4.59.0" + "@rollup/rollup-freebsd-arm64": "npm:4.59.0" + "@rollup/rollup-freebsd-x64": "npm:4.59.0" + "@rollup/rollup-linux-arm-gnueabihf": "npm:4.59.0" + "@rollup/rollup-linux-arm-musleabihf": "npm:4.59.0" + "@rollup/rollup-linux-arm64-gnu": "npm:4.59.0" + "@rollup/rollup-linux-arm64-musl": "npm:4.59.0" + "@rollup/rollup-linux-loong64-gnu": "npm:4.59.0" + "@rollup/rollup-linux-loong64-musl": "npm:4.59.0" + "@rollup/rollup-linux-ppc64-gnu": "npm:4.59.0" + "@rollup/rollup-linux-ppc64-musl": "npm:4.59.0" + "@rollup/rollup-linux-riscv64-gnu": "npm:4.59.0" + "@rollup/rollup-linux-riscv64-musl": "npm:4.59.0" + "@rollup/rollup-linux-s390x-gnu": "npm:4.59.0" + "@rollup/rollup-linux-x64-gnu": "npm:4.59.0" + "@rollup/rollup-linux-x64-musl": "npm:4.59.0" + "@rollup/rollup-openbsd-x64": "npm:4.59.0" + "@rollup/rollup-openharmony-arm64": "npm:4.59.0" + "@rollup/rollup-win32-arm64-msvc": "npm:4.59.0" + "@rollup/rollup-win32-ia32-msvc": "npm:4.59.0" + "@rollup/rollup-win32-x64-gnu": "npm:4.59.0" + "@rollup/rollup-win32-x64-msvc": "npm:4.59.0" + "@types/estree": "npm:1.0.8" + fsevents: "npm:~2.3.2" + dependenciesMeta: + "@rollup/rollup-android-arm-eabi": + optional: true + "@rollup/rollup-android-arm64": + optional: true + "@rollup/rollup-darwin-arm64": + optional: true + "@rollup/rollup-darwin-x64": + optional: true + "@rollup/rollup-freebsd-arm64": + optional: true + "@rollup/rollup-freebsd-x64": + optional: true + "@rollup/rollup-linux-arm-gnueabihf": + optional: true + "@rollup/rollup-linux-arm-musleabihf": + optional: true + "@rollup/rollup-linux-arm64-gnu": + optional: true + "@rollup/rollup-linux-arm64-musl": + optional: true + "@rollup/rollup-linux-loong64-gnu": + optional: true + "@rollup/rollup-linux-loong64-musl": + optional: true + "@rollup/rollup-linux-ppc64-gnu": + optional: true + "@rollup/rollup-linux-ppc64-musl": + optional: true + "@rollup/rollup-linux-riscv64-gnu": + optional: true + "@rollup/rollup-linux-riscv64-musl": + optional: true + "@rollup/rollup-linux-s390x-gnu": + optional: true + "@rollup/rollup-linux-x64-gnu": + optional: true + "@rollup/rollup-linux-x64-musl": + optional: true + "@rollup/rollup-openbsd-x64": + optional: true + "@rollup/rollup-openharmony-arm64": + optional: true + "@rollup/rollup-win32-arm64-msvc": + optional: true + "@rollup/rollup-win32-ia32-msvc": + optional: true + "@rollup/rollup-win32-x64-gnu": + optional: true + "@rollup/rollup-win32-x64-msvc": + optional: true + fsevents: + optional: true + bin: + rollup: dist/bin/rollup + checksum: 10c0/f38742da34cfee5e899302615fa157aa77cb6a2a1495e5e3ce4cc9c540d3262e235bbe60caa31562bbfe492b01fdb3e7a8c43c39d842d3293bcf843123b766fc + languageName: node + linkType: hard + +"rrweb-cssom@npm:^0.6.0": + version: 0.6.0 + resolution: "rrweb-cssom@npm:0.6.0" + checksum: 10c0/3d9d90d53c2349ea9c8509c2690df5a4ef930c9cf8242aeb9425d4046f09d712bb01047e00da0e1c1dab5db35740b3d78fd45c3e7272f75d3724a563f27c30a3 + languageName: node + linkType: hard + +"rxjs@npm:^7.8.2": + version: 7.8.2 + resolution: "rxjs@npm:7.8.2" + dependencies: + tslib: "npm:^2.1.0" + checksum: 10c0/1fcd33d2066ada98ba8f21fcbbcaee9f0b271de1d38dc7f4e256bfbc6ffcdde68c8bfb69093de7eeb46f24b1fb820620bf0223706cff26b4ab99a7ff7b2e2c45 + languageName: node + linkType: hard + +"safe-regex-test@npm:^1.1.0": + version: 1.1.0 + resolution: "safe-regex-test@npm:1.1.0" + dependencies: + call-bound: "npm:^1.0.2" + es-errors: "npm:^1.3.0" + is-regex: "npm:^1.2.1" + checksum: 10c0/f2c25281bbe5d39cddbbce7f86fca5ea9b3ce3354ea6cd7c81c31b006a5a9fff4286acc5450a3b9122c56c33eba69c56b9131ad751457b2b4a585825e6a10665 + languageName: node + linkType: hard + +"safer-buffer@npm:>= 2.1.2 < 3.0.0": + version: 2.1.2 + resolution: "safer-buffer@npm:2.1.2" + checksum: 10c0/7e3c8b2e88a1841c9671094bbaeebd94448111dd90a81a1f606f3f67708a6ec57763b3b47f06da09fc6054193e0e6709e77325415dc8422b04497a8070fa02d4 + languageName: node + linkType: hard + +"sass@npm:1.83.4": + version: 1.83.4 + resolution: "sass@npm:1.83.4" + dependencies: + "@parcel/watcher": "npm:^2.4.1" + chokidar: "npm:^4.0.0" + immutable: "npm:^5.0.2" + source-map-js: "npm:>=0.6.2 <2.0.0" + dependenciesMeta: + "@parcel/watcher": + optional: true + bin: + sass: sass.js + checksum: 10c0/6f27f0eebfeb50222b14baaeef548ef58a05daf8abd9797e6c499334ed7ad40541767056c8693780d06ca83d8836348ea7396a923d3be439b133507993ca78be + languageName: node + linkType: hard + +"saxes@npm:^6.0.0": + version: 6.0.0 + resolution: "saxes@npm:6.0.0" + dependencies: + xmlchars: "npm:^2.2.0" + checksum: 10c0/3847b839f060ef3476eb8623d099aa502ad658f5c40fd60c105ebce86d244389b0d76fcae30f4d0c728d7705ceb2f7e9b34bb54717b6a7dbedaf5dad2d9a4b74 + languageName: node + linkType: hard + +"scheduler@npm:^0.25.0": + version: 0.25.0 + resolution: "scheduler@npm:0.25.0" + checksum: 10c0/a4bb1da406b613ce72c1299db43759526058fdcc413999c3c3e0db8956df7633acf395cb20eb2303b6a65d658d66b6585d344460abaee8080b4aa931f10eaafe + languageName: node + linkType: hard + +"scheduler@npm:^0.27.0": + version: 0.27.0 + resolution: "scheduler@npm:0.27.0" + checksum: 10c0/4f03048cb05a3c8fddc45813052251eca00688f413a3cee236d984a161da28db28ba71bd11e7a3dd02f7af84ab28d39fb311431d3b3772fed557945beb00c452 + languageName: node + linkType: hard + +"scroll-into-view-if-needed@npm:^3.1.0": + version: 3.1.0 + resolution: "scroll-into-view-if-needed@npm:3.1.0" + dependencies: + compute-scroll-into-view: "npm:^3.0.2" + checksum: 10c0/1f46b090e1e04fcfdef1e384f6d7e615f9f84d4176faf4dbba7347cc0a6e491e5d578eaf4dbe9618dd3d8d38efafde58535b3e00f2a21ce4178c14be364850ff + languageName: node + linkType: hard + +"semver@npm:^6.3.1": + version: 6.3.1 + resolution: "semver@npm:6.3.1" + bin: + semver: bin/semver.js + checksum: 10c0/e3d79b609071caa78bcb6ce2ad81c7966a46a7431d9d58b8800cfa9cb6a63699b3899a0e4bcce36167a284578212d9ae6942b6929ba4aa5015c079a67751d42d + languageName: node + linkType: hard + +"semver@npm:^7.3.5, semver@npm:^7.6.2": + version: 7.7.4 + resolution: "semver@npm:7.7.4" + bin: + semver: bin/semver.js + checksum: 10c0/5215ad0234e2845d4ea5bb9d836d42b03499546ddafb12075566899fc617f68794bb6f146076b6881d755de17d6c6cc73372555879ec7dce2c2feee947866ad2 + languageName: node + linkType: hard + +"set-function-length@npm:^1.2.2": + version: 1.2.2 + resolution: "set-function-length@npm:1.2.2" + dependencies: + define-data-property: "npm:^1.1.4" + es-errors: "npm:^1.3.0" + function-bind: "npm:^1.1.2" + get-intrinsic: "npm:^1.2.4" + gopd: "npm:^1.0.1" + has-property-descriptors: "npm:^1.0.2" + checksum: 10c0/82850e62f412a258b71e123d4ed3873fa9377c216809551192bb6769329340176f109c2eeae8c22a8d386c76739855f78e8716515c818bcaef384b51110f0f3c + languageName: node + linkType: hard + +"shebang-command@npm:^2.0.0": + version: 2.0.0 + resolution: "shebang-command@npm:2.0.0" + dependencies: + shebang-regex: "npm:^3.0.0" + checksum: 10c0/a41692e7d89a553ef21d324a5cceb5f686d1f3c040759c50aab69688634688c5c327f26f3ecf7001ebfd78c01f3c7c0a11a7c8bfd0a8bc9f6240d4f40b224e4e + languageName: node + linkType: hard + +"shebang-regex@npm:^3.0.0": + version: 3.0.0 + resolution: "shebang-regex@npm:3.0.0" + checksum: 10c0/1dbed0726dd0e1152a92696c76c7f06084eb32a90f0528d11acd764043aacf76994b2fb30aa1291a21bd019d6699164d048286309a278855ee7bec06cf6fb690 + languageName: node + linkType: hard + +"siginfo@npm:^2.0.0": + version: 2.0.0 + resolution: "siginfo@npm:2.0.0" + checksum: 10c0/3def8f8e516fbb34cb6ae415b07ccc5d9c018d85b4b8611e3dc6f8be6d1899f693a4382913c9ed51a06babb5201639d76453ab297d1c54a456544acf5c892e34 + languageName: node + linkType: hard + +"signal-exit@npm:^4.0.1": + version: 4.1.0 + resolution: "signal-exit@npm:4.1.0" + checksum: 10c0/41602dce540e46d599edba9d9860193398d135f7ff72cab629db5171516cfae628d21e7bfccde1bbfdf11c48726bc2a6d1a8fb8701125852fbfda7cf19c6aa83 + languageName: node + linkType: hard + +"smart-buffer@npm:^4.2.0": + version: 4.2.0 + resolution: "smart-buffer@npm:4.2.0" + checksum: 10c0/a16775323e1404dd43fabafe7460be13a471e021637bc7889468eb45ce6a6b207261f454e4e530a19500cc962c4cc5348583520843b363f4193cee5c00e1e539 + languageName: node + linkType: hard + +"socks-proxy-agent@npm:^8.0.3": + version: 8.0.5 + resolution: "socks-proxy-agent@npm:8.0.5" + dependencies: + agent-base: "npm:^7.1.2" + debug: "npm:^4.3.4" + socks: "npm:^2.8.3" + checksum: 10c0/5d2c6cecba6821389aabf18728325730504bf9bb1d9e342e7987a5d13badd7a98838cc9a55b8ed3cb866ad37cc23e1086f09c4d72d93105ce9dfe76330e9d2a6 + languageName: node + linkType: hard + +"socks@npm:^2.8.3": + version: 2.8.7 + resolution: "socks@npm:2.8.7" + dependencies: + ip-address: "npm:^10.0.1" + smart-buffer: "npm:^4.2.0" + checksum: 10c0/2805a43a1c4bcf9ebf6e018268d87b32b32b06fbbc1f9282573583acc155860dc361500f89c73bfbb157caa1b4ac78059eac0ef15d1811eb0ca75e0bdadbc9d2 + languageName: node + linkType: hard + +"source-map-js@npm:>=0.6.2 <2.0.0, source-map-js@npm:^1.2.1": + version: 1.2.1 + resolution: "source-map-js@npm:1.2.1" + checksum: 10c0/7bda1fc4c197e3c6ff17de1b8b2c20e60af81b63a52cb32ec5a5d67a20a7d42651e2cb34ebe93833c5a2a084377e17455854fee3e21e7925c64a51b6a52b0faf + languageName: node + linkType: hard + +"source-map@npm:^0.7.6": + version: 0.7.6 + resolution: "source-map@npm:0.7.6" + checksum: 10c0/59f6f05538539b274ba771d2e9e32f6c65451982510564438e048bc1352f019c6efcdc6dd07909b1968144941c14015c2c7d4369fb7c4d7d53ae769716dcc16c + languageName: node + linkType: hard + +"source-map@npm:~0.6.1": + version: 0.6.1 + resolution: "source-map@npm:0.6.1" + checksum: 10c0/ab55398007c5e5532957cb0beee2368529618ac0ab372d789806f5718123cc4367d57de3904b4e6a4170eb5a0b0f41373066d02ca0735a0c4d75c7d328d3e011 + languageName: node + linkType: hard + +"ssri@npm:^13.0.0": + version: 13.0.1 + resolution: "ssri@npm:13.0.1" + dependencies: + minipass: "npm:^7.0.3" + checksum: 10c0/cf6408a18676c57ff2ed06b8a20dc64bb3e748e5c7e095332e6aecaa2b8422b1e94a739a8453bf65156a8a47afe23757ba4ab52d3ea3b62322dc40875763e17a + languageName: node + linkType: hard + +"stackback@npm:0.0.2": + version: 0.0.2 + resolution: "stackback@npm:0.0.2" + checksum: 10c0/89a1416668f950236dd5ac9f9a6b2588e1b9b62b1b6ad8dff1bfc5d1a15dbf0aafc9b52d2226d00c28dffff212da464eaeebfc6b7578b9d180cef3e3782c5983 + languageName: node + linkType: hard + +"std-env@npm:^3.9.0": + version: 3.10.0 + resolution: "std-env@npm:3.10.0" + checksum: 10c0/1814927a45004d36dde6707eaf17552a546769bc79a6421be2c16ce77d238158dfe5de30910b78ec30d95135cc1c59ea73ee22d2ca170f8b9753f84da34c427f + languageName: node + linkType: hard + +"storybook@npm:8.6.14": + version: 8.6.14 + resolution: "storybook@npm:8.6.14" + dependencies: + "@storybook/core": "npm:8.6.14" + peerDependencies: + prettier: ^2 || ^3 + peerDependenciesMeta: + prettier: + optional: true + bin: + getstorybook: ./bin/index.cjs + sb: ./bin/index.cjs + storybook: ./bin/index.cjs + checksum: 10c0/a39d5ca1c3fecb4e6d5b7867d510e9a31524b48053dcea485afffbeaf7fe8ced883fd2d44e1b5076a2f3044eeb095fe49282793f1041124a9aa2b47fa675c956 + languageName: node + linkType: hard + +"string-convert@npm:^0.2.0": + version: 0.2.1 + resolution: "string-convert@npm:0.2.1" + checksum: 10c0/00673ed8a3106137395436537ace7d3672c91a3290da73466055daa0134331dc84bc58c54ba2d2ea40711adc5744426d3c8239dbfc30290438fa3e9ff65db528 + languageName: node + linkType: hard + +"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^4.1.0": + version: 4.2.3 + resolution: "string-width@npm:4.2.3" + dependencies: + emoji-regex: "npm:^8.0.0" + is-fullwidth-code-point: "npm:^3.0.0" + strip-ansi: "npm:^6.0.1" + checksum: 10c0/1e525e92e5eae0afd7454086eed9c818ee84374bb80328fc41217ae72ff5f065ef1c9d7f72da41de40c75fa8bb3dee63d92373fd492c84260a552c636392a47b + languageName: node + linkType: hard + +"string-width@npm:^5.0.1, string-width@npm:^5.1.2": + version: 5.1.2 + resolution: "string-width@npm:5.1.2" + dependencies: + eastasianwidth: "npm:^0.2.0" + emoji-regex: "npm:^9.2.2" + strip-ansi: "npm:^7.0.1" + checksum: 10c0/ab9c4264443d35b8b923cbdd513a089a60de339216d3b0ed3be3ba57d6880e1a192b70ae17225f764d7adbf5994e9bb8df253a944736c15a0240eff553c678ca + languageName: node + linkType: hard + +"strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": + version: 6.0.1 + resolution: "strip-ansi@npm:6.0.1" + dependencies: + ansi-regex: "npm:^5.0.1" + checksum: 10c0/1ae5f212a126fe5b167707f716942490e3933085a5ff6c008ab97ab2f272c8025d3aa218b7bd6ab25729ca20cc81cddb252102f8751e13482a5199e873680952 + languageName: node + linkType: hard + +"strip-ansi@npm:^7.0.1": + version: 7.2.0 + resolution: "strip-ansi@npm:7.2.0" + dependencies: + ansi-regex: "npm:^6.2.2" + checksum: 10c0/544d13b7582f8254811ea97db202f519e189e59d35740c46095897e254e4f1aa9fe1524a83ad6bc5ad67d4dd6c0281d2e0219ed62b880a6238a16a17d375f221 + languageName: node + linkType: hard + +"strip-bom@npm:^3.0.0": + version: 3.0.0 + resolution: "strip-bom@npm:3.0.0" + checksum: 10c0/51201f50e021ef16672593d7434ca239441b7b760e905d9f33df6e4f3954ff54ec0e0a06f100d028af0982d6f25c35cd5cda2ce34eaebccd0250b8befb90d8f1 + languageName: node + linkType: hard + +"strip-indent@npm:^3.0.0": + version: 3.0.0 + resolution: "strip-indent@npm:3.0.0" + dependencies: + min-indent: "npm:^1.0.0" + checksum: 10c0/ae0deaf41c8d1001c5d4fbe16cb553865c1863da4fae036683b474fa926af9fc121e155cb3fc57a68262b2ae7d5b8420aa752c97a6428c315d00efe2a3875679 + languageName: node + linkType: hard + +"strip-indent@npm:^4.0.0": + version: 4.1.1 + resolution: "strip-indent@npm:4.1.1" + checksum: 10c0/5b23dd5934be0ef6b6fe1b802887f83e56ad9dcd9f6c3896a637da2c6c3a6da3fdf3e51354a98e6cccb6f1c41863e7b9b9deaa348639dfd35f71f3549edb4dff + languageName: node + linkType: hard + +"strip-json-comments@npm:^3.1.1": + version: 3.1.1 + resolution: "strip-json-comments@npm:3.1.1" + checksum: 10c0/9681a6257b925a7fa0f285851c0e613cc934a50661fa7bb41ca9cbbff89686bb4a0ee366e6ecedc4daafd01e83eee0720111ab294366fe7c185e935475ebcecd + languageName: node + linkType: hard + +"strip-literal@npm:^3.0.0": + version: 3.1.0 + resolution: "strip-literal@npm:3.1.0" + dependencies: + js-tokens: "npm:^9.0.1" + checksum: 10c0/50918f669915d9ad0fe4b7599902b735f853f2201c97791ead00104a654259c0c61bc2bc8fa3db05109339b61f4cf09e47b94ecc874ffbd0e013965223893af8 + languageName: node + linkType: hard + +"stylis@npm:^4.3.4": + version: 4.3.6 + resolution: "stylis@npm:4.3.6" + checksum: 10c0/e736d484983a34f7c65d362c67dc79b7bce388054b261c2b7b23d02eaaf280617033f65d44b1ea341854f4331a5074b885668ac8741f98c13a6cfd6443ae85d0 + languageName: node + linkType: hard + +"sucrase@npm:^3.35.0": + version: 3.35.1 + resolution: "sucrase@npm:3.35.1" + dependencies: + "@jridgewell/gen-mapping": "npm:^0.3.2" + commander: "npm:^4.0.0" + lines-and-columns: "npm:^1.1.6" + mz: "npm:^2.7.0" + pirates: "npm:^4.0.1" + tinyglobby: "npm:^0.2.11" + ts-interface-checker: "npm:^0.1.9" + bin: + sucrase: bin/sucrase + sucrase-node: bin/sucrase-node + checksum: 10c0/6fa22329c261371feb9560630d961ad0d0b9c87dce21ea74557c5f3ffbe5c1ee970ea8bcce9962ae9c90c3c47165ffa7dd41865c7414f5d8ea7a40755d612c5c + languageName: node + linkType: hard + +"supports-color@npm:^7.1.0": + version: 7.2.0 + resolution: "supports-color@npm:7.2.0" + dependencies: + has-flag: "npm:^4.0.0" + checksum: 10c0/afb4c88521b8b136b5f5f95160c98dee7243dc79d5432db7efc27efb219385bbc7d9427398e43dd6cc730a0f87d5085ce1652af7efbe391327bc0a7d0f7fc124 + languageName: node + linkType: hard + +"supports-preserve-symlinks-flag@npm:^1.0.0": + version: 1.0.0 + resolution: "supports-preserve-symlinks-flag@npm:1.0.0" + checksum: 10c0/6c4032340701a9950865f7ae8ef38578d8d7053f5e10518076e6554a9381fa91bd9c6850193695c141f32b21f979c985db07265a758867bac95de05f7d8aeb39 + languageName: node + linkType: hard + +"symbol-tree@npm:^3.2.4": + version: 3.2.4 + resolution: "symbol-tree@npm:3.2.4" + checksum: 10c0/dfbe201ae09ac6053d163578778c53aa860a784147ecf95705de0cd23f42c851e1be7889241495e95c37cabb058edb1052f141387bef68f705afc8f9dd358509 + languageName: node + linkType: hard + +"tar@npm:^7.5.4": + version: 7.5.9 + resolution: "tar@npm:7.5.9" + dependencies: + "@isaacs/fs-minipass": "npm:^4.0.0" + chownr: "npm:^3.0.0" + minipass: "npm:^7.1.2" + minizlib: "npm:^3.1.0" + yallist: "npm:^5.0.0" + checksum: 10c0/e870beb1b2477135ca2abe86b2d18f7b35d0a4e3a37bbc523d3b8f7adca268dfab543f26528a431d569897f8c53a7cac745cdfbc4411c2f89aeeacc652b81b0a + languageName: node + linkType: hard + +"thenify-all@npm:^1.0.0": + version: 1.6.0 + resolution: "thenify-all@npm:1.6.0" + dependencies: + thenify: "npm:>= 3.1.0 < 4" + checksum: 10c0/9b896a22735e8122754fe70f1d65f7ee691c1d70b1f116fda04fea103d0f9b356e3676cb789506e3909ae0486a79a476e4914b0f92472c2e093d206aed4b7d6b + languageName: node + linkType: hard + +"thenify@npm:>= 3.1.0 < 4": + version: 3.3.1 + resolution: "thenify@npm:3.3.1" + dependencies: + any-promise: "npm:^1.0.0" + checksum: 10c0/f375aeb2b05c100a456a30bc3ed07ef03a39cbdefe02e0403fb714b8c7e57eeaad1a2f5c4ecfb9ce554ce3db9c2b024eba144843cd9e344566d9fcee73b04767 + languageName: node + linkType: hard + +"throttle-debounce@npm:^5.0.0, throttle-debounce@npm:^5.0.2": + version: 5.0.2 + resolution: "throttle-debounce@npm:5.0.2" + checksum: 10c0/9a10ac51400b353562770721718486847adb5d7287c94a0c0d47df5326e8d47e5d92fcb74dac53d6734efb9344a2d46d68c7f996c2d0aedfd11446522e4bb356 + languageName: node + linkType: hard + +"tiny-invariant@npm:^1.3.1, tiny-invariant@npm:^1.3.3": + version: 1.3.3 + resolution: "tiny-invariant@npm:1.3.3" + checksum: 10c0/65af4a07324b591a059b35269cd696aba21bef2107f29b9f5894d83cc143159a204b299553435b03874ebb5b94d019afa8b8eff241c8a4cfee95872c2e1c1c4a + languageName: node + linkType: hard + +"tinybench@npm:^2.9.0": + version: 2.9.0 + resolution: "tinybench@npm:2.9.0" + checksum: 10c0/c3500b0f60d2eb8db65250afe750b66d51623057ee88720b7f064894a6cb7eb93360ca824a60a31ab16dab30c7b1f06efe0795b352e37914a9d4bad86386a20c + languageName: node + linkType: hard + +"tinyexec@npm:^0.3.2": + version: 0.3.2 + resolution: "tinyexec@npm:0.3.2" + checksum: 10c0/3efbf791a911be0bf0821eab37a3445c2ba07acc1522b1fa84ae1e55f10425076f1290f680286345ed919549ad67527d07281f1c19d584df3b74326909eb1f90 + languageName: node + linkType: hard + +"tinyglobby@npm:^0.2.11, tinyglobby@npm:^0.2.12, tinyglobby@npm:^0.2.13, tinyglobby@npm:^0.2.14, tinyglobby@npm:^0.2.15": + version: 0.2.15 + resolution: "tinyglobby@npm:0.2.15" + dependencies: + fdir: "npm:^6.5.0" + picomatch: "npm:^4.0.3" + checksum: 10c0/869c31490d0d88eedb8305d178d4c75e7463e820df5a9b9d388291daf93e8b1eb5de1dad1c1e139767e4269fe75f3b10d5009b2cc14db96ff98986920a186844 + languageName: node + linkType: hard + +"tinypool@npm:^1.1.1": + version: 1.1.1 + resolution: "tinypool@npm:1.1.1" + checksum: 10c0/bf26727d01443061b04fa863f571016950888ea994ba0cd8cba3a1c51e2458d84574341ab8dbc3664f1c3ab20885c8cf9ff1cc4b18201f04c2cde7d317fff69b + languageName: node + linkType: hard + +"tinyrainbow@npm:^1.2.0": + version: 1.2.0 + resolution: "tinyrainbow@npm:1.2.0" + checksum: 10c0/7f78a4b997e5ba0f5ecb75e7ed786f30bab9063716e7dff24dd84013fb338802e43d176cb21ed12480561f5649a82184cf31efb296601a29d38145b1cdb4c192 + languageName: node + linkType: hard + +"tinyrainbow@npm:^2.0.0": + version: 2.0.0 + resolution: "tinyrainbow@npm:2.0.0" + checksum: 10c0/c83c52bef4e0ae7fb8ec6a722f70b5b6fa8d8be1c85792e829f56c0e1be94ab70b293c032dc5048d4d37cfe678f1f5babb04bdc65fd123098800148ca989184f + languageName: node + linkType: hard + +"tinyspy@npm:^3.0.0": + version: 3.0.2 + resolution: "tinyspy@npm:3.0.2" + checksum: 10c0/55ffad24e346622b59292e097c2ee30a63919d5acb7ceca87fc0d1c223090089890587b426e20054733f97a58f20af2c349fb7cc193697203868ab7ba00bcea0 + languageName: node + linkType: hard + +"tinyspy@npm:^4.0.3": + version: 4.0.4 + resolution: "tinyspy@npm:4.0.4" + checksum: 10c0/a8020fc17799251e06a8398dcc352601d2770aa91c556b9531ecd7a12581161fd1c14e81cbdaff0c1306c93bfdde8ff6d1c1a3f9bbe6d91604f0fd4e01e2f1eb + languageName: node + linkType: hard + +"toggle-selection@npm:^1.0.6": + version: 1.0.6 + resolution: "toggle-selection@npm:1.0.6" + checksum: 10c0/f2cf1f2c70f374fd87b0cdc8007453ba9e981c4305a8bf4eac10a30e62ecdfd28bca7d18f8f15b15a506bf8a7bfb20dbe3539f0fcf2a2c8396c1a78d53e1f179 + languageName: node + linkType: hard + +"tough-cookie@npm:^4.1.2": + version: 4.1.4 + resolution: "tough-cookie@npm:4.1.4" + dependencies: + psl: "npm:^1.1.33" + punycode: "npm:^2.1.1" + universalify: "npm:^0.2.0" + url-parse: "npm:^1.5.3" + checksum: 10c0/aca7ff96054f367d53d1e813e62ceb7dd2eda25d7752058a74d64b7266fd07be75908f3753a32ccf866a2f997604b414cfb1916d6e7f69bc64d9d9939b0d6c45 + languageName: node + linkType: hard + +"tr46@npm:^4.1.1": + version: 4.1.1 + resolution: "tr46@npm:4.1.1" + dependencies: + punycode: "npm:^2.3.0" + checksum: 10c0/92085dcf186f56a49ba4124a581d9ae6a5d0cd4878107c34e2e670b9ddc49da85e4950084bb3e75015195cc23f37ae1c02d45064e94dd6018f5e789aa51d93a8 + languageName: node + linkType: hard + +"tree-kill@npm:^1.2.2": + version: 1.2.2 + resolution: "tree-kill@npm:1.2.2" + bin: + tree-kill: cli.js + checksum: 10c0/7b1b7c7f17608a8f8d20a162e7957ac1ef6cd1636db1aba92f4e072dc31818c2ff0efac1e3d91064ede67ed5dc57c565420531a8134090a12ac10cf792ab14d2 + languageName: node + linkType: hard + +"ts-dedent@npm:^2.0.0, ts-dedent@npm:^2.2.0": + version: 2.2.0 + resolution: "ts-dedent@npm:2.2.0" + checksum: 10c0/175adea838468cc2ff7d5e97f970dcb798bbcb623f29c6088cb21aa2880d207c5784be81ab1741f56b9ac37840cbaba0c0d79f7f8b67ffe61c02634cafa5c303 + languageName: node + linkType: hard + +"ts-interface-checker@npm:^0.1.9": + version: 0.1.13 + resolution: "ts-interface-checker@npm:0.1.13" + checksum: 10c0/232509f1b84192d07b81d1e9b9677088e590ac1303436da1e92b296e9be8e31ea042e3e1fd3d29b1742ad2c959e95afe30f63117b8f1bc3a3850070a5142fea7 + languageName: node + linkType: hard + +"tsconfig-paths@npm:^4.2.0": + version: 4.2.0 + resolution: "tsconfig-paths@npm:4.2.0" + dependencies: + json5: "npm:^2.2.2" + minimist: "npm:^1.2.6" + strip-bom: "npm:^3.0.0" + checksum: 10c0/09a5877402d082bb1134930c10249edeebc0211f36150c35e1c542e5b91f1047b1ccf7da1e59babca1ef1f014c525510f4f870de7c9bda470c73bb4e2721b3ea + languageName: node + linkType: hard + +"tslib@npm:^2.0.0, tslib@npm:^2.0.1, tslib@npm:^2.1.0, tslib@npm:^2.3.0": + version: 2.8.1 + resolution: "tslib@npm:2.8.1" + checksum: 10c0/9c4759110a19c53f992d9aae23aac5ced636e99887b51b9e61def52611732872ff7668757d4e4c61f19691e36f4da981cd9485e869b4a7408d689f6bf1f14e62 + languageName: node + linkType: hard + +"tsup@npm:^8.5.0": + version: 8.5.1 + resolution: "tsup@npm:8.5.1" + dependencies: + bundle-require: "npm:^5.1.0" + cac: "npm:^6.7.14" + chokidar: "npm:^4.0.3" + consola: "npm:^3.4.0" + debug: "npm:^4.4.0" + esbuild: "npm:^0.27.0" + fix-dts-default-cjs-exports: "npm:^1.0.0" + joycon: "npm:^3.1.1" + picocolors: "npm:^1.1.1" + postcss-load-config: "npm:^6.0.1" + resolve-from: "npm:^5.0.0" + rollup: "npm:^4.34.8" + source-map: "npm:^0.7.6" + sucrase: "npm:^3.35.0" + tinyexec: "npm:^0.3.2" + tinyglobby: "npm:^0.2.11" + tree-kill: "npm:^1.2.2" + peerDependencies: + "@microsoft/api-extractor": ^7.36.0 + "@swc/core": ^1 + postcss: ^8.4.12 + typescript: ">=4.5.0" + peerDependenciesMeta: + "@microsoft/api-extractor": + optional: true + "@swc/core": + optional: true + postcss: + optional: true + typescript: + optional: true + bin: + tsup: dist/cli-default.js + tsup-node: dist/cli-node.js + checksum: 10c0/86b0a5ee5533cf5363431ffaf6a244d06fbc80e3a739f216a121a336b28e663d521bae1d3b2d9ba7d479cb4b5f7dcb5e0722e169d3daf664c78f0d68676fa06a + languageName: node + linkType: hard + +"type-check@npm:^0.4.0, type-check@npm:~0.4.0": + version: 0.4.0 + resolution: "type-check@npm:0.4.0" + dependencies: + prelude-ls: "npm:^1.2.1" + checksum: 10c0/7b3fd0ed43891e2080bf0c5c504b418fbb3e5c7b9708d3d015037ba2e6323a28152ec163bcb65212741fa5d2022e3075ac3c76440dbd344c9035f818e8ecee58 + languageName: node + linkType: hard + +"typescript@npm:5.9.3, typescript@npm:^5.9.3": + version: 5.9.3 + resolution: "typescript@npm:5.9.3" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 10c0/6bd7552ce39f97e711db5aa048f6f9995b53f1c52f7d8667c1abdc1700c68a76a308f579cd309ce6b53646deb4e9a1be7c813a93baaf0a28ccd536a30270e1c5 + languageName: node + linkType: hard + +"typescript@patch:typescript@npm%3A5.9.3#optional!builtin, typescript@patch:typescript@npm%3A^5.9.3#optional!builtin": + version: 5.9.3 + resolution: "typescript@patch:typescript@npm%3A5.9.3#optional!builtin::version=5.9.3&hash=5786d5" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 10c0/ad09fdf7a756814dce65bc60c1657b40d44451346858eea230e10f2e95a289d9183b6e32e5c11e95acc0ccc214b4f36289dcad4bf1886b0adb84d711d336a430 + languageName: node + linkType: hard + +"ua-parser-js@npm:^1.0.33": + version: 1.0.41 + resolution: "ua-parser-js@npm:1.0.41" + bin: + ua-parser-js: script/cli.js + checksum: 10c0/45dc1f7f3ce8248e0e64640d2e29c65c0ea1fc9cb105594de84af80e2a57bba4f718b9376098ca7a5b0ffe240f8995b0fa3714afa9d36861c41370a378f1a274 + languageName: node + linkType: hard + +"ufo@npm:^1.6.1": + version: 1.6.3 + resolution: "ufo@npm:1.6.3" + checksum: 10c0/bf0e4ebff99e54da1b9c7182ac2f40475988b41faa881d579bc97bc2a0509672107b0a0e94c4b8d31a0ab8c4bf07f4aa0b469ac6da8536d56bda5b085ea2e953 + languageName: node + linkType: hard + +"undici-types@npm:~6.20.0": + version: 6.20.0 + resolution: "undici-types@npm:6.20.0" + checksum: 10c0/68e659a98898d6a836a9a59e6adf14a5d799707f5ea629433e025ac90d239f75e408e2e5ff086afc3cace26f8b26ee52155293564593fbb4a2f666af57fc59bf + languageName: node + linkType: hard + +"undici-types@npm:~7.16.0": + version: 7.16.0 + resolution: "undici-types@npm:7.16.0" + checksum: 10c0/3033e2f2b5c9f1504bdc5934646cb54e37ecaca0f9249c983f7b1fc2e87c6d18399ebb05dc7fd5419e02b2e915f734d872a65da2e3eeed1813951c427d33cc9a + languageName: node + linkType: hard + +"unique-filename@npm:^5.0.0": + version: 5.0.0 + resolution: "unique-filename@npm:5.0.0" + dependencies: + unique-slug: "npm:^6.0.0" + checksum: 10c0/afb897e9cf4c2fb622ea716f7c2bb462001928fc5f437972213afdf1cc32101a230c0f1e9d96fc91ee5185eca0f2feb34127145874975f347be52eb91d6ccc2c + languageName: node + linkType: hard + +"unique-slug@npm:^6.0.0": + version: 6.0.0 + resolution: "unique-slug@npm:6.0.0" + dependencies: + imurmurhash: "npm:^0.1.4" + checksum: 10c0/da7ade4cb04eb33ad0499861f82fe95ce9c7c878b7139dc54d140ecfb6a6541c18a5c8dac16188b8b379fe62c0c1f1b710814baac910cde5f4fec06212126c6a + languageName: node + linkType: hard + +"universalify@npm:^0.2.0": + version: 0.2.0 + resolution: "universalify@npm:0.2.0" + checksum: 10c0/cedbe4d4ca3967edf24c0800cfc161c5a15e240dac28e3ce575c689abc11f2c81ccc6532c8752af3b40f9120fb5e454abecd359e164f4f6aa44c29cd37e194fe + languageName: node + linkType: hard + +"unplugin@npm:^1.3.1": + version: 1.16.1 + resolution: "unplugin@npm:1.16.1" + dependencies: + acorn: "npm:^8.14.0" + webpack-virtual-modules: "npm:^0.6.2" + checksum: 10c0/dd5f8c5727d0135847da73cf03fb199107f1acf458167034886fda3405737dab871ad3926431b4f70e1e82cdac482ac1383cea4019d782a68515c8e3e611b6cc + languageName: node + linkType: hard + +"update-browserslist-db@npm:^1.2.0": + version: 1.2.3 + resolution: "update-browserslist-db@npm:1.2.3" + dependencies: + escalade: "npm:^3.2.0" + picocolors: "npm:^1.1.1" + peerDependencies: + browserslist: ">= 4.21.0" + bin: + update-browserslist-db: cli.js + checksum: 10c0/13a00355ea822388f68af57410ce3255941d5fb9b7c49342c4709a07c9f230bbef7f7499ae0ca7e0de532e79a82cc0c4edbd125f1a323a1845bf914efddf8bec + languageName: node + linkType: hard + +"uri-js@npm:^4.2.2": + version: 4.4.1 + resolution: "uri-js@npm:4.4.1" + dependencies: + punycode: "npm:^2.1.0" + checksum: 10c0/4ef57b45aa820d7ac6496e9208559986c665e49447cb072744c13b66925a362d96dd5a46c4530a6b8e203e5db5fe849369444440cb22ecfc26c679359e5dfa3c + languageName: node + linkType: hard + +"url-parse@npm:^1.5.3": + version: 1.5.10 + resolution: "url-parse@npm:1.5.10" + dependencies: + querystringify: "npm:^2.1.1" + requires-port: "npm:^1.0.0" + checksum: 10c0/bd5aa9389f896974beb851c112f63b466505a04b4807cea2e5a3b7092f6fbb75316f0491ea84e44f66fed55f1b440df5195d7e3a8203f64fcefa19d182f5be87 + languageName: node + linkType: hard + +"util@npm:^0.12.5": + version: 0.12.5 + resolution: "util@npm:0.12.5" + dependencies: + inherits: "npm:^2.0.3" + is-arguments: "npm:^1.0.4" + is-generator-function: "npm:^1.0.7" + is-typed-array: "npm:^1.1.3" + which-typed-array: "npm:^1.1.2" + checksum: 10c0/c27054de2cea2229a66c09522d0fa1415fb12d861d08523a8846bf2e4cbf0079d4c3f725f09dcb87493549bcbf05f5798dce1688b53c6c17201a45759e7253f3 + languageName: node + linkType: hard + +"uuid@npm:^9.0.0": + version: 9.0.1 + resolution: "uuid@npm:9.0.1" + bin: + uuid: dist/bin/uuid + checksum: 10c0/1607dd32ac7fc22f2d8f77051e6a64845c9bce5cd3dd8aa0070c074ec73e666a1f63c7b4e0f4bf2bc8b9d59dc85a15e17807446d9d2b17c8485fbc2147b27f9b + languageName: node + linkType: hard + +"video.js@npm:8.23.4": + version: 8.23.4 + resolution: "video.js@npm:8.23.4" + dependencies: + "@babel/runtime": "npm:^7.12.5" + "@videojs/http-streaming": "npm:^3.17.2" + "@videojs/vhs-utils": "npm:^4.1.1" + "@videojs/xhr": "npm:2.7.0" + aes-decrypter: "npm:^4.0.2" + global: "npm:4.4.0" + m3u8-parser: "npm:^7.2.0" + mpd-parser: "npm:^1.3.1" + mux.js: "npm:^7.0.1" + videojs-contrib-quality-levels: "npm:4.1.0" + videojs-font: "npm:4.2.0" + videojs-vtt.js: "npm:0.15.5" + checksum: 10c0/3f6f0ce1b2f62cc91a9872ef33c46dcd28b88a445ea7182bbeae94e3c5e11036018e3cc665f2e810d0b0f5d141fb9e4d834b3d86406559da73e5db86bcc9204e + languageName: node + linkType: hard + +"video.js@npm:^7 || ^8": + version: 8.23.8 + resolution: "video.js@npm:8.23.8" + dependencies: + "@babel/runtime": "npm:^7.28.4" + "@videojs/http-streaming": "npm:^3.17.4" + "@videojs/vhs-utils": "npm:^4.1.1" + "@videojs/xhr": "npm:2.7.0" + aes-decrypter: "npm:^4.0.2" + global: "npm:4.4.0" + m3u8-parser: "npm:^7.2.0" + mpd-parser: "npm:^1.3.1" + mux.js: "npm:^7.0.1" + videojs-contrib-quality-levels: "npm:4.1.0" + videojs-font: "npm:4.2.0" + videojs-vtt.js: "npm:0.15.5" + checksum: 10c0/dfb7401f47143976045ee8526b2c5ab73e59f1b04b7c578f7cb434bdc4fcba733e3f559faa46689f003b131515b9ec9cc9049870db84f9aa81b6ede684438a5b + languageName: node + linkType: hard + +"videojs-contrib-quality-levels@npm:4.1.0": + version: 4.1.0 + resolution: "videojs-contrib-quality-levels@npm:4.1.0" + dependencies: + global: "npm:^4.4.0" + peerDependencies: + video.js: ^8 + checksum: 10c0/5ab25b0d93dfe97dcabd6b3008afd5d7faf2602de5d4953f79f0eedce346aec670bb6eb833c3225d7deac101ba8d97d13121a3a470f3584bae8b63eb3dc03148 + languageName: node + linkType: hard + +"videojs-font@npm:4.2.0": + version: 4.2.0 + resolution: "videojs-font@npm:4.2.0" + checksum: 10c0/c7960e13e70bd2dbf6940fa00ccd49547537bd0f56aed420d8049bcb908a4f0fabcb0d4693c43068c163b9ed09bfb641f205313ec3fec3143dffcff8c6d3ac6c + languageName: node + linkType: hard + +"videojs-vtt.js@npm:0.15.5": + version: 0.15.5 + resolution: "videojs-vtt.js@npm:0.15.5" + dependencies: + global: "npm:^4.3.1" + checksum: 10c0/fd595a96c7bee3cb086f58a750d784a8d52db29b3ddf90a079cd283b097c36f976ac9f3835af53dfe5bdac5c7ccbd03db77abbaa37e38bfb3cbe4843e261e02b + languageName: node + linkType: hard + +"vite-node@npm:3.2.4": + version: 3.2.4 + resolution: "vite-node@npm:3.2.4" + dependencies: + cac: "npm:^6.7.14" + debug: "npm:^4.4.1" + es-module-lexer: "npm:^1.7.0" + pathe: "npm:^2.0.3" + vite: "npm:^5.0.0 || ^6.0.0 || ^7.0.0-0" + bin: + vite-node: vite-node.mjs + checksum: 10c0/6ceca67c002f8ef6397d58b9539f80f2b5d79e103a18367288b3f00a8ab55affa3d711d86d9112fce5a7fa658a212a087a005a045eb8f4758947dd99af2a6c6b + languageName: node + linkType: hard + +"vite@npm:6.4.1": + version: 6.4.1 + resolution: "vite@npm:6.4.1" + dependencies: + esbuild: "npm:^0.25.0" + fdir: "npm:^6.4.4" + fsevents: "npm:~2.3.3" + picomatch: "npm:^4.0.2" + postcss: "npm:^8.5.3" + rollup: "npm:^4.34.9" + tinyglobby: "npm:^0.2.13" + peerDependencies: + "@types/node": ^18.0.0 || ^20.0.0 || >=22.0.0 + jiti: ">=1.21.0" + less: "*" + lightningcss: ^1.21.0 + sass: "*" + sass-embedded: "*" + stylus: "*" + sugarss: "*" + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + dependenciesMeta: + fsevents: + optional: true + peerDependenciesMeta: + "@types/node": + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + bin: + vite: bin/vite.js + checksum: 10c0/77bb4c5b10f2a185e7859cc9a81c789021bc18009b02900347d1583b453b58e4b19ff07a5e5a5b522b68fc88728460bb45a63b104d969e8c6a6152aea3b849f7 + languageName: node + linkType: hard + +"vite@npm:^5.0.0 || ^6.0.0 || ^7.0.0-0": + version: 7.3.1 + resolution: "vite@npm:7.3.1" + dependencies: + esbuild: "npm:^0.27.0" + fdir: "npm:^6.5.0" + fsevents: "npm:~2.3.3" + picomatch: "npm:^4.0.3" + postcss: "npm:^8.5.6" + rollup: "npm:^4.43.0" + tinyglobby: "npm:^0.2.15" + peerDependencies: + "@types/node": ^20.19.0 || >=22.12.0 + jiti: ">=1.21.0" + less: ^4.0.0 + lightningcss: ^1.21.0 + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: ">=0.54.8" + sugarss: ^5.0.0 + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + dependenciesMeta: + fsevents: + optional: true + peerDependenciesMeta: + "@types/node": + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + bin: + vite: bin/vite.js + checksum: 10c0/5c7548f5f43a23533e53324304db4ad85f1896b1bfd3ee32ae9b866bac2933782c77b350eb2b52a02c625c8ad1ddd4c000df077419410650c982cd97fde8d014 + languageName: node + linkType: hard + +"vitest@npm:^3.2.4": + version: 3.2.4 + resolution: "vitest@npm:3.2.4" + dependencies: + "@types/chai": "npm:^5.2.2" + "@vitest/expect": "npm:3.2.4" + "@vitest/mocker": "npm:3.2.4" + "@vitest/pretty-format": "npm:^3.2.4" + "@vitest/runner": "npm:3.2.4" + "@vitest/snapshot": "npm:3.2.4" + "@vitest/spy": "npm:3.2.4" + "@vitest/utils": "npm:3.2.4" + chai: "npm:^5.2.0" + debug: "npm:^4.4.1" + expect-type: "npm:^1.2.1" + magic-string: "npm:^0.30.17" + pathe: "npm:^2.0.3" + picomatch: "npm:^4.0.2" + std-env: "npm:^3.9.0" + tinybench: "npm:^2.9.0" + tinyexec: "npm:^0.3.2" + tinyglobby: "npm:^0.2.14" + tinypool: "npm:^1.1.1" + tinyrainbow: "npm:^2.0.0" + vite: "npm:^5.0.0 || ^6.0.0 || ^7.0.0-0" + vite-node: "npm:3.2.4" + why-is-node-running: "npm:^2.3.0" + peerDependencies: + "@edge-runtime/vm": "*" + "@types/debug": ^4.1.12 + "@types/node": ^18.0.0 || ^20.0.0 || >=22.0.0 + "@vitest/browser": 3.2.4 + "@vitest/ui": 3.2.4 + happy-dom: "*" + jsdom: "*" + peerDependenciesMeta: + "@edge-runtime/vm": + optional: true + "@types/debug": + optional: true + "@types/node": + optional: true + "@vitest/browser": + optional: true + "@vitest/ui": + optional: true + happy-dom: + optional: true + jsdom: + optional: true + bin: + vitest: vitest.mjs + checksum: 10c0/5bf53ede3ae6a0e08956d72dab279ae90503f6b5a05298a6a5e6ef47d2fd1ab386aaf48fafa61ed07a0ebfe9e371772f1ccbe5c258dd765206a8218bf2eb79eb + languageName: node + linkType: hard + +"w3c-xmlserializer@npm:^4.0.0": + version: 4.0.0 + resolution: "w3c-xmlserializer@npm:4.0.0" + dependencies: + xml-name-validator: "npm:^4.0.0" + checksum: 10c0/02cc66d6efc590bd630086cd88252444120f5feec5c4043932b0d0f74f8b060512f79dc77eb093a7ad04b4f02f39da79ce4af47ceb600f2bf9eacdc83204b1a8 + languageName: node + linkType: hard + +"webidl-conversions@npm:^7.0.0": + version: 7.0.0 + resolution: "webidl-conversions@npm:7.0.0" + checksum: 10c0/228d8cb6d270c23b0720cb2d95c579202db3aaf8f633b4e9dd94ec2000a04e7e6e43b76a94509cdb30479bd00ae253ab2371a2da9f81446cc313f89a4213a2c4 + languageName: node + linkType: hard + +"webpack-virtual-modules@npm:^0.6.2": + version: 0.6.2 + resolution: "webpack-virtual-modules@npm:0.6.2" + checksum: 10c0/5ffbddf0e84bf1562ff86cf6fcf039c74edf09d78358a6904a09bbd4484e8bb6812dc385fe14330b715031892dcd8423f7a88278b57c9f5002c84c2860179add + languageName: node + linkType: hard + +"whatwg-encoding@npm:^2.0.0": + version: 2.0.0 + resolution: "whatwg-encoding@npm:2.0.0" + dependencies: + iconv-lite: "npm:0.6.3" + checksum: 10c0/91b90a49f312dc751496fd23a7e68981e62f33afe938b97281ad766235c4872fc4e66319f925c5e9001502b3040dd25a33b02a9c693b73a4cbbfdc4ad10c3e3e + languageName: node + linkType: hard + +"whatwg-mimetype@npm:^3.0.0": + version: 3.0.0 + resolution: "whatwg-mimetype@npm:3.0.0" + checksum: 10c0/323895a1cda29a5fb0b9ca82831d2c316309fede0365047c4c323073e3239067a304a09a1f4b123b9532641ab604203f33a1403b5ca6a62ef405bcd7a204080f + languageName: node + linkType: hard + +"whatwg-url@npm:^12.0.0, whatwg-url@npm:^12.0.1": + version: 12.0.1 + resolution: "whatwg-url@npm:12.0.1" + dependencies: + tr46: "npm:^4.1.1" + webidl-conversions: "npm:^7.0.0" + checksum: 10c0/99f506b2c996704fa0fc5c70d8e5e27dce15492db2921c99cf319a8d56cb61641f5c06089f63e1ab1983de9fd6a63c3c112a90cdb5fe352d7a846979b10df566 + languageName: node + linkType: hard + +"which-typed-array@npm:^1.1.16, which-typed-array@npm:^1.1.2": + version: 1.1.20 + resolution: "which-typed-array@npm:1.1.20" + dependencies: + available-typed-arrays: "npm:^1.0.7" + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.4" + for-each: "npm:^0.3.5" + get-proto: "npm:^1.0.1" + gopd: "npm:^1.2.0" + has-tostringtag: "npm:^1.0.2" + checksum: 10c0/16fcdada95c8afb821cd1117f0ab50b4d8551677ac08187f21d4e444530913c9ffd2dac634f0c1183345f96344b69280f40f9a8bc52164ef409e555567c2604b + languageName: node + linkType: hard + +"which@npm:^2.0.1": + version: 2.0.2 + resolution: "which@npm:2.0.2" + dependencies: + isexe: "npm:^2.0.0" + bin: + node-which: ./bin/node-which + checksum: 10c0/66522872a768b60c2a65a57e8ad184e5372f5b6a9ca6d5f033d4b0dc98aff63995655a7503b9c0a2598936f532120e81dd8cc155e2e92ed662a2b9377cc4374f + languageName: node + linkType: hard + +"which@npm:^6.0.0": + version: 6.0.1 + resolution: "which@npm:6.0.1" + dependencies: + isexe: "npm:^4.0.0" + bin: + node-which: bin/which.js + checksum: 10c0/7e710e54ea36d2d6183bee2f9caa27a3b47b9baf8dee55a199b736fcf85eab3b9df7556fca3d02b50af7f3dfba5ea3a45644189836df06267df457e354da66d5 + languageName: node + linkType: hard + +"why-is-node-running@npm:^2.3.0": + version: 2.3.0 + resolution: "why-is-node-running@npm:2.3.0" + dependencies: + siginfo: "npm:^2.0.0" + stackback: "npm:0.0.2" + bin: + why-is-node-running: cli.js + checksum: 10c0/1cde0b01b827d2cf4cb11db962f3958b9175d5d9e7ac7361d1a7b0e2dc6069a263e69118bd974c4f6d0a890ef4eedfe34cf3d5167ec14203dbc9a18620537054 + languageName: node + linkType: hard + +"word-wrap@npm:^1.2.5": + version: 1.2.5 + resolution: "word-wrap@npm:1.2.5" + checksum: 10c0/e0e4a1ca27599c92a6ca4c32260e8a92e8a44f4ef6ef93f803f8ed823f486e0889fc0b93be4db59c8d51b3064951d25e43d434e95dc8c960cc3a63d65d00ba20 + languageName: node + linkType: hard + +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": + version: 7.0.0 + resolution: "wrap-ansi@npm:7.0.0" + dependencies: + ansi-styles: "npm:^4.0.0" + string-width: "npm:^4.1.0" + strip-ansi: "npm:^6.0.0" + checksum: 10c0/d15fc12c11e4cbc4044a552129ebc75ee3f57aa9c1958373a4db0292d72282f54373b536103987a4a7594db1ef6a4f10acf92978f79b98c49306a4b58c77d4da + languageName: node + linkType: hard + +"wrap-ansi@npm:^8.1.0": + version: 8.1.0 + resolution: "wrap-ansi@npm:8.1.0" + dependencies: + ansi-styles: "npm:^6.1.0" + string-width: "npm:^5.0.1" + strip-ansi: "npm:^7.0.1" + checksum: 10c0/138ff58a41d2f877eae87e3282c0630fc2789012fc1af4d6bd626eeb9a2f9a65ca92005e6e69a75c7b85a68479fe7443c7dbe1eb8fbaa681a4491364b7c55c60 + languageName: node + linkType: hard + +"ws@npm:^8.13.0, ws@npm:^8.2.3": + version: 8.19.0 + resolution: "ws@npm:8.19.0" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ">=5.0.2" + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: 10c0/4741d9b9bc3f9c791880882414f96e36b8b254e34d4b503279d6400d9a4b87a033834856dbdd94ee4b637944df17ea8afc4bce0ff4a1560d2166be8855da5b04 + languageName: node + linkType: hard + +"xml-name-validator@npm:^4.0.0": + version: 4.0.0 + resolution: "xml-name-validator@npm:4.0.0" + checksum: 10c0/c1bfa219d64e56fee265b2bd31b2fcecefc063ee802da1e73bad1f21d7afd89b943c9e2c97af2942f60b1ad46f915a4c81e00039c7d398b53cf410e29d3c30bd + languageName: node + linkType: hard + +"xmlchars@npm:^2.2.0": + version: 2.2.0 + resolution: "xmlchars@npm:2.2.0" + checksum: 10c0/b64b535861a6f310c5d9bfa10834cf49127c71922c297da9d4d1b45eeaae40bf9b4363275876088fbe2667e5db028d2cd4f8ee72eed9bede840a67d57dab7593 + languageName: node + linkType: hard + +"yallist@npm:^3.0.2": + version: 3.1.1 + resolution: "yallist@npm:3.1.1" + checksum: 10c0/c66a5c46bc89af1625476f7f0f2ec3653c1a1791d2f9407cfb4c2ba812a1e1c9941416d71ba9719876530e3340a99925f697142989371b72d93b9ee628afd8c1 + languageName: node + linkType: hard + +"yallist@npm:^4.0.0": + version: 4.0.0 + resolution: "yallist@npm:4.0.0" + checksum: 10c0/2286b5e8dbfe22204ab66e2ef5cc9bbb1e55dfc873bbe0d568aa943eb255d131890dfd5bf243637273d31119b870f49c18fcde2c6ffbb7a7a092b870dc90625a + languageName: node + linkType: hard + +"yallist@npm:^5.0.0": + version: 5.0.0 + resolution: "yallist@npm:5.0.0" + checksum: 10c0/a499c81ce6d4a1d260d4ea0f6d49ab4da09681e32c3f0472dee16667ed69d01dae63a3b81745a24bd78476ec4fcf856114cb4896ace738e01da34b2c42235416 + languageName: node + linkType: hard + +"yocto-queue@npm:^0.1.0": + version: 0.1.0 + resolution: "yocto-queue@npm:0.1.0" + checksum: 10c0/dceb44c28578b31641e13695d200d34ec4ab3966a5729814d5445b194933c096b7ced71494ce53a0e8820685d1d010df8b2422e5bf2cdea7e469d97ffbea306f + languageName: node + linkType: hard