@uni-design-system/uni-react 0.0.19 → 2.0.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/.storybook/main.ts +26 -0
- package/.storybook/manager.ts +13 -0
- package/.storybook/preview.ts +21 -0
- package/.turbo/turbo-build.log +12 -0
- package/CHANGELOG.md +23 -0
- package/dist/{cjs/components → components}/button/button.component.d.ts +2 -1
- package/dist/components/button/button.component.d.ts.map +1 -0
- package/dist/components/button/button.stories.d.ts +73 -0
- package/dist/components/button/button.stories.d.ts.map +1 -0
- package/dist/{esm/components → components}/button/index.d.ts +1 -0
- package/dist/components/button/index.d.ts.map +1 -0
- package/dist/{cjs/components → components}/card/card.component.d.ts +2 -1
- package/dist/components/card/card.component.d.ts.map +1 -0
- package/dist/components/card/card.stories.d.ts +11 -0
- package/dist/components/card/card.stories.d.ts.map +1 -0
- package/dist/components/card/index.d.ts +2 -0
- package/dist/components/card/index.d.ts.map +1 -0
- package/dist/{cjs/components → components}/draggable/SortableList/components/DragHandle/dragHandle.component.d.ts +1 -1
- package/dist/components/draggable/SortableList/components/DragHandle/dragHandle.component.d.ts.map +1 -0
- package/dist/{esm/components → components}/draggable/SortableList/components/DragHandle/index.d.ts +1 -0
- package/dist/components/draggable/SortableList/components/DragHandle/index.d.ts.map +1 -0
- package/dist/{esm/components → components}/draggable/SortableList/components/SortableItem/index.d.ts +1 -0
- package/dist/components/draggable/SortableList/components/SortableItem/index.d.ts.map +1 -0
- package/dist/{esm/components → components}/draggable/SortableList/components/SortableItem/sortableItem.component.d.ts +3 -2
- package/dist/components/draggable/SortableList/components/SortableItem/sortableItem.component.d.ts.map +1 -0
- package/dist/{cjs/components → components}/draggable/SortableList/components/SortableItem/sortableItem.context.d.ts +2 -2
- package/dist/components/draggable/SortableList/components/SortableItem/sortableItem.context.d.ts.map +1 -0
- package/dist/{esm/components → components}/draggable/SortableList/components/SortableOverlay/index.d.ts +1 -0
- package/dist/components/draggable/SortableList/components/SortableOverlay/index.d.ts.map +1 -0
- package/dist/{esm/components → components}/draggable/SortableList/components/SortableOverlay/sortableOverlay.component.d.ts +2 -1
- package/dist/components/draggable/SortableList/components/SortableOverlay/sortableOverlay.component.d.ts.map +1 -0
- package/dist/{esm/components → components}/draggable/SortableList/components/index.d.ts +1 -0
- package/dist/components/draggable/SortableList/components/index.d.ts.map +1 -0
- package/dist/{esm/components → components}/draggable/SortableList/index.d.ts +1 -0
- package/dist/components/draggable/SortableList/index.d.ts.map +1 -0
- package/dist/{cjs/components → components}/draggable/SortableList/mockData.d.ts +1 -0
- package/dist/components/draggable/SortableList/mockData.d.ts.map +1 -0
- package/dist/{cjs/components → components}/draggable/SortableList/sortableList.component.d.ts +3 -3
- package/dist/components/draggable/SortableList/sortableList.component.d.ts.map +1 -0
- package/dist/components/draggable/SortableList/sortableList.stories.d.ts +8 -0
- package/dist/components/draggable/SortableList/sortableList.stories.d.ts.map +1 -0
- package/dist/components/draggable/index.d.ts +2 -0
- package/dist/components/draggable/index.d.ts.map +1 -0
- package/dist/{cjs/components → components}/draggable/utilities/createRange.d.ts +1 -0
- package/dist/components/draggable/utilities/createRange.d.ts.map +1 -0
- package/dist/{esm/components → components}/draggable/utilities/index.d.ts +1 -0
- package/dist/components/draggable/utilities/index.d.ts.map +1 -0
- package/dist/components/forms/index.d.ts +2 -0
- package/dist/components/forms/index.d.ts.map +1 -0
- package/dist/{esm/components → components}/forms/text-input/index.d.ts +1 -0
- package/dist/components/forms/text-input/index.d.ts.map +1 -0
- package/dist/{cjs/components → components}/forms/text-input/text-input.component.d.ts +2 -2
- package/dist/components/forms/text-input/text-input.component.d.ts.map +1 -0
- package/dist/{cjs/components → components}/forms/utils/validations.d.ts +1 -0
- package/dist/components/forms/utils/validations.d.ts.map +1 -0
- package/dist/{esm/components → components}/grainy-gradient-background/grainy-gradient-background.component.d.ts +2 -1
- package/dist/components/grainy-gradient-background/grainy-gradient-background.component.d.ts.map +1 -0
- package/dist/components/grainy-gradient-background/grainy-gradient-background.component.stories.d.ts +91 -0
- package/dist/components/grainy-gradient-background/grainy-gradient-background.component.stories.d.ts.map +1 -0
- package/dist/{esm/components → components}/icon-text-row/icon-text-row.component.d.ts +1 -0
- package/dist/components/icon-text-row/icon-text-row.component.d.ts.map +1 -0
- package/dist/components/icon-text-row/icon-text-row.stories.d.ts +11 -0
- package/dist/components/icon-text-row/icon-text-row.stories.d.ts.map +1 -0
- package/dist/{esm/components → components}/icon-text-row/index.d.ts +1 -0
- package/dist/components/icon-text-row/index.d.ts.map +1 -0
- package/dist/{esm/components → components}/index.d.ts +1 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/{esm/components → components}/modal/index.d.ts +1 -0
- package/dist/components/modal/index.d.ts.map +1 -0
- package/dist/{cjs/components → components}/modal/modal-close-button.component.d.ts +1 -0
- package/dist/components/modal/modal-close-button.component.d.ts.map +1 -0
- package/dist/{cjs/components → components}/modal/modal.component.d.ts +3 -2
- package/dist/components/modal/modal.component.d.ts.map +1 -0
- package/dist/components/modal/modal.stories.d.ts +8 -0
- package/dist/components/modal/modal.stories.d.ts.map +1 -0
- package/dist/{esm/components → components}/switch/index.d.ts +1 -0
- package/dist/components/switch/index.d.ts.map +1 -0
- package/dist/{esm/components → components}/switch/switch.component.d.ts +2 -2
- package/dist/components/switch/switch.component.d.ts.map +1 -0
- package/dist/components/switch/switch.config.d.ts +6 -0
- package/dist/components/switch/switch.config.d.ts.map +1 -0
- package/dist/components/switch/switch.stories.d.ts +11 -0
- package/dist/components/switch/switch.stories.d.ts.map +1 -0
- package/dist/{cjs/core → core}/background/background.component.d.ts +1 -0
- package/dist/core/background/background.component.d.ts.map +1 -0
- package/dist/core/background/background.stories.d.ts +14 -0
- package/dist/core/background/background.stories.d.ts.map +1 -0
- package/dist/{esm/core → core}/background/index.d.ts +1 -0
- package/dist/core/background/index.d.ts.map +1 -0
- package/dist/core/border/border.style.d.ts +4 -0
- package/dist/core/border/border.style.d.ts.map +1 -0
- package/dist/core/border/index.d.ts +2 -0
- package/dist/core/border/index.d.ts.map +1 -0
- package/dist/{esm/core → core}/container/container.component.d.ts +4 -3
- package/dist/core/container/container.component.d.ts.map +1 -0
- package/dist/{esm/core → core}/container/index.d.ts +1 -0
- package/dist/core/container/index.d.ts.map +1 -0
- package/dist/{cjs/core → core}/filter/filter.argTypes.d.ts +1 -0
- package/dist/core/filter/filter.argTypes.d.ts.map +1 -0
- package/dist/{esm/core → core}/filter/filter.component.d.ts +2 -1
- package/dist/core/filter/filter.component.d.ts.map +1 -0
- package/dist/{cjs/core → core}/filter/filter.config.d.ts +1 -0
- package/dist/core/filter/filter.config.d.ts.map +1 -0
- package/dist/{cjs/core → core}/filter/filter.model.d.ts +1 -0
- package/dist/core/filter/filter.model.d.ts.map +1 -0
- package/dist/{cjs/core → core}/filter/filter.style.d.ts +1 -0
- package/dist/core/filter/filter.style.d.ts.map +1 -0
- package/dist/{cjs/core → core}/filter/filter.types.d.ts +1 -0
- package/dist/core/filter/filter.types.d.ts.map +1 -0
- package/dist/{esm/core → core}/filter/index.d.ts +1 -0
- package/dist/core/filter/index.d.ts.map +1 -0
- package/dist/{esm/core → core}/flex/flex.component.d.ts +2 -1
- package/dist/core/flex/flex.component.d.ts.map +1 -0
- package/dist/{cjs/core → core}/flex/flex.style.d.ts +1 -0
- package/dist/core/flex/flex.style.d.ts.map +1 -0
- package/dist/{esm/core → core}/flex/index.d.ts +1 -0
- package/dist/core/flex/index.d.ts.map +1 -0
- package/dist/{esm/core → core}/hooks/index.d.ts +1 -0
- package/dist/core/hooks/index.d.ts.map +1 -0
- package/dist/{cjs/core → core}/hooks/use-media.d.ts +1 -0
- package/dist/core/hooks/use-media.d.ts.map +1 -0
- package/dist/{esm/core → core}/hooks/use-toggle.d.ts +1 -0
- package/dist/core/hooks/use-toggle.d.ts.map +1 -0
- package/dist/{cjs/core → core}/icon/icon.component.d.ts +3 -3
- package/dist/core/icon/icon.component.d.ts.map +1 -0
- package/dist/core/icon/icon.stories.d.ts +16 -0
- package/dist/core/icon/icon.stories.d.ts.map +1 -0
- package/dist/core/icon/index.d.ts +3 -0
- package/dist/core/icon/index.d.ts.map +1 -0
- package/dist/{cjs/core → core}/image/image.argTypes.d.ts +1 -0
- package/dist/core/image/image.argTypes.d.ts.map +1 -0
- package/dist/{cjs/core → core}/image/image.component.d.ts +1 -1
- package/dist/core/image/image.component.d.ts.map +1 -0
- package/dist/{cjs/core → core}/image/image.model.d.ts +1 -0
- package/dist/core/image/image.model.d.ts.map +1 -0
- package/dist/core/image/image.stories.d.ts +201 -0
- package/dist/core/image/image.stories.d.ts.map +1 -0
- package/dist/{esm/core → core}/image/image.style.d.ts +1 -0
- package/dist/core/image/image.style.d.ts.map +1 -0
- package/dist/{esm/core → core}/image/image.types.d.ts +1 -0
- package/dist/core/image/image.types.d.ts.map +1 -0
- package/dist/{esm/core → core}/image/index.d.ts +1 -0
- package/dist/core/image/index.d.ts.map +1 -0
- package/dist/{esm/core → core}/index.d.ts +1 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/{esm/core → core}/layout/index.d.ts +1 -0
- package/dist/core/layout/index.d.ts.map +1 -0
- package/dist/{esm/core → core}/layout/layout.context.d.ts +2 -1
- package/dist/core/layout/layout.context.d.ts.map +1 -0
- package/dist/{cjs/core → core}/layout/layout.hook.d.ts +1 -0
- package/dist/core/layout/layout.hook.d.ts.map +1 -0
- package/dist/core/layout/layout.provider.d.ts +4 -0
- package/dist/core/layout/layout.provider.d.ts.map +1 -0
- package/dist/{esm/core → core}/overlay/index.d.ts +1 -0
- package/dist/core/overlay/index.d.ts.map +1 -0
- package/dist/{cjs/core → core}/overlay/overlay.component.d.ts +1 -1
- package/dist/core/overlay/overlay.component.d.ts.map +1 -0
- package/dist/core/overlay/overlay.config.d.ts +5 -0
- package/dist/core/overlay/overlay.config.d.ts.map +1 -0
- package/dist/{esm/core → core}/overlay/overlay.model.d.ts +1 -0
- package/dist/core/overlay/overlay.model.d.ts.map +1 -0
- package/dist/core/overlay/overlay.stories.d.ts +132 -0
- package/dist/core/overlay/overlay.stories.d.ts.map +1 -0
- package/dist/core/padding/index.d.ts +2 -0
- package/dist/core/padding/index.d.ts.map +1 -0
- package/dist/{esm/core → core}/padding/padding.style.d.ts +1 -0
- package/dist/core/padding/padding.style.d.ts.map +1 -0
- package/dist/core/shadow/index.d.ts +2 -0
- package/dist/core/shadow/index.d.ts.map +1 -0
- package/dist/{cjs/core → core}/shadow/shadow.style.d.ts +1 -0
- package/dist/core/shadow/shadow.style.d.ts.map +1 -0
- package/dist/core/text/index.d.ts +2 -0
- package/dist/core/text/index.d.ts.map +1 -0
- package/dist/{cjs/core → core}/text/text.component.d.ts +2 -1
- package/dist/core/text/text.component.d.ts.map +1 -0
- package/dist/core/text/text.stories.d.ts +134 -0
- package/dist/core/text/text.stories.d.ts.map +1 -0
- package/dist/core/theme/index.d.ts +2 -0
- package/dist/core/theme/index.d.ts.map +1 -0
- package/dist/core/theme/theming.d.ts +11 -0
- package/dist/core/theme/theming.d.ts.map +1 -0
- package/dist/{esm/core → core}/transition/collapse/collapse.component.d.ts +3 -2
- package/dist/core/transition/collapse/collapse.component.d.ts.map +1 -0
- package/dist/{esm/core → core}/transition/collapse/index.d.ts +1 -0
- package/dist/core/transition/collapse/index.d.ts.map +1 -0
- package/dist/{cjs/core → core}/transition/fade/fade.argTypes.d.ts +1 -0
- package/dist/core/transition/fade/fade.argTypes.d.ts.map +1 -0
- package/dist/{cjs/core → core}/transition/fade/fade.component.d.ts +3 -2
- package/dist/core/transition/fade/fade.component.d.ts.map +1 -0
- package/dist/core/transition/fade/fade.stories.d.ts +27 -0
- package/dist/core/transition/fade/fade.stories.d.ts.map +1 -0
- package/dist/core/transition/fade/index.d.ts +2 -0
- package/dist/core/transition/fade/index.d.ts.map +1 -0
- package/dist/{esm/core → core}/transition/index.d.ts +1 -0
- package/dist/core/transition/index.d.ts.map +1 -0
- package/dist/{esm/core → core}/transition/slide/index.d.ts +1 -0
- package/dist/core/transition/slide/index.d.ts.map +1 -0
- package/dist/{esm/core → core}/transition/slide/slide.component.d.ts +3 -2
- package/dist/core/transition/slide/slide.component.d.ts.map +1 -0
- package/dist/core/transition/slide/slide.stories.d.ts +12 -0
- package/dist/core/transition/slide/slide.stories.d.ts.map +1 -0
- package/dist/{cjs/core → core}/transition/transition.argTypes.d.ts +1 -0
- package/dist/core/transition/transition.argTypes.d.ts.map +1 -0
- package/dist/{esm/core → core}/transition/transition.utils.d.ts +2 -1
- package/dist/core/transition/transition.utils.d.ts.map +1 -0
- package/dist/{esm/index.d.ts → index.d.ts} +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13687 -0
- package/dist/{cjs/layouts → layouts}/parallax-hero/parallax-hero.component.d.ts +1 -1
- package/dist/layouts/parallax-hero/parallax-hero.component.d.ts.map +1 -0
- package/dist/{esm/layouts → layouts}/parallax-hero/parallax-hero.model.d.ts +1 -0
- package/dist/layouts/parallax-hero/parallax-hero.model.d.ts.map +1 -0
- package/dist/stories/Button.d.ts +15 -0
- package/dist/stories/Button.d.ts.map +1 -0
- package/dist/stories/Button.stories.d.ts +24 -0
- package/dist/stories/Button.stories.d.ts.map +1 -0
- package/dist/stories/Header.d.ts +12 -0
- package/dist/stories/Header.d.ts.map +1 -0
- package/dist/stories/Header.stories.d.ts +19 -0
- package/dist/stories/Header.stories.d.ts.map +1 -0
- package/dist/stories/Page.d.ts +3 -0
- package/dist/stories/Page.d.ts.map +1 -0
- package/dist/stories/Page.stories.d.ts +13 -0
- package/dist/stories/Page.stories.d.ts.map +1 -0
- package/dist/{cjs/tools → tools}/color-picker/color-picker.component.d.ts +2 -2
- package/dist/tools/color-picker/color-picker.component.d.ts.map +1 -0
- package/dist/tools/color-picker/color-picker.stories.d.ts +14 -0
- package/dist/tools/color-picker/color-picker.stories.d.ts.map +1 -0
- package/dist/{cjs/tools → tools}/color-swatch/color-swatch.component.d.ts +2 -1
- package/dist/tools/color-swatch/color-swatch.component.d.ts.map +1 -0
- package/dist/{esm/utils → utils}/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/{cjs/utils → utils}/storage-manager.d.ts +1 -0
- package/dist/utils/storage-manager.d.ts.map +1 -0
- package/package.json +51 -59
- package/src/components/button/button.component.tsx +138 -0
- package/src/components/button/button.stories.tsx +79 -0
- package/src/components/card/card.component.tsx +61 -0
- package/src/components/card/card.stories.tsx +22 -0
- package/src/components/draggable/SortableList/components/DragHandle/dragHandle.component.tsx +20 -0
- package/src/components/draggable/SortableList/components/SortableItem/sortableItem.component.tsx +54 -0
- package/src/components/draggable/SortableList/components/SortableItem/sortableItem.context.ts +14 -0
- package/src/components/draggable/SortableList/components/SortableOverlay/sortableOverlay.component.tsx +20 -0
- package/src/components/draggable/SortableList/mockData.ts +50 -0
- package/src/components/draggable/SortableList/sortableList.component.tsx +69 -0
- package/src/components/draggable/SortableList/sortableList.stories.tsx +71 -0
- package/src/components/draggable/utilities/createRange.ts +8 -0
- package/src/components/forms/text-input/text-input.component.tsx +14 -0
- package/src/components/forms/utils/validations.ts +62 -0
- package/src/components/grainy-gradient-background/grainy-gradient-background.component.stories.tsx +60 -0
- package/src/components/grainy-gradient-background/grainy-gradient-background.component.tsx +68 -0
- package/src/components/icon-text-row/icon-text-row.component.tsx +70 -0
- package/src/components/icon-text-row/icon-text-row.stories.tsx +18 -0
- package/src/components/modal/modal-close-button.component.tsx +13 -0
- package/src/components/modal/modal.component.tsx +48 -0
- package/src/components/modal/modal.stories.tsx +25 -0
- package/src/components/switch/switch.component.tsx +59 -0
- package/src/components/switch/switch.config.ts +24 -0
- package/src/components/switch/switch.stories.tsx +12 -0
- package/src/core/background/background.component.tsx +47 -0
- package/src/core/background/background.stories.tsx +22 -0
- package/src/core/border/border.style.ts +31 -0
- package/src/core/container/container.component.tsx +20 -0
- package/src/core/filter/filter.argTypes.ts +111 -0
- package/src/core/filter/filter.component.tsx +11 -0
- package/src/core/filter/filter.config.ts +68 -0
- package/src/core/filter/filter.model.ts +22 -0
- package/src/core/filter/filter.style.ts +22 -0
- package/src/core/filter/filter.types.ts +12 -0
- package/src/core/flex/flex.component.tsx +91 -0
- package/src/core/flex/flex.style.ts +106 -0
- package/src/core/hooks/use-media.ts +29 -0
- package/src/core/hooks/use-toggle.tsx +23 -0
- package/src/core/icon/icon.component.tsx +19 -0
- package/src/core/icon/icon.stories.tsx +52 -0
- package/src/core/icon/index.ts +6 -0
- package/src/core/image/image.argTypes.ts +23 -0
- package/src/core/image/image.component.tsx +17 -0
- package/{dist/esm/core/image/image.model.d.ts → src/core/image/image.model.ts} +6 -5
- package/src/core/image/image.stories.tsx +22 -0
- package/src/core/image/image.style.ts +19 -0
- package/src/core/layout/layout.context.tsx +14 -0
- package/src/core/layout/layout.hook.tsx +11 -0
- package/src/core/layout/layout.provider.tsx +23 -0
- package/src/core/overlay/overlay.component.tsx +27 -0
- package/src/core/overlay/overlay.config.ts +30 -0
- package/src/core/overlay/overlay.model.ts +13 -0
- package/src/core/overlay/overlay.stories.tsx +73 -0
- package/src/core/padding/padding.style.ts +35 -0
- package/src/core/shadow/shadow.style.ts +5 -0
- package/src/core/text/text.component.tsx +48 -0
- package/src/core/text/text.stories.tsx +66 -0
- package/src/core/theme/index.ts +1 -0
- package/src/core/theme/theming.tsx +30 -0
- package/src/core/transition/collapse/collapse.component.tsx +141 -0
- package/src/core/transition/fade/fade.argTypes.ts +5 -0
- package/src/core/transition/fade/fade.component.tsx +59 -0
- package/src/core/transition/fade/fade.stories.tsx +52 -0
- package/src/core/transition/slide/slide.component.tsx +111 -0
- package/src/core/transition/slide/slide.stories.tsx +38 -0
- package/src/core/transition/transition.argTypes.ts +10 -0
- package/src/core/transition/transition.utils.ts +165 -0
- package/src/layouts/parallax-hero/parallax-hero.component.tsx +25 -0
- package/{dist/cjs/layouts/parallax-hero/parallax-hero.model.d.ts → src/layouts/parallax-hero/parallax-hero.model.ts} +7 -5
- package/src/stories/Button.stories.ts +54 -0
- package/src/stories/Button.tsx +37 -0
- package/src/stories/Configure.mdx +393 -0
- package/src/stories/Header.stories.ts +34 -0
- package/src/stories/Header.tsx +56 -0
- package/src/stories/Page.stories.ts +33 -0
- package/src/stories/Page.tsx +73 -0
- package/src/stories/assets/accessibility.png +0 -0
- package/src/stories/assets/accessibility.svg +1 -0
- package/src/stories/assets/addon-library.png +0 -0
- package/src/stories/assets/assets.png +0 -0
- package/src/stories/assets/avif-test-image.avif +0 -0
- package/src/stories/assets/context.png +0 -0
- package/src/stories/assets/discord.svg +1 -0
- package/src/stories/assets/docs.png +0 -0
- package/src/stories/assets/figma-plugin.png +0 -0
- package/src/stories/assets/github.svg +1 -0
- package/src/stories/assets/share.png +0 -0
- package/src/stories/assets/styling.png +0 -0
- package/src/stories/assets/testing.png +0 -0
- package/src/stories/assets/theming.png +0 -0
- package/src/stories/assets/tutorials.svg +1 -0
- package/src/stories/assets/youtube.svg +1 -0
- package/src/stories/button.css +30 -0
- package/src/stories/header.css +32 -0
- package/src/stories/page.css +68 -0
- package/src/tools/color-picker/color-picker.component.tsx +151 -0
- package/src/tools/color-picker/color-picker.stories.tsx +21 -0
- package/src/tools/color-swatch/color-swatch.component.tsx +68 -0
- package/src/utils/storage-manager.ts +51 -0
- package/tsconfig.json +13 -0
- package/vite.config.ts +29 -0
- package/vitest.config.ts +36 -0
- package/vitest.shims.d.ts +1 -0
- package/README.md +0 -22
- package/dist/cjs/components/button/button.component.js +0 -98
- package/dist/cjs/components/button/index.js +0 -17
- package/dist/cjs/components/card/card.component.js +0 -35
- package/dist/cjs/components/card/index.js +0 -17
- package/dist/cjs/components/draggable/SortableList/components/DragHandle/dragHandle.component.js +0 -48
- package/dist/cjs/components/draggable/SortableList/components/DragHandle/index.js +0 -5
- package/dist/cjs/components/draggable/SortableList/components/SortableItem/index.js +0 -5
- package/dist/cjs/components/draggable/SortableList/components/SortableItem/sortableItem.component.d.ts +0 -8
- package/dist/cjs/components/draggable/SortableList/components/SortableItem/sortableItem.component.js +0 -44
- package/dist/cjs/components/draggable/SortableList/components/SortableItem/sortableItem.context.js +0 -9
- package/dist/cjs/components/draggable/SortableList/components/SortableOverlay/index.js +0 -5
- package/dist/cjs/components/draggable/SortableList/components/SortableOverlay/sortableOverlay.component.d.ts +0 -5
- package/dist/cjs/components/draggable/SortableList/components/SortableOverlay/sortableOverlay.component.js +0 -19
- package/dist/cjs/components/draggable/SortableList/components/index.js +0 -9
- package/dist/cjs/components/draggable/SortableList/index.js +0 -18
- package/dist/cjs/components/draggable/SortableList/mockData.js +0 -53
- package/dist/cjs/components/draggable/SortableList/sortableList.component.js +0 -57
- package/dist/cjs/components/draggable/index.js +0 -17
- package/dist/cjs/components/draggable/utilities/createRange.js +0 -8
- package/dist/cjs/components/draggable/utilities/index.js +0 -5
- package/dist/cjs/components/forms/index.js +0 -17
- package/dist/cjs/components/forms/text-input/index.js +0 -17
- package/dist/cjs/components/forms/text-input/text-input.component.js +0 -12
- package/dist/cjs/components/forms/utils/validations.js +0 -55
- package/dist/cjs/components/grainy-gradient-background/grainy-gradient-background.component.d.ts +0 -13
- package/dist/cjs/components/grainy-gradient-background/grainy-gradient-background.component.js +0 -42
- package/dist/cjs/components/icon-text-row/icon-text-row.component.d.ts +0 -12
- package/dist/cjs/components/icon-text-row/icon-text-row.component.js +0 -35
- package/dist/cjs/components/icon-text-row/index.js +0 -17
- package/dist/cjs/components/index.js +0 -23
- package/dist/cjs/components/modal/index.js +0 -17
- package/dist/cjs/components/modal/modal-close-button.component.js +0 -30
- package/dist/cjs/components/modal/modal.component.js +0 -22
- package/dist/cjs/components/switch/index.js +0 -17
- package/dist/cjs/components/switch/switch.component.d.ts +0 -8
- package/dist/cjs/components/switch/switch.component.js +0 -65
- package/dist/cjs/components/switch/switch.config.d.ts +0 -5
- package/dist/cjs/components/switch/switch.config.js +0 -25
- package/dist/cjs/core/background/background.component.js +0 -22
- package/dist/cjs/core/background/index.js +0 -17
- package/dist/cjs/core/border/border.style.d.ts +0 -3
- package/dist/cjs/core/border/border.style.js +0 -30
- package/dist/cjs/core/border/index.js +0 -17
- package/dist/cjs/core/container/container.component.d.ts +0 -11
- package/dist/cjs/core/container/container.component.js +0 -45
- package/dist/cjs/core/container/index.js +0 -17
- package/dist/cjs/core/filter/filter.argTypes.js +0 -104
- package/dist/cjs/core/filter/filter.component.d.ts +0 -3
- package/dist/cjs/core/filter/filter.component.js +0 -15
- package/dist/cjs/core/filter/filter.config.js +0 -68
- package/dist/cjs/core/filter/filter.model.js +0 -2
- package/dist/cjs/core/filter/filter.style.js +0 -21
- package/dist/cjs/core/filter/filter.types.js +0 -2
- package/dist/cjs/core/filter/index.js +0 -20
- package/dist/cjs/core/flex/flex.component.d.ts +0 -54
- package/dist/cjs/core/flex/flex.component.js +0 -33
- package/dist/cjs/core/flex/flex.style.js +0 -86
- package/dist/cjs/core/flex/index.js +0 -18
- package/dist/cjs/core/hooks/index.js +0 -18
- package/dist/cjs/core/hooks/use-media.js +0 -29
- package/dist/cjs/core/hooks/use-toggle.d.ts +0 -14
- package/dist/cjs/core/hooks/use-toggle.js +0 -21
- package/dist/cjs/core/icon/icon.component.js +0 -17
- package/dist/cjs/core/icon/index.d.ts +0 -2
- package/dist/cjs/core/icon/index.js +0 -21
- package/dist/cjs/core/image/image.argTypes.js +0 -19
- package/dist/cjs/core/image/image.component.js +0 -24
- package/dist/cjs/core/image/image.model.js +0 -2
- package/dist/cjs/core/image/image.style.d.ts +0 -3
- package/dist/cjs/core/image/image.style.js +0 -22
- package/dist/cjs/core/image/image.types.js +0 -2
- package/dist/cjs/core/image/index.js +0 -18
- package/dist/cjs/core/index.js +0 -30
- package/dist/cjs/core/layout/index.js +0 -18
- package/dist/cjs/core/layout/layout.context.d.ts +0 -7
- package/dist/cjs/core/layout/layout.context.js +0 -11
- package/dist/cjs/core/layout/layout.hook.js +0 -16
- package/dist/cjs/core/layout/layout.provider.d.ts +0 -4
- package/dist/cjs/core/layout/layout.provider.js +0 -25
- package/dist/cjs/core/overlay/index.js +0 -18
- package/dist/cjs/core/overlay/overlay.component.js +0 -17
- package/dist/cjs/core/overlay/overlay.config.d.ts +0 -4
- package/dist/cjs/core/overlay/overlay.config.js +0 -20
- package/dist/cjs/core/overlay/overlay.model.d.ts +0 -12
- package/dist/cjs/core/overlay/overlay.model.js +0 -2
- package/dist/cjs/core/padding/index.js +0 -17
- package/dist/cjs/core/padding/padding.style.d.ts +0 -3
- package/dist/cjs/core/padding/padding.style.js +0 -34
- package/dist/cjs/core/shadow/index.js +0 -17
- package/dist/cjs/core/shadow/shadow.style.js +0 -8
- package/dist/cjs/core/text/index.js +0 -17
- package/dist/cjs/core/text/text.component.js +0 -50
- package/dist/cjs/core/theme/index.d.ts +0 -9
- package/dist/cjs/core/theme/index.js +0 -7
- package/dist/cjs/core/transition/collapse/collapse.component.d.ts +0 -24
- package/dist/cjs/core/transition/collapse/collapse.component.js +0 -79
- package/dist/cjs/core/transition/collapse/index.js +0 -17
- package/dist/cjs/core/transition/fade/fade.argTypes.js +0 -8
- package/dist/cjs/core/transition/fade/fade.component.js +0 -53
- package/dist/cjs/core/transition/fade/index.js +0 -17
- package/dist/cjs/core/transition/index.js +0 -19
- package/dist/cjs/core/transition/slide/index.js +0 -17
- package/dist/cjs/core/transition/slide/slide.component.d.ts +0 -15
- package/dist/cjs/core/transition/slide/slide.component.js +0 -54
- package/dist/cjs/core/transition/transition.argTypes.js +0 -13
- package/dist/cjs/core/transition/transition.utils.d.ts +0 -245
- package/dist/cjs/core/transition/transition.utils.js +0 -99
- package/dist/cjs/index.js +0 -19
- package/dist/cjs/layouts/parallax-hero/parallax-hero.component.js +0 -15
- package/dist/cjs/layouts/parallax-hero/parallax-hero.model.js +0 -2
- package/dist/cjs/tools/color-picker/color-picker.component.js +0 -138
- package/dist/cjs/tools/color-swatch/color-swatch.component.js +0 -38
- package/dist/cjs/utils/index.js +0 -17
- package/dist/cjs/utils/storage-manager.js +0 -49
- package/dist/esm/components/button/button.component.d.ts +0 -16
- package/dist/esm/components/button/button.component.js +0 -68
- package/dist/esm/components/button/index.js +0 -1
- package/dist/esm/components/card/card.component.d.ts +0 -14
- package/dist/esm/components/card/card.component.js +0 -28
- package/dist/esm/components/card/index.d.ts +0 -1
- package/dist/esm/components/card/index.js +0 -1
- package/dist/esm/components/draggable/SortableList/components/DragHandle/dragHandle.component.d.ts +0 -3
- package/dist/esm/components/draggable/SortableList/components/DragHandle/dragHandle.component.js +0 -21
- package/dist/esm/components/draggable/SortableList/components/DragHandle/index.js +0 -1
- package/dist/esm/components/draggable/SortableList/components/SortableItem/index.js +0 -1
- package/dist/esm/components/draggable/SortableList/components/SortableItem/sortableItem.component.js +0 -17
- package/dist/esm/components/draggable/SortableList/components/SortableItem/sortableItem.context.d.ts +0 -9
- package/dist/esm/components/draggable/SortableList/components/SortableItem/sortableItem.context.js +0 -6
- package/dist/esm/components/draggable/SortableList/components/SortableOverlay/index.js +0 -1
- package/dist/esm/components/draggable/SortableList/components/SortableOverlay/sortableOverlay.component.js +0 -12
- package/dist/esm/components/draggable/SortableList/components/index.js +0 -3
- package/dist/esm/components/draggable/SortableList/index.js +0 -2
- package/dist/esm/components/draggable/SortableList/mockData.d.ts +0 -4
- package/dist/esm/components/draggable/SortableList/mockData.js +0 -50
- package/dist/esm/components/draggable/SortableList/sortableList.component.d.ts +0 -13
- package/dist/esm/components/draggable/SortableList/sortableList.component.js +0 -30
- package/dist/esm/components/draggable/index.d.ts +0 -1
- package/dist/esm/components/draggable/index.js +0 -1
- package/dist/esm/components/draggable/utilities/createRange.d.ts +0 -1
- package/dist/esm/components/draggable/utilities/createRange.js +0 -4
- package/dist/esm/components/draggable/utilities/index.js +0 -1
- package/dist/esm/components/forms/index.d.ts +0 -1
- package/dist/esm/components/forms/index.js +0 -1
- package/dist/esm/components/forms/text-input/index.js +0 -1
- package/dist/esm/components/forms/text-input/text-input.component.d.ts +0 -6
- package/dist/esm/components/forms/text-input/text-input.component.js +0 -5
- package/dist/esm/components/forms/utils/validations.d.ts +0 -2
- package/dist/esm/components/forms/utils/validations.js +0 -52
- package/dist/esm/components/grainy-gradient-background/grainy-gradient-background.component.js +0 -35
- package/dist/esm/components/icon-text-row/icon-text-row.component.js +0 -28
- package/dist/esm/components/icon-text-row/index.js +0 -1
- package/dist/esm/components/index.js +0 -7
- package/dist/esm/components/modal/index.js +0 -1
- package/dist/esm/components/modal/modal-close-button.component.d.ts +0 -3
- package/dist/esm/components/modal/modal-close-button.component.js +0 -23
- package/dist/esm/components/modal/modal.component.d.ts +0 -13
- package/dist/esm/components/modal/modal.component.js +0 -15
- package/dist/esm/components/switch/index.js +0 -1
- package/dist/esm/components/switch/switch.component.js +0 -38
- package/dist/esm/components/switch/switch.config.d.ts +0 -5
- package/dist/esm/components/switch/switch.config.js +0 -22
- package/dist/esm/core/background/background.component.d.ts +0 -15
- package/dist/esm/core/background/background.component.js +0 -15
- package/dist/esm/core/background/index.js +0 -1
- package/dist/esm/core/border/border.style.d.ts +0 -3
- package/dist/esm/core/border/border.style.js +0 -26
- package/dist/esm/core/border/index.d.ts +0 -1
- package/dist/esm/core/border/index.js +0 -1
- package/dist/esm/core/container/container.component.js +0 -18
- package/dist/esm/core/container/index.js +0 -1
- package/dist/esm/core/filter/filter.argTypes.d.ts +0 -155
- package/dist/esm/core/filter/filter.argTypes.js +0 -101
- package/dist/esm/core/filter/filter.component.js +0 -8
- package/dist/esm/core/filter/filter.config.d.ts +0 -3
- package/dist/esm/core/filter/filter.config.js +0 -65
- package/dist/esm/core/filter/filter.model.d.ts +0 -20
- package/dist/esm/core/filter/filter.model.js +0 -1
- package/dist/esm/core/filter/filter.style.d.ts +0 -3
- package/dist/esm/core/filter/filter.style.js +0 -17
- package/dist/esm/core/filter/filter.types.d.ts +0 -2
- package/dist/esm/core/filter/filter.types.js +0 -1
- package/dist/esm/core/filter/index.js +0 -4
- package/dist/esm/core/flex/flex.component.js +0 -27
- package/dist/esm/core/flex/flex.style.d.ts +0 -28
- package/dist/esm/core/flex/flex.style.js +0 -83
- package/dist/esm/core/flex/index.js +0 -2
- package/dist/esm/core/hooks/index.js +0 -2
- package/dist/esm/core/hooks/use-media.d.ts +0 -1
- package/dist/esm/core/hooks/use-media.js +0 -25
- package/dist/esm/core/hooks/use-toggle.js +0 -17
- package/dist/esm/core/icon/icon.component.d.ts +0 -10
- package/dist/esm/core/icon/icon.component.js +0 -10
- package/dist/esm/core/icon/index.d.ts +0 -2
- package/dist/esm/core/icon/index.js +0 -2
- package/dist/esm/core/image/image.argTypes.d.ts +0 -187
- package/dist/esm/core/image/image.argTypes.js +0 -16
- package/dist/esm/core/image/image.component.d.ts +0 -3
- package/dist/esm/core/image/image.component.js +0 -17
- package/dist/esm/core/image/image.model.js +0 -1
- package/dist/esm/core/image/image.style.js +0 -18
- package/dist/esm/core/image/image.types.js +0 -1
- package/dist/esm/core/image/index.js +0 -2
- package/dist/esm/core/index.js +0 -14
- package/dist/esm/core/layout/index.js +0 -2
- package/dist/esm/core/layout/layout.context.js +0 -6
- package/dist/esm/core/layout/layout.hook.d.ts +0 -2
- package/dist/esm/core/layout/layout.hook.js +0 -9
- package/dist/esm/core/layout/layout.provider.d.ts +0 -4
- package/dist/esm/core/layout/layout.provider.js +0 -18
- package/dist/esm/core/overlay/index.js +0 -2
- package/dist/esm/core/overlay/overlay.component.d.ts +0 -3
- package/dist/esm/core/overlay/overlay.component.js +0 -10
- package/dist/esm/core/overlay/overlay.config.d.ts +0 -4
- package/dist/esm/core/overlay/overlay.config.js +0 -16
- package/dist/esm/core/overlay/overlay.model.js +0 -1
- package/dist/esm/core/padding/index.d.ts +0 -1
- package/dist/esm/core/padding/index.js +0 -1
- package/dist/esm/core/padding/padding.style.js +0 -30
- package/dist/esm/core/shadow/index.d.ts +0 -1
- package/dist/esm/core/shadow/index.js +0 -1
- package/dist/esm/core/shadow/shadow.style.d.ts +0 -2
- package/dist/esm/core/shadow/shadow.style.js +0 -4
- package/dist/esm/core/text/index.d.ts +0 -1
- package/dist/esm/core/text/index.js +0 -1
- package/dist/esm/core/text/text.component.d.ts +0 -11
- package/dist/esm/core/text/text.component.js +0 -23
- package/dist/esm/core/theme/index.d.ts +0 -9
- package/dist/esm/core/theme/index.js +0 -3
- package/dist/esm/core/transition/collapse/collapse.component.js +0 -73
- package/dist/esm/core/transition/collapse/index.js +0 -1
- package/dist/esm/core/transition/fade/fade.argTypes.d.ts +0 -5
- package/dist/esm/core/transition/fade/fade.argTypes.js +0 -5
- package/dist/esm/core/transition/fade/fade.component.d.ts +0 -7
- package/dist/esm/core/transition/fade/fade.component.js +0 -47
- package/dist/esm/core/transition/fade/index.d.ts +0 -1
- package/dist/esm/core/transition/fade/index.js +0 -1
- package/dist/esm/core/transition/index.js +0 -3
- package/dist/esm/core/transition/slide/index.js +0 -1
- package/dist/esm/core/transition/slide/slide.component.js +0 -48
- package/dist/esm/core/transition/transition.argTypes.d.ts +0 -19
- package/dist/esm/core/transition/transition.argTypes.js +0 -10
- package/dist/esm/core/transition/transition.utils.js +0 -93
- package/dist/esm/index.js +0 -3
- package/dist/esm/layouts/parallax-hero/parallax-hero.component.d.ts +0 -3
- package/dist/esm/layouts/parallax-hero/parallax-hero.component.js +0 -8
- package/dist/esm/layouts/parallax-hero/parallax-hero.model.js +0 -1
- package/dist/esm/tools/color-picker/color-picker.component.d.ts +0 -8
- package/dist/esm/tools/color-picker/color-picker.component.js +0 -111
- package/dist/esm/tools/color-swatch/color-swatch.component.d.ts +0 -12
- package/dist/esm/tools/color-swatch/color-swatch.component.js +0 -31
- package/dist/esm/utils/index.js +0 -1
- package/dist/esm/utils/storage-manager.d.ts +0 -7
- package/dist/esm/utils/storage-manager.js +0 -44
- /package/{dist/cjs/components/button/index.d.ts → src/components/button/index.ts} +0 -0
- /package/{dist/cjs/components/card/index.d.ts → src/components/card/index.ts} +0 -0
- /package/{dist/cjs/components/draggable/SortableList/components/DragHandle/index.d.ts → src/components/draggable/SortableList/components/DragHandle/index.ts} +0 -0
- /package/{dist/cjs/components/draggable/SortableList/components/SortableItem/index.d.ts → src/components/draggable/SortableList/components/SortableItem/index.ts} +0 -0
- /package/{dist/cjs/components/draggable/SortableList/components/SortableOverlay/index.d.ts → src/components/draggable/SortableList/components/SortableOverlay/index.ts} +0 -0
- /package/{dist/cjs/components/draggable/SortableList/components/index.d.ts → src/components/draggable/SortableList/components/index.ts} +0 -0
- /package/{dist/cjs/components/draggable/SortableList/index.d.ts → src/components/draggable/SortableList/index.ts} +0 -0
- /package/{dist/cjs/components/draggable/index.d.ts → src/components/draggable/index.ts} +0 -0
- /package/{dist/cjs/components/draggable/utilities/index.d.ts → src/components/draggable/utilities/index.ts} +0 -0
- /package/{dist/cjs/components/forms/index.d.ts → src/components/forms/index.ts} +0 -0
- /package/{dist/cjs/components/forms/text-input/index.d.ts → src/components/forms/text-input/index.ts} +0 -0
- /package/{dist/cjs/components/icon-text-row/index.d.ts → src/components/icon-text-row/index.ts} +0 -0
- /package/{dist/cjs/components/index.d.ts → src/components/index.ts} +0 -0
- /package/{dist/cjs/components/modal/index.d.ts → src/components/modal/index.ts} +0 -0
- /package/{dist/cjs/components/switch/index.d.ts → src/components/switch/index.ts} +0 -0
- /package/{dist/cjs/core/background/index.d.ts → src/core/background/index.ts} +0 -0
- /package/{dist/cjs/core/border/index.d.ts → src/core/border/index.ts} +0 -0
- /package/{dist/cjs/core/container/index.d.ts → src/core/container/index.ts} +0 -0
- /package/{dist/cjs/core/filter/index.d.ts → src/core/filter/index.ts} +0 -0
- /package/{dist/cjs/core/flex/index.d.ts → src/core/flex/index.ts} +0 -0
- /package/{dist/cjs/core/hooks/index.d.ts → src/core/hooks/index.ts} +0 -0
- /package/{dist/cjs/core/image/image.types.d.ts → src/core/image/image.types.ts} +0 -0
- /package/{dist/cjs/core/image/index.d.ts → src/core/image/index.ts} +0 -0
- /package/{dist/cjs/core/index.d.ts → src/core/index.ts} +0 -0
- /package/{dist/cjs/core/layout/index.d.ts → src/core/layout/index.ts} +0 -0
- /package/{dist/cjs/core/overlay/index.d.ts → src/core/overlay/index.ts} +0 -0
- /package/{dist/cjs/core/padding/index.d.ts → src/core/padding/index.ts} +0 -0
- /package/{dist/cjs/core/shadow/index.d.ts → src/core/shadow/index.ts} +0 -0
- /package/{dist/cjs/core/text/index.d.ts → src/core/text/index.ts} +0 -0
- /package/{dist/cjs/core/transition/collapse/index.d.ts → src/core/transition/collapse/index.ts} +0 -0
- /package/{dist/cjs/core/transition/fade/index.d.ts → src/core/transition/fade/index.ts} +0 -0
- /package/{dist/cjs/core/transition/index.d.ts → src/core/transition/index.ts} +0 -0
- /package/{dist/cjs/core/transition/slide/index.d.ts → src/core/transition/slide/index.ts} +0 -0
- /package/{dist/cjs/index.d.ts → src/index.ts} +0 -0
- /package/{dist/cjs/utils/index.d.ts → src/utils/index.ts} +0 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { useEffect, useState } from 'react';
|
|
2
|
+
|
|
3
|
+
export const useMedia = <T>(queries: string[], values: T[], defaultValue: T) => {
|
|
4
|
+
// Array containing a media query list for each query
|
|
5
|
+
const mediaQueryLists = queries.map((q) => window.matchMedia(q));
|
|
6
|
+
// Function that gets value based on matching media query
|
|
7
|
+
const getValue = () => {
|
|
8
|
+
// Get index of first media query that matches
|
|
9
|
+
const index = mediaQueryLists.findIndex((mql) => mql.matches);
|
|
10
|
+
// Return related value or defaultValue if none
|
|
11
|
+
return values?.[index] || defaultValue;
|
|
12
|
+
};
|
|
13
|
+
// State and setter for matched value
|
|
14
|
+
const [value, setValue] = useState<T>(getValue);
|
|
15
|
+
useEffect(
|
|
16
|
+
() => {
|
|
17
|
+
// Event listener callback
|
|
18
|
+
// Note: By defining getValue outside of useEffect we ensure that it has ...
|
|
19
|
+
// ... current values of hook args (as this hook callback is created once on mount).
|
|
20
|
+
const handler = () => setValue(getValue);
|
|
21
|
+
// Set a listener for each media query with above handler as callback.
|
|
22
|
+
mediaQueryLists.forEach((mql) => mql.addListener(handler));
|
|
23
|
+
// Remove listeners on cleanup
|
|
24
|
+
return () => mediaQueryLists.forEach((mql) => mql.removeListener(handler));
|
|
25
|
+
},
|
|
26
|
+
[] // Empty array ensures effect is only run on mount and unmount
|
|
27
|
+
);
|
|
28
|
+
return value;
|
|
29
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { useMemo, useState } from 'react';
|
|
2
|
+
|
|
3
|
+
type InitialState = boolean | (() => boolean);
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* React hook to manage boolean (on - off) states
|
|
7
|
+
*
|
|
8
|
+
* @param initialState the initial boolean state value
|
|
9
|
+
*
|
|
10
|
+
* @see Docs https://chakra-ui.com/docs/hooks/use-boolean
|
|
11
|
+
*/
|
|
12
|
+
export function useToggle(initialState: InitialState = false) {
|
|
13
|
+
const [value, setValue] = useState(initialState);
|
|
14
|
+
const callbacks = useMemo(
|
|
15
|
+
() => ({
|
|
16
|
+
on: () => setValue(true),
|
|
17
|
+
off: () => setValue(false),
|
|
18
|
+
toggle: () => setValue((prev) => !prev),
|
|
19
|
+
}),
|
|
20
|
+
[]
|
|
21
|
+
);
|
|
22
|
+
return [value, callbacks] as const;
|
|
23
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ContentColorToken } from '@uni-design-system/uni-core';
|
|
3
|
+
|
|
4
|
+
import { useTheme } from '../theme';
|
|
5
|
+
import { IconDictionary, type IconName } from '@uni-design-system/uni-react-icons/dist/cjs/src';
|
|
6
|
+
|
|
7
|
+
export interface IconProps {
|
|
8
|
+
name?: IconName;
|
|
9
|
+
color?: ContentColorToken;
|
|
10
|
+
height?: number;
|
|
11
|
+
width?: number;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export function Icon({ name, color = 'on-surface', height = 24, width = 24 }: IconProps) {
|
|
15
|
+
if (!name) return <></>;
|
|
16
|
+
const { colors } = useTheme();
|
|
17
|
+
const Icon = IconDictionary[name];
|
|
18
|
+
return <Icon width={width} height={height} color={colors[color]} />;
|
|
19
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
|
+
import { Icon, IconProps } from './icon.component';
|
|
3
|
+
import { Button } from '../../components';
|
|
4
|
+
import { IconKeys, IconName } from './index';
|
|
5
|
+
|
|
6
|
+
export default {
|
|
7
|
+
title: 'Typography/Icons',
|
|
8
|
+
component: Icon,
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export const IconPlayground = (args: IconProps) => <Icon {...args} />;
|
|
12
|
+
|
|
13
|
+
IconPlayground.args = {
|
|
14
|
+
name: IconKeys[0],
|
|
15
|
+
height: 48,
|
|
16
|
+
width: 48,
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export const IconManifest = (): JSX.Element => {
|
|
20
|
+
const [filteredIcons, setFilteredIcons] = useState<string[]>(IconKeys);
|
|
21
|
+
|
|
22
|
+
const Filter = (filter: string): string[] => {
|
|
23
|
+
return IconKeys.filter((name: string) => name.toLowerCase().indexOf(filter.toLowerCase()) > -1);
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
const copyToClipboard = async (iconName: string): Promise<void> => {
|
|
27
|
+
await navigator.clipboard.writeText(iconName);
|
|
28
|
+
alert(`Copied ${iconName} to clipboard.`);
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
return (
|
|
32
|
+
<div>
|
|
33
|
+
<input
|
|
34
|
+
onChange={(e): void => setFilteredIcons(Filter(e.target.value))}
|
|
35
|
+
placeholder="Filter Icons by Name"
|
|
36
|
+
/>
|
|
37
|
+
<div>
|
|
38
|
+
{filteredIcons.map((iconName) => {
|
|
39
|
+
return (
|
|
40
|
+
<Button
|
|
41
|
+
buttonType="icon"
|
|
42
|
+
iconName={iconName as IconName}
|
|
43
|
+
onClick={(): Promise<void> => copyToClipboard(iconName)}
|
|
44
|
+
>
|
|
45
|
+
{iconName}
|
|
46
|
+
</Button>
|
|
47
|
+
);
|
|
48
|
+
})}
|
|
49
|
+
</div>
|
|
50
|
+
</div>
|
|
51
|
+
);
|
|
52
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { filterArgTypes } from '../filter/filter.argTypes';
|
|
2
|
+
|
|
3
|
+
export const imageArgTypes = {
|
|
4
|
+
url: {
|
|
5
|
+
control: { type: 'text' },
|
|
6
|
+
table: { summary: 'string' },
|
|
7
|
+
},
|
|
8
|
+
fit: {
|
|
9
|
+
options: ['contain', 'cover', 'fill', 'none', 'scale-down'],
|
|
10
|
+
control: { type: 'inline-radio' },
|
|
11
|
+
table: {
|
|
12
|
+
type: { summary: 'string literal' },
|
|
13
|
+
defaultValue: { summary: 'cover' },
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
height: {
|
|
17
|
+
control: { type: 'number' },
|
|
18
|
+
},
|
|
19
|
+
width: {
|
|
20
|
+
control: { type: 'number' },
|
|
21
|
+
},
|
|
22
|
+
...filterArgTypes,
|
|
23
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ImageProps } from './image.model';
|
|
3
|
+
import { ImageStyle } from './image.style';
|
|
4
|
+
|
|
5
|
+
export const Image = ({
|
|
6
|
+
url,
|
|
7
|
+
alt,
|
|
8
|
+
height,
|
|
9
|
+
width,
|
|
10
|
+
opacity,
|
|
11
|
+
fit = 'cover',
|
|
12
|
+
...rest
|
|
13
|
+
}: ImageProps): JSX.Element | null => {
|
|
14
|
+
return url ? (
|
|
15
|
+
<img src={url} alt={alt} style={ImageStyle({ fit, opacity, height, width, ...rest })} />
|
|
16
|
+
) : null;
|
|
17
|
+
};
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { ImageFit } from './image.types';
|
|
2
2
|
import { FilterProps } from '../filter';
|
|
3
|
+
|
|
3
4
|
export interface ImageProps extends FilterProps {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
url?: string | undefined;
|
|
6
|
+
alt?: string;
|
|
7
|
+
fit?: ImageFit;
|
|
8
|
+
height?: number;
|
|
9
|
+
width?: number;
|
|
9
10
|
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Image } from './image.component';
|
|
3
|
+
import { ImageProps } from './image.model';
|
|
4
|
+
import { imageArgTypes } from './image.argTypes';
|
|
5
|
+
|
|
6
|
+
export default {
|
|
7
|
+
title: 'Core/Image',
|
|
8
|
+
component: Image,
|
|
9
|
+
argTypes: { ...imageArgTypes },
|
|
10
|
+
parameters: {
|
|
11
|
+
layout: 'fullscreen',
|
|
12
|
+
},
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export const ImagePlayground = (args: ImageProps) => <Image {...args} />;
|
|
16
|
+
|
|
17
|
+
const ImagePlaygroundProps: Partial<ImageProps> = {
|
|
18
|
+
fit: 'contain',
|
|
19
|
+
url: 'https://www.rollingstone.com/wp-content/uploads/2018/06/rs-108784-e569415749457a65514cfe8b509d7ead8b7b4013.jpg?w=500',
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
ImagePlayground.args = ImagePlaygroundProps;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { CSSProperties } from 'react';
|
|
2
|
+
import { ImageProps } from './image.model';
|
|
3
|
+
import { FilterStyle } from '../filter/filter.style';
|
|
4
|
+
|
|
5
|
+
export const ImageStyle = (props: Partial<ImageProps>): CSSProperties => {
|
|
6
|
+
const { fit, opacity, height, width, ...rest } = props;
|
|
7
|
+
|
|
8
|
+
const filter = FilterStyle({ ...rest });
|
|
9
|
+
|
|
10
|
+
const objectFit = height || width ? {} : { objectFit: fit };
|
|
11
|
+
|
|
12
|
+
return {
|
|
13
|
+
...objectFit,
|
|
14
|
+
width: (width && `${width}px`) || '100vw',
|
|
15
|
+
height: (height && `${height}px`) || '100vh',
|
|
16
|
+
opacity,
|
|
17
|
+
...filter,
|
|
18
|
+
};
|
|
19
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
interface ScreenSize {
|
|
4
|
+
height: number;
|
|
5
|
+
width: number;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
const LayoutContext = React.createContext<ScreenSize>({ height: 1000, width: 1000 });
|
|
9
|
+
|
|
10
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
11
|
+
LayoutContext.displayName = 'LayoutContext';
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export default LayoutContext;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { getDeviceOrientation, getDeviceSize, Layout } from '@uni-design-system/uni-core';
|
|
3
|
+
import LayoutContext from './layout.context';
|
|
4
|
+
|
|
5
|
+
export function useLayout(): Layout {
|
|
6
|
+
const { height, width } = React.useContext(LayoutContext);
|
|
7
|
+
const deviceSize = getDeviceSize(height, width);
|
|
8
|
+
const orientation = getDeviceOrientation(height, width);
|
|
9
|
+
|
|
10
|
+
return { orientation, deviceSize };
|
|
11
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import LayoutContext from './layout.context';
|
|
3
|
+
|
|
4
|
+
// @ts-ignore
|
|
5
|
+
export const LayoutProvider = ({ children }) => {
|
|
6
|
+
const getWidth = () => document.documentElement.clientWidth;
|
|
7
|
+
const getHeight = () => document.documentElement.clientHeight;
|
|
8
|
+
|
|
9
|
+
const [width, setWidth] = React.useState(getWidth);
|
|
10
|
+
const [height, setHeight] = React.useState(getHeight);
|
|
11
|
+
|
|
12
|
+
const handleWindowResize = () => {
|
|
13
|
+
setWidth(getWidth);
|
|
14
|
+
setHeight(getHeight);
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
React.useEffect(() => {
|
|
18
|
+
window.addEventListener('resize', handleWindowResize);
|
|
19
|
+
return () => window.removeEventListener('resize', handleWindowResize);
|
|
20
|
+
}, []);
|
|
21
|
+
|
|
22
|
+
return <LayoutContext.Provider value={{ height, width }}>{children}</LayoutContext.Provider>;
|
|
23
|
+
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { AnimatePresence, motion } from 'framer-motion';
|
|
3
|
+
import { OverlayStyle } from './overlay.config';
|
|
4
|
+
import { useTheme } from '../theme';
|
|
5
|
+
import { OverlayProps } from './overlay.model';
|
|
6
|
+
|
|
7
|
+
export const Overlay = (props: OverlayProps): JSX.Element => {
|
|
8
|
+
const { isOpen, fadeDuration = 0.35 } = props;
|
|
9
|
+
const theme = useTheme();
|
|
10
|
+
const overlayStyle = OverlayStyle(theme, props);
|
|
11
|
+
|
|
12
|
+
return (
|
|
13
|
+
<AnimatePresence>
|
|
14
|
+
{isOpen && (
|
|
15
|
+
<motion.div
|
|
16
|
+
initial={{ opacity: 0 }}
|
|
17
|
+
animate={{ opacity: 1 }}
|
|
18
|
+
exit={{ opacity: 0 }}
|
|
19
|
+
transition={{ duration: fadeDuration }}
|
|
20
|
+
style={overlayStyle}
|
|
21
|
+
>
|
|
22
|
+
{props.children}
|
|
23
|
+
</motion.div>
|
|
24
|
+
)}
|
|
25
|
+
</AnimatePresence>
|
|
26
|
+
);
|
|
27
|
+
};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { UniTheme, HSLAToString } from '@uni-design-system/uni-core';
|
|
2
|
+
import { CSSProperties } from 'react';
|
|
3
|
+
import { OverlayProps } from './overlay.model';
|
|
4
|
+
|
|
5
|
+
export const OverlayStyle = (
|
|
6
|
+
theme: UniTheme,
|
|
7
|
+
{
|
|
8
|
+
hueRotateDeg = 0,
|
|
9
|
+
hueDeg = 0,
|
|
10
|
+
saturation = 0,
|
|
11
|
+
lightness = 0,
|
|
12
|
+
transparency = 0.5,
|
|
13
|
+
blurPx = 0,
|
|
14
|
+
}: OverlayProps
|
|
15
|
+
): CSSProperties => {
|
|
16
|
+
const backgroundColor = HSLAToString({ hue: hueDeg, saturation, lightness, alpha: transparency });
|
|
17
|
+
|
|
18
|
+
return {
|
|
19
|
+
position: 'fixed',
|
|
20
|
+
left: '0',
|
|
21
|
+
top: '0',
|
|
22
|
+
width: '100vw',
|
|
23
|
+
height: '100vh',
|
|
24
|
+
backgroundColor,
|
|
25
|
+
backdropFilter: `blur(${blurPx}px) hue-rotate(${hueRotateDeg}deg)`,
|
|
26
|
+
display: 'flex',
|
|
27
|
+
alignItems: 'center',
|
|
28
|
+
justifyContent: 'center',
|
|
29
|
+
};
|
|
30
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
|
|
3
|
+
export interface OverlayProps {
|
|
4
|
+
children?: ReactNode;
|
|
5
|
+
blurPx?: number;
|
|
6
|
+
hueRotateDeg?: number;
|
|
7
|
+
hueDeg?: number;
|
|
8
|
+
saturation?: number;
|
|
9
|
+
lightness?: number;
|
|
10
|
+
transparency?: number;
|
|
11
|
+
isOpen?: boolean;
|
|
12
|
+
fadeDuration?: number;
|
|
13
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Overlay } from './overlay.component';
|
|
3
|
+
import { OverlayProps } from './overlay.model';
|
|
4
|
+
import { transitionArgTypes } from '../transition/transition.argTypes';
|
|
5
|
+
|
|
6
|
+
export default {
|
|
7
|
+
title: 'Core/Overlay',
|
|
8
|
+
component: Overlay,
|
|
9
|
+
argTypes: {
|
|
10
|
+
hueDeg: {
|
|
11
|
+
control: { type: 'range', min: 0, max: 360, step: 1 },
|
|
12
|
+
table: {
|
|
13
|
+
type: { summary: 'number' },
|
|
14
|
+
defaultValue: { summary: '0' },
|
|
15
|
+
},
|
|
16
|
+
description: 'The hue in degrees.',
|
|
17
|
+
},
|
|
18
|
+
|
|
19
|
+
saturation: {
|
|
20
|
+
control: { type: 'range', min: 0, max: 100, step: 1 },
|
|
21
|
+
table: {
|
|
22
|
+
type: { summary: 'number' },
|
|
23
|
+
defaultValue: { summary: '0' },
|
|
24
|
+
},
|
|
25
|
+
description: 'A number from 1-100 to define the color saturation percentage.',
|
|
26
|
+
},
|
|
27
|
+
|
|
28
|
+
lightness: {
|
|
29
|
+
control: { type: 'range', min: 0, max: 100, step: 1 },
|
|
30
|
+
table: {
|
|
31
|
+
type: { summary: 'number' },
|
|
32
|
+
defaultValue: { summary: '0' },
|
|
33
|
+
},
|
|
34
|
+
description: 'A number from 1-100 to define the color lightness percentage.',
|
|
35
|
+
},
|
|
36
|
+
|
|
37
|
+
transparency: {
|
|
38
|
+
control: { type: 'range', min: 0, max: 1, step: 0.01 },
|
|
39
|
+
table: {
|
|
40
|
+
type: { summary: 'number' },
|
|
41
|
+
defaultValue: { summary: '0.5' },
|
|
42
|
+
},
|
|
43
|
+
description: 'A decimal of 1 to define the color lightness percentage.',
|
|
44
|
+
},
|
|
45
|
+
|
|
46
|
+
blurPx: {
|
|
47
|
+
control: { type: 'range', min: 0, max: 100, step: 1 },
|
|
48
|
+
table: {
|
|
49
|
+
type: { summary: 'number' },
|
|
50
|
+
defaultValue: { summary: '0' },
|
|
51
|
+
},
|
|
52
|
+
description: 'The amount of blur defined in pixels.',
|
|
53
|
+
},
|
|
54
|
+
|
|
55
|
+
hueRotateDeg: {
|
|
56
|
+
control: { type: 'range', min: 0, max: 360, step: 1 },
|
|
57
|
+
table: {
|
|
58
|
+
type: { summary: 'number' },
|
|
59
|
+
defaultValue: { summary: '0' },
|
|
60
|
+
},
|
|
61
|
+
description: 'The hue in degrees.',
|
|
62
|
+
},
|
|
63
|
+
...transitionArgTypes,
|
|
64
|
+
},
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
export const OverlayPlayground = (args: OverlayProps) => <Overlay {...args} />;
|
|
68
|
+
|
|
69
|
+
const OverlayPlaygroundProps: Partial<OverlayProps> = {
|
|
70
|
+
isOpen: true,
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
OverlayPlayground.args = OverlayPlaygroundProps;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { CSSProperties } from 'react';
|
|
2
|
+
import { Apply, Size } from '@uni-design-system/uni-core';
|
|
3
|
+
|
|
4
|
+
export function Padding(size: Size, apply: Apply): CSSProperties {
|
|
5
|
+
const amount: number = 16;
|
|
6
|
+
const unit: string = 'px';
|
|
7
|
+
|
|
8
|
+
const PaddingMap: Record<Apply, CSSProperties> = {
|
|
9
|
+
top: {
|
|
10
|
+
paddingTop: amount + unit,
|
|
11
|
+
},
|
|
12
|
+
bottom: {
|
|
13
|
+
paddingBottom: amount + unit,
|
|
14
|
+
},
|
|
15
|
+
left: {
|
|
16
|
+
paddingLeft: amount + unit,
|
|
17
|
+
},
|
|
18
|
+
right: {
|
|
19
|
+
paddingRight: amount + unit,
|
|
20
|
+
},
|
|
21
|
+
vertical: {
|
|
22
|
+
paddingTop: amount + unit,
|
|
23
|
+
paddingBottom: amount + unit,
|
|
24
|
+
},
|
|
25
|
+
horizontal: {
|
|
26
|
+
paddingLeft: amount + unit,
|
|
27
|
+
paddingRight: amount + unit,
|
|
28
|
+
},
|
|
29
|
+
all: {
|
|
30
|
+
padding: amount + unit,
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
return PaddingMap[apply];
|
|
35
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import React, { ReactNode, useContext } from 'react';
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
ColorToken,
|
|
5
|
+
ContentColorToken,
|
|
6
|
+
FontWeight,
|
|
7
|
+
FontWeightMap,
|
|
8
|
+
HorizontalAlign,
|
|
9
|
+
Size,
|
|
10
|
+
TextRole,
|
|
11
|
+
} from '@uni-design-system/uni-core';
|
|
12
|
+
import { useTheme } from '../theme';
|
|
13
|
+
import { ContainerContext } from '../container';
|
|
14
|
+
|
|
15
|
+
export interface TextProps {
|
|
16
|
+
text?: string;
|
|
17
|
+
children?: ReactNode;
|
|
18
|
+
align?: HorizontalAlign;
|
|
19
|
+
role?: TextRole;
|
|
20
|
+
scale?: Size;
|
|
21
|
+
colorToken?: ContentColorToken;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export function Text(props: TextProps) {
|
|
25
|
+
const { text, children, align, role = 'body-1-long', colorToken: overridingColorToken } = props;
|
|
26
|
+
const { colors, typography } = useTheme();
|
|
27
|
+
|
|
28
|
+
const { colorToken: containerColorToken } = useContext(ContainerContext);
|
|
29
|
+
|
|
30
|
+
const colorToken = containerColorToken ? (`on-${containerColorToken}` as ColorToken) : undefined;
|
|
31
|
+
|
|
32
|
+
const { fontSize, letterSpacing, lineHeight, fontWeight, fontFamily, fontStyle, textTransform } =
|
|
33
|
+
typography[role];
|
|
34
|
+
|
|
35
|
+
const style = {
|
|
36
|
+
color: colors[overridingColorToken || colorToken || 'on-surface'],
|
|
37
|
+
fontSize: fontSize + 'px',
|
|
38
|
+
letterSpacing,
|
|
39
|
+
textAlign: align,
|
|
40
|
+
textTransform,
|
|
41
|
+
lineHeight: lineHeight + 'px',
|
|
42
|
+
fontFamily,
|
|
43
|
+
fontStyle,
|
|
44
|
+
fontWeight: FontWeightMap[fontWeight as FontWeight],
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
return <div style={style}>{text || children}</div>;
|
|
48
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { Text, TextProps } from './text.component';
|
|
3
|
+
|
|
4
|
+
export default {
|
|
5
|
+
title: 'Typography/Text',
|
|
6
|
+
component: Text,
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
const baseArgs: Partial<TextProps> = {
|
|
10
|
+
text: 'UNI Design System',
|
|
11
|
+
colorToken: 'on-background',
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export const DisplayLarge = (args: TextProps) => <Text {...args} />;
|
|
15
|
+
DisplayLarge.args = { ...baseArgs, role: 'display-large' };
|
|
16
|
+
DisplayLarge.story = {
|
|
17
|
+
name: 'Display (large)',
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export const DisplayMedium = (args: TextProps) => <Text {...args} />;
|
|
21
|
+
DisplayMedium.args = { ...baseArgs, role: 'display-medium' };
|
|
22
|
+
DisplayMedium.story = {
|
|
23
|
+
name: 'Display (medium)',
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
export const DisplaySmall = (args: TextProps) => <Text {...args} />;
|
|
27
|
+
DisplaySmall.args = { ...baseArgs, role: 'display-small' };
|
|
28
|
+
DisplaySmall.story = {
|
|
29
|
+
name: 'Display (small)',
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
export const HeadlineLarge = (args: TextProps) => <Text {...args} />;
|
|
33
|
+
HeadlineLarge.args = { ...baseArgs, role: 'headline-large' };
|
|
34
|
+
HeadlineLarge.story = {
|
|
35
|
+
name: 'Headline (large)',
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
export const HeadlineMedium = (args: TextProps) => <Text {...args} />;
|
|
39
|
+
HeadlineMedium.args = { ...baseArgs, role: 'headline-medium' };
|
|
40
|
+
HeadlineMedium.story = {
|
|
41
|
+
name: 'Headline (medium)',
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
export const HeadlineSmall = (args: TextProps) => <Text {...args} />;
|
|
45
|
+
HeadlineSmall.args = { ...baseArgs, role: 'headline-small' };
|
|
46
|
+
HeadlineSmall.story = {
|
|
47
|
+
name: 'Headline (small)',
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
export const TitleLarge = (args: TextProps) => <Text {...args} />;
|
|
51
|
+
TitleLarge.args = { ...baseArgs, role: 'title-large' };
|
|
52
|
+
TitleLarge.story = {
|
|
53
|
+
name: 'Title (large)',
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
export const TitleMedium = (args: TextProps) => <Text {...args} />;
|
|
57
|
+
TitleMedium.args = { ...baseArgs, role: 'title-medium' };
|
|
58
|
+
TitleMedium.story = {
|
|
59
|
+
name: 'Title (medium)',
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
export const TitleSmall = (args: TextProps) => <Text {...args} />;
|
|
63
|
+
TitleSmall.args = { ...baseArgs, role: 'title-small' };
|
|
64
|
+
TitleSmall.story = {
|
|
65
|
+
name: 'Title (small)',
|
|
66
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { ThemeProvider, withTheme, useTheme } from './theming';
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import React, { createContext, useContext, useMemo } from 'react';
|
|
2
|
+
import { LightTheme, type UniTheme } from '@uni-design-system/uni-core';
|
|
3
|
+
|
|
4
|
+
const defaultTheme = LightTheme;
|
|
5
|
+
|
|
6
|
+
const ThemeContext = createContext<UniTheme>(defaultTheme);
|
|
7
|
+
|
|
8
|
+
export const ThemeProvider: React.FC<{ theme?: UniTheme; children: React.ReactNode }> = ({
|
|
9
|
+
theme,
|
|
10
|
+
children,
|
|
11
|
+
}) => {
|
|
12
|
+
// Use useMemo to prevent unnecessary re-renders when the parent re-renders
|
|
13
|
+
const value = useMemo(() => theme || defaultTheme, [theme]);
|
|
14
|
+
return <ThemeContext.Provider value={value}>{children}</ThemeContext.Provider>;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export const useTheme = () => {
|
|
18
|
+
const context = useContext(ThemeContext);
|
|
19
|
+
if (!context) throw new Error('useTheme must be used within ThemeProvider');
|
|
20
|
+
return context;
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export function withTheme<P extends { theme: UniTheme }>(
|
|
24
|
+
Component: React.ComponentType<P>
|
|
25
|
+
): React.ComponentType<Omit<P, 'theme'>> {
|
|
26
|
+
return function WrappedComponent(props: any) {
|
|
27
|
+
const theme = useTheme();
|
|
28
|
+
return <Component {...props} theme={theme} />;
|
|
29
|
+
};
|
|
30
|
+
}
|