pixelize-design-library 2.4.2-beta.66 → 2.4.2-beta.68

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 (309) hide show
  1. package/CHANGELOG.md +71 -4
  2. package/COMPONENT-GOTCHAS.md +105 -66
  3. package/DESIGN-GUIDE.md +18 -6
  4. package/README.md +14 -11
  5. package/dist/Components/Accordion/AccordionProps.d.ts +10 -0
  6. package/dist/Components/AddressCard/AddressCardProps.d.ts +15 -0
  7. package/dist/Components/Apexcharts/ApexAreaChart/ApexAreaChartProps.d.ts +11 -0
  8. package/dist/Components/Apexcharts/ApexBarChart/ApexBarChartProps.d.ts +17 -1
  9. package/dist/Components/Apexcharts/ApexLineChart/ApexLineChartProps.d.ts +10 -0
  10. package/dist/Components/Apexcharts/ApexPieChart/ApexPieChartProps.d.ts +14 -0
  11. package/dist/Components/Apexcharts/ApexPolarCharts/ApexPolarChartsProps.d.ts +9 -0
  12. package/dist/Components/Apexcharts/ApexRadialChart/ApexRadialChartProps.d.ts +10 -0
  13. package/dist/Components/AppSwitcher/AppSwitcher.d.ts +1 -0
  14. package/dist/Components/AppSwitcher/AppSwitcher.js +1 -0
  15. package/dist/Components/AppSwitcher/AppSwitcherProps.d.ts +23 -0
  16. package/dist/Components/AppSwitcher/pixelizeSuite.d.ts +1 -0
  17. package/dist/Components/AppearanceSettings/AppearanceSettings.d.ts +1 -0
  18. package/dist/Components/AppearanceSettings/AppearanceSettings.js +1 -0
  19. package/dist/Components/AppearanceSettings/AppearanceSettingsProps.d.ts +11 -0
  20. package/dist/Components/AudioRecorder/AudioRecorder.d.ts +1 -0
  21. package/dist/Components/AudioRecorder/AudioRecorder.js +1 -0
  22. package/dist/Components/AudioRecorder/AudioRecorderProps.d.ts +6 -0
  23. package/dist/Components/Avatar/AvatarGroup.d.ts +1 -0
  24. package/dist/Components/Avatar/AvatarGroup.js +1 -0
  25. package/dist/Components/Avatar/AvatarGroupProps.d.ts +2 -0
  26. package/dist/Components/Avatar/AvatarProps.d.ts +2 -2
  27. package/dist/Components/Avatar/avatarColorway.d.ts +1 -0
  28. package/dist/Components/BagBar/BagBarProps.d.ts +8 -0
  29. package/dist/Components/BulkSelectionBar/BulkSelectionBar.d.ts +1 -0
  30. package/dist/Components/BulkSelectionBar/BulkSelectionBar.js +1 -0
  31. package/dist/Components/BulkSelectionBar/BulkSelectionBarProps.d.ts +6 -0
  32. package/dist/Components/Button/Button.js +1 -0
  33. package/dist/Components/Button/ButtonProps.d.ts +3 -0
  34. package/dist/Components/ButtonGroupIcon/ButtonGroupIcon.d.ts +1 -0
  35. package/dist/Components/ButtonGroupIcon/ButtonGroupIcon.js +1 -0
  36. package/dist/Components/ButtonGroupIcon/ButtonGroupIconProps.d.ts +19 -0
  37. package/dist/Components/CalendarGrid/CalendarGrid.d.ts +1 -0
  38. package/dist/Components/CalendarGrid/CalendarGrid.js +1 -0
  39. package/dist/Components/CalendarGrid/CalendarGridProps.d.ts +11 -0
  40. package/dist/Components/CalendarGrid/calendarMath.d.ts +13 -0
  41. package/dist/Components/Card/CardProps.d.ts +4 -0
  42. package/dist/Components/Card/PaymentCard/PaymentCard.d.ts +1 -0
  43. package/dist/Components/Card/PaymentCard/PaymentCard.js +1 -0
  44. package/dist/Components/Card/PaymentCard/PaymentCardProps.d.ts +19 -0
  45. package/dist/Components/CartItem/CartItemProps.d.ts +10 -0
  46. package/dist/Components/Checkbox/CheckboxProps.d.ts +1 -0
  47. package/dist/Components/ChoiceCard/ChoiceCard.d.ts +1 -0
  48. package/dist/Components/ChoiceCard/ChoiceCard.js +1 -0
  49. package/dist/Components/ChoiceCard/ChoiceCardGroup.d.ts +1 -0
  50. package/dist/Components/ChoiceCard/ChoiceCardGroup.js +1 -0
  51. package/dist/Components/ChoiceCard/ChoiceCardProps.d.ts +3 -0
  52. package/dist/Components/ConfirmDialog/ConfirmDialog.d.ts +1 -0
  53. package/dist/Components/ConfirmDialog/ConfirmDialog.js +1 -0
  54. package/dist/Components/ConfirmDialog/ConfirmDialogProps.d.ts +5 -0
  55. package/dist/Components/ContactForm/ContactFormProps.d.ts +13 -0
  56. package/dist/Components/CouponField/CouponFieldProps.d.ts +16 -0
  57. package/dist/Components/CustomModulesTable/CustomModulesTable.d.ts +1 -0
  58. package/dist/Components/CustomModulesTable/CustomModulesTable.js +1 -0
  59. package/dist/Components/CustomModulesTable/CustomModulesTableProps.d.ts +17 -0
  60. package/dist/Components/CustomModulesTable/DeleteModuleModal.d.ts +1 -0
  61. package/dist/Components/CustomModulesTable/DeleteModuleModal.js +1 -0
  62. package/dist/Components/CustomModulesTable/EditModuleModal.d.ts +1 -0
  63. package/dist/Components/CustomModulesTable/EditModuleModal.js +1 -0
  64. package/dist/Components/DatePicker/DatePickerProps.d.ts +7 -1
  65. package/dist/Components/DetailSections/DetailSectionsProps.d.ts +22 -0
  66. package/dist/Components/Drawer/DrawerProps.d.ts +1 -1
  67. package/dist/Components/Dropdown/DropdownProps.d.ts +1 -0
  68. package/dist/Components/Editor/EditorProps.d.ts +33 -0
  69. package/dist/Components/Editor/editorTokens.d.ts +3 -0
  70. package/dist/Components/EmailCards/VerifyEmailOtp/VerifyEmailOtpProps.d.ts +8 -0
  71. package/dist/Components/FilePreview/FilePreviewProps.d.ts +4 -0
  72. package/dist/Components/FileUploader/FileUploaderProps.d.ts +1 -0
  73. package/dist/Components/FilterBar/FilterBarProps.d.ts +2 -0
  74. package/dist/Components/FormDrawer/FormDrawer.d.ts +1 -0
  75. package/dist/Components/FormDrawer/FormDrawer.js +1 -0
  76. package/dist/Components/FormDrawer/FormDrawerProps.d.ts +3 -0
  77. package/dist/Components/FormField/FormField.d.ts +1 -0
  78. package/dist/Components/FormField/FormField.js +1 -0
  79. package/dist/Components/FormField/FormFieldProps.d.ts +4 -0
  80. package/dist/Components/Header/Header.d.ts +1 -0
  81. package/dist/Components/Header/Header.js +1 -0
  82. package/dist/Components/Header/HeaderActions.d.ts +16 -0
  83. package/dist/Components/Header/HeaderActions.js +1 -0
  84. package/dist/Components/Header/HeaderProps.d.ts +22 -0
  85. package/dist/Components/Header/components/desktopMenu.d.ts +1 -0
  86. package/dist/Components/Header/components/desktopMenu.js +1 -0
  87. package/dist/Components/Header/components/mobileMenu.d.ts +1 -0
  88. package/dist/Components/Header/components/mobileMenu.js +1 -0
  89. package/dist/Components/KanbanBoard/KanbanActions/KanbanActions.d.ts +1 -1
  90. package/dist/Components/KanbanBoard/KanbanActions/KanbanActions.js +1 -1
  91. package/dist/Components/KanbanBoard/KanbanBoardProps.d.ts +11 -0
  92. package/dist/Components/Kbd/Kbd.d.ts +1 -0
  93. package/dist/Components/Kbd/Kbd.js +1 -0
  94. package/dist/Components/Kbd/KbdProps.d.ts +4 -0
  95. package/dist/Components/LauncherTrigger/LauncherTrigger.d.ts +1 -0
  96. package/dist/Components/LauncherTrigger/LauncherTrigger.js +1 -0
  97. package/dist/Components/LauncherTrigger/LauncherTriggerProps.d.ts +1 -0
  98. package/dist/Components/LimitReachedModal/LimitReachedModal.d.ts +1 -0
  99. package/dist/Components/LimitReachedModal/LimitReachedModal.js +1 -0
  100. package/dist/Components/LimitReachedModal/LimitReachedModalProps.d.ts +7 -0
  101. package/dist/Components/Loading/LoadingProps.d.ts +2 -0
  102. package/dist/Components/MediaGallery/MediaGalleryProps.d.ts +7 -1
  103. package/dist/Components/MediaGallery/MediaLightboxProps.d.ts +5 -0
  104. package/dist/Components/MediaViewer/components/MediaAudioPlayer.d.ts +1 -0
  105. package/dist/Components/MediaViewer/components/MediaAudioPlayer.js +1 -0
  106. package/dist/Components/MediaViewer/components/MediaDocumentStage.d.ts +1 -0
  107. package/dist/Components/MediaViewer/components/MediaDocumentStage.js +1 -0
  108. package/dist/Components/MediaViewer/components/MediaImageViewer.d.ts +1 -0
  109. package/dist/Components/MediaViewer/components/MediaImageViewer.js +1 -0
  110. package/dist/Components/MediaViewer/components/MediaVideoPlayer.d.ts +1 -0
  111. package/dist/Components/MediaViewer/components/MediaVideoPlayer.js +1 -0
  112. package/dist/Components/MediaViewer/components/MediaVideoPlayerProps.d.ts +1 -0
  113. package/dist/Components/MediaViewer/hooks/useFileViewer.d.ts +1 -0
  114. package/dist/Components/MediaViewer/mediaItems.d.ts +25 -0
  115. package/dist/Components/MediaViewer/mediaItems.js +5 -0
  116. package/dist/Components/Modal/Modal.d.ts +3 -0
  117. package/dist/Components/Modal/Modal.js +3 -0
  118. package/dist/Components/Modal/ModalProps.d.ts +6 -1
  119. package/dist/Components/MoreItems/MoreItemsProps.d.ts +2 -0
  120. package/dist/Components/MultiSelect/MultiSelect.d.ts +1 -0
  121. package/dist/Components/MultiSelect/MultiSelect.js +1 -0
  122. package/dist/Components/MultiSelect/MultiSelectProps.d.ts +13 -0
  123. package/dist/Components/NavLauncher/NavLauncher.js +3 -0
  124. package/dist/Components/NavLauncher/NavLauncherProps.d.ts +58 -0
  125. package/dist/Components/NavLauncher/engine/engine.d.ts +19 -0
  126. package/dist/Components/NavLauncher/launcherMotion.d.ts +19 -0
  127. package/dist/Components/NavLauncher/launcherMotion.js +15 -0
  128. package/dist/Components/NavLauncher/match.d.ts +34 -0
  129. package/dist/Components/NavigationBar/NavigationBar.d.ts +1 -0
  130. package/dist/Components/NavigationBar/NavigationBar.js +1 -0
  131. package/dist/Components/NavigationBar/NavigationBarProps.d.ts +15 -0
  132. package/dist/Components/NoteTextArea/NoteTextAreaProps.d.ts +2 -1
  133. package/dist/Components/NotificationBell/NotificationBellProps.d.ts +27 -0
  134. package/dist/Components/NotificationBell/notificationHelpers.d.ts +13 -0
  135. package/dist/Components/NumberInput/NumberInputProps.d.ts +1 -1
  136. package/dist/Components/OffersList/OffersListProps.d.ts +12 -1
  137. package/dist/Components/OptionChip/OptionChipProps.d.ts +5 -0
  138. package/dist/Components/OrderStatusTimeline/OrderStatusTimelineProps.d.ts +10 -0
  139. package/dist/Components/OrderSummary/OrderSummaryProps.d.ts +10 -0
  140. package/dist/Components/OrgSwitcher/OrgSwitcher.d.ts +1 -0
  141. package/dist/Components/OrgSwitcher/OrgSwitcher.js +11 -3
  142. package/dist/Components/OrgSwitcher/OrgSwitcherProps.d.ts +1 -0
  143. package/dist/Components/OrganizationDetails/OrganizationDetailsProps.d.ts +52 -0
  144. package/dist/Components/PageHeader/PageHeaderProps.d.ts +1 -0
  145. package/dist/Components/Pagination/PaginationProps.d.ts +4 -0
  146. package/dist/Components/PaymentOption/PaymentOptionProps.d.ts +9 -0
  147. package/dist/Components/PincodeChecker/PincodeCheckerProps.d.ts +13 -0
  148. package/dist/Components/PlanPill/PlanPill.d.ts +1 -0
  149. package/dist/Components/PlanPill/PlanPill.js +1 -0
  150. package/dist/Components/PlanPill/PlanPillProps.d.ts +1 -0
  151. package/dist/Components/PriceBlock/PriceBlockProps.d.ts +6 -0
  152. package/dist/Components/ProductBadges/ProductBadgesProps.d.ts +3 -0
  153. package/dist/Components/ProductCard/ProductCardProps.d.ts +10 -0
  154. package/dist/Components/ProductCard/QuickAddSheetProps.d.ts +8 -0
  155. package/dist/Components/ProductDetails/ProductDetailsProps.d.ts +25 -1
  156. package/dist/Components/ProfileCard/ProfileCardProps.d.ts +1 -1
  157. package/dist/Components/QuantityStepper/QuantityStepperProps.d.ts +9 -0
  158. package/dist/Components/QueryState/QueryStateProps.d.ts +2 -0
  159. package/dist/Components/RadioButton/RadioButtonProps.d.ts +1 -1
  160. package/dist/Components/Rating/RatingProps.d.ts +2 -0
  161. package/dist/Components/Reorder/ReorderProps.d.ts +6 -0
  162. package/dist/Components/ReviewList/ReviewListProps.d.ts +21 -0
  163. package/dist/Components/ReviewSummary/ReviewSummaryProps.d.ts +8 -1
  164. package/dist/Components/RolesPermission/RolesPermissionProps.d.ts +59 -1
  165. package/dist/Components/SearchSelect/SearchSelect.js +17 -5
  166. package/dist/Components/SearchSelect/SearchSelectProps.d.ts +12 -0
  167. package/dist/Components/SectionRail/SectionRail.d.ts +1 -0
  168. package/dist/Components/SectionRail/SectionRail.js +1 -0
  169. package/dist/Components/SectionRail/SectionRailProps.d.ts +4 -0
  170. package/dist/Components/SegmentedControl/SegmentedControlProps.d.ts +4 -0
  171. package/dist/Components/Select/Select.styles.js +25 -0
  172. package/dist/Components/Select/SelectNative.d.ts +10 -0
  173. package/dist/Components/Select/SelectNative.js +11 -4
  174. package/dist/Components/Select/SelectPopup.js +45 -14
  175. package/dist/Components/Select/SelectProps.d.ts +46 -2
  176. package/dist/Components/Select/selectKeyboardRing.d.ts +2 -0
  177. package/dist/Components/Select/selectKeyboardRing.js +7 -0
  178. package/dist/Components/Select/selectRowInk.d.ts +14 -0
  179. package/dist/Components/Select/selectRowInk.js +41 -0
  180. package/dist/Components/SelectSearch/SelectSearch.js +8 -2
  181. package/dist/Components/SelectSearch/SelectSearchProps.d.ts +9 -0
  182. package/dist/Components/SelectV2/SelectV2Props.d.ts +7 -0
  183. package/dist/Components/SideBar/SecondaryBar.d.ts +1 -0
  184. package/dist/Components/SideBar/SecondaryBar.js +1 -0
  185. package/dist/Components/SideBar/SideBar.d.ts +1 -0
  186. package/dist/Components/SideBar/SideBar.js +1 -0
  187. package/dist/Components/SideBar/SideBarProps.d.ts +32 -0
  188. package/dist/Components/SideBar/sidebarAccentColors.d.ts +2 -0
  189. package/dist/Components/SignInActivityTable/SignInActivityTable.d.ts +1 -0
  190. package/dist/Components/SignInActivityTable/SignInActivityTable.js +1 -0
  191. package/dist/Components/SignInActivityTable/SignInActivityTableProps.d.ts +2 -0
  192. package/dist/Components/SpecTable/SpecTableProps.d.ts +9 -0
  193. package/dist/Components/StageProgress/StageProgressProps.d.ts +2 -0
  194. package/dist/Components/StageProgress/StepperStage.d.ts +1 -0
  195. package/dist/Components/StageProgress/StepperStage.js +1 -0
  196. package/dist/Components/StatCard/StatCardProps.d.ts +1 -0
  197. package/dist/Components/StatusTag/StatusTagProps.d.ts +4 -0
  198. package/dist/Components/StickyBuyBar/StickyBuyBar.d.ts +1 -0
  199. package/dist/Components/StickyBuyBar/StickyBuyBar.js +1 -0
  200. package/dist/Components/StickyBuyBar/StickyBuyBarProps.d.ts +6 -0
  201. package/dist/Components/StockStatus/StockStatusProps.d.ts +2 -0
  202. package/dist/Components/Switch/SwitchProps.d.ts +4 -0
  203. package/dist/Components/Table/TableProps.d.ts +20 -1
  204. package/dist/Components/Table/components/TableBody.js +10 -1
  205. package/dist/Components/Table/components/rowFocusRing.d.ts +21 -0
  206. package/dist/Components/Table/components/rowFocusRing.js +20 -0
  207. package/dist/Components/Table/variants/tokens.d.ts +4 -0
  208. package/dist/Components/Tabs/TabsContext.d.ts +14 -0
  209. package/dist/Components/Tabs/TabsProps.d.ts +18 -0
  210. package/dist/Components/Tabs/components/CountBadge.d.ts +4 -0
  211. package/dist/Components/Tabs/components/TabPanels.d.ts +1 -0
  212. package/dist/Components/Tabs/components/TabPanels.js +1 -0
  213. package/dist/Components/Tabs/tabStyles.d.ts +4 -0
  214. package/dist/Components/Tag/TagProps.d.ts +3 -0
  215. package/dist/Components/TagInput/TagInput.d.ts +1 -0
  216. package/dist/Components/TagInput/TagInput.js +1 -0
  217. package/dist/Components/TagInput/TagInputProps.d.ts +2 -0
  218. package/dist/Components/TimePicker/TimePicker.d.ts +1 -0
  219. package/dist/Components/TimePicker/TimePicker.js +1 -0
  220. package/dist/Components/TimePicker/TimePickerProps.d.ts +2 -0
  221. package/dist/Components/Timeline/TimelineProps.d.ts +7 -1
  222. package/dist/Components/Toggle/TableToggleProps.d.ts +2 -0
  223. package/dist/Components/ToggleSwitch/ToggleSwitchProps.d.ts +2 -0
  224. package/dist/Components/ToolTip/OverflowToolTip.d.ts +1 -0
  225. package/dist/Components/ToolTip/OverflowToolTip.js +1 -1
  226. package/dist/Components/ToolTip/ToolTipProps.d.ts +1 -0
  227. package/dist/Components/TrustBadges/TrustBadgesProps.d.ts +4 -0
  228. package/dist/Components/UpgradeButton/UpgradeButton.d.ts +1 -0
  229. package/dist/Components/UpgradeButton/UpgradeButton.js +1 -0
  230. package/dist/Components/UpgradeButton/UpgradeButtonProps.d.ts +4 -1
  231. package/dist/Components/UserDetails/UserDetailsProps.d.ts +58 -0
  232. package/dist/Components/VariantSelector/VariantSelectorProps.d.ts +4 -0
  233. package/dist/Components/WishlistToggle/WishlistToggleProps.d.ts +4 -0
  234. package/dist/Components/WizardDialog/WizardDialogProps.d.ts +15 -0
  235. package/dist/Components/WizardDialog/wizardSteps.d.ts +17 -5
  236. package/dist/Components/WorkspaceWindow/WorkspaceTrayPreview.d.ts +1 -0
  237. package/dist/Components/WorkspaceWindow/WorkspaceTrayPreview.js +1 -1
  238. package/dist/Components/WorkspaceWindow/WorkspaceWindow.d.ts +2 -0
  239. package/dist/Components/WorkspaceWindow/WorkspaceWindow.js +2 -1
  240. package/dist/Components/WorkspaceWindow/WorkspaceWindowProps.d.ts +13 -0
  241. package/dist/Theme/tokens/brands/index.d.ts +1 -1
  242. package/dist/Theme/tokens/brands/index.js +1 -1
  243. package/dist/Theme/tokens/builders/rowStates.d.ts +6 -0
  244. package/dist/Theme/tokens/builders/rowStates.js +19 -1
  245. package/dist/Theme/tokens/builders/scrollShadow.d.ts +1 -0
  246. package/dist/Theme/tokens/builders/scrollShadow.js +16 -0
  247. package/dist/esm/Components/AppSwitcher/AppSwitcher.js +1 -0
  248. package/dist/esm/Components/AppearanceSettings/AppearanceSettings.js +1 -0
  249. package/dist/esm/Components/AudioRecorder/AudioRecorder.js +1 -0
  250. package/dist/esm/Components/Avatar/AvatarGroup.js +1 -0
  251. package/dist/esm/Components/BulkSelectionBar/BulkSelectionBar.js +1 -0
  252. package/dist/esm/Components/Button/Button.js +1 -0
  253. package/dist/esm/Components/ButtonGroupIcon/ButtonGroupIcon.js +1 -0
  254. package/dist/esm/Components/CalendarGrid/CalendarGrid.js +1 -0
  255. package/dist/esm/Components/Card/PaymentCard/PaymentCard.js +1 -0
  256. package/dist/esm/Components/ChoiceCard/ChoiceCard.js +1 -0
  257. package/dist/esm/Components/ChoiceCard/ChoiceCardGroup.js +1 -0
  258. package/dist/esm/Components/ConfirmDialog/ConfirmDialog.js +1 -0
  259. package/dist/esm/Components/CustomModulesTable/CustomModulesTable.js +1 -0
  260. package/dist/esm/Components/CustomModulesTable/DeleteModuleModal.js +1 -0
  261. package/dist/esm/Components/CustomModulesTable/EditModuleModal.js +1 -0
  262. package/dist/esm/Components/FormDrawer/FormDrawer.js +1 -0
  263. package/dist/esm/Components/FormField/FormField.js +1 -0
  264. package/dist/esm/Components/Header/Header.js +1 -0
  265. package/dist/esm/Components/Header/HeaderActions.js +1 -0
  266. package/dist/esm/Components/Header/components/desktopMenu.js +1 -0
  267. package/dist/esm/Components/Header/components/mobileMenu.js +1 -0
  268. package/dist/esm/Components/KanbanBoard/KanbanActions/KanbanActions.js +1 -1
  269. package/dist/esm/Components/Kbd/Kbd.js +1 -0
  270. package/dist/esm/Components/LauncherTrigger/LauncherTrigger.js +1 -0
  271. package/dist/esm/Components/LimitReachedModal/LimitReachedModal.js +1 -0
  272. package/dist/esm/Components/MediaViewer/components/MediaAudioPlayer.js +1 -0
  273. package/dist/esm/Components/MediaViewer/components/MediaDocumentStage.js +1 -0
  274. package/dist/esm/Components/MediaViewer/components/MediaImageViewer.js +1 -0
  275. package/dist/esm/Components/MediaViewer/components/MediaVideoPlayer.js +1 -0
  276. package/dist/esm/Components/MediaViewer/mediaItems.js +5 -0
  277. package/dist/esm/Components/Modal/Modal.js +3 -0
  278. package/dist/esm/Components/MultiSelect/MultiSelect.js +1 -0
  279. package/dist/esm/Components/NavLauncher/NavLauncher.js +4 -1
  280. package/dist/esm/Components/NavLauncher/launcherMotion.js +11 -0
  281. package/dist/esm/Components/NavigationBar/NavigationBar.js +1 -0
  282. package/dist/esm/Components/OrgSwitcher/OrgSwitcher.js +13 -5
  283. package/dist/esm/Components/PlanPill/PlanPill.js +1 -0
  284. package/dist/esm/Components/SearchSelect/SearchSelect.js +19 -7
  285. package/dist/esm/Components/SectionRail/SectionRail.js +1 -0
  286. package/dist/esm/Components/Select/Select.styles.js +26 -1
  287. package/dist/esm/Components/Select/SelectNative.js +12 -5
  288. package/dist/esm/Components/Select/SelectPopup.js +47 -16
  289. package/dist/esm/Components/Select/selectKeyboardRing.js +3 -0
  290. package/dist/esm/Components/Select/selectRowInk.js +33 -0
  291. package/dist/esm/Components/SelectSearch/SelectSearch.js +10 -4
  292. package/dist/esm/Components/SideBar/SecondaryBar.js +1 -0
  293. package/dist/esm/Components/SideBar/SideBar.js +1 -0
  294. package/dist/esm/Components/SignInActivityTable/SignInActivityTable.js +1 -0
  295. package/dist/esm/Components/StageProgress/StepperStage.js +1 -0
  296. package/dist/esm/Components/StickyBuyBar/StickyBuyBar.js +1 -0
  297. package/dist/esm/Components/Table/components/TableBody.js +10 -1
  298. package/dist/esm/Components/Table/components/rowFocusRing.js +16 -0
  299. package/dist/esm/Components/Tabs/components/TabPanels.js +1 -0
  300. package/dist/esm/Components/TagInput/TagInput.js +1 -0
  301. package/dist/esm/Components/TimePicker/TimePicker.js +1 -0
  302. package/dist/esm/Components/ToolTip/OverflowToolTip.js +1 -1
  303. package/dist/esm/Components/UpgradeButton/UpgradeButton.js +1 -0
  304. package/dist/esm/Components/WorkspaceWindow/WorkspaceTrayPreview.js +1 -1
  305. package/dist/esm/Components/WorkspaceWindow/WorkspaceWindow.js +2 -1
  306. package/dist/esm/Theme/tokens/brands/index.js +1 -1
  307. package/dist/esm/Theme/tokens/builders/rowStates.js +18 -1
  308. package/dist/esm/Theme/tokens/builders/scrollShadow.js +15 -0
  309. package/package.json +1 -1
