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,24 +1,36 @@
1
1
  export type StepValidator = () => string[];
2
2
  /** Reducer state: current step, the furthest validly reached step, and the blocking messages. */
3
3
  export type WizardState = {
4
+ /** Zero-based index of the current step. */
4
5
  index: number;
5
6
  /** Furthest step the user has validly reached; stages beyond it stay locked. */
6
7
  furthest: number;
8
+ /** Messages blocking the current step; [] when none. */
7
9
  errors: string[];
8
10
  };
9
11
  /** Actions `wizardTransition` understands. */
10
- export type WizardAction = {
12
+ export type WizardAction =
13
+ /** Validates the current step, then advances; failing keeps the step and stores its errors. */
14
+ {
11
15
  type: "next";
12
- } | {
16
+ }
17
+ /** Steps back one, clearing errors. */
18
+ | {
13
19
  type: "back";
14
- } | {
20
+ }
21
+ /** Jumps to `index` if it is at or before `furthest`; otherwise ignored. */
22
+ | {
15
23
  type: "goto";
16
24
  index: number;
17
- } | {
25
+ }
26
+ /** Moves to `index` and shows `errors`, used when finishing finds an invalid step. */
27
+ | {
18
28
  type: "fail";
19
29
  index: number;
20
30
  errors: string[];
21
- } | {
31
+ }
32
+ /** Returns to the first step with nothing reached beyond it. */
33
+ | {
22
34
  type: "reset";
23
35
  };
24
36
  export declare const INITIAL_WIZARD_STATE: WizardState;
@@ -1,2 +1,3 @@
1
1
  import type { WorkspaceTrayPreviewProps } from "./WorkspaceWindowProps";
2
+ /** Hover and focus preview card with open delay, close grace and Escape dismissal. */
2
3
  export default function WorkspaceTrayPreview({ children, preview, enabled, openDelayMs, closeDelayMs, placement, onOpenChange, width, testId, }: WorkspaceTrayPreviewProps): import("react/jsx-runtime").JSX.Element;
@@ -16,7 +16,7 @@ const PLACEMENT_STYLE = {
16
16
  "bottom-end": { top: "100%", right: 0, marginTop: "6px" },
17
17
  "bottom-start": { top: "100%", left: 0, marginTop: "6px" },
18
18
  };
19
- // Presentational, app-agnostic hover-preview (intent-safe: open delay, close grace, Escape dismisses).
19
+ /** Hover and focus preview card with open delay, close grace and Escape dismissal. */
20
20
  function WorkspaceTrayPreview({ children, preview, enabled = true, openDelayMs = 350, closeDelayMs = 200, placement = "top-end", onOpenChange, width = "340px", testId = "workspace-tray-preview", }) {
21
21
  const theme = (0, useCustomTheme_1.useCustomTheme)();
22
22
  const cardId = (0, react_1.useId)();
@@ -1,3 +1,5 @@
1
1
  import type { WorkspaceTrayProps, WorkspaceWindowProps } from "./WorkspaceWindowProps";
2
+ /** Floating Jira-style workspace window; headless, so the parent owns its `state`. */
2
3
  export default function WorkspaceWindow({ title, state, children, onMinimize, onClose, onOpenFullPage, onOverlayClick, headerActions, labels, finalFocusRef, testId, }: WorkspaceWindowProps): import("react/jsx-runtime").JSX.Element | null;
4
+ /** Row of minimized-window pills, portalled above modals. */
3
5
  export declare function WorkspaceTray({ items, onRestore, onClose, testId, placement, offset, closeLabel, dirtyLabel, label, renderItem, }: WorkspaceTrayProps): import("react/jsx-runtime").JSX.Element | null;
@@ -24,7 +24,7 @@ const WindowTitle = ({ testId, color, children }) => {
24
24
  }, [setHeaderMounted]);
25
25
  return ((0, jsx_runtime_1.jsx)(react_1.Text, { id: headerId, fontSize: "sm", fontWeight: 600, color: color, noOfLines: 1, "data-testid": `${testId}-title`, children: children }));
26
26
  };
27
- // Presentational floating "workspace window" (Jira-style dialog), headless — the parent owns window state.
27
+ /** Floating Jira-style workspace window; headless, so the parent owns its `state`. */
28
28
  function WorkspaceWindow({ title, state, children, onMinimize, onClose, onOpenFullPage, onOverlayClick, headerActions, labels, finalFocusRef, testId = "workspace-window", }) {
29
29
  var _a, _b, _c;
30
30
  // Must run before the early return: a minimized render would otherwise skip the hook
@@ -44,6 +44,7 @@ function WorkspaceWindow({ title, state, children, onMinimize, onClose, onOpenFu
44
44
  }, "data-testid": `${testId}-backdrop`, children: (0, jsx_runtime_1.jsxs)(react_1.Box, { bg: theme.colors.surfaceRaised, borderRadius: "xl", boxShadow: "2xl", overflow: "hidden", w: "100%", maxW: size.maxW, h: size.h, display: "flex", flexDirection: "column", "data-testid": testId, "data-window-state": state, children: [(0, jsx_runtime_1.jsxs)(react_1.Flex, { align: "center", justify: "space-between", px: 3, py: 2, borderBottomWidth: "1px", borderColor: (0, surfaceRaised_1.raisedRule)(theme.colors), bg: (0, planeStep_1.bandOn)(theme.colors.background[100], theme.colors.surfaceRaised), flexShrink: 0, children: [(0, jsx_runtime_1.jsx)(WindowTitle, { testId: testId, color: theme.colors.text[700], children: title }), (0, jsx_runtime_1.jsxs)(react_1.HStack, { spacing: 1, children: [headerActions, onOpenFullPage ? ((0, jsx_runtime_1.jsx)(react_1.IconButton, { "aria-label": (_a = labels === null || labels === void 0 ? void 0 : labels.openFullPage) !== null && _a !== void 0 ? _a : "Open full page", size: "xs", variant: "ghost", icon: (0, jsx_runtime_1.jsx)(lucide_react_1.ExternalLink, { size: 14 }), onClick: onOpenFullPage, "data-testid": `${testId}-fullpage` })) : null, onMinimize ? ((0, jsx_runtime_1.jsx)(react_1.IconButton, { "aria-label": (_b = labels === null || labels === void 0 ? void 0 : labels.minimize) !== null && _b !== void 0 ? _b : "Minimize", size: "xs", variant: "ghost", icon: (0, jsx_runtime_1.jsx)(lucide_react_1.Minus, { size: 15 }), onClick: onMinimize, "data-testid": `${testId}-minimize` })) : null, onClose ? ((0, jsx_runtime_1.jsx)(react_1.IconButton, { "aria-label": (_c = labels === null || labels === void 0 ? void 0 : labels.close) !== null && _c !== void 0 ? _c : "Close", size: "xs", variant: "ghost", colorScheme: "red", icon: (0, jsx_runtime_1.jsx)(lucide_react_1.X, { size: 15 }), onClick: onClose, "data-testid": `${testId}-close` })) : null] })] }), (0, jsx_runtime_1.jsx)(react_1.Box, { flex: "1", overflow: "auto", px: { base: 3, md: 5 }, py: 4, children: children })] }) })] }));
