thread-ui 0.2.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +63 -18
- package/dist/components/form-elements/dropdown/dropdown.d.ts +14 -0
- package/dist/components/form-elements/dropdown/dropdown.d.ts.map +1 -0
- package/dist/components/form-elements/dropdown/dropdown.js +83 -0
- package/dist/components/form-elements/dropdown/dropdown.js.map +1 -0
- package/dist/components/form-elements/dropdown/dropdown.types.d.ts +24 -0
- package/dist/components/form-elements/dropdown/dropdown.types.d.ts.map +1 -0
- package/dist/components/form-elements/dropdown/dropdown.types.js +2 -0
- package/dist/components/form-elements/dropdown/dropdown.types.js.map +1 -0
- package/dist/components/form-elements/dropdown/index.d.ts +3 -0
- package/dist/components/form-elements/dropdown/index.d.ts.map +1 -0
- package/dist/components/form-elements/dropdown/index.js +2 -0
- package/dist/components/form-elements/dropdown/index.js.map +1 -0
- package/dist/components/form-elements/file-upload/components/file-input.d.ts +2 -0
- package/dist/components/form-elements/file-upload/components/file-input.d.ts.map +1 -0
- package/dist/components/form-elements/file-upload/components/file-input.js +93 -0
- package/dist/components/form-elements/file-upload/components/file-input.js.map +1 -0
- package/dist/components/form-elements/file-upload/components/file-upload-content.d.ts +2 -0
- package/dist/components/form-elements/file-upload/components/file-upload-content.d.ts.map +1 -0
- package/dist/components/form-elements/file-upload/components/file-upload-content.js +28 -0
- package/dist/components/form-elements/file-upload/components/file-upload-content.js.map +1 -0
- package/dist/components/form-elements/file-upload/components/file-upload-preview.d.ts +2 -0
- package/dist/components/form-elements/file-upload/components/file-upload-preview.d.ts.map +1 -0
- package/dist/components/form-elements/file-upload/components/file-upload-preview.js +51 -0
- package/dist/components/form-elements/file-upload/components/file-upload-preview.js.map +1 -0
- package/dist/components/form-elements/file-upload/components/item-previews.d.ts +12 -0
- package/dist/components/form-elements/file-upload/components/item-previews.d.ts.map +1 -0
- package/dist/components/form-elements/file-upload/components/item-previews.js +58 -0
- package/dist/components/form-elements/file-upload/components/item-previews.js.map +1 -0
- package/dist/components/form-elements/file-upload/file-upload-context.d.ts +3 -0
- package/dist/components/form-elements/file-upload/file-upload-context.d.ts.map +1 -0
- package/dist/components/form-elements/file-upload/file-upload-context.js +4 -0
- package/dist/components/form-elements/file-upload/file-upload-context.js.map +1 -0
- package/dist/components/form-elements/file-upload/file-upload.d.ts +20 -0
- package/dist/components/form-elements/file-upload/file-upload.d.ts.map +1 -0
- package/dist/components/form-elements/file-upload/file-upload.js +148 -0
- package/dist/components/form-elements/file-upload/file-upload.js.map +1 -0
- package/dist/components/form-elements/file-upload/file-upload.types.d.ts +36 -0
- package/dist/components/form-elements/file-upload/file-upload.types.d.ts.map +1 -0
- package/dist/components/form-elements/file-upload/file-upload.types.js +2 -0
- package/dist/components/form-elements/file-upload/file-upload.types.js.map +1 -0
- package/dist/components/form-elements/file-upload/index.d.ts +3 -0
- package/dist/components/form-elements/file-upload/index.d.ts.map +1 -0
- package/dist/components/form-elements/file-upload/index.js +2 -0
- package/dist/components/form-elements/file-upload/index.js.map +1 -0
- package/dist/components/form-elements/form-label/form-label.d.ts +6 -0
- package/dist/components/form-elements/form-label/form-label.d.ts.map +1 -1
- package/dist/components/form-elements/form-label/form-label.js +8 -2
- package/dist/components/form-elements/form-label/form-label.js.map +1 -1
- package/dist/components/form-elements/form-label/form-label.types.d.ts +3 -0
- package/dist/components/form-elements/form-label/form-label.types.d.ts.map +1 -1
- package/dist/components/form-elements/index.d.ts +2 -0
- package/dist/components/form-elements/index.d.ts.map +1 -1
- package/dist/components/form-elements/index.js +2 -0
- package/dist/components/form-elements/index.js.map +1 -1
- package/dist/components/form-elements/input-props.types.d.ts +10 -3
- package/dist/components/form-elements/input-props.types.d.ts.map +1 -1
- package/dist/components/form-elements/number-input/number-input.d.ts +15 -1
- package/dist/components/form-elements/number-input/number-input.d.ts.map +1 -1
- package/dist/components/form-elements/number-input/number-input.js +82 -21
- package/dist/components/form-elements/number-input/number-input.js.map +1 -1
- package/dist/components/form-elements/number-input/number-input.types.d.ts +3 -0
- package/dist/components/form-elements/number-input/number-input.types.d.ts.map +1 -1
- package/dist/components/form-elements/styles/index.d.ts.map +1 -1
- package/dist/components/form-elements/styles/index.js +3 -1
- package/dist/components/form-elements/styles/index.js.map +1 -1
- package/dist/components/form-elements/text-input/text-input.d.ts +7 -1
- package/dist/components/form-elements/text-input/text-input.d.ts.map +1 -1
- package/dist/components/form-elements/text-input/text-input.js +8 -2
- package/dist/components/form-elements/text-input/text-input.js.map +1 -1
- package/dist/components/form-elements/text-input/text-input.types.d.ts +1 -0
- package/dist/components/form-elements/text-input/text-input.types.d.ts.map +1 -1
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +1 -0
- package/dist/components/index.js.map +1 -1
- package/dist/components/layouts/column-layout/column-layout.d.ts +11 -2
- package/dist/components/layouts/column-layout/column-layout.d.ts.map +1 -1
- package/dist/components/layouts/column-layout/column-layout.js +11 -2
- package/dist/components/layouts/column-layout/column-layout.js.map +1 -1
- package/dist/components/layouts/column-layout/column-layout.types.d.ts +8 -18
- package/dist/components/layouts/column-layout/column-layout.types.d.ts.map +1 -1
- package/dist/components/layouts/column-layout/column-skeleton/column-skeleton.js +1 -1
- package/dist/components/layouts/column-layout/column-skeleton/column-skeleton.js.map +1 -1
- package/dist/components/layouts/footer/footer.d.ts +13 -1
- package/dist/components/layouts/footer/footer.d.ts.map +1 -1
- package/dist/components/layouts/footer/footer.js +14 -2
- package/dist/components/layouts/footer/footer.js.map +1 -1
- package/dist/components/layouts/footer/footer.types.d.ts +7 -0
- package/dist/components/layouts/footer/footer.types.d.ts.map +1 -1
- package/dist/components/layouts/masonry-layout/masonry-layout.d.ts +9 -0
- package/dist/components/layouts/masonry-layout/masonry-layout.d.ts.map +1 -1
- package/dist/components/layouts/masonry-layout/masonry-layout.js +12 -3
- package/dist/components/layouts/masonry-layout/masonry-layout.js.map +1 -1
- package/dist/components/layouts/masonry-layout/masonry-layout.types.d.ts +3 -0
- package/dist/components/layouts/masonry-layout/masonry-layout.types.d.ts.map +1 -1
- package/dist/components/media/image-panel/image-panel.d.ts +14 -0
- package/dist/components/media/image-panel/image-panel.d.ts.map +1 -1
- package/dist/components/media/image-panel/image-panel.js +15 -1
- package/dist/components/media/image-panel/image-panel.js.map +1 -1
- package/dist/components/media/image-panel/image-panel.types.d.ts +8 -0
- package/dist/components/media/image-panel/image-panel.types.d.ts.map +1 -1
- package/dist/components/media/info-card/info-card.d.ts +11 -0
- package/dist/components/media/info-card/info-card.d.ts.map +1 -1
- package/dist/components/media/info-card/info-card.js +13 -2
- package/dist/components/media/info-card/info-card.js.map +1 -1
- package/dist/components/media/info-card/info-card.types.d.ts +10 -0
- package/dist/components/media/info-card/info-card.types.d.ts.map +1 -1
- package/dist/components/media/media-card/media-card.d.ts +13 -0
- package/dist/components/media/media-card/media-card.d.ts.map +1 -1
- package/dist/components/media/media-card/media-card.js +21 -6
- package/dist/components/media/media-card/media-card.js.map +1 -1
- package/dist/components/media/media-card/media-card.types.d.ts +13 -0
- package/dist/components/media/media-card/media-card.types.d.ts.map +1 -1
- package/dist/components/navigation/nav-menu/items/nav-drop-down-item/nav-drop-down-item.d.ts.map +1 -1
- package/dist/components/navigation/nav-menu/items/nav-drop-down-item/nav-drop-down-item.js +10 -7
- package/dist/components/navigation/nav-menu/items/nav-drop-down-item/nav-drop-down-item.js.map +1 -1
- package/dist/components/navigation/nav-menu/nav-menu.d.ts +13 -0
- package/dist/components/navigation/nav-menu/nav-menu.d.ts.map +1 -1
- package/dist/components/navigation/nav-menu/nav-menu.js +13 -0
- package/dist/components/navigation/nav-menu/nav-menu.js.map +1 -1
- package/dist/components/navigation/nav-menu/nav-menu.types.d.ts +2 -0
- package/dist/components/navigation/nav-menu/nav-menu.types.d.ts.map +1 -1
- package/dist/components/navigation/side-nav/side-nav-item/side-nav-item.js +1 -1
- package/dist/components/navigation/side-nav/side-nav-item/side-nav-item.js.map +1 -1
- package/dist/components/navigation/side-nav/side-nav-item/side-nav-item.types.d.ts.map +1 -1
- package/dist/components/navigation/side-nav/side-nav.d.ts +8 -2
- package/dist/components/navigation/side-nav/side-nav.d.ts.map +1 -1
- package/dist/components/navigation/side-nav/side-nav.js +8 -2
- package/dist/components/navigation/side-nav/side-nav.js.map +1 -1
- package/dist/components/navigation/side-nav/side-nav.types.d.ts +4 -0
- package/dist/components/navigation/side-nav/side-nav.types.d.ts.map +1 -1
- package/dist/components/typography/page-header/page-header.d.ts +6 -0
- package/dist/components/typography/page-header/page-header.d.ts.map +1 -1
- package/dist/components/typography/page-header/page-header.js +6 -0
- package/dist/components/typography/page-header/page-header.js.map +1 -1
- package/dist/components/typography/page-header/page-header.types.d.ts +3 -0
- package/dist/components/typography/page-header/page-header.types.d.ts.map +1 -1
- package/dist/components/typography/typography.d.ts +55 -0
- package/dist/components/typography/typography.d.ts.map +1 -1
- package/dist/components/typography/typography.js +48 -0
- package/dist/components/typography/typography.js.map +1 -1
- package/dist/components/ui/button/button-recipe.d.ts.map +1 -1
- package/dist/components/ui/button/button-recipe.js +1 -0
- package/dist/components/ui/button/button-recipe.js.map +1 -1
- package/dist/components/ui/button/button.d.ts +8 -0
- package/dist/components/ui/button/button.d.ts.map +1 -1
- package/dist/components/ui/button/button.js +8 -0
- package/dist/components/ui/button/button.js.map +1 -1
- package/dist/components/ui/button/button.types.d.ts +7 -0
- package/dist/components/ui/button/button.types.d.ts.map +1 -1
- package/dist/components/ui/card/card.d.ts +8 -0
- package/dist/components/ui/card/card.d.ts.map +1 -1
- package/dist/components/ui/card/card.js +8 -0
- package/dist/components/ui/card/card.js.map +1 -1
- package/dist/components/ui/card/card.types.d.ts +8 -1
- package/dist/components/ui/card/card.types.d.ts.map +1 -1
- package/dist/components/ui/divider/divider.d.ts +6 -0
- package/dist/components/ui/divider/divider.d.ts.map +1 -1
- package/dist/components/ui/divider/divider.js +6 -0
- package/dist/components/ui/divider/divider.js.map +1 -1
- package/dist/components/ui/divider/divider.types.d.ts +3 -0
- package/dist/components/ui/divider/divider.types.d.ts.map +1 -1
- package/dist/components/ui/icon/icon.d.ts +5 -7
- package/dist/components/ui/icon/icon.d.ts.map +1 -1
- package/dist/components/ui/icon/icon.js +5 -7
- package/dist/components/ui/icon/icon.js.map +1 -1
- package/dist/components/ui/icon/icon.types.d.ts +5 -0
- package/dist/components/ui/icon/icon.types.d.ts.map +1 -1
- package/dist/components/ui/icon-button/icon-button.d.ts +8 -0
- package/dist/components/ui/icon-button/icon-button.d.ts.map +1 -1
- package/dist/components/ui/icon-button/icon-button.js +9 -1
- package/dist/components/ui/icon-button/icon-button.js.map +1 -1
- package/dist/components/ui/icon-button/icon-button.types.d.ts +3 -1
- package/dist/components/ui/icon-button/icon-button.types.d.ts.map +1 -1
- package/dist/components/ui/index.d.ts +1 -0
- package/dist/components/ui/index.d.ts.map +1 -1
- package/dist/components/ui/index.js +1 -0
- package/dist/components/ui/index.js.map +1 -1
- package/dist/components/ui/modal/components/modal-content.d.ts +2 -0
- package/dist/components/ui/modal/components/modal-content.d.ts.map +1 -0
- package/dist/components/ui/modal/components/modal-content.js +98 -0
- package/dist/components/ui/modal/components/modal-content.js.map +1 -0
- package/dist/components/ui/modal/index.d.ts +3 -0
- package/dist/components/ui/modal/index.d.ts.map +1 -0
- package/dist/components/ui/modal/index.js +2 -0
- package/dist/components/ui/modal/index.js.map +1 -0
- package/dist/components/ui/modal/modal-context.d.ts +3 -0
- package/dist/components/ui/modal/modal-context.d.ts.map +1 -0
- package/dist/components/ui/modal/modal-context.js +4 -0
- package/dist/components/ui/modal/modal-context.js.map +1 -0
- package/dist/components/ui/modal/modal.d.ts +12 -0
- package/dist/components/ui/modal/modal.d.ts.map +1 -0
- package/dist/components/ui/modal/modal.js +44 -0
- package/dist/components/ui/modal/modal.js.map +1 -0
- package/dist/components/ui/modal/modal.types.d.ts +27 -0
- package/dist/components/ui/modal/modal.types.d.ts.map +1 -0
- package/dist/components/ui/modal/modal.types.js +2 -0
- package/dist/components/ui/modal/modal.types.js.map +1 -0
- package/dist/components/ui/toggle/toggle.d.ts +6 -1
- package/dist/components/ui/toggle/toggle.d.ts.map +1 -1
- package/dist/components/ui/toggle/toggle.js +6 -1
- package/dist/components/ui/toggle/toggle.js.map +1 -1
- package/dist/components/ui/toggle/toggle.types.d.ts +3 -0
- package/dist/components/ui/toggle/toggle.types.d.ts.map +1 -1
- package/dist/styled-system/styles.css +2034 -559
- package/dist/styled-system/tokens/index.mjs +9 -9
- package/dist/styles/panda.css +1 -1877
- package/dist/styles/thread.css +18 -5
- package/dist/theme/default-theme.js +6 -6
- package/dist/theme/default-theme.js.map +1 -1
- package/dist/theme/generate-override-css.d.ts +7 -0
- package/dist/theme/generate-override-css.d.ts.map +1 -0
- package/dist/theme/generate-override-css.js +66 -0
- package/dist/theme/generate-override-css.js.map +1 -0
- package/dist/theme/index.d.ts +2 -0
- package/dist/theme/index.d.ts.map +1 -1
- package/dist/theme/index.js +2 -0
- package/dist/theme/index.js.map +1 -1
- package/dist/theme/theme-mode.d.ts +6 -0
- package/dist/theme/theme-mode.d.ts.map +1 -0
- package/dist/theme/theme-mode.js +17 -0
- package/dist/theme/theme-mode.js.map +1 -0
- package/dist/theme/theme-provider.d.ts +36 -0
- package/dist/theme/theme-provider.d.ts.map +1 -0
- package/dist/theme/theme-provider.js +76 -0
- package/dist/theme/theme-provider.js.map +1 -0
- package/dist/theme/thread-script.d.ts +27 -0
- package/dist/theme/thread-script.d.ts.map +1 -0
- package/dist/theme/thread-script.js +48 -0
- package/dist/theme/thread-script.js.map +1 -0
- package/dist/utils/context/create-component-context/create-component-context.d.ts +2 -0
- package/dist/utils/context/create-component-context/create-component-context.d.ts.map +1 -0
- package/dist/utils/context/create-component-context/create-component-context.js +14 -0
- package/dist/utils/context/create-component-context/create-component-context.js.map +1 -0
- package/dist/utils/context/create-component-context/index.d.ts +2 -0
- package/dist/utils/context/create-component-context/index.d.ts.map +1 -0
- package/dist/utils/context/create-component-context/index.js +2 -0
- package/dist/utils/context/create-component-context/index.js.map +1 -0
- package/dist/utils/context/index.d.ts +2 -0
- package/dist/utils/context/index.d.ts.map +1 -0
- package/dist/utils/context/index.js +2 -0
- package/dist/utils/context/index.js.map +1 -0
- package/dist/utils/{deep-merge → data-manipulation/deep-merge}/deep-merge.d.ts +1 -1
- package/dist/utils/data-manipulation/deep-merge/deep-merge.d.ts.map +1 -0
- package/dist/utils/data-manipulation/deep-merge/deep-merge.js.map +1 -0
- package/dist/utils/data-manipulation/deep-merge/index.d.ts.map +1 -0
- package/dist/utils/data-manipulation/deep-merge/index.js.map +1 -0
- package/dist/utils/data-manipulation/index.d.ts +2 -0
- package/dist/utils/data-manipulation/index.d.ts.map +1 -0
- package/dist/utils/data-manipulation/index.js +2 -0
- package/dist/utils/data-manipulation/index.js.map +1 -0
- package/dist/utils/hooks/index.d.ts +3 -0
- package/dist/utils/hooks/index.d.ts.map +1 -0
- package/dist/utils/hooks/index.js +3 -0
- package/dist/utils/hooks/index.js.map +1 -0
- package/dist/utils/hooks/use-outside-close-click/index.d.ts +2 -0
- package/dist/utils/hooks/use-outside-close-click/index.d.ts.map +1 -0
- package/dist/utils/hooks/use-outside-close-click/index.js +2 -0
- package/dist/utils/hooks/use-outside-close-click/index.js.map +1 -0
- package/dist/utils/hooks/use-outside-close-click/use-outside-close-click.d.ts +3 -0
- package/dist/utils/hooks/use-outside-close-click/use-outside-close-click.d.ts.map +1 -0
- package/dist/utils/hooks/use-outside-close-click/use-outside-close-click.js +16 -0
- package/dist/utils/hooks/use-outside-close-click/use-outside-close-click.js.map +1 -0
- package/dist/utils/hooks/use-pathname/index.d.ts.map +1 -0
- package/dist/utils/hooks/use-pathname/index.js.map +1 -0
- package/dist/utils/hooks/use-pathname/use-pathname.d.ts.map +1 -0
- package/dist/utils/hooks/use-pathname/use-pathname.js.map +1 -0
- package/dist/utils/index.d.ts +5 -8
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +5 -8
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/misc/index.d.ts +2 -0
- package/dist/utils/misc/index.d.ts.map +1 -0
- package/dist/utils/misc/index.js +2 -0
- package/dist/utils/misc/index.js.map +1 -0
- package/dist/utils/misc/is-file-image-type/index.d.ts +2 -0
- package/dist/utils/misc/is-file-image-type/index.d.ts.map +1 -0
- package/dist/utils/misc/is-file-image-type/index.js +2 -0
- package/dist/utils/misc/is-file-image-type/index.js.map +1 -0
- package/dist/utils/misc/is-file-image-type/is-file-image-type.d.ts +2 -0
- package/dist/utils/misc/is-file-image-type/is-file-image-type.d.ts.map +1 -0
- package/dist/utils/misc/is-file-image-type/is-file-image-type.js +4 -0
- package/dist/utils/misc/is-file-image-type/is-file-image-type.js.map +1 -0
- package/dist/utils/{get-colored-text-color → theme-utilities/get-colored-text-color}/get-colored-text-color.d.ts +1 -1
- package/dist/utils/theme-utilities/get-colored-text-color/get-colored-text-color.d.ts.map +1 -0
- package/dist/utils/{get-colored-text-color → theme-utilities/get-colored-text-color}/get-colored-text-color.js +1 -1
- package/dist/utils/theme-utilities/get-colored-text-color/get-colored-text-color.js.map +1 -0
- package/dist/utils/theme-utilities/get-colored-text-color/index.d.ts.map +1 -0
- package/dist/utils/theme-utilities/get-colored-text-color/index.js.map +1 -0
- package/dist/utils/{get-text-color → theme-utilities/get-text-color}/get-text-color.d.ts +1 -1
- package/dist/utils/theme-utilities/get-text-color/get-text-color.d.ts.map +1 -0
- package/dist/utils/{get-text-color → theme-utilities/get-text-color}/get-text-color.js +1 -1
- package/dist/utils/theme-utilities/get-text-color/get-text-color.js.map +1 -0
- package/dist/utils/theme-utilities/get-text-color/index.d.ts.map +1 -0
- package/dist/utils/theme-utilities/get-text-color/index.js.map +1 -0
- package/dist/utils/{get-utility-color → theme-utilities/get-utility-color}/get-utility-color-value.d.ts +1 -1
- package/dist/utils/theme-utilities/get-utility-color/get-utility-color-value.d.ts.map +1 -0
- package/dist/utils/{get-utility-color → theme-utilities/get-utility-color}/get-utility-color-value.js +1 -1
- package/dist/utils/theme-utilities/get-utility-color/get-utility-color-value.js.map +1 -0
- package/dist/utils/theme-utilities/get-utility-color/index.d.ts.map +1 -0
- package/dist/utils/theme-utilities/get-utility-color/index.js.map +1 -0
- package/dist/utils/{get-utility-font-size → theme-utilities/get-utility-font-size}/getUtilityFontSize.d.ts +1 -1
- package/dist/utils/theme-utilities/get-utility-font-size/getUtilityFontSize.d.ts.map +1 -0
- package/dist/utils/theme-utilities/get-utility-font-size/getUtilityFontSize.js.map +1 -0
- package/dist/utils/theme-utilities/get-utility-font-size/index.d.ts.map +1 -0
- package/dist/utils/theme-utilities/get-utility-font-size/index.js.map +1 -0
- package/dist/utils/theme-utilities/get-utility-icon-size/get-utility-icon-size.d.ts +4 -0
- package/dist/utils/theme-utilities/get-utility-icon-size/get-utility-icon-size.d.ts.map +1 -0
- package/dist/utils/theme-utilities/get-utility-icon-size/get-utility-icon-size.js.map +1 -0
- package/dist/utils/theme-utilities/get-utility-icon-size/index.d.ts.map +1 -0
- package/dist/utils/theme-utilities/get-utility-icon-size/index.js.map +1 -0
- package/dist/utils/theme-utilities/get-utility-size-value/get-utility-size-value.d.ts +3 -0
- package/dist/utils/theme-utilities/get-utility-size-value/get-utility-size-value.d.ts.map +1 -0
- package/dist/utils/theme-utilities/get-utility-size-value/get-utility-size-value.js.map +1 -0
- package/dist/utils/theme-utilities/get-utility-size-value/index.d.ts.map +1 -0
- package/dist/utils/theme-utilities/get-utility-size-value/index.js.map +1 -0
- package/dist/utils/theme-utilities/index.d.ts +7 -0
- package/dist/utils/theme-utilities/index.d.ts.map +1 -0
- package/dist/utils/theme-utilities/index.js +7 -0
- package/dist/utils/theme-utilities/index.js.map +1 -0
- package/package.json +5 -5
- package/dist/client/index.d.ts +0 -2
- package/dist/client/index.d.ts.map +0 -1
- package/dist/client/index.js +0 -2
- package/dist/client/index.js.map +0 -1
- package/dist/client/theme-provider/index.d.ts +0 -3
- package/dist/client/theme-provider/index.d.ts.map +0 -1
- package/dist/client/theme-provider/index.js +0 -2
- package/dist/client/theme-provider/index.js.map +0 -1
- package/dist/client/theme-provider/set-theme.d.ts +0 -8
- package/dist/client/theme-provider/set-theme.d.ts.map +0 -1
- package/dist/client/theme-provider/set-theme.js +0 -60
- package/dist/client/theme-provider/set-theme.js.map +0 -1
- package/dist/client/theme-provider/theme-provider.d.ts +0 -21
- package/dist/client/theme-provider/theme-provider.d.ts.map +0 -1
- package/dist/client/theme-provider/theme-provider.js +0 -196
- package/dist/client/theme-provider/theme-provider.js.map +0 -1
- package/dist/client/theme-provider/theme-provider.types.d.ts +0 -13
- package/dist/client/theme-provider/theme-provider.types.d.ts.map +0 -1
- package/dist/client/theme-provider/theme-provider.types.js +0 -2
- package/dist/client/theme-provider/theme-provider.types.js.map +0 -1
- package/dist/utils/deep-merge/deep-merge.d.ts.map +0 -1
- package/dist/utils/deep-merge/deep-merge.js.map +0 -1
- package/dist/utils/deep-merge/index.d.ts.map +0 -1
- package/dist/utils/deep-merge/index.js.map +0 -1
- package/dist/utils/get-colored-text-color/get-colored-text-color.d.ts.map +0 -1
- package/dist/utils/get-colored-text-color/get-colored-text-color.js.map +0 -1
- package/dist/utils/get-colored-text-color/index.d.ts.map +0 -1
- package/dist/utils/get-colored-text-color/index.js.map +0 -1
- package/dist/utils/get-text-color/get-text-color.d.ts.map +0 -1
- package/dist/utils/get-text-color/get-text-color.js.map +0 -1
- package/dist/utils/get-text-color/index.d.ts.map +0 -1
- package/dist/utils/get-text-color/index.js.map +0 -1
- package/dist/utils/get-utility-color/get-utility-color-value.d.ts.map +0 -1
- package/dist/utils/get-utility-color/get-utility-color-value.js.map +0 -1
- package/dist/utils/get-utility-color/index.d.ts.map +0 -1
- package/dist/utils/get-utility-color/index.js.map +0 -1
- package/dist/utils/get-utility-font-size/getUtilityFontSize.d.ts.map +0 -1
- package/dist/utils/get-utility-font-size/getUtilityFontSize.js.map +0 -1
- package/dist/utils/get-utility-font-size/index.d.ts.map +0 -1
- package/dist/utils/get-utility-font-size/index.js.map +0 -1
- package/dist/utils/get-utility-icon-size/get-utility-icon-size.d.ts +0 -4
- package/dist/utils/get-utility-icon-size/get-utility-icon-size.d.ts.map +0 -1
- package/dist/utils/get-utility-icon-size/get-utility-icon-size.js.map +0 -1
- package/dist/utils/get-utility-icon-size/index.d.ts.map +0 -1
- package/dist/utils/get-utility-icon-size/index.js.map +0 -1
- package/dist/utils/get-utility-size-value/get-utility-size-value.d.ts +0 -3
- package/dist/utils/get-utility-size-value/get-utility-size-value.d.ts.map +0 -1
- package/dist/utils/get-utility-size-value/get-utility-size-value.js.map +0 -1
- package/dist/utils/get-utility-size-value/index.d.ts.map +0 -1
- package/dist/utils/get-utility-size-value/index.js.map +0 -1
- package/dist/utils/use-pathname/index.d.ts.map +0 -1
- package/dist/utils/use-pathname/index.js.map +0 -1
- package/dist/utils/use-pathname/use-pathname.d.ts.map +0 -1
- package/dist/utils/use-pathname/use-pathname.js.map +0 -1
- /package/dist/utils/{deep-merge → data-manipulation/deep-merge}/deep-merge.js +0 -0
- /package/dist/utils/{deep-merge → data-manipulation/deep-merge}/index.d.ts +0 -0
- /package/dist/utils/{deep-merge → data-manipulation/deep-merge}/index.js +0 -0
- /package/dist/utils/{use-pathname → hooks/use-pathname}/index.d.ts +0 -0
- /package/dist/utils/{use-pathname → hooks/use-pathname}/index.js +0 -0
- /package/dist/utils/{use-pathname → hooks/use-pathname}/use-pathname.d.ts +0 -0
- /package/dist/utils/{use-pathname → hooks/use-pathname}/use-pathname.js +0 -0
- /package/dist/utils/{get-colored-text-color → theme-utilities/get-colored-text-color}/index.d.ts +0 -0
- /package/dist/utils/{get-colored-text-color → theme-utilities/get-colored-text-color}/index.js +0 -0
- /package/dist/utils/{get-text-color → theme-utilities/get-text-color}/index.d.ts +0 -0
- /package/dist/utils/{get-text-color → theme-utilities/get-text-color}/index.js +0 -0
- /package/dist/utils/{get-utility-color → theme-utilities/get-utility-color}/index.d.ts +0 -0
- /package/dist/utils/{get-utility-color → theme-utilities/get-utility-color}/index.js +0 -0
- /package/dist/utils/{get-utility-font-size → theme-utilities/get-utility-font-size}/getUtilityFontSize.js +0 -0
- /package/dist/utils/{get-utility-font-size → theme-utilities/get-utility-font-size}/index.d.ts +0 -0
- /package/dist/utils/{get-utility-font-size → theme-utilities/get-utility-font-size}/index.js +0 -0
- /package/dist/utils/{get-utility-icon-size → theme-utilities/get-utility-icon-size}/get-utility-icon-size.js +0 -0
- /package/dist/utils/{get-utility-icon-size → theme-utilities/get-utility-icon-size}/index.d.ts +0 -0
- /package/dist/utils/{get-utility-icon-size → theme-utilities/get-utility-icon-size}/index.js +0 -0
- /package/dist/utils/{get-utility-size-value → theme-utilities/get-utility-size-value}/get-utility-size-value.js +0 -0
- /package/dist/utils/{get-utility-size-value → theme-utilities/get-utility-size-value}/index.d.ts +0 -0
- /package/dist/utils/{get-utility-size-value → theme-utilities/get-utility-size-value}/index.js +0 -0
package/dist/styles/thread.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*
|
|
1
|
+
/* Thread Theme Implementation */
|
|
2
2
|
:root {
|
|
3
3
|
/* Generic Theme Elements */
|
|
4
4
|
--thread-primary-light: #5a7d6a;
|
|
@@ -35,9 +35,9 @@
|
|
|
35
35
|
--thread-border-radius-sm: 0.25rem;
|
|
36
36
|
--thread-border-radius-md: 0.375rem;
|
|
37
37
|
--thread-border-radius-lg: 0.5rem;
|
|
38
|
-
--thread-border-size-sm:
|
|
39
|
-
--thread-border-size-md:
|
|
40
|
-
--thread-border-size-lg:
|
|
38
|
+
--thread-border-size-sm: 0.5px;
|
|
39
|
+
--thread-border-size-md: 1px;
|
|
40
|
+
--thread-border-size-lg: 1.5px;
|
|
41
41
|
|
|
42
42
|
/* Light Mode Values */
|
|
43
43
|
--thread-background-light-mode: #ffffff;
|
|
@@ -73,8 +73,21 @@
|
|
|
73
73
|
--thread-text-inverted: var(--thread-text-inverted-light-mode);
|
|
74
74
|
}
|
|
75
75
|
|
|
76
|
+
:root[data-theme='light'] {
|
|
77
|
+
/* Light Mode Color Override */
|
|
78
|
+
--thread-background: var(--thread-background-light-mode);
|
|
79
|
+
--thread-surface: var(--thread-surface-light-mode);
|
|
80
|
+
--thread-elevated: var(--thread-elevated-light-mode);
|
|
81
|
+
--thread-structure: var(--thread-structure-light-mode);
|
|
82
|
+
--thread-text-standard: var(--thread-text-standard-light-mode);
|
|
83
|
+
--thread-text-secondary: var(--thread-text-secondary-light-mode);
|
|
84
|
+
--thread-text-disabled: var(--thread-text-disabled-light-mode);
|
|
85
|
+
--thread-text-accent: var(--thread-text-accent-light-mode);
|
|
86
|
+
--thread-text-inverted: var(--thread-text-inverted-light-mode);
|
|
87
|
+
}
|
|
88
|
+
|
|
76
89
|
:root[data-theme='dark'] {
|
|
77
|
-
/*
|
|
90
|
+
/* Dark Mode Color Override */
|
|
78
91
|
--thread-background: var(--thread-background-dark-mode);
|
|
79
92
|
--thread-surface: var(--thread-surface-dark-mode);
|
|
80
93
|
--thread-elevated: var(--thread-elevated-dark-mode);
|
|
@@ -67,14 +67,14 @@ export const DefaultThreadTheme = {
|
|
|
67
67
|
},
|
|
68
68
|
// Sizing
|
|
69
69
|
borderRadius: {
|
|
70
|
-
sm: '0.25rem',
|
|
71
|
-
md: '0.375rem',
|
|
72
|
-
lg: '0.5rem',
|
|
70
|
+
sm: '0.25rem', // 4px
|
|
71
|
+
md: '0.375rem', // 6px
|
|
72
|
+
lg: '0.5rem', // 8px
|
|
73
73
|
},
|
|
74
74
|
borderSize: {
|
|
75
|
-
sm: '
|
|
76
|
-
md: '
|
|
77
|
-
lg: '
|
|
75
|
+
sm: '0.5px',
|
|
76
|
+
md: '1px',
|
|
77
|
+
lg: '1.5px',
|
|
78
78
|
},
|
|
79
79
|
// Dark Mode Colors
|
|
80
80
|
darkMode: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default-theme.js","sourceRoot":"","sources":["../../src/theme/default-theme.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,kBAAkB,GAAoB;IAClD,gBAAgB;IAChB,OAAO,EAAE;QACR,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,SAAS;KACf;IACD,SAAS,EAAE;QACV,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,SAAS;KACf;IACD,QAAQ,EAAE;QACT,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,SAAS;KACf;IACD,iBAAiB;IACjB,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE;QACL,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,SAAS;KACf;IACD,gBAAgB;IAChB,OAAO,EAAE;QACR,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,SAAS;KACf;IACD,OAAO,EAAE;QACR,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,SAAS;KACf;IACD,KAAK,EAAE;QACN,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,SAAS;KACf;IACD,IAAI,EAAE;QACL,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,SAAS;KACf;IACD,4BAA4B;IAC5B,UAAU,EAAE,SAAS;IACrB,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,SAAS;IACnB,SAAS,EAAE,SAAS;IACpB,yBAAyB;IACzB,IAAI,EAAE;QACL,QAAQ,EAAE,SAAS;QACnB,SAAS,EAAE,SAAS;QACpB,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,SAAS,EAAE,2BAA2B;QAC9C,QAAQ,EAAE,SAAS,EAAE,sCAAsC;KAC3D;IACD,YAAY;IACZ,WAAW,EAAE;QACZ,EAAE,EAAE,GAAG;QACP,EAAE,EAAE,KAAK;QACT,EAAE,EAAE,MAAM;QACV,EAAE,EAAE,MAAM;QACV,GAAG,EAAE,MAAM;KACX;IACD,SAAS;IACT,YAAY,EAAE;QACb,EAAE,EAAE,SAAS;
|
|
1
|
+
{"version":3,"file":"default-theme.js","sourceRoot":"","sources":["../../src/theme/default-theme.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,kBAAkB,GAAoB;IAClD,gBAAgB;IAChB,OAAO,EAAE;QACR,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,SAAS;KACf;IACD,SAAS,EAAE;QACV,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,SAAS;KACf;IACD,QAAQ,EAAE;QACT,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,SAAS;KACf;IACD,iBAAiB;IACjB,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE;QACL,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,SAAS;KACf;IACD,gBAAgB;IAChB,OAAO,EAAE;QACR,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,SAAS;KACf;IACD,OAAO,EAAE;QACR,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,SAAS;KACf;IACD,KAAK,EAAE;QACN,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,SAAS;KACf;IACD,IAAI,EAAE;QACL,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,SAAS;KACf;IACD,4BAA4B;IAC5B,UAAU,EAAE,SAAS;IACrB,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,SAAS;IACnB,SAAS,EAAE,SAAS;IACpB,yBAAyB;IACzB,IAAI,EAAE;QACL,QAAQ,EAAE,SAAS;QACnB,SAAS,EAAE,SAAS;QACpB,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,SAAS,EAAE,2BAA2B;QAC9C,QAAQ,EAAE,SAAS,EAAE,sCAAsC;KAC3D;IACD,YAAY;IACZ,WAAW,EAAE;QACZ,EAAE,EAAE,GAAG;QACP,EAAE,EAAE,KAAK;QACT,EAAE,EAAE,MAAM;QACV,EAAE,EAAE,MAAM;QACV,GAAG,EAAE,MAAM;KACX;IACD,SAAS;IACT,YAAY,EAAE;QACb,EAAE,EAAE,SAAS,EAAE,MAAM;QACrB,EAAE,EAAE,UAAU,EAAE,MAAM;QACtB,EAAE,EAAE,QAAQ,EAAE,MAAM;KACpB;IACD,UAAU,EAAE;QACX,EAAE,EAAE,OAAO;QACX,EAAE,EAAE,KAAK;QACT,EAAE,EAAE,OAAO;KACX;IACD,mBAAmB;IACnB,QAAQ,EAAE;QACT,UAAU,EAAE,SAAS;QACrB,OAAO,EAAE,SAAS;QAClB,QAAQ,EAAE,SAAS;QACnB,SAAS,EAAE,SAAS;QACpB,IAAI,EAAE;YACL,QAAQ,EAAE,SAAS;YACnB,SAAS,EAAE,SAAS;YACpB,QAAQ,EAAE,SAAS;YACnB,MAAM,EAAE,SAAS,EAAE,2BAA2B;YAC9C,QAAQ,EAAE,SAAS,EAAE,uCAAuC;SAC5D;KACD;CACD,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ThemeConfig } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Generates a CSS :root block containing only the variable declarations
|
|
4
|
+
* for values present in the provided ThemeConfig override.
|
|
5
|
+
*/
|
|
6
|
+
export declare function generateOverrideCss(overrides: ThemeConfig): string;
|
|
7
|
+
//# sourceMappingURL=generate-override-css.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-override-css.d.ts","sourceRoot":"","sources":["../../src/theme/generate-override-css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,WAAW,EAAE,MAAM,SAAS,CAAC;AAOzD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,WAAW,GAAG,MAAM,CA+ClE"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { PrefixedDarkModeVariables, PrefixedLightModeVariables, ThemeCssVariableNames, } from '../theme/css-name-configurations/theme-css-names';
|
|
2
|
+
/**
|
|
3
|
+
* Generates a CSS :root block containing only the variable declarations
|
|
4
|
+
* for values present in the provided ThemeConfig override.
|
|
5
|
+
*/
|
|
6
|
+
export function generateOverrideCss(overrides) {
|
|
7
|
+
const vars = [];
|
|
8
|
+
const lightModeKeySet = new Set(Object.keys(PrefixedLightModeVariables));
|
|
9
|
+
const overrideKeys = Object.keys(overrides);
|
|
10
|
+
overrideKeys.forEach((key) => {
|
|
11
|
+
if (key === 'darkMode')
|
|
12
|
+
return; // handled separately below
|
|
13
|
+
const overrideValue = overrides[key];
|
|
14
|
+
if (overrideValue === undefined)
|
|
15
|
+
return;
|
|
16
|
+
if (lightModeKeySet.has(key)) {
|
|
17
|
+
// ── Light mode surface / text keys ─────────────────────────────────
|
|
18
|
+
const variableName = PrefixedLightModeVariables[key];
|
|
19
|
+
collectVars(variableName, overrideValue, vars);
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
// ── Generic keys (palette, breakpoints, sizing, etc.) ──────────────
|
|
23
|
+
// Cast to keyof Theme — darkMode and light mode keys are already
|
|
24
|
+
// excluded above, so the remaining keys are all valid Theme keys
|
|
25
|
+
const variableName = ThemeCssVariableNames[key];
|
|
26
|
+
if (!variableName)
|
|
27
|
+
return;
|
|
28
|
+
collectVars(variableName, overrideValue, vars);
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
// ── Dark mode keys ──────────────────────────────────────────────────────
|
|
32
|
+
if (overrides.darkMode) {
|
|
33
|
+
const darkModeKeys = Object.keys(overrides.darkMode);
|
|
34
|
+
darkModeKeys.forEach((key) => {
|
|
35
|
+
const overrideValue = overrides.darkMode[key];
|
|
36
|
+
if (overrideValue === undefined)
|
|
37
|
+
return;
|
|
38
|
+
const variableName = PrefixedDarkModeVariables[key];
|
|
39
|
+
if (!variableName)
|
|
40
|
+
return;
|
|
41
|
+
collectVars(variableName, overrideValue, vars);
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
if (vars.length === 0)
|
|
45
|
+
return '';
|
|
46
|
+
return `:root {\n${vars.join('\n')}\n}`;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Recursively collects CSS variable declarations.
|
|
50
|
+
*/
|
|
51
|
+
function collectVars(variableNameOrMap, value, acc) {
|
|
52
|
+
if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
|
|
53
|
+
// Nested object — recurse into each provided key
|
|
54
|
+
Object.keys(value).forEach((nestedKey) => {
|
|
55
|
+
const nestedVariableName = variableNameOrMap[nestedKey];
|
|
56
|
+
const nestedValue = value[nestedKey];
|
|
57
|
+
if (nestedVariableName !== undefined && nestedValue !== undefined) {
|
|
58
|
+
collectVars(nestedVariableName, nestedValue, acc);
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
else if (typeof value === 'string' && typeof variableNameOrMap === 'string') {
|
|
63
|
+
acc.push(` ${variableNameOrMap}: ${value};`);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=generate-override-css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-override-css.js","sourceRoot":"","sources":["../../src/theme/generate-override-css.ts"],"names":[],"mappings":"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"}
|
package/dist/theme/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/theme/index.js
CHANGED
package/dist/theme/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export type ThreadMode = 'light' | 'dark' | 'system';
|
|
2
|
+
export declare const THREAD_MODE_STORAGE_KEY: "thread-mode";
|
|
3
|
+
export declare const VALID_MODES: ThreadMode[];
|
|
4
|
+
export declare function isValidMode(value: unknown): value is ThreadMode;
|
|
5
|
+
export declare function applyModeToDocument(mode: ThreadMode): void;
|
|
6
|
+
//# sourceMappingURL=theme-mode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-mode.d.ts","sourceRoot":"","sources":["../../src/theme/theme-mode.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;AAErD,eAAO,MAAM,uBAAuB,EAAG,aAAsB,CAAC;AAE9D,eAAO,MAAM,WAAW,EAAE,UAAU,EAAgC,CAAC;AAErE,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAE/D;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAQ1D"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export const THREAD_MODE_STORAGE_KEY = 'thread-mode';
|
|
2
|
+
export const VALID_MODES = ['light', 'dark', 'system'];
|
|
3
|
+
export function isValidMode(value) {
|
|
4
|
+
return typeof value === 'string' && VALID_MODES.includes(value);
|
|
5
|
+
}
|
|
6
|
+
export function applyModeToDocument(mode) {
|
|
7
|
+
if (mode === 'dark') {
|
|
8
|
+
document.documentElement.setAttribute('data-theme', 'dark');
|
|
9
|
+
}
|
|
10
|
+
else if (mode === 'light') {
|
|
11
|
+
document.documentElement.setAttribute('data-theme', 'light');
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
document.documentElement.removeAttribute('data-theme');
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=theme-mode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-mode.js","sourceRoot":"","sources":["../../src/theme/theme-mode.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,uBAAuB,GAAG,aAAsB,CAAC;AAE9D,MAAM,CAAC,MAAM,WAAW,GAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AAErE,MAAM,UAAU,WAAW,CAAC,KAAc;IACzC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,WAAW,CAAC,QAAQ,CAAC,KAAmB,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAgB;IACnD,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACrB,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAC7D,CAAC;SAAM,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QAC7B,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAC9D,CAAC;SAAM,CAAC;QACP,QAAQ,CAAC,eAAe,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;IACxD,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ThemeConfig } from '../types';
|
|
3
|
+
import { ThreadMode } from './theme-mode';
|
|
4
|
+
interface ThreadContextValue {
|
|
5
|
+
mode: ThreadMode;
|
|
6
|
+
setMode: (mode: ThreadMode) => void;
|
|
7
|
+
toggleMode: () => void;
|
|
8
|
+
}
|
|
9
|
+
interface ThemeProviderProps {
|
|
10
|
+
children: React.ReactNode;
|
|
11
|
+
theme?: ThemeConfig;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Provides custom Thread theme configuration.
|
|
15
|
+
* - Accepts `ThemeConfig` partial object to override default ThreadTheme
|
|
16
|
+
* - Provides theme-mode state to component tree
|
|
17
|
+
* - Syncs with the `data-theme` attribute set by `ThreadScript` on mount.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* <ThemeProvider theme={customTheme}>
|
|
21
|
+
* <App />
|
|
22
|
+
* </ThemeProvider>
|
|
23
|
+
*/
|
|
24
|
+
export declare function ThemeProvider({ children, theme }: ThemeProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
25
|
+
/**
|
|
26
|
+
* Returns the current theme mode and controls for updating it.
|
|
27
|
+
* Must be used within a `<ThemeProvider>`.
|
|
28
|
+
*
|
|
29
|
+
* @throws If used outside of `<ThemeProvider>`
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* const { mode, setMode, toggleMode } = useThemeMode();
|
|
33
|
+
*/
|
|
34
|
+
export declare const useThemeMode: () => ThreadContextValue;
|
|
35
|
+
export {};
|
|
36
|
+
//# sourceMappingURL=theme-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-provider.d.ts","sourceRoot":"","sources":["../../src/theme/theme-provider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA+E,MAAM,OAAO,CAAC;AACpG,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,OAAO,EAAuB,UAAU,EAA2B,MAAM,cAAc,CAAC;AAIxF,UAAU,kBAAkB;IAC3B,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;IACpC,UAAU,EAAE,MAAM,IAAI,CAAC;CACvB;AAMD,UAAU,kBAAkB;IAC3B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,WAAW,CAAC;CACpB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,kBAAkB,2CA2DpE;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,QAAO,kBAM/B,CAAC"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react';
|
|
4
|
+
import { generateOverrideCss } from './generate-override-css';
|
|
5
|
+
import { applyModeToDocument, THREAD_MODE_STORAGE_KEY } from './theme-mode';
|
|
6
|
+
const ThreadContext = createContext(null);
|
|
7
|
+
/**
|
|
8
|
+
* Provides custom Thread theme configuration.
|
|
9
|
+
* - Accepts `ThemeConfig` partial object to override default ThreadTheme
|
|
10
|
+
* - Provides theme-mode state to component tree
|
|
11
|
+
* - Syncs with the `data-theme` attribute set by `ThreadScript` on mount.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* <ThemeProvider theme={customTheme}>
|
|
15
|
+
* <App />
|
|
16
|
+
* </ThemeProvider>
|
|
17
|
+
*/
|
|
18
|
+
export function ThemeProvider({ children, theme }) {
|
|
19
|
+
const [mode, setModeState] = useState('system'); // Init as 'system' — sync to applied value on mount
|
|
20
|
+
// On mount: read the data-theme attribute ThreadScript already set on <html>.
|
|
21
|
+
useEffect(() => {
|
|
22
|
+
const attr = document.documentElement.getAttribute('data-theme');
|
|
23
|
+
if (attr === 'dark' || attr === 'light') {
|
|
24
|
+
setModeState(attr);
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
// No attribute -> ThreadScript left it unset — 'system' mode
|
|
28
|
+
setModeState('system');
|
|
29
|
+
}
|
|
30
|
+
}, []);
|
|
31
|
+
const setMode = useCallback((newMode) => {
|
|
32
|
+
setModeState(newMode);
|
|
33
|
+
try {
|
|
34
|
+
localStorage.setItem(THREAD_MODE_STORAGE_KEY, newMode);
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
// localStorage unavailable — mode still applies for this session
|
|
38
|
+
}
|
|
39
|
+
applyModeToDocument(newMode);
|
|
40
|
+
}, []);
|
|
41
|
+
const toggleMode = useCallback(() => {
|
|
42
|
+
// If currently 'system', resolve the actual rendered mode first
|
|
43
|
+
// then toggle to the opposite explicit mode
|
|
44
|
+
const resolvedCurrent = mode === 'system'
|
|
45
|
+
? window.matchMedia('(prefers-color-scheme: dark)').matches
|
|
46
|
+
? 'dark'
|
|
47
|
+
: 'light'
|
|
48
|
+
: mode;
|
|
49
|
+
setMode(resolvedCurrent === 'dark' ? 'light' : 'dark');
|
|
50
|
+
}, [mode, setMode]);
|
|
51
|
+
// Only re-computed when the theme prop reference changes.
|
|
52
|
+
const overrideCss = useMemo(() => {
|
|
53
|
+
if (!theme)
|
|
54
|
+
return null;
|
|
55
|
+
return generateOverrideCss(theme);
|
|
56
|
+
}, [theme]);
|
|
57
|
+
const contextValue = useMemo(() => ({ mode, setMode, toggleMode }), [mode, setMode, toggleMode]);
|
|
58
|
+
return (_jsxs(ThreadContext.Provider, { value: contextValue, children: [overrideCss && (_jsx("style", { id: "thread-theme-overrides", dangerouslySetInnerHTML: { __html: overrideCss } })), children] }));
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Returns the current theme mode and controls for updating it.
|
|
62
|
+
* Must be used within a `<ThemeProvider>`.
|
|
63
|
+
*
|
|
64
|
+
* @throws If used outside of `<ThemeProvider>`
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* const { mode, setMode, toggleMode } = useThemeMode();
|
|
68
|
+
*/
|
|
69
|
+
export const useThemeMode = () => {
|
|
70
|
+
const context = useContext(ThreadContext);
|
|
71
|
+
if (!context) {
|
|
72
|
+
throw new Error('useThemeMode must be used within a <ThemeProvider>');
|
|
73
|
+
}
|
|
74
|
+
return context;
|
|
75
|
+
};
|
|
76
|
+
//# sourceMappingURL=theme-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-provider.js","sourceRoot":"","sources":["../../src/theme/theme-provider.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAc,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEpG,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAc,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAUxF,MAAM,aAAa,GAAG,aAAa,CAA4B,IAAI,CAAC,CAAC;AASrE;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAsB;IACpE,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAa,QAAQ,CAAC,CAAC,CAAC,oDAAoD;IAEjH,8EAA8E;IAC9E,SAAS,CAAC,GAAG,EAAE;QACd,MAAM,IAAI,GAAG,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QACjE,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACzC,YAAY,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;aAAM,CAAC;YACP,6DAA6D;YAC7D,YAAY,CAAC,QAAQ,CAAC,CAAC;QACxB,CAAC;IACF,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,OAAmB,EAAE,EAAE;QACnD,YAAY,CAAC,OAAO,CAAC,CAAC;QACtB,IAAI,CAAC;YACJ,YAAY,CAAC,OAAO,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;QACxD,CAAC;QAAC,MAAM,CAAC;YACR,iEAAiE;QAClE,CAAC;QACD,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;QACnC,gEAAgE;QAChE,4CAA4C;QAC5C,MAAM,eAAe,GACpB,IAAI,KAAK,QAAQ;YAChB,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC,OAAO;gBAC1D,CAAC,CAAC,MAAM;gBACR,CAAC,CAAC,OAAO;YACV,CAAC,CAAC,IAAI,CAAC;QAET,OAAO,CAAC,eAAe,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACxD,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAEpB,0DAA0D;IAC1D,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE;QAChC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QACxB,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,MAAM,YAAY,GAAG,OAAO,CAC3B,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,EACrC,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,CAC3B,CAAC;IAEF,OAAO,CACN,MAAC,aAAa,CAAC,QAAQ,IAAC,KAAK,EAAE,YAAY,aACzC,WAAW,IAAI,CACf,gBACC,EAAE,EAAC,wBAAwB,EAC3B,uBAAuB,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,GAC/C,CACF,EACA,QAAQ,IACe,CACzB,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,GAAuB,EAAE;IACpD,MAAM,OAAO,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;IAC1C,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,OAAO,CAAC;AAChB,CAAC,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ThreadMode } from './theme-mode';
|
|
2
|
+
export type { ThreadMode };
|
|
3
|
+
interface ThreadScriptProps {
|
|
4
|
+
defaultMode?: ThreadMode;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Inline script to prevent flash of wrong-mode content on first paint.
|
|
8
|
+
* Reads the user's saved mode from localStorage and sets `data-theme` on `:root`
|
|
9
|
+
* before React hydrates. For `'system'` mode, no attribute is set and the
|
|
10
|
+
* `prefers-color-scheme` media query handles it natively.
|
|
11
|
+
*
|
|
12
|
+
* Add `suppressHydrationWarning` to your `<html>` tag to suppress the expected hydration mismatch.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* // Next.js App Router (layout.tsx)
|
|
16
|
+
* <html suppressHydrationWarning>
|
|
17
|
+
* <head>
|
|
18
|
+
* <ThreadScript defaultMode="system" />
|
|
19
|
+
* </head>
|
|
20
|
+
* <body>{children}</body>
|
|
21
|
+
* </html>
|
|
22
|
+
* @example
|
|
23
|
+
* // Next.js Pages Router (_document.tsx)
|
|
24
|
+
* <Head><ThreadScript defaultMode="system" /></Head>
|
|
25
|
+
*/
|
|
26
|
+
export declare function ThreadScript({ defaultMode }: ThreadScriptProps): import("react/jsx-runtime").JSX.Element;
|
|
27
|
+
//# sourceMappingURL=thread-script.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"thread-script.d.ts","sourceRoot":"","sources":["../../src/theme/thread-script.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAwC,MAAM,cAAc,CAAC;AAEhF,YAAY,EAAE,UAAU,EAAE,CAAC;AAE3B,UAAU,iBAAiB;IAC1B,WAAW,CAAC,EAAE,UAAU,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,YAAY,CAAC,EAAE,WAAsB,EAAE,EAAE,iBAAiB,2CAIzE"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { THREAD_MODE_STORAGE_KEY, VALID_MODES } from './theme-mode';
|
|
3
|
+
/**
|
|
4
|
+
* Inline script to prevent flash of wrong-mode content on first paint.
|
|
5
|
+
* Reads the user's saved mode from localStorage and sets `data-theme` on `:root`
|
|
6
|
+
* before React hydrates. For `'system'` mode, no attribute is set and the
|
|
7
|
+
* `prefers-color-scheme` media query handles it natively.
|
|
8
|
+
*
|
|
9
|
+
* Add `suppressHydrationWarning` to your `<html>` tag to suppress the expected hydration mismatch.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* // Next.js App Router (layout.tsx)
|
|
13
|
+
* <html suppressHydrationWarning>
|
|
14
|
+
* <head>
|
|
15
|
+
* <ThreadScript defaultMode="system" />
|
|
16
|
+
* </head>
|
|
17
|
+
* <body>{children}</body>
|
|
18
|
+
* </html>
|
|
19
|
+
* @example
|
|
20
|
+
* // Next.js Pages Router (_document.tsx)
|
|
21
|
+
* <Head><ThreadScript defaultMode="system" /></Head>
|
|
22
|
+
*/
|
|
23
|
+
export function ThreadScript({ defaultMode = 'system' }) {
|
|
24
|
+
const scriptContent = buildScriptContent(defaultMode);
|
|
25
|
+
return _jsx("script", { dangerouslySetInnerHTML: { __html: scriptContent } });
|
|
26
|
+
}
|
|
27
|
+
const buildScriptContent = (defaultMode) => {
|
|
28
|
+
// Serialized as an IIFE so it doesn't pollute the global scope.
|
|
29
|
+
// defaultMode and the storage key are interpolated at render time on the server.
|
|
30
|
+
return `(function(){
|
|
31
|
+
try {
|
|
32
|
+
var stored = localStorage.getItem('${THREAD_MODE_STORAGE_KEY}');
|
|
33
|
+
var validModes = ${JSON.stringify(VALID_MODES)};
|
|
34
|
+
var mode = validModes.indexOf(stored) !== -1 ? stored : '${defaultMode}';
|
|
35
|
+
|
|
36
|
+
if (mode === 'dark') {
|
|
37
|
+
document.documentElement.setAttribute('data-theme', 'dark');
|
|
38
|
+
} else if (mode === 'light') {
|
|
39
|
+
document.documentElement.setAttribute('data-theme', 'light');
|
|
40
|
+
} else {
|
|
41
|
+
document.documentElement.removeAttribute('data-theme');
|
|
42
|
+
}
|
|
43
|
+
} catch (e) {
|
|
44
|
+
// localStorage unavailable — CSS default (light mode) applies
|
|
45
|
+
}
|
|
46
|
+
})();`;
|
|
47
|
+
};
|
|
48
|
+
//# sourceMappingURL=thread-script.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"thread-script.js","sourceRoot":"","sources":["../../src/theme/thread-script.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAc,uBAAuB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAQhF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,YAAY,CAAC,EAAE,WAAW,GAAG,QAAQ,EAAqB;IACzE,MAAM,aAAa,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAEtD,OAAO,iBAAQ,uBAAuB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,GAAI,CAAC;AACvE,CAAC;AAED,MAAM,kBAAkB,GAAG,CAAC,WAAuB,EAAU,EAAE;IAC9D,gEAAgE;IAChE,iFAAiF;IACjF,OAAO;;yCAEiC,uBAAuB;uBACzC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;+DACa,WAAW;;;;;;;;;;;;MAYpE,CAAC;AACP,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-component-context.d.ts","sourceRoot":"","sources":["../../../../src/utils/context/create-component-context/create-component-context.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,sBAAsB,GAAI,CAAC,EAAE,aAAa,MAAM,6EAW5D,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { createContext, useContext } from 'react';
|
|
3
|
+
export const createComponentContext = (displayName) => {
|
|
4
|
+
const Context = createContext(undefined);
|
|
5
|
+
Context.displayName = displayName;
|
|
6
|
+
function useComponentContext() {
|
|
7
|
+
const ctx = useContext(Context);
|
|
8
|
+
if (!ctx)
|
|
9
|
+
throw new Error(`use${displayName} must be used within a ${displayName}Provider`);
|
|
10
|
+
return ctx;
|
|
11
|
+
}
|
|
12
|
+
return [Context.Provider, useComponentContext];
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=create-component-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-component-context.js","sourceRoot":"","sources":["../../../../src/utils/context/create-component-context/create-component-context.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AACb,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAElD,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAI,WAAmB,EAAE,EAAE;IAChE,MAAM,OAAO,GAAG,aAAa,CAAgB,SAAS,CAAC,CAAC;IACxD,OAAO,CAAC,WAAW,GAAG,WAAW,CAAC;IAElC,SAAS,mBAAmB;QAC3B,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,MAAM,WAAW,0BAA0B,WAAW,UAAU,CAAC,CAAC;QAC5F,OAAO,GAAG,CAAC;IACZ,CAAC;IAED,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,mBAAmB,CAAU,CAAC;AACzD,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/context/create-component-context/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/context/create-component-context/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/context/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/context/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deep-merge.d.ts","sourceRoot":"","sources":["../../../../src/utils/data-manipulation/deep-merge/deep-merge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,QAAQ,CAAC,EAAE,QAAQ,WAAW,CAAC,CAAC,CAAC,KAAG,CA2B5F,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deep-merge.js","sourceRoot":"","sources":["../../../../src/utils/data-manipulation/deep-merge/deep-merge.ts"],"names":[],"mappings":"AACA,sDAAsD;AACtD,MAAM,CAAC,MAAM,SAAS,GAAG,CAAgC,MAAS,EAAE,MAAsB,EAAK,EAAE;IAChG,MAAM,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;IAE7B,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QAC1B,IAAI,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC;YAAE,SAAS;QAE/B,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAEhC,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YACvD,SAAS;QACV,CAAC;QAED,IACC,WAAW;YACX,OAAO,WAAW,KAAK,QAAQ;YAC/B,OAAO,WAAW,KAAK,QAAQ;YAC/B,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;YAC3B,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAC1B,CAAC;YACF,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,WAAW,EAAE,WAAW,CAAkB,CAAC;QACpE,CAAC;aAAM,CAAC;YACP,MAAM,CAAC,GAAG,CAAC,GAAG,WAA4B,CAAC;QAC5C,CAAC;IACF,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/data-manipulation/deep-merge/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/data-manipulation/deep-merge/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/data-manipulation/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/data-manipulation/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/hooks/use-outside-close-click/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/hooks/use-outside-close-click/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-outside-close-click.d.ts","sourceRoot":"","sources":["../../../../src/utils/hooks/use-outside-close-click/use-outside-close-click.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,SAAS,EAAE,MAAM,OAAO,CAAC;AAE7C,eAAO,MAAM,oBAAoB,GAChC,SAAS,OAAO,EAChB,KAAK,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,EAClC,QAAQ,OAAO,EACf,SAAS,MAAM,IAAI,SAcnB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { useEffect } from 'react';
|
|
3
|
+
export const useOutsideCloseClick = (enabled, ref, isOpen, onClose) => {
|
|
4
|
+
useEffect(() => {
|
|
5
|
+
if (!isOpen || !enabled)
|
|
6
|
+
return;
|
|
7
|
+
const handleClickOutside = (e) => {
|
|
8
|
+
if (ref.current && !ref.current.contains(e.target)) {
|
|
9
|
+
onClose();
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
document.addEventListener('mousedown', handleClickOutside);
|
|
13
|
+
return () => document.removeEventListener('mousedown', handleClickOutside);
|
|
14
|
+
}, [isOpen, ref, onClose]);
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=use-outside-close-click.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-outside-close-click.js","sourceRoot":"","sources":["../../../../src/utils/hooks/use-outside-close-click/use-outside-close-click.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AACb,OAAO,EAAE,SAAS,EAAa,MAAM,OAAO,CAAC;AAE7C,MAAM,CAAC,MAAM,oBAAoB,GAAG,CACnC,OAAgB,EAChB,GAAkC,EAClC,MAAe,EACf,OAAmB,EAClB,EAAE;IACH,SAAS,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO;YAAE,OAAO;QAEhC,MAAM,kBAAkB,GAAG,CAAC,CAAa,EAAE,EAAE;YAC5C,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAc,CAAC,EAAE,CAAC;gBAC5D,OAAO,EAAE,CAAC;YACX,CAAC;QACF,CAAC,CAAC;QAEF,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;QAC3D,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;IAC5E,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;AAC5B,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/hooks/use-pathname/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/hooks/use-pathname/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-pathname.d.ts","sourceRoot":"","sources":["../../../../src/utils/hooks/use-pathname/use-pathname.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,WAAW,cAgBvB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-pathname.js","sourceRoot":"","sources":["../../../../src/utils/hooks/use-pathname/use-pathname.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AACb,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE5C,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,EAAE;IAC/B,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,qBAAqB;IAEnE,SAAS,CAAC,GAAG,EAAE;QACd,mCAAmC;QACnC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAEtC,MAAM,oBAAoB,GAAG,GAAG,EAAE;YACjC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC,CAAC;QAEF,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;QAC1D,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;IAC3E,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,QAAQ,CAAC;AACjB,CAAC,CAAC"}
|