pixelize-design-library 2.4.2-beta.61 → 2.4.2-beta.62

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 (503) hide show
  1. package/CHANGELOG.md +153 -0
  2. package/COMPONENT-GOTCHAS.md +119 -1
  3. package/dist/Components/Accordion/Accordion.js +2 -2
  4. package/dist/Components/AddressCard/AddressCard.js +2 -1
  5. package/dist/Components/Apexcharts/ApexLineChart/ApexLineChart.js +1 -1
  6. package/dist/Components/AppSwitcher/AppSwitcher.js +1 -1
  7. package/dist/Components/AppearanceSettings/AppearanceSettings.js +1 -1
  8. package/dist/Components/AudioRecorder/AudioRecorder.js +2 -1
  9. package/dist/Components/Avatar/Avatar.d.ts +2 -1
  10. package/dist/Components/Avatar/Avatar.js +5 -3
  11. package/dist/Components/Backdrop/Backdrop.js +1 -1
  12. package/dist/Components/BagBar/BagBar.js +2 -1
  13. package/dist/Components/ButtonGroupIcon/ButtonGroupIcon.js +1 -1
  14. package/dist/Components/CalendarGrid/CalendarGrid.js +5 -5
  15. package/dist/Components/CalendarGrid/calendarMath.js +18 -6
  16. package/dist/Components/Card/PaymentCard/PaymentCard.js +6 -5
  17. package/dist/Components/CartItem/CartItem.js +2 -1
  18. package/dist/Components/Checkbox/Checkbox.d.ts +18 -3
  19. package/dist/Components/Checkbox/Checkbox.js +9 -7
  20. package/dist/Components/CheckoutKit/selectable.js +1 -1
  21. package/dist/Components/ChoiceCard/ChoiceCard.d.ts +3 -0
  22. package/dist/Components/ChoiceCard/ChoiceCard.js +16 -0
  23. package/dist/Components/ChoiceCard/ChoiceCardGroup.d.ts +3 -0
  24. package/dist/Components/ChoiceCard/ChoiceCardGroup.js +6 -0
  25. package/dist/Components/ChoiceCard/ChoiceCardProps.d.ts +28 -0
  26. package/dist/Components/ChoiceCard/ChoiceCardProps.js +2 -0
  27. package/dist/Components/CircularProgress/CircularProgress.js +4 -8
  28. package/dist/Components/CircularProgress/CircularProgressProps.d.ts +5 -3
  29. package/dist/Components/CircularProgress/arc.d.ts +9 -1
  30. package/dist/Components/CircularProgress/arc.js +15 -1
  31. package/dist/Components/Common/FormLabel.js +1 -1
  32. package/dist/Components/Common/FormattedDescription.js +1 -1
  33. package/dist/Components/Common/HelperText.d.ts +5 -4
  34. package/dist/Components/Common/HelperText.js +10 -7
  35. package/dist/Components/Common/fieldStyles.d.ts +4 -4
  36. package/dist/Components/Common/fieldStyles.js +2 -1
  37. package/dist/Components/ContactForm/ContactForm.js +1 -1
  38. package/dist/Components/CopyButton/CopyButton.js +12 -5
  39. package/dist/Components/CouponField/CouponField.js +4 -3
  40. package/dist/Components/CustomModulesTable/CustomModulesTableProps.d.ts +18 -0
  41. package/dist/Components/CustomModulesTable/EditModuleModal.js +1 -1
  42. package/dist/Components/DatePicker/CalendarPanel.js +2 -2
  43. package/dist/Components/DatePicker/DatePicker.js +8 -2
  44. package/dist/Components/DatePicker/RangeDatePicker.d.ts +9 -3
  45. package/dist/Components/DatePicker/RangeDatePicker.js +6 -5
  46. package/dist/Components/DatePicker/SingleDatePicker.d.ts +9 -5
  47. package/dist/Components/DatePicker/SingleDatePicker.js +7 -4
  48. package/dist/Components/DatePicker/ThemeDatePicker.d.ts +8 -4
  49. package/dist/Components/DatePicker/ThemeDatePicker.js +9 -6
  50. package/dist/Components/DatePicker/TimeOnlyPicker.d.ts +9 -5
  51. package/dist/Components/DatePicker/TimeOnlyPicker.js +6 -4
  52. package/dist/Components/DatePicker/TimePickerInput.d.ts +2 -2
  53. package/dist/Components/DatePicker/TimePickerInput.js +6 -5
  54. package/dist/Components/DescriptionList/DescriptionList.d.ts +1 -1
  55. package/dist/Components/DescriptionList/DescriptionList.js +3 -3
  56. package/dist/Components/DescriptionList/DescriptionListProps.d.ts +3 -3
  57. package/dist/Components/Dropdown/DropDown.js +12 -4
  58. package/dist/Components/EmailCards/VerifyEmailOtp/VerifyEmailOtp.js +2 -1
  59. package/dist/Components/EmptyState/EmptyState.js +2 -2
  60. package/dist/Components/EmptyState/EmptyStateProps.d.ts +3 -3
  61. package/dist/Components/FileUpload/FileUpload.js +21 -15
  62. package/dist/Components/FileUpload/useObjectUrl.d.ts +1 -0
  63. package/dist/Components/FileUpload/useObjectUrl.js +14 -0
  64. package/dist/Components/FileUploader/FileUploader.js +9 -3
  65. package/dist/Components/FileUploader/FileUploaderProps.d.ts +8 -0
  66. package/dist/Components/FilterBar/FilterBar.d.ts +1 -1
  67. package/dist/Components/FilterBar/FilterBar.js +2 -2
  68. package/dist/Components/FilterBar/FilterBarProps.d.ts +3 -3
  69. package/dist/Components/FilterSidebar/FilterSidebar.js +10 -6
  70. package/dist/Components/Form/FormWrapper.js +1 -1
  71. package/dist/Components/FormField/FormField.d.ts +3 -0
  72. package/dist/Components/FormField/FormField.js +57 -0
  73. package/dist/Components/FormField/FormFieldProps.d.ts +33 -0
  74. package/dist/Components/FormField/FormFieldProps.js +2 -0
  75. package/dist/Components/Header/HeaderActions.js +2 -2
  76. package/dist/Components/Header/components/mobileMenu.js +1 -1
  77. package/dist/Components/IconButton/IconButton.d.ts +5 -0
  78. package/dist/Components/IconButton/IconButton.js +24 -0
  79. package/dist/Components/IconButton/IconButtonProps.d.ts +10 -0
  80. package/dist/Components/IconButton/IconButtonProps.js +2 -0
  81. package/dist/Components/Input/PhoneNumberInput.js +14 -0
  82. package/dist/Components/Input/PhoneNumberInputProps.d.ts +1 -0
  83. package/dist/Components/KanbanBoard/AccountCard.js +3 -2
  84. package/dist/Components/KanbanBoard/AccountRow.js +1 -1
  85. package/dist/Components/KanbanBoard/KanbanBoard.js +56 -39
  86. package/dist/Components/KanbanBoard/MeasuredItem.js +6 -14
  87. package/dist/Components/KanbanBoard/boardStore.d.ts +8 -0
  88. package/dist/Components/KanbanBoard/boardStore.js +27 -0
  89. package/dist/Components/Kbd/Kbd.js +1 -1
  90. package/dist/Components/LimitReachedModal/LimitReachedModal.js +1 -1
  91. package/dist/Components/Loading/Loading.js +1 -1
  92. package/dist/Components/MediaGallery/MediaGallery.js +1 -1
  93. package/dist/Components/MediaGallery/MediaLightbox.js +2 -1
  94. package/dist/Components/MediaGallery/glass.js +2 -1
  95. package/dist/Components/MediaViewer/MediaViewer.js +1 -1
  96. package/dist/Components/MediaViewer/components/MediaAudioPlayer.js +7 -7
  97. package/dist/Components/MediaViewer/components/MediaImageViewer.js +1 -1
  98. package/dist/Components/MediaViewer/components/MediaScrubber.js +5 -1
  99. package/dist/Components/MediaViewer/components/MediaVideoPlayer.js +7 -7
  100. package/dist/Components/MediaViewer/components/PlaybackTimeline.d.ts +20 -0
  101. package/dist/Components/MediaViewer/components/PlaybackTimeline.js +47 -0
  102. package/dist/Components/MediaViewer/components/TileChip.js +1 -1
  103. package/dist/Components/Modal/Modal.js +1 -1
  104. package/dist/Components/MoreItems/MoreItems.js +2 -2
  105. package/dist/Components/NavigationBar/NavigationBar.js +2 -2
  106. package/dist/Components/NoteTextArea/NoteTextArea.js +18 -4
  107. package/dist/Components/NoteTextArea/NoteTextAreaProps.d.ts +12 -0
  108. package/dist/Components/Notification/Notification.js +17 -3
  109. package/dist/Components/Notification/NotificationProps.d.ts +17 -1
  110. package/dist/Components/NotificationBell/NotificationBell.js +5 -1
  111. package/dist/Components/NotificationBell/NotificationItem.js +1 -1
  112. package/dist/Components/NotificationBell/NotificationList.js +1 -1
  113. package/dist/Components/OffersList/OffersList.js +2 -1
  114. package/dist/Components/OptionChip/OptionChip.js +3 -2
  115. package/dist/Components/OrderStatusTimeline/OrderStatusTimeline.js +2 -1
  116. package/dist/Components/OrderSummary/OrderSummary.js +5 -5
  117. package/dist/Components/OrganizationDetails/OrganizationDetails.js +7 -1
  118. package/dist/Components/PageHeader/PageHeader.d.ts +1 -1
  119. package/dist/Components/PageHeader/PageHeader.js +2 -2
  120. package/dist/Components/PageHeader/PageHeaderProps.d.ts +3 -3
  121. package/dist/Components/Pagination/Pagination.d.ts +5 -0
  122. package/dist/Components/Pagination/Pagination.js +48 -0
  123. package/dist/Components/Pagination/PaginationProps.d.ts +46 -0
  124. package/dist/Components/Pagination/PaginationProps.js +9 -0
  125. package/dist/Components/Pagination/pageWindow.d.ts +4 -0
  126. package/dist/Components/Pagination/pageWindow.js +22 -0
  127. package/dist/Components/PaymentOption/PaymentOption.js +1 -1
  128. package/dist/Components/PersonChip/PersonChip.js +2 -2
  129. package/dist/Components/PinInput/PinInput.d.ts +1 -1
  130. package/dist/Components/PinInput/PinInput.js +17 -2
  131. package/dist/Components/PinInput/PinInputProps.d.ts +9 -1
  132. package/dist/Components/PincodeChecker/PincodeChecker.js +4 -4
  133. package/dist/Components/PlanPill/PlanPill.js +2 -1
  134. package/dist/Components/PriceBlock/PriceBlock.js +3 -3
  135. package/dist/Components/Primitives/Primitives.d.ts +2 -2
  136. package/dist/Components/Primitives/Primitives.js +2 -3
  137. package/dist/Components/ProductBadges/ProductBadges.js +2 -1
  138. package/dist/Components/ProductCard/ProductCard.js +1 -1
  139. package/dist/Components/ProductCard/ProductCardAction.js +2 -2
  140. package/dist/Components/ProductCard/ProductCardSwatches.js +2 -1
  141. package/dist/Components/ProductCard/cardMetrics.d.ts +1 -1
  142. package/dist/Components/ProductCard/cardMetrics.js +5 -1
  143. package/dist/Components/ProfileCard/ProfileCardProps.d.ts +11 -0
  144. package/dist/Components/ProfilePhotoViewer/ProfilePhotoViewer.js +3 -2
  145. package/dist/Components/QuantityStepper/QuantityStepper.js +2 -1
  146. package/dist/Components/RadioButton/RadioButton.d.ts +11 -2
  147. package/dist/Components/RadioButton/RadioButton.js +9 -6
  148. package/dist/Components/RangeSlider/RangeSlider.js +3 -3
  149. package/dist/Components/Rating/Rating.js +2 -1
  150. package/dist/Components/Reorder/Reorder.js +3 -2
  151. package/dist/Components/ReviewList/ReviewList.js +3 -3
  152. package/dist/Components/ReviewSummary/ReviewSummary.js +3 -3
  153. package/dist/Components/SaveBar/SaveBar.d.ts +1 -1
  154. package/dist/Components/SaveBar/SaveBar.js +2 -2
  155. package/dist/Components/SaveBar/SaveBarProps.d.ts +3 -3
  156. package/dist/Components/Search/Search.js +2 -9
  157. package/dist/Components/Search/ctrlShortcut.d.ts +1 -0
  158. package/dist/Components/Search/ctrlShortcut.js +29 -0
  159. package/dist/Components/SearchSelect/SearchSelect.js +117 -30
  160. package/dist/Components/SegmentedControl/SegmentedControl.d.ts +8 -2
  161. package/dist/Components/SegmentedControl/SegmentedControl.js +9 -5
  162. package/dist/Components/Select/SelectPopup.js +6 -4
  163. package/dist/Components/SelectSearch/SelectSearch.js +5 -4
  164. package/dist/Components/SettingRow/SettingRow.js +1 -1
  165. package/dist/Components/SideBar/SecondaryBar.js +2 -1
  166. package/dist/Components/SideBar/SideBar.js +82 -21
  167. package/dist/Components/SideBar/components/MenuItemBox.d.ts +2 -2
  168. package/dist/Components/SideBar/components/MenuItemBox.js +4 -3
  169. package/dist/Components/SideBar/components/MenuItems.d.ts +2 -2
  170. package/dist/Components/SideBar/components/MenuItems.js +3 -3
  171. package/dist/Components/SideBar/components/OtherApps.js +5 -1
  172. package/dist/Components/SideBar/components/OverflowTooltipText.js +4 -5
  173. package/dist/Components/SideBar/components/PinnedSection.js +2 -2
  174. package/dist/Components/SideBar/components/TextTruncation.js +11 -6
  175. package/dist/Components/SideBar/sidebarScale.d.ts +1 -1
  176. package/dist/Components/SideBar/sidebarScale.js +2 -1
  177. package/dist/Components/SignInActivityTable/SignInActivityTableProps.d.ts +8 -0
  178. package/dist/Components/Skeletons/SkeletonProps.d.ts +5 -2
  179. package/dist/Components/Skeletons/Skeletons.d.ts +1 -1
  180. package/dist/Components/Skeletons/Skeletons.js +4 -2
  181. package/dist/Components/SkipLink/SkipLink.d.ts +4 -0
  182. package/dist/Components/SkipLink/SkipLink.js +54 -0
  183. package/dist/Components/SkipLink/SkipLinkProps.d.ts +8 -0
  184. package/dist/Components/SkipLink/SkipLinkProps.js +2 -0
  185. package/dist/Components/Slider/Slider.d.ts +2 -2
  186. package/dist/Components/Slider/Slider.js +11 -4
  187. package/dist/Components/SpecTable/SpecTable.js +2 -1
  188. package/dist/Components/StageProgress/StageItem.js +2 -5
  189. package/dist/Components/StageProgress/StageProgress.js +2 -1
  190. package/dist/Components/StageProgress/StageProgressProps.d.ts +1 -1
  191. package/dist/Components/StageProgress/StepperStage.js +2 -6
  192. package/dist/Components/StageProgress/centerInStrip.d.ts +2 -0
  193. package/dist/Components/StageProgress/centerInStrip.js +15 -0
  194. package/dist/Components/StatCard/StatCard.d.ts +1 -1
  195. package/dist/Components/StatCard/StatCard.js +5 -4
  196. package/dist/Components/StatCard/StatCardProps.d.ts +3 -3
  197. package/dist/Components/StickyBuyBar/StickyBuyBar.js +1 -1
  198. package/dist/Components/Table/components/TableActions.js +40 -24
  199. package/dist/Components/Table/components/TableBody.js +25 -40
  200. package/dist/Components/Table/components/rowMeasurer.d.ts +8 -0
  201. package/dist/Components/Table/components/rowMeasurer.js +71 -0
  202. package/dist/Components/Table/filters/TableFilters.js +2 -13
  203. package/dist/Components/Table/hooks/useTable.js +12 -9
  204. package/dist/Components/Tabs/components/CountBadge.js +3 -3
  205. package/dist/Components/Tabs/components/Tab.d.ts +2 -1
  206. package/dist/Components/Tabs/components/Tab.js +4 -3
  207. package/dist/Components/Tabs/components/TabList.js +16 -1
  208. package/dist/Components/Tag/Tag.d.ts +2 -2
  209. package/dist/Components/Tag/Tag.js +15 -12
  210. package/dist/Components/Tag/Tag.styles.js +6 -4
  211. package/dist/Components/TagInput/TagInput.d.ts +3 -0
  212. package/dist/Components/TagInput/TagInput.js +99 -0
  213. package/dist/Components/TagInput/TagInputProps.d.ts +46 -0
  214. package/dist/Components/TagInput/TagInputProps.js +2 -0
  215. package/dist/Components/TagInput/tagEntries.d.ts +15 -0
  216. package/dist/Components/TagInput/tagEntries.js +45 -0
  217. package/dist/Components/TimePicker/TimePicker.d.ts +3 -0
  218. package/dist/Components/TimePicker/TimePicker.js +50 -0
  219. package/dist/Components/TimePicker/TimePickerProps.d.ts +44 -0
  220. package/dist/Components/TimePicker/TimePickerProps.js +2 -0
  221. package/dist/Components/TimePicker/timeParts.d.ts +10 -0
  222. package/dist/Components/TimePicker/timeParts.js +36 -0
  223. package/dist/Components/Timeline/Timeline.js +11 -9
  224. package/dist/Components/Toaster/Toaster.js +2 -1
  225. package/dist/Components/Toggle/TableToggle.js +4 -3
  226. package/dist/Components/ToggleSwitch/ToggleSwitch.d.ts +3 -2
  227. package/dist/Components/ToggleSwitch/ToggleSwitch.js +6 -5
  228. package/dist/Components/ToolTip/ToolTip.js +86 -8
  229. package/dist/Components/UpgradeButton/UpgradeButton.js +4 -2
  230. package/dist/Components/UserDetails/UserDetails.js +7 -1
  231. package/dist/Components/VisuallyHidden/VisuallyHidden.d.ts +15 -0
  232. package/dist/Components/VisuallyHidden/VisuallyHidden.js +21 -0
  233. package/dist/Components/VisuallyHidden/VisuallyHiddenProps.d.ts +3 -0
  234. package/dist/Components/VisuallyHidden/VisuallyHiddenProps.js +2 -0
  235. package/dist/Components/WizardDialog/WizardDialog.js +10 -5
  236. package/dist/Components/WizardDialog/WizardDialogProps.d.ts +4 -0
  237. package/dist/Components/WorkspaceWindow/WorkspaceTrayPreview.js +5 -1
  238. package/dist/Components/WorkspaceWindow/WorkspaceWindow.js +15 -2
  239. package/dist/Components/WorkspaceWindow/WorkspaceWindowProps.d.ts +2 -1
  240. package/dist/Hooks/sharedResizeObserver.d.ts +6 -0
  241. package/dist/Hooks/sharedResizeObserver.js +77 -0
  242. package/dist/Hooks/useIsTruncated.js +3 -4
  243. package/dist/Theme/chakra/Menu.styles.d.ts +1 -1
  244. package/dist/Theme/chakra/common.web.d.ts +1 -0
  245. package/dist/Theme/chakra/componentStyles.d.ts +1 -1
  246. package/dist/Theme/chakra/createBrandTheme.d.ts +3 -0
  247. package/dist/Theme/chakra/createBrandTheme.js +34 -4
  248. package/dist/Theme/chakra/focusRing.styles.d.ts +2 -0
  249. package/dist/Theme/chakra/focusRing.styles.js +5 -1
  250. package/dist/Theme/chakra/fonts.web.d.ts +2 -0
  251. package/dist/Theme/chakra/motion.d.ts +14 -0
  252. package/dist/Theme/chakra/motion.js +26 -1
  253. package/dist/Theme/index.d.ts +2 -1
  254. package/dist/Theme/index.js +12 -9
  255. package/dist/Theme/provider/PixelizeThemeProvider.d.ts +4 -1
  256. package/dist/Theme/provider/PixelizeThemeProvider.js +21 -12
  257. package/dist/Theme/provider/ThemeSwitcher.js +3 -2
  258. package/dist/Theme/themeProps.d.ts +3 -0
  259. package/dist/Theme/tokens/brands/emerald/palette.dark.js +2 -1
  260. package/dist/Theme/tokens/brands/index.d.ts +1 -1
  261. package/dist/Theme/tokens/brands/index.js +14 -13
  262. package/dist/Theme/tokens/brands/lavender/palette.dark.js +2 -1
  263. package/dist/Theme/tokens/brands/meadow/palette.dark.js +2 -1
  264. package/dist/Theme/tokens/brands/radiant/palette.dark.js +2 -1
  265. package/dist/Theme/tokens/brands/rosewood/palette.dark.js +2 -1
  266. package/dist/Theme/tokens/brands/skyline/palette.dark.js +2 -1
  267. package/dist/Theme/tokens/brands/slate/palette.dark.js +2 -1
  268. package/dist/Theme/tokens/brands/storefront/palette.dark.js +2 -1
  269. package/dist/Theme/tokens/brands/zinc/palette.dark.js +28 -24
  270. package/dist/Theme/tokens/builders/color.js +11 -7
  271. package/dist/Theme/tokens/builders/filledSurface.d.ts +3 -1
  272. package/dist/Theme/tokens/builders/filledSurface.js +7 -7
  273. package/dist/Theme/tokens/builders/lazy.d.ts +5 -0
  274. package/dist/Theme/tokens/builders/lazy.js +55 -0
  275. package/dist/Theme/tokens/builders/memo.d.ts +9 -0
  276. package/dist/Theme/tokens/builders/memo.js +28 -0
  277. package/dist/Theme/tokens/builders/memoByReads.d.ts +2 -0
  278. package/dist/Theme/tokens/builders/memoByReads.js +50 -0
  279. package/dist/Theme/tokens/builders/outlineRung.js +10 -2
  280. package/dist/Theme/tokens/builders/tone.js +5 -4
  281. package/dist/Theme/tokens/primitives/borderWidths.d.ts +6 -0
  282. package/dist/Theme/tokens/primitives/borderWidths.js +5 -0
  283. package/dist/Theme/tokens/primitives/index.d.ts +8 -3
  284. package/dist/Theme/tokens/primitives/index.js +8 -1
  285. package/dist/Theme/tokens/primitives/motion.d.ts +25 -2
  286. package/dist/Theme/tokens/primitives/motion.js +23 -5
  287. package/dist/Theme/tokens/primitives/optionRowSizes.d.ts +1 -1
  288. package/dist/Theme/tokens/primitives/optionRowSizes.js +2 -1
  289. package/dist/Theme/tokens/primitives/radii.d.ts +15 -0
  290. package/dist/Theme/tokens/primitives/radii.js +14 -0
  291. package/dist/Theme/tokens/primitives/shadows.d.ts +5 -1
  292. package/dist/Theme/tokens/primitives/shadows.js +5 -1
  293. package/dist/Theme/tokens/primitives/states.d.ts +1 -0
  294. package/dist/Theme/tokens/primitives/states.js +4 -0
  295. package/dist/Theme/tokens/primitives/typography.d.ts +17 -0
  296. package/dist/Theme/tokens/primitives/typography.js +21 -1
  297. package/dist/Theme/tokens/primitives/zIndices.d.ts +1 -0
  298. package/dist/Theme/tokens/primitives/zIndices.js +1 -0
  299. package/dist/Utils/formatDate.d.ts +25 -0
  300. package/dist/Utils/formatDate.js +144 -0
  301. package/dist/esm/Components/Accordion/Accordion.js +2 -2
  302. package/dist/esm/Components/AddressCard/AddressCard.js +2 -1
  303. package/dist/esm/Components/Apexcharts/ApexLineChart/ApexLineChart.js +1 -1
  304. package/dist/esm/Components/AppSwitcher/AppSwitcher.js +1 -1
  305. package/dist/esm/Components/AppearanceSettings/AppearanceSettings.js +1 -1
  306. package/dist/esm/Components/AudioRecorder/AudioRecorder.js +2 -1
  307. package/dist/esm/Components/Avatar/Avatar.js +6 -4
  308. package/dist/esm/Components/Backdrop/Backdrop.js +1 -1
  309. package/dist/esm/Components/BagBar/BagBar.js +2 -1
  310. package/dist/esm/Components/ButtonGroupIcon/ButtonGroupIcon.js +1 -1
  311. package/dist/esm/Components/CalendarGrid/CalendarGrid.js +6 -6
  312. package/dist/esm/Components/CalendarGrid/calendarMath.js +18 -6
  313. package/dist/esm/Components/Card/PaymentCard/PaymentCard.js +6 -5
  314. package/dist/esm/Components/CartItem/CartItem.js +2 -1
  315. package/dist/esm/Components/Checkbox/Checkbox.js +8 -5
  316. package/dist/esm/Components/CheckoutKit/selectable.js +1 -1
  317. package/dist/esm/Components/ChoiceCard/ChoiceCard.js +14 -0
  318. package/dist/esm/Components/ChoiceCard/ChoiceCardGroup.js +4 -0
  319. package/dist/esm/Components/ChoiceCard/ChoiceCardProps.js +1 -0
  320. package/dist/esm/Components/CircularProgress/CircularProgress.js +5 -9
  321. package/dist/esm/Components/CircularProgress/arc.js +13 -0
  322. package/dist/esm/Components/Common/FormLabel.js +1 -1
  323. package/dist/esm/Components/Common/FormattedDescription.js +1 -1
  324. package/dist/esm/Components/Common/HelperText.js +11 -8
  325. package/dist/esm/Components/Common/fieldStyles.js +2 -1
  326. package/dist/esm/Components/ContactForm/ContactForm.js +1 -1
  327. package/dist/esm/Components/CopyButton/CopyButton.js +14 -7
  328. package/dist/esm/Components/CouponField/CouponField.js +4 -3
  329. package/dist/esm/Components/CustomModulesTable/EditModuleModal.js +1 -1
  330. package/dist/esm/Components/DatePicker/CalendarPanel.js +2 -2
  331. package/dist/esm/Components/DatePicker/DatePicker.js +8 -2
  332. package/dist/esm/Components/DatePicker/RangeDatePicker.js +8 -6
  333. package/dist/esm/Components/DatePicker/SingleDatePicker.js +7 -4
  334. package/dist/esm/Components/DatePicker/ThemeDatePicker.js +7 -4
  335. package/dist/esm/Components/DatePicker/TimeOnlyPicker.js +5 -3
  336. package/dist/esm/Components/DatePicker/TimePickerInput.js +8 -6
  337. package/dist/esm/Components/DescriptionList/DescriptionList.js +3 -3
  338. package/dist/esm/Components/Dropdown/DropDown.js +12 -4
  339. package/dist/esm/Components/EmailCards/VerifyEmailOtp/VerifyEmailOtp.js +2 -1
  340. package/dist/esm/Components/EmptyState/EmptyState.js +2 -2
  341. package/dist/esm/Components/FileUpload/FileUpload.js +21 -15
  342. package/dist/esm/Components/FileUpload/useObjectUrl.js +10 -0
  343. package/dist/esm/Components/FileUploader/FileUploader.js +9 -3
  344. package/dist/esm/Components/FilterBar/FilterBar.js +2 -2
  345. package/dist/esm/Components/FilterSidebar/FilterSidebar.js +10 -6
  346. package/dist/esm/Components/Form/FormWrapper.js +1 -1
  347. package/dist/esm/Components/FormField/FormField.js +52 -0
  348. package/dist/esm/Components/FormField/FormFieldProps.js +1 -0
  349. package/dist/esm/Components/Header/HeaderActions.js +2 -2
  350. package/dist/esm/Components/Header/components/mobileMenu.js +1 -1
  351. package/dist/esm/Components/IconButton/IconButton.js +21 -0
  352. package/dist/esm/Components/IconButton/IconButtonProps.js +1 -0
  353. package/dist/esm/Components/Input/PhoneNumberInput.js +15 -1
  354. package/dist/esm/Components/KanbanBoard/AccountCard.js +3 -2
  355. package/dist/esm/Components/KanbanBoard/AccountRow.js +1 -1
  356. package/dist/esm/Components/KanbanBoard/KanbanBoard.js +56 -39
  357. package/dist/esm/Components/KanbanBoard/MeasuredItem.js +6 -14
  358. package/dist/esm/Components/KanbanBoard/boardStore.js +22 -0
  359. package/dist/esm/Components/Kbd/Kbd.js +1 -1
  360. package/dist/esm/Components/LimitReachedModal/LimitReachedModal.js +1 -1
  361. package/dist/esm/Components/Loading/Loading.js +1 -1
  362. package/dist/esm/Components/MediaGallery/MediaGallery.js +2 -2
  363. package/dist/esm/Components/MediaGallery/MediaLightbox.js +2 -1
  364. package/dist/esm/Components/MediaGallery/glass.js +2 -1
  365. package/dist/esm/Components/MediaViewer/MediaViewer.js +1 -1
  366. package/dist/esm/Components/MediaViewer/components/MediaAudioPlayer.js +7 -7
  367. package/dist/esm/Components/MediaViewer/components/MediaImageViewer.js +1 -1
  368. package/dist/esm/Components/MediaViewer/components/MediaScrubber.js +5 -1
  369. package/dist/esm/Components/MediaViewer/components/MediaVideoPlayer.js +7 -7
  370. package/dist/esm/Components/MediaViewer/components/PlaybackTimeline.js +38 -0
  371. package/dist/esm/Components/MediaViewer/components/TileChip.js +1 -1
  372. package/dist/esm/Components/Modal/Modal.js +1 -1
  373. package/dist/esm/Components/MoreItems/MoreItems.js +2 -2
  374. package/dist/esm/Components/NavigationBar/NavigationBar.js +2 -2
  375. package/dist/esm/Components/NoteTextArea/NoteTextArea.js +18 -4
  376. package/dist/esm/Components/Notification/Notification.js +17 -3
  377. package/dist/esm/Components/NotificationBell/NotificationBell.js +2 -1
  378. package/dist/esm/Components/NotificationBell/NotificationItem.js +1 -1
  379. package/dist/esm/Components/NotificationBell/NotificationList.js +1 -1
  380. package/dist/esm/Components/OffersList/OffersList.js +2 -1
  381. package/dist/esm/Components/OptionChip/OptionChip.js +3 -2
  382. package/dist/esm/Components/OrderStatusTimeline/OrderStatusTimeline.js +2 -1
  383. package/dist/esm/Components/OrderSummary/OrderSummary.js +5 -5
  384. package/dist/esm/Components/OrganizationDetails/OrganizationDetails.js +7 -1
  385. package/dist/esm/Components/PageHeader/PageHeader.js +2 -2
  386. package/dist/esm/Components/Pagination/Pagination.js +42 -0
  387. package/dist/esm/Components/Pagination/PaginationProps.js +6 -0
  388. package/dist/esm/Components/Pagination/pageWindow.js +16 -0
  389. package/dist/esm/Components/PaymentOption/PaymentOption.js +1 -1
  390. package/dist/esm/Components/PersonChip/PersonChip.js +2 -2
  391. package/dist/esm/Components/PinInput/PinInput.js +14 -2
  392. package/dist/esm/Components/PincodeChecker/PincodeChecker.js +4 -4
  393. package/dist/esm/Components/PlanPill/PlanPill.js +2 -1
  394. package/dist/esm/Components/PriceBlock/PriceBlock.js +3 -3
  395. package/dist/esm/Components/Primitives/Primitives.js +1 -1
  396. package/dist/esm/Components/ProductBadges/ProductBadges.js +2 -1
  397. package/dist/esm/Components/ProductCard/ProductCard.js +1 -1
  398. package/dist/esm/Components/ProductCard/ProductCardAction.js +3 -3
  399. package/dist/esm/Components/ProductCard/ProductCardSwatches.js +2 -1
  400. package/dist/esm/Components/ProductCard/cardMetrics.js +2 -1
  401. package/dist/esm/Components/ProfilePhotoViewer/ProfilePhotoViewer.js +3 -2
  402. package/dist/esm/Components/QuantityStepper/QuantityStepper.js +2 -1
  403. package/dist/esm/Components/RadioButton/RadioButton.js +7 -4
  404. package/dist/esm/Components/RangeSlider/RangeSlider.js +3 -3
  405. package/dist/esm/Components/Rating/Rating.js +2 -1
  406. package/dist/esm/Components/Reorder/Reorder.js +3 -2
  407. package/dist/esm/Components/ReviewList/ReviewList.js +3 -3
  408. package/dist/esm/Components/ReviewSummary/ReviewSummary.js +3 -3
  409. package/dist/esm/Components/SaveBar/SaveBar.js +2 -2
  410. package/dist/esm/Components/Search/Search.js +2 -9
  411. package/dist/esm/Components/Search/ctrlShortcut.js +25 -0
  412. package/dist/esm/Components/SearchSelect/SearchSelect.js +120 -33
  413. package/dist/esm/Components/SegmentedControl/SegmentedControl.js +11 -6
  414. package/dist/esm/Components/Select/SelectPopup.js +6 -4
  415. package/dist/esm/Components/SelectSearch/SelectSearch.js +5 -4
  416. package/dist/esm/Components/SettingRow/SettingRow.js +1 -1
  417. package/dist/esm/Components/SideBar/SecondaryBar.js +2 -1
  418. package/dist/esm/Components/SideBar/SideBar.js +83 -22
  419. package/dist/esm/Components/SideBar/components/MenuItemBox.js +4 -3
  420. package/dist/esm/Components/SideBar/components/MenuItems.js +4 -4
  421. package/dist/esm/Components/SideBar/components/OtherApps.js +2 -1
  422. package/dist/esm/Components/SideBar/components/OverflowTooltipText.js +4 -5
  423. package/dist/esm/Components/SideBar/components/PinnedSection.js +2 -2
  424. package/dist/esm/Components/SideBar/components/TextTruncation.js +9 -7
  425. package/dist/esm/Components/SideBar/sidebarScale.js +2 -1
  426. package/dist/esm/Components/Skeletons/Skeletons.js +4 -2
  427. package/dist/esm/Components/SkipLink/SkipLink.js +50 -0
  428. package/dist/esm/Components/SkipLink/SkipLinkProps.js +1 -0
  429. package/dist/esm/Components/Slider/Slider.js +11 -4
  430. package/dist/esm/Components/SpecTable/SpecTable.js +2 -1
  431. package/dist/esm/Components/StageProgress/StageItem.js +2 -5
  432. package/dist/esm/Components/StageProgress/StageProgress.js +2 -1
  433. package/dist/esm/Components/StageProgress/StepperStage.js +2 -6
  434. package/dist/esm/Components/StageProgress/centerInStrip.js +11 -0
  435. package/dist/esm/Components/StatCard/StatCard.js +5 -4
  436. package/dist/esm/Components/StickyBuyBar/StickyBuyBar.js +2 -2
  437. package/dist/esm/Components/Table/components/TableActions.js +42 -26
  438. package/dist/esm/Components/Table/components/TableBody.js +25 -40
  439. package/dist/esm/Components/Table/components/rowMeasurer.js +66 -0
  440. package/dist/esm/Components/Table/filters/TableFilters.js +3 -14
  441. package/dist/esm/Components/Table/hooks/useTable.js +12 -9
  442. package/dist/esm/Components/Tabs/components/CountBadge.js +3 -3
  443. package/dist/esm/Components/Tabs/components/Tab.js +5 -4
  444. package/dist/esm/Components/Tabs/components/TabList.js +16 -1
  445. package/dist/esm/Components/Tag/Tag.js +11 -8
  446. package/dist/esm/Components/Tag/Tag.styles.js +6 -4
  447. package/dist/esm/Components/TagInput/TagInput.js +94 -0
  448. package/dist/esm/Components/TagInput/TagInputProps.js +1 -0
  449. package/dist/esm/Components/TagInput/tagEntries.js +39 -0
  450. package/dist/esm/Components/TimePicker/TimePicker.js +45 -0
  451. package/dist/esm/Components/TimePicker/TimePickerProps.js +1 -0
  452. package/dist/esm/Components/TimePicker/timeParts.js +26 -0
  453. package/dist/esm/Components/Timeline/Timeline.js +11 -9
  454. package/dist/esm/Components/Toaster/Toaster.js +2 -1
  455. package/dist/esm/Components/Toggle/TableToggle.js +4 -3
  456. package/dist/esm/Components/ToggleSwitch/ToggleSwitch.js +7 -5
  457. package/dist/esm/Components/ToolTip/ToolTip.js +89 -11
  458. package/dist/esm/Components/UpgradeButton/UpgradeButton.js +4 -2
  459. package/dist/esm/Components/UserDetails/UserDetails.js +7 -1
  460. package/dist/esm/Components/VisuallyHidden/VisuallyHidden.js +18 -0
  461. package/dist/esm/Components/VisuallyHidden/VisuallyHiddenProps.js +1 -0
  462. package/dist/esm/Components/WizardDialog/WizardDialog.js +11 -6
  463. package/dist/esm/Components/WorkspaceWindow/WorkspaceTrayPreview.js +2 -1
  464. package/dist/esm/Components/WorkspaceWindow/WorkspaceWindow.js +13 -3
  465. package/dist/esm/Hooks/sharedResizeObserver.js +73 -0
  466. package/dist/esm/Hooks/useIsTruncated.js +3 -4
  467. package/dist/esm/Theme/chakra/createBrandTheme.js +34 -4
  468. package/dist/esm/Theme/chakra/focusRing.styles.js +3 -0
  469. package/dist/esm/Theme/chakra/motion.js +25 -0
  470. package/dist/esm/Theme/index.js +12 -9
  471. package/dist/esm/Theme/provider/PixelizeThemeProvider.js +22 -13
  472. package/dist/esm/Theme/provider/ThemeSwitcher.js +3 -2
  473. package/dist/esm/Theme/tokens/brands/emerald/palette.dark.js +2 -1
  474. package/dist/esm/Theme/tokens/brands/index.js +14 -13
  475. package/dist/esm/Theme/tokens/brands/lavender/palette.dark.js +2 -1
  476. package/dist/esm/Theme/tokens/brands/meadow/palette.dark.js +2 -1
  477. package/dist/esm/Theme/tokens/brands/radiant/palette.dark.js +2 -1
  478. package/dist/esm/Theme/tokens/brands/rosewood/palette.dark.js +2 -1
  479. package/dist/esm/Theme/tokens/brands/skyline/palette.dark.js +2 -1
  480. package/dist/esm/Theme/tokens/brands/slate/palette.dark.js +2 -1
  481. package/dist/esm/Theme/tokens/brands/storefront/palette.dark.js +2 -1
  482. package/dist/esm/Theme/tokens/brands/zinc/palette.dark.js +28 -24
  483. package/dist/esm/Theme/tokens/builders/color.js +10 -6
  484. package/dist/esm/Theme/tokens/builders/filledSurface.js +7 -7
  485. package/dist/esm/Theme/tokens/builders/lazy.js +49 -0
  486. package/dist/esm/Theme/tokens/builders/memo.js +21 -0
  487. package/dist/esm/Theme/tokens/builders/memoByReads.js +46 -0
  488. package/dist/esm/Theme/tokens/builders/outlineRung.js +10 -2
  489. package/dist/esm/Theme/tokens/builders/tone.js +5 -4
  490. package/dist/esm/Theme/tokens/primitives/borderWidths.js +2 -0
  491. package/dist/esm/Theme/tokens/primitives/index.js +5 -3
  492. package/dist/esm/Theme/tokens/primitives/motion.js +20 -4
  493. package/dist/esm/Theme/tokens/primitives/optionRowSizes.js +2 -1
  494. package/dist/esm/Theme/tokens/primitives/radii.js +13 -0
  495. package/dist/esm/Theme/tokens/primitives/shadows.js +3 -1
  496. package/dist/esm/Theme/tokens/primitives/states.js +1 -0
  497. package/dist/esm/Theme/tokens/primitives/typography.js +20 -0
  498. package/dist/esm/Theme/tokens/primitives/zIndices.js +1 -0
  499. package/dist/esm/Utils/formatDate.js +138 -0
  500. package/dist/esm/index.js +18 -2
  501. package/dist/index.d.ts +33 -5
  502. package/dist/index.js +47 -4
  503. package/package.json +1 -1