45
45
  }
46
46
  const cssLength = (value) => (typeof value === "number" ? `${value}px` : value);
47
+ /** Row of minimized-window pills, portalled above modals. */
47
48
  // Portalled above modal overlays; aria-live keeps Chakra's modal aria-hidden off it, data-no-focus-lock keeps the focus trap off it.
48
49
  function WorkspaceTray({ items, onRestore, onClose, testId = "workspace-tray", placement = "bottom-end", offset, closeLabel, dirtyLabel = "Unsaved changes", label = "Minimized windows", renderItem, }) {
49
50
  var _a, _b;
@@ -23,11 +23,13 @@ export interface WorkspaceWindowProps {
23
23
  state: WorkspaceWindowState;
24
24
  /** Window body. */
25
25
  children: ReactNode;
26
+ /** Adds the Minimize button to the control bar; omitted hides it. The parent sets `state` to "minimized" itself. */
26
27
  onMinimize?: () => void;
27
28
  /** @deprecated Never called; no maximize/restore control is rendered. */
28
29
  onMedium?: () => void;
29
30
  /** @deprecated Never called; no maximize/restore control is rendered. */
30
31
  onMaximize?: () => void;
32
+ /** Adds the Close button to the control bar and is its only trigger: Esc and backdrop clicks never close the window. */
31
33
  onClose?: () => void;
32
34
  /** Optional "pop out to full page" affordance; hidden when omitted. */
33
35
  onOpenFullPage?: () => void;
@@ -52,7 +54,9 @@ export interface WorkspaceWindowProps {
52
54
  }
53
55
  /** One minimized window in the tray; id is passed back to onRestore/onClose so callers can target the right window. */
54
56
  export interface WorkspaceTrayItem {
57
+ /** Identifier handed back to `onRestore` and `onClose`. */
55
58
  id: string;
59
+ /** Main text of the pill. */
56
60
  title: ReactNode;
57
61
  /** Shows an unsaved-changes dot on the built-in pill; named for screen readers by the tray's `dirtyLabel`. */
58
62
  isDirty?: boolean;
@@ -63,14 +67,19 @@ export interface WorkspaceTrayItem {
63
67
  export interface WorkspaceTrayProps {
64
68
  /** Minimized items rendered as restore pills along the bottom. */
65
69
  items: WorkspaceTrayItem[];
70
+ /** Called with the item id when its pill is clicked to bring the window back. */
66
71
  onRestore?: (id: string) => void;
72
+ /** Called with the item id from the pill's close button; omitted removes that button. */
67
73
  onClose?: (id: string) => void;
74
+ /** data-testid for the tray; pills, restore, dirty dot and close buttons derive suffixed ids from it. Default "workspace-tray". */
68
75
  testId?: string;
69
76
  /** Which bottom corner the tray sits in. Default "bottom-end". Portalled above modals but outside their focus trap: a pointer restores a pill while a modal is open, Tab does not reach it. */
70
77
  placement?: "bottom-end" | "bottom-start";
71
78
  /** Distance from the viewport edges, to clear a sticky bar. Numbers are px, strings any CSS length. Default 1rem each. */
72
79
  offset?: {
80
+ /** Gap from the side edge. */
73
81
  x?: number | string;
82
+ /** Gap from the bottom edge. */
74
83
  y?: number | string;
75
84
  };
76
85
  /** Accessible name for each pill's close button. Default "Close"; pass one that names the item for non-English or per-window labels. */
@@ -81,7 +90,9 @@ export interface WorkspaceTrayProps {
81
90
  label?: string;
82
91
  /** Replaces one item's pill inside the same tray; gets the item, bound restore/close and `pill`, the built-in pill (dot, subtitle, close button) to return as is or wrap, e.g. in WorkspaceTrayPreview. */
83
92
  renderItem?: (item: WorkspaceTrayItem, api: {
93
+ /** Calls `onRestore` with this item's id. */
84
94
  restore: () => void;
95
+ /** Calls `onClose` with this item's id. */
85
96
  close: () => void;
86
97
  }, pill: ReactNode) => ReactNode;
87
98
  }
@@ -100,6 +111,7 @@ export interface WorkspaceTrayPreviewProps {
100
111
  * on the one focusable trigger so assistive tech hears the card.
101
112
  */
102
113
  children: ReactNode | ((api: {
114
+ /** Accessibility attributes to spread on the one focusable trigger. */
103
115
  triggerProps: WorkspaceTrayPreviewTriggerProps;
104
116
  }) => ReactNode);
105
117
  /**
@@ -109,6 +121,7 @@ export interface WorkspaceTrayPreviewProps {
109
121
  * the preview can dismiss it.
110
122
  */
111
123
  preview: ReactNode | ((api: {
124
+ /** Closes the card immediately, e.g. after an action inside it. */
112
125
  close: () => void;
113
126
  }) => ReactNode);
114
127
  /** Whether the preview is enabled at all (e.g. disable on touch devices). */
@@ -22,7 +22,7 @@ export declare const LIGHT_CANVAS_STEP = 1.09;
22
22
  export declare const finalizeLightPalette: (source: BrandPaletteSource) => PaletteProps;
23
23
  export { lavender, meadow, radiant, skyline, slate, emerald, rosewood, storefront, zinc };
24
24
  export { lavenderDark, meadowDark, radiantDark, skylineDark, slateDark, emeraldDark, rosewoodDark, storefrontDark, zincDark, };
25
- /** Light palette per brand, derived on first read. `lavender` is the base the other six extend. */
25
+ /** Light palette per brand, derived on first read. `lavender` is the base the other eight extend. */
26
26
  export declare const lightPalettes: Record<ThemeName, PaletteProps>;
27
27
  export declare const darkPalettes: Record<ThemeName, PaletteProps>;
28
28
  export declare const palettes: Record<ThemeName, Record<ResolvedColorMode, PaletteProps>>;
@@ -84,7 +84,7 @@ exports.finalizeLightPalette = finalizeLightPalette;
84
84
  // NOTE: withFocusRing is outermost — it must see primary and surfaces together, after every earlier step.
85
85
  const resolveRungs = (palette) => (0, focusRing_1.withFocusRing)((0, surfaceRungs_1.withSurfaceRungs)((0, surfaceRaised_1.withSurfaceRaised)((0, resolvedRungs_1.withTableHoverRung)((0, resolvedRungs_1.withPlaceholderRung)((0, outlineRung_1.withOutlineRung)(palette))))));
86
86
  const lightBrand = (source) => (0, lazy_1.lazyPalette)(source, () => resolveRungs((0, exports.finalizeLightPalette)(source)));
87
- /** Light palette per brand, derived on first read. `lavender` is the base the other six extend. */
87
+ /** Light palette per brand, derived on first read. `lavender` is the base the other eight extend. */
88
88
  exports.lightPalettes = {
89
89
  lavender: lightBrand(palette_light_1.default),
90
90
  meadow: lightBrand(palette_light_2.default),
@@ -5,3 +5,9 @@ export interface RowStateBackgrounds {
5
5
  selectedActive: string;
6
6
  }
7
7
  export declare const listRowBackgrounds: (colors: PaletteProps) => RowStateBackgrounds;
8
+ export declare const SELECTED_ROW_STEP = 1.28;
9
+ export declare const DISTINCT_ROW_STEP = 1.1;
10
+ export interface SelectRowBackgrounds extends RowStateBackgrounds {
11
+ keyboardRing: string;
12
+ }
13
+ export declare const selectRowBackgrounds: (colors: PaletteProps) => SelectRowBackgrounds;
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.listRowBackgrounds = void 0;
3
+ exports.selectRowBackgrounds = exports.DISTINCT_ROW_STEP = exports.SELECTED_ROW_STEP = exports.listRowBackgrounds = void 0;
4
+ const accentText_1 = require("./accentText");
5
+ const color_1 = require("./color");
4
6
  const outlineRung_1 = require("./outlineRung");
5
7
  const listRowBackgrounds = (colors) => {
6
8
  // Raw tertiary reaches 1.29:1 and reads as pressed; dark aliases it to the panel at 1.025:1.
@@ -12,3 +14,19 @@ const listRowBackgrounds = (colors) => {
12
14
  };
13
15
  };
14
16
  exports.listRowBackgrounds = listRowBackgrounds;
17
+ exports.SELECTED_ROW_STEP = 1.28;
18
+ exports.DISTINCT_ROW_STEP = 1.1;
19
+ // NOTE: light steps deeper in the hover tint's own hue; dark uses neutral greys. Both derive direction from the panel.
20
+ const selectRowBackgrounds = (colors) => {
21
+ const panel = colors.surfaceRaised;
22
+ const { active: hoverTint } = (0, exports.listRowBackgrounds)(colors);
23
+ const isDark = (0, accentText_1.isDarkCanvas)(panel);
24
+ const active = isDark ? (0, outlineRung_1.neutralStep)(panel, outlineRung_1.MIN_PERCEPTIBLE_STEP) : hoverTint;
25
+ const selectedStep = Math.max(exports.SELECTED_ROW_STEP, (0, color_1.contrastRatio)(active, panel) * exports.DISTINCT_ROW_STEP);
26
+ const selected = isDark ? (0, outlineRung_1.neutralStep)(panel, selectedStep) : (0, outlineRung_1.tintStep)(hoverTint, panel, selectedStep);
27
+ const selectedActive = isDark
28
+ ? (0, outlineRung_1.neutralStep)(selected, outlineRung_1.STACKED_STATE_STEP)
29
+ : (0, outlineRung_1.tintStep)(selected, selected, outlineRung_1.STACKED_STATE_STEP);
30
+ return { active, selected, selectedActive, keyboardRing: (0, outlineRung_1.neutralStep)(selectedActive, outlineRung_1.AA_NON_TEXT) };
31
+ };
32
+ exports.selectRowBackgrounds = selectRowBackgrounds;
@@ -1,2 +1,3 @@
1
1
  export type ScrollShadowStyle = Record<string, unknown>;
2
2
  export declare function scrollShadowStyles(surface: string): ScrollShadowStyle;
3
+ export declare function scrollShadowStylesVertical(surface: string): ScrollShadowStyle;
@@ -1,8 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.scrollShadowStyles = scrollShadowStyles;
4
+ exports.scrollShadowStylesVertical = scrollShadowStylesVertical;
5
+ const accentText_1 = require("./accentText");
4
6
  const EDGE = "24px";
5
7
  const TINT = "rgba(0, 0, 0, 0.08)";
8
+ const TINT_ON_DARK = "rgba(0, 0, 0, 0.32)";
9
+ const VERTICAL_SHADOW = "8px";
6
10
  // CSS-only overflow hint via background-attachment local vs scroll — no listener, no extra node.
7
11
  function scrollShadowStyles(surface) {
8
12
  return {
@@ -14,3 +18,15 @@ function scrollShadowStyles(surface) {
14
18
  backgroundAttachment: "local, local, scroll, scroll",
15
19
  };
16
20
  }
21
+ // NOTE: dark panels swallow an 8% black edge, so the vertical hint steps up on a dark surface.
22
+ function scrollShadowStylesVertical(surface) {
23
+ const tint = (0, accentText_1.isDarkCanvas)(surface) ? TINT_ON_DARK : TINT;
24
+ return {
25
+ backgroundColor: surface,
26
+ backgroundImage: `linear-gradient(${surface}, ${surface}), linear-gradient(${surface}, ${surface}), linear-gradient(${tint}, transparent), linear-gradient(transparent, ${tint})`,
27
+ backgroundRepeat: "no-repeat",
28
+ backgroundSize: `100% ${EDGE}, 100% ${EDGE}, 100% ${VERTICAL_SHADOW}, 100% ${VERTICAL_SHADOW}`,
29
+ backgroundPosition: "0 0, 0 100%, 0 0, 0 100%",
30
+ backgroundAttachment: "local, local, scroll, scroll",
31
+ };
32
+ }
@@ -41,6 +41,7 @@ const validate = (apps) => {
41
41
  };
42
42
  // Flip back to true to restore `searchThreshold` opening the field on its own.
43
43
  const SEARCH_OPENS_BY_COUNT = false;
44
+ /** Top-bar grid button that opens a panel of suite apps to jump between, with optional search and keyboard shortcut. */
44
45
  const AppSwitcher = ({ apps, currentAppId, onSelect, onOpenChange, isSearchable, searchThreshold = 8, shortcut = null, showShortcutHint = true, hideWhenAlone = true, emptyMessage = "No app matches that name.", footer, ariaLabel = "Switch app", panelWidth, maxHeight = "24rem", isLoading = false, }) => {
45
46
  const theme = useCustomTheme();
46
47
  const { isOpen, onOpen, onClose } = useDisclosure();
@@ -13,6 +13,7 @@ const FieldLabel = ({ children }) => {
13
13
  return (_jsx(Text, { fontSize: "sm", fontWeight: 500, color: colors.textMuted, mb: 2, children: children }));
14
14
  };
15
15
  const brandSwatch = (name, colors) => (_jsx(Box, { w: "14px", h: "14px", borderRadius: "full", bg: lightPalettes[name].primary[500], border: "1px solid", borderColor: ruleInk(colors.boxborder[200], [colors.backgroundColor.light, colors.backgroundColor.tertiary], CHROME_RULE) }));
16
+ /** Settings panel with brand, light/dark mode and root font-size pickers; each section can be hidden. */
16
17
  export const AppearanceSettings = ({ brand, fontSize, onBrandChange, onFontSizeChange, showBrand = true, showColorMode = true, showFontSize = true, size = "sm", labels, }) => {
17
18
  var _a, _b, _c;
18
19
  const { colors } = useCustomTheme();
@@ -33,6 +33,7 @@ export const recordingFileName = (mime, now) => {
33
33
  return { type, name: `recording-${now}.${(_a = EXTENSIONS[type]) !== null && _a !== void 0 ? _a : (((_b = type.split("/")[1]) === null || _b === void 0 ? void 0 : _b.replace(/^x-/, "")) || "webm")}` };
34
34
  };
35
35
  const isSupported = () => { var _a; return typeof navigator !== "undefined" && !!((_a = navigator.mediaDevices) === null || _a === void 0 ? void 0 : _a.getUserMedia) && typeof MediaRecorder !== "undefined"; };
36
+ /** Microphone recorder: a toggle button and timer that hands a `File` to `onRecorded` on stop. */
36
37
  const AudioRecorder = ({ onRecorded, maxDurationSec, isDisabled = false, labels }) => {
37
38
  const { colors } = useCustomTheme();
38
39
  const text = { ...DEFAULT_LABELS, ...labels };
@@ -8,6 +8,7 @@ const summarize = (names, overflow) => {
8
8
  return names.join(", ");
9
9
  return `${names.join(", ")} and ${overflow} more`;
10
10
  };
11
+ /** Overlapping avatar stack; people past `max` collapse into a "+N" chip. */
11
12
  const AvatarGroup = ({ people, max = 4, size = "md", ariaLabel, "data-testid": testId }) => {
12
13
  const { colors } = useCustomTheme();
13
14
  const shown = people.slice(0, max);
@@ -16,6 +16,7 @@ const SCHEME_BY_TONE = {
16
16
  danger: "red",
17
17
  };
18
18
  const TOUCH_SX = { "@media (pointer: coarse)": { minHeight: "44px", minWidth: "44px" } };
19
+ /** Action bar for table row selection: count, shared facts, bulk action buttons and a clear button; renders nothing at zero. */
19
20
  const BulkSelectionBar = ({ selectedCount, facts, actions, onClearSelection, clearLabel = "Clear selection", countLabel, placement = "sticky", "aria-label": ariaLabel = "Selection actions", "data-testid": testId = "bulk-selection-bar", }) => {
20
21
  const { colors } = useCustomTheme();
21
22
  const isActive = selectedCount > 0;
@@ -1,6 +1,7 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { forwardRef, memo } from "react";
3
3
  import { Button as ChakraButton } from "@chakra-ui/react";
4
+ /** Themed button with label or children, left/right icons and a loading state that keeps its width. */
4
5
  const Button = forwardRef(function Button({ label, children, onClick, opacity, variant = "solid", leftIcon, rightIcon, size, isDisabled = false, isLoading = false, loadingText, type, width, w, sx, colorScheme, border, borderRadius, onMouseEnter, onMouseLeave, ...aria }, ref) {
5
6
  const isIconOnly = !children && !label && !!(leftIcon || rightIcon);
6
7
  return (_jsx(ChakraButton, { ...aria, type: type, onClick: onClick, width: width || w || "fit-content", variant: variant, size: size, isLoading: isLoading, isDisabled: isDisabled, loadingText: loadingText, leftIcon: leftIcon, rightIcon: rightIcon, iconSpacing: isIconOnly ? 0 : undefined, px: isIconOnly ? 0 : undefined, ref: ref, colorScheme: colorScheme, sx: sx, opacity: opacity, border: border, borderRadius: borderRadius, onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave, children: children !== null && children !== void 0 ? children : label }));
@@ -7,6 +7,7 @@ import { hexToRgb } from "../../Theme/tokens/builders/color.js";
7
7
  import { rafThrottle } from "../../Utils/rafThrottle.js";
8
8
  import { transitionFor } from "../../Theme/tokens/primitives/motion.js";
9
9
  const BACKGROUND_TRANSITION = transitionFor(["background"]);
10
+ /** Attached left icon, text button and right icon or dropdown trigger; see ButtonGroupIconProps. */
10
11
  export default function ButtonGroupIcon({ leftIcon, rightIcon, onLeftIconClick, onRightIconClick, buttonText, onButtonClick, onButtongroupClick, size, variant, color, buttonGroupStyle, buttonGroupLeftIconStyle, buttonGroupRightIconStyle, buttonStyle, onBlurLeftIcon, onBlurRightIcon, dropdownOptions, // New prop for dropdown options
11
12
  onDropdownOptionClick, // New prop to handle option clicks
12
13
  rightIconDropdown, menulistStyle, menuItemStyle, isLoading, divider = true, leftIconLoading, RightIconLoading, }) {
@@ -73,6 +73,7 @@ const EventChip = ({ event, colors, surface, onEventClick, segment }) => {
73
73
  };
74
74
  return event.href ? (_jsx(Box, { as: "a", href: event.href, ...common, children: event.label })) : (_jsx(Box, { as: "button", type: "button", ...common, children: event.label }));
75
75
  };
76
+ /** Controlled month, week or day grid that places date-granularity events as chips and spanning bars, with a toolbar and arrow-key navigation. */
76
77
  const CalendarGrid = ({ view, date, events, onViewChange, onDateChange, onEventClick, renderDayCell, weekStartsOn = 0, locale, isLoading = false, labels, }) => {
77
78
  const { colors } = useCustomTheme();
78
79
  const text = { ...DEFAULT_LABELS, ...labels };
@@ -58,6 +58,7 @@ const getCardStyles = (isActive, isNextUpgrade, popular, theme) => {
58
58
  colorScheme: "primary",
59
59
  });
60
60
  };
61
+ /** Subscription plan card with price, feature list and a call-to-action; badge and accent follow active, upgrade and popular state. */
61
62
  const PaymentCard = ({ plan, isActive = false, isNextUpgrade = false, billingCycle, onSelect, onHover, buttonLoading, isLoading = false, isRenewal = false, }) => {
62
63
  const theme = useCustomTheme();
63
64
  const { badgeText, badgeColor, buttonColor, buttonColor50, onButtonColor, iconInk, colorScheme } = getCardStyles(isActive, isNextUpgrade, !!plan.popular, theme);
@@ -3,6 +3,7 @@ import { useId } from "react";
3
3
  import { Box, Flex, Text } from "@chakra-ui/react";
4
4
  import { useCustomTheme } from "../../Theme/useCustomTheme.js";
5
5
  import { RadioIndicator, selectableSurface, useSelectable } from "../CheckoutKit/selectable.js";
6
+ /** Selectable radio card with a label, optional description and icon; must sit inside a `ChoiceCardGroup`. */
6
7
  const ChoiceCard = ({ value, label, description, icon, disabled: disabledProp = false, isDisabled = false, "data-testid": testId }) => {
7
8
  const disabled = disabledProp || isDisabled;
8
9
  const { colors } = useCustomTheme();
@@ -1,4 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { SelectableGroup } from "../CheckoutKit/selectable.js";
3
+ /** Radiogroup that lays out `ChoiceCard`s in one or more columns and manages the single selection. */
3
4
  const ChoiceCardGroup = (props) => _jsx(SelectableGroup, { ...props });
4
5
  export default ChoiceCardGroup;
@@ -7,6 +7,7 @@ import { raisedRule } from "../../Theme/tokens/builders/surfaceRaised.js";
7
7
  import { resolveSoftTone } from "../../Theme/tokens/builders/tone.js";
8
8
  import Button from "../Button/Button.js";
9
9
  import TextInput from "../Input/TextInput.js";
10
+ /** Cancel/Confirm modal for destructive prompts; focus starts on Cancel and Confirm never closes the dialog itself. */
10
11
  const ConfirmDialog = ({ isOpen, onClose, onConfirm, title, children, icon, iconBg, iconColor, entityName, entityKind, dependents, consequence, alternative, isConfirmDisabled: isConfirmHeld = false, tone = "destructive", cancelLabel = "Cancel", confirmLabel = "Confirm", confirmIcon, isConfirmLoading = false, disableCancelWhilePending = true, confirmationText, confirmationLabel, bodyLayout = "flush", bodySpacing = 4, actionsPt = 0, focusCancelOnOpen = true, isCentered = true, closeOnEsc, closeOnOverlayClick, }) => {
11
12
  const { colors } = useCustomTheme();
12
13
  const cancelRef = useRef(null);
@@ -26,6 +26,7 @@ const DEFAULT_LABELS = {
26
26
  confirmDeletion: "Confirm Deletion",
27
27
  deleteConfirmPrefix: "Are you sure you want to delete",
28
28
  };
29
+ /** Card with a two-column module list (name, owner) and per-row Edit and Delete dialogs; loading shows skeleton bars, empty shows an empty state. */
29
30
  const CustomModulesTable = ({ modules, isLoading = false, isUpdating = false, isDeleting = false, onUpdateModule, onDeleteModule, labels: labelOverrides, }) => {
30
31
  var _a;
31
32
  const { colors } = useCustomTheme();
@@ -4,6 +4,7 @@ import { Trash2 } from "lucide-react";
4
4
  import { useCustomTheme } from "../../Theme/useCustomTheme.js";
5
5
  import { accentTextOnCanvas } from "../../Theme/tokens/builders/accentText.js";
6
6
  import ConfirmDialog from "../ConfirmDialog/ConfirmDialog.js";
7
+ /** Confirmation dialog for deleting a module; used by CustomModulesTable. */
7
8
  const DeleteModuleModal = ({ isOpen, onClose, moduleName, isLoading, onConfirm, labels, }) => {
8
9
  const { colors } = useCustomTheme();
9
10
  return (_jsx(ConfirmDialog, { isOpen: isOpen, onClose: onClose, onConfirm: onConfirm, title: labels.confirmDeletion, iconBg: colors.semantic.error[50], iconColor: accentTextOnCanvas(colors.semantic.error, colors.semantic.error[50]), cancelLabel: labels.cancel, confirmLabel: labels.delete, confirmIcon: _jsx(Trash2, { size: 15 }), isConfirmLoading: isLoading, disableCancelWhilePending: false, focusCancelOnOpen: false, children: _jsxs(Text, { color: colors.textMuted, fontSize: "sm", mb: 5, children: [labels.deleteConfirmPrefix, " ", _jsx(Text, { as: "span", fontWeight: 600, color: colors.text[800], children: moduleName }), "?"] }) }));
@@ -4,6 +4,7 @@ import { Modal, ModalOverlay, ModalContent, ModalHeader, ModalCloseButton, Modal
4
4
  import { useCustomTheme } from "../../Theme/useCustomTheme.js";
5
5
  import { raisedRule } from "../../Theme/tokens/builders/surfaceRaised.js";
6
6
  import Button from "../Button/Button.js";
7
+ /** Dialog with one text field to rename a module; used by CustomModulesTable. */
7
8
  const EditModuleModal = ({ isOpen, onClose, initialName, isLoading, onSubmit, labels, }) => {
8
9
  const { colors } = useCustomTheme();
9
10
  const [name, setName] = useState(initialName);
@@ -12,6 +12,7 @@ const DEFAULT_LABELS = {
12
12
  discard: "Discard",
13
13
  keepEditing: "Keep editing",
14
14
  };
15
+ /** Sectioned create/edit form in a Drawer with error summary, sticky footer and discard-changes confirm. */
15
16
  export default function FormDrawer({ isOpen, onClose, title, description, sections, errors = [], isDirty, onSubmit, isSubmitting = false, isSubmitDisabled = false, submitLabel = "Save", cancelLabel = "Cancel", secondaryAction, size = "md", labels, "data-testid": testId = "form-drawer", }) {
16
17
  const { colors } = useCustomTheme();
17
18
  const uid = useId();
@@ -10,6 +10,7 @@ const joinIds = (...ids) => [...new Set(ids.flatMap((value) => { var _a; return
10
10
  const asWirableElement = (children) => typeof children !== "function" && isValidElement(children) && children.type !== Fragment
11
11
  ? children
12
12
  : undefined;
13
+ /** Wires a label, required marker, helper and error text to one control through ids and aria attributes. */
13
14
  const FormField = forwardRef(function FormField({ label, id, isRequired = false, error = false, errorMessage, helperText, layout = "vertical", labelWidth = "12rem", children, ...rest }, ref) {
14
15
  var _a;
15
16
  const { colors } = useCustomTheme();
@@ -18,6 +18,7 @@ export const pickActiveAccent = (primary, canvas) => {
18
18
  const found = order.find((rung) => contrastRatio(primary[rung], canvas) >= ACTIVE_ACCENT_TARGET);
19
19
  return primary[found !== null && found !== void 0 ? found : order[order.length - 1]];
20
20
  };
21
+ /** Sticky top bar with logo, page links, hover dropdowns and a collapsible mobile menu; colours default to the sidebar tokens. */
21
22
  const Header = ({ logo, menuItems, rightSlot, active, colors, boxShadow, onMobileMenuClose }) => {
22
23
  var _a, _b, _c, _d, _e;
23
24
  const { isOpen, onOpen, onClose } = useDisclosure();
@@ -8,6 +8,7 @@ import { AA_NON_TEXT, liftToContrast } from "../../Theme/tokens/builders/outline
8
8
  import Select from "../Select/Select.js";
9
9
  import VerticalDivider from "../Divider/Divider.js";
10
10
  import { surfaceFocusRing } from "../Common/surfaceFocusRing.js";
11
+ /** Row of optional header controls (select, edit, create) separated by dividers; each renders only when its flag is set. */
11
12
  const HeaderActions = ({ select, edit, create, surface, }) => {
12
13
  var _a, _b, _c;
13
14
  const { colors } = useCustomTheme();
@@ -5,6 +5,7 @@ import { useCustomTheme } from "../../../Theme/useCustomTheme.js";
5
5
  import { onFilled } from "../../../Theme/tokens/builders/accentText.js";
6
6
  import { resolveSoftTone } from "../../../Theme/tokens/builders/tone.js";
7
7
  import { scaleFor } from "../../../Theme/chakra/paletteFromTheme.js";
8
+ /** Desktop nav row of Header: ghost buttons with hover dropdowns for items that have children. */
8
9
  const DesktopMenu = ({ menuItems, rightSlot, setHoveredMenu, isActive, activeBg, hoveredMenu, hoverBg, color, hoverTextColor, surface, }) => {
9
10
  const { colors } = useCustomTheme();
10
11
  const badgeTone = (scheme) => resolveSoftTone(colors, scaleFor(colors, scheme !== null && scheme !== void 0 ? scheme : "blue"), surface);
@@ -6,6 +6,7 @@ import { useCustomTheme } from "../../../Theme/useCustomTheme.js";
6
6
  import { onFilled } from "../../../Theme/tokens/builders/accentText.js";
7
7
  import { resolveSoftTone } from "../../../Theme/tokens/builders/tone.js";
8
8
  import { scaleFor } from "../../../Theme/chakra/paletteFromTheme.js";
9
+ /** Collapsible mobile nav panel of Header; items with children toggle an inline submenu. */
9
10
  const MobileMenu = ({ menuItems, isOpen, isActive, hoverBg, activeBg, color, surface, onClose, }) => {
10
11
  const { colors } = useCustomTheme();
11
12
  const badgeTone = (scheme) => resolveSoftTone(colors, scaleFor(colors, scheme !== null && scheme !== void 0 ? scheme : "blue"), surface);
@@ -5,7 +5,7 @@ import { CirclePlus, SquarePen } from "lucide-react";
5
5
  import VerticalDivider from "../../Divider/Divider.js";
6
6
  import { useCustomTheme } from "../../../Theme/useCustomTheme.js";
7
7
  import Button from "../../Button/Button.js";
8
- /** Standalone filter+Edit+Create action bar; NOT rendered by KanbanBoard (which uses HeaderActions instead) and not exported from the package. */
8
+ /** Standalone filter+Edit+Create bar, exported from the package; KanbanBoard itself uses HeaderActions. */
9
9
  const KanbanActions = ({ options, onSelectChange, onEdit, onCreate, }) => {
10
10
  const { colors } = useCustomTheme();
11
11
  return (_jsxs(Box, { display: "flex", alignItems: "center", gap: "0.625rem", children: [_jsx(Select, { native: false, options: options, placeholder: "Filter by Status", width: "12.5rem", onChange: (option) => onSelectChange && onSelectChange(option) }), _jsxs(Box, { display: "flex", alignItems: "center", gap: "0.5rem", children: [_jsx(Button, { size: "sm", variant: "ghost", leftIcon: _jsx(SquarePen, { size: 20, color: colors.text[500] }), onClick: () => onEdit === null || onEdit === void 0 ? void 0 : onEdit(), children: "Edit Layout" }), _jsx(VerticalDivider, {}), _jsx(Button, { size: "sm", variant: "solid", leftIcon: _jsx(CirclePlus, { size: 20 }), onClick: () => onCreate === null || onCreate === void 0 ? void 0 : onCreate(), children: "Create New" })] })] }));
@@ -18,6 +18,7 @@ const Kbd = ({ children, size = "sm", "data-testid": testId }) => {
18
18
  const { colors } = useCustomTheme();
19
19
  return (_jsx(Box, { as: "kbd", "data-testid": testId, display: "inline-flex", alignItems: "center", justifyContent: "center", minW: HEIGHT[size], h: HEIGHT[size], px: 1.5, fontFamily: "inherit", fontSize: "xs-minus", fontWeight: 600, lineHeight: 1, whiteSpace: "nowrap", borderWidth: "1px", borderColor: colors.boxborder[200], borderRadius: "base", bg: colors.backgroundColor.subtle, color: colors.textMuted, children: children }));
20
20
  };
21
+ /** Renders a chord such as `mod+k` as one `Kbd` per key, announced as a single spoken label. */
21
22
  export const KbdShortcut = ({ shortcut, size, isApple, "data-testid": testId }) => {
22
23
  const parts = shortcut.split("+").map((p) => p.trim()).filter(Boolean);
23
24
  const apple = isApple !== null && isApple !== void 0 ? isApple : detectApple();
@@ -28,6 +28,7 @@ export const keyShortcutsFor = (shortcut) => {
28
28
  const chords = Array.from({ length: variants }, (_, v) => options.map((o) => o[Math.min(v, o.length - 1)]).join("+"));
29
29
  return Array.from(new Set(chords)).join(" ");
30
30
  };
31
+ /** Chip or icon button that opens an app-owned launcher; shows the shortcut hint but binds no key. */
31
32
  const LauncherTrigger = ({ onClick, isOpen, label = "Menu", shortcut = "mod+k", icon: Icon = Compass, display = "chip", "aria-label": ariaLabel, "data-testid": testId, }) => {
32
33
  const { colors } = useCustomTheme();
33
34
  const showHint = useMatchMedia(MD_QUERY, true);
@@ -14,6 +14,7 @@ const KIND_ICON = {
14
14
  projects: Crown,
15
15
  tickets: Crown,
16
16
  };
17
+ /** Controlled plan-limit modal: kind-specific title and message, optional usage line and feature list, upgrade CTA only for billing managers. */
17
18
  const LimitReachedModal = ({ isOpen, onClose, kind, limit = null, used = null, canManageBilling, onUpgrade, title, message, features, }) => {
18
19
  const { colors } = useCustomTheme();
19
20
  const copy = resolveLimitCopy(kind, canManageBilling);
@@ -14,6 +14,7 @@ import { transitionFor } from "../../../Theme/tokens/primitives/motion.js";
14
14
  const VOLUME_WIDTH_TRANSITION = transitionFor(["width"], "base", "out");
15
15
  const ARROW_SEEK_SECONDS = 5;
16
16
  const ARROW_VOLUME_STEP = 0.1;
17
+ /** Audio stage of MediaViewer: play/pause, seek, volume and playback-speed controls with J / L skip keys. */
17
18
  const MediaAudioPlayer = ({ item, label, onTimeChange, labels: labelOverrides }) => {
18
19
  const labels = { ...defaultMediaAudioPlayerLabels, ...labelOverrides };
19
20
  const chrome = useViewerChrome();
@@ -77,6 +77,7 @@ function TextStage({ itemKey, url, blob, label, labels }) {
77
77
  }
78
78
  return (_jsx(Box, { position: "absolute", inset: 0, overflow: "auto", px: { base: 3, md: 8 }, py: 4, "data-testid": "media-text", children: _jsx(Text, { as: "pre", fontFamily: "mono", fontSize: "sm", whiteSpace: "pre-wrap", wordBreak: "break-word", color: chrome.ink, children: state.text }) }));
79
79
  }
80
+ /** Document stage of MediaViewer: previews PDF, DOCX and text files inline, other kinds get a download panel; loading and error states come from `resolveDocument`. */
80
81
  export const MediaDocumentStage = ({ item, label, resolveDocument, labels: labelOverrides, }) => {
81
82
  const labels = { ...defaultMediaDocumentStageLabels, ...labelOverrides };
82
83
  const chrome = useViewerChrome();
@@ -13,6 +13,7 @@ import { transitionFor } from "../../../Theme/tokens/primitives/motion.js";
13
13
  const TRANSFORM_OUT_TRANSITION = transitionFor(["transform"], "fast", "out");
14
14
  const ORIGIN = { x: 0, y: 0 };
15
15
  const transformFor = (pan, zoom, rotation) => `translate(${pan.x}px, ${pan.y}px) scale(${zoom / 100}) rotate(${rotation}deg)`;
16
+ /** Image stage of MediaViewer with zoom, drag-to-pan, rotation and keyboard shortcuts. */
16
17
  const MediaImageViewer = ({ item, label, onZoomChange, onNaturalSize, labels: labelOverrides, }) => {
17
18
  const labels = { ...defaultMediaImageViewerLabels, ...labelOverrides };
18
19
  const chrome = useViewerChrome();
@@ -24,6 +24,7 @@ const ARROW_VOLUME_STEP = 0.1;
24
24
  const spin = keyframes `from { transform: rotate(0deg); } to { transform: rotate(360deg); }`;
25
25
  const rippleFade = keyframes `0% { opacity: 0.9; } 100% { opacity: 0; }`;
26
26
  const seekIcon = (icon) => (_jsxs(Flex, { as: "span", align: "center", gap: "2px", "aria-hidden": true, children: [icon, _jsx(Text, { as: "span", fontSize: "xs", fontWeight: 600, children: SEEK_STEP_SECONDS })] }));
27
+ /** Video stage of MediaViewer: transport, seek, volume, speed and fullscreen controls with keyboard shortcuts and double-tap skip. */
27
28
  const MediaVideoPlayer = ({ item, label, onTimeChange, onPrevious, onNext, labels: labelOverrides, }) => {
28
29
  const labels = { ...defaultMediaVideoPlayerLabels, ...labelOverrides };
29
30
  const chrome = useViewerChrome();
@@ -1,7 +1,12 @@
1
+ /** Lowest image zoom, in percent. */
1
2
  export const MIN_ZOOM = 25;
3
+ /** Highest image zoom, in percent. */
2
4
  export const MAX_ZOOM = 400;
5
+ /** Percent added or removed by one zoom-in or zoom-out press. */
3
6
  export const ZOOM_STEP = 25;
7
+ /** Rates offered in the playback-speed menu. */
4
8
  export const PLAYBACK_SPEEDS = [0.5, 0.75, 1, 1.25, 1.5, 2];
9
+ /** Seconds skipped by the rewind and forward buttons and their J / L keys. */
5
10
  export const SEEK_STEP_SECONDS = 10;
6
11
  const ABSOLUTE_URL_RE = /^(blob:|data:|https?:)/;
7
12
  /** Passes an already-absolute url through untouched; only a bare stored path goes through resolveUrl. */
@@ -3,12 +3,15 @@ import { Modal as ChakraModal, ModalOverlay, ModalContent, ModalHeader as Chakra
3
3
  import { useCustomTheme } from "../../Theme/useCustomTheme.js";
4
4
  import { warnDroppedSlotChildren } from "./warnDroppedSlotChildren.js";
5
5
  import { findSlot } from "../Common/findSlot.js";
6
+ /** Header slot of `Modal`; its style props are spread onto the rendered header. */
6
7
  export const ModalHeader = ({ children }) => {
7
8
  return _jsx(_Fragment, { children: children });
8
9
  };
10
+ /** Body slot of `Modal`; its style props are spread onto the rendered body. */
9
11
  export const ModalBody = ({ children }) => {
10
12
  return _jsx(_Fragment, { children: children });
11
13
  };
14
+ /** Footer slot of `Modal`; its style props are spread onto the rendered footer. */
12
15
  export const ModalFooter = ({ children }) => {
13
16
  return _jsx(_Fragment, { children: children });
14
17
  };
@@ -19,6 +19,7 @@ const generateUniqueId = (() => {
19
19
  return `${Date.now()}-${counter}`;
20
20
  };
21
21
  })();
22
+ /** Email chip input: typed addresses are validated and committed on Enter, shown as removable chips. */
22
23
  export default function MultiSelect({ value, onValueChange, width = "100%", label = "label", isRequired = true, isInformation = false, informationMessage = "", name, id, placeholderText = "Type valid email and press enter", isDisabled, isReadOnly, addOnBlur = false, size = DEFAULT_CONTROL_SIZE, inputStyle, helperText, error, errorMessage, }) {
23
24
  const theme = useCustomTheme();
24
25
  const s = getSearchSelectSizeStyles((size || DEFAULT_CONTROL_SIZE));