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.
Files changed (880) hide show
  1. package/README.md +89 -0
  2. package/dist/PlayVideoIcon-BM-4pwUd.d.cts +7 -0
  3. package/dist/PlayVideoIcon-BM-4pwUd.d.ts +7 -0
  4. package/dist/dga-icons.cjs +14 -0
  5. package/dist/dga-icons.cjs.map +1 -0
  6. package/dist/dga-icons.d.cts +1 -0
  7. package/dist/dga-icons.d.ts +1 -0
  8. package/dist/dga-icons.js +3 -0
  9. package/dist/dga-icons.js.map +1 -0
  10. package/dist/icons.cjs +4014 -0
  11. package/dist/icons.cjs.map +1 -0
  12. package/dist/icons.d.cts +756 -0
  13. package/dist/icons.d.ts +756 -0
  14. package/dist/icons.js +3871 -0
  15. package/dist/icons.js.map +1 -0
  16. package/dist/index.cjs +43620 -0
  17. package/dist/index.cjs.map +1 -0
  18. package/dist/index.d.cts +9407 -0
  19. package/dist/index.d.ts +9407 -0
  20. package/dist/index.js +43411 -0
  21. package/dist/index.js.map +1 -0
  22. package/dist/styles.css +242 -0
  23. package/package.json +65 -0
  24. package/src/components/Accordion/Accordion.tsx +207 -0
  25. package/src/components/Accordion/Accordion.types.ts +36 -0
  26. package/src/components/Accordion/Accordion.variants.ts +283 -0
  27. package/src/components/Accordion/index.ts +9 -0
  28. package/src/components/ActionBar/ActionBar.tsx +192 -0
  29. package/src/components/ActionBar/ActionBar.types.ts +67 -0
  30. package/src/components/ActionBar/ActionBar.variants.ts +95 -0
  31. package/src/components/ActionBar/index.ts +8 -0
  32. package/src/components/Activity/Activity.tsx +52 -0
  33. package/src/components/Activity/Activity.types.ts +19 -0
  34. package/src/components/Activity/Activity.variants.ts +15 -0
  35. package/src/components/Activity/index.ts +2 -0
  36. package/src/components/ActivityItem/ActivityItem.tsx +298 -0
  37. package/src/components/ActivityItem/ActivityItem.types.ts +76 -0
  38. package/src/components/ActivityItem/ActivityItem.variants.ts +117 -0
  39. package/src/components/ActivityItem/index.ts +8 -0
  40. package/src/components/Alert/Alert.tsx +183 -0
  41. package/src/components/Alert/Alert.types.ts +34 -0
  42. package/src/components/Alert/Alert.variants.ts +168 -0
  43. package/src/components/Alert/index.ts +2 -0
  44. package/src/components/AreaChart/AreaChart.tsx +454 -0
  45. package/src/components/AreaChart/AreaChart.types.ts +117 -0
  46. package/src/components/AreaChart/AreaChart.variants.ts +202 -0
  47. package/src/components/AreaChart/index.ts +2 -0
  48. package/src/components/AspectRatio/AspectRatio.tsx +36 -0
  49. package/src/components/AspectRatio/AspectRatio.types.ts +33 -0
  50. package/src/components/AspectRatio/AspectRatio.variants.ts +42 -0
  51. package/src/components/AspectRatio/index.ts +2 -0
  52. package/src/components/AudioPlayer/AudioPlayer.tsx +294 -0
  53. package/src/components/AudioPlayer/AudioPlayer.types.ts +64 -0
  54. package/src/components/AudioPlayer/AudioPlayer.variants.ts +225 -0
  55. package/src/components/AudioPlayer/index.ts +2 -0
  56. package/src/components/Autocomplete/Autocomplete.tsx +353 -0
  57. package/src/components/Autocomplete/Autocomplete.types.ts +93 -0
  58. package/src/components/Autocomplete/Autocomplete.variants.ts +149 -0
  59. package/src/components/Autocomplete/index.ts +6 -0
  60. package/src/components/Avatar/Avatar.tsx +168 -0
  61. package/src/components/Avatar/Avatar.types.ts +36 -0
  62. package/src/components/Avatar/Avatar.variants.ts +102 -0
  63. package/src/components/Avatar/index.ts +7 -0
  64. package/src/components/AvatarGroup/AvatarGroup.tsx +87 -0
  65. package/src/components/AvatarGroup/AvatarGroup.types.ts +44 -0
  66. package/src/components/AvatarGroup/AvatarGroup.variants.ts +17 -0
  67. package/src/components/AvatarGroup/index.ts +6 -0
  68. package/src/components/Badge/Badge.tsx +74 -0
  69. package/src/components/Badge/Badge.types.ts +31 -0
  70. package/src/components/Badge/Badge.variants.ts +83 -0
  71. package/src/components/Badge/index.ts +2 -0
  72. package/src/components/Bar/Bar.tsx +57 -0
  73. package/src/components/Bar/Bar.types.ts +18 -0
  74. package/src/components/Bar/Bar.variants.ts +20 -0
  75. package/src/components/Bar/index.ts +2 -0
  76. package/src/components/BarChart/BarChart.tsx +179 -0
  77. package/src/components/BarChart/BarChart.types.ts +72 -0
  78. package/src/components/BarChart/BarChart.variants.ts +134 -0
  79. package/src/components/BarChart/index.ts +2 -0
  80. package/src/components/BarGroup/BarGroup.tsx +119 -0
  81. package/src/components/BarGroup/BarGroup.types.ts +50 -0
  82. package/src/components/BarGroup/BarGroup.variants.ts +76 -0
  83. package/src/components/BarGroup/index.ts +2 -0
  84. package/src/components/Breadcrumb/Breadcrumb.tsx +137 -0
  85. package/src/components/Breadcrumb/Breadcrumb.types.ts +21 -0
  86. package/src/components/Breadcrumb/BreadcrumbItem.tsx +267 -0
  87. package/src/components/Breadcrumb/BreadcrumbItem.types.ts +66 -0
  88. package/src/components/Breadcrumb/BreadcrumbItem.variants.ts +102 -0
  89. package/src/components/Breadcrumb/index.ts +12 -0
  90. package/src/components/Button/Button.tsx +100 -0
  91. package/src/components/Button/Button.types.ts +44 -0
  92. package/src/components/Button/Button.variants.ts +183 -0
  93. package/src/components/Button/index.ts +2 -0
  94. package/src/components/ButtonClose/ButtonClose.tsx +57 -0
  95. package/src/components/ButtonClose/ButtonClose.types.ts +18 -0
  96. package/src/components/ButtonClose/ButtonClose.variants.ts +72 -0
  97. package/src/components/ButtonClose/index.ts +2 -0
  98. package/src/components/ButtonGroup/ButtonGroup.tsx +127 -0
  99. package/src/components/ButtonGroup/ButtonGroup.types.ts +51 -0
  100. package/src/components/ButtonGroup/ButtonGroup.variants.ts +65 -0
  101. package/src/components/ButtonGroup/index.ts +2 -0
  102. package/src/components/ButtonMenu/ButtonMenu.tsx +73 -0
  103. package/src/components/ButtonMenu/ButtonMenu.types.ts +43 -0
  104. package/src/components/ButtonMenu/ButtonMenu.variants.ts +18 -0
  105. package/src/components/ButtonMenu/index.ts +2 -0
  106. package/src/components/ButtonSplit/ButtonSplit.tsx +344 -0
  107. package/src/components/ButtonSplit/ButtonSplit.types.ts +95 -0
  108. package/src/components/ButtonSplit/ButtonSplit.variants.ts +165 -0
  109. package/src/components/ButtonSplit/index.ts +7 -0
  110. package/src/components/ButtonsWithSdaiaTouch/ButtonHoverPattern.tsx +69 -0
  111. package/src/components/ButtonsWithSdaiaTouch/ButtonsWithSdaiaTouch.tsx +130 -0
  112. package/src/components/ButtonsWithSdaiaTouch/ButtonsWithSdaiaTouch.types.ts +4 -0
  113. package/src/components/ButtonsWithSdaiaTouch/ButtonsWithSdaiaTouch.variants.ts +19 -0
  114. package/src/components/ButtonsWithSdaiaTouch/index.ts +6 -0
  115. package/src/components/CLAUDE.md +212 -0
  116. package/src/components/CalendarHeader/CalendarHeader.tsx +224 -0
  117. package/src/components/CalendarHeader/CalendarHeader.types.ts +51 -0
  118. package/src/components/CalendarHeader/CalendarHeader.variants.ts +65 -0
  119. package/src/components/CalendarHeader/index.ts +2 -0
  120. package/src/components/Card/Card.tsx +76 -0
  121. package/src/components/Card/Card.types.ts +11 -0
  122. package/src/components/Card/Card.variants.ts +30 -0
  123. package/src/components/Card/index.ts +2 -0
  124. package/src/components/CardContent/CardContent.tsx +178 -0
  125. package/src/components/CardContent/CardContent.types.ts +70 -0
  126. package/src/components/CardContent/CardContent.variants.ts +90 -0
  127. package/src/components/CardContent/index.ts +6 -0
  128. package/src/components/CardFooter/CardFooter.tsx +196 -0
  129. package/src/components/CardFooter/CardFooter.types.ts +59 -0
  130. package/src/components/CardFooter/CardFooter.variants.ts +127 -0
  131. package/src/components/CardFooter/index.ts +8 -0
  132. package/src/components/CardHeader/CardHeader.tsx +150 -0
  133. package/src/components/CardHeader/CardHeader.types.ts +42 -0
  134. package/src/components/CardHeader/CardHeader.variants.ts +72 -0
  135. package/src/components/CardHeader/index.ts +5 -0
  136. package/src/components/CardLeadingItem/CardLeadingItem.tsx +166 -0
  137. package/src/components/CardLeadingItem/CardLeadingItem.types.ts +75 -0
  138. package/src/components/CardLeadingItem/CardLeadingItem.variants.ts +66 -0
  139. package/src/components/CardLeadingItem/index.ts +6 -0
  140. package/src/components/CardMedia/CardMedia.tsx +324 -0
  141. package/src/components/CardMedia/CardMedia.types.ts +114 -0
  142. package/src/components/CardMedia/CardMedia.variants.ts +139 -0
  143. package/src/components/CardMedia/index.ts +2 -0
  144. package/src/components/Carousel/Carousel.tsx +182 -0
  145. package/src/components/Carousel/Carousel.types.ts +38 -0
  146. package/src/components/Carousel/Carousel.variants.ts +17 -0
  147. package/src/components/Carousel/index.ts +2 -0
  148. package/src/components/CarouselArrow/CarouselArrow.tsx +66 -0
  149. package/src/components/CarouselArrow/CarouselArrow.types.ts +26 -0
  150. package/src/components/CarouselArrow/CarouselArrow.variants.ts +83 -0
  151. package/src/components/CarouselArrow/index.ts +7 -0
  152. package/src/components/CarouselControlsGroup/CarouselControlsGroup.tsx +81 -0
  153. package/src/components/CarouselControlsGroup/CarouselControlsGroup.types.ts +24 -0
  154. package/src/components/CarouselControlsGroup/CarouselControlsGroup.variants.ts +60 -0
  155. package/src/components/CarouselControlsGroup/index.ts +6 -0
  156. package/src/components/CarouselImage/CarouselImage.tsx +253 -0
  157. package/src/components/CarouselImage/CarouselImage.types.ts +72 -0
  158. package/src/components/CarouselImage/CarouselImage.variants.ts +43 -0
  159. package/src/components/CarouselImage/index.ts +6 -0
  160. package/src/components/Chart/Chart.tsx +3 -0
  161. package/src/components/Chart/Chart.types.ts +2 -0
  162. package/src/components/Chart/Chart.variants.ts +2 -0
  163. package/src/components/Chart/index.ts +2 -0
  164. package/src/components/ChartBadge/ChartBadge.tsx +62 -0
  165. package/src/components/ChartBadge/ChartBadge.types.ts +27 -0
  166. package/src/components/ChartBadge/ChartBadge.variants.ts +62 -0
  167. package/src/components/ChartBadge/index.ts +2 -0
  168. package/src/components/Checkbox/Checkbox.tsx +243 -0
  169. package/src/components/Checkbox/Checkbox.types.ts +20 -0
  170. package/src/components/Checkbox/index.ts +2 -0
  171. package/src/components/CheckboxLabel/CheckboxLabel.tsx +148 -0
  172. package/src/components/CheckboxLabel/CheckboxLabel.types.ts +55 -0
  173. package/src/components/CheckboxLabel/CheckboxLabel.variants.ts +35 -0
  174. package/src/components/CheckboxLabel/index.ts +2 -0
  175. package/src/components/Chip/Chip.tsx +245 -0
  176. package/src/components/Chip/Chip.types.ts +83 -0
  177. package/src/components/Chip/Chip.variants.ts +143 -0
  178. package/src/components/Chip/index.ts +2 -0
  179. package/src/components/CircularItem/CircularItem.tsx +133 -0
  180. package/src/components/CircularItem/CircularItem.types.ts +45 -0
  181. package/src/components/CircularItem/CircularItem.variants.ts +128 -0
  182. package/src/components/CircularItem/index.ts +7 -0
  183. package/src/components/CodeSnippet/CodeSnippet.tsx +421 -0
  184. package/src/components/CodeSnippet/CodeSnippet.types.ts +99 -0
  185. package/src/components/CodeSnippet/CodeSnippet.variants.ts +76 -0
  186. package/src/components/CodeSnippet/index.ts +9 -0
  187. package/src/components/ColumnChart/ColumnChart.tsx +943 -0
  188. package/src/components/ColumnChart/ColumnChart.types.ts +98 -0
  189. package/src/components/ColumnChart/ColumnChart.variants.ts +117 -0
  190. package/src/components/ColumnChart/index.ts +9 -0
  191. package/src/components/ComplexComposition/ComplexComposition.tsx +82 -0
  192. package/src/components/ComplexComposition/ComplexComposition.types.ts +3 -0
  193. package/src/components/ComplexComposition/ComplexComposition.variants.ts +14 -0
  194. package/src/components/ComplexComposition/index.ts +2 -0
  195. package/src/components/ContentSwitcher/ContentSwitcher.tsx +104 -0
  196. package/src/components/ContentSwitcher/ContentSwitcher.types.ts +28 -0
  197. package/src/components/ContentSwitcher/ContentSwitcher.variants.ts +70 -0
  198. package/src/components/ContentSwitcher/index.ts +6 -0
  199. package/src/components/ContentSwitcherItem/ContentSwitcherItem.tsx +56 -0
  200. package/src/components/ContentSwitcherItem/ContentSwitcherItem.types.ts +14 -0
  201. package/src/components/ContentSwitcherItem/ContentSwitcherItem.variants.ts +65 -0
  202. package/src/components/ContentSwitcherItem/index.ts +6 -0
  203. package/src/components/ContextMenu/ContextMenu.tsx +101 -0
  204. package/src/components/ContextMenu/ContextMenu.types.ts +64 -0
  205. package/src/components/ContextMenu/ContextMenu.variants.ts +36 -0
  206. package/src/components/ContextMenu/index.ts +7 -0
  207. package/src/components/ContextMenuDropdown/ContextMenuDropdown.tsx +370 -0
  208. package/src/components/ContextMenuDropdown/ContextMenuDropdown.types.ts +89 -0
  209. package/src/components/ContextMenuDropdown/ContextMenuDropdown.variants.ts +88 -0
  210. package/src/components/ContextMenuDropdown/index.ts +5 -0
  211. package/src/components/DateCell/DateCell.tsx +181 -0
  212. package/src/components/DateCell/DateCell.types.ts +53 -0
  213. package/src/components/DateCell/DateCell.variants.ts +217 -0
  214. package/src/components/DateCell/index.ts +2 -0
  215. package/src/components/DatePicker/DatePicker.tsx +923 -0
  216. package/src/components/DatePicker/DatePicker.types.ts +102 -0
  217. package/src/components/DatePicker/DatePicker.variants.ts +274 -0
  218. package/src/components/DatePicker/index.ts +9 -0
  219. package/src/components/DateTab/DateTab.tsx +91 -0
  220. package/src/components/DateTab/DateTab.types.ts +9 -0
  221. package/src/components/DateTab/DateTab.variants.ts +98 -0
  222. package/src/components/DateTab/index.ts +2 -0
  223. package/src/components/DgaIcon/DgaIcon.tsx +68 -0
  224. package/src/components/DgaIcon/DgaIcon.types.ts +57 -0
  225. package/src/components/DgaIcon/DgaIcon.variants.ts +41 -0
  226. package/src/components/DgaIcon/DgaIconByName.tsx +76 -0
  227. package/src/components/DgaIcon/generated/icon-names.ts +4388 -0
  228. package/src/components/DgaIcon/index.ts +12 -0
  229. package/src/components/DgaIcon/lib/decodeDataUrl.ts +46 -0
  230. package/src/components/DigitalStamp/DigitalStamp.tsx +236 -0
  231. package/src/components/DigitalStamp/DigitalStamp.types.ts +38 -0
  232. package/src/components/DigitalStamp/DigitalStamp.variants.ts +185 -0
  233. package/src/components/DigitalStamp/index.ts +2 -0
  234. package/src/components/Divider/Divider.tsx +83 -0
  235. package/src/components/Divider/Divider.types.ts +49 -0
  236. package/src/components/Divider/Divider.variants.ts +55 -0
  237. package/src/components/Divider/index.ts +8 -0
  238. package/src/components/DonutChart/DonutChart.tsx +251 -0
  239. package/src/components/DonutChart/DonutChart.types.ts +97 -0
  240. package/src/components/DonutChart/DonutChart.variants.ts +203 -0
  241. package/src/components/DonutChart/index.ts +7 -0
  242. package/src/components/DonutChartPanel/DonutChartPanel.tsx +778 -0
  243. package/src/components/DonutChartPanel/DonutChartPanel.types.ts +143 -0
  244. package/src/components/DonutChartPanel/DonutChartPanel.variants.ts +154 -0
  245. package/src/components/DonutChartPanel/index.ts +9 -0
  246. package/src/components/DraggableItem/DraggableItem.tsx +228 -0
  247. package/src/components/DraggableItem/DraggableItem.types.ts +72 -0
  248. package/src/components/DraggableItem/DraggableItem.variants.ts +149 -0
  249. package/src/components/DraggableItem/index.ts +3 -0
  250. package/src/components/DraggableList/DraggableList.tsx +20 -0
  251. package/src/components/DraggableList/DraggableList.types.ts +16 -0
  252. package/src/components/DraggableList/DraggableList.variants.ts +13 -0
  253. package/src/components/DraggableList/index.ts +3 -0
  254. package/src/components/Dropdown/Dropdown.tsx +331 -0
  255. package/src/components/Dropdown/Dropdown.types.ts +108 -0
  256. package/src/components/Dropdown/Dropdown.variants.ts +73 -0
  257. package/src/components/Dropdown/index.ts +9 -0
  258. package/src/components/DropdownListHeader/DropdownListHeader.tsx +79 -0
  259. package/src/components/DropdownListHeader/DropdownListHeader.types.ts +24 -0
  260. package/src/components/DropdownListHeader/DropdownListHeader.variants.ts +65 -0
  261. package/src/components/DropdownListHeader/index.ts +2 -0
  262. package/src/components/EmptyState/EmptyState.tsx +221 -0
  263. package/src/components/EmptyState/EmptyState.types.ts +48 -0
  264. package/src/components/EmptyState/EmptyState.variants.ts +122 -0
  265. package/src/components/EmptyState/index.ts +3 -0
  266. package/src/components/Extension/Extension.tsx +240 -0
  267. package/src/components/Extension/Extension.types.ts +40 -0
  268. package/src/components/Extension/Extension.variants.ts +27 -0
  269. package/src/components/Extension/index.ts +6 -0
  270. package/src/components/Feedback/Feedback.tsx +55 -0
  271. package/src/components/Feedback/Feedback.types.ts +15 -0
  272. package/src/components/Feedback/Feedback.variants.ts +9 -0
  273. package/src/components/Feedback/index.ts +2 -0
  274. package/src/components/FeedbackOverview/FeedbackOverview.tsx +70 -0
  275. package/src/components/FeedbackOverview/FeedbackOverview.types.ts +11 -0
  276. package/src/components/FeedbackOverview/FeedbackOverview.variants.ts +17 -0
  277. package/src/components/FeedbackOverview/index.ts +2 -0
  278. package/src/components/FeedbackReaction/FeedbackReaction.tsx +81 -0
  279. package/src/components/FeedbackReaction/FeedbackReaction.types.ts +14 -0
  280. package/src/components/FeedbackReaction/FeedbackReaction.variants.ts +39 -0
  281. package/src/components/FeedbackReaction/index.ts +2 -0
  282. package/src/components/FileUploadBase/FileUploadBase.tsx +104 -0
  283. package/src/components/FileUploadBase/FileUploadBase.types.ts +48 -0
  284. package/src/components/FileUploadBase/FileUploadBase.variants.ts +51 -0
  285. package/src/components/FileUploadBase/index.ts +2 -0
  286. package/src/components/FileUploadItemBase/FileUploadItemBase.tsx +197 -0
  287. package/src/components/FileUploadItemBase/FileUploadItemBase.types.ts +58 -0
  288. package/src/components/FileUploadItemBase/FileUploadItemBase.variants.ts +67 -0
  289. package/src/components/FileUploadItemBase/index.ts +6 -0
  290. package/src/components/FileUploader/FileUploader.tsx +164 -0
  291. package/src/components/FileUploader/FileUploader.types.ts +46 -0
  292. package/src/components/FileUploader/FileUploader.variants.ts +9 -0
  293. package/src/components/FileUploader/index.ts +2 -0
  294. package/src/components/Filtration/Filtration.tsx +260 -0
  295. package/src/components/Filtration/Filtration.types.ts +95 -0
  296. package/src/components/Filtration/Filtration.variants.ts +70 -0
  297. package/src/components/Filtration/index.ts +6 -0
  298. package/src/components/FiltrationItem/FiltrationItem.tsx +200 -0
  299. package/src/components/FiltrationItem/FiltrationItem.types.ts +57 -0
  300. package/src/components/FiltrationItem/FiltrationItem.variants.ts +81 -0
  301. package/src/components/FiltrationItem/index.ts +2 -0
  302. package/src/components/FiltrationList/FiltrationList.tsx +611 -0
  303. package/src/components/FiltrationList/FiltrationList.types.ts +191 -0
  304. package/src/components/FiltrationList/FiltrationList.variants.ts +283 -0
  305. package/src/components/FiltrationList/index.ts +16 -0
  306. package/src/components/FloatingButton/FloatingButton.tsx +89 -0
  307. package/src/components/FloatingButton/FloatingButton.types.ts +29 -0
  308. package/src/components/FloatingButton/FloatingButton.variants.ts +79 -0
  309. package/src/components/FloatingButton/index.ts +6 -0
  310. package/src/components/Footer/Footer.tsx +353 -0
  311. package/src/components/Footer/Footer.types.ts +142 -0
  312. package/src/components/Footer/Footer.variants.ts +137 -0
  313. package/src/components/Footer/index.ts +11 -0
  314. package/src/components/FooterItem/FooterItem.tsx +211 -0
  315. package/src/components/FooterItem/FooterItem.types.ts +45 -0
  316. package/src/components/FooterItem/FooterItem.variants.ts +139 -0
  317. package/src/components/FooterItem/index.ts +2 -0
  318. package/src/components/FooterLinkList/FooterLinkList.tsx +140 -0
  319. package/src/components/FooterLinkList/FooterLinkList.types.ts +46 -0
  320. package/src/components/FooterLinkList/FooterLinkList.variants.ts +64 -0
  321. package/src/components/FooterLinkList/index.ts +2 -0
  322. package/src/components/GraphBase/GraphBase.tsx +598 -0
  323. package/src/components/GraphBase/GraphBase.types.ts +101 -0
  324. package/src/components/GraphBase/GraphBase.variants.ts +126 -0
  325. package/src/components/GraphBase/index.ts +7 -0
  326. package/src/components/HeaderItem/HeaderItem.tsx +206 -0
  327. package/src/components/HeaderItem/HeaderItem.types.ts +73 -0
  328. package/src/components/HeaderItem/HeaderItem.variants.ts +139 -0
  329. package/src/components/HeaderItem/index.ts +2 -0
  330. package/src/components/HelpIcon/HelpIcon.tsx +173 -0
  331. package/src/components/HelpIcon/HelpIcon.types.ts +54 -0
  332. package/src/components/HelpIcon/HelpIcon.variants.ts +79 -0
  333. package/src/components/HelpIcon/index.ts +2 -0
  334. package/src/components/HorizontalTabs/HorizontalTabs.tsx +87 -0
  335. package/src/components/HorizontalTabs/HorizontalTabs.types.ts +41 -0
  336. package/src/components/HorizontalTabs/HorizontalTabs.variants.ts +54 -0
  337. package/src/components/HorizontalTabs/index.ts +6 -0
  338. package/src/components/IllustrationInstance/IllustrationInstance.tsx +46 -0
  339. package/src/components/IllustrationInstance/IllustrationInstance.types.ts +25 -0
  340. package/src/components/IllustrationInstance/IllustrationInstance.variants.ts +19 -0
  341. package/src/components/IllustrationInstance/index.ts +3 -0
  342. package/src/components/ImagePreview/ImagePreview.tsx +170 -0
  343. package/src/components/ImagePreview/ImagePreview.types.ts +54 -0
  344. package/src/components/ImagePreview/ImagePreview.variants.ts +39 -0
  345. package/src/components/ImagePreview/index.ts +2 -0
  346. package/src/components/Input/Input.tsx +113 -0
  347. package/src/components/Input/Input.types.ts +22 -0
  348. package/src/components/Input/index.ts +2 -0
  349. package/src/components/InputPrefixSuffix/InputPrefixSuffix.tsx +91 -0
  350. package/src/components/InputPrefixSuffix/InputPrefixSuffix.types.ts +81 -0
  351. package/src/components/InputPrefixSuffix/InputPrefixSuffix.variants.ts +128 -0
  352. package/src/components/InputPrefixSuffix/index.ts +8 -0
  353. package/src/components/InputsActions/InputsActions.tsx +53 -0
  354. package/src/components/InputsActions/InputsActions.types.ts +13 -0
  355. package/src/components/InputsActions/InputsActions.variants.ts +18 -0
  356. package/src/components/InputsActions/index.ts +2 -0
  357. package/src/components/InstanceColumn/InstanceColumn.tsx +43 -0
  358. package/src/components/InstanceColumn/InstanceColumn.types.ts +18 -0
  359. package/src/components/InstanceColumn/InstanceColumn.variants.ts +11 -0
  360. package/src/components/InstanceColumn/index.ts +2 -0
  361. package/src/components/InstanceItem/InstanceItem.tsx +33 -0
  362. package/src/components/InstanceItem/InstanceItem.types.ts +11 -0
  363. package/src/components/InstanceItem/InstanceItem.variants.ts +31 -0
  364. package/src/components/InstanceItem/index.ts +2 -0
  365. package/src/components/InstanceRows/InstanceRows.tsx +41 -0
  366. package/src/components/InstanceRows/InstanceRows.types.ts +17 -0
  367. package/src/components/InstanceRows/InstanceRows.variants.ts +10 -0
  368. package/src/components/InstanceRows/index.ts +2 -0
  369. package/src/components/InstanceSlot/InstanceSlot.tsx +25 -0
  370. package/src/components/InstanceSlot/InstanceSlot.types.ts +10 -0
  371. package/src/components/InstanceSlot/InstanceSlot.variants.ts +2 -0
  372. package/src/components/InstanceSlot/index.ts +2 -0
  373. package/src/components/LineChart/LineChart.tsx +592 -0
  374. package/src/components/LineChart/LineChart.types.ts +78 -0
  375. package/src/components/LineChart/LineChart.variants.ts +324 -0
  376. package/src/components/LineChart/index.ts +7 -0
  377. package/src/components/Link/Link.tsx +81 -0
  378. package/src/components/Link/Link.types.ts +23 -0
  379. package/src/components/Link/Link.variants.ts +69 -0
  380. package/src/components/Link/index.ts +2 -0
  381. package/src/components/List/List.tsx +260 -0
  382. package/src/components/List/List.types.ts +70 -0
  383. package/src/components/List/List.variants.ts +94 -0
  384. package/src/components/List/index.ts +5 -0
  385. package/src/components/ListGroup/ListGroup.tsx +37 -0
  386. package/src/components/ListGroup/ListGroup.types.ts +14 -0
  387. package/src/components/ListGroup/ListGroup.variants.ts +17 -0
  388. package/src/components/ListGroup/index.ts +3 -0
  389. package/src/components/LoadingIndicator/LoadingIndicator.tsx +208 -0
  390. package/src/components/LoadingIndicator/LoadingIndicator.types.ts +51 -0
  391. package/src/components/LoadingIndicator/LoadingIndicator.variants.ts +108 -0
  392. package/src/components/LoadingIndicator/index.ts +7 -0
  393. package/src/components/MediaGallery/MediaGallery.tsx +600 -0
  394. package/src/components/MediaGallery/MediaGallery.types.ts +124 -0
  395. package/src/components/MediaGallery/MediaGallery.variants.ts +116 -0
  396. package/src/components/MediaGallery/index.ts +2 -0
  397. package/src/components/MediaGrids/MediaGrids.tsx +48 -0
  398. package/src/components/MediaGrids/MediaGrids.types.ts +14 -0
  399. package/src/components/MediaGrids/MediaGrids.variants.ts +16 -0
  400. package/src/components/MediaGrids/index.ts +2 -0
  401. package/src/components/MediaViewer/MediaViewer.tsx +345 -0
  402. package/src/components/MediaViewer/MediaViewer.types.ts +59 -0
  403. package/src/components/MediaViewer/MediaViewer.variants.ts +168 -0
  404. package/src/components/MediaViewer/index.ts +2 -0
  405. package/src/components/Menu/Menu.tsx +109 -0
  406. package/src/components/Menu/Menu.types.ts +37 -0
  407. package/src/components/Menu/Menu.variants.ts +29 -0
  408. package/src/components/Menu/index.ts +2 -0
  409. package/src/components/MenuButtonItem/MenuButtonItem.tsx +280 -0
  410. package/src/components/MenuButtonItem/MenuButtonItem.types.ts +91 -0
  411. package/src/components/MenuButtonItem/MenuButtonItem.variants.ts +223 -0
  412. package/src/components/MenuButtonItem/index.ts +8 -0
  413. package/src/components/MenuItem/MenuItem.tsx +211 -0
  414. package/src/components/MenuItem/MenuItem.types.ts +40 -0
  415. package/src/components/MenuItem/MenuItem.variants.ts +48 -0
  416. package/src/components/MenuItem/index.ts +2 -0
  417. package/src/components/MenuItemGroup/MenuItemGroup.tsx +91 -0
  418. package/src/components/MenuItemGroup/MenuItemGroup.types.ts +82 -0
  419. package/src/components/MenuItemGroup/MenuItemGroup.variants.ts +33 -0
  420. package/src/components/MenuItemGroup/index.ts +2 -0
  421. package/src/components/MenuList/MenuList.tsx +44 -0
  422. package/src/components/MenuList/MenuList.types.ts +28 -0
  423. package/src/components/MenuList/MenuList.variants.ts +2 -0
  424. package/src/components/MenuList/index.ts +2 -0
  425. package/src/components/Metric/Metric.tsx +584 -0
  426. package/src/components/Metric/Metric.types.ts +77 -0
  427. package/src/components/Metric/Metric.variants.ts +175 -0
  428. package/src/components/Metric/index.ts +8 -0
  429. package/src/components/Modal/Modal.tsx +139 -0
  430. package/src/components/Modal/Modal.types.ts +55 -0
  431. package/src/components/Modal/index.ts +2 -0
  432. package/src/components/ModalActions/ModalActions.tsx +176 -0
  433. package/src/components/ModalActions/ModalActions.types.ts +31 -0
  434. package/src/components/ModalActions/index.ts +2 -0
  435. package/src/components/ModalHeader/ModalHeader.tsx +207 -0
  436. package/src/components/ModalHeader/ModalHeader.types.ts +24 -0
  437. package/src/components/ModalHeader/index.ts +2 -0
  438. package/src/components/NavBar/NavBar.tsx +326 -0
  439. package/src/components/NavBar/NavBar.types.ts +78 -0
  440. package/src/components/NavBar/NavBar.variants.ts +139 -0
  441. package/src/components/NavBar/index.ts +2 -0
  442. package/src/components/NavHeader/NavHeader.tsx +292 -0
  443. package/src/components/NavHeader/NavHeader.types.ts +145 -0
  444. package/src/components/NavHeader/NavHeader.variants.ts +178 -0
  445. package/src/components/NavHeader/index.ts +2 -0
  446. package/src/components/NavHeaderActions/NavHeaderActions.tsx +161 -0
  447. package/src/components/NavHeaderActions/NavHeaderActions.types.ts +61 -0
  448. package/src/components/NavHeaderActions/NavHeaderActions.variants.ts +58 -0
  449. package/src/components/NavHeaderActions/index.ts +2 -0
  450. package/src/components/NavHeaderDropdownItem/NavHeaderDropdownItem.tsx +243 -0
  451. package/src/components/NavHeaderDropdownItem/NavHeaderDropdownItem.types.ts +76 -0
  452. package/src/components/NavHeaderDropdownItem/NavHeaderDropdownItem.variants.ts +133 -0
  453. package/src/components/NavHeaderDropdownItem/index.ts +5 -0
  454. package/src/components/NavHeaderDropdownItemList/NavHeaderDropdownItemList.tsx +64 -0
  455. package/src/components/NavHeaderDropdownItemList/NavHeaderDropdownItemList.types.ts +55 -0
  456. package/src/components/NavHeaderDropdownItemList/NavHeaderDropdownItemList.variants.ts +47 -0
  457. package/src/components/NavHeaderDropdownItemList/index.ts +5 -0
  458. package/src/components/NavHeaderMenuButton/NavHeaderMenuButton.tsx +52 -0
  459. package/src/components/NavHeaderMenuButton/NavHeaderMenuButton.types.ts +17 -0
  460. package/src/components/NavHeaderMenuButton/NavHeaderMenuButton.variants.ts +73 -0
  461. package/src/components/NavHeaderMenuButton/index.ts +2 -0
  462. package/src/components/NavHeaderMenuCard/NavHeaderMenuCard.tsx +126 -0
  463. package/src/components/NavHeaderMenuCard/NavHeaderMenuCard.types.ts +74 -0
  464. package/src/components/NavHeaderMenuCard/NavHeaderMenuCard.variants.ts +169 -0
  465. package/src/components/NavHeaderMenuCard/index.ts +6 -0
  466. package/src/components/NavHeaderMenuItem/NavHeaderMenuItem.tsx +164 -0
  467. package/src/components/NavHeaderMenuItem/NavHeaderMenuItem.types.ts +64 -0
  468. package/src/components/NavHeaderMenuItem/NavHeaderMenuItem.variants.ts +175 -0
  469. package/src/components/NavHeaderMenuItem/index.ts +2 -0
  470. package/src/components/NavItem/NavItem.tsx +210 -0
  471. package/src/components/NavItem/NavItem.types.ts +71 -0
  472. package/src/components/NavItem/NavItem.variants.ts +61 -0
  473. package/src/components/NavItem/index.ts +2 -0
  474. package/src/components/NavLabel/NavLabel.tsx +84 -0
  475. package/src/components/NavLabel/NavLabel.types.ts +55 -0
  476. package/src/components/NavLabel/NavLabel.variants.ts +68 -0
  477. package/src/components/NavLabel/index.ts +2 -0
  478. package/src/components/NavLogoPlaceholder/NavLogoPlaceholder.tsx +101 -0
  479. package/src/components/NavLogoPlaceholder/NavLogoPlaceholder.types.ts +27 -0
  480. package/src/components/NavLogoPlaceholder/NavLogoPlaceholder.variants.ts +42 -0
  481. package/src/components/NavLogoPlaceholder/index.ts +6 -0
  482. package/src/components/NotificationBanner/NotificationBanner.tsx +256 -0
  483. package/src/components/NotificationBanner/NotificationBanner.types.ts +77 -0
  484. package/src/components/NotificationBanner/NotificationBanner.variants.ts +109 -0
  485. package/src/components/NotificationBanner/index.ts +7 -0
  486. package/src/components/NotificationPopup/NotificationPopup.tsx +147 -0
  487. package/src/components/NotificationPopup/NotificationPopup.types.ts +51 -0
  488. package/src/components/NotificationPopup/NotificationPopup.variants.ts +145 -0
  489. package/src/components/NotificationPopup/index.ts +5 -0
  490. package/src/components/Notifications/Notifications.tsx +209 -0
  491. package/src/components/Notifications/Notifications.types.ts +68 -0
  492. package/src/components/Notifications/Notifications.variants.ts +89 -0
  493. package/src/components/Notifications/index.ts +2 -0
  494. package/src/components/Number/Number.tsx +497 -0
  495. package/src/components/Number/Number.types.ts +58 -0
  496. package/src/components/Number/Number.variants.ts +94 -0
  497. package/src/components/Number/index.ts +2 -0
  498. package/src/components/NumberInput/NumberInput.tsx +265 -0
  499. package/src/components/NumberInput/NumberInput.types.ts +110 -0
  500. package/src/components/NumberInput/NumberInput.variants.ts +205 -0
  501. package/src/components/NumberInput/index.ts +6 -0
  502. package/src/components/Pagination/Pagination.tsx +393 -0
  503. package/src/components/Pagination/Pagination.types.ts +26 -0
  504. package/src/components/Pagination/Pagination.variants.ts +88 -0
  505. package/src/components/Pagination/index.ts +3 -0
  506. package/src/components/PaginationButtonGroup/PaginationButtonGroup.tsx +132 -0
  507. package/src/components/PaginationButtonGroup/PaginationButtonGroup.types.ts +20 -0
  508. package/src/components/PaginationButtonGroup/PaginationButtonGroup.variants.ts +45 -0
  509. package/src/components/PaginationButtonGroup/index.ts +8 -0
  510. package/src/components/PaginationCells/PaginationCells.tsx +105 -0
  511. package/src/components/PaginationCells/PaginationCells.types.ts +31 -0
  512. package/src/components/PaginationCells/PaginationCells.variants.ts +96 -0
  513. package/src/components/PaginationCells/index.ts +9 -0
  514. package/src/components/PdfViewer/PdfViewer.tsx +265 -0
  515. package/src/components/PdfViewer/PdfViewer.types.ts +79 -0
  516. package/src/components/PdfViewer/PdfViewer.variants.ts +105 -0
  517. package/src/components/PdfViewer/index.ts +3 -0
  518. package/src/components/PieChartPanel/PieChartPanel.tsx +889 -0
  519. package/src/components/PieChartPanel/PieChartPanel.types.ts +130 -0
  520. package/src/components/PieChartPanel/PieChartPanel.variants.ts +156 -0
  521. package/src/components/PieChartPanel/index.ts +8 -0
  522. package/src/components/Popover/Popover.tsx +398 -0
  523. package/src/components/Popover/Popover.types.ts +155 -0
  524. package/src/components/Popover/Popover.variants.ts +147 -0
  525. package/src/components/Popover/index.ts +7 -0
  526. package/src/components/ProgressBar/ProgressBar.tsx +241 -0
  527. package/src/components/ProgressBar/ProgressBar.types.ts +22 -0
  528. package/src/components/ProgressBar/ProgressBar.variants.ts +54 -0
  529. package/src/components/ProgressBar/index.ts +2 -0
  530. package/src/components/ProgressCircle/ProgressCircle.tsx +369 -0
  531. package/src/components/ProgressCircle/ProgressCircle.types.ts +26 -0
  532. package/src/components/ProgressCircle/ProgressCircle.variants.ts +88 -0
  533. package/src/components/ProgressCircle/index.ts +7 -0
  534. package/src/components/Quote/Quote.tsx +210 -0
  535. package/src/components/Quote/Quote.types.ts +73 -0
  536. package/src/components/Quote/Quote.variants.ts +106 -0
  537. package/src/components/Quote/index.ts +2 -0
  538. package/src/components/RadialStepper/RadialStepper.tsx +166 -0
  539. package/src/components/RadialStepper/RadialStepper.types.ts +77 -0
  540. package/src/components/RadialStepper/RadialStepper.variants.ts +122 -0
  541. package/src/components/RadialStepper/index.ts +7 -0
  542. package/src/components/RadioButton/RadioButton.tsx +237 -0
  543. package/src/components/RadioButton/RadioButton.types.ts +18 -0
  544. package/src/components/RadioButton/index.ts +2 -0
  545. package/src/components/RadioLabel/RadioLabel.tsx +157 -0
  546. package/src/components/RadioLabel/RadioLabel.types.ts +53 -0
  547. package/src/components/RadioLabel/RadioLabel.variants.ts +36 -0
  548. package/src/components/RadioLabel/index.ts +2 -0
  549. package/src/components/RangeSlider/RangeSlider.tsx +389 -0
  550. package/src/components/RangeSlider/RangeSlider.types.ts +38 -0
  551. package/src/components/RangeSlider/RangeSlider.variants.ts +27 -0
  552. package/src/components/RangeSlider/index.ts +2 -0
  553. package/src/components/Rating/Rating.tsx +246 -0
  554. package/src/components/Rating/Rating.types.ts +37 -0
  555. package/src/components/Rating/Rating.variants.ts +52 -0
  556. package/src/components/Rating/index.ts +8 -0
  557. package/src/components/RatingOverview/RatingOverview.tsx +170 -0
  558. package/src/components/RatingOverview/RatingOverview.types.ts +37 -0
  559. package/src/components/RatingOverview/RatingOverview.variants.ts +50 -0
  560. package/src/components/RatingOverview/index.ts +2 -0
  561. package/src/components/RatingStar/RatingStar.tsx +76 -0
  562. package/src/components/RatingStar/RatingStar.types.ts +18 -0
  563. package/src/components/RatingStar/RatingStar.variants.ts +34 -0
  564. package/src/components/RatingStar/index.ts +7 -0
  565. package/src/components/RichTextEditor/RichTextEditor.tsx +1341 -0
  566. package/src/components/RichTextEditor/RichTextEditor.types.ts +127 -0
  567. package/src/components/RichTextEditor/RichTextEditor.variants.ts +231 -0
  568. package/src/components/RichTextEditor/index.ts +6 -0
  569. package/src/components/ScatterChart/ScatterChart.tsx +164 -0
  570. package/src/components/ScatterChart/ScatterChart.types.ts +42 -0
  571. package/src/components/ScatterChart/ScatterChart.variants.ts +162 -0
  572. package/src/components/ScatterChart/index.ts +2 -0
  573. package/src/components/SdaiaLogoAnimation/BGSVG.tsx +216 -0
  574. package/src/components/SdaiaLogoAnimation/SdaiaLogoAnimation.tsx +120 -0
  575. package/src/components/SdaiaLogoAnimation/SdaiaLogoAnimation.types.ts +13 -0
  576. package/src/components/SdaiaLogoAnimation/SdaiaLogoAnimation.variants.ts +22 -0
  577. package/src/components/SdaiaLogoAnimation/index.ts +2 -0
  578. package/src/components/SdaiaTouch2dAnimation/SdaiaTouch2dAnimation.tsx +55 -0
  579. package/src/components/SdaiaTouch2dAnimation/SdaiaTouch2dAnimation.types.ts +12 -0
  580. package/src/components/SdaiaTouch2dAnimation/SdaiaTouch2dAnimation.variants.ts +28 -0
  581. package/src/components/SdaiaTouch2dAnimation/Star.tsx +82 -0
  582. package/src/components/SdaiaTouch2dAnimation/StarShape.tsx +78 -0
  583. package/src/components/SdaiaTouch2dAnimation/index.ts +6 -0
  584. package/src/components/SecondNavHeader/SecondNavHeader.tsx +80 -0
  585. package/src/components/SecondNavHeader/SecondNavHeader.types.ts +41 -0
  586. package/src/components/SecondNavHeader/SecondNavHeader.variants.ts +42 -0
  587. package/src/components/SecondNavHeader/index.ts +2 -0
  588. package/src/components/Select/Select.tsx +351 -0
  589. package/src/components/Select/Select.types.ts +102 -0
  590. package/src/components/Select/Select.variants.ts +111 -0
  591. package/src/components/Select/index.ts +2 -0
  592. package/src/components/SelectMenuItem/SelectMenuItem.tsx +132 -0
  593. package/src/components/SelectMenuItem/SelectMenuItem.types.ts +47 -0
  594. package/src/components/SelectMenuItem/SelectMenuItem.variants.ts +56 -0
  595. package/src/components/SelectMenuItem/index.ts +2 -0
  596. package/src/components/SeriesLabel/SeriesLabel.tsx +76 -0
  597. package/src/components/SeriesLabel/SeriesLabel.types.ts +27 -0
  598. package/src/components/SeriesLabel/SeriesLabel.variants.ts +84 -0
  599. package/src/components/SeriesLabel/index.ts +2 -0
  600. package/src/components/Signature/Signature.tsx +905 -0
  601. package/src/components/Signature/Signature.types.ts +68 -0
  602. package/src/components/Signature/Signature.variants.ts +115 -0
  603. package/src/components/Signature/index.ts +2 -0
  604. package/src/components/Skeleton/Skeleton.tsx +21 -0
  605. package/src/components/Skeleton/Skeleton.types.ts +15 -0
  606. package/src/components/Skeleton/Skeleton.variants.ts +14 -0
  607. package/src/components/Skeleton/index.ts +2 -0
  608. package/src/components/SkeletonAvatar/SkeletonAvatar.tsx +21 -0
  609. package/src/components/SkeletonAvatar/SkeletonAvatar.types.ts +15 -0
  610. package/src/components/SkeletonAvatar/SkeletonAvatar.variants.ts +14 -0
  611. package/src/components/SkeletonAvatar/index.ts +2 -0
  612. package/src/components/SlideoutMenu/SlideoutMenu.tsx +225 -0
  613. package/src/components/SlideoutMenu/SlideoutMenu.types.ts +39 -0
  614. package/src/components/SlideoutMenu/SlideoutMenuDivider.tsx +10 -0
  615. package/src/components/SlideoutMenu/SlideoutMenuSection.tsx +39 -0
  616. package/src/components/SlideoutMenu/index.ts +5 -0
  617. package/src/components/SlideoutMenuFooter/SlideoutMenuFooter.tsx +96 -0
  618. package/src/components/SlideoutMenuFooter/SlideoutMenuFooter.types.ts +28 -0
  619. package/src/components/SlideoutMenuFooter/SlideoutMenuFooter.variants.ts +49 -0
  620. package/src/components/SlideoutMenuFooter/index.ts +6 -0
  621. package/src/components/SlideoutMenuHeader/SlideoutMenuHeader.tsx +83 -0
  622. package/src/components/SlideoutMenuHeader/SlideoutMenuHeader.types.ts +19 -0
  623. package/src/components/SlideoutMenuHeader/SlideoutMenuHeader.variants.ts +78 -0
  624. package/src/components/SlideoutMenuHeader/index.ts +2 -0
  625. package/src/components/Slider/Slider.tsx +259 -0
  626. package/src/components/Slider/Slider.types.ts +22 -0
  627. package/src/components/Slider/Slider.variants.ts +23 -0
  628. package/src/components/Slider/index.ts +2 -0
  629. package/src/components/Sparkline/Sparkline.tsx +130 -0
  630. package/src/components/Sparkline/Sparkline.types.ts +36 -0
  631. package/src/components/Sparkline/Sparkline.variants.ts +118 -0
  632. package/src/components/Sparkline/index.ts +2 -0
  633. package/src/components/StatusDot/StatusDot.tsx +82 -0
  634. package/src/components/StatusDot/StatusDot.types.ts +35 -0
  635. package/src/components/StatusDot/StatusDot.variants.ts +66 -0
  636. package/src/components/StatusDot/index.ts +8 -0
  637. package/src/components/StructuredList/StructuredList.tsx +79 -0
  638. package/src/components/StructuredList/StructuredList.types.ts +27 -0
  639. package/src/components/StructuredList/index.ts +2 -0
  640. package/src/components/StructuredListGroup/StructuredListGroup.tsx +76 -0
  641. package/src/components/StructuredListGroup/StructuredListGroup.types.ts +27 -0
  642. package/src/components/StructuredListGroup/StructuredListGroup.variants.ts +14 -0
  643. package/src/components/StructuredListGroup/index.ts +5 -0
  644. package/src/components/StructuredListHeader/StructuredListHeader.tsx +98 -0
  645. package/src/components/StructuredListHeader/StructuredListHeader.types.ts +26 -0
  646. package/src/components/StructuredListHeader/StructuredListHeader.variants.ts +24 -0
  647. package/src/components/StructuredListHeader/index.ts +5 -0
  648. package/src/components/StructuredListRow/StructuredListRow.tsx +144 -0
  649. package/src/components/StructuredListRow/StructuredListRow.types.ts +37 -0
  650. package/src/components/StructuredListRow/StructuredListRow.variants.ts +53 -0
  651. package/src/components/StructuredListRow/index.ts +6 -0
  652. package/src/components/SubHeaderItem/SubHeaderItem.tsx +37 -0
  653. package/src/components/SubHeaderItem/SubHeaderItem.types.ts +20 -0
  654. package/src/components/SubHeaderItem/SubHeaderItem.variants.ts +23 -0
  655. package/src/components/SubHeaderItem/index.ts +2 -0
  656. package/src/components/Switch/Switch.tsx +138 -0
  657. package/src/components/Switch/Switch.types.ts +18 -0
  658. package/src/components/Switch/Switch.variants.ts +49 -0
  659. package/src/components/Switch/index.ts +2 -0
  660. package/src/components/SwitchLabel/SwitchLabel.tsx +114 -0
  661. package/src/components/SwitchLabel/SwitchLabel.types.ts +27 -0
  662. package/src/components/SwitchLabel/SwitchLabel.variants.ts +28 -0
  663. package/src/components/SwitchLabel/index.ts +2 -0
  664. package/src/components/Tab/Tab.tsx +92 -0
  665. package/src/components/Tab/Tab.types.ts +34 -0
  666. package/src/components/Tab/Tab.variants.ts +79 -0
  667. package/src/components/Tab/index.ts +2 -0
  668. package/src/components/Table/Table.tsx +353 -0
  669. package/src/components/Table/Table.types.ts +80 -0
  670. package/src/components/Table/Table.variants.ts +110 -0
  671. package/src/components/Table/index.ts +10 -0
  672. package/src/components/TableOfContent/TableOfContent.tsx +33 -0
  673. package/src/components/TableOfContent/TableOfContent.types.ts +15 -0
  674. package/src/components/TableOfContent/TableOfContent.variants.ts +27 -0
  675. package/src/components/TableOfContent/index.ts +2 -0
  676. package/src/components/TableOfContentItem/TableOfContentItem.tsx +85 -0
  677. package/src/components/TableOfContentItem/TableOfContentItem.types.ts +23 -0
  678. package/src/components/TableOfContentItem/TableOfContentItem.variants.ts +109 -0
  679. package/src/components/TableOfContentItem/index.ts +2 -0
  680. package/src/components/TableOfContentList/TableOfContentList.tsx +60 -0
  681. package/src/components/TableOfContentList/TableOfContentList.types.ts +39 -0
  682. package/src/components/TableOfContentList/TableOfContentList.variants.ts +6 -0
  683. package/src/components/TableOfContentList/index.ts +2 -0
  684. package/src/components/Tabs/Tabs.tsx +80 -0
  685. package/src/components/Tabs/Tabs.types.ts +36 -0
  686. package/src/components/Tabs/Tabs.variants.ts +23 -0
  687. package/src/components/Tabs/index.ts +2 -0
  688. package/src/components/Tag/Tag.tsx +114 -0
  689. package/src/components/Tag/Tag.types.ts +32 -0
  690. package/src/components/Tag/Tag.variants.ts +57 -0
  691. package/src/components/Tag/index.ts +2 -0
  692. package/src/components/TagCount/TagCount.tsx +45 -0
  693. package/src/components/TagCount/TagCount.types.ts +21 -0
  694. package/src/components/TagCount/TagCount.variants.ts +26 -0
  695. package/src/components/TagCount/index.ts +7 -0
  696. package/src/components/TextArea/TextArea.tsx +130 -0
  697. package/src/components/TextArea/TextArea.types.ts +20 -0
  698. package/src/components/TextArea/index.ts +2 -0
  699. package/src/components/TextInput/TextInput.tsx +568 -0
  700. package/src/components/TextInput/TextInput.types.ts +87 -0
  701. package/src/components/TextInput/TextInput.variants.ts +89 -0
  702. package/src/components/TextInput/TextInputTag.tsx +43 -0
  703. package/src/components/TextInput/TextInputTag.types.ts +14 -0
  704. package/src/components/TextInput/index.ts +4 -0
  705. package/src/components/Tooltip/Tooltip.tsx +229 -0
  706. package/src/components/Tooltip/Tooltip.types.ts +48 -0
  707. package/src/components/Tooltip/Tooltip.variants.ts +141 -0
  708. package/src/components/Tooltip/index.ts +10 -0
  709. package/src/components/TreeView/TreeView.tsx +130 -0
  710. package/src/components/TreeView/TreeView.types.ts +42 -0
  711. package/src/components/TreeView/TreeView.variants.ts +6 -0
  712. package/src/components/TreeView/index.ts +3 -0
  713. package/src/components/TreeViewItem/TreeViewItem.tsx +108 -0
  714. package/src/components/TreeViewItem/TreeViewItem.types.ts +34 -0
  715. package/src/components/TreeViewItem/TreeViewItem.variants.ts +40 -0
  716. package/src/components/TreeViewItem/index.ts +3 -0
  717. package/src/components/VerticalTabs/VerticalTabs.tsx +84 -0
  718. package/src/components/VerticalTabs/VerticalTabs.types.ts +37 -0
  719. package/src/components/VerticalTabs/VerticalTabs.variants.ts +43 -0
  720. package/src/components/VerticalTabs/index.ts +6 -0
  721. package/src/components/VideoPlayer/VideoPlayer.tsx +470 -0
  722. package/src/components/VideoPlayer/VideoPlayer.types.ts +59 -0
  723. package/src/components/VideoPlayer/VideoPlayer.variants.ts +134 -0
  724. package/src/components/VideoPlayer/index.ts +2 -0
  725. package/src/components/XAxis/XAxis.tsx +67 -0
  726. package/src/components/XAxis/XAxis.types.ts +30 -0
  727. package/src/components/XAxis/XAxis.variants.ts +77 -0
  728. package/src/components/XAxis/index.ts +2 -0
  729. package/src/components/YAxis/YAxis.tsx +78 -0
  730. package/src/components/YAxis/YAxis.types.ts +41 -0
  731. package/src/components/YAxis/YAxis.variants.ts +94 -0
  732. package/src/components/YAxis/index.ts +2 -0
  733. package/src/dga-icons.ts +18 -0
  734. package/src/hooks/usePresence.ts +73 -0
  735. package/src/icons/AIIcon.tsx +34 -0
  736. package/src/icons/AaIcon.tsx +34 -0
  737. package/src/icons/AlertCircle02Icon.tsx +28 -0
  738. package/src/icons/AlertCircleIcon.tsx +29 -0
  739. package/src/icons/AlertCircleSVG.tsx +19 -0
  740. package/src/icons/AlertCircleWarningIcon.tsx +37 -0
  741. package/src/icons/AlertTriangleIcon.tsx +27 -0
  742. package/src/icons/AlignCenterIcon.tsx +31 -0
  743. package/src/icons/AlignLeftIcon.tsx +31 -0
  744. package/src/icons/AlignRightIcon.tsx +31 -0
  745. package/src/icons/ArrowDownIcon.tsx +27 -0
  746. package/src/icons/ArrowDownLeft01Icon.tsx +32 -0
  747. package/src/icons/ArrowDownSVG.tsx +16 -0
  748. package/src/icons/ArrowIcon.tsx +38 -0
  749. package/src/icons/ArrowLeft01Icon.tsx +23 -0
  750. package/src/icons/ArrowLeft02SVG.tsx +19 -0
  751. package/src/icons/ArrowLeftIcon.tsx +28 -0
  752. package/src/icons/ArrowRight01Icon.tsx +23 -0
  753. package/src/icons/ArrowRight01SVG.tsx +16 -0
  754. package/src/icons/ArrowRightIcon.tsx +28 -0
  755. package/src/icons/ArrowUpIcon.tsx +27 -0
  756. package/src/icons/ArrowUpRight01Icon.tsx +31 -0
  757. package/src/icons/ArrowUpSVG.tsx +16 -0
  758. package/src/icons/AtIcon.tsx +33 -0
  759. package/src/icons/BeakBottom.tsx +13 -0
  760. package/src/icons/BeakDown.tsx +29 -0
  761. package/src/icons/BeakLeft.tsx +13 -0
  762. package/src/icons/BeakRight.tsx +11 -0
  763. package/src/icons/BeakTop.tsx +13 -0
  764. package/src/icons/BeakUp.tsx +23 -0
  765. package/src/icons/BellCircleIcon.tsx +33 -0
  766. package/src/icons/BellIcon.tsx +27 -0
  767. package/src/icons/BoldIcon.tsx +33 -0
  768. package/src/icons/CalendarIcon.tsx +35 -0
  769. package/src/icons/ChartsIcon.tsx +25 -0
  770. package/src/icons/CheckCircleIcon.tsx +29 -0
  771. package/src/icons/ChevronDownIcon.tsx +30 -0
  772. package/src/icons/ChevronDownSmIcon.tsx +34 -0
  773. package/src/icons/ChevronLeftIcon.tsx +20 -0
  774. package/src/icons/ChevronRightIcon.tsx +36 -0
  775. package/src/icons/ClearIcon.tsx +34 -0
  776. package/src/icons/ClockIcon.tsx +34 -0
  777. package/src/icons/CloseIcon.tsx +29 -0
  778. package/src/icons/CloudUploadIcon.tsx +21 -0
  779. package/src/icons/CodeSnippetChevronDownIcon.tsx +25 -0
  780. package/src/icons/CodeSnippetCopyIcon.tsx +24 -0
  781. package/src/icons/CodeSnippetStarIcon.tsx +25 -0
  782. package/src/icons/ColorSquareIcon.tsx +42 -0
  783. package/src/icons/ComponentsIcon.tsx +25 -0
  784. package/src/icons/DGALogoSVG.tsx +133 -0
  785. package/src/icons/DeleteIcon.tsx +24 -0
  786. package/src/icons/DownloadIcon.tsx +29 -0
  787. package/src/icons/DragHandleVerticalIcon.tsx +23 -0
  788. package/src/icons/FeedbackEmojiDislikeIcon.tsx +20 -0
  789. package/src/icons/FeedbackEmojiLikeIcon.tsx +20 -0
  790. package/src/icons/FeedbackEmojiNeutralIcon.tsx +20 -0
  791. package/src/icons/FeedbackThumbDislikeFilledIcon.tsx +26 -0
  792. package/src/icons/FeedbackThumbDislikeIcon.tsx +20 -0
  793. package/src/icons/FeedbackThumbLikeFilledIcon.tsx +20 -0
  794. package/src/icons/FeedbackThumbLikeIcon.tsx +20 -0
  795. package/src/icons/FileUploadItemCloseIcon.tsx +30 -0
  796. package/src/icons/FileUploadItemEmptyFileIcon.tsx +27 -0
  797. package/src/icons/FileUploadItemPdfIcon.tsx +52 -0
  798. package/src/icons/FilterFunnelIcon.tsx +34 -0
  799. package/src/icons/FilterIcon.tsx +31 -0
  800. package/src/icons/FitIcon.tsx +22 -0
  801. package/src/icons/FolderFilledIcon.tsx +25 -0
  802. package/src/icons/FolderIcon.tsx +28 -0
  803. package/src/icons/FoundationsIcon.tsx +25 -0
  804. package/src/icons/FullscreenExitIcon.tsx +71 -0
  805. package/src/icons/FullscreenIcon.tsx +70 -0
  806. package/src/icons/GoBackward10Icon.tsx +27 -0
  807. package/src/icons/GoForward10Icon.tsx +27 -0
  808. package/src/icons/GridSquaresIcon.tsx +40 -0
  809. package/src/icons/HamburgerIcon.tsx +28 -0
  810. package/src/icons/HelpCircleIcon.tsx +28 -0
  811. package/src/icons/HomeIcon.tsx +22 -0
  812. package/src/icons/HomeSVG.tsx +32 -0
  813. package/src/icons/IconFactory.ts +157 -0
  814. package/src/icons/Image01SVG.tsx +18 -0
  815. package/src/icons/ImageIcon.tsx +31 -0
  816. package/src/icons/InfoCircleIcon.tsx +31 -0
  817. package/src/icons/InfoCircleSVG.tsx +20 -0
  818. package/src/icons/InfoIcon.tsx +27 -0
  819. package/src/icons/ItalicIcon.tsx +31 -0
  820. package/src/icons/LearnMoreArrowIcon.tsx +22 -0
  821. package/src/icons/LinkCircleSVG.tsx +58 -0
  822. package/src/icons/LinkIcon.tsx +33 -0
  823. package/src/icons/ListLinesIcon.tsx +40 -0
  824. package/src/icons/LockCircleSVG.tsx +60 -0
  825. package/src/icons/LockIcon.tsx +36 -0
  826. package/src/icons/Logout02Icon.tsx +19 -0
  827. package/src/icons/MicrophoneIcon.tsx +20 -0
  828. package/src/icons/MinusIcon.tsx +40 -0
  829. package/src/icons/MoreHorizontalIcon.tsx +24 -0
  830. package/src/icons/MoreVerticalIcon.tsx +40 -0
  831. package/src/icons/NextIcon.tsx +44 -0
  832. package/src/icons/PDFSvg.tsx +39 -0
  833. package/src/icons/PatternsIcon.tsx +21 -0
  834. package/src/icons/PauseIcon.tsx +30 -0
  835. package/src/icons/PencilIcon.tsx +36 -0
  836. package/src/icons/PlayButtonCardIcon.tsx +41 -0
  837. package/src/icons/PlayCenterIcon.tsx +45 -0
  838. package/src/icons/PlayIcon.tsx +27 -0
  839. package/src/icons/PlayIconSolid.tsx +33 -0
  840. package/src/icons/PlayIconStroke.tsx +22 -0
  841. package/src/icons/PlayIconTwotone.tsx +36 -0
  842. package/src/icons/PlayVideoIcon.tsx +31 -0
  843. package/src/icons/PlusCircleIcon.tsx +41 -0
  844. package/src/icons/PlusIcon.tsx +43 -0
  845. package/src/icons/PreviousIcon.tsx +44 -0
  846. package/src/icons/PrintIcon.tsx +25 -0
  847. package/src/icons/QuestionMarkGrayBgIcon.tsx +52 -0
  848. package/src/icons/QuestionMarkIcon.tsx +47 -0
  849. package/src/icons/RedoIcon.tsx +41 -0
  850. package/src/icons/SaudiFlagSVG.tsx +31 -0
  851. package/src/icons/SdaiaNavLogo.tsx +345 -0
  852. package/src/icons/SearchIcon.tsx +34 -0
  853. package/src/icons/SettingsIcon.tsx +25 -0
  854. package/src/icons/ShareIcon.tsx +26 -0
  855. package/src/icons/SidebarCollapseIcon.tsx +25 -0
  856. package/src/icons/SmileIcon.tsx +34 -0
  857. package/src/icons/SortIcon.tsx +20 -0
  858. package/src/icons/StarIcon.tsx +38 -0
  859. package/src/icons/StatusBadgeIcon.tsx +19 -0
  860. package/src/icons/TextTIcon.tsx +33 -0
  861. package/src/icons/Tick02Icon.tsx +32 -0
  862. package/src/icons/TickIcon.tsx +33 -0
  863. package/src/icons/TrashIcon.tsx +44 -0
  864. package/src/icons/UnderlineIcon.tsx +31 -0
  865. package/src/icons/UndoIcon.tsx +31 -0
  866. package/src/icons/UploadArrowIcon.tsx +40 -0
  867. package/src/icons/UserIcon.tsx +21 -0
  868. package/src/icons/VolumeHighIcon.tsx +27 -0
  869. package/src/icons/VolumeMuteIcon.tsx +53 -0
  870. package/src/icons/XCircleIcon.tsx +32 -0
  871. package/src/icons/XIcon.tsx +27 -0
  872. package/src/icons/XIconSVG.tsx +16 -0
  873. package/src/icons/XSmallIcon.tsx +29 -0
  874. package/src/icons/XSvg.tsx +18 -0
  875. package/src/icons/ZoomInIcon.tsx +25 -0
  876. package/src/icons/index.ts +5 -0
  877. package/src/index.ts +699 -0
  878. package/src/lib/cn.ts +42 -0
  879. package/src/styles/motion.css +120 -0
  880. package/src/styles.css +242 -0