@@ -27,6 +27,7 @@ const PANEL_EASE = "cubic-bezier(0.22, 1, 0.36, 1)";
27
27
  const EXPANDED_WIDTH = "13rem";
28
28
  const COLLAPSE_MS = { ...motion_2.MOTION_MS, slow: 260 };
29
29
  const NO_ACTIVE_MENU = "\u0000pinned-active";
30
+ const WIDTH_TRANSITION_FALLBACK_MS = 1000;
30
31
  const inlineTransitions = (collapse) => {
31
32
  var _a;
32
33
  if (collapse === "none")
@@ -47,6 +48,7 @@ const OtherApps_1 = __importDefault(require("./components/OtherApps"));
47
48
  const PinnedSection_1 = __importDefault(require("./components/PinnedSection"));
48
49
  const sidebarScale_1 = require("./sidebarScale");
49
50
  const viewportHeight_1 = require("../../Theme/tokens/builders/viewportHeight");
51
+ const sharedResizeObserver_1 = require("../../Hooks/sharedResizeObserver");
50
52
  const SidebarHeader = ({ logo, companyName, companySubtitle, toggle, isLoading, onToggle, overlay, onClose, }) => {
51
53
  const theme = (0, useCustomTheme_1.useCustomTheme)();
52
54
  const activeAccent = (0, sidebarAccentColors_1.getSidebarActiveAccent)(theme.colors);
@@ -59,7 +61,7 @@ const SidebarHeader = ({ logo, companyName, companySubtitle, toggle, isLoading,
59
61
  , {
60
62
  // Rail-safe pairing, not a raw primary fill: primary[500] equals the rail itself on
61
63
  // some brands (zinc), making the tile disappear. See THEME-CONTRACT.md sidebar rules.
62
- bg: theme.colors.sidebar.activeBg, color: activeAccent.label, borderRadius: "lg", boxSize: "1.75rem", display: "flex", alignItems: "center", justifyContent: "center", fontWeight: "bold", flexShrink: 0, cursor: toggle ? "pointer" : undefined, onClick: toggle ? onToggle : undefined, children: (0, jsx_runtime_1.jsx)(defaultLogo_1.default, {}) }));
64
+ bg: theme.colors.sidebar.activeBg, color: activeAccent.label, borderRadius: "lg", boxSize: "1.75rem", display: "flex", alignItems: "center", justifyContent: "center", fontWeight: 700, flexShrink: 0, cursor: toggle ? "pointer" : undefined, onClick: toggle ? onToggle : undefined, children: (0, jsx_runtime_1.jsx)(defaultLogo_1.default, {}) }));
63
65
  return ((0, jsx_runtime_1.jsxs)(react_2.Flex, { h: Sidebar_1.HEADER_HEIGHT, w: "100%", alignItems: "center", justifyContent: toggle ? "center" : "flex-start", gap: 2, px: toggle ? "8px" : "10px", borderBottom: "1px solid", borderColor: theme.colors.sidebar.divider, minW: 0, overflow: "hidden", flexShrink: 0, children: [logoNode, !toggle && ((0, jsx_runtime_1.jsxs)(react_2.Box, { flex: "1", minW: 0, children: [(0, jsx_runtime_1.jsx)(OverflowTooltipText_1.default, { placement: "right", fontWeight: 600, fontSize: sidebarScale_1.SIDEBAR_CHROME.titleFontSize, textAlign: "left", color: theme.colors.white, lineHeight: "1.3", as: "p", width: "100%", children: companyName !== null && companyName !== void 0 ? companyName : "" }), companySubtitle && ((0, jsx_runtime_1.jsx)(react_2.Text, { fontSize: sidebarScale_1.SIDEBAR_CHROME.metaFontSize, color: theme.colors.sidebar.mutedLabel, lineHeight: "1.3", isTruncated: true, children: companySubtitle }))] })), !toggle && ((0, jsx_runtime_1.jsx)(react_2.Box, { as: "button", type: "button", onClick: overlay ? onClose : onToggle, "aria-label": overlay ? "Close menu" : "Collapse sidebar", w: "22px", h: "22px", borderRadius: "lg", bg: "whiteAlpha.200", display: "flex", alignItems: "center", justifyContent: "center", flexShrink: 0, position: "relative", _hover: { bg: "whiteAlpha.300" }, transition: "background 0.15s", sx: {
64
66
  ...(0, sidebarFocus_1.sidebarFocusStyles)(theme.colors),
65
67
  "&::after": {
@@ -80,7 +82,7 @@ const SkeletonMenuRow = ({ toggle }) => {
80
82
  const AddNewButton = ({ toggle, onClick, overlay }) => {
81
83
  const theme = (0, useCustomTheme_1.useCustomTheme)();
82
84
  const activeAccent = (0, sidebarAccentColors_1.getSidebarActiveAccent)(theme.colors);
83
- return ((0, jsx_runtime_1.jsxs)(react_2.Flex, { as: "button", type: "button", "data-group": "", "aria-label": "Add New", alignItems: "center", gap: "9px", px: "10px", py: overlay ? "11px" : "7px", borderRadius: "lg", cursor: "pointer", border: "none", bg: "transparent", w: "100%", mb: "2px", justifyContent: toggle ? "center" : "flex-start", _hover: { backgroundColor: "whiteAlpha.200" }, transition: "background 0.12s", sx: (0, sidebarFocus_1.sidebarFocusStyles)(theme.colors), onClick: onClick, children: [(0, jsx_runtime_1.jsx)(react_2.Box, { w: "18px", h: "18px", display: "flex", alignItems: "center", justifyContent: "center", flexShrink: 0, children: (0, jsx_runtime_1.jsx)(lucide_react_1.Plus, { size: 16, color: activeAccent.icon }) }), !toggle && ((0, jsx_runtime_1.jsx)(react_2.Text, { fontSize: sidebarScale_1.SIDEBAR_ROW.fontSize, color: theme.colors.white, fontWeight: "medium", children: "Add New" }))] }));
85
+ return ((0, jsx_runtime_1.jsxs)(react_2.Flex, { as: "button", type: "button", "data-group": "", "aria-label": "Add New", alignItems: "center", gap: "9px", px: "10px", py: overlay ? "11px" : "7px", borderRadius: "lg", cursor: "pointer", border: "none", bg: "transparent", w: "100%", mb: "2px", justifyContent: toggle ? "center" : "flex-start", _hover: { backgroundColor: "whiteAlpha.200" }, transition: "background 0.12s", sx: (0, sidebarFocus_1.sidebarFocusStyles)(theme.colors), onClick: onClick, children: [(0, jsx_runtime_1.jsx)(react_2.Box, { w: "18px", h: "18px", display: "flex", alignItems: "center", justifyContent: "center", flexShrink: 0, children: (0, jsx_runtime_1.jsx)(lucide_react_1.Plus, { size: 16, color: activeAccent.icon }) }), !toggle && ((0, jsx_runtime_1.jsx)(react_2.Text, { fontSize: sidebarScale_1.SIDEBAR_ROW.fontSize, color: theme.colors.white, fontWeight: 500, children: "Add New" }))] }));
84
86
  };
85
87
  const deriveInitials = (user) => {
86
88
  if (user.initials)
@@ -104,7 +106,7 @@ const UserFooter = ({ user, toggle, overlay }) => {
104
106
  const ControlCell = ({ onClick, ariaLabel, label, accent, children }) => {
105
107
  const theme = (0, useCustomTheme_1.useCustomTheme)();
106
108
  const activeAccent = (0, sidebarAccentColors_1.getSidebarActiveAccent)(theme.colors);
107
- return ((0, jsx_runtime_1.jsxs)(react_2.Flex, { as: "button", type: "button", "aria-label": ariaLabel, flex: "1", minW: 0, alignItems: "center", justifyContent: "center", gap: "7px", px: "10px", py: "14px", cursor: "pointer", border: "none", bg: accent ? "whiteAlpha.300" : "transparent", onClick: onClick, _hover: { bg: accent ? "whiteAlpha.400" : "whiteAlpha.200" }, transition: "background 0.15s", sx: (0, sidebarFocus_1.sidebarFocusStyles)(theme.colors), children: [children, label && ((0, jsx_runtime_1.jsx)(react_2.Text, { fontSize: sidebarScale_1.SIDEBAR_CHROME.labelFontSize, color: accent ? activeAccent.label : theme.colors.sidebar.mutedLabel, fontWeight: "medium", children: label }))] }));
109
+ return ((0, jsx_runtime_1.jsxs)(react_2.Flex, { as: "button", type: "button", "aria-label": ariaLabel, flex: "1", minW: 0, alignItems: "center", justifyContent: "center", gap: "7px", px: "10px", py: "14px", cursor: "pointer", border: "none", bg: accent ? "whiteAlpha.300" : "transparent", onClick: onClick, _hover: { bg: accent ? "whiteAlpha.400" : "whiteAlpha.200" }, transition: "background 0.15s", sx: (0, sidebarFocus_1.sidebarFocusStyles)(theme.colors), children: [children, label && ((0, jsx_runtime_1.jsx)(react_2.Text, { fontSize: sidebarScale_1.SIDEBAR_CHROME.labelFontSize, color: accent ? activeAccent.label : theme.colors.sidebar.mutedLabel, fontWeight: 500, children: label }))] }));
108
110
  };
109
111
  // Collapse (mini-rail) sits next to the Hide/Show navbar-mode toggle. In the
110
112
  // desktop mobile-nav overlay only "Show" (return to the docked sidebar) is shown;
@@ -149,11 +151,16 @@ function Sidebar({ menus, activeMenu, handleMenuClick, handleSecondaryNavClick,
149
151
  // In overlay mode, navigating to a leaf item auto-closes the overlay (content
150
152
  // returns to full-screen). Parent items with a submenu only expand, so they
151
153
  // must NOT close it.
152
- const handleMenuClickInternal = (menu) => {
153
- handleMenuClick === null || handleMenuClick === void 0 ? void 0 : handleMenuClick(menu);
154
- if (overlay && !(menu.subMenu && menu.subMenu.length > 0))
155
- closeOverlay();
156
- };
154
+ const menuClickRef = (0, react_1.useRef)(handleMenuClick);
155
+ menuClickRef.current = handleMenuClick;
156
+ const overlayRef = (0, react_1.useRef)(overlay);
157
+ overlayRef.current = overlay;
158
+ const handleMenuClickInternal = (0, react_1.useCallback)((menu) => {
159
+ var _a;
160
+ (_a = menuClickRef.current) === null || _a === void 0 ? void 0 : _a.call(menuClickRef, menu);
161
+ if (overlayRef.current && !(menu.subMenu && menu.subMenu.length > 0))
162
+ closeOverlayRef.current();
163
+ }, []);
157
164
  // Refs let the effects read the latest values without adding them to dep arrays,
158
165
  // which would cause infinite toggle loops since changeToggle flips state.
159
166
  const toggleRef = (0, react_1.useRef)(toggle);
@@ -234,46 +241,100 @@ function Sidebar({ menus, activeMenu, handleMenuClick, handleSecondaryNavClick,
234
241
  }, [isOverlayOpen]);
235
242
  // Swipe-left-to-close. Tracks pointer start; commits to a horizontal drag only
236
243
  // when the gesture is mostly horizontal, so vertical menu scrolling is unaffected.
244
+ // NOTE: drag offset goes to the panel's inline style per frame; React sees start/end.
237
245
  const dragStart = (0, react_1.useRef)(null);
238
- const [dragX, setDragX] = (0, react_1.useState)(0);
246
+ const dragOffset = (0, react_1.useRef)(0);
247
+ const dragFrame = (0, react_1.useRef)(null);
248
+ const isDragging = (0, react_1.useRef)(false);
239
249
  const [dragging, setDragging] = (0, react_1.useState)(false);
250
+ const paintDrag = () => {
251
+ var _a;
252
+ dragFrame.current = null;
253
+ (_a = panelRef.current) === null || _a === void 0 ? void 0 : _a.style.setProperty("transform", `translateX(${dragOffset.current}px)`);
254
+ };
255
+ const cancelDragFrame = () => {
256
+ if (dragFrame.current !== null)
257
+ cancelAnimationFrame(dragFrame.current);
258
+ dragFrame.current = null;
259
+ };
260
+ (0, react_1.useEffect)(() => cancelDragFrame, []);
261
+ (0, react_1.useEffect)(() => {
262
+ const panel = panelRef.current;
263
+ if (!panel)
264
+ return;
265
+ const running = new Set();
266
+ let resume = null;
267
+ let fallback;
268
+ const finish = () => {
269
+ running.clear();
270
+ window.clearTimeout(fallback);
271
+ resume === null || resume === void 0 ? void 0 : resume();
272
+ resume = null;
273
+ };
274
+ const onRun = (e) => {
275
+ if (e.propertyName !== "width" || !e.target)
276
+ return;
277
+ running.add(e.target);
278
+ resume !== null && resume !== void 0 ? resume : (resume = (0, sharedResizeObserver_1.suspendResizeWithin)(panel));
279
+ window.clearTimeout(fallback);
280
+ fallback = window.setTimeout(finish, WIDTH_TRANSITION_FALLBACK_MS);
281
+ };
282
+ const onEnd = (e) => {
283
+ if (e.propertyName !== "width" || !e.target)
284
+ return;
285
+ running.delete(e.target);
286
+ if (running.size === 0)
287
+ finish();
288
+ };
289
+ panel.addEventListener("transitionrun", onRun);
290
+ panel.addEventListener("transitionend", onEnd);
291
+ panel.addEventListener("transitioncancel", onEnd);
292
+ return () => {
293
+ panel.removeEventListener("transitionrun", onRun);
294
+ panel.removeEventListener("transitionend", onEnd);
295
+ panel.removeEventListener("transitioncancel", onEnd);
296
+ finish();
297
+ };
298
+ }, []);
240
299
  const onPointerDown = (e) => {
241
300
  if (!isOverlayOpen)
242
301
  return;
243
302
  dragStart.current = { x: e.clientX, y: e.clientY };
244
303
  };
245
304
  const onPointerMove = (e) => {
305
+ var _a;
246
306
  const start = dragStart.current;
247
307
  if (!start)
248
308
  return;
249
309
  const dx = e.clientX - start.x;
250
310
  const dy = e.clientY - start.y;
251
- if (!dragging) {
311
+ if (!isDragging.current) {
252
312
  if (Math.abs(dy) > Math.abs(dx)) {
253
313
  dragStart.current = null; // vertical → let the list scroll
254
314
  return;
255
315
  }
256
- if (dx < -6)
257
- setDragging(true);
258
- else
316
+ if (dx >= -6)
259
317
  return;
318
+ isDragging.current = true;
319
+ setDragging(true);
260
320
  }
261
- setDragX(Math.min(0, dx));
321
+ dragOffset.current = Math.min(0, dx);
322
+ (_a = dragFrame.current) !== null && _a !== void 0 ? _a : (dragFrame.current = requestAnimationFrame(paintDrag));
262
323
  };
263
324
  const onPointerUp = (e) => {
325
+ var _a;
264
326
  const start = dragStart.current;
265
- const committed = dragging;
327
+ const committed = isDragging.current;
266
328
  dragStart.current = null;
329
+ isDragging.current = false;
330
+ dragOffset.current = 0;
331
+ cancelDragFrame();
332
+ (_a = panelRef.current) === null || _a === void 0 ? void 0 : _a.style.removeProperty("transform");
267
333
  setDragging(false);
268
- setDragX(0);
269
334
  if (committed && start && e.clientX - start.x < -96)
270
335
  onMobileClose === null || onMobileClose === void 0 ? void 0 : onMobileClose();
271
336
  };
272
- const baseTransform = dragging
273
- ? `translateX(${dragX}px)`
274
- : isOverlayOpen
275
- ? "translateX(0)"
276
- : "translateX(-100%)";
337
+ const baseTransform = isOverlayOpen ? "translateX(0)" : "translateX(-100%)";
277
338
  return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(react_2.Box, { display: mobileNav ? "block" : { base: "block", lg: "none" }, position: "fixed", inset: 0, ...(0, overlay_styles_1.overlayScrimStyles)(theme.colors), zIndex: Z_SCRIM, opacity: isOverlayOpen ? 1 : 0, visibility: isOverlayOpen ? "visible" : "hidden", transition: "opacity 0.28s ease, visibility 0.28s ease", sx: { [motion_1.REDUCED_MOTION_QUERY]: { transition: "none" } }, onClick: closeOverlay, "aria-hidden": "true" }), (0, jsx_runtime_1.jsxs)(react_2.Box, { ref: panelRef, onKeyDown: trapTab, tabIndex: overlay ? -1 : undefined, outline: "none", position: mobileNav ? "fixed" : { base: "fixed", lg: "sticky" }, top: 0, left: mobileNav ? 0 : { base: 0, lg: "auto" }, bottom: mobileNav ? 0 : { base: 0, lg: "auto" }, zIndex: mobileNav ? Z_PANEL : { base: Z_PANEL, lg: "auto" }, maxW: mobileNav ? "88vw" : { base: "88vw", lg: "none" }, transform: mobileNav ? baseTransform : { base: baseTransform, lg: "none" }, transition: mobileNav
278
339
  ? dragging
279
340
  ? "none"
@@ -17,5 +17,5 @@ interface Props {
17
17
  * routed through the in-app handler.
18
18
  */
19
19
  export declare const isBrowserNavigationGesture: (e: React.MouseEvent) => boolean;
20
- declare const MenuItemBox: React.FC<Props>;
21
- export default MenuItemBox;
20
+ declare const _default: React.NamedExoticComponent<Props>;
21
+ export default _default;
@@ -47,6 +47,7 @@ const useCustomTheme_1 = require("../../../Theme/useCustomTheme");
47
47
  const sidebarAccentColors_1 = require("../sidebarAccentColors");
48
48
  const tone_1 = require("../../../Theme/tokens/builders/tone");
49
49
  const sidebarAccent_1 = require("../../../Theme/tokens/builders/sidebarAccent");
50
+ const zIndices_1 = __importDefault(require("../../../Theme/tokens/primitives/zIndices"));
50
51
  const paletteFromTheme_1 = require("../../../Theme/chakra/paletteFromTheme");
51
52
  const TextTruncation_1 = __importDefault(require("./TextTruncation"));
52
53
  const sidebarId_1 = require("../sidebarId");
@@ -113,7 +114,7 @@ const MenuItemBox = ({ menu, activeMenu, toggle, handleClick, isOpen, onToggle,
113
114
  h: rowHeight,
114
115
  borderRadius: "lg",
115
116
  px: "10px",
116
- fontWeight: "medium",
117
+ fontWeight: 500,
117
118
  border: "none",
118
119
  borderLeft: "2px solid",
119
120
  borderLeftColor: isAnyActive ? theme.colors.sidebar.activeIcon : "transparent",
@@ -151,7 +152,7 @@ const MenuItemBox = ({ menu, activeMenu, toggle, handleClick, isOpen, onToggle,
151
152
  return;
152
153
  e.preventDefault();
153
154
  handleToggleSubMenu(e);
154
- }, "data-menu-id": String((_c = menu.id) !== null && _c !== void 0 ? _c : title), children: buttonContent }) }), (0, jsx_runtime_1.jsx)(react_2.Portal, { children: (0, jsx_runtime_1.jsx)(react_2.PopoverContent, { borderRadius: "lg", bg: theme.colors.sidebar.elevated, boxShadow: "lg", minW: "10rem", maxW: "14rem", py: "0.125rem", ml: "-0.5rem", border: 'none', cursor: isBlocked ? "not-allowed" : "pointer", zIndex: 1500, children: (0, jsx_runtime_1.jsx)(react_2.PopoverBody, { p: "0.625rem", color: theme.colors.white, children: (0, jsx_runtime_1.jsx)(MenuPopoverContent_1.default, { menu: menu, handleMenuClick: handleClick, activeMenu: activeMenu }) }) }) })] }));
155
+ }, "data-menu-id": String((_c = menu.id) !== null && _c !== void 0 ? _c : title), children: buttonContent }) }), (0, jsx_runtime_1.jsx)(react_2.Portal, { children: (0, jsx_runtime_1.jsx)(react_2.PopoverContent, { borderRadius: "lg", bg: theme.colors.sidebar.elevated, boxShadow: "lg", minW: "10rem", maxW: "14rem", py: "0.125rem", ml: "-0.5rem", border: 'none', cursor: isBlocked ? "not-allowed" : "pointer", zIndex: zIndices_1.default.popover, children: (0, jsx_runtime_1.jsx)(react_2.PopoverBody, { p: "0.625rem", color: theme.colors.white, children: (0, jsx_runtime_1.jsx)(MenuPopoverContent_1.default, { menu: menu, handleMenuClick: handleClick, activeMenu: activeMenu }) }) }) })] }));
155
156
  }
156
157
  const row = ((0, jsx_runtime_1.jsx)(react_2.Box, { ...commonStyles, as: rowAs, type: hasSubMenu ? "button" : undefined, href: hasSubMenu ? undefined : url !== null && url !== void 0 ? url : "#", "aria-expanded": hasSubMenu ? !!isOpen : undefined, "aria-controls": hasSubMenu ? submenuPanelId : undefined, "aria-current": isAnyActive ? "page" : undefined, "aria-disabled": isBlocked ? true : undefined, onClick: (e) => {
157
158
  if (!hasSubMenu && url && (0, exports.isBrowserNavigationGesture)(e))
@@ -197,4 +198,4 @@ const MenuItemBox = ({ menu, activeMenu, toggle, handleClick, isOpen, onToggle,
197
198
  return sub.locked && sub.lockedReason ? ((0, jsx_runtime_1.jsx)(ToolTip_1.default, { label: sub.lockedReason, placement: "top", children: subRow }, subKey)) : ((0, jsx_runtime_1.jsx)(react_1.default.Fragment, { children: subRow }, subKey));
198
199
  }) }) }))] }));
