@12-apps/ui 6.36.0 → 6.38.0

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 (1103) hide show
  1. package/dist/_internal/components/data-display/AsyncStateContainer/AsyncStateContainer.js +4 -4
  2. package/dist/_internal/components/data-display/CardKit/CardKebab.js +4 -4
  3. package/dist/_internal/components/data-display/CardKit/use-remove-confirm.js +3 -3
  4. package/dist/_internal/components/data-display/CardKit/use-row-confirm.js +3 -3
  5. package/dist/_internal/components/data-display/DataViews/DataViewsBoard.js +2 -2
  6. package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +58 -58
  7. package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +73 -74
  8. package/dist/_internal/components/data-display/DataViews/DeleteViewDialog.js +6 -7
  9. package/dist/_internal/components/data-display/DataViews/ManageViewsDialog.js +7 -8
  10. package/dist/_internal/components/data-display/DataViews/SaveViewModal.js +13 -14
  11. package/dist/_internal/components/data-display/DataViews/base-card.js +5 -6
  12. package/dist/_internal/components/data-display/DataViews/base-list-card-geometry.js +9 -9
  13. package/dist/_internal/components/data-display/DataViews/base-list-card-gutters.js +2 -2
  14. package/dist/_internal/components/data-display/DataViews/base-list-card-slots.js +8 -8
  15. package/dist/_internal/components/data-display/DataViews/base-list-card.js +14 -15
  16. package/dist/_internal/components/data-display/DataViews/data-views-category-pill.js +18 -18
  17. package/dist/_internal/components/data-display/DataViews/data-views-columns-tab.js +2 -2
  18. package/dist/_internal/components/data-display/DataViews/data-views-columns.js +5 -5
  19. package/dist/_internal/components/data-display/DataViews/data-views-display-panel.js +11 -11
  20. package/dist/_internal/components/data-display/DataViews/data-views-display-tabs.js +6 -6
  21. package/dist/_internal/components/data-display/DataViews/data-views-empty.js +4 -4
  22. package/dist/_internal/components/data-display/DataViews/data-views-export.js +4 -4
  23. package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +24 -24
  24. package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +13 -13
  25. package/dist/_internal/components/data-display/DataViews/data-views-grid-helpers.js +4 -4
  26. package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +55 -55
  27. package/dist/_internal/components/data-display/DataViews/data-views-header-row.js +2 -2
  28. package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +26 -26
  29. package/dist/_internal/components/data-display/DataViews/data-views-layout-context.js +4 -4
  30. package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +11 -11
  31. package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +14 -14
  32. package/dist/_internal/components/data-display/DataViews/data-views-pagination.js +4 -4
  33. package/dist/_internal/components/data-display/DataViews/data-views-range-pill.js +2 -2
  34. package/dist/_internal/components/data-display/DataViews/data-views-scope-tabs.js +5 -5
  35. package/dist/_internal/components/data-display/DataViews/data-views-select-all-strip.js +4 -4
  36. package/dist/_internal/components/data-display/DataViews/data-views-shell-toolbar.js +23 -23
  37. package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +23 -24
  38. package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +22 -22
  39. package/dist/_internal/components/data-display/DataViews/data-views-view-nav.js +4 -4
  40. package/dist/_internal/components/data-display/DataViews/list-card-rails.js +5 -5
  41. package/dist/_internal/components/data-display/DataViews/save-view-preview.js +2 -2
  42. package/dist/_internal/components/data-display/DataViews/use-data-views-state.js +6 -6
  43. package/dist/_internal/components/data-display/DescriptionItem/DescriptionItem.js +2 -2
  44. package/dist/_internal/components/data-display/FleetMap/FleetBody.js +4 -4
  45. package/dist/_internal/components/data-display/FleetMap/FleetMap.js +6 -6
  46. package/dist/_internal/components/data-display/FleetMap/FleetRoster.js +3 -3
  47. package/dist/_internal/components/data-display/LazyImage/LazyImage.js +3 -3
  48. package/dist/_internal/components/data-display/LoadingState/LoadingState.js +3 -3
  49. package/dist/_internal/components/data-display/StatCard/StatCard.js +3 -3
  50. package/dist/_internal/components/data-display/index.js +12 -12
  51. package/dist/_internal/components/feedback/ConfirmAction/ConfirmButton.js +3 -3
  52. package/dist/_internal/components/feedback/Dialog/Dialog.js +3 -3
  53. package/dist/_internal/components/feedback/Dialog/Dialog.styles.js +2 -2
  54. package/dist/_internal/components/feedback/Modal/Modal.js +3 -2
  55. package/dist/_internal/components/feedback/Modal/Modal.styles.js +2 -1
  56. package/dist/_internal/components/feedback/NotificationStatusNotice/NotificationStatusNotice.js +3 -3
  57. package/dist/_internal/components/feedback/Sonner/Sonner.js +2 -2
  58. package/dist/_internal/components/feedback/Sonner/SonnerToast.js +1 -1
  59. package/dist/_internal/components/feedback/StackedModal/StackedModal.js +4 -3
  60. package/dist/_internal/components/feedback/StackedModal/StackedModal.parts.js +3 -2
  61. package/dist/_internal/components/feedback/StackedModal/StackedModal.styles.js +2 -1
  62. package/dist/_internal/components/feedback/Toast/Toast.js +2 -1
  63. package/dist/_internal/components/feedback/TutorialOverlay/TutorialOverlay.geometry.js +1 -1
  64. package/dist/_internal/components/feedback/TutorialOverlay/TutorialOverlay.hooks.js +3 -2
  65. package/dist/_internal/components/feedback/TutorialOverlay/TutorialOverlay.js +5 -4
  66. package/dist/_internal/components/feedback/TutorialOverlay/TutorialStepBody.js +2 -1
  67. package/dist/_internal/components/feedback/index.js +18 -19
  68. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.js +6 -6
  69. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocompleteField.js +4 -4
  70. package/dist/_internal/components/form/AddressAutocomplete/AddressFallbackField.js +3 -2
  71. package/dist/_internal/components/form/AddressAutocomplete/AddressInputField.js +3 -2
  72. package/dist/_internal/components/form/AddressAutocomplete/AddressSuggestionsPaper.js +2 -1
  73. package/dist/_internal/components/form/AddressAutocomplete/AddressTextField.js +2 -1
  74. package/dist/_internal/components/form/Autocomplete/Autocomplete.js +3 -2
  75. package/dist/_internal/components/form/Autocomplete/Autocomplete.parts.js +2 -1
  76. package/dist/_internal/components/form/Button/Button.js +2 -2
  77. package/dist/_internal/components/form/Button/Button.styles.js +1 -1
  78. package/dist/_internal/components/form/CategorySelect/CategoryPanel.js +6 -6
  79. package/dist/_internal/components/form/CategorySelect/CategoryPanelFoot.js +2 -2
  80. package/dist/_internal/components/form/CategorySelect/CategoryPanelHead.js +2 -2
  81. package/dist/_internal/components/form/CategorySelect/CategoryPanelList.js +3 -3
  82. package/dist/_internal/components/form/CategorySelect/CategoryPanelSurface.js +2 -1
  83. package/dist/_internal/components/form/CategorySelect/CategoryRows.js +2 -2
  84. package/dist/_internal/components/form/CategorySelect/CategorySelect.js +10 -10
  85. package/dist/_internal/components/form/CategorySelect/CategorySelect.styles.js +1 -1
  86. package/dist/_internal/components/form/CategorySelect/CategoryTrigger.js +2 -2
  87. package/dist/_internal/components/form/CepField/CepField.js +4 -4
  88. package/dist/_internal/components/form/Checkbox/Checkbox.js +1 -1
  89. package/dist/_internal/components/form/CodeEditor/CodeEditor.helpers.js +1 -1
  90. package/dist/_internal/components/form/CodeEditor/CodeEditor.js +2 -2
  91. package/dist/_internal/components/form/Command/Command.hooks.js +1 -1
  92. package/dist/_internal/components/form/Command/Command.js +4 -4
  93. package/dist/_internal/components/form/Command/Command.parts.js +2 -1
  94. package/dist/_internal/components/form/Command/Command.styles.js +1 -1
  95. package/dist/_internal/components/form/CreatableSelect/CreatableSelect.js +2 -2
  96. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.js +2 -2
  97. package/dist/_internal/components/form/DateRangePicker/DateRangePickerQuickList.js +1 -1
  98. package/dist/_internal/components/form/Form/Form.js +1 -1
  99. package/dist/_internal/components/form/HeaderActions/HeaderActions.js +1 -1
  100. package/dist/_internal/components/form/Input/Input.js +3 -2
  101. package/dist/_internal/components/form/Input/Input.styles.js +2 -1
  102. package/dist/_internal/components/form/InputOTP/InputOTP.js +2 -2
  103. package/dist/_internal/components/form/InputOTP/InputOTP.styles.js +1 -1
  104. package/dist/_internal/components/form/Label/Label.js +2 -2
  105. package/dist/_internal/components/form/Label/Label.styles.js +1 -1
  106. package/dist/_internal/components/form/Menubar/Menubar.item.js +2 -2
  107. package/dist/_internal/components/form/Menubar/Menubar.js +4 -4
  108. package/dist/_internal/components/form/Menubar/Menubar.styles.js +1 -1
  109. package/dist/_internal/components/form/Menubar/Menubar.toolbar.js +3 -3
  110. package/dist/_internal/components/form/PasswordStrength/PasswordStrength.js +1 -1
  111. package/dist/_internal/components/form/PhoneInput/PhoneInput.js +1 -1
  112. package/dist/_internal/components/form/RadioGroup/RadioGroup.animations.js +2 -1
  113. package/dist/_internal/components/form/RadioGroup/RadioGroup.js +4 -4
  114. package/dist/_internal/components/form/RadioGroup/RadioGroup.styles.js +2 -2
  115. package/dist/_internal/components/form/RadioGroup/RadioGroup.variants.js +3 -3
  116. package/dist/_internal/components/form/RichTextEditor/RichTextEditor.js +2 -2
  117. package/dist/_internal/components/form/RichTextEditor/RichTextEditorToolbar.js +2 -1
  118. package/dist/_internal/components/form/SearchPalette/SearchPalette.js +2 -2
  119. package/dist/_internal/components/form/SearchPalette/SearchPalette.parts.js +1 -1
  120. package/dist/_internal/components/form/Select/Select.js +2 -1
  121. package/dist/_internal/components/form/Slider/Slider.animations.js +2 -1
  122. package/dist/_internal/components/form/Slider/Slider.js +3 -3
  123. package/dist/_internal/components/form/Slider/Slider.styles.js +2 -2
  124. package/dist/_internal/components/form/Switch/Switch.animations.js +2 -1
  125. package/dist/_internal/components/form/Switch/Switch.js +4 -4
  126. package/dist/_internal/components/form/Switch/Switch.parts.js +3 -3
  127. package/dist/_internal/components/form/Switch/Switch.styles.js +2 -2
  128. package/dist/_internal/components/form/Textarea/Textarea.js +2 -2
  129. package/dist/_internal/components/form/Textarea/Textarea.styles.js +2 -1
  130. package/dist/_internal/components/form/Textarea/TextareaRichEditor.js +12 -11
  131. package/dist/_internal/components/form/Textarea/TextareaRichEditor.js.map +1 -1
  132. package/dist/_internal/components/form/Toggle/Toggle.js +2 -2
  133. package/dist/_internal/components/form/Toggle/Toggle.styles.js +1 -1
  134. package/dist/_internal/components/form/ToggleGroup/ToggleGroup.js +1 -1
  135. package/dist/_internal/components/form/UploadButton/UploadButton.js +2 -2
  136. package/dist/_internal/components/form/UploadButton/UploadButton.parts.js +1 -1
  137. package/dist/_internal/components/form/index.js +56 -56
  138. package/dist/_internal/components/form/total-form/Fields/CategoryField.js +11 -11
  139. package/dist/_internal/components/form/total-form/Fields/CepField.js +5 -5
  140. package/dist/_internal/components/form/total-form/Fields/SelectField.js +3 -3
  141. package/dist/_internal/components/form/total-form/Fields/TextField.js +4 -4
  142. package/dist/_internal/components/form/total-form/Fields/ToggleField.js +3 -3
  143. package/dist/_internal/components/form/total-form/Fields/index.js +21 -21
  144. package/dist/_internal/components/form/total-form/FormContainer.js +2 -2
  145. package/dist/_internal/components/form/total-form/FormErrorSnackbar.js +3 -2
  146. package/dist/_internal/components/form/total-form/SubmitButton.js +3 -3
  147. package/dist/_internal/components/index.js +142 -143
  148. package/dist/_internal/components/layout/Accordion/Accordion.js +3 -2
  149. package/dist/_internal/components/layout/Accordion/Accordion.styles.js +2 -1
  150. package/dist/_internal/components/layout/Box/Box.js +1 -1
  151. package/dist/_internal/components/layout/Card/Card.js +3 -3
  152. package/dist/_internal/components/layout/Card/Card.styles.js +2 -2
  153. package/dist/_internal/components/layout/Collapsible/Collapsible.helpers.js +2 -1
  154. package/dist/_internal/components/layout/Collapsible/Collapsible.js +3 -2
  155. package/dist/_internal/components/layout/ContentToolbar/ColumnsMenu.js +1 -1
  156. package/dist/_internal/components/layout/ContentToolbar/ContentToolbar.js +1 -1
  157. package/dist/_internal/components/layout/ContentToolbar/FilterTrigger.js +1 -1
  158. package/dist/_internal/components/layout/ContentToolbar/MultiSelectDropdown.js +1 -1
  159. package/dist/_internal/components/layout/ContentToolbar/SavedViewsMenu.js +1 -1
  160. package/dist/_internal/components/layout/ContentToolbar/SortByDropdown.js +1 -1
  161. package/dist/_internal/components/layout/ContentToolbar/ViewSelector.js +1 -1
  162. package/dist/_internal/components/layout/Dashboard/Dashboard.js +3 -3
  163. package/dist/_internal/components/layout/Dashboard/DashboardParts.js +2 -2
  164. package/dist/_internal/components/layout/Drawer/Drawer.js +2 -1
  165. package/dist/_internal/components/layout/ScrollArea/ScrollArea.js +5 -4
  166. package/dist/_internal/components/layout/ScrollArea/ScrollArea.styles.js +6 -3
  167. package/dist/_internal/components/layout/ScrollArea/ScrollAreaContent.js +2 -1
  168. package/dist/_internal/components/layout/ScrollArea/ScrollViewport.js +3 -2
  169. package/dist/_internal/components/layout/Separator/Separator.js +4 -2
  170. package/dist/_internal/components/layout/Separator/Separator.styles.js +3 -1
  171. package/dist/_internal/components/layout/SettingsLayout/SettingsLayout.items.js +3 -3
  172. package/dist/_internal/components/layout/SettingsLayout/SettingsLayout.js +8 -8
  173. package/dist/_internal/components/layout/SettingsLayout/SettingsLayout.rail.js +4 -4
  174. package/dist/_internal/components/layout/SettingsLayout/SettingsLayout.styles.js +6 -5
  175. package/dist/_internal/components/layout/SettingsLayout/SettingsPanel.js +5 -5
  176. package/dist/_internal/components/layout/SettingsLayout/SettingsSectionChips.js +3 -3
  177. package/dist/_internal/components/layout/SettingsLayout/SettingsSectionHeader.js +2 -2
  178. package/dist/_internal/components/layout/SettingsLayout/SettingsStatusMarker.js +2 -2
  179. package/dist/_internal/components/layout/Sidebar/Sidebar.js +2 -1
  180. package/dist/_internal/components/layout/Skeleton/Skeleton.js +3 -2
  181. package/dist/_internal/components/layout/Skeleton/Skeleton.styles.js +6 -3
  182. package/dist/_internal/components/layout/Spacer/Spacer.js +2 -1
  183. package/dist/_internal/components/layout/Stack/Stack.js +2 -2
  184. package/dist/_internal/components/layout/TableFilter/TableFilter.js +1 -1
  185. package/dist/_internal/components/layout/index.js +28 -29
  186. package/dist/_internal/components/navigation/AppHeader/AppHeader.brand.js +1 -1
  187. package/dist/_internal/components/navigation/AppHeader/AppHeader.details.js +5 -6
  188. package/dist/_internal/components/navigation/AppHeader/AppHeader.identity.js +2 -2
  189. package/dist/_internal/components/navigation/AppHeader/AppHeader.js +1 -1
  190. package/dist/_internal/components/navigation/Breadcrumbs/BreadcrumbEntry.js +2 -2
  191. package/dist/_internal/components/navigation/Breadcrumbs/Breadcrumbs.js +3 -3
  192. package/dist/_internal/components/navigation/Breadcrumbs/Breadcrumbs.styles.js +1 -1
  193. package/dist/_internal/components/navigation/CommandPalette/CommandPalette.js +3 -3
  194. package/dist/_internal/components/navigation/CommandPalette/CommandPaletteResults.js +2 -2
  195. package/dist/_internal/components/navigation/CommandPalette/ShortcutChip.js +1 -1
  196. package/dist/_internal/components/navigation/ContextMenu/ContextMenu.js +1 -1
  197. package/dist/_internal/components/navigation/DropdownMenu/DropdownMenu.js +1 -1
  198. package/dist/_internal/components/navigation/NavigationMenu/NavigationMegaSection.js +4 -4
  199. package/dist/_internal/components/navigation/NavigationMenu/NavigationMenu.js +6 -6
  200. package/dist/_internal/components/navigation/NavigationMenu/NavigationMenu.shell.js +2 -2
  201. package/dist/_internal/components/navigation/NavigationMenu/NavigationMenu.styles.js +1 -1
  202. package/dist/_internal/components/navigation/NavigationMenu/NavigationMenuItem.js +2 -2
  203. package/dist/_internal/components/navigation/NavigationMenu/NavigationStandardBody.js +4 -4
  204. package/dist/_internal/components/navigation/Pagination/Pagination.js +3 -3
  205. package/dist/_internal/components/navigation/Pagination/Pagination.styles.js +1 -1
  206. package/dist/_internal/components/navigation/Pagination/PaginationParts.js +2 -1
  207. package/dist/_internal/components/navigation/Tabs/Tabs.js +10 -3
  208. package/dist/_internal/components/navigation/Tabs/Tabs.styles.js +8 -1
  209. package/dist/_internal/components/navigation/Tabs/TabsPanel.js +2 -1
  210. package/dist/_internal/components/navigation/index.js +28 -29
  211. package/dist/_internal/components/typography/Blockquote/Blockquote.js +1 -1
  212. package/dist/_internal/components/typography/Code/Code.js +1 -1
  213. package/dist/_internal/components/typography/Text/Text.js +1 -1
  214. package/dist/_internal/components/typography/index.js +3 -3
  215. package/dist/_internal/components/utility/AnimatedIcon/AnimatedIcon.animations.js +2 -1
  216. package/dist/_internal/components/utility/AnimatedIcon/AnimatedIcon.js +3 -3
  217. package/dist/_internal/components/utility/AnimatedIcon/AnimatedIcon.styles.js +2 -2
  218. package/dist/_internal/components/utility/AspectRatio/AspectRatio.js +2 -1
  219. package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.js +3 -3
  220. package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.parts.js +1 -1
  221. package/dist/_internal/components/utility/WorkflowStep/WorkflowStepRow.js +2 -2
  222. package/dist/_internal/components/utility/index.js +7 -7
  223. package/dist/_internal/social-login-button/social-login-button.js +8 -9
  224. package/dist/_internal/tokens/shadow.js +19 -8
  225. package/dist/_internal/tokens/shadow.js.map +1 -1
  226. package/dist/_internal/user-avatar/user-avatar.js +6 -7
  227. package/dist/{chunk-BLJDCMFU.js → chunk-2ARVNCVU.js} +7 -7
  228. package/dist/chunk-2ARVNCVU.js.map +1 -0
  229. package/dist/{chunk-KH25WUSX.js → chunk-2EAAWOZ2.js} +4 -4
  230. package/dist/chunk-2EAAWOZ2.js.map +1 -0
  231. package/dist/{chunk-PNLM35GU.js → chunk-2JNHWKQK.js} +5 -5
  232. package/dist/{chunk-PWF32ILG.js → chunk-2OYFTSG4.js} +4 -4
  233. package/dist/{chunk-CRZXSZ5O.js → chunk-2S752BIJ.js} +2 -2
  234. package/dist/{chunk-IYTBTK2M.js → chunk-2WU52FLP.js} +19 -30
  235. package/dist/chunk-2WU52FLP.js.map +1 -0
  236. package/dist/{chunk-IWOVENC3.js → chunk-2XX45PC5.js} +2 -2
  237. package/dist/{chunk-RSQMPCCR.js → chunk-34643ATX.js} +10 -4
  238. package/dist/chunk-34643ATX.js.map +1 -0
  239. package/dist/{chunk-ZW5K4XCQ.js → chunk-34BZXJGT.js} +6 -6
  240. package/dist/{chunk-6GRZ77IS.js → chunk-3AIRFAI3.js} +13 -12
  241. package/dist/chunk-3AIRFAI3.js.map +1 -0
  242. package/dist/{chunk-KCAW6HRO.js → chunk-3AOQBR7N.js} +2 -2
  243. package/dist/{chunk-I62ALI7F.js → chunk-3FNXOCBD.js} +25 -13
  244. package/dist/chunk-3FNXOCBD.js.map +1 -0
  245. package/dist/{chunk-JFBEZXNL.js → chunk-3KREF4ZF.js} +3 -3
  246. package/dist/{chunk-EL7CMURV.js → chunk-3LSIFHQK.js} +3 -3
  247. package/dist/chunk-3LSIFHQK.js.map +1 -0
  248. package/dist/{chunk-MP4VSWHK.js → chunk-3NJMNMWB.js} +12 -2
  249. package/dist/chunk-3NJMNMWB.js.map +1 -0
  250. package/dist/{chunk-N52O2OKZ.js → chunk-3NNO6YIH.js} +8 -3
  251. package/dist/chunk-3NNO6YIH.js.map +1 -0
  252. package/dist/{chunk-SQYC57ZN.js → chunk-3RMDIO4G.js} +4 -4
  253. package/dist/{chunk-MJ3BVWPZ.js → chunk-43G3WMYN.js} +12 -7
  254. package/dist/chunk-43G3WMYN.js.map +1 -0
  255. package/dist/{chunk-E7MSDXED.js → chunk-43H66TVT.js} +12 -5
  256. package/dist/chunk-43H66TVT.js.map +1 -0
  257. package/dist/{chunk-IL7JZKXY.js → chunk-442FSG7G.js} +3 -3
  258. package/dist/{chunk-GVLZZCSX.js → chunk-4B5XUQQS.js} +3 -3
  259. package/dist/{chunk-DYVAOEW4.js → chunk-4D4LLSQC.js} +6 -5
  260. package/dist/chunk-4D4LLSQC.js.map +1 -0
  261. package/dist/{chunk-NEGCJNGJ.js → chunk-4G47KBTP.js} +9 -9
  262. package/dist/chunk-4G47KBTP.js.map +1 -0
  263. package/dist/{chunk-MVXFMIVZ.js → chunk-4GB46HLK.js} +8 -4
  264. package/dist/chunk-4GB46HLK.js.map +1 -0
  265. package/dist/{chunk-SN2YMCTL.js → chunk-4GWHYLEB.js} +3 -3
  266. package/dist/{chunk-J4NXTSJY.js → chunk-4JFL62K3.js} +4 -4
  267. package/dist/chunk-4JFL62K3.js.map +1 -0
  268. package/dist/{chunk-XLYFOBBT.js → chunk-4PRZLII7.js} +19 -16
  269. package/dist/chunk-4PRZLII7.js.map +1 -0
  270. package/dist/{chunk-AMTFP7QA.js → chunk-4RDJMIWL.js} +16 -13
  271. package/dist/chunk-4RDJMIWL.js.map +1 -0
  272. package/dist/{chunk-PYIASGI7.js → chunk-4RWPGWJW.js} +39 -39
  273. package/dist/chunk-4RWPGWJW.js.map +1 -0
  274. package/dist/chunk-4T6UIYJB.js +77 -0
  275. package/dist/chunk-4T6UIYJB.js.map +1 -0
  276. package/dist/{chunk-4OEKIFBC.js → chunk-4VMFS3VJ.js} +6 -3
  277. package/dist/chunk-4VMFS3VJ.js.map +1 -0
  278. package/dist/{chunk-HBICO6AX.js → chunk-4WNFOBTH.js} +26 -24
  279. package/dist/chunk-4WNFOBTH.js.map +1 -0
  280. package/dist/{chunk-6CTPDNNX.js → chunk-52G2KRL4.js} +14 -14
  281. package/dist/chunk-52G2KRL4.js.map +1 -0
  282. package/dist/{chunk-ZZM3DOEK.js → chunk-5HDYTTE7.js} +2 -2
  283. package/dist/{chunk-E7T3A4IR.js → chunk-5JCGBCFJ.js} +2 -2
  284. package/dist/{chunk-GEXM6DNR.js → chunk-5KGABAQB.js} +2 -2
  285. package/dist/{chunk-FC7NQ6XM.js → chunk-5MW7OYBM.js} +2 -2
  286. package/dist/{chunk-5TJRJSJY.js → chunk-5OBXEMQO.js} +3 -3
  287. package/dist/{chunk-MK4CH4VT.js → chunk-5OUEKIWQ.js} +14 -12
  288. package/dist/chunk-5OUEKIWQ.js.map +1 -0
  289. package/dist/{chunk-GW64UQXI.js → chunk-5QAJ3Y5F.js} +3 -3
  290. package/dist/{chunk-GW64UQXI.js.map → chunk-5QAJ3Y5F.js.map} +1 -1
  291. package/dist/{chunk-3A22SBIU.js → chunk-67O4GPJJ.js} +8 -4
  292. package/dist/chunk-67O4GPJJ.js.map +1 -0
  293. package/dist/{chunk-D5X4FRYX.js → chunk-6JNQLW5L.js} +2 -2
  294. package/dist/{chunk-CPTY6UZ6.js → chunk-6KEXHOIF.js} +5 -4
  295. package/dist/chunk-6KEXHOIF.js.map +1 -0
  296. package/dist/{chunk-NSJVQ5YJ.js → chunk-6KKQHJE7.js} +9 -4
  297. package/dist/chunk-6KKQHJE7.js.map +1 -0
  298. package/dist/{chunk-D2HKCPEH.js → chunk-6LOGBWLG.js} +9 -5
  299. package/dist/chunk-6LOGBWLG.js.map +1 -0
  300. package/dist/{chunk-RKI3MRKX.js → chunk-6N4AA2Y7.js} +3 -3
  301. package/dist/{chunk-EFHIMCJN.js → chunk-6P2OFMBX.js} +11 -9
  302. package/dist/chunk-6P2OFMBX.js.map +1 -0
  303. package/dist/{chunk-TOXTJ7MU.js → chunk-6RLCBNDV.js} +8 -5
  304. package/dist/chunk-6RLCBNDV.js.map +1 -0
  305. package/dist/{chunk-GUW5BUK7.js → chunk-6WBKOM5K.js} +15 -7
  306. package/dist/chunk-6WBKOM5K.js.map +1 -0
  307. package/dist/{chunk-K7WSPGI7.js → chunk-6WLHEZXI.js} +7 -7
  308. package/dist/chunk-6WLHEZXI.js.map +1 -0
  309. package/dist/{chunk-7EIOXZWL.js → chunk-74P3YX7R.js} +4 -4
  310. package/dist/{chunk-VYSFKR32.js → chunk-75CGLX6Q.js} +3 -3
  311. package/dist/{chunk-VYSFKR32.js.map → chunk-75CGLX6Q.js.map} +1 -1
  312. package/dist/{chunk-LVEG6XQL.js → chunk-76X6JRVI.js} +19 -33
  313. package/dist/chunk-76X6JRVI.js.map +1 -0
  314. package/dist/{chunk-2NLYGZP3.js → chunk-77JL5XVD.js} +13 -9
  315. package/dist/chunk-77JL5XVD.js.map +1 -0
  316. package/dist/{chunk-A6AKFPIQ.js → chunk-7EH4D6FU.js} +2 -2
  317. package/dist/{chunk-6SKXV236.js → chunk-7EM4THID.js} +9 -8
  318. package/dist/chunk-7EM4THID.js.map +1 -0
  319. package/dist/{chunk-7ZG7T2YN.js → chunk-7GHYCQCJ.js} +3 -3
  320. package/dist/{chunk-U4H6MGVE.js → chunk-A5UYPUS2.js} +7 -5
  321. package/dist/chunk-A5UYPUS2.js.map +1 -0
  322. package/dist/{chunk-2PBT2HQH.js → chunk-AUSUCZYR.js} +25 -24
  323. package/dist/chunk-AUSUCZYR.js.map +1 -0
  324. package/dist/{chunk-T3WHW7ZC.js → chunk-BAZXVFLR.js} +10 -6
  325. package/dist/chunk-BAZXVFLR.js.map +1 -0
  326. package/dist/{chunk-7F7TTOYN.js → chunk-BEGTLELZ.js} +7 -6
  327. package/dist/chunk-BEGTLELZ.js.map +1 -0
  328. package/dist/{chunk-4WQ3YXQL.js → chunk-BFMDA6UO.js} +4 -4
  329. package/dist/{chunk-RQ5HZDBV.js → chunk-BN742L2M.js} +14 -8
  330. package/dist/chunk-BN742L2M.js.map +1 -0
  331. package/dist/{chunk-R75DZ3AK.js → chunk-BVLMKSHX.js} +2 -2
  332. package/dist/{chunk-PMP6WJJS.js → chunk-BWMHGENX.js} +20 -19
  333. package/dist/chunk-BWMHGENX.js.map +1 -0
  334. package/dist/{chunk-7EQCZO56.js → chunk-C3LZ3OGJ.js} +11 -11
  335. package/dist/chunk-C3LZ3OGJ.js.map +1 -0
  336. package/dist/{chunk-ST4YYVUK.js → chunk-C5RQBTRZ.js} +7 -3
  337. package/dist/chunk-C5RQBTRZ.js.map +1 -0
  338. package/dist/{chunk-QAP3FW33.js → chunk-C66RGVAS.js} +30 -20
  339. package/dist/chunk-C66RGVAS.js.map +1 -0
  340. package/dist/{chunk-B7BNNSM2.js → chunk-CNQUCNEA.js} +7 -7
  341. package/dist/{chunk-GGWICBJD.js → chunk-CPAJYJUD.js} +2 -2
  342. package/dist/{chunk-DMWSXWCZ.js → chunk-CZIX4BW2.js} +4 -4
  343. package/dist/{chunk-CAHWCSRE.js → chunk-D46SLMCX.js} +22 -8
  344. package/dist/chunk-D46SLMCX.js.map +1 -0
  345. package/dist/{chunk-2HVNPWFV.js → chunk-D6KL74KI.js} +4 -10
  346. package/dist/chunk-D6KL74KI.js.map +1 -0
  347. package/dist/{chunk-2OIP3T5O.js → chunk-DBFRCTI5.js} +4 -4
  348. package/dist/{chunk-2OIP3T5O.js.map → chunk-DBFRCTI5.js.map} +1 -1
  349. package/dist/{chunk-TTAP5XFX.js → chunk-DJYL2LC6.js} +8 -3
  350. package/dist/chunk-DJYL2LC6.js.map +1 -0
  351. package/dist/{chunk-SYVNWXVW.js → chunk-DUBTI4DI.js} +4 -4
  352. package/dist/{chunk-TQ2557I5.js → chunk-DUNG7D4B.js} +23 -25
  353. package/dist/chunk-DUNG7D4B.js.map +1 -0
  354. package/dist/{chunk-RMCNEKBZ.js → chunk-DW6F7354.js} +2 -2
  355. package/dist/{chunk-Q4BQYYPU.js → chunk-E2QIKJX2.js} +11 -5
  356. package/dist/chunk-E2QIKJX2.js.map +1 -0
  357. package/dist/{chunk-LWRI6HGT.js → chunk-ECNJGROX.js} +21 -19
  358. package/dist/chunk-ECNJGROX.js.map +1 -0
  359. package/dist/{chunk-XJUEHG72.js → chunk-EERUSI52.js} +2 -2
  360. package/dist/{chunk-NPP44TQG.js → chunk-EYZ6QBTV.js} +2 -2
  361. package/dist/{chunk-NPP44TQG.js.map → chunk-EYZ6QBTV.js.map} +1 -1
  362. package/dist/{chunk-FXNYV5Z6.js → chunk-F6D6HXZU.js} +3 -3
  363. package/dist/{chunk-7DN4UXJ3.js → chunk-FERUQ7OB.js} +14 -14
  364. package/dist/chunk-FERUQ7OB.js.map +1 -0
  365. package/dist/{chunk-UL7L6MFT.js → chunk-FFCJ7NR2.js} +4 -4
  366. package/dist/{chunk-GXCOXJS3.js → chunk-FNG33MKA.js} +3 -3
  367. package/dist/{chunk-YH37X6JT.js → chunk-FNRPQE2D.js} +26 -25
  368. package/dist/chunk-FNRPQE2D.js.map +1 -0
  369. package/dist/{chunk-U342T7ZR.js → chunk-FOCU4QT5.js} +13 -10
  370. package/dist/chunk-FOCU4QT5.js.map +1 -0
  371. package/dist/{chunk-FYTLKHEN.js → chunk-FYKFQPVT.js} +19 -18
  372. package/dist/chunk-FYKFQPVT.js.map +1 -0
  373. package/dist/{chunk-5SJWDABY.js → chunk-G3XLFQ2Z.js} +44 -43
  374. package/dist/chunk-G3XLFQ2Z.js.map +1 -0
  375. package/dist/{chunk-TVL5V2JK.js → chunk-GGMB6LJH.js} +7 -3
  376. package/dist/chunk-GGMB6LJH.js.map +1 -0
  377. package/dist/{chunk-4CTLEUK3.js → chunk-GLFTIGOF.js} +4 -4
  378. package/dist/{chunk-7UZ2TFIK.js → chunk-GNCSDUGY.js} +12 -4
  379. package/dist/chunk-GNCSDUGY.js.map +1 -0
  380. package/dist/{chunk-6SS5C74Q.js → chunk-GS3RP2QE.js} +2 -2
  381. package/dist/{chunk-L4UP5VYS.js → chunk-GVH7C2PT.js} +2 -2
  382. package/dist/{chunk-MBSYD3ZU.js → chunk-GWFAINQ7.js} +3 -3
  383. package/dist/chunk-GWFAINQ7.js.map +1 -0
  384. package/dist/{chunk-B2VXP2B2.js → chunk-GZT7MLLO.js} +2 -2
  385. package/dist/{chunk-AK2HOD6B.js → chunk-H5BEWPEY.js} +2 -2
  386. package/dist/{chunk-QIKPGMMO.js → chunk-H67EL3CG.js} +6 -6
  387. package/dist/{chunk-3D6HXKZM.js → chunk-HDJQDMHB.js} +18 -13
  388. package/dist/chunk-HDJQDMHB.js.map +1 -0
  389. package/dist/{chunk-WNUZK7NS.js → chunk-HVXIOIM5.js} +10 -8
  390. package/dist/chunk-HVXIOIM5.js.map +1 -0
  391. package/dist/{chunk-JJSZP3TW.js → chunk-I4QA2F4L.js} +6 -6
  392. package/dist/{chunk-L7SFH3ED.js → chunk-I7GSRTGQ.js} +37 -28
  393. package/dist/chunk-I7GSRTGQ.js.map +1 -0
  394. package/dist/{chunk-Q4CAZ2TP.js → chunk-IG23YZZR.js} +6 -5
  395. package/dist/chunk-IG23YZZR.js.map +1 -0
  396. package/dist/{chunk-5W4BLTDI.js → chunk-IWFENXST.js} +7 -6
  397. package/dist/chunk-IWFENXST.js.map +1 -0
  398. package/dist/{chunk-HXEBKOSM.js → chunk-J5UZB6Y6.js} +2 -2
  399. package/dist/chunk-J5UZB6Y6.js.map +1 -0
  400. package/dist/{chunk-BXAL7OIS.js → chunk-JC22FNFA.js} +89 -88
  401. package/dist/chunk-JC22FNFA.js.map +1 -0
  402. package/dist/{chunk-AJ5SDHX5.js → chunk-JCL7WK4G.js} +2 -2
  403. package/dist/{chunk-ZMC3N23A.js → chunk-JSD5TFDK.js} +6 -6
  404. package/dist/{chunk-NE6XUN5Z.js → chunk-JU4MSYYH.js} +2 -2
  405. package/dist/{chunk-5CKDRLRN.js → chunk-JXECOCNA.js} +35 -19
  406. package/dist/chunk-JXECOCNA.js.map +1 -0
  407. package/dist/{chunk-WUTHROII.js → chunk-JYWF76Z5.js} +11 -5
  408. package/dist/chunk-JYWF76Z5.js.map +1 -0
  409. package/dist/{chunk-B76QCDCE.js → chunk-K4L42FF6.js} +6 -3
  410. package/dist/chunk-K4L42FF6.js.map +1 -0
  411. package/dist/{chunk-X2AKLDPW.js → chunk-KE473LK6.js} +3 -3
  412. package/dist/{chunk-TBF2CPJW.js → chunk-KIHGTL2D.js} +21 -11
  413. package/dist/chunk-KIHGTL2D.js.map +1 -0
  414. package/dist/{chunk-3T5Z5HXF.js → chunk-KM3Y5TCG.js} +40 -36
  415. package/dist/chunk-KM3Y5TCG.js.map +1 -0
  416. package/dist/{chunk-OWA7GPWR.js → chunk-KN5J3NEZ.js} +6 -5
  417. package/dist/chunk-KN5J3NEZ.js.map +1 -0
  418. package/dist/{chunk-RWTFZ7J5.js → chunk-L4G5BZFF.js} +22 -13
  419. package/dist/chunk-L4G5BZFF.js.map +1 -0
  420. package/dist/{chunk-HB7ISSLK.js → chunk-L5RQIQIP.js} +26 -22
  421. package/dist/chunk-L5RQIQIP.js.map +1 -0
  422. package/dist/{chunk-5UTAEHSB.js → chunk-L7NQCLFU.js} +3 -3
  423. package/dist/{chunk-4GYEIWQP.js → chunk-LNHYBA4B.js} +11 -10
  424. package/dist/chunk-LNHYBA4B.js.map +1 -0
  425. package/dist/{chunk-QY4XNTNG.js → chunk-LP3JCXER.js} +4 -4
  426. package/dist/chunk-LP3JCXER.js.map +1 -0
  427. package/dist/{chunk-WVC3BG6J.js → chunk-LXT3X33C.js} +11 -6
  428. package/dist/chunk-LXT3X33C.js.map +1 -0
  429. package/dist/{chunk-RZ2C5CAW.js → chunk-M2JTIH5M.js} +4 -4
  430. package/dist/{chunk-OATHOXIU.js → chunk-MC4KYGSX.js} +8 -8
  431. package/dist/chunk-MC4KYGSX.js.map +1 -0
  432. package/dist/{chunk-6KL2CJBO.js → chunk-MNHIK2OR.js} +2 -2
  433. package/dist/{chunk-343OLRFT.js → chunk-MR2HKBHS.js} +7 -7
  434. package/dist/{chunk-YVUD3MY4.js → chunk-N23GCN5U.js} +7 -4
  435. package/dist/chunk-N23GCN5U.js.map +1 -0
  436. package/dist/{chunk-CWDV64TD.js → chunk-N5GVW6RO.js} +5 -4
  437. package/dist/chunk-N5GVW6RO.js.map +1 -0
  438. package/dist/{chunk-JFEEV3XI.js → chunk-NB3FGWU4.js} +2 -2
  439. package/dist/{chunk-2TJOCI54.js → chunk-NCEQWEXT.js} +3 -3
  440. package/dist/{chunk-2TJOCI54.js.map → chunk-NCEQWEXT.js.map} +1 -1
  441. package/dist/{chunk-IVIHRZEY.js → chunk-NDMPXMW2.js} +12 -8
  442. package/dist/chunk-NDMPXMW2.js.map +1 -0
  443. package/dist/{chunk-5IXHJXJX.js → chunk-NIF4IXQU.js} +5 -2
  444. package/dist/chunk-NIF4IXQU.js.map +1 -0
  445. package/dist/{chunk-UUUMNJPP.js → chunk-NLYNRE7L.js} +10 -10
  446. package/dist/chunk-NLYNRE7L.js.map +1 -0
  447. package/dist/{chunk-KLWW67WP.js → chunk-NOKN4HRK.js} +12 -11
  448. package/dist/chunk-NOKN4HRK.js.map +1 -0
  449. package/dist/{chunk-LIG7TKIB.js → chunk-NYFNF7I5.js} +11 -6
  450. package/dist/chunk-NYFNF7I5.js.map +1 -0
  451. package/dist/{chunk-KK57AHWS.js → chunk-OAEYCKBN.js} +2 -2
  452. package/dist/{chunk-JGRE56GQ.js → chunk-OB56SZGL.js} +2 -2
  453. package/dist/{chunk-VRDNUY4H.js → chunk-OHC3F7GJ.js} +4 -4
  454. package/dist/chunk-OHC3F7GJ.js.map +1 -0
  455. package/dist/{chunk-E4TNDTWV.js → chunk-OL2BEJZR.js} +2 -2
  456. package/dist/{chunk-EFV5QJNM.js → chunk-ORRI6FMN.js} +17 -14
  457. package/dist/chunk-ORRI6FMN.js.map +1 -0
  458. package/dist/{chunk-DZNMS2SH.js → chunk-OS6KPL4D.js} +6 -6
  459. package/dist/{chunk-ZTYUKEN3.js → chunk-OVXSQQDK.js} +12 -7
  460. package/dist/chunk-OVXSQQDK.js.map +1 -0
  461. package/dist/{chunk-ZQL5RXVE.js → chunk-PA3AA55Q.js} +2 -2
  462. package/dist/{chunk-ZQL5RXVE.js.map → chunk-PA3AA55Q.js.map} +1 -1
  463. package/dist/{chunk-UFLTL2RJ.js → chunk-PH36XEB3.js} +2 -2
  464. package/dist/{chunk-4LQZH4PU.js → chunk-PMOEG36E.js} +2 -2
  465. package/dist/{chunk-KJK2Q35C.js → chunk-PPRV4LTM.js} +3 -3
  466. package/dist/{chunk-EXZSHZRS.js → chunk-PWZHCBG3.js} +3 -3
  467. package/dist/{chunk-EFVOT3G5.js → chunk-PZ7PU4AP.js} +2 -2
  468. package/dist/{chunk-YBTC4XNO.js → chunk-QA2ZGCRL.js} +5 -5
  469. package/dist/{chunk-2E2WOBID.js → chunk-QGFBIUOK.js} +5 -5
  470. package/dist/chunk-QGFBIUOK.js.map +1 -0
  471. package/dist/{chunk-7LIXQZBG.js → chunk-QI5CRSOW.js} +3 -3
  472. package/dist/{chunk-HAQMKV5P.js → chunk-QXSW3CNN.js} +15 -9
  473. package/dist/chunk-QXSW3CNN.js.map +1 -0
  474. package/dist/{chunk-LMXWI3DD.js → chunk-QYY37ECA.js} +5 -2
  475. package/dist/chunk-QYY37ECA.js.map +1 -0
  476. package/dist/{chunk-ROT57BP4.js → chunk-R2XVTUVR.js} +2 -2
  477. package/dist/{chunk-V74PXUQN.js → chunk-R6SN73RX.js} +12 -12
  478. package/dist/{chunk-VECWMANF.js → chunk-RDCHT2WN.js} +7 -4
  479. package/dist/chunk-RDCHT2WN.js.map +1 -0
  480. package/dist/{chunk-35ETD7ML.js → chunk-RIEV4VXF.js} +9 -5
  481. package/dist/chunk-RIEV4VXF.js.map +1 -0
  482. package/dist/{chunk-MVKYNDT2.js → chunk-RKROWJVF.js} +11 -9
  483. package/dist/chunk-RKROWJVF.js.map +1 -0
  484. package/dist/{chunk-NYZO3JNB.js → chunk-RXJQA3FQ.js} +2 -3
  485. package/dist/chunk-RXJQA3FQ.js.map +1 -0
  486. package/dist/{chunk-WPA26LXA.js → chunk-RZYSKQTS.js} +3 -3
  487. package/dist/{chunk-2UCLUDEB.js → chunk-SKT2V2OX.js} +4 -4
  488. package/dist/{chunk-EOW2ECB3.js → chunk-SNURSSTN.js} +2 -2
  489. package/dist/{chunk-TU3EGIKB.js → chunk-SSS64KYB.js} +3 -3
  490. package/dist/{chunk-L3B36HA5.js → chunk-SV6JGFHG.js} +10 -6
  491. package/dist/chunk-SV6JGFHG.js.map +1 -0
  492. package/dist/{chunk-CZBND7AY.js → chunk-T7DE44SP.js} +2 -2
  493. package/dist/{chunk-DHBYO7AO.js → chunk-TCV3N44E.js} +2 -2
  494. package/dist/{chunk-E6RYO4QZ.js → chunk-THMT3G3L.js} +21 -15
  495. package/dist/chunk-THMT3G3L.js.map +1 -0
  496. package/dist/{chunk-DB2ZFZVW.js → chunk-TKC6WHGB.js} +2 -2
  497. package/dist/{chunk-3CVTQZQJ.js → chunk-TNYKM4UU.js} +13 -9
  498. package/dist/chunk-TNYKM4UU.js.map +1 -0
  499. package/dist/{chunk-JCBIPBGZ.js → chunk-TU5A2CV7.js} +19 -12
  500. package/dist/chunk-TU5A2CV7.js.map +1 -0
  501. package/dist/{chunk-YESTO24O.js → chunk-TXEN3QJ4.js} +8 -3
  502. package/dist/chunk-TXEN3QJ4.js.map +1 -0
  503. package/dist/{chunk-3VMGE7CU.js → chunk-TZFBJ47T.js} +3 -3
  504. package/dist/chunk-TZFBJ47T.js.map +1 -0
  505. package/dist/{chunk-VFHGILXI.js → chunk-U3DBQXPI.js} +20 -17
  506. package/dist/chunk-U3DBQXPI.js.map +1 -0
  507. package/dist/{chunk-DVGBFT6O.js → chunk-UAVSBSV5.js} +2 -2
  508. package/dist/{chunk-ZAFFKQQU.js → chunk-UEVHI62V.js} +3 -3
  509. package/dist/{chunk-ADHMNIWS.js → chunk-UFJYJHQI.js} +3 -3
  510. package/dist/{chunk-V3LOHY4N.js → chunk-UFNIS7KC.js} +3 -3
  511. package/dist/chunk-UFNIS7KC.js.map +1 -0
  512. package/dist/{chunk-BNEWMFVB.js → chunk-UGGJ3KDT.js} +2 -2
  513. package/dist/{chunk-L4QCIUTJ.js → chunk-UMNXSQ7I.js} +3 -3
  514. package/dist/{chunk-L4QCIUTJ.js.map → chunk-UMNXSQ7I.js.map} +1 -1
  515. package/dist/{chunk-2CTTASUD.js → chunk-V5EWCJBT.js} +7 -4
  516. package/dist/chunk-V5EWCJBT.js.map +1 -0
  517. package/dist/{chunk-236V2GRH.js → chunk-VCBV5JM7.js} +49 -41
  518. package/dist/chunk-VCBV5JM7.js.map +1 -0
  519. package/dist/{chunk-KREWQAEV.js → chunk-VIRYHNEM.js} +2 -2
  520. package/dist/{chunk-PT2XADGH.js → chunk-VPRNKJHP.js} +9 -6
  521. package/dist/chunk-VPRNKJHP.js.map +1 -0
  522. package/dist/{chunk-JXUWWPZR.js → chunk-VQYR64QB.js} +14 -8
  523. package/dist/chunk-VQYR64QB.js.map +1 -0
  524. package/dist/{chunk-72DKEBJM.js → chunk-VRPREI27.js} +3 -3
  525. package/dist/chunk-VRPREI27.js.map +1 -0
  526. package/dist/{chunk-IBGX6H4J.js → chunk-VURQZBFH.js} +8 -4
  527. package/dist/chunk-VURQZBFH.js.map +1 -0
  528. package/dist/{chunk-7BZTZ2WG.js → chunk-VY2BMSHN.js} +8 -7
  529. package/dist/chunk-VY2BMSHN.js.map +1 -0
  530. package/dist/{chunk-SX3MEC3Q.js → chunk-VZIB5W5L.js} +2 -2
  531. package/dist/{chunk-HC5ZSCRG.js → chunk-W5TI46QN.js} +18 -14
  532. package/dist/chunk-W5TI46QN.js.map +1 -0
  533. package/dist/{chunk-N6CSXHFJ.js → chunk-WN5PNP6F.js} +2 -2
  534. package/dist/{chunk-SE6ERQY5.js → chunk-WVZBYTIK.js} +6 -2
  535. package/dist/chunk-WVZBYTIK.js.map +1 -0
  536. package/dist/{chunk-CSSCGM27.js → chunk-X3OWMTLO.js} +1 -2
  537. package/dist/chunk-X3OWMTLO.js.map +1 -0
  538. package/dist/{chunk-6QLPSMTA.js → chunk-XEWMY4ZM.js} +52 -47
  539. package/dist/chunk-XEWMY4ZM.js.map +1 -0
  540. package/dist/{chunk-FZ4YTEP2.js → chunk-XIG3DXXX.js} +3 -3
  541. package/dist/{chunk-CHFHILTM.js → chunk-XJJXBUPN.js} +2 -2
  542. package/dist/{chunk-CMK4DJDR.js → chunk-XLTHZI5W.js} +28 -20
  543. package/dist/chunk-XLTHZI5W.js.map +1 -0
  544. package/dist/{chunk-GHTBUJ6E.js → chunk-XRUW7DMH.js} +2 -2
  545. package/dist/{chunk-CSTAQX2B.js → chunk-XWZJLXJT.js} +7 -6
  546. package/dist/chunk-XWZJLXJT.js.map +1 -0
  547. package/dist/{chunk-MBC55H6M.js → chunk-Y5UTYBZW.js} +12 -6
  548. package/dist/chunk-Y5UTYBZW.js.map +1 -0
  549. package/dist/{chunk-DY4BP5WA.js → chunk-Y7F5JBAT.js} +5 -5
  550. package/dist/{chunk-CJHP6E34.js → chunk-YAFBUYVW.js} +9 -6
  551. package/dist/chunk-YAFBUYVW.js.map +1 -0
  552. package/dist/{chunk-WTOYEWW6.js → chunk-YBH4SPMM.js} +4 -3
  553. package/dist/chunk-YBH4SPMM.js.map +1 -0
  554. package/dist/{chunk-5QWQR7XT.js → chunk-YHGOPZXW.js} +11 -8
  555. package/dist/chunk-YHGOPZXW.js.map +1 -0
  556. package/dist/{chunk-6DN4ZULV.js → chunk-YOKUDQIJ.js} +1 -2
  557. package/dist/chunk-YOKUDQIJ.js.map +1 -0
  558. package/dist/{chunk-6BDYC4RA.js → chunk-YRSR5LVZ.js} +3 -3
  559. package/dist/{chunk-57JY4OI2.js → chunk-YUXDVW62.js} +3 -3
  560. package/dist/chunk-YUXDVW62.js.map +1 -0
  561. package/dist/{chunk-GE2EKMDT.js → chunk-YZ2DMP23.js} +4 -4
  562. package/dist/{chunk-GE2EKMDT.js.map → chunk-YZ2DMP23.js.map} +1 -1
  563. package/dist/{chunk-RNEYZTE4.js → chunk-Z6MCTGIK.js} +2 -2
  564. package/dist/{chunk-RNEYZTE4.js.map → chunk-Z6MCTGIK.js.map} +1 -1
  565. package/dist/{chunk-65CEXQ4L.js → chunk-Z6WSW6B4.js} +11 -7
  566. package/dist/chunk-Z6WSW6B4.js.map +1 -0
  567. package/dist/{chunk-TQBRWZA4.js → chunk-ZAY6OA6F.js} +2 -2
  568. package/dist/{chunk-XWWFBH2G.js → chunk-ZXSWXE6U.js} +8 -5
  569. package/dist/chunk-ZXSWXE6U.js.map +1 -0
  570. package/dist/data-display/AsyncStateContainer.js +4 -4
  571. package/dist/data-display/CardKit.js +5 -5
  572. package/dist/data-display/DataViews.js +82 -83
  573. package/dist/data-display/DescriptionItem.js +2 -2
  574. package/dist/data-display/FleetMap.js +6 -6
  575. package/dist/data-display/LazyImage.js +3 -3
  576. package/dist/data-display/LoadingState.js +3 -3
  577. package/dist/data-display/StatCard.js +3 -3
  578. package/dist/feedback/ConfirmAction.js +3 -3
  579. package/dist/feedback/Dialog.js +3 -3
  580. package/dist/feedback/Modal.js +3 -2
  581. package/dist/feedback/NotificationStatusNotice.js +3 -3
  582. package/dist/feedback/Sonner.js +2 -2
  583. package/dist/feedback/StackedModal.js +4 -3
  584. package/dist/feedback/Toast.js +2 -1
  585. package/dist/feedback/TutorialOverlay.js +5 -4
  586. package/dist/form/AddressAutocomplete.js +6 -6
  587. package/dist/form/Autocomplete.js +3 -2
  588. package/dist/form/Button.js +2 -2
  589. package/dist/form/CategorySelect.js +10 -10
  590. package/dist/form/CepField.js +4 -4
  591. package/dist/form/Checkbox.js +1 -1
  592. package/dist/form/CodeEditor.js +2 -2
  593. package/dist/form/Command.js +4 -4
  594. package/dist/form/CreatableSelect.js +2 -2
  595. package/dist/form/DateRangePicker.js +2 -2
  596. package/dist/form/Form.js +1 -1
  597. package/dist/form/HeaderActions.js +1 -1
  598. package/dist/form/Input.js +3 -2
  599. package/dist/form/InputOTP.js +2 -2
  600. package/dist/form/Label.js +2 -2
  601. package/dist/form/Menubar.js +4 -4
  602. package/dist/form/PasswordStrength.js +1 -1
  603. package/dist/form/PhoneInput.js +1 -1
  604. package/dist/form/RadioGroup.js +4 -4
  605. package/dist/form/RichTextEditor.js +2 -2
  606. package/dist/form/SearchPalette.js +2 -2
  607. package/dist/form/Select.js +2 -1
  608. package/dist/form/Slider.js +3 -3
  609. package/dist/form/Switch.js +4 -4
  610. package/dist/form/Textarea.js +2 -2
  611. package/dist/form/Toggle.js +2 -2
  612. package/dist/form/ToggleGroup.js +1 -1
  613. package/dist/form/UploadButton.js +2 -2
  614. package/dist/form/total-form.js +27 -27
  615. package/dist/layout/Accordion.js +3 -2
  616. package/dist/layout/Box.js +1 -1
  617. package/dist/layout/Card.js +3 -3
  618. package/dist/layout/Collapsible.js +3 -2
  619. package/dist/layout/ContentToolbar.js +7 -7
  620. package/dist/layout/Dashboard.js +3 -3
  621. package/dist/layout/Drawer.js +2 -1
  622. package/dist/layout/ScrollArea.js +5 -4
  623. package/dist/layout/Separator.js +4 -2
  624. package/dist/layout/SettingsLayout.js +8 -8
  625. package/dist/layout/Sidebar.js +2 -1
  626. package/dist/layout/Skeleton.js +3 -2
  627. package/dist/layout/Spacer.js +2 -1
  628. package/dist/layout/Stack.js +2 -2
  629. package/dist/layout/TableFilter.js +1 -1
  630. package/dist/navigation/AppHeader.js +8 -9
  631. package/dist/navigation/Breadcrumbs.js +3 -3
  632. package/dist/navigation/CommandPalette.js +3 -3
  633. package/dist/navigation/ContextMenu.js +1 -1
  634. package/dist/navigation/DropdownMenu.js +1 -1
  635. package/dist/navigation/NavigationMenu.js +6 -6
  636. package/dist/navigation/Pagination.js +3 -3
  637. package/dist/navigation/Tabs.js +10 -3
  638. package/dist/social-login-button.js +8 -9
  639. package/dist/types/components/feedback/Dialog/Dialog.styles.d.ts.map +1 -1
  640. package/dist/types/components/feedback/Modal/Modal.d.ts.map +1 -1
  641. package/dist/types/components/feedback/Modal/Modal.styles.d.ts.map +1 -1
  642. package/dist/types/components/feedback/StackedModal/StackedModal.parts.d.ts.map +1 -1
  643. package/dist/types/components/feedback/StackedModal/StackedModal.styles.d.ts.map +1 -1
  644. package/dist/types/components/feedback/Toast/Toast.d.ts.map +1 -1
  645. package/dist/types/components/feedback/TutorialOverlay/TutorialOverlay.d.ts.map +1 -1
  646. package/dist/types/components/feedback/TutorialOverlay/TutorialOverlay.geometry.d.ts +3 -1
  647. package/dist/types/components/feedback/TutorialOverlay/TutorialOverlay.geometry.d.ts.map +1 -1
  648. package/dist/types/components/feedback/TutorialOverlay/TutorialOverlay.hooks.d.ts.map +1 -1
  649. package/dist/types/components/feedback/TutorialOverlay/TutorialStepBody.d.ts.map +1 -1
  650. package/dist/types/components/form/AddressAutocomplete/AddressFallbackField.d.ts.map +1 -1
  651. package/dist/types/components/form/AddressAutocomplete/AddressInputField.d.ts.map +1 -1
  652. package/dist/types/components/form/AddressAutocomplete/AddressSuggestionsPaper.d.ts.map +1 -1
  653. package/dist/types/components/form/AddressAutocomplete/AddressTextField.d.ts.map +1 -1
  654. package/dist/types/components/form/Autocomplete/Autocomplete.parts.d.ts.map +1 -1
  655. package/dist/types/components/form/Button/Button.styles.d.ts +1 -1
  656. package/dist/types/components/form/Button/Button.styles.d.ts.map +1 -1
  657. package/dist/types/components/form/CategorySelect/CategoryPanelFoot.d.ts.map +1 -1
  658. package/dist/types/components/form/CategorySelect/CategoryPanelHead.d.ts.map +1 -1
  659. package/dist/types/components/form/CategorySelect/CategoryPanelList.d.ts.map +1 -1
  660. package/dist/types/components/form/CategorySelect/CategoryPanelSurface.d.ts.map +1 -1
  661. package/dist/types/components/form/CategorySelect/CategoryRows.d.ts.map +1 -1
  662. package/dist/types/components/form/CategorySelect/CategorySelect.styles.d.ts +26 -24
  663. package/dist/types/components/form/CategorySelect/CategorySelect.styles.d.ts.map +1 -1
  664. package/dist/types/components/form/CategorySelect/CategoryTrigger.d.ts.map +1 -1
  665. package/dist/types/components/form/Checkbox/Checkbox.d.ts.map +1 -1
  666. package/dist/types/components/form/CodeEditor/CodeEditor.helpers.d.ts +1 -1
  667. package/dist/types/components/form/CodeEditor/CodeEditor.helpers.d.ts.map +1 -1
  668. package/dist/types/components/form/CodeEditor/CodeEditor.types.d.ts +1 -1
  669. package/dist/types/components/form/CodeEditor/CodeEditor.types.d.ts.map +1 -1
  670. package/dist/types/components/form/Command/Command.d.ts.map +1 -1
  671. package/dist/types/components/form/Command/Command.hooks.d.ts +1 -1
  672. package/dist/types/components/form/Command/Command.hooks.d.ts.map +1 -1
  673. package/dist/types/components/form/Command/Command.parts.d.ts.map +1 -1
  674. package/dist/types/components/form/CreatableSelect/CreatableSelect.d.ts.map +1 -1
  675. package/dist/types/components/form/DateRangePicker/DateRangePicker.d.ts.map +1 -1
  676. package/dist/types/components/form/DateRangePicker/DateRangePickerQuickList.d.ts.map +1 -1
  677. package/dist/types/components/form/Form/Form.d.ts.map +1 -1
  678. package/dist/types/components/form/HeaderActions/HeaderActions.d.ts.map +1 -1
  679. package/dist/types/components/form/Input/Input.d.ts.map +1 -1
  680. package/dist/types/components/form/Input/Input.styles.d.ts.map +1 -1
  681. package/dist/types/components/form/Label/Label.styles.d.ts +2 -2
  682. package/dist/types/components/form/Label/Label.styles.d.ts.map +1 -1
  683. package/dist/types/components/form/Menubar/Menubar.toolbar.d.ts +1 -1
  684. package/dist/types/components/form/Menubar/Menubar.toolbar.d.ts.map +1 -1
  685. package/dist/types/components/form/PasswordStrength/PasswordStrength.d.ts.map +1 -1
  686. package/dist/types/components/form/RadioGroup/RadioGroup.animations.d.ts +3 -2
  687. package/dist/types/components/form/RadioGroup/RadioGroup.animations.d.ts.map +1 -1
  688. package/dist/types/components/form/RadioGroup/RadioGroup.styles.d.ts.map +1 -1
  689. package/dist/types/components/form/RichTextEditor/RichTextEditor.d.ts.map +1 -1
  690. package/dist/types/components/form/RichTextEditor/RichTextEditorToolbar.d.ts.map +1 -1
  691. package/dist/types/components/form/SearchPalette/SearchPalette.parts.d.ts +1 -1
  692. package/dist/types/components/form/SearchPalette/SearchPalette.parts.d.ts.map +1 -1
  693. package/dist/types/components/form/Select/Select.d.ts.map +1 -1
  694. package/dist/types/components/form/Slider/Slider.animations.d.ts +2 -1
  695. package/dist/types/components/form/Slider/Slider.animations.d.ts.map +1 -1
  696. package/dist/types/components/form/Slider/Slider.styles.d.ts.map +1 -1
  697. package/dist/types/components/form/Switch/Switch.animations.d.ts +2 -1
  698. package/dist/types/components/form/Switch/Switch.animations.d.ts.map +1 -1
  699. package/dist/types/components/form/Switch/Switch.styles.d.ts.map +1 -1
  700. package/dist/types/components/form/Textarea/Textarea.d.ts.map +1 -1
  701. package/dist/types/components/form/Textarea/Textarea.styles.d.ts +1 -1
  702. package/dist/types/components/form/Textarea/Textarea.styles.d.ts.map +1 -1
  703. package/dist/types/components/form/Toggle/Toggle.d.ts.map +1 -1
  704. package/dist/types/components/form/Toggle/Toggle.styles.d.ts.map +1 -1
  705. package/dist/types/components/form/ToggleGroup/ToggleGroup.d.ts.map +1 -1
  706. package/dist/types/components/form/UploadButton/UploadButton.parts.d.ts.map +1 -1
  707. package/dist/types/components/layout/Accordion/Accordion.d.ts.map +1 -1
  708. package/dist/types/components/layout/Accordion/Accordion.styles.d.ts.map +1 -1
  709. package/dist/types/components/layout/Box/Box.d.ts +2 -1
  710. package/dist/types/components/layout/Box/Box.d.ts.map +1 -1
  711. package/dist/types/components/layout/Card/Card.styles.d.ts.map +1 -1
  712. package/dist/types/components/layout/Collapsible/Collapsible.d.ts.map +1 -1
  713. package/dist/types/components/layout/Collapsible/Collapsible.helpers.d.ts +1 -1
  714. package/dist/types/components/layout/Collapsible/Collapsible.helpers.d.ts.map +1 -1
  715. package/dist/types/components/layout/Drawer/Drawer.d.ts.map +1 -1
  716. package/dist/types/components/layout/ScrollArea/ScrollArea.d.ts.map +1 -1
  717. package/dist/types/components/layout/ScrollArea/ScrollArea.styles.d.ts +6 -0
  718. package/dist/types/components/layout/ScrollArea/ScrollArea.styles.d.ts.map +1 -1
  719. package/dist/types/components/layout/ScrollArea/ScrollViewport.d.ts.map +1 -1
  720. package/dist/types/components/layout/Separator/Separator.d.ts.map +1 -1
  721. package/dist/types/components/layout/Separator/Separator.styles.d.ts +7 -4
  722. package/dist/types/components/layout/Separator/Separator.styles.d.ts.map +1 -1
  723. package/dist/types/components/layout/SettingsLayout/SettingsLayout.items.d.ts.map +1 -1
  724. package/dist/types/components/layout/SettingsLayout/SettingsLayout.rail.d.ts.map +1 -1
  725. package/dist/types/components/layout/SettingsLayout/SettingsLayout.styles.d.ts +4 -4
  726. package/dist/types/components/layout/SettingsLayout/SettingsLayout.styles.d.ts.map +1 -1
  727. package/dist/types/components/layout/Sidebar/Sidebar.d.ts.map +1 -1
  728. package/dist/types/components/layout/Skeleton/Skeleton.d.ts.map +1 -1
  729. package/dist/types/components/layout/Skeleton/Skeleton.styles.d.ts +8 -1
  730. package/dist/types/components/layout/Skeleton/Skeleton.styles.d.ts.map +1 -1
  731. package/dist/types/components/layout/Spacer/Spacer.d.ts.map +1 -1
  732. package/dist/types/components/layout/TableFilter/TableFilter.d.ts.map +1 -1
  733. package/dist/types/components/navigation/AppHeader/AppHeader.d.ts.map +1 -1
  734. package/dist/types/components/navigation/AppHeader/AppHeader.details.d.ts.map +1 -1
  735. package/dist/types/components/navigation/AppHeader/AppHeader.identity.d.ts.map +1 -1
  736. package/dist/types/components/navigation/Breadcrumbs/Breadcrumbs.styles.d.ts +2 -2
  737. package/dist/types/components/navigation/Breadcrumbs/Breadcrumbs.styles.d.ts.map +1 -1
  738. package/dist/types/components/navigation/DropdownMenu/DropdownMenu.d.ts.map +1 -1
  739. package/dist/types/components/navigation/NavigationMenu/NavigationMegaSection.d.ts.map +1 -1
  740. package/dist/types/components/navigation/NavigationMenu/NavigationMenu.d.ts.map +1 -1
  741. package/dist/types/components/navigation/NavigationMenu/NavigationMenu.shell.d.ts.map +1 -1
  742. package/dist/types/components/navigation/NavigationMenu/NavigationMenu.styles.d.ts +2 -2
  743. package/dist/types/components/navigation/NavigationMenu/NavigationMenu.styles.d.ts.map +1 -1
  744. package/dist/types/components/navigation/NavigationMenu/NavigationStandardBody.d.ts.map +1 -1
  745. package/dist/types/components/navigation/Pagination/Pagination.d.ts.map +1 -1
  746. package/dist/types/components/navigation/Pagination/PaginationParts.d.ts.map +1 -1
  747. package/dist/types/components/navigation/Tabs/Tabs.d.ts.map +1 -1
  748. package/dist/types/components/navigation/Tabs/Tabs.styles.d.ts.map +1 -1
  749. package/dist/types/components/navigation/Tabs/TabsPanel.d.ts.map +1 -1
  750. package/dist/types/components/utility/AnimatedIcon/AnimatedIcon.animations.d.ts +9 -8
  751. package/dist/types/components/utility/AnimatedIcon/AnimatedIcon.animations.d.ts.map +1 -1
  752. package/dist/types/components/utility/AnimatedIcon/AnimatedIcon.styles.d.ts +1 -1
  753. package/dist/types/components/utility/AnimatedIcon/AnimatedIcon.styles.d.ts.map +1 -1
  754. package/dist/types/components/utility/AspectRatio/AspectRatio.d.ts.map +1 -1
  755. package/dist/types/social-login-button/social-login-button.d.ts.map +1 -1
  756. package/dist/typography/Blockquote.js +1 -1
  757. package/dist/typography/Code.js +1 -1
  758. package/dist/typography/Text.js +1 -1
  759. package/dist/user-avatar.js +6 -7
  760. package/dist/utility/AnimatedIcon.js +3 -3
  761. package/dist/utility/AspectRatio.js +2 -1
  762. package/dist/utility/WorkflowStep.js +3 -3
  763. package/package.json +1 -1
  764. package/src/components/feedback/Dialog/Dialog.styles.ts +16 -28
  765. package/src/components/feedback/Modal/Modal.styles.ts +9 -8
  766. package/src/components/feedback/Modal/Modal.tsx +3 -2
  767. package/src/components/feedback/Sonner/Sonner.tsx +4 -4
  768. package/src/components/feedback/Sonner/SonnerToast.tsx +9 -9
  769. package/src/components/feedback/StackedModal/StackedModal.parts.tsx +26 -19
  770. package/src/components/feedback/StackedModal/StackedModal.styles.ts +11 -9
  771. package/src/components/feedback/Toast/Toast.tsx +11 -7
  772. package/src/components/feedback/TutorialOverlay/TutorialOverlay.geometry.ts +2 -3
  773. package/src/components/feedback/TutorialOverlay/TutorialOverlay.hooks.ts +6 -1
  774. package/src/components/feedback/TutorialOverlay/TutorialOverlay.tsx +43 -37
  775. package/src/components/feedback/TutorialOverlay/TutorialStepBody.tsx +3 -2
  776. package/src/components/form/AddressAutocomplete/AddressFallbackField.tsx +5 -1
  777. package/src/components/form/AddressAutocomplete/AddressInputField.tsx +36 -29
  778. package/src/components/form/AddressAutocomplete/AddressSuggestionsPaper.tsx +4 -2
  779. package/src/components/form/AddressAutocomplete/AddressTextField.tsx +4 -3
  780. package/src/components/form/Autocomplete/Autocomplete.parts.tsx +10 -7
  781. package/src/components/form/Button/Button.styles.ts +28 -25
  782. package/src/components/form/Button/Button.tsx +2 -2
  783. package/src/components/form/CategorySelect/CategoryPanelFoot.tsx +5 -4
  784. package/src/components/form/CategorySelect/CategoryPanelHead.tsx +13 -12
  785. package/src/components/form/CategorySelect/CategoryPanelList.tsx +3 -2
  786. package/src/components/form/CategorySelect/CategoryPanelSurface.tsx +2 -1
  787. package/src/components/form/CategorySelect/CategoryRows.tsx +4 -3
  788. package/src/components/form/CategorySelect/CategorySelect.styles.ts +98 -96
  789. package/src/components/form/CategorySelect/CategoryTrigger.tsx +5 -2
  790. package/src/components/form/Checkbox/Checkbox.tsx +21 -15
  791. package/src/components/form/CodeEditor/CodeEditor.helpers.ts +0 -2
  792. package/src/components/form/CodeEditor/CodeEditor.md +1 -1
  793. package/src/components/form/CodeEditor/CodeEditor.tsx +5 -5
  794. package/src/components/form/CodeEditor/CodeEditor.types.ts +1 -1
  795. package/src/components/form/Command/Command.hooks.ts +0 -2
  796. package/src/components/form/Command/Command.parts.tsx +7 -2
  797. package/src/components/form/Command/Command.styles.ts +11 -11
  798. package/src/components/form/Command/Command.tsx +14 -5
  799. package/src/components/form/CreatableSelect/CreatableSelect.tsx +12 -8
  800. package/src/components/form/DateRangePicker/DateRangePicker.tsx +10 -8
  801. package/src/components/form/DateRangePicker/DateRangePickerQuickList.tsx +8 -4
  802. package/src/components/form/Form/Form.tsx +6 -10
  803. package/src/components/form/HeaderActions/HeaderActions.tsx +2 -1
  804. package/src/components/form/Input/Input.styles.ts +17 -16
  805. package/src/components/form/Input/Input.tsx +4 -2
  806. package/src/components/form/InputOTP/InputOTP.styles.ts +3 -3
  807. package/src/components/form/Label/Label.styles.ts +8 -8
  808. package/src/components/form/Menubar/Menubar.item.tsx +2 -2
  809. package/src/components/form/Menubar/Menubar.styles.ts +13 -13
  810. package/src/components/form/Menubar/Menubar.toolbar.tsx +4 -2
  811. package/src/components/form/PasswordStrength/PasswordStrength.tsx +19 -18
  812. package/src/components/form/PhoneInput/PhoneInput.tsx +9 -9
  813. package/src/components/form/RadioGroup/RadioGroup.animations.ts +9 -6
  814. package/src/components/form/RadioGroup/RadioGroup.styles.ts +45 -43
  815. package/src/components/form/RichTextEditor/RichTextEditor.tsx +7 -6
  816. package/src/components/form/RichTextEditor/RichTextEditorToolbar.tsx +3 -1
  817. package/src/components/form/SearchPalette/SearchPalette.parts.tsx +8 -6
  818. package/src/components/form/Select/Select.tsx +14 -12
  819. package/src/components/form/Slider/Slider.animations.ts +7 -4
  820. package/src/components/form/Slider/Slider.styles.ts +43 -42
  821. package/src/components/form/Switch/Switch.animations.ts +7 -4
  822. package/src/components/form/Switch/Switch.parts.tsx +2 -2
  823. package/src/components/form/Switch/Switch.styles.ts +26 -22
  824. package/src/components/form/Textarea/Textarea.styles.ts +13 -12
  825. package/src/components/form/Textarea/Textarea.tsx +28 -22
  826. package/src/components/form/Textarea/TextareaRichEditor.tsx +10 -10
  827. package/src/components/form/Toggle/Toggle.styles.ts +29 -26
  828. package/src/components/form/Toggle/Toggle.tsx +5 -2
  829. package/src/components/form/ToggleGroup/ToggleGroup.tsx +18 -15
  830. package/src/components/form/UploadButton/UploadButton.parts.tsx +6 -5
  831. package/src/components/layout/Accordion/Accordion.styles.ts +8 -6
  832. package/src/components/layout/Accordion/Accordion.tsx +10 -8
  833. package/src/components/layout/Box/Box.tsx +18 -5
  834. package/src/components/layout/Card/Card.styles.ts +22 -30
  835. package/src/components/layout/Collapsible/Collapsible.helpers.ts +4 -2
  836. package/src/components/layout/Collapsible/Collapsible.tsx +8 -4
  837. package/src/components/layout/ContentToolbar/ColumnsMenu.tsx +1 -1
  838. package/src/components/layout/ContentToolbar/ContentToolbar.tsx +2 -2
  839. package/src/components/layout/ContentToolbar/FilterTrigger.tsx +2 -2
  840. package/src/components/layout/ContentToolbar/MultiSelectDropdown.tsx +1 -1
  841. package/src/components/layout/ContentToolbar/SavedViewsMenu.tsx +2 -2
  842. package/src/components/layout/ContentToolbar/SortByDropdown.tsx +2 -2
  843. package/src/components/layout/ContentToolbar/ViewSelector.tsx +2 -2
  844. package/src/components/layout/Dashboard/Dashboard.tsx +1 -1
  845. package/src/components/layout/Dashboard/DashboardParts.tsx +1 -1
  846. package/src/components/layout/Drawer/Drawer.tsx +23 -10
  847. package/src/components/layout/ScrollArea/ScrollArea.styles.ts +45 -32
  848. package/src/components/layout/ScrollArea/ScrollArea.tsx +31 -16
  849. package/src/components/layout/ScrollArea/ScrollAreaContent.tsx +2 -2
  850. package/src/components/layout/ScrollArea/ScrollViewport.tsx +6 -4
  851. package/src/components/layout/Separator/Separator.styles.ts +30 -9
  852. package/src/components/layout/Separator/Separator.tsx +4 -3
  853. package/src/components/layout/SettingsLayout/SettingsLayout.items.tsx +4 -2
  854. package/src/components/layout/SettingsLayout/SettingsLayout.rail.tsx +6 -5
  855. package/src/components/layout/SettingsLayout/SettingsLayout.styles.ts +9 -7
  856. package/src/components/layout/SettingsLayout/SettingsLayout.tsx +2 -2
  857. package/src/components/layout/SettingsLayout/SettingsPanel.tsx +1 -1
  858. package/src/components/layout/SettingsLayout/SettingsSectionChips.tsx +3 -3
  859. package/src/components/layout/SettingsLayout/SettingsSectionHeader.tsx +3 -3
  860. package/src/components/layout/SettingsLayout/SettingsStatusMarker.tsx +2 -2
  861. package/src/components/layout/Sidebar/Sidebar.tsx +16 -6
  862. package/src/components/layout/Skeleton/Skeleton.styles.ts +13 -3
  863. package/src/components/layout/Skeleton/Skeleton.tsx +6 -4
  864. package/src/components/layout/Spacer/Spacer.tsx +16 -1
  865. package/src/components/layout/TableFilter/TableFilter.tsx +2 -1
  866. package/src/components/navigation/AppHeader/AppHeader.brand.tsx +2 -2
  867. package/src/components/navigation/AppHeader/AppHeader.details.tsx +9 -7
  868. package/src/components/navigation/AppHeader/AppHeader.identity.tsx +28 -15
  869. package/src/components/navigation/AppHeader/AppHeader.tsx +18 -6
  870. package/src/components/navigation/Breadcrumbs/BreadcrumbEntry.tsx +4 -4
  871. package/src/components/navigation/Breadcrumbs/Breadcrumbs.styles.tsx +15 -15
  872. package/src/components/navigation/CommandPalette/CommandPalette.tsx +7 -7
  873. package/src/components/navigation/CommandPalette/CommandPaletteResults.tsx +5 -5
  874. package/src/components/navigation/CommandPalette/ShortcutChip.tsx +1 -1
  875. package/src/components/navigation/ContextMenu/ContextMenu.tsx +8 -8
  876. package/src/components/navigation/DropdownMenu/DropdownMenu.tsx +25 -16
  877. package/src/components/navigation/NavigationMenu/NavigationMegaSection.tsx +5 -4
  878. package/src/components/navigation/NavigationMenu/NavigationMenu.shell.tsx +22 -20
  879. package/src/components/navigation/NavigationMenu/NavigationMenu.styles.ts +11 -11
  880. package/src/components/navigation/NavigationMenu/NavigationMenu.tsx +7 -2
  881. package/src/components/navigation/NavigationMenu/NavigationMenuItem.tsx +12 -12
  882. package/src/components/navigation/NavigationMenu/NavigationStandardBody.tsx +3 -2
  883. package/src/components/navigation/Pagination/Pagination.styles.ts +18 -18
  884. package/src/components/navigation/Pagination/Pagination.tsx +2 -1
  885. package/src/components/navigation/Pagination/PaginationParts.tsx +4 -3
  886. package/src/components/navigation/Tabs/Tabs.styles.ts +14 -12
  887. package/src/components/navigation/Tabs/Tabs.tsx +11 -9
  888. package/src/components/navigation/Tabs/TabsPanel.tsx +10 -3
  889. package/src/components/typography/Blockquote/Blockquote.tsx +8 -8
  890. package/src/components/typography/Code/Code.tsx +17 -17
  891. package/src/components/typography/Text/Text.tsx +2 -2
  892. package/src/components/utility/AnimatedIcon/AnimatedIcon.animations.ts +38 -35
  893. package/src/components/utility/AnimatedIcon/AnimatedIcon.styles.ts +51 -46
  894. package/src/components/utility/AnimatedIcon/AnimatedIcon.tsx +1 -1
  895. package/src/components/utility/AspectRatio/AspectRatio.tsx +13 -2
  896. package/src/components/utility/WorkflowStep/WorkflowStep.parts.tsx +7 -7
  897. package/src/social-login-button/social-login-button.tsx +25 -8
  898. package/dist/chunk-236V2GRH.js.map +0 -1
  899. package/dist/chunk-2CTTASUD.js.map +0 -1
  900. package/dist/chunk-2E2WOBID.js.map +0 -1
  901. package/dist/chunk-2HVNPWFV.js.map +0 -1
  902. package/dist/chunk-2NLYGZP3.js.map +0 -1
  903. package/dist/chunk-2PBT2HQH.js.map +0 -1
  904. package/dist/chunk-35ETD7ML.js.map +0 -1
  905. package/dist/chunk-3A22SBIU.js.map +0 -1
  906. package/dist/chunk-3CVTQZQJ.js.map +0 -1
  907. package/dist/chunk-3D6HXKZM.js.map +0 -1
  908. package/dist/chunk-3T5Z5HXF.js.map +0 -1
  909. package/dist/chunk-3VMGE7CU.js.map +0 -1
  910. package/dist/chunk-4GYEIWQP.js.map +0 -1
  911. package/dist/chunk-4OEKIFBC.js.map +0 -1
  912. package/dist/chunk-57JY4OI2.js.map +0 -1
  913. package/dist/chunk-5CKDRLRN.js.map +0 -1
  914. package/dist/chunk-5IXHJXJX.js.map +0 -1
  915. package/dist/chunk-5QWQR7XT.js.map +0 -1
  916. package/dist/chunk-5SJWDABY.js.map +0 -1
  917. package/dist/chunk-5W4BLTDI.js.map +0 -1
  918. package/dist/chunk-65CEXQ4L.js.map +0 -1
  919. package/dist/chunk-6CTPDNNX.js.map +0 -1
  920. package/dist/chunk-6DN4ZULV.js.map +0 -1
  921. package/dist/chunk-6GRZ77IS.js.map +0 -1
  922. package/dist/chunk-6M33XQLZ.js +0 -70
  923. package/dist/chunk-6M33XQLZ.js.map +0 -1
  924. package/dist/chunk-6QLPSMTA.js.map +0 -1
  925. package/dist/chunk-6SKXV236.js.map +0 -1
  926. package/dist/chunk-72DKEBJM.js.map +0 -1
  927. package/dist/chunk-73BEVJCS.js +0 -28
  928. package/dist/chunk-73BEVJCS.js.map +0 -1
  929. package/dist/chunk-7BZTZ2WG.js.map +0 -1
  930. package/dist/chunk-7DN4UXJ3.js.map +0 -1
  931. package/dist/chunk-7EQCZO56.js.map +0 -1
  932. package/dist/chunk-7F7TTOYN.js.map +0 -1
  933. package/dist/chunk-7UZ2TFIK.js.map +0 -1
  934. package/dist/chunk-AMTFP7QA.js.map +0 -1
  935. package/dist/chunk-B76QCDCE.js.map +0 -1
  936. package/dist/chunk-BLJDCMFU.js.map +0 -1
  937. package/dist/chunk-BXAL7OIS.js.map +0 -1
  938. package/dist/chunk-CAHWCSRE.js.map +0 -1
  939. package/dist/chunk-CJHP6E34.js.map +0 -1
  940. package/dist/chunk-CMK4DJDR.js.map +0 -1
  941. package/dist/chunk-CPTY6UZ6.js.map +0 -1
  942. package/dist/chunk-CSSCGM27.js.map +0 -1
  943. package/dist/chunk-CSTAQX2B.js.map +0 -1
  944. package/dist/chunk-CWDV64TD.js.map +0 -1
  945. package/dist/chunk-D2HKCPEH.js.map +0 -1
  946. package/dist/chunk-DYVAOEW4.js.map +0 -1
  947. package/dist/chunk-E6RYO4QZ.js.map +0 -1
  948. package/dist/chunk-E7MSDXED.js.map +0 -1
  949. package/dist/chunk-EFHIMCJN.js.map +0 -1
  950. package/dist/chunk-EFV5QJNM.js.map +0 -1
  951. package/dist/chunk-EL7CMURV.js.map +0 -1
  952. package/dist/chunk-FYTLKHEN.js.map +0 -1
  953. package/dist/chunk-GUW5BUK7.js.map +0 -1
  954. package/dist/chunk-HAQMKV5P.js.map +0 -1
  955. package/dist/chunk-HB7ISSLK.js.map +0 -1
  956. package/dist/chunk-HBICO6AX.js.map +0 -1
  957. package/dist/chunk-HC5ZSCRG.js.map +0 -1
  958. package/dist/chunk-HXEBKOSM.js.map +0 -1
  959. package/dist/chunk-I62ALI7F.js.map +0 -1
  960. package/dist/chunk-IBGX6H4J.js.map +0 -1
  961. package/dist/chunk-IVIHRZEY.js.map +0 -1
  962. package/dist/chunk-IYTBTK2M.js.map +0 -1
  963. package/dist/chunk-J4NXTSJY.js.map +0 -1
  964. package/dist/chunk-JCBIPBGZ.js.map +0 -1
  965. package/dist/chunk-JXUWWPZR.js.map +0 -1
  966. package/dist/chunk-K7WSPGI7.js.map +0 -1
  967. package/dist/chunk-KH25WUSX.js.map +0 -1
  968. package/dist/chunk-KLWW67WP.js.map +0 -1
  969. package/dist/chunk-L3B36HA5.js.map +0 -1
  970. package/dist/chunk-L7SFH3ED.js.map +0 -1
  971. package/dist/chunk-LIG7TKIB.js.map +0 -1
  972. package/dist/chunk-LMXWI3DD.js.map +0 -1
  973. package/dist/chunk-LVEG6XQL.js.map +0 -1
  974. package/dist/chunk-LWRI6HGT.js.map +0 -1
  975. package/dist/chunk-MBC55H6M.js.map +0 -1
  976. package/dist/chunk-MBSYD3ZU.js.map +0 -1
  977. package/dist/chunk-MJ3BVWPZ.js.map +0 -1
  978. package/dist/chunk-MK4CH4VT.js.map +0 -1
  979. package/dist/chunk-MP4VSWHK.js.map +0 -1
  980. package/dist/chunk-MVKYNDT2.js.map +0 -1
  981. package/dist/chunk-MVXFMIVZ.js.map +0 -1
  982. package/dist/chunk-N52O2OKZ.js.map +0 -1
  983. package/dist/chunk-NEGCJNGJ.js.map +0 -1
  984. package/dist/chunk-NSJVQ5YJ.js.map +0 -1
  985. package/dist/chunk-NYZO3JNB.js.map +0 -1
  986. package/dist/chunk-OATHOXIU.js.map +0 -1
  987. package/dist/chunk-OWA7GPWR.js.map +0 -1
  988. package/dist/chunk-PMP6WJJS.js.map +0 -1
  989. package/dist/chunk-PT2XADGH.js.map +0 -1
  990. package/dist/chunk-PYIASGI7.js.map +0 -1
  991. package/dist/chunk-Q4BQYYPU.js.map +0 -1
  992. package/dist/chunk-Q4CAZ2TP.js.map +0 -1
  993. package/dist/chunk-QAP3FW33.js.map +0 -1
  994. package/dist/chunk-QY4XNTNG.js.map +0 -1
  995. package/dist/chunk-RQ5HZDBV.js.map +0 -1
  996. package/dist/chunk-RSQMPCCR.js.map +0 -1
  997. package/dist/chunk-RWTFZ7J5.js.map +0 -1
  998. package/dist/chunk-SE6ERQY5.js.map +0 -1
  999. package/dist/chunk-ST4YYVUK.js.map +0 -1
  1000. package/dist/chunk-T3WHW7ZC.js.map +0 -1
  1001. package/dist/chunk-TBF2CPJW.js.map +0 -1
  1002. package/dist/chunk-TOXTJ7MU.js.map +0 -1
  1003. package/dist/chunk-TQ2557I5.js.map +0 -1
  1004. package/dist/chunk-TTAP5XFX.js.map +0 -1
  1005. package/dist/chunk-TVL5V2JK.js.map +0 -1
  1006. package/dist/chunk-U342T7ZR.js.map +0 -1
  1007. package/dist/chunk-U4H6MGVE.js.map +0 -1
  1008. package/dist/chunk-UUUMNJPP.js.map +0 -1
  1009. package/dist/chunk-V3LOHY4N.js.map +0 -1
  1010. package/dist/chunk-VECWMANF.js.map +0 -1
  1011. package/dist/chunk-VFHGILXI.js.map +0 -1
  1012. package/dist/chunk-VRDNUY4H.js.map +0 -1
  1013. package/dist/chunk-WNUZK7NS.js.map +0 -1
  1014. package/dist/chunk-WTOYEWW6.js.map +0 -1
  1015. package/dist/chunk-WUTHROII.js.map +0 -1
  1016. package/dist/chunk-WVC3BG6J.js.map +0 -1
  1017. package/dist/chunk-XLYFOBBT.js.map +0 -1
  1018. package/dist/chunk-XWWFBH2G.js.map +0 -1
  1019. package/dist/chunk-YESTO24O.js.map +0 -1
  1020. package/dist/chunk-YH37X6JT.js.map +0 -1
  1021. package/dist/chunk-YVUD3MY4.js.map +0 -1
  1022. package/dist/chunk-ZTYUKEN3.js.map +0 -1
  1023. /package/dist/{chunk-PNLM35GU.js.map → chunk-2JNHWKQK.js.map} +0 -0
  1024. /package/dist/{chunk-PWF32ILG.js.map → chunk-2OYFTSG4.js.map} +0 -0
  1025. /package/dist/{chunk-CRZXSZ5O.js.map → chunk-2S752BIJ.js.map} +0 -0
  1026. /package/dist/{chunk-IWOVENC3.js.map → chunk-2XX45PC5.js.map} +0 -0
  1027. /package/dist/{chunk-ZW5K4XCQ.js.map → chunk-34BZXJGT.js.map} +0 -0
  1028. /package/dist/{chunk-KCAW6HRO.js.map → chunk-3AOQBR7N.js.map} +0 -0
  1029. /package/dist/{chunk-JFBEZXNL.js.map → chunk-3KREF4ZF.js.map} +0 -0
  1030. /package/dist/{chunk-SQYC57ZN.js.map → chunk-3RMDIO4G.js.map} +0 -0
  1031. /package/dist/{chunk-IL7JZKXY.js.map → chunk-442FSG7G.js.map} +0 -0
  1032. /package/dist/{chunk-GVLZZCSX.js.map → chunk-4B5XUQQS.js.map} +0 -0
  1033. /package/dist/{chunk-SN2YMCTL.js.map → chunk-4GWHYLEB.js.map} +0 -0
  1034. /package/dist/{chunk-ZZM3DOEK.js.map → chunk-5HDYTTE7.js.map} +0 -0
  1035. /package/dist/{chunk-E7T3A4IR.js.map → chunk-5JCGBCFJ.js.map} +0 -0
  1036. /package/dist/{chunk-GEXM6DNR.js.map → chunk-5KGABAQB.js.map} +0 -0
  1037. /package/dist/{chunk-FC7NQ6XM.js.map → chunk-5MW7OYBM.js.map} +0 -0
  1038. /package/dist/{chunk-5TJRJSJY.js.map → chunk-5OBXEMQO.js.map} +0 -0
  1039. /package/dist/{chunk-D5X4FRYX.js.map → chunk-6JNQLW5L.js.map} +0 -0
  1040. /package/dist/{chunk-RKI3MRKX.js.map → chunk-6N4AA2Y7.js.map} +0 -0
  1041. /package/dist/{chunk-7EIOXZWL.js.map → chunk-74P3YX7R.js.map} +0 -0
  1042. /package/dist/{chunk-A6AKFPIQ.js.map → chunk-7EH4D6FU.js.map} +0 -0
  1043. /package/dist/{chunk-7ZG7T2YN.js.map → chunk-7GHYCQCJ.js.map} +0 -0
  1044. /package/dist/{chunk-4WQ3YXQL.js.map → chunk-BFMDA6UO.js.map} +0 -0
  1045. /package/dist/{chunk-R75DZ3AK.js.map → chunk-BVLMKSHX.js.map} +0 -0
  1046. /package/dist/{chunk-B7BNNSM2.js.map → chunk-CNQUCNEA.js.map} +0 -0
  1047. /package/dist/{chunk-GGWICBJD.js.map → chunk-CPAJYJUD.js.map} +0 -0
  1048. /package/dist/{chunk-DMWSXWCZ.js.map → chunk-CZIX4BW2.js.map} +0 -0
  1049. /package/dist/{chunk-SYVNWXVW.js.map → chunk-DUBTI4DI.js.map} +0 -0
  1050. /package/dist/{chunk-RMCNEKBZ.js.map → chunk-DW6F7354.js.map} +0 -0
  1051. /package/dist/{chunk-XJUEHG72.js.map → chunk-EERUSI52.js.map} +0 -0
  1052. /package/dist/{chunk-FXNYV5Z6.js.map → chunk-F6D6HXZU.js.map} +0 -0
  1053. /package/dist/{chunk-UL7L6MFT.js.map → chunk-FFCJ7NR2.js.map} +0 -0
  1054. /package/dist/{chunk-GXCOXJS3.js.map → chunk-FNG33MKA.js.map} +0 -0
  1055. /package/dist/{chunk-4CTLEUK3.js.map → chunk-GLFTIGOF.js.map} +0 -0
  1056. /package/dist/{chunk-6SS5C74Q.js.map → chunk-GS3RP2QE.js.map} +0 -0
  1057. /package/dist/{chunk-L4UP5VYS.js.map → chunk-GVH7C2PT.js.map} +0 -0
  1058. /package/dist/{chunk-B2VXP2B2.js.map → chunk-GZT7MLLO.js.map} +0 -0
  1059. /package/dist/{chunk-AK2HOD6B.js.map → chunk-H5BEWPEY.js.map} +0 -0
  1060. /package/dist/{chunk-QIKPGMMO.js.map → chunk-H67EL3CG.js.map} +0 -0
  1061. /package/dist/{chunk-JJSZP3TW.js.map → chunk-I4QA2F4L.js.map} +0 -0
  1062. /package/dist/{chunk-AJ5SDHX5.js.map → chunk-JCL7WK4G.js.map} +0 -0
  1063. /package/dist/{chunk-ZMC3N23A.js.map → chunk-JSD5TFDK.js.map} +0 -0
  1064. /package/dist/{chunk-NE6XUN5Z.js.map → chunk-JU4MSYYH.js.map} +0 -0
  1065. /package/dist/{chunk-X2AKLDPW.js.map → chunk-KE473LK6.js.map} +0 -0
  1066. /package/dist/{chunk-5UTAEHSB.js.map → chunk-L7NQCLFU.js.map} +0 -0
  1067. /package/dist/{chunk-RZ2C5CAW.js.map → chunk-M2JTIH5M.js.map} +0 -0
  1068. /package/dist/{chunk-6KL2CJBO.js.map → chunk-MNHIK2OR.js.map} +0 -0
  1069. /package/dist/{chunk-343OLRFT.js.map → chunk-MR2HKBHS.js.map} +0 -0
  1070. /package/dist/{chunk-JFEEV3XI.js.map → chunk-NB3FGWU4.js.map} +0 -0
  1071. /package/dist/{chunk-KK57AHWS.js.map → chunk-OAEYCKBN.js.map} +0 -0
  1072. /package/dist/{chunk-JGRE56GQ.js.map → chunk-OB56SZGL.js.map} +0 -0
  1073. /package/dist/{chunk-E4TNDTWV.js.map → chunk-OL2BEJZR.js.map} +0 -0
  1074. /package/dist/{chunk-DZNMS2SH.js.map → chunk-OS6KPL4D.js.map} +0 -0
  1075. /package/dist/{chunk-UFLTL2RJ.js.map → chunk-PH36XEB3.js.map} +0 -0
  1076. /package/dist/{chunk-4LQZH4PU.js.map → chunk-PMOEG36E.js.map} +0 -0
  1077. /package/dist/{chunk-KJK2Q35C.js.map → chunk-PPRV4LTM.js.map} +0 -0
  1078. /package/dist/{chunk-EXZSHZRS.js.map → chunk-PWZHCBG3.js.map} +0 -0
  1079. /package/dist/{chunk-EFVOT3G5.js.map → chunk-PZ7PU4AP.js.map} +0 -0
  1080. /package/dist/{chunk-YBTC4XNO.js.map → chunk-QA2ZGCRL.js.map} +0 -0
  1081. /package/dist/{chunk-7LIXQZBG.js.map → chunk-QI5CRSOW.js.map} +0 -0
  1082. /package/dist/{chunk-ROT57BP4.js.map → chunk-R2XVTUVR.js.map} +0 -0
  1083. /package/dist/{chunk-V74PXUQN.js.map → chunk-R6SN73RX.js.map} +0 -0
  1084. /package/dist/{chunk-WPA26LXA.js.map → chunk-RZYSKQTS.js.map} +0 -0
  1085. /package/dist/{chunk-2UCLUDEB.js.map → chunk-SKT2V2OX.js.map} +0 -0
  1086. /package/dist/{chunk-EOW2ECB3.js.map → chunk-SNURSSTN.js.map} +0 -0
  1087. /package/dist/{chunk-TU3EGIKB.js.map → chunk-SSS64KYB.js.map} +0 -0
  1088. /package/dist/{chunk-CZBND7AY.js.map → chunk-T7DE44SP.js.map} +0 -0
  1089. /package/dist/{chunk-DHBYO7AO.js.map → chunk-TCV3N44E.js.map} +0 -0
  1090. /package/dist/{chunk-DB2ZFZVW.js.map → chunk-TKC6WHGB.js.map} +0 -0
  1091. /package/dist/{chunk-DVGBFT6O.js.map → chunk-UAVSBSV5.js.map} +0 -0
  1092. /package/dist/{chunk-ZAFFKQQU.js.map → chunk-UEVHI62V.js.map} +0 -0
  1093. /package/dist/{chunk-ADHMNIWS.js.map → chunk-UFJYJHQI.js.map} +0 -0
  1094. /package/dist/{chunk-BNEWMFVB.js.map → chunk-UGGJ3KDT.js.map} +0 -0
  1095. /package/dist/{chunk-KREWQAEV.js.map → chunk-VIRYHNEM.js.map} +0 -0
  1096. /package/dist/{chunk-SX3MEC3Q.js.map → chunk-VZIB5W5L.js.map} +0 -0
  1097. /package/dist/{chunk-N6CSXHFJ.js.map → chunk-WN5PNP6F.js.map} +0 -0
  1098. /package/dist/{chunk-FZ4YTEP2.js.map → chunk-XIG3DXXX.js.map} +0 -0
  1099. /package/dist/{chunk-CHFHILTM.js.map → chunk-XJJXBUPN.js.map} +0 -0
  1100. /package/dist/{chunk-GHTBUJ6E.js.map → chunk-XRUW7DMH.js.map} +0 -0
  1101. /package/dist/{chunk-DY4BP5WA.js.map → chunk-Y7F5JBAT.js.map} +0 -0
  1102. /package/dist/{chunk-6BDYC4RA.js.map → chunk-YRSR5LVZ.js.map} +0 -0
  1103. /package/dist/{chunk-TQBRWZA4.js.map → chunk-ZAY6OA6F.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/form/PasswordStrength/PasswordStrength.tsx"],"sourcesContent":["import CheckIcon from '@mui/icons-material/Check';\nimport CloseIcon from '@mui/icons-material/Close';\n\nimport Box from '@mui/material/Box/index.js';\nimport Chip from '@mui/material/Chip/index.js';\nimport Fade from '@mui/material/Fade/index.js';\nimport LinearProgress from '@mui/material/LinearProgress/index.js';\nimport Stack from '@mui/material/Stack/index.js';\nimport Typography from '@mui/material/Typography/index.js';\nimport { alpha, keyframes, styled, useTheme } from '@mui/material/styles/index.js';\nimport type { FC} from 'react';\nimport React, { useMemo } from 'react';\n\nimport type { RequirementChecks } from './PasswordStrength.helpers';\nimport {\n buildSuggestions,\n calculatePasswordStrength,\n defaultRequirements,\n evaluateRequirements,\n getStrengthIcon,\n getStrengthLabel,\n SuggestionsList } from './PasswordStrength.helpers';\nimport type { PasswordRequirements, PasswordStrengthProps } from './PasswordStrength.types';\nimport type { PasswordStrengthCopy } from '../../../copy';\nimport { rem } from '../../../tokens/relative';\n\ninterface RequirementIconProps {\n met: boolean;\n}\n const RequirementIcon: FC<RequirementIconProps> = ({ met }) => {\n return met ? (\n <CheckIcon data-testid=\"check-icon\" />\n ) : (\n <CloseIcon data-testid=\"close-icon\" />\n );\n};\n\n// Default requirements\n// Animation keyframes\nconst pulseAnimation = keyframes`\n 0%, 100% {\n opacity: 1;\n }\n 50% {\n opacity: 0.7;\n }\n`;\n\nconst slideInAnimation = keyframes`\n from {\n transform: translateX(-10px);\n opacity: 0;\n }\n to {\n transform: translateX(0);\n opacity: 1;\n }\n`;\n\n// Styled components\nconst StrengthContainer = styled(Box, {\n shouldForwardProp: (prop) => prop !== 'animated' })<{ animated?: boolean }>(({ theme, animated }) => ({\n width: '100%',\n padding: theme.spacing(2),\n background: `linear-gradient(135deg, ${alpha(theme.palette.background.paper, 0.8)} 0%, ${alpha(theme.palette.background.paper, 0.6)} 100%)`,\n backdropFilter: 'blur(10px)',\n WebkitBackdropFilter: 'blur(10px)',\n border: `1px solid ${alpha(theme.palette.divider, 0.18)}`,\n borderRadius: theme.shape.borderRadius * 2,\n transition: animated ? 'all 0.3s ease' : 'none' }));\n\nconst StrengthBar = styled(LinearProgress, {\n shouldForwardProp: (prop) => prop !== 'strength' && prop !== 'animated' })<{ strength: number; animated?: boolean }>(({ theme, strength, animated }) => {\n const getColor = () => {\n if (strength <= 20) return theme.palette.error.main;\n if (strength <= 40) return theme.palette.warning.main;\n if (strength <= 60) return theme.palette.info.main;\n if (strength <= 80) return theme.palette.success.light;\n return theme.palette.success.main;\n };\n\n const getGradient = () => {\n const color = getColor();\n return `linear-gradient(90deg, ${color} 0%, ${alpha(color, 0.8)} 100%)`;\n };\n\n return {\n height: 8,\n borderRadius: 4,\n backgroundColor: alpha(theme.palette.action.disabled, 0.1),\n '& .MuiLinearProgress-bar': {\n borderRadius: 4,\n background: getGradient(),\n transition: animated ? 'all 0.3s ease' : 'none',\n boxShadow: `0 2px 8px ${alpha(getColor(), 0.3)}` } };\n});\n\nconst RequirementItem = styled(Box, {\n shouldForwardProp: (prop) => prop !== 'met' && prop !== 'animated' })<{ met: boolean; animated?: boolean }>(({ theme, met, animated }) => ({\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(1),\n padding: theme.spacing(0.75, 1),\n borderRadius: theme.shape.borderRadius,\n background: met\n ? alpha(theme.palette.success.main, 0.08)\n : alpha(theme.palette.action.disabled, 0.04),\n transition: animated ? 'all 0.3s ease' : 'none',\n animation: animated ? `${slideInAnimation} 0.3s ease` : 'none',\n '& svg': {\n fontSize: rem(theme, 16),\n color: met ? theme.palette.success.main : theme.palette.text.disabled } }));\n\nconst StrengthLabel = styled(Chip, {\n shouldForwardProp: (prop) => prop !== 'strength' && prop !== 'animated' })<{ strength: number; animated?: boolean }>(({ theme, strength, animated }) => {\n const getColor = () => {\n if (strength <= 20) return theme.palette.error;\n if (strength <= 40) return theme.palette.warning;\n if (strength <= 60) return theme.palette.info;\n if (strength <= 80) return theme.palette.success;\n return theme.palette.success;\n };\n\n const palette = getColor();\n\n return {\n background: alpha(palette.main, 0.1),\n color: palette.main,\n border: `1px solid ${alpha(palette.main, 0.3)}`,\n fontWeight: 600,\n animation: animated ? `${pulseAnimation} 2s ease infinite` : 'none' };\n});\n\nconst StepsContainer = styled(Box)(({ theme }) => ({\n display: 'flex',\n gap: theme.spacing(1),\n marginTop: theme.spacing(2) }));\n\nconst Step = styled(Box, {\n shouldForwardProp: (prop) => prop !== 'active' && prop !== 'completed' && prop !== 'animated' })<{ active: boolean; completed: boolean; animated?: boolean }>(\n ({ theme, active, completed, animated }) => ({\n flex: 1,\n height: 6,\n borderRadius: 3,\n background: completed\n ? `linear-gradient(90deg, ${theme.palette.success.main} 0%, ${theme.palette.success.light} 100%)`\n : active\n ? `linear-gradient(90deg, ${theme.palette.warning.main} 0%, ${theme.palette.warning.light} 100%)`\n : alpha(theme.palette.action.disabled, 0.2),\n transition: animated ? 'all 0.3s ease' : 'none',\n boxShadow: completed ? `0 2px 8px ${alpha(theme.palette.success.main, 0.3)}` : 'none' }),\n);\n\n// The three indicator variants, out of the component body so the render keeps\n// only its own layout branches.\nconst StrengthIndicator: React.FC<{\n variant: PasswordStrengthProps['variant'];\n strength: number;\n animated: boolean;\n}> = ({ variant, strength, animated }) => {\n const theme = useTheme();\n\n switch (variant) {\n case 'circular':\n return (\n <Box sx={{ position: 'relative', display: 'inline-flex' }}>\n <Box\n sx={{\n width: 80,\n height: 80,\n borderRadius: '50%',\n background: `conic-gradient(\n ${theme.palette.success.main} 0deg ${strength * 3.6}deg,\n ${alpha(theme.palette.action.disabled, 0.1)} ${strength * 3.6}deg 360deg\n )`,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n boxShadow: `0 4px 12px ${alpha(theme.palette.success.main, strength / 200)}` }}\n >\n <Box\n sx={{\n width: 64,\n height: 64,\n borderRadius: '50%',\n background: theme.palette.background.paper,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexDirection: 'column' }}\n >\n <Typography variant=\"h6\" fontWeight=\"bold\">\n {strength}%\n </Typography>\n </Box>\n </Box>\n </Box>\n );\n\n case 'steps': {\n const steps = 5;\n const activeStep = Math.ceil((strength / 100) * steps);\n return (\n <StepsContainer>\n {Array.from({ length: steps }, (_, i) => (\n <Step key={i} active={i === activeStep - 1} completed={i < activeStep - 1} animated={animated} />\n ))}\n </StepsContainer>\n );\n }\n\n default:\n return <StrengthBar variant=\"determinate\" value={strength} strength={strength} animated={animated} />;\n }\n};\n\nconst StrengthHeading: React.FC<{\n copy: PasswordStrengthCopy;\n strength: number;\n hasValue: boolean;\n animated: boolean;\n}> = ({ copy, strength, hasValue, animated }) => (\n <Box sx={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center' }}>\n <Typography variant=\"body2\" color=\"text.secondary\">\n {copy.strengthHeading}\n </Typography>\n {hasValue && (\n <Fade in={true}>\n <StrengthLabel\n label={getStrengthLabel(strength, copy.bands)}\n icon={getStrengthIcon(strength)}\n size=\"small\"\n strength={strength}\n animated={animated}\n />\n </Fade>\n )}\n </Box>\n);\n\n// One row per enabled requirement. Previously five near-identical JSX blocks,\n// each with its own `requirements.x &&` guard.\n//\n// `forwardRef` because it is `Fade`'s child: Fade hands it a ref and reads\n// `scrollTop` off that node on enter, so a component that drops the ref throws\n// the moment the first character is typed. Only the ref: Fade's injected\n// `style` (opacity/visibility) is still dropped, so the list stays visible.\nconst RequirementsList = React.forwardRef<\n HTMLDivElement,\n {\n copy: PasswordStrengthCopy;\n requirements: PasswordRequirements;\n checks: RequirementChecks;\n animated: boolean;\n }\n>(({ copy, requirements, checks, animated }, ref) => {\n const rows: ReadonlyArray<[unknown, keyof RequirementChecks, React.ReactNode]> = [\n [requirements.minLength, 'length', copy.requirements.minLength(requirements.minLength ?? 0)],\n [requirements.uppercase, 'uppercase', copy.requirements.uppercase],\n [requirements.lowercase, 'lowercase', copy.requirements.lowercase],\n [requirements.numbers, 'numbers', copy.requirements.numbers],\n [requirements.special, 'special', copy.requirements.special],\n ];\n\n return (\n <Stack ref={ref} spacing={1}>\n <Typography variant=\"caption\" color=\"text.secondary\" fontWeight=\"medium\">\n {copy.requirementsHeading}\n </Typography>\n {rows\n .filter(([enabled]) => Boolean(enabled))\n .map(([, key, label]) => (\n <RequirementItem key={key} met={checks[key]} animated={animated}>\n <RequirementIcon met={checks[key]} />\n <Typography variant=\"caption\">{label}</Typography>\n </RequirementItem>\n ))}\n </Stack>\n );\n});\nRequirementsList.displayName = 'RequirementsList';\n\n// The visible sections. Kept apart from PasswordStrength itself so the exported\n// component is just prop defaults plus the three memos, and every display guard\n// lives in one place.\nconst PasswordStrengthBody: React.FC<{\n value: string;\n strength: number;\n copy: PasswordStrengthCopy;\n requirements: PasswordRequirements;\n requirementChecks: RequirementChecks;\n suggestions: string[];\n showStrengthLabel: boolean;\n showRequirements: boolean;\n showSuggestions: boolean;\n variant: PasswordStrengthProps['variant'];\n animated: boolean;\n}> = ({\n copy,\n value,\n strength,\n requirements,\n requirementChecks,\n suggestions,\n showStrengthLabel,\n showRequirements,\n showSuggestions,\n variant,\n animated }) => (\n <Stack spacing={2}>\n {showStrengthLabel && (\n <StrengthHeading\n copy={copy}\n strength={strength}\n hasValue={value.length > 0}\n animated={animated}\n />\n )}\n\n <StrengthIndicator variant={variant} strength={strength} animated={animated} />\n\n {showRequirements && (\n <Fade in={value.length > 0}>\n <RequirementsList\n copy={copy}\n requirements={requirements}\n checks={requirementChecks}\n animated={animated}\n />\n </Fade>\n )}\n\n {showSuggestions && suggestions.length > 0 && value.length > 0 && (\n <Fade in={true}>\n <SuggestionsList suggestions={suggestions} heading={copy.suggestionsHeading} />\n </Fade>\n )}\n </Stack>\n);\n\n// Main component\nexport const PasswordStrength: FC<PasswordStrengthProps> = ({\n copy,\n value = '',\n showRequirements = true,\n requirements = defaultRequirements,\n showStrengthLabel = true,\n showSuggestions = false,\n variant = 'linear',\n animated = true,\n 'data-testid': dataTestId }) => {\n\n const strength = useMemo(\n () => calculatePasswordStrength(value, requirements),\n [value, requirements],\n );\n\n const requirementChecks = useMemo(\n () => evaluateRequirements(value, requirements),\n [value, requirements],\n );\n\n const suggestions = useMemo(\n () => buildSuggestions(requirementChecks, copy.suggestions, requirements.minLength ?? 0),\n [requirementChecks, copy.suggestions, requirements.minLength],\n );\n\n return (\n <StrengthContainer animated={animated} data-testid={dataTestId}>\n <PasswordStrengthBody\n copy={copy}\n value={value}\n strength={strength}\n requirements={requirements}\n requirementChecks={requirementChecks}\n suggestions={suggestions}\n showStrengthLabel={showStrengthLabel}\n showRequirements={showRequirements}\n showSuggestions={showSuggestions}\n variant={variant}\n animated={animated}\n />\n </StrengthContainer>\n );\n};\n\n// Export default\nexport default PasswordStrength;\n"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/navigation/NavigationMenu/NavigationMenu.tsx"],"sourcesContent":["import Box from '@mui/material/Box/index.js';\nimport Paper from '@mui/material/Paper/index.js';\nimport React, { useState } from 'react';\n\nimport { NavigationMegaSection } from './NavigationMegaSection';\nimport { NavigationStandardBody } from './NavigationStandardBody';\nimport {\n LogoBar,\n NavigationShell } from './NavigationMenu.shell';\nimport type { NavigationMenuItem,NavigationMenuProps } from './NavigationMenu.types';\n\n\n\n\n\n\n// The mega-menu layout is a different shape from the list-based variants: a\n// grid of titled sections rather than a single column.\n// onItemClick and dataTestId are not on NavigationMenuProps; they arrive through\n// the rest props and are forwarded to the item renderer, so they are named here.\ntype MegaMenuLayoutProps = NavigationMenuProps & {\n collapsed: boolean;\n onItemClick?: (item: NavigationMenuItem) => void;\n dataTestId?: string;\n};\n\nconst MegaMenuLayout = React.forwardRef<HTMLDivElement, MegaMenuLayoutProps>(\n (\n {\n variant,\n logo,\n items,\n size,\n minimal,\n dataTestId: _dataTestId,\n className,\n maxWidth,\n style,\n ...props\n },\n ref,\n ) => {\n return (\n <NavigationShell\n ref={ref}\n variant={variant}\n minimal={minimal}\n className={className}\n style={{ maxWidth, ...style }}\n {...props}\n >\n <Paper\n elevation={minimal ? 0 : 1}\n sx={{\n width: '100%',\n overflow: 'hidden',\n background: minimal ? 'transparent' : undefined }}\n >\n {logo && <LogoBar>{logo}</LogoBar>}\n <Box\n sx={{\n display: 'grid',\n gridTemplateColumns: 'repeat(auto-fit, minmax(280px, 1fr))',\n gap: 3,\n p: 3 }}\n >\n {items.map((section, sectionIndex) => (\n <NavigationMegaSection\n key={section.id}\n section={section}\n sectionIndex={sectionIndex}\n variant={variant}\n size={size}\n minimal={minimal}\n />\n ))}\n </Box>\n </Paper>\n </NavigationShell>\n );\n },\n);\n\nMegaMenuLayout.displayName = 'MegaMenuLayout';\n\ntype NavigationDefaultedKeys = 'variant' | 'size' | 'minimal' | 'collapsible' | 'showDividers';\n\ntype ResolvedNavigationProps = NavigationMenuProps &\n Required<Pick<NavigationMenuProps, NavigationDefaultedKeys>>;\n\nconst NAVIGATION_DEFAULTS: Pick<NavigationMenuProps, NavigationDefaultedKeys> = {\n variant: 'vertical',\n size: 'md',\n minimal: false,\n collapsible: false,\n showDividers: false };\n\n// Strips explicitly-undefined props before the merge, so `prop={undefined}` still\n// falls back to the default exactly as a destructuring default would. Applied as\n// a merge rather than destructuring defaults, which would otherwise put five\n// branches into the component's own complexity budget.\nconst resolveProps = (props: NavigationMenuProps): ResolvedNavigationProps =>\n ({\n ...NAVIGATION_DEFAULTS,\n ...(Object.fromEntries(\n Object.entries(props).filter(([, value]) => value !== undefined),\n ) as Partial<NavigationMenuProps>) }) as ResolvedNavigationProps;\n\nexport const NavigationMenu = React.forwardRef<HTMLDivElement, NavigationMenuProps>(\n (componentProps, ref) => {\n const {\n variant,\n items,\n size,\n minimal,\n collapsible,\n collapsed: controlledCollapsed,\n onCollapseChange,\n logo,\n endContent,\n maxWidth,\n showDividers,\n className,\n style,\n ...props\n } = resolveProps(componentProps);\n\n const [internalCollapsed, setInternalCollapsed] = useState(false);\n\n // Controlled when the caller passes `collapsed`, uncontrolled otherwise.\n const isControlled = controlledCollapsed !== undefined;\n const collapsed = isControlled ? controlledCollapsed : internalCollapsed;\n\n const handleCollapseToggle = () => {\n if (!isControlled) setInternalCollapsed(!collapsed);\n onCollapseChange?.(!collapsed);\n };\n\n if (variant === 'mega') {\n return (\n <MegaMenuLayout\n ref={ref}\n variant={variant}\n collapsed={collapsed}\n logo={logo}\n items={items}\n size={size}\n minimal={minimal}\n className={className}\n maxWidth={maxWidth}\n style={style}\n {...props}\n />\n );\n }\n\n return (\n <NavigationShell\n ref={ref}\n variant={variant}\n minimal={minimal}\n collapsed={collapsed}\n className={className}\n style={style}\n {...props}\n >\n <NavigationStandardBody\n variant={variant}\n size={size}\n minimal={minimal}\n collapsed={collapsed}\n collapsible={collapsible}\n showDividers={showDividers}\n items={items}\n logo={logo}\n endContent={endContent}\n onCollapseToggle={handleCollapseToggle}\n />\n </NavigationShell>\n );\n },\n);\n\nNavigationMenu.displayName = 'NavigationMenu';\n"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/navigation/AppHeader/AppHeader.brand.tsx"],"sourcesContent":["'use client';\n\nimport Box from '@mui/material/Box/index.js';\nimport { useTheme } from '@mui/material/styles/index.js';\nimport type { Theme } from '@mui/material/styles/index.js';\nimport React from 'react';\n\nimport { rem } from '../../../tokens/relative';\nimport type { SizeValue } from '../../../tokens/scales';\n\nimport { brandGradient, initialsOf } from './AppHeader.colors';\nimport type { AppHeaderBrandProps } from './AppHeader.types';\n\n/** The mark's edge, per house size step. */\nconst MARK_PX: Record<SizeValue, number> = { xs: 24, sm: 32, md: 40, lg: 48, xl: 56 };\n\n/** Initials are set at 40% of the mark so a two-letter pair never touches the edge. */\nconst INITIALS_RATIO = 0.4;\n\n/** The mark's box, lifted out of the component to keep it inside the complexity bar. */\nfunction markSx(\n theme: Theme,\n { edge, round, showLogo, seed }: { edge: number; round: boolean; showLogo: boolean; seed: string },\n): Record<string, unknown> {\n return {\n width: edge,\n height: edge,\n flex: '0 0 auto',\n overflow: 'hidden',\n borderRadius: round ? '50%' : '30%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n // Only the initials need the gradient; a logo covers it entirely, and\n // painting it underneath would show at the corners of a transparent PNG.\n backgroundImage: showLogo ? 'none' : brandGradient(seed),\n backgroundColor: showLogo ? theme.palette.action.hover : 'transparent',\n color: theme.palette.getContrastText(seed),\n fontSize: rem(theme, Math.round(edge * INITIALS_RATIO)),\n fontWeight: 700,\n lineHeight: 1,\n letterSpacing: '0.02em',\n userSelect: 'none',\n };\n}\n\n/**\n * The mark that opens the header: the logo when there is one, the name's\n * initials on a gradient derived from the brand colour when there is not.\n *\n * Both branches occupy the SAME box, so a header does not resize when a logo\n * arrives — or when one fails to load and the initials take over, which is the\n * case a plain `<img>` renders as a torn-page glyph beside the store's name.\n */\nexport const AppHeaderBrand: React.FC<AppHeaderBrandProps> = ({\n name,\n logoUrl,\n seedColor,\n size = 'md',\n shape = 'rounded',\n className,\n dataTestId = 'app-header-brand',\n}) => {\n const theme = useTheme();\n const [broken, setBroken] = React.useState(false);\n // Keyed on the URL so a store that swaps its logo gets a fresh attempt rather\n // than inheriting the previous one's failure.\n React.useEffect(() => setBroken(false), [logoUrl]);\n\n const edge = MARK_PX[size];\n const seed = seedColor || theme.palette.primary.main;\n const showLogo = Boolean(logoUrl) && !broken;\n\n return (\n <Box\n className={className}\n data-testid={dataTestId}\n // `role=\"img\"` + the name: the initials are a picture of the brand, not\n // two letters a screen reader should spell out.\n role=\"img\"\n aria-label={name}\n sx={markSx(theme, { edge, round: shape === 'circle', showLogo, seed })}\n >\n {showLogo ? (\n <Box\n component=\"img\"\n src={logoUrl ?? undefined}\n alt=\"\"\n onError={() => setBroken(true)}\n data-testid={`${dataTestId}-logo`}\n sx={{ width: '100%', height: '100%', objectFit: 'cover', display: 'block' }}\n />\n ) : (\n <Box component=\"span\" aria-hidden data-testid={`${dataTestId}-initials`}>\n {initialsOf(name)}\n </Box>\n )}\n </Box>\n );\n};\n\nAppHeaderBrand.displayName = 'AppHeaderBrand';\n\nexport default AppHeaderBrand;\n"],"mappings":";;;;;;;;;AAEA,OAAO,SAAS;AAChB,SAAS,gBAAgB;AAEzB,OAAO,WAAW;AA+EV;AAtER,IAAM,UAAqC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG;AAGpF,IAAM,iBAAiB;AAGvB,SAAS,OACP,OACA,EAAE,MAAM,OAAO,UAAU,KAAK,GACL;AACzB,SAAO;AAAA,IACL,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,UAAU;AAAA,IACV,cAAc,QAAQ,QAAQ;AAAA,IAC9B,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,gBAAgB;AAAA;AAAA;AAAA,IAGhB,iBAAiB,WAAW,SAAS,cAAc,IAAI;AAAA,IACvD,iBAAiB,WAAW,MAAM,QAAQ,OAAO,QAAQ;AAAA,IACzD,OAAO,MAAM,QAAQ,gBAAgB,IAAI;AAAA,IACzC,UAAU,IAAI,OAAO,KAAK,MAAM,OAAO,cAAc,CAAC;AAAA,IACtD,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,YAAY;AAAA,EACd;AACF;AAUO,IAAM,iBAAgD,CAAC;AAAA,EAC5D;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP,QAAQ;AAAA,EACR;AAAA,EACA,aAAa;AACf,MAAM;AACJ,QAAM,QAAQ,SAAS;AACvB,QAAM,CAAC,QAAQ,SAAS,IAAI,MAAM,SAAS,KAAK;AAGhD,QAAM,UAAU,MAAM,UAAU,KAAK,GAAG,CAAC,OAAO,CAAC;AAEjD,QAAM,OAAO,QAAQ,IAAI;AACzB,QAAM,OAAO,aAAa,MAAM,QAAQ,QAAQ;AAChD,QAAM,WAAW,QAAQ,OAAO,KAAK,CAAC;AAEtC,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,eAAa;AAAA,MAGb,MAAK;AAAA,MACL,cAAY;AAAA,MACZ,IAAI,OAAO,OAAO,EAAE,MAAM,OAAO,UAAU,UAAU,UAAU,KAAK,CAAC;AAAA,MAEpE,qBACC;AAAA,QAAC;AAAA;AAAA,UACC,WAAU;AAAA,UACV,KAAK,WAAW;AAAA,UAChB,KAAI;AAAA,UACJ,SAAS,MAAM,UAAU,IAAI;AAAA,UAC7B,eAAa,GAAG,UAAU;AAAA,UAC1B,IAAI,EAAE,OAAO,QAAQ,QAAQ,QAAQ,WAAW,SAAS,SAAS,QAAQ;AAAA;AAAA,MAC5E,IAEA,oBAAC,OAAI,WAAU,QAAO,eAAW,MAAC,eAAa,GAAG,UAAU,aACzD,qBAAW,IAAI,GAClB;AAAA;AAAA,EAEJ;AAEJ;AAEA,eAAe,cAAc;AAE7B,IAAO,0BAAQ;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/layout/Accordion/Accordion.styles.ts"],"sourcesContent":["import { alpha } from '@mui/material/styles/index.js';\nimport type { Theme } from '@mui/material/styles/index.js';\n\nimport type { AccordionVariant } from './Accordion.types';\n\nconst BASE_TRANSITION = 'all 0.3s cubic-bezier(0.4, 0, 0.2, 1)';\n\n// Deliberately unannotated: the inferred union of literals assigns to MUI's\n// `sx`, whereas a `CSSObject` return type does not survive being spread into it.\nexport const accordionVariantStyles = (theme: Theme, variant: AccordionVariant) => {\n switch (variant) {\n case 'glass':\n return {\n backgroundColor: alpha(theme.palette.background.paper, 0.08),\n backdropFilter: 'blur(24px) saturate(180%)',\n border: `1px solid ${alpha(theme.palette.primary.main, 0.15)}`,\n borderRadius: theme.spacing(1.5),\n transition: BASE_TRANSITION,\n '&:before': {\n display: 'none',\n },\n '&:hover': {\n backgroundColor: alpha(theme.palette.background.paper, 0.12),\n border: `1px solid ${alpha(theme.palette.primary.main, 0.25)}`,\n transform: 'translateY(-1px)',\n boxShadow: `0 8px 32px ${alpha(theme.palette.primary.main, 0.12)}`,\n },\n '&.Mui-expanded': {\n backgroundColor: alpha(theme.palette.background.paper, 0.15),\n border: `1px solid ${alpha(theme.palette.primary.main, 0.3)}`,\n },\n };\n case 'bordered':\n return {\n border: `1px solid ${theme.palette.divider}`,\n borderRadius: theme.spacing(1),\n transition: BASE_TRANSITION,\n '&:before': {\n display: 'none',\n },\n '&:not(:last-child)': {\n marginBottom: theme.spacing(1),\n },\n '&:hover': {\n borderColor: theme.palette.primary.main,\n boxShadow: `0 0 0 1px ${alpha(theme.palette.primary.main, 0.1)}`,\n },\n '&.Mui-expanded': {\n borderColor: theme.palette.primary.main,\n },\n };\n case 'separated':\n return {\n boxShadow: theme.shadows[2],\n borderRadius: theme.spacing(1.5),\n transition: BASE_TRANSITION,\n '&:before': {\n display: 'none',\n },\n '&:not(:last-child)': {\n marginBottom: theme.spacing(2),\n },\n '&:hover': {\n boxShadow: theme.shadows[4],\n transform: 'translateY(-2px)',\n },\n '&.Mui-expanded': {\n boxShadow: theme.shadows[6],\n transform: 'translateY(-1px)',\n },\n };\n default:\n return {\n transition: BASE_TRANSITION,\n '&:hover': {\n backgroundColor: alpha(theme.palette.action.hover, 0.04),\n },\n };\n }\n};\n"],"mappings":";AAAA,SAAS,aAAa;AAKtB,IAAM,kBAAkB;AAIjB,IAAM,yBAAyB,CAAC,OAAc,YAA8B;AACjF,UAAQ,SAAS;AAAA,IACf,KAAK;AACH,aAAO;AAAA,QACL,iBAAiB,MAAM,MAAM,QAAQ,WAAW,OAAO,IAAI;AAAA,QAC3D,gBAAgB;AAAA,QAChB,QAAQ,aAAa,MAAM,MAAM,QAAQ,QAAQ,MAAM,IAAI,CAAC;AAAA,QAC5D,cAAc,MAAM,QAAQ,GAAG;AAAA,QAC/B,YAAY;AAAA,QACZ,YAAY;AAAA,UACV,SAAS;AAAA,QACX;AAAA,QACA,WAAW;AAAA,UACT,iBAAiB,MAAM,MAAM,QAAQ,WAAW,OAAO,IAAI;AAAA,UAC3D,QAAQ,aAAa,MAAM,MAAM,QAAQ,QAAQ,MAAM,IAAI,CAAC;AAAA,UAC5D,WAAW;AAAA,UACX,WAAW,cAAc,MAAM,MAAM,QAAQ,QAAQ,MAAM,IAAI,CAAC;AAAA,QAClE;AAAA,QACA,kBAAkB;AAAA,UAChB,iBAAiB,MAAM,MAAM,QAAQ,WAAW,OAAO,IAAI;AAAA,UAC3D,QAAQ,aAAa,MAAM,MAAM,QAAQ,QAAQ,MAAM,GAAG,CAAC;AAAA,QAC7D;AAAA,MACF;AAAA,IACF,KAAK;AACH,aAAO;AAAA,QACL,QAAQ,aAAa,MAAM,QAAQ,OAAO;AAAA,QAC1C,cAAc,MAAM,QAAQ,CAAC;AAAA,QAC7B,YAAY;AAAA,QACZ,YAAY;AAAA,UACV,SAAS;AAAA,QACX;AAAA,QACA,sBAAsB;AAAA,UACpB,cAAc,MAAM,QAAQ,CAAC;AAAA,QAC/B;AAAA,QACA,WAAW;AAAA,UACT,aAAa,MAAM,QAAQ,QAAQ;AAAA,UACnC,WAAW,aAAa,MAAM,MAAM,QAAQ,QAAQ,MAAM,GAAG,CAAC;AAAA,QAChE;AAAA,QACA,kBAAkB;AAAA,UAChB,aAAa,MAAM,QAAQ,QAAQ;AAAA,QACrC;AAAA,MACF;AAAA,IACF,KAAK;AACH,aAAO;AAAA,QACL,WAAW,MAAM,QAAQ,CAAC;AAAA,QAC1B,cAAc,MAAM,QAAQ,GAAG;AAAA,QAC/B,YAAY;AAAA,QACZ,YAAY;AAAA,UACV,SAAS;AAAA,QACX;AAAA,QACA,sBAAsB;AAAA,UACpB,cAAc,MAAM,QAAQ,CAAC;AAAA,QAC/B;AAAA,QACA,WAAW;AAAA,UACT,WAAW,MAAM,QAAQ,CAAC;AAAA,UAC1B,WAAW;AAAA,QACb;AAAA,QACA,kBAAkB;AAAA,UAChB,WAAW,MAAM,QAAQ,CAAC;AAAA,UAC1B,WAAW;AAAA,QACb;AAAA,MACF;AAAA,IACF;AACE,aAAO;AAAA,QACL,YAAY;AAAA,QACZ,WAAW;AAAA,UACT,iBAAiB,MAAM,MAAM,QAAQ,OAAO,OAAO,IAAI;AAAA,QACzD;AAAA,MACF;AAAA,EACJ;AACF;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/navigation/NavigationMenu/NavigationMenuItem.tsx"],"sourcesContent":["import ChevronRight from '@mui/icons-material/ChevronRight';\nimport ExpandMore from '@mui/icons-material/ExpandMore';\nimport Box from '@mui/material/Box/index.js';\nimport Collapse from '@mui/material/Collapse/index.js';\nimport Fade from '@mui/material/Fade/index.js';\nimport Grow from '@mui/material/Grow/index.js';\nimport List from '@mui/material/List/index.js';\nimport ListItem from '@mui/material/ListItem/index.js';\nimport ListItemButton from '@mui/material/ListItemButton/index.js';\nimport ListItemIcon from '@mui/material/ListItemIcon/index.js';\nimport ListItemText from '@mui/material/ListItemText/index.js';\nimport Popover from '@mui/material/Popover/index.js';\nimport { alpha, styled } from '@mui/material/styles/index.js';\nimport React, { } from 'react';\n\nimport { useMenuItemState } from './NavigationMenuItem.hooks';\nimport { navItemButtonStyles, pulseGlow } from './NavigationMenu.styles';\nimport type { NavigationMenuItem } from './NavigationMenu.types';\nimport { onMedia, shadowInk, uiInk } from '../../../tokens/ink';\nimport { sxRem } from '../../../tokens/relative';\n\nconst StyledListItem = styled(ListItem, {\n shouldForwardProp: (prop) => !['variant', 'active', 'size', 'level'].includes(prop as string) })<{ variant?: string; active?: boolean; size?: string; level?: number }>(\n ({ theme, variant, level = 0 }) => ({\n padding: 0,\n ...(variant === 'horizontal' && {\n width: 'auto' }),\n ...(level > 0 && {\n paddingLeft: theme.spacing(2 * level) }) }),\n);\n\nconst StyledListItemButton = styled(ListItemButton, {\n shouldForwardProp: (prop) => !['variant', 'active', 'size', 'collapsed', 'minimal'].includes(prop as string) })<{ variant?: string; active?: boolean; size?: string; collapsed?: boolean; minimal?: boolean }>(\n ({ theme, variant, active, size, collapsed, minimal }) => ({\n ...navItemButtonStyles({ theme, variant, active, size, collapsed, minimal }) }),\n);\n\ninterface MenuItemRendererProps {\n item: NavigationMenuItem;\n variant: string;\n size: string;\n collapsed: boolean;\n minimal: boolean;\n level: number;\n onItemClick?: (item: NavigationMenuItem) => void;\n}\n\n// Hover intent and open/anchor state live in NavigationMenuItem.hooks.\n\n// The flyout a horizontal menu opens on hover.\nconst MenuItemPopover: React.FC<{\n anchorEl: HTMLElement | null;\n item: NavigationMenuItem;\n size?: string;\n minimal?: boolean;\n onClose: () => void;\n onMouseEnter: () => void;\n onMouseLeave: () => void;\n onItemClick?: (item: NavigationMenuItem) => void;\n}> = ({ anchorEl, item, size, minimal, onClose, onMouseEnter, onMouseLeave, onItemClick }) => (\n <Popover\n open={Boolean(anchorEl)}\n anchorEl={anchorEl}\n onClose={onClose}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'left' }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'left' }}\n disableRestoreFocus\n sx={{\n pointerEvents: 'none' }}\n slotProps={{\n paper: {\n onMouseEnter,\n onMouseLeave,\n sx: {\n pointerEvents: 'auto',\n mt: 0.5,\n borderRadius: 2,\n boxShadow: (theme) => `0 12px 40px ${shadowInk(theme, 0.15)}`,\n border: (theme) => `1px solid ${alpha(theme.palette.divider, 0.1)}`,\n background: (theme) =>\n `linear-gradient(145deg, ${theme.palette.background.paper} 0%, ${alpha(theme.palette.background.default, 0.95)} 100%)`,\n backdropFilter: 'blur(10px)',\n minWidth: 200 } } }}\n >\n <List sx={{ p: 1 }}>\n {item.children?.map((child) => {\n const childHasChildren = child.children && child.children.length > 0;\n\n // Only close popover when clicking leaf nodes (items without children)\n if (childHasChildren) {\n return renderMenuItem(child, 'vertical', size, false, minimal, 0, onItemClick);\n }\n\n // For leaf nodes, wrap with onClick to close the popover\n return (\n <Box\n key={child.id}\n onClick={onClose}\n >\n {renderMenuItem(child, 'vertical', size, false, minimal, 0, onItemClick)}\n </Box>\n );\n })}\n </List>\n </Popover>\n);\n\n// Label, badge/chip and the expand chevron, faded out when the rail collapses.\nconst MenuItemLabel: React.FC<{\n item: NavigationMenuItem;\n collapsed?: boolean;\n minimal?: boolean;\n open: boolean;\n hasChildren?: boolean;\n size?: string;\n variant?: string;\n}> = ({ item, collapsed, open, hasChildren, size, variant }) => (\n <Fade in={!collapsed} timeout={400}>\n <Box sx={{ display: 'flex', alignItems: 'center', width: '100%', gap: 1 }}>\n <ListItemText\n primary={item.label}\n secondary={item.description}\n sx={{\n flex: 1,\n minWidth: 0, // Allows text truncation if needed\n }}\n slotProps={{\n primary: {\n variant: size === 'sm' ? 'body2' : size === 'lg' ? 'h6' : 'body1',\n sx: {\n fontWeight: item.active ? 600 : 400,\n transition: 'all 0.3s ease' } },\n secondary: {\n sx: {\n opacity: 0.7,\n transition: 'all 0.3s ease' } } }}\n />\n {item.badge && (\n <Box\n component=\"span\"\n sx={{\n flexShrink: 0,\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n minWidth: 20,\n height: 20,\n px: 0.75,\n borderRadius: '10px',\n fontSize: sxRem(12),\n fontWeight: 600,\n color: (theme) => onMedia(theme),\n background: (theme) =>\n `linear-gradient(135deg, ${uiInk(theme).attention.from} 0%, ${uiInk(theme).attention.to} 100%)`,\n boxShadow: (theme) => `0 2px 8px ${alpha(uiInk(theme).attention.glow, 0.4)}`,\n animation:\n typeof item.badge === 'number' && item.badge > 0\n ? `${pulseGlow} 2s infinite`\n : 'none' }}\n >\n {item.badge}\n </Box>\n )}\n {hasChildren && (\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n flexShrink: 0, // Prevents expand icon from shrinking\n transition: 'transform 0.3s ease',\n transform: open ? 'rotate(180deg)' : 'rotate(0deg)' }}\n >\n {variant === 'horizontal' ? <ChevronRight fontSize=\"small\" /> : <ExpandMore />}\n </Box>\n )}\n </Box>\n </Fade>\n);\n\n// The row itself: icon, label, badge and the expand chevron.\nconst MenuItemContent: React.FC<{\n item: NavigationMenuItem;\n variant?: string;\n size?: string;\n active?: boolean;\n collapsed?: boolean;\n minimal?: boolean;\n level: number;\n open: boolean;\n hasChildren?: boolean;\n onClick: (event: React.MouseEvent<HTMLElement>) => void;\n onMouseEnter: (event: React.MouseEvent<HTMLElement>) => void;\n onMouseLeave: () => void;\n}> = ({\n item,\n variant,\n size,\n active: _active,\n collapsed,\n minimal,\n level,\n open,\n hasChildren,\n onClick,\n onMouseEnter,\n onMouseLeave }) => (\n<StyledListItem key={item.id} variant={variant} active={item.active} size={size} level={level}>\n <StyledListItemButton\n variant={variant}\n active={item.active}\n size={size}\n collapsed={collapsed}\n minimal={minimal}\n disabled={item.disabled}\n onClick={onClick}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n {...(item.href && !hasChildren\n ? {\n component: 'a' as React.ElementType,\n href: item.href,\n target: item.target }\n : {})}\n >\n {item.icon && (\n <ListItemIcon\n sx={{\n minWidth: collapsed ? 0 : 40,\n justifyContent: 'center',\n transition: 'all 0.3s ease',\n '& svg': {\n filter: (theme) => (item.active ? `drop-shadow(0 2px 8px ${shadowInk(theme, 0.15)})` : 'none'),\n transition: 'all 0.3s ease' } }}\n >\n <Grow in={true} timeout={600}>\n <Box>{item.icon}</Box>\n </Grow>\n </ListItemIcon>\n )}\n {!collapsed && (\n <MenuItemLabel\n item={item}\n collapsed={collapsed}\n minimal={minimal}\n open={open}\n hasChildren={hasChildren}\n size={size}\n variant={variant}\n />\n )}\n </StyledListItemButton>\n </StyledListItem>\n);\n\nconst MenuItemRenderer: React.FC<MenuItemRendererProps> = ({\n item,\n variant,\n size,\n collapsed,\n minimal,\n level,\n onItemClick }) => {\n const {\n open,\n anchorEl,\n hasChildren,\n handleClick,\n handleMouseEnter,\n handleMouseLeave,\n handlePopoverMouseEnter,\n handlePopoverMouseLeave,\n closePopover } = useMenuItemState({ item, variant, onItemClick });\n\n const itemContent = (\n <MenuItemContent\n item={item}\n variant={variant}\n size={size}\n active={item.active}\n collapsed={collapsed}\n minimal={minimal}\n level={level}\n open={open}\n hasChildren={hasChildren}\n onClick={handleClick}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n />\n );\n\n // Horizontal variant with children - use Popover\n if (hasChildren && variant === 'horizontal') {\n return (\n <React.Fragment key={item.id}>\n {itemContent}\n <MenuItemPopover\n anchorEl={anchorEl}\n item={item}\n size={size}\n minimal={minimal}\n onClose={closePopover}\n onMouseEnter={handlePopoverMouseEnter}\n onMouseLeave={handlePopoverMouseLeave}\n onItemClick={onItemClick}\n />\n </React.Fragment>\n );\n }\n\n // Vertical variant with children - use Collapse\n if (hasChildren && variant !== 'horizontal') {\n return (\n <React.Fragment key={item.id}>\n {itemContent}\n {!collapsed && (\n <Collapse in={open} timeout=\"auto\" unmountOnExit>\n <List component=\"div\" disablePadding>\n {item.children?.map((child) =>\n renderMenuItem(child, variant, size, collapsed, minimal, level + 1, onItemClick),\n )}\n </List>\n </Collapse>\n )}\n </React.Fragment>\n );\n }\n\n return itemContent;\n};\n\nexport const renderMenuItem = (\n item: NavigationMenuItem,\n variant: string = 'vertical',\n size: string = 'md',\n collapsed: boolean = false,\n minimal: boolean = false,\n level: number = 0,\n onItemClick?: (item: NavigationMenuItem) => void,\n): React.ReactNode => (\n <MenuItemRenderer\n key={item.id}\n item={item}\n variant={variant}\n size={size}\n collapsed={collapsed}\n minimal={minimal}\n level={level}\n onItemClick={onItemClick}\n />\n );\n"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/layout/Spacer/Spacer.tsx"],"sourcesContent":["import Box from '@mui/material/Box/index.js';\nimport { useTheme } from '@mui/material/styles/index.js';\nimport React from 'react';\n\nimport { SPACER_FLEX_GROW, SPACER_FLEX_SHRINK, spacerDimensions } from './Spacer.metrics';\nimport type { SpacerProps } from './Spacer.types';\nimport { resolveTestId } from '../../../platform/test-id';\n\nexport const Spacer: React.FC<SpacerProps> = ({\n size,\n direction,\n width,\n height,\n flex = false,\n className,\n ...testIdProps\n}) => {\n const theme = useTheme();\n\n // From the shared metrics, not a table of our own: the native `Spacer` reads\n // the same units, so the two renderers cannot disagree on a step.\n const dimensions = spacerDimensions({ size, direction, width, height }, (units) => theme.spacing(units));\n\n return (\n <Box\n className={className}\n data-testid={resolveTestId(testIdProps)}\n sx={{\n width: dimensions.width,\n height: dimensions.height,\n flex: flex ? SPACER_FLEX_GROW : undefined,\n flexShrink: SPACER_FLEX_SHRINK,\n pointerEvents: 'none',\n userSelect: 'none',\n }}\n aria-hidden=\"true\"\n />\n );\n};\n"],"mappings":";;;;;;;;;;AAAA,OAAO,SAAS;AAChB,SAAS,gBAAgB;AAuBrB;AAhBG,IAAM,SAAgC,CAAC;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM,QAAQ,SAAS;AAIvB,QAAM,aAAa,iBAAiB,EAAE,MAAM,WAAW,OAAO,OAAO,GAAG,CAAC,UAAU,MAAM,QAAQ,KAAK,CAAC;AAEvG,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,eAAa,cAAc,WAAW;AAAA,MACtC,IAAI;AAAA,QACF,OAAO,WAAW;AAAA,QAClB,QAAQ,WAAW;AAAA,QACnB,MAAM,OAAO,mBAAmB;AAAA,QAChC,YAAY;AAAA,QACZ,eAAe;AAAA,QACf,YAAY;AAAA,MACd;AAAA,MACA,eAAY;AAAA;AAAA,EACd;AAEJ;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/navigation/ContextMenu/ContextMenu.tsx"],"sourcesContent":["import Divider from '@mui/material/Divider/index.js';\nimport ListItemIcon from '@mui/material/ListItemIcon/index.js';\nimport ListItemText from '@mui/material/ListItemText/index.js';\nimport Menu from '@mui/material/Menu/index.js';\nimport MenuItem from '@mui/material/MenuItem/index.js';\nimport Typography from '@mui/material/Typography/index.js';\nimport { alpha, styled } from '@mui/material/styles/index.js';\nimport type { CSSObject, Theme } from '@mui/material/styles/index.js';\nimport React, { cloneElement, isValidElement,useState } from 'react';\n\nimport type { ContextMenuItem,ContextMenuProps } from './ContextMenu.types';\nimport { absoluteInk, neutralTones, shadowInk, sheen } from '../../../tokens/ink';\nimport { rem } from '../../../tokens/relative';\n\nconst StyledMenu = styled(Menu, {\n shouldForwardProp: (prop) => prop !== 'customVariant' && prop !== 'size',\n})<{ customVariant?: string; size?: string }>(({ theme, customVariant, size }) => ({\n '& .MuiPaper-root': {\n minWidth: 160,\n borderRadius: theme.spacing(1),\n\n ...(customVariant === 'glass' && {\n backgroundColor: alpha(theme.palette.background.paper, 0.85),\n backdropFilter: 'blur(20px)',\n border: `1px solid ${alpha(theme.palette.divider, 0.1)}`,\n boxShadow: `0 8px 32px ${shadowInk(theme, 0.12)}`,\n }),\n\n ...(customVariant === 'dark' && {\n backgroundColor: alpha(neutralTones(theme).inverseSurface, 0.95),\n color: absoluteInk(theme).white,\n '& .MuiMenuItem-root': {\n color: absoluteInk(theme).white,\n },\n '& .MuiListItemIcon-root': {\n color: absoluteInk(theme).white,\n },\n '& .MuiDivider-root': {\n borderColor: sheen(theme, 0.12),\n },\n }),\n\n ...(size === 'sm' && {\n '& .MuiMenuItem-root': {\n fontSize: rem(theme, 14),\n minHeight: 32,\n padding: theme.spacing(0.5, 1.5),\n },\n }),\n\n ...(size === 'lg' && {\n '& .MuiMenuItem-root': {\n fontSize: rem(theme, 18),\n minHeight: 48,\n padding: theme.spacing(1.5, 2),\n },\n }),\n },\n}));\n\n// `color` names a palette key (`success`, `warning`, …) that MUI's Theme type does\n// not index, so it is read structurally and falls back to primary.\nconst paletteColor = (theme: Theme, color: string): string =>\n (theme.palette as unknown as Record<string, { main?: string }>)[color]?.main ||\n theme.palette.primary.main;\n\nconst accentStyles = (theme: Theme, color: string): CSSObject => {\n const main = paletteColor(theme, color);\n\n return {\n color: main,\n '& .MuiListItemIcon-root': { color: main },\n '&:hover': { backgroundColor: alpha(main, 0.08) },\n };\n};\n\nconst StyledMenuItem = styled(MenuItem, {\n shouldForwardProp: (prop) => !['color', 'dangerous'].includes(prop as string),\n})<{ color?: string; dangerous?: boolean }>(({ theme, color, dangerous }) => ({\n borderRadius: theme.spacing(0.5),\n margin: theme.spacing(0.25, 0.5),\n transition: 'all 0.2s ease',\n\n '&:hover': {\n backgroundColor: alpha(dangerous ? theme.palette.error.main : theme.palette.primary.main, 0.08),\n },\n\n ...(dangerous && {\n color: theme.palette.error.main,\n '& .MuiListItemIcon-root': {\n color: theme.palette.error.main,\n },\n }),\n\n ...(color && color !== 'default' && !dangerous ? accentStyles(theme, color) : {}),\n}));\n\nconst MenuHeader = styled(Typography)(({ theme }) => ({\n padding: theme.spacing(1, 2),\n fontSize: rem(theme, 12),\n fontWeight: 600,\n textTransform: 'uppercase',\n color: theme.palette.text.secondary,\n letterSpacing: 0.5,\n}));\n\nconst ShortcutText = styled(Typography)(({ theme }) => ({\n fontSize: rem(theme, 12),\n color: theme.palette.text.secondary,\n marginLeft: 'auto',\n paddingLeft: theme.spacing(2),\n}));\n\nconst renderMenuItem = (\n item: ContextMenuItem,\n handleItemClick: (item: ContextMenuItem) => void,\n size?: string,\n) => {\n if (item.type === 'divider') {\n return <Divider key={item.id} sx={{ my: 0.5 }} />;\n }\n\n if (item.type === 'header') {\n return <MenuHeader key={item.id}>{item.label}</MenuHeader>;\n }\n\n const hasIcon = !!item.icon;\n\n return (\n <StyledMenuItem\n key={item.id}\n disabled={item.disabled}\n onClick={() => handleItemClick(item)}\n color={item.color}\n dangerous={item.dangerous}\n >\n {hasIcon && (\n <ListItemIcon sx={{ minWidth: size === 'sm' ? 32 : 40 }}>{item.icon}</ListItemIcon>\n )}\n <ListItemText primary={item.label} />\n {item.shortcut && <ShortcutText variant=\"caption\">{item.shortcut}</ShortcutText>}\n </StyledMenuItem>\n );\n};\n\ninterface TriggerOptions {\n disabled: boolean;\n triggerClassName?: string;\n triggerStyle?: React.CSSProperties;\n}\n\n// The trigger is whatever the caller passed as children. A single element is\n// cloned, so the handler and cursor land on the caller's own node; anything else\n// gets wrapped in a div that can carry them.\nconst buildTrigger = (\n children: React.ReactNode,\n onContextMenu: (event: React.MouseEvent) => void,\n { disabled, triggerClassName, triggerStyle }: TriggerOptions,\n) => {\n const cursor = disabled ? 'default' : 'context-menu';\n\n if (!isValidElement(children)) {\n return (\n <div\n onContextMenu={onContextMenu}\n className={triggerClassName}\n style={{ ...triggerStyle, cursor }}\n >\n {children}\n </div>\n );\n }\n\n const element = children as React.ReactElement<{\n onContextMenu?: (event: React.MouseEvent) => void;\n className?: string;\n style?: React.CSSProperties;\n }>;\n\n return cloneElement(element, {\n onContextMenu,\n className: [\n element.props.className,\n triggerClassName,\n !disabled ? 'context-menu-trigger' : '',\n ]\n .filter(Boolean)\n .join(' '),\n style: { ...element.props.style, ...triggerStyle, cursor },\n });\n};\n\nexport const ContextMenu = React.forwardRef<HTMLDivElement, ContextMenuProps>(\n (\n {\n variant = 'default',\n items,\n children,\n disabled = false,\n onOpen,\n onClose,\n size = 'md',\n triggerClassName,\n triggerStyle,\n ...menuProps\n },\n ref,\n ) => {\n const [contextMenu, setContextMenu] = useState<{\n mouseX: number;\n mouseY: number;\n } | null>(null);\n\n const handleContextMenu = (event: React.MouseEvent) => {\n if (disabled) return;\n\n event.preventDefault();\n setContextMenu(\n contextMenu === null\n ? {\n mouseX: event.clientX + 2,\n mouseY: event.clientY - 6,\n }\n : null,\n );\n onOpen?.(event);\n };\n\n const handleClose = () => {\n setContextMenu(null);\n onClose?.();\n };\n\n const handleItemClick = (item: ContextMenuItem) => {\n if (item.onClick) {\n item.onClick();\n }\n handleClose();\n };\n\n const triggerElement = buildTrigger(children, handleContextMenu, {\n disabled,\n triggerClassName,\n triggerStyle,\n });\n\n return (\n <>\n {triggerElement}\n <StyledMenu\n ref={ref}\n open={contextMenu !== null}\n onClose={handleClose}\n anchorReference=\"anchorPosition\"\n anchorPosition={\n contextMenu !== null ? { top: contextMenu.mouseY, left: contextMenu.mouseX } : undefined\n }\n customVariant={variant}\n size={size}\n {...menuProps}\n >\n {items.map((item) => renderMenuItem(item, handleItemClick, size))}\n </StyledMenu>\n </>\n );\n },\n);\n\nContextMenu.displayName = 'ContextMenu';\n"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/navigation/Pagination/PaginationParts.tsx"],"sourcesContent":["import Box from '@mui/material/Box/index.js';\nimport FormControl from '@mui/material/FormControl/index.js';\nimport MenuItem from '@mui/material/MenuItem/index.js';\nimport Select from '@mui/material/Select/index.js';\nimport Typography from '@mui/material/Typography/index.js';\nimport { styled } from '@mui/material/styles/index.js';\nimport type { FC } from 'react';\nimport React from 'react';\n\nimport { scaleFor } from './Pagination.helpers';\nimport { asFieldSize, fieldTextFieldStyles } from '../../../tokens/field-height';\n\n// Kept module-local: styled() components cannot be exported across a module\n// boundary here without tripping TS2742.\nconst ItemsPerPageContainer = styled(Box)(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(1),\n}));\n\nconst PageInfoContainer = styled(Box)(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(1),\n}));\n\nexport interface ItemsPerPageSelectProps {\n /** The label in front of the select. REQUIRED — it was `\"Show:\"`. */\n pageSizeLabel: string;\n value: number;\n options: number[];\n size: string;\n disabled: boolean;\n testId: string;\n onChange: (value: number) => void;\n}\n\nexport const ItemsPerPageSelect: FC<ItemsPerPageSelectProps> = ({\n pageSizeLabel,\n value,\n options,\n size,\n disabled,\n testId,\n onChange,\n}) => (\n <ItemsPerPageContainer>\n <Typography variant=\"body2\" color=\"text.secondary\">\n {pageSizeLabel}\n </Typography>\n <FormControl size=\"small\" sx={(theme) => ({ minWidth: 80, ...fieldTextFieldStyles(theme, asFieldSize(size)) })}>\n <Select\n value={value}\n onChange={(event) => onChange(event.target.value as number)}\n disabled={disabled}\n data-testid={testId}\n sx={{\n '& .MuiSelect-select': {\n fontSize: scaleFor(size, ['0.875rem', '1rem', '1.125rem']),\n },\n }}\n >\n {options.map((option) => (\n <MenuItem key={option} value={option}>\n {option}\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n </ItemsPerPageContainer>\n);\n\nexport const PageInfo: FC<{ size: string; testId: string; children: React.ReactNode }> = ({\n size,\n testId,\n children,\n}) => (\n <PageInfoContainer>\n <Typography\n variant=\"body2\"\n color=\"text.secondary\"\n fontSize={scaleFor(size, ['0.75rem', '0.875rem', '1rem'])}\n data-testid={testId}\n >\n {children}\n </Typography>\n </PageInfoContainer>\n);\n"],"mappings":";;;;;;;;;AAAA,OAAO,SAAS;AAChB,OAAO,iBAAiB;AACxB,OAAO,cAAc;AACrB,OAAO,YAAY;AACnB,OAAO,gBAAgB;AACvB,SAAS,cAAc;AAyCrB,SACE,KADF;AAhCF,IAAM,wBAAwB,OAAO,GAAG,EAAE,CAAC,EAAE,MAAM,OAAO;AAAA,EACxD,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,KAAK,MAAM,QAAQ,CAAC;AACtB,EAAE;AAEF,IAAM,oBAAoB,OAAO,GAAG,EAAE,CAAC,EAAE,MAAM,OAAO;AAAA,EACpD,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,KAAK,MAAM,QAAQ,CAAC;AACtB,EAAE;AAaK,IAAM,qBAAkD,CAAC;AAAA,EAC9D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MACE,qBAAC,yBACC;AAAA,sBAAC,cAAW,SAAQ,SAAQ,OAAM,kBAC/B,yBACH;AAAA,EACA,oBAAC,eAAY,MAAK,SAAQ,IAAI,CAAC,WAAW,EAAE,UAAU,IAAI,GAAG,qBAAqB,OAAO,YAAY,IAAI,CAAC,EAAE,IAC1G;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,UAAU,CAAC,UAAU,SAAS,MAAM,OAAO,KAAe;AAAA,MAC1D;AAAA,MACA,eAAa;AAAA,MACb,IAAI;AAAA,QACF,uBAAuB;AAAA,UACrB,UAAU,SAAS,MAAM,CAAC,YAAY,QAAQ,UAAU,CAAC;AAAA,QAC3D;AAAA,MACF;AAAA,MAEC,kBAAQ,IAAI,CAAC,WACZ,oBAAC,YAAsB,OAAO,QAC3B,oBADY,MAEf,CACD;AAAA;AAAA,EACH,GACF;AAAA,GACF;AAGK,IAAM,WAA4E,CAAC;AAAA,EACxF;AAAA,EACA;AAAA,EACA;AACF,MACE,oBAAC,qBACC;AAAA,EAAC;AAAA;AAAA,IACC,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,UAAU,SAAS,MAAM,CAAC,WAAW,YAAY,MAAM,CAAC;AAAA,IACxD,eAAa;AAAA,IAEZ;AAAA;AACH,GACF;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/utility/AspectRatio/AspectRatio.tsx"],"sourcesContent":["import Box from '@mui/material/Box/index.js';\nimport React from 'react';\n\nimport type { AspectRatioProps } from './AspectRatio.types';\n\nexport const AspectRatio: React.FC<AspectRatioProps> = ({\n children,\n variant = '16:9',\n ratio,\n maxWidth,\n maxHeight,\n dataTestId,\n sx,\n ...props\n}) => {\n const getAspectRatio = () => {\n if (variant === 'custom' && ratio) {\n return ratio;\n }\n\n switch (variant) {\n case '16:9':\n return 16 / 9;\n case '4:3':\n return 4 / 3;\n case '1:1':\n return 1;\n case '3:2':\n return 3 / 2;\n case '21:9':\n return 21 / 9;\n default:\n return 16 / 9;\n }\n };\n\n const aspectRatio = getAspectRatio();\n\n return (\n <Box\n data-testid={dataTestId}\n sx={{\n position: 'relative',\n width: '100%',\n maxWidth,\n maxHeight,\n ...sx,\n }}\n {...props}\n >\n <Box\n sx={{\n width: '100%',\n paddingTop: `${(1 / aspectRatio) * 100}%`,\n position: 'relative',\n }}\n >\n <Box\n sx={{\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n overflow: 'hidden',\n }}\n >\n {children}\n </Box>\n </Box>\n </Box>\n );\n};\n"],"mappings":";AAAA,OAAO,SAAS;AAyDR;AApDD,IAAM,cAA0C,CAAC;AAAA,EACtD;AAAA,EACA,UAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM,iBAAiB,MAAM;AAC3B,QAAI,YAAY,YAAY,OAAO;AACjC,aAAO;AAAA,IACT;AAEA,YAAQ,SAAS;AAAA,MACf,KAAK;AACH,eAAO,KAAK;AAAA,MACd,KAAK;AACH,eAAO,IAAI;AAAA,MACb,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO,IAAI;AAAA,MACb,KAAK;AACH,eAAO,KAAK;AAAA,MACd;AACE,eAAO,KAAK;AAAA,IAChB;AAAA,EACF;AAEA,QAAM,cAAc,eAAe;AAEnC,SACE;AAAA,IAAC;AAAA;AAAA,MACC,eAAa;AAAA,MACb,IAAI;AAAA,QACF,UAAU;AAAA,QACV,OAAO;AAAA,QACP;AAAA,QACA;AAAA,QACA,GAAG;AAAA,MACL;AAAA,MACC,GAAG;AAAA,MAEJ;AAAA,QAAC;AAAA;AAAA,UACC,IAAI;AAAA,YACF,OAAO;AAAA,YACP,YAAY,GAAI,IAAI,cAAe,GAAG;AAAA,YACtC,UAAU;AAAA,UACZ;AAAA,UAEA;AAAA,YAAC;AAAA;AAAA,cACC,IAAI;AAAA,gBACF,UAAU;AAAA,gBACV,KAAK;AAAA,gBACL,MAAM;AAAA,gBACN,OAAO;AAAA,gBACP,QAAQ;AAAA,gBACR,SAAS;AAAA,gBACT,YAAY;AAAA,gBACZ,gBAAgB;AAAA,gBAChB,UAAU;AAAA,cACZ;AAAA,cAEC;AAAA;AAAA,UACH;AAAA;AAAA,MACF;AAAA;AAAA,EACF;AAEJ;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/typography/Blockquote/Blockquote.tsx"],"sourcesContent":["import FormatQuote from '@mui/icons-material/FormatQuote';\nimport type { Theme } from '@mui/material/styles/index.js';\nimport Box from '@mui/material/Box/index.js';\nimport Typography from '@mui/material/Typography/index.js';\nimport { alpha, styled } from '@mui/material/styles/index.js';\nimport React from 'react';\n\nimport type { BlockquoteProps } from './Blockquote.types';\nimport { absoluteInk, controlNeutral, neutralTones } from '../../../tokens/ink';\nimport { rem } from '../../../tokens/relative';\n\nconst getColorFromTheme = (theme: Theme, color: string) => {\n if (color === 'neutral') {\n const { main, light, dark } = controlNeutral(theme);\n return { main, light, dark };\n }\n\n const colorMap: Record<string, typeof theme.palette.primary> = {\n primary: theme.palette.primary,\n secondary: theme.palette.secondary,\n success: theme.palette.success,\n warning: theme.palette.warning,\n info: theme.palette.info,\n danger: theme.palette.error,\n };\n\n return colorMap[color] || theme.palette.primary;\n};\n\nconst StyledBlockquote = styled('blockquote', {\n shouldForwardProp: (prop) => !['customVariant', 'customColor'].includes(prop as string),\n})<{\n customVariant?: string;\n customColor?: string;\n}>(({ theme, customVariant = 'default', customColor = 'neutral' }) => {\n const colorPalette = getColorFromTheme(theme, customColor);\n\n const baseStyles = {\n margin: '1.5em 0',\n padding: 0,\n position: 'relative' as const,\n fontFamily: theme.typography.body1.fontFamily,\n fontSize: rem(theme, 18),\n lineHeight: 1.6,\n fontStyle: 'italic',\n color: theme.palette.text.primary,\n };\n\n // Return styles based on variant\n if (customVariant === 'bordered') {\n return {\n ...baseStyles,\n padding: theme.spacing(3),\n border: `2px solid ${alpha(colorPalette.main, 0.2)}`,\n borderRadius: theme.shape.borderRadius * 2,\n backgroundColor: alpha(colorPalette.main, 0.03),\n '&::before': {\n content: '\"\"',\n position: 'absolute',\n top: -1,\n left: -1,\n right: -1,\n bottom: -1,\n background: `linear-gradient(135deg, ${colorPalette.main}, ${colorPalette.light})`,\n borderRadius: theme.shape.borderRadius * 2,\n padding: '2px',\n WebkitMask: `linear-gradient(${absoluteInk(theme).white} 0 0) content-box, linear-gradient(${absoluteInk(theme).white} 0 0)`,\n WebkitMaskComposite: 'exclude',\n mask: `linear-gradient(${absoluteInk(theme).white} 0 0) content-box, linear-gradient(${absoluteInk(theme).white} 0 0)`,\n maskComposite: 'exclude',\n },\n };\n }\n\n if (customVariant === 'citation') {\n return {\n ...baseStyles,\n padding: theme.spacing(2, 3),\n backgroundColor:\n theme.palette.mode === 'dark'\n ? alpha(theme.palette.background.paper, 0.8)\n : alpha(neutralTones(theme).canvas, 0.95),\n backdropFilter: theme.palette.mode === 'dark' ? 'blur(10px)' : 'none',\n border: `1px solid ${alpha(theme.palette.divider, 0.2)}`,\n borderRadius: theme.shape.borderRadius * 2,\n boxShadow: theme.palette.mode === 'dark' ? theme.shadows[4] : 'none',\n textAlign: 'center' as const,\n };\n }\n\n // Default variant\n return {\n ...baseStyles,\n paddingLeft: theme.spacing(3),\n borderLeft: `4px solid ${colorPalette.main}`,\n backgroundColor: alpha(colorPalette.main, 0.05),\n padding: theme.spacing(2, 3),\n borderRadius: theme.shape.borderRadius,\n };\n});\n\nconst QuoteIcon = styled(FormatQuote)<{ customColor: string }>(({ theme, customColor }) => {\n const colorPalette = getColorFromTheme(theme, customColor);\n \n return {\n position: 'absolute',\n top: theme.spacing(1),\n left: theme.spacing(1),\n fontSize: rem(theme, 32),\n opacity: 0.3,\n transform: 'rotate(180deg)',\n color: colorPalette.main,\n };\n});\n\nconst CitationContainer = styled(Box)(({ theme }) => ({\n marginTop: theme.spacing(2),\n textAlign: 'right',\n fontStyle: 'normal',\n opacity: 0.8,\n}));\n\nconst AuthorName = styled(Typography)(({ theme }) => ({\n fontWeight: 600,\n fontSize: rem(theme, 14),\n marginBottom: theme.spacing(0.5),\n}));\n\nconst SourceName = styled(Typography)(({ theme }) => ({\n fontSize: rem(theme, 12),\n opacity: 0.7,\n}));\n\nexport const Blockquote = React.forwardRef<globalThis.HTMLQuoteElement, BlockquoteProps>(\n ({ variant = 'default', author, source, color = 'neutral', children, ...props }, ref) => {\n const showCitation = author || source;\n const showIcon = variant === 'bordered' || variant === 'citation';\n\n return (\n <StyledBlockquote ref={ref} customVariant={variant} customColor={color} {...props}>\n {showIcon && <QuoteIcon customColor={color} />}\n\n <Typography\n component=\"div\"\n sx={{\n fontSize: 'inherit',\n lineHeight: 'inherit',\n fontStyle: 'inherit',\n color: 'inherit',\n margin: 0,\n }}\n >\n {children}\n </Typography>\n\n {showCitation && (\n <CitationContainer>\n {author && <AuthorName>— {author}</AuthorName>}\n {source && <SourceName>{source}</SourceName>}\n </CitationContainer>\n )}\n </StyledBlockquote>\n );\n },\n);\n\nBlockquote.displayName = 'Blockquote';"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/form/DateRangePicker/DateRangePickerQuickList.tsx"],"sourcesContent":["/**\n * The quick-pick column beside the calendar.\n *\n * These are BUTTONS, not links or list rows: each one sets the range and the\n * pressed one stays visibly pressed, which is what `aria-pressed` says out\n * loud. (A listbox with `aria-selected` would model it too — the rule is to\n * pick one and use it for every entry, so a reader's screen reader describes\n * the whole column the same way.)\n *\n * An over-cap entry is `aria-disabled` and keeps its place in the tab order,\n * with the reason rendered under the label. Removing it, or quietly shortening\n * the window it hands back, both answer \"why can't I have this year?\" with\n * silence.\n */\nimport Box from '@mui/material/Box/index.js';\nimport type { SxProps, Theme } from '@mui/material/styles/index.js';\nimport React, { useId } from 'react';\n\nimport type { ResolvedQuickRange } from './DateRangePicker.types';\nimport { sxRem } from '../../../tokens/relative';\n\nconst optionSx = (active: boolean, overMax: boolean): SxProps<Theme> => ({\n display: 'block',\n // Full-width rows in the side column; pills in the narrow row. A fixed full\n // width in both would make the narrow layout nine stacked lines.\n width: { xs: 'auto', md: '100%' },\n // A pill must not be squeezed by its neighbours — the row SCROLLS rather\n // than compressing \"Este trimestre\" into two characters and an ellipsis.\n flex: { xs: '0 0 auto', md: '0 1 auto' },\n textAlign: 'left',\n font: 'inherit',\n fontSize: sxRem(14),\n fontWeight: active ? 600 : 400,\n lineHeight: 1.4,\n px: 1.5,\n py: 0.75,\n whiteSpace: { xs: 'nowrap', md: 'normal' },\n border: '1px solid',\n // Narrow, an entry has to look tappable on its own, with no column and no\n // rule to group it — so the pill carries a visible edge. Beside the calendar\n // the group already reads as a list and a border on every row would be nine\n // boxes where the selected one should be the only marked thing.\n borderColor: active ? 'primary.main' : { xs: 'divider', md: 'transparent' },\n borderRadius: { xs: 999, md: 1 },\n cursor: overMax ? 'not-allowed' : 'pointer',\n color: overMax ? 'text.disabled' : active ? 'primary.main' : 'text.primary',\n backgroundColor: active ? 'action.selected' : 'transparent',\n '&:hover': { backgroundColor: overMax ? 'transparent' : 'action.hover' },\n '&:focus-visible': { outline: '2px solid', outlineColor: 'primary.main', outlineOffset: 1 },\n});\n\nconst REASON_SX: SxProps<Theme> = {\n display: 'block',\n fontSize: sxRem(11),\n lineHeight: 1.3,\n mt: 0.25,\n color: 'text.disabled',\n};\n\nexport interface DateRangeQuickListProps {\n options: ResolvedQuickRange[];\n /** The entry the current draft equals, if any. */\n activeId: string | undefined;\n onPick: (option: ResolvedQuickRange) => void;\n /** Why an entry is refused, rendered under it. */\n reasonFor: (option: ResolvedQuickRange) => string;\n /** Accessible name of the group. */\n label: string;\n dataTestId: string;\n}\n\nexport function DateRangeQuickList({\n options,\n activeId,\n onPick,\n reasonFor,\n label,\n dataTestId,\n}: DateRangeQuickListProps): React.JSX.Element {\n const reasonPrefix = useId();\n\n return (\n <Box\n role=\"group\"\n aria-label={label}\n data-testid={`${dataTestId}-quick-list`}\n sx={{\n display: 'flex',\n // A column beside the calendar; ONE scrolling row of pills above it\n // once there is no width for both.\n //\n // Scrolling rather than wrapping: nine wrapped pills take three or four\n // lines at 390px, which pushes the calendar most of a screen down and\n // makes the quick ranges — the fastest way to answer — the thing you\n // have to scroll past. One line keeps the calendar in view and costs a\n // horizontal swipe, which is the gesture a chip row already invites.\n flexDirection: { xs: 'row', md: 'column' },\n flexWrap: { xs: 'nowrap', md: 'wrap' },\n overflowX: { xs: 'auto', md: 'visible' },\n // Room for the focus ring, which an `overflow` container would clip.\n px: { xs: 0.25, md: 0 },\n py: { xs: 0.25, md: 0 },\n // The scrollbar is chrome on a phone and noise on a trackpad; the pills\n // themselves are the affordance, and the last one sits half-cut at the\n // edge to say the row continues.\n scrollbarWidth: 'none',\n '&::-webkit-scrollbar': { display: 'none' },\n alignContent: 'flex-start',\n gap: 0.5,\n minWidth: { md: 168 },\n maxWidth: { md: 200 },\n }}\n >\n {options.map((option) => {\n const active = option.id === activeId;\n const reasonId = `${reasonPrefix}-${option.id}`;\n return (\n <Box\n component=\"button\"\n type=\"button\"\n key={option.id}\n aria-pressed={active}\n // `aria-disabled`, never the `disabled` attribute: a disabled button\n // is skipped by the tab order, so the reason under it is unreachable\n // by exactly the reader most likely to need it.\n aria-disabled={option.overMax || undefined}\n aria-describedby={option.overMax ? reasonId : undefined}\n data-testid={`${dataTestId}-quick-${option.id}`}\n onClick={() => {\n if (!option.overMax) onPick(option);\n }}\n sx={optionSx(active, option.overMax)}\n >\n {option.label}\n {option.overMax && (\n <Box component=\"span\" id={reasonId} sx={REASON_SX}>\n {reasonFor(option)}\n </Box>\n )}\n </Box>\n );\n })}\n </Box>\n );\n}\n"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/feedback/TutorialOverlay/TutorialOverlay.geometry.ts"],"sourcesContent":["const DEFAULT_PADDING = 16;\n\nexport const getElementBounds = (selector: string): globalThis.DOMRect | null =>\n document.querySelector(selector)?.getBoundingClientRect() ?? null;\n\n// With placement 'auto', the side with the most free space around the target\n// wins.\nconst pickPlacement = (targetBounds: globalThis.DOMRect): string => {\n const spaces = {\n top: targetBounds.top,\n bottom: window.innerHeight - targetBounds.bottom,\n left: targetBounds.left,\n right: window.innerWidth - targetBounds.right,\n };\n\n return Object.entries(spaces).reduce((a, b) => (b[1] > a[1] ? b : a))[0];\n};\n\nconst offsetFor = (\n placement: string,\n targetBounds: globalThis.DOMRect,\n tooltipBounds: globalThis.DOMRect,\n padding: number,\n): { top: number; left: number } => {\n const centredLeft = targetBounds.left + targetBounds.width / 2 - tooltipBounds.width / 2;\n const centredTop = targetBounds.top + targetBounds.height / 2 - tooltipBounds.height / 2;\n\n switch (placement) {\n case 'top':\n return { top: targetBounds.top - tooltipBounds.height - padding, left: centredLeft };\n case 'bottom':\n return { top: targetBounds.bottom + padding, left: centredLeft };\n case 'left':\n return { top: centredTop, left: targetBounds.left - tooltipBounds.width - padding };\n case 'right':\n return { top: centredTop, left: targetBounds.right + padding };\n default:\n return { top: 0, left: 0 };\n }\n};\n\n// Keeps the tooltip fully on screen, whatever the chosen side works out to.\nconst clampToViewport = (\n position: { top: number; left: number },\n tooltipBounds: globalThis.DOMRect,\n padding: number,\n) => ({\n top: Math.max(padding, Math.min(position.top, window.innerHeight - tooltipBounds.height - padding)),\n left: Math.max(padding, Math.min(position.left, window.innerWidth - tooltipBounds.width - padding)),\n});\n\nexport const calculateTooltipPosition = (\n targetBounds: globalThis.DOMRect,\n tooltipBounds: globalThis.DOMRect,\n placement: string,\n padding = DEFAULT_PADDING,\n) => {\n const finalPlacement = placement === 'auto' ? pickPlacement(targetBounds) : placement;\n const offset = offsetFor(finalPlacement, targetBounds, tooltipBounds, padding);\n\n return {\n position: clampToViewport(offset, tooltipBounds, padding),\n placement: finalPlacement,\n };\n};\n"],"mappings":";AAAA,IAAM,kBAAkB;AAEjB,IAAM,mBAAmB,CAAC,aAC/B,SAAS,cAAc,QAAQ,GAAG,sBAAsB,KAAK;AAI/D,IAAM,gBAAgB,CAAC,iBAA6C;AAClE,QAAM,SAAS;AAAA,IACb,KAAK,aAAa;AAAA,IAClB,QAAQ,OAAO,cAAc,aAAa;AAAA,IAC1C,MAAM,aAAa;AAAA,IACnB,OAAO,OAAO,aAAa,aAAa;AAAA,EAC1C;AAEA,SAAO,OAAO,QAAQ,MAAM,EAAE,OAAO,CAAC,GAAG,MAAO,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAE,EAAE,CAAC;AACzE;AAEA,IAAM,YAAY,CAChB,WACA,cACA,eACA,YACkC;AAClC,QAAM,cAAc,aAAa,OAAO,aAAa,QAAQ,IAAI,cAAc,QAAQ;AACvF,QAAM,aAAa,aAAa,MAAM,aAAa,SAAS,IAAI,cAAc,SAAS;AAEvF,UAAQ,WAAW;AAAA,IACjB,KAAK;AACH,aAAO,EAAE,KAAK,aAAa,MAAM,cAAc,SAAS,SAAS,MAAM,YAAY;AAAA,IACrF,KAAK;AACH,aAAO,EAAE,KAAK,aAAa,SAAS,SAAS,MAAM,YAAY;AAAA,IACjE,KAAK;AACH,aAAO,EAAE,KAAK,YAAY,MAAM,aAAa,OAAO,cAAc,QAAQ,QAAQ;AAAA,IACpF,KAAK;AACH,aAAO,EAAE,KAAK,YAAY,MAAM,aAAa,QAAQ,QAAQ;AAAA,IAC/D;AACE,aAAO,EAAE,KAAK,GAAG,MAAM,EAAE;AAAA,EAC7B;AACF;AAGA,IAAM,kBAAkB,CACtB,UACA,eACA,aACI;AAAA,EACJ,KAAK,KAAK,IAAI,SAAS,KAAK,IAAI,SAAS,KAAK,OAAO,cAAc,cAAc,SAAS,OAAO,CAAC;AAAA,EAClG,MAAM,KAAK,IAAI,SAAS,KAAK,IAAI,SAAS,MAAM,OAAO,aAAa,cAAc,QAAQ,OAAO,CAAC;AACpG;AAEO,IAAM,2BAA2B,CACtC,cACA,eACA,WACA,UAAU,oBACP;AACH,QAAM,iBAAiB,cAAc,SAAS,cAAc,YAAY,IAAI;AAC5E,QAAM,SAAS,UAAU,gBAAgB,cAAc,eAAe,OAAO;AAE7E,SAAO;AAAA,IACL,UAAU,gBAAgB,QAAQ,eAAe,OAAO;AAAA,IACxD,WAAW;AAAA,EACb;AACF;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/utility/WorkflowStep/WorkflowStep.parts.tsx"],"sourcesContent":["import Box from '@mui/material/Box/index.js';\nimport type { CSSObject, Theme } from '@mui/material/styles/index.js';\nimport { styled } from '@mui/material/styles/index.js';\nimport React, { forwardRef, useCallback } from 'react';\n\nimport type { StepColors } from './WorkflowStep.helpers';\nimport { indicatorSizeFor, stepColors, stepPalette } from './WorkflowStep.helpers';\nimport type {\n StepConnectorProps,\n StepContentProps,\n StepIndicatorProps,\n WorkflowStepProps,\n} from './WorkflowStep.types';\nimport { neutralTones } from '../../../tokens/ink';\nimport { rem } from '../../../tokens/relative';\n\n// `outlined` shows the surface through a coloured rim; the other three fill it and\n// differ only in what border they keep.\nconst indicatorVariantStyles = (\n theme: Theme,\n variant: WorkflowStepProps['variant'],\n { backgroundColor, borderColor, textColor }: StepColors,\n): CSSObject => {\n if (variant === 'outlined') {\n return {\n border: `2px solid ${borderColor}`,\n backgroundColor: theme.palette.background.paper,\n };\n }\n\n const filled = { backgroundColor, color: textColor };\n\n switch (variant) {\n case 'filled':\n return filled;\n case 'minimal':\n return { ...filled, border: 'none' };\n case 'default':\n return { ...filled, border: `1px solid ${borderColor}` };\n default:\n return {};\n }\n};\n\nconst StepItem = styled(Box, {\n shouldForwardProp: (prop) => !['orientation', 'isLast'].includes(prop as string),\n})<{\n orientation: WorkflowStepProps['orientation'];\n isLast: boolean;\n}>(({ orientation, isLast }) => ({\n display: 'flex',\n flexDirection: orientation === 'vertical' ? 'column' : 'row',\n alignItems: orientation === 'vertical' ? 'flex-start' : 'center',\n flex: orientation === 'horizontal' && !isLast ? 1 : 'none',\n position: 'relative',\n minWidth: 0, // Allow content to shrink\n}));\n\nconst StepIndicator = styled(Box, {\n shouldForwardProp: (prop) => !['size', 'variant', 'color', 'isActive', 'isCompleted', 'isError', 'interactive', 'disabled'].includes(prop as string),\n})<{\n size: WorkflowStepProps['size'];\n variant: WorkflowStepProps['variant'];\n color: WorkflowStepProps['color'];\n isActive: boolean;\n isCompleted: boolean;\n isError: boolean;\n interactive: boolean;\n animated: boolean;\n disabled: boolean;\n}>(({ theme, size, variant, color, isActive, isCompleted, isError, interactive, animated, disabled }) => {\n const indicatorSize = indicatorSizeFor(size);\n const palette = stepPalette(theme, color);\n const { backgroundColor, borderColor, textColor } = stepColors(theme, palette, {\n isActive,\n isCompleted,\n isError,\n variant,\n });\n\n return {\n width: indicatorSize,\n height: indicatorSize,\n borderRadius: '50%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: rem(theme, 12),\n fontWeight: theme.typography.fontWeightMedium,\n cursor: interactive && !disabled ? 'pointer' : 'default',\n transition: animated\n ? theme.transitions.create(['background-color', 'border-color', 'transform'], {\n duration: theme.transitions.duration.short,\n })\n : 'none',\n flexShrink: 0,\n\n ...indicatorVariantStyles(theme, variant, { backgroundColor, borderColor, textColor }),\n\n // Interactive states\n ...(interactive && !disabled && {\n '&:hover': {\n transform: 'scale(1.1)',\n boxShadow: theme.shadows[2],\n },\n '&:focus-visible': {\n outline: `2px solid ${palette.main}`,\n outlineOffset: '2px',\n },\n }),\n\n // Disabled state\n ...(disabled && {\n opacity: 0.5,\n cursor: 'not-allowed',\n }),\n };\n});\n\nconst StepContent = styled(Box, {\n shouldForwardProp: (prop) => !['orientation', 'interactive', 'disabled'].includes(prop as string),\n})<{\n orientation: WorkflowStepProps['orientation'];\n interactive: boolean;\n disabled: boolean;\n}>(({ theme, orientation, interactive, disabled }) => ({\n display: 'flex',\n flexDirection: 'column',\n alignItems: orientation === 'vertical' ? 'flex-start' : 'center',\n textAlign: orientation === 'vertical' ? 'left' : 'center',\n marginTop: orientation === 'vertical' ? theme.spacing(1) : theme.spacing(0.5),\n marginLeft: orientation === 'horizontal' ? theme.spacing(1) : 0,\n cursor: interactive && !disabled ? 'pointer' : 'default',\n minWidth: 0,\n flex: 1,\n\n '& .step-title': {\n fontSize: rem(theme, 14),\n fontWeight: theme.typography.fontWeightMedium,\n color: theme.palette.text.primary,\n marginBottom: theme.spacing(0.5),\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n maxWidth: '100%',\n },\n\n '& .step-description': {\n fontSize: rem(theme, 12),\n color: theme.palette.text.secondary,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n maxWidth: '100%',\n },\n\n ...(disabled && {\n opacity: 0.5,\n }),\n}));\n\nconst StepConnector = styled(Box, {\n shouldForwardProp: (prop) => !['orientation', 'isCompleted', 'color', 'variant'].includes(prop as string),\n})<{\n orientation: WorkflowStepProps['orientation'];\n isCompleted: boolean;\n color: WorkflowStepProps['color'];\n variant: WorkflowStepProps['variant'];\n}>(({ theme, orientation, isCompleted, color, variant }) => {\n const colorKey = color || 'primary';\n const colorValue = colorKey === 'neutral' \n ? { main: neutralTones(theme).emphasis }\n : theme.palette[colorKey as 'primary' | 'secondary' | 'success' | 'warning' | 'error'];\n const connectorColor = isCompleted ? colorValue.main : neutralTones(theme).track;\n\n return {\n flex: 1,\n position: 'relative',\n \n ...(orientation === 'horizontal' && {\n height: '2px',\n backgroundColor: connectorColor,\n margin: `0 ${theme.spacing(1)}`,\n minWidth: theme.spacing(2),\n }),\n \n ...(orientation === 'vertical' && {\n width: '2px',\n backgroundColor: connectorColor,\n minHeight: theme.spacing(3),\n marginLeft: theme.spacing(2),\n position: 'absolute',\n left: '50%',\n transform: 'translateX(-50%)',\n top: '100%',\n }),\n\n transition: theme.transitions.create('background-color', {\n duration: theme.transitions.duration.short,\n }),\n\n ...(variant === 'minimal' && {\n opacity: 0.6,\n }),\n };\n});\n\n/**\n * Individual step indicator component\n */\nconst StepIndicatorComponent = forwardRef<HTMLDivElement, StepIndicatorProps>(({\n step,\n index,\n isActive,\n isCompleted,\n isError,\n variant,\n color,\n size,\n showNumbers,\n showIcons,\n completedIcon,\n errorIcon,\n interactive,\n animated,\n disabled,\n onClick,\n 'data-testid': dataTestId,\n}, ref) => {\n const handleClick = useCallback(() => {\n if (interactive && !disabled && onClick) {\n onClick(index, step);\n }\n }, [interactive, disabled, onClick, index, step]);\n\n const handleKeyDown = useCallback((event: React.KeyboardEvent) => {\n if (interactive && !disabled && (event.key === 'Enter' || event.key === ' ')) {\n event.preventDefault();\n if (onClick) {\n onClick(index, step);\n }\n }\n }, [interactive, disabled, onClick, index, step]);\n\n const renderIndicatorContent = () => {\n if (isError && errorIcon) {\n return errorIcon;\n }\n if (isCompleted && completedIcon) {\n return completedIcon;\n }\n if (showIcons && step.icon) {\n return step.icon;\n }\n if (showNumbers) {\n return index + 1;\n }\n return null;\n };\n\n return (\n <StepIndicator\n ref={ref}\n size={size}\n variant={variant}\n color={color}\n isActive={isActive}\n isCompleted={isCompleted}\n isError={isError}\n interactive={interactive}\n animated={animated}\n disabled={Boolean(disabled || step.disabled)}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n role={interactive ? 'button' : undefined}\n tabIndex={interactive && !disabled && !step.disabled ? 0 : -1}\n aria-label={`Step ${index + 1}: ${step.title}`}\n aria-current={isActive ? 'step' : undefined}\n data-testid={dataTestId}\n >\n {renderIndicatorContent()}\n </StepIndicator>\n );\n});\n\nStepIndicatorComponent.displayName = 'StepIndicator';\n\n/**\n * Step connector component\n */\nconst StepConnectorComponent = forwardRef<HTMLDivElement, StepConnectorProps>(({\n isCompleted,\n orientation,\n variant,\n color,\n 'data-testid': dataTestId,\n}, ref) => (\n <StepConnector\n ref={ref}\n orientation={orientation}\n isCompleted={isCompleted}\n color={color}\n variant={variant}\n data-testid={dataTestId}\n />\n));\n\nStepConnectorComponent.displayName = 'StepConnector';\n\n/**\n * Step content component\n */\nconst StepContentComponent = forwardRef<HTMLDivElement, StepContentProps>(({\n step,\n index,\n orientation,\n interactive,\n disabled,\n onClick,\n 'data-testid': dataTestId,\n}, ref) => {\n const handleClick = useCallback(() => {\n if (interactive && !disabled && onClick) {\n onClick(index, step);\n }\n }, [interactive, disabled, onClick, index, step]);\n\n const handleKeyDown = useCallback((event: React.KeyboardEvent) => {\n if (interactive && !disabled && (event.key === 'Enter' || event.key === ' ')) {\n event.preventDefault();\n if (onClick) {\n onClick(index, step);\n }\n }\n }, [interactive, disabled, onClick, index, step]);\n\n return (\n <StepContent\n ref={ref}\n orientation={orientation}\n interactive={interactive}\n disabled={Boolean(disabled || step.disabled)}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n role={interactive ? 'button' : undefined}\n tabIndex={interactive && !disabled && !step.disabled ? 0 : -1}\n data-testid={dataTestId}\n >\n <div className=\"step-title\">{step.title}</div>\n {step.description && (\n <div className=\"step-description\">{step.description}</div>\n )}\n </StepContent>\n );\n});\n\nStepContentComponent.displayName = 'StepContent';\n\n/**\n * A plain wrapper around the styled row. Exporting the styled component itself\n * trips TS2742 — its inferred type names a pnpm-internal @mui/system path.\n */\nexport const StepItemRow: React.FC<{\n orientation: WorkflowStepProps['orientation'];\n isLast: boolean;\n children: React.ReactNode;\n}> = ({ orientation, isLast, children }) => (\n <StepItem orientation={orientation} isLast={isLast}>\n {children}\n </StepItem>\n);\n\nexport { StepConnectorComponent, StepContentComponent, StepIndicatorComponent };\n"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/form/CategorySelect/CategoryPanelFoot.tsx"],"sourcesContent":["'use client';\n\nimport Box from '@mui/material/Box/index.js';\nimport Button from '@mui/material/Button/index.js';\n\nimport type { CategorySelectCopy } from '../../../copy';\nimport { footerSx, METRICS } from './CategorySelect.styles';\nimport { fieldRadiusPx } from '../../../tokens/field-radius';\nimport { sxRem } from '../../../tokens/relative';\n\nconst buttonSx = (sheet: boolean) =>\n ({\n height: sheet ? METRICS.sheetFooterButton : METRICS.footerButton,\n padding: '0 13px',\n borderRadius: fieldRadiusPx,\n fontSize: sxRem(12.5),\n fontWeight: 600,\n textTransform: 'none',\n minWidth: 0,\n }) as const;\n\ninterface MultiFootProps {\n count: number;\n /** False once the draft matches what is already applied — Apply becomes Close. */\n changed: boolean;\n sheet: boolean;\n onClear: () => void;\n onApply: () => void;\n dataTestId: string;\n copy: CategorySelectCopy;\n}\n\n/**\n * Multi-select footer: the running count, Clear, and the Apply that publishes\n * the draft. The primary button reads \"Fechar\" when nothing changed, so it never\n * promises an update it would not make.\n */\nexport function CategoryMultiFoot({\n count,\n changed,\n sheet,\n onClear,\n onApply,\n dataTestId,\n copy,\n}: MultiFootProps): React.JSX.Element {\n return (\n <Box sx={footerSx} data-testid={`${dataTestId}-footer`}>\n <Box component=\"span\" sx={{ fontSize: sxRem(12), color: 'text.secondary' }}>\n {copy.footer.selectedCount(count)}\n </Box>\n <Box sx={{ display: 'flex', gap: '6px' }}>\n <Button\n variant=\"outlined\"\n disabled={count === 0}\n sx={buttonSx(sheet)}\n onClick={onClear}\n data-testid={`${dataTestId}-clear`}\n >\n {copy.footer.clear}\n </Button>\n <Button\n variant=\"contained\"\n sx={buttonSx(sheet)}\n onClick={onApply}\n data-testid={`${dataTestId}-apply`}\n >\n {changed ? copy.footer.apply : copy.footer.close}\n </Button>\n </Box>\n </Box>\n );\n}\n\n/** Single-select footer: a hint and a way out. Picking a row commits directly. */\nexport function CategorySingleFoot({\n sheet,\n onCancel,\n dataTestId,\n copy,\n}: {\n sheet: boolean;\n onCancel: () => void;\n dataTestId: string;\n copy: CategorySelectCopy;\n}): React.JSX.Element {\n return (\n <Box sx={footerSx} data-testid={`${dataTestId}-footer`}>\n <Box component=\"span\" sx={{ fontSize: sxRem(12), color: 'text.secondary' }}>\n {copy.footer.singleHint}\n </Box>\n <Button\n variant=\"outlined\"\n sx={buttonSx(sheet)}\n onClick={onCancel}\n data-testid={`${dataTestId}-cancel`}\n >\n {copy.footer.cancel}\n </Button>\n </Box>\n );\n}\n"],"mappings":";;;;;;;;;;;;AAEA,OAAO,SAAS;AAChB,OAAO,YAAY;AA6Cb,cAGA,YAHA;AAtCN,IAAM,WAAW,CAAC,WACf;AAAA,EACC,QAAQ,QAAQ,QAAQ,oBAAoB,QAAQ;AAAA,EACpD,SAAS;AAAA,EACT,cAAc;AAAA,EACd,UAAU,MAAM,IAAI;AAAA,EACpB,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,UAAU;AACZ;AAkBK,SAAS,kBAAkB;AAAA,EAChC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAsC;AACpC,SACE,qBAAC,OAAI,IAAI,UAAU,eAAa,GAAG,UAAU,WAC3C;AAAA,wBAAC,OAAI,WAAU,QAAO,IAAI,EAAE,UAAU,MAAM,EAAE,GAAG,OAAO,iBAAiB,GACtE,eAAK,OAAO,cAAc,KAAK,GAClC;AAAA,IACA,qBAAC,OAAI,IAAI,EAAE,SAAS,QAAQ,KAAK,MAAM,GACrC;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,SAAQ;AAAA,UACR,UAAU,UAAU;AAAA,UACpB,IAAI,SAAS,KAAK;AAAA,UAClB,SAAS;AAAA,UACT,eAAa,GAAG,UAAU;AAAA,UAEzB,eAAK,OAAO;AAAA;AAAA,MACf;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,SAAQ;AAAA,UACR,IAAI,SAAS,KAAK;AAAA,UAClB,SAAS;AAAA,UACT,eAAa,GAAG,UAAU;AAAA,UAEzB,oBAAU,KAAK,OAAO,QAAQ,KAAK,OAAO;AAAA;AAAA,MAC7C;AAAA,OACF;AAAA,KACF;AAEJ;AAGO,SAAS,mBAAmB;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAKsB;AACpB,SACE,qBAAC,OAAI,IAAI,UAAU,eAAa,GAAG,UAAU,WAC3C;AAAA,wBAAC,OAAI,WAAU,QAAO,IAAI,EAAE,UAAU,MAAM,EAAE,GAAG,OAAO,iBAAiB,GACtE,eAAK,OAAO,YACf;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC,SAAQ;AAAA,QACR,IAAI,SAAS,KAAK;AAAA,QAClB,SAAS;AAAA,QACT,eAAa,GAAG,UAAU;AAAA,QAEzB,eAAK,OAAO;AAAA;AAAA,IACf;AAAA,KACF;AAEJ;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/navigation/Pagination/Pagination.styles.ts"],"sourcesContent":["import { alpha } from '@mui/material/styles/index.js';\nimport type { CSSObject, Theme } from '@mui/material/styles/index.js';\nimport { rem } from '../../../tokens/relative';\n\nconst ITEM_SIZE_STYLES: Record<string, (theme: Theme) => CSSObject> = {\n sm: (theme) => ({\n fontSize: rem(theme, 14),\n minWidth: 28,\n height: 28,\n padding: theme.spacing(0.25, 0.5) }),\n lg: (theme) => ({\n fontSize: rem(theme, 18),\n minWidth: 44,\n height: 44,\n padding: theme.spacing(1, 1.5) }) };\n\n// One variant applies at a time, so a lookup replaces the mutually exclusive\n// spreads.\nconst ITEM_VARIANTS: Record<string, (theme: Theme, customSize?: string) => CSSObject> = {\n default: (theme, _customSize) => ({\n borderRadius: theme.spacing(1),\n '&:hover': {\n backgroundColor: alpha(theme.palette.primary.main, 0.08),\n transform: 'translateY(-1px)',\n boxShadow: `0 2px 8px ${alpha(theme.palette.primary.main, 0.15)}` },\n '&.Mui-selected': {\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.primary.contrastText,\n boxShadow: `0 4px 12px ${alpha(theme.palette.primary.main, 0.3)}`,\n '&:hover': {\n backgroundColor: theme.palette.primary.dark,\n transform: 'translateY(-2px)' } } }),\n rounded: (theme, customSize) => ({\n borderRadius: '50%',\n minWidth: customSize === 'sm' ? 28 : customSize === 'lg' ? 44 : 36,\n width: customSize === 'sm' ? 28 : customSize === 'lg' ? 44 : 36,\n '&:hover': {\n backgroundColor: alpha(theme.palette.primary.main, 0.08),\n transform: 'scale(1.1)',\n boxShadow: `0 4px 16px ${alpha(theme.palette.primary.main, 0.2)}` },\n '&.Mui-selected': {\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.primary.contrastText,\n transform: 'scale(1.05)',\n boxShadow: `0 6px 20px ${alpha(theme.palette.primary.main, 0.3)}`,\n '&:hover': {\n backgroundColor: theme.palette.primary.dark,\n transform: 'scale(1.15)' } } }),\n dots: (theme, customSize) => ({\n borderRadius: '50%',\n minWidth: customSize === 'sm' ? 8 : customSize === 'lg' ? 12 : 10,\n width: customSize === 'sm' ? 8 : customSize === 'lg' ? 12 : 10,\n height: customSize === 'sm' ? 8 : customSize === 'lg' ? 12 : 10,\n fontSize: 0,\n backgroundColor: alpha(theme.palette.text.secondary, 0.3),\n '&:hover': {\n backgroundColor: alpha(theme.palette.primary.main, 0.5),\n transform: 'scale(1.3)' },\n '&.Mui-selected': {\n backgroundColor: theme.palette.primary.main,\n transform: 'scale(1.2)',\n '&:hover': {\n backgroundColor: theme.palette.primary.dark,\n transform: 'scale(1.4)' } },\n '&.MuiPaginationItem-previousNext, &.MuiPaginationItem-firstLast': {\n display: 'none' } }),\n minimal: (theme, _customSize) => ({\n borderRadius: theme.spacing(0.5),\n backgroundColor: 'transparent',\n color: theme.palette.text.secondary,\n padding: theme.spacing(0.5, 1),\n '&:hover': {\n backgroundColor: alpha(theme.palette.primary.main, 0.04),\n color: theme.palette.primary.main },\n '&.Mui-selected': {\n backgroundColor: 'transparent',\n color: theme.palette.primary.main,\n fontWeight: 600,\n position: 'relative',\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n bottom: 0,\n left: '50%',\n transform: 'translateX(-50%)',\n width: '60%',\n height: 2,\n backgroundColor: theme.palette.primary.main,\n borderRadius: 1 } } }) };\n\nconst itemSizeStyles = (theme: Theme, customSize?: string): CSSObject =>\n customSize ? (ITEM_SIZE_STYLES[customSize]?.(theme) ?? {}) : {};\n\nconst itemVariantStyles = (theme: Theme, customVariant?: string, customSize?: string): CSSObject =>\n customVariant ? (ITEM_VARIANTS[customVariant]?.(theme, customSize) ?? {}) : {};\n\n// The pagination list's own styling, lifted out so the styled() callback is a\n// single spread.\nexport const paginationStyles = ({\n theme,\n customVariant,\n customSize }: {\n theme: Theme;\n customVariant?: string;\n customSize?: string;\n}): CSSObject => ({\n '& .MuiPagination-ul': {\n gap: customVariant === 'minimal' ? theme.spacing(0.5) : theme.spacing(1) },\n\n '& .MuiPaginationItem-root': {\n ...itemSizeStyles(theme, customSize),\n ...itemVariantStyles(theme, customVariant, customSize),\n transition: 'all 0.2s ease',\n fontWeight: 500,\n\n\n\n\n\n // Default variant (flat design)\n\n\n // Rounded variant\n\n\n // Dots variant (minimal circular dots)\n\n\n // Minimal variant (text-only)\n\n },\n\n // Hide ellipsis for dots variant\n ...(customVariant === 'dots' && {\n '& .MuiPaginationItem-ellipsis': {\n display: 'none' } }) });\n"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/navigation/NavigationMenu/NavigationStandardBody.tsx"],"sourcesContent":["import MenuIcon from '@mui/icons-material/Menu';\nimport Box from '@mui/material/Box/index.js';\nimport Divider from '@mui/material/Divider/index.js';\nimport Fade from '@mui/material/Fade/index.js';\nimport ListItemIcon from '@mui/material/ListItemIcon/index.js';\nimport ListItemText from '@mui/material/ListItemText/index.js';\nimport Paper from '@mui/material/Paper/index.js';\nimport { alpha } from '@mui/material/styles/index.js';\nimport type { FC, ReactNode } from 'react';\nimport React from 'react';\n\nimport { CollapseToggle, LogoBar, MenuList } from './NavigationMenu.shell';\nimport { slideIn } from './NavigationMenu.styles';\nimport type { NavigationMenuItem } from './NavigationMenu.types';\nimport { renderMenuItem } from './NavigationMenuItem';\n\nconst DividerRule: FC = () => (\n <Divider\n sx={{\n my: 1,\n opacity: 0.5,\n background: (theme) =>\n `linear-gradient(90deg, transparent 0%, ${alpha(theme.palette.divider, 0.5)} 50%, transparent 100%)`,\n }}\n />\n);\n\nconst VerticalLogo: FC<{ logo: ReactNode; collapsed: boolean }> = ({ logo, collapsed }) => (\n <LogoBar>\n {collapsed ? (\n <Box sx={{ display: 'flex', justifyContent: 'center' }}>\n <MenuIcon />\n </Box>\n ) : (\n logo\n )}\n </LogoBar>\n);\n\nconst CollapseControl: FC<{ collapsed: boolean; onToggle: () => void }> = ({\n collapsed,\n onToggle,\n}) => (\n <CollapseToggle onClick={onToggle}>\n <ListItemIcon sx={{ minWidth: collapsed ? 0 : 40, justifyContent: 'center' }}>\n <MenuIcon />\n </ListItemIcon>\n {!collapsed && <ListItemText primary=\"Collapse\" />}\n </CollapseToggle>\n);\n\nconst MenuItems: FC<{\n items: NavigationMenuItem[];\n variant: string;\n size: string;\n collapsed: boolean;\n minimal: boolean;\n showDividers: boolean;\n}> = ({ items, variant, size, collapsed, minimal, showDividers }) => (\n <MenuList variant={variant} size={size}>\n {items.map((item, index) => (\n <React.Fragment key={item.id}>\n <Box\n sx={{\n // Staggered so the list fills in rather than appearing at once.\n animation: `${slideIn} 0.4s ease-out`,\n animationDelay: `${index * 0.05}s`,\n animationFillMode: 'both',\n }}\n >\n {renderMenuItem(item, variant, size, collapsed, minimal, 0)}\n </Box>\n {showDividers && index < items.length - 1 && <DividerRule />}\n </React.Fragment>\n ))}\n </MenuList>\n);\n\nconst EndPanel: FC<{ children: ReactNode }> = ({ children }) => (\n <Fade in timeout={600}>\n <Box\n sx={{\n mt: 'auto',\n p: 2,\n borderTop: (theme) => `1px solid ${alpha(theme.palette.divider, 0.1)}`,\n background: (theme) =>\n `linear-gradient(180deg, transparent 0%, ${alpha(theme.palette.background.default, 0.5)} 100%)`,\n }}\n >\n {children}\n </Box>\n </Fade>\n);\n\nexport interface NavigationStandardBodyProps {\n variant: string;\n size: string;\n minimal: boolean;\n collapsed: boolean;\n collapsible: boolean;\n showDividers: boolean;\n items: NavigationMenuItem[];\n logo?: ReactNode;\n endContent?: ReactNode;\n onCollapseToggle: () => void;\n}\n\n// The list-based layouts (vertical and horizontal). The logo and the collapse\n// control only apply to the vertical one.\nexport const NavigationStandardBody: FC<NavigationStandardBodyProps> = ({\n variant,\n size,\n minimal,\n collapsed,\n collapsible,\n showDividers,\n items,\n logo,\n endContent,\n onCollapseToggle,\n}) => {\n const isVertical = variant === 'vertical';\n // Only the horizontal bar is raised; vertical rails and minimal sit flat.\n const elevation = !minimal && variant === 'horizontal' ? 1 : 0;\n\n return (\n <Paper\n elevation={elevation}\n sx={{\n width: '100%',\n height: isVertical ? '100%' : 'auto',\n overflow: 'hidden',\n background: minimal ? 'transparent' : undefined,\n }}\n >\n {logo && isVertical && <VerticalLogo logo={logo} collapsed={collapsed} />}\n\n {collapsible && isVertical && (\n <CollapseControl collapsed={collapsed} onToggle={onCollapseToggle} />\n )}\n\n <MenuItems\n items={items}\n variant={variant}\n size={size}\n collapsed={collapsed}\n minimal={minimal}\n showDividers={showDividers}\n />\n\n {endContent && <EndPanel>{endContent}</EndPanel>}\n </Paper>\n );\n};\n"],"mappings":";;;;;;;;;;;;;AAAA,OAAO,cAAc;AACrB,OAAO,SAAS;AAChB,OAAO,aAAa;AACpB,OAAO,UAAU;AACjB,OAAO,kBAAkB;AACzB,OAAO,kBAAkB;AACzB,OAAO,WAAW;AAClB,SAAS,aAAa;AAEtB,OAAO,WAAW;AAQhB,cA0BA,YA1BA;AADF,IAAM,cAAkB,MACtB;AAAA,EAAC;AAAA;AAAA,IACC,IAAI;AAAA,MACF,IAAI;AAAA,MACJ,SAAS;AAAA,MACT,YAAY,CAAC,UACX,0CAA0C,MAAM,MAAM,QAAQ,SAAS,GAAG,CAAC;AAAA,IAC/E;AAAA;AACF;AAGF,IAAM,eAA4D,CAAC,EAAE,MAAM,UAAU,MACnF,oBAAC,WACE,sBACC,oBAAC,OAAI,IAAI,EAAE,SAAS,QAAQ,gBAAgB,SAAS,GACnD,8BAAC,YAAS,GACZ,IAEA,MAEJ;AAGF,IAAM,kBAAoE,CAAC;AAAA,EACzE;AAAA,EACA;AACF,MACE,qBAAC,kBAAe,SAAS,UACvB;AAAA,sBAAC,gBAAa,IAAI,EAAE,UAAU,YAAY,IAAI,IAAI,gBAAgB,SAAS,GACzE,8BAAC,YAAS,GACZ;AAAA,EACC,CAAC,aAAa,oBAAC,gBAAa,SAAQ,YAAW;AAAA,GAClD;AAGF,IAAM,YAOD,CAAC,EAAE,OAAO,SAAS,MAAM,WAAW,SAAS,aAAa,MAC7D,oBAAC,YAAS,SAAkB,MACzB,gBAAM,IAAI,CAAC,MAAM,UAChB,qBAAC,MAAM,UAAN,EACC;AAAA;AAAA,IAAC;AAAA;AAAA,MACC,IAAI;AAAA;AAAA,QAEF,WAAW,GAAG,OAAO;AAAA,QACrB,gBAAgB,GAAG,QAAQ,IAAI;AAAA,QAC/B,mBAAmB;AAAA,MACrB;AAAA,MAEC,yBAAe,MAAM,SAAS,MAAM,WAAW,SAAS,CAAC;AAAA;AAAA,EAC5D;AAAA,EACC,gBAAgB,QAAQ,MAAM,SAAS,KAAK,oBAAC,eAAY;AAAA,KAXvC,KAAK,EAY1B,CACD,GACH;AAGF,IAAM,WAAwC,CAAC,EAAE,SAAS,MACxD,oBAAC,QAAK,IAAE,MAAC,SAAS,KAChB;AAAA,EAAC;AAAA;AAAA,IACC,IAAI;AAAA,MACF,IAAI;AAAA,MACJ,GAAG;AAAA,MACH,WAAW,CAAC,UAAU,aAAa,MAAM,MAAM,QAAQ,SAAS,GAAG,CAAC;AAAA,MACpE,YAAY,CAAC,UACX,2CAA2C,MAAM,MAAM,QAAQ,WAAW,SAAS,GAAG,CAAC;AAAA,IAC3F;AAAA,IAEC;AAAA;AACH,GACF;AAkBK,IAAM,yBAA0D,CAAC;AAAA,EACtE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,aAAa,YAAY;AAE/B,QAAM,YAAY,CAAC,WAAW,YAAY,eAAe,IAAI;AAE7D,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,IAAI;AAAA,QACF,OAAO;AAAA,QACP,QAAQ,aAAa,SAAS;AAAA,QAC9B,UAAU;AAAA,QACV,YAAY,UAAU,gBAAgB;AAAA,MACxC;AAAA,MAEC;AAAA,gBAAQ,cAAc,oBAAC,gBAAa,MAAY,WAAsB;AAAA,QAEtE,eAAe,cACd,oBAAC,mBAAgB,WAAsB,UAAU,kBAAkB;AAAA,QAGrE;AAAA,UAAC;AAAA;AAAA,YACC;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA;AAAA,QACF;AAAA,QAEC,cAAc,oBAAC,YAAU,sBAAW;AAAA;AAAA;AAAA,EACvC;AAEJ;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/form/Slider/Slider.styles.ts"],"sourcesContent":["import { alpha } from '@mui/material/styles/index.js';\nimport type { CSSObject, Theme } from '@mui/material/styles/index.js';\n\nimport { glowAnimation, gradientShiftAnimation, pulseAnimation } from './Slider.animations';\nimport { rem } from '../../../tokens/relative';\n\nimport { absoluteInk, controlNeutral, onMedia, sheen } from '../../../tokens/ink';\n\ninterface ColorPalette {\n main: string;\n dark?: string;\n light?: string;\n contrastText?: string;\n}\n\n/** `neutral` is not a MUI palette entry, so it is built from the grey ramp. */\nconst neutralPalette = (theme: Theme): ColorPalette => controlNeutral(theme);\n\n/** `danger` is this component's name for the error palette. */\nconst namedPalette = (theme: Theme, color: string): ColorPalette => {\n const colorMap: Record<string, ColorPalette> = {\n primary: theme.palette.primary,\n secondary: theme.palette.secondary,\n success: theme.palette.success,\n warning: theme.palette.warning,\n info: theme.palette.info,\n danger: theme.palette.error,\n };\n\n return colorMap[color] || theme.palette.primary;\n};\n\nconst getColorFromTheme = (theme: Theme, color: string): ColorPalette => {\n if (color === 'neutral') {\n return neutralPalette(theme);\n }\n\n const palette = namedPalette(theme, color);\n const { primary } = theme.palette;\n\n return {\n main: palette.main || primary.main,\n dark: palette.dark || palette.main || primary.dark,\n light: palette.light || palette.main || primary.light,\n contrastText: palette.contrastText || absoluteInk(theme).white,\n };\n};\n\ntype SizeKey = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\ninterface Geometry {\n height: number;\n thumbSize: number;\n markHeight: number;\n}\n\nconst SIZES: Record<SizeKey, Geometry> = {\n xs: { height: 4, thumbSize: 16, markHeight: 8 },\n sm: { height: 6, thumbSize: 18, markHeight: 10 },\n md: { height: 8, thumbSize: 20, markHeight: 12 },\n lg: { height: 10, thumbSize: 24, markHeight: 14 },\n xl: { height: 12, thumbSize: 28, markHeight: 16 },\n};\n\n/**\n * The value bubble and mark labels shrink at the two smallest sizes only. The\n * two fonts are design px, read through the type scale.\n */\nconst LABEL_SCALE: Record<string, { fontPx: number; box: number; markFont: number }> = {\n xs: { fontPx: 10, box: 28, markFont: 10.4 },\n sm: { fontPx: 11, box: 30, markFont: 11.2 },\n};\nconst LABEL_DEFAULT = { fontPx: 12, box: 32, markFont: 12 };\n\nexport interface SliderFlags {\n customColor?: string;\n customSize?: string;\n glow?: boolean;\n glass?: boolean;\n gradient?: boolean;\n customVariant?: string;\n}\n\ninterface PartInput {\n theme: Theme;\n flags: SliderFlags;\n palette: ColorPalette;\n geometry: Geometry;\n}\n\nconst trackPart = ({ theme, flags, palette, geometry }: PartInput): CSSObject => {\n const { gradient, glow, glass, customVariant } = flags;\n const isGradientVariant = customVariant === 'gradient';\n\n return {\n border: 'none',\n height: geometry.height,\n borderRadius: geometry.height / 2,\n transition: 'all 0.3s cubic-bezier(0.4, 0, 0.2, 1)',\n position: 'relative',\n overflow: 'hidden',\n ...(gradient && {\n background: isGradientVariant\n ? `linear-gradient(90deg,\n ${palette.light} 0%,\n ${palette.main} 50%,\n ${palette.dark} 100%)`\n : `linear-gradient(90deg, ${palette.light}, ${palette.main})`,\n backgroundSize: '200% 100%',\n animation: isGradientVariant ? `${gradientShiftAnimation} 3s ease infinite` : 'none',\n // A sheen that travels the filled portion while the gradient shifts.\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n background: `linear-gradient(90deg, transparent, ${sheen(theme, 0.2)}, transparent)`,\n animation: `${gradientShiftAnimation} 2s linear infinite`,\n },\n }),\n ...(glow && {\n animation: `${glowAnimation} 2s ease-in-out infinite`,\n boxShadow: `0 0 10px ${alpha(palette.main, 0.6)}, inset 0 0 10px ${alpha(palette.main, 0.2)}`,\n }),\n ...(glass && {\n backgroundColor: alpha(palette.main, 0.8),\n backdropFilter: 'blur(10px)',\n border: `1px solid ${alpha(palette.light || palette.main, 0.3)}`,\n }),\n };\n};\n\nconst railPart = ({ theme, flags, geometry }: PartInput): CSSObject => ({\n color: alpha(theme.palette.action.disabled, 0.3),\n opacity: 1,\n height: geometry.height,\n borderRadius: geometry.height / 2,\n transition: 'all 0.3s ease',\n ...(flags.glass && {\n backgroundColor: alpha(theme.palette.background.paper, 0.1),\n backdropFilter: 'blur(20px)',\n border: `1px solid ${alpha(theme.palette.divider, 0.2)}`,\n }),\n ...(flags.customVariant === 'gradient' && {\n background: `linear-gradient(90deg,\n ${alpha(theme.palette.action.disabled, 0.2)},\n ${alpha(theme.palette.action.disabled, 0.3)},\n ${alpha(theme.palette.action.disabled, 0.2)})`,\n }),\n});\n\nconst thumbPart = ({ theme, flags, palette, geometry }: PartInput): CSSObject => {\n const { gradient, glow, glass } = flags;\n\n return {\n height: geometry.thumbSize,\n width: geometry.thumbSize,\n backgroundColor: gradient ? palette.main : absoluteInk(theme).white,\n border: `2px solid ${palette.main}`,\n boxShadow: `${theme.shadows[2]}, 0 0 0 0 ${alpha(palette.main, 0.2)}`,\n transition: 'all 0.3s cubic-bezier(0.4, 0, 0.2, 1)',\n position: 'relative',\n // Sits invisible until focus or hover runs the pulse keyframes over it.\n '&::before': {\n content: '\"\"',\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n width: '100%',\n height: '100%',\n borderRadius: '50%',\n backgroundColor: palette.main,\n opacity: 0,\n },\n '&:focus, &:hover, &.Mui-active, &.Mui-focusVisible': {\n boxShadow: glow\n ? `${theme.shadows[4]}, 0 0 20px ${alpha(palette.main, 0.6)}, 0 0 0 8px ${alpha(palette.main, 0.15)}`\n : `${theme.shadows[4]}, 0 0 0 8px ${alpha(palette.main, 0.15)}`,\n transform: 'scale(1.15)',\n '&::before': { animation: `${pulseAnimation} 0.6s ease-out` },\n },\n '&:active': { transform: 'scale(1.05)' },\n ...(glass && {\n backgroundColor: alpha(theme.palette.background.paper, 0.9),\n backdropFilter: 'blur(10px)',\n border: `2px solid ${alpha(palette.main, 0.8)}`,\n }),\n ...(gradient && {\n background: `linear-gradient(135deg, ${palette.light}, ${palette.main})`,\n border: 'none',\n color: onMedia(theme),\n }),\n };\n};\n\n/** Transparent under a gradient (the gradient itself paints it), else the accent. */\nconst bubbleBackground = (palette: ColorPalette, gradient: boolean, glass: boolean) => {\n if (gradient) return 'transparent';\n return glass ? alpha(palette.main, 0.9) : palette.main;\n};\n\n/** The bubble's closed and open transforms; only the scale differs between them. */\nconst bubbleTransformFor = (gradient: boolean) => {\n const base = gradient ? 'translate(50%, -150%)' : 'translate(50%, -100%) rotate(-45deg)';\n return { hidden: `${base} scale(0)`, shown: `${base} scale(1)` };\n};\n\n/**\n * The value bubble. Without `gradient` it is MUI's teardrop — a rotated square\n * with one square corner — so its contents are counter-rotated; the gradient\n * look is a plain rounded box and needs neither rotation.\n */\nconst valueLabelPart = ({ theme, flags, palette }: PartInput): CSSObject => {\n const { gradient, glass, customSize } = flags;\n const scale = LABEL_SCALE[customSize ?? ''] ?? LABEL_DEFAULT;\n const bubbleTransform = bubbleTransformFor(Boolean(gradient));\n\n return {\n lineHeight: 1.2,\n fontSize: rem(theme, scale.fontPx),\n padding: 0,\n width: scale.box,\n height: scale.box,\n borderRadius: gradient ? '8px' : '50% 50% 50% 0',\n backgroundColor: bubbleBackground(palette, Boolean(gradient), Boolean(glass)),\n background: gradient\n ? `linear-gradient(135deg, ${palette.light}, ${palette.main})`\n : 'unset',\n backdropFilter: glass ? 'blur(10px)' : 'none',\n transformOrigin: 'bottom left',\n transform: bubbleTransform.hidden,\n transition: 'all 0.3s cubic-bezier(0.4, 0, 0.2, 1)',\n boxShadow: `${theme.shadows[2]}, 0 0 10px ${alpha(palette.main, 0.2)}`,\n '&:before': { display: 'none' },\n '&.MuiSlider-valueLabelOpen': { transform: bubbleTransform.shown },\n '& > *': { transform: gradient ? 'none' : 'rotate(45deg)', fontWeight: 600 },\n };\n};\n\nconst markPart = ({ theme, flags, palette, geometry }: PartInput): CSSObject => {\n const { gradient, glow, customVariant } = flags;\n const isMarksVariant = customVariant === 'marks';\n const { markHeight, height } = geometry;\n\n return {\n backgroundColor: alpha(theme.palette.action.disabled, 0.5),\n height: markHeight,\n width: isMarksVariant ? 3 : 2,\n // Centred on the rail rather than hanging below it.\n marginTop: -(markHeight - height) / 2,\n borderRadius: 1,\n transition: 'all 0.3s ease',\n '&.MuiSlider-markActive': {\n backgroundColor: gradient ? palette.light : palette.main,\n width: isMarksVariant ? 4 : 2,\n height: markHeight + 2,\n marginTop: -(markHeight + 2 - height) / 2,\n ...(glow && { boxShadow: `0 0 8px ${alpha(palette.main, 0.5)}` }),\n },\n };\n};\n\nconst markLabelPart = ({ theme, flags, palette }: PartInput): CSSObject => ({\n fontSize: rem(theme, (LABEL_SCALE[flags.customSize ?? ''] ?? LABEL_DEFAULT).markFont),\n color: theme.palette.text.secondary,\n marginTop: theme.spacing(1.5),\n fontWeight: 500,\n transition: 'all 0.3s ease',\n '&.MuiSlider-markLabelActive': {\n color: palette.main,\n fontWeight: 600,\n transform: 'scale(1.05)',\n },\n});\n\nexport const sliderSx = (theme: Theme, flags: SliderFlags): CSSObject => {\n const palette = getColorFromTheme(theme, flags.customColor ?? 'primary');\n const geometry = SIZES[flags.customSize as SizeKey] ?? SIZES.md;\n const input: PartInput = { theme, flags, palette, geometry };\n\n return {\n color: palette.main,\n height: geometry.height,\n '& .MuiSlider-track': trackPart(input),\n '& .MuiSlider-rail': railPart(input),\n '& .MuiSlider-thumb': thumbPart(input),\n '& .MuiSlider-valueLabel': valueLabelPart(input),\n '& .MuiSlider-mark': markPart(input),\n '& .MuiSlider-markLabel': markLabelPart(input),\n };\n};\n"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/layout/Skeleton/Skeleton.styles.ts"],"sourcesContent":["import { alpha } from '@mui/material/styles/index.js';\nimport type { CSSObject, Theme } from '@mui/material/styles/index.js';\n\nimport type { SkeletonProps } from './Skeleton.types';\nimport {\n GLASS_BACKGROUND_ALPHA_FROM,\n GLASS_BACKGROUND_ALPHA_TO,\n GLASS_BLUR_PX,\n GLASS_BORDER_ALPHA,\n GLASS_SHADOW,\n SHIMMER_ALPHA,\n SHIMMER_DURATION_MS,\n SKELETON_DEFAULT_DIMENSIONS,\n SKELETON_INTENSITY_OPACITY,\n} from './Skeleton.metrics';\nimport { modeInk, shadowInk, sheen } from '../../../tokens/ink';\n\ntype SkeletonVariant = NonNullable<SkeletonProps['variant']>;\ntype SkeletonIntensity = NonNullable<SkeletonProps['intensity']>;\n\n/** `wave` is our own name for a rectangle that animates; MUI has no such variant. */\nexport const muiVariantFor = (\n variant: SkeletonVariant,\n): 'circular' | 'rectangular' | 'text' => {\n switch (variant) {\n case 'circular':\n return 'circular';\n case 'rectangular':\n case 'wave':\n return 'rectangular';\n default:\n return 'text';\n }\n};\n\nexport const muiAnimationFor = (\n variant: SkeletonVariant,\n animation: SkeletonProps['animation'],\n) => {\n if (variant === 'wave') return 'wave';\n return animation;\n};\n\n// Derived from the shared metrics, not restated: the native `Skeleton` reads\n// the same table, so the two renderers cannot disagree on a default box.\nexport const defaultDimensions = (\n variant: SkeletonVariant,\n): { width: number | string; height: number | undefined } =>\n // The `default:` arm the old switch had: an unrecognised variant used to fall\n // back rather than hand `undefined` to a caller that then reads `.width`.\n SKELETON_DEFAULT_DIMENSIONS[variant] ?? SKELETON_DEFAULT_DIMENSIONS.rectangular;\n\nconst intensityOpacity = (intensity: SkeletonIntensity): number =>\n SKELETON_INTENSITY_OPACITY[intensity] ?? SKELETON_INTENSITY_OPACITY.medium;\n\nconst glassmorphismStyles = (theme: Theme): CSSObject => ({\n background: `linear-gradient(135deg,\n ${alpha(theme.palette.background.paper, GLASS_BACKGROUND_ALPHA_FROM)} 0%,\n ${alpha(theme.palette.background.paper, GLASS_BACKGROUND_ALPHA_TO)} 100%)`,\n backdropFilter: `blur(${GLASS_BLUR_PX}px)`,\n border: `1px solid ${alpha(theme.palette.divider, GLASS_BORDER_ALPHA)}`,\n boxShadow: `0 ${GLASS_SHADOW.offsetY}px ${GLASS_SHADOW.blur}px 0 ${shadowInk(theme, GLASS_SHADOW.alpha)}`,\n});\n\n// The sweep is a pseudo-element sliding across the box, so the box has to clip it\n// and establish a positioning context — hence `position`/`overflow` below.\nconst shimmerStyles = (theme: Theme): CSSObject => ({\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n background: `linear-gradient(\n 90deg,\n transparent,\n ${sheen(theme, SHIMMER_ALPHA)},\n transparent\n )`,\n transform: 'translateX(-100%)',\n animation: `shimmer ${SHIMMER_DURATION_MS / 1000}s infinite`,\n },\n '@keyframes shimmer': {\n '100%': {\n transform: 'translateX(100%)',\n },\n },\n});\n\ninterface SkeletonStyleArgs {\n intensity: SkeletonIntensity;\n borderRadius?: number | string;\n glassmorphism: boolean;\n shimmer: boolean;\n style?: React.CSSProperties;\n}\n\nexport const skeletonStyles = (\n theme: Theme,\n { intensity, borderRadius, glassmorphism, shimmer, style }: SkeletonStyleArgs,\n): CSSObject => ({\n borderRadius,\n backgroundColor: alpha(\n theme.palette.mode === 'dark' ? modeInk(theme) : theme.palette.text.primary,\n intensityOpacity(intensity),\n ),\n ...(shimmer && {\n position: 'relative' as const,\n overflow: 'hidden' as const,\n }),\n ...(glassmorphism ? glassmorphismStyles(theme) : {}),\n ...(shimmer ? shimmerStyles(theme) : {}),\n ...style,\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA,SAAS,aAAa;AAqBf,IAAM,gBAAgB,CAC3B,YACwC;AACxC,UAAQ,SAAS;AAAA,IACf,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AAAA,IACL,KAAK;AACH,aAAO;AAAA,IACT;AACE,aAAO;AAAA,EACX;AACF;AAEO,IAAM,kBAAkB,CAC7B,SACA,cACG;AACH,MAAI,YAAY,OAAQ,QAAO;AAC/B,SAAO;AACT;AAIO,IAAM,oBAAoB,CAC/B;AAAA;AAAA;AAAA,EAIA,4BAA4B,OAAO,KAAK,4BAA4B;AAAA;AAEtE,IAAM,mBAAmB,CAAC,cACxB,2BAA2B,SAAS,KAAK,2BAA2B;AAEtE,IAAM,sBAAsB,CAAC,WAA6B;AAAA,EACxD,YAAY;AAAA,UACJ,MAAM,MAAM,QAAQ,WAAW,OAAO,2BAA2B,CAAC;AAAA,UAClE,MAAM,MAAM,QAAQ,WAAW,OAAO,yBAAyB,CAAC;AAAA,EACxE,gBAAgB,QAAQ,aAAa;AAAA,EACrC,QAAQ,aAAa,MAAM,MAAM,QAAQ,SAAS,kBAAkB,CAAC;AAAA,EACrE,WAAW,KAAK,aAAa,OAAO,MAAM,aAAa,IAAI,QAAQ,UAAU,OAAO,aAAa,KAAK,CAAC;AACzG;AAIA,IAAM,gBAAgB,CAAC,WAA6B;AAAA,EAClD,YAAY;AAAA,IACV,SAAS;AAAA,IACT,UAAU;AAAA,IACV,KAAK;AAAA,IACL,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,YAAY;AAAA;AAAA;AAAA,YAGJ,MAAM,OAAO,aAAa,CAAC;AAAA;AAAA;AAAA,IAGnC,WAAW;AAAA,IACX,WAAW,WAAW,sBAAsB,GAAI;AAAA,EAClD;AAAA,EACA,sBAAsB;AAAA,IACpB,QAAQ;AAAA,MACN,WAAW;AAAA,IACb;AAAA,EACF;AACF;AAUO,IAAM,iBAAiB,CAC5B,OACA,EAAE,WAAW,cAAc,eAAe,SAAS,MAAM,OAC1C;AAAA,EACf;AAAA,EACA,iBAAiB;AAAA,IACf,MAAM,QAAQ,SAAS,SAAS,QAAQ,KAAK,IAAI,MAAM,QAAQ,KAAK;AAAA,IACpE,iBAAiB,SAAS;AAAA,EAC5B;AAAA,EACA,GAAI,WAAW;AAAA,IACb,UAAU;AAAA,IACV,UAAU;AAAA,EACZ;AAAA,EACA,GAAI,gBAAgB,oBAAoB,KAAK,IAAI,CAAC;AAAA,EAClD,GAAI,UAAU,cAAc,KAAK,IAAI,CAAC;AAAA,EACtC,GAAG;AACL;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/layout/Separator/Separator.tsx"],"sourcesContent":["import Box from '@mui/material/Box/index.js';\nimport Typography from '@mui/material/Typography/index.js';\nimport { useTheme } from '@mui/material/styles/index.js';\nimport React from 'react';\n\nimport { separatorBlockMargin, separatorStyles } from './Separator.styles';\nimport type { SeparatorProps } from './Separator.types';\n\nexport const Separator: React.FC<SeparatorProps> = ({\n variant = 'solid',\n orientation = 'horizontal',\n size = 'md',\n color,\n margin,\n length,\n children,\n className,\n 'data-testid': dataTestId,\n}) => {\n const theme = useTheme();\n const styles = separatorStyles(theme, { variant, orientation, size, color, margin, length });\n\n if (children) {\n const isHorizontal = orientation === 'horizontal';\n // The rules either side of the label sit INSIDE the row, which carries the\n // margin; their own would add it a second time.\n const ruleStyles = { ...styles, margin: 0 };\n\n return (\n <Box\n className={className}\n // The plain branch below has always carried the caller's hook; this one\n // silently dropped it, so a LABELLED separator was the one variant no\n // test could address except through its own words.\n data-testid={dataTestId}\n sx={{\n display: 'flex',\n alignItems: 'center',\n margin: separatorBlockMargin(size, margin, isHorizontal),\n flexDirection: isHorizontal ? 'row' : 'column',\n gap: theme.spacing(2),\n }}\n >\n <Box sx={ruleStyles} />\n {/*\n No background behind the label. The two rules and the words are a FLEX\n ROW — the rules stop where the label starts — so there is nothing for a\n background to mask, and painting one made the label a coloured pill on\n every surface that is not `background.default`. On a white card it read\n as a highlight nobody had asked for.\n */}\n <Typography\n variant=\"body2\"\n color=\"text.secondary\"\n sx={{ flexShrink: 0, padding: theme.spacing(0, 1) }}\n >\n {children}\n </Typography>\n <Box sx={ruleStyles} />\n </Box>\n );\n }\n\n return (\n <Box\n className={className}\n sx={styles}\n role=\"separator\"\n aria-orientation={orientation}\n data-testid={dataTestId}\n />\n );\n};\n"],"mappings":";;;;;;AAAA,OAAO,SAAS;AAChB,OAAO,gBAAgB;AACvB,SAAS,gBAAgB;AA2BnB,SAcE,KAdF;AArBC,IAAM,YAAsC,CAAC;AAAA,EAClD,UAAU;AAAA,EACV,cAAc;AAAA,EACd,OAAO;AAAA,EACP;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,eAAe;AACjB,MAAM;AACJ,QAAM,QAAQ,SAAS;AACvB,QAAM,SAAS,gBAAgB,OAAO,EAAE,SAAS,aAAa,MAAM,OAAO,QAAQ,OAAO,CAAC;AAE3F,MAAI,UAAU;AACZ,UAAM,eAAe,gBAAgB;AAGrC,UAAM,aAAa,EAAE,GAAG,QAAQ,QAAQ,EAAE;AAE1C,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QAIA,eAAa;AAAA,QACb,IAAI;AAAA,UACF,SAAS;AAAA,UACT,YAAY;AAAA,UACZ,QAAQ,qBAAqB,MAAM,QAAQ,YAAY;AAAA,UACvD,eAAe,eAAe,QAAQ;AAAA,UACtC,KAAK,MAAM,QAAQ,CAAC;AAAA,QACtB;AAAA,QAEA;AAAA,8BAAC,OAAI,IAAI,YAAY;AAAA,UAQrB;AAAA,YAAC;AAAA;AAAA,cACC,SAAQ;AAAA,cACR,OAAM;AAAA,cACN,IAAI,EAAE,YAAY,GAAG,SAAS,MAAM,QAAQ,GAAG,CAAC,EAAE;AAAA,cAEjD;AAAA;AAAA,UACH;AAAA,UACA,oBAAC,OAAI,IAAI,YAAY;AAAA;AAAA;AAAA,IACvB;AAAA,EAEJ;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,IAAI;AAAA,MACJ,MAAK;AAAA,MACL,oBAAkB;AAAA,MAClB,eAAa;AAAA;AAAA,EACf;AAEJ;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/layout/ScrollArea/ScrollArea.tsx"],"sourcesContent":["import KeyboardArrowUp from '@mui/icons-material/KeyboardArrowUp';\nimport Box from '@mui/material/Box/index.js';\nimport CircularProgress from '@mui/material/CircularProgress/index.js';\nimport Fab from '@mui/material/Fab/index.js';\nimport Zoom from '@mui/material/Zoom/index.js';\nimport { alpha, useTheme } from '@mui/material/styles/index.js';\nimport type { FC } from 'react';\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\n\nimport type { ResolvedScrollAreaProps } from './ScrollArea.helpers';\nimport { resolveScrollAreaProps } from './ScrollArea.helpers';\nimport type { ScrollAreaProps } from './ScrollArea.types';\nimport { ScrollAreaContent } from './ScrollAreaContent';\nimport { ScrollViewport } from './ScrollViewport';\n\n// Owns the scroll container ref (merging in any ref the caller passed) and\n// reports size changes through a ResizeObserver.\nconst useObservedScrollRef = ({\n externalScrollRef,\n onResize }: {\n externalScrollRef?: React.Ref<HTMLDivElement>;\n onResize?: ScrollAreaProps['onResize'];\n}) => {\n const internalScrollRef = useRef<HTMLDivElement>(null);\n const [containerDimensions, setContainerDimensions] = useState({ width: 0, height: 0 });\n\n // Track container dimensions with ResizeObserver\n useEffect(() => {\n if (!internalScrollRef.current) return;\n\n const resizeObserver = new ResizeObserver((entries) => {\n const entry = entries[0];\n if (entry) {\n const { width, height } = entry.contentRect;\n setContainerDimensions({ width, height });\n onResize?.({ width, height });\n }\n });\n\n resizeObserver.observe(internalScrollRef.current);\n return () => resizeObserver.disconnect();\n }, [onResize]);\n\n // Callback ref that updates both internal and external refs\n const setScrollRef = useCallback(\n (node: HTMLDivElement | null) => {\n // Update internal ref\n (internalScrollRef as React.MutableRefObject<HTMLDivElement | null>).current = node;\n // Update external ref if provided\n if (externalScrollRef) {\n (externalScrollRef as React.MutableRefObject<HTMLDivElement | null>).current = node;\n }\n },\n [externalScrollRef],\n );\n\n // Use internal ref for accessing the element\n\n return { scrollRef: internalScrollRef, setScrollRef, containerDimensions };\n};\n\n// Scroll position, the transient \"is scrolling\" flag that drives auto-hide, the\n// observed container size, and the scroll-to-top affordance.\n// The scrollbar shows while scrolling and hides once movement stops.\nconst useAutoHide = ({\n autoHide,\n alwaysShowScrollbar,\n autoHideDelay }: {\n autoHide: boolean;\n alwaysShowScrollbar: boolean;\n autoHideDelay: number;\n}) => {\n const [isScrolling, setIsScrolling] = useState(false);\n const timeoutRef = useRef<number | undefined>(undefined);\n\n const noteScroll = useCallback(() => {\n if (!autoHide || alwaysShowScrollbar) return;\n\n setIsScrolling(true);\n window.clearTimeout(timeoutRef.current);\n timeoutRef.current = window.setTimeout(() => setIsScrolling(false), autoHideDelay);\n }, [autoHide, alwaysShowScrollbar, autoHideDelay]);\n\n useEffect(() => () => window.clearTimeout(timeoutRef.current), []);\n\n return { isScrolling, noteScroll };\n};\n\nconst useScrollArea = (\n props: ResolvedScrollAreaProps & { externalScrollRef?: React.Ref<HTMLDivElement> },\n) => {\n const {\n disabled,\n onScroll,\n onResize,\n externalScrollRef,\n autoHide,\n autoHideDelay,\n alwaysShowScrollbar,\n scrollToTopButton,\n scrollToTopThreshold,\n smoothScroll } = props;\n\n const { scrollRef, setScrollRef, containerDimensions } = useObservedScrollRef({\n externalScrollRef,\n onResize });\n const [showScrollToTop, setShowScrollToTop] = useState(false);\n const { isScrolling, noteScroll } = useAutoHide({\n autoHide,\n alwaysShowScrollbar,\n autoHideDelay });\n\n const handleScroll = useCallback(\n (event: React.UIEvent<HTMLDivElement>) => {\n if (disabled) return;\n\n noteScroll();\n\n if (scrollToTopButton && scrollRef.current) {\n setShowScrollToTop(scrollRef.current.scrollTop > scrollToTopThreshold);\n }\n\n onScroll?.(event);\n },\n [disabled, noteScroll, scrollToTopButton, scrollToTopThreshold, onScroll, scrollRef],\n );\n\n const scrollToTop = useCallback(() => {\n scrollRef.current?.scrollTo({ top: 0, behavior: smoothScroll ? 'smooth' : 'auto' });\n }, [smoothScroll, scrollRef]);\n\n return {\n scrollRef,\n setScrollRef,\n isScrolling,\n showScrollToTop,\n containerDimensions,\n handleScroll,\n scrollToTop };\n};\n\nconst LoadingOverlay: FC = () => (\n <Box\n sx={{\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n zIndex: 10 }}\n >\n <CircularProgress />\n </Box>\n);\n\n// The label is guarded at the call site rather than defaulted: the props union\n// already makes it required alongside `scrollToTopButton`, and a fab with an\n// empty accessible name is the exact failure this port exists to remove.\nconst ScrollToTopFab: FC<{\n visible: boolean;\n glass: boolean;\n scrollToTopLabel: string;\n onClick: () => void;\n}> = ({\n visible,\n glass,\n scrollToTopLabel,\n onClick }) => {\n const theme = useTheme();\n\n return (\n <Zoom in={visible}>\n <Fab\n size=\"small\"\n aria-label={scrollToTopLabel}\n onClick={onClick}\n sx={{\n position: 'absolute',\n bottom: 16,\n right: 16,\n zIndex: 1,\n backgroundColor: glass\n ? alpha(theme.palette.primary.main, 0.2)\n : theme.palette.primary.main,\n backdropFilter: glass ? 'blur(10px)' : 'none',\n '&:hover': {\n backgroundColor: glass\n ? alpha(theme.palette.primary.main, 0.3)\n : theme.palette.primary.dark } }}\n >\n <KeyboardArrowUp />\n </Fab>\n </Zoom>\n );\n};\n\nexport const ScrollArea: React.FC<ScrollAreaProps> = (componentProps) => {\n const resolved = resolveScrollAreaProps(componentProps);\n const {\n regionLabel,\n scrollToTopLabel,\n children,\n width,\n height,\n maxHeight,\n maxWidth,\n orientation: _orientation,\n scrollbarSize: _scrollbarSize,\n autoHide,\n autoHideDelay: _autoHideDelay,\n smoothScroll: _smoothScroll,\n variant,\n onScroll: _onScroll,\n scrollToTopButton,\n scrollToTopThreshold: _scrollToTopThreshold,\n scrollbarColor: _scrollbarColor,\n scrollbarTrackColor: _scrollbarTrackColor,\n contentPadding: _contentPadding,\n alwaysShowScrollbar,\n disabled,\n loading,\n emptyContent,\n testId,\n scrollRef: externalScrollRef,\n onResize: _onResize,\n sx,\n ...props\n } = resolved;\n\n const {\n scrollRef,\n setScrollRef,\n isScrolling,\n showScrollToTop,\n containerDimensions,\n handleScroll,\n scrollToTop } = useScrollArea({ ...resolved, externalScrollRef });\n\n // Auto-hide keeps the scrollbar out of the way until the user is scrolling.\n const shouldShowScrollbar = alwaysShowScrollbar || !autoHide || isScrolling;\n\n return (\n <Box\n data-testid={testId}\n sx={{ position: 'relative', width, height, maxHeight, maxWidth, ...sx }}\n {...props}\n >\n <ScrollViewport\n {...resolved}\n regionLabel={regionLabel}\n shouldShowScrollbar={shouldShowScrollbar}\n setScrollRef={setScrollRef}\n onScroll={handleScroll}\n >\n <ScrollAreaContent\n emptyContent={emptyContent}\n scrollRef={scrollRef}\n containerWidth={containerDimensions.width}\n >\n {children}\n </ScrollAreaContent>\n </ScrollViewport>\n\n {loading && <LoadingOverlay />}\n\n {scrollToTopButton && scrollToTopLabel && !disabled && !loading && (\n <ScrollToTopFab\n scrollToTopLabel={scrollToTopLabel}\n visible={showScrollToTop}\n glass={variant === 'glass'}\n onClick={scrollToTop}\n />\n )}\n </Box>\n );\n};\n"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/form/Menubar/Menubar.item.tsx"],"sourcesContent":["import KeyboardArrowDownIcon from '@mui/icons-material/KeyboardArrowDown';\nimport Box from '@mui/material/Box/index.js';\nimport Button from '@mui/material/Button/index.js';\nimport Chip from '@mui/material/Chip/index.js';\nimport Divider from '@mui/material/Divider/index.js';\nimport ListItemIcon from '@mui/material/ListItemIcon/index.js';\nimport ListItemText from '@mui/material/ListItemText/index.js';\nimport Menu from '@mui/material/Menu/index.js';\nimport MenuItem from '@mui/material/MenuItem/index.js';\nimport { useTheme } from '@mui/material/styles/index.js';\nimport React from 'react';\n\nimport { sizeStyles } from './Menubar.styles';\nimport type { MenubarItem, MenubarProps } from './Menubar.types';\nimport { sxRem } from '../../../tokens/relative';\n\nexport interface MenubarItemViewProps {\n item: MenubarItem;\n size: NonNullable<MenubarProps['size']>;\n disabled: boolean;\n isOpen: boolean;\n anchorEl: HTMLElement | null;\n onOpen: (itemId: string, anchorEl: HTMLElement) => void;\n onActivate: (item: MenubarItem) => void;\n onClose: () => void;\n onFocus?: React.FocusEventHandler;\n onBlur?: React.FocusEventHandler;\n}\n\n/** One row of an open menu: its icon, its label, and its shortcut hint. */\nconst DropdownItem: React.FC<{ child: MenubarItem; onActivate: (item: MenubarItem) => void }> = ({\n child,\n onActivate,\n}) =>\n child.divider ? (\n <Divider />\n ) : (\n <MenuItem onClick={() => onActivate(child)} disabled={child.disabled}>\n {child.icon && <ListItemIcon>{child.icon}</ListItemIcon>}\n <ListItemText>{child.label}</ListItemText>\n {child.shortcut && (\n <Chip\n label={child.shortcut}\n size=\"small\"\n variant=\"outlined\"\n sx={{ ml: 2, height: 20, fontSize: sxRem(11.2) }}\n />\n )}\n </MenuItem>\n );\n\n/**\n * A top-level menubar entry. An entry with children opens its dropdown; one\n * without acts immediately — a decision the click and keyboard paths both need,\n * so it is made once here rather than in each handler.\n */\nexport const MenubarItemView: React.FC<MenubarItemViewProps> = ({\n item,\n size,\n disabled,\n isOpen,\n anchorEl,\n onOpen,\n onActivate,\n onClose,\n onFocus,\n onBlur,\n}) => {\n const theme = useTheme();\n const hasChildren = Boolean(item.children && item.children.length > 0);\n\n const activate = (target: HTMLElement) => {\n if (hasChildren) {\n onOpen(item.id, target);\n } else {\n onActivate(item);\n }\n };\n\n return (\n <Box>\n <Button\n data-testid={`menubar-button-${item.id}`}\n onClick={(e) => activate(e.currentTarget)}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n activate(e.currentTarget);\n }\n }}\n // Keeping focus on mousedown is what lets handleMenuClose return it here.\n onMouseDown={(e) => e.preventDefault()}\n onFocus={onFocus}\n onBlur={onBlur}\n disabled={item.disabled || disabled}\n startIcon={item.icon}\n endIcon={hasChildren ? <KeyboardArrowDownIcon /> : null}\n aria-haspopup={hasChildren ? 'menu' : undefined}\n aria-expanded={hasChildren ? isOpen : undefined}\n sx={{ color: 'inherit', textTransform: 'none', ...sizeStyles(theme, size) }}\n >\n {item.label}\n </Button>\n\n {hasChildren && (\n <Menu\n anchorEl={anchorEl}\n open={isOpen}\n onClose={onClose}\n autoFocus\n PaperProps={{ sx: { minWidth: 200, mt: 1 } }}\n >\n {item.children?.map((child) => (\n <DropdownItem key={child.id} child={child} onActivate={onActivate} />\n ))}\n </Menu>\n )}\n </Box>\n );\n};\n"],"mappings":";;;;;;;;AAAA,OAAO,2BAA2B;AAClC,OAAO,SAAS;AAChB,OAAO,YAAY;AACnB,OAAO,UAAU;AACjB,OAAO,aAAa;AACpB,OAAO,kBAAkB;AACzB,OAAO,kBAAkB;AACzB,OAAO,UAAU;AACjB,OAAO,cAAc;AACrB,SAAS,gBAAgB;AA0BrB,cAEA,YAFA;AALJ,IAAM,eAA0F,CAAC;AAAA,EAC/F;AAAA,EACA;AACF,MACE,MAAM,UACJ,oBAAC,WAAQ,IAET,qBAAC,YAAS,SAAS,MAAM,WAAW,KAAK,GAAG,UAAU,MAAM,UACzD;AAAA,QAAM,QAAQ,oBAAC,gBAAc,gBAAM,MAAK;AAAA,EACzC,oBAAC,gBAAc,gBAAM,OAAM;AAAA,EAC1B,MAAM,YACL;AAAA,IAAC;AAAA;AAAA,MACC,OAAO,MAAM;AAAA,MACb,MAAK;AAAA,MACL,SAAQ;AAAA,MACR,IAAI,EAAE,IAAI,GAAG,QAAQ,IAAI,UAAU,MAAM,IAAI,EAAE;AAAA;AAAA,EACjD;AAAA,GAEJ;AAQG,IAAM,kBAAkD,CAAC;AAAA,EAC9D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,QAAQ,SAAS;AACvB,QAAM,cAAc,QAAQ,KAAK,YAAY,KAAK,SAAS,SAAS,CAAC;AAErE,QAAM,WAAW,CAAC,WAAwB;AACxC,QAAI,aAAa;AACf,aAAO,KAAK,IAAI,MAAM;AAAA,IACxB,OAAO;AACL,iBAAW,IAAI;AAAA,IACjB;AAAA,EACF;AAEA,SACE,qBAAC,OACC;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,eAAa,kBAAkB,KAAK,EAAE;AAAA,QACtC,SAAS,CAAC,MAAM,SAAS,EAAE,aAAa;AAAA,QACxC,WAAW,CAAC,MAAM;AAChB,cAAI,EAAE,QAAQ,WAAW,EAAE,QAAQ,KAAK;AACtC,cAAE,eAAe;AACjB,qBAAS,EAAE,aAAa;AAAA,UAC1B;AAAA,QACF;AAAA,QAEA,aAAa,CAAC,MAAM,EAAE,eAAe;AAAA,QACrC;AAAA,QACA;AAAA,QACA,UAAU,KAAK,YAAY;AAAA,QAC3B,WAAW,KAAK;AAAA,QAChB,SAAS,cAAc,oBAAC,yBAAsB,IAAK;AAAA,QACnD,iBAAe,cAAc,SAAS;AAAA,QACtC,iBAAe,cAAc,SAAS;AAAA,QACtC,IAAI,EAAE,OAAO,WAAW,eAAe,QAAQ,GAAG,WAAW,OAAO,IAAI,EAAE;AAAA,QAEzE,eAAK;AAAA;AAAA,IACR;AAAA,IAEC,eACC;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,MAAM;AAAA,QACN;AAAA,QACA,WAAS;AAAA,QACT,YAAY,EAAE,IAAI,EAAE,UAAU,KAAK,IAAI,EAAE,EAAE;AAAA,QAE1C,eAAK,UAAU,IAAI,CAAC,UACnB,oBAAC,gBAA4B,OAAc,cAAxB,MAAM,EAA0C,CACpE;AAAA;AAAA,IACH;AAAA,KAEJ;AAEJ;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/form/Autocomplete/Autocomplete.parts.tsx"],"sourcesContent":["import LinkIcon from '@mui/icons-material/Link';\nimport SearchIcon from '@mui/icons-material/Search';\nimport Box from '@mui/material/Box/index.js';\nimport Chip from '@mui/material/Chip/index.js';\nimport CircularProgress from '@mui/material/CircularProgress/index.js';\nimport List from '@mui/material/List/index.js';\nimport ListItem from '@mui/material/ListItem/index.js';\nimport ListItemText from '@mui/material/ListItemText/index.js';\nimport Paper from '@mui/material/Paper/index.js';\nimport Popper from '@mui/material/Popper/index.js';\nimport TextField from '@mui/material/TextField/index.js';\nimport Typography from '@mui/material/Typography/index.js';\nimport { styled } from '@mui/material/styles/index.js';\nimport React from 'react';\n\nimport { highlightLabel, type MatchMode } from './Autocomplete.helpers';\nimport type { SuggestionItemState, SuggestionType } from './Autocomplete.types';\nimport type { AutocompleteCopy } from '../../../copy';\nimport { fieldTextFieldStyles } from '../../../tokens/field-height';\n\nconst StyledPopper = styled(Popper)(({ theme }) => ({\n zIndex: theme.zIndex.tooltip,\n width: '100%',\n maxHeight: 300,\n overflow: 'auto',\n // Popper.js writes the computed position (and stamps `data-popper-placement`)\n // in a layout effect that can land AFTER the first paint. Until it does, the\n // element would paint once unpositioned — at the offset-parent origin, far\n // left and full width — then jump under the input, a visible per-keystroke\n // flash as the list re-renders. Hide that unpositioned first frame; it becomes\n // visible the instant popper assigns a placement.\n '&:not([data-popper-placement])': { visibility: 'hidden' },\n}));\n\nconst InlineSuggestionDisplay = styled('div')(() => ({\n position: 'absolute',\n pointerEvents: 'none',\n left: '14px', // Match TextField padding\n top: '50%',\n transform: 'translateY(-50%)',\n fontSize: 'inherit',\n fontFamily: 'inherit',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n zIndex: 1,\n}));\n\nconst UserTextTwin = styled('span')({\n visibility: 'hidden',\n});\n\nconst GhostText = styled('span')(({ theme }) => ({\n color: theme.palette.text.secondary,\n opacity: 0.6,\n}));\n\nconst ChipContainer = styled(Box)(({ theme }) => ({\n display: 'flex',\n flexWrap: 'wrap',\n gap: theme.spacing(0.5),\n marginBottom: theme.spacing(1),\n}));\n\n/** Leading icon for a typed suggestion (search vs. link); null for untyped items. */\nexport function suggestionTypeIcon(type: SuggestionType | undefined): React.ReactNode {\n const sx = { color: 'text.secondary', flexShrink: 0 } as const;\n if (type === 'link') return <LinkIcon fontSize=\"small\" sx={sx} />;\n if (type === 'search') return <SearchIcon fontSize=\"small\" sx={sx} />;\n return null;\n}\n\n/** The inline ghost-text overlay: an invisible twin of the typed text + the grey remainder. */\nfunction GhostOverlay({ inputValue, ghost }: { inputValue: string; ghost: string }): React.JSX.Element {\n return (\n <InlineSuggestionDisplay>\n <UserTextTwin>{inputValue}</UserTextTwin>\n <GhostText>{ghost}</GhostText>\n </InlineSuggestionDisplay>\n );\n}\n\nexport interface AutocompleteInputProps {\n id: string;\n listId: string;\n inputRef: React.RefObject<HTMLInputElement | null>;\n inputValue: string;\n ghost: string;\n showGhost: boolean;\n isInputFocused: boolean;\n open: boolean;\n activeDescendant: string | undefined;\n isLoading: boolean;\n disabled: boolean;\n autoFocus: boolean;\n placeholder: string;\n startAdornment?: React.ReactNode;\n inputAriaLabel?: string;\n inputClassName?: string;\n onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\n onKeyDown: (e: React.KeyboardEvent<HTMLInputElement>) => void;\n onFocus: () => void;\n onBlur: () => void;\n onCompositionStart: () => void;\n onCompositionEnd: () => void;\n}\n\n/** The combobox text field plus its inline ghost-text overlay. */\nexport function AutocompleteInput(props: AutocompleteInputProps): React.JSX.Element {\n const showOverlay = Boolean(props.ghost) && props.showGhost && props.isInputFocused;\n return (\n <Box sx={{ position: 'relative' }}>\n {showOverlay && <GhostOverlay inputValue={props.inputValue} ghost={props.ghost} />}\n <TextField\n ref={props.inputRef}\n fullWidth\n sx={fieldTextFieldStyles}\n value={props.inputValue}\n onChange={props.onChange}\n onKeyDown={props.onKeyDown}\n onFocus={props.onFocus}\n onBlur={props.onBlur}\n onCompositionStart={props.onCompositionStart}\n onCompositionEnd={props.onCompositionEnd}\n placeholder={props.placeholder}\n disabled={props.disabled}\n autoFocus={props.autoFocus}\n className={props.inputClassName}\n InputProps={{\n startAdornment: props.startAdornment,\n endAdornment: props.isLoading ? <CircularProgress size={20} /> : undefined,\n }}\n inputProps={{\n role: 'combobox',\n 'aria-expanded': props.open,\n 'aria-controls': props.open ? props.listId : undefined,\n 'aria-activedescendant': props.activeDescendant,\n 'aria-autocomplete': 'list',\n 'aria-label': props.inputAriaLabel,\n id: props.id,\n }}\n />\n </Box>\n );\n}\n\n/** Selected-item chips (multiple mode). */\nexport function ChipList<T>({\n items,\n getKey,\n getLabel,\n onRemove,\n chipClassName,\n}: {\n items: T[];\n getKey: (item: T) => string;\n getLabel: (item: T) => string;\n onRemove: (item: T) => void;\n chipClassName?: string;\n}): React.JSX.Element {\n return (\n <ChipContainer data-testid=\"selected-items-container\">\n {items.map((item, index) => (\n <Chip\n key={`${getKey(item)}-${index}`}\n label={getLabel(item)}\n onDelete={() => onRemove(item)}\n size=\"small\"\n className={chipClassName}\n data-testid={`selected-chip-${index}`}\n />\n ))}\n </ChipContainer>\n );\n}\n\n/** Default suggestion row: per-type icon + highlighted label + optional description. */\nexport function DefaultSuggestion<T>({\n item,\n state,\n getLabel,\n getDescription,\n getSuggestionType,\n matchMode,\n}: {\n item: T;\n state: SuggestionItemState;\n getLabel: (item: T) => string;\n getDescription?: (item: T) => string | undefined;\n getSuggestionType: (item: T) => SuggestionType | undefined;\n matchMode: MatchMode;\n}): React.JSX.Element {\n const label = getLabel(item);\n const description = getDescription?.(item);\n const displayLabel = highlightLabel(label, state.query, matchMode);\n return (\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n gap: 1,\n width: '100%',\n // Bold the matched prefix (not a yellow <mark> highlight).\n '& mark': { backgroundColor: 'transparent', color: 'inherit', fontWeight: 700 },\n }}\n >\n {suggestionTypeIcon(getSuggestionType(item))}\n <ListItemText\n primary={<span dangerouslySetInnerHTML={{ __html: displayLabel }} />}\n secondary={description}\n />\n </Box>\n );\n}\n\n/** A \"Loading…\" row shown while async suggestions resolve. */\nexport function LoadingRow({ label }: { label: string }): React.JSX.Element {\n return (\n <ListItem>\n <Box display=\"flex\" alignItems=\"center\" gap={1}>\n <CircularProgress size={16} />\n <Typography variant=\"body2\" color=\"text.secondary\">\n {label}\n </Typography>\n </Box>\n </ListItem>\n );\n}\n\n/** The empty \"No results found\" row. */\nexport function NoResultsRow({ label }: { label: string }): React.JSX.Element {\n return (\n <ListItem>\n <Typography variant=\"body2\" color=\"text.secondary\">\n {label}\n </Typography>\n </ListItem>\n );\n}\n\n/** Keep the Popper the same width as its anchor input. */\nconst SAME_WIDTH_MODIFIER = {\n name: 'sameWidth',\n enabled: true,\n fn: ({ state }: { state: { elements: { reference?: unknown }; styles: { popper?: Record<string, string> }; rects: { reference: { width: number } } } }) => {\n if (state.elements.reference && state.styles.popper) {\n state.styles.popper.width = `${state.rects.reference.width}px`;\n }\n },\n phase: 'beforeWrite' as const,\n requires: ['computeStyles'],\n};\n\nexport interface SuggestionListBoxProps<T> {\n copy: AutocompleteCopy;\n open: boolean;\n anchorEl: HTMLElement | null;\n portal: boolean | { container?: HTMLElement };\n listRef: React.RefObject<HTMLUListElement | null>;\n listId: string;\n optionIdPrefix: string;\n items: T[];\n activeIndex: number;\n isLoading: boolean;\n showNoResults: boolean;\n getKey: (item: T) => string;\n onSelect: (item: T) => void;\n onHover: (index: number) => void;\n renderItem: (item: T, active: boolean) => React.ReactNode;\n listClassName?: string;\n itemClassName?: string;\n activeItemClassName?: string;\n}\n\n/** The suggestions dropdown: a same-width Popper with the option list + loading/empty rows. */\nexport function SuggestionListBox<T>({\n copy,\n open,\n anchorEl,\n portal,\n listRef,\n listId,\n optionIdPrefix,\n items,\n activeIndex,\n isLoading,\n showNoResults,\n getKey,\n onSelect,\n onHover,\n renderItem,\n listClassName,\n itemClassName,\n activeItemClassName,\n}: SuggestionListBoxProps<T>): React.JSX.Element {\n return (\n <StyledPopper\n open={open}\n anchorEl={anchorEl}\n placement=\"bottom-start\"\n disablePortal={!portal}\n modifiers={[SAME_WIDTH_MODIFIER]}\n >\n <Paper elevation={8} className={listClassName} data-testid=\"suggestions-dropdown\">\n <List\n ref={listRef}\n role=\"listbox\"\n id={listId}\n dense\n sx={{ maxHeight: 300, overflow: 'auto' }}\n data-testid=\"suggestions-list\"\n >\n {items.map((item, index) => (\n <ListItem\n key={getKey(item)}\n id={`${optionIdPrefix}-${index}`}\n role=\"option\"\n component=\"div\"\n sx={{\n cursor: 'pointer',\n backgroundColor: index === activeIndex ? 'action.hover' : 'transparent',\n '&:hover': { backgroundColor: 'action.hover' },\n }}\n aria-selected={index === activeIndex}\n onMouseDown={(e) => e.preventDefault()}\n onClick={() => onSelect(item)}\n onMouseEnter={() => onHover(index)}\n className={`${itemClassName} ${index === activeIndex ? activeItemClassName : ''}`}\n data-testid={`suggestion-item-${index}`}\n >\n {renderItem(item, index === activeIndex)}\n </ListItem>\n ))}\n {isLoading && <LoadingRow label={copy.loading} />}\n {showNoResults && <NoResultsRow label={copy.noResults} />}\n </List>\n </Paper>\n </StyledPopper>\n );\n}\n"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/feedback/TutorialOverlay/TutorialOverlay.hooks.ts"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from 'react';\n\nimport { calculateTooltipPosition, getElementBounds } from './TutorialOverlay.geometry';\nimport type { TutorialOverlayProps } from './TutorialOverlay.types';\n\n// Tracks the highlighted element's box, re-measuring on resize and scroll. Scroll\n// is captured (third argument true) so it fires for any scrolling ancestor, not\n// just the window.\nconst useTargetBounds = ({\n active,\n target,\n}: {\n active: boolean;\n target?: string;\n}) => {\n const [targetBounds, setTargetBounds] = useState<globalThis.DOMRect | null>(null);\n const [isVisible, setIsVisible] = useState(false);\n\n useEffect(() => {\n if (!active || !target) return;\n\n const updateBounds = () => {\n const bounds = getElementBounds(target);\n setTargetBounds(bounds);\n setIsVisible(Boolean(bounds));\n };\n\n updateBounds();\n\n window.addEventListener('resize', updateBounds);\n window.addEventListener('scroll', updateBounds, true);\n\n return () => {\n window.removeEventListener('resize', updateBounds);\n window.removeEventListener('scroll', updateBounds, true);\n };\n }, [active, target]);\n\n return { targetBounds, isVisible };\n};\n\n// Places the tooltip against the measured target once both boxes are known.\nconst useTooltipPlacement = ({\n targetBounds,\n isVisible,\n preferredPosition,\n}: {\n targetBounds: globalThis.DOMRect | null;\n isVisible: boolean;\n preferredPosition?: string;\n}) => {\n const tooltipRef = useRef<HTMLDivElement>(null);\n const [tooltipPosition, setTooltipPosition] = useState({ top: 0, left: 0 });\n const [actualPlacement, setActualPlacement] = useState<string>('bottom');\n\n useEffect(() => {\n if (!targetBounds || !tooltipRef.current || !isVisible) return;\n\n const { position, placement } = calculateTooltipPosition(\n targetBounds,\n tooltipRef.current.getBoundingClientRect(),\n preferredPosition || 'auto',\n );\n\n setTooltipPosition(position);\n setActualPlacement(placement);\n }, [targetBounds, isVisible, preferredPosition]);\n\n return { tooltipRef, tooltipPosition, actualPlacement };\n};\n\n// Arrow keys step through the tour, Escape skips it.\nconst useTutorialKeyboard = ({\n enabled,\n onNext,\n onPrev,\n onSkip,\n}: {\n enabled: boolean;\n onNext: () => void;\n onPrev: () => void;\n onSkip: () => void;\n}) => {\n useEffect(() => {\n if (!enabled) return;\n\n const handleKeyPress = (e: globalThis.KeyboardEvent) => {\n switch (e.key) {\n case 'ArrowLeft':\n onPrev();\n break;\n case 'ArrowRight':\n onNext();\n break;\n case 'Escape':\n onSkip();\n break;\n }\n };\n\n window.addEventListener('keydown', handleKeyPress);\n return () => window.removeEventListener('keydown', handleKeyPress);\n }, [enabled, onNext, onPrev, onSkip]);\n};\n\nexport const useTutorialOverlay = ({\n steps,\n initialStep,\n active,\n allowKeyboardNavigation,\n onComplete,\n onSkip,\n onStepComplete,\n}: {\n steps: TutorialOverlayProps['steps'];\n initialStep: number;\n active: boolean;\n allowKeyboardNavigation: boolean;\n onComplete?: () => void;\n onSkip?: () => void;\n onStepComplete?: (stepId: string) => void;\n}) => {\n const [currentStep, setCurrentStep] = useState(initialStep);\n\n const currentStepData = steps[currentStep];\n const isLastStep = currentStep === steps.length - 1;\n\n const { targetBounds, isVisible } = useTargetBounds({\n active,\n target: currentStepData?.target,\n });\n\n const { tooltipRef, tooltipPosition, actualPlacement } = useTooltipPlacement({\n targetBounds,\n isVisible,\n preferredPosition: currentStepData?.position,\n });\n\n const handleNext = useCallback(() => {\n const currentStepId = steps[currentStep]?.id;\n if (currentStepId) onStepComplete?.(currentStepId);\n\n if (currentStep < steps.length - 1) {\n setCurrentStep(currentStep + 1);\n return;\n }\n\n onComplete?.();\n }, [currentStep, steps, onComplete, onStepComplete]);\n\n const handlePrev = useCallback(() => {\n setCurrentStep((step) => Math.max(step - 1, 0));\n }, []);\n\n const handleSkip = useCallback(() => {\n onSkip?.();\n }, [onSkip]);\n\n const handleRestart = useCallback(() => {\n setCurrentStep(0);\n }, []);\n\n useTutorialKeyboard({\n enabled: allowKeyboardNavigation && active,\n onNext: handleNext,\n onPrev: handlePrev,\n onSkip: handleSkip,\n });\n\n return {\n currentStep,\n currentStepData,\n isLastStep,\n isVisible,\n targetBounds,\n tooltipRef,\n tooltipPosition,\n actualPlacement,\n progress: ((currentStep + 1) / steps.length) * 100,\n handleNext,\n handlePrev,\n handleSkip,\n handleRestart,\n };\n};\n"],"mappings":"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","names":[]}