@@ -0,0 +1,114 @@
1
+ import type { HTMLAttributes, ReactNode } from 'react';
2
+
3
+ /** Visual type of the media block. */
4
+ export type CardMediaType = 'image' | 'carousel' | 'video';
5
+
6
+ export interface CardMediaProps
7
+ extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
8
+ /**
9
+ * Variant of the media block.
10
+ * - `image` — single image with a bottom gradient overlay + optional title / description / leading icon.
11
+ * - `carousel` — image with top chips, left/right arrow controls, and pagination dots.
12
+ * - `video` — image poster with top chips, centered play button, and a duration pill in the footer.
13
+ * @default 'image'
14
+ */
15
+ type?: CardMediaType;
16
+
17
+ /**
18
+ * Background image source. Used for the single-image Image / Video variants,
19
+ * and as a fallback for the Carousel variant when no `images` array is supplied.
20
+ */
21
+ imageSrc: string;
22
+ /** Background image alt text. @default '' */
23
+ imageAlt?: string;
24
+
25
+ /**
26
+ * Carousel-only: the ordered list of images the carousel cycles through.
27
+ * When provided, the active image is `images[currentSlide]` and
28
+ * `totalSlides` defaults to `images.length`. When omitted, the carousel
29
+ * falls back to rendering a single `imageSrc`.
30
+ */
31
+ images?: Array<{ src: string; alt?: string }>;
32
+
33
+ /* ── Image-variant content ────────────────────────────────── */
34
+ /** Title shown in the bottom overlay (Image variant). */
35
+ title?: ReactNode;
36
+ /** Description shown under the title (Image variant). */
37
+ description?: ReactNode;
38
+ /**
39
+ * Leading icon rendered inside the featured-icon slot on the Image footer.
40
+ * Defaults to a placeholder image icon when omitted.
41
+ */
42
+ leadingIcon?: ReactNode;
43
+ /** Hide the leading featured-icon slot entirely (Image variant). @default false */
44
+ hideLeadingIcon?: boolean;
45
+
46
+ /* ── Carousel / Video shared ──────────────────────────────── */
47
+ /**
48
+ * Chip badges rendered in the top row for Carousel and Video variants.
49
+ * Pass an array of strings (each becomes a styled chip) or any ReactNode
50
+ * (rendered as-is so you can pass fully custom chips).
51
+ */
52
+ badges?: ReactNode[] | ReactNode;
53
+
54
+ /* ── Carousel-specific ────────────────────────────────────── */
55
+ /** Total pagination dots (Carousel). @default 3 */
56
+ totalSlides?: number;
57
+ /** Currently active dot (0-based) (Carousel). @default 0 */
58
+ currentSlide?: number;
59
+ /**
60
+ * Fired whenever the active slide changes — either from a pagination dot click
61
+ * or from a previous / next arrow click. CardMedia computes the target index
62
+ * internally (with optional wrap-around, see `loop`) and passes it here.
63
+ */
64
+ onSlideChange?: (index: number) => void;
65
+ /**
66
+ * Infinite scrolling: pressing Next on the last slide wraps back to the
67
+ * first, and pressing Previous on the first slide jumps to the last.
68
+ * Disable to clamp at the edges instead.
69
+ * @default true
70
+ */
71
+ loop?: boolean;
72
+ /**
73
+ * Optional side-effect hook fired in addition to `onSlideChange` when the
74
+ * user clicks the previous arrow. The component already updates the index
75
+ * itself — use this only if you need extra behavior (analytics, etc.).
76
+ */
77
+ onPrev?: () => void;
78
+ /**
79
+ * Optional side-effect hook fired in addition to `onSlideChange` when the
80
+ * user clicks the next arrow. The component already updates the index
81
+ * itself — use this only if you need extra behavior (analytics, etc.).
82
+ */
83
+ onNext?: () => void;
84
+
85
+ /* ── Video-specific ───────────────────────────────────────── */
86
+ /** Duration text shown in the footer pill (Video). */
87
+ duration?: ReactNode;
88
+ /** Fired when the user clicks the play button (Video). */
89
+ onPlay?: () => void;
90
+ /** Accessible label for the play button. @default 'Play' */
91
+ playLabel?: string;
92
+
93
+ /* ── Direction ────────────────────────────────────────────── */
94
+ /** Direction — applied to the root and drives RTL layout. */
95
+ dir?: 'ltr' | 'rtl';
96
+ /** @deprecated Use `dir="rtl"` instead. */
97
+ rtl?: boolean;
98
+
99
+ /**
100
+ * Bleeds the media past the card's horizontal padding on both sides so the
101
+ * image meets the left and right card edges. Use for any card where the
102
+ * media is NOT the first child (Content, Social Post, Item).
103
+ * @default false
104
+ */
105
+ stretched?: boolean;
106
+ /**
107
+ * Also bleeds the media past the card's top padding so it meets the top
108
+ * card edge (rounded corners match the card's 16 px radius). Only use when
109
+ * the media is the FIRST child of the card, i.e. Product and Event cards.
110
+ * Requires `stretched={true}`.
111
+ * @default false
112
+ */
113
+ stretchTop?: boolean;
114
+ }
@@ -0,0 +1,139 @@
1
+ /* ──────────────────────────────────────────────────────────────
2
+ * CardMedia — class-name maps.
3
+ *
4
+ * Color values come from the Figma variables bound to the _Card
5
+ * Media frame (JnxIDV6Ev4yznMM0njgo5i → 4401:35269). Values that
6
+ * don't map to an existing global token are kept as rgba literals
7
+ * with the Figma variable name in a comment. Dark-mode pairs are
8
+ * included where the surface could sit on a dark host page.
9
+ * ────────────────────────────────────────────────────────────── */
10
+
11
+ /* ── Root ──────────────────────────────────────────────────────
12
+ * 360 × 210 in Figma. We default to the same width cap and exact
13
+ * height; parent containers can override via `className`.
14
+ * ────────────────────────────────────────────────────────────── */
15
+
16
+ export const ROOT_BASE = [
17
+ // No explicit `w-full` — let align-self:stretch fill the cross-axis.
18
+ // This allows negative horizontal margins (stretched) to correctly extend
19
+ // past the card padding; with w-full the margins only shift, not widen.
20
+ 'relative flex flex-col h-[210px]',
21
+ 'rounded-[8px] overflow-hidden',
22
+ 'bg-[rgba(243,244,246,1)] dark:bg-[rgba(31,42,55,1)]',
23
+ ].join(' ');
24
+
25
+ /** Image variant — content (if any) hugs the bottom edge; gradient overlays it. */
26
+ export const ROOT_IMAGE = 'justify-end';
27
+
28
+ /** Carousel + Video share a padded three-row layout. */
29
+ export const ROOT_OVERLAYED = 'justify-between p-spacing-xl';
30
+
31
+ /* ── Background image ─────────────────────────────────────────── */
32
+
33
+ export const MEDIA_IMAGE =
34
+ 'absolute inset-0 size-full object-cover pointer-events-none rounded-[8px]';
35
+
36
+ /* ── Image variant: gradient footer with text + leading icon ──── */
37
+
38
+ /**
39
+ * Bottom-anchored gradient strip per Figma:
40
+ * from #16161666 (alpha-black-40)
41
+ * via #16161633 (alpha-black-20) at 55.625%
42
+ * to #16161600 (alpha-black-0)
43
+ */
44
+ export const IMAGE_FOOTER_OVERLAY = [
45
+ 'relative flex items-center gap-spacing-md w-full',
46
+ 'p-spacing-xl',
47
+ 'bg-gradient-to-t',
48
+ 'from-[rgba(22,22,22,0.4)]',
49
+ 'via-[rgba(22,22,22,0.2)] via-[55.625%]',
50
+ 'to-[rgba(22,22,22,0)]',
51
+ ].join(' ');
52
+
53
+ /**
54
+ * The leading-item slot on the Image footer is rendered by the shared
55
+ * `CardLeadingItem` primitive — see `../CardLeadingItem`. The CardMedia
56
+ * variants file no longer owns a wrapper style for it.
57
+ */
58
+
59
+ export const TEXT_COLUMN =
60
+ 'flex flex-1 min-w-0 flex-col gap-spacing-xxs items-start w-full';
61
+
62
+ export const TITLE_CLASS = [
63
+ 'm-0 w-full',
64
+ // Text md Bold
65
+ 'text-text-md font-[700] leading-[24px]',
66
+ // text-oncolor-primary (#fff)
67
+ 'text-white',
68
+ ].join(' ');
69
+
70
+ export const DESCRIPTION_CLASS = [
71
+ 'm-0 w-full',
72
+ // Text sm Regular
73
+ 'text-text-sm font-[400] leading-[20px]',
74
+ // text-oncolor-secondary (rgba(255,255,255,0.8))
75
+ 'text-[rgba(255,255,255,0.8)]',
76
+ ].join(' ');
77
+
78
+ /* ── Chips row (Carousel + Video) ─────────────────────────────── */
79
+
80
+ export const CHIP_ROW =
81
+ 'relative flex items-center gap-spacing-md w-full h-[20px]';
82
+
83
+ /*
84
+ * Badge rendering now delegates to the shared `Chip` component
85
+ * (`variant="neutral" size="sm" rounded={false}`) — no inline wrapper
86
+ * class lives here.
87
+ */
88
+
89
+ /* ── Carousel middle row (arrows) ─────────────────────────────── */
90
+
91
+ export const CAROUSEL_CENTER_ROW =
92
+ 'relative flex items-center justify-between w-full h-[32px]';
93
+
94
+ /* ── Carousel bottom row (pagination) ─────────────────────────── */
95
+
96
+ export const CAROUSEL_PAGINATION_ROW =
97
+ 'relative flex flex-col items-center justify-end w-full h-[20px]';
98
+
99
+ /* ── Video middle row (play button) ───────────────────────────── */
100
+
101
+ export const VIDEO_CENTER_ROW =
102
+ 'relative flex items-center justify-between w-full h-[48px]';
103
+
104
+ /** Circular play-button overlay — translucent white. */
105
+ export const PLAY_BUTTON = [
106
+ 'inline-flex items-center justify-center flex-shrink-0',
107
+ 'p-spacing-lg rounded-full',
108
+ // alpha-white-80 (rgba(255,255,255,0.8))
109
+ 'bg-[rgba(255,255,255,0.8)]',
110
+ // Focus ring for keyboard users
111
+ 'cursor-pointer motion-feedback',
112
+ 'hover:bg-white active:bg-[rgba(255,255,255,0.6)]',
113
+ 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white focus-visible:ring-offset-2',
114
+ // Icon color (icon-default #161616)
115
+ 'text-[rgba(22,22,22,1)]',
116
+ ].join(' ');
117
+
118
+ export const PLAY_ICON_INNER =
119
+ 'inline-flex items-center justify-center flex-shrink-0 size-[24px]';
120
+
121
+ /** Center row wrapping used when the play button is centered and no leading/trailing decoration. */
122
+ export const VIDEO_CENTER_INNER =
123
+ 'flex-1 flex items-center justify-center';
124
+
125
+ /* ── Video footer (duration pill) ─────────────────────────────── */
126
+
127
+ export const VIDEO_FOOTER_ROW = 'relative flex flex-row items-center w-full h-[20px]';
128
+
129
+ export const DURATION_PILL = [
130
+ 'inline-flex items-center gap-[0px] ms-auto',
131
+ 'px-spacing-lg py-[3px]',
132
+ 'rounded-[6px]',
133
+ // alpha-white-50 (rgba(255,255,255,0.5))
134
+ 'bg-[rgba(255,255,255,0.5)]',
135
+ // text-oncolor-primary (#fff)
136
+ 'text-white',
137
+ // Text 2xs Semibold
138
+ 'text-text-2xs font-[600] leading-[14px] whitespace-nowrap',
139
+ ].join(' ');
@@ -0,0 +1,2 @@
1
+ export { CardMedia } from './CardMedia';
2
+ export type { CardMediaProps, CardMediaType } from './CardMedia.types';
@@ -0,0 +1,182 @@
1
+ 'use client';
2
+
3
+ import {
4
+ Children,
5
+ forwardRef,
6
+ useCallback,
7
+ useEffect,
8
+ useId,
9
+ useMemo,
10
+ useRef,
11
+ useState,
12
+ } from 'react';
13
+ import { cn } from '../../lib/cn';
14
+ import { CarouselArrow } from '../CarouselArrow/CarouselArrow';
15
+ import { CarouselControlsGroup } from '../CarouselControlsGroup/CarouselControlsGroup';
16
+ import type { CarouselProps } from './Carousel.types';
17
+ import {
18
+ ROOT_CLASSES,
19
+ ROW_CLASSES,
20
+ VIEWPORT_CLASSES,
21
+ TRACK_CLASSES,
22
+ SLIDE_CLASSES,
23
+ DOTS_ROW_CLASSES,
24
+ } from './Carousel.variants';
25
+
26
+ /**
27
+ * Carousel — a desktop carousel that composes the package `CarouselArrow` and
28
+ * `CarouselControlsGroup` around a slide track. Supports controlled and
29
+ * uncontrolled active index, optional looping, autoplay, and RTL — the slide
30
+ * translation flips automatically under `dir="rtl"`.
31
+ *
32
+ * Each direct child of `<Carousel>` is rendered as one slide.
33
+ */
34
+ export const Carousel = forwardRef<HTMLDivElement, CarouselProps>(function Carousel(
35
+ {
36
+ children,
37
+ activeIndex,
38
+ defaultIndex = 0,
39
+ onChange,
40
+ showArrows = true,
41
+ showDots = true,
42
+ dotsVariant = 'brand',
43
+ dotsSize = 'sm',
44
+ arrowVariant = 'brand',
45
+ arrowSize = 'md',
46
+ loop = false,
47
+ autoplayMs,
48
+ ariaLabel = 'Carousel',
49
+ className,
50
+ ...rest
51
+ },
52
+ ref,
53
+ ) {
54
+ const slides = useMemo(() => Children.toArray(children), [children]);
55
+ const count = slides.length;
56
+
57
+ const [uncontrolled, setUncontrolled] = useState(() =>
58
+ Math.min(Math.max(0, defaultIndex), Math.max(0, count - 1)),
59
+ );
60
+ const isControlled = activeIndex !== undefined;
61
+ const index = isControlled ? Math.min(Math.max(0, activeIndex!), Math.max(0, count - 1)) : uncontrolled;
62
+ const reactId = useId();
63
+
64
+ // Detect RTL from the rendered DOM so the translate direction flips.
65
+ const viewportRef = useRef<HTMLDivElement | null>(null);
66
+ const [isRtl, setIsRtl] = useState(false);
67
+ useEffect(() => {
68
+ const el = viewportRef.current;
69
+ if (!el) return;
70
+ const dir = getComputedStyle(el).direction;
71
+ setIsRtl(dir === 'rtl');
72
+ }, []);
73
+
74
+ const setIndex = useCallback(
75
+ (next: number) => {
76
+ if (count === 0) return;
77
+ let target = next;
78
+ if (loop) {
79
+ target = ((next % count) + count) % count;
80
+ } else {
81
+ target = Math.min(Math.max(0, next), count - 1);
82
+ }
83
+ if (!isControlled) setUncontrolled(target);
84
+ onChange?.(target);
85
+ },
86
+ [count, loop, isControlled, onChange],
87
+ );
88
+
89
+ const goPrev = useCallback(() => setIndex(index - 1), [index, setIndex]);
90
+ const goNext = useCallback(() => setIndex(index + 1), [index, setIndex]);
91
+
92
+ /* ── Autoplay ─────────────────────────────────────────────── */
93
+ useEffect(() => {
94
+ if (!autoplayMs || autoplayMs <= 0 || count <= 1) return;
95
+ const id = window.setInterval(() => {
96
+ setIndex(loop ? index + 1 : (index + 1) % count);
97
+ }, autoplayMs);
98
+ return () => window.clearInterval(id);
99
+ }, [autoplayMs, count, index, loop, setIndex]);
100
+
101
+ const canPrev = loop || index > 0;
102
+ const canNext = loop || index < count - 1;
103
+
104
+ // Translate is negative in LTR, positive in RTL (because the track visually
105
+ // flows right-to-left under dir="rtl" and we want to move it the opposite way).
106
+ const translatePct = (isRtl ? 1 : -1) * index * 100;
107
+
108
+ return (
109
+ <section
110
+ ref={ref}
111
+ data-slot="carousel"
112
+ aria-roledescription="carousel"
113
+ aria-label={ariaLabel}
114
+ className={cn(ROOT_CLASSES, className)}
115
+ {...rest}
116
+ >
117
+ <div className={ROW_CLASSES}>
118
+ {showArrows ? (
119
+ <CarouselArrow
120
+ direction="previous"
121
+ size={arrowSize}
122
+ variant={arrowVariant}
123
+ disabled={!canPrev}
124
+ onClick={goPrev}
125
+ aria-controls={`${reactId}-viewport`}
126
+ />
127
+ ) : null}
128
+
129
+ <div
130
+ ref={viewportRef}
131
+ id={`${reactId}-viewport`}
132
+ data-slot="carousel-viewport"
133
+ className={VIEWPORT_CLASSES}
134
+ aria-live={autoplayMs ? 'off' : 'polite'}
135
+ >
136
+ <div
137
+ data-slot="carousel-track"
138
+ className={TRACK_CLASSES}
139
+ style={{ transform: `translateX(${translatePct}%)` }}
140
+ >
141
+ {slides.map((slide, i) => (
142
+ <div
143
+ key={i}
144
+ data-slot="carousel-slide"
145
+ role="group"
146
+ aria-roledescription="slide"
147
+ aria-label={`${i + 1} of ${count}`}
148
+ aria-hidden={i !== index}
149
+ className={SLIDE_CLASSES}
150
+ >
151
+ {slide}
152
+ </div>
153
+ ))}
154
+ </div>
155
+ </div>
156
+
157
+ {showArrows ? (
158
+ <CarouselArrow
159
+ direction="next"
160
+ size={arrowSize}
161
+ variant={arrowVariant}
162
+ disabled={!canNext}
163
+ onClick={goNext}
164
+ aria-controls={`${reactId}-viewport`}
165
+ />
166
+ ) : null}
167
+ </div>
168
+
169
+ {showDots && count > 1 ? (
170
+ <div className={DOTS_ROW_CLASSES}>
171
+ <CarouselControlsGroup
172
+ count={count}
173
+ activeIndex={index}
174
+ onChange={setIndex}
175
+ size={dotsSize}
176
+ variant={dotsVariant}
177
+ />
178
+ </div>
179
+ ) : null}
180
+ </section>
181
+ );
182
+ });
@@ -0,0 +1,38 @@
1
+ import type { HTMLAttributes, ReactNode } from 'react';
2
+ import type {
3
+ CarouselControlsGroupSize,
4
+ CarouselControlsGroupStyle,
5
+ } from '../CarouselControlsGroup/CarouselControlsGroup.types';
6
+ import type {
7
+ CarouselArrowSize,
8
+ CarouselArrowVariant,
9
+ } from '../CarouselArrow/CarouselArrow.types';
10
+
11
+ export interface CarouselProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
12
+ /** Slides to render. Each child is treated as a single slide. */
13
+ children: ReactNode;
14
+ /** Controlled active index. If omitted, the carousel manages its own state. */
15
+ activeIndex?: number;
16
+ /** Initial slide index when uncontrolled. @default 0 */
17
+ defaultIndex?: number;
18
+ /** Called whenever the active slide changes. */
19
+ onChange?: (index: number) => void;
20
+ /** Show left/right arrow buttons on the sides. @default true */
21
+ showArrows?: boolean;
22
+ /** Show pagination dots below the slides. @default true */
23
+ showDots?: boolean;
24
+ /** Visual style of the pagination dots. @default 'brand' */
25
+ dotsVariant?: CarouselControlsGroupStyle;
26
+ /** Size of the pagination dots. @default 'sm' */
27
+ dotsSize?: CarouselControlsGroupSize;
28
+ /** Visual style of the arrows. @default 'brand' */
29
+ arrowVariant?: CarouselArrowVariant;
30
+ /** Size of the arrows. @default 'md' */
31
+ arrowSize?: CarouselArrowSize;
32
+ /** Wrap around when navigating past the first/last slide. @default false */
33
+ loop?: boolean;
34
+ /** Auto-advance interval in ms. 0 / undefined disables autoplay. */
35
+ autoplayMs?: number;
36
+ /** Accessible label for the carousel region. */
37
+ ariaLabel?: string;
38
+ }
@@ -0,0 +1,17 @@
1
+ /** Outer region wrapper. */
2
+ export const ROOT_CLASSES = 'relative w-full';
3
+
4
+ /** Row holding the optional start arrow, the slide viewport, and the end arrow. */
5
+ export const ROW_CLASSES = 'flex w-full items-center gap-spacing-md';
6
+
7
+ /** Viewport that clips slides; slides translate horizontally inside it. */
8
+ export const VIEWPORT_CLASSES = 'relative w-full overflow-hidden';
9
+
10
+ /** Flex track that holds every slide side-by-side. */
11
+ export const TRACK_CLASSES = 'flex w-full transition-transform duration-300 ease-out';
12
+
13
+ /** Each slide occupies the full viewport width. */
14
+ export const SLIDE_CLASSES = 'w-full shrink-0';
15
+
16
+ /** Dots row below the slides. */
17
+ export const DOTS_ROW_CLASSES = 'mt-spacing-lg flex w-full justify-center';
@@ -0,0 +1,2 @@
1
+ export { Carousel } from './Carousel';
2
+ export type { CarouselProps } from './Carousel.types';
@@ -0,0 +1,66 @@
1
+ 'use client';
2
+
3
+ import { forwardRef } from 'react';
4
+ import { cn } from '../../lib/cn';
5
+ import type { CarouselArrowProps } from './CarouselArrow.types';
6
+ import {
7
+ SIZE_CLASSES,
8
+ ICON_SIZE_CLASSES,
9
+ VARIANT_CLASSES,
10
+ DISABLED_CLASSES,
11
+ FOCUS_RING_CLASSES,
12
+ } from './CarouselArrow.variants';
13
+ import { ArrowLeft01Icon, ArrowRight01Icon } from '../../icons/IconFactory';
14
+
15
+ /**
16
+ * CarouselArrow — a round navigation button for carousels. Use `direction`
17
+ * (`previous` / `next`) instead of `left` / `right` so the arrow flips
18
+ * automatically under RTL. Five visual variants, three sizes.
19
+ */
20
+ export const CarouselArrow = forwardRef<HTMLButtonElement, CarouselArrowProps>(
21
+ function CarouselArrow(
22
+ {
23
+ direction = 'next',
24
+ size = 'md',
25
+ variant = 'brand',
26
+ disabled = false,
27
+ ariaLabel,
28
+ className,
29
+ ...rest
30
+ },
31
+ ref,
32
+ ) {
33
+ const isDisabled = disabled;
34
+ const variantClass = isDisabled
35
+ ? DISABLED_CLASSES[variant]
36
+ : VARIANT_CLASSES[variant];
37
+
38
+ const Icon = direction === 'previous' ? ArrowLeft01Icon : ArrowRight01Icon;
39
+
40
+ return (
41
+ <button
42
+ ref={ref}
43
+ type="button"
44
+ data-slot="carousel-arrow"
45
+ data-direction={direction}
46
+ data-size={size}
47
+ data-variant={variant}
48
+ disabled={isDisabled}
49
+ aria-label={
50
+ ariaLabel ?? (direction === 'next' ? 'Next slide' : 'Previous slide')
51
+ }
52
+ className={cn(
53
+ 'inline-flex shrink-0 items-center justify-center rounded-full motion-feedback',
54
+ isDisabled ? 'cursor-not-allowed' : 'cursor-pointer',
55
+ SIZE_CLASSES[size],
56
+ variantClass,
57
+ !isDisabled && FOCUS_RING_CLASSES[variant],
58
+ className,
59
+ )}
60
+ {...rest}
61
+ >
62
+ <Icon className={cn(ICON_SIZE_CLASSES[size], 'rtl:-scale-x-100')} />
63
+ </button>
64
+ );
65
+ },
66
+ );
@@ -0,0 +1,26 @@
1
+ import type { ButtonHTMLAttributes } from 'react';
2
+
3
+ export type CarouselArrowSize = 'sm' | 'md' | 'lg';
4
+
5
+ /** Arrow direction. Logical: `previous` / `next` flip with RTL; `left`/`right` are physical. */
6
+ export type CarouselArrowDirection = 'previous' | 'next';
7
+
8
+ /** Visual style of the round arrow button. */
9
+ export type CarouselArrowVariant =
10
+ | 'brand'
11
+ | 'neutral'
12
+ | 'subtle'
13
+ | 'outline'
14
+ | 'on-color';
15
+
16
+ export interface CarouselArrowProps
17
+ extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'type'> {
18
+ /** Which direction the arrow points. @default 'next' */
19
+ direction?: CarouselArrowDirection;
20
+ /** Size of the button. @default 'md' */
21
+ size?: CarouselArrowSize;
22
+ /** Visual style. @default 'brand' */
23
+ variant?: CarouselArrowVariant;
24
+ /** Accessible label. Defaults to "Previous slide" / "Next slide". */
25
+ ariaLabel?: string;
26
+ }
@@ -0,0 +1,83 @@
1
+ import type { CarouselArrowSize, CarouselArrowVariant } from './CarouselArrow.types';
2
+
3
+ /** Button dimensions per size (Figma: 32 / 40 / 48). */
4
+ export const SIZE_CLASSES: Record<CarouselArrowSize, string> = {
5
+ sm: 'size-[32px]',
6
+ md: 'size-[40px]',
7
+ lg: 'size-[48px]',
8
+ };
9
+
10
+ /** Inner chevron icon dimensions per size (uses global icon tokens). */
11
+ export const ICON_SIZE_CLASSES: Record<CarouselArrowSize, string> = {
12
+ sm: 'size-icon-sm',
13
+ md: 'size-icon-md',
14
+ lg: 'size-icon-lg',
15
+ };
16
+
17
+ /** Enabled variant styles (background/border/text + hover/active, light + dark). */
18
+ export const VARIANT_CLASSES: Record<CarouselArrowVariant, string> = {
19
+ brand: [
20
+ 'bg-[rgba(27,131,84,1)] text-white',
21
+ 'hover:bg-[rgba(22,106,69,1)]',
22
+ 'active:bg-[rgba(16,70,49,1)]',
23
+ 'dark:bg-[rgba(34,164,105,1)] dark:text-white',
24
+ 'dark:hover:bg-[rgba(22,106,69,1)]',
25
+ 'dark:active:bg-[rgba(16,70,49,1)]',
26
+ ].join(' '),
27
+ neutral: [
28
+ 'bg-[rgba(243,244,246,1)] text-[rgba(13,18,28,1)]',
29
+ 'hover:bg-[rgba(243,244,246,1)]',
30
+ 'active:bg-[rgba(229,231,235,1)]',
31
+ 'dark:bg-[rgba(44,57,79,1)] dark:text-[rgba(229,231,235,1)]',
32
+ 'dark:hover:bg-[rgba(55,65,81,1)]',
33
+ 'dark:active:bg-[rgba(75,85,99,1)]',
34
+ ].join(' '),
35
+ subtle: [
36
+ 'bg-transparent text-[rgba(31,42,55,1)]',
37
+ 'hover:bg-[rgba(243,244,246,1)]',
38
+ 'active:bg-[rgba(229,231,235,1)]',
39
+ 'dark:bg-transparent dark:text-[rgba(229,231,235,1)]',
40
+ 'dark:hover:bg-[rgba(29,41,57,1)]',
41
+ 'dark:active:bg-[rgba(44,57,79,1)]',
42
+ ].join(' '),
43
+ outline: [
44
+ 'border border-[rgba(210,214,219,1)] bg-transparent text-[rgba(31,42,55,1)]',
45
+ 'hover:bg-[rgba(249,250,251,1)]',
46
+ 'active:bg-[rgba(229,231,235,1)]',
47
+ 'dark:border-[rgba(55,65,81,1)] dark:text-[rgba(229,231,235,1)]',
48
+ 'dark:hover:bg-[rgba(29,41,57,1)]',
49
+ 'dark:active:bg-[rgba(44,57,79,1)]',
50
+ ].join(' '),
51
+ 'on-color': [
52
+ 'bg-[rgba(255,255,255,0.2)] text-white backdrop-blur-sm',
53
+ 'hover:bg-[rgba(255,255,255,0.3)]',
54
+ 'active:bg-[rgba(255,255,255,0.4)]',
55
+ ].join(' '),
56
+ };
57
+
58
+ /** Disabled styles per variant. */
59
+ export const DISABLED_CLASSES: Record<CarouselArrowVariant, string> = {
60
+ brand:
61
+ 'bg-[rgba(229,231,235,1)] text-[rgba(157,164,174,1)] dark:bg-[rgba(44,57,79,1)] dark:text-[rgba(75,85,99,1)]',
62
+ neutral:
63
+ 'bg-[rgba(229,231,235,1)] text-[rgba(157,164,174,1)] dark:bg-[rgba(44,57,79,1)] dark:text-[rgba(75,85,99,1)]',
64
+ subtle:
65
+ 'bg-[rgba(249,250,251,1)] text-[rgba(157,164,174,1)] dark:bg-[rgba(17,25,39,1)] dark:text-[rgba(75,85,99,1)]',
66
+ outline:
67
+ 'border border-[rgba(229,231,235,1)] bg-transparent text-[rgba(157,164,174,1)] dark:border-[rgba(44,57,79,1)] dark:text-[rgba(75,85,99,1)]',
68
+ 'on-color': 'bg-[rgba(255,255,255,0.1)] text-[rgba(255,255,255,0.4)]',
69
+ };
70
+
71
+ /** Focus ring per variant — brand uses green, neutral/subtle/outline use near-black, on-color uses white. */
72
+ export const FOCUS_RING_CLASSES: Record<CarouselArrowVariant, string> = {
73
+ brand:
74
+ 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[rgba(27,131,84,0.7)] focus-visible:ring-offset-2 focus-visible:ring-offset-white dark:focus-visible:ring-offset-[rgba(17,25,39,1)]',
75
+ neutral:
76
+ 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[rgba(22,22,22,0.7)] focus-visible:ring-offset-2 focus-visible:ring-offset-white dark:focus-visible:ring-offset-[rgba(17,25,39,1)]',
77
+ subtle:
78
+ 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[rgba(22,22,22,0.7)] focus-visible:ring-offset-2 focus-visible:ring-offset-white dark:focus-visible:ring-offset-[rgba(17,25,39,1)]',
79
+ outline:
80
+ 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[rgba(22,22,22,0.7)] focus-visible:ring-offset-2 focus-visible:ring-offset-white dark:focus-visible:ring-offset-[rgba(17,25,39,1)]',
81
+ 'on-color':
82
+ 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[rgba(255,255,255,0.7)] focus-visible:ring-offset-2 focus-visible:ring-offset-transparent',
83
+ };