199
200
  };
200
- exports.default = MenuItemBox;
201
+ exports.default = react_1.default.memo(MenuItemBox);
@@ -1,4 +1,4 @@
1
1
  import React from "react";
2
2
  import { RenderMenuType } from "../SideBarProps";
3
- declare const MenuItems: React.FC<RenderMenuType>;
4
- export default MenuItems;
3
+ declare const _default: React.NamedExoticComponent<RenderMenuType>;
4
+ export default _default;
@@ -54,11 +54,11 @@ const MenuItems = ({ menus, activeMenu, handleMenuClick, toggle, selectedSubMenu
54
54
  setOpenMenuId(activeMenu);
55
55
  }
56
56
  }, [activeMenu, menus]);
57
- const handleToggle = (menu, clickY) => {
57
+ const handleToggle = (0, react_1.useCallback)((menu, clickY) => {
58
58
  setOpenMenuId((prev) => (prev === menu.id ? null : menu.id));
59
59
  if (typeof clickY === "number")
60
60
  setLastClickY(clickY);
61
- };
61
+ }, []);
62
62
  (0, react_1.useEffect)(() => {
63
63
  if (openMenuId == null)
64
64
  return;
@@ -151,4 +151,4 @@ const MenuItems = ({ menus, activeMenu, handleMenuClick, toggle, selectedSubMenu
151
151
  return ((0, jsx_runtime_1.jsxs)(react_1.default.Fragment, { children: [showGroup && !isFirstGroup && ((0, jsx_runtime_1.jsx)(react_2.Box, { h: "1px", bg: theme.colors.sidebar.divider, mx: 2, my: overlay ? "3px" : "5px" })), showGroup && !toggle && ((0, jsx_runtime_1.jsx)(react_2.Box, { "aria-hidden": "true", px: "10px", pt: overlay ? "6px" : "10px", pb: "3px", fontSize: "9.5px", fontWeight: 600, textTransform: "uppercase", letterSpacing: "0.1em", color: theme.colors.sidebar.mutedLabel, whiteSpace: "nowrap", overflow: "hidden", children: menu.group })), (0, jsx_runtime_1.jsx)(MenuItemBox_1.default, { menu: menu, activeMenu: activeMenu, toggle: toggle, handleClick: handleMenuClick, selectedSubMenu: selectedSubMenu, isOpen: openMenuId === menu.id, onToggle: handleToggle, overlay: overlay })] }, `${String((_c = (_b = (_a = menu.id) !== null && _a !== void 0 ? _a : menu.url) !== null && _b !== void 0 ? _b : menu.title) !== null && _c !== void 0 ? _c : idx)}-${idx}`));
152
152
  }) }));
