sdaia-ui 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +89 -0
- package/dist/PlayVideoIcon-BM-4pwUd.d.cts +7 -0
- package/dist/PlayVideoIcon-BM-4pwUd.d.ts +7 -0
- package/dist/dga-icons.cjs +14 -0
- package/dist/dga-icons.cjs.map +1 -0
- package/dist/dga-icons.d.cts +1 -0
- package/dist/dga-icons.d.ts +1 -0
- package/dist/dga-icons.js +3 -0
- package/dist/dga-icons.js.map +1 -0
- package/dist/icons.cjs +4014 -0
- package/dist/icons.cjs.map +1 -0
- package/dist/icons.d.cts +756 -0
- package/dist/icons.d.ts +756 -0
- package/dist/icons.js +3871 -0
- package/dist/icons.js.map +1 -0
- package/dist/index.cjs +43620 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +9407 -0
- package/dist/index.d.ts +9407 -0
- package/dist/index.js +43411 -0
- package/dist/index.js.map +1 -0
- package/dist/styles.css +242 -0
- package/package.json +65 -0
- package/src/components/Accordion/Accordion.tsx +207 -0
- package/src/components/Accordion/Accordion.types.ts +36 -0
- package/src/components/Accordion/Accordion.variants.ts +283 -0
- package/src/components/Accordion/index.ts +9 -0
- package/src/components/ActionBar/ActionBar.tsx +192 -0
- package/src/components/ActionBar/ActionBar.types.ts +67 -0
- package/src/components/ActionBar/ActionBar.variants.ts +95 -0
- package/src/components/ActionBar/index.ts +8 -0
- package/src/components/Activity/Activity.tsx +52 -0
- package/src/components/Activity/Activity.types.ts +19 -0
- package/src/components/Activity/Activity.variants.ts +15 -0
- package/src/components/Activity/index.ts +2 -0
- package/src/components/ActivityItem/ActivityItem.tsx +298 -0
- package/src/components/ActivityItem/ActivityItem.types.ts +76 -0
- package/src/components/ActivityItem/ActivityItem.variants.ts +117 -0
- package/src/components/ActivityItem/index.ts +8 -0
- package/src/components/Alert/Alert.tsx +183 -0
- package/src/components/Alert/Alert.types.ts +34 -0
- package/src/components/Alert/Alert.variants.ts +168 -0
- package/src/components/Alert/index.ts +2 -0
- package/src/components/AreaChart/AreaChart.tsx +454 -0
- package/src/components/AreaChart/AreaChart.types.ts +117 -0
- package/src/components/AreaChart/AreaChart.variants.ts +202 -0
- package/src/components/AreaChart/index.ts +2 -0
- package/src/components/AspectRatio/AspectRatio.tsx +36 -0
- package/src/components/AspectRatio/AspectRatio.types.ts +33 -0
- package/src/components/AspectRatio/AspectRatio.variants.ts +42 -0
- package/src/components/AspectRatio/index.ts +2 -0
- package/src/components/AudioPlayer/AudioPlayer.tsx +294 -0
- package/src/components/AudioPlayer/AudioPlayer.types.ts +64 -0
- package/src/components/AudioPlayer/AudioPlayer.variants.ts +225 -0
- package/src/components/AudioPlayer/index.ts +2 -0
- package/src/components/Autocomplete/Autocomplete.tsx +353 -0
- package/src/components/Autocomplete/Autocomplete.types.ts +93 -0
- package/src/components/Autocomplete/Autocomplete.variants.ts +149 -0
- package/src/components/Autocomplete/index.ts +6 -0
- package/src/components/Avatar/Avatar.tsx +168 -0
- package/src/components/Avatar/Avatar.types.ts +36 -0
- package/src/components/Avatar/Avatar.variants.ts +102 -0
- package/src/components/Avatar/index.ts +7 -0
- package/src/components/AvatarGroup/AvatarGroup.tsx +87 -0
- package/src/components/AvatarGroup/AvatarGroup.types.ts +44 -0
- package/src/components/AvatarGroup/AvatarGroup.variants.ts +17 -0
- package/src/components/AvatarGroup/index.ts +6 -0
- package/src/components/Badge/Badge.tsx +74 -0
- package/src/components/Badge/Badge.types.ts +31 -0
- package/src/components/Badge/Badge.variants.ts +83 -0
- package/src/components/Badge/index.ts +2 -0
- package/src/components/Bar/Bar.tsx +57 -0
- package/src/components/Bar/Bar.types.ts +18 -0
- package/src/components/Bar/Bar.variants.ts +20 -0
- package/src/components/Bar/index.ts +2 -0
- package/src/components/BarChart/BarChart.tsx +179 -0
- package/src/components/BarChart/BarChart.types.ts +72 -0
- package/src/components/BarChart/BarChart.variants.ts +134 -0
- package/src/components/BarChart/index.ts +2 -0
- package/src/components/BarGroup/BarGroup.tsx +119 -0
- package/src/components/BarGroup/BarGroup.types.ts +50 -0
- package/src/components/BarGroup/BarGroup.variants.ts +76 -0
- package/src/components/BarGroup/index.ts +2 -0
- package/src/components/Breadcrumb/Breadcrumb.tsx +137 -0
- package/src/components/Breadcrumb/Breadcrumb.types.ts +21 -0
- package/src/components/Breadcrumb/BreadcrumbItem.tsx +267 -0
- package/src/components/Breadcrumb/BreadcrumbItem.types.ts +66 -0
- package/src/components/Breadcrumb/BreadcrumbItem.variants.ts +102 -0
- package/src/components/Breadcrumb/index.ts +12 -0
- package/src/components/Button/Button.tsx +100 -0
- package/src/components/Button/Button.types.ts +44 -0
- package/src/components/Button/Button.variants.ts +183 -0
- package/src/components/Button/index.ts +2 -0
- package/src/components/ButtonClose/ButtonClose.tsx +57 -0
- package/src/components/ButtonClose/ButtonClose.types.ts +18 -0
- package/src/components/ButtonClose/ButtonClose.variants.ts +72 -0
- package/src/components/ButtonClose/index.ts +2 -0
- package/src/components/ButtonGroup/ButtonGroup.tsx +127 -0
- package/src/components/ButtonGroup/ButtonGroup.types.ts +51 -0
- package/src/components/ButtonGroup/ButtonGroup.variants.ts +65 -0
- package/src/components/ButtonGroup/index.ts +2 -0
- package/src/components/ButtonMenu/ButtonMenu.tsx +73 -0
- package/src/components/ButtonMenu/ButtonMenu.types.ts +43 -0
- package/src/components/ButtonMenu/ButtonMenu.variants.ts +18 -0
- package/src/components/ButtonMenu/index.ts +2 -0
- package/src/components/ButtonSplit/ButtonSplit.tsx +344 -0
- package/src/components/ButtonSplit/ButtonSplit.types.ts +95 -0
- package/src/components/ButtonSplit/ButtonSplit.variants.ts +165 -0
- package/src/components/ButtonSplit/index.ts +7 -0
- package/src/components/ButtonsWithSdaiaTouch/ButtonHoverPattern.tsx +69 -0
- package/src/components/ButtonsWithSdaiaTouch/ButtonsWithSdaiaTouch.tsx +130 -0
- package/src/components/ButtonsWithSdaiaTouch/ButtonsWithSdaiaTouch.types.ts +4 -0
- package/src/components/ButtonsWithSdaiaTouch/ButtonsWithSdaiaTouch.variants.ts +19 -0
- package/src/components/ButtonsWithSdaiaTouch/index.ts +6 -0
- package/src/components/CLAUDE.md +212 -0
- package/src/components/CalendarHeader/CalendarHeader.tsx +224 -0
- package/src/components/CalendarHeader/CalendarHeader.types.ts +51 -0
- package/src/components/CalendarHeader/CalendarHeader.variants.ts +65 -0
- package/src/components/CalendarHeader/index.ts +2 -0
- package/src/components/Card/Card.tsx +76 -0
- package/src/components/Card/Card.types.ts +11 -0
- package/src/components/Card/Card.variants.ts +30 -0
- package/src/components/Card/index.ts +2 -0
- package/src/components/CardContent/CardContent.tsx +178 -0
- package/src/components/CardContent/CardContent.types.ts +70 -0
- package/src/components/CardContent/CardContent.variants.ts +90 -0
- package/src/components/CardContent/index.ts +6 -0
- package/src/components/CardFooter/CardFooter.tsx +196 -0
- package/src/components/CardFooter/CardFooter.types.ts +59 -0
- package/src/components/CardFooter/CardFooter.variants.ts +127 -0
- package/src/components/CardFooter/index.ts +8 -0
- package/src/components/CardHeader/CardHeader.tsx +150 -0
- package/src/components/CardHeader/CardHeader.types.ts +42 -0
- package/src/components/CardHeader/CardHeader.variants.ts +72 -0
- package/src/components/CardHeader/index.ts +5 -0
- package/src/components/CardLeadingItem/CardLeadingItem.tsx +166 -0
- package/src/components/CardLeadingItem/CardLeadingItem.types.ts +75 -0
- package/src/components/CardLeadingItem/CardLeadingItem.variants.ts +66 -0
- package/src/components/CardLeadingItem/index.ts +6 -0
- package/src/components/CardMedia/CardMedia.tsx +324 -0
- package/src/components/CardMedia/CardMedia.types.ts +114 -0
- package/src/components/CardMedia/CardMedia.variants.ts +139 -0
- package/src/components/CardMedia/index.ts +2 -0
- package/src/components/Carousel/Carousel.tsx +182 -0
- package/src/components/Carousel/Carousel.types.ts +38 -0
- package/src/components/Carousel/Carousel.variants.ts +17 -0
- package/src/components/Carousel/index.ts +2 -0
- package/src/components/CarouselArrow/CarouselArrow.tsx +66 -0
- package/src/components/CarouselArrow/CarouselArrow.types.ts +26 -0
- package/src/components/CarouselArrow/CarouselArrow.variants.ts +83 -0
- package/src/components/CarouselArrow/index.ts +7 -0
- package/src/components/CarouselControlsGroup/CarouselControlsGroup.tsx +81 -0
- package/src/components/CarouselControlsGroup/CarouselControlsGroup.types.ts +24 -0
- package/src/components/CarouselControlsGroup/CarouselControlsGroup.variants.ts +60 -0
- package/src/components/CarouselControlsGroup/index.ts +6 -0
- package/src/components/CarouselImage/CarouselImage.tsx +253 -0
- package/src/components/CarouselImage/CarouselImage.types.ts +72 -0
- package/src/components/CarouselImage/CarouselImage.variants.ts +43 -0
- package/src/components/CarouselImage/index.ts +6 -0
- package/src/components/Chart/Chart.tsx +3 -0
- package/src/components/Chart/Chart.types.ts +2 -0
- package/src/components/Chart/Chart.variants.ts +2 -0
- package/src/components/Chart/index.ts +2 -0
- package/src/components/ChartBadge/ChartBadge.tsx +62 -0
- package/src/components/ChartBadge/ChartBadge.types.ts +27 -0
- package/src/components/ChartBadge/ChartBadge.variants.ts +62 -0
- package/src/components/ChartBadge/index.ts +2 -0
- package/src/components/Checkbox/Checkbox.tsx +243 -0
- package/src/components/Checkbox/Checkbox.types.ts +20 -0
- package/src/components/Checkbox/index.ts +2 -0
- package/src/components/CheckboxLabel/CheckboxLabel.tsx +148 -0
- package/src/components/CheckboxLabel/CheckboxLabel.types.ts +55 -0
- package/src/components/CheckboxLabel/CheckboxLabel.variants.ts +35 -0
- package/src/components/CheckboxLabel/index.ts +2 -0
- package/src/components/Chip/Chip.tsx +245 -0
- package/src/components/Chip/Chip.types.ts +83 -0
- package/src/components/Chip/Chip.variants.ts +143 -0
- package/src/components/Chip/index.ts +2 -0
- package/src/components/CircularItem/CircularItem.tsx +133 -0
- package/src/components/CircularItem/CircularItem.types.ts +45 -0
- package/src/components/CircularItem/CircularItem.variants.ts +128 -0
- package/src/components/CircularItem/index.ts +7 -0
- package/src/components/CodeSnippet/CodeSnippet.tsx +421 -0
- package/src/components/CodeSnippet/CodeSnippet.types.ts +99 -0
- package/src/components/CodeSnippet/CodeSnippet.variants.ts +76 -0
- package/src/components/CodeSnippet/index.ts +9 -0
- package/src/components/ColumnChart/ColumnChart.tsx +943 -0
- package/src/components/ColumnChart/ColumnChart.types.ts +98 -0
- package/src/components/ColumnChart/ColumnChart.variants.ts +117 -0
- package/src/components/ColumnChart/index.ts +9 -0
- package/src/components/ComplexComposition/ComplexComposition.tsx +82 -0
- package/src/components/ComplexComposition/ComplexComposition.types.ts +3 -0
- package/src/components/ComplexComposition/ComplexComposition.variants.ts +14 -0
- package/src/components/ComplexComposition/index.ts +2 -0
- package/src/components/ContentSwitcher/ContentSwitcher.tsx +104 -0
- package/src/components/ContentSwitcher/ContentSwitcher.types.ts +28 -0
- package/src/components/ContentSwitcher/ContentSwitcher.variants.ts +70 -0
- package/src/components/ContentSwitcher/index.ts +6 -0
- package/src/components/ContentSwitcherItem/ContentSwitcherItem.tsx +56 -0
- package/src/components/ContentSwitcherItem/ContentSwitcherItem.types.ts +14 -0
- package/src/components/ContentSwitcherItem/ContentSwitcherItem.variants.ts +65 -0
- package/src/components/ContentSwitcherItem/index.ts +6 -0
- package/src/components/ContextMenu/ContextMenu.tsx +101 -0
- package/src/components/ContextMenu/ContextMenu.types.ts +64 -0
- package/src/components/ContextMenu/ContextMenu.variants.ts +36 -0
- package/src/components/ContextMenu/index.ts +7 -0
- package/src/components/ContextMenuDropdown/ContextMenuDropdown.tsx +370 -0
- package/src/components/ContextMenuDropdown/ContextMenuDropdown.types.ts +89 -0
- package/src/components/ContextMenuDropdown/ContextMenuDropdown.variants.ts +88 -0
- package/src/components/ContextMenuDropdown/index.ts +5 -0
- package/src/components/DateCell/DateCell.tsx +181 -0
- package/src/components/DateCell/DateCell.types.ts +53 -0
- package/src/components/DateCell/DateCell.variants.ts +217 -0
- package/src/components/DateCell/index.ts +2 -0
- package/src/components/DatePicker/DatePicker.tsx +923 -0
- package/src/components/DatePicker/DatePicker.types.ts +102 -0
- package/src/components/DatePicker/DatePicker.variants.ts +274 -0
- package/src/components/DatePicker/index.ts +9 -0
- package/src/components/DateTab/DateTab.tsx +91 -0
- package/src/components/DateTab/DateTab.types.ts +9 -0
- package/src/components/DateTab/DateTab.variants.ts +98 -0
- package/src/components/DateTab/index.ts +2 -0
- package/src/components/DgaIcon/DgaIcon.tsx +68 -0
- package/src/components/DgaIcon/DgaIcon.types.ts +57 -0
- package/src/components/DgaIcon/DgaIcon.variants.ts +41 -0
- package/src/components/DgaIcon/DgaIconByName.tsx +76 -0
- package/src/components/DgaIcon/generated/icon-names.ts +4388 -0
- package/src/components/DgaIcon/index.ts +12 -0
- package/src/components/DgaIcon/lib/decodeDataUrl.ts +46 -0
- package/src/components/DigitalStamp/DigitalStamp.tsx +236 -0
- package/src/components/DigitalStamp/DigitalStamp.types.ts +38 -0
- package/src/components/DigitalStamp/DigitalStamp.variants.ts +185 -0
- package/src/components/DigitalStamp/index.ts +2 -0
- package/src/components/Divider/Divider.tsx +83 -0
- package/src/components/Divider/Divider.types.ts +49 -0
- package/src/components/Divider/Divider.variants.ts +55 -0
- package/src/components/Divider/index.ts +8 -0
- package/src/components/DonutChart/DonutChart.tsx +251 -0
- package/src/components/DonutChart/DonutChart.types.ts +97 -0
- package/src/components/DonutChart/DonutChart.variants.ts +203 -0
- package/src/components/DonutChart/index.ts +7 -0
- package/src/components/DonutChartPanel/DonutChartPanel.tsx +778 -0
- package/src/components/DonutChartPanel/DonutChartPanel.types.ts +143 -0
- package/src/components/DonutChartPanel/DonutChartPanel.variants.ts +154 -0
- package/src/components/DonutChartPanel/index.ts +9 -0
- package/src/components/DraggableItem/DraggableItem.tsx +228 -0
- package/src/components/DraggableItem/DraggableItem.types.ts +72 -0
- package/src/components/DraggableItem/DraggableItem.variants.ts +149 -0
- package/src/components/DraggableItem/index.ts +3 -0
- package/src/components/DraggableList/DraggableList.tsx +20 -0
- package/src/components/DraggableList/DraggableList.types.ts +16 -0
- package/src/components/DraggableList/DraggableList.variants.ts +13 -0
- package/src/components/DraggableList/index.ts +3 -0
- package/src/components/Dropdown/Dropdown.tsx +331 -0
- package/src/components/Dropdown/Dropdown.types.ts +108 -0
- package/src/components/Dropdown/Dropdown.variants.ts +73 -0
- package/src/components/Dropdown/index.ts +9 -0
- package/src/components/DropdownListHeader/DropdownListHeader.tsx +79 -0
- package/src/components/DropdownListHeader/DropdownListHeader.types.ts +24 -0
- package/src/components/DropdownListHeader/DropdownListHeader.variants.ts +65 -0
- package/src/components/DropdownListHeader/index.ts +2 -0
- package/src/components/EmptyState/EmptyState.tsx +221 -0
- package/src/components/EmptyState/EmptyState.types.ts +48 -0
- package/src/components/EmptyState/EmptyState.variants.ts +122 -0
- package/src/components/EmptyState/index.ts +3 -0
- package/src/components/Extension/Extension.tsx +240 -0
- package/src/components/Extension/Extension.types.ts +40 -0
- package/src/components/Extension/Extension.variants.ts +27 -0
- package/src/components/Extension/index.ts +6 -0
- package/src/components/Feedback/Feedback.tsx +55 -0
- package/src/components/Feedback/Feedback.types.ts +15 -0
- package/src/components/Feedback/Feedback.variants.ts +9 -0
- package/src/components/Feedback/index.ts +2 -0
- package/src/components/FeedbackOverview/FeedbackOverview.tsx +70 -0
- package/src/components/FeedbackOverview/FeedbackOverview.types.ts +11 -0
- package/src/components/FeedbackOverview/FeedbackOverview.variants.ts +17 -0
- package/src/components/FeedbackOverview/index.ts +2 -0
- package/src/components/FeedbackReaction/FeedbackReaction.tsx +81 -0
- package/src/components/FeedbackReaction/FeedbackReaction.types.ts +14 -0
- package/src/components/FeedbackReaction/FeedbackReaction.variants.ts +39 -0
- package/src/components/FeedbackReaction/index.ts +2 -0
- package/src/components/FileUploadBase/FileUploadBase.tsx +104 -0
- package/src/components/FileUploadBase/FileUploadBase.types.ts +48 -0
- package/src/components/FileUploadBase/FileUploadBase.variants.ts +51 -0
- package/src/components/FileUploadBase/index.ts +2 -0
- package/src/components/FileUploadItemBase/FileUploadItemBase.tsx +197 -0
- package/src/components/FileUploadItemBase/FileUploadItemBase.types.ts +58 -0
- package/src/components/FileUploadItemBase/FileUploadItemBase.variants.ts +67 -0
- package/src/components/FileUploadItemBase/index.ts +6 -0
- package/src/components/FileUploader/FileUploader.tsx +164 -0
- package/src/components/FileUploader/FileUploader.types.ts +46 -0
- package/src/components/FileUploader/FileUploader.variants.ts +9 -0
- package/src/components/FileUploader/index.ts +2 -0
- package/src/components/Filtration/Filtration.tsx +260 -0
- package/src/components/Filtration/Filtration.types.ts +95 -0
- package/src/components/Filtration/Filtration.variants.ts +70 -0
- package/src/components/Filtration/index.ts +6 -0
- package/src/components/FiltrationItem/FiltrationItem.tsx +200 -0
- package/src/components/FiltrationItem/FiltrationItem.types.ts +57 -0
- package/src/components/FiltrationItem/FiltrationItem.variants.ts +81 -0
- package/src/components/FiltrationItem/index.ts +2 -0
- package/src/components/FiltrationList/FiltrationList.tsx +611 -0
- package/src/components/FiltrationList/FiltrationList.types.ts +191 -0
- package/src/components/FiltrationList/FiltrationList.variants.ts +283 -0
- package/src/components/FiltrationList/index.ts +16 -0
- package/src/components/FloatingButton/FloatingButton.tsx +89 -0
- package/src/components/FloatingButton/FloatingButton.types.ts +29 -0
- package/src/components/FloatingButton/FloatingButton.variants.ts +79 -0
- package/src/components/FloatingButton/index.ts +6 -0
- package/src/components/Footer/Footer.tsx +353 -0
- package/src/components/Footer/Footer.types.ts +142 -0
- package/src/components/Footer/Footer.variants.ts +137 -0
- package/src/components/Footer/index.ts +11 -0
- package/src/components/FooterItem/FooterItem.tsx +211 -0
- package/src/components/FooterItem/FooterItem.types.ts +45 -0
- package/src/components/FooterItem/FooterItem.variants.ts +139 -0
- package/src/components/FooterItem/index.ts +2 -0
- package/src/components/FooterLinkList/FooterLinkList.tsx +140 -0
- package/src/components/FooterLinkList/FooterLinkList.types.ts +46 -0
- package/src/components/FooterLinkList/FooterLinkList.variants.ts +64 -0
- package/src/components/FooterLinkList/index.ts +2 -0
- package/src/components/GraphBase/GraphBase.tsx +598 -0
- package/src/components/GraphBase/GraphBase.types.ts +101 -0
- package/src/components/GraphBase/GraphBase.variants.ts +126 -0
- package/src/components/GraphBase/index.ts +7 -0
- package/src/components/HeaderItem/HeaderItem.tsx +206 -0
- package/src/components/HeaderItem/HeaderItem.types.ts +73 -0
- package/src/components/HeaderItem/HeaderItem.variants.ts +139 -0
- package/src/components/HeaderItem/index.ts +2 -0
- package/src/components/HelpIcon/HelpIcon.tsx +173 -0
- package/src/components/HelpIcon/HelpIcon.types.ts +54 -0
- package/src/components/HelpIcon/HelpIcon.variants.ts +79 -0
- package/src/components/HelpIcon/index.ts +2 -0
- package/src/components/HorizontalTabs/HorizontalTabs.tsx +87 -0
- package/src/components/HorizontalTabs/HorizontalTabs.types.ts +41 -0
- package/src/components/HorizontalTabs/HorizontalTabs.variants.ts +54 -0
- package/src/components/HorizontalTabs/index.ts +6 -0
- package/src/components/IllustrationInstance/IllustrationInstance.tsx +46 -0
- package/src/components/IllustrationInstance/IllustrationInstance.types.ts +25 -0
- package/src/components/IllustrationInstance/IllustrationInstance.variants.ts +19 -0
- package/src/components/IllustrationInstance/index.ts +3 -0
- package/src/components/ImagePreview/ImagePreview.tsx +170 -0
- package/src/components/ImagePreview/ImagePreview.types.ts +54 -0
- package/src/components/ImagePreview/ImagePreview.variants.ts +39 -0
- package/src/components/ImagePreview/index.ts +2 -0
- package/src/components/Input/Input.tsx +113 -0
- package/src/components/Input/Input.types.ts +22 -0
- package/src/components/Input/index.ts +2 -0
- package/src/components/InputPrefixSuffix/InputPrefixSuffix.tsx +91 -0
- package/src/components/InputPrefixSuffix/InputPrefixSuffix.types.ts +81 -0
- package/src/components/InputPrefixSuffix/InputPrefixSuffix.variants.ts +128 -0
- package/src/components/InputPrefixSuffix/index.ts +8 -0
- package/src/components/InputsActions/InputsActions.tsx +53 -0
- package/src/components/InputsActions/InputsActions.types.ts +13 -0
- package/src/components/InputsActions/InputsActions.variants.ts +18 -0
- package/src/components/InputsActions/index.ts +2 -0
- package/src/components/InstanceColumn/InstanceColumn.tsx +43 -0
- package/src/components/InstanceColumn/InstanceColumn.types.ts +18 -0
- package/src/components/InstanceColumn/InstanceColumn.variants.ts +11 -0
- package/src/components/InstanceColumn/index.ts +2 -0
- package/src/components/InstanceItem/InstanceItem.tsx +33 -0
- package/src/components/InstanceItem/InstanceItem.types.ts +11 -0
- package/src/components/InstanceItem/InstanceItem.variants.ts +31 -0
- package/src/components/InstanceItem/index.ts +2 -0
- package/src/components/InstanceRows/InstanceRows.tsx +41 -0
- package/src/components/InstanceRows/InstanceRows.types.ts +17 -0
- package/src/components/InstanceRows/InstanceRows.variants.ts +10 -0
- package/src/components/InstanceRows/index.ts +2 -0
- package/src/components/InstanceSlot/InstanceSlot.tsx +25 -0
- package/src/components/InstanceSlot/InstanceSlot.types.ts +10 -0
- package/src/components/InstanceSlot/InstanceSlot.variants.ts +2 -0
- package/src/components/InstanceSlot/index.ts +2 -0
- package/src/components/LineChart/LineChart.tsx +592 -0
- package/src/components/LineChart/LineChart.types.ts +78 -0
- package/src/components/LineChart/LineChart.variants.ts +324 -0
- package/src/components/LineChart/index.ts +7 -0
- package/src/components/Link/Link.tsx +81 -0
- package/src/components/Link/Link.types.ts +23 -0
- package/src/components/Link/Link.variants.ts +69 -0
- package/src/components/Link/index.ts +2 -0
- package/src/components/List/List.tsx +260 -0
- package/src/components/List/List.types.ts +70 -0
- package/src/components/List/List.variants.ts +94 -0
- package/src/components/List/index.ts +5 -0
- package/src/components/ListGroup/ListGroup.tsx +37 -0
- package/src/components/ListGroup/ListGroup.types.ts +14 -0
- package/src/components/ListGroup/ListGroup.variants.ts +17 -0
- package/src/components/ListGroup/index.ts +3 -0
- package/src/components/LoadingIndicator/LoadingIndicator.tsx +208 -0
- package/src/components/LoadingIndicator/LoadingIndicator.types.ts +51 -0
- package/src/components/LoadingIndicator/LoadingIndicator.variants.ts +108 -0
- package/src/components/LoadingIndicator/index.ts +7 -0
- package/src/components/MediaGallery/MediaGallery.tsx +600 -0
- package/src/components/MediaGallery/MediaGallery.types.ts +124 -0
- package/src/components/MediaGallery/MediaGallery.variants.ts +116 -0
- package/src/components/MediaGallery/index.ts +2 -0
- package/src/components/MediaGrids/MediaGrids.tsx +48 -0
- package/src/components/MediaGrids/MediaGrids.types.ts +14 -0
- package/src/components/MediaGrids/MediaGrids.variants.ts +16 -0
- package/src/components/MediaGrids/index.ts +2 -0
- package/src/components/MediaViewer/MediaViewer.tsx +345 -0
- package/src/components/MediaViewer/MediaViewer.types.ts +59 -0
- package/src/components/MediaViewer/MediaViewer.variants.ts +168 -0
- package/src/components/MediaViewer/index.ts +2 -0
- package/src/components/Menu/Menu.tsx +109 -0
- package/src/components/Menu/Menu.types.ts +37 -0
- package/src/components/Menu/Menu.variants.ts +29 -0
- package/src/components/Menu/index.ts +2 -0
- package/src/components/MenuButtonItem/MenuButtonItem.tsx +280 -0
- package/src/components/MenuButtonItem/MenuButtonItem.types.ts +91 -0
- package/src/components/MenuButtonItem/MenuButtonItem.variants.ts +223 -0
- package/src/components/MenuButtonItem/index.ts +8 -0
- package/src/components/MenuItem/MenuItem.tsx +211 -0
- package/src/components/MenuItem/MenuItem.types.ts +40 -0
- package/src/components/MenuItem/MenuItem.variants.ts +48 -0
- package/src/components/MenuItem/index.ts +2 -0
- package/src/components/MenuItemGroup/MenuItemGroup.tsx +91 -0
- package/src/components/MenuItemGroup/MenuItemGroup.types.ts +82 -0
- package/src/components/MenuItemGroup/MenuItemGroup.variants.ts +33 -0
- package/src/components/MenuItemGroup/index.ts +2 -0
- package/src/components/MenuList/MenuList.tsx +44 -0
- package/src/components/MenuList/MenuList.types.ts +28 -0
- package/src/components/MenuList/MenuList.variants.ts +2 -0
- package/src/components/MenuList/index.ts +2 -0
- package/src/components/Metric/Metric.tsx +584 -0
- package/src/components/Metric/Metric.types.ts +77 -0
- package/src/components/Metric/Metric.variants.ts +175 -0
- package/src/components/Metric/index.ts +8 -0
- package/src/components/Modal/Modal.tsx +139 -0
- package/src/components/Modal/Modal.types.ts +55 -0
- package/src/components/Modal/index.ts +2 -0
- package/src/components/ModalActions/ModalActions.tsx +176 -0
- package/src/components/ModalActions/ModalActions.types.ts +31 -0
- package/src/components/ModalActions/index.ts +2 -0
- package/src/components/ModalHeader/ModalHeader.tsx +207 -0
- package/src/components/ModalHeader/ModalHeader.types.ts +24 -0
- package/src/components/ModalHeader/index.ts +2 -0
- package/src/components/NavBar/NavBar.tsx +326 -0
- package/src/components/NavBar/NavBar.types.ts +78 -0
- package/src/components/NavBar/NavBar.variants.ts +139 -0
- package/src/components/NavBar/index.ts +2 -0
- package/src/components/NavHeader/NavHeader.tsx +292 -0
- package/src/components/NavHeader/NavHeader.types.ts +145 -0
- package/src/components/NavHeader/NavHeader.variants.ts +178 -0
- package/src/components/NavHeader/index.ts +2 -0
- package/src/components/NavHeaderActions/NavHeaderActions.tsx +161 -0
- package/src/components/NavHeaderActions/NavHeaderActions.types.ts +61 -0
- package/src/components/NavHeaderActions/NavHeaderActions.variants.ts +58 -0
- package/src/components/NavHeaderActions/index.ts +2 -0
- package/src/components/NavHeaderDropdownItem/NavHeaderDropdownItem.tsx +243 -0
- package/src/components/NavHeaderDropdownItem/NavHeaderDropdownItem.types.ts +76 -0
- package/src/components/NavHeaderDropdownItem/NavHeaderDropdownItem.variants.ts +133 -0
- package/src/components/NavHeaderDropdownItem/index.ts +5 -0
- package/src/components/NavHeaderDropdownItemList/NavHeaderDropdownItemList.tsx +64 -0
- package/src/components/NavHeaderDropdownItemList/NavHeaderDropdownItemList.types.ts +55 -0
- package/src/components/NavHeaderDropdownItemList/NavHeaderDropdownItemList.variants.ts +47 -0
- package/src/components/NavHeaderDropdownItemList/index.ts +5 -0
- package/src/components/NavHeaderMenuButton/NavHeaderMenuButton.tsx +52 -0
- package/src/components/NavHeaderMenuButton/NavHeaderMenuButton.types.ts +17 -0
- package/src/components/NavHeaderMenuButton/NavHeaderMenuButton.variants.ts +73 -0
- package/src/components/NavHeaderMenuButton/index.ts +2 -0
- package/src/components/NavHeaderMenuCard/NavHeaderMenuCard.tsx +126 -0
- package/src/components/NavHeaderMenuCard/NavHeaderMenuCard.types.ts +74 -0
- package/src/components/NavHeaderMenuCard/NavHeaderMenuCard.variants.ts +169 -0
- package/src/components/NavHeaderMenuCard/index.ts +6 -0
- package/src/components/NavHeaderMenuItem/NavHeaderMenuItem.tsx +164 -0
- package/src/components/NavHeaderMenuItem/NavHeaderMenuItem.types.ts +64 -0
- package/src/components/NavHeaderMenuItem/NavHeaderMenuItem.variants.ts +175 -0
- package/src/components/NavHeaderMenuItem/index.ts +2 -0
- package/src/components/NavItem/NavItem.tsx +210 -0
- package/src/components/NavItem/NavItem.types.ts +71 -0
- package/src/components/NavItem/NavItem.variants.ts +61 -0
- package/src/components/NavItem/index.ts +2 -0
- package/src/components/NavLabel/NavLabel.tsx +84 -0
- package/src/components/NavLabel/NavLabel.types.ts +55 -0
- package/src/components/NavLabel/NavLabel.variants.ts +68 -0
- package/src/components/NavLabel/index.ts +2 -0
- package/src/components/NavLogoPlaceholder/NavLogoPlaceholder.tsx +101 -0
- package/src/components/NavLogoPlaceholder/NavLogoPlaceholder.types.ts +27 -0
- package/src/components/NavLogoPlaceholder/NavLogoPlaceholder.variants.ts +42 -0
- package/src/components/NavLogoPlaceholder/index.ts +6 -0
- package/src/components/NotificationBanner/NotificationBanner.tsx +256 -0
- package/src/components/NotificationBanner/NotificationBanner.types.ts +77 -0
- package/src/components/NotificationBanner/NotificationBanner.variants.ts +109 -0
- package/src/components/NotificationBanner/index.ts +7 -0
- package/src/components/NotificationPopup/NotificationPopup.tsx +147 -0
- package/src/components/NotificationPopup/NotificationPopup.types.ts +51 -0
- package/src/components/NotificationPopup/NotificationPopup.variants.ts +145 -0
- package/src/components/NotificationPopup/index.ts +5 -0
- package/src/components/Notifications/Notifications.tsx +209 -0
- package/src/components/Notifications/Notifications.types.ts +68 -0
- package/src/components/Notifications/Notifications.variants.ts +89 -0
- package/src/components/Notifications/index.ts +2 -0
- package/src/components/Number/Number.tsx +497 -0
- package/src/components/Number/Number.types.ts +58 -0
- package/src/components/Number/Number.variants.ts +94 -0
- package/src/components/Number/index.ts +2 -0
- package/src/components/NumberInput/NumberInput.tsx +265 -0
- package/src/components/NumberInput/NumberInput.types.ts +110 -0
- package/src/components/NumberInput/NumberInput.variants.ts +205 -0
- package/src/components/NumberInput/index.ts +6 -0
- package/src/components/Pagination/Pagination.tsx +393 -0
- package/src/components/Pagination/Pagination.types.ts +26 -0
- package/src/components/Pagination/Pagination.variants.ts +88 -0
- package/src/components/Pagination/index.ts +3 -0
- package/src/components/PaginationButtonGroup/PaginationButtonGroup.tsx +132 -0
- package/src/components/PaginationButtonGroup/PaginationButtonGroup.types.ts +20 -0
- package/src/components/PaginationButtonGroup/PaginationButtonGroup.variants.ts +45 -0
- package/src/components/PaginationButtonGroup/index.ts +8 -0
- package/src/components/PaginationCells/PaginationCells.tsx +105 -0
- package/src/components/PaginationCells/PaginationCells.types.ts +31 -0
- package/src/components/PaginationCells/PaginationCells.variants.ts +96 -0
- package/src/components/PaginationCells/index.ts +9 -0
- package/src/components/PdfViewer/PdfViewer.tsx +265 -0
- package/src/components/PdfViewer/PdfViewer.types.ts +79 -0
- package/src/components/PdfViewer/PdfViewer.variants.ts +105 -0
- package/src/components/PdfViewer/index.ts +3 -0
- package/src/components/PieChartPanel/PieChartPanel.tsx +889 -0
- package/src/components/PieChartPanel/PieChartPanel.types.ts +130 -0
- package/src/components/PieChartPanel/PieChartPanel.variants.ts +156 -0
- package/src/components/PieChartPanel/index.ts +8 -0
- package/src/components/Popover/Popover.tsx +398 -0
- package/src/components/Popover/Popover.types.ts +155 -0
- package/src/components/Popover/Popover.variants.ts +147 -0
- package/src/components/Popover/index.ts +7 -0
- package/src/components/ProgressBar/ProgressBar.tsx +241 -0
- package/src/components/ProgressBar/ProgressBar.types.ts +22 -0
- package/src/components/ProgressBar/ProgressBar.variants.ts +54 -0
- package/src/components/ProgressBar/index.ts +2 -0
- package/src/components/ProgressCircle/ProgressCircle.tsx +369 -0
- package/src/components/ProgressCircle/ProgressCircle.types.ts +26 -0
- package/src/components/ProgressCircle/ProgressCircle.variants.ts +88 -0
- package/src/components/ProgressCircle/index.ts +7 -0
- package/src/components/Quote/Quote.tsx +210 -0
- package/src/components/Quote/Quote.types.ts +73 -0
- package/src/components/Quote/Quote.variants.ts +106 -0
- package/src/components/Quote/index.ts +2 -0
- package/src/components/RadialStepper/RadialStepper.tsx +166 -0
- package/src/components/RadialStepper/RadialStepper.types.ts +77 -0
- package/src/components/RadialStepper/RadialStepper.variants.ts +122 -0
- package/src/components/RadialStepper/index.ts +7 -0
- package/src/components/RadioButton/RadioButton.tsx +237 -0
- package/src/components/RadioButton/RadioButton.types.ts +18 -0
- package/src/components/RadioButton/index.ts +2 -0
- package/src/components/RadioLabel/RadioLabel.tsx +157 -0
- package/src/components/RadioLabel/RadioLabel.types.ts +53 -0
- package/src/components/RadioLabel/RadioLabel.variants.ts +36 -0
- package/src/components/RadioLabel/index.ts +2 -0
- package/src/components/RangeSlider/RangeSlider.tsx +389 -0
- package/src/components/RangeSlider/RangeSlider.types.ts +38 -0
- package/src/components/RangeSlider/RangeSlider.variants.ts +27 -0
- package/src/components/RangeSlider/index.ts +2 -0
- package/src/components/Rating/Rating.tsx +246 -0
- package/src/components/Rating/Rating.types.ts +37 -0
- package/src/components/Rating/Rating.variants.ts +52 -0
- package/src/components/Rating/index.ts +8 -0
- package/src/components/RatingOverview/RatingOverview.tsx +170 -0
- package/src/components/RatingOverview/RatingOverview.types.ts +37 -0
- package/src/components/RatingOverview/RatingOverview.variants.ts +50 -0
- package/src/components/RatingOverview/index.ts +2 -0
- package/src/components/RatingStar/RatingStar.tsx +76 -0
- package/src/components/RatingStar/RatingStar.types.ts +18 -0
- package/src/components/RatingStar/RatingStar.variants.ts +34 -0
- package/src/components/RatingStar/index.ts +7 -0
- package/src/components/RichTextEditor/RichTextEditor.tsx +1341 -0
- package/src/components/RichTextEditor/RichTextEditor.types.ts +127 -0
- package/src/components/RichTextEditor/RichTextEditor.variants.ts +231 -0
- package/src/components/RichTextEditor/index.ts +6 -0
- package/src/components/ScatterChart/ScatterChart.tsx +164 -0
- package/src/components/ScatterChart/ScatterChart.types.ts +42 -0
- package/src/components/ScatterChart/ScatterChart.variants.ts +162 -0
- package/src/components/ScatterChart/index.ts +2 -0
- package/src/components/SdaiaLogoAnimation/BGSVG.tsx +216 -0
- package/src/components/SdaiaLogoAnimation/SdaiaLogoAnimation.tsx +120 -0
- package/src/components/SdaiaLogoAnimation/SdaiaLogoAnimation.types.ts +13 -0
- package/src/components/SdaiaLogoAnimation/SdaiaLogoAnimation.variants.ts +22 -0
- package/src/components/SdaiaLogoAnimation/index.ts +2 -0
- package/src/components/SdaiaTouch2dAnimation/SdaiaTouch2dAnimation.tsx +55 -0
- package/src/components/SdaiaTouch2dAnimation/SdaiaTouch2dAnimation.types.ts +12 -0
- package/src/components/SdaiaTouch2dAnimation/SdaiaTouch2dAnimation.variants.ts +28 -0
- package/src/components/SdaiaTouch2dAnimation/Star.tsx +82 -0
- package/src/components/SdaiaTouch2dAnimation/StarShape.tsx +78 -0
- package/src/components/SdaiaTouch2dAnimation/index.ts +6 -0
- package/src/components/SecondNavHeader/SecondNavHeader.tsx +80 -0
- package/src/components/SecondNavHeader/SecondNavHeader.types.ts +41 -0
- package/src/components/SecondNavHeader/SecondNavHeader.variants.ts +42 -0
- package/src/components/SecondNavHeader/index.ts +2 -0
- package/src/components/Select/Select.tsx +351 -0
- package/src/components/Select/Select.types.ts +102 -0
- package/src/components/Select/Select.variants.ts +111 -0
- package/src/components/Select/index.ts +2 -0
- package/src/components/SelectMenuItem/SelectMenuItem.tsx +132 -0
- package/src/components/SelectMenuItem/SelectMenuItem.types.ts +47 -0
- package/src/components/SelectMenuItem/SelectMenuItem.variants.ts +56 -0
- package/src/components/SelectMenuItem/index.ts +2 -0
- package/src/components/SeriesLabel/SeriesLabel.tsx +76 -0
- package/src/components/SeriesLabel/SeriesLabel.types.ts +27 -0
- package/src/components/SeriesLabel/SeriesLabel.variants.ts +84 -0
- package/src/components/SeriesLabel/index.ts +2 -0
- package/src/components/Signature/Signature.tsx +905 -0
- package/src/components/Signature/Signature.types.ts +68 -0
- package/src/components/Signature/Signature.variants.ts +115 -0
- package/src/components/Signature/index.ts +2 -0
- package/src/components/Skeleton/Skeleton.tsx +21 -0
- package/src/components/Skeleton/Skeleton.types.ts +15 -0
- package/src/components/Skeleton/Skeleton.variants.ts +14 -0
- package/src/components/Skeleton/index.ts +2 -0
- package/src/components/SkeletonAvatar/SkeletonAvatar.tsx +21 -0
- package/src/components/SkeletonAvatar/SkeletonAvatar.types.ts +15 -0
- package/src/components/SkeletonAvatar/SkeletonAvatar.variants.ts +14 -0
- package/src/components/SkeletonAvatar/index.ts +2 -0
- package/src/components/SlideoutMenu/SlideoutMenu.tsx +225 -0
- package/src/components/SlideoutMenu/SlideoutMenu.types.ts +39 -0
- package/src/components/SlideoutMenu/SlideoutMenuDivider.tsx +10 -0
- package/src/components/SlideoutMenu/SlideoutMenuSection.tsx +39 -0
- package/src/components/SlideoutMenu/index.ts +5 -0
- package/src/components/SlideoutMenuFooter/SlideoutMenuFooter.tsx +96 -0
- package/src/components/SlideoutMenuFooter/SlideoutMenuFooter.types.ts +28 -0
- package/src/components/SlideoutMenuFooter/SlideoutMenuFooter.variants.ts +49 -0
- package/src/components/SlideoutMenuFooter/index.ts +6 -0
- package/src/components/SlideoutMenuHeader/SlideoutMenuHeader.tsx +83 -0
- package/src/components/SlideoutMenuHeader/SlideoutMenuHeader.types.ts +19 -0
- package/src/components/SlideoutMenuHeader/SlideoutMenuHeader.variants.ts +78 -0
- package/src/components/SlideoutMenuHeader/index.ts +2 -0
- package/src/components/Slider/Slider.tsx +259 -0
- package/src/components/Slider/Slider.types.ts +22 -0
- package/src/components/Slider/Slider.variants.ts +23 -0
- package/src/components/Slider/index.ts +2 -0
- package/src/components/Sparkline/Sparkline.tsx +130 -0
- package/src/components/Sparkline/Sparkline.types.ts +36 -0
- package/src/components/Sparkline/Sparkline.variants.ts +118 -0
- package/src/components/Sparkline/index.ts +2 -0
- package/src/components/StatusDot/StatusDot.tsx +82 -0
- package/src/components/StatusDot/StatusDot.types.ts +35 -0
- package/src/components/StatusDot/StatusDot.variants.ts +66 -0
- package/src/components/StatusDot/index.ts +8 -0
- package/src/components/StructuredList/StructuredList.tsx +79 -0
- package/src/components/StructuredList/StructuredList.types.ts +27 -0
- package/src/components/StructuredList/index.ts +2 -0
- package/src/components/StructuredListGroup/StructuredListGroup.tsx +76 -0
- package/src/components/StructuredListGroup/StructuredListGroup.types.ts +27 -0
- package/src/components/StructuredListGroup/StructuredListGroup.variants.ts +14 -0
- package/src/components/StructuredListGroup/index.ts +5 -0
- package/src/components/StructuredListHeader/StructuredListHeader.tsx +98 -0
- package/src/components/StructuredListHeader/StructuredListHeader.types.ts +26 -0
- package/src/components/StructuredListHeader/StructuredListHeader.variants.ts +24 -0
- package/src/components/StructuredListHeader/index.ts +5 -0
- package/src/components/StructuredListRow/StructuredListRow.tsx +144 -0
- package/src/components/StructuredListRow/StructuredListRow.types.ts +37 -0
- package/src/components/StructuredListRow/StructuredListRow.variants.ts +53 -0
- package/src/components/StructuredListRow/index.ts +6 -0
- package/src/components/SubHeaderItem/SubHeaderItem.tsx +37 -0
- package/src/components/SubHeaderItem/SubHeaderItem.types.ts +20 -0
- package/src/components/SubHeaderItem/SubHeaderItem.variants.ts +23 -0
- package/src/components/SubHeaderItem/index.ts +2 -0
- package/src/components/Switch/Switch.tsx +138 -0
- package/src/components/Switch/Switch.types.ts +18 -0
- package/src/components/Switch/Switch.variants.ts +49 -0
- package/src/components/Switch/index.ts +2 -0
- package/src/components/SwitchLabel/SwitchLabel.tsx +114 -0
- package/src/components/SwitchLabel/SwitchLabel.types.ts +27 -0
- package/src/components/SwitchLabel/SwitchLabel.variants.ts +28 -0
- package/src/components/SwitchLabel/index.ts +2 -0
- package/src/components/Tab/Tab.tsx +92 -0
- package/src/components/Tab/Tab.types.ts +34 -0
- package/src/components/Tab/Tab.variants.ts +79 -0
- package/src/components/Tab/index.ts +2 -0
- package/src/components/Table/Table.tsx +353 -0
- package/src/components/Table/Table.types.ts +80 -0
- package/src/components/Table/Table.variants.ts +110 -0
- package/src/components/Table/index.ts +10 -0
- package/src/components/TableOfContent/TableOfContent.tsx +33 -0
- package/src/components/TableOfContent/TableOfContent.types.ts +15 -0
- package/src/components/TableOfContent/TableOfContent.variants.ts +27 -0
- package/src/components/TableOfContent/index.ts +2 -0
- package/src/components/TableOfContentItem/TableOfContentItem.tsx +85 -0
- package/src/components/TableOfContentItem/TableOfContentItem.types.ts +23 -0
- package/src/components/TableOfContentItem/TableOfContentItem.variants.ts +109 -0
- package/src/components/TableOfContentItem/index.ts +2 -0
- package/src/components/TableOfContentList/TableOfContentList.tsx +60 -0
- package/src/components/TableOfContentList/TableOfContentList.types.ts +39 -0
- package/src/components/TableOfContentList/TableOfContentList.variants.ts +6 -0
- package/src/components/TableOfContentList/index.ts +2 -0
- package/src/components/Tabs/Tabs.tsx +80 -0
- package/src/components/Tabs/Tabs.types.ts +36 -0
- package/src/components/Tabs/Tabs.variants.ts +23 -0
- package/src/components/Tabs/index.ts +2 -0
- package/src/components/Tag/Tag.tsx +114 -0
- package/src/components/Tag/Tag.types.ts +32 -0
- package/src/components/Tag/Tag.variants.ts +57 -0
- package/src/components/Tag/index.ts +2 -0
- package/src/components/TagCount/TagCount.tsx +45 -0
- package/src/components/TagCount/TagCount.types.ts +21 -0
- package/src/components/TagCount/TagCount.variants.ts +26 -0
- package/src/components/TagCount/index.ts +7 -0
- package/src/components/TextArea/TextArea.tsx +130 -0
- package/src/components/TextArea/TextArea.types.ts +20 -0
- package/src/components/TextArea/index.ts +2 -0
- package/src/components/TextInput/TextInput.tsx +568 -0
- package/src/components/TextInput/TextInput.types.ts +87 -0
- package/src/components/TextInput/TextInput.variants.ts +89 -0
- package/src/components/TextInput/TextInputTag.tsx +43 -0
- package/src/components/TextInput/TextInputTag.types.ts +14 -0
- package/src/components/TextInput/index.ts +4 -0
- package/src/components/Tooltip/Tooltip.tsx +229 -0
- package/src/components/Tooltip/Tooltip.types.ts +48 -0
- package/src/components/Tooltip/Tooltip.variants.ts +141 -0
- package/src/components/Tooltip/index.ts +10 -0
- package/src/components/TreeView/TreeView.tsx +130 -0
- package/src/components/TreeView/TreeView.types.ts +42 -0
- package/src/components/TreeView/TreeView.variants.ts +6 -0
- package/src/components/TreeView/index.ts +3 -0
- package/src/components/TreeViewItem/TreeViewItem.tsx +108 -0
- package/src/components/TreeViewItem/TreeViewItem.types.ts +34 -0
- package/src/components/TreeViewItem/TreeViewItem.variants.ts +40 -0
- package/src/components/TreeViewItem/index.ts +3 -0
- package/src/components/VerticalTabs/VerticalTabs.tsx +84 -0
- package/src/components/VerticalTabs/VerticalTabs.types.ts +37 -0
- package/src/components/VerticalTabs/VerticalTabs.variants.ts +43 -0
- package/src/components/VerticalTabs/index.ts +6 -0
- package/src/components/VideoPlayer/VideoPlayer.tsx +470 -0
- package/src/components/VideoPlayer/VideoPlayer.types.ts +59 -0
- package/src/components/VideoPlayer/VideoPlayer.variants.ts +134 -0
- package/src/components/VideoPlayer/index.ts +2 -0
- package/src/components/XAxis/XAxis.tsx +67 -0
- package/src/components/XAxis/XAxis.types.ts +30 -0
- package/src/components/XAxis/XAxis.variants.ts +77 -0
- package/src/components/XAxis/index.ts +2 -0
- package/src/components/YAxis/YAxis.tsx +78 -0
- package/src/components/YAxis/YAxis.types.ts +41 -0
- package/src/components/YAxis/YAxis.variants.ts +94 -0
- package/src/components/YAxis/index.ts +2 -0
- package/src/dga-icons.ts +18 -0
- package/src/hooks/usePresence.ts +73 -0
- package/src/icons/AIIcon.tsx +34 -0
- package/src/icons/AaIcon.tsx +34 -0
- package/src/icons/AlertCircle02Icon.tsx +28 -0
- package/src/icons/AlertCircleIcon.tsx +29 -0
- package/src/icons/AlertCircleSVG.tsx +19 -0
- package/src/icons/AlertCircleWarningIcon.tsx +37 -0
- package/src/icons/AlertTriangleIcon.tsx +27 -0
- package/src/icons/AlignCenterIcon.tsx +31 -0
- package/src/icons/AlignLeftIcon.tsx +31 -0
- package/src/icons/AlignRightIcon.tsx +31 -0
- package/src/icons/ArrowDownIcon.tsx +27 -0
- package/src/icons/ArrowDownLeft01Icon.tsx +32 -0
- package/src/icons/ArrowDownSVG.tsx +16 -0
- package/src/icons/ArrowIcon.tsx +38 -0
- package/src/icons/ArrowLeft01Icon.tsx +23 -0
- package/src/icons/ArrowLeft02SVG.tsx +19 -0
- package/src/icons/ArrowLeftIcon.tsx +28 -0
- package/src/icons/ArrowRight01Icon.tsx +23 -0
- package/src/icons/ArrowRight01SVG.tsx +16 -0
- package/src/icons/ArrowRightIcon.tsx +28 -0
- package/src/icons/ArrowUpIcon.tsx +27 -0
- package/src/icons/ArrowUpRight01Icon.tsx +31 -0
- package/src/icons/ArrowUpSVG.tsx +16 -0
- package/src/icons/AtIcon.tsx +33 -0
- package/src/icons/BeakBottom.tsx +13 -0
- package/src/icons/BeakDown.tsx +29 -0
- package/src/icons/BeakLeft.tsx +13 -0
- package/src/icons/BeakRight.tsx +11 -0
- package/src/icons/BeakTop.tsx +13 -0
- package/src/icons/BeakUp.tsx +23 -0
- package/src/icons/BellCircleIcon.tsx +33 -0
- package/src/icons/BellIcon.tsx +27 -0
- package/src/icons/BoldIcon.tsx +33 -0
- package/src/icons/CalendarIcon.tsx +35 -0
- package/src/icons/ChartsIcon.tsx +25 -0
- package/src/icons/CheckCircleIcon.tsx +29 -0
- package/src/icons/ChevronDownIcon.tsx +30 -0
- package/src/icons/ChevronDownSmIcon.tsx +34 -0
- package/src/icons/ChevronLeftIcon.tsx +20 -0
- package/src/icons/ChevronRightIcon.tsx +36 -0
- package/src/icons/ClearIcon.tsx +34 -0
- package/src/icons/ClockIcon.tsx +34 -0
- package/src/icons/CloseIcon.tsx +29 -0
- package/src/icons/CloudUploadIcon.tsx +21 -0
- package/src/icons/CodeSnippetChevronDownIcon.tsx +25 -0
- package/src/icons/CodeSnippetCopyIcon.tsx +24 -0
- package/src/icons/CodeSnippetStarIcon.tsx +25 -0
- package/src/icons/ColorSquareIcon.tsx +42 -0
- package/src/icons/ComponentsIcon.tsx +25 -0
- package/src/icons/DGALogoSVG.tsx +133 -0
- package/src/icons/DeleteIcon.tsx +24 -0
- package/src/icons/DownloadIcon.tsx +29 -0
- package/src/icons/DragHandleVerticalIcon.tsx +23 -0
- package/src/icons/FeedbackEmojiDislikeIcon.tsx +20 -0
- package/src/icons/FeedbackEmojiLikeIcon.tsx +20 -0
- package/src/icons/FeedbackEmojiNeutralIcon.tsx +20 -0
- package/src/icons/FeedbackThumbDislikeFilledIcon.tsx +26 -0
- package/src/icons/FeedbackThumbDislikeIcon.tsx +20 -0
- package/src/icons/FeedbackThumbLikeFilledIcon.tsx +20 -0
- package/src/icons/FeedbackThumbLikeIcon.tsx +20 -0
- package/src/icons/FileUploadItemCloseIcon.tsx +30 -0
- package/src/icons/FileUploadItemEmptyFileIcon.tsx +27 -0
- package/src/icons/FileUploadItemPdfIcon.tsx +52 -0
- package/src/icons/FilterFunnelIcon.tsx +34 -0
- package/src/icons/FilterIcon.tsx +31 -0
- package/src/icons/FitIcon.tsx +22 -0
- package/src/icons/FolderFilledIcon.tsx +25 -0
- package/src/icons/FolderIcon.tsx +28 -0
- package/src/icons/FoundationsIcon.tsx +25 -0
- package/src/icons/FullscreenExitIcon.tsx +71 -0
- package/src/icons/FullscreenIcon.tsx +70 -0
- package/src/icons/GoBackward10Icon.tsx +27 -0
- package/src/icons/GoForward10Icon.tsx +27 -0
- package/src/icons/GridSquaresIcon.tsx +40 -0
- package/src/icons/HamburgerIcon.tsx +28 -0
- package/src/icons/HelpCircleIcon.tsx +28 -0
- package/src/icons/HomeIcon.tsx +22 -0
- package/src/icons/HomeSVG.tsx +32 -0
- package/src/icons/IconFactory.ts +157 -0
- package/src/icons/Image01SVG.tsx +18 -0
- package/src/icons/ImageIcon.tsx +31 -0
- package/src/icons/InfoCircleIcon.tsx +31 -0
- package/src/icons/InfoCircleSVG.tsx +20 -0
- package/src/icons/InfoIcon.tsx +27 -0
- package/src/icons/ItalicIcon.tsx +31 -0
- package/src/icons/LearnMoreArrowIcon.tsx +22 -0
- package/src/icons/LinkCircleSVG.tsx +58 -0
- package/src/icons/LinkIcon.tsx +33 -0
- package/src/icons/ListLinesIcon.tsx +40 -0
- package/src/icons/LockCircleSVG.tsx +60 -0
- package/src/icons/LockIcon.tsx +36 -0
- package/src/icons/Logout02Icon.tsx +19 -0
- package/src/icons/MicrophoneIcon.tsx +20 -0
- package/src/icons/MinusIcon.tsx +40 -0
- package/src/icons/MoreHorizontalIcon.tsx +24 -0
- package/src/icons/MoreVerticalIcon.tsx +40 -0
- package/src/icons/NextIcon.tsx +44 -0
- package/src/icons/PDFSvg.tsx +39 -0
- package/src/icons/PatternsIcon.tsx +21 -0
- package/src/icons/PauseIcon.tsx +30 -0
- package/src/icons/PencilIcon.tsx +36 -0
- package/src/icons/PlayButtonCardIcon.tsx +41 -0
- package/src/icons/PlayCenterIcon.tsx +45 -0
- package/src/icons/PlayIcon.tsx +27 -0
- package/src/icons/PlayIconSolid.tsx +33 -0
- package/src/icons/PlayIconStroke.tsx +22 -0
- package/src/icons/PlayIconTwotone.tsx +36 -0
- package/src/icons/PlayVideoIcon.tsx +31 -0
- package/src/icons/PlusCircleIcon.tsx +41 -0
- package/src/icons/PlusIcon.tsx +43 -0
- package/src/icons/PreviousIcon.tsx +44 -0
- package/src/icons/PrintIcon.tsx +25 -0
- package/src/icons/QuestionMarkGrayBgIcon.tsx +52 -0
- package/src/icons/QuestionMarkIcon.tsx +47 -0
- package/src/icons/RedoIcon.tsx +41 -0
- package/src/icons/SaudiFlagSVG.tsx +31 -0
- package/src/icons/SdaiaNavLogo.tsx +345 -0
- package/src/icons/SearchIcon.tsx +34 -0
- package/src/icons/SettingsIcon.tsx +25 -0
- package/src/icons/ShareIcon.tsx +26 -0
- package/src/icons/SidebarCollapseIcon.tsx +25 -0
- package/src/icons/SmileIcon.tsx +34 -0
- package/src/icons/SortIcon.tsx +20 -0
- package/src/icons/StarIcon.tsx +38 -0
- package/src/icons/StatusBadgeIcon.tsx +19 -0
- package/src/icons/TextTIcon.tsx +33 -0
- package/src/icons/Tick02Icon.tsx +32 -0
- package/src/icons/TickIcon.tsx +33 -0
- package/src/icons/TrashIcon.tsx +44 -0
- package/src/icons/UnderlineIcon.tsx +31 -0
- package/src/icons/UndoIcon.tsx +31 -0
- package/src/icons/UploadArrowIcon.tsx +40 -0
- package/src/icons/UserIcon.tsx +21 -0
- package/src/icons/VolumeHighIcon.tsx +27 -0
- package/src/icons/VolumeMuteIcon.tsx +53 -0
- package/src/icons/XCircleIcon.tsx +32 -0
- package/src/icons/XIcon.tsx +27 -0
- package/src/icons/XIconSVG.tsx +16 -0
- package/src/icons/XSmallIcon.tsx +29 -0
- package/src/icons/XSvg.tsx +18 -0
- package/src/icons/ZoomInIcon.tsx +25 -0
- package/src/icons/index.ts +5 -0
- package/src/index.ts +699 -0
- package/src/lib/cn.ts +42 -0
- package/src/styles/motion.css +120 -0
- package/src/styles.css +242 -0
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { forwardRef } from 'react';
|
|
4
|
+
import { cn } from '../../lib/cn';
|
|
5
|
+
import type { ButtonsWithSdaiaTouchProps } from './ButtonsWithSdaiaTouch.types';
|
|
6
|
+
import { ButtonHoverPattern } from './ButtonHoverPattern';
|
|
7
|
+
import {
|
|
8
|
+
VARIANT_CLASSES,
|
|
9
|
+
DESTRUCTIVE_VARIANT_CLASSES,
|
|
10
|
+
SELECTED_CLASSES,
|
|
11
|
+
DISABLED_CLASSES,
|
|
12
|
+
SIZE_CLASSES,
|
|
13
|
+
ICON_ONLY_SIZE_CLASSES,
|
|
14
|
+
ICON_SIZE_CLASSES,
|
|
15
|
+
FOCUS_RING,
|
|
16
|
+
} from '../Button/Button.variants';
|
|
17
|
+
import {
|
|
18
|
+
HOVER_PATTERN_CLASSES,
|
|
19
|
+
DESTRUCTIVE_HOVER_PATTERN_CLASSES,
|
|
20
|
+
} from './ButtonsWithSdaiaTouch.variants';
|
|
21
|
+
|
|
22
|
+
export const ButtonsWithSdaiaTouch = forwardRef<HTMLButtonElement, ButtonsWithSdaiaTouchProps>(
|
|
23
|
+
function ButtonsWithSdaiaTouch(
|
|
24
|
+
{
|
|
25
|
+
variant = 'primary',
|
|
26
|
+
size = 'md',
|
|
27
|
+
disabled = false,
|
|
28
|
+
leadingIcon,
|
|
29
|
+
trailingIcon,
|
|
30
|
+
leftIcon,
|
|
31
|
+
rightIcon,
|
|
32
|
+
iconOnly = false,
|
|
33
|
+
selected = false,
|
|
34
|
+
fullWidth = false,
|
|
35
|
+
destructive = false,
|
|
36
|
+
as,
|
|
37
|
+
children,
|
|
38
|
+
className,
|
|
39
|
+
...rest
|
|
40
|
+
},
|
|
41
|
+
ref,
|
|
42
|
+
) {
|
|
43
|
+
const Comp = as ?? 'button';
|
|
44
|
+
const isDisabled = disabled;
|
|
45
|
+
|
|
46
|
+
const leading = leadingIcon ?? leftIcon;
|
|
47
|
+
const trailing = trailingIcon ?? rightIcon;
|
|
48
|
+
|
|
49
|
+
const isDestructive = destructive || variant === 'destructive';
|
|
50
|
+
|
|
51
|
+
let variantClass: string;
|
|
52
|
+
if (isDisabled) {
|
|
53
|
+
variantClass = DISABLED_CLASSES[variant];
|
|
54
|
+
} else if (selected) {
|
|
55
|
+
variantClass = SELECTED_CLASSES[variant];
|
|
56
|
+
} else if (isDestructive && variant !== 'destructive') {
|
|
57
|
+
variantClass = DESTRUCTIVE_VARIANT_CLASSES[variant] ?? VARIANT_CLASSES[variant];
|
|
58
|
+
} else {
|
|
59
|
+
variantClass = VARIANT_CLASSES[variant];
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
const sizeClass = iconOnly ? ICON_ONLY_SIZE_CLASSES[size] : SIZE_CLASSES[size];
|
|
63
|
+
const iconSizeClass = ICON_SIZE_CLASSES[size];
|
|
64
|
+
|
|
65
|
+
const patternColorClass = isDestructive
|
|
66
|
+
? DESTRUCTIVE_HOVER_PATTERN_CLASSES[variant] ?? HOVER_PATTERN_CLASSES[variant]
|
|
67
|
+
: HOVER_PATTERN_CLASSES[variant];
|
|
68
|
+
|
|
69
|
+
return (
|
|
70
|
+
<Comp
|
|
71
|
+
ref={ref}
|
|
72
|
+
data-slot="button-sdaia-touch"
|
|
73
|
+
data-anatomy="1"
|
|
74
|
+
disabled={isDisabled}
|
|
75
|
+
aria-pressed={selected ? true : undefined}
|
|
76
|
+
className={cn(
|
|
77
|
+
'group relative overflow-hidden inline-flex items-center justify-center font-[500] motion-feedback cursor-pointer',
|
|
78
|
+
sizeClass,
|
|
79
|
+
variantClass,
|
|
80
|
+
!isDisabled && FOCUS_RING,
|
|
81
|
+
fullWidth && 'w-full',
|
|
82
|
+
className,
|
|
83
|
+
)}
|
|
84
|
+
{...rest}
|
|
85
|
+
>
|
|
86
|
+
{!isDisabled && patternColorClass ? (
|
|
87
|
+
<span
|
|
88
|
+
data-slot="hover-pattern"
|
|
89
|
+
aria-hidden="true"
|
|
90
|
+
className={cn(
|
|
91
|
+
'pointer-events-none absolute inset-0 z-0 flex items-center justify-center overflow-hidden',
|
|
92
|
+
patternColorClass,
|
|
93
|
+
)}
|
|
94
|
+
>
|
|
95
|
+
<ButtonHoverPattern className="h-[2px] w-[2px] origin-center scale-100 transition-transform duration-400 ease-out group-hover:scale-[600] group-hover:duration-[6500ms]" />
|
|
96
|
+
</span>
|
|
97
|
+
) : null}
|
|
98
|
+
{leading ? (
|
|
99
|
+
<span
|
|
100
|
+
data-slot="leading-icon"
|
|
101
|
+
data-anatomy="3"
|
|
102
|
+
className={cn(
|
|
103
|
+
'relative z-10 inline-flex items-center justify-center flex-shrink-0',
|
|
104
|
+
iconSizeClass,
|
|
105
|
+
)}
|
|
106
|
+
>
|
|
107
|
+
{leading}
|
|
108
|
+
</span>
|
|
109
|
+
) : null}
|
|
110
|
+
{!iconOnly && (
|
|
111
|
+
<span data-anatomy="2" className="relative z-10">
|
|
112
|
+
{children}
|
|
113
|
+
</span>
|
|
114
|
+
)}
|
|
115
|
+
{trailing ? (
|
|
116
|
+
<span
|
|
117
|
+
data-slot="trailing-icon"
|
|
118
|
+
data-anatomy="4"
|
|
119
|
+
className={cn(
|
|
120
|
+
'relative z-10 inline-flex items-center justify-center flex-shrink-0',
|
|
121
|
+
iconSizeClass,
|
|
122
|
+
)}
|
|
123
|
+
>
|
|
124
|
+
{trailing}
|
|
125
|
+
</span>
|
|
126
|
+
) : null}
|
|
127
|
+
</Comp>
|
|
128
|
+
);
|
|
129
|
+
},
|
|
130
|
+
);
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { ButtonVariant } from '../Button/Button.types';
|
|
2
|
+
|
|
3
|
+
/* ── Hover pattern color per variant (text-* class for currentColor) ── */
|
|
4
|
+
export const HOVER_PATTERN_CLASSES: Partial<Record<ButtonVariant, string>> = {
|
|
5
|
+
neutral: 'text-[rgba(77,87,97,1)]',
|
|
6
|
+
primary: 'text-[rgba(16,70,49,1)]',
|
|
7
|
+
destructive: 'text-[rgba(122,39,26,1)]',
|
|
8
|
+
'secondary-solid': 'text-[rgba(229,231,235,1)]',
|
|
9
|
+
'secondary-outline': 'text-[rgba(229,231,235,1)]',
|
|
10
|
+
subtle: 'text-[rgba(229,231,235,1)]',
|
|
11
|
+
/* transparent intentionally omitted — no hover pattern */
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export const DESTRUCTIVE_HOVER_PATTERN_CLASSES: Partial<Record<ButtonVariant, string>> = {
|
|
15
|
+
primary: 'text-[rgba(122,39,26,1)]',
|
|
16
|
+
'secondary-solid': 'text-[rgba(254,205,202,1)]',
|
|
17
|
+
'secondary-outline': 'text-[rgba(254,205,202,1)]',
|
|
18
|
+
subtle: 'text-[rgba(254,205,202,1)]',
|
|
19
|
+
};
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
# Components Package Instructions
|
|
2
|
+
|
|
3
|
+
This folder contains the source code for all design system components.
|
|
4
|
+
|
|
5
|
+
## Purpose
|
|
6
|
+
|
|
7
|
+
Components in this folder must follow the design system documentation and visual rules.
|
|
8
|
+
They are reusable UI primitives and component patterns used across the platform.
|
|
9
|
+
|
|
10
|
+
## Folder Structure
|
|
11
|
+
|
|
12
|
+
Each component should live in its own folder under `packages/ui/src/components`.
|
|
13
|
+
|
|
14
|
+
Example:
|
|
15
|
+
- `Button/`
|
|
16
|
+
- `Input/`
|
|
17
|
+
- `Checkbox/`
|
|
18
|
+
- `TextInput/`
|
|
19
|
+
|
|
20
|
+
Each component folder should have a clear and consistent structure.
|
|
21
|
+
|
|
22
|
+
Recommended structure:
|
|
23
|
+
- component implementation
|
|
24
|
+
- subcomponents if needed
|
|
25
|
+
- types
|
|
26
|
+
- constants/variant configuration
|
|
27
|
+
- index export
|
|
28
|
+
|
|
29
|
+
## Component Modeling Rules
|
|
30
|
+
|
|
31
|
+
Each component is modeled using:
|
|
32
|
+
|
|
33
|
+
- **States**
|
|
34
|
+
- **Types**
|
|
35
|
+
|
|
36
|
+
These are different concepts and must not be mixed.
|
|
37
|
+
|
|
38
|
+
### State
|
|
39
|
+
|
|
40
|
+
A **state** represents the UI or interaction condition of a component.
|
|
41
|
+
|
|
42
|
+
Examples:
|
|
43
|
+
- `default`
|
|
44
|
+
- `focused`
|
|
45
|
+
- `placeholder`
|
|
46
|
+
- `disabled`
|
|
47
|
+
- `error`
|
|
48
|
+
- `success`
|
|
49
|
+
- `readOnly`
|
|
50
|
+
|
|
51
|
+
### Type
|
|
52
|
+
|
|
53
|
+
A **type** represents a variant or structural style within a state.
|
|
54
|
+
|
|
55
|
+
Examples:
|
|
56
|
+
- `default`
|
|
57
|
+
- `withIcon`
|
|
58
|
+
- `withPrefix`
|
|
59
|
+
- `withSuffix`
|
|
60
|
+
- `currency`
|
|
61
|
+
- `copy`
|
|
62
|
+
- `card`
|
|
63
|
+
|
|
64
|
+
A state can contain multiple types.
|
|
65
|
+
|
|
66
|
+
Example:
|
|
67
|
+
- `focused/default`
|
|
68
|
+
- `focused/withIcon`
|
|
69
|
+
- `placeholder/default`
|
|
70
|
+
- `placeholder/copy`
|
|
71
|
+
|
|
72
|
+
## Important Rule
|
|
73
|
+
|
|
74
|
+
Do not treat states and types as synonyms.
|
|
75
|
+
|
|
76
|
+
- State = condition
|
|
77
|
+
- Type = variation
|
|
78
|
+
|
|
79
|
+
Every component implementation must preserve this hierarchy.
|
|
80
|
+
|
|
81
|
+
## Implementation Expectations
|
|
82
|
+
|
|
83
|
+
When creating or updating a component:
|
|
84
|
+
|
|
85
|
+
1. Identify all supported states.
|
|
86
|
+
2. Identify all supported types inside each state.
|
|
87
|
+
3. Keep naming consistent with the design documentation.
|
|
88
|
+
4. Avoid hardcoding one-off variations that should instead be modeled as a type.
|
|
89
|
+
5. Reuse shared logic where possible.
|
|
90
|
+
6. Prefer scalable variant-based architecture over duplicated JSX.
|
|
91
|
+
7. Match spacing, typography, borders, radii, and colors to the design system tokens.
|
|
92
|
+
8. Support light and dark mode when required by the system.
|
|
93
|
+
|
|
94
|
+
## Design Consistency
|
|
95
|
+
|
|
96
|
+
Claude must use the existing design system patterns already present in this package.
|
|
97
|
+
|
|
98
|
+
Follow:
|
|
99
|
+
- shared tokens
|
|
100
|
+
- shared typography rules
|
|
101
|
+
- shared spacing rules
|
|
102
|
+
- shared component API conventions
|
|
103
|
+
- existing export conventions
|
|
104
|
+
|
|
105
|
+
Do not introduce a new pattern if an existing one already solves the problem.
|
|
106
|
+
|
|
107
|
+
## Component Composition and Reuse
|
|
108
|
+
|
|
109
|
+
When creating a new component, Claude must first check whether the new component should be composed from existing design system components.
|
|
110
|
+
|
|
111
|
+
If a new component includes an existing component that already exists in this package, Claude should use the existing component instead of rebuilding it from scratch.
|
|
112
|
+
|
|
113
|
+
Examples:
|
|
114
|
+
- if a `SlideoutMenu` includes a button, use the existing `Button` component
|
|
115
|
+
- if a component needs an input field, use the existing `Input` or `TextInput` component if appropriate
|
|
116
|
+
- if a component includes checkboxes, toggles, icons, badges, or similar reusable UI parts, use the existing design system components where possible
|
|
117
|
+
|
|
118
|
+
Do not recreate existing components inside new components unless there is a clear documented reason.
|
|
119
|
+
|
|
120
|
+
Claude should prefer composition over duplication.
|
|
121
|
+
|
|
122
|
+
This improves:
|
|
123
|
+
- consistency across the design system
|
|
124
|
+
- cleaner and more maintainable code
|
|
125
|
+
- reuse of existing APIs, styles, and behavior
|
|
126
|
+
- easier updates when shared components change
|
|
127
|
+
|
|
128
|
+
Before implementing a new component, Claude should:
|
|
129
|
+
1. inspect existing components in this package
|
|
130
|
+
2. identify whether any part of the new component already exists
|
|
131
|
+
3. compose the new component from existing building blocks where appropriate
|
|
132
|
+
4. only create new internal UI pieces when no reusable component already exists
|
|
133
|
+
|
|
134
|
+
If an existing component is close but not fully sufficient, Claude should prefer extending or enhancing the shared component in a safe reusable way rather than creating a duplicate private version inside the new component.
|
|
135
|
+
|
|
136
|
+
## API Design
|
|
137
|
+
|
|
138
|
+
Component props should be:
|
|
139
|
+
- clear
|
|
140
|
+
- minimal
|
|
141
|
+
- composable
|
|
142
|
+
- strongly typed
|
|
143
|
+
|
|
144
|
+
Prefer explicit prop names.
|
|
145
|
+
Avoid ambiguous props.
|
|
146
|
+
Avoid inconsistent naming across similar components.
|
|
147
|
+
|
|
148
|
+
## Variants
|
|
149
|
+
|
|
150
|
+
When possible, model states and types in a structured way.
|
|
151
|
+
|
|
152
|
+
Possible patterns:
|
|
153
|
+
- variant maps
|
|
154
|
+
- configuration objects
|
|
155
|
+
- typed enums/unions
|
|
156
|
+
- helper functions for class generation
|
|
157
|
+
|
|
158
|
+
Avoid scattered conditional logic when a component has many states and types.
|
|
159
|
+
|
|
160
|
+
## Documentation Alignment
|
|
161
|
+
|
|
162
|
+
When implementing components, align with the design system documentation pages.
|
|
163
|
+
|
|
164
|
+
If documentation describes:
|
|
165
|
+
- breakpoints
|
|
166
|
+
- responsiveness
|
|
167
|
+
- helper text
|
|
168
|
+
- validation states
|
|
169
|
+
- icons
|
|
170
|
+
- copy action
|
|
171
|
+
- currency suffixes/prefixes
|
|
172
|
+
|
|
173
|
+
the component implementation should reflect those rules.
|
|
174
|
+
|
|
175
|
+
## Reusability
|
|
176
|
+
|
|
177
|
+
Build components for reuse, not only for one screen.
|
|
178
|
+
|
|
179
|
+
Do not:
|
|
180
|
+
- couple components to page-specific business logic
|
|
181
|
+
- hardcode labels or content
|
|
182
|
+
- create component behavior that only works for one product screen
|
|
183
|
+
|
|
184
|
+
## Exports
|
|
185
|
+
|
|
186
|
+
Each component should be exported cleanly from its folder and through the package index when appropriate.
|
|
187
|
+
|
|
188
|
+
Maintain a predictable export structure.
|
|
189
|
+
|
|
190
|
+
## When Claude Works in This Folder
|
|
191
|
+
|
|
192
|
+
Claude should:
|
|
193
|
+
- inspect existing component patterns first
|
|
194
|
+
- follow the state/type model strictly
|
|
195
|
+
- preserve consistency with the design system
|
|
196
|
+
- prefer maintainable abstractions
|
|
197
|
+
- avoid inventing undocumented variants
|
|
198
|
+
- keep implementation scalable for future states and types
|
|
199
|
+
- reuse existing components before creating new internal duplicates
|
|
200
|
+
- prefer composition over rebuilding existing UI primitives
|
|
201
|
+
|
|
202
|
+
## Theme and RTL Requirements
|
|
203
|
+
|
|
204
|
+
Every component in this folder must support:
|
|
205
|
+
- light mode
|
|
206
|
+
- dark mode
|
|
207
|
+
- RTL layout for Arabic
|
|
208
|
+
|
|
209
|
+
Component implementations must not assume LTR-only layout behavior. They should support RTL layout behavior as well.
|
|
210
|
+
|
|
211
|
+
Use direction-aware alignment and spacing.
|
|
212
|
+
Check icons, prefix/suffix content, helper text, validation states, and inline actions in RTL.
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { forwardRef } from 'react';
|
|
4
|
+
import { cn } from '../../lib/cn';
|
|
5
|
+
import { Button } from '../Button';
|
|
6
|
+
import { ButtonMenu } from '../ButtonMenu';
|
|
7
|
+
import {
|
|
8
|
+
ArrowLeftIcon,
|
|
9
|
+
ArrowRightIcon,
|
|
10
|
+
ChevronDownIcon,
|
|
11
|
+
} from '../../icons/IconFactory';
|
|
12
|
+
import type { CalendarHeaderProps } from './CalendarHeader.types';
|
|
13
|
+
import {
|
|
14
|
+
ROOT_DESKTOP,
|
|
15
|
+
ROOT_DESKTOP_CENTER,
|
|
16
|
+
ROOT_MOBILE,
|
|
17
|
+
DUAL_MENUS_WRAP,
|
|
18
|
+
DUAL_ARROWS_WRAP,
|
|
19
|
+
MOBILE_LABEL,
|
|
20
|
+
RTL_FLIP_ICON,
|
|
21
|
+
} from './CalendarHeader.variants';
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* CalendarHeader — the top row of a calendar grid.
|
|
25
|
+
*
|
|
26
|
+
* Presents the current month / year and prev / next navigation. Behaviour
|
|
27
|
+
* is split into four Figma-backed layouts (see {@link CalendarHeaderProps}):
|
|
28
|
+
* desktop dual, desktop centered, mobile compact, mobile centered.
|
|
29
|
+
*
|
|
30
|
+
* Composition
|
|
31
|
+
* ───────────
|
|
32
|
+
* Month / year dropdowns → `<ButtonMenu variant="transparent">`
|
|
33
|
+
* Arrow nav buttons → `<Button variant="transparent" iconOnly>`
|
|
34
|
+
* Mobile plain label → native `<span>` with typography tokens
|
|
35
|
+
* Icons → `ArrowLeftIcon`, `ArrowRightIcon`,
|
|
36
|
+
* `ChevronDownIcon` from the IconFactory
|
|
37
|
+
*
|
|
38
|
+
* RTL
|
|
39
|
+
* ───
|
|
40
|
+
* Arrow glyphs are physical (they point a fixed direction) so a
|
|
41
|
+
* `rtl:rotate-180` wrapper on each icon preserves the semantic meaning
|
|
42
|
+
* of "previous" / "next" when an ancestor has `dir="rtl"`.
|
|
43
|
+
*/
|
|
44
|
+
export const CalendarHeader = forwardRef<HTMLDivElement, CalendarHeaderProps>(
|
|
45
|
+
function CalendarHeader(
|
|
46
|
+
{
|
|
47
|
+
month,
|
|
48
|
+
year,
|
|
49
|
+
center = false,
|
|
50
|
+
mobile = false,
|
|
51
|
+
onMonthClick,
|
|
52
|
+
onYearClick,
|
|
53
|
+
onLabelClick,
|
|
54
|
+
onPrevious,
|
|
55
|
+
onNext,
|
|
56
|
+
disabled = false,
|
|
57
|
+
previousLabel = 'Previous month',
|
|
58
|
+
nextLabel = 'Next month',
|
|
59
|
+
monthMenuLabel = 'Select month',
|
|
60
|
+
yearMenuLabel = 'Select year',
|
|
61
|
+
labelMenuLabel = 'Select month and year',
|
|
62
|
+
className,
|
|
63
|
+
...rest
|
|
64
|
+
},
|
|
65
|
+
ref,
|
|
66
|
+
) {
|
|
67
|
+
/* ── Reused fragments ───────────────────────────────────── */
|
|
68
|
+
|
|
69
|
+
const prevIcon = (
|
|
70
|
+
<span className={RTL_FLIP_ICON}>
|
|
71
|
+
<ArrowLeftIcon />
|
|
72
|
+
</span>
|
|
73
|
+
);
|
|
74
|
+
|
|
75
|
+
const nextIcon = (
|
|
76
|
+
<span className={RTL_FLIP_ICON}>
|
|
77
|
+
<ArrowRightIcon />
|
|
78
|
+
</span>
|
|
79
|
+
);
|
|
80
|
+
|
|
81
|
+
const buttonSize = mobile ? 'sm' : 'lg';
|
|
82
|
+
|
|
83
|
+
const prevButton = (
|
|
84
|
+
<Button
|
|
85
|
+
variant="transparent"
|
|
86
|
+
size={buttonSize}
|
|
87
|
+
iconOnly
|
|
88
|
+
leadingIcon={prevIcon}
|
|
89
|
+
onClick={onPrevious}
|
|
90
|
+
disabled={disabled}
|
|
91
|
+
aria-label={previousLabel}
|
|
92
|
+
data-slot="calendar-header-prev"
|
|
93
|
+
/>
|
|
94
|
+
);
|
|
95
|
+
|
|
96
|
+
const nextButton = (
|
|
97
|
+
<Button
|
|
98
|
+
variant="transparent"
|
|
99
|
+
size={buttonSize}
|
|
100
|
+
iconOnly
|
|
101
|
+
leadingIcon={nextIcon}
|
|
102
|
+
onClick={onNext}
|
|
103
|
+
disabled={disabled}
|
|
104
|
+
aria-label={nextLabel}
|
|
105
|
+
data-slot="calendar-header-next"
|
|
106
|
+
/>
|
|
107
|
+
);
|
|
108
|
+
|
|
109
|
+
/* ── Mobile layouts ─────────────────────────────────────── */
|
|
110
|
+
|
|
111
|
+
if (mobile) {
|
|
112
|
+
if (center) {
|
|
113
|
+
return (
|
|
114
|
+
<div
|
|
115
|
+
ref={ref}
|
|
116
|
+
data-slot="calendar-header"
|
|
117
|
+
data-layout="mobile-center"
|
|
118
|
+
className={cn(ROOT_MOBILE, className)}
|
|
119
|
+
{...rest}
|
|
120
|
+
>
|
|
121
|
+
{prevButton}
|
|
122
|
+
<span className={MOBILE_LABEL} data-slot="calendar-header-label">
|
|
123
|
+
{month} {year}
|
|
124
|
+
</span>
|
|
125
|
+
{nextButton}
|
|
126
|
+
</div>
|
|
127
|
+
);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
return (
|
|
131
|
+
<div
|
|
132
|
+
ref={ref}
|
|
133
|
+
data-slot="calendar-header"
|
|
134
|
+
data-layout="mobile"
|
|
135
|
+
className={cn(ROOT_MOBILE, className)}
|
|
136
|
+
{...rest}
|
|
137
|
+
>
|
|
138
|
+
<span className={MOBILE_LABEL} data-slot="calendar-header-label">
|
|
139
|
+
{month} {year}
|
|
140
|
+
</span>
|
|
141
|
+
<Button
|
|
142
|
+
variant="transparent"
|
|
143
|
+
size="sm"
|
|
144
|
+
iconOnly
|
|
145
|
+
leadingIcon={<ChevronDownIcon />}
|
|
146
|
+
onClick={onLabelClick}
|
|
147
|
+
disabled={disabled}
|
|
148
|
+
aria-label={labelMenuLabel}
|
|
149
|
+
data-slot="calendar-header-label-trigger"
|
|
150
|
+
/>
|
|
151
|
+
{nextButton}
|
|
152
|
+
</div>
|
|
153
|
+
);
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
/* ── Desktop centered layout ────────────────────────────── */
|
|
157
|
+
|
|
158
|
+
if (center) {
|
|
159
|
+
return (
|
|
160
|
+
<div
|
|
161
|
+
ref={ref}
|
|
162
|
+
data-slot="calendar-header"
|
|
163
|
+
data-layout="desktop-center"
|
|
164
|
+
className={cn(ROOT_DESKTOP_CENTER, className)}
|
|
165
|
+
{...rest}
|
|
166
|
+
>
|
|
167
|
+
{prevButton}
|
|
168
|
+
<ButtonMenu
|
|
169
|
+
variant="transparent"
|
|
170
|
+
size="lg"
|
|
171
|
+
onClick={onLabelClick}
|
|
172
|
+
disabled={disabled}
|
|
173
|
+
aria-label={labelMenuLabel}
|
|
174
|
+
data-slot="calendar-header-label-menu"
|
|
175
|
+
>
|
|
176
|
+
{month} {year}
|
|
177
|
+
</ButtonMenu>
|
|
178
|
+
{nextButton}
|
|
179
|
+
</div>
|
|
180
|
+
);
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
/* ── Desktop dual layout (default) ──────────────────────── */
|
|
184
|
+
|
|
185
|
+
return (
|
|
186
|
+
<div
|
|
187
|
+
ref={ref}
|
|
188
|
+
data-slot="calendar-header"
|
|
189
|
+
data-layout="desktop"
|
|
190
|
+
className={cn(ROOT_DESKTOP, className)}
|
|
191
|
+
{...rest}
|
|
192
|
+
>
|
|
193
|
+
<div className={DUAL_MENUS_WRAP}>
|
|
194
|
+
<ButtonMenu
|
|
195
|
+
variant="transparent"
|
|
196
|
+
size="lg"
|
|
197
|
+
onClick={onMonthClick}
|
|
198
|
+
disabled={disabled}
|
|
199
|
+
aria-label={monthMenuLabel}
|
|
200
|
+
data-slot="calendar-header-month"
|
|
201
|
+
>
|
|
202
|
+
{month}
|
|
203
|
+
</ButtonMenu>
|
|
204
|
+
<ButtonMenu
|
|
205
|
+
variant="transparent"
|
|
206
|
+
size="lg"
|
|
207
|
+
onClick={onYearClick}
|
|
208
|
+
disabled={disabled}
|
|
209
|
+
aria-label={yearMenuLabel}
|
|
210
|
+
data-slot="calendar-header-year"
|
|
211
|
+
>
|
|
212
|
+
{year}
|
|
213
|
+
</ButtonMenu>
|
|
214
|
+
</div>
|
|
215
|
+
<div className={DUAL_ARROWS_WRAP}>
|
|
216
|
+
{prevButton}
|
|
217
|
+
{nextButton}
|
|
218
|
+
</div>
|
|
219
|
+
</div>
|
|
220
|
+
);
|
|
221
|
+
},
|
|
222
|
+
);
|
|
223
|
+
|
|
224
|
+
CalendarHeader.displayName = 'CalendarHeader';
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { HTMLAttributes, MouseEventHandler, ReactNode } from 'react';
|
|
2
|
+
|
|
3
|
+
export interface CalendarHeaderProps extends HTMLAttributes<HTMLDivElement> {
|
|
4
|
+
/** Month label (e.g. "December" / "ديسمبر"). */
|
|
5
|
+
month: ReactNode;
|
|
6
|
+
/** Year label (e.g. "2025"). */
|
|
7
|
+
year: ReactNode;
|
|
8
|
+
/**
|
|
9
|
+
* Layout style.
|
|
10
|
+
* `false` (default) — month and year menus sit on the start edge, prev/next
|
|
11
|
+
* arrows on the end edge.
|
|
12
|
+
* `true` — a single combined "Month Year" menu is centered
|
|
13
|
+
* between the prev/next arrows.
|
|
14
|
+
*/
|
|
15
|
+
center?: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Compact mobile layout. When `true`:
|
|
18
|
+
* • The month/year dropdowns collapse into a plain label (with a
|
|
19
|
+
* chevron-trigger in the non-centered variant).
|
|
20
|
+
* • Arrow buttons shrink to `size="sm"` (16 px icon).
|
|
21
|
+
*/
|
|
22
|
+
mobile?: boolean;
|
|
23
|
+
/** Fired when the dual-layout month menu is clicked. */
|
|
24
|
+
onMonthClick?: MouseEventHandler<HTMLButtonElement>;
|
|
25
|
+
/** Fired when the dual-layout year menu is clicked. */
|
|
26
|
+
onYearClick?: MouseEventHandler<HTMLButtonElement>;
|
|
27
|
+
/**
|
|
28
|
+
* Fired when the combined (center-layout) menu button or the mobile
|
|
29
|
+
* chevron trigger is clicked. Typically used to open a month/year picker.
|
|
30
|
+
*/
|
|
31
|
+
onLabelClick?: MouseEventHandler<HTMLButtonElement>;
|
|
32
|
+
/** Fired when the "previous" arrow is clicked. */
|
|
33
|
+
onPrevious?: MouseEventHandler<HTMLButtonElement>;
|
|
34
|
+
/** Fired when the "next" arrow is clicked. */
|
|
35
|
+
onNext?: MouseEventHandler<HTMLButtonElement>;
|
|
36
|
+
/** Disables every interactive child. */
|
|
37
|
+
disabled?: boolean;
|
|
38
|
+
/** Accessible label for the previous-month button. Default `"Previous month"`. */
|
|
39
|
+
previousLabel?: string;
|
|
40
|
+
/** Accessible label for the next-month button. Default `"Next month"`. */
|
|
41
|
+
nextLabel?: string;
|
|
42
|
+
/** Accessible label for the month menu (dual layout). Default `"Select month"`. */
|
|
43
|
+
monthMenuLabel?: string;
|
|
44
|
+
/** Accessible label for the year menu (dual layout). Default `"Select year"`. */
|
|
45
|
+
yearMenuLabel?: string;
|
|
46
|
+
/**
|
|
47
|
+
* Accessible label for the combined/mobile label trigger.
|
|
48
|
+
* Default `"Select month and year"`.
|
|
49
|
+
*/
|
|
50
|
+
labelMenuLabel?: string;
|
|
51
|
+
}
|