@udixio/ui-react 0.4.2 → 1.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/.eslintrc.mjs +22 -0
- package/.storybook/main.ts +20 -0
- package/.storybook/preview.ts +1 -0
- package/CHANGELOG.md +63 -0
- package/dist/index.cjs +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2811 -0
- package/dist/lib/components/Button.d.ts +9 -0
- package/dist/lib/components/Button.d.ts.map +1 -0
- package/{src → dist}/lib/components/Card.d.ts +5 -0
- package/dist/lib/components/Card.d.ts.map +1 -0
- package/{src → dist}/lib/components/Carousel.d.ts +6 -0
- package/dist/lib/components/Carousel.d.ts.map +1 -0
- package/{src → dist}/lib/components/CarouselItem.d.ts +4 -0
- package/dist/lib/components/CarouselItem.d.ts.map +1 -0
- package/dist/lib/components/Divider.d.ts +9 -0
- package/dist/lib/components/Divider.d.ts.map +1 -0
- package/dist/lib/components/Fab.d.ts +9 -0
- package/dist/lib/components/Fab.d.ts.map +1 -0
- package/dist/lib/components/IconButton.d.ts +10 -0
- package/dist/lib/components/IconButton.d.ts.map +1 -0
- package/{src → dist}/lib/components/NavigationRail.d.ts +5 -0
- package/dist/lib/components/NavigationRail.d.ts.map +1 -0
- package/{src → dist}/lib/components/NavigationRailItem.d.ts +9 -1
- package/dist/lib/components/NavigationRailItem.d.ts.map +1 -0
- package/dist/lib/components/ProgressIndicator.d.ts +8 -0
- package/dist/lib/components/ProgressIndicator.d.ts.map +1 -0
- package/{src → dist}/lib/components/Slider.d.ts +5 -0
- package/dist/lib/components/Slider.d.ts.map +1 -0
- package/dist/lib/components/Snackbar.d.ts +9 -0
- package/dist/lib/components/Snackbar.d.ts.map +1 -0
- package/{src → dist}/lib/components/Switch.d.ts +5 -0
- package/dist/lib/components/Switch.d.ts.map +1 -0
- package/{src → dist}/lib/components/Tab.d.ts +4 -0
- package/dist/lib/components/Tab.d.ts.map +1 -0
- package/{src → dist}/lib/components/Tabs.d.ts +5 -0
- package/dist/lib/components/Tabs.d.ts.map +1 -0
- package/{src → dist}/lib/components/TextField.d.ts +5 -0
- package/dist/lib/components/TextField.d.ts.map +1 -0
- package/{src → dist}/lib/components/ToolTip.d.ts +5 -0
- package/dist/lib/components/ToolTip.d.ts.map +1 -0
- package/{src → dist}/lib/components/index.d.ts +1 -1
- package/dist/lib/components/index.d.ts.map +1 -0
- package/dist/lib/effects/SyncedFixedWrapper.d.ts.map +1 -0
- package/dist/lib/effects/custom-scroll/custom-scroll.effect.d.ts.map +1 -0
- package/dist/lib/effects/custom-scroll/custom-scroll.interface.d.ts.map +1 -0
- package/dist/lib/effects/custom-scroll/custom-scroll.style.d.ts.map +1 -0
- package/dist/lib/effects/custom-scroll/index.d.ts.map +1 -0
- package/dist/lib/effects/index.d.ts.map +1 -0
- package/dist/lib/effects/ripple/RippleEffect.d.ts.map +1 -0
- package/dist/lib/effects/ripple/index.d.ts.map +1 -0
- package/dist/lib/effects/smooth-scroll.effect.d.ts.map +1 -0
- package/dist/lib/icon/icon.d.ts.map +1 -0
- package/dist/lib/icon/index.d.ts.map +1 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/{src → dist}/lib/interfaces/button.interface.d.ts +9 -3
- package/dist/lib/interfaces/button.interface.d.ts.map +1 -0
- package/{src → dist}/lib/interfaces/card.interface.d.ts +2 -0
- package/dist/lib/interfaces/card.interface.d.ts.map +1 -0
- package/dist/lib/interfaces/carousel-item.interface.d.ts.map +1 -0
- package/{src → dist}/lib/interfaces/carousel.interface.d.ts +3 -2
- package/dist/lib/interfaces/carousel.interface.d.ts.map +1 -0
- package/dist/lib/interfaces/divider.interface.d.ts.map +1 -0
- package/{src → dist}/lib/interfaces/fab.interface.d.ts +2 -1
- package/dist/lib/interfaces/fab.interface.d.ts.map +1 -0
- package/{src → dist}/lib/interfaces/icon-button.interface.d.ts +3 -2
- package/dist/lib/interfaces/icon-button.interface.d.ts.map +1 -0
- package/dist/lib/interfaces/index.d.ts.map +1 -0
- package/{src → dist}/lib/interfaces/navigation-rail-item.interface.d.ts +1 -0
- package/dist/lib/interfaces/navigation-rail-item.interface.d.ts.map +1 -0
- package/dist/lib/interfaces/navigation-rail.interface.d.ts.map +1 -0
- package/dist/lib/interfaces/progress-indicator.interface.d.ts.map +1 -0
- package/dist/lib/interfaces/slider.interface.d.ts.map +1 -0
- package/{src → dist}/lib/interfaces/snackbar.interface.d.ts +1 -1
- package/dist/lib/interfaces/snackbar.interface.d.ts.map +1 -0
- package/dist/lib/interfaces/switch.interface.d.ts.map +1 -0
- package/dist/lib/interfaces/tab.interface.d.ts.map +1 -0
- package/{src → dist}/lib/interfaces/tabs.interface.d.ts +1 -1
- package/dist/lib/interfaces/tabs.interface.d.ts.map +1 -0
- package/dist/lib/interfaces/text-field.interface.d.ts.map +1 -0
- package/dist/lib/interfaces/tooltip.interface.d.ts.map +1 -0
- package/{src → dist}/lib/styles/button.style.d.ts +22 -8
- package/dist/lib/styles/button.style.d.ts.map +1 -0
- package/{src → dist}/lib/styles/card.style.d.ts +2 -0
- package/dist/lib/styles/card.style.d.ts.map +1 -0
- package/dist/lib/styles/carousel-item.style.d.ts.map +1 -0
- package/{src → dist}/lib/styles/carousel.style.d.ts +1 -1
- package/dist/lib/styles/carousel.style.d.ts.map +1 -0
- package/dist/lib/styles/divider.style.d.ts.map +1 -0
- package/{src → dist}/lib/styles/fab.style.d.ts +6 -2
- package/dist/lib/styles/fab.style.d.ts.map +1 -0
- package/{src → dist}/lib/styles/icon-button.style.d.ts +9 -5
- package/dist/lib/styles/icon-button.style.d.ts.map +1 -0
- package/dist/lib/styles/index.d.ts.map +1 -0
- package/{src → dist}/lib/styles/navigation-rail-item.style.d.ts +2 -0
- package/dist/lib/styles/navigation-rail-item.style.d.ts.map +1 -0
- package/dist/lib/styles/navigation-rail.style.d.ts.map +1 -0
- package/dist/lib/styles/progress-indicator.style.d.ts.map +1 -0
- package/dist/lib/styles/slider.style.d.ts.map +1 -0
- package/{src → dist}/lib/styles/snackbar.style.d.ts +2 -2
- package/dist/lib/styles/snackbar.style.d.ts.map +1 -0
- package/dist/lib/styles/switch.style.d.ts.map +1 -0
- package/{src → dist}/lib/styles/tab.style.d.ts +1 -1
- package/dist/lib/styles/tab.style.d.ts.map +1 -0
- package/{src → dist}/lib/styles/tabs.style.d.ts +1 -1
- package/dist/lib/styles/tabs.style.d.ts.map +1 -0
- package/dist/lib/styles/text-field.style.d.ts.map +1 -0
- package/dist/lib/styles/tooltip.style.d.ts.map +1 -0
- package/dist/lib/utils/component-helper.d.ts.map +1 -0
- package/{src → dist}/lib/utils/component.d.ts +1 -1
- package/dist/lib/utils/component.d.ts.map +1 -0
- package/dist/lib/utils/index.d.ts.map +1 -0
- package/dist/lib/utils/string.d.ts.map +1 -0
- package/dist/lib/utils/styles/classnames.d.ts.map +1 -0
- package/dist/lib/utils/styles/get-classname.d.ts.map +1 -0
- package/dist/lib/utils/styles/index.d.ts.map +1 -0
- package/package.json +31 -8
- package/postcss.config.mjs +5 -0
- package/src/index.css +4 -0
- package/src/index.ts +1 -0
- package/src/lib/components/Button.tsx +174 -0
- package/src/lib/components/Card.tsx +36 -0
- package/src/lib/components/Carousel.tsx +196 -0
- package/src/lib/components/CarouselItem.tsx +58 -0
- package/src/lib/components/Divider.tsx +18 -0
- package/src/lib/components/Fab.tsx +122 -0
- package/src/lib/components/IconButton.tsx +155 -0
- package/src/lib/components/NavigationRail.tsx +177 -0
- package/src/lib/components/NavigationRailItem.tsx +211 -0
- package/src/lib/components/ProgressIndicator.tsx +154 -0
- package/src/lib/components/Slider.tsx +366 -0
- package/src/lib/components/Snackbar.tsx +71 -0
- package/src/lib/components/Switch.tsx +99 -0
- package/src/lib/components/Tab.tsx +114 -0
- package/src/lib/components/Tabs.tsx +90 -0
- package/src/lib/components/TextField.tsx +274 -0
- package/src/lib/components/ToolTip.tsx +232 -0
- package/src/lib/components/index.ts +19 -0
- package/src/lib/effects/SyncedFixedWrapper.tsx +62 -0
- package/src/lib/effects/custom-scroll/custom-scroll.effect.tsx +287 -0
- package/src/lib/effects/custom-scroll/custom-scroll.interface.ts +25 -0
- package/src/lib/effects/custom-scroll/custom-scroll.style.ts +32 -0
- package/src/lib/effects/custom-scroll/index.ts +3 -0
- package/src/lib/effects/index.ts +4 -0
- package/src/lib/effects/ripple/RippleEffect.tsx +103 -0
- package/src/lib/effects/ripple/index.tsx +1 -0
- package/src/lib/effects/smooth-scroll.effect.tsx +91 -0
- package/src/lib/icon/icon.tsx +47 -0
- package/src/lib/icon/index.ts +1 -0
- package/src/lib/index.ts +6 -0
- package/src/lib/interfaces/button.interface.ts +54 -0
- package/src/lib/interfaces/card.interface.ts +11 -0
- package/src/lib/interfaces/carousel-item.interface.ts +11 -0
- package/src/lib/interfaces/carousel.interface.ts +22 -0
- package/src/lib/interfaces/divider.interface.ts +7 -0
- package/src/lib/interfaces/fab.interface.ts +20 -0
- package/src/lib/interfaces/icon-button.interface.ts +36 -0
- package/src/lib/interfaces/index.ts +16 -0
- package/src/lib/interfaces/navigation-rail-item.interface.ts +39 -0
- package/src/lib/interfaces/navigation-rail.interface.ts +39 -0
- package/src/lib/interfaces/progress-indicator.interface.ts +35 -0
- package/src/lib/interfaces/slider.interface.ts +27 -0
- package/src/lib/interfaces/snackbar.interface.ts +13 -0
- package/src/lib/interfaces/switch.interface.ts +14 -0
- package/src/lib/interfaces/tab.interface.ts +30 -0
- package/src/lib/interfaces/tabs.interface.ts +22 -0
- package/src/lib/interfaces/text-field.interface.ts +48 -0
- package/src/lib/interfaces/tooltip.interface.ts +35 -0
- package/src/lib/styles/button.style.ts +142 -0
- package/src/lib/styles/card.style.ts +21 -0
- package/src/lib/styles/carousel-item.style.ts +11 -0
- package/src/lib/styles/carousel.style.ts +12 -0
- package/src/lib/styles/divider.style.ts +17 -0
- package/src/lib/styles/fab.style.ts +55 -0
- package/src/lib/styles/icon-button.style.ts +167 -0
- package/src/lib/styles/index.ts +15 -0
- package/src/lib/styles/navigation-rail-item.style.ts +44 -0
- package/src/lib/styles/navigation-rail.style.ts +20 -0
- package/src/lib/styles/progress-indicator.style.ts +43 -0
- package/src/lib/styles/slider.style.ts +27 -0
- package/src/lib/styles/snackbar.style.ts +14 -0
- package/src/lib/styles/switch.style.ts +51 -0
- package/src/lib/styles/tab.style.ts +68 -0
- package/src/lib/styles/tabs.style.ts +13 -0
- package/src/lib/styles/text-field.style.ts +104 -0
- package/src/lib/styles/tooltip.style.ts +37 -0
- package/src/lib/utils/component-helper.ts +134 -0
- package/src/lib/utils/component.ts +34 -0
- package/src/lib/utils/index.ts +7 -0
- package/src/lib/utils/string.ts +9 -0
- package/src/lib/utils/styles/classnames.ts +49 -0
- package/src/lib/utils/styles/get-classname.ts +73 -0
- package/src/lib/utils/styles/index.ts +3 -0
- package/src/stories/action/button.stories.tsx +86 -0
- package/src/stories/action/fab.stories.tsx +54 -0
- package/src/stories/action/icon-button.stories.tsx +134 -0
- package/src/stories/assets/accessibility.png +0 -0
- package/src/stories/assets/accessibility.svg +5 -0
- package/src/stories/assets/addon-library.png +0 -0
- package/src/stories/assets/assets.png +0 -0
- package/src/stories/assets/context.png +0 -0
- package/src/stories/assets/discord.svg +15 -0
- package/src/stories/assets/docs.png +0 -0
- package/src/stories/assets/figma-plugin.png +0 -0
- package/src/stories/assets/github.svg +3 -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 +12 -0
- package/src/stories/assets/youtube.svg +4 -0
- package/src/stories/communication/ProgressIndicator.stories.tsx +57 -0
- package/src/stories/communication/SnackBar.stories.tsx +32 -0
- package/src/stories/communication/tool-tip.stories.tsx +133 -0
- package/src/stories/containment/card.stories.tsx +42 -0
- package/src/stories/containment/carousel.stories.tsx +65 -0
- package/src/stories/containment/divider.stories.tsx +35 -0
- package/src/stories/effect/smooth-scroll.stories.tsx +45 -0
- package/src/stories/navigation/navigation-rail/navigation-rail-item.stories.tsx +65 -0
- package/src/stories/navigation/navigation-rail/navigation-rail.stories.tsx +122 -0
- package/src/stories/navigation/tabs/tab.stories.tsx +57 -0
- package/src/stories/navigation/tabs/tabs.stories.tsx +102 -0
- package/src/stories/selection/slider.stories.tsx +85 -0
- package/src/stories/selection/switch.stories.tsx +46 -0
- package/src/stories/text-inputs/text-field.stories.tsx +135 -0
- package/src/tests/Button.spec.tsx +67 -0
- package/src/udixio.css +120 -0
- package/theme.config.ts +7 -0
- package/tsconfig.json +22 -0
- package/tsconfig.lib.json +51 -0
- package/tsconfig.spec.json +37 -0
- package/tsconfig.storybook.json +38 -0
- package/vite.config.ts +77 -0
- package/index.js +0 -5
- package/index.mjs +0 -2823
- package/src/index.d.ts.map +0 -1
- package/src/lib/components/Button.d.ts +0 -7
- package/src/lib/components/Button.d.ts.map +0 -1
- package/src/lib/components/Card.d.ts.map +0 -1
- package/src/lib/components/Carousel.d.ts.map +0 -1
- package/src/lib/components/CarouselItem.d.ts.map +0 -1
- package/src/lib/components/Divided.d.ts +0 -4
- package/src/lib/components/Divided.d.ts.map +0 -1
- package/src/lib/components/Fab.d.ts +0 -4
- package/src/lib/components/Fab.d.ts.map +0 -1
- package/src/lib/components/IconButton.d.ts +0 -5
- package/src/lib/components/IconButton.d.ts.map +0 -1
- package/src/lib/components/NavigationRail.d.ts.map +0 -1
- package/src/lib/components/NavigationRailItem.d.ts.map +0 -1
- package/src/lib/components/ProgressIndicator.d.ts +0 -4
- package/src/lib/components/ProgressIndicator.d.ts.map +0 -1
- package/src/lib/components/Slider.d.ts.map +0 -1
- package/src/lib/components/Snackbar.d.ts +0 -4
- package/src/lib/components/Snackbar.d.ts.map +0 -1
- package/src/lib/components/Switch.d.ts.map +0 -1
- package/src/lib/components/Tab.d.ts.map +0 -1
- package/src/lib/components/Tabs.d.ts.map +0 -1
- package/src/lib/components/TextField.d.ts.map +0 -1
- package/src/lib/components/ToolTip.d.ts.map +0 -1
- package/src/lib/components/index.d.ts.map +0 -1
- package/src/lib/effects/SyncedFixedWrapper.d.ts.map +0 -1
- package/src/lib/effects/custom-scroll/custom-scroll.effect.d.ts.map +0 -1
- package/src/lib/effects/custom-scroll/custom-scroll.interface.d.ts.map +0 -1
- package/src/lib/effects/custom-scroll/custom-scroll.style.d.ts.map +0 -1
- package/src/lib/effects/custom-scroll/index.d.ts.map +0 -1
- package/src/lib/effects/index.d.ts.map +0 -1
- package/src/lib/effects/ripple/RippleEffect.d.ts.map +0 -1
- package/src/lib/effects/ripple/index.d.ts.map +0 -1
- package/src/lib/effects/smooth-scroll.effect.d.ts.map +0 -1
- package/src/lib/icon/icon.d.ts.map +0 -1
- package/src/lib/icon/index.d.ts.map +0 -1
- package/src/lib/index.d.ts.map +0 -1
- package/src/lib/interfaces/button.interface.d.ts.map +0 -1
- package/src/lib/interfaces/card.interface.d.ts.map +0 -1
- package/src/lib/interfaces/carousel-item.interface.d.ts.map +0 -1
- package/src/lib/interfaces/carousel.interface.d.ts.map +0 -1
- package/src/lib/interfaces/divider.interface.d.ts.map +0 -1
- package/src/lib/interfaces/fab.interface.d.ts.map +0 -1
- package/src/lib/interfaces/icon-button.interface.d.ts.map +0 -1
- package/src/lib/interfaces/index.d.ts.map +0 -1
- package/src/lib/interfaces/navigation-rail-item.interface.d.ts.map +0 -1
- package/src/lib/interfaces/navigation-rail.interface.d.ts.map +0 -1
- package/src/lib/interfaces/progress-indicator.interface.d.ts.map +0 -1
- package/src/lib/interfaces/slider.interface.d.ts.map +0 -1
- package/src/lib/interfaces/snackbar.interface.d.ts.map +0 -1
- package/src/lib/interfaces/switch.interface.d.ts.map +0 -1
- package/src/lib/interfaces/tab.interface.d.ts.map +0 -1
- package/src/lib/interfaces/tabs.interface.d.ts.map +0 -1
- package/src/lib/interfaces/text-field.interface.d.ts.map +0 -1
- package/src/lib/interfaces/tooltip.interface.d.ts.map +0 -1
- package/src/lib/styles/button.style.d.ts.map +0 -1
- package/src/lib/styles/card.style.d.ts.map +0 -1
- package/src/lib/styles/carousel-item.style.d.ts.map +0 -1
- package/src/lib/styles/carousel.style.d.ts.map +0 -1
- package/src/lib/styles/divider.style.d.ts.map +0 -1
- package/src/lib/styles/fab.style.d.ts.map +0 -1
- package/src/lib/styles/icon-button.style.d.ts.map +0 -1
- package/src/lib/styles/index.d.ts.map +0 -1
- package/src/lib/styles/navigation-rail-item.style.d.ts.map +0 -1
- package/src/lib/styles/navigation-rail.style.d.ts.map +0 -1
- package/src/lib/styles/progress-indicator.style.d.ts.map +0 -1
- package/src/lib/styles/slider.style.d.ts.map +0 -1
- package/src/lib/styles/snackbar.style.d.ts.map +0 -1
- package/src/lib/styles/switch.style.d.ts.map +0 -1
- package/src/lib/styles/tab.style.d.ts.map +0 -1
- package/src/lib/styles/tabs.style.d.ts.map +0 -1
- package/src/lib/styles/text-field.style.d.ts.map +0 -1
- package/src/lib/styles/tooltip.style.d.ts.map +0 -1
- package/src/lib/utils/component-helper.d.ts.map +0 -1
- package/src/lib/utils/component.d.ts.map +0 -1
- package/src/lib/utils/index.d.ts.map +0 -1
- package/src/lib/utils/string.d.ts.map +0 -1
- package/src/lib/utils/styles/classnames.d.ts.map +0 -1
- package/src/lib/utils/styles/get-classname.d.ts.map +0 -1
- package/src/lib/utils/styles/index.d.ts.map +0 -1
- /package/{LICENSE → dist/LICENSE} +0 -0
- /package/{src → dist}/index.d.ts +0 -0
- /package/{src → dist}/lib/effects/SyncedFixedWrapper.d.ts +0 -0
- /package/{src → dist}/lib/effects/custom-scroll/custom-scroll.effect.d.ts +0 -0
- /package/{src → dist}/lib/effects/custom-scroll/custom-scroll.interface.d.ts +0 -0
- /package/{src → dist}/lib/effects/custom-scroll/custom-scroll.style.d.ts +0 -0
- /package/{src → dist}/lib/effects/custom-scroll/index.d.ts +0 -0
- /package/{src → dist}/lib/effects/index.d.ts +0 -0
- /package/{src → dist}/lib/effects/ripple/RippleEffect.d.ts +0 -0
- /package/{src → dist}/lib/effects/ripple/index.d.ts +0 -0
- /package/{src → dist}/lib/effects/smooth-scroll.effect.d.ts +0 -0
- /package/{src → dist}/lib/icon/icon.d.ts +0 -0
- /package/{src → dist}/lib/icon/index.d.ts +0 -0
- /package/{src → dist}/lib/index.d.ts +0 -0
- /package/{src → dist}/lib/interfaces/carousel-item.interface.d.ts +0 -0
- /package/{src → dist}/lib/interfaces/divider.interface.d.ts +0 -0
- /package/{src → dist}/lib/interfaces/index.d.ts +0 -0
- /package/{src → dist}/lib/interfaces/navigation-rail.interface.d.ts +0 -0
- /package/{src → dist}/lib/interfaces/progress-indicator.interface.d.ts +0 -0
- /package/{src → dist}/lib/interfaces/slider.interface.d.ts +0 -0
- /package/{src → dist}/lib/interfaces/switch.interface.d.ts +0 -0
- /package/{src → dist}/lib/interfaces/tab.interface.d.ts +0 -0
- /package/{src → dist}/lib/interfaces/text-field.interface.d.ts +0 -0
- /package/{src → dist}/lib/interfaces/tooltip.interface.d.ts +0 -0
- /package/{src → dist}/lib/styles/carousel-item.style.d.ts +0 -0
- /package/{src → dist}/lib/styles/divider.style.d.ts +0 -0
- /package/{src → dist}/lib/styles/index.d.ts +0 -0
- /package/{src → dist}/lib/styles/navigation-rail.style.d.ts +0 -0
- /package/{src → dist}/lib/styles/progress-indicator.style.d.ts +0 -0
- /package/{src → dist}/lib/styles/slider.style.d.ts +0 -0
- /package/{src → dist}/lib/styles/switch.style.d.ts +0 -0
- /package/{src → dist}/lib/styles/text-field.style.d.ts +0 -0
- /package/{src → dist}/lib/styles/tooltip.style.d.ts +0 -0
- /package/{src → dist}/lib/utils/component-helper.d.ts +0 -0
- /package/{src → dist}/lib/utils/index.d.ts +0 -0
- /package/{src → dist}/lib/utils/string.d.ts +0 -0
- /package/{src → dist}/lib/utils/styles/classnames.d.ts +0 -0
- /package/{src → dist}/lib/utils/styles/get-classname.d.ts +0 -0
- /package/{src → dist}/lib/utils/styles/index.d.ts +0 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ReactElement } from 'react';
|
|
2
|
+
import { CarouselItem } from '../components';
|
|
3
|
+
|
|
4
|
+
export interface CarouselInterface {
|
|
5
|
+
type: 'div';
|
|
6
|
+
props: {
|
|
7
|
+
children?: ReactElement<typeof CarouselItem>[];
|
|
8
|
+
marginPourcent?: number;
|
|
9
|
+
onChange?: (index: number) => void;
|
|
10
|
+
variant?:
|
|
11
|
+
| 'hero'
|
|
12
|
+
| 'center-aligned hero'
|
|
13
|
+
| 'multi-browse'
|
|
14
|
+
| 'un-contained'
|
|
15
|
+
| 'full-screen';
|
|
16
|
+
scrollSensitivity?: number;
|
|
17
|
+
gap?: number;
|
|
18
|
+
inputRange?: [number, number];
|
|
19
|
+
outputRange?: [number, number];
|
|
20
|
+
};
|
|
21
|
+
elements: ['carousel', 'track'];
|
|
22
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { IconDefinition } from '@fortawesome/fontawesome-svg-core';
|
|
2
|
+
import { ActionOrLink } from '../utils/component';
|
|
3
|
+
import { Transition } from 'motion';
|
|
4
|
+
|
|
5
|
+
export type FabVariant = 'surface' | 'primary' | 'secondary' | 'tertiary';
|
|
6
|
+
type Props = {
|
|
7
|
+
variant?: FabVariant;
|
|
8
|
+
label?: string;
|
|
9
|
+
children?: string;
|
|
10
|
+
icon: IconDefinition;
|
|
11
|
+
size?: 'small' | 'medium' | 'large';
|
|
12
|
+
isExtended?: boolean;
|
|
13
|
+
transition?: Transition;
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
export type Elements = ['fab', 'stateLayer', 'icon', 'label'];
|
|
17
|
+
|
|
18
|
+
export type FabInterface = ActionOrLink<Props> & {
|
|
19
|
+
elements: Elements;
|
|
20
|
+
};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { IconDefinition } from '@fortawesome/fontawesome-svg-core';
|
|
2
|
+
import { IconButtonVariant } from '../components/IconButton';
|
|
3
|
+
import { ActionOrLink } from '../utils/component';
|
|
4
|
+
import { Transition } from 'motion';
|
|
5
|
+
|
|
6
|
+
type Props = {
|
|
7
|
+
label?: string;
|
|
8
|
+
children?: string;
|
|
9
|
+
icon: IconDefinition;
|
|
10
|
+
size?: 'xSmall' | 'small' | 'medium' | 'large' | 'xLarge';
|
|
11
|
+
width?: 'default' | 'narrow' | 'wide';
|
|
12
|
+
iconSelected?: IconDefinition;
|
|
13
|
+
onToggle?: (isActive: boolean) => void;
|
|
14
|
+
variant?: IconButtonVariant;
|
|
15
|
+
disabled?: boolean;
|
|
16
|
+
activated?: boolean;
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* The shape of the button defines whether it is squared or rounded.
|
|
20
|
+
*/
|
|
21
|
+
shape?: 'squared' | 'rounded';
|
|
22
|
+
|
|
23
|
+
allowShapeTransformation?: boolean;
|
|
24
|
+
|
|
25
|
+
transition?: Transition;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
export type IconButtonStates = {
|
|
29
|
+
isActive: boolean;
|
|
30
|
+
};
|
|
31
|
+
type Elements = ['iconButton', 'stateLayer', 'touchTarget', 'icon'];
|
|
32
|
+
|
|
33
|
+
export type IconButtonInterface = ActionOrLink<Props> & {
|
|
34
|
+
states: IconButtonStates;
|
|
35
|
+
elements: Elements;
|
|
36
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export * from './button.interface';
|
|
2
|
+
export * from './card.interface';
|
|
3
|
+
export * from './carousel-item.interface';
|
|
4
|
+
export * from './carousel.interface';
|
|
5
|
+
export * from './divider.interface';
|
|
6
|
+
export * from './fab.interface';
|
|
7
|
+
export * from './icon-button.interface';
|
|
8
|
+
export * from './progress-indicator.interface';
|
|
9
|
+
export * from './slider.interface';
|
|
10
|
+
export * from './snackbar.interface';
|
|
11
|
+
export * from './switch.interface';
|
|
12
|
+
export * from './tab.interface';
|
|
13
|
+
export * from './tabs.interface';
|
|
14
|
+
export * from './text-field.interface';
|
|
15
|
+
export * from './navigation-rail-item.interface';
|
|
16
|
+
export * from './tooltip.interface';
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { ActionOrLink } from '../utils';
|
|
2
|
+
import { IconDefinition } from '@fortawesome/fontawesome-svg-core';
|
|
3
|
+
import { Dispatch, RefObject, SetStateAction } from 'react';
|
|
4
|
+
import { Transition } from 'motion';
|
|
5
|
+
|
|
6
|
+
export type NavProps = {
|
|
7
|
+
selected?: boolean;
|
|
8
|
+
variant?: 'vertical' | 'horizontal';
|
|
9
|
+
label?: string;
|
|
10
|
+
children?: string;
|
|
11
|
+
icon: IconDefinition;
|
|
12
|
+
iconSelected: IconDefinition;
|
|
13
|
+
selectedItem?: number | null;
|
|
14
|
+
setSelectedItem?: Dispatch<SetStateAction<number | null>>;
|
|
15
|
+
onItemSelected?: (
|
|
16
|
+
args: { index: number } & Pick<NavProps, 'label' | 'icon'> & {
|
|
17
|
+
ref: RefObject<any>;
|
|
18
|
+
},
|
|
19
|
+
) => void;
|
|
20
|
+
index?: number;
|
|
21
|
+
transition?: Transition;
|
|
22
|
+
extendedOnly?: boolean;
|
|
23
|
+
isExtended?: boolean;
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
type Elements = [
|
|
27
|
+
'navigationRailItem',
|
|
28
|
+
'stateLayer',
|
|
29
|
+
'icon',
|
|
30
|
+
'label',
|
|
31
|
+
'container',
|
|
32
|
+
];
|
|
33
|
+
|
|
34
|
+
export type NavigationRailItemInterface = ActionOrLink<NavProps> & {
|
|
35
|
+
states: {
|
|
36
|
+
isSelected: boolean;
|
|
37
|
+
};
|
|
38
|
+
elements: Elements;
|
|
39
|
+
};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Dispatch, ReactNode, RefObject, SetStateAction } from 'react';
|
|
2
|
+
import { IconDefinition } from '@fortawesome/fontawesome-svg-core';
|
|
3
|
+
import { Transition } from 'motion';
|
|
4
|
+
import { ReactProps } from '../utils';
|
|
5
|
+
import { NavigationRailItemInterface } from './navigation-rail-item.interface';
|
|
6
|
+
|
|
7
|
+
type MenuState = {
|
|
8
|
+
icon: IconDefinition;
|
|
9
|
+
label: string;
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export interface NavigationRailInterface {
|
|
13
|
+
type: 'div';
|
|
14
|
+
props: {
|
|
15
|
+
variant?: 'standard' | 'modal';
|
|
16
|
+
onItemSelected?: (
|
|
17
|
+
args: { index: number } & Pick<
|
|
18
|
+
ReactProps<NavigationRailItemInterface>,
|
|
19
|
+
'label' | 'icon'
|
|
20
|
+
> & {
|
|
21
|
+
ref: RefObject<any>;
|
|
22
|
+
}
|
|
23
|
+
) => void;
|
|
24
|
+
children: ReactNode;
|
|
25
|
+
selectedItem?: number | null;
|
|
26
|
+
setSelectedItem?: Dispatch<SetStateAction<number | null>>;
|
|
27
|
+
extended?: boolean;
|
|
28
|
+
alignment?: 'middle' | 'top';
|
|
29
|
+
menu?: {
|
|
30
|
+
closed: MenuState;
|
|
31
|
+
opened: MenuState;
|
|
32
|
+
};
|
|
33
|
+
onExtendedChange?: (extended: boolean) => void;
|
|
34
|
+
|
|
35
|
+
transition?: Transition;
|
|
36
|
+
};
|
|
37
|
+
states: { isExtended?: boolean };
|
|
38
|
+
elements: ['navigationRail', 'header', 'menuIcon', 'segments'];
|
|
39
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type for the different variants of the ProgressIndicator component.
|
|
3
|
+
*/
|
|
4
|
+
export type ProgressIndicatorVariant =
|
|
5
|
+
| 'linear-determinate'
|
|
6
|
+
| 'linear-indeterminate'
|
|
7
|
+
| 'circular-determinate'
|
|
8
|
+
| 'circular-indeterminate';
|
|
9
|
+
|
|
10
|
+
export interface ProgressIndicatorInterface {
|
|
11
|
+
type: 'div';
|
|
12
|
+
props: {
|
|
13
|
+
/**
|
|
14
|
+
* The percentage of the progress completed.
|
|
15
|
+
*/
|
|
16
|
+
value?: number;
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* The duration of the transition animation in milliseconds.
|
|
20
|
+
*/
|
|
21
|
+
transitionDuration?: number;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* The variant of the ProgressIndicator.
|
|
25
|
+
*/
|
|
26
|
+
variant?: ProgressIndicatorVariant;
|
|
27
|
+
/**
|
|
28
|
+
* The minimum height of the line used to draw the linear indicator.
|
|
29
|
+
*/
|
|
30
|
+
minHeight?: number;
|
|
31
|
+
};
|
|
32
|
+
states: { isVisible: boolean };
|
|
33
|
+
|
|
34
|
+
elements: ['progressIndicator', 'stop', 'activeIndicator', 'track'];
|
|
35
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export interface SliderInterface {
|
|
2
|
+
type: 'div';
|
|
3
|
+
props: {
|
|
4
|
+
value?: number;
|
|
5
|
+
name: string;
|
|
6
|
+
onChange?: (value: number) => void;
|
|
7
|
+
valueFormatter?: (value: number) => string | number;
|
|
8
|
+
step?: number;
|
|
9
|
+
min?: number;
|
|
10
|
+
max?: number;
|
|
11
|
+
marks?: {
|
|
12
|
+
value: number;
|
|
13
|
+
label?: string;
|
|
14
|
+
}[];
|
|
15
|
+
};
|
|
16
|
+
states: {
|
|
17
|
+
isChanging: boolean;
|
|
18
|
+
};
|
|
19
|
+
elements: [
|
|
20
|
+
'slider',
|
|
21
|
+
'activeTrack',
|
|
22
|
+
'handle',
|
|
23
|
+
'inactiveTrack',
|
|
24
|
+
'valueIndicator',
|
|
25
|
+
'dot',
|
|
26
|
+
];
|
|
27
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { IconDefinition } from '@fortawesome/fontawesome-svg-core';
|
|
2
|
+
|
|
3
|
+
export interface SnackbarInterface {
|
|
4
|
+
type: 'div';
|
|
5
|
+
props: {
|
|
6
|
+
duration?: number;
|
|
7
|
+
onClose?: () => void;
|
|
8
|
+
message: string;
|
|
9
|
+
closeIcon?: IconDefinition;
|
|
10
|
+
};
|
|
11
|
+
states: { isVisible: boolean };
|
|
12
|
+
elements: ['snackbar', 'container', 'supportingText', 'action', 'icon'];
|
|
13
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { IconDefinition } from '@fortawesome/fontawesome-svg-core';
|
|
2
|
+
|
|
3
|
+
export interface SwitchInterface {
|
|
4
|
+
type: 'div';
|
|
5
|
+
props: {
|
|
6
|
+
selected?: boolean;
|
|
7
|
+
activeIcon?: IconDefinition;
|
|
8
|
+
inactiveIcon?: IconDefinition;
|
|
9
|
+
disabled?: boolean;
|
|
10
|
+
onChange?: (checked: boolean) => void;
|
|
11
|
+
};
|
|
12
|
+
states: { isSelected: boolean };
|
|
13
|
+
elements: ['switch', 'handleContainer', 'icon', 'handleStateLayer', 'handle'];
|
|
14
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { ActionOrLink } from '../utils/component';
|
|
2
|
+
import { IconDefinition } from '@fortawesome/fontawesome-svg-core';
|
|
3
|
+
import { TabsVariant } from './tabs.interface';
|
|
4
|
+
import { Dispatch, RefObject, SetStateAction } from 'react';
|
|
5
|
+
|
|
6
|
+
export type TabProps = {
|
|
7
|
+
selected?: boolean;
|
|
8
|
+
variant?: TabsVariant;
|
|
9
|
+
label?: string;
|
|
10
|
+
icon?: IconDefinition;
|
|
11
|
+
selectedTab?: number | null;
|
|
12
|
+
setSelectedTab?: Dispatch<SetStateAction<number | null>>;
|
|
13
|
+
tabsId?: string;
|
|
14
|
+
onTabSelected?: (
|
|
15
|
+
args: { index: number } & Pick<TabProps, 'label' | 'icon'> & {
|
|
16
|
+
ref: RefObject<any>;
|
|
17
|
+
}
|
|
18
|
+
) => void;
|
|
19
|
+
index?: number;
|
|
20
|
+
scrollable?: boolean;
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
type Elements = ['tab', 'stateLayer', 'icon', 'label', 'content', 'underline'];
|
|
24
|
+
|
|
25
|
+
export type TabInterface = ActionOrLink<TabProps> & {
|
|
26
|
+
states: {
|
|
27
|
+
isSelected: boolean;
|
|
28
|
+
};
|
|
29
|
+
elements: Elements;
|
|
30
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { TabProps } from './tab.interface';
|
|
2
|
+
import { Dispatch, ReactNode, RefObject, SetStateAction } from 'react';
|
|
3
|
+
|
|
4
|
+
export type TabsVariant = 'primary' | 'secondary';
|
|
5
|
+
|
|
6
|
+
export interface TabsInterface {
|
|
7
|
+
type: 'div';
|
|
8
|
+
props: {
|
|
9
|
+
variant?: TabsVariant;
|
|
10
|
+
onTabSelected?: (
|
|
11
|
+
args: { index: number } & Pick<TabProps, 'label' | 'icon'> & {
|
|
12
|
+
ref: RefObject<any>;
|
|
13
|
+
},
|
|
14
|
+
) => void;
|
|
15
|
+
children: ReactNode;
|
|
16
|
+
selectedTab?: number | null;
|
|
17
|
+
setSelectedTab?: Dispatch<SetStateAction<number | null>>;
|
|
18
|
+
scrollable?: boolean;
|
|
19
|
+
};
|
|
20
|
+
states: object;
|
|
21
|
+
elements: ['tabs'];
|
|
22
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { IconDefinition } from '@fortawesome/fontawesome-svg-core';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { IconButton } from '../components/IconButton';
|
|
4
|
+
|
|
5
|
+
export type TextFieldVariant = 'filled' | 'outlined';
|
|
6
|
+
|
|
7
|
+
type Props = {
|
|
8
|
+
placeholder?: string;
|
|
9
|
+
name: string;
|
|
10
|
+
label: string;
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
errorText?: string | null;
|
|
13
|
+
supportingText?: string;
|
|
14
|
+
trailingIcon?: React.ReactElement<typeof IconButton> | IconDefinition;
|
|
15
|
+
leadingIcon?: React.ReactElement<typeof IconButton> | IconDefinition;
|
|
16
|
+
onChange?: (value: string) => void;
|
|
17
|
+
showSupportingText?: boolean;
|
|
18
|
+
suffix?: string;
|
|
19
|
+
|
|
20
|
+
value: string;
|
|
21
|
+
variant?: TextFieldVariant;
|
|
22
|
+
type?: 'text' | 'password' | 'number';
|
|
23
|
+
autoComplete?: 'on' | 'off' | string;
|
|
24
|
+
textLine?: 'singleLine' | 'multiLine' | 'textAreas';
|
|
25
|
+
};
|
|
26
|
+
export type TextFieldStates = {
|
|
27
|
+
isFocused: boolean;
|
|
28
|
+
showErrorIcon: boolean;
|
|
29
|
+
showSupportingText: boolean;
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
export interface TextFieldInterface {
|
|
33
|
+
type: 'div';
|
|
34
|
+
props: Props;
|
|
35
|
+
states: TextFieldStates;
|
|
36
|
+
elements: [
|
|
37
|
+
'textField',
|
|
38
|
+
'content',
|
|
39
|
+
'label',
|
|
40
|
+
'input',
|
|
41
|
+
'activeIndicator',
|
|
42
|
+
'supportingText',
|
|
43
|
+
'leadingIcon',
|
|
44
|
+
'trailingIcon',
|
|
45
|
+
'suffix',
|
|
46
|
+
'stateLayer',
|
|
47
|
+
];
|
|
48
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { ReactProps } from '../utils';
|
|
2
|
+
import { ButtonInterface } from './button.interface';
|
|
3
|
+
import { ReactNode, RefObject } from 'react';
|
|
4
|
+
|
|
5
|
+
type Trigger = 'hover' | 'click' | 'focus' | null;
|
|
6
|
+
|
|
7
|
+
export type ToolTipInterface<T extends HTMLElement = any> = {
|
|
8
|
+
type: 'div';
|
|
9
|
+
props: {
|
|
10
|
+
variant?: 'plain' | 'rich';
|
|
11
|
+
title?: string;
|
|
12
|
+
text: string;
|
|
13
|
+
buttons?: ReactProps<ButtonInterface> | ReactProps<ButtonInterface>[];
|
|
14
|
+
position?:
|
|
15
|
+
| 'top'
|
|
16
|
+
| 'bottom'
|
|
17
|
+
| 'left'
|
|
18
|
+
| 'right'
|
|
19
|
+
| 'top-left'
|
|
20
|
+
| 'top-right'
|
|
21
|
+
| 'bottom-left'
|
|
22
|
+
| 'bottom-right';
|
|
23
|
+
trigger?: Trigger | Trigger[];
|
|
24
|
+
} & (
|
|
25
|
+
| {
|
|
26
|
+
children?: never;
|
|
27
|
+
targetRef: RefObject<T>;
|
|
28
|
+
}
|
|
29
|
+
| {
|
|
30
|
+
children: ReactNode;
|
|
31
|
+
targetRef?: never;
|
|
32
|
+
}
|
|
33
|
+
);
|
|
34
|
+
elements: ['toolTip', 'container', 'subHead', 'supportingText', 'actions'];
|
|
35
|
+
};
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { classNames, defaultClassNames } from '../utils';
|
|
2
|
+
import { ButtonInterface } from '../interfaces';
|
|
3
|
+
|
|
4
|
+
export const buttonStyle = defaultClassNames<ButtonInterface>(
|
|
5
|
+
'button',
|
|
6
|
+
({
|
|
7
|
+
variant,
|
|
8
|
+
disabled,
|
|
9
|
+
iconPosition,
|
|
10
|
+
icon,
|
|
11
|
+
isActive,
|
|
12
|
+
loading,
|
|
13
|
+
shape,
|
|
14
|
+
onToggle,
|
|
15
|
+
size,
|
|
16
|
+
allowShapeTransformation,
|
|
17
|
+
}) => ({
|
|
18
|
+
button: classNames(
|
|
19
|
+
' relative cursor-pointer group outline-none inline-block flex justify-center items-center ',
|
|
20
|
+
size === 'xSmall' && 'text-label-large px-3 py-1.5 gap-1',
|
|
21
|
+
size === 'small' && 'text-label-large px-4 py-2.5 gap-2',
|
|
22
|
+
size === 'medium' && 'text-title-medium px-6 py-4 gap-2',
|
|
23
|
+
size === 'large' && 'text-headline-small px-12 py-8 gap-3',
|
|
24
|
+
size === 'xLarge' && 'text-headline-large px-16 py-12 gap-4',
|
|
25
|
+
shape === 'rounded' && {
|
|
26
|
+
'rounded-[30px]': size === 'xSmall' || size == 'small',
|
|
27
|
+
'rounded-[40px]': size === 'medium',
|
|
28
|
+
'rounded-[70px]': size === 'large' || size == 'xLarge',
|
|
29
|
+
},
|
|
30
|
+
(shape === 'squared' || (allowShapeTransformation && isActive)) && {
|
|
31
|
+
'rounded-[12px]': size === 'xSmall' || size == 'small',
|
|
32
|
+
'rounded-[16px]': size === 'medium',
|
|
33
|
+
'rounded-[28px]': size === 'large' || size == 'xLarge',
|
|
34
|
+
},
|
|
35
|
+
allowShapeTransformation &&
|
|
36
|
+
!disabled && {
|
|
37
|
+
'active:rounded-[12px]': size === 'xSmall' || size == 'small',
|
|
38
|
+
'active:rounded-[16px]': size === 'medium',
|
|
39
|
+
'active:rounded-[28px]': size === 'large' || size == 'xLarge',
|
|
40
|
+
},
|
|
41
|
+
variant === 'elevated' && {
|
|
42
|
+
'shadow-1 hover:shadow-2': !disabled,
|
|
43
|
+
'bg-surface-container-low text-primary': !disabled && !isActive,
|
|
44
|
+
'bg-primary text-on-primary': !disabled && isActive,
|
|
45
|
+
'text-on-surface/[38%]': disabled,
|
|
46
|
+
},
|
|
47
|
+
variant === 'filled' && {
|
|
48
|
+
'hover:shadow-1': !disabled,
|
|
49
|
+
'bg-surface-container text-on-surface-variant':
|
|
50
|
+
!disabled && !isActive && onToggle,
|
|
51
|
+
'bg-primary text-on-primary':
|
|
52
|
+
!disabled && ((isActive && onToggle) || !onToggle),
|
|
53
|
+
'text-on-surface/[38%]': disabled,
|
|
54
|
+
},
|
|
55
|
+
variant === 'tonal' && {
|
|
56
|
+
'hover:shadow-1': !disabled,
|
|
57
|
+
'bg-secondary-container text-on-secondary-container':
|
|
58
|
+
!disabled && !isActive,
|
|
59
|
+
'bg-secondary text-on-secondary': !disabled && isActive,
|
|
60
|
+
'text-on-surface/[0.38]': disabled,
|
|
61
|
+
},
|
|
62
|
+
variant === 'outlined' && [
|
|
63
|
+
' border',
|
|
64
|
+
{
|
|
65
|
+
'border-on-surface/[0.12] text-on-surface/[0.38]': disabled,
|
|
66
|
+
|
|
67
|
+
'text-primary border-outline focus:border-primary':
|
|
68
|
+
!disabled && !isActive,
|
|
69
|
+
'text-inverse-on-surface bg-inverse-surface border-inverse-surface':
|
|
70
|
+
!disabled && isActive,
|
|
71
|
+
},
|
|
72
|
+
],
|
|
73
|
+
variant === 'text' && [
|
|
74
|
+
'w-fit',
|
|
75
|
+
{
|
|
76
|
+
'text-primary': !disabled,
|
|
77
|
+
'text-on-surface/[0.38]': disabled,
|
|
78
|
+
},
|
|
79
|
+
size === 'xSmall' && '-mx-3 ',
|
|
80
|
+
size === 'small' && '-mx-4 ',
|
|
81
|
+
size === 'medium' && '-mx-6 ',
|
|
82
|
+
size === 'large' && '-mx-12',
|
|
83
|
+
size === 'xLarge' && '-mx-16 ',
|
|
84
|
+
// size === 'small' && ' -my-2.5',
|
|
85
|
+
// size === 'medium' && ' -my-4',
|
|
86
|
+
// size === 'large' && '-my-8',
|
|
87
|
+
// size === 'xLarge' && ' -my-12',
|
|
88
|
+
],
|
|
89
|
+
disabled && 'cursor-default',
|
|
90
|
+
),
|
|
91
|
+
touchTarget: classNames(
|
|
92
|
+
'absolute -translate-x-1/2 -translate-y-1/2 left-1/2 top-1/2 h-12 w-full',
|
|
93
|
+
),
|
|
94
|
+
stateLayer: classNames(
|
|
95
|
+
'min-h-full min-w-full absolute top-0 left-0 overflow-hidden',
|
|
96
|
+
variant === 'elevated' && {
|
|
97
|
+
'bg-on-surface/[0.12]': disabled,
|
|
98
|
+
'group-state-primary': !disabled,
|
|
99
|
+
},
|
|
100
|
+
variant === 'filled' && {
|
|
101
|
+
'bg-on-surface/[0.12]': disabled,
|
|
102
|
+
'group-state-on-primary': !disabled && !onToggle,
|
|
103
|
+
'group-state-on-surface-variant': !disabled && onToggle,
|
|
104
|
+
},
|
|
105
|
+
shape === 'rounded' && {
|
|
106
|
+
'rounded-[30px]': size === 'xSmall' || size == 'small',
|
|
107
|
+
'rounded-[40px]': size === 'medium',
|
|
108
|
+
'rounded-[70px]': size === 'large' || size == 'xLarge',
|
|
109
|
+
},
|
|
110
|
+
(shape === 'squared' || (allowShapeTransformation && isActive)) && {
|
|
111
|
+
'rounded-[12px]': size === 'xSmall' || size == 'small',
|
|
112
|
+
'rounded-[16px]': size === 'medium',
|
|
113
|
+
'rounded-[28px]': size === 'large' || size == 'xLarge',
|
|
114
|
+
},
|
|
115
|
+
allowShapeTransformation &&
|
|
116
|
+
!disabled && {
|
|
117
|
+
'group-active:rounded-[12px]': size === 'xSmall' || size == 'small',
|
|
118
|
+
'group-active:rounded-[16px]': size === 'medium',
|
|
119
|
+
'group-active:rounded-[28px]': size === 'large' || size == 'xLarge',
|
|
120
|
+
},
|
|
121
|
+
variant === 'tonal' && {
|
|
122
|
+
'bg-on-surface/[0.12]': disabled,
|
|
123
|
+
'group-state-on-secondary-container ': !disabled,
|
|
124
|
+
},
|
|
125
|
+
variant === 'outlined' && {
|
|
126
|
+
'group-state-primary group-state-primary': !disabled,
|
|
127
|
+
},
|
|
128
|
+
variant === 'text' && {
|
|
129
|
+
'group-state-primary': !disabled,
|
|
130
|
+
},
|
|
131
|
+
),
|
|
132
|
+
label: classNames({ invisible: loading }),
|
|
133
|
+
icon: classNames(
|
|
134
|
+
{ invisible: loading },
|
|
135
|
+
size === 'xSmall' && 'size-5',
|
|
136
|
+
size === 'small' && 'size-5',
|
|
137
|
+
size === 'medium' && 'size-6',
|
|
138
|
+
size === 'large' && 'size-8',
|
|
139
|
+
size === 'xLarge' && 'size-10',
|
|
140
|
+
),
|
|
141
|
+
}),
|
|
142
|
+
);
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { CardInterface } from '../interfaces';
|
|
2
|
+
import { classNames, defaultClassNames } from '../utils';
|
|
3
|
+
|
|
4
|
+
export const cardStyle = defaultClassNames<CardInterface>(
|
|
5
|
+
'card',
|
|
6
|
+
({ variant, isInteractive }) => ({
|
|
7
|
+
card: classNames(
|
|
8
|
+
'card group/card rounded-xl overflow-hidden z-10',
|
|
9
|
+
variant === 'outlined' && 'bg-surface border border-outline-variant',
|
|
10
|
+
variant === 'elevated' && 'bg-surface-container-low shadow-1',
|
|
11
|
+
variant === 'filled' && 'bg-surface-container-highest',
|
|
12
|
+
),
|
|
13
|
+
stateLayer: classNames([
|
|
14
|
+
'w-full top-0 left-0 h-full absolute -z-10',
|
|
15
|
+
{
|
|
16
|
+
' group-hover/card:hover-state-on-surface group-focus-visible/card:focus-state-on-surface':
|
|
17
|
+
isInteractive,
|
|
18
|
+
},
|
|
19
|
+
]),
|
|
20
|
+
}),
|
|
21
|
+
);
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { CarouselItemInterface } from '../interfaces';
|
|
2
|
+
import { classNames, defaultClassNames } from '../utils';
|
|
3
|
+
|
|
4
|
+
export const carouselItemStyle = defaultClassNames<CarouselItemInterface>(
|
|
5
|
+
'carouselItem',
|
|
6
|
+
() => {
|
|
7
|
+
return {
|
|
8
|
+
carouselItem: classNames('rounded-[28px] overflow-hidden flex-none'),
|
|
9
|
+
};
|
|
10
|
+
},
|
|
11
|
+
);
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { classNames, defaultClassNames } from '../utils';
|
|
2
|
+
import { CarouselInterface } from '../interfaces';
|
|
3
|
+
|
|
4
|
+
export const carouselStyle = defaultClassNames<CarouselInterface>(
|
|
5
|
+
'carousel',
|
|
6
|
+
() => ({
|
|
7
|
+
carousel: classNames(['w-full h-[400px]']),
|
|
8
|
+
track: classNames(
|
|
9
|
+
'grid grid-flow-col h-full transition-transform ease-out w-fit',
|
|
10
|
+
),
|
|
11
|
+
}),
|
|
12
|
+
);
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { DividerInterface } from '../interfaces/divider.interface';
|
|
2
|
+
import { classNames, defaultClassNames } from '../utils';
|
|
3
|
+
|
|
4
|
+
export const dividerStyle = defaultClassNames<DividerInterface>(
|
|
5
|
+
'divider',
|
|
6
|
+
({ orientation }) => ({
|
|
7
|
+
divider: classNames(
|
|
8
|
+
'border-outline-variant ',
|
|
9
|
+
{
|
|
10
|
+
'h-fit w-full border-t': orientation === 'horizontal',
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
'h-auto self-stretch w-fit border-l': orientation === 'vertical',
|
|
14
|
+
}
|
|
15
|
+
),
|
|
16
|
+
})
|
|
17
|
+
);
|