153
153
  };
154
- exports.default = MenuItems;
154
+ exports.default = (0, react_1.memo)(MenuItems);
@@ -1,8 +1,12 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  const jsx_runtime_1 = require("react/jsx-runtime");
4
7
  const react_1 = require("@chakra-ui/react");
5
8
  const useCustomTheme_1 = require("../../../Theme/useCustomTheme");
9
+ const zIndices_1 = __importDefault(require("../../../Theme/tokens/primitives/zIndices"));
6
10
  const sidebarFocus_1 = require("../sidebarFocus");
7
11
  const OtherApps = ({ toggle, otherApps }) => {
8
12
  const theme = (0, useCustomTheme_1.useCustomTheme)();
@@ -18,6 +22,6 @@ const OtherApps = ({ toggle, otherApps }) => {
18
22
  var _a;
19
23
  return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)(react_1.Flex, { alignItems: "center", gap: 2, mb: 1, onClick: app.onClick, children: [(_a = app.icon) !== null && _a !== void 0 ? _a : ((0, jsx_runtime_1.jsx)(react_1.Box, { w: "0.5rem", h: "0.5rem", borderRadius: "full", bg: app.color, boxShadow: `0 0 5px ${app.color}`, flexShrink: 0 })), (0, jsx_runtime_1.jsx)(react_1.Text, { fontSize: "sm", fontWeight: 700, color: theme.colors.white, children: app.name })] }), app.description && ((0, jsx_runtime_1.jsx)(react_1.Text, { fontSize: "xs", color: theme.colors.sidebar.mutedLabel, children: app.description }))] }));
20
24
  };
21
- return ((0, jsx_runtime_1.jsxs)(react_1.Box, { borderTop: "1px solid", borderColor: theme.colors.sidebar.divider, py: toggle ? "6px" : 2, px: "6px", flexShrink: 0, children: [!toggle && ((0, jsx_runtime_1.jsx)(react_1.Text, { fontSize: "9.5px", fontWeight: 600, color: theme.colors.sidebar.mutedLabel, letterSpacing: "0.1em", textTransform: "uppercase", px: 2, pt: "2px", pb: "5px", children: "Switch app" })), (0, jsx_runtime_1.jsx)(react_1.Box, { display: "grid", gridTemplateColumns: toggle ? "1fr" : "repeat(4, 1fr)", gap: "3px", children: otherApps.map((app) => toggle ? ((0, jsx_runtime_1.jsxs)(react_1.Popover, { trigger: "hover", placement: "right-start", closeOnBlur: false, isLazy: true, children: [(0, jsx_runtime_1.jsx)(react_1.PopoverTrigger, { children: (0, jsx_runtime_1.jsx)(react_1.Box, { w: "100%", children: appCell(app) }) }), (0, jsx_runtime_1.jsx)(react_1.Portal, { children: (0, jsx_runtime_1.jsx)(react_1.PopoverContent, { borderRadius: "lg", bg: theme.colors.sidebar.elevated, boxShadow: "lg", minW: "10rem", maxW: "14rem", py: "0.125rem", ml: "-0.5rem", border: "none", cursor: "pointer", zIndex: 1500, color: theme.colors.white, children: (0, jsx_runtime_1.jsx)(react_1.PopoverBody, { p: 3, children: flyoutBody(app) }) }) })] }, app.name)) : ((0, jsx_runtime_1.jsx)(react_1.Box, { w: "100%", children: appCell(app) }, app.name))) })] }));
25
+ return ((0, jsx_runtime_1.jsxs)(react_1.Box, { borderTop: "1px solid", borderColor: theme.colors.sidebar.divider, py: toggle ? "6px" : 2, px: "6px", flexShrink: 0, children: [!toggle && ((0, jsx_runtime_1.jsx)(react_1.Text, { fontSize: "9.5px", fontWeight: 600, color: theme.colors.sidebar.mutedLabel, letterSpacing: "0.1em", textTransform: "uppercase", px: 2, pt: "2px", pb: "5px", children: "Switch app" })), (0, jsx_runtime_1.jsx)(react_1.Box, { display: "grid", gridTemplateColumns: toggle ? "1fr" : "repeat(4, 1fr)", gap: "3px", children: otherApps.map((app) => toggle ? ((0, jsx_runtime_1.jsxs)(react_1.Popover, { trigger: "hover", placement: "right-start", closeOnBlur: false, isLazy: true, children: [(0, jsx_runtime_1.jsx)(react_1.PopoverTrigger, { children: (0, jsx_runtime_1.jsx)(react_1.Box, { w: "100%", children: appCell(app) }) }), (0, jsx_runtime_1.jsx)(react_1.Portal, { children: (0, jsx_runtime_1.jsx)(react_1.PopoverContent, { borderRadius: "lg", bg: theme.colors.sidebar.elevated, boxShadow: "lg", minW: "10rem", maxW: "14rem", py: "0.125rem", ml: "-0.5rem", border: "none", cursor: "pointer", zIndex: zIndices_1.default.popover, color: theme.colors.white, children: (0, jsx_runtime_1.jsx)(react_1.PopoverBody, { p: 3, children: flyoutBody(app) }) }) })] }, app.name)) : ((0, jsx_runtime_1.jsx)(react_1.Box, { w: "100%", children: appCell(app) }, app.name))) })] }));
22
26
  };
