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,52 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { forwardRef } from 'react';
|
|
4
|
+
import { cn } from '../../lib/cn';
|
|
5
|
+
import { HamburgerIcon, XIcon } from '../../icons/IconFactory';
|
|
6
|
+
import type { NavHeaderMenuButtonProps } from './NavHeaderMenuButton.types';
|
|
7
|
+
import { ROOT_BASE, ICON_SLOT } from './NavHeaderMenuButton.variants';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* NavHeaderMenuButton — the 40×40 icon-only control that opens and
|
|
11
|
+
* closes the mobile navigation drawer in the app header.
|
|
12
|
+
*
|
|
13
|
+
* States — driven entirely by CSS pseudo-classes (no prop coupling):
|
|
14
|
+
* - default → transparent background
|
|
15
|
+
* - hover → neutral-hovered background
|
|
16
|
+
* - active/press → neutral-pressed background
|
|
17
|
+
* - focus-visible → 2px solid black border (inset, no layout shift)
|
|
18
|
+
* - disabled → 50% opacity, hover/active neutralised
|
|
19
|
+
*
|
|
20
|
+
* The `opened` prop only controls which glyph renders (hamburger ↔ ×)
|
|
21
|
+
* and the default `aria-label` / `aria-expanded` values.
|
|
22
|
+
*
|
|
23
|
+
* Keyboard: native `<button>` gives Enter / Space activation and Tab
|
|
24
|
+
* focus. `aria-expanded` communicates the open/closed state to assistive
|
|
25
|
+
* technologies.
|
|
26
|
+
*/
|
|
27
|
+
export const NavHeaderMenuButton = forwardRef<
|
|
28
|
+
HTMLButtonElement,
|
|
29
|
+
NavHeaderMenuButtonProps
|
|
30
|
+
>(function NavHeaderMenuButton(
|
|
31
|
+
{ opened = false, className, type = 'button', 'aria-label': ariaLabel, ...rest },
|
|
32
|
+
ref,
|
|
33
|
+
) {
|
|
34
|
+
const resolvedAriaLabel = ariaLabel ?? (opened ? 'Close menu' : 'Open menu');
|
|
35
|
+
|
|
36
|
+
return (
|
|
37
|
+
<button
|
|
38
|
+
ref={ref}
|
|
39
|
+
type={type}
|
|
40
|
+
data-slot="nav-header-menu-button"
|
|
41
|
+
data-opened={opened || undefined}
|
|
42
|
+
aria-expanded={opened}
|
|
43
|
+
aria-label={resolvedAriaLabel}
|
|
44
|
+
className={cn(ROOT_BASE, className)}
|
|
45
|
+
{...rest}
|
|
46
|
+
>
|
|
47
|
+
<span data-slot="icon" className={ICON_SLOT}>
|
|
48
|
+
{opened ? <XIcon /> : <HamburgerIcon />}
|
|
49
|
+
</span>
|
|
50
|
+
</button>
|
|
51
|
+
);
|
|
52
|
+
});
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ButtonHTMLAttributes } from 'react';
|
|
2
|
+
|
|
3
|
+
export interface NavHeaderMenuButtonProps
|
|
4
|
+
extends ButtonHTMLAttributes<HTMLButtonElement> {
|
|
5
|
+
/**
|
|
6
|
+
* Whether the associated menu/drawer is currently open.
|
|
7
|
+
* Toggles the glyph between the hamburger (closed) and the × (open) icon.
|
|
8
|
+
* @default false
|
|
9
|
+
*/
|
|
10
|
+
opened?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Accessible label for the button. Strongly recommended — defaults
|
|
13
|
+
* are provided (`Open menu` / `Close menu`) but consumers should
|
|
14
|
+
* override to match their product copy or localisation.
|
|
15
|
+
*/
|
|
16
|
+
'aria-label'?: string;
|
|
17
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* NavHeaderMenuButton — class constants
|
|
3
|
+
*
|
|
4
|
+
* State model (CSS-driven, NOT props):
|
|
5
|
+
* default → base (transparent background, icon #161616)
|
|
6
|
+
* hovered → `hover:` pseudo → bg #f3f4f6 (button-background-neutral-hovered)
|
|
7
|
+
* pressed → `active:` pseudo → bg #e5e7eb (button-background-neutral-pressed)
|
|
8
|
+
* focused → `focus-visible:` pseudo → 2px solid #161616 border, inset via box-sizing
|
|
9
|
+
*
|
|
10
|
+
* Figma: node 5069:58898 ("_Nav Header Menu Button"). 40×40 outer box,
|
|
11
|
+
* 24×24 icon, 8px padding, 8px corner radius.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
/* ── Root button ───────────────────────────────────────────────── */
|
|
15
|
+
/**
|
|
16
|
+
* Base class string applied to the `<button>` element.
|
|
17
|
+
*
|
|
18
|
+
* Token mapping:
|
|
19
|
+
* p-spacing-md → 8px padding (matches Global/spacing-md)
|
|
20
|
+
* rounded-[8px] → matches Radius/radius-8 (no responsive alias)
|
|
21
|
+
* size-[40px] → 24px icon + 2×8px padding → fixed 40×40 per Figma
|
|
22
|
+
*
|
|
23
|
+
* Colour & focus:
|
|
24
|
+
* Default text colour = Icon/icon-default (#161616); the icon inherits
|
|
25
|
+
* it via `fill="currentColor"`.
|
|
26
|
+
* Hover → button-background-neutral-hovered (#f3f4f6)
|
|
27
|
+
* Active → button-background-neutral-pressed (#e5e7eb)
|
|
28
|
+
* Focus → 2px solid #161616 border (Border/border-black)
|
|
29
|
+
*
|
|
30
|
+
* Dark-mode values follow the package convention: low-alpha white
|
|
31
|
+
* overlays for hover/pressed, and a light border for focus.
|
|
32
|
+
*
|
|
33
|
+
* `focus-visible:outline-none` prevents the browser default ring from
|
|
34
|
+
* stacking with our custom 2px border. The 2px border is applied via
|
|
35
|
+
* a transparent default `border-2 border-transparent` so the button
|
|
36
|
+
* does not shift by 2px when focus lands on it.
|
|
37
|
+
*/
|
|
38
|
+
export const ROOT_BASE = [
|
|
39
|
+
// Layout
|
|
40
|
+
'inline-flex items-center justify-center',
|
|
41
|
+
'size-[40px] shrink-0',
|
|
42
|
+
'p-spacing-md',
|
|
43
|
+
'rounded-[8px]',
|
|
44
|
+
// Reserve space for the focus border so default/hover/pressed don't shift
|
|
45
|
+
'border-2 border-transparent',
|
|
46
|
+
// Colours — default (text drives icon colour via currentColor)
|
|
47
|
+
'bg-transparent',
|
|
48
|
+
'text-[rgba(22,22,22,1)] dark:text-[rgba(229,231,235,1)]',
|
|
49
|
+
// Cursor / transition
|
|
50
|
+
'cursor-pointer',
|
|
51
|
+
'motion-feedback',
|
|
52
|
+
// Hover
|
|
53
|
+
'hover:bg-[rgba(243,244,246,1)] dark:hover:bg-[rgba(255,255,255,0.06)]',
|
|
54
|
+
// Pressed / active
|
|
55
|
+
'active:bg-[rgba(229,231,235,1)] dark:active:bg-[rgba(255,255,255,0.1)]',
|
|
56
|
+
// Focus-visible — 2px solid black border, background returns to transparent
|
|
57
|
+
'focus-visible:outline-none',
|
|
58
|
+
'focus-visible:border-[rgba(22,22,22,1)] dark:focus-visible:border-[rgba(210,214,219,1)]',
|
|
59
|
+
'focus-visible:bg-transparent dark:focus-visible:bg-transparent',
|
|
60
|
+
// Disabled
|
|
61
|
+
'disabled:cursor-not-allowed disabled:opacity-50',
|
|
62
|
+
'disabled:hover:bg-transparent disabled:active:bg-transparent',
|
|
63
|
+
].join(' ');
|
|
64
|
+
|
|
65
|
+
/* ── Icon slot ─────────────────────────────────────────────────── */
|
|
66
|
+
/**
|
|
67
|
+
* Fixed 24×24 wrapper around the inline SVG. Figma specifies a
|
|
68
|
+
* constant 24px glyph at every breakpoint, and no `size-icon-*`
|
|
69
|
+
* token resolves to 24 across all three breakpoints, so this is
|
|
70
|
+
* an intentional hardcode.
|
|
71
|
+
*/
|
|
72
|
+
export const ICON_SLOT =
|
|
73
|
+
'inline-flex items-center justify-center shrink-0 size-[24px]';
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { forwardRef } from 'react';
|
|
4
|
+
import { cn } from '../../lib/cn';
|
|
5
|
+
import { PlayIcon } from '../../icons/IconFactory';
|
|
6
|
+
import type { NavHeaderMenuCardProps } from './NavHeaderMenuCard.types';
|
|
7
|
+
import {
|
|
8
|
+
ROOT_BY_LAYOUT,
|
|
9
|
+
ACTIVE_BG,
|
|
10
|
+
IMAGE_WRAPPER_BY_LAYOUT,
|
|
11
|
+
PLAY_OVERLAY_BASE,
|
|
12
|
+
PLAY_ICON_SLOT,
|
|
13
|
+
CONTENT_BY_LAYOUT,
|
|
14
|
+
TEXT_BLOCK,
|
|
15
|
+
TITLE_TEXT,
|
|
16
|
+
DESCRIPTION_TEXT,
|
|
17
|
+
ACTIONS_ROW_BY_TYPE,
|
|
18
|
+
} from './NavHeaderMenuCard.variants';
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* NavHeaderMenuCard — the content card rendered inside the mobile
|
|
22
|
+
* nav-header expanded drawer / desktop mega-menu. Supports three
|
|
23
|
+
* visual types (image / video / featured) and two layouts
|
|
24
|
+
* (inline / stacked), plus an `active` state for "currently selected".
|
|
25
|
+
*
|
|
26
|
+
* Structure:
|
|
27
|
+
* ┌────────────────────────────────────────────┐
|
|
28
|
+
* │ [image] ┐ Title (inline) │
|
|
29
|
+
* │ │ Description │
|
|
30
|
+
* │ └ [ actions … ] │
|
|
31
|
+
* └────────────────────────────────────────────┘
|
|
32
|
+
*
|
|
33
|
+
* Composition:
|
|
34
|
+
* - `image` → consumer-supplied ReactNode (no hardcoded asset path).
|
|
35
|
+
* - `actions` → consumer-supplied ReactNode — typically pre-configured
|
|
36
|
+
* `<Button>`s from sdaia-ui.
|
|
37
|
+
*
|
|
38
|
+
* States:
|
|
39
|
+
* - `active` (prop) → background-body fill
|
|
40
|
+
* - hover / focus / press of inner buttons are handled by `<Button>`
|
|
41
|
+
* - the video play overlay is itself a focusable `<button>`
|
|
42
|
+
*
|
|
43
|
+
* RTL: ambient `dir="rtl"` is fully supported — the card uses logical
|
|
44
|
+
* flex direction so the image swaps sides automatically.
|
|
45
|
+
*/
|
|
46
|
+
export const NavHeaderMenuCard = forwardRef<
|
|
47
|
+
HTMLDivElement,
|
|
48
|
+
NavHeaderMenuCardProps
|
|
49
|
+
>(function NavHeaderMenuCard(
|
|
50
|
+
{
|
|
51
|
+
type = 'image',
|
|
52
|
+
layout = 'inline',
|
|
53
|
+
active = false,
|
|
54
|
+
title,
|
|
55
|
+
description,
|
|
56
|
+
image,
|
|
57
|
+
onPlayClick,
|
|
58
|
+
playAriaLabel = 'Play video',
|
|
59
|
+
actions,
|
|
60
|
+
className,
|
|
61
|
+
...rest
|
|
62
|
+
},
|
|
63
|
+
ref,
|
|
64
|
+
) {
|
|
65
|
+
const isVideo = type === 'video';
|
|
66
|
+
|
|
67
|
+
/* ── Image wrapper content (image + optional play overlay) ───── */
|
|
68
|
+
const imageContent = image ? (
|
|
69
|
+
<div
|
|
70
|
+
data-slot="image-wrapper"
|
|
71
|
+
className={IMAGE_WRAPPER_BY_LAYOUT[layout]}
|
|
72
|
+
>
|
|
73
|
+
{image}
|
|
74
|
+
{isVideo ? (
|
|
75
|
+
<button
|
|
76
|
+
type="button"
|
|
77
|
+
data-slot="play-overlay"
|
|
78
|
+
onClick={onPlayClick}
|
|
79
|
+
aria-label={playAriaLabel}
|
|
80
|
+
className={PLAY_OVERLAY_BASE}
|
|
81
|
+
>
|
|
82
|
+
<span className={PLAY_ICON_SLOT}>
|
|
83
|
+
<PlayIcon />
|
|
84
|
+
</span>
|
|
85
|
+
</button>
|
|
86
|
+
) : null}
|
|
87
|
+
</div>
|
|
88
|
+
) : null;
|
|
89
|
+
|
|
90
|
+
return (
|
|
91
|
+
<div
|
|
92
|
+
ref={ref}
|
|
93
|
+
data-slot="nav-header-menu-card"
|
|
94
|
+
data-type={type}
|
|
95
|
+
data-layout={layout}
|
|
96
|
+
data-active={active || undefined}
|
|
97
|
+
className={cn(
|
|
98
|
+
ROOT_BY_LAYOUT[layout],
|
|
99
|
+
active && ACTIVE_BG,
|
|
100
|
+
className,
|
|
101
|
+
)}
|
|
102
|
+
{...rest}
|
|
103
|
+
>
|
|
104
|
+
{imageContent}
|
|
105
|
+
|
|
106
|
+
<div data-slot="content" className={CONTENT_BY_LAYOUT[layout]}>
|
|
107
|
+
<div data-slot="text-block" className={TEXT_BLOCK}>
|
|
108
|
+
<p data-slot="title" className={TITLE_TEXT}>
|
|
109
|
+
{title}
|
|
110
|
+
</p>
|
|
111
|
+
{description ? (
|
|
112
|
+
<p data-slot="description" className={DESCRIPTION_TEXT}>
|
|
113
|
+
{description}
|
|
114
|
+
</p>
|
|
115
|
+
) : null}
|
|
116
|
+
</div>
|
|
117
|
+
|
|
118
|
+
{actions ? (
|
|
119
|
+
<div data-slot="actions" className={ACTIONS_ROW_BY_TYPE[type]}>
|
|
120
|
+
{actions}
|
|
121
|
+
</div>
|
|
122
|
+
) : null}
|
|
123
|
+
</div>
|
|
124
|
+
</div>
|
|
125
|
+
);
|
|
126
|
+
});
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import type { HTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
|
|
3
|
+
/** Visual type — drives which action pattern and image treatment is used. */
|
|
4
|
+
export type NavHeaderMenuCardType = 'image' | 'video' | 'featured';
|
|
5
|
+
|
|
6
|
+
/** Layout orientation of image relative to content. */
|
|
7
|
+
export type NavHeaderMenuCardLayout = 'inline' | 'stacked';
|
|
8
|
+
|
|
9
|
+
export interface NavHeaderMenuCardProps
|
|
10
|
+
extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
|
|
11
|
+
/**
|
|
12
|
+
* Visual type:
|
|
13
|
+
* - `image` → image on the side (inline) or on top (stacked)
|
|
14
|
+
* - `video` → same layout as image + a play-button overlay on the image
|
|
15
|
+
* - `featured` → image + two text-only action buttons under the content
|
|
16
|
+
* @default 'image'
|
|
17
|
+
*/
|
|
18
|
+
type?: NavHeaderMenuCardType;
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Layout orientation:
|
|
22
|
+
* - `inline` → image next to content, card is a 420 px row
|
|
23
|
+
* - `stacked` → image on top, card is a 320 px column
|
|
24
|
+
* @default 'inline'
|
|
25
|
+
*/
|
|
26
|
+
layout?: NavHeaderMenuCardLayout;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Marks the card as active (e.g. the currently selected item in the nav
|
|
30
|
+
* header menu). Applies a subtle background-body fill.
|
|
31
|
+
* @default false
|
|
32
|
+
*/
|
|
33
|
+
active?: boolean;
|
|
34
|
+
|
|
35
|
+
/** Card title — rendered as a `<p>` with Text md/Semibold styling. */
|
|
36
|
+
title: ReactNode;
|
|
37
|
+
|
|
38
|
+
/** Helper / description text below the title. Omit to hide. */
|
|
39
|
+
description?: ReactNode;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* The image element shown in the image wrapper. Usually an `<img />` or
|
|
43
|
+
* a `<div>` with a background image. Consumer-supplied so the component
|
|
44
|
+
* ships with no hardcoded asset path — this keeps the card fully usable
|
|
45
|
+
* on a fresh project install where local `public/` assets don't exist.
|
|
46
|
+
*/
|
|
47
|
+
image?: ReactNode;
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* When `type='video'`, fires when the play-button overlay is clicked
|
|
51
|
+
* or activated via keyboard. Ignored for other types.
|
|
52
|
+
*/
|
|
53
|
+
onPlayClick?: () => void;
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* When `type='video'`, the accessible label for the play-button overlay.
|
|
57
|
+
* @default 'Play video'
|
|
58
|
+
*/
|
|
59
|
+
playAriaLabel?: string;
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* The action row under the content. Consumer passes pre-configured
|
|
63
|
+
* `<Button />`s. Recommended patterns per type:
|
|
64
|
+
* - image → 1× `<Button variant="secondary-outline" trailingIcon={<ArrowRightIcon />}>Read Post</Button>`
|
|
65
|
+
* - video → 1× `<Button variant="secondary-outline" leadingIcon={<PlayIcon />}>Watch Video</Button>`
|
|
66
|
+
* - featured → 2× `<Button variant="subtle">…</Button>`
|
|
67
|
+
* The component does not inject buttons so consumers keep full control
|
|
68
|
+
* over labels, hrefs, destructive variants, localisation, etc.
|
|
69
|
+
*/
|
|
70
|
+
actions?: ReactNode;
|
|
71
|
+
|
|
72
|
+
/** Extra classes merged onto the root `<div>`. */
|
|
73
|
+
className?: string;
|
|
74
|
+
}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
NavHeaderMenuCardLayout,
|
|
3
|
+
NavHeaderMenuCardType,
|
|
4
|
+
} from './NavHeaderMenuCard.types';
|
|
5
|
+
|
|
6
|
+
/*
|
|
7
|
+
* NavHeaderMenuCard — class constants
|
|
8
|
+
*
|
|
9
|
+
* Figma: node 5098:59841 "_Nav Header Menu Card". Matrix:
|
|
10
|
+
* type × layout × state × rtl
|
|
11
|
+
* 3 × 2 × 2 × 2 → 24 visual permutations
|
|
12
|
+
*
|
|
13
|
+
* State model:
|
|
14
|
+
* active (prop) → background-body fill on the root
|
|
15
|
+
* RTL → ambient `dir` attribute, no code change required
|
|
16
|
+
* (logical properties handle flip)
|
|
17
|
+
* hover/press/focus of the inner action buttons → handled by <Button>
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
/* ── Root container (per layout) ───────────────────────────────── */
|
|
21
|
+
/**
|
|
22
|
+
* Token mapping:
|
|
23
|
+
* p-spacing-lg → 12 px padding
|
|
24
|
+
* gap-spacing-lg → 12 px gap (inline: horizontal; stacked: vertical)
|
|
25
|
+
* rounded-[8px] → Radius/radius-8 (no responsive alias)
|
|
26
|
+
* w-[420px] → Figma inline card width
|
|
27
|
+
* w-[320px] → Figma stacked card width
|
|
28
|
+
*
|
|
29
|
+
* `overflow-clip` mirrors the Figma frame so the image radius clips.
|
|
30
|
+
* Transition is tokenised via `--motion-duration-fast` so the active-bg
|
|
31
|
+
* change is animated consistently with the rest of the design system.
|
|
32
|
+
*/
|
|
33
|
+
export const ROOT_BY_LAYOUT: Record<NavHeaderMenuCardLayout, string> = {
|
|
34
|
+
inline: [
|
|
35
|
+
'content-stretch flex gap-spacing-lg items-center',
|
|
36
|
+
'p-spacing-lg rounded-[8px] overflow-clip',
|
|
37
|
+
'w-[420px] max-w-full',
|
|
38
|
+
'motion-feedback',
|
|
39
|
+
].join(' '),
|
|
40
|
+
stacked: [
|
|
41
|
+
'content-stretch flex flex-col gap-spacing-lg items-start',
|
|
42
|
+
'p-spacing-lg rounded-[8px] overflow-clip',
|
|
43
|
+
'w-[320px] max-w-full',
|
|
44
|
+
'motion-feedback',
|
|
45
|
+
].join(' '),
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
/* ── Active-state background ───────────────────────────────────── */
|
|
49
|
+
/**
|
|
50
|
+
* Light: Background/background-body (#f9fafb)
|
|
51
|
+
* Dark: low-alpha white overlay matching the rest of the package
|
|
52
|
+
* (see MenuButtonItem, Chip, etc. for the same convention).
|
|
53
|
+
*/
|
|
54
|
+
export const ACTIVE_BG =
|
|
55
|
+
'bg-[rgba(249,250,251,1)] dark:bg-[rgba(255,255,255,0.06)]';
|
|
56
|
+
|
|
57
|
+
/* ── Image wrapper ─────────────────────────────────────────────── */
|
|
58
|
+
/**
|
|
59
|
+
* Inline → fixed 120×120 square (matches Figma exactly across breakpoints)
|
|
60
|
+
* Stacked → full-width, aspect ratio preserved per Figma (356:250).
|
|
61
|
+
*
|
|
62
|
+
* `relative` is required for the video play-overlay to absolute-center.
|
|
63
|
+
* `overflow-hidden` ensures the image's `object-cover` respects the
|
|
64
|
+
* rounded corners.
|
|
65
|
+
*/
|
|
66
|
+
export const IMAGE_WRAPPER_BY_LAYOUT: Record<NavHeaderMenuCardLayout, string> =
|
|
67
|
+
{
|
|
68
|
+
inline:
|
|
69
|
+
'relative shrink-0 size-[120px] rounded-[8px] overflow-hidden ' +
|
|
70
|
+
'flex items-center justify-center',
|
|
71
|
+
stacked:
|
|
72
|
+
'relative w-full aspect-[356/250] rounded-[8px] overflow-hidden ' +
|
|
73
|
+
'flex items-center justify-center',
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Applied to user-supplied `<img>` children implicitly via a wrapping
|
|
78
|
+
* div + explicit Tailwind classes on the child when it is an `<img>`.
|
|
79
|
+
* Here exposed as a constant so the component and any future variants
|
|
80
|
+
* agree on the exact image fitting behaviour.
|
|
81
|
+
*/
|
|
82
|
+
export const IMAGE_FIT_CLASSES =
|
|
83
|
+
'block size-full object-cover';
|
|
84
|
+
|
|
85
|
+
/* ── Video play overlay ────────────────────────────────────────── */
|
|
86
|
+
/**
|
|
87
|
+
* Absolutely centered pill on top of the image.
|
|
88
|
+
* Token mapping:
|
|
89
|
+
* p-spacing-xs → 4 px padding
|
|
90
|
+
* rounded-[8px] → Radius/radius-8
|
|
91
|
+
* bg → Button/button-background-transparent-selected (rgba 255,255,255,0.3)
|
|
92
|
+
*
|
|
93
|
+
* Focus ring matches Button's ring token family so it feels consistent
|
|
94
|
+
* when a user tabs onto the overlay.
|
|
95
|
+
*/
|
|
96
|
+
export const PLAY_OVERLAY_BASE = [
|
|
97
|
+
'absolute inset-0 m-auto',
|
|
98
|
+
'inline-flex items-center justify-center',
|
|
99
|
+
'size-fit p-spacing-xs rounded-[8px]',
|
|
100
|
+
'bg-[rgba(255,255,255,0.3)]',
|
|
101
|
+
'text-white',
|
|
102
|
+
'cursor-pointer',
|
|
103
|
+
'motion-feedback',
|
|
104
|
+
'hover:bg-[rgba(255,255,255,0.4)]',
|
|
105
|
+
'active:bg-[rgba(255,255,255,0.5)]',
|
|
106
|
+
'focus-visible:outline-none',
|
|
107
|
+
'focus-visible:ring-2 focus-visible:ring-[rgba(255,255,255,0.8)]',
|
|
108
|
+
'focus-visible:ring-offset-2 focus-visible:ring-offset-black/20',
|
|
109
|
+
].join(' ');
|
|
110
|
+
|
|
111
|
+
/** Fixed 24 px glyph — Figma-specific size, no responsive token matches. */
|
|
112
|
+
export const PLAY_ICON_SLOT =
|
|
113
|
+
'inline-flex items-center justify-center shrink-0 size-[24px]';
|
|
114
|
+
|
|
115
|
+
/* ── Content column ────────────────────────────────────────────── */
|
|
116
|
+
/**
|
|
117
|
+
* Inline → grows to fill remaining row width, `min-w-0` enables
|
|
118
|
+
* child text truncation / wrapping.
|
|
119
|
+
* Stacked → full-width column.
|
|
120
|
+
*
|
|
121
|
+
* `gap-spacing-lg` is the 12 px vertical gap between the title/helper
|
|
122
|
+
* block and the actions row.
|
|
123
|
+
*/
|
|
124
|
+
export const CONTENT_BY_LAYOUT: Record<NavHeaderMenuCardLayout, string> = {
|
|
125
|
+
inline:
|
|
126
|
+
'content-stretch flex flex-1 min-w-0 flex-col gap-spacing-lg items-start',
|
|
127
|
+
stacked:
|
|
128
|
+
'content-stretch flex w-full flex-col gap-spacing-lg items-start',
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
/* ── Text block ────────────────────────────────────────────────── */
|
|
132
|
+
/** Gap between title and description: 4 px (Global/spacing-xs). */
|
|
133
|
+
export const TEXT_BLOCK =
|
|
134
|
+
'flex w-full flex-col items-start gap-spacing-xs';
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* Title — Text md/Semibold.
|
|
138
|
+
* Font size uses responsive `text-text-md` token.
|
|
139
|
+
* Line height is baked into the `@utility` in globals.css.
|
|
140
|
+
* Color: Text/text-display.
|
|
141
|
+
*/
|
|
142
|
+
export const TITLE_TEXT = [
|
|
143
|
+
'text-text-md font-[600]',
|
|
144
|
+
'text-[rgba(31,42,55,1)] dark:text-[rgba(229,231,235,1)]',
|
|
145
|
+
'w-full',
|
|
146
|
+
].join(' ');
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Description — Text sm/Regular.
|
|
150
|
+
* Color: Text/text-primary-paragraph.
|
|
151
|
+
*/
|
|
152
|
+
export const DESCRIPTION_TEXT = [
|
|
153
|
+
'text-text-sm font-[400]',
|
|
154
|
+
'text-[rgba(56,66,80,1)] dark:text-[rgba(156,163,175,1)]',
|
|
155
|
+
'w-full',
|
|
156
|
+
].join(' ');
|
|
157
|
+
|
|
158
|
+
/* ── Actions row ───────────────────────────────────────────────── */
|
|
159
|
+
/**
|
|
160
|
+
* Featured card uses 8 px gap between its two text-only buttons.
|
|
161
|
+
* Image / Video cards typically render a single button so the gap is
|
|
162
|
+
* inert there — kept the same for simplicity and so that a consumer
|
|
163
|
+
* choosing to render two buttons on those types still gets spacing.
|
|
164
|
+
*/
|
|
165
|
+
export const ACTIONS_ROW_BY_TYPE: Record<NavHeaderMenuCardType, string> = {
|
|
166
|
+
image: 'flex w-full items-center gap-spacing-md',
|
|
167
|
+
video: 'flex w-full items-center gap-spacing-md',
|
|
168
|
+
featured: 'flex w-full items-center gap-spacing-md',
|
|
169
|
+
};
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { forwardRef } from 'react';
|
|
4
|
+
import { cn } from '../../lib/cn';
|
|
5
|
+
import type { NavHeaderMenuItemProps } from './NavHeaderMenuItem.types';
|
|
6
|
+
import {
|
|
7
|
+
CONTAINER_BASE,
|
|
8
|
+
CONTAINER_DESKTOP,
|
|
9
|
+
CONTAINER_MOBILE,
|
|
10
|
+
HOVER_BG,
|
|
11
|
+
FOCUS_CLOSED,
|
|
12
|
+
FOCUS_OPEN,
|
|
13
|
+
LABEL_BASE,
|
|
14
|
+
LABEL_CLOSED,
|
|
15
|
+
LABEL_OPEN,
|
|
16
|
+
LABEL_MOBILE,
|
|
17
|
+
LABEL_DESKTOP,
|
|
18
|
+
LEADING_ICON_WRAPPER,
|
|
19
|
+
LEADING_ICON_SIZE,
|
|
20
|
+
LEADING_ICON_CLOSED,
|
|
21
|
+
LEADING_ICON_OPEN,
|
|
22
|
+
TRAILING_ICON_WRAPPER,
|
|
23
|
+
TRAILING_ICON_SIZE,
|
|
24
|
+
TRAILING_ICON_CLOSED,
|
|
25
|
+
TRAILING_ICON_OPEN,
|
|
26
|
+
} from './NavHeaderMenuItem.variants';
|
|
27
|
+
import { PlayIconTwotone, ArrowUpIcon, ArrowDownIcon } from '../../icons/IconFactory';
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* NavHeaderMenuItem — a navigation top-bar menu trigger item.
|
|
31
|
+
*
|
|
32
|
+
* Combines a leading play icon, a text label, and a trailing chevron into a
|
|
33
|
+
* single focusable, hoverable, clickable button. Intended to sit inside a
|
|
34
|
+
* horizontal navigation header and act as the trigger for a dropdown panel.
|
|
35
|
+
*
|
|
36
|
+
* Pixel-perfect match to Figma node 5069-58559 ("_Nav Header Menu Item") across
|
|
37
|
+
* all 20 variants (2 RTL × 3 states × 2 open × 2 mobile combinations).
|
|
38
|
+
*
|
|
39
|
+
* ── States ────────────────────────────────────────────────────────────────────
|
|
40
|
+
* Default → transparent background, neutral colour palette
|
|
41
|
+
* Hovered → `background-body` (#f9fafb) fill, darker icon/text
|
|
42
|
+
* Focused → 2 px border + 3 px white outer ring (desktop only)
|
|
43
|
+
*
|
|
44
|
+
* ── Open vs closed ────────────────────────────────────────────────────────────
|
|
45
|
+
* open=false → grey play icon, regular-weight label, arrow-down, black focus border
|
|
46
|
+
* open=true → brand-green play icon, medium-weight label, arrow-up, green focus border
|
|
47
|
+
*
|
|
48
|
+
* ── Layout ────────────────────────────────────────────────────────────────────
|
|
49
|
+
* mobile=false (default) → 40 px high, compact padding, content-width
|
|
50
|
+
* mobile=true → 48 px high, larger padding, full-width flex label
|
|
51
|
+
*
|
|
52
|
+
* ── RTL ───────────────────────────────────────────────────────────────────────
|
|
53
|
+
* Fully automatic via `dir="rtl"` on an ancestor element.
|
|
54
|
+
* Flex `row` direction respects the inline start/end direction: play icon
|
|
55
|
+
* moves to the trailing (right) edge and the arrow to the leading (left) edge
|
|
56
|
+
* without any extra code.
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* // Controlled open/close toggle
|
|
60
|
+
* const [open, setOpen] = useState(false);
|
|
61
|
+
* <NavHeaderMenuItem
|
|
62
|
+
* open={open}
|
|
63
|
+
* label="Products"
|
|
64
|
+
* onClick={() => setOpen(o => !o)}
|
|
65
|
+
* />
|
|
66
|
+
*
|
|
67
|
+
* // Mobile layout
|
|
68
|
+
* <NavHeaderMenuItem mobile open label="Solutions" />
|
|
69
|
+
*
|
|
70
|
+
* // RTL — wrap in a dir="rtl" ancestor
|
|
71
|
+
* <div dir="rtl">
|
|
72
|
+
* <NavHeaderMenuItem label="المنتجات" />
|
|
73
|
+
* </div>
|
|
74
|
+
*/
|
|
75
|
+
export const NavHeaderMenuItem = forwardRef<HTMLButtonElement, NavHeaderMenuItemProps>(
|
|
76
|
+
function NavHeaderMenuItem(
|
|
77
|
+
{
|
|
78
|
+
open = false,
|
|
79
|
+
selected = false,
|
|
80
|
+
mobile = false,
|
|
81
|
+
label = 'Header Item',
|
|
82
|
+
showLeadingIcon = true,
|
|
83
|
+
showTrailingIcon = true,
|
|
84
|
+
leadingIcon,
|
|
85
|
+
className,
|
|
86
|
+
...rest
|
|
87
|
+
},
|
|
88
|
+
ref,
|
|
89
|
+
) {
|
|
90
|
+
/* Either `open` (transient — dropdown showing) or `selected`
|
|
91
|
+
* (persistent — current page) gets the brand-green colour treatment.
|
|
92
|
+
* `open` continues to own the chevron direction. */
|
|
93
|
+
const isHighlighted = open || selected;
|
|
94
|
+
|
|
95
|
+
return (
|
|
96
|
+
<button
|
|
97
|
+
ref={ref}
|
|
98
|
+
type="button"
|
|
99
|
+
data-slot="nav-header-menu-item"
|
|
100
|
+
data-state={open ? 'open' : 'closed'}
|
|
101
|
+
data-selected={selected || undefined}
|
|
102
|
+
aria-expanded={open}
|
|
103
|
+
aria-current={selected ? 'page' : undefined}
|
|
104
|
+
className={cn(
|
|
105
|
+
CONTAINER_BASE,
|
|
106
|
+
mobile ? CONTAINER_MOBILE : CONTAINER_DESKTOP,
|
|
107
|
+
HOVER_BG,
|
|
108
|
+
/* Focus ring: color depends on highlight; suppressed on mobile (Figma) */
|
|
109
|
+
!mobile && (isHighlighted ? FOCUS_OPEN : FOCUS_CLOSED),
|
|
110
|
+
className,
|
|
111
|
+
)}
|
|
112
|
+
{...rest}
|
|
113
|
+
>
|
|
114
|
+
{/* ── Leading play icon ──────────────────────────────────────────── */}
|
|
115
|
+
{showLeadingIcon && (
|
|
116
|
+
<span
|
|
117
|
+
data-slot="nav-header-menu-item-leading-icon"
|
|
118
|
+
className={cn(
|
|
119
|
+
LEADING_ICON_WRAPPER,
|
|
120
|
+
LEADING_ICON_SIZE,
|
|
121
|
+
isHighlighted ? LEADING_ICON_OPEN : LEADING_ICON_CLOSED,
|
|
122
|
+
)}
|
|
123
|
+
>
|
|
124
|
+
{leadingIcon ?? (
|
|
125
|
+
<PlayIconTwotone aria-hidden="true" />
|
|
126
|
+
)}
|
|
127
|
+
</span>
|
|
128
|
+
)}
|
|
129
|
+
|
|
130
|
+
{/* ── Label ─────────────────────────────────────────────────────── */}
|
|
131
|
+
<span
|
|
132
|
+
data-slot="nav-header-menu-item-label"
|
|
133
|
+
className={cn(
|
|
134
|
+
LABEL_BASE,
|
|
135
|
+
mobile ? LABEL_MOBILE : LABEL_DESKTOP,
|
|
136
|
+
isHighlighted ? LABEL_OPEN : LABEL_CLOSED,
|
|
137
|
+
)}
|
|
138
|
+
>
|
|
139
|
+
{label}
|
|
140
|
+
</span>
|
|
141
|
+
|
|
142
|
+
{/* ── Trailing chevron arrow ─────────────────────────────────────── */}
|
|
143
|
+
{showTrailingIcon && (
|
|
144
|
+
<span
|
|
145
|
+
data-slot="nav-header-menu-item-trailing-icon"
|
|
146
|
+
className={cn(
|
|
147
|
+
TRAILING_ICON_WRAPPER,
|
|
148
|
+
TRAILING_ICON_SIZE,
|
|
149
|
+
isHighlighted ? TRAILING_ICON_OPEN : TRAILING_ICON_CLOSED,
|
|
150
|
+
)}
|
|
151
|
+
>
|
|
152
|
+
{open ? (
|
|
153
|
+
<ArrowUpIcon aria-hidden="true" width="100%" height="100%" />
|
|
154
|
+
) : (
|
|
155
|
+
<ArrowDownIcon aria-hidden="true" width="100%" height="100%" />
|
|
156
|
+
)}
|
|
157
|
+
</span>
|
|
158
|
+
)}
|
|
159
|
+
</button>
|
|
160
|
+
);
|
|
161
|
+
},
|
|
162
|
+
);
|
|
163
|
+
|
|
164
|
+
NavHeaderMenuItem.displayName = 'NavHeaderMenuItem';
|