@juspay/blend-design-system 0.0.37-beta.2 → 0.0.37-beta.3

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 (1123) hide show
  1. package/dist/components/Badge/Badge.d.ts +3 -0
  2. package/dist/components/Badge/Badge.types.d.ts +34 -0
  3. package/dist/components/Badge/badge.dark.tokens.d.ts +3 -0
  4. package/dist/components/Badge/badge.light.tokens.d.ts +3 -0
  5. package/dist/components/Badge/badge.tokens.d.ts +55 -0
  6. package/dist/components/Badge/badge.utils.d.ts +11 -0
  7. package/dist/components/Badge/index.d.ts +2 -0
  8. package/dist/components/ChartsV2/chartV2Options.d.ts +3 -0
  9. package/dist/components/ChatInput/ChatInput.d.ts +1 -1
  10. package/dist/components/CodeEditorV2/codeEditorV2.tokens.d.ts +2 -2
  11. package/dist/components/CodeEditorV2/utils.d.ts +9 -0
  12. package/dist/components/DataTable/DataTablePagination.d.ts +2 -1
  13. package/dist/components/DataTable/TableBody/types.d.ts +5 -1
  14. package/dist/components/DataTable/TableFooter/types.d.ts +1 -0
  15. package/dist/components/DataTable/TableHeader/FilterComponents.d.ts +7 -2
  16. package/dist/components/DataTable/TableHeader/handlers.d.ts +1 -1
  17. package/dist/components/DataTable/types.d.ts +5 -0
  18. package/dist/components/DataTable/utils.d.ts +8 -0
  19. package/dist/components/DateRangePicker/types.d.ts +6 -0
  20. package/dist/components/Directory/directory.tokens.d.ts +6 -0
  21. package/dist/components/DrawerV2/DrawerV2.d.ts +15 -0
  22. package/dist/components/InputsV2/ChatInputV2/AttachmentDropdown.d.ts +11 -0
  23. package/dist/components/InputsV2/ChatInputV2/ChatInputTagV2.d.ts +13 -0
  24. package/dist/components/InputsV2/ChatInputV2/ChatInputV2.d.ts +19 -0
  25. package/dist/components/InputsV2/ChatInputV2/ChatInputV2.dark.tokens.d.ts +4 -0
  26. package/dist/components/InputsV2/ChatInputV2/ChatInputV2.light.tokens.d.ts +3 -0
  27. package/dist/components/InputsV2/ChatInputV2/ChatInputV2.tokens.d.ts +125 -0
  28. package/dist/components/InputsV2/ChatInputV2/ChatInputV2.types.d.ts +54 -0
  29. package/dist/components/InputsV2/ChatInputV2/ChatInputV2AttachmentRow.d.ts +13 -0
  30. package/dist/components/InputsV2/ChatInputV2/ChatInputV2Mobile.dark.tokens.d.ts +4 -0
  31. package/dist/components/InputsV2/ChatInputV2/ChatInputV2Mobile.light.tokens.d.ts +3 -0
  32. package/dist/components/InputsV2/ChatInputV2/ChatInputV2Mobile.tokens.d.ts +60 -0
  33. package/dist/components/InputsV2/ChatInputV2/MobileChatInputV2.d.ts +17 -0
  34. package/dist/components/InputsV2/ChatInputV2/index.d.ts +4 -0
  35. package/dist/components/InputsV2/ChatInputV2/utils.d.ts +43 -0
  36. package/dist/components/InputsV2/MultiValueInputV2/MultiValueInputV2.d.ts +1 -1
  37. package/dist/components/InputsV2/NumberInputV2/NumberInputV2.d.ts +32 -0
  38. package/dist/components/InputsV2/NumberInputV2/NumberInputV2.dark.tokens.d.ts +3 -0
  39. package/dist/components/InputsV2/NumberInputV2/NumberInputV2.light.tokens.d.ts +3 -0
  40. package/dist/components/InputsV2/NumberInputV2/NumberInputV2Stepper.d.ts +14 -0
  41. package/dist/components/InputsV2/NumberInputV2/NumberInputV2Unit.d.ts +12 -0
  42. package/dist/components/InputsV2/NumberInputV2/StepperArrow.d.ts +2 -0
  43. package/dist/components/InputsV2/NumberInputV2/index.d.ts +3 -0
  44. package/dist/components/InputsV2/NumberInputV2/numberInputV2.tokens.d.ts +135 -0
  45. package/dist/components/InputsV2/NumberInputV2/numberInputV2.types.d.ts +41 -0
  46. package/dist/components/InputsV2/NumberInputV2/utils.d.ts +52 -0
  47. package/dist/components/InputsV2/OTPInputV2/OTPInputV2.d.ts +14 -0
  48. package/dist/components/InputsV2/OTPInputV2/OTPInputV2.dark.tokens.d.ts +3 -0
  49. package/dist/components/InputsV2/OTPInputV2/OTPInputV2.light.tokens.d.ts +3 -0
  50. package/dist/components/InputsV2/OTPInputV2/OTPInputV2.tokens.d.ts +34 -0
  51. package/dist/components/InputsV2/OTPInputV2/OTPInputV2.types.d.ts +13 -0
  52. package/dist/components/InputsV2/OTPInputV2/index.d.ts +3 -0
  53. package/dist/components/InputsV2/OTPInputV2/otpInputV2Utils.d.ts +47 -0
  54. package/dist/components/InputsV2/SearchInputV2/SearchInputV2.d.ts +14 -0
  55. package/dist/components/InputsV2/SearchInputV2/SearchInputV2.dark.tokens.d.ts +3 -0
  56. package/dist/components/InputsV2/SearchInputV2/SearchInputV2.light.tokens.d.ts +3 -0
  57. package/dist/components/InputsV2/SearchInputV2/SearchInputV2.tokens.d.ts +92 -0
  58. package/dist/components/InputsV2/SearchInputV2/SearchInputV2.types.d.ts +13 -0
  59. package/dist/components/InputsV2/SearchInputV2/index.d.ts +3 -0
  60. package/dist/components/InputsV2/TextAreaV2/TextAreaV2.d.ts +23 -0
  61. package/dist/components/InputsV2/TextAreaV2/TextAreaV2.dark.tokens.d.ts +3 -0
  62. package/dist/components/InputsV2/TextAreaV2/TextAreaV2.light.tokens.d.ts +3 -0
  63. package/dist/components/InputsV2/TextAreaV2/TextAreaV2.tokens.d.ts +63 -0
  64. package/dist/components/InputsV2/TextAreaV2/TextAreaV2.types.d.ts +22 -0
  65. package/dist/components/InputsV2/TextAreaV2/index.d.ts +3 -0
  66. package/dist/components/InputsV2/TextAreaV2/utils.d.ts +47 -0
  67. package/dist/components/InputsV2/TextInputV2/TextInputV2.d.ts +3 -1
  68. package/dist/components/InputsV2/TextInputV2/TextInputV2.types.d.ts +24 -1
  69. package/dist/components/InputsV2/TextInputV2/utils.d.ts +5 -3
  70. package/dist/components/InputsV2/utils/FloatingLabelsV2/FloatingLabelsV2.d.ts +3 -1
  71. package/dist/components/InputsV2/utils/utils.d.ts +10 -0
  72. package/dist/components/Primitives/Block/Block.d.ts +1 -1
  73. package/dist/components/ProgressBarV2/utils.d.ts +40 -0
  74. package/dist/components/SidebarV2/SecondarySidebar.d.ts +9 -0
  75. package/dist/components/SidebarV2/SidebarV2.d.ts +3 -0
  76. package/dist/components/SidebarV2/SidebarV2Footer.d.ts +10 -0
  77. package/dist/components/SidebarV2/SidebarV2Header.d.ts +24 -0
  78. package/dist/components/SidebarV2/SidebarV2MobileNavigation/MobileNavigationItem.d.ts +4 -0
  79. package/dist/components/SidebarV2/SidebarV2MobileNavigation/MoreButton.d.ts +3 -0
  80. package/dist/components/SidebarV2/SidebarV2MobileNavigation/PrimaryActionButton.d.ts +3 -0
  81. package/dist/components/SidebarV2/SidebarV2MobileNavigation/hooks.d.ts +6 -0
  82. package/dist/components/SidebarV2/SidebarV2MobileNavigation/index.d.ts +3 -0
  83. package/dist/components/SidebarV2/SidebarV2MobileNavigation/mobile.dark.tokens.d.ts +3 -0
  84. package/dist/components/SidebarV2/SidebarV2MobileNavigation/mobile.light.tokens.d.ts +3 -0
  85. package/dist/components/SidebarV2/SidebarV2MobileNavigation/mobile.tokens.d.ts +87 -0
  86. package/dist/components/SidebarV2/SidebarV2MobileNavigation/types.d.ts +28 -0
  87. package/dist/components/SidebarV2/SidebarV2MobileNavigation/utils.d.ts +25 -0
  88. package/dist/components/SidebarV2/SidebarV2Panel.d.ts +34 -0
  89. package/dist/components/SidebarV2/index.d.ts +5 -0
  90. package/dist/components/SidebarV2/sidebarV2.dark.tokens.d.ts +3 -0
  91. package/dist/components/SidebarV2/sidebarV2.light.tokens.d.ts +3 -0
  92. package/dist/components/SidebarV2/sidebarV2.tokens.d.ts +106 -0
  93. package/dist/components/SidebarV2/sidebarV2.types.d.ts +1 -0
  94. package/dist/components/SidebarV2/types.d.ts +51 -0
  95. package/dist/components/SidebarV2/utils.d.ts +8 -0
  96. package/dist/components/StepperV2/Stepper/StepStatusCircle.d.ts +11 -0
  97. package/dist/components/StepperV2/Stepper/StepperComponent.d.ts +9 -0
  98. package/dist/components/StepperV2/Stepper/Steps.d.ts +7 -0
  99. package/dist/components/StepperV2/Stepper/StepsHorizontalBody.d.ts +15 -0
  100. package/dist/components/StepperV2/Stepper/StepsSubstepList.d.ts +18 -0
  101. package/dist/components/StepperV2/Stepper/StepsVerticalSubstepRails.d.ts +12 -0
  102. package/dist/components/StepperV2/Stepper/VerticalLineV2.d.ts +5 -0
  103. package/dist/components/StepperV2/Stepper/stepsHelpers.d.ts +10 -0
  104. package/dist/components/StepperV2/StepperV2.d.ts +9 -0
  105. package/dist/components/StepperV2/index.d.ts +4 -0
  106. package/dist/components/StepperV2/stepperV2.dark.tokens.d.ts +3 -0
  107. package/dist/components/StepperV2/stepperV2.light.tokens.d.ts +3 -0
  108. package/dist/components/StepperV2/stepperV2.tokens.d.ts +99 -0
  109. package/dist/components/StepperV2/stepperV2.types.d.ts +61 -0
  110. package/dist/components/StepperV2/utils.d.ts +4 -0
  111. package/dist/components/Tabs/tabs.token.d.ts +1 -1
  112. package/dist/components/Tabs/types.d.ts +1 -0
  113. package/dist/components/TabsV2/tabsV2.types.d.ts +1 -0
  114. package/dist/components/TagV2/TagV2.d.ts +1 -1
  115. package/dist/components/TopbarV2/TopbarV2.d.ts +3 -0
  116. package/dist/components/TopbarV2/index.d.ts +3 -0
  117. package/dist/components/TopbarV2/topbarV2.dark.tokens.d.ts +3 -0
  118. package/dist/components/TopbarV2/topbarV2.light.tokens.d.ts +3 -0
  119. package/dist/components/TopbarV2/topbarV2.tokens.d.ts +83 -0
  120. package/dist/components/TopbarV2/types.d.ts +50 -0
  121. package/dist/components/common/TruncatedTextWithTooltipV2/TruncatedTextWithTooltipV2.d.ts +2 -0
  122. package/dist/components/common/TruncatedTextWithTooltipV2/index.d.ts +2 -0
  123. package/dist/components/common/TruncatedTextWithTooltipV2/types.d.ts +16 -0
  124. package/dist/components/common/TruncatedTextWithTooltipV2/utils.d.ts +1 -0
  125. package/dist/components/common/index.d.ts +1 -0
  126. package/dist/context/ThemeContext.d.ts +22 -0
  127. package/dist/context/useComponentToken.d.ts +12 -1
  128. package/dist/hooks/index.d.ts +1 -0
  129. package/dist/hooks/useResizeObserver.d.ts +1 -1
  130. package/dist/hooks/useSectionScroll.d.ts +24 -0
  131. package/dist/hooks/useTruncationDetection.d.ts +1 -1
  132. package/dist/main.d.ts +107 -33
  133. package/dist/main.js +118076 -108882
  134. package/dist/node-CRWdZOVN.js +14736 -0
  135. package/dist/node.d.ts +35 -0
  136. package/dist/node.js +31 -0
  137. package/dist/style.css +1 -0
  138. package/dist/token-engine-server.d.ts +9 -0
  139. package/dist/token-engine.d.ts +10 -0
  140. package/dist/tokens/unit.tokens.d.ts +3 -0
  141. package/dist/tokens-server.d.ts +2 -0
  142. package/dist/tokens-server.js +779 -0
  143. package/dist/tokens.d.ts +2 -0
  144. package/dist/tokens.js +233 -0
  145. package/lib/breakpoints/breakPoints.ts +8 -0
  146. package/lib/components/Accordion/Accordion.tsx +109 -0
  147. package/lib/components/Accordion/AccordionItem.tsx +612 -0
  148. package/lib/components/Accordion/accessibility/AccordionAccessibility.tsx +547 -0
  149. package/lib/components/Accordion/accessibility/AccordionAccessibilityReport.ts +373 -0
  150. package/lib/components/Accordion/accessibility/index.ts +2 -0
  151. package/lib/components/Accordion/accordion.tokens.ts +299 -0
  152. package/lib/components/Accordion/index.ts +4 -0
  153. package/lib/components/Accordion/types.ts +43 -0
  154. package/lib/components/AccordionV2/AccordionV2.tsx +129 -0
  155. package/lib/components/AccordionV2/AccordionV2Chevron.tsx +67 -0
  156. package/lib/components/AccordionV2/AccordionV2Item.tsx +288 -0
  157. package/lib/components/AccordionV2/AccordionV2TriggerContent.tsx +227 -0
  158. package/lib/components/AccordionV2/accordionV2.animations.ts +26 -0
  159. package/lib/components/AccordionV2/accordionV2.dark.tokens.ts +208 -0
  160. package/lib/components/AccordionV2/accordionV2.light.tokens.ts +208 -0
  161. package/lib/components/AccordionV2/accordionV2.tokens.ts +89 -0
  162. package/lib/components/AccordionV2/accordionV2.types.ts +39 -0
  163. package/lib/components/AccordionV2/index.ts +4 -0
  164. package/lib/components/Alert/Alert.tsx +383 -0
  165. package/lib/components/Alert/accessibility/AlertAccessibility.tsx +425 -0
  166. package/lib/components/Alert/accessibility/AlertAccessibilityReport.ts +549 -0
  167. package/lib/components/Alert/accessibility/index.ts +2 -0
  168. package/lib/components/Alert/alert.tokens.ts +385 -0
  169. package/lib/components/Alert/index.ts +3 -0
  170. package/lib/components/Alert/types.ts +41 -0
  171. package/lib/components/AlertV2/AlertV2.tsx +366 -0
  172. package/lib/components/AlertV2/alertV2.dark.tokens.ts +335 -0
  173. package/lib/components/AlertV2/alertV2.light.tokens.ts +335 -0
  174. package/lib/components/AlertV2/alertV2.tokens.ts +94 -0
  175. package/lib/components/AlertV2/alertV2.types.ts +63 -0
  176. package/lib/components/AlertV2/index.ts +3 -0
  177. package/lib/components/Avatar/Avatar.tsx +385 -0
  178. package/lib/components/Avatar/StyledAvatar.tsx +8 -0
  179. package/lib/components/Avatar/accessibility/AvatarAccessibility.tsx +784 -0
  180. package/lib/components/Avatar/accessibility/AvatarAccessibilityReport.ts +512 -0
  181. package/lib/components/Avatar/accessibility/index.ts +2 -0
  182. package/lib/components/Avatar/avatar.tokens.ts +450 -0
  183. package/lib/components/Avatar/avatarUtils.ts +102 -0
  184. package/lib/components/Avatar/index.ts +3 -0
  185. package/lib/components/Avatar/types.ts +46 -0
  186. package/lib/components/AvatarGroup/AvatarGroup.tsx +178 -0
  187. package/lib/components/AvatarGroup/StyledAvatarGroup.tsx +122 -0
  188. package/lib/components/AvatarGroup/accessibility/AvatarGroupAccessibility.tsx +517 -0
  189. package/lib/components/AvatarGroup/accessibility/AvatarGroupAccessibilityReport.ts +416 -0
  190. package/lib/components/AvatarGroup/accessibility/index.ts +2 -0
  191. package/lib/components/AvatarGroup/avatarGroup.tokens.ts +233 -0
  192. package/lib/components/AvatarGroup/avatarGroupUtils.tsx +68 -0
  193. package/lib/components/AvatarGroup/index.ts +3 -0
  194. package/lib/components/AvatarGroup/types.ts +39 -0
  195. package/lib/components/AvatarV2/AvatarV2.tsx +361 -0
  196. package/lib/components/AvatarV2/avatarV2.dark.tokens.ts +333 -0
  197. package/lib/components/AvatarV2/avatarV2.light.tokens.ts +333 -0
  198. package/lib/components/AvatarV2/avatarV2.tokens.ts +93 -0
  199. package/lib/components/AvatarV2/avatarV2.types.ts +96 -0
  200. package/lib/components/AvatarV2/avatarV2.utils.ts +223 -0
  201. package/lib/components/AvatarV2/index.ts +15 -0
  202. package/lib/components/Badge/Badge.tsx +169 -0
  203. package/lib/components/Badge/Badge.types.ts +47 -0
  204. package/lib/components/Badge/badge.dark.tokens.ts +149 -0
  205. package/lib/components/Badge/badge.light.tokens.ts +149 -0
  206. package/lib/components/Badge/badge.tokens.ts +71 -0
  207. package/lib/components/Badge/badge.utils.ts +113 -0
  208. package/lib/components/Badge/index.ts +2 -0
  209. package/lib/components/Breadcrumb/Breadcrumb.tsx +229 -0
  210. package/lib/components/Breadcrumb/BreadcrumbSkeleton.tsx +37 -0
  211. package/lib/components/Breadcrumb/accessibility/BreadcrumbAccessibility.tsx +629 -0
  212. package/lib/components/Breadcrumb/accessibility/BreadcrumbAccessibilityReport.ts +552 -0
  213. package/lib/components/Breadcrumb/accessibility/index.ts +6 -0
  214. package/lib/components/Breadcrumb/breadcrumb.tokens.ts +104 -0
  215. package/lib/components/Breadcrumb/index.ts +3 -0
  216. package/lib/components/Breadcrumb/types.ts +20 -0
  217. package/lib/components/BreadcrumbV2/BreadcrumbV2.tsx +93 -0
  218. package/lib/components/BreadcrumbV2/BreadcrumbV2Icon.tsx +18 -0
  219. package/lib/components/BreadcrumbV2/BreadcrumbV2Item.tsx +67 -0
  220. package/lib/components/BreadcrumbV2/BreadcrumbV2List.tsx +102 -0
  221. package/lib/components/BreadcrumbV2/BreadcrumbV2OverflowMenu.tsx +106 -0
  222. package/lib/components/BreadcrumbV2/BreadcrumbV2Page.tsx +27 -0
  223. package/lib/components/BreadcrumbV2/BreadcrumbV2Separator.tsx +24 -0
  224. package/lib/components/BreadcrumbV2/breadcrumbV2.dark.tokens.ts +61 -0
  225. package/lib/components/BreadcrumbV2/breadcrumbV2.light.tokens.ts +61 -0
  226. package/lib/components/BreadcrumbV2/breadcrumbV2.tokens.ts +47 -0
  227. package/lib/components/BreadcrumbV2/breadcrumbV2.types.ts +53 -0
  228. package/lib/components/BreadcrumbV2/index.ts +3 -0
  229. package/lib/components/BreadcrumbV2/utils.ts +196 -0
  230. package/lib/components/Button/ACCESSIBILITY_REPORT.md +740 -0
  231. package/lib/components/Button/Button.tsx +109 -0
  232. package/lib/components/Button/ButtonBase.tsx +329 -0
  233. package/lib/components/Button/accessibility/ButtonAccessibility.tsx +1043 -0
  234. package/lib/components/Button/accessibility/ButtonAccessibilityReport.ts +578 -0
  235. package/lib/components/Button/accessibility/index.ts +7 -0
  236. package/lib/components/Button/button.tokens.ts +1846 -0
  237. package/lib/components/Button/index.ts +3 -0
  238. package/lib/components/Button/types.ts +48 -0
  239. package/lib/components/ButtonGroup/ButtonGroup.tsx +53 -0
  240. package/lib/components/ButtonGroup/accessibility/ButtonGroupAccessibility.tsx +483 -0
  241. package/lib/components/ButtonGroup/accessibility/ButtonGroupAccessibilityReport.ts +159 -0
  242. package/lib/components/ButtonGroup/accessibility/index.ts +7 -0
  243. package/lib/components/ButtonGroup/index.ts +2 -0
  244. package/lib/components/ButtonGroup/types.ts +7 -0
  245. package/lib/components/ButtonV2/ButtonGroupV2/ButtonGroupV2.tsx +32 -0
  246. package/lib/components/ButtonV2/ButtonGroupV2/buttonGroupV2.types.ts +15 -0
  247. package/lib/components/ButtonV2/ButtonGroupV2/index.ts +6 -0
  248. package/lib/components/ButtonV2/ButtonGroupV2/utils.ts +19 -0
  249. package/lib/components/ButtonV2/ButtonV2.tsx +335 -0
  250. package/lib/components/ButtonV2/IconButton.tsx +38 -0
  251. package/lib/components/ButtonV2/LinkButton.tsx +179 -0
  252. package/lib/components/ButtonV2/VisuallyHidden.tsx +13 -0
  253. package/lib/components/ButtonV2/buttonV2.dark.tokens.ts +1407 -0
  254. package/lib/components/ButtonV2/buttonV2.light.tokens.ts +1493 -0
  255. package/lib/components/ButtonV2/buttonV2.tokens.ts +87 -0
  256. package/lib/components/ButtonV2/buttonV2.types.ts +86 -0
  257. package/lib/components/ButtonV2/index.ts +8 -0
  258. package/lib/components/ButtonV2/utils.ts +348 -0
  259. package/lib/components/Card/Card.tsx +141 -0
  260. package/lib/components/Card/CardComponents.tsx +627 -0
  261. package/lib/components/Card/CardSkeleton.tsx +27 -0
  262. package/lib/components/Card/accessibility/CardAccessibility.tsx +912 -0
  263. package/lib/components/Card/accessibility/CardAccessibilityReport.ts +351 -0
  264. package/lib/components/Card/card.tokens.ts +360 -0
  265. package/lib/components/Card/index.ts +3 -0
  266. package/lib/components/Card/types.ts +74 -0
  267. package/lib/components/Card/utils.ts +217 -0
  268. package/lib/components/Charts/BlendChart.tsx +167 -0
  269. package/lib/components/Charts/BlendChart.types.ts +39 -0
  270. package/lib/components/Charts/BlendChartContainer.tsx +23 -0
  271. package/lib/components/Charts/BlendChartHeader.tsx +26 -0
  272. package/lib/components/Charts/ChartContainer.tsx +30 -0
  273. package/lib/components/Charts/ChartHeader.tsx +190 -0
  274. package/lib/components/Charts/ChartLegend.tsx +756 -0
  275. package/lib/components/Charts/ChartUtils.tsx +530 -0
  276. package/lib/components/Charts/Charts.tsx +1002 -0
  277. package/lib/components/Charts/ChartsSkeleton.tsx +31 -0
  278. package/lib/components/Charts/CoreChart.tsx +73 -0
  279. package/lib/components/Charts/CustomTooltip.tsx +876 -0
  280. package/lib/components/Charts/DateTimeFormatter.ts +769 -0
  281. package/lib/components/Charts/SankeyChartWrapper.tsx +345 -0
  282. package/lib/components/Charts/SankeyLink.tsx +95 -0
  283. package/lib/components/Charts/SankeyNode.tsx +113 -0
  284. package/lib/components/Charts/accessibility/ChartsAccessibility.tsx +827 -0
  285. package/lib/components/Charts/accessibility/ChartsAccessibilityReport.ts +370 -0
  286. package/lib/components/Charts/chart.tokens.ts +144 -0
  287. package/lib/components/Charts/index.ts +15 -0
  288. package/lib/components/Charts/renderChart.tsx +1385 -0
  289. package/lib/components/Charts/types.tsx +309 -0
  290. package/lib/components/Charts/utils.tsx +60 -0
  291. package/lib/components/ChartsV2/ChartContainerV2.tsx +30 -0
  292. package/lib/components/ChartsV2/ChartHeaderV2.tsx +27 -0
  293. package/lib/components/ChartsV2/ChartV2.tsx +94 -0
  294. package/lib/components/ChartsV2/ChartV2Fullscreen.tsx +157 -0
  295. package/lib/components/ChartsV2/ChartV2Legend.tsx +174 -0
  296. package/lib/components/ChartsV2/ChartV2NoData.tsx +48 -0
  297. package/lib/components/ChartsV2/ChartV2Skeleton.tsx +37 -0
  298. package/lib/components/ChartsV2/chartV2.dark.tokens.ts +200 -0
  299. package/lib/components/ChartsV2/chartV2.light.tokens.ts +197 -0
  300. package/lib/components/ChartsV2/chartV2.sankey.ts +13 -0
  301. package/lib/components/ChartsV2/chartV2.tokens.ts +117 -0
  302. package/lib/components/ChartsV2/chartV2.types.ts +84 -0
  303. package/lib/components/ChartsV2/chartV2Options.ts +119 -0
  304. package/lib/components/ChartsV2/index.ts +9 -0
  305. package/lib/components/ChartsV2/useChartLegend.ts +25 -0
  306. package/lib/components/ChartsV2/useChartLegendHover.ts +116 -0
  307. package/lib/components/ChartsV2/useChartRefs.ts +29 -0
  308. package/lib/components/ChartsV2/utils.ts +92 -0
  309. package/lib/components/ChatInput/AttachmentFile.tsx +266 -0
  310. package/lib/components/ChatInput/ChatInput.tsx +577 -0
  311. package/lib/components/ChatInput/MobileChatInput.tsx +240 -0
  312. package/lib/components/ChatInput/accessibility/ChatInputAccessibility.tsx +597 -0
  313. package/lib/components/ChatInput/accessibility/ChatInputAccessibilityReport.ts +314 -0
  314. package/lib/components/ChatInput/accessibility/index.ts +7 -0
  315. package/lib/components/ChatInput/chatInput.tokens.ts +575 -0
  316. package/lib/components/ChatInput/index.tsx +3 -0
  317. package/lib/components/ChatInput/types.ts +121 -0
  318. package/lib/components/ChatInput/utils.ts +151 -0
  319. package/lib/components/Checkbox/Checkbox.tsx +308 -0
  320. package/lib/components/Checkbox/StyledCheckbox.tsx +100 -0
  321. package/lib/components/Checkbox/accessibility/CheckboxAccessibility.tsx +1080 -0
  322. package/lib/components/Checkbox/accessibility/CheckboxAccessibilityReport.ts +580 -0
  323. package/lib/components/Checkbox/accessibility/index.ts +6 -0
  324. package/lib/components/Checkbox/checkbox.animations.ts +85 -0
  325. package/lib/components/Checkbox/checkbox.token.ts +366 -0
  326. package/lib/components/Checkbox/checkboxUtils.ts +144 -0
  327. package/lib/components/Checkbox/index.ts +2 -0
  328. package/lib/components/Checkbox/types.ts +39 -0
  329. package/lib/components/CodeBlock/CodeBlock.tsx +358 -0
  330. package/lib/components/CodeBlock/CodeBlockDiffView/CodeBlockDiffView.tsx +488 -0
  331. package/lib/components/CodeBlock/CodeBlockDiffView/types.ts +18 -0
  332. package/lib/components/CodeBlock/CodeBlockDiffView/utils.ts +26 -0
  333. package/lib/components/CodeBlock/CodeBlockLineParts.tsx +300 -0
  334. package/lib/components/CodeBlock/accessibility/CodeBlockAccessibility.tsx +697 -0
  335. package/lib/components/CodeBlock/accessibility/CodeBlockAccessibilityReport.ts +350 -0
  336. package/lib/components/CodeBlock/codeBlock.token.ts +322 -0
  337. package/lib/components/CodeBlock/index.ts +2 -0
  338. package/lib/components/CodeBlock/types.ts +72 -0
  339. package/lib/components/CodeBlock/utils.ts +712 -0
  340. package/lib/components/CodeEditor/CodeEditor.tsx +101 -0
  341. package/lib/components/CodeEditor/CodeEditorHeader.tsx +125 -0
  342. package/lib/components/CodeEditor/MonacoEditorWrapper.tsx +621 -0
  343. package/lib/components/CodeEditor/index.ts +2 -0
  344. package/lib/components/CodeEditor/monaco-editor.css +1 -0
  345. package/lib/components/CodeEditor/types.ts +49 -0
  346. package/lib/components/CodeEditor/utils.ts +27 -0
  347. package/lib/components/CodeEditorV2/CodeEditorV2.tsx +156 -0
  348. package/lib/components/CodeEditorV2/CodeEditorV2Header.tsx +123 -0
  349. package/lib/components/CodeEditorV2/MonacoEditor/MonacoEditorWrapper.tsx +395 -0
  350. package/lib/components/CodeEditorV2/MonacoEditor/monaco-editor.css +1 -0
  351. package/lib/components/CodeEditorV2/MonacoEditor/monacoTheme.ts +133 -0
  352. package/lib/components/CodeEditorV2/codeEditorV2.dark.tokens.ts +168 -0
  353. package/lib/components/CodeEditorV2/codeEditorV2.light.token.ts +170 -0
  354. package/lib/components/CodeEditorV2/codeEditorV2.tokens.ts +99 -0
  355. package/lib/components/CodeEditorV2/codeEditorV2.types.ts +132 -0
  356. package/lib/components/CodeEditorV2/index.ts +3 -0
  357. package/lib/components/CodeEditorV2/utils.ts +504 -0
  358. package/lib/components/DataTable/ColumnFilter/index.tsx +284 -0
  359. package/lib/components/DataTable/ColumnManager.tsx +322 -0
  360. package/lib/components/DataTable/DataTable.tsx +2052 -0
  361. package/lib/components/DataTable/DataTableHeader/index.tsx +775 -0
  362. package/lib/components/DataTable/DataTableHeader/types.ts +31 -0
  363. package/lib/components/DataTable/DataTablePagination.tsx +602 -0
  364. package/lib/components/DataTable/MobileColumnDrawer/index.tsx +407 -0
  365. package/lib/components/DataTable/MobileColumnManagerDrawer/index.tsx +164 -0
  366. package/lib/components/DataTable/TableBody/BulkActionBar.tsx +309 -0
  367. package/lib/components/DataTable/TableBody/index.tsx +1619 -0
  368. package/lib/components/DataTable/TableBody/types.ts +57 -0
  369. package/lib/components/DataTable/TableCell/index.tsx +590 -0
  370. package/lib/components/DataTable/TableCell/types.ts +24 -0
  371. package/lib/components/DataTable/TableFooter/index.tsx +63 -0
  372. package/lib/components/DataTable/TableFooter/types.ts +15 -0
  373. package/lib/components/DataTable/TableHeader/DraggableColumnHeader.tsx +71 -0
  374. package/lib/components/DataTable/TableHeader/FilterComponents.tsx +1549 -0
  375. package/lib/components/DataTable/TableHeader/MobileFilterDrawer.tsx +772 -0
  376. package/lib/components/DataTable/TableHeader/handlers.ts +232 -0
  377. package/lib/components/DataTable/TableHeader/index.tsx +2143 -0
  378. package/lib/components/DataTable/TableHeader/types.ts +84 -0
  379. package/lib/components/DataTable/TableHeader/utils.ts +302 -0
  380. package/lib/components/DataTable/accessibility/DataTableAccessibility.tsx +579 -0
  381. package/lib/components/DataTable/accessibility/DataTableAccessibilityReport.ts +250 -0
  382. package/lib/components/DataTable/accessibility/index.ts +7 -0
  383. package/lib/components/DataTable/columnTypes.ts +359 -0
  384. package/lib/components/DataTable/dataTable.tokens.ts +802 -0
  385. package/lib/components/DataTable/hooks/index.ts +2 -0
  386. package/lib/components/DataTable/hooks/useMobileDataTable.ts +35 -0
  387. package/lib/components/DataTable/index.ts +23 -0
  388. package/lib/components/DataTable/types.ts +447 -0
  389. package/lib/components/DataTable/utils.ts +1358 -0
  390. package/lib/components/DateRangePicker/CalendarGrid.tsx +1012 -0
  391. package/lib/components/DateRangePicker/DateRangePicker.tsx +1278 -0
  392. package/lib/components/DateRangePicker/MobileDrawerPresets.tsx +174 -0
  393. package/lib/components/DateRangePicker/QuickRangeSelector.tsx +241 -0
  394. package/lib/components/DateRangePicker/TimeSelector.tsx +446 -0
  395. package/lib/components/DateRangePicker/accessibility/DateRangePickerAccessibility.tsx +488 -0
  396. package/lib/components/DateRangePicker/accessibility/DateRangePickerAccessibilityReport.ts +547 -0
  397. package/lib/components/DateRangePicker/accessibility/index.ts +4 -0
  398. package/lib/components/DateRangePicker/components/ActionButtons.tsx +76 -0
  399. package/lib/components/DateRangePicker/components/DatePickerComponent.tsx +291 -0
  400. package/lib/components/DateRangePicker/components/PresetItem.tsx +139 -0
  401. package/lib/components/DateRangePicker/components/ScrollablePicker.tsx +618 -0
  402. package/lib/components/DateRangePicker/components/mobile.tokens.ts +167 -0
  403. package/lib/components/DateRangePicker/constants.ts +42 -0
  404. package/lib/components/DateRangePicker/dateRangePicker.tokens.ts +492 -0
  405. package/lib/components/DateRangePicker/index.ts +4 -0
  406. package/lib/components/DateRangePicker/types.ts +420 -0
  407. package/lib/components/DateRangePicker/utils.ts +4391 -0
  408. package/lib/components/Directory/Directory.tsx +75 -0
  409. package/lib/components/Directory/NavItem.tsx +517 -0
  410. package/lib/components/Directory/Section.tsx +270 -0
  411. package/lib/components/Directory/directory.tokens.ts +283 -0
  412. package/lib/components/Directory/index.ts +3 -0
  413. package/lib/components/Directory/types.ts +52 -0
  414. package/lib/components/Directory/utils.ts +77 -0
  415. package/lib/components/Drawer/Drawer.tsx +31 -0
  416. package/lib/components/Drawer/accessibility/DrawerAccessibility.tsx +749 -0
  417. package/lib/components/Drawer/accessibility/DrawerAccessibilityReport.ts +394 -0
  418. package/lib/components/Drawer/components/Drawer.css +21 -0
  419. package/lib/components/Drawer/components/DrawerBase.tsx +738 -0
  420. package/lib/components/Drawer/components/NestedSelectDrawer.tsx +843 -0
  421. package/lib/components/Drawer/components/SelectDrawer.tsx +701 -0
  422. package/lib/components/Drawer/components/StatusDrawer.tsx +127 -0
  423. package/lib/components/Drawer/drawer.tokens.ts +141 -0
  424. package/lib/components/Drawer/index.ts +20 -0
  425. package/lib/components/Drawer/types.ts +424 -0
  426. package/lib/components/DrawerV2/DrawerV2.tsx +131 -0
  427. package/lib/components/DrawerV2/index.ts +16 -0
  428. package/lib/components/DrawerV2/types.ts +58 -0
  429. package/lib/components/GradientBlur/GradientBlur.css +107 -0
  430. package/lib/components/GradientBlur/GradientBlur.tsx +16 -0
  431. package/lib/components/Inputs/AutofillStyles/AutofillStyles.ts +23 -0
  432. package/lib/components/Inputs/DropdownInput/DropdownInput.tsx +419 -0
  433. package/lib/components/Inputs/DropdownInput/accessibility/DropdownInputAccessibility.tsx +674 -0
  434. package/lib/components/Inputs/DropdownInput/accessibility/DropdownInputAccessibilityReport.ts +444 -0
  435. package/lib/components/Inputs/DropdownInput/dropdownInput.tokens.ts +304 -0
  436. package/lib/components/Inputs/DropdownInput/index.ts +3 -0
  437. package/lib/components/Inputs/DropdownInput/types.ts +51 -0
  438. package/lib/components/Inputs/MultiValueInput/MultiValueInput.tsx +324 -0
  439. package/lib/components/Inputs/MultiValueInput/accessibility/MultiValueInputAccessibility.tsx +501 -0
  440. package/lib/components/Inputs/MultiValueInput/accessibility/MultiValueInputAccessibilityReport.ts +479 -0
  441. package/lib/components/Inputs/MultiValueInput/index.ts +3 -0
  442. package/lib/components/Inputs/MultiValueInput/multiValueInput.tokens.ts +302 -0
  443. package/lib/components/Inputs/MultiValueInput/types.ts +38 -0
  444. package/lib/components/Inputs/NumberInput/NumberInput.tsx +623 -0
  445. package/lib/components/Inputs/NumberInput/accessibility/NumberInputAccessibility.tsx +581 -0
  446. package/lib/components/Inputs/NumberInput/accessibility/NumberInputAccessibilityReport.ts +333 -0
  447. package/lib/components/Inputs/NumberInput/index.ts +3 -0
  448. package/lib/components/Inputs/NumberInput/numberInput.tokens.ts +382 -0
  449. package/lib/components/Inputs/NumberInput/types.ts +23 -0
  450. package/lib/components/Inputs/NumberInput/utils.ts +329 -0
  451. package/lib/components/Inputs/OTPInput/OTPInput.tsx +355 -0
  452. package/lib/components/Inputs/OTPInput/accessibility/OTPInputAccessibility.tsx +456 -0
  453. package/lib/components/Inputs/OTPInput/accessibility/OTPInputAccessibilityReport.ts +466 -0
  454. package/lib/components/Inputs/OTPInput/index.ts +3 -0
  455. package/lib/components/Inputs/OTPInput/otpInput.tokens.ts +255 -0
  456. package/lib/components/Inputs/OTPInput/types.ts +17 -0
  457. package/lib/components/Inputs/SearchInput/SearchInput.tsx +299 -0
  458. package/lib/components/Inputs/SearchInput/accessibility/SearchInputAccessibility.tsx +644 -0
  459. package/lib/components/Inputs/SearchInput/accessibility/SearchInputAccessibilityReport.ts +428 -0
  460. package/lib/components/Inputs/SearchInput/index.ts +3 -0
  461. package/lib/components/Inputs/SearchInput/searchInput.tokens.ts +238 -0
  462. package/lib/components/Inputs/SearchInput/types.ts +13 -0
  463. package/lib/components/Inputs/TextArea/TextArea.tsx +227 -0
  464. package/lib/components/Inputs/TextArea/accessibility/TextAreaAccessibility.tsx +466 -0
  465. package/lib/components/Inputs/TextArea/accessibility/TextAreaAccessibilityReport.ts +476 -0
  466. package/lib/components/Inputs/TextArea/index.ts +2 -0
  467. package/lib/components/Inputs/TextArea/textarea.token.ts +264 -0
  468. package/lib/components/Inputs/TextArea/types.ts +26 -0
  469. package/lib/components/Inputs/TextInput/TextInput.tsx +448 -0
  470. package/lib/components/Inputs/TextInput/accessibility/TextInputAccessibility.tsx +598 -0
  471. package/lib/components/Inputs/TextInput/accessibility/TextInputAccessibilityReport.ts +576 -0
  472. package/lib/components/Inputs/TextInput/index.ts +3 -0
  473. package/lib/components/Inputs/TextInput/textInput.tokens.ts +305 -0
  474. package/lib/components/Inputs/TextInput/types.ts +41 -0
  475. package/lib/components/Inputs/TextInput/utils.ts +43 -0
  476. package/lib/components/Inputs/UnitInput/UnitInput.tsx +379 -0
  477. package/lib/components/Inputs/UnitInput/accessibility/UnitInputAccessibility.tsx +587 -0
  478. package/lib/components/Inputs/UnitInput/accessibility/UnitInputAccessibilityReport.ts +322 -0
  479. package/lib/components/Inputs/UnitInput/index.ts +3 -0
  480. package/lib/components/Inputs/UnitInput/types.ts +33 -0
  481. package/lib/components/Inputs/UnitInput/unitInput.tokens.ts +380 -0
  482. package/lib/components/Inputs/index.ts +8 -0
  483. package/lib/components/Inputs/utils/FloatingLabels/FloatingLabels.tsx +47 -0
  484. package/lib/components/Inputs/utils/InputFooter/InputFooter.tsx +92 -0
  485. package/lib/components/Inputs/utils/InputLabels/InputLabels.tsx +133 -0
  486. package/lib/components/InputsV2/ChatInputV2/AttachmentDropdown.tsx +64 -0
  487. package/lib/components/InputsV2/ChatInputV2/ChatInputTagV2.tsx +93 -0
  488. package/lib/components/InputsV2/ChatInputV2/ChatInputV2.dark.tokens.ts +339 -0
  489. package/lib/components/InputsV2/ChatInputV2/ChatInputV2.light.tokens.ts +317 -0
  490. package/lib/components/InputsV2/ChatInputV2/ChatInputV2.tokens.ts +133 -0
  491. package/lib/components/InputsV2/ChatInputV2/ChatInputV2.tsx +466 -0
  492. package/lib/components/InputsV2/ChatInputV2/ChatInputV2.types.ts +61 -0
  493. package/lib/components/InputsV2/ChatInputV2/ChatInputV2AttachmentRow.tsx +260 -0
  494. package/lib/components/InputsV2/ChatInputV2/ChatInputV2Mobile.dark.tokens.ts +87 -0
  495. package/lib/components/InputsV2/ChatInputV2/ChatInputV2Mobile.light.tokens.ts +79 -0
  496. package/lib/components/InputsV2/ChatInputV2/ChatInputV2Mobile.tokens.ts +63 -0
  497. package/lib/components/InputsV2/ChatInputV2/MobileChatInputV2.tsx +346 -0
  498. package/lib/components/InputsV2/ChatInputV2/index.ts +4 -0
  499. package/lib/components/InputsV2/ChatInputV2/utils.ts +263 -0
  500. package/lib/components/InputsV2/MultiValueInputV2/MultiValueInputV2.dark.tokens.ts +409 -0
  501. package/lib/components/InputsV2/MultiValueInputV2/MultiValueInputV2.light.tokens.ts +409 -0
  502. package/lib/components/InputsV2/MultiValueInputV2/MultiValueInputV2.tokens.ts +82 -0
  503. package/lib/components/InputsV2/MultiValueInputV2/MultiValueInputV2.tsx +382 -0
  504. package/lib/components/InputsV2/MultiValueInputV2/MultiValueV2.types.ts +30 -0
  505. package/lib/components/InputsV2/MultiValueInputV2/index.ts +3 -0
  506. package/lib/components/InputsV2/NumberInputV2/NumberInputV2.dark.tokens.ts +404 -0
  507. package/lib/components/InputsV2/NumberInputV2/NumberInputV2.light.tokens.ts +532 -0
  508. package/lib/components/InputsV2/NumberInputV2/NumberInputV2.tsx +698 -0
  509. package/lib/components/InputsV2/NumberInputV2/NumberInputV2Stepper.tsx +135 -0
  510. package/lib/components/InputsV2/NumberInputV2/NumberInputV2Unit.tsx +75 -0
  511. package/lib/components/InputsV2/NumberInputV2/StepperArrow.tsx +25 -0
  512. package/lib/components/InputsV2/NumberInputV2/index.ts +3 -0
  513. package/lib/components/InputsV2/NumberInputV2/numberInputV2.tokens.ts +133 -0
  514. package/lib/components/InputsV2/NumberInputV2/numberInputV2.types.ts +47 -0
  515. package/lib/components/InputsV2/NumberInputV2/utils.ts +411 -0
  516. package/lib/components/InputsV2/OTPInputV2/OTPInputV2.dark.tokens.ts +299 -0
  517. package/lib/components/InputsV2/OTPInputV2/OTPInputV2.light.tokens.ts +301 -0
  518. package/lib/components/InputsV2/OTPInputV2/OTPInputV2.tokens.ts +47 -0
  519. package/lib/components/InputsV2/OTPInputV2/OTPInputV2.tsx +327 -0
  520. package/lib/components/InputsV2/OTPInputV2/OTPInputV2.types.ts +16 -0
  521. package/lib/components/InputsV2/OTPInputV2/index.ts +3 -0
  522. package/lib/components/InputsV2/OTPInputV2/otpInputV2Utils.ts +177 -0
  523. package/lib/components/InputsV2/SearchInputV2/SearchInputV2.dark.tokens.ts +257 -0
  524. package/lib/components/InputsV2/SearchInputV2/SearchInputV2.light.tokens.ts +257 -0
  525. package/lib/components/InputsV2/SearchInputV2/SearchInputV2.tokens.ts +106 -0
  526. package/lib/components/InputsV2/SearchInputV2/SearchInputV2.tsx +282 -0
  527. package/lib/components/InputsV2/SearchInputV2/SearchInputV2.types.ts +16 -0
  528. package/lib/components/InputsV2/SearchInputV2/index.ts +3 -0
  529. package/lib/components/InputsV2/SearchInputV2/utils.ts +164 -0
  530. package/lib/components/InputsV2/TextAreaV2/TextAreaV2.dark.tokens.ts +398 -0
  531. package/lib/components/InputsV2/TextAreaV2/TextAreaV2.light.tokens.ts +397 -0
  532. package/lib/components/InputsV2/TextAreaV2/TextAreaV2.tokens.ts +76 -0
  533. package/lib/components/InputsV2/TextAreaV2/TextAreaV2.tsx +251 -0
  534. package/lib/components/InputsV2/TextAreaV2/TextAreaV2.types.ts +26 -0
  535. package/lib/components/InputsV2/TextAreaV2/index.tsx +3 -0
  536. package/lib/components/InputsV2/TextAreaV2/utils.ts +140 -0
  537. package/lib/components/InputsV2/TextInputV2/TextInputV2.dark.tokens.ts +429 -0
  538. package/lib/components/InputsV2/TextInputV2/TextInputV2.light.tokens.ts +423 -0
  539. package/lib/components/InputsV2/TextInputV2/TextInputV2.tokens.ts +149 -0
  540. package/lib/components/InputsV2/TextInputV2/TextInputV2.tsx +433 -0
  541. package/lib/components/InputsV2/TextInputV2/TextInputV2.types.ts +56 -0
  542. package/lib/components/InputsV2/TextInputV2/index.ts +3 -0
  543. package/lib/components/InputsV2/TextInputV2/utils.ts +81 -0
  544. package/lib/components/InputsV2/inputV2.tokens.ts +93 -0
  545. package/lib/components/InputsV2/inputV2.types.ts +19 -0
  546. package/lib/components/InputsV2/utils/FloatingLabelsV2/FloatingLabelsV2.tsx +96 -0
  547. package/lib/components/InputsV2/utils/InputFooter/InputFooterV2.tsx +70 -0
  548. package/lib/components/InputsV2/utils/InputLabels/InputLabelsV2.tsx +95 -0
  549. package/lib/components/InputsV2/utils/InputSlots/InputSlots.tsx +43 -0
  550. package/lib/components/InputsV2/utils/utils.ts +38 -0
  551. package/lib/components/KeyValuePair/KeyValuePair.tokens.ts +111 -0
  552. package/lib/components/KeyValuePair/KeyValuePair.tsx +248 -0
  553. package/lib/components/KeyValuePair/accessibility/KeyValuePairAccessibility.tsx +514 -0
  554. package/lib/components/KeyValuePair/accessibility/KeyValuePairAccessibilityReport.ts +317 -0
  555. package/lib/components/KeyValuePair/accessibility/index.ts +2 -0
  556. package/lib/components/KeyValuePair/index.ts +3 -0
  557. package/lib/components/KeyValuePair/types.ts +45 -0
  558. package/lib/components/KeyValuePair/utils.ts +113 -0
  559. package/lib/components/KeyValuePairV2/KeyValuePairLayout.tsx +89 -0
  560. package/lib/components/KeyValuePairV2/KeyValuePairV2.tsx +132 -0
  561. package/lib/components/KeyValuePairV2/ResponsiveText.tsx +117 -0
  562. package/lib/components/KeyValuePairV2/index.ts +3 -0
  563. package/lib/components/KeyValuePairV2/keyValuePairV2.dark.tokens.ts +59 -0
  564. package/lib/components/KeyValuePairV2/keyValuePairV2.light.tokens.ts +59 -0
  565. package/lib/components/KeyValuePairV2/keyValuePairV2.tokens.ts +42 -0
  566. package/lib/components/KeyValuePairV2/keyValuePairV2.types.ts +35 -0
  567. package/lib/components/KeyValuePairV2/responsiveTextStyles.ts +65 -0
  568. package/lib/components/KeyValuePairV2/utils.ts +51 -0
  569. package/lib/components/Menu/Menu.tsx +502 -0
  570. package/lib/components/Menu/MenuGroupLabel.tsx +10 -0
  571. package/lib/components/Menu/MenuItem.tsx +246 -0
  572. package/lib/components/Menu/MenuSkeleton.tsx +36 -0
  573. package/lib/components/Menu/SubMenu.tsx +420 -0
  574. package/lib/components/Menu/accessibility/MenuAccessibility.tsx +598 -0
  575. package/lib/components/Menu/accessibility/MenuAccessibilityReport.ts +484 -0
  576. package/lib/components/Menu/accessibility/index.ts +2 -0
  577. package/lib/components/Menu/index.ts +3 -0
  578. package/lib/components/Menu/menu.animations.ts +146 -0
  579. package/lib/components/Menu/menu.styles.ts +17 -0
  580. package/lib/components/Menu/menu.tokens.ts +617 -0
  581. package/lib/components/Menu/types.tsx +101 -0
  582. package/lib/components/Menu/utils.ts +44 -0
  583. package/lib/components/MenuV2/MenuV2.tsx +133 -0
  584. package/lib/components/MenuV2/MenuV2Content.tsx +442 -0
  585. package/lib/components/MenuV2/MenuV2Item.tsx +194 -0
  586. package/lib/components/MenuV2/MenuV2SubMenu.tsx +288 -0
  587. package/lib/components/MenuV2/index.ts +7 -0
  588. package/lib/components/MenuV2/menuV2.animations.ts +83 -0
  589. package/lib/components/MenuV2/menuV2.dark.tokens.ts +401 -0
  590. package/lib/components/MenuV2/menuV2.light.tokens.ts +401 -0
  591. package/lib/components/MenuV2/menuV2.tokens.ts +126 -0
  592. package/lib/components/MenuV2/menuV2.types.ts +99 -0
  593. package/lib/components/MenuV2/menuV2.utils.ts +156 -0
  594. package/lib/components/Modal/MobileModal.tsx +235 -0
  595. package/lib/components/Modal/Modal.tsx +400 -0
  596. package/lib/components/Modal/ModalSkeleton.tsx +110 -0
  597. package/lib/components/Modal/accessibility/ModalAccessibility.tsx +518 -0
  598. package/lib/components/Modal/accessibility/ModalAccessibilityReport.ts +350 -0
  599. package/lib/components/Modal/index.ts +3 -0
  600. package/lib/components/Modal/modal.animations.ts +19 -0
  601. package/lib/components/Modal/modal.tokens.ts +207 -0
  602. package/lib/components/Modal/modal.utils.ts +24 -0
  603. package/lib/components/Modal/types.ts +42 -0
  604. package/lib/components/Modal/useModal.ts +66 -0
  605. package/lib/components/MultiSelect/MobileMultiSelect.tsx +999 -0
  606. package/lib/components/MultiSelect/MultiSelect.tsx +822 -0
  607. package/lib/components/MultiSelect/MultiSelectMenu.tsx +903 -0
  608. package/lib/components/MultiSelect/MultiSelectMenuItem.tsx +79 -0
  609. package/lib/components/MultiSelect/MultiSelectSkeleton.tsx +37 -0
  610. package/lib/components/MultiSelect/MultiSelectSubMenu.tsx +142 -0
  611. package/lib/components/MultiSelect/MultiSelectTrigger.tsx +322 -0
  612. package/lib/components/MultiSelect/SelectAllItem.tsx +108 -0
  613. package/lib/components/MultiSelect/accessibility/MultiSelectAccessibility.tsx +751 -0
  614. package/lib/components/MultiSelect/accessibility/MultiSelectAccessibilityReport.ts +604 -0
  615. package/lib/components/MultiSelect/accessibility/index.ts +7 -0
  616. package/lib/components/MultiSelect/index.ts +4 -0
  617. package/lib/components/MultiSelect/multiSelect.animations.ts +135 -0
  618. package/lib/components/MultiSelect/multiSelect.tokens.ts +777 -0
  619. package/lib/components/MultiSelect/types.ts +228 -0
  620. package/lib/components/MultiSelect/utils.ts +217 -0
  621. package/lib/components/MultiSelectGroup/MultiSelectGroup.tsx +35 -0
  622. package/lib/components/MultiSelectGroup/MultiselectGroupProps.types.ts +8 -0
  623. package/lib/components/MultiSelectGroup/index.tsx +4 -0
  624. package/lib/components/MultiSelectV2/MobileMultiSelectV2.tsx +1 -0
  625. package/lib/components/MultiSelectV2/MultiSelectV2.tsx +449 -0
  626. package/lib/components/MultiSelectV2/MultiSelectV2Menu.tsx +477 -0
  627. package/lib/components/MultiSelectV2/MultiSelectV2MenuActions.tsx +87 -0
  628. package/lib/components/MultiSelectV2/MultiSelectV2MenuHeader.tsx +91 -0
  629. package/lib/components/MultiSelectV2/MultiSelectV2MenuItem.tsx +76 -0
  630. package/lib/components/MultiSelectV2/MultiSelectV2MenuItems.tsx +114 -0
  631. package/lib/components/MultiSelectV2/MultiSelectV2MenuSearch.tsx +42 -0
  632. package/lib/components/MultiSelectV2/MultiSelectV2MenuVirtualList.tsx +139 -0
  633. package/lib/components/MultiSelectV2/MultiSelectV2SelectAllItem.tsx +114 -0
  634. package/lib/components/MultiSelectV2/MultiSelectV2Skeleton.tsx +48 -0
  635. package/lib/components/MultiSelectV2/MultiSelectV2SubMenu.tsx +153 -0
  636. package/lib/components/MultiSelectV2/MultiSelectV2Trigger.tsx +365 -0
  637. package/lib/components/MultiSelectV2/index.ts +14 -0
  638. package/lib/components/MultiSelectV2/mobile/MobileMultiSelectV2.tsx +708 -0
  639. package/lib/components/MultiSelectV2/mobile/mobileMultiSelectV2.utils.ts +72 -0
  640. package/lib/components/MultiSelectV2/multiSelectV2.dark.tokens.ts +459 -0
  641. package/lib/components/MultiSelectV2/multiSelectV2.light.tokens.ts +461 -0
  642. package/lib/components/MultiSelectV2/multiSelectV2.tokens.ts +251 -0
  643. package/lib/components/MultiSelectV2/multiSelectV2.types.ts +173 -0
  644. package/lib/components/MultiSelectV2/utils.ts +243 -0
  645. package/lib/components/Popover/MobilePopover.tsx +226 -0
  646. package/lib/components/Popover/Popover.tsx +226 -0
  647. package/lib/components/Popover/PopoverFooter.tsx +58 -0
  648. package/lib/components/Popover/PopoverHeader.tsx +125 -0
  649. package/lib/components/Popover/PopoverSkeleton.tsx +92 -0
  650. package/lib/components/Popover/accessibility/PopoverAccessibility.tsx +550 -0
  651. package/lib/components/Popover/accessibility/PopoverAccessibilityReport.ts +353 -0
  652. package/lib/components/Popover/index.ts +3 -0
  653. package/lib/components/Popover/popover.animations.ts +125 -0
  654. package/lib/components/Popover/popover.tokens.ts +277 -0
  655. package/lib/components/Popover/types.ts +54 -0
  656. package/lib/components/PopoverV2/MobilePopoverV2.tsx +219 -0
  657. package/lib/components/PopoverV2/PopoverV2.tsx +231 -0
  658. package/lib/components/PopoverV2/PopoverV2Footer.tsx +55 -0
  659. package/lib/components/PopoverV2/PopoverV2Header.tsx +133 -0
  660. package/lib/components/PopoverV2/PopoverV2Skeleton.tsx +89 -0
  661. package/lib/components/PopoverV2/index.tsx +3 -0
  662. package/lib/components/PopoverV2/popoverV2.dark.tokens.tsx +228 -0
  663. package/lib/components/PopoverV2/popoverV2.light.tokens.tsx +228 -0
  664. package/lib/components/PopoverV2/popoverV2.token.ts +85 -0
  665. package/lib/components/PopoverV2/popoverV2.types.ts +70 -0
  666. package/lib/components/Primitives/Block/Block.tsx +460 -0
  667. package/lib/components/Primitives/Group/Group.tsx +93 -0
  668. package/lib/components/Primitives/Group/index.ts +3 -0
  669. package/lib/components/Primitives/Group/types.ts +99 -0
  670. package/lib/components/Primitives/Group/utils.ts +76 -0
  671. package/lib/components/Primitives/PrimitiveButton/PrimitiveButton.tsx +376 -0
  672. package/lib/components/Primitives/PrimitiveInput/PrimitiveInput.tsx +482 -0
  673. package/lib/components/Primitives/PrimitiveLink.tsx +238 -0
  674. package/lib/components/Primitives/PrimitiveText/PrimitiveText.tsx +203 -0
  675. package/lib/components/Primitives/PrimitiveTextArea.tsx +398 -0
  676. package/lib/components/ProgressBar/ProgressBar.tsx +300 -0
  677. package/lib/components/ProgressBar/accessibility/ProgressBarAccessibility.tsx +751 -0
  678. package/lib/components/ProgressBar/accessibility/ProgressBarAccessibilityReport.ts +517 -0
  679. package/lib/components/ProgressBar/index.ts +3 -0
  680. package/lib/components/ProgressBar/progressbar.tokens.ts +313 -0
  681. package/lib/components/ProgressBar/types.ts +26 -0
  682. package/lib/components/ProgressBar/utils.ts +111 -0
  683. package/lib/components/ProgressBarV2/CircularProgressBarV2.tsx +118 -0
  684. package/lib/components/ProgressBarV2/LinearProgressBarV2.tsx +104 -0
  685. package/lib/components/ProgressBarV2/ProgressBarV2.tsx +85 -0
  686. package/lib/components/ProgressBarV2/index.ts +3 -0
  687. package/lib/components/ProgressBarV2/progressBarV2.dark.tokens.ts +203 -0
  688. package/lib/components/ProgressBarV2/progressBarV2.light.tokens.ts +203 -0
  689. package/lib/components/ProgressBarV2/progressBarV2.tokens.ts +80 -0
  690. package/lib/components/ProgressBarV2/progressBarV2.types.ts +50 -0
  691. package/lib/components/ProgressBarV2/utils.ts +154 -0
  692. package/lib/components/Radio/Radio.tsx +237 -0
  693. package/lib/components/Radio/RadioGroup.tsx +248 -0
  694. package/lib/components/Radio/StyledRadio.tsx +71 -0
  695. package/lib/components/Radio/accessibility/RadioAccessibility.tsx +1109 -0
  696. package/lib/components/Radio/accessibility/RadioAccessibilityReport.ts +581 -0
  697. package/lib/components/Radio/accessibility/index.ts +2 -0
  698. package/lib/components/Radio/index.ts +4 -0
  699. package/lib/components/Radio/radio.animations.ts +49 -0
  700. package/lib/components/Radio/radio.token.ts +287 -0
  701. package/lib/components/Radio/types.ts +39 -0
  702. package/lib/components/Radio/utils.ts +125 -0
  703. package/lib/components/Select/Select.tsx +378 -0
  704. package/lib/components/Select/SelectItem/SelectItem.tsx +3 -0
  705. package/lib/components/Select/SelectItem/index.tsx +384 -0
  706. package/lib/components/Select/SelectItem/types.ts +46 -0
  707. package/lib/components/Select/SelectItem/utils.ts +62 -0
  708. package/lib/components/Select/SelectMenu.tsx +518 -0
  709. package/lib/components/Select/index.ts +2 -0
  710. package/lib/components/Select/select.token.ts +80 -0
  711. package/lib/components/Select/selectUtils.ts +74 -0
  712. package/lib/components/Select/types.tsx +102 -0
  713. package/lib/components/SelectV2/SelectItemV2.tsx +328 -0
  714. package/lib/components/SelectV2/index.ts +10 -0
  715. package/lib/components/SelectV2/selectV2.constants.ts +7 -0
  716. package/lib/components/SelectV2/selectV2.shared.types.ts +113 -0
  717. package/lib/components/SelectV2/selectV2.tokenStates.ts +15 -0
  718. package/lib/components/SelectV2/types.ts +115 -0
  719. package/lib/components/SelectV2/useSelectV2MenuBehavior.ts +135 -0
  720. package/lib/components/SelectorV2/CheckboxV2/CheckboxV2.tsx +282 -0
  721. package/lib/components/SelectorV2/CheckboxV2/StyledCheckboxV2.tsx +100 -0
  722. package/lib/components/SelectorV2/CheckboxV2/checkboxV2.animations.ts +85 -0
  723. package/lib/components/SelectorV2/CheckboxV2/checkboxV2.dark.tokens.ts +327 -0
  724. package/lib/components/SelectorV2/CheckboxV2/checkboxV2.light.tokens.ts +324 -0
  725. package/lib/components/SelectorV2/CheckboxV2/checkboxV2.tokens.ts +98 -0
  726. package/lib/components/SelectorV2/CheckboxV2/checkboxV2.types.ts +70 -0
  727. package/lib/components/SelectorV2/CheckboxV2/index.ts +3 -0
  728. package/lib/components/SelectorV2/CheckboxV2/utils.ts +171 -0
  729. package/lib/components/SelectorV2/RadioV2/RadioV2.tsx +158 -0
  730. package/lib/components/SelectorV2/RadioV2/StyledRadioV2.tsx +72 -0
  731. package/lib/components/SelectorV2/RadioV2/index.ts +3 -0
  732. package/lib/components/SelectorV2/RadioV2/radioV2.dark.tokens.ts +278 -0
  733. package/lib/components/SelectorV2/RadioV2/radioV2.light.tokens.ts +281 -0
  734. package/lib/components/SelectorV2/RadioV2/radioV2.tokens.ts +90 -0
  735. package/lib/components/SelectorV2/RadioV2/radioV2.types.ts +45 -0
  736. package/lib/components/SelectorV2/SwitchV2/SwitchV2.tsx +239 -0
  737. package/lib/components/SelectorV2/SwitchV2/index.ts +3 -0
  738. package/lib/components/SelectorV2/SwitchV2/switchV2.dark.tokens.ts +232 -0
  739. package/lib/components/SelectorV2/SwitchV2/switchV2.light.tokens.ts +230 -0
  740. package/lib/components/SelectorV2/SwitchV2/switchV2.tokens.ts +80 -0
  741. package/lib/components/SelectorV2/SwitchV2/switchV2.types.ts +56 -0
  742. package/lib/components/SelectorV2/selectorV2.types.ts +13 -0
  743. package/lib/components/SelectorsContent/SelectorsContent.types.ts +55 -0
  744. package/lib/components/SelectorsContent/SelectorsLabel.tsx +68 -0
  745. package/lib/components/SelectorsContent/SelectorsSubLabel.tsx +52 -0
  746. package/lib/components/SelectorsContent/index.ts +3 -0
  747. package/lib/components/Sidebar/Sidebar.tsx +551 -0
  748. package/lib/components/Sidebar/SidebarContent.tsx +121 -0
  749. package/lib/components/Sidebar/SidebarFooter.tsx +46 -0
  750. package/lib/components/Sidebar/SidebarHeader.tsx +199 -0
  751. package/lib/components/Sidebar/SidebarMobile/MobileNavigationItem.tsx +99 -0
  752. package/lib/components/Sidebar/SidebarMobile/MoreButton.tsx +77 -0
  753. package/lib/components/Sidebar/SidebarMobile/PrimaryActionButton.tsx +60 -0
  754. package/lib/components/Sidebar/SidebarMobile/hooks.ts +87 -0
  755. package/lib/components/Sidebar/SidebarMobile/index.tsx +393 -0
  756. package/lib/components/Sidebar/SidebarMobile/mobile.tokens.ts +159 -0
  757. package/lib/components/Sidebar/SidebarMobile/utils.ts +167 -0
  758. package/lib/components/Sidebar/TenantPanel.tsx +255 -0
  759. package/lib/components/Sidebar/accessibility/SidebarAccessibility.tsx +715 -0
  760. package/lib/components/Sidebar/accessibility/SidebarAccessibilityReport.ts +446 -0
  761. package/lib/components/Sidebar/index.ts +3 -0
  762. package/lib/components/Sidebar/sidebar.tokens.ts +269 -0
  763. package/lib/components/Sidebar/types.ts +85 -0
  764. package/lib/components/Sidebar/utils.ts +371 -0
  765. package/lib/components/SidebarV2/SecondarySidebar.tsx +123 -0
  766. package/lib/components/SidebarV2/SidebarV2.tsx +474 -0
  767. package/lib/components/SidebarV2/SidebarV2Footer.tsx +45 -0
  768. package/lib/components/SidebarV2/SidebarV2Header.tsx +165 -0
  769. package/lib/components/SidebarV2/SidebarV2MobileNavigation/MobileNavigationItem.tsx +92 -0
  770. package/lib/components/SidebarV2/SidebarV2MobileNavigation/MoreButton.tsx +74 -0
  771. package/lib/components/SidebarV2/SidebarV2MobileNavigation/PrimaryActionButton.tsx +72 -0
  772. package/lib/components/SidebarV2/SidebarV2MobileNavigation/hooks.ts +91 -0
  773. package/lib/components/SidebarV2/SidebarV2MobileNavigation/index.tsx +385 -0
  774. package/lib/components/SidebarV2/SidebarV2MobileNavigation/mobile.dark.tokens.ts +85 -0
  775. package/lib/components/SidebarV2/SidebarV2MobileNavigation/mobile.light.tokens.ts +85 -0
  776. package/lib/components/SidebarV2/SidebarV2MobileNavigation/mobile.tokens.ts +99 -0
  777. package/lib/components/SidebarV2/SidebarV2MobileNavigation/types.ts +36 -0
  778. package/lib/components/SidebarV2/SidebarV2MobileNavigation/utils.ts +174 -0
  779. package/lib/components/SidebarV2/SidebarV2Panel.tsx +139 -0
  780. package/lib/components/SidebarV2/index.ts +10 -0
  781. package/lib/components/SidebarV2/sidebarV2.dark.tokens.ts +223 -0
  782. package/lib/components/SidebarV2/sidebarV2.light.tokens.ts +223 -0
  783. package/lib/components/SidebarV2/sidebarV2.tokens.ts +120 -0
  784. package/lib/components/SidebarV2/sidebarV2.types.ts +6 -0
  785. package/lib/components/SidebarV2/types.ts +63 -0
  786. package/lib/components/SidebarV2/utils.ts +121 -0
  787. package/lib/components/SingleSelect/MobileSingleSelect.tsx +628 -0
  788. package/lib/components/SingleSelect/SingleSelect.tsx +638 -0
  789. package/lib/components/SingleSelect/SingleSelectMenu.tsx +831 -0
  790. package/lib/components/SingleSelect/SingleSelectSkeleton.tsx +37 -0
  791. package/lib/components/SingleSelect/SingleSelectTrigger.tsx +242 -0
  792. package/lib/components/SingleSelect/accessibility/SingleSelectAccessibility.tsx +1375 -0
  793. package/lib/components/SingleSelect/accessibility/SingleSelectAccessibilityReport.ts +602 -0
  794. package/lib/components/SingleSelect/accessibility/index.ts +2 -0
  795. package/lib/components/SingleSelect/index.ts +3 -0
  796. package/lib/components/SingleSelect/singleSelect.animations.ts +149 -0
  797. package/lib/components/SingleSelect/singleSelect.tokens.ts +686 -0
  798. package/lib/components/SingleSelect/types.ts +141 -0
  799. package/lib/components/SingleSelect/utils.ts +236 -0
  800. package/lib/components/SingleSelectGroup/SingleSelectGroup.tsx +34 -0
  801. package/lib/components/SingleSelectGroup/SingleSelectGroupProps.types.ts +10 -0
  802. package/lib/components/SingleSelectGroup/index.ts +4 -0
  803. package/lib/components/SingleSelectV2/MobileSingleSelectV2.tsx +615 -0
  804. package/lib/components/SingleSelectV2/SingleSelectV2.tsx +297 -0
  805. package/lib/components/SingleSelectV2/SingleSelectV2List.tsx +90 -0
  806. package/lib/components/SingleSelectV2/SingleSelectV2Menu.tsx +355 -0
  807. package/lib/components/SingleSelectV2/SingleSelectV2MenuItems.tsx +228 -0
  808. package/lib/components/SingleSelectV2/SingleSelectV2Search.tsx +54 -0
  809. package/lib/components/SingleSelectV2/SingleSelectV2Skeleton.tsx +48 -0
  810. package/lib/components/SingleSelectV2/SingleSelectV2Trigger.tsx +308 -0
  811. package/lib/components/SingleSelectV2/SingleSelectV2VirtualList.tsx +161 -0
  812. package/lib/components/SingleSelectV2/index.ts +11 -0
  813. package/lib/components/SingleSelectV2/mobile/SingleSelectV2MobileItem.tsx +127 -0
  814. package/lib/components/SingleSelectV2/mobile/singleSelectV2.mobile.utils.ts +55 -0
  815. package/lib/components/SingleSelectV2/singleSelectV2.animations.ts +146 -0
  816. package/lib/components/SingleSelectV2/singleSelectV2.dark.tokens.ts +367 -0
  817. package/lib/components/SingleSelectV2/singleSelectV2.light.tokens.ts +367 -0
  818. package/lib/components/SingleSelectV2/singleSelectV2.tokens.ts +202 -0
  819. package/lib/components/SingleSelectV2/singleSelectV2.types.ts +203 -0
  820. package/lib/components/SingleSelectV2/utils.ts +384 -0
  821. package/lib/components/Skeleton/README.md +279 -0
  822. package/lib/components/Skeleton/Skeleton.tsx +192 -0
  823. package/lib/components/Skeleton/SkeletonAvatar.tsx +45 -0
  824. package/lib/components/Skeleton/SkeletonCard.tsx +137 -0
  825. package/lib/components/Skeleton/SkeletonCompound.tsx +64 -0
  826. package/lib/components/Skeleton/hooks/useSkeletonBase.ts +33 -0
  827. package/lib/components/Skeleton/index.ts +41 -0
  828. package/lib/components/Skeleton/skeleton.tokens.ts +143 -0
  829. package/lib/components/Skeleton/types.ts +38 -0
  830. package/lib/components/Skeleton/utils.ts +32 -0
  831. package/lib/components/Slider/Slider.tsx +296 -0
  832. package/lib/components/Slider/accessibility/SliderAccessibility.tsx +631 -0
  833. package/lib/components/Slider/accessibility/SliderAccessibilityReport.ts +246 -0
  834. package/lib/components/Slider/accessibility/index.ts +7 -0
  835. package/lib/components/Slider/index.ts +3 -0
  836. package/lib/components/Slider/types.ts +35 -0
  837. package/lib/components/Slider/utils.ts +370 -0
  838. package/lib/components/Snackbar/Snackbar.tsx +315 -0
  839. package/lib/components/Snackbar/accessibility/SnackbarAccessibility.tsx +525 -0
  840. package/lib/components/Snackbar/accessibility/SnackbarAccessibilityReport.ts +360 -0
  841. package/lib/components/Snackbar/accessibility/index.ts +2 -0
  842. package/lib/components/Snackbar/index.ts +4 -0
  843. package/lib/components/Snackbar/snackbar.tokens.ts +263 -0
  844. package/lib/components/Snackbar/types.ts +51 -0
  845. package/lib/components/SnackbarV2/SnackbarV2.tsx +474 -0
  846. package/lib/components/SnackbarV2/index.ts +4 -0
  847. package/lib/components/SnackbarV2/snackbarV2.dark.tokens.ts +161 -0
  848. package/lib/components/SnackbarV2/snackbarV2.light.tokens.ts +161 -0
  849. package/lib/components/SnackbarV2/snackbarV2.tokens.ts +88 -0
  850. package/lib/components/SnackbarV2/snackbarV2.types.ts +65 -0
  851. package/lib/components/SplitTag/SplitTag.tsx +85 -0
  852. package/lib/components/SplitTag/accessibility/SplitTagAccessibility.tsx +972 -0
  853. package/lib/components/SplitTag/accessibility/SplitTagAccessibilityReport.ts +441 -0
  854. package/lib/components/SplitTag/index.ts +2 -0
  855. package/lib/components/SplitTag/types.ts +8 -0
  856. package/lib/components/StatCard/StatCard.tsx +1620 -0
  857. package/lib/components/StatCard/StatCardSkeleton.tsx +24 -0
  858. package/lib/components/StatCard/accessibility/StatCardAccessibility.tsx +612 -0
  859. package/lib/components/StatCard/accessibility/StatCardAccessibilityReport.ts +400 -0
  860. package/lib/components/StatCard/index.ts +3 -0
  861. package/lib/components/StatCard/statcard.tokens.ts +468 -0
  862. package/lib/components/StatCard/types.ts +82 -0
  863. package/lib/components/StatCard/utils.ts +78 -0
  864. package/lib/components/StatCardV2/StatCardV2.chartConfig.ts +47 -0
  865. package/lib/components/StatCardV2/StatCardV2.tsx +307 -0
  866. package/lib/components/StatCardV2/StatCardV2Change.tsx +89 -0
  867. package/lib/components/StatCardV2/StatCardV2NoData.tsx +160 -0
  868. package/lib/components/StatCardV2/StatCardV2Skeleton.tsx +24 -0
  869. package/lib/components/StatCardV2/StatCardV2Subtitle.tsx +29 -0
  870. package/lib/components/StatCardV2/StatCardV2Title.tsx +83 -0
  871. package/lib/components/StatCardV2/StatCardV2Value.tsx +67 -0
  872. package/lib/components/StatCardV2/index.ts +3 -0
  873. package/lib/components/StatCardV2/statcardV2.dark.tokens.ts +184 -0
  874. package/lib/components/StatCardV2/statcardV2.light.tokens.ts +184 -0
  875. package/lib/components/StatCardV2/statcardV2.tokens.ts +95 -0
  876. package/lib/components/StatCardV2/statcardV2.types.ts +90 -0
  877. package/lib/components/StatCardV2/utils.ts +29 -0
  878. package/lib/components/Stepper/HorizonatlLine.tsx +23 -0
  879. package/lib/components/Stepper/HorizontalStepper.tsx +467 -0
  880. package/lib/components/Stepper/Stepper.tsx +56 -0
  881. package/lib/components/Stepper/StepperLine.tsx +19 -0
  882. package/lib/components/Stepper/VerticalLine.tsx +24 -0
  883. package/lib/components/Stepper/VerticalStepper.tsx +965 -0
  884. package/lib/components/Stepper/accessibility/StepperAccessibility.tsx +723 -0
  885. package/lib/components/Stepper/accessibility/StepperAccessibilityReport.ts +337 -0
  886. package/lib/components/Stepper/index.ts +3 -0
  887. package/lib/components/Stepper/stepper.tokens.ts +883 -0
  888. package/lib/components/Stepper/types.ts +55 -0
  889. package/lib/components/StepperV2/Stepper/StepStatusCircle.tsx +54 -0
  890. package/lib/components/StepperV2/Stepper/StepperComponent.tsx +177 -0
  891. package/lib/components/StepperV2/Stepper/Steps.tsx +562 -0
  892. package/lib/components/StepperV2/Stepper/StepsHorizontalBody.tsx +105 -0
  893. package/lib/components/StepperV2/Stepper/StepsSubstepList.tsx +198 -0
  894. package/lib/components/StepperV2/Stepper/StepsVerticalSubstepRails.tsx +72 -0
  895. package/lib/components/StepperV2/Stepper/VerticalLineV2.tsx +26 -0
  896. package/lib/components/StepperV2/Stepper/stepsHelpers.ts +59 -0
  897. package/lib/components/StepperV2/StepperV2.tsx +44 -0
  898. package/lib/components/StepperV2/index.ts +10 -0
  899. package/lib/components/StepperV2/stepperV2.dark.tokens.ts +1403 -0
  900. package/lib/components/StepperV2/stepperV2.light.tokens.ts +1389 -0
  901. package/lib/components/StepperV2/stepperV2.tokens.ts +116 -0
  902. package/lib/components/StepperV2/stepperV2.types.ts +72 -0
  903. package/lib/components/StepperV2/utils.ts +37 -0
  904. package/lib/components/Switch/StyledSwitch.tsx +97 -0
  905. package/lib/components/Switch/Switch.tsx +245 -0
  906. package/lib/components/Switch/SwitchGroup.tsx +115 -0
  907. package/lib/components/Switch/accessibility/SwitchAccessibility.tsx +819 -0
  908. package/lib/components/Switch/accessibility/SwitchAccessibilityReport.ts +579 -0
  909. package/lib/components/Switch/accessibility/index.ts +6 -0
  910. package/lib/components/Switch/index.ts +4 -0
  911. package/lib/components/Switch/switch.animations.ts +54 -0
  912. package/lib/components/Switch/switch.token.ts +363 -0
  913. package/lib/components/Switch/types.ts +37 -0
  914. package/lib/components/Switch/utils.ts +158 -0
  915. package/lib/components/Tabs/StyledTabs.tsx +153 -0
  916. package/lib/components/Tabs/Tabs.tsx +313 -0
  917. package/lib/components/Tabs/TabsContent.tsx +33 -0
  918. package/lib/components/Tabs/TabsList.tsx +590 -0
  919. package/lib/components/Tabs/TabsTrigger.tsx +271 -0
  920. package/lib/components/Tabs/accessibility/TabsAccessibility.tsx +735 -0
  921. package/lib/components/Tabs/accessibility/TabsAccessibilityReport.ts +290 -0
  922. package/lib/components/Tabs/accessibility/index.ts +2 -0
  923. package/lib/components/Tabs/index.ts +8 -0
  924. package/lib/components/Tabs/tabs.token.ts +758 -0
  925. package/lib/components/Tabs/types.ts +99 -0
  926. package/lib/components/Tabs/utils.ts +235 -0
  927. package/lib/components/TabsV2/StyledTabsV2.tsx +166 -0
  928. package/lib/components/TabsV2/TabsV2.tsx +202 -0
  929. package/lib/components/TabsV2/TabsV2Content.tsx +34 -0
  930. package/lib/components/TabsV2/TabsV2List.tsx +403 -0
  931. package/lib/components/TabsV2/TabsV2Trigger.tsx +260 -0
  932. package/lib/components/TabsV2/index.ts +12 -0
  933. package/lib/components/TabsV2/tabsV2.context.tsx +45 -0
  934. package/lib/components/TabsV2/tabsV2.dark.tokens.ts +680 -0
  935. package/lib/components/TabsV2/tabsV2.light.tokens.ts +680 -0
  936. package/lib/components/TabsV2/tabsV2.tokens.ts +111 -0
  937. package/lib/components/TabsV2/tabsV2.types.ts +85 -0
  938. package/lib/components/TabsV2/tabsV2.utils.ts +145 -0
  939. package/lib/components/TagGroupV2/TagGroupV2.tsx +32 -0
  940. package/lib/components/TagGroupV2/TagGroupV2.types.ts +12 -0
  941. package/lib/components/TagGroupV2/index.ts +2 -0
  942. package/lib/components/TagV2/TagSkeleton.tsx +102 -0
  943. package/lib/components/TagV2/TagV2.tsx +179 -0
  944. package/lib/components/TagV2/TagV2.types.ts +61 -0
  945. package/lib/components/TagV2/index.ts +2 -0
  946. package/lib/components/TagV2/tagV2.dark.tokens.ts +359 -0
  947. package/lib/components/TagV2/tagV2.light.tokens.ts +352 -0
  948. package/lib/components/TagV2/tagV2.tokens.ts +85 -0
  949. package/lib/components/TagV2/utils.ts +71 -0
  950. package/lib/components/Tags/Tag.tsx +115 -0
  951. package/lib/components/Tags/TagBase.tsx +227 -0
  952. package/lib/components/Tags/Tags.tsx +82 -0
  953. package/lib/components/Tags/accessibility/TagAccessibility.tsx +665 -0
  954. package/lib/components/Tags/accessibility/TagAccessibilityReport.ts +392 -0
  955. package/lib/components/Tags/index.ts +3 -0
  956. package/lib/components/Tags/tag.dark.tokens.ts +297 -0
  957. package/lib/components/Tags/tag.light.tokens.ts +297 -0
  958. package/lib/components/Tags/tag.tokens.ts +87 -0
  959. package/lib/components/Tags/types.ts +49 -0
  960. package/lib/components/Text/Text.tsx +147 -0
  961. package/lib/components/TextInputGroup/TextInputGroup.tsx +34 -0
  962. package/lib/components/TextInputGroup/TextInputGroupProps.types.ts +8 -0
  963. package/lib/components/TextInputGroup/index.ts +4 -0
  964. package/lib/components/Timeline/Timeline.tsx +106 -0
  965. package/lib/components/Timeline/TimelineHeader.tsx +120 -0
  966. package/lib/components/Timeline/TimelineLabel.tsx +61 -0
  967. package/lib/components/Timeline/TimelineNode.tsx +225 -0
  968. package/lib/components/Timeline/TimelineShowMore.tsx +36 -0
  969. package/lib/components/Timeline/TimelineSubstep.tsx +173 -0
  970. package/lib/components/Timeline/index.ts +9 -0
  971. package/lib/components/Timeline/timeline.dark.token.ts +149 -0
  972. package/lib/components/Timeline/timeline.light.token.ts +149 -0
  973. package/lib/components/Timeline/timeline.token.ts +152 -0
  974. package/lib/components/Timeline/types.ts +115 -0
  975. package/lib/components/Timeline/utils.ts +169 -0
  976. package/lib/components/Tooltip/Tooltip.tsx +170 -0
  977. package/lib/components/Tooltip/accessibility/TooltipAccessibility.tsx +592 -0
  978. package/lib/components/Tooltip/accessibility/TooltipAccessibilityReport.ts +356 -0
  979. package/lib/components/Tooltip/index.ts +3 -0
  980. package/lib/components/Tooltip/tooltip.animations.ts +82 -0
  981. package/lib/components/Tooltip/tooltip.tokens.ts +157 -0
  982. package/lib/components/Tooltip/types.ts +41 -0
  983. package/lib/components/TooltipV2/TooltipV2.tsx +214 -0
  984. package/lib/components/TooltipV2/index.ts +3 -0
  985. package/lib/components/TooltipV2/tooltipV2.animation.ts +82 -0
  986. package/lib/components/TooltipV2/tooltipV2.dark.tokens.ts +115 -0
  987. package/lib/components/TooltipV2/tooltipV2.light.tokens.ts +115 -0
  988. package/lib/components/TooltipV2/tooltipV2.tokens.ts +62 -0
  989. package/lib/components/TooltipV2/tooltipV2.types.ts +43 -0
  990. package/lib/components/Topbar/Topbar.tsx +370 -0
  991. package/lib/components/Topbar/index.ts +3 -0
  992. package/lib/components/Topbar/topbar.tokens.ts +304 -0
  993. package/lib/components/Topbar/types.ts +53 -0
  994. package/lib/components/TopbarV2/TopbarV2.tsx +363 -0
  995. package/lib/components/TopbarV2/index.ts +3 -0
  996. package/lib/components/TopbarV2/topbarV2.dark.tokens.ts +159 -0
  997. package/lib/components/TopbarV2/topbarV2.light.tokens.ts +159 -0
  998. package/lib/components/TopbarV2/topbarV2.tokens.ts +84 -0
  999. package/lib/components/TopbarV2/types.ts +52 -0
  1000. package/lib/components/Upload/Upload.tsx +675 -0
  1001. package/lib/components/Upload/accessibility/UploadAccessibility.tsx +507 -0
  1002. package/lib/components/Upload/accessibility/UploadAccessibilityReport.ts +495 -0
  1003. package/lib/components/Upload/accessibility/index.ts +3 -0
  1004. package/lib/components/Upload/components/DefaultState.tsx +101 -0
  1005. package/lib/components/Upload/components/ErrorState.tsx +124 -0
  1006. package/lib/components/Upload/components/FileListDisplay.tsx +112 -0
  1007. package/lib/components/Upload/components/MixedState.tsx +88 -0
  1008. package/lib/components/Upload/components/SuccessState.tsx +108 -0
  1009. package/lib/components/Upload/components/UploadingState.tsx +108 -0
  1010. package/lib/components/Upload/components/index.ts +6 -0
  1011. package/lib/components/Upload/index.ts +4 -0
  1012. package/lib/components/Upload/types.ts +103 -0
  1013. package/lib/components/Upload/upload.tokens.ts +288 -0
  1014. package/lib/components/Upload/utils.ts +929 -0
  1015. package/lib/components/VirtualList/VirtualList.tsx +269 -0
  1016. package/lib/components/VirtualList/index.ts +7 -0
  1017. package/lib/components/VirtualList/types.ts +31 -0
  1018. package/lib/components/VirtualList/utils.ts +169 -0
  1019. package/lib/components/animations/ChevronAnimation/ChevronAnimation.tsx +128 -0
  1020. package/lib/components/animations/ChevronAnimation/index.ts +3 -0
  1021. package/lib/components/animations/ChevronAnimation/types.ts +32 -0
  1022. package/lib/components/animations/ChevronAnimation/utils.ts +41 -0
  1023. package/lib/components/animations/Ripple/RippleContainer.tsx +70 -0
  1024. package/lib/components/animations/Ripple/index.ts +2 -0
  1025. package/lib/components/common/Seperator.tsx +30 -0
  1026. package/lib/components/common/TruncatedTextWithTooltip.tsx +120 -0
  1027. package/lib/components/common/TruncatedTextWithTooltipV2/TruncatedTextWithTooltipV2.tsx +88 -0
  1028. package/lib/components/common/TruncatedTextWithTooltipV2/index.ts +2 -0
  1029. package/lib/components/common/TruncatedTextWithTooltipV2/types.ts +21 -0
  1030. package/lib/components/common/TruncatedTextWithTooltipV2/utils.ts +6 -0
  1031. package/lib/components/common/error.animations.ts +28 -0
  1032. package/lib/components/common/index.ts +11 -0
  1033. package/lib/components/common/useErrorShake.ts +20 -0
  1034. package/lib/components/common/virtualViewport.ts +23 -0
  1035. package/lib/components/shared/accessibility/AccessibilityDashboard.tsx +348 -0
  1036. package/lib/components/shared/accessibility/LightHouse-components/AccordionLightHouse.tsx +328 -0
  1037. package/lib/components/shared/accessibility/LightHouse-components/AlertLightHouse.tsx +371 -0
  1038. package/lib/components/shared/accessibility/LightHouse-components/AvatarGroupLightHouse.tsx +386 -0
  1039. package/lib/components/shared/accessibility/LightHouse-components/AvatarLightHouse.tsx +248 -0
  1040. package/lib/components/shared/accessibility/LightHouse-components/BreadcrumbLightHouse.tsx +242 -0
  1041. package/lib/components/shared/accessibility/LightHouse-components/ButtonGroupLightHouse.tsx +342 -0
  1042. package/lib/components/shared/accessibility/LightHouse-components/ButtonLightHouse.tsx +185 -0
  1043. package/lib/components/shared/accessibility/LightHouse-components/CardLightHouse.tsx +542 -0
  1044. package/lib/components/shared/accessibility/LightHouse-components/ChartsLightHouse.tsx +349 -0
  1045. package/lib/components/shared/accessibility/LightHouse-components/ChatInputLightHouse.tsx +231 -0
  1046. package/lib/components/shared/accessibility/LightHouse-components/CheckboxLightHouse.tsx +236 -0
  1047. package/lib/components/shared/accessibility/LightHouse-components/CodeBlockLightHouse.tsx +180 -0
  1048. package/lib/components/shared/accessibility/LightHouse-components/DrawerLightHouse.tsx +254 -0
  1049. package/lib/components/shared/accessibility/LightHouse-components/DropdownInputLightHouse.tsx +204 -0
  1050. package/lib/components/shared/accessibility/LightHouse-components/KeyValuePairLightHouse.tsx +220 -0
  1051. package/lib/components/shared/accessibility/LightHouse-components/MenuLightHouse.tsx +441 -0
  1052. package/lib/components/shared/accessibility/LightHouse-components/ModalLightHouse.tsx +93 -0
  1053. package/lib/components/shared/accessibility/LightHouse-components/MultiSelectLightHouse.tsx +308 -0
  1054. package/lib/components/shared/accessibility/LightHouse-components/MultiValueInputLightHouse.tsx +144 -0
  1055. package/lib/components/shared/accessibility/LightHouse-components/NumberInputLightHouse.tsx +106 -0
  1056. package/lib/components/shared/accessibility/LightHouse-components/OTPInputLightHouse.tsx +97 -0
  1057. package/lib/components/shared/accessibility/LightHouse-components/PopoverLightHouse.tsx +97 -0
  1058. package/lib/components/shared/accessibility/LightHouse-components/ProgressBarLightHouse.tsx +280 -0
  1059. package/lib/components/shared/accessibility/LightHouse-components/RadioLightHouse.tsx +322 -0
  1060. package/lib/components/shared/accessibility/LightHouse-components/SearchInputLightHouse.tsx +195 -0
  1061. package/lib/components/shared/accessibility/LightHouse-components/SidebarLightHouse.tsx +403 -0
  1062. package/lib/components/shared/accessibility/LightHouse-components/SingleSelectLightHouse.tsx +278 -0
  1063. package/lib/components/shared/accessibility/LightHouse-components/SliderLightHouse.tsx +284 -0
  1064. package/lib/components/shared/accessibility/LightHouse-components/SnackbarLightHouse.tsx +35 -0
  1065. package/lib/components/shared/accessibility/LightHouse-components/SplitTagLightHouse.tsx +357 -0
  1066. package/lib/components/shared/accessibility/LightHouse-components/StatCardLightHouse.tsx +249 -0
  1067. package/lib/components/shared/accessibility/LightHouse-components/StepperLightHouse.tsx +208 -0
  1068. package/lib/components/shared/accessibility/LightHouse-components/SwitchLightHouse.tsx +355 -0
  1069. package/lib/components/shared/accessibility/LightHouse-components/TabsLightHouse.tsx +339 -0
  1070. package/lib/components/shared/accessibility/LightHouse-components/TagLightHouse.tsx +440 -0
  1071. package/lib/components/shared/accessibility/LightHouse-components/TextAreaLightHouse.tsx +141 -0
  1072. package/lib/components/shared/accessibility/LightHouse-components/TextInputLightHouse.tsx +95 -0
  1073. package/lib/components/shared/accessibility/LightHouse-components/TooltipLightHouse.tsx +218 -0
  1074. package/lib/components/shared/accessibility/LightHouse-components/UnitInputLightHouse.tsx +128 -0
  1075. package/lib/components/shared/accessibility/LightHouse-components/UploadLightHouse.tsx +269 -0
  1076. package/lib/components/shared/accessibility/index.ts +13 -0
  1077. package/lib/components/shared/accessibility/reportGenerator.ts +522 -0
  1078. package/lib/components/shared/accessibility/storybookParser.ts +93 -0
  1079. package/lib/components/shared/accessibility/testResultsParser.ts +75 -0
  1080. package/lib/context/ShadowAware.tsx +52 -0
  1081. package/lib/context/ThemeContext.tsx +436 -0
  1082. package/lib/context/ThemeProvider.tsx +59 -0
  1083. package/lib/context/index.ts +6 -0
  1084. package/lib/context/initComponentTokens.ts +271 -0
  1085. package/lib/context/theme.enum.ts +4 -0
  1086. package/lib/context/useComponentToken.ts +322 -0
  1087. package/lib/global-utils/GlobalUtils.ts +130 -0
  1088. package/lib/hooks/index.ts +8 -0
  1089. package/lib/hooks/useBreakPoints.ts +48 -0
  1090. package/lib/hooks/useClickOutside.ts +30 -0
  1091. package/lib/hooks/useDebounce.ts +19 -0
  1092. package/lib/hooks/useDropdownInteractionLock.ts +226 -0
  1093. package/lib/hooks/useInputSlotPadding.ts +50 -0
  1094. package/lib/hooks/usePreventParentScroll.ts +37 -0
  1095. package/lib/hooks/useResizeObserver.ts +33 -0
  1096. package/lib/hooks/useResponsiveTokens.ts +26 -0
  1097. package/lib/hooks/useRipple.ts +74 -0
  1098. package/lib/hooks/useScrollLock.ts +174 -0
  1099. package/lib/hooks/useSectionScroll.ts +90 -0
  1100. package/lib/hooks/useTruncationDetection.ts +87 -0
  1101. package/lib/main.ts +321 -0
  1102. package/lib/node.ts +39 -0
  1103. package/lib/pollyfills/resizeObserverPollyfill.ts +35 -0
  1104. package/lib/token-engine-server.ts +95 -0
  1105. package/lib/token-engine.ts +105 -0
  1106. package/lib/tokens/border.tokens.ts +58 -0
  1107. package/lib/tokens/color.tokens.ts +116 -0
  1108. package/lib/tokens/font.tokens.ts +312 -0
  1109. package/lib/tokens/index.ts +2 -0
  1110. package/lib/tokens/opacity.tokens.ts +34 -0
  1111. package/lib/tokens/shadows.tokens.ts +28 -0
  1112. package/lib/tokens/theme.token.ts +29 -0
  1113. package/lib/tokens/unit.tokens.ts +101 -0
  1114. package/lib/tokens/zIndex.tokens.ts +25 -0
  1115. package/lib/utils/accessibility/aria-helpers.ts +317 -0
  1116. package/lib/utils/accessibility/focus-helpers.ts +226 -0
  1117. package/lib/utils/accessibility/icon-helpers.ts +25 -0
  1118. package/lib/utils/accessibility/index.ts +25 -0
  1119. package/lib/utils/accessibility/keyboard-helpers.ts +342 -0
  1120. package/lib/utils/accessibility/visually-hidden.tsx +45 -0
  1121. package/lib/utils/prop-helpers.ts +10 -0
  1122. package/package.json +17 -3
  1123. package/dist/assets/main.css +0 -1