23
27
  exports.default = OtherApps;
@@ -7,6 +7,7 @@ const jsx_runtime_1 = require("react/jsx-runtime");
7
7
  const react_1 = require("react");
8
8
  const react_2 = require("@chakra-ui/react");
9
9
  const ToolTip_1 = __importDefault(require("../../ToolTip/ToolTip"));
10
+ const sharedResizeObserver_1 = require("../../../Hooks/sharedResizeObserver");
10
11
  const OverflowTooltipText = ({ children, placement = "bottom", maxWidth = "100%", isTooltipDisabled = false, ...textProps }) => {
11
12
  const textRef = (0, react_1.useRef)(null);
12
13
  const shadowRef = (0, react_1.useRef)(null);
@@ -22,11 +23,9 @@ const OverflowTooltipText = ({ children, placement = "bottom", maxWidth = "100%"
22
23
  }
23
24
  };
24
25
  checkTruncation();
25
- const resizeObserver = new ResizeObserver(checkTruncation);
26
- if (textRef.current) {
27
- resizeObserver.observe(textRef.current);
28
- }
29
- return () => resizeObserver.disconnect();
26
+ if (!textRef.current)
27
+ return;
28
+ return (0, sharedResizeObserver_1.observeResize)(textRef.current, checkTruncation);
30
29
  }, [children]);
31
30
  const shouldShowTooltip = isTruncated && !isTooltipDisabled;