@@ -1,32 +1,46 @@
1
1
  import type { ElementType } from "react";
2
2
  /** Footer identity block (UserFooter); avatar falls back to initials derived from name when absent. */
3
3
  export type SidebarUser = {
4
+ /** Display name; initials derive from it when `initials` is absent. */
4
5
  name: string;
6
+ /** Muted line under the name. */
5
7
  role?: string;
8
+ /** Avatar image; initials are shown when absent. */
6
9
  avatarUrl?: string;
10
+ /** Overrides the initials derived from `name` when there is no avatar image. */
7
11
  initials?: string;
12
+ /** Called when the footer identity block is pressed. */
8
13
  onClick?: () => void;
9
14
  };
10
15
  /** Docked/collapsible left rail with its own responsive overlay — not NavigationBar (top bar) or WorkspaceWindow (floating panel). */
11
16
  export type SidebarProps = {
17
+ /** Rows in display order; items with a `group` get section labels and must be pre-sorted by it. */
12
18
  menus: MenuProps[];
13
19
  /** Matched against each menu's `title` first, then `id` — a title that collides with another menu's `id` wins silently. */
14
20
  activeMenu: string | number;
21
+ /** Called with the menu when a row is chosen; in the overlay a leaf row also closes it. */
15
22
  handleMenuClick?: (menu: MenuProps) => void;
23
+ /** Called with the item chosen in the SecondaryBar flyout. */
16
24
  handleSecondaryNavClick?: (menu: MenuProps) => void;
25
+ /** True collapses the inline rail to icons; false shows it fully expanded. */
17
26
  toggle: boolean;
27
+ /** Called to flip `toggle`: by the header and footer collapse controls, and automatically when `autoCollapse` is on. */
18
28
  changeToggle: () => void;
19
29
  /** Falls back to a rendered brand mark (DefaultLogo) tinted by primary color when omitted. */
20
30
  logo?: string;
31
+ /** Name shown beside the logo; hidden while the rail is collapsed. */
21
32
  companyName: string;
33
+ /** Muted line under `companyName`. */
22
34
  companySubtitle?: string;
23
35
  /** Footer identity block is omitted entirely (not just simplified) when this is not provided. */
24
36
  user?: SidebarUser;
25
37
  /** true hides the Add New row completely, rather than disabling it. */
26
38
  isDisableAddNew?: boolean;
39
+ /** Called when the Add New row is pressed. */
27
40
  onAddNewClick?: () => void;
28
41
  /** @deprecated Dead — threaded down to MenuItemBox but never read there; no known consumer usage. */
29
42
  selectedSubMenu?: string | null;
43
+ /** Id or title of the highlighted item in the SecondaryBar flyout. */
30
44
  selectedSecondaryItem?: string | number | null;
31
45
  /** Shows skeleton rows instead of MenuItems; header and footer render normally. */
32
46
  isLoading?: boolean;
@@ -46,6 +60,7 @@ export type SidebarProps = {
46
60
  onToggleMobileNav?: () => void;
47
61
  /** Shows the sidebar without pinning — closes on pointer-leave. Wire to NavigationBar's `onSideBarPeek`. */
48
62
  peekOpen?: boolean;
63
+ /** Called when the pointer leaves a peeked overlay, so the host can clear `peekOpen`. */
49
64
  onPeekEnd?: () => void;
50
65
  /** Rendered above `menus` under a `pinnedLabel` heading; the whole block is omitted when empty. */
51
66
  pinnedItems?: SidebarPinnedItem[];
@@ -77,13 +92,18 @@ export type SidebarPinnedLabels = {
77
92
  };
78
93
  /** `"none"` is instant; otherwise `speed` picks 150/200/260ms and `animateShadow` (default true) toggles the panel shadow. */
79
94
  export type SidebarCollapseTransition = "none" | {
95
+ /** Duration of the inline collapse: "fast" 150ms, "base" 200ms, "slow" 260ms. */
80
96
  speed?: "fast" | "base" | "slow";
97
+ /** Animates the panel shadow along with the width; defaults to true. */
81
98
  animateShadow?: boolean;
82
99
  };
83
100
  /** One nav item; `subMenu` renders inline (expand/collapse), `secondaryItems` opens a separate SecondaryBar instead. */
84
101
  export type MenuProps = {
102
+ /** Unique key; `SidebarProps.activeMenu` matches it after `title`. */
85
103
  id: string | number;
104
+ /** Row text, truncated with a tooltip when too long; `SidebarProps.activeMenu` matches it first. */
86
105
  title: string;
106
+ /** Icon component (not an element) drawn at the start of the row. */
87
107
  icon?: ElementType;
88
108
  /** Ignored when subMenu is non-empty — the row becomes a toggle button instead of a link. */
89
109
  url: string;
@@ -106,6 +126,7 @@ export type MenuProps = {
106
126
  /** Chakra Badge variant; defaults to "subtle". */
107
127
  variant?: string;
108
128
  };
129
+ /** Nested rows shown inline when this row is expanded; non-empty turns the row into a toggle. */
109
130
  subMenu?: MenuProps[];
110
131
  /** Non-empty on the active menu auto-collapses the main rail and renders a SecondaryBar, regardless of the `toggle` prop. */
111
132
  secondaryItems?: MenuProps[];
@@ -114,11 +135,17 @@ export type MenuProps = {
114
135
  };
115
136
  /** Props for the internal MenuItems renderer — a narrowed slice of SidebarProps. */
116
137
  export type RenderMenuType = {
138
+ /** Rows to render, in order. */
117
139
  menus: MenuProps[];
140
+ /** Matched against each menu's `title`, then `id`, to mark the active row. */
118
141
  activeMenu: string | number;
142
+ /** Called with the menu when a row is chosen. */
119
143
  handleMenuClick: (menu: MenuProps) => void;
144
+ /** True renders the collapsed icon rail. */
120
145
  toggle: boolean;
146
+ /** Carried over from the unused `SidebarProps.selectedSubMenu`; not read. */
121
147
  selectedSubMenu?: string | null;
148
+ /** Id or title of the highlighted SecondaryBar item. */
122
149
  selectedSecondaryItem?: string | number | null;
123
150
  /** Touch (overlay) presentation — grows row height to a 48px touch target. */
124
151
  overlay?: boolean;
@@ -127,6 +154,7 @@ export type RenderMenuType = {
127
154
  };
128
155
  /** Secondary flyout panel props; `defaultCollapsed` only seeds initial state, then the panel self-manages it. */
129
156
  export type SecondaryBarProps = {
157
+ /** Flyout entries in order. */
130
158
  items?: MenuProps[];
131
159
  /** Defaults to true (collapsed) when omitted. */
132
160
  defaultCollapsed?: boolean;
@@ -140,6 +168,7 @@ export type SecondaryBarProps = {
140
168
  itemFontSize?: string;
141
169
  /** Matched by string equality against either the item's id or title, whichever matches. */
142
170
  selected?: string | number | null;
171
+ /** Called with the item chosen; skipped for locked or disabled items. */
143
172
  onItemClick?: (item: MenuProps) => void;
144
173
  /** Also used as the collapsed-state tooltip label. */
145
174
  title?: string;
@@ -148,7 +177,9 @@ export type SecondaryBarProps = {
148
177
  };
149
178
  /** "Switch app" footer grid; becomes hover popovers when the sidebar is collapsed. */
150
179
  export type OtherAppsProps = {
180
+ /** True when the sidebar is collapsed; apps then show as hover popovers. */
151
181
  toggle: boolean;
182
+ /** Apps to list; renders nothing when empty. */
152
183
  otherApps: {
153
184
  /** Used as the React list key — must be unique among otherApps entries. */
154
185
  name: string;
@@ -156,6 +187,7 @@ export type OtherAppsProps = {
156
187
  color: string;
157
188
  /** Shown only in the collapsed-state hover flyout, never in the expanded grid cell. */
158
189
  description?: string;
190
+ /** Called when the app is pressed. */
159
191
  onClick: () => void;
160
192
  /** A pre-rendered ReactNode, unlike MenuProps.icon (a component reference). */
161
193
  icon?: React.ReactNode;
@@ -1,6 +1,8 @@
1
1
  import type { PaletteProps } from "../../Theme/tokens/types";
2
2
  export type SidebarActiveAccent = {
3
+ /** Colour of the active row's icon. */
3
4
  icon: string;
5
+ /** Colour of the active row's label. */
4
6
  label: string;
5
7
  };
6
8
  /** Resolved per brand at palette-build time, so the rail needs no mode or brand lookup. */
@@ -1,4 +1,5 @@
1
1
  import React from "react";
2
2
  import { SignInActivityTableProps } from "./SignInActivityTableProps";
3
+ /** Card listing recent sign-in devices (browser, device, activity) with loading and empty states. */
3
4
  declare const SignInActivityTable: React.FC<SignInActivityTableProps>;
4
5
  export default SignInActivityTable;
@@ -21,6 +21,7 @@ const DEFAULT_LABELS = {
21
21
  recentActivity: "Recent Activity",
22
22
  noActivity: "No recent sign-in activity",
23
23
  };
24
+ /** Card listing recent sign-in devices (browser, device, activity) with loading and empty states. */
24
25
  const SignInActivityTable = ({ devices, isLoading = false, labels: labelOverrides, }) => {
25
26
  const { colors } = (0, useCustomTheme_1.useCustomTheme)();
26
27
  const titleId = (0, react_1.useId)();
@@ -14,7 +14,9 @@ export type SignInDevice = {
14
14
  export type SignInActivityLabels = {
15
15
  /** Card heading, also the accessible name of the scroll area while it overflows; defaults to "Recent Sign-in Devices". */
16
16
  title?: string;
17
+ /** First column header; defaults to "Browser". */
17
18
  browser?: string;
19
+ /** Second column header; defaults to "Device". */
18
20
  device?: string;
19
21
  /** Third column header; defaults to "Recent Activity". */
20
22
  recentActivity?: string;
@@ -1,15 +1,20 @@
1
1
  /** One label/value row. */
2
2
  export interface SpecItem {
3
+ /** Term text; also part of the row key, so keep labels distinct. */
3
4
  label: string;
5
+ /** Plain-text definition shown beside the label. */
4
6
  value: string;
5
7
  }
6
8
  /** Every string the table renders; override all of them for another language. */
7
9
  export interface SpecTableLabels {
10
+ /** Text of the toggle that expands the folded rows. */
8
11
  showAll: string;
12
+ /** Text of the toggle that folds back to `collapsedCount` rows. */
9
13
  showLess: string;
10
14
  }
11
15
  /** Definition list of specifications on striped tonal rows, with an optional "Show all" fold. */
12
16
  export interface SpecTableProps {
17
+ /** Rows in display order; an empty array renders nothing at all. */
13
18
  items: SpecItem[];
14
19
  /** 2 sits label and value side by side per row on wide screens and falls back to 1 on narrow ones. */
15
20
  columns?: 1 | 2;
@@ -17,9 +22,13 @@ export interface SpecTableProps {
17
22
  collapsedCount?: number;
18
23
  /** Controlled expanded state; pair with `onExpandedChange`. */
19
24
  expanded?: boolean;
25
+ /** Initial expanded state when uncontrolled; defaults to false. Ignored once `expanded` is set. */
20
26
  defaultExpanded?: boolean;
27
+ /** Fires with the next expanded state when the toggle is clicked, in both controlled and uncontrolled modes. */
21
28
  onExpandedChange?: (expanded: boolean) => void;
29
+ /** Per-key overrides of the toggle text; defaults to "Show all" / "Show less". */
22
30
  labels?: Partial<SpecTableLabels>;
31
+ /** Accessible name applied to the definition list. */
23
32
  "aria-label"?: string;
24
33
  "data-testid"?: string;
25
34
  }
@@ -57,6 +57,7 @@ export interface StageItemProps {
57
57
  index: number;
58
58
  /** Stage count; with index, drives first/last chevron-point and bar-corner rounding. */
59
59
  total: number;
60
+ /** Drives fill and weight: completed is filled, active is emphasised and `aria-current="step"`, upcoming is muted. */
60
61
  state: StageState;
61
62
  /** "chevron" | "bar" | "pills" (stepper has its own renderer). */
62
63
  variant?: Exclude<StageVariant, "stepper">;
@@ -87,6 +88,7 @@ export interface StepperStageProps {
87
88
  label: string;
88
89
  /** 1-based step number shown inside the circle. */
89
90
  number: number;
91
+ /** Drives circle and connector styling: completed is filled, active is emphasised, upcoming is muted. */
90
92
  state: StageState;
91
93
  /** Default "md"; keys this node's own circle/font/minWidth lookup table. */
92
94
  size?: StageSize;
@@ -1,4 +1,5 @@
1
1
  import React from "react";
2
2
  import { StepperStageProps } from "./StageProgressProps";
3
+ /** Renders one numbered circle with connector lines and a wrapped label for variant="stepper". */
3
4
  declare const StepperStage: React.FC<StepperStageProps>;
4
5
  export default StepperStage;
@@ -15,6 +15,7 @@ const sizeMap = {
15
15
  md: { circle: "30px", font: "0.8rem", label: "0.8rem", icon: 14, minW: "104px" },
16
16
  lg: { circle: "38px", font: "0.95rem", label: "0.9rem", icon: 16, minW: "124px" },
17
17
  };
18
+ /** Renders one numbered circle with connector lines and a wrapped label for variant="stepper". */
18
19
  const StepperStage = ({ label, number, state, size = "md", colorScheme = "primary", onClick, isReadOnly = false, isDisabled, disabled: legacyDisabled = false, showCheck = true, isFirst, isLast, leftDone, rightDone, scrollIntoViewWhenActive = true, asListItem = false, }) => {
19
20
  const disabled = isDisabled !== null && isDisabled !== void 0 ? isDisabled : legacyDisabled;
20
21
  const theme = (0, useCustomTheme_1.useCustomTheme)();
@@ -3,6 +3,7 @@ import type { Tone } from "../../Theme/tokens/builders/tone";
3
3
  type StatTrend = "up" | "down";
4
4
  /** KPI tile; delta is green when `trend` matches `goodDirection`; other HTML attributes land on the root. */
5
5
  export interface StatCardProps extends Omit<HTMLAttributes<HTMLElement>, "color" | "children" | "dangerouslySetInnerHTML" | "onClick" | "aria-label"> {
6
+ /** Metric name in the card header, beside the optional icon chip. */
6
7
  label: ReactNode;
7
8
  /** Large tabular-number figure; pre-format it (currency, units) yourself. */
8
9
  value: ReactNode;
@@ -2,7 +2,9 @@ import type { Tone } from "../../Theme/tokens/builders/tone";
2
2
  import type { TagDisplay, TagVariant } from "../Tag/TagProps";
3
3
  /** How one status looks: a tone, plus the chip variant (ignored in dot display). */
4
4
  export type StatusAppearance = {
5
+ /** Status tone of the tag, same tones as Tag. */
5
6
  tone: Tone;
7
+ /** Chip variant; ignored in dot display. */
6
8
  variant?: TagVariant;
7
9
  };
8
10
  /** Props for StatusTag; `S` is the app's status union so `map` must cover every status. */
@@ -15,6 +17,8 @@ export interface StatusTagProps<S extends string = string> {
15
17
  map: Record<S, StatusAppearance>;
16
18
  /** "dot" gives a quiet dot plus label; default "chip". */
17
19
  display?: TagDisplay;
20
+ /** Tag size; defaults to "sm". */
18
21
  size?: "sm" | "md";
22
+ /** Test id on the tag. */
19
23
  "data-testid"?: string;
20
24
  }
@@ -1,3 +1,4 @@
1
1
  import type { StickyBuyBarProps } from "./StickyBuyBarProps";
2
+ /** Bottom bar with price and one primary action whose mode, slide-in visibility and quantity stepper are all controlled. */
2
3
  declare const StickyBuyBar: ({ price, mrp, mode, visible, position, isLoading, quantity, onQuantityChange, maxQuantity, onAddToBag, onSelectOption, onNotify, onGoToBag, onBuyNow, itemLabel, currency, locale, labels, "data-testid": testId, }: StickyBuyBarProps) => import("react/jsx-runtime").JSX.Element;
3
4
  export default StickyBuyBar;
@@ -34,6 +34,7 @@ const NO_BLUR_SUPPORT = "@supports not ((backdrop-filter: blur(1px)) or (-webkit
34
34
  const SAFE_BOTTOM = "calc(0.75rem + env(safe-area-inset-bottom, 0px))";
35
35
  const pop = (0, react_2.keyframes) `0% { transform: scale(0.4); opacity: 0; } 60% { transform: scale(1.2); opacity: 1; } 100% { transform: scale(1); }`;
36
36
  const STACK_ORDER = ["add", "select-option", "notify", "added", "go-to-bag"];
37
+ /** Bottom bar with price and one primary action whose mode, slide-in visibility and quantity stepper are all controlled. */
37
38
  const StickyBuyBar = ({ price, mrp, mode = "add", visible = true, position = "sticky", isLoading = false, quantity, onQuantityChange, maxQuantity, onAddToBag, onSelectOption, onNotify, onGoToBag, onBuyNow, itemLabel, currency, locale, labels, "data-testid": testId, }) => {
38
39
  const { colors } = (0, useCustomTheme_1.useCustomTheme)();
39
40
  const reduced = (0, motion_2.usePrefersReducedMotion)();
@@ -7,13 +7,17 @@ export type StickyBuyBarPosition = "sticky" | "static";
7
7
  export interface StickyBuyBarLabels {
8
8
  /** Accessible name of the landmark region. */
9
9
  region: string;
10
+ /** Primary button text in `add` mode; defaults to "Add to bag". */
10
11
  add: string;
11
12
  /** Prompt shown when an option is still unpicked, e.g. "Select a size". */
12
13
  selectOption: string;
14
+ /** Primary button text in `notify` mode; defaults to "Notify me". */
13
15
  notify: string;
14
16
  /** Short confirmation in the button while mode is `added`. */
15
17
  added: string;
18
+ /** Primary button text in `go-to-bag` mode; defaults to "Go to bag". */
16
19
  goToBag: string;
20
+ /** Secondary button text shown beside the primary when `onBuyNow` is set; defaults to "Buy now". */
17
21
  buyNow: string;
18
22
  /** Screen-reader name of the busy button while `isLoading`. */
19
23
  adding: string;
@@ -28,6 +32,7 @@ export interface StickyBuyBarProps extends PriceFormat {
28
32
  mode?: StickyBuyBarMode;
29
33
  /** Controlled: slides in when true and out when false, and is removed from the tab order while out. Typically driven by an IntersectionObserver on the inline CTA. */
30
34
  visible?: boolean;
35
+ /** Defaults to "sticky". */
31
36
  position?: StickyBuyBarPosition;
32
37
  /** Marks the primary as busy (aria-busy) and ignores further taps. */
33
38
  isLoading?: boolean;
@@ -49,6 +54,7 @@ export interface StickyBuyBarProps extends PriceFormat {
49
54
  onBuyNow?: () => void;
50
55
  /** Product name, so the stepper reads "Quantity of Slim-Fit Denim Jacket". */
51
56
  itemLabel?: string;
57
+ /** Per-key overrides merged over the English defaults. */
52
58
  labels?: Partial<StickyBuyBarLabels>;
53
59
  "data-testid"?: string;
54
60
  }
@@ -9,6 +9,8 @@ export interface StockStatusProps {
9
9
  count?: number;
10
10
  /** Replaces the default words, e.g. "In stock · ships within 24 hours". */
11
11
  message?: string;
12
+ /** Text size; defaults to "md". */
12
13
  size?: StockStatusSize;
14
+ /** Test id on the root element. */
13
15
  "data-testid"?: string;
14
16
  }
@@ -1,8 +1,12 @@
1
1
  /** @deprecated Use `SegmentedControl` — this two-option pill is kept only for existing call sites. */
2
2
  export type SwitchProps = {
3
+ /** Label of the left segment; when both labels are empty the control drops its 12.5rem minimum width. */
3
4
  leftText: string;
5
+ /** Label of the right segment. */
4
6
  rightText: string;
7
+ /** Rendered before the left label. */
5
8
  leftIcon?: JSX.Element;
9
+ /** Rendered before the right label. */
6
10
  rightIcon?: JSX.Element;
7
11
  /** Fires on click and on arrow/Home/End keys with the newly selected side. */
8
12
  onSwitchToggle: (value: "left" | "right") => void;
@@ -10,8 +10,11 @@ export type DataObject = Record<string, unknown>;
10
10
  export type TableDensity = "compact" | "normal" | "comfortable";
11
11
  /** Empty-state content shown when there are no rows; alternative to a raw ReactNode. */
12
12
  export type TableEmptyState = {
13
+ /** Rendered as the illustration above the title; omit for the default empty-state icon. */
13
14
  icon?: ReactNode;
15
+ /** Headline of the empty state. */
14
16
  title?: string;
17
+ /** Supporting line under the title. */
15
18
  description?: string;
16
19
  };
17
20
  /** Props for the main Table component: data, columns, pagination, selection, filters, and more. */
@@ -68,17 +71,19 @@ export type TableProps = {
68
71
  isPagination?: boolean;
69
72
  /** Controlled selected row ids; a new array replaces the internal selection. */
70
73
  selections?: (string | number)[];
71
- /** Fires per cell, gated on the column: a column with `node` swallows its clicks. A node `label` arrives as its plain text. */
74
+ /** Fires per cell, gated on the column: a column with `node` swallows its clicks. Also makes rows tab stops; Enter or Space fires it for the first column without `node`. A node `label` arrives as its plain text. */
72
75
  onRowClick?: (row: DataObject, header: Record<string | number, string | number>) => void;
73
76
  /** Sticky-positions the trailing action/link column during horizontal scroll. Defaults true. */
74
77
  isActionFreeze?: boolean;
75
78
  /** "server" skips client-side slicing entirely — the parent must supply totalRecords and drive paging via onPagination. */
76
79
  paginationMode?: "client" | "server";
80
+ /** Replaces the pager with scroll-to-load: calls `onPagination(..., "next")` within 160px of the bottom; ignored while grouped. */
77
81
  infiniteScroll?: boolean;
78
82
  /** Gates further loads; when omitted, derived from data.length < totalRecords. */
79
83
  hasMore?: boolean;
80
84
  /** Parent-owned: set true while the next page is fetching — blocks repeat loads and shows the spinner. */
81
85
  isLoadingMore?: boolean;
86
+ /** Shows a Load more button over grouped rows instead of a pager; no effect unless the user has grouped the table. */
82
87
  groupLoadMore?: boolean;
83
88
  /** Label and loading text of the grouped Load more button. Defaults "Load more". */
84
89
  loadMoreText?: string;
@@ -179,6 +184,7 @@ export type TableHeaderProps = {
179
184
  label: string | number | ReactNode;
180
185
  /** Plain-text name for a node `label` — used by the sort/filter button names, Manage Columns, Group, filter chips and saved preferences. Ignored for a string/number label. Omitted: the node's text children, else `id`. */
181
186
  labelText?: string;
187
+ /** Row field this column reads (`row[id]`) and its identity in sort, filter, freeze and saved preferences. */
182
188
  id: string | number;
183
189
  /** Enables the multi-column sort control; sorts client-side only — server mode never reorders rows. */
184
190
  isSort?: boolean;
@@ -188,11 +194,13 @@ export type TableHeaderProps = {
188
194
  isFreeze?: boolean;
189
195
  /** Initial visibility only; defaultVisibleColumns and saved preferences override it. */
190
196
  isHidden?: boolean;
197
+ /** "status" renders the cell value as a coloured pill unless the column has a `node` renderer. */
191
198
  type?: "status";
192
199
  /** Pre-resolved tone per value — preferred over `statusColors` hex overrides. */
193
200
  statusPalette?: Record<string, import("../../Utils/table").TablePaletteColor>;
194
201
  /** Legacy hex fill seed per value; used only when `statusPalette` lacks that value. */
195
202
  statusColors?: Record<string, string>;
203
+ /** Field data-type; only columns that declare one appear in the Group-by picker. */
196
204
  columnType?: TableColumnType;
197
205
  /** Horizontal alignment for both the header label and the body cells. Defaults "start", except a full-bleed status cell, which centres until this is set. */
198
206
  align?: TableColumnAlign;
@@ -205,18 +213,25 @@ export type TableColumnAlign = "start" | "center" | "end";
205
213
  export type TableColumnType = "text" | "singleline" | "multiLine" | "description" | "email" | "phone" | "website" | "number" | "integer" | "decimal" | "dropdown" | "multiSelectDropdown" | "user" | "date" | "date_time" | "time" | "not_assigned" | (string & {});
206
214
  /** One entry in the export-format dropdown, paired with `handleExportChange`. */
207
215
  export type ExportOption = {
216
+ /** Text shown for the format in the dropdown. */
208
217
  label: string;
218
+ /** Format value passed to `handleExportChange`. */
209
219
  id: string;
210
220
  };
211
221
  /** Current sort direction applied to one column. */
212
222
  export type ColumnSortingProps = {
223
+ /** `id` of the sorted column. */
213
224
  column: string | number;
225
+ /** "none" means the column is not sorted. */
214
226
  direction: "asc" | "desc" | "none";
215
227
  };
216
228
  /** Internal wiring for the row-detail expander, built once by `Table`. */
217
229
  export type TableRowDetail = {
230
+ /** The `renderRowDetail` callback; a null result renders no detail content. */
218
231
  render: (row: DataObject) => ReactNode | null;
232
+ /** Expands or collapses the detail of the row with this `id`. */
219
233
  toggle: (id: string | number) => void;
234
+ /** Unique prefix for the DOM ids that link each toggle to its detail row. */
220
235
  idPrefix: string;
221
236
  };
222
237
  /** Props for the TableHeader row subcomponent: all columns, sorting, search, freeze, selection. */
@@ -268,14 +283,18 @@ export type TableBodyPageProps = Pick<TableProps, "columns" | "isCheckbox" | "da
268
283
  };
269
284
  /** One resolved group of rows with its label/accent colors, for grouped board rendering. */
270
285
  export type TableRenderGroup = {
286
+ /** Group key; compared with each row's value in the group column. */
271
287
  value: string | number;
288
+ /** Group header text. */
272
289
  label: string;
290
+ /** `solid` is the left accent stripe on the header and its rows, `soft` the header fill, `text` the header ink; `onSolid` is unused. */
273
291
  color: {
274
292
  solid: string;
275
293
  soft: string;
276
294
  text: string;
277
295
  onSolid?: string;
278
296
  };
297
+ /** Rows belonging to this group, in display order. */
279
298
  rows: DataObject[];
280
299
  };
281
300
  /** Props for one column's search/filter popover. */
@@ -58,6 +58,8 @@ const motion_2 = require("../../../Theme/chakra/motion");
58
58
  const rowDetail_1 = require("./rowDetail");
59
59
  const rowMeasurer_1 = require("./rowMeasurer");
60
60
  const borderWidths_1 = require("../../../Theme/tokens/primitives/borderWidths");
61
+ const activationKey_1 = require("../../Common/activationKey");
62
+ const rowFocusRing_1 = require("./rowFocusRing");
61
63
  const getRowId = (row) => row.id;
62
64
  const getRowContent = (row) => typeof row.content === "function"
63
65
  ? row.content
@@ -117,6 +119,12 @@ const TableRow = react_2.default.memo(({ row, rowIndex, isChecked, isExpanded, i
117
119
  });
118
120
  }
119
121
  }, [row, onRowClick]);
122
+ const keyboardHeader = onRowClick && !isLoading ? columns.find((c) => !c.isHidden && !c.node) : undefined;
123
+ const handleRowKeyDown = (0, react_2.useCallback)((event) => {
124
+ if (event.target !== event.currentTarget || event.repeat || !keyboardHeader)
125
+ return;
126
+ (0, activationKey_1.onActivationKey)(() => handleCellClick(keyboardHeader))(event);
127
+ }, [keyboardHeader, handleCellClick]);
120
128
  const variant = (0, TableVariantContext_1.useTableVariant)();
121
129
  const firstDataColIndex = columns.findIndex((c) => !c.isHidden);
122
130
  const accentSx = accentColor ? `inset 3px 0 0 ${accentColor}` : undefined;
@@ -127,6 +135,7 @@ const TableRow = react_2.default.memo(({ row, rowIndex, isChecked, isExpanded, i
127
135
  : accentSx;
128
136
  const restsOnIndex = variant.slot.rest === "index";
129
137
  const rowSx = {
138
+ ...(keyboardHeader ? (0, rowFocusRing_1.rowFocusRingSx)(theme.colors) : {}),
130
139
  ...(variant.row.hoverScope === "row"
131
140
  ? { "&:hover > td[data-hoverable='true']": { backgroundColor: variant.row.hoverBg } }
132
141
  : {}),
@@ -153,7 +162,7 @@ const TableRow = react_2.default.memo(({ row, rowIndex, isChecked, isExpanded, i
153
162
  const chromeHoverable = rowStyle ? "false" : "true";
154
163
  const rowContent = getRowContent(row);
155
164
  const restBg = isStriped ? variant.row.stripeBg : theme.colors.background[50];
156
- return ((0, jsx_runtime_1.jsxs)(react_2.default.Fragment, { children: [(0, jsx_runtime_1.jsxs)(react_1.Tr, { ref: mainRowRef, "aria-rowindex": ariaRowIndex, opacity: isLoading ? 0.4 : 1, pointerEvents: isLoading ? "none" : "auto", transition: (0, motion_1.transitionFor)(["opacity"], "base"), sx: { ...rowSx, ...(0, motion_2.reducedMotionSx)() }, children: [isContent && ((0, jsx_runtime_1.jsx)(react_1.Td, { w: "6", p: 0, fontSize: "sm", background: isChecked ? selectedFrozenBg : frozenCellBg, color: freezedTextColor, position: "sticky", borderBottom: borderStyle, boxShadow: leadSx, boxSizing: "border-box", "data-hoverable": chromeHoverable, left: "0px", zIndex: 1, className: "columns sticky-columns", children: hasContent && ((0, jsx_runtime_1.jsx)(react_1.IconButton, { "aria-label": isExpanded ? "Collapse row" : "Expand row", color: theme.colors.textMuted, icon: isExpanded ? ((0, jsx_runtime_1.jsx)(lucide_react_1.ChevronDown, {})) : ((0, jsx_runtime_1.jsx)(lucide_react_1.ChevronRight, {})), _hover: { transform: "scale(1.1)" }, size: "sm", onClick: () => toggleRowExpansion(rowIndex), variant: "ghost" })) })), isCheckbox && ((0, jsx_runtime_1.jsx)(react_1.Td, { w: variant.slot.width, minW: variant.slot.width, px: variant.slot.centered ? 0 : undefined, textAlign: variant.slot.centered ? "center" : undefined, fontSize: "sm", fontWeight: 600, color: theme.colors.background[50], textTransform: "capitalize", background: isChecked ? selectedFrozenBg : frozenCellBg, position: "sticky", borderBottom: borderStyle, boxShadow: !isContent ? leadSx : undefined, "data-hoverable": chromeHoverable, boxSizing: "border-box", left: "0px", zIndex: 1, className: "columns sticky-columns", children: (0, jsx_runtime_1.jsxs)(react_1.Box, { display: restsOnIndex ? "grid" : undefined, placeItems: "center", children: [restsOnIndex && ((0, jsx_runtime_1.jsx)(react_1.Box, { as: "span", className: "table-slot-index", gridArea: "1 / 1", color: variant.slot.indexInk, fontSize: "0.6875rem", fontWeight: 500, transition: (0, motion_1.transitionFor)(["opacity"]), sx: { fontVariantNumeric: "tabular-nums", ...(0, motion_2.reducedMotionSx)() }, children: rowIndex + 1 })), (0, jsx_runtime_1.jsx)(react_1.Box, { as: "span", className: restsOnIndex ? "table-slot-box" : undefined, gridArea: restsOnIndex ? "1 / 1" : undefined, display: "flex", alignItems: "center", justifyContent: "center", transition: (0, motion_1.transitionFor)(["opacity"]), sx: (0, motion_2.reducedMotionSx)(), children: (0, jsx_runtime_1.jsx)(Checkbox_1.default, { "aria-label": `Select row ${rowIndex + 1}`, onChange: () => handleCheckbox(getRowId(row)), isChecked: isChecked }) })] }) })), rowDetail && detailIds && ((0, jsx_runtime_1.jsx)(react_1.Td, { w: `${rowDetail_1.DETAIL_SLOT_PX}px`, minW: `${rowDetail_1.DETAIL_SLOT_PX}px`, maxW: `${rowDetail_1.DETAIL_SLOT_PX}px`, p: 0, textAlign: "center", background: isChecked ? selectedFrozenBg : frozenCellBg, position: "sticky", borderBottom: borderStyle, boxShadow: !isContent && !isCheckbox ? leadSx : undefined, "data-hoverable": chromeHoverable, boxSizing: "border-box", left: `${detailLeft}px`, zIndex: 1, className: "columns sticky-columns", children: hasDetail && ((0, jsx_runtime_1.jsx)(rowDetail_1.RowDetailToggle, { isOpen: detailOpen, detailId: detailIds.detailId, color: theme.colors.textMuted, theme: theme, onToggle: () => rowDetail.toggle(getRowId(row)) })) })), columns.map((header, headerIndex) => {
165
+ return ((0, jsx_runtime_1.jsxs)(react_2.default.Fragment, { children: [(0, jsx_runtime_1.jsxs)(react_1.Tr, { ref: mainRowRef, "aria-rowindex": ariaRowIndex, tabIndex: keyboardHeader ? 0 : undefined, onKeyDown: keyboardHeader ? handleRowKeyDown : undefined, opacity: isLoading ? 0.4 : 1, pointerEvents: isLoading ? "none" : "auto", transition: (0, motion_1.transitionFor)(["opacity"], "base"), sx: { ...rowSx, ...(0, motion_2.reducedMotionSx)() }, children: [isContent && ((0, jsx_runtime_1.jsx)(react_1.Td, { w: "6", p: 0, fontSize: "sm", background: isChecked ? selectedFrozenBg : frozenCellBg, color: freezedTextColor, position: "sticky", borderBottom: borderStyle, boxShadow: leadSx, boxSizing: "border-box", "data-hoverable": chromeHoverable, left: "0px", zIndex: 1, className: "columns sticky-columns", children: hasContent && ((0, jsx_runtime_1.jsx)(react_1.IconButton, { "aria-label": isExpanded ? "Collapse row" : "Expand row", color: theme.colors.textMuted, icon: isExpanded ? ((0, jsx_runtime_1.jsx)(lucide_react_1.ChevronDown, {})) : ((0, jsx_runtime_1.jsx)(lucide_react_1.ChevronRight, {})), _hover: { transform: "scale(1.1)" }, size: "sm", onClick: () => toggleRowExpansion(rowIndex), variant: "ghost" })) })), isCheckbox && ((0, jsx_runtime_1.jsx)(react_1.Td, { w: variant.slot.width, minW: variant.slot.width, px: variant.slot.centered ? 0 : undefined, textAlign: variant.slot.centered ? "center" : undefined, fontSize: "sm", fontWeight: 600, color: theme.colors.background[50], textTransform: "capitalize", background: isChecked ? selectedFrozenBg : frozenCellBg, position: "sticky", borderBottom: borderStyle, boxShadow: !isContent ? leadSx : undefined, "data-hoverable": chromeHoverable, boxSizing: "border-box", left: "0px", zIndex: 1, className: "columns sticky-columns", children: (0, jsx_runtime_1.jsxs)(react_1.Box, { display: restsOnIndex ? "grid" : undefined, placeItems: "center", children: [restsOnIndex && ((0, jsx_runtime_1.jsx)(react_1.Box, { as: "span", className: "table-slot-index", gridArea: "1 / 1", color: variant.slot.indexInk, fontSize: "0.6875rem", fontWeight: 500, transition: (0, motion_1.transitionFor)(["opacity"]), sx: { fontVariantNumeric: "tabular-nums", ...(0, motion_2.reducedMotionSx)() }, children: rowIndex + 1 })), (0, jsx_runtime_1.jsx)(react_1.Box, { as: "span", className: restsOnIndex ? "table-slot-box" : undefined, gridArea: restsOnIndex ? "1 / 1" : undefined, display: "flex", alignItems: "center", justifyContent: "center", transition: (0, motion_1.transitionFor)(["opacity"]), sx: (0, motion_2.reducedMotionSx)(), children: (0, jsx_runtime_1.jsx)(Checkbox_1.default, { "aria-label": `Select row ${rowIndex + 1}`, onChange: () => handleCheckbox(getRowId(row)), isChecked: isChecked }) })] }) })), rowDetail && detailIds && ((0, jsx_runtime_1.jsx)(react_1.Td, { w: `${rowDetail_1.DETAIL_SLOT_PX}px`, minW: `${rowDetail_1.DETAIL_SLOT_PX}px`, maxW: `${rowDetail_1.DETAIL_SLOT_PX}px`, p: 0, textAlign: "center", background: isChecked ? selectedFrozenBg : frozenCellBg, position: "sticky", borderBottom: borderStyle, boxShadow: !isContent && !isCheckbox ? leadSx : undefined, "data-hoverable": chromeHoverable, boxSizing: "border-box", left: `${detailLeft}px`, zIndex: 1, className: "columns sticky-columns", children: hasDetail && ((0, jsx_runtime_1.jsx)(rowDetail_1.RowDetailToggle, { isOpen: detailOpen, detailId: detailIds.detailId, color: theme.colors.textMuted, theme: theme, onToggle: () => rowDetail.toggle(getRowId(row)) })) })), columns.map((header, headerIndex) => {
157
166
  var _a, _b, _c, _d;
158
167
  if (header.isHidden)
159
168
  return null;
@@ -0,0 +1,21 @@
1
+ import type { FocusRingTokens } from "../../../Theme/tokens/types";
2
+ export declare const rowFocusRingSx: (colors: {
3
+ focusRing: FocusRingTokens;
4
+ }) => {
5
+ "&:focus-visible": {
6
+ outline: string;
7
+ outlineOffset: string;
8
+ };
9
+ "&:focus-visible > td": {
10
+ boxShadow: string;
11
+ };
12
+ "&:focus-visible > td:first-of-type": {
13
+ boxShadow: string;
14
+ };
15
+ "&:focus-visible > td:last-of-type": {
16
+ boxShadow: string;
17
+ };
18
+ "&:focus-visible > td:only-of-type": {
19
+ boxShadow: string;
20
+ };
21
+ };
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.rowFocusRingSx = void 0;
4
+ const focusRing_styles_1 = require("../../../Theme/chakra/focusRing.styles");
5
+ const TOP = [0, 1];
6
+ const BOTTOM = [0, -1];
7
+ const LEFT = [1, 0];
8
+ const RIGHT = [-1, 0];
9
+ const RING_BAND = focusRing_styles_1.FOCUS_RING_WIDTH - focusRing_styles_1.FOCUS_HALO_WIDTH;
10
+ const band = ([x, y], width, color) => `inset ${x * width}px ${y * width}px 0 0 ${color}`;
11
+ const edgeShadow = (edges, { ring, halo }) => [...edges.map((edge) => band(edge, RING_BAND, ring)), ...edges.map((edge) => band(edge, focusRing_styles_1.FOCUS_RING_WIDTH, halo))].join(", ");
12
+ // NOTE: each cell draws its slice, so sticky cells keep the ring above scrolled content.
13
+ const rowFocusRingSx = (colors) => ({
14
+ "&:focus-visible": { outline: "2px solid transparent", outlineOffset: "-2px" },
15
+ "&:focus-visible > td": { boxShadow: edgeShadow([TOP, BOTTOM], colors.focusRing) },
16
+ "&:focus-visible > td:first-of-type": { boxShadow: edgeShadow([TOP, BOTTOM, LEFT], colors.focusRing) },
17
+ "&:focus-visible > td:last-of-type": { boxShadow: edgeShadow([TOP, BOTTOM, RIGHT], colors.focusRing) },
18
+ "&:focus-visible > td:only-of-type": { boxShadow: edgeShadow([TOP, BOTTOM, LEFT, RIGHT], colors.focusRing) },
19
+ });
20
+ exports.rowFocusRingSx = rowFocusRingSx;
@@ -12,6 +12,7 @@ export type TableHoverScope = "cell" | "row";
12
12
  export type TableChromeReveal = "always" | "hover";
13
13
  /** Every field required: a preset that forgets one is a compile error, not a runtime gap. */
14
14
  export type TableVariantTokens = {
15
+ /** Header row look: fill, ink, type scale, height, column rules and when the filter kebab shows. */
15
16
  header: {
16
17
  bg: string;
17
18
  ink: string;
@@ -25,6 +26,7 @@ export type TableVariantTokens = {
25
26
  /** When the per-column filter kebab appears. Active columns always show it. */
26
27
  actions: TableChromeReveal;
27
28
  };
29
+ /** Body row look: hover and selected fills, rules and the zebra stripe fill. */
28
30
  row: {
29
31
  hoverBg: string;
30
32
  hoverScope: TableHoverScope;
@@ -36,12 +38,14 @@ export type TableVariantTokens = {
36
38
  /** Zebra fill for odd rows when `stripe` is on; a quiet step below `hoverBg`. */
37
39
  stripeBg: string;
38
40
  };
41
+ /** Leading checkbox/index column: width, what rests in it and its ink. */
39
42
  slot: {
40
43
  width: string;
41
44
  rest: TableSlotRest;
42
45
  indexInk: string;
43
46
  centered: boolean;
44
47
  };
48
+ /** Body cell ink and how status values render (bleed fill or pill). */
45
49
  cells: {
46
50
  ink: string;
47
51
  statusFill: TableStatusFill;
@@ -1,19 +1,33 @@
1
1
  import type { ControlSize } from "../../Theme/tokens/primitives/controlSizes";
2
2
  import type { TabActivationMode, TabsColorScheme, TabsOrientation, TabsVariant } from "./TabsProps";
3
3
  export interface TabsContextValue {
4
+ /** Id prefix from which tab and panel ids are derived. */
4
5
  baseId: string;
6
+ /** Selected tab value; undefined when none is selected, e.g. in link mode. */
5
7
  selectedId: string | undefined;
8
+ /** Tab that holds the roving tab stop. */
6
9
  focusedId: string | undefined;
10
+ /** Selects a tab by value; updates internal state only when uncontrolled. */
7
11
  select: (value: string) => void;
12
+ /** Moves the roving focus to a tab without selecting it. */
8
13
  focusTab: (value: string) => void;
14
+ /** True once a panel container exists; tabs then point `aria-controls` at their panel. */
9
15
  hasPanels: boolean;
16
+ /** Called by TabPanels to mark that this Tabs instance has panels. */
10
17
  registerPanels: () => void;
18
+ /** Layout axis and arrow-key direction. */
11
19
  orientation: TabsOrientation;
20
+ /** Whether focus alone selects a tab. */
12
21
  activationMode: TabActivationMode;
22
+ /** Visual treatment shared by every tab. */
13
23
  variant: TabsVariant;
24
+ /** Control size shared by every tab. */
14
25
  size: ControlSize;
26
+ /** Colour of the selected tab and its count badge. */
15
27
  colorScheme: TabsColorScheme;
28
+ /** Keeps unselected panels unmounted until first selected. */
16
29
  isLazy: boolean;
30
+ /** Tabs share the tablist's width equally. */
17
31
  isFitted: boolean;
18
32
  }
19
33
  export declare const TabsContext: import("react").Context<TabsContextValue | undefined>;