@@ -0,0 +1,1375 @@
1
+ import { forwardRef, useState } from 'react'
2
+ import { SingleSelect } from '../index'
3
+ import { singleSelectAccessibilityReport } from './SingleSelectAccessibilityReport'
4
+ import {
5
+ generateAccessibilityReport,
6
+ downloadReport,
7
+ getMimeType,
8
+ getFileExtension,
9
+ type ReportFormat,
10
+ } from '../../shared/accessibility/reportGenerator'
11
+ import { Download as DownloadIcon, Check } from 'lucide-react'
12
+ import Button from '../../Button/Button'
13
+ import { ButtonSize } from '../../Button/types'
14
+
15
+ export interface SingleSelectAccessibilityProps {
16
+ className?: string
17
+ }
18
+
19
+ const SingleSelectAccessibility = forwardRef<
20
+ HTMLDivElement,
21
+ SingleSelectAccessibilityProps
22
+ >(({ className }, ref) => {
23
+ const [selectedFormat, setSelectedFormat] =
24
+ useState<ReportFormat>('markdown')
25
+ const [includeTestResults, setIncludeTestResults] = useState(true)
26
+ const [includeRecommendations, setIncludeRecommendations] = useState(true)
27
+ const [reportHtmlContent, setReportHtmlContent] = useState<string | null>(
28
+ null
29
+ )
30
+ const [showFullReport, setShowFullReport] = useState(false)
31
+ const [demoStates, setDemoStates] = useState({
32
+ selected: '',
33
+ required: false,
34
+ error: false,
35
+ })
36
+
37
+ const handleDownload = () => {
38
+ try {
39
+ const content = generateAccessibilityReport(
40
+ singleSelectAccessibilityReport,
41
+ {
42
+ format: selectedFormat,
43
+ includeTestResults,
44
+ includeRecommendations,
45
+ }
46
+ )
47
+
48
+ const filename = `singleselect-accessibility-report-${singleSelectAccessibilityReport.reportDate}.${getFileExtension(selectedFormat)}`
49
+ const mimeType = getMimeType(selectedFormat)
50
+
51
+ downloadReport(content, filename, mimeType)
52
+ } catch (error) {
53
+ console.error('Error generating report:', error)
54
+ alert('Failed to generate report. Please try again.')
55
+ }
56
+ }
57
+
58
+ const handleViewReport = () => {
59
+ try {
60
+ const htmlContent = generateAccessibilityReport(
61
+ singleSelectAccessibilityReport,
62
+ {
63
+ format: 'html',
64
+ includeTestResults,
65
+ includeRecommendations,
66
+ }
67
+ )
68
+ setReportHtmlContent(htmlContent)
69
+ setShowFullReport(true)
70
+ } catch (error) {
71
+ console.error('Error generating report:', error)
72
+ alert('Failed to generate report. Please try again.')
73
+ }
74
+ }
75
+
76
+ const report = singleSelectAccessibilityReport
77
+ const compliantCount = report.criteria.filter(
78
+ (c) => c.status === 'compliant'
79
+ ).length
80
+ const nonCompliantCount = report.criteria.filter(
81
+ (c) => c.status === 'non-compliant'
82
+ ).length
83
+ const unsureCount = report.criteria.filter(
84
+ (c) => c.status === 'unsure'
85
+ ).length
86
+ const totalApplicable = report.criteria.filter(
87
+ (c) => c.status !== 'not-applicable'
88
+ ).length
89
+ const complianceRate =
90
+ totalApplicable > 0
91
+ ? Math.round((compliantCount / totalApplicable) * 100)
92
+ : 0
93
+
94
+ const demoItems = [
95
+ {
96
+ items: [
97
+ { label: 'Option 1', value: 'option1' },
98
+ { label: 'Option 2', value: 'option2' },
99
+ { label: 'Option 3', value: 'option3' },
100
+ ],
101
+ },
102
+ ]
103
+
104
+ return (
105
+ <div ref={ref} className={className}>
106
+ <div className="p-8 space-y-8 max-w-7xl mx-auto">
107
+ <div className="space-y-4">
108
+ <div className="flex items-start justify-between">
109
+ <div>
110
+ <h1 className="text-3xl font-bold mb-1">
111
+ SingleSelect Component Accessibility
112
+ </h1>
113
+ <div className="flex items-center gap-3 text-sm text-gray-500 mb-2">
114
+ <span>WCAG {report.wcagVersion}</span>
115
+ <span>•</span>
116
+ <span>{report.conformanceLevel}</span>
117
+ <span>•</span>
118
+ <span>{report.reportDate}</span>
119
+ </div>
120
+ <div className="flex items-center gap-2 text-xs text-gray-400">
121
+ <span>Evaluates: WCAG 2.0, 2.1, 2.2</span>
122
+ </div>
123
+ </div>
124
+ <div
125
+ className={`px-3 py-1.5 rounded-md font-semibold text-sm text-white ${
126
+ report.overallStatus === 'compliant'
127
+ ? 'bg-green-600'
128
+ : report.overallStatus === 'partial'
129
+ ? 'bg-orange-600'
130
+ : report.overallStatus === 'unsure'
131
+ ? 'bg-yellow-600'
132
+ : 'bg-red-600'
133
+ }`}
134
+ >
135
+ {report.overallStatus.toUpperCase()}
136
+ </div>
137
+ </div>
138
+
139
+ <div className="grid grid-cols-2 md:grid-cols-4 gap-3">
140
+ <div className="bg-white border-2 border-green-200 rounded-lg p-4 shadow-sm">
141
+ <div className="text-2xl font-bold mb-1 text-green-600">
142
+ {compliantCount}
143
+ </div>
144
+ <div className="text-xs font-medium text-gray-700">
145
+ Compliant ✅
146
+ </div>
147
+ <div className="text-xs text-gray-500 mt-1">
148
+ Verified & tested
149
+ </div>
150
+ </div>
151
+ <div className="bg-white border-2 border-red-200 rounded-lg p-4 shadow-sm">
152
+ <div className="text-2xl font-bold mb-1 text-red-600">
153
+ {nonCompliantCount}
154
+ </div>
155
+ <div className="text-xs font-medium text-gray-700">
156
+ Non-Compliant ❌
157
+ </div>
158
+ <div className="text-xs text-gray-500 mt-1">
159
+ Issues found
160
+ </div>
161
+ </div>
162
+ <div className="bg-white border-2 border-orange-200 rounded-lg p-4 shadow-sm">
163
+ <div className="text-2xl font-bold mb-1 text-orange-600">
164
+ {unsureCount}
165
+ </div>
166
+ <div className="text-xs font-medium text-gray-700">
167
+ Unsure ⚠️
168
+ </div>
169
+ <div className="text-xs text-gray-500 mt-1">
170
+ Needs verification
171
+ </div>
172
+ </div>
173
+ <div className="bg-white border-2 border-blue-200 rounded-lg p-4 shadow-sm">
174
+ <div className="text-2xl font-bold mb-1 text-blue-600">
175
+ {complianceRate}%
176
+ </div>
177
+ <div className="text-xs font-medium text-gray-700">
178
+ Compliance Rate
179
+ </div>
180
+ <div className="text-xs text-gray-500 mt-1">
181
+ Based on verified items
182
+ </div>
183
+ </div>
184
+ </div>
185
+
186
+ {/* Unsure Items Warning */}
187
+ {unsureCount > 0 && (
188
+ <div className="bg-orange-50 border-2 border-orange-300 rounded-lg p-4">
189
+ <div className="flex items-start gap-3">
190
+ <span className="text-2xl">⚠️</span>
191
+ <div>
192
+ <h3 className="font-semibold text-orange-900 mb-1">
193
+ Manual Verification Required
194
+ </h3>
195
+ <p className="text-orange-800 text-sm">
196
+ {unsureCount} criterion/criteria marked
197
+ as "unsure" require manual verification.
198
+ These items need testing with contrast
199
+ checkers, screen readers, or depend on
200
+ application context. See verification
201
+ instructions below.
202
+ </p>
203
+ </div>
204
+ </div>
205
+ </div>
206
+ )}
207
+
208
+ {/* Summary & Download */}
209
+ <div className="grid grid-cols-1 lg:grid-cols-3 gap-4">
210
+ <div className="lg:col-span-2 bg-gray-50 border border-gray-200 rounded-lg p-4">
211
+ <h2 className="text-lg font-semibold mb-2">
212
+ Summary
213
+ </h2>
214
+ <p className="text-sm text-gray-700 leading-relaxed">
215
+ {report.summary}
216
+ </p>
217
+ </div>
218
+
219
+ <div className="bg-white border border-gray-200 rounded-lg p-4">
220
+ <h2 className="text-lg font-semibold mb-3">
221
+ Download Report
222
+ </h2>
223
+ <div className="space-y-3">
224
+ <div className="flex flex-col gap-2">
225
+ <label className="text-xs font-medium text-gray-700">
226
+ Format
227
+ </label>
228
+ <div className="flex gap-1">
229
+ <button
230
+ onClick={() =>
231
+ setSelectedFormat('markdown')
232
+ }
233
+ className={`flex-1 px-2 py-1.5 rounded text-xs font-medium transition-colors ${
234
+ selectedFormat === 'markdown'
235
+ ? 'bg-primary-100 text-primary-700 border border-primary-300'
236
+ : 'bg-gray-100 text-gray-700 hover:bg-gray-200'
237
+ }`}
238
+ >
239
+ MD
240
+ </button>
241
+ <button
242
+ onClick={() =>
243
+ setSelectedFormat('html')
244
+ }
245
+ className={`flex-1 px-2 py-1.5 rounded text-xs font-medium transition-colors ${
246
+ selectedFormat === 'html'
247
+ ? 'bg-primary-100 text-primary-700 border border-primary-300'
248
+ : 'bg-gray-100 text-gray-700 hover:bg-gray-200'
249
+ }`}
250
+ >
251
+ HTML
252
+ </button>
253
+ <button
254
+ onClick={() =>
255
+ setSelectedFormat('json')
256
+ }
257
+ className={`flex-1 px-2 py-1.5 rounded text-xs font-medium transition-colors ${
258
+ selectedFormat === 'json'
259
+ ? 'bg-primary-100 text-primary-700 border border-primary-300'
260
+ : 'bg-gray-100 text-gray-700 hover:bg-gray-200'
261
+ }`}
262
+ >
263
+ JSON
264
+ </button>
265
+ </div>
266
+ </div>
267
+ <div className="space-y-2">
268
+ <label className="flex items-center gap-2 text-xs">
269
+ <input
270
+ type="checkbox"
271
+ checked={includeTestResults}
272
+ onChange={(e) =>
273
+ setIncludeTestResults(
274
+ e.target.checked
275
+ )
276
+ }
277
+ className="w-3.5 h-3.5"
278
+ />
279
+ <span className="text-gray-700">
280
+ Test Results
281
+ </span>
282
+ </label>
283
+ <label className="flex items-center gap-2 text-xs">
284
+ <input
285
+ type="checkbox"
286
+ checked={includeRecommendations}
287
+ onChange={(e) =>
288
+ setIncludeRecommendations(
289
+ e.target.checked
290
+ )
291
+ }
292
+ className="w-3.5 h-3.5"
293
+ />
294
+ <span className="text-gray-700">
295
+ Recommendations
296
+ </span>
297
+ </label>
298
+ </div>
299
+ <div className="space-y-2">
300
+ <Button
301
+ text="Download"
302
+ leadingIcon={<DownloadIcon size={14} />}
303
+ size={ButtonSize.SMALL}
304
+ onClick={handleDownload}
305
+ fullWidth
306
+ />
307
+ <Button
308
+ text={
309
+ showFullReport
310
+ ? 'Hide Full Report'
311
+ : 'View Full Report'
312
+ }
313
+ size={ButtonSize.SMALL}
314
+ onClick={handleViewReport}
315
+ fullWidth
316
+ />
317
+ </div>
318
+ </div>
319
+ </div>
320
+ </div>
321
+ </div>
322
+
323
+ {/* Full Report Viewer */}
324
+ {showFullReport && reportHtmlContent && (
325
+ <section className="bg-white border-2 border-gray-300 rounded-lg p-6 shadow-lg">
326
+ <div className="flex items-center justify-between mb-4 pb-3 border-b border-gray-200">
327
+ <div>
328
+ <h2 className="text-xl font-bold text-gray-900">
329
+ Full Accessibility Report
330
+ </h2>
331
+ <p className="text-sm text-gray-500 mt-1">
332
+ Interactive HTML report (same as downloaded
333
+ version)
334
+ </p>
335
+ </div>
336
+ <button
337
+ onClick={() => {
338
+ setShowFullReport(false)
339
+ setReportHtmlContent(null)
340
+ }}
341
+ className="px-3 py-1.5 text-sm font-medium text-gray-700 bg-gray-100 hover:bg-gray-200 rounded-md transition-colors"
342
+ >
343
+ Close
344
+ </button>
345
+ </div>
346
+ <div className="border border-gray-200 rounded-lg overflow-hidden bg-white">
347
+ <iframe
348
+ srcDoc={reportHtmlContent}
349
+ className="w-full"
350
+ style={{
351
+ height: '700px',
352
+ border: 'none',
353
+ }}
354
+ title="Accessibility Report"
355
+ sandbox="allow-same-origin"
356
+ />
357
+ </div>
358
+ <div className="mt-4 pt-4 border-t border-gray-200 flex items-center justify-between">
359
+ <p className="text-xs text-gray-500">
360
+ Report generated on{' '}
361
+ {new Date().toLocaleString()}
362
+ </p>
363
+ <div className="flex gap-2">
364
+ <Button
365
+ text="Download HTML"
366
+ leadingIcon={<DownloadIcon size={14} />}
367
+ size={ButtonSize.SMALL}
368
+ onClick={() => {
369
+ const content =
370
+ generateAccessibilityReport(
371
+ singleSelectAccessibilityReport,
372
+ {
373
+ format: 'html',
374
+ includeTestResults,
375
+ includeRecommendations,
376
+ }
377
+ )
378
+ const filename = `singleselect-accessibility-report-${singleSelectAccessibilityReport.reportDate}.html`
379
+ downloadReport(
380
+ content,
381
+ filename,
382
+ 'text/html'
383
+ )
384
+ }}
385
+ />
386
+ <Button
387
+ text="Download Markdown"
388
+ size={ButtonSize.SMALL}
389
+ onClick={() => {
390
+ const content =
391
+ generateAccessibilityReport(
392
+ singleSelectAccessibilityReport,
393
+ {
394
+ format: 'markdown',
395
+ includeTestResults,
396
+ includeRecommendations,
397
+ }
398
+ )
399
+ const filename = `singleselect-accessibility-report-${singleSelectAccessibilityReport.reportDate}.md`
400
+ downloadReport(
401
+ content,
402
+ filename,
403
+ 'text/markdown'
404
+ )
405
+ }}
406
+ />
407
+ <Button
408
+ text="Download JSON"
409
+ size={ButtonSize.SMALL}
410
+ onClick={() => {
411
+ const content =
412
+ generateAccessibilityReport(
413
+ singleSelectAccessibilityReport,
414
+ {
415
+ format: 'json',
416
+ includeTestResults,
417
+ includeRecommendations,
418
+ }
419
+ )
420
+ const filename = `singleselect-accessibility-report-${singleSelectAccessibilityReport.reportDate}.json`
421
+ downloadReport(
422
+ content,
423
+ filename,
424
+ 'application/json'
425
+ )
426
+ }}
427
+ />
428
+ </div>
429
+ </div>
430
+ </section>
431
+ )}
432
+
433
+ {/* Interactive Demo Section */}
434
+ <section className="space-y-6">
435
+ <div>
436
+ <h2 className="text-2xl font-bold mb-2">
437
+ Interactive Accessibility Demo
438
+ </h2>
439
+ <p className="text-gray-600">
440
+ This demo showcases WCAG 2.1 Level AA compliance
441
+ features. Use keyboard navigation (Tab, Enter,
442
+ Space, Arrow keys) and screen readers to experience
443
+ accessibility features.
444
+ </p>
445
+ </div>
446
+
447
+ {/* WCAG Principle 1: Perceivable */}
448
+ <div className="space-y-4">
449
+ <h3 className="text-xl font-semibold">
450
+ 1. Perceivable
451
+ </h3>
452
+
453
+ <div className="border-l-4 border-blue-500 pl-6 space-y-4">
454
+ <div>
455
+ <h4 className="text-lg font-semibold">
456
+ 1.1.1 Non-text Content (Level A)
457
+ </h4>
458
+ <p className="text-sm text-gray-600 mb-4">
459
+ SingleSelect trigger with proper label
460
+ association
461
+ </p>
462
+ <SingleSelect
463
+ label="Select Country"
464
+ placeholder="Choose a country"
465
+ items={demoItems}
466
+ selected={demoStates.selected}
467
+ onSelect={(value) =>
468
+ setDemoStates((prev) => ({
469
+ ...prev,
470
+ selected: value,
471
+ }))
472
+ }
473
+ />
474
+ </div>
475
+ </div>
476
+ </div>
477
+
478
+ {/* WCAG Principle 2: Operable */}
479
+ <div className="space-y-4">
480
+ <h3 className="text-xl font-semibold">2. Operable</h3>
481
+
482
+ <div className="border-l-4 border-green-500 pl-6 space-y-4">
483
+ <div>
484
+ <h4 className="text-lg font-semibold">
485
+ 2.1.1 Keyboard (Level A)
486
+ </h4>
487
+ <p className="text-sm text-gray-600 mb-4">
488
+ All functionality available via keyboard
489
+ (Tab, Enter, Space, Arrow keys, Escape)
490
+ </p>
491
+ <SingleSelect
492
+ label="Keyboard Navigation Demo"
493
+ placeholder="Tab to focus, then Enter/Space to open"
494
+ items={demoItems}
495
+ selected={demoStates.selected}
496
+ onSelect={(value) =>
497
+ setDemoStates((prev) => ({
498
+ ...prev,
499
+ selected: value,
500
+ }))
501
+ }
502
+ />
503
+ </div>
504
+
505
+ <div>
506
+ <h4 className="text-lg font-semibold">
507
+ 2.4.7 Focus Visible (Level AA)
508
+ </h4>
509
+ <p className="text-sm text-gray-600 mb-4">
510
+ Visible focus indicators
511
+ </p>
512
+ <SingleSelect
513
+ label="Focus Indicator Demo"
514
+ placeholder="Focus me with Tab"
515
+ items={demoItems}
516
+ selected={demoStates.selected}
517
+ onSelect={(value) =>
518
+ setDemoStates((prev) => ({
519
+ ...prev,
520
+ selected: value,
521
+ }))
522
+ }
523
+ />
524
+ </div>
525
+ </div>
526
+ </div>
527
+
528
+ {/* WCAG Principle 3: Understandable */}
529
+ <div className="space-y-4">
530
+ <h3 className="text-xl font-semibold">
531
+ 3. Understandable
532
+ </h3>
533
+
534
+ <div className="border-l-4 border-purple-500 pl-6 space-y-4">
535
+ <div>
536
+ <h4 className="text-lg font-semibold">
537
+ 3.3.2 Labels or Instructions (Level A)
538
+ </h4>
539
+ <p className="text-sm text-gray-600 mb-4">
540
+ Clear labels and hint text
541
+ </p>
542
+ <SingleSelect
543
+ label="Select with Hint"
544
+ hintText="Please select an option from the list"
545
+ placeholder="Choose an option"
546
+ items={demoItems}
547
+ selected={demoStates.selected}
548
+ onSelect={(value) =>
549
+ setDemoStates((prev) => ({
550
+ ...prev,
551
+ selected: value,
552
+ }))
553
+ }
554
+ />
555
+ </div>
556
+ </div>
557
+ </div>
558
+
559
+ {/* WCAG Principle 4: Robust */}
560
+ <div className="space-y-4">
561
+ <h3 className="text-xl font-semibold">4. Robust</h3>
562
+
563
+ <div className="border-l-4 border-red-500 pl-6 space-y-4">
564
+ <div>
565
+ <h4 className="text-lg font-semibold">
566
+ 4.1.2 Name, Role, Value (Level A)
567
+ </h4>
568
+ <p className="text-sm text-gray-600 mb-4">
569
+ SingleSelect state with aria-expanded and
570
+ aria-controls
571
+ </p>
572
+ <SingleSelect
573
+ label="State Demo"
574
+ placeholder="Select an option"
575
+ items={demoItems}
576
+ selected={demoStates.selected}
577
+ onSelect={(value) =>
578
+ setDemoStates((prev) => ({
579
+ ...prev,
580
+ selected: value,
581
+ }))
582
+ }
583
+ />
584
+ </div>
585
+
586
+ <div>
587
+ <h4 className="text-lg font-semibold">
588
+ 4.1.3 Status Messages (Level AA)
589
+ </h4>
590
+ <p className="text-sm text-gray-600 mb-4">
591
+ Error state and required field indicators
592
+ </p>
593
+ <div className="space-y-4">
594
+ <SingleSelect
595
+ label="Required Field"
596
+ placeholder="Select an option"
597
+ items={demoItems}
598
+ selected={demoStates.selected}
599
+ onSelect={(value) =>
600
+ setDemoStates((prev) => ({
601
+ ...prev,
602
+ selected: value,
603
+ }))
604
+ }
605
+ required={true}
606
+ />
607
+ <SingleSelect
608
+ label="Error State"
609
+ placeholder="Select an option"
610
+ items={demoItems}
611
+ selected={demoStates.selected}
612
+ onSelect={(value) =>
613
+ setDemoStates((prev) => ({
614
+ ...prev,
615
+ selected: value,
616
+ }))
617
+ }
618
+ error={true}
619
+ errorMessage="This field is required"
620
+ />
621
+ </div>
622
+ </div>
623
+ </div>
624
+ </div>
625
+ </section>
626
+
627
+ {/* WCAG Guidelines Coverage */}
628
+ <section className="bg-white border border-gray-200 rounded-lg p-6">
629
+ <h2 className="text-xl font-bold mb-4">
630
+ WCAG Guidelines Coverage
631
+ </h2>
632
+ <div className="grid grid-cols-1 md:grid-cols-3 gap-4">
633
+ <div className="bg-blue-50 border border-blue-200 rounded-lg p-4">
634
+ <h3 className="font-semibold text-blue-900 mb-2">
635
+ WCAG 2.0 (2008)
636
+ </h3>
637
+ <p className="text-xs text-blue-800 mb-2">
638
+ Foundation guidelines
639
+ </p>
640
+ <ul className="text-xs text-blue-700 space-y-1">
641
+ {report.wcagVersions['2.0'].map((item, idx) => (
642
+ <li key={idx}>• {item}</li>
643
+ ))}
644
+ </ul>
645
+ </div>
646
+ <div className="bg-green-50 border border-green-200 rounded-lg p-4">
647
+ <h3 className="font-semibold text-green-900 mb-2">
648
+ WCAG 2.1 (2018)
649
+ </h3>
650
+ <p className="text-xs text-green-800 mb-2">
651
+ Current standard
652
+ </p>
653
+ <ul className="text-xs text-green-700 space-y-1">
654
+ {report.wcagVersions['2.1'].map((item, idx) => (
655
+ <li key={idx}>• {item}</li>
656
+ ))}
657
+ </ul>
658
+ </div>
659
+ <div className="bg-purple-50 border border-purple-200 rounded-lg p-4">
660
+ <h3 className="font-semibold text-purple-900 mb-2">
661
+ WCAG 2.2 (2023)
662
+ </h3>
663
+ <p className="text-xs text-purple-800 mb-2">
664
+ Latest updates
665
+ </p>
666
+ <ul className="text-xs text-purple-700 space-y-1">
667
+ {report.wcagVersions['2.2'].map((item, idx) => (
668
+ <li key={idx}>• {item}</li>
669
+ ))}
670
+ </ul>
671
+ </div>
672
+ </div>
673
+ </section>
674
+
675
+ {/* AAA Compliance Summary */}
676
+ <section className="bg-gradient-to-r from-purple-50 to-blue-50 border-2 border-purple-300 rounded-lg p-6">
677
+ <h2 className="text-xl font-bold mb-4 text-purple-900">
678
+ AAA Compliance Summary
679
+ </h2>
680
+ <div className="grid grid-cols-1 md:grid-cols-3 gap-4 mb-4">
681
+ <div className="bg-green-100 border border-green-300 rounded-lg p-4">
682
+ <div className="text-2xl font-bold text-green-700 mb-1">
683
+ 6
684
+ </div>
685
+ <div className="text-sm font-semibold text-green-800">
686
+ Compliant Criteria
687
+ </div>
688
+ <div className="text-xs text-green-700 mt-1">
689
+ 1.4.8, 1.4.9, 2.1.3, 2.3.3, 3.2.5, 2.5.5
690
+ (height)
691
+ </div>
692
+ </div>
693
+ <div className="bg-red-100 border border-red-300 rounded-lg p-4">
694
+ <div className="text-2xl font-bold text-red-700 mb-1">
695
+ 1
696
+ </div>
697
+ <div className="text-sm font-semibold text-red-800">
698
+ Non-Compliant
699
+ </div>
700
+ <div className="text-xs text-red-700 mt-1">
701
+ 1.4.6 Contrast (Enhanced) - 7:1 required
702
+ </div>
703
+ </div>
704
+ <div className="bg-yellow-100 border border-yellow-300 rounded-lg p-4">
705
+ <div className="text-2xl font-bold text-yellow-700 mb-1">
706
+ 2
707
+ </div>
708
+ <div className="text-sm font-semibold text-yellow-800">
709
+ Needs Action
710
+ </div>
711
+ <div className="text-xs text-yellow-700 mt-1">
712
+ 2.5.5 (width verification), 3.3.6 (app-level)
713
+ </div>
714
+ </div>
715
+ </div>
716
+ <div className="bg-white border border-purple-200 rounded-lg p-4">
717
+ <h3 className="font-semibold text-purple-900 mb-2">
718
+ To Achieve Full AAA Compliance:
719
+ </h3>
720
+ <ol className="list-decimal list-inside text-sm text-purple-800 space-y-2">
721
+ <li>
722
+ <strong>
723
+ Redesign colors for 7:1 contrast (WCAG
724
+ 1.4.6):
725
+ </strong>{' '}
726
+ Darken label text (gray[700] →
727
+ gray[800]/gray[900]), darken placeholder
728
+ (gray[400] → gray[600]+), verify error labels
729
+ meet 7:1
730
+ </li>
731
+ <li>
732
+ <strong>
733
+ Verify touch target width ≥44px (WCAG
734
+ 2.5.5):
735
+ </strong>{' '}
736
+ Use browser DevTools to measure element width +
737
+ padding-left + padding-right. Height already
738
+ verified (Small=50px, Medium=56px, Large=72px)
739
+ </li>
740
+ <li>
741
+ <strong>
742
+ Implement confirmation patterns (WCAG
743
+ 3.3.6):
744
+ </strong>{' '}
745
+ Add application-level confirmation dialogs for
746
+ critical actions (legal agreements, payments,
747
+ data deletion)
748
+ </li>
749
+ </ol>
750
+ </div>
751
+ </section>
752
+
753
+ {/* WCAG Criteria Overview */}
754
+ <section className="bg-white border border-gray-200 rounded-lg p-6">
755
+ <h2 className="text-xl font-bold mb-4">
756
+ WCAG Success Criteria Evaluation
757
+ </h2>
758
+ <div className="space-y-4">
759
+ <div>
760
+ <h3 className="font-semibold text-gray-900 mb-2">
761
+ Level A Criteria (15 evaluated)
762
+ </h3>
763
+ <p className="text-sm text-gray-600 mb-2">
764
+ Minimum requirements for basic accessibility.
765
+ </p>
766
+ <div className="bg-blue-50 border border-blue-200 rounded p-3">
767
+ <p className="text-xs font-medium text-blue-900 mb-1">
768
+ Criteria:
769
+ </p>
770
+ <p className="text-xs text-blue-800">
771
+ {report.testMethodology.wcagLevels.A.join(
772
+ ', '
773
+ )}
774
+ </p>
775
+ </div>
776
+ </div>
777
+ <div>
778
+ <h3 className="font-semibold text-gray-900 mb-2">
779
+ Level AA Criteria (8 evaluated)
780
+ </h3>
781
+ <p className="text-sm text-gray-600 mb-2">
782
+ Enhanced accessibility requirements.
783
+ </p>
784
+ <div className="bg-green-50 border border-green-200 rounded p-3">
785
+ <p className="text-xs font-medium text-green-900 mb-1">
786
+ Criteria:
787
+ </p>
788
+ <p className="text-xs text-green-800">
789
+ {report.testMethodology.wcagLevels.AA.join(
790
+ ', '
791
+ )}
792
+ </p>
793
+ </div>
794
+ </div>
795
+ <div>
796
+ <h3 className="font-semibold text-gray-900 mb-2">
797
+ Level AAA Criteria (9 evaluated)
798
+ </h3>
799
+ <p className="text-sm text-gray-600 mb-2">
800
+ Enhanced accessibility requirements. Currently
801
+ partially compliant - see issues below.
802
+ </p>
803
+ <div className="bg-purple-50 border border-purple-200 rounded p-3">
804
+ <p className="text-xs font-medium text-purple-900 mb-1">
805
+ Criteria:
806
+ </p>
807
+ <p className="text-xs text-purple-800">
808
+ {report.testMethodology.wcagLevels.AAA.join(
809
+ ', '
810
+ )}
811
+ </p>
812
+ <p className="text-xs text-purple-700 mt-2 italic">
813
+ Note: Level AAA is not required for Level AA
814
+ conformance. To achieve full AAA compliance,
815
+ see recommendations section for required
816
+ changes.
817
+ </p>
818
+ </div>
819
+ </div>
820
+ </div>
821
+ </section>
822
+
823
+ {/* Testing Methodology */}
824
+ <section className="bg-white border border-gray-200 rounded-lg p-6">
825
+ <h2 className="text-xl font-bold mb-4">
826
+ Testing Methodology & Verification
827
+ </h2>
828
+ <div className="space-y-6">
829
+ <div>
830
+ <h3 className="font-semibold text-gray-900 mb-3 flex items-center gap-2">
831
+ <span className="text-green-600">✓</span>
832
+ Automated Testing
833
+ </h3>
834
+ <div className="bg-gray-50 rounded-lg p-4">
835
+ <ul className="list-disc list-inside space-y-2 text-sm text-gray-700">
836
+ {report.testMethodology.automated.map(
837
+ (test, index) => (
838
+ <li key={index}>{test}</li>
839
+ )
840
+ )}
841
+ </ul>
842
+ </div>
843
+ </div>
844
+ <div>
845
+ <h3 className="font-semibold text-gray-900 mb-3 flex items-center gap-2">
846
+ <span className="text-blue-600">✓</span>
847
+ Manual Testing
848
+ </h3>
849
+ <div className="bg-gray-50 rounded-lg p-4">
850
+ <ul className="list-disc list-inside space-y-2 text-sm text-gray-700">
851
+ {report.testMethodology.manual.map(
852
+ (test, index) => (
853
+ <li key={index}>{test}</li>
854
+ )
855
+ )}
856
+ </ul>
857
+ </div>
858
+ </div>
859
+ <div>
860
+ <h3 className="font-semibold text-gray-900 mb-3 flex items-center gap-2">
861
+ <span className="text-purple-600">🔧</span>
862
+ Verification Tools
863
+ </h3>
864
+ <div className="bg-gray-50 rounded-lg p-4">
865
+ <ul className="list-disc list-inside space-y-2 text-sm text-gray-700">
866
+ {report.testMethodology.verificationTools.map(
867
+ (tool, index) => (
868
+ <li key={index}>{tool}</li>
869
+ )
870
+ )}
871
+ </ul>
872
+ </div>
873
+ </div>
874
+ </div>
875
+ </section>
876
+
877
+ {/* Verification Instructions */}
878
+ <section className="bg-blue-50 border border-blue-200 rounded-lg p-6">
879
+ <h2 className="text-xl font-bold mb-4">
880
+ How to Verify Compliance
881
+ </h2>
882
+ <div className="space-y-4 text-sm">
883
+ <div>
884
+ <h3 className="font-semibold text-blue-900 mb-2">
885
+ 1. Color Contrast Verification (1.4.3, 1.4.11)
886
+ </h3>
887
+ <ol className="list-decimal list-inside space-y-1 text-blue-800 ml-2">
888
+ <li>
889
+ Open WebAIM Contrast Checker:
890
+ https://webaim.org/resources/contrastchecker/
891
+ </li>
892
+ <li>
893
+ Test each SingleSelect state:
894
+ <ul className="list-disc list-inside ml-4 mt-1">
895
+ <li>
896
+ Label text: #2B303B on #FFFFFF
897
+ (should be ≥4.5:1)
898
+ </li>
899
+ <li>
900
+ Placeholder text: #99A0AE on #FFFFFF
901
+ (should be ≥4.5:1)
902
+ </li>
903
+ <li>
904
+ Disabled states: Verify lighter
905
+ colors meet 4.5:1
906
+ </li>
907
+ </ul>
908
+ </li>
909
+ <li>
910
+ Test focus indicators: Outline colors
911
+ against trigger backgrounds (should be ≥3:1)
912
+ </li>
913
+ <li>
914
+ Document results and update report status
915
+ </li>
916
+ </ol>
917
+ </div>
918
+ <div>
919
+ <h3 className="font-semibold text-blue-900 mb-2">
920
+ 2. Keyboard Navigation Verification (2.1.1,
921
+ 2.4.7)
922
+ </h3>
923
+ <ol className="list-decimal list-inside space-y-1 text-blue-800 ml-2">
924
+ <li>
925
+ Navigate to page with SingleSelect using
926
+ only keyboard (Tab key)
927
+ </li>
928
+ <li>
929
+ Verify trigger receives focus in logical
930
+ order
931
+ </li>
932
+ <li>
933
+ Verify disabled SingleSelect is skipped in
934
+ tab order
935
+ </li>
936
+ <li>
937
+ Press Enter or Space on focused trigger -
938
+ verify menu opens
939
+ </li>
940
+ <li>
941
+ Press Arrow keys (Up/Down) in menu - verify
942
+ navigation
943
+ </li>
944
+ <li>
945
+ Press Enter on menu item - verify selection
946
+ </li>
947
+ <li>Press Escape - verify menu closes</li>
948
+ <li>
949
+ Verify focus indicator is clearly visible
950
+ </li>
951
+ </ol>
952
+ </div>
953
+ <div>
954
+ <h3 className="font-semibold text-blue-900 mb-2">
955
+ 3. Screen Reader Verification (4.1.2, 4.1.3)
956
+ </h3>
957
+ <ol className="list-decimal list-inside space-y-1 text-blue-800 ml-2">
958
+ <li>
959
+ Enable screen reader (NVDA/JAWS/VoiceOver)
960
+ </li>
961
+ <li>
962
+ Navigate to SingleSelect using screen reader
963
+ navigation
964
+ </li>
965
+ <li>
966
+ Verify trigger announces: "Label, button,
967
+ collapsed" or "expanded"
968
+ </li>
969
+ <li>
970
+ Verify selected value is announced when
971
+ present
972
+ </li>
973
+ <li>
974
+ Verify required SingleSelect announces
975
+ required state
976
+ </li>
977
+ <li>
978
+ Verify error state announces error
979
+ information
980
+ </li>
981
+ <li>
982
+ Verify hint text is announced via
983
+ aria-describedby
984
+ </li>
985
+ <li>Verify clicking label focuses trigger</li>
986
+ </ol>
987
+ </div>
988
+ <div>
989
+ <h3 className="font-semibold text-blue-900 mb-2">
990
+ 4. Touch Target Size Verification (WCAG 2.5.5
991
+ AAA, 2.5.8 AA)
992
+ </h3>
993
+ <p className="text-sm text-blue-800 mb-2">
994
+ <strong>How to Test:</strong> Use browser
995
+ DevTools to measure the clickable area
996
+ (including padding).
997
+ </p>
998
+ <ol className="list-decimal list-inside space-y-1 text-blue-800 ml-2">
999
+ <li>
1000
+ <strong>Open Browser DevTools</strong> (F12
1001
+ or Right-click → Inspect)
1002
+ </li>
1003
+ <li>
1004
+ <strong>
1005
+ Select the trigger button element
1006
+ </strong>{' '}
1007
+ in the Elements panel
1008
+ </li>
1009
+ <li>
1010
+ <strong>Check Computed Styles:</strong> Look
1011
+ for padding-top, padding-bottom,
1012
+ padding-left, padding-right
1013
+ </li>
1014
+ <li>
1015
+ <strong>Calculate Clickable Area:</strong>
1016
+ <ul className="list-disc list-inside ml-4 mt-1">
1017
+ <li>
1018
+ Clickable Height = element height +
1019
+ padding-top + padding-bottom
1020
+ </li>
1021
+ <li>
1022
+ Clickable Width = element width +
1023
+ padding-left + padding-right
1024
+ </li>
1025
+ </ul>
1026
+ </li>
1027
+ <li>
1028
+ <strong>Verify Requirements:</strong>
1029
+ <ul className="list-disc list-inside ml-4 mt-1">
1030
+ <li>
1031
+ Level AA (WCAG 2.5.8): Minimum
1032
+ 24x24px
1033
+ </li>
1034
+ <li>
1035
+ Level AAA (WCAG 2.5.5): Minimum
1036
+ 44x44px
1037
+ </li>
1038
+ </ul>
1039
+ </li>
1040
+ <li>
1041
+ <strong>
1042
+ Alternative Method - Console:
1043
+ </strong>
1044
+ <pre className="bg-blue-100 p-2 rounded mt-2 text-xs overflow-x-auto">
1045
+ {`const trigger = document.querySelector('button[aria-haspopup="menu"]');
1046
+ const styles = window.getComputedStyle(trigger);
1047
+ const rect = trigger.getBoundingClientRect();
1048
+ const clickableHeight = rect.height +
1049
+ parseFloat(styles.paddingTop) +
1050
+ parseFloat(styles.paddingBottom);
1051
+ console.log('Clickable Height:', clickableHeight);
1052
+ // Should be ≥44px for AAA, ≥24px for AA`}
1053
+ </pre>
1054
+ </li>
1055
+ </ol>
1056
+ </div>
1057
+ <div>
1058
+ <h3 className="font-semibold text-blue-900 mb-2">
1059
+ 5. Automated Testing with axe-core
1060
+ </h3>
1061
+ <ol className="list-decimal list-inside space-y-1 text-blue-800 ml-2">
1062
+ <li>
1063
+ Run: npm test
1064
+ SingleSelect.accessibility.test.tsx
1065
+ </li>
1066
+ <li>Review axe-core violations</li>
1067
+ <li>
1068
+ Verify all rules pass: button-name,
1069
+ keyboard-navigation,
1070
+ aria-required-attributes
1071
+ </li>
1072
+ <li>
1073
+ Check color-contrast warnings (may require
1074
+ manual verification)
1075
+ </li>
1076
+ </ol>
1077
+ </div>
1078
+ </div>
1079
+ </section>
1080
+
1081
+ {/* AAA Compliance Gaps */}
1082
+ <section className="bg-red-50 border-2 border-red-300 rounded-lg p-6">
1083
+ <h2 className="text-xl font-bold mb-4 text-red-900">
1084
+ AAA Compliance Gaps & Requirements
1085
+ </h2>
1086
+ <div className="space-y-4">
1087
+ <div className="bg-white border border-red-200 rounded-lg p-4">
1088
+ <h3 className="font-semibold text-red-900 mb-2 flex items-center gap-2">
1089
+ <span className="text-xl">❌</span>
1090
+ <span>
1091
+ 1. WCAG 1.4.6 Contrast (Enhanced) -
1092
+ NON-COMPLIANT
1093
+ </span>
1094
+ </h3>
1095
+ <p className="text-sm text-red-800 mb-2">
1096
+ <strong>Requirement:</strong> Text must have 7:1
1097
+ contrast ratio for AAA (vs 4.5:1 for AA)
1098
+ </p>
1099
+ <p className="text-sm text-red-700 mb-2">
1100
+ <strong>Current Status:</strong> Designed for AA
1101
+ standard (4.5:1). Colors need adjustment for
1102
+ AAA.
1103
+ </p>
1104
+ <p className="text-sm text-red-700 mb-2">
1105
+ <strong>Action Required:</strong> Redesign color
1106
+ combinations:
1107
+ </p>
1108
+ <ul className="list-disc list-inside text-sm text-red-700 ml-4 space-y-1">
1109
+ <li>
1110
+ Label text: Darken from gray[700] (#2B303B)
1111
+ to gray[800] (#222530) or gray[900]
1112
+ (#181B25) for 7:1 with white background
1113
+ </li>
1114
+ <li>
1115
+ Placeholder text: Darken from gray[400]
1116
+ (#99A0AE) to gray[600] (#525866) or darker
1117
+ for 7:1
1118
+ </li>
1119
+ <li>
1120
+ Selected value: Ensure 7:1 contrast
1121
+ (currently gray[700])
1122
+ </li>
1123
+ <li>
1124
+ Error labels: Verify red[600] (#E7000B)
1125
+ meets 7:1 with white background
1126
+ </li>
1127
+ </ul>
1128
+ <p className="text-xs text-red-600 mt-2 italic">
1129
+ Verify with WebAIM Contrast Checker:
1130
+ https://webaim.org/resources/contrastchecker/
1131
+ </p>
1132
+ </div>
1133
+
1134
+ <div className="bg-white border border-orange-200 rounded-lg p-4">
1135
+ <h3 className="font-semibold text-orange-900 mb-2 flex items-center gap-2">
1136
+ <span className="text-xl">⚠️</span>
1137
+ <span>
1138
+ 2. WCAG 2.5.5 Target Size - VERIFICATION
1139
+ REQUIRED
1140
+ </span>
1141
+ </h3>
1142
+ <p className="text-sm text-orange-800 mb-2">
1143
+ <strong>Requirement:</strong> Interactive target
1144
+ area must be ≥44x44px (both height AND width)
1145
+ </p>
1146
+ <p className="text-sm text-orange-700 mb-2">
1147
+ <strong>Current Status:</strong> HEIGHT verified
1148
+ via calculations (Small=50px ✓, Medium=56px ✓,
1149
+ Large=72px ✓). WIDTH requires manual
1150
+ verification.
1151
+ </p>
1152
+ <p className="text-sm text-orange-700 mb-2">
1153
+ <strong>Action Required:</strong> Verify trigger
1154
+ width meets 44px minimum:
1155
+ </p>
1156
+ <ol className="list-decimal list-inside text-sm text-orange-700 ml-4 space-y-1">
1157
+ <li>Open browser DevTools (F12)</li>
1158
+ <li>Select trigger button element</li>
1159
+ <li>
1160
+ Check computed styles: padding-left,
1161
+ padding-right
1162
+ </li>
1163
+ <li>
1164
+ Calculate: element width + padding-left +
1165
+ padding-right ≥ 44px
1166
+ </li>
1167
+ <li>
1168
+ If less than 44px, extend padding-x or add
1169
+ min-width: 44px
1170
+ </li>
1171
+ </ol>
1172
+ <p className="text-xs text-orange-600 mt-2 italic">
1173
+ Console command:{' '}
1174
+ <code className="bg-orange-100 px-1 rounded">
1175
+ getBoundingClientRect().width +
1176
+ parseFloat(getComputedStyle(element).paddingLeft)
1177
+ +
1178
+ parseFloat(getComputedStyle(element).paddingRight)
1179
+ </code>
1180
+ </p>
1181
+ </div>
1182
+
1183
+ <div className="bg-white border border-yellow-200 rounded-lg p-4">
1184
+ <h3 className="font-semibold text-yellow-900 mb-2 flex items-center gap-2">
1185
+ <span className="text-xl">⚠️</span>
1186
+ <span>
1187
+ 3. WCAG 3.3.6 Error Prevention (All) -
1188
+ APPLICATION-DEPENDENT
1189
+ </span>
1190
+ </h3>
1191
+ <p className="text-sm text-yellow-800 mb-2">
1192
+ <strong>Requirement:</strong> For critical
1193
+ actions, implement confirmation patterns
1194
+ (reversible, checked, or confirmed)
1195
+ </p>
1196
+ <p className="text-sm text-yellow-700 mb-2">
1197
+ <strong>Current Status:</strong> Component
1198
+ provides error states (aria-invalid="true") and
1199
+ required states, but confirmation patterns must
1200
+ be implemented at application level.
1201
+ </p>
1202
+ <p className="text-sm text-yellow-700 mb-2">
1203
+ <strong>Action Required:</strong> Implement
1204
+ application-level confirmation dialogs for:
1205
+ </p>
1206
+ <ul className="list-disc list-inside text-sm text-yellow-700 ml-4 space-y-1">
1207
+ <li>Legal agreements (terms acceptance)</li>
1208
+ <li>
1209
+ Financial transactions (payment
1210
+ confirmations)
1211
+ </li>
1212
+ <li>Data deletion or modification</li>
1213
+ <li>Any irreversible actions</li>
1214
+ </ul>
1215
+ <p className="text-xs text-yellow-600 mt-2 italic">
1216
+ Component provides necessary hooks (error
1217
+ states, required states) but final
1218
+ implementation is application-dependent.
1219
+ </p>
1220
+ </div>
1221
+
1222
+ <div className="bg-green-50 border border-green-300 rounded-lg p-4">
1223
+ <h3 className="font-semibold text-green-900 mb-2">
1224
+ ✅ Currently Compliant AAA Criteria (6/9)
1225
+ </h3>
1226
+ <ul className="list-disc list-inside text-sm text-green-800 space-y-1">
1227
+ <li>
1228
+ 1.4.8 Visual Presentation - Text scales up
1229
+ to 200%
1230
+ </li>
1231
+ <li>
1232
+ 1.4.9 Images of Text - No images of text
1233
+ used
1234
+ </li>
1235
+ <li>
1236
+ 2.1.3 Keyboard (No Exception) - Full
1237
+ keyboard access
1238
+ </li>
1239
+ <li>
1240
+ 2.3.3 Animation from Interactions - Respects
1241
+ reduced motion
1242
+ </li>
1243
+ <li>
1244
+ 3.2.5 Change on Request - All changes
1245
+ require user action
1246
+ </li>
1247
+ <li>
1248
+ 2.5.5 Target Size (Height) - Verified via
1249
+ calculations
1250
+ </li>
1251
+ </ul>
1252
+ </div>
1253
+ </div>
1254
+ </section>
1255
+
1256
+ {/* Testing Checklist */}
1257
+ <section className="bg-gray-50 border border-gray-200 rounded-lg p-6">
1258
+ <h2 className="text-xl font-bold mb-4">
1259
+ Accessibility Testing Checklist
1260
+ </h2>
1261
+ <ul className="space-y-2 text-sm">
1262
+ <li className="flex items-start">
1263
+ <Check className="w-5 h-5 text-green-600 mr-2 flex-shrink-0 mt-0.5" />
1264
+ <span>
1265
+ <strong>Keyboard Navigation:</strong> All
1266
+ SingleSelect functionality reachable and
1267
+ activatable with keyboard (Tab, Enter, Space,
1268
+ Arrow keys, Escape)
1269
+ </span>
1270
+ </li>
1271
+ <li className="flex items-start">
1272
+ <Check className="w-5 h-5 text-green-600 mr-2 flex-shrink-0 mt-0.5" />
1273
+ <span>
1274
+ <strong>Screen Reader:</strong> SingleSelect
1275
+ announced with accessible name, role, and state
1276
+ (aria-expanded, aria-controls)
1277
+ </span>
1278
+ </li>
1279
+ <li className="flex items-start">
1280
+ <Check className="w-5 h-5 text-green-600 mr-2 flex-shrink-0 mt-0.5" />
1281
+ <span>
1282
+ <strong>Label Association:</strong> Labels
1283
+ properly associated with trigger (htmlFor/id)
1284
+ </span>
1285
+ </li>
1286
+ <li className="flex items-start">
1287
+ <Check className="w-5 h-5 text-green-600 mr-2 flex-shrink-0 mt-0.5" />
1288
+ <span>
1289
+ <strong>Menu Items:</strong> Proper menuitem
1290
+ roles with keyboard navigation (Arrow keys)
1291
+ </span>
1292
+ </li>
1293
+ <li className="flex items-start">
1294
+ <Check className="w-5 h-5 text-yellow-600 mr-2 flex-shrink-0 mt-0.5" />
1295
+ <span>
1296
+ <strong>Focus Indicators:</strong> Clear,
1297
+ visible focus outline (VERIFY: contrast ratio
1298
+ ≥3:1)
1299
+ </span>
1300
+ </li>
1301
+ <li className="flex items-start">
1302
+ <Check className="w-5 h-5 text-yellow-600 mr-2 flex-shrink-0 mt-0.5" />
1303
+ <span>
1304
+ <strong>Color Contrast:</strong> Text meets WCAG
1305
+ AA standards (VERIFY: ≥4.5:1 for normal text)
1306
+ </span>
1307
+ </li>
1308
+ <li className="flex items-start">
1309
+ <Check className="w-5 h-5 text-yellow-600 mr-2 flex-shrink-0 mt-0.5" />
1310
+ <span>
1311
+ <strong>Touch Targets:</strong> HEIGHT verified
1312
+ via calculations (Small=50px, Medium=56px,
1313
+ Large=72px all exceed 44px ✓). WIDTH requires
1314
+ manual verification using browser DevTools -
1315
+ verify element width + padding-left +
1316
+ padding-right ≥ 44px
1317
+ </span>
1318
+ </li>
1319
+ <li className="flex items-start">
1320
+ <Check className="w-5 h-5 text-red-600 mr-2 flex-shrink-0 mt-0.5" />
1321
+ <span>
1322
+ <strong>AAA Contrast:</strong> Currently
1323
+ designed for AA (4.5:1). For AAA compliance
1324
+ (WCAG 1.4.6), requires 7:1 contrast ratio -
1325
+ REDESIGN REQUIRED
1326
+ </span>
1327
+ </li>
1328
+ <li className="flex items-start">
1329
+ <Check className="w-5 h-5 text-yellow-600 mr-2 flex-shrink-0 mt-0.5" />
1330
+ <span>
1331
+ <strong>AAA Error Prevention:</strong>{' '}
1332
+ Application-level confirmation patterns required
1333
+ for critical actions (WCAG 3.3.6) -
1334
+ APPLICATION-DEPENDENT
1335
+ </span>
1336
+ </li>
1337
+ <li className="flex items-start">
1338
+ <Check className="w-5 h-5 text-green-600 mr-2 flex-shrink-0 mt-0.5" />
1339
+ <span>
1340
+ <strong>Required State:</strong> Indicated with
1341
+ asterisk and label association
1342
+ </span>
1343
+ </li>
1344
+ <li className="flex items-start">
1345
+ <Check className="w-5 h-5 text-green-600 mr-2 flex-shrink-0 mt-0.5" />
1346
+ <span>
1347
+ <strong>Error State:</strong> Communicated via
1348
+ aria-invalid="true" attribute (WCAG 4.1.3) and
1349
+ visual styling (red border and label color)
1350
+ </span>
1351
+ </li>
1352
+ <li className="flex items-start">
1353
+ <Check className="w-5 h-5 text-green-600 mr-2 flex-shrink-0 mt-0.5" />
1354
+ <span>
1355
+ <strong>Disabled State:</strong> Removed from
1356
+ tab order and clearly indicated
1357
+ </span>
1358
+ </li>
1359
+ <li className="flex items-start">
1360
+ <Check className="w-5 h-5 text-green-600 mr-2 flex-shrink-0 mt-0.5" />
1361
+ <span>
1362
+ <strong>Search Input:</strong> Has proper
1363
+ aria-label for accessibility
1364
+ </span>
1365
+ </li>
1366
+ </ul>
1367
+ </section>
1368
+ </div>
1369
+ </div>
1370
+ )
1371
+ })
1372
+
1373
+ SingleSelectAccessibility.displayName = 'SingleSelectAccessibility'
1374
+
1375
+ export default SingleSelectAccessibility