32
31
  return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(ToolTip_1.default, { label: children, isDisabled: !shouldShowTooltip, placement: placement, hasArrow: true, children: (0, jsx_runtime_1.jsx)(react_2.Text, { ref: textRef, isTruncated: true, whiteSpace: "nowrap", overflow: "hidden",
@@ -75,7 +75,7 @@ const PinnedSection = ({ items, label = exports.DEFAULT_PINNED_LABEL, limit = ex
75
75
  };
76
76
  const renderRow = (item) => {
77
77
  const isActive = activeIndex >= 0 && String(item.id) === String(activeId);
78
- const anchor = ((0, jsx_runtime_1.jsx)(react_2.Box, { as: "a", href: item.url, "data-group": "", "data-pinned-id": String(item.id), "aria-label": toggle ? item.title : undefined, "aria-current": isActive ? "page" : undefined, display: "flex", alignItems: "center", textAlign: "left", textDecoration: "none", w: "100%", h: rowHeight, borderRadius: "lg", pl: "10px", pr: !toggle && onUnpin ? `calc(10px + ${UNPIN_SIZE})` : "10px", fontWeight: "medium", borderLeft: "2px solid", borderLeftColor: isActive ? theme.colors.sidebar.activeIcon : "transparent", backgroundColor: isActive ? LADDER.active : "transparent", color: theme.colors.sidebar.mutedIcon, _hover: { backgroundColor: isActive ? LADDER.activeHover : LADDER.hover }, cursor: "pointer", transition: "background 0.12s", sx: (0, sidebarFocus_1.sidebarFocusStyles)(theme.colors), onClick: (e) => {
78
+ const anchor = ((0, jsx_runtime_1.jsx)(react_2.Box, { as: "a", href: item.url, "data-group": "", "data-pinned-id": String(item.id), "aria-label": toggle ? item.title : undefined, "aria-current": isActive ? "page" : undefined, display: "flex", alignItems: "center", textAlign: "left", textDecoration: "none", w: "100%", h: rowHeight, borderRadius: "lg", pl: "10px", pr: !toggle && onUnpin ? `calc(10px + ${UNPIN_SIZE})` : "10px", fontWeight: 500, borderLeft: "2px solid", borderLeftColor: isActive ? theme.colors.sidebar.activeIcon : "transparent", backgroundColor: isActive ? LADDER.active : "transparent", color: theme.colors.sidebar.mutedIcon, _hover: { backgroundColor: isActive ? LADDER.activeHover : LADDER.hover }, cursor: "pointer", transition: "background 0.12s", sx: (0, sidebarFocus_1.sidebarFocusStyles)(theme.colors), onClick: (e) => {
79
79
  if (item.url && (0, MenuItemBox_1.isBrowserNavigationGesture)(e))
80
80
  return;
81
81
  e.preventDefault();
@@ -89,7 +89,7 @@ const PinnedSection = ({ items, label = exports.DEFAULT_PINNED_LABEL, limit = ex
89
89
  const disclosureLabel = showAll
90
90
  ? text.showLess
91
91
  : text.showMore.replace("{count}", String(hiddenCount));
92
- const disclosureButton = ((0, jsx_runtime_1.jsxs)(react_2.Box, { as: "button", type: "button", "aria-expanded": showAll, "aria-label": toggle ? disclosureLabel : undefined, onClick: () => setShowAll((v) => !v), display: "flex", alignItems: "center", justifyContent: toggle ? "center" : "flex-start", gap: "9px", w: "100%", h: rowHeight, px: "10px", borderRadius: "lg", border: "none", borderLeft: "2px solid transparent", bg: "transparent", cursor: "pointer", color: theme.colors.sidebar.mutedLabel, fontSize: sidebarScale_1.SIDEBAR_ROW.fontSize, fontWeight: "medium", _hover: {
92
+ const disclosureButton = ((0, jsx_runtime_1.jsxs)(react_2.Box, { as: "button", type: "button", "aria-expanded": showAll, "aria-label": toggle ? disclosureLabel : undefined, onClick: () => setShowAll((v) => !v), display: "flex", alignItems: "center", justifyContent: toggle ? "center" : "flex-start", gap: "9px", w: "100%", h: rowHeight, px: "10px", borderRadius: "lg", border: "none", borderLeft: "2px solid transparent", bg: "transparent", cursor: "pointer", color: theme.colors.sidebar.mutedLabel, fontSize: sidebarScale_1.SIDEBAR_ROW.fontSize, fontWeight: 500, _hover: {
93
93
  backgroundColor: LADDER.hover,
94
94
  color: theme.colors.white,
95
95
  }, transition: "background 0.12s", sx: (0, sidebarFocus_1.sidebarFocusStyles)(theme.colors), children: [(0, jsx_runtime_1.jsx)(react_2.Icon, { as: showAll ? lucide_react_1.ChevronUp : lucide_react_1.ChevronDown, fontSize: "md", flexShrink: 0 }), !toggle && (0, jsx_runtime_1.jsx)("span", { children: disclosureLabel })] }));
@@ -1,8 +1,15 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  const jsx_runtime_1 = require("react/jsx-runtime");
4
7
  const react_1 = require("react");
5
8
  const react_2 = require("@chakra-ui/react");
9
+ const sharedResizeObserver_1 = require("../../../Hooks/sharedResizeObserver");
10
+ const ToolTip_1 = __importDefault(require("../../ToolTip/ToolTip"));
11
+ // NOTE: an explicit preventOverflow opts out of ToolTip's 8px edge padding, keeping Chakra's placement.
12
+ const CHAKRA_DEFAULT_OVERFLOW = [{ name: "preventOverflow", options: {} }];
6
13
  const TruncatedTextWithTooltip = ({ children, ...props }) => {
7
14
  const textRef = (0, react_1.useRef)(null);
8
15
  const shadowRef = (0, react_1.useRef)(null);
@@ -18,13 +25,11 @@ const TruncatedTextWithTooltip = ({ children, ...props }) => {
18
25
  }
19
26
  };
20
27
  checkTruncation();
21
- const resizeObserver = new ResizeObserver(checkTruncation);
22
- if (textRef.current) {
23
- resizeObserver.observe(textRef.current);
24
- }
25
- return () => resizeObserver.disconnect();
28
+ if (!textRef.current)
29
+ return;
30
+ return (0, sharedResizeObserver_1.observeResize)(textRef.current, checkTruncation);
26
31
  }, [children]);
27
- return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(react_2.Tooltip, { label: children, isDisabled: !isTruncated, hasArrow: true, placement: "right", children: (0, jsx_runtime_1.jsx)(react_2.Text, { ref: textRef, isTruncated: true, whiteSpace: "nowrap", overflow: "hidden",
32
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(ToolTip_1.default, { label: children, isDisabled: !isTruncated, hasArrow: true, placement: "right", openDelay: 0, closeOnClick: true, modifiers: CHAKRA_DEFAULT_OVERFLOW, children: (0, jsx_runtime_1.jsx)(react_2.Text, { ref: textRef, isTruncated: true, whiteSpace: "nowrap", overflow: "hidden",
28
33
  // NOTE: padding lifts descenders out of the clip box; margin keeps the label's height.
29
34
  py: "0.35em", my: "-0.35em", textOverflow: "ellipsis", maxW: "100%", ...props, children: children }) }), (0, jsx_runtime_1.jsx)(react_2.Box, { ref: shadowRef, position: "fixed", top: "-9999px", left: "-9999px", visibility: "hidden", whiteSpace: "nowrap", fontSize: props.fontSize, fontWeight: props.fontWeight, fontFamily: props.fontFamily, lineHeight: props.lineHeight, px: props.px, py: props.py, children: children })] }));
30
35
  };
@@ -4,7 +4,7 @@ export declare const SIDEBAR_ROW: {
4
4
  /** Rail row in the mobile overlay — the WCAG 2.5.5 touch target. */
5
5
  readonly overlayHeight: "44px";
6
6
  readonly subHeight: "28px";
7
- readonly fontSize: "13px";
7
+ readonly fontSize: string;
8
8
  readonly iconSize: "1rem";
9
9
  };
10
10
  /** Header/footer text around the rows; every row itself uses SIDEBAR_ROW.fontSize. */
@@ -1,13 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SIDEBAR_CHROME = exports.SIDEBAR_ROW = void 0;
4
+ const typography_1 = require("../../Theme/tokens/primitives/typography");
4
5
  /** One type and row scale for the whole sidebar — rail, submenu, flyout, secondary bar and chrome. */
5
6
  exports.SIDEBAR_ROW = {
6
7
  height: "32px",
7
8
  /** Rail row in the mobile overlay — the WCAG 2.5.5 touch target. */
8
9
  overlayHeight: "44px",
9
10
  subHeight: "28px",
10
- fontSize: "13px",
11
+ fontSize: typography_1.fontSizes["xs-plus"],
11
12
  iconSize: "1rem",
12
13
  };
13
14
  /** Header/footer text around the rows; every row itself uses SIDEBAR_ROW.fontSize. */
@@ -2,7 +2,9 @@
2
2
  export type SignInDevice = {
3
3
  /** Falls back to "—" when falsy; device and activity below don't — a blank one renders as an empty cell, not a dash. */
4
4
  browser: string;
5
+ /** Free text such as "MacBook Pro"; a blank value renders an empty cell. */
5
6
  device: string;
7
+ /** Shown verbatim, e.g. "2 hours ago"; the component never formats dates. */
6
8
  activity: string;
7
9
  };
8
10
  /**
@@ -10,15 +12,21 @@ export type SignInDevice = {
10
12
  * key has a sensible English default so the component works standalone.
11
13
  */
12
14
  export type SignInActivityLabels = {
15
+ /** Card heading; defaults to "Recent Sign-in Devices". */
13
16
  title?: string;
14
17
  browser?: string;
15
18
  device?: string;
19
+ /** Third column header; defaults to "Recent Activity". */
16
20
  recentActivity?: string;
21
+ /** Empty-state title shown when `devices` is empty. */
17
22
  noActivity?: string;
18
23
  };
19
24
  /** Read-only 3-column device list (browser, device, activity) on raw Chakra table parts, not the library Table — no row actions, closed props, no ref/...rest passthrough. */
20
25
  export interface SignInActivityTableProps {
26
+ /** Rendered in array order and keyed by index; an empty array shows the empty state. */
21
27
  devices: SignInDevice[];
28
+ /** Replaces the table with four skeleton bars; the heading stays. */
22
29
  isLoading?: boolean;
30
+ /** Partial overrides merged over the English defaults, per key. */
23
31
  labels?: SignInActivityLabels;
24
32
  }
@@ -1,8 +1,11 @@
1
+ import type { HTMLAttributes } from "react";
1
2
  import { SkeletonProps as ChakraSkeleton, SkeletonTextProps } from "@chakra-ui/react";
2
- /** Closed prop list: no ...rest, and no margin beyond `mt` on text. */
3
- export type SkeletonProps = Pick<ChakraSkeleton, "startColor" | "endColor" | "height" | "isLoaded" | "bg" | "color" | "fadeDuration" | "children" | "speed" | "size" | "mt" | "alignSelf" | "flexShrink" | "noOfLines" | "width"> & {
3
+ type SkeletonOwnProps = Pick<ChakraSkeleton, "startColor" | "endColor" | "height" | "isLoaded" | "bg" | "color" | "fadeDuration" | "children" | "speed" | "size" | "mt" | "alignSelf" | "flexShrink" | "noOfLines" | "width"> & {
4
4
  /** isLoaded, children, bg, color, fadeDuration only apply to type="skeleton" — circle/text accept but silently ignore them. */
5
5
  type: "skeleton" | "circle" | "text";
6
6
  /** Corner radius for type="skeleton" (theme default when unset); circle/text ignore it. */
7
7
  borderRadius?: ChakraSkeleton["borderRadius"];
8
8
  } & Partial<Pick<SkeletonTextProps, "spacing" | "skeletonHeight">>;
9
+ /** Closed style-prop list (no margin beyond `mt` on text); plain HTML attributes (id, className, data-*, aria-*) land on the rendered root. */
10
+ export type SkeletonProps = SkeletonOwnProps & Omit<HTMLAttributes<HTMLDivElement>, keyof SkeletonOwnProps | "dangerouslySetInnerHTML">;
11
+ export {};
@@ -1,3 +1,3 @@
1
1
  import { SkeletonProps } from "./SkeletonProps";
2
2
  /** Renders exactly one of Skeleton/SkeletonCircle/SkeletonText per `type` — not a layout wrapper combining all three. */
3
- export default function Skeletons({ startColor, endColor, height, borderRadius, isLoaded, bg, color, fadeDuration, children, type, speed, size, mt, noOfLines, spacing, skeletonHeight, width, }: SkeletonProps): import("react/jsx-runtime").JSX.Element;
3
+ export default function Skeletons({ startColor, endColor, height, borderRadius, isLoaded, bg, color, fadeDuration, children, type, speed, size, mt, noOfLines, spacing, skeletonHeight, width, alignSelf, flexShrink, ...rest }: SkeletonProps): import("react/jsx-runtime").JSX.Element;
@@ -4,6 +4,8 @@ exports.default = Skeletons;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const react_1 = require("@chakra-ui/react");
6
6
  /** Renders exactly one of Skeleton/SkeletonCircle/SkeletonText per `type` — not a layout wrapper combining all three. */
7
- function Skeletons({ startColor, endColor, height = "1.25rem", borderRadius, isLoaded, bg, color, fadeDuration, children, type, speed, size, mt, noOfLines, spacing, skeletonHeight, width, }) {
8
- return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [type === "skeleton" && ((0, jsx_runtime_1.jsx)(react_1.Skeleton, { height: height, isLoaded: isLoaded, bg: bg, color: color, fadeDuration: fadeDuration, startColor: startColor, endColor: endColor, speed: speed, width: width, borderRadius: borderRadius, children: children })), type === "circle" && (0, jsx_runtime_1.jsx)(react_1.SkeletonCircle, { size: size, speed: speed }), type === "text" && ((0, jsx_runtime_1.jsx)(react_1.SkeletonText, { mt: mt, noOfLines: noOfLines, spacing: spacing, skeletonHeight: skeletonHeight }))] }));
7
+ function Skeletons({ startColor, endColor, height = "1.25rem", borderRadius, isLoaded, bg, color, fadeDuration, children, type, speed, size, mt, noOfLines, spacing, skeletonHeight, width, alignSelf, flexShrink, ...rest }) {
8
+ void alignSelf;
9
+ void flexShrink;
10
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [type === "skeleton" && ((0, jsx_runtime_1.jsx)(react_1.Skeleton, { ...rest, height: height, isLoaded: isLoaded, bg: bg, color: color, fadeDuration: fadeDuration, startColor: startColor, endColor: endColor, speed: speed, width: width, borderRadius: borderRadius, children: children })), type === "circle" && (0, jsx_runtime_1.jsx)(react_1.SkeletonCircle, { ...rest, size: size, speed: speed }), type === "text" && ((0, jsx_runtime_1.jsx)(react_1.SkeletonText, { ...rest, mt: mt, noOfLines: noOfLines, spacing: spacing, skeletonHeight: skeletonHeight }))] }));
9
11
  }
@@ -0,0 +1,4 @@
1
+ import type { SkipLinkProps } from "./SkipLinkProps";
2
+ export declare const missingTargetWarning: (targetId: string) => string;
3
+ declare const SkipLink: import("react").ForwardRefExoticComponent<SkipLinkProps & import("react").RefAttributes<HTMLAnchorElement>>;
4
+ export default SkipLink;
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.missingTargetWarning = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_1 = require("react");
6
+ const react_2 = require("@chakra-ui/react");
7
+ const useCustomTheme_1 = require("../../Theme/useCustomTheme");
8
+ const focusRing_styles_1 = require("../../Theme/chakra/focusRing.styles");
9
+ const radii_1 = require("../../Theme/tokens/primitives/radii");
10
+ const VisuallyHidden_1 = require("../VisuallyHidden/VisuallyHidden");
11
+ const FOCUSABLE = "a[href], area[href], button, input, select, textarea, iframe, summary, [tabindex], [contenteditable='true']";
12
+ const missingTargetWarning = (targetId) => `[pixelize-design-library] SkipLink: no element with id "${targetId}" to skip to.`;
13
+ exports.missingTargetWarning = missingTargetWarning;
14
+ const SkipLink = (0, react_1.forwardRef)(function SkipLink({ targetId = "main-content", children = "Skip to main content", onClick, ...rest }, ref) {
15
+ const { colors } = (0, useCustomTheme_1.useCustomTheme)();
16
+ const handleClick = (event) => {
17
+ onClick === null || onClick === void 0 ? void 0 : onClick(event);
18
+ if (event.defaultPrevented)
19
+ return;
20
+ const target = document.getElementById(targetId);
21
+ if (!target) {
22
+ if (process.env.NODE_ENV !== "production")
23
+ console.warn((0, exports.missingTargetWarning)(targetId));
24
+ return;
25
+ }
26
+ event.preventDefault();
27
+ if (!target.matches(FOCUSABLE))
28
+ target.setAttribute("tabindex", "-1");
29
+ target.focus();
30
+ };
31
+ return ((0, jsx_runtime_1.jsx)(react_2.chakra.a, { ...rest, ref: ref, href: `#${targetId}`, onClick: handleClick, sx: {
32
+ ...VisuallyHidden_1.visuallyHiddenStyle,
33
+ _focusVisible: {
34
+ clip: "auto",
35
+ width: "auto",
36
+ height: "auto",
37
+ margin: 0,
38
+ overflow: "visible",
39
+ top: 4,
40
+ left: 4,
41
+ px: 4,
42
+ py: 2,
43
+ zIndex: "skipLink",
44
+ borderRadius: radii_1.RADIUS_ROLE.control,
45
+ bg: colors.surfaceRaised,
46
+ color: colors.accentText,
47
+ fontSize: "sm",
48
+ fontWeight: 600,
49
+ textDecoration: "none",
50
+ ...(0, focusRing_styles_1.focusVisibleRing)(colors),
51
+ },
52
+ }, children: children }));
53
+ });
54
+ exports.default = SkipLink;
@@ -0,0 +1,8 @@
1
+ import type { AnchorHTMLAttributes, ReactNode } from "react";
2
+ /** A "skip to content" link, invisible until keyboard focus; other `<a>` attributes land on the anchor. */
3
+ export interface SkipLinkProps extends Omit<AnchorHTMLAttributes<HTMLAnchorElement>, "href" | "color" | "children" | "dangerouslySetInnerHTML"> {
4
+ /** Id of the element to jump to, without `#`; it receives focus (gaining `tabindex="-1"` if it is not focusable). Defaults to "main-content". */
5
+ targetId?: string;
6
+ /** The link text; defaults to "Skip to main content". */
7
+ children?: ReactNode;
8
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,7 +1,7 @@
1
1
  import React from "react";
2
2
  type ImageSliderProps = {
3
3
  images: SliderImage[];
4
- /** interval <= 0 disables auto-advance entirely (no timer set) — it does not mean "no delay"/immediate. */
4
+ /** ms between slides; <= 0 disables auto-advance (no timer). Also paused while hovered or focused, and off under reduced motion. */
5
5
  interval?: number;
6
6
  isArrow?: boolean;
7
7
  mobileImages?: SliderImage[];
@@ -15,6 +15,6 @@ type SliderImage = {
15
15
  /** Sorts the main track, but pagination dots follow the array's original order — pass images pre-sorted by order to keep dots in sync. */
16
16
  order: number;
17
17
  };
18
- /** Auto-advancing image/content carousel — NOT a numeric range input; for that use Chakra's Slider via the Primitives barrel (exported as RangeSlider). */
18
+ /** Auto-advancing image/content carousel (pauses on hover/focus, never auto-advances under reduced motion) — NOT a numeric range input; for that use Chakra's Slider via the Primitives barrel (exported as RangeSlider). */
19
19
  declare const Slider: React.FC<ImageSliderProps>;
20
20
  export default Slider;
@@ -8,11 +8,15 @@ const useCustomTheme_1 = require("../../Theme/useCustomTheme");
8
8
  const accentText_1 = require("../../Theme/tokens/builders/accentText");
9
9
  const outlineRung_1 = require("../../Theme/tokens/builders/outlineRung");
10
10
  const motion_1 = require("../../Theme/tokens/primitives/motion");
11
- /** Auto-advancing image/content carousel — NOT a numeric range input; for that use Chakra's Slider via the Primitives barrel (exported as RangeSlider). */
11
+ const motion_2 = require("../../Theme/chakra/motion");
12
+ /** Auto-advancing image/content carousel (pauses on hover/focus, never auto-advances under reduced motion) — NOT a numeric range input; for that use Chakra's Slider via the Primitives barrel (exported as RangeSlider). */
12
13
  const Slider = ({ images, interval = 5000, isArrow = false, mobileImages, }) => {
13
14
  var _a, _b;
14
15
  const { colors } = (0, useCustomTheme_1.useCustomTheme)();
15
16
  const [currentIndex, setCurrentIndex] = (0, react_1.useState)(0);
17
+ const [hovered, setHovered] = (0, react_1.useState)(false);
18
+ const [focused, setFocused] = (0, react_1.useState)(false);
19
+ const reducedMotion = (0, motion_2.usePrefersReducedMotion)();
16
20
  const timeoutRef = (0, react_1.useRef)(null);
17
21
  const isMobile = (_a = (0, react_2.useBreakpointValue)({ base: true, md: false })) !== null && _a !== void 0 ? _a : false;
18
22
  const slides = (isMobile && mobileImages && mobileImages.length > 0) ? mobileImages : images;
@@ -23,14 +27,14 @@ const Slider = ({ images, interval = 5000, isArrow = false, mobileImages, }) =>
23
27
  setCurrentIndex((prev) => (prev - 1 + slides.length) % slides.length);
24
28
  }, [slides.length]);
25
29
  (0, react_1.useEffect)(() => {
26
- if (interval > 0) {
30
+ if (interval > 0 && !hovered && !focused && !reducedMotion) {
27
31
  timeoutRef.current = setTimeout(nextSlide, interval);
28
32
  }
29
33
  return () => {
30
34
  if (timeoutRef.current)
31
35
  clearTimeout(timeoutRef.current);
32
36
  };
33
- }, [currentIndex, interval, nextSlide]);
37
+ }, [currentIndex, interval, nextSlide, hovered, focused, reducedMotion]);
34
38
  (0, react_1.useEffect)(() => {
35
39
  if (currentIndex >= slides.length) {
36
40
  setCurrentIndex(0);
@@ -43,7 +47,10 @@ const Slider = ({ images, interval = 5000, isArrow = false, mobileImages, }) =>
43
47
  const chipHoverBg = (0, outlineRung_1.resolveHoverTint)(colors.gray[200], chipBg);
44
48
  const chipHoverInk = (0, accentText_1.onFilled)(chipHoverBg, colors.white, colors.black);
45
49
  const dotInactiveInk = (0, outlineRung_1.liftToContrast)(colors.gray[400], chipBg, outlineRung_1.AA_NON_TEXT);
46
- return ((0, jsx_runtime_1.jsxs)(react_2.Box, { position: "relative", w: "100%", h: "auto", overflow: "hidden", children: [(0, jsx_runtime_1.jsx)(react_2.Flex, { w: `${slides.length * 100}%`, transform: `translateX(-${(currentIndex * 100) / slides.length}%)`, transition: "transform 0.5s ease", children: [...slides]
50
+ return ((0, jsx_runtime_1.jsxs)(react_2.Box, { position: "relative", w: "100%", h: "auto", overflow: "hidden", onMouseEnter: () => setHovered(true), onMouseLeave: () => setHovered(false), onFocus: () => setFocused(true), onBlur: (e) => {
51
+ if (!e.currentTarget.contains(e.relatedTarget))
52
+ setFocused(false);
53
+ }, children: [(0, jsx_runtime_1.jsx)(react_2.Flex, { w: `${slides.length * 100}%`, transform: `translateX(-${(currentIndex * 100) / slides.length}%)`, transition: reducedMotion ? "none" : "transform 0.5s ease", children: [...slides]
47
54
  .sort((a, b) => a.order - b.order)
48
55
  .map((image, idx) => ((0, jsx_runtime_1.jsx)(react_2.Box, { w: `${100 / slides.length}%`, h: "auto", flexShrink: 0, display: "flex", justifyContent: "center", alignItems: "center", children: (0, jsx_runtime_1.jsx)(react_2.AspectRatio, { ratio: ratio, w: "100%", children: (0, jsx_runtime_1.jsx)(react_2.Image, { src: isMobile && image.mobilePreviewUrl
49
56
  ? image.mobilePreviewUrl