@12-apps/ui 6.34.0 → 6.35.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 (1130) hide show
  1. package/dist/_internal/components/data-display/Alert/Alert.js +3 -2
  2. package/dist/_internal/components/data-display/Alert/Alert.styles.js +2 -1
  3. package/dist/_internal/components/data-display/AlertDialog/AlertDialog.js +2 -1
  4. package/dist/_internal/components/data-display/AsyncStateContainer/AsyncStateContainer.js +3 -2
  5. package/dist/_internal/components/data-display/Avatar/Avatar.js +3 -8
  6. package/dist/_internal/components/data-display/Avatar/Avatar.view.js +2 -7
  7. package/dist/_internal/components/data-display/Badge/Badge.js +5 -5
  8. package/dist/_internal/components/data-display/Badge/Badge.styles.js +3 -3
  9. package/dist/_internal/components/data-display/Badge/Badge.variants.js +2 -1
  10. package/dist/_internal/components/data-display/Badge/BadgeContent.js +4 -4
  11. package/dist/_internal/components/data-display/Banner/Banner.js +3 -2
  12. package/dist/_internal/components/data-display/Banner/Banner.styles.js +2 -1
  13. package/dist/_internal/components/data-display/CardKit/CardKebab.js +5 -4
  14. package/dist/_internal/components/data-display/CardKit/card-actions-context.js +4 -3
  15. package/dist/_internal/components/data-display/CardKit/list-card-parts.js +2 -1
  16. package/dist/_internal/components/data-display/CardKit/use-remove-confirm.js +12 -11
  17. package/dist/_internal/components/data-display/CardKit/use-row-confirm.js +9 -8
  18. package/dist/_internal/components/data-display/Carousel/Carousel.chrome.js +3 -3
  19. package/dist/_internal/components/data-display/Carousel/Carousel.js +5 -5
  20. package/dist/_internal/components/data-display/Carousel/Carousel.parts.js +2 -2
  21. package/dist/_internal/components/data-display/Carousel/Carousel.styles.js +2 -2
  22. package/dist/_internal/components/data-display/Chart/Chart.js +5 -5
  23. package/dist/_internal/components/data-display/Chart/SpecChart.js +6 -6
  24. package/dist/_internal/components/data-display/Chart/chart-context.js +3 -3
  25. package/dist/_internal/components/data-display/Chart/chart-internals.js +2 -2
  26. package/dist/_internal/components/data-display/Chart/chart-renderers.js +4 -4
  27. package/dist/_internal/components/data-display/DataViews/DataViewsBoard.js +3 -2
  28. package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +60 -59
  29. package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +76 -75
  30. package/dist/_internal/components/data-display/DataViews/DeleteViewDialog.js +5 -4
  31. package/dist/_internal/components/data-display/DataViews/ManageViewsDialog.js +10 -9
  32. package/dist/_internal/components/data-display/DataViews/SaveViewModal.js +9 -8
  33. package/dist/_internal/components/data-display/DataViews/base-card.js +4 -3
  34. package/dist/_internal/components/data-display/DataViews/base-list-card-geometry.js +10 -9
  35. package/dist/_internal/components/data-display/DataViews/base-list-card-gutters.js +3 -8
  36. package/dist/_internal/components/data-display/DataViews/base-list-card-slots.js +9 -8
  37. package/dist/_internal/components/data-display/DataViews/base-list-card.js +13 -12
  38. package/dist/_internal/components/data-display/DataViews/data-views-bar-controls.js +2 -1
  39. package/dist/_internal/components/data-display/DataViews/data-views-category-pill.js +20 -19
  40. package/dist/_internal/components/data-display/DataViews/data-views-columns-tab.js +3 -2
  41. package/dist/_internal/components/data-display/DataViews/data-views-columns.js +6 -5
  42. package/dist/_internal/components/data-display/DataViews/data-views-display-panel.js +11 -10
  43. package/dist/_internal/components/data-display/DataViews/data-views-display-tabs.js +6 -5
  44. package/dist/_internal/components/data-display/DataViews/data-views-empty.js +5 -4
  45. package/dist/_internal/components/data-display/DataViews/data-views-export.js +5 -4
  46. package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +24 -23
  47. package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +14 -13
  48. package/dist/_internal/components/data-display/DataViews/data-views-grid-helpers.js +5 -4
  49. package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +57 -56
  50. package/dist/_internal/components/data-display/DataViews/data-views-header-row.js +3 -2
  51. package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +31 -30
  52. package/dist/_internal/components/data-display/DataViews/data-views-layout-context.js +4 -3
  53. package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +14 -13
  54. package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +17 -16
  55. package/dist/_internal/components/data-display/DataViews/data-views-pagination.js +4 -3
  56. package/dist/_internal/components/data-display/DataViews/data-views-preset-chips.js +2 -1
  57. package/dist/_internal/components/data-display/DataViews/data-views-range-pill.js +4 -3
  58. package/dist/_internal/components/data-display/DataViews/data-views-scope-tabs.js +6 -5
  59. package/dist/_internal/components/data-display/DataViews/data-views-scopes.js +2 -1
  60. package/dist/_internal/components/data-display/DataViews/data-views-search.js +2 -1
  61. package/dist/_internal/components/data-display/DataViews/data-views-select-all-strip.js +5 -4
  62. package/dist/_internal/components/data-display/DataViews/data-views-shell-toolbar.js +24 -23
  63. package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +26 -25
  64. package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +23 -22
  65. package/dist/_internal/components/data-display/DataViews/data-views-view-nav.js +5 -4
  66. package/dist/_internal/components/data-display/DataViews/list-card-cells.js +2 -1
  67. package/dist/_internal/components/data-display/DataViews/list-card-rails.js +6 -5
  68. package/dist/_internal/components/data-display/DataViews/save-view-preview.js +3 -2
  69. package/dist/_internal/components/data-display/DataViews/use-data-views-state.js +8 -7
  70. package/dist/_internal/components/data-display/DescriptionItem/DescriptionItem.js +3 -2
  71. package/dist/_internal/components/data-display/ErrorState/ErrorState.js +2 -1
  72. package/dist/_internal/components/data-display/FleetMap/FleetBody.js +7 -6
  73. package/dist/_internal/components/data-display/FleetMap/FleetCanvas.js +6 -5
  74. package/dist/_internal/components/data-display/FleetMap/FleetMap.js +9 -9
  75. package/dist/_internal/components/data-display/InteractiveTooltip/InteractiveTooltip.js +3 -2
  76. package/dist/_internal/components/data-display/InteractiveTooltip/InteractiveTooltip.styles.js +2 -1
  77. package/dist/_internal/components/data-display/Lightbox/Lightbox.constants.js +2 -1
  78. package/dist/_internal/components/data-display/Lightbox/Lightbox.hooks.js +3 -2
  79. package/dist/_internal/components/data-display/Lightbox/Lightbox.js +9 -8
  80. package/dist/_internal/components/data-display/Lightbox/LightboxControls.js +3 -2
  81. package/dist/_internal/components/data-display/Lightbox/LightboxOverlay.js +4 -3
  82. package/dist/_internal/components/data-display/Lightbox/LightboxStage.js +3 -2
  83. package/dist/_internal/components/data-display/Lightbox/LightboxThumbnails.js +3 -2
  84. package/dist/_internal/components/data-display/Lightbox/useLightbox.js +4 -3
  85. package/dist/_internal/components/data-display/MapPreview/MapDecorations.js +2 -1
  86. package/dist/_internal/components/data-display/MapPreview/MapMarkers.js +2 -1
  87. package/dist/_internal/components/data-display/MapPreview/MapPreview.js +5 -4
  88. package/dist/_internal/components/data-display/MapPreview/StaticMapView.js +3 -2
  89. package/dist/_internal/components/data-display/Progress/Progress.js +3 -2
  90. package/dist/_internal/components/data-display/Progress/Progress.styles.js +2 -1
  91. package/dist/_internal/components/data-display/SectionOnboarding/SectionOnboarding.js +3 -2
  92. package/dist/_internal/components/data-display/Sheet/Sheet.body.js +1 -1
  93. package/dist/_internal/components/data-display/Sheet/Sheet.js +1 -1
  94. package/dist/_internal/components/data-display/Sheet/Sheet.styles.js +1 -1
  95. package/dist/_internal/components/data-display/StatCard/StatCard.js +2 -1
  96. package/dist/_internal/components/data-display/Stepper/Stepper.js +2 -1
  97. package/dist/_internal/components/data-display/Table/Table.js +3 -2
  98. package/dist/_internal/components/data-display/Table/Table.styles.js +2 -1
  99. package/dist/_internal/components/data-display/Timeline/Timeline.js +3 -2
  100. package/dist/_internal/components/data-display/Timeline/TimelineRow.js +2 -1
  101. package/dist/_internal/components/data-display/TimingDiagram/TimingDiagram.js +3 -2
  102. package/dist/_internal/components/data-display/TimingDiagram/TimingDiagram.views.js +2 -1
  103. package/dist/_internal/components/data-display/Tooltip/Tooltip.js +2 -1
  104. package/dist/_internal/components/data-display/index.js +55 -55
  105. package/dist/_internal/components/feedback/ConfirmAction/ConfirmAction.js +4 -3
  106. package/dist/_internal/components/feedback/ConfirmAction/ConfirmAction.parts.js +3 -2
  107. package/dist/_internal/components/feedback/ConfirmAction/ConfirmButton.js +7 -6
  108. package/dist/_internal/components/feedback/ConfirmAction/with-confirmation.js +4 -3
  109. package/dist/_internal/components/feedback/NotificationStatusNotice/NotificationStatusNotice.js +6 -5
  110. package/dist/_internal/components/feedback/Sonner/Sonner.js +3 -2
  111. package/dist/_internal/components/feedback/Sonner/SonnerToast.js +2 -1
  112. package/dist/_internal/components/feedback/index.js +13 -12
  113. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.js +4 -3
  114. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocompleteField.js +3 -2
  115. package/dist/_internal/components/form/AddressAutocomplete/AddressOption.js +2 -1
  116. package/dist/_internal/components/form/Button/Button.js +3 -2
  117. package/dist/_internal/components/form/Button/Button.styles.js +2 -1
  118. package/dist/_internal/components/form/CategorySelect/CategoryPanel.js +8 -7
  119. package/dist/_internal/components/form/CategorySelect/CategoryPanelFoot.js +3 -2
  120. package/dist/_internal/components/form/CategorySelect/CategoryPanelHead.js +3 -2
  121. package/dist/_internal/components/form/CategorySelect/CategoryPanelList.js +4 -3
  122. package/dist/_internal/components/form/CategorySelect/CategoryQuickActions.js +2 -1
  123. package/dist/_internal/components/form/CategorySelect/CategoryRows.js +3 -2
  124. package/dist/_internal/components/form/CategorySelect/CategorySelect.js +11 -10
  125. package/dist/_internal/components/form/CategorySelect/CategorySelect.styles.js +2 -1
  126. package/dist/_internal/components/form/CategorySelect/CategoryTrigger.js +3 -2
  127. package/dist/_internal/components/form/CepField/CepField.js +3 -2
  128. package/dist/_internal/components/form/Checkbox/Checkbox.js +2 -7
  129. package/dist/_internal/components/form/CodeEditor/CodeEditor.js +3 -2
  130. package/dist/_internal/components/form/CodeEditor/CodeEditorToolbar.js +2 -1
  131. package/dist/_internal/components/form/Command/Command.js +3 -3
  132. package/dist/_internal/components/form/Command/Command.styles.js +2 -2
  133. package/dist/_internal/components/form/CreatableSelect/CreatableSelect.js +3 -2
  134. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.js +3 -2
  135. package/dist/_internal/components/form/DateRangePicker/DateRangePickerQuickList.js +2 -1
  136. package/dist/_internal/components/form/Form/Form.js +2 -1
  137. package/dist/_internal/components/form/HeaderActions/HeaderActions.js +3 -2
  138. package/dist/_internal/components/form/HeaderButton/HeaderButton.js +2 -1
  139. package/dist/_internal/components/form/InputOTP/InputOTP.js +3 -2
  140. package/dist/_internal/components/form/InputOTP/InputOTP.styles.js +2 -1
  141. package/dist/_internal/components/form/Label/Label.js +3 -3
  142. package/dist/_internal/components/form/Label/Label.styles.js +2 -2
  143. package/dist/_internal/components/form/Menubar/Menubar.item.js +3 -3
  144. package/dist/_internal/components/form/Menubar/Menubar.js +5 -5
  145. package/dist/_internal/components/form/Menubar/Menubar.styles.js +2 -2
  146. package/dist/_internal/components/form/Menubar/Menubar.toolbar.js +4 -4
  147. package/dist/_internal/components/form/PasswordStrength/PasswordStrength.helpers.js +1 -1
  148. package/dist/_internal/components/form/PasswordStrength/PasswordStrength.js +3 -2
  149. package/dist/_internal/components/form/PhoneInput/PhoneInput.js +2 -1
  150. package/dist/_internal/components/form/RadioGroup/RadioGroup.js +4 -3
  151. package/dist/_internal/components/form/RadioGroup/RadioGroup.styles.js +2 -1
  152. package/dist/_internal/components/form/RadioGroup/RadioGroup.variants.js +3 -2
  153. package/dist/_internal/components/form/RichTextEditor/RichTextEditor.js +2 -1
  154. package/dist/_internal/components/form/SearchPalette/SearchPalette.js +3 -2
  155. package/dist/_internal/components/form/SearchPalette/SearchPalette.parts.js +2 -1
  156. package/dist/_internal/components/form/Slider/Slider.js +3 -2
  157. package/dist/_internal/components/form/Slider/Slider.styles.js +2 -1
  158. package/dist/_internal/components/form/Switch/Switch.js +4 -3
  159. package/dist/_internal/components/form/Switch/Switch.parts.js +3 -2
  160. package/dist/_internal/components/form/Switch/Switch.styles.js +2 -1
  161. package/dist/_internal/components/form/Textarea/Textarea.js +2 -1
  162. package/dist/_internal/components/form/Textarea/TextareaRichEditor.js +5 -2
  163. package/dist/_internal/components/form/Textarea/TextareaRichEditor.js.map +1 -1
  164. package/dist/_internal/components/form/Toggle/Toggle.js +3 -2
  165. package/dist/_internal/components/form/Toggle/Toggle.styles.js +2 -1
  166. package/dist/_internal/components/form/ToggleGroup/ToggleGroup.js +2 -1
  167. package/dist/_internal/components/form/UploadButton/UploadButton.js +3 -2
  168. package/dist/_internal/components/form/UploadButton/UploadButton.parts.js +2 -1
  169. package/dist/_internal/components/form/index.js +43 -43
  170. package/dist/_internal/components/form/total-form/Fields/CategoryField.js +12 -11
  171. package/dist/_internal/components/form/total-form/Fields/CepField.js +4 -3
  172. package/dist/_internal/components/form/total-form/Fields/SelectField.js +3 -2
  173. package/dist/_internal/components/form/total-form/Fields/TextField.js +3 -2
  174. package/dist/_internal/components/form/total-form/Fields/ToggleField.js +4 -3
  175. package/dist/_internal/components/form/total-form/Fields/index.js +19 -18
  176. package/dist/_internal/components/form/total-form/FormContainer.js +3 -2
  177. package/dist/_internal/components/form/total-form/SubmitButton.js +4 -3
  178. package/dist/_internal/components/index.js +146 -146
  179. package/dist/_internal/components/layout/Box/Box.js +1 -1
  180. package/dist/_internal/components/layout/ContentToolbar/ColumnsMenu.js +2 -1
  181. package/dist/_internal/components/layout/ContentToolbar/ContentToolbar.js +2 -1
  182. package/dist/_internal/components/layout/ContentToolbar/FilterTrigger.js +2 -1
  183. package/dist/_internal/components/layout/ContentToolbar/MultiSelectDropdown.js +3 -2
  184. package/dist/_internal/components/layout/ContentToolbar/MultiSelectTriggers.js +2 -1
  185. package/dist/_internal/components/layout/ContentToolbar/SavedViewsMenu.js +2 -1
  186. package/dist/_internal/components/layout/ContentToolbar/SortByDropdown.js +2 -1
  187. package/dist/_internal/components/layout/ContentToolbar/ViewSelector.js +2 -1
  188. package/dist/_internal/components/layout/Dashboard/Dashboard.js +5 -4
  189. package/dist/_internal/components/layout/Dashboard/DashboardParts.js +4 -3
  190. package/dist/_internal/components/layout/SettingsLayout/SettingsLayout.items.js +3 -2
  191. package/dist/_internal/components/layout/SettingsLayout/SettingsLayout.js +8 -7
  192. package/dist/_internal/components/layout/SettingsLayout/SettingsLayout.rail.js +4 -3
  193. package/dist/_internal/components/layout/SettingsLayout/SettingsPanel.js +5 -4
  194. package/dist/_internal/components/layout/SettingsLayout/SettingsSectionChips.js +3 -2
  195. package/dist/_internal/components/layout/SettingsLayout/SettingsSectionHeader.js +2 -1
  196. package/dist/_internal/components/layout/SettingsLayout/SettingsStatusMarker.js +2 -1
  197. package/dist/_internal/components/layout/Stack/Stack.js +1 -1
  198. package/dist/_internal/components/layout/TableFilter/TableFilter.js +2 -1
  199. package/dist/_internal/components/layout/index.js +14 -13
  200. package/dist/_internal/components/navigation/AppHeader/AppHeader.brand.js +2 -1
  201. package/dist/_internal/components/navigation/AppHeader/AppHeader.details.js +4 -4
  202. package/dist/_internal/components/navigation/AppHeader/AppHeader.identity.js +3 -3
  203. package/dist/_internal/components/navigation/AppHeader/AppHeader.js +2 -1
  204. package/dist/_internal/components/navigation/Breadcrumbs/BreadcrumbEntry.js +3 -2
  205. package/dist/_internal/components/navigation/Breadcrumbs/Breadcrumbs.js +4 -3
  206. package/dist/_internal/components/navigation/Breadcrumbs/Breadcrumbs.styles.js +2 -1
  207. package/dist/_internal/components/navigation/CommandPalette/CommandPalette.js +4 -3
  208. package/dist/_internal/components/navigation/CommandPalette/CommandPaletteResults.js +3 -2
  209. package/dist/_internal/components/navigation/CommandPalette/ShortcutChip.js +2 -1
  210. package/dist/_internal/components/navigation/ContextMenu/ContextMenu.js +2 -1
  211. package/dist/_internal/components/navigation/DropdownMenu/DropdownMenu.js +2 -1
  212. package/dist/_internal/components/navigation/NavigationMenu/NavigationMegaSection.js +5 -4
  213. package/dist/_internal/components/navigation/NavigationMenu/NavigationMenu.js +7 -6
  214. package/dist/_internal/components/navigation/NavigationMenu/NavigationMenu.shell.js +3 -2
  215. package/dist/_internal/components/navigation/NavigationMenu/NavigationMenu.styles.js +2 -1
  216. package/dist/_internal/components/navigation/NavigationMenu/NavigationMenuItem.js +3 -2
  217. package/dist/_internal/components/navigation/NavigationMenu/NavigationStandardBody.js +5 -4
  218. package/dist/_internal/components/navigation/Pagination/Pagination.js +3 -2
  219. package/dist/_internal/components/navigation/Pagination/Pagination.styles.js +2 -1
  220. package/dist/_internal/components/navigation/Tabs/Tabs.js +3 -2
  221. package/dist/_internal/components/navigation/Tabs/Tabs.styles.js +2 -1
  222. package/dist/_internal/components/navigation/index.js +25 -25
  223. package/dist/_internal/components/typography/Blockquote/Blockquote.js +2 -1
  224. package/dist/_internal/components/typography/Code/Code.js +2 -1
  225. package/dist/_internal/components/typography/Paragraph/Paragraph.js +2 -8
  226. package/dist/_internal/components/typography/Text/Text.js +2 -1
  227. package/dist/_internal/components/typography/index.js +5 -4
  228. package/dist/_internal/components/utility/AnimatedIcon/AnimatedIcon.js +3 -2
  229. package/dist/_internal/components/utility/AnimatedIcon/AnimatedIcon.styles.js +2 -1
  230. package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.js +4 -3
  231. package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.parts.js +2 -1
  232. package/dist/_internal/components/utility/WorkflowStep/WorkflowStepRow.js +3 -2
  233. package/dist/_internal/components/utility/index.js +6 -5
  234. package/dist/_internal/icons/Icon.js +2 -2
  235. package/dist/_internal/provider/UiProvider.js +1 -1
  236. package/dist/_internal/provider/mui-bridge.js +1 -1
  237. package/dist/_internal/provider/use-ui-theme.js +1 -1
  238. package/dist/_internal/social-login-button/social-login-button.js +5 -4
  239. package/dist/_internal/user-avatar/user-avatar.js +7 -6
  240. package/dist/charts.js +6 -6
  241. package/dist/{chunk-DL6N7W6P.js → chunk-24NXQG5F.js} +5 -2
  242. package/dist/chunk-24NXQG5F.js.map +1 -0
  243. package/dist/{chunk-YVDBOVHP.js → chunk-2AKQPXSJ.js} +2 -2
  244. package/dist/{chunk-GVOMTCLS.js → chunk-2B76FIMN.js} +5 -2
  245. package/dist/chunk-2B76FIMN.js.map +1 -0
  246. package/dist/{chunk-PRVK3U6U.js → chunk-2CTTASUD.js} +2 -2
  247. package/dist/{chunk-B443IIQG.js → chunk-2E2WOBID.js} +7 -4
  248. package/dist/chunk-2E2WOBID.js.map +1 -0
  249. package/dist/{chunk-IPPTOL53.js → chunk-2HVNPWFV.js} +7 -3
  250. package/dist/chunk-2HVNPWFV.js.map +1 -0
  251. package/dist/{chunk-QXTO3G2T.js → chunk-2OIP3T5O.js} +5 -2
  252. package/dist/chunk-2OIP3T5O.js.map +1 -0
  253. package/dist/{chunk-PYJI2YGJ.js → chunk-2PBT2HQH.js} +6 -6
  254. package/dist/chunk-2PBT2HQH.js.map +1 -0
  255. package/dist/{chunk-Z2EOT77M.js → chunk-2PWVPTS3.js} +7 -7
  256. package/dist/chunk-2PWVPTS3.js.map +1 -0
  257. package/dist/{chunk-HH5CNSJP.js → chunk-2WGMMFGV.js} +13 -10
  258. package/dist/chunk-2WGMMFGV.js.map +1 -0
  259. package/dist/{chunk-Y7ZS724A.js → chunk-37VFEWEN.js} +15 -13
  260. package/dist/chunk-37VFEWEN.js.map +1 -0
  261. package/dist/{chunk-G2TCNZYD.js → chunk-3A22SBIU.js} +2 -2
  262. package/dist/{chunk-A4JH5FAL.js → chunk-3CVTQZQJ.js} +2 -2
  263. package/dist/{chunk-EWSGWLHN.js → chunk-3D6HXKZM.js} +7 -3
  264. package/dist/chunk-3D6HXKZM.js.map +1 -0
  265. package/dist/{chunk-GJF3CVIE.js → chunk-3GQ6PNEM.js} +3 -3
  266. package/dist/chunk-3GQ6PNEM.js.map +1 -0
  267. package/dist/{chunk-4V7DBU4H.js → chunk-3TVUW7QE.js} +8 -3
  268. package/dist/chunk-3TVUW7QE.js.map +1 -0
  269. package/dist/{chunk-SZB2Z6QN.js → chunk-3VMGE7CU.js} +6 -3
  270. package/dist/chunk-3VMGE7CU.js.map +1 -0
  271. package/dist/{chunk-HEVST4CS.js → chunk-4GYEIWQP.js} +6 -3
  272. package/dist/chunk-4GYEIWQP.js.map +1 -0
  273. package/dist/{chunk-2XGGHYEA.js → chunk-4LQZH4PU.js} +2 -2
  274. package/dist/{chunk-ZF3JGIJD.js → chunk-4M34ALEP.js} +3 -3
  275. package/dist/{chunk-OT5DVKXP.js → chunk-4WQ3YXQL.js} +3 -3
  276. package/dist/{chunk-5LPQ6T5S.js → chunk-56QVP2MU.js} +7 -4
  277. package/dist/chunk-56QVP2MU.js.map +1 -0
  278. package/dist/{chunk-DOXNMWUU.js → chunk-57IB5NTM.js} +2 -2
  279. package/dist/{chunk-OZAP2BEP.js → chunk-57JY4OI2.js} +9 -6
  280. package/dist/chunk-57JY4OI2.js.map +1 -0
  281. package/dist/{chunk-YU72SS43.js → chunk-5CKDRLRN.js} +7 -4
  282. package/dist/chunk-5CKDRLRN.js.map +1 -0
  283. package/dist/{chunk-N4JEQJBL.js → chunk-5IXHJXJX.js} +2 -2
  284. package/dist/{chunk-EHCUOX6R.js → chunk-5RP3KXC7.js} +9 -6
  285. package/dist/chunk-5RP3KXC7.js.map +1 -0
  286. package/dist/{chunk-RPBA4WH7.js → chunk-5SJWDABY.js} +16 -13
  287. package/dist/chunk-5SJWDABY.js.map +1 -0
  288. package/dist/{chunk-YA4YH6WP.js → chunk-5ZQUJ7LT.js} +3 -3
  289. package/dist/{chunk-Q4KFGRBV.js → chunk-5ZTQTJAJ.js} +5 -5
  290. package/dist/{chunk-52APLKAG.js → chunk-65YAR3OZ.js} +4 -4
  291. package/dist/chunk-65YAR3OZ.js.map +1 -0
  292. package/dist/{chunk-5264DI34.js → chunk-6DC5SVHM.js} +2 -2
  293. package/dist/{chunk-DQIRSUEK.js → chunk-6KL2CJBO.js} +2 -2
  294. package/dist/{chunk-63UQJVBW.js → chunk-6QLPSMTA.js} +10 -7
  295. package/dist/chunk-6QLPSMTA.js.map +1 -0
  296. package/dist/{chunk-H3R6WSYU.js → chunk-6SKXV236.js} +5 -2
  297. package/dist/chunk-6SKXV236.js.map +1 -0
  298. package/dist/{chunk-QJ7I5C4D.js → chunk-6SS5C74Q.js} +6 -3
  299. package/dist/chunk-6SS5C74Q.js.map +1 -0
  300. package/dist/{chunk-MAUZCOBB.js → chunk-6SYFPRTT.js} +9 -6
  301. package/dist/chunk-6SYFPRTT.js.map +1 -0
  302. package/dist/{chunk-BTVIHTAL.js → chunk-72DKEBJM.js} +8 -5
  303. package/dist/chunk-72DKEBJM.js.map +1 -0
  304. package/dist/{chunk-UIKDWXHX.js → chunk-73HBIIRB.js} +6 -6
  305. package/dist/{chunk-KDIPBEVE.js → chunk-7BZTZ2WG.js} +9 -6
  306. package/dist/chunk-7BZTZ2WG.js.map +1 -0
  307. package/dist/{chunk-F4RR4666.js → chunk-7D7CJRL7.js} +5 -2
  308. package/dist/chunk-7D7CJRL7.js.map +1 -0
  309. package/dist/{chunk-GL5CYMGK.js → chunk-7DN4UXJ3.js} +9 -6
  310. package/dist/chunk-7DN4UXJ3.js.map +1 -0
  311. package/dist/{chunk-DJ2KYLHE.js → chunk-7EQCZO56.js} +13 -7
  312. package/dist/chunk-7EQCZO56.js.map +1 -0
  313. package/dist/{chunk-3CBL5FWS.js → chunk-7HFGVT3G.js} +4 -8
  314. package/dist/chunk-7HFGVT3G.js.map +1 -0
  315. package/dist/{chunk-COK5VOXC.js → chunk-7LIXQZBG.js} +3 -3
  316. package/dist/{chunk-GQ4I6Z32.js → chunk-7VJH4FYU.js} +9 -6
  317. package/dist/chunk-7VJH4FYU.js.map +1 -0
  318. package/dist/{chunk-K2XK45HG.js → chunk-7ZG7T2YN.js} +2 -2
  319. package/dist/{chunk-HMHCNNNW.js → chunk-7ZWC5CKA.js} +6 -3
  320. package/dist/chunk-7ZWC5CKA.js.map +1 -0
  321. package/dist/{chunk-DKILDT72.js → chunk-A2CTAEIS.js} +5 -5
  322. package/dist/chunk-A2CTAEIS.js.map +1 -0
  323. package/dist/{chunk-OYYCANKB.js → chunk-A6AKFPIQ.js} +2 -2
  324. package/dist/{chunk-DPJZFQF2.js → chunk-AATIHNPI.js} +6 -3
  325. package/dist/chunk-AATIHNPI.js.map +1 -0
  326. package/dist/{chunk-DJEGLKW3.js → chunk-AI7NVWIG.js} +9 -6
  327. package/dist/chunk-AI7NVWIG.js.map +1 -0
  328. package/dist/{chunk-O63WG6YJ.js → chunk-AJSPLHG4.js} +2 -2
  329. package/dist/{chunk-CY6HHLYM.js → chunk-AQSX3YH2.js} +4 -4
  330. package/dist/{chunk-2CEV746H.js → chunk-BBXJQI4S.js} +6 -2
  331. package/dist/chunk-BBXJQI4S.js.map +1 -0
  332. package/dist/{chunk-JGDS2SJZ.js → chunk-BD2GGIGS.js} +3 -3
  333. package/dist/{chunk-SQSFMZTF.js → chunk-BLJDCMFU.js} +10 -6
  334. package/dist/chunk-BLJDCMFU.js.map +1 -0
  335. package/dist/{chunk-PYPFDRX4.js → chunk-BNU4RLEC.js} +23 -18
  336. package/dist/chunk-BNU4RLEC.js.map +1 -0
  337. package/dist/{chunk-7WK2L3ZO.js → chunk-BO2SDMNQ.js} +2 -2
  338. package/dist/{chunk-ZSRLRDTP.js → chunk-BXAL7OIS.js} +14 -11
  339. package/dist/chunk-BXAL7OIS.js.map +1 -0
  340. package/dist/{chunk-PC2MVKYW.js → chunk-C6FRVGMC.js} +2 -2
  341. package/dist/{chunk-KCQGJPLO.js → chunk-C6NI3FAV.js} +3 -3
  342. package/dist/{chunk-YSFQHZ74.js → chunk-C7TCBAVX.js} +2 -2
  343. package/dist/{chunk-B3OMUMZO.js → chunk-CJHP6E34.js} +10 -6
  344. package/dist/chunk-CJHP6E34.js.map +1 -0
  345. package/dist/{chunk-7IQDLEB5.js → chunk-CMTR3WEA.js} +7 -5
  346. package/dist/chunk-CMTR3WEA.js.map +1 -0
  347. package/dist/{chunk-6VP2L3DJ.js → chunk-COYGTEN5.js} +6 -3
  348. package/dist/chunk-COYGTEN5.js.map +1 -0
  349. package/dist/{chunk-4M6CEQVK.js → chunk-CPTY6UZ6.js} +6 -3
  350. package/dist/chunk-CPTY6UZ6.js.map +1 -0
  351. package/dist/{chunk-UXWU5NRC.js → chunk-CRZXSZ5O.js} +2 -2
  352. package/dist/{chunk-46ADSOCF.js → chunk-CS3RKXT5.js} +2 -2
  353. package/dist/{chunk-SVSOUC5S.js → chunk-CSTAQX2B.js} +6 -3
  354. package/dist/chunk-CSTAQX2B.js.map +1 -0
  355. package/dist/{chunk-ACHUHT2K.js → chunk-CU4TF7C7.js} +6 -3
  356. package/dist/chunk-CU4TF7C7.js.map +1 -0
  357. package/dist/{chunk-PO2RWE7N.js → chunk-D5X4FRYX.js} +2 -2
  358. package/dist/{chunk-VNHLYDTX.js → chunk-DFCQQN6P.js} +13 -10
  359. package/dist/chunk-DFCQQN6P.js.map +1 -0
  360. package/dist/{chunk-XNBN5CVF.js → chunk-DHBYO7AO.js} +6 -3
  361. package/dist/chunk-DHBYO7AO.js.map +1 -0
  362. package/dist/{chunk-LCVQOJKG.js → chunk-DMYBTD5Y.js} +2 -2
  363. package/dist/{chunk-GJRBK564.js → chunk-DRE6DSJ7.js} +3 -3
  364. package/dist/{chunk-TK4NUNN6.js → chunk-DYVAOEW4.js} +6 -3
  365. package/dist/chunk-DYVAOEW4.js.map +1 -0
  366. package/dist/{chunk-JIKWZDNK.js → chunk-DZHN5FFX.js} +5 -2
  367. package/dist/chunk-DZHN5FFX.js.map +1 -0
  368. package/dist/{chunk-EDBTCEPC.js → chunk-E6YBXAZN.js} +6 -3
  369. package/dist/chunk-E6YBXAZN.js.map +1 -0
  370. package/dist/{chunk-D3IXNCEU.js → chunk-E7MSDXED.js} +5 -2
  371. package/dist/chunk-E7MSDXED.js.map +1 -0
  372. package/dist/{chunk-BHLGZLXQ.js → chunk-EDO2WS5B.js} +2 -2
  373. package/dist/{chunk-HWEAW4LF.js → chunk-EFHIMCJN.js} +10 -7
  374. package/dist/chunk-EFHIMCJN.js.map +1 -0
  375. package/dist/{chunk-5CIXQBLV.js → chunk-EFV5QJNM.js} +8 -5
  376. package/dist/chunk-EFV5QJNM.js.map +1 -0
  377. package/dist/{chunk-FYSYALTY.js → chunk-EFVOT3G5.js} +2 -2
  378. package/dist/{chunk-IBWVEARQ.js → chunk-EL7CMURV.js} +13 -10
  379. package/dist/chunk-EL7CMURV.js.map +1 -0
  380. package/dist/{chunk-7E4X4J2M.js → chunk-EOW2ECB3.js} +2 -2
  381. package/dist/{chunk-6MSSCBI3.js → chunk-EXZSHZRS.js} +2 -2
  382. package/dist/{chunk-XYK3HXZY.js → chunk-F5KEWLZK.js} +2 -2
  383. package/dist/{chunk-7VIINULX.js → chunk-F7HQVKIR.js} +6 -6
  384. package/dist/{chunk-WVPA3ONO.js → chunk-FXNYV5Z6.js} +2 -2
  385. package/dist/{chunk-2LG5TEFV.js → chunk-FYTLKHEN.js} +14 -11
  386. package/dist/chunk-FYTLKHEN.js.map +1 -0
  387. package/dist/{chunk-OFU66DRT.js → chunk-GE2EKMDT.js} +11 -8
  388. package/dist/chunk-GE2EKMDT.js.map +1 -0
  389. package/dist/{chunk-EUDIQQWE.js → chunk-GEXM6DNR.js} +2 -2
  390. package/dist/{chunk-E6OILRUU.js → chunk-GGWICBJD.js} +2 -2
  391. package/dist/{chunk-67QSLTT7.js → chunk-GIRRCEVH.js} +4 -4
  392. package/dist/{chunk-LGZ4EIWV.js → chunk-GUVBR62X.js} +2 -2
  393. package/dist/{chunk-SNTDLS4A.js → chunk-GVLMG5WQ.js} +7 -4
  394. package/dist/chunk-GVLMG5WQ.js.map +1 -0
  395. package/dist/{chunk-VNYP2RMN.js → chunk-GVLZZCSX.js} +2 -2
  396. package/dist/{chunk-74LYLKO2.js → chunk-GW64UQXI.js} +8 -5
  397. package/dist/chunk-GW64UQXI.js.map +1 -0
  398. package/dist/{chunk-D6RKXNLE.js → chunk-GXCOXJS3.js} +3 -3
  399. package/dist/{chunk-CRDOMIEG.js → chunk-H6YVO55T.js} +9 -6
  400. package/dist/chunk-H6YVO55T.js.map +1 -0
  401. package/dist/{chunk-BIIAMH47.js → chunk-HAQMKV5P.js} +2 -2
  402. package/dist/{chunk-BOU3HR4C.js → chunk-HBICO6AX.js} +11 -9
  403. package/dist/chunk-HBICO6AX.js.map +1 -0
  404. package/dist/{chunk-7QLHYUDW.js → chunk-HC5ZSCRG.js} +9 -6
  405. package/dist/chunk-HC5ZSCRG.js.map +1 -0
  406. package/dist/{chunk-XOL2QCSP.js → chunk-HJWOB62A.js} +11 -8
  407. package/dist/chunk-HJWOB62A.js.map +1 -0
  408. package/dist/{chunk-NMX3JAAB.js → chunk-HXEBKOSM.js} +13 -10
  409. package/dist/chunk-HXEBKOSM.js.map +1 -0
  410. package/dist/{chunk-5QTMJ2RU.js → chunk-I2CRLUS7.js} +8 -5
  411. package/dist/chunk-I2CRLUS7.js.map +1 -0
  412. package/dist/{chunk-VMZ3JJGG.js → chunk-I62ALI7F.js} +3 -3
  413. package/dist/{chunk-JKNLKUCX.js → chunk-I6EVBLFX.js} +11 -8
  414. package/dist/chunk-I6EVBLFX.js.map +1 -0
  415. package/dist/{chunk-UH27I2EJ.js → chunk-IUCTYNIR.js} +5 -2
  416. package/dist/chunk-IUCTYNIR.js.map +1 -0
  417. package/dist/{chunk-3LNKBZTG.js → chunk-IWOVENC3.js} +2 -2
  418. package/dist/{chunk-V26IDPL4.js → chunk-J4NXTSJY.js} +6 -3
  419. package/dist/chunk-J4NXTSJY.js.map +1 -0
  420. package/dist/{chunk-DSIJEJQ7.js → chunk-JFBEZXNL.js} +3 -3
  421. package/dist/{chunk-TAB6AIPN.js → chunk-JFEEV3XI.js} +3 -3
  422. package/dist/{chunk-HRHPRIGT.js → chunk-JHEGDDZQ.js} +8 -5
  423. package/dist/chunk-JHEGDDZQ.js.map +1 -0
  424. package/dist/{chunk-V6FED3RS.js → chunk-JOR6E23V.js} +2 -2
  425. package/dist/{chunk-YCGZSKCV.js → chunk-JWK4GI2I.js} +2 -2
  426. package/dist/{chunk-DELT2W42.js → chunk-JYRQBZEV.js} +2 -2
  427. package/dist/{chunk-2KLT22S3.js → chunk-K7WSPGI7.js} +15 -7
  428. package/dist/chunk-K7WSPGI7.js.map +1 -0
  429. package/dist/{chunk-DY7VTAYO.js → chunk-KE5MX4PI.js} +2 -2
  430. package/dist/{chunk-3EDZU2H7.js → chunk-KH25WUSX.js} +9 -5
  431. package/dist/chunk-KH25WUSX.js.map +1 -0
  432. package/dist/{chunk-ECZXTIDR.js → chunk-KK57AHWS.js} +2 -2
  433. package/dist/{chunk-HUKVX47W.js → chunk-KLMP2BYC.js} +2 -2
  434. package/dist/{chunk-SQV3HPTZ.js → chunk-KLWW67WP.js} +7 -4
  435. package/dist/chunk-KLWW67WP.js.map +1 -0
  436. package/dist/{chunk-VU4BANG7.js → chunk-KTYZRAB7.js} +3 -3
  437. package/dist/{chunk-JLWAYBOP.js → chunk-L4QCIUTJ.js} +6 -3
  438. package/dist/chunk-L4QCIUTJ.js.map +1 -0
  439. package/dist/{chunk-EIJC5DWG.js → chunk-LDDN254Q.js} +4 -4
  440. package/dist/{chunk-QYUB2RFN.js → chunk-LI6OLYUB.js} +4 -4
  441. package/dist/{chunk-TNDV33LP.js → chunk-LOJK733T.js} +3 -3
  442. package/dist/{chunk-32HU5YFB.js → chunk-LWRI6HGT.js} +11 -7
  443. package/dist/chunk-LWRI6HGT.js.map +1 -0
  444. package/dist/{chunk-2SGPNJHJ.js → chunk-M5BTIIL7.js} +8 -5
  445. package/dist/chunk-M5BTIIL7.js.map +1 -0
  446. package/dist/{chunk-H37GIAAM.js → chunk-MBSYD3ZU.js} +5 -2
  447. package/dist/chunk-MBSYD3ZU.js.map +1 -0
  448. package/dist/{chunk-DYMVVVSU.js → chunk-MGC4QOMP.js} +9 -6
  449. package/dist/chunk-MGC4QOMP.js.map +1 -0
  450. package/dist/{chunk-JXTEE5G6.js → chunk-MLBKACV6.js} +5 -2
  451. package/dist/chunk-MLBKACV6.js.map +1 -0
  452. package/dist/{chunk-4GKDO4YK.js → chunk-MRB6GROF.js} +5 -2
  453. package/dist/chunk-MRB6GROF.js.map +1 -0
  454. package/dist/{chunk-ABCP6NS4.js → chunk-MVKYNDT2.js} +8 -5
  455. package/dist/chunk-MVKYNDT2.js.map +1 -0
  456. package/dist/{chunk-S52IVFMS.js → chunk-MXZ43UCQ.js} +3 -3
  457. package/dist/{chunk-UUFHI7J5.js → chunk-NE6XUN5Z.js} +2 -2
  458. package/dist/{chunk-MH73XQHW.js → chunk-NEGCJNGJ.js} +9 -6
  459. package/dist/chunk-NEGCJNGJ.js.map +1 -0
  460. package/dist/{chunk-WXDJBSES.js → chunk-NIS523UM.js} +2 -2
  461. package/dist/{chunk-LKAVTJMC.js → chunk-NNQLDFKG.js} +8 -5
  462. package/dist/chunk-NNQLDFKG.js.map +1 -0
  463. package/dist/{chunk-EKSSKQUW.js → chunk-NPP44TQG.js} +9 -6
  464. package/dist/chunk-NPP44TQG.js.map +1 -0
  465. package/dist/{chunk-ZRHSIFWA.js → chunk-NSJVQ5YJ.js} +7 -3
  466. package/dist/chunk-NSJVQ5YJ.js.map +1 -0
  467. package/dist/{chunk-HBYWUSPI.js → chunk-NVNZFT5X.js} +7 -4
  468. package/dist/chunk-NVNZFT5X.js.map +1 -0
  469. package/dist/{chunk-WGFIIS6Q.js → chunk-OATHOXIU.js} +7 -4
  470. package/dist/chunk-OATHOXIU.js.map +1 -0
  471. package/dist/{chunk-KJ3AXHKF.js → chunk-OGTTJKHI.js} +4 -4
  472. package/dist/{chunk-SCQJV54H.js → chunk-OOSD7363.js} +8 -5
  473. package/dist/chunk-OOSD7363.js.map +1 -0
  474. package/dist/{chunk-BHOSWJDL.js → chunk-OWA7GPWR.js} +8 -5
  475. package/dist/chunk-OWA7GPWR.js.map +1 -0
  476. package/dist/{chunk-ZSLOXTYJ.js → chunk-OYP27CYE.js} +2 -2
  477. package/dist/{chunk-PDLJOQO5.js → chunk-P5JCOFK3.js} +7 -3
  478. package/dist/chunk-P5JCOFK3.js.map +1 -0
  479. package/dist/{chunk-V6Z4XS3I.js → chunk-PGGYZU7Q.js} +5 -2
  480. package/dist/chunk-PGGYZU7Q.js.map +1 -0
  481. package/dist/{chunk-CZBONNPA.js → chunk-PMP6WJJS.js} +7 -3
  482. package/dist/chunk-PMP6WJJS.js.map +1 -0
  483. package/dist/{chunk-FTSVJIEU.js → chunk-PNLM35GU.js} +6 -6
  484. package/dist/{chunk-2RRXQTOO.js → chunk-PYIASGI7.js} +9 -6
  485. package/dist/chunk-PYIASGI7.js.map +1 -0
  486. package/dist/{chunk-JO3Y5H75.js → chunk-QHUTSAFG.js} +6 -3
  487. package/dist/chunk-QHUTSAFG.js.map +1 -0
  488. package/dist/{chunk-WPSGP3YG.js → chunk-QKMJUOVH.js} +5 -3
  489. package/dist/chunk-QKMJUOVH.js.map +1 -0
  490. package/dist/{chunk-REQAKZ64.js → chunk-QTWXVOPT.js} +2 -2
  491. package/dist/{chunk-AKPRFFAI.js → chunk-QWHURFJ3.js} +2 -2
  492. package/dist/{chunk-NNESQ7QG.js → chunk-QY4XNTNG.js} +6 -3
  493. package/dist/chunk-QY4XNTNG.js.map +1 -0
  494. package/dist/{chunk-CUN5RJTH.js → chunk-R75DZ3AK.js} +2 -2
  495. package/dist/{chunk-5EIW2FZY.js → chunk-RNEYZTE4.js} +6 -2
  496. package/dist/chunk-RNEYZTE4.js.map +1 -0
  497. package/dist/{chunk-EYPRDTWI.js → chunk-RORP6DWR.js} +10 -7
  498. package/dist/chunk-RORP6DWR.js.map +1 -0
  499. package/dist/{chunk-JGOXXKPY.js → chunk-ROT57BP4.js} +7 -4
  500. package/dist/chunk-ROT57BP4.js.map +1 -0
  501. package/dist/{chunk-4M7QHSKY.js → chunk-RV4Y4O67.js} +3 -3
  502. package/dist/chunk-RV4Y4O67.js.map +1 -0
  503. package/dist/{chunk-YBJZ536V.js → chunk-SAIO6EBW.js} +5 -6
  504. package/dist/{chunk-YBJZ536V.js.map → chunk-SAIO6EBW.js.map} +1 -1
  505. package/dist/{chunk-AL6Z2JYR.js → chunk-SKX4NA6E.js} +12 -12
  506. package/dist/{chunk-EVSKEIXI.js → chunk-SN2YMCTL.js} +3 -3
  507. package/dist/{chunk-T7LTL7OC.js → chunk-SX3MEC3Q.js} +2 -2
  508. package/dist/{chunk-DRKYPQNA.js → chunk-TEUX42YW.js} +2 -2
  509. package/dist/{chunk-2BFUUUDS.js → chunk-TFZI36UD.js} +5 -2
  510. package/dist/chunk-TFZI36UD.js.map +1 -0
  511. package/dist/{chunk-UYA2QMH6.js → chunk-TOXTJ7MU.js} +3 -3
  512. package/dist/{chunk-H3MLYZYP.js → chunk-TPQVLBTY.js} +3 -3
  513. package/dist/{chunk-4N33SWTW.js → chunk-TTAP5XFX.js} +2 -2
  514. package/dist/{chunk-Y5WNNEND.js → chunk-TU3EGIKB.js} +2 -2
  515. package/dist/{chunk-QV5J4TE6.js → chunk-U2IRCTAR.js} +2 -2
  516. package/dist/{chunk-UTSGY3ON.js → chunk-U4H6MGVE.js} +6 -2
  517. package/dist/chunk-U4H6MGVE.js.map +1 -0
  518. package/dist/{chunk-7JSQQZUH.js → chunk-UCA47HM7.js} +3 -3
  519. package/dist/{chunk-UBWYHYDR.js → chunk-ULIM42PE.js} +5 -5
  520. package/dist/chunk-ULIM42PE.js.map +1 -0
  521. package/dist/{chunk-PAAFUJJL.js → chunk-UMP5MQ7X.js} +9 -6
  522. package/dist/chunk-UMP5MQ7X.js.map +1 -0
  523. package/dist/{chunk-23FCBIUN.js → chunk-UO7ERXYX.js} +2 -2
  524. package/dist/{chunk-C3U7FDKI.js → chunk-UUUMNJPP.js} +9 -5
  525. package/dist/chunk-UUUMNJPP.js.map +1 -0
  526. package/dist/{chunk-EWGVRRUF.js → chunk-V3LOHY4N.js} +7 -4
  527. package/dist/chunk-V3LOHY4N.js.map +1 -0
  528. package/dist/{chunk-UEWIIYGA.js → chunk-VAGHW3K2.js} +2 -2
  529. package/dist/{chunk-5E6WZAQF.js → chunk-VDGJV7MP.js} +6 -3
  530. package/dist/chunk-VDGJV7MP.js.map +1 -0
  531. package/dist/{chunk-PEIAGNCH.js → chunk-VFHGILXI.js} +8 -5
  532. package/dist/chunk-VFHGILXI.js.map +1 -0
  533. package/dist/{chunk-7Z2UU2FQ.js → chunk-VR3U4QA5.js} +9 -6
  534. package/dist/chunk-VR3U4QA5.js.map +1 -0
  535. package/dist/{chunk-SNBCAH62.js → chunk-VRDNUY4H.js} +3 -3
  536. package/dist/{chunk-BQGT77IQ.js → chunk-VV7MGILP.js} +4 -4
  537. package/dist/{chunk-WXTXCJ5V.js → chunk-VYSFKR32.js} +3 -3
  538. package/dist/chunk-VYSFKR32.js.map +1 -0
  539. package/dist/{chunk-GPUYB3ST.js → chunk-VZAGBDZ2.js} +2 -2
  540. package/dist/{chunk-MYAEOSZK.js → chunk-W3CLJ7JE.js} +4 -4
  541. package/dist/{chunk-UFH3ZVVZ.js → chunk-W5ENK5CM.js} +6 -6
  542. package/dist/{chunk-2CK7SHQQ.js → chunk-WNUZK7NS.js} +9 -6
  543. package/dist/chunk-WNUZK7NS.js.map +1 -0
  544. package/dist/{chunk-H57ZS6W2.js → chunk-WTOYEWW6.js} +12 -13
  545. package/dist/chunk-WTOYEWW6.js.map +1 -0
  546. package/dist/{chunk-OSSFOPB7.js → chunk-WVC3BG6J.js} +2 -2
  547. package/dist/{chunk-QPNTUFV4.js → chunk-WW4N2LRM.js} +4 -4
  548. package/dist/{chunk-WPE5QYXD.js → chunk-X2AKLDPW.js} +3 -3
  549. package/dist/{chunk-XLZBZSES.js → chunk-X4F32GUB.js} +7 -4
  550. package/dist/chunk-X4F32GUB.js.map +1 -0
  551. package/dist/{chunk-AYRHW4DX.js → chunk-X7PVFAYJ.js} +2 -2
  552. package/dist/{chunk-VNB7PFCP.js → chunk-XLYFOBBT.js} +4 -4
  553. package/dist/chunk-XLYFOBBT.js.map +1 -0
  554. package/dist/{chunk-NJHJZFX5.js → chunk-XREYLKUX.js} +8 -4
  555. package/dist/chunk-XREYLKUX.js.map +1 -0
  556. package/dist/{chunk-TOBPKY4V.js → chunk-XSMMFCMQ.js} +2 -2
  557. package/dist/{chunk-MWBHZZA4.js → chunk-XWWFBH2G.js} +2 -2
  558. package/dist/{chunk-67VUL6L2.js → chunk-XZBCPL4N.js} +7 -4
  559. package/dist/chunk-XZBCPL4N.js.map +1 -0
  560. package/dist/{chunk-ZHFS5L6Q.js → chunk-Y2E73IG2.js} +13 -10
  561. package/dist/chunk-Y2E73IG2.js.map +1 -0
  562. package/dist/{chunk-VLVMJDGD.js → chunk-YDPUBGJ7.js} +2 -2
  563. package/dist/{chunk-Y3HMIUH6.js → chunk-YG2VQUZO.js} +7 -4
  564. package/dist/chunk-YG2VQUZO.js.map +1 -0
  565. package/dist/{chunk-IRYSJ74J.js → chunk-YH37X6JT.js} +14 -7
  566. package/dist/chunk-YH37X6JT.js.map +1 -0
  567. package/dist/{chunk-NFZRZB5N.js → chunk-YLBRXDYH.js} +9 -6
  568. package/dist/chunk-YLBRXDYH.js.map +1 -0
  569. package/dist/{chunk-PKFH6C7W.js → chunk-YSKGLU2V.js} +7 -7
  570. package/dist/{chunk-37DCYIT5.js → chunk-YU647YW4.js} +2 -2
  571. package/dist/{chunk-JRODCEIG.js → chunk-YVUD3MY4.js} +2 -2
  572. package/dist/{chunk-3E3JYKUK.js → chunk-Z35J5B6D.js} +7 -4
  573. package/dist/chunk-Z35J5B6D.js.map +1 -0
  574. package/dist/{chunk-27DLUKDF.js → chunk-ZHEZISMI.js} +3 -3
  575. package/dist/{chunk-RQCJJBPY.js → chunk-ZMC3N23A.js} +6 -6
  576. package/dist/{chunk-MMPJ2MCE.js → chunk-ZQL5RXVE.js} +6 -3
  577. package/dist/chunk-ZQL5RXVE.js.map +1 -0
  578. package/dist/{chunk-P2PDDFMM.js → chunk-ZTKLKOOO.js} +10 -6
  579. package/dist/chunk-ZTKLKOOO.js.map +1 -0
  580. package/dist/{chunk-KBMKALKQ.js → chunk-ZW5K4XCQ.js} +5 -5
  581. package/dist/{chunk-LYKV3C7B.js → chunk-ZWSS3K4F.js} +6 -3
  582. package/dist/chunk-ZWSS3K4F.js.map +1 -0
  583. package/dist/{chunk-L7Q5BH4A.js → chunk-ZXSUWFQX.js} +2 -2
  584. package/dist/{chunk-JWG2BTJ5.js → chunk-ZZM3DOEK.js} +2 -2
  585. package/dist/data-display/Alert.js +3 -2
  586. package/dist/data-display/AlertDialog.js +2 -1
  587. package/dist/data-display/AsyncStateContainer.js +3 -2
  588. package/dist/data-display/Avatar.js +3 -8
  589. package/dist/data-display/Badge.js +5 -5
  590. package/dist/data-display/Banner.js +3 -2
  591. package/dist/data-display/CardKit.js +16 -15
  592. package/dist/data-display/Carousel.js +5 -5
  593. package/dist/data-display/Chart.js +6 -6
  594. package/dist/data-display/DataViews.js +83 -82
  595. package/dist/data-display/DescriptionItem.js +3 -2
  596. package/dist/data-display/ErrorState.js +2 -1
  597. package/dist/data-display/FleetMap.js +9 -9
  598. package/dist/data-display/InteractiveTooltip.js +3 -2
  599. package/dist/data-display/Lightbox.js +9 -8
  600. package/dist/data-display/MapPreview.js +5 -4
  601. package/dist/data-display/Progress.js +3 -2
  602. package/dist/data-display/SectionOnboarding.js +3 -2
  603. package/dist/data-display/Sheet.js +1 -1
  604. package/dist/data-display/StatCard.js +2 -1
  605. package/dist/data-display/Stepper.js +2 -1
  606. package/dist/data-display/Table.js +3 -2
  607. package/dist/data-display/Timeline.js +3 -2
  608. package/dist/data-display/TimingDiagram.js +3 -2
  609. package/dist/data-display/Tooltip.js +2 -1
  610. package/dist/feedback/ConfirmAction.js +8 -7
  611. package/dist/feedback/NotificationStatusNotice.js +6 -5
  612. package/dist/feedback/Sonner.js +3 -2
  613. package/dist/form/AddressAutocomplete.js +4 -3
  614. package/dist/form/Button.js +3 -2
  615. package/dist/form/CategorySelect.js +11 -10
  616. package/dist/form/CepField.js +3 -2
  617. package/dist/form/Checkbox.js +2 -7
  618. package/dist/form/CodeEditor.js +3 -2
  619. package/dist/form/Command.js +3 -3
  620. package/dist/form/CreatableSelect.js +3 -2
  621. package/dist/form/DateRangePicker.js +3 -2
  622. package/dist/form/Form.js +2 -1
  623. package/dist/form/HeaderActions.js +3 -2
  624. package/dist/form/HeaderButton.js +2 -1
  625. package/dist/form/InputOTP.js +3 -2
  626. package/dist/form/Label.js +3 -3
  627. package/dist/form/Menubar.js +5 -5
  628. package/dist/form/PasswordStrength.js +3 -2
  629. package/dist/form/PhoneInput.js +2 -1
  630. package/dist/form/RadioGroup.js +4 -3
  631. package/dist/form/RichTextEditor.js +2 -1
  632. package/dist/form/SearchPalette.js +3 -2
  633. package/dist/form/Slider.js +3 -2
  634. package/dist/form/Switch.js +4 -3
  635. package/dist/form/Textarea.js +2 -1
  636. package/dist/form/Toggle.js +3 -2
  637. package/dist/form/ToggleGroup.js +2 -1
  638. package/dist/form/UploadButton.js +3 -2
  639. package/dist/form/total-form.js +23 -22
  640. package/dist/icons.js +2 -2
  641. package/dist/layout/Box.js +1 -1
  642. package/dist/layout/ContentToolbar.js +9 -8
  643. package/dist/layout/Dashboard.js +5 -4
  644. package/dist/layout/SettingsLayout.js +8 -7
  645. package/dist/layout/Stack.js +1 -1
  646. package/dist/layout/TableFilter.js +2 -1
  647. package/dist/navigation/AppHeader.js +7 -7
  648. package/dist/navigation/Breadcrumbs.js +4 -3
  649. package/dist/navigation/CommandPalette.js +4 -3
  650. package/dist/navigation/ContextMenu.js +2 -1
  651. package/dist/navigation/DropdownMenu.js +2 -1
  652. package/dist/navigation/NavigationMenu.js +7 -6
  653. package/dist/navigation/Pagination.js +3 -2
  654. package/dist/navigation/Tabs.js +3 -2
  655. package/dist/provider.js +1 -1
  656. package/dist/social-login-button.js +5 -4
  657. package/dist/tokens.js +7 -7
  658. package/dist/types/components/data-display/AlertDialog/AlertDialog.d.ts.map +1 -1
  659. package/dist/types/components/data-display/Avatar/Avatar.view.d.ts.map +1 -1
  660. package/dist/types/components/data-display/Badge/Badge.styles.d.ts +3 -2
  661. package/dist/types/components/data-display/Badge/Badge.styles.d.ts.map +1 -1
  662. package/dist/types/components/data-display/Badge/Badge.variants.d.ts.map +1 -1
  663. package/dist/types/components/data-display/Badge/BadgeContent.d.ts.map +1 -1
  664. package/dist/types/components/data-display/Banner/Banner.d.ts.map +1 -1
  665. package/dist/types/components/data-display/Banner/Banner.styles.d.ts.map +1 -1
  666. package/dist/types/components/data-display/CardKit/list-card-parts.d.ts.map +1 -1
  667. package/dist/types/components/data-display/Chart/chart-internals.d.ts +1 -1
  668. package/dist/types/components/data-display/Chart/chart-internals.d.ts.map +1 -1
  669. package/dist/types/components/data-display/DataViews/SaveViewModal.d.ts.map +1 -1
  670. package/dist/types/components/data-display/DataViews/base-card.d.ts.map +1 -1
  671. package/dist/types/components/data-display/DataViews/base-list-card-slots.d.ts.map +1 -1
  672. package/dist/types/components/data-display/DataViews/data-views-bar-controls.d.ts.map +1 -1
  673. package/dist/types/components/data-display/DataViews/data-views-columns-tab.d.ts.map +1 -1
  674. package/dist/types/components/data-display/DataViews/data-views-display-panel.d.ts.map +1 -1
  675. package/dist/types/components/data-display/DataViews/data-views-display-tabs.d.ts.map +1 -1
  676. package/dist/types/components/data-display/DataViews/data-views-export.d.ts.map +1 -1
  677. package/dist/types/components/data-display/DataViews/data-views-filter-panel.d.ts.map +1 -1
  678. package/dist/types/components/data-display/DataViews/data-views-grid-bodies.d.ts.map +1 -1
  679. package/dist/types/components/data-display/DataViews/data-views-more-fields.d.ts.map +1 -1
  680. package/dist/types/components/data-display/DataViews/data-views-more-filters.d.ts.map +1 -1
  681. package/dist/types/components/data-display/DataViews/data-views-preset-chips.d.ts.map +1 -1
  682. package/dist/types/components/data-display/DataViews/data-views-range-pill.d.ts.map +1 -1
  683. package/dist/types/components/data-display/DataViews/data-views-scopes.d.ts.map +1 -1
  684. package/dist/types/components/data-display/DataViews/data-views-search.d.ts.map +1 -1
  685. package/dist/types/components/data-display/DataViews/data-views-view-nav.d.ts.map +1 -1
  686. package/dist/types/components/data-display/DataViews/list-card-cells.d.ts.map +1 -1
  687. package/dist/types/components/data-display/ErrorState/ErrorState.d.ts.map +1 -1
  688. package/dist/types/components/data-display/InteractiveTooltip/InteractiveTooltip.styles.d.ts +1 -1
  689. package/dist/types/components/data-display/InteractiveTooltip/InteractiveTooltip.styles.d.ts.map +1 -1
  690. package/dist/types/components/data-display/Lightbox/Lightbox.constants.d.ts +1 -1
  691. package/dist/types/components/data-display/Lightbox/Lightbox.constants.d.ts.map +1 -1
  692. package/dist/types/components/data-display/Lightbox/LightboxThumbnails.d.ts.map +1 -1
  693. package/dist/types/components/data-display/MapPreview/MapDecorations.d.ts.map +1 -1
  694. package/dist/types/components/data-display/MapPreview/MapMarkers.d.ts.map +1 -1
  695. package/dist/types/components/data-display/Progress/Progress.styles.d.ts +1 -1
  696. package/dist/types/components/data-display/Progress/Progress.styles.d.ts.map +1 -1
  697. package/dist/types/components/data-display/StatCard/StatCard.d.ts.map +1 -1
  698. package/dist/types/components/data-display/Stepper/Stepper.d.ts.map +1 -1
  699. package/dist/types/components/data-display/Table/Table.styles.d.ts.map +1 -1
  700. package/dist/types/components/data-display/Timeline/TimelineRow.d.ts.map +1 -1
  701. package/dist/types/components/data-display/TimingDiagram/TimingDiagram.d.ts.map +1 -1
  702. package/dist/types/components/data-display/TimingDiagram/TimingDiagram.views.d.ts.map +1 -1
  703. package/dist/types/components/data-display/Tooltip/Tooltip.d.ts.map +1 -1
  704. package/dist/types/components/feedback/Sonner/Sonner.d.ts.map +1 -1
  705. package/dist/types/components/feedback/Sonner/SonnerToast.d.ts.map +1 -1
  706. package/dist/types/components/form/AddressAutocomplete/AddressOption.d.ts.map +1 -1
  707. package/dist/types/components/form/Button/Button.d.ts.map +1 -1
  708. package/dist/types/components/form/Button/Button.styles.d.ts.map +1 -1
  709. package/dist/types/components/form/CategorySelect/CategoryPanelFoot.d.ts.map +1 -1
  710. package/dist/types/components/form/CategorySelect/CategoryPanelHead.d.ts.map +1 -1
  711. package/dist/types/components/form/CategorySelect/CategoryQuickActions.d.ts.map +1 -1
  712. package/dist/types/components/form/CategorySelect/CategorySelect.styles.d.ts.map +1 -1
  713. package/dist/types/components/form/CodeEditor/CodeEditor.d.ts.map +1 -1
  714. package/dist/types/components/form/CodeEditor/CodeEditorToolbar.d.ts.map +1 -1
  715. package/dist/types/components/form/Command/Command.d.ts.map +1 -1
  716. package/dist/types/components/form/Command/Command.styles.d.ts +3 -2
  717. package/dist/types/components/form/Command/Command.styles.d.ts.map +1 -1
  718. package/dist/types/components/form/DateRangePicker/DateRangePickerQuickList.d.ts.map +1 -1
  719. package/dist/types/components/form/Form/Form.d.ts.map +1 -1
  720. package/dist/types/components/form/HeaderButton/HeaderButton.d.ts.map +1 -1
  721. package/dist/types/components/form/InputOTP/InputOTP.styles.d.ts.map +1 -1
  722. package/dist/types/components/form/Label/Label.d.ts.map +1 -1
  723. package/dist/types/components/form/Menubar/Menubar.item.d.ts.map +1 -1
  724. package/dist/types/components/form/PasswordStrength/PasswordStrength.d.ts.map +1 -1
  725. package/dist/types/components/form/PasswordStrength/PasswordStrength.helpers.d.ts +2 -2
  726. package/dist/types/components/form/PasswordStrength/PasswordStrength.helpers.d.ts.map +1 -1
  727. package/dist/types/components/form/PhoneInput/PhoneInput.d.ts.map +1 -1
  728. package/dist/types/components/form/RadioGroup/RadioGroup.styles.d.ts.map +1 -1
  729. package/dist/types/components/form/RichTextEditor/RichTextEditor.d.ts.map +1 -1
  730. package/dist/types/components/form/SearchPalette/SearchPalette.parts.d.ts.map +1 -1
  731. package/dist/types/components/form/Slider/Slider.styles.d.ts.map +1 -1
  732. package/dist/types/components/form/Switch/Switch.parts.d.ts.map +1 -1
  733. package/dist/types/components/form/Switch/Switch.styles.d.ts.map +1 -1
  734. package/dist/types/components/form/Textarea/Textarea.d.ts.map +1 -1
  735. package/dist/types/components/form/Textarea/TextareaRichEditor.d.ts.map +1 -1
  736. package/dist/types/components/form/Toggle/Toggle.styles.d.ts.map +1 -1
  737. package/dist/types/components/form/ToggleGroup/ToggleGroup.d.ts.map +1 -1
  738. package/dist/types/components/form/UploadButton/UploadButton.parts.d.ts.map +1 -1
  739. package/dist/types/components/form/total-form/SubmitButton.d.ts.map +1 -1
  740. package/dist/types/components/layout/ContentToolbar/ColumnsMenu.d.ts.map +1 -1
  741. package/dist/types/components/layout/ContentToolbar/ContentToolbar.d.ts.map +1 -1
  742. package/dist/types/components/layout/ContentToolbar/FilterTrigger.d.ts.map +1 -1
  743. package/dist/types/components/layout/ContentToolbar/MultiSelectDropdown.d.ts.map +1 -1
  744. package/dist/types/components/layout/ContentToolbar/MultiSelectTriggers.d.ts.map +1 -1
  745. package/dist/types/components/layout/ContentToolbar/SavedViewsMenu.d.ts.map +1 -1
  746. package/dist/types/components/layout/ContentToolbar/SortByDropdown.d.ts.map +1 -1
  747. package/dist/types/components/layout/ContentToolbar/ViewSelector.d.ts.map +1 -1
  748. package/dist/types/components/layout/Dashboard/Dashboard.d.ts.map +1 -1
  749. package/dist/types/components/layout/Dashboard/DashboardParts.d.ts.map +1 -1
  750. package/dist/types/components/layout/SettingsLayout/SettingsPanel.d.ts.map +1 -1
  751. package/dist/types/components/layout/SettingsLayout/SettingsSectionChips.d.ts.map +1 -1
  752. package/dist/types/components/layout/SettingsLayout/SettingsSectionHeader.d.ts.map +1 -1
  753. package/dist/types/components/layout/SettingsLayout/SettingsStatusMarker.d.ts.map +1 -1
  754. package/dist/types/components/layout/TableFilter/TableFilter.d.ts.map +1 -1
  755. package/dist/types/components/navigation/AppHeader/AppHeader.brand.d.ts.map +1 -1
  756. package/dist/types/components/navigation/AppHeader/AppHeader.d.ts.map +1 -1
  757. package/dist/types/components/navigation/AppHeader/AppHeader.identity.d.ts.map +1 -1
  758. package/dist/types/components/navigation/Breadcrumbs/BreadcrumbEntry.d.ts.map +1 -1
  759. package/dist/types/components/navigation/Breadcrumbs/Breadcrumbs.d.ts.map +1 -1
  760. package/dist/types/components/navigation/Breadcrumbs/Breadcrumbs.styles.d.ts.map +1 -1
  761. package/dist/types/components/navigation/CommandPalette/CommandPalette.d.ts.map +1 -1
  762. package/dist/types/components/navigation/CommandPalette/CommandPaletteResults.d.ts.map +1 -1
  763. package/dist/types/components/navigation/CommandPalette/ShortcutChip.d.ts.map +1 -1
  764. package/dist/types/components/navigation/ContextMenu/ContextMenu.d.ts.map +1 -1
  765. package/dist/types/components/navigation/DropdownMenu/DropdownMenu.d.ts.map +1 -1
  766. package/dist/types/components/navigation/NavigationMenu/NavigationMenu.styles.d.ts.map +1 -1
  767. package/dist/types/components/navigation/NavigationMenu/NavigationMenuItem.d.ts.map +1 -1
  768. package/dist/types/components/navigation/Pagination/Pagination.styles.d.ts.map +1 -1
  769. package/dist/types/components/navigation/Tabs/Tabs.d.ts.map +1 -1
  770. package/dist/types/components/navigation/Tabs/Tabs.styles.d.ts.map +1 -1
  771. package/dist/types/components/typography/Blockquote/Blockquote.d.ts.map +1 -1
  772. package/dist/types/components/typography/Code/Code.d.ts.map +1 -1
  773. package/dist/types/components/typography/Paragraph/Paragraph.d.ts.map +1 -1
  774. package/dist/types/components/typography/Text/Text.d.ts.map +1 -1
  775. package/dist/types/components/utility/AnimatedIcon/AnimatedIcon.styles.d.ts +2 -1
  776. package/dist/types/components/utility/AnimatedIcon/AnimatedIcon.styles.d.ts.map +1 -1
  777. package/dist/types/components/utility/WorkflowStep/WorkflowStep.parts.d.ts.map +1 -1
  778. package/dist/types/icons/Icon.d.ts.map +1 -1
  779. package/dist/typography/Blockquote.js +2 -1
  780. package/dist/typography/Code.js +2 -1
  781. package/dist/typography/Paragraph.js +2 -8
  782. package/dist/typography/Text.js +2 -1
  783. package/dist/user-avatar.js +7 -6
  784. package/dist/utility/AnimatedIcon.js +3 -2
  785. package/dist/utility/WorkflowStep.js +4 -3
  786. package/package.json +1 -1
  787. package/src/components/data-display/Alert/Alert.styles.tsx +2 -2
  788. package/src/components/data-display/Alert/Alert.tsx +3 -3
  789. package/src/components/data-display/AlertDialog/AlertDialog.tsx +2 -1
  790. package/src/components/data-display/Avatar/Avatar.view.tsx +6 -3
  791. package/src/components/data-display/Badge/Badge.styles.ts +5 -6
  792. package/src/components/data-display/Badge/Badge.variants.ts +10 -9
  793. package/src/components/data-display/Badge/BadgeContent.tsx +21 -17
  794. package/src/components/data-display/Banner/Banner.styles.ts +4 -3
  795. package/src/components/data-display/Banner/Banner.tsx +2 -1
  796. package/src/components/data-display/CardKit/list-card-parts.tsx +6 -5
  797. package/src/components/data-display/Carousel/Carousel.parts.tsx +2 -2
  798. package/src/components/data-display/Carousel/Carousel.styles.ts +7 -7
  799. package/src/components/data-display/Chart/Chart.tsx +1 -1
  800. package/src/components/data-display/Chart/chart-context.ts +1 -1
  801. package/src/components/data-display/Chart/chart-internals.ts +11 -9
  802. package/src/components/data-display/DataViews/SaveViewModal.tsx +2 -1
  803. package/src/components/data-display/DataViews/base-card.tsx +3 -1
  804. package/src/components/data-display/DataViews/base-list-card-slots.tsx +4 -3
  805. package/src/components/data-display/DataViews/data-views-bar-controls.tsx +4 -3
  806. package/src/components/data-display/DataViews/data-views-columns-tab.tsx +3 -2
  807. package/src/components/data-display/DataViews/data-views-display-panel.tsx +2 -1
  808. package/src/components/data-display/DataViews/data-views-display-tabs.tsx +3 -2
  809. package/src/components/data-display/DataViews/data-views-export.tsx +3 -2
  810. package/src/components/data-display/DataViews/data-views-filter-panel.tsx +2 -1
  811. package/src/components/data-display/DataViews/data-views-grid-bodies.tsx +3 -2
  812. package/src/components/data-display/DataViews/data-views-more-fields.tsx +3 -2
  813. package/src/components/data-display/DataViews/data-views-more-filters.tsx +3 -2
  814. package/src/components/data-display/DataViews/data-views-preset-chips.tsx +2 -1
  815. package/src/components/data-display/DataViews/data-views-range-pill.tsx +8 -7
  816. package/src/components/data-display/DataViews/data-views-scopes.tsx +3 -2
  817. package/src/components/data-display/DataViews/data-views-search.tsx +4 -3
  818. package/src/components/data-display/DataViews/data-views-view-nav.tsx +4 -3
  819. package/src/components/data-display/DataViews/list-card-cells.tsx +3 -2
  820. package/src/components/data-display/ErrorState/ErrorState.tsx +2 -1
  821. package/src/components/data-display/InteractiveTooltip/InteractiveTooltip.styles.ts +5 -4
  822. package/src/components/data-display/InteractiveTooltip/InteractiveTooltip.tsx +1 -1
  823. package/src/components/data-display/Lightbox/Lightbox.constants.ts +2 -1
  824. package/src/components/data-display/Lightbox/LightboxThumbnails.tsx +2 -1
  825. package/src/components/data-display/MapPreview/MapDecorations.tsx +5 -4
  826. package/src/components/data-display/MapPreview/MapMarkers.tsx +2 -1
  827. package/src/components/data-display/Progress/Progress.styles.ts +4 -4
  828. package/src/components/data-display/StatCard/StatCard.tsx +2 -1
  829. package/src/components/data-display/Stepper/Stepper.tsx +2 -1
  830. package/src/components/data-display/Table/Table.styles.ts +6 -5
  831. package/src/components/data-display/Timeline/TimelineRow.tsx +4 -3
  832. package/src/components/data-display/TimingDiagram/TimingDiagram.tsx +2 -1
  833. package/src/components/data-display/TimingDiagram/TimingDiagram.views.tsx +6 -5
  834. package/src/components/data-display/Tooltip/Tooltip.tsx +6 -5
  835. package/src/components/feedback/Sonner/Sonner.tsx +3 -1
  836. package/src/components/feedback/Sonner/SonnerToast.tsx +7 -6
  837. package/src/components/form/AddressAutocomplete/AddressOption.tsx +3 -2
  838. package/src/components/form/Button/Button.styles.ts +18 -8
  839. package/src/components/form/Button/Button.tsx +8 -5
  840. package/src/components/form/CategorySelect/CategoryPanelFoot.tsx +4 -3
  841. package/src/components/form/CategorySelect/CategoryPanelHead.tsx +4 -3
  842. package/src/components/form/CategorySelect/CategoryQuickActions.tsx +2 -1
  843. package/src/components/form/CategorySelect/CategorySelect.styles.ts +11 -10
  844. package/src/components/form/Checkbox/Checkbox.tsx +2 -2
  845. package/src/components/form/CodeEditor/CodeEditor.tsx +13 -6
  846. package/src/components/form/CodeEditor/CodeEditorToolbar.tsx +3 -2
  847. package/src/components/form/Command/Command.styles.ts +12 -8
  848. package/src/components/form/Command/Command.tsx +5 -4
  849. package/src/components/form/DateRangePicker/DateRangePickerQuickList.tsx +3 -2
  850. package/src/components/form/Form/Form.tsx +3 -2
  851. package/src/components/form/HeaderButton/HeaderButton.tsx +3 -1
  852. package/src/components/form/InputOTP/InputOTP.styles.ts +10 -9
  853. package/src/components/form/Label/Label.styles.ts +6 -6
  854. package/src/components/form/Label/Label.tsx +2 -1
  855. package/src/components/form/Menubar/Menubar.item.tsx +2 -1
  856. package/src/components/form/Menubar/Menubar.styles.ts +6 -6
  857. package/src/components/form/PasswordStrength/PasswordStrength.helpers.tsx +10 -7
  858. package/src/components/form/PasswordStrength/PasswordStrength.tsx +19 -9
  859. package/src/components/form/PhoneInput/PhoneInput.tsx +3 -2
  860. package/src/components/form/RadioGroup/RadioGroup.styles.ts +15 -14
  861. package/src/components/form/RichTextEditor/RichTextEditor.tsx +2 -1
  862. package/src/components/form/SearchPalette/SearchPalette.parts.tsx +6 -5
  863. package/src/components/form/Slider/Slider.styles.ts +11 -7
  864. package/src/components/form/Switch/Switch.parts.tsx +2 -1
  865. package/src/components/form/Switch/Switch.styles.ts +4 -3
  866. package/src/components/form/Textarea/Textarea.tsx +6 -5
  867. package/src/components/form/Textarea/TextareaRichEditor.tsx +3 -2
  868. package/src/components/form/Toggle/Toggle.styles.ts +14 -7
  869. package/src/components/form/ToggleGroup/ToggleGroup.tsx +6 -5
  870. package/src/components/form/UploadButton/UploadButton.parts.tsx +2 -1
  871. package/src/components/form/total-form/SubmitButton.tsx +2 -1
  872. package/src/components/layout/ContentToolbar/ColumnsMenu.tsx +3 -2
  873. package/src/components/layout/ContentToolbar/ContentToolbar.tsx +3 -2
  874. package/src/components/layout/ContentToolbar/FilterTrigger.tsx +3 -2
  875. package/src/components/layout/ContentToolbar/MultiSelectDropdown.tsx +5 -4
  876. package/src/components/layout/ContentToolbar/MultiSelectTriggers.tsx +10 -9
  877. package/src/components/layout/ContentToolbar/SavedViewsMenu.tsx +10 -9
  878. package/src/components/layout/ContentToolbar/SortByDropdown.tsx +6 -5
  879. package/src/components/layout/ContentToolbar/ViewSelector.tsx +5 -4
  880. package/src/components/layout/Dashboard/Dashboard.tsx +4 -3
  881. package/src/components/layout/Dashboard/DashboardParts.tsx +2 -1
  882. package/src/components/layout/SettingsLayout/SettingsPanel.tsx +2 -1
  883. package/src/components/layout/SettingsLayout/SettingsSectionChips.tsx +2 -1
  884. package/src/components/layout/SettingsLayout/SettingsSectionHeader.tsx +3 -2
  885. package/src/components/layout/SettingsLayout/SettingsStatusMarker.tsx +2 -1
  886. package/src/components/layout/TableFilter/TableFilter.tsx +10 -9
  887. package/src/components/navigation/AppHeader/AppHeader.brand.tsx +2 -1
  888. package/src/components/navigation/AppHeader/AppHeader.identity.tsx +3 -2
  889. package/src/components/navigation/AppHeader/AppHeader.tsx +2 -1
  890. package/src/components/navigation/Breadcrumbs/BreadcrumbEntry.tsx +3 -2
  891. package/src/components/navigation/Breadcrumbs/Breadcrumbs.styles.tsx +3 -2
  892. package/src/components/navigation/Breadcrumbs/Breadcrumbs.tsx +2 -1
  893. package/src/components/navigation/CommandPalette/CommandPalette.tsx +3 -2
  894. package/src/components/navigation/CommandPalette/CommandPaletteResults.tsx +5 -4
  895. package/src/components/navigation/CommandPalette/ShortcutChip.tsx +3 -1
  896. package/src/components/navigation/ContextMenu/ContextMenu.tsx +5 -4
  897. package/src/components/navigation/DropdownMenu/DropdownMenu.tsx +5 -4
  898. package/src/components/navigation/NavigationMenu/NavigationMenu.styles.ts +3 -2
  899. package/src/components/navigation/NavigationMenu/NavigationMenuItem.tsx +2 -1
  900. package/src/components/navigation/Pagination/Pagination.styles.ts +3 -2
  901. package/src/components/navigation/Tabs/Tabs.styles.ts +3 -2
  902. package/src/components/navigation/Tabs/Tabs.tsx +3 -2
  903. package/src/components/typography/Blockquote/Blockquote.tsx +6 -5
  904. package/src/components/typography/Code/Code.tsx +11 -10
  905. package/src/components/typography/Paragraph/Paragraph.tsx +16 -12
  906. package/src/components/typography/Text/Text.tsx +18 -12
  907. package/src/components/utility/AnimatedIcon/AnimatedIcon.styles.ts +9 -7
  908. package/src/components/utility/AnimatedIcon/AnimatedIcon.tsx +1 -1
  909. package/src/components/utility/WorkflowStep/WorkflowStep.parts.tsx +4 -3
  910. package/src/icons/Icon.tsx +2 -2
  911. package/dist/chunk-2BFUUUDS.js.map +0 -1
  912. package/dist/chunk-2CEV746H.js.map +0 -1
  913. package/dist/chunk-2CK7SHQQ.js.map +0 -1
  914. package/dist/chunk-2KLT22S3.js.map +0 -1
  915. package/dist/chunk-2LG5TEFV.js.map +0 -1
  916. package/dist/chunk-2RRXQTOO.js.map +0 -1
  917. package/dist/chunk-2SGPNJHJ.js.map +0 -1
  918. package/dist/chunk-32HU5YFB.js.map +0 -1
  919. package/dist/chunk-3CBL5FWS.js.map +0 -1
  920. package/dist/chunk-3E3JYKUK.js.map +0 -1
  921. package/dist/chunk-3EDZU2H7.js.map +0 -1
  922. package/dist/chunk-4GKDO4YK.js.map +0 -1
  923. package/dist/chunk-4M6CEQVK.js.map +0 -1
  924. package/dist/chunk-4M7QHSKY.js.map +0 -1
  925. package/dist/chunk-4V7DBU4H.js.map +0 -1
  926. package/dist/chunk-52APLKAG.js.map +0 -1
  927. package/dist/chunk-5CIXQBLV.js.map +0 -1
  928. package/dist/chunk-5E6WZAQF.js.map +0 -1
  929. package/dist/chunk-5EIW2FZY.js.map +0 -1
  930. package/dist/chunk-5LPQ6T5S.js.map +0 -1
  931. package/dist/chunk-5QTMJ2RU.js.map +0 -1
  932. package/dist/chunk-63UQJVBW.js.map +0 -1
  933. package/dist/chunk-67VUL6L2.js.map +0 -1
  934. package/dist/chunk-6VP2L3DJ.js.map +0 -1
  935. package/dist/chunk-74LYLKO2.js.map +0 -1
  936. package/dist/chunk-7IQDLEB5.js.map +0 -1
  937. package/dist/chunk-7QLHYUDW.js.map +0 -1
  938. package/dist/chunk-7Z2UU2FQ.js.map +0 -1
  939. package/dist/chunk-ABCP6NS4.js.map +0 -1
  940. package/dist/chunk-ACHUHT2K.js.map +0 -1
  941. package/dist/chunk-B3OMUMZO.js.map +0 -1
  942. package/dist/chunk-B443IIQG.js.map +0 -1
  943. package/dist/chunk-BHOSWJDL.js.map +0 -1
  944. package/dist/chunk-BOU3HR4C.js.map +0 -1
  945. package/dist/chunk-BTVIHTAL.js.map +0 -1
  946. package/dist/chunk-C3U7FDKI.js.map +0 -1
  947. package/dist/chunk-CRDOMIEG.js.map +0 -1
  948. package/dist/chunk-CZBONNPA.js.map +0 -1
  949. package/dist/chunk-D3IXNCEU.js.map +0 -1
  950. package/dist/chunk-DJ2KYLHE.js.map +0 -1
  951. package/dist/chunk-DJEGLKW3.js.map +0 -1
  952. package/dist/chunk-DKILDT72.js.map +0 -1
  953. package/dist/chunk-DL6N7W6P.js.map +0 -1
  954. package/dist/chunk-DPJZFQF2.js.map +0 -1
  955. package/dist/chunk-DYMVVVSU.js.map +0 -1
  956. package/dist/chunk-EDBTCEPC.js.map +0 -1
  957. package/dist/chunk-EHCUOX6R.js.map +0 -1
  958. package/dist/chunk-EKSSKQUW.js.map +0 -1
  959. package/dist/chunk-EWGVRRUF.js.map +0 -1
  960. package/dist/chunk-EWSGWLHN.js.map +0 -1
  961. package/dist/chunk-EYPRDTWI.js.map +0 -1
  962. package/dist/chunk-F4RR4666.js.map +0 -1
  963. package/dist/chunk-GJF3CVIE.js.map +0 -1
  964. package/dist/chunk-GL5CYMGK.js.map +0 -1
  965. package/dist/chunk-GQ4I6Z32.js.map +0 -1
  966. package/dist/chunk-GVOMTCLS.js.map +0 -1
  967. package/dist/chunk-H37GIAAM.js.map +0 -1
  968. package/dist/chunk-H3R6WSYU.js.map +0 -1
  969. package/dist/chunk-H57ZS6W2.js.map +0 -1
  970. package/dist/chunk-HBYWUSPI.js.map +0 -1
  971. package/dist/chunk-HEVST4CS.js.map +0 -1
  972. package/dist/chunk-HH5CNSJP.js.map +0 -1
  973. package/dist/chunk-HMHCNNNW.js.map +0 -1
  974. package/dist/chunk-HRHPRIGT.js.map +0 -1
  975. package/dist/chunk-HWEAW4LF.js.map +0 -1
  976. package/dist/chunk-IBWVEARQ.js.map +0 -1
  977. package/dist/chunk-IPPTOL53.js.map +0 -1
  978. package/dist/chunk-IRYSJ74J.js.map +0 -1
  979. package/dist/chunk-JGOXXKPY.js.map +0 -1
  980. package/dist/chunk-JIKWZDNK.js.map +0 -1
  981. package/dist/chunk-JKNLKUCX.js.map +0 -1
  982. package/dist/chunk-JLWAYBOP.js.map +0 -1
  983. package/dist/chunk-JO3Y5H75.js.map +0 -1
  984. package/dist/chunk-JXTEE5G6.js.map +0 -1
  985. package/dist/chunk-KDIPBEVE.js.map +0 -1
  986. package/dist/chunk-LKAVTJMC.js.map +0 -1
  987. package/dist/chunk-LYKV3C7B.js.map +0 -1
  988. package/dist/chunk-MAUZCOBB.js.map +0 -1
  989. package/dist/chunk-MH73XQHW.js.map +0 -1
  990. package/dist/chunk-MMPJ2MCE.js.map +0 -1
  991. package/dist/chunk-NFZRZB5N.js.map +0 -1
  992. package/dist/chunk-NJHJZFX5.js.map +0 -1
  993. package/dist/chunk-NMX3JAAB.js.map +0 -1
  994. package/dist/chunk-NNESQ7QG.js.map +0 -1
  995. package/dist/chunk-OFU66DRT.js.map +0 -1
  996. package/dist/chunk-OZAP2BEP.js.map +0 -1
  997. package/dist/chunk-P2PDDFMM.js.map +0 -1
  998. package/dist/chunk-PAAFUJJL.js.map +0 -1
  999. package/dist/chunk-PDLJOQO5.js.map +0 -1
  1000. package/dist/chunk-PEIAGNCH.js.map +0 -1
  1001. package/dist/chunk-PYJI2YGJ.js.map +0 -1
  1002. package/dist/chunk-PYPFDRX4.js.map +0 -1
  1003. package/dist/chunk-QJ7I5C4D.js.map +0 -1
  1004. package/dist/chunk-QXTO3G2T.js.map +0 -1
  1005. package/dist/chunk-RPBA4WH7.js.map +0 -1
  1006. package/dist/chunk-SCQJV54H.js.map +0 -1
  1007. package/dist/chunk-SNTDLS4A.js.map +0 -1
  1008. package/dist/chunk-SQSFMZTF.js.map +0 -1
  1009. package/dist/chunk-SQV3HPTZ.js.map +0 -1
  1010. package/dist/chunk-SVSOUC5S.js.map +0 -1
  1011. package/dist/chunk-SZB2Z6QN.js.map +0 -1
  1012. package/dist/chunk-TK4NUNN6.js.map +0 -1
  1013. package/dist/chunk-UBWYHYDR.js.map +0 -1
  1014. package/dist/chunk-UH27I2EJ.js.map +0 -1
  1015. package/dist/chunk-UTSGY3ON.js.map +0 -1
  1016. package/dist/chunk-V26IDPL4.js.map +0 -1
  1017. package/dist/chunk-V6Z4XS3I.js.map +0 -1
  1018. package/dist/chunk-VNB7PFCP.js.map +0 -1
  1019. package/dist/chunk-VNHLYDTX.js.map +0 -1
  1020. package/dist/chunk-WGFIIS6Q.js.map +0 -1
  1021. package/dist/chunk-WPSGP3YG.js.map +0 -1
  1022. package/dist/chunk-WXTXCJ5V.js.map +0 -1
  1023. package/dist/chunk-XLZBZSES.js.map +0 -1
  1024. package/dist/chunk-XNBN5CVF.js.map +0 -1
  1025. package/dist/chunk-XOL2QCSP.js.map +0 -1
  1026. package/dist/chunk-Y3HMIUH6.js.map +0 -1
  1027. package/dist/chunk-Y7ZS724A.js.map +0 -1
  1028. package/dist/chunk-YU72SS43.js.map +0 -1
  1029. package/dist/chunk-Z2EOT77M.js.map +0 -1
  1030. package/dist/chunk-ZHFS5L6Q.js.map +0 -1
  1031. package/dist/chunk-ZRHSIFWA.js.map +0 -1
  1032. package/dist/chunk-ZSRLRDTP.js.map +0 -1
  1033. /package/dist/{chunk-YVDBOVHP.js.map → chunk-2AKQPXSJ.js.map} +0 -0
  1034. /package/dist/{chunk-PRVK3U6U.js.map → chunk-2CTTASUD.js.map} +0 -0
  1035. /package/dist/{chunk-G2TCNZYD.js.map → chunk-3A22SBIU.js.map} +0 -0
  1036. /package/dist/{chunk-A4JH5FAL.js.map → chunk-3CVTQZQJ.js.map} +0 -0
  1037. /package/dist/{chunk-2XGGHYEA.js.map → chunk-4LQZH4PU.js.map} +0 -0
  1038. /package/dist/{chunk-ZF3JGIJD.js.map → chunk-4M34ALEP.js.map} +0 -0
  1039. /package/dist/{chunk-OT5DVKXP.js.map → chunk-4WQ3YXQL.js.map} +0 -0
  1040. /package/dist/{chunk-DOXNMWUU.js.map → chunk-57IB5NTM.js.map} +0 -0
  1041. /package/dist/{chunk-N4JEQJBL.js.map → chunk-5IXHJXJX.js.map} +0 -0
  1042. /package/dist/{chunk-YA4YH6WP.js.map → chunk-5ZQUJ7LT.js.map} +0 -0
  1043. /package/dist/{chunk-Q4KFGRBV.js.map → chunk-5ZTQTJAJ.js.map} +0 -0
  1044. /package/dist/{chunk-5264DI34.js.map → chunk-6DC5SVHM.js.map} +0 -0
  1045. /package/dist/{chunk-DQIRSUEK.js.map → chunk-6KL2CJBO.js.map} +0 -0
  1046. /package/dist/{chunk-UIKDWXHX.js.map → chunk-73HBIIRB.js.map} +0 -0
  1047. /package/dist/{chunk-COK5VOXC.js.map → chunk-7LIXQZBG.js.map} +0 -0
  1048. /package/dist/{chunk-K2XK45HG.js.map → chunk-7ZG7T2YN.js.map} +0 -0
  1049. /package/dist/{chunk-OYYCANKB.js.map → chunk-A6AKFPIQ.js.map} +0 -0
  1050. /package/dist/{chunk-O63WG6YJ.js.map → chunk-AJSPLHG4.js.map} +0 -0
  1051. /package/dist/{chunk-CY6HHLYM.js.map → chunk-AQSX3YH2.js.map} +0 -0
  1052. /package/dist/{chunk-JGDS2SJZ.js.map → chunk-BD2GGIGS.js.map} +0 -0
  1053. /package/dist/{chunk-7WK2L3ZO.js.map → chunk-BO2SDMNQ.js.map} +0 -0
  1054. /package/dist/{chunk-PC2MVKYW.js.map → chunk-C6FRVGMC.js.map} +0 -0
  1055. /package/dist/{chunk-KCQGJPLO.js.map → chunk-C6NI3FAV.js.map} +0 -0
  1056. /package/dist/{chunk-YSFQHZ74.js.map → chunk-C7TCBAVX.js.map} +0 -0
  1057. /package/dist/{chunk-UXWU5NRC.js.map → chunk-CRZXSZ5O.js.map} +0 -0
  1058. /package/dist/{chunk-46ADSOCF.js.map → chunk-CS3RKXT5.js.map} +0 -0
  1059. /package/dist/{chunk-PO2RWE7N.js.map → chunk-D5X4FRYX.js.map} +0 -0
  1060. /package/dist/{chunk-LCVQOJKG.js.map → chunk-DMYBTD5Y.js.map} +0 -0
  1061. /package/dist/{chunk-GJRBK564.js.map → chunk-DRE6DSJ7.js.map} +0 -0
  1062. /package/dist/{chunk-BHLGZLXQ.js.map → chunk-EDO2WS5B.js.map} +0 -0
  1063. /package/dist/{chunk-FYSYALTY.js.map → chunk-EFVOT3G5.js.map} +0 -0
  1064. /package/dist/{chunk-7E4X4J2M.js.map → chunk-EOW2ECB3.js.map} +0 -0
  1065. /package/dist/{chunk-6MSSCBI3.js.map → chunk-EXZSHZRS.js.map} +0 -0
  1066. /package/dist/{chunk-XYK3HXZY.js.map → chunk-F5KEWLZK.js.map} +0 -0
  1067. /package/dist/{chunk-7VIINULX.js.map → chunk-F7HQVKIR.js.map} +0 -0
  1068. /package/dist/{chunk-WVPA3ONO.js.map → chunk-FXNYV5Z6.js.map} +0 -0
  1069. /package/dist/{chunk-EUDIQQWE.js.map → chunk-GEXM6DNR.js.map} +0 -0
  1070. /package/dist/{chunk-E6OILRUU.js.map → chunk-GGWICBJD.js.map} +0 -0
  1071. /package/dist/{chunk-67QSLTT7.js.map → chunk-GIRRCEVH.js.map} +0 -0
  1072. /package/dist/{chunk-LGZ4EIWV.js.map → chunk-GUVBR62X.js.map} +0 -0
  1073. /package/dist/{chunk-VNYP2RMN.js.map → chunk-GVLZZCSX.js.map} +0 -0
  1074. /package/dist/{chunk-D6RKXNLE.js.map → chunk-GXCOXJS3.js.map} +0 -0
  1075. /package/dist/{chunk-BIIAMH47.js.map → chunk-HAQMKV5P.js.map} +0 -0
  1076. /package/dist/{chunk-VMZ3JJGG.js.map → chunk-I62ALI7F.js.map} +0 -0
  1077. /package/dist/{chunk-3LNKBZTG.js.map → chunk-IWOVENC3.js.map} +0 -0
  1078. /package/dist/{chunk-DSIJEJQ7.js.map → chunk-JFBEZXNL.js.map} +0 -0
  1079. /package/dist/{chunk-TAB6AIPN.js.map → chunk-JFEEV3XI.js.map} +0 -0
  1080. /package/dist/{chunk-V6FED3RS.js.map → chunk-JOR6E23V.js.map} +0 -0
  1081. /package/dist/{chunk-YCGZSKCV.js.map → chunk-JWK4GI2I.js.map} +0 -0
  1082. /package/dist/{chunk-DELT2W42.js.map → chunk-JYRQBZEV.js.map} +0 -0
  1083. /package/dist/{chunk-DY7VTAYO.js.map → chunk-KE5MX4PI.js.map} +0 -0
  1084. /package/dist/{chunk-ECZXTIDR.js.map → chunk-KK57AHWS.js.map} +0 -0
  1085. /package/dist/{chunk-HUKVX47W.js.map → chunk-KLMP2BYC.js.map} +0 -0
  1086. /package/dist/{chunk-VU4BANG7.js.map → chunk-KTYZRAB7.js.map} +0 -0
  1087. /package/dist/{chunk-EIJC5DWG.js.map → chunk-LDDN254Q.js.map} +0 -0
  1088. /package/dist/{chunk-QYUB2RFN.js.map → chunk-LI6OLYUB.js.map} +0 -0
  1089. /package/dist/{chunk-TNDV33LP.js.map → chunk-LOJK733T.js.map} +0 -0
  1090. /package/dist/{chunk-S52IVFMS.js.map → chunk-MXZ43UCQ.js.map} +0 -0
  1091. /package/dist/{chunk-UUFHI7J5.js.map → chunk-NE6XUN5Z.js.map} +0 -0
  1092. /package/dist/{chunk-WXDJBSES.js.map → chunk-NIS523UM.js.map} +0 -0
  1093. /package/dist/{chunk-KJ3AXHKF.js.map → chunk-OGTTJKHI.js.map} +0 -0
  1094. /package/dist/{chunk-ZSLOXTYJ.js.map → chunk-OYP27CYE.js.map} +0 -0
  1095. /package/dist/{chunk-FTSVJIEU.js.map → chunk-PNLM35GU.js.map} +0 -0
  1096. /package/dist/{chunk-REQAKZ64.js.map → chunk-QTWXVOPT.js.map} +0 -0
  1097. /package/dist/{chunk-AKPRFFAI.js.map → chunk-QWHURFJ3.js.map} +0 -0
  1098. /package/dist/{chunk-CUN5RJTH.js.map → chunk-R75DZ3AK.js.map} +0 -0
  1099. /package/dist/{chunk-AL6Z2JYR.js.map → chunk-SKX4NA6E.js.map} +0 -0
  1100. /package/dist/{chunk-EVSKEIXI.js.map → chunk-SN2YMCTL.js.map} +0 -0
  1101. /package/dist/{chunk-T7LTL7OC.js.map → chunk-SX3MEC3Q.js.map} +0 -0
  1102. /package/dist/{chunk-DRKYPQNA.js.map → chunk-TEUX42YW.js.map} +0 -0
  1103. /package/dist/{chunk-UYA2QMH6.js.map → chunk-TOXTJ7MU.js.map} +0 -0
  1104. /package/dist/{chunk-H3MLYZYP.js.map → chunk-TPQVLBTY.js.map} +0 -0
  1105. /package/dist/{chunk-4N33SWTW.js.map → chunk-TTAP5XFX.js.map} +0 -0
  1106. /package/dist/{chunk-Y5WNNEND.js.map → chunk-TU3EGIKB.js.map} +0 -0
  1107. /package/dist/{chunk-QV5J4TE6.js.map → chunk-U2IRCTAR.js.map} +0 -0
  1108. /package/dist/{chunk-7JSQQZUH.js.map → chunk-UCA47HM7.js.map} +0 -0
  1109. /package/dist/{chunk-23FCBIUN.js.map → chunk-UO7ERXYX.js.map} +0 -0
  1110. /package/dist/{chunk-UEWIIYGA.js.map → chunk-VAGHW3K2.js.map} +0 -0
  1111. /package/dist/{chunk-SNBCAH62.js.map → chunk-VRDNUY4H.js.map} +0 -0
  1112. /package/dist/{chunk-BQGT77IQ.js.map → chunk-VV7MGILP.js.map} +0 -0
  1113. /package/dist/{chunk-GPUYB3ST.js.map → chunk-VZAGBDZ2.js.map} +0 -0
  1114. /package/dist/{chunk-MYAEOSZK.js.map → chunk-W3CLJ7JE.js.map} +0 -0
  1115. /package/dist/{chunk-UFH3ZVVZ.js.map → chunk-W5ENK5CM.js.map} +0 -0
  1116. /package/dist/{chunk-OSSFOPB7.js.map → chunk-WVC3BG6J.js.map} +0 -0
  1117. /package/dist/{chunk-QPNTUFV4.js.map → chunk-WW4N2LRM.js.map} +0 -0
  1118. /package/dist/{chunk-WPE5QYXD.js.map → chunk-X2AKLDPW.js.map} +0 -0
  1119. /package/dist/{chunk-AYRHW4DX.js.map → chunk-X7PVFAYJ.js.map} +0 -0
  1120. /package/dist/{chunk-TOBPKY4V.js.map → chunk-XSMMFCMQ.js.map} +0 -0
  1121. /package/dist/{chunk-MWBHZZA4.js.map → chunk-XWWFBH2G.js.map} +0 -0
  1122. /package/dist/{chunk-VLVMJDGD.js.map → chunk-YDPUBGJ7.js.map} +0 -0
  1123. /package/dist/{chunk-PKFH6C7W.js.map → chunk-YSKGLU2V.js.map} +0 -0
  1124. /package/dist/{chunk-37DCYIT5.js.map → chunk-YU647YW4.js.map} +0 -0
  1125. /package/dist/{chunk-JRODCEIG.js.map → chunk-YVUD3MY4.js.map} +0 -0
  1126. /package/dist/{chunk-27DLUKDF.js.map → chunk-ZHEZISMI.js.map} +0 -0
  1127. /package/dist/{chunk-RQCJJBPY.js.map → chunk-ZMC3N23A.js.map} +0 -0
  1128. /package/dist/{chunk-KBMKALKQ.js.map → chunk-ZW5K4XCQ.js.map} +0 -0
  1129. /package/dist/{chunk-L7Q5BH4A.js.map → chunk-ZXSUWFQX.js.map} +0 -0
  1130. /package/dist/{chunk-JWG2BTJ5.js.map → chunk-ZZM3DOEK.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/form/CodeEditor/CodeEditor.tsx"],"sourcesContent":["import Editor from '@monaco-editor/react';\nimport Box from '@mui/material/Box/index.js';\nimport Paper from '@mui/material/Paper/index.js';\nimport Typography from '@mui/material/Typography/index.js';\nimport { alpha, styled } from '@mui/material/styles/index.js';\nimport type { editor } from 'monaco-editor';\nimport type { FC} from 'react';\nimport React, { } from 'react';\n\nimport { makeTestId, resolveCodeEditorProps } from './CodeEditor.helpers';\nimport { useCodeEditor } from './CodeEditor.hooks';\nimport type { CodeEditorProps } from './CodeEditor.types';\nimport { EditorToolbar } from './CodeEditorToolbar';\n\nimport { fieldEdge } from '../../../tokens/field-edge';\nimport { fieldRadius } from '../../../tokens/field-radius';\n\n// Styled components\nconst EditorContainer = styled(Paper)(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n background: `linear-gradient(135deg, ${alpha(theme.palette.background.paper, 0.98)} 0%, ${alpha(theme.palette.background.paper, 0.95)} 100%)`,\n backdropFilter: 'blur(10px)',\n WebkitBackdropFilter: 'blur(10px)',\n border: `1px solid ${fieldEdge(theme)}`,\n borderRadius: fieldRadius(theme),\n overflow: 'hidden' }));\n\nconst EditorWrapper = styled(Box, {\n shouldForwardProp: (prop) => prop !== 'fullscreen' })<{ fullscreen: boolean }>(({ theme, fullscreen }) => ({\n position: 'relative',\n flex: 1,\n minHeight: 200,\n ...(fullscreen && {\n position: 'fixed',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n zIndex: theme.zIndex.modal,\n background: theme.palette.background.paper }) }));\n\nconst PlaceholderOverlay = styled(Box)(({ theme }) => ({\n position: 'absolute',\n top: theme.spacing(2),\n left: theme.spacing(8),\n color: theme.palette.text.disabled,\n fontFamily: 'Monaco, Menlo, \"Ubuntu Mono\", Consolas, source-code-pro, monospace',\n fontSize: '0.875rem',\n pointerEvents: 'none',\n userSelect: 'none' }));\n\n// Monaco editor themes\nconst EditorLoading: FC<{ label: string }> = ({ label }) => (\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: '100%',\n color: 'text.secondary' }}\n >\n <Typography variant=\"body2\">{label}</Typography>\n </Box>\n);\n\nconst buildEditorOptions = ({\n minimap,\n fontSize,\n isWrapped,\n lineNumbers,\n readOnly }: {\n minimap?: boolean;\n fontSize: number;\n isWrapped: boolean;\n lineNumbers: boolean;\n readOnly: boolean;\n}): editor.IStandaloneEditorConstructionOptions => ({\n readOnly,\n // Explicitly convert minimap to boolean to ensure Monaco receives a definitive value\n // This prevents undefined from being interpreted differently in various environments\n minimap: { enabled: minimap === true },\n fontSize,\n wordWrap: isWrapped ? 'on' : 'off',\n lineNumbers: lineNumbers ? 'on' : 'off',\n scrollBeyondLastLine: false,\n automaticLayout: true,\n tabSize: 2,\n insertSpaces: true,\n folding: true,\n foldingStrategy: 'indentation',\n showFoldingControls: 'mouseover',\n smoothScrolling: true,\n cursorBlinking: 'smooth',\n cursorSmoothCaretAnimation: 'on',\n renderWhitespace: 'selection',\n renderLineHighlight: 'all',\n selectOnLineNumbers: true,\n roundedSelection: true,\n padding: { top: 16, bottom: 16 },\n fontFamily: 'Monaco, Menlo, \"Ubuntu Mono\", Consolas, source-code-pro, monospace',\n fontLigatures: true });\n\nexport const CodeEditor: FC<CodeEditorProps> = (componentProps) => {\n const {\n language,\n height,\n theme: themeProp,\n value,\n onChange,\n readOnly,\n lineNumbers,\n minimap,\n fontSize,\n wordWrap,\n showToolbar,\n autoFormat,\n placeholder,\n onSave,\n dataTestId,\n copy } = resolveCodeEditorProps(componentProps);\n\n const testId = makeTestId(dataTestId);\n const editor = useCodeEditor({ themeProp, wordWrap, autoFormat, readOnly, onSave });\n\n const editorOptions = buildEditorOptions({\n minimap,\n fontSize,\n isWrapped: editor.isWrapped,\n lineNumbers,\n readOnly });\n\n return (\n <EditorContainer elevation={2} data-testid={dataTestId || 'code-editor'}>\n {showToolbar && (\n <EditorToolbar\n copy={copy}\n language={language}\n readOnly={readOnly}\n isWrapped={editor.isWrapped}\n isCopied={editor.isCopied}\n isFullscreen={editor.isFullscreen}\n dataTestId={dataTestId}\n onFormat={editor.handleFormat}\n onCopy={editor.handleCopy}\n onWrapToggle={editor.handleWrapToggle}\n onFullscreenToggle={editor.handleFullscreenToggle}\n />\n )}\n\n <EditorWrapper fullscreen={editor.isFullscreen} data-testid={testId('editor-wrapper')}>\n {placeholder && !value && (\n <PlaceholderOverlay data-testid={testId('placeholder')}>{placeholder}</PlaceholderOverlay>\n )}\n\n <Editor\n height={editor.isFullscreen ? '100vh' : height}\n language={language}\n value={value}\n onChange={(newValue) => onChange?.(newValue || '')}\n theme={editor.editorTheme}\n options={editorOptions}\n onMount={editor.handleEditorDidMount}\n loading={<EditorLoading label={copy.loading} />}\n />\n </EditorWrapper>\n </EditorContainer>\n );\n};\n"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/typography/Code/Code.tsx"],"sourcesContent":["import Check from '@mui/icons-material/Check';\nimport ContentCopy from '@mui/icons-material/ContentCopy';\nimport Box from '@mui/material/Box/index.js';\nimport IconButton from '@mui/material/IconButton/index.js';\nimport Tooltip from '@mui/material/Tooltip/index.js';\nimport { alpha, styled } from '@mui/material/styles/index.js';\nimport React, { useState } from 'react';\n\nimport type { CodeProps } from './Code.types';\nimport { modeInk, neutralTones } from '../../../tokens/ink';\n\nconst StyledCodeContainer = styled(Box, {\n shouldForwardProp: (prop) =>\n !['customVariant', 'customSize', 'copyable'].includes(prop as string),\n})<{\n customVariant?: string;\n customSize?: string;\n copyable?: boolean;\n component?: React.ElementType;\n}>(({ theme, customVariant = 'inline', customSize = 'md', copyable }) => {\n // Size mapping\n const sizeMap = {\n xs: { fontSize: '0.75rem', padding: '2px 4px' },\n sm: { fontSize: '0.8125rem', padding: '3px 6px' },\n md: { fontSize: '0.875rem', padding: '4px 8px' },\n lg: { fontSize: '1rem', padding: '6px 12px' },\n };\n\n const blockSizeMap = {\n xs: { fontSize: '0.75rem', padding: '8px 12px' },\n sm: { fontSize: '0.8125rem', padding: '12px 16px' },\n md: { fontSize: '0.875rem', padding: '16px 20px' },\n lg: { fontSize: '1rem', padding: '20px 24px' },\n };\n\n const baseStyles = {\n fontFamily: 'Monaco, Menlo, \"Ubuntu Mono\", \"Courier New\", monospace',\n lineHeight: 1.5,\n borderRadius: theme.shape.borderRadius,\n transition: 'all 0.2s ease',\n position: 'relative' as const,\n };\n\n // Variant-specific styles\n const variantStyles = {\n inline: {\n ...baseStyles,\n display: 'inline',\n backgroundColor: alpha(theme.palette.primary.main, 0.08),\n color: theme.palette.primary.main,\n border: `1px solid ${alpha(theme.palette.primary.main, 0.12)}`,\n ...sizeMap[customSize as keyof typeof sizeMap],\n },\n block: {\n ...baseStyles,\n display: 'block',\n backgroundColor:\n theme.palette.mode === 'dark'\n ? alpha(neutralTones(theme).inverseSurface, 0.95)\n : alpha(neutralTones(theme).surface, 0.95),\n color:\n theme.palette.mode === 'dark' ? modeInk(theme) : theme.palette.text.primary,\n border: `1px solid ${alpha(theme.palette.divider, 0.2)}`,\n overflow: 'auto',\n whiteSpace: 'pre' as const,\n ...blockSizeMap[customSize as keyof typeof blockSizeMap],\n ...(copyable && {\n paddingTop: blockSizeMap[customSize as keyof typeof blockSizeMap].padding.split(' ')[0],\n paddingRight: '60px',\n }),\n },\n highlight: {\n ...baseStyles,\n display: 'block',\n background: `linear-gradient(135deg, ${alpha(theme.palette.primary.main, 0.1)} 0%, ${alpha(theme.palette.secondary.main, 0.1)} 100%)`,\n color: theme.palette.text.primary,\n border: `1px solid ${alpha(theme.palette.primary.main, 0.2)}`,\n borderLeft: `4px solid ${theme.palette.primary.main}`,\n overflow: 'auto',\n whiteSpace: 'pre' as const,\n ...blockSizeMap[customSize as keyof typeof blockSizeMap],\n ...(copyable && {\n paddingTop: blockSizeMap[customSize as keyof typeof blockSizeMap].padding.split(' ')[0],\n paddingRight: '60px',\n }),\n },\n };\n\n return variantStyles[customVariant as keyof typeof variantStyles] || variantStyles.inline;\n});\n\nconst StyledCode = styled('code')({\n margin: 0,\n padding: 0,\n backgroundColor: 'transparent',\n border: 'none',\n fontFamily: 'inherit',\n fontSize: 'inherit',\n lineHeight: 'inherit',\n color: 'inherit',\n});\n\nconst CopyButton = styled(IconButton)(({ theme }) => ({\n position: 'absolute',\n top: theme.spacing(1),\n right: theme.spacing(1),\n width: 32,\n height: 32,\n backgroundColor:\n theme.palette.mode === 'dark'\n ? alpha(theme.palette.background.paper, 0.8)\n : theme.palette.background.paper,\n backdropFilter: theme.palette.mode === 'dark' ? 'blur(8px)' : 'none',\n border: `1px solid ${alpha(theme.palette.divider, 0.2)}`,\n boxShadow: theme.palette.mode === 'light' ? theme.shadows[1] : 'none',\n '&:hover': {\n backgroundColor:\n theme.palette.mode === 'dark'\n ? alpha(theme.palette.background.paper, 0.9)\n : neutralTones(theme).surface,\n transform: 'scale(1.05)',\n },\n '& .MuiSvgIcon-root': {\n fontSize: 16,\n },\n}));\n\nconst LanguageLabel = styled(Box)(({ theme }) => ({\n position: 'absolute',\n top: theme.spacing(1),\n left: theme.spacing(2),\n fontSize: '0.75rem',\n fontWeight: 500,\n color: alpha(theme.palette.text.primary, 0.6),\n backgroundColor:\n theme.palette.mode === 'dark'\n ? alpha(theme.palette.background.paper, 0.8)\n : theme.palette.background.paper,\n padding: '2px 8px',\n borderRadius: theme.shape.borderRadius / 2,\n backdropFilter: theme.palette.mode === 'dark' ? 'blur(8px)' : 'none',\n border: `1px solid ${alpha(theme.palette.divider, 0.2)}`,\n boxShadow: theme.palette.mode === 'light' ? theme.shadows[1] : 'none',\n}));\n\n// Renders each source line beside a gutter number. Keys combine the line number\n// with a slice of the content and its length, so editing one line in place does\n// not reshuffle the keys of the lines around it.\nconst renderNumberedLines = (source: string) =>\n source.split('\\n').map((line, index) => {\n const stableKey = `line-${index + 1}-${line.slice(0, 10).replace(/\\s+/g, '')}-${line.length}`;\n\n return (\n <div key={stableKey} style={{ display: 'flex' }}>\n <span\n style={{\n display: 'inline-block',\n minWidth: '3em',\n opacity: 0.5,\n userSelect: 'none',\n marginRight: '1em',\n textAlign: 'right',\n }}\n >\n {index + 1}\n </span>\n <span>{line}</span>\n </div>\n );\n });\n\n// Only block-ish variants get a language label or a copy affordance.\nconst resolveCodeFlags = (\n variant: CodeProps['variant'],\n copyable: boolean,\n language: CodeProps['language'],\n) => {\n const isBlock = variant === 'block' || variant === 'highlight';\n return {\n isBlock,\n showCopy: copyable && isBlock,\n showLanguage: Boolean(language) && isBlock,\n };\n};\n\n// Owns its own \"just copied\" flash. Keeping it here rather than inline in Code\n// means the copied/not-copied branches do not count against the main render, and\n// the flash re-renders only the button. Non-string children are still a no-op on\n// click, exactly as before.\nconst CodeCopyButton: React.FC<{ source: React.ReactNode }> = ({ source }) => {\n const [copied, setCopied] = useState(false);\n\n const handleCopy = async () => {\n if (typeof source !== 'string') return;\n try {\n await navigator.clipboard.writeText(source);\n setCopied(true);\n window.setTimeout(() => setCopied(false), 2000);\n } catch {\n // Silently fail if clipboard access is denied\n }\n };\n\n return (\n <Tooltip title={copied ? 'Copied!' : 'Copy code'}>\n <CopyButton onClick={handleCopy} size=\"small\" color={copied ? 'success' : 'default'}>\n {copied ? <Check /> : <ContentCopy />}\n </CopyButton>\n </Tooltip>\n );\n};\n\nexport const Code = React.forwardRef<HTMLElement, CodeProps>(\n (\n {\n variant = 'inline',\n language,\n copyable = false,\n lineNumbers = false,\n size = 'md',\n children,\n ...props\n },\n ref,\n ) => {\n const { isBlock, showCopy, showLanguage } = resolveCodeFlags(variant, copyable, language);\n\n // Process children for line numbers if needed\n const processedChildren = React.useMemo(() => {\n if (!lineNumbers || !isBlock || typeof children !== 'string') {\n return children;\n }\n\n return renderNumberedLines(children);\n }, [children, lineNumbers, isBlock]);\n\n return (\n <StyledCodeContainer\n ref={ref}\n component={variant === 'inline' ? 'span' : 'div'}\n customVariant={variant}\n customSize={size}\n copyable={showCopy}\n {...props}\n >\n {showLanguage && <LanguageLabel>{language}</LanguageLabel>}\n\n <StyledCode>{processedChildren}</StyledCode>\n\n {showCopy && <CodeCopyButton source={children} />}\n </StyledCodeContainer>\n );\n },\n);\n\nCode.displayName = 'Code';"],"mappings":";;;;;;AAAA,OAAO,WAAW;AAClB,OAAO,iBAAiB;AACxB,OAAO,SAAS;AAChB,OAAO,gBAAgB;AACvB,OAAO,aAAa;AACpB,SAAS,OAAO,cAAc;AAC9B,OAAO,SAAS,gBAAgB;AAmJ1B,SACE,KADF;AA9IN,IAAM,sBAAsB,OAAO,KAAK;AAAA,EACtC,mBAAmB,CAAC,SAClB,CAAC,CAAC,iBAAiB,cAAc,UAAU,EAAE,SAAS,IAAc;AACxE,CAAC,EAKE,CAAC,EAAE,OAAO,gBAAgB,UAAU,aAAa,MAAM,SAAS,MAAM;AAEvE,QAAM,UAAU;AAAA,IACd,IAAI,EAAE,UAAU,WAAW,SAAS,UAAU;AAAA,IAC9C,IAAI,EAAE,UAAU,aAAa,SAAS,UAAU;AAAA,IAChD,IAAI,EAAE,UAAU,YAAY,SAAS,UAAU;AAAA,IAC/C,IAAI,EAAE,UAAU,QAAQ,SAAS,WAAW;AAAA,EAC9C;AAEA,QAAM,eAAe;AAAA,IACnB,IAAI,EAAE,UAAU,WAAW,SAAS,WAAW;AAAA,IAC/C,IAAI,EAAE,UAAU,aAAa,SAAS,YAAY;AAAA,IAClD,IAAI,EAAE,UAAU,YAAY,SAAS,YAAY;AAAA,IACjD,IAAI,EAAE,UAAU,QAAQ,SAAS,YAAY;AAAA,EAC/C;AAEA,QAAM,aAAa;AAAA,IACjB,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,cAAc,MAAM,MAAM;AAAA,IAC1B,YAAY;AAAA,IACZ,UAAU;AAAA,EACZ;AAGA,QAAM,gBAAgB;AAAA,IACpB,QAAQ;AAAA,MACN,GAAG;AAAA,MACH,SAAS;AAAA,MACT,iBAAiB,MAAM,MAAM,QAAQ,QAAQ,MAAM,IAAI;AAAA,MACvD,OAAO,MAAM,QAAQ,QAAQ;AAAA,MAC7B,QAAQ,aAAa,MAAM,MAAM,QAAQ,QAAQ,MAAM,IAAI,CAAC;AAAA,MAC5D,GAAG,QAAQ,UAAkC;AAAA,IAC/C;AAAA,IACA,OAAO;AAAA,MACL,GAAG;AAAA,MACH,SAAS;AAAA,MACT,iBACE,MAAM,QAAQ,SAAS,SACnB,MAAM,aAAa,KAAK,EAAE,gBAAgB,IAAI,IAC9C,MAAM,aAAa,KAAK,EAAE,SAAS,IAAI;AAAA,MAC7C,OACE,MAAM,QAAQ,SAAS,SAAS,QAAQ,KAAK,IAAI,MAAM,QAAQ,KAAK;AAAA,MACtE,QAAQ,aAAa,MAAM,MAAM,QAAQ,SAAS,GAAG,CAAC;AAAA,MACtD,UAAU;AAAA,MACV,YAAY;AAAA,MACZ,GAAG,aAAa,UAAuC;AAAA,MACvD,GAAI,YAAY;AAAA,QACd,YAAY,aAAa,UAAuC,EAAE,QAAQ,MAAM,GAAG,EAAE,CAAC;AAAA,QACtF,cAAc;AAAA,MAChB;AAAA,IACF;AAAA,IACA,WAAW;AAAA,MACT,GAAG;AAAA,MACH,SAAS;AAAA,MACT,YAAY,2BAA2B,MAAM,MAAM,QAAQ,QAAQ,MAAM,GAAG,CAAC,QAAQ,MAAM,MAAM,QAAQ,UAAU,MAAM,GAAG,CAAC;AAAA,MAC7H,OAAO,MAAM,QAAQ,KAAK;AAAA,MAC1B,QAAQ,aAAa,MAAM,MAAM,QAAQ,QAAQ,MAAM,GAAG,CAAC;AAAA,MAC3D,YAAY,aAAa,MAAM,QAAQ,QAAQ,IAAI;AAAA,MACnD,UAAU;AAAA,MACV,YAAY;AAAA,MACZ,GAAG,aAAa,UAAuC;AAAA,MACvD,GAAI,YAAY;AAAA,QACd,YAAY,aAAa,UAAuC,EAAE,QAAQ,MAAM,GAAG,EAAE,CAAC;AAAA,QACtF,cAAc;AAAA,MAChB;AAAA,IACF;AAAA,EACF;AAEA,SAAO,cAAc,aAA2C,KAAK,cAAc;AACrF,CAAC;AAED,IAAM,aAAa,OAAO,MAAM,EAAE;AAAA,EAChC,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,iBAAiB;AAAA,EACjB,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,OAAO;AACT,CAAC;AAED,IAAM,aAAa,OAAO,UAAU,EAAE,CAAC,EAAE,MAAM,OAAO;AAAA,EACpD,UAAU;AAAA,EACV,KAAK,MAAM,QAAQ,CAAC;AAAA,EACpB,OAAO,MAAM,QAAQ,CAAC;AAAA,EACtB,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,iBACE,MAAM,QAAQ,SAAS,SACnB,MAAM,MAAM,QAAQ,WAAW,OAAO,GAAG,IACzC,MAAM,QAAQ,WAAW;AAAA,EAC/B,gBAAgB,MAAM,QAAQ,SAAS,SAAS,cAAc;AAAA,EAC9D,QAAQ,aAAa,MAAM,MAAM,QAAQ,SAAS,GAAG,CAAC;AAAA,EACtD,WAAW,MAAM,QAAQ,SAAS,UAAU,MAAM,QAAQ,CAAC,IAAI;AAAA,EAC/D,WAAW;AAAA,IACT,iBACE,MAAM,QAAQ,SAAS,SACnB,MAAM,MAAM,QAAQ,WAAW,OAAO,GAAG,IACzC,aAAa,KAAK,EAAE;AAAA,IAC1B,WAAW;AAAA,EACb;AAAA,EACA,sBAAsB;AAAA,IACpB,UAAU;AAAA,EACZ;AACF,EAAE;AAEF,IAAM,gBAAgB,OAAO,GAAG,EAAE,CAAC,EAAE,MAAM,OAAO;AAAA,EAChD,UAAU;AAAA,EACV,KAAK,MAAM,QAAQ,CAAC;AAAA,EACpB,MAAM,MAAM,QAAQ,CAAC;AAAA,EACrB,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,OAAO,MAAM,MAAM,QAAQ,KAAK,SAAS,GAAG;AAAA,EAC5C,iBACE,MAAM,QAAQ,SAAS,SACnB,MAAM,MAAM,QAAQ,WAAW,OAAO,GAAG,IACzC,MAAM,QAAQ,WAAW;AAAA,EAC/B,SAAS;AAAA,EACT,cAAc,MAAM,MAAM,eAAe;AAAA,EACzC,gBAAgB,MAAM,QAAQ,SAAS,SAAS,cAAc;AAAA,EAC9D,QAAQ,aAAa,MAAM,MAAM,QAAQ,SAAS,GAAG,CAAC;AAAA,EACtD,WAAW,MAAM,QAAQ,SAAS,UAAU,MAAM,QAAQ,CAAC,IAAI;AACjE,EAAE;AAKF,IAAM,sBAAsB,CAAC,WAC3B,OAAO,MAAM,IAAI,EAAE,IAAI,CAAC,MAAM,UAAU;AACtC,QAAM,YAAY,QAAQ,QAAQ,CAAC,IAAI,KAAK,MAAM,GAAG,EAAE,EAAE,QAAQ,QAAQ,EAAE,CAAC,IAAI,KAAK,MAAM;AAE3F,SACE,qBAAC,SAAoB,OAAO,EAAE,SAAS,OAAO,GAC5C;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,OAAO;AAAA,UACL,SAAS;AAAA,UACT,UAAU;AAAA,UACV,SAAS;AAAA,UACT,YAAY;AAAA,UACZ,aAAa;AAAA,UACb,WAAW;AAAA,QACb;AAAA,QAEC,kBAAQ;AAAA;AAAA,IACX;AAAA,IACA,oBAAC,UAAM,gBAAK;AAAA,OAbJ,SAcV;AAEJ,CAAC;AAGH,IAAM,mBAAmB,CACvB,SACA,UACA,aACG;AACH,QAAM,UAAU,YAAY,WAAW,YAAY;AACnD,SAAO;AAAA,IACL;AAAA,IACA,UAAU,YAAY;AAAA,IACtB,cAAc,QAAQ,QAAQ,KAAK;AAAA,EACrC;AACF;AAMA,IAAM,iBAAwD,CAAC,EAAE,OAAO,MAAM;AAC5E,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAS,KAAK;AAE1C,QAAM,aAAa,YAAY;AAC7B,QAAI,OAAO,WAAW,SAAU;AAChC,QAAI;AACF,YAAM,UAAU,UAAU,UAAU,MAAM;AAC1C,gBAAU,IAAI;AACd,aAAO,WAAW,MAAM,UAAU,KAAK,GAAG,GAAI;AAAA,IAChD,QAAQ;AAAA,IAER;AAAA,EACF;AAEA,SACE,oBAAC,WAAQ,OAAO,SAAS,YAAY,aACnC,8BAAC,cAAW,SAAS,YAAY,MAAK,SAAQ,OAAO,SAAS,YAAY,WACvE,mBAAS,oBAAC,SAAM,IAAK,oBAAC,eAAY,GACrC,GACF;AAEJ;AAEO,IAAM,OAAO,MAAM;AAAA,EACxB,CACE;AAAA,IACE,UAAU;AAAA,IACV;AAAA,IACA,WAAW;AAAA,IACX,cAAc;AAAA,IACd,OAAO;AAAA,IACP;AAAA,IACA,GAAG;AAAA,EACL,GACA,QACG;AACH,UAAM,EAAE,SAAS,UAAU,aAAa,IAAI,iBAAiB,SAAS,UAAU,QAAQ;AAGxF,UAAM,oBAAoB,MAAM,QAAQ,MAAM;AAC5C,UAAI,CAAC,eAAe,CAAC,WAAW,OAAO,aAAa,UAAU;AAC5D,eAAO;AAAA,MACT;AAEA,aAAO,oBAAoB,QAAQ;AAAA,IACrC,GAAG,CAAC,UAAU,aAAa,OAAO,CAAC;AAEnC,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,WAAW,YAAY,WAAW,SAAS;AAAA,QAC3C,eAAe;AAAA,QACf,YAAY;AAAA,QACZ,UAAU;AAAA,QACT,GAAG;AAAA,QAEH;AAAA,0BAAgB,oBAAC,iBAAe,oBAAS;AAAA,UAE1C,oBAAC,cAAY,6BAAkB;AAAA,UAE9B,YAAY,oBAAC,kBAAe,QAAQ,UAAU;AAAA;AAAA;AAAA,IACjD;AAAA,EAEJ;AACF;AAEA,KAAK,cAAc;","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';\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/** The value bubble and mark labels shrink at the two smallest sizes only. */\nconst LABEL_SCALE: Record<string, { fontSize: number; box: number; markFont: string }> = {\n xs: { fontSize: 10, box: 28, markFont: '0.65rem' },\n sm: { fontSize: 11, box: 30, markFont: '0.7rem' },\n};\nconst LABEL_DEFAULT = { fontSize: 12, box: 32, markFont: '0.75rem' };\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: scale.fontSize,\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: (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/data-display/MapPreview/MapDecorations.tsx"],"sourcesContent":["import LocationIcon from '@mui/icons-material/LocationOn';\nimport NavigationIcon from '@mui/icons-material/Navigation';\nimport PlaceIcon from '@mui/icons-material/Place';\nimport Box from '@mui/material/Box/index.js';\nimport Typography from '@mui/material/Typography/index.js';\nimport { alpha, useTheme } from '@mui/material/styles/index.js';\nimport type { FC } from 'react';\nimport React from 'react';\n\nimport { getScaleDistance } from './mapProjection';\nimport { BOUNCE_KEYFRAMES } from './mapSurface';\nimport { shadowInk } from '../../../tokens/ink';\n\n// Decorative only: these give the mock surface something to look like without\n// standing in for real map data.\nexport const MapRoads: FC = () => {\n const theme = useTheme();\n\n return (\n <Box sx={{ position: 'absolute', top: '20%', left: '15%', width: '70%', height: '60%', opacity: 0.2 }}>\n <svg width=\"100%\" height=\"100%\" style={{ position: 'absolute' }}>\n <path\n d=\"M 10,50 Q 30,30 50,50 T 90,50\"\n stroke={theme.palette.text.secondary}\n strokeWidth=\"2\"\n fill=\"none\"\n opacity=\"0.3\"\n />\n <path\n d=\"M 50,10 L 50,90\"\n stroke={theme.palette.text.secondary}\n strokeWidth=\"1.5\"\n fill=\"none\"\n opacity=\"0.3\"\n />\n <path\n d=\"M 20,30 L 80,70\"\n stroke={theme.palette.text.secondary}\n strokeWidth=\"1\"\n fill=\"none\"\n opacity=\"0.2\"\n />\n </svg>\n </Box>\n );\n};\n\nconst DecorativePin: FC<{ top: string; left: string }> = ({ top, left }) => {\n const theme = useTheme();\n\n return (\n <Box sx={{ position: 'absolute', top, left, opacity: 0.6 }}>\n <PlaceIcon sx={{ fontSize: 20, color: theme.palette.primary.main }} />\n </Box>\n );\n};\n\nexport const MapDecorativePins: FC = () => (\n <>\n <DecorativePin top=\"30%\" left=\"25%\" />\n <DecorativePin top=\"65%\" left=\"70%\" />\n </>\n);\n\nexport const MapCentreMarker: FC = () => {\n const theme = useTheme();\n\n return (\n <Box\n data-testid=\"map-marker\"\n sx={{\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -100%)',\n zIndex: 2,\n filter: `drop-shadow(0 2px 4px ${shadowInk(theme, 0.3)})`,\n }}\n >\n <LocationIcon\n sx={{\n fontSize: 36,\n color: theme.palette.error.main,\n animation: 'bounce 2s infinite',\n '@keyframes bounce': BOUNCE_KEYFRAMES,\n }}\n />\n </Box>\n );\n};\n\nexport const MapScaleBar: FC<{ zoom: number }> = ({ zoom }) => {\n const theme = useTheme();\n\n return (\n <Box\n sx={{\n position: 'absolute',\n bottom: theme.spacing(2),\n right: theme.spacing(2),\n display: 'flex',\n alignItems: 'center',\n gap: 0.5,\n padding: theme.spacing(0.5, 1),\n background: alpha(theme.palette.background.paper, 0.9),\n borderRadius: theme.shape.borderRadius,\n fontSize: '0.75rem',\n color: theme.palette.text.secondary,\n }}\n >\n <Box\n sx={{\n width: 40,\n height: 2,\n background: theme.palette.text.secondary,\n position: 'relative',\n // The end caps that make the bar read as a measurement.\n '&::before, &::after': {\n content: '\"\"',\n position: 'absolute',\n width: 2,\n height: 6,\n background: theme.palette.text.secondary,\n },\n '&::before': { left: 0, top: -2 },\n '&::after': { right: 0, top: -2 },\n }}\n />\n <Typography variant=\"caption\">{getScaleDistance(zoom)}</Typography>\n </Box>\n );\n};\n\nexport const MapCompass: FC = () => {\n const theme = useTheme();\n\n return (\n <Box\n sx={{\n position: 'absolute',\n top: theme.spacing(2),\n left: theme.spacing(2),\n width: 40,\n height: 40,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n background: alpha(theme.palette.background.paper, 0.9),\n borderRadius: '50%',\n boxShadow: theme.shadows[2],\n }}\n >\n <NavigationIcon\n sx={{ fontSize: 24, color: theme.palette.primary.main, transform: 'rotate(-45deg)' }}\n />\n </Box>\n );\n};\n"],"mappings":"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","names":[]}
@@ -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';\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: '1rem',\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.\nconst RequirementsList: React.FC<{\n copy: PasswordStrengthCopy;\n requirements: PasswordRequirements;\n checks: RequirementChecks;\n animated: boolean;\n}> = ({ copy, requirements, checks, animated }) => {\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 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};\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/data-display/Badge/Badge.styles.ts"],"sourcesContent":["import { alpha } from '@mui/material/styles/index.js';\nimport type { CSSObject, Theme } from '@mui/material/styles/index.js';\n\nimport {\n bounceAnimation,\n fadeInScaleAnimation,\n glowPulseAnimation,\n pulseAnimation,\n shimmerAnimation } from './Badge.animations';\nimport {\n BADGE_BORDER_WIDTH,\n BADGE_CONTENT_GAP,\n BADGE_FONT_WEIGHT,\n BADGE_LETTER_SPACING_EM,\n BADGE_SIZES,\n BADGE_TRANSITION_EASING,\n BADGE_TRANSITION_MS,\n BOUNCE,\n FADE_IN_SCALE,\n GLOW,\n HOVER_SCALE,\n PULSE,\n SHIMMER,\n badgeAnchor,\n} from './Badge.metrics';\nimport { badgeVariantStyles } from './Badge.variants';\nimport type { BadgeSize, BadgeVariant } from './Badge.types';\nimport { sheen } from '../../../tokens/ink';\nimport { accentFor } from '../../../tokens/scales';\nimport { px } from '../../../tokens/theme';\n\nexport type BadgePalette = {\n main: string;\n light?: string;\n dark?: string;\n contrastText?: string;\n};\nexport type BadgeSizeStyles = ReturnType<typeof getSizeStyles>;\n\nconst getColorFromTheme = (theme: Theme, color: string) => {\n const colorMap: Record<string, ReturnType<typeof theme.palette.augmentColor>> = {\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`, the house word the prop actually takes. Keyed on MUI's `error`\n // it matched nothing and fell through to the default.\n danger: theme.palette.error,\n neutral: accentFor(theme, 'neutral') };\n\n return colorMap[color] || theme.palette.primary;\n};\n\n// Derived from the shared metrics, not restated: the native `Badge` reads the\n// same table, so the two renderers cannot disagree on a chip.\nconst sizeMap: Record<\n BadgeSize,\n {\n minWidth: number;\n height: number;\n fontSize: string;\n padding: string;\n dotSize: number;\n iconSize: string;\n }\n> = Object.fromEntries(\n Object.entries(BADGE_SIZES).map(([size, metrics]) => [\n size,\n {\n minWidth: metrics.minWidth,\n height: metrics.height,\n fontSize: px(metrics.fontSize),\n padding: `0 ${metrics.paddingHorizontal}px`,\n dotSize: metrics.dotSize,\n iconSize: px(metrics.iconSize),\n },\n ]),\n) as Record<\n BadgeSize,\n { minWidth: number; height: number; fontSize: string; padding: string; dotSize: number; iconSize: string }\n>;\n\nexport const getSizeStyles = (size: BadgeSize) => sizeMap[size] || sizeMap.md;\n\nexport const getAnchorOrigin = (position: string) =>\n badgeAnchor((position || 'top-right') as Parameters<typeof badgeAnchor>[0]);\n\n// Exactly one variant applies, so a lookup replaces ten mutually exclusive\n// spreads inside the style object.\n// The glow effect needs the badge colour as bare RGB components for a CSS\n// variable, and the palette hands them over as hex or rgb().\nconst rgbValuesOf = (color: string): string => {\n if (color.startsWith('#')) {\n const hex = color.slice(1);\n const [r, g, b] = [0, 2, 4].map((offset) => parseInt(hex.slice(offset, offset + 2), 16));\n return `${r}, ${g}, ${b}`;\n }\n\n const match = color.match(/\\d+/g);\n if (match) return `${match[0]}, ${match[1]}, ${match[2]}`;\n return '255, 255, 255';\n};\n\n// Glow and pulse combine into a third, distinct treatment rather than stacking.\nconst badgeLightingStyles = ({\n glow,\n pulse,\n colorPalette }: {\n glow?: boolean;\n pulse?: boolean;\n colorPalette: BadgePalette;\n}): CSSObject => ({\n // Glow effect\n ...(glow &&\n !pulse && {\n boxShadow: `0 0 ${GLOW.blur}px ${GLOW.spread}px ${alpha(colorPalette.main, GLOW.alpha)}`,\n filter: `brightness(${GLOW.brightness})`,\n '&:hover': {\n boxShadow: `0 0 ${GLOW.hoverBlur}px ${GLOW.hoverSpread}px ${alpha(colorPalette.main, GLOW.hoverAlpha)}` } }),\n\n // Pulse animation\n ...(pulse &&\n !glow && {\n animation: `${pulseAnimation} ${PULSE.durationMs / 1000}s ease-in-out infinite` }),\n\n // Both glow and pulse\n ...(glow &&\n pulse && {\n animation: `${glowPulseAnimation} ${PULSE.durationMs / 1000}s ease-in-out infinite, ${pulseAnimation} ${PULSE.durationMs / 1000}s ease-in-out infinite`,\n filter: `brightness(${GLOW.brightness})`,\n }),\n\n});\n\nconst badgeAnimationStyles = ({\n animate,\n bounce,\n shimmer,\n glow: _glow,\n pulse: _pulse,\n customVariant,\n colorPalette,\n theme }: {\n animate?: boolean;\n bounce?: boolean;\n shimmer?: boolean;\n glow?: boolean;\n pulse?: boolean;\n customVariant?: BadgeVariant;\n colorPalette: BadgePalette;\n theme: Theme;\n}): CSSObject => ({\n ...(animate &&\n !bounce && {\n animation: `${fadeInScaleAnimation} ${FADE_IN_SCALE.durationMs / 1000}s cubic-bezier(0.68, -0.55, 0.265, 1.55)` }),\n\n // Bounce animation\n ...(bounce && {\n animation: `${bounceAnimation} ${BOUNCE.durationMs / 1000}s ease-in-out` }),\n\n // Shimmer effect\n ...(shimmer && {\n background:\n customVariant === 'gradient'\n ? `linear-gradient(135deg, ${colorPalette.main} 0%, ${colorPalette.dark || colorPalette.main} 100%)`\n : colorPalette.main,\n backgroundSize: shimmer ? '1000px 100%' : 'auto',\n position: 'relative',\n overflow: 'hidden',\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n background: `linear-gradient(\n 90deg,\n transparent,\n ${sheen(theme, SHIMMER.alpha)},\n transparent\n )`,\n animation: `${shimmerAnimation} ${SHIMMER.durationMs / 1000}s infinite` } }) });\n\n// The badge chip's own styling, lifted out so the styled() callback just\n// forwards its props.\ninterface BadgeStyleArgs {\n theme: Theme;\n customVariant?: BadgeVariant;\n customSize?: BadgeSize;\n customColor?: string;\n glow?: boolean;\n pulse?: boolean;\n animate?: boolean;\n shimmer?: boolean;\n bounce?: boolean;\n hasIcon?: boolean;\n}\n\nexport const badgeStyles = ({\n theme,\n customVariant,\n customSize = 'md',\n customColor = 'primary',\n glow,\n pulse,\n animate,\n shimmer,\n bounce,\n hasIcon }: BadgeStyleArgs): CSSObject => {\n const colorPalette = getColorFromTheme(theme, customColor);\n const sizeStyles = getSizeStyles(customSize);\n\n return {\n '--glow-color': rgbValuesOf(colorPalette.main),\n '& .MuiBadge-badge': {\n transition: `all ${BADGE_TRANSITION_MS / 1000}s ${BADGE_TRANSITION_EASING}`,\n fontWeight: BADGE_FONT_WEIGHT,\n border: `${BADGE_BORDER_WIDTH}px solid ${theme.palette.background.paper}`,\n letterSpacing: `${BADGE_LETTER_SPACING_EM}em`,\n textTransform:\n customVariant === 'gradient' || customVariant === 'glass' ? 'uppercase' : 'none',\n willChange: 'transform, opacity',\n backfaceVisibility: 'hidden',\n\n // Outline variant\n\n // Destructive variant\n\n // Warning variant\n\n // Adjust padding when icon is present\n ...badgeVariantStyles(theme, colorPalette, sizeStyles, customVariant),\n ...(hasIcon && {\n paddingLeft: sizeStyles.padding.split(' ')[1],\n display: 'inline-flex',\n alignItems: 'center',\n gap: `${BADGE_CONTENT_GAP}px`,\n }),\n\n // Animation on mount\n ...badgeAnimationStyles({\n animate,\n bounce,\n shimmer,\n glow,\n pulse,\n customVariant,\n colorPalette,\n theme }),\n ...badgeLightingStyles({ glow, pulse, colorPalette }),\n\n '&:not(.MuiBadge-dot):hover': {\n transform: `scale(${HOVER_SCALE})`,\n zIndex: 1 } } };\n}\n"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/data-display/DataViews/data-views-search.tsx"],"sourcesContent":["\"use client\";\n\n/**\n * THE INLINE BAR'S SEARCH — the one control on the toolbar that cannot be\n * guessed from an icon's position, which is why it is the LAST thing the\n * degradation ladder takes away. See `data-views-overflow.ts`.\n */\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport SearchIcon from \"@mui/icons-material/Search\";\nimport IconButton from \"@mui/material/IconButton/index.js\";\nimport InputAdornment from \"@mui/material/InputAdornment/index.js\";\nimport TextField from \"@mui/material/TextField/index.js\";\nimport { useCallback, useEffect, useRef, useState } from \"react\";\n\nimport { Box } from \"../../../mui/Box\";\nimport { fieldRadiusPx } from \"../../../tokens/field-radius\";\nimport { useDataViewsCopy } from \"./data-views-copy-context\";\nimport { fieldHeight, fieldTextFieldStyles } from \"../../../tokens/field-height\";\nimport { fieldEdge } from \"../../../tokens/field-edge\";\n\n/** How long the box waits after the last keystroke before it queries. */\nconst SEARCH_DEBOUNCE_MS = 350;\n\n/**\n * How wide the keyword box is allowed to be.\n *\n * The 200px floor is right while the box shares the row: a search you cannot\n * read six characters in is not a search. It is WRONG once the box has been\n * expanded out of its collapsed state on a narrow screen, where the cluster was\n * sized for a magnifier — the floor cannot be met there, so the row scrolled\n * sideways instead (154px of overhang at 320px). In that mode the box shrinks,\n * and if what is left would still be unreadable the bar hands it the whole\n * cluster instead (`searchTakeover`).\n */\nfunction boxWidth(fill: boolean): { flex: number; minWidth: number; maxWidth: number | \"none\" } {\n return { flex: 1, minWidth: fill ? 0 : 200, maxWidth: fill ? \"none\" : 384 };\n}\n\n/**\n * The box's own draft, and the two ways it reaches `onChange`.\n *\n * Extracted from {@link InlineKeyword} so the commit policy reads in one place\n * rather than split across a render body — and because it is where both halves\n * of a defect that lost searches outright had to be fixed.\n *\n * ## The debounce must not be keyed on the handler's identity\n *\n * Every caller builds `onChange` inline — the grid's own bar passes\n * `(value) => c.patch({ search: value })`, rebuilt on each render. Keying the\n * effect on it re-armed the timer on every render, and a busy admin page\n * re-renders more often than every 350ms as its queries land, so the timer\n * never survived to fire and the term was NEVER committed: measured in one\n * adopter as a dead `?q=` on a server-mode grid, where a 15-second loop pressed\n * Enter over and over and the URL never moved. So the handler is read through a\n * ref and the effect depends on `[draft, value]` alone.\n *\n * ## An immediate commit must read the BOX, not the draft\n *\n * A keystroke can land before React has processed the edit before it — a fast\n * typist, and every Playwright `fill()` followed by `press('Enter')`. `draft` is\n * then still the value from before the edit, and comparing THAT to `value` said\n * \"nothing changed\" and dropped the keystroke, leaving the term on screen with\n * an unfiltered list behind it. `commitNow` takes what the caller read off the\n * element and syncs the draft to it, which also keeps the box from being reset\n * to a stale draft by the next render when a host ignores the commit.\n */\nfunction useKeywordDraft(\n value: string,\n onChange: (next: string) => void,\n): { draft: string; setDraft: (next: string) => void; commitNow: (typed: string) => void } {\n const [draft, setDraft] = useState(value);\n const prev = useRef(value);\n // An external change (a saved view, the URL, \"Limpar\") wins over the draft.\n if (prev.current !== value) {\n prev.current = value;\n if (draft !== value) setDraft(value);\n }\n const commit = useRef(onChange);\n useEffect(() => {\n commit.current = onChange;\n });\n useEffect(() => {\n if (draft === value) return undefined;\n const timer = setTimeout(() => commit.current(draft), SEARCH_DEBOUNCE_MS);\n return () => clearTimeout(timer);\n }, [draft, value]);\n const commitNow = useCallback(\n (typed: string) => {\n setDraft(typed);\n if (typed !== value) commit.current(typed);\n },\n [value],\n );\n return { draft, setDraft, commitNow };\n}\n\n/**\n * The bar's keyword box.\n *\n * DEBOUNCED rather than committed on Enter/blur. In server mode every commit is\n * a round trip, and a box that only fires on blur makes the operator press a\n * key they were not told about to see any result at all — they type, nothing\n * happens, and the list looks broken. 350ms is long enough that a word costs\n * one query, short enough to feel like live search.\n *\n * `Escape` clears; the X clears without leaving the box. Both exist because\n * clearing by selecting-and-deleting is three gestures for the most common\n * thing anyone does to a search box.\n */\nexport function InlineKeyword({\n value,\n onChange,\n testId,\n autoFocus,\n onEscape,\n fill = false,\n}: {\n value: string;\n onChange: (value: string) => void;\n testId?: string;\n autoFocus?: boolean;\n /** Called on Escape with the box already empty — the collapsed bar closes it. */\n onEscape?: () => void;\n /** Take whatever width there is, with no minimum — see {@link boxWidth}. */\n fill?: boolean;\n}): React.JSX.Element {\n const copy = useDataViewsCopy();\n const { draft, setDraft, commitNow } = useKeywordDraft(value, onChange);\n\n return (\n <TextField\n size=\"small\"\n value={draft}\n autoFocus={autoFocus}\n onChange={(event) => setDraft(event.target.value)}\n onKeyDown={(event) => {\n if (event.key === \"Escape\") {\n event.preventDefault();\n if (draft === \"\") onEscape?.();\n setDraft(\"\");\n return;\n }\n // Enter still commits IMMEDIATELY, ahead of the debounce — someone who\n // presses it has decided, and waiting out the timer reads as a stall.\n if (event.key !== \"Enter\") return;\n event.preventDefault();\n // The BOX, not `draft` — see {@link useKeywordDraft}.\n commitNow(event.target instanceof HTMLInputElement ? event.target.value : draft);\n }}\n placeholder={copy.search.placeholder}\n inputProps={{ \"aria-label\": copy.search.allColumnsLabel, \"data-testid\": testId }}\n InputProps={{\n startAdornment: (\n <InputAdornment position=\"start\">\n <SearchIcon sx={{ fontSize: 16, color: \"text.secondary\" }} />\n </InputAdornment>\n ),\n endAdornment: draft ? (\n <InputAdornment position=\"end\">\n <IconButton\n size=\"small\"\n aria-label={copy.search.clear}\n data-testid={testId ? `${testId}-clear` : undefined}\n onClick={() => setDraft(\"\")}\n sx={{ p: 0.25 }}\n >\n <CloseIcon sx={{ fontSize: 14 }} />\n </IconButton>\n </InputAdornment>\n ) : undefined,\n }}\n // Takes the free space and gives it up first — step 3 of the ladder,\n // which needs no flag because flex does it (see `computeSplit`). The\n // corner is the theme's field radius, so the box matches the pills beside it.\n sx={(theme) => ({ ...boxWidth(fill), ...fieldTextFieldStyles(theme) })}\n />\n );\n}\n\n/**\n * Step 4 of the ladder: the search as a magnifier.\n *\n * Carries a dot when a search is APPLIED. Collapsing a control that is\n * currently filtering the list, with nothing saying so, is how an operator ends\n * up staring at 3 rows of 214 and reading it as missing data.\n */\nexport function CollapsedSearch({\n active,\n onOpen,\n testId,\n}: {\n active: boolean;\n onOpen: () => void;\n testId?: string;\n}): React.JSX.Element {\n const copy = useDataViewsCopy();\n return (\n <IconButton\n size=\"small\"\n onClick={onOpen}\n aria-label={copy.search.open}\n aria-expanded={false}\n data-testid={testId ? `${testId}-collapsed` : undefined}\n sx={{\n position: \"relative\",\n width: fieldHeight,\n height: fieldHeight,\n border: 1,\n borderRadius: fieldRadiusPx,\n borderColor: (theme) => (active ? theme.palette.primary.main : fieldEdge(theme)),\n color: active ? \"primary.main\" : \"text.secondary\",\n bgcolor: active ? \"action.selected\" : \"background.paper\",\n }}\n >\n <SearchIcon sx={{ fontSize: 18 }} />\n {active && (\n <Box\n component=\"span\"\n sx={{\n position: \"absolute\",\n top: 2,\n right: 2,\n width: 6,\n height: 6,\n borderRadius: \"50%\",\n bgcolor: \"primary.main\",\n }}\n />\n )}\n </IconButton>\n );\n}\n\n"],"mappings":"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","names":["default"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/form/Button/Button.tsx"],"sourcesContent":["import MuiButton from '@mui/material/Button/index.js';\nimport CircularProgress from '@mui/material/CircularProgress/index.js';\nimport { styled } from '@mui/material/styles/index.js';\nimport * as React from 'react';\n\nimport { resolveButtonProps } from './Button.helpers';\nimport { BUTTON_ICON_GLYPH_SIZE } from './Button.metrics';\nimport { childTestId, resolveTestId, withoutTestIdProps } from '../../../platform/test-id';\nimport { fieldRadius } from '../../../tokens/field-radius';\nimport {\n buttonEmphasisStyles,\n buttonVariantStyles,\n getColorFromTheme,\n iconAlignmentStyles,\n buttonSize,\n} from './Button.styles';\nimport type { ButtonComponent, ButtonProps } from './Button.types';\n\nconst StyledButton = styled(MuiButton, {\n shouldForwardProp: (prop) =>\n ['glow', 'pulse', 'loading', 'customVariant', 'customColor', 'ripple'].indexOf(\n prop as string,\n ) === -1,\n})<{\n customVariant?: string;\n customColor?: string;\n glow?: boolean;\n pulse?: boolean;\n ripple?: boolean;\n}>(({ theme, customVariant, customColor = 'primary', glow, pulse }) => {\n const colorPalette = getColorFromTheme(theme, customColor);\n\n return {\n textTransform: 'none',\n fontWeight: 500,\n borderRadius: fieldRadius(theme),\n transition: 'all 0.3s ease',\n position: 'relative',\n overflow: 'hidden',\n ...iconAlignmentStyles(theme),\n ...buttonVariantStyles(theme, customVariant, colorPalette, customColor),\n ...buttonEmphasisStyles(colorPalette, glow, pulse),\n };\n});\n\n/** Our six variants collapse onto MUI's three; only outline and text differ. */\nconst muiVariantFor = (variant?: string): 'outlined' | 'text' | 'contained' => {\n if (variant === 'outline') return 'outlined';\n return variant === 'text' ? 'text' : 'contained';\n};\n\ntype MuiButtonColor = 'inherit' | 'primary' | 'secondary' | 'success' | 'warning' | 'info' | 'error';\n\n/**\n * Our five sizes collapse onto MUI's three, so the rendered class NAMES the\n * size the button actually is (12-74).\n *\n * It was never forwarded, so every button — `xs` through `xl` — carried\n * `MuiButton-sizeMedium`. The pixels were right (they come from `buttonSize`'s\n * `sx`, which still decides them) but the DOM said \"medium\" about a large\n * button: a test could never assert the size, and devtools lied to whoever\n * opened them.\n *\n * MUI's own size styles are padding, font-size and the icon glyph. The first\n * two are overridden by that same `sx`; the third is pinned by\n * `BUTTON_ICON_GLYPH_SIZE`, so forwarding this moves nothing on screen.\n */\nconst muiSizeFor = (size: NonNullable<ButtonProps['size']>): 'small' | 'medium' | 'large' => {\n if (size === 'xs' || size === 'sm') return 'small';\n return size === 'md' ? 'medium' : 'large';\n};\n\n/** `danger` and `neutral` are ours; the rest are MUI's own names already. */\nconst muiColorFor = (color: NonNullable<ButtonProps['color']>): MuiButtonColor => {\n if (color === 'danger') return 'error';\n return color === 'neutral' ? 'inherit' : color;\n};\n\n/**\n * The icon slot's font-size, pinned on the wrapper this component already owns\n * (12-74).\n *\n * MUI writes 18/20/22 there off its own `size`, and that prop is now forwarded,\n * so a glyph that takes its size by INHERITANCE would start moving with the\n * button — measured at 18px on `xs` and 22px on `lg` against the 20px every\n * size has always drawn. See {@link BUTTON_ICON_GLYPH_SIZE} for what that does\n * and does not reach.\n *\n * Written as an inline style rather than a selector in `sx` because MUI's own\n * rule sits on the start/end-icon span itself. Beating it from the root means\n * winning a specificity contest at a distance — true in a browser, but not\n * something a test can hold, since jsdom resolves `getComputedStyle` by\n * document order and never by specificity. Inline wins both, and it sits on the\n * one element we already render for this glyph.\n *\n * A number, not `px()`: React writes `font-size: 20px`, which is exactly the\n * declaration MUI was emitting before.\n */\nconst ICON_GLYPH_STYLE = { fontSize: BUTTON_ICON_GLYPH_SIZE } as const;\n\n/**\n * An icon and nothing else — the shape that should render square.\n *\n * A separate predicate rather than three clauses inline: the component function\n * is already at the complexity ceiling, and \"what counts as an icon button\" is\n * a rule worth naming anyway. `loading` disqualifies, because a spinner\n * replaces the children and would otherwise make every loading button square.\n */\nfunction isIconOnly({\n loading,\n icon,\n children,\n}: Pick<ButtonProps, 'loading' | 'icon' | 'children'>): boolean {\n return !loading && icon != null && children == null;\n}\n\n/**\n * The design system's button.\n *\n * Typed as an `OverridableComponent` (12-70) rather than a plain `forwardRef`,\n * which is how MUI models a component that can render as something else. The\n * practical difference is one line at a call site:\n *\n * ```tsx\n * <Button component={Link} to=\"/account/compras/42\">Acompanhar pedido</Button>\n * ```\n *\n * `to` is typed here because the generic carries the target component's own\n * props through. A plain `component?: React.ElementType` — what this was —\n * accepts the component and throws its props away, so `to` typechecked\n * nowhere even though it arrived intact at runtime. A host wanting a router\n * navigation painted as a button had to choose between a type assertion and\n * losing the `href`; both were shipped, and both are the reason this ticket\n * exists.\n */\nconst ButtonRoot = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (rawProps, ref) => {\n const {\n variant,\n color,\n size,\n loading,\n icon,\n iconPosition,\n glow,\n pulse,\n ripple,\n active,\n children,\n disabled,\n onClick,\n onFocus,\n onBlur,\n ...others\n } = resolveButtonProps(rawProps);\n // Every spelling of the test id the shared contract allows, mapped to the\n // one the DOM reads; the native Button does the same in reverse.\n const ownTestId = resolveTestId(others, 'button');\n const testId = (suffix: string) => childTestId(others, suffix, 'button');\n const props = withoutTestIdProps(others);\n\n // Wrap icon with testId if provided\n const iconWithTestId =\n !loading && icon ? (\n <span data-testid={testId('icon')} style={ICON_GLYPH_STYLE}>\n {icon}\n </span>\n ) : undefined;\n\n // Only an icon, so the button is a square rather than a 64px slab.\n const iconOnly = isIconOnly({ loading, icon, children });\n\n const mergedClassName =\n [active ? 'active' : '', props.className].filter(Boolean).join(' ') || undefined;\n\n return (\n <StyledButton\n ref={ref}\n variant={muiVariantFor(variant)}\n color={muiColorFor(color)}\n size={muiSizeFor(size)}\n customVariant={variant}\n customColor={color}\n glow={glow}\n pulse={pulse}\n ripple={ripple}\n disabled={disabled || loading}\n disableRipple={!ripple}\n startIcon={iconPosition === 'left' ? iconWithTestId : undefined}\n endIcon={iconPosition === 'right' ? iconWithTestId : undefined}\n onClick={onClick}\n onFocus={onFocus}\n onBlur={onBlur}\n sx={buttonSize(size, iconOnly)}\n data-testid={ownTestId}\n {...props}\n className={mergedClassName}\n >\n {loading ? (\n <CircularProgress size={16} color=\"inherit\" data-testid={testId('loading')} />\n ) : (\n children\n )}\n </StyledButton>\n );\n },\n);\n\nButtonRoot.displayName = 'Button';\n\n/**\n * The cast is what publishes the generic — `forwardRef` cannot express\n * \"renders as C, and takes C's props\" on its own, so MUI's own components do\n * exactly this. `ButtonRoot` above is the implementation and is not exported.\n */\nexport const Button = ButtonRoot as ButtonComponent;\n"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/data-display/Carousel/Carousel.parts.tsx"],"sourcesContent":["import ArrowBackIosIcon from '@mui/icons-material/ArrowBackIos';\nimport ArrowForwardIosIcon from '@mui/icons-material/ArrowForwardIos';\nimport FiberManualRecordIcon from '@mui/icons-material/FiberManualRecord';\nimport Box from '@mui/material/Box/index.js';\nimport IconButton from '@mui/material/IconButton/index.js';\nimport Typography from '@mui/material/Typography/index.js';\nimport { alpha, useTheme } from '@mui/material/styles/index.js';\nimport type { CSSObject, Theme } from '@mui/material/styles/index.js';\nimport React from 'react';\n\nimport { withDefaults } from '../../../utils/withDefaults';\n\nimport { neutralTones } from '../../../tokens/ink';\nimport { accentFor, muiSize } from '../../../tokens/scales';\n\nimport type {\n CarouselArrowsProps,\n CarouselIndicatorsProps,\n CarouselItem,\n CarouselThumbnailsProps,\n} from './Carousel.types';\n\ntype IndicatorPosition = NonNullable<CarouselIndicatorsProps['position']>;\ntype IndicatorVariant = NonNullable<CarouselIndicatorsProps['variant']>;\ntype Color = NonNullable<CarouselIndicatorsProps['color']>;\n\n/** Fires `onSelect` for the keys a native button would treat as activation. */\nconst activateOnKey = (onSelect: () => void) => (e: React.KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n onSelect();\n }\n};\n\nconst INDICATOR_POSITIONS = (theme: Theme): Record<IndicatorPosition, CSSObject> => ({\n top: { top: theme.spacing(2), left: '50%', transform: 'translateX(-50%)' },\n bottom: { bottom: theme.spacing(2), left: '50%', transform: 'translateX(-50%)' },\n left: {\n left: theme.spacing(2),\n top: '50%',\n transform: 'translateY(-50%)',\n flexDirection: 'column',\n },\n right: {\n right: theme.spacing(2),\n top: '50%',\n transform: 'translateY(-50%)',\n flexDirection: 'column',\n },\n});\n\ninterface IndicatorProps {\n index: number;\n isActive: boolean;\n color: Color;\n onSelect: () => void;\n}\n\n/** Attributes every indicator variant carries, whatever it draws. */\nconst indicatorAttrs = (index: number, isActive: boolean) => ({\n 'aria-label': `Go to slide ${index + 1}`,\n 'data-testid': `carousel-indicator-${index}`,\n 'data-active': isActive,\n});\n\nconst LineIndicator: React.FC<IndicatorProps> = ({ index, isActive, color, onSelect }) => {\n const theme = useTheme();\n\n return (\n <Box\n role=\"button\"\n tabIndex={0}\n {...indicatorAttrs(index, isActive)}\n sx={{\n width: isActive ? 30 : 20,\n height: 3,\n backgroundColor: isActive\n ? accentFor(theme, color).main\n : alpha(accentFor(theme, color).main, 0.3),\n borderRadius: 1.5,\n transition: theme.transitions.create(['width', 'background-color']),\n cursor: 'pointer',\n }}\n onClick={onSelect}\n onKeyDown={activateOnKey(onSelect)}\n />\n );\n};\n\nconst NumberIndicator: React.FC<IndicatorProps> = ({ index, isActive, color, onSelect }) => {\n const theme = useTheme();\n\n return (\n <Box\n role=\"button\"\n tabIndex={0}\n {...indicatorAttrs(index, isActive)}\n sx={{\n width: 24,\n height: 24,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: '50%',\n backgroundColor: isActive ? accentFor(theme, color).main : 'transparent',\n color: isActive ? accentFor(theme, color).contrastText : accentFor(theme, color).main,\n border: `1px solid ${accentFor(theme, color).main}`,\n fontSize: '0.75rem',\n fontWeight: isActive ? 'bold' : 'normal',\n cursor: 'pointer',\n transition: theme.transitions.create(['all']),\n }}\n onClick={onSelect}\n onKeyDown={activateOnKey(onSelect)}\n >\n {index + 1}\n </Box>\n );\n};\n\nconst DotIndicator: React.FC<IndicatorProps> = ({ index, isActive, color, onSelect }) => {\n const theme = useTheme();\n\n return (\n <IconButton\n size=\"small\"\n {...indicatorAttrs(index, isActive)}\n onClick={onSelect}\n sx={{\n p: 0.5,\n color: isActive ? accentFor(theme, color).main : alpha(accentFor(theme, color).main, 0.3),\n transform: isActive ? 'scale(1.2)' : 'scale(1)',\n transition: theme.transitions.create(['transform', 'color']),\n }}\n >\n <FiberManualRecordIcon fontSize=\"small\" />\n </IconButton>\n );\n};\n\nconst INDICATORS: Record<IndicatorVariant, React.FC<IndicatorProps>> = {\n lines: LineIndicator,\n numbers: NumberIndicator,\n dots: DotIndicator,\n};\n\nconst INDICATORS_DEFAULTS = {\n position: 'bottom',\n color: 'primary',\n variant: 'dots',\n} satisfies Partial<CarouselIndicatorsProps>;\n\nexport const CarouselIndicators: React.FC<CarouselIndicatorsProps> = (props) => {\n const { count, activeIndex, onSelect, position, color, variant, className, style } = withDefaults(\n props,\n INDICATORS_DEFAULTS,\n ) as CarouselIndicatorsProps & Required<Pick<CarouselIndicatorsProps, keyof typeof INDICATORS_DEFAULTS>>;\n\n const theme = useTheme();\n const Indicator = INDICATORS[variant] ?? DotIndicator;\n\n return (\n <Box\n className={className}\n data-testid=\"carousel-indicators\"\n sx={{\n position: 'absolute',\n display: 'flex',\n gap: 1,\n zIndex: 2,\n ...(INDICATOR_POSITIONS(theme)[position] ?? INDICATOR_POSITIONS(theme).bottom),\n ...style,\n }}\n >\n {Array.from({ length: count }).map((_, index) => (\n <Indicator\n key={index}\n index={index}\n isActive={index === activeIndex}\n color={color}\n onSelect={() => onSelect(index)}\n />\n ))}\n </Box>\n );\n};\n\nconst ARROWS_DEFAULTS = {\n position: 'overlay',\n disabled: false,\n disablePrev: false,\n disableNext: false,\n color: 'primary',\n size: 'md',\n} satisfies Partial<CarouselArrowsProps>;\n\n/**\n * All three positions place the arrow the same way; only `overlay` fades it back\n * until hovered, and only `outside` sits it clear of the frame.\n */\nconst arrowSx = (theme: Theme, color: Color, isOverlay: boolean): CSSObject => ({\n position: 'absolute',\n top: '50%',\n transform: 'translateY(-50%)',\n zIndex: 3,\n backgroundColor: alpha(theme.palette.background.paper, 0.8),\n color: accentFor(theme, color).main,\n '&:disabled': { opacity: 0.3 },\n ...(isOverlay\n ? {\n opacity: 0.7,\n '&:hover': { backgroundColor: theme.palette.background.paper, opacity: 1 },\n }\n : { '&:hover': { backgroundColor: theme.palette.background.paper } }),\n});\n\nexport const CarouselArrows: React.FC<CarouselArrowsProps> = (props) => {\n const {\n copy, onPrev, onNext, position, disabled, disablePrev, disableNext, color, size, className,\n style,\n } = withDefaults(props, ARROWS_DEFAULTS) as CarouselArrowsProps &\n Required<Pick<CarouselArrowsProps, keyof typeof ARROWS_DEFAULTS>>;\n\n const theme = useTheme();\n const sx = arrowSx(theme, color, position === 'overlay');\n const offset = position === 'outside' ? -40 : 8;\n\n return (\n <Box data-testid=\"carousel-navigation\">\n <IconButton\n onClick={onPrev}\n disabled={disabled || disablePrev}\n size={muiSize(size)}\n className={className}\n aria-label={copy.previous}\n data-testid=\"carousel-prev-button\"\n sx={{ ...sx, left: offset, ...style }}\n >\n <ArrowBackIosIcon />\n </IconButton>\n\n <IconButton\n onClick={onNext}\n disabled={disabled || disableNext}\n aria-label={copy.next}\n size={muiSize(size)}\n className={className}\n data-testid=\"carousel-next-button\"\n sx={{ ...sx, right: offset, ...style }}\n >\n <ArrowForwardIosIcon />\n </IconButton>\n </Box>\n );\n};\n\nconst THUMBNAIL_SIZES = { xs: 40, sm: 60, md: 80, lg: 100, xl: 120 } as const;\nconst DEFAULT_THUMBNAIL_SIZE = 60;\n\nconst Thumbnail: React.FC<{\n item: CarouselItem;\n index: number;\n isActive: boolean;\n side: number;\n onSelect: () => void;\n}> = ({ item, index, isActive, side, onSelect }) => {\n const theme = useTheme();\n\n return (\n <Box\n onClick={onSelect}\n data-testid={`carousel-thumbnail-${index}`}\n data-active={isActive}\n sx={{\n width: side,\n height: side,\n border: `2px solid ${isActive ? theme.palette.primary.main : 'transparent'}`,\n borderRadius: 1,\n overflow: 'hidden',\n cursor: 'pointer',\n opacity: isActive ? 1 : 0.6,\n transition: theme.transitions.create(['opacity', 'border-color']),\n '&:hover': { opacity: 1 },\n }}\n >\n {item.image ? (\n <Box\n component=\"img\"\n src={item.image}\n alt={item.alt || item.title}\n sx={{ width: '100%', height: '100%', objectFit: 'cover' }}\n />\n ) : (\n // No image to show, so the slide's number stands in for it.\n <Box\n sx={{\n width: '100%',\n height: '100%',\n backgroundColor: neutralTones(theme).track,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n <Typography variant=\"caption\">{index + 1}</Typography>\n </Box>\n )}\n </Box>\n );\n};\n\nexport const CarouselThumbnails: React.FC<CarouselThumbnailsProps> = ({\n items,\n activeIndex,\n onSelect,\n size = 'sm',\n className,\n style,\n}) => {\n const theme = useTheme();\n const side = THUMBNAIL_SIZES[size as keyof typeof THUMBNAIL_SIZES] ?? DEFAULT_THUMBNAIL_SIZE;\n\n return (\n <Box\n className={className}\n data-testid=\"carousel-thumbnails\"\n sx={{\n position: 'absolute',\n // Hung below the frame, clear of its own height plus a gap.\n bottom: -side - 16,\n left: '50%',\n transform: 'translateX(-50%)',\n display: 'flex',\n gap: 1,\n p: 1,\n backgroundColor: alpha(theme.palette.background.paper, 0.9),\n borderRadius: 1,\n ...style,\n }}\n >\n {items.map((item, index) => (\n <Thumbnail\n key={item.id}\n item={item}\n index={index}\n isActive={index === activeIndex}\n side={side}\n onSelect={() => onSelect(index)}\n />\n ))}\n </Box>\n );\n};\n"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/layout/SettingsLayout/SettingsSectionHeader.tsx"],"sourcesContent":["'use client';\n\nimport ChevronLeftIcon from '@mui/icons-material/ChevronLeft';\nimport Box from '@mui/material/Box/index.js';\nimport React from 'react';\n\nimport { displayAcrossRail, TOUCH_TARGET } from './SettingsLayout.styles';\nimport type { SettingsLayoutProps, SettingsRailBreakpoint } from './SettingsLayout.types';\n\n/** One line that must not wrap, whatever the section is called. */\nconst CLIP = {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n} as const;\n\n/**\n * The name of where you are, and optionally what it holds.\n *\n * `minWidth: 0` on the wrapper is what lets the clipping work at all: without\n * it a flex item refuses to shrink below its content, so a long section name\n * pushes the back button off the row instead of ellipsising.\n */\nfunction HeaderText({\n title,\n description,\n}: {\n title: string;\n description?: string;\n}): React.JSX.Element {\n return (\n <Box sx={{ minWidth: 0 }}>\n <Box\n component=\"h2\"\n sx={{ m: 0, font: 'inherit', fontSize: '1rem', fontWeight: 600, lineHeight: 1.3, ...CLIP }}\n >\n {title}\n </Box>\n {description !== undefined && description !== '' && (\n <Box\n component=\"p\"\n sx={{\n m: 0,\n font: 'inherit',\n fontSize: '0.8125rem',\n color: 'text.secondary',\n lineHeight: 1.35,\n ...CLIP,\n }}\n >\n {description}\n </Box>\n )}\n </Box>\n );\n}\n\n/**\n * The narrow-width panel header: a back control, and the name of where you are.\n *\n * ## Why this replaced a \"‹ Voltar\" link\n *\n * The bare link spent a whole row saying only that a back existed. Under it came\n * the sibling chips and under those the section's own Salvar, so three stacked\n * rows went by before the first field — on the width with the least room for\n * them. Worse, none of the three said WHICH section was open: the chips mark the\n * active one, but a chip strip scrolls, so the answer could be off-screen.\n *\n * Folding the control into a square button beside the title buys back a row and\n * makes the header say where you are, which is what a header is for.\n *\n * ## Narrow only, and mounted at every width\n *\n * `displayAcrossRail` hides this above the breakpoint rather than unmounting it,\n * for the reason the whole component works that way: navigation that exists at\n * one width and not the other is navigation nothing can assert about. Above the\n * breakpoint the rail is on screen with the open row marked, so a back control\n * would point at a list already visible.\n *\n * The button is `TOUCH_TARGET` square because this is the phone shape, and it\n * keeps the accessible name — the visible text is the section, not the verb, so\n * a screen reader still hears \"Voltar\" rather than being handed an icon.\n */\nexport function SettingsSectionHeader({\n href,\n backLabel,\n title,\n description,\n breakpoint,\n linkComponent,\n testIdPrefix,\n}: {\n href: string;\n backLabel: string;\n title: string;\n description?: string;\n breakpoint: SettingsRailBreakpoint;\n linkComponent: NonNullable<SettingsLayoutProps['linkComponent']>;\n testIdPrefix: string;\n}): React.JSX.Element {\n return (\n <Box\n data-testid={`${testIdPrefix}-section-header`}\n sx={(theme) => ({\n ...displayAcrossRail(theme, breakpoint, 'flex', 'none'),\n alignItems: 'center',\n gap: 1.5,\n minWidth: 0,\n // ITS OWN SURFACE, not the panel's.\n //\n // The header, the chip strip and the first card were all the same\n // white, so nothing said where \"you are here\" ended and the screen\n // began — the eye had only the type sizes to go on. A tint plus the\n // rule below turns three stacked runs of text into two blocks.\n //\n // `paper` against a `default` panel rather than a hand-picked grey, so\n // it tracks the host's theme (and its dark mode) instead of being a\n // light-mode constant that goes wrong the moment the palette does.\n bgcolor: 'background.paper',\n px: 1.5,\n pt: 1.5,\n pb: 1.5,\n mb: 1,\n borderRadius: 1,\n // A rule under the header, because what follows it is the sibling strip\n // — a row of other sections. Without a line the section's own name and\n // the chip naming a DIFFERENT section sit in one undifferentiated\n // block, which reads as one navigation rather than as \"you are here\"\n // above \"go elsewhere\".\n borderBottom: 1,\n borderColor: 'divider',\n })}\n >\n <Box\n component={linkComponent}\n href={href}\n aria-label={backLabel}\n data-testid={`${testIdPrefix}-back`}\n sx={(theme) => ({\n flex: '0 0 auto',\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: TOUCH_TARGET,\n height: TOUCH_TARGET,\n border: 1,\n borderColor: 'divider',\n borderRadius: 2,\n color: 'text.primary',\n textDecoration: 'none',\n '&:hover': { backgroundColor: theme.palette.action.hover },\n })}\n >\n <ChevronLeftIcon fontSize=\"small\" />\n </Box>\n\n <HeaderText title={title} description={description} />\n </Box>\n );\n}\n"],"mappings":";;;;;;AAEA,OAAO,qBAAqB;AAC5B,OAAO,SAAS;AA4BZ,SACE,KADF;AArBJ,IAAM,OAAO;AAAA,EACX,UAAU;AAAA,EACV,cAAc;AAAA,EACd,YAAY;AACd;AASA,SAAS,WAAW;AAAA,EAClB;AAAA,EACA;AACF,GAGsB;AACpB,SACE,qBAAC,OAAI,IAAI,EAAE,UAAU,EAAE,GACrB;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,WAAU;AAAA,QACV,IAAI,EAAE,GAAG,GAAG,MAAM,WAAW,UAAU,QAAQ,YAAY,KAAK,YAAY,KAAK,GAAG,KAAK;AAAA,QAExF;AAAA;AAAA,IACH;AAAA,IACC,gBAAgB,UAAa,gBAAgB,MAC5C;AAAA,MAAC;AAAA;AAAA,QACC,WAAU;AAAA,QACV,IAAI;AAAA,UACF,GAAG;AAAA,UACH,MAAM;AAAA,UACN,UAAU;AAAA,UACV,OAAO;AAAA,UACP,YAAY;AAAA,UACZ,GAAG;AAAA,QACL;AAAA,QAEC;AAAA;AAAA,IACH;AAAA,KAEJ;AAEJ;AA4BO,SAAS,sBAAsB;AAAA,EACpC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAQsB;AACpB,SACE;AAAA,IAAC;AAAA;AAAA,MACC,eAAa,GAAG,YAAY;AAAA,MAC5B,IAAI,CAAC,WAAW;AAAA,QACd,GAAG,kBAAkB,OAAO,YAAY,QAAQ,MAAM;AAAA,QACtD,YAAY;AAAA,QACZ,KAAK;AAAA,QACL,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAWV,SAAS;AAAA,QACT,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAMd,cAAc;AAAA,QACd,aAAa;AAAA,MACf;AAAA,MAEA;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,WAAW;AAAA,YACX;AAAA,YACA,cAAY;AAAA,YACZ,eAAa,GAAG,YAAY;AAAA,YAC5B,IAAI,CAAC,WAAW;AAAA,cACd,MAAM;AAAA,cACN,SAAS;AAAA,cACT,YAAY;AAAA,cACZ,gBAAgB;AAAA,cAChB,OAAO;AAAA,cACP,QAAQ;AAAA,cACR,QAAQ;AAAA,cACR,aAAa;AAAA,cACb,cAAc;AAAA,cACd,OAAO;AAAA,cACP,gBAAgB;AAAA,cAChB,WAAW,EAAE,iBAAiB,MAAM,QAAQ,OAAO,MAAM;AAAA,YAC3D;AAAA,YAEA,8BAAC,mBAAgB,UAAS,SAAQ;AAAA;AAAA,QACpC;AAAA,QAEA,oBAAC,cAAW,OAAc,aAA0B;AAAA;AAAA;AAAA,EACtD;AAEJ;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/data-display/InteractiveTooltip/InteractiveTooltip.tsx"],"sourcesContent":["import MuiTooltip from '@mui/material/Tooltip/index.js';\nimport { styled } from '@mui/material/styles/index.js';\nimport React from 'react';\n\nimport { resolveTooltipProps, usePinnedTooltip } from './InteractiveTooltip.hooks';\nimport {\n arrowColor,\n emphasisStyles,\n getSizeStyles,\n variantStyles,\n} from './InteractiveTooltip.styles';\nimport type { InteractiveTooltipProps } from './InteractiveTooltip.types';\n\nconst StyledTooltip = styled(MuiTooltip, {\n shouldForwardProp: (prop) =>\n !['customVariant', 'customSize', 'glow', 'pulse'].includes(prop as string),\n})<{\n customVariant?: string;\n customSize?: string;\n glow?: boolean;\n pulse?: boolean;\n}>(({ theme, customVariant, customSize, glow, pulse }) => {\n const sizeStyles = getSizeStyles(customSize);\n\n return {\n '& .MuiTooltip-tooltip': {\n borderRadius: theme.spacing(1),\n fontSize: sizeStyles.fontSize,\n padding: sizeStyles.padding,\n fontWeight: 500,\n transition: 'all 0.3s ease',\n position: 'relative',\n overflow: 'hidden',\n ...variantStyles(theme, customVariant),\n ...emphasisStyles(theme, glow, pulse),\n },\n\n '& .MuiTooltip-arrow': {\n color: arrowColor(theme, customVariant),\n },\n };\n});\n\nexport const InteractiveTooltip = React.forwardRef<HTMLDivElement, InteractiveTooltipProps>(\n (rawProps, ref) => {\n const {\n variant,\n size,\n glow,\n pulse,\n maxWidth,\n dataTestId,\n hoverContent,\n pinnedContent,\n clickable,\n onPin,\n onUnpin,\n className,\n children,\n ...props\n } = resolveTooltipProps(rawProps);\n\n const { isPinned, isControlledOpen, wrapperRef, handleClick } = usePinnedTooltip({\n clickable,\n onPin,\n onUnpin,\n });\n\n // Determine which content to show\n const tooltipContent = isPinned ? pinnedContent : hoverContent;\n\n // Child with click handler and ref\n const childElement = children as React.ReactElement<{\n onClick?: (e: React.MouseEvent) => void;\n 'data-testid'?: string;\n }>;\n\n const childWithProps = React.cloneElement(childElement, {\n onClick: (e: React.MouseEvent) => {\n handleClick(e);\n // Call original onClick if it exists\n childElement.props.onClick?.(e);\n },\n 'data-testid': dataTestId ? `${dataTestId}-trigger` : undefined,\n });\n\n return (\n <div ref={wrapperRef} className={className}>\n <StyledTooltip\n ref={ref}\n customVariant={variant}\n customSize={size}\n glow={glow}\n pulse={pulse}\n title={tooltipContent}\n open={isPinned ? isControlledOpen : undefined}\n enterDelay={isPinned ? 0 : 100}\n leaveDelay={0}\n disableHoverListener={isPinned}\n disableFocusListener={isPinned}\n disableTouchListener={isPinned}\n slotProps={{\n tooltip: {\n sx: { maxWidth },\n role: 'tooltip',\n ...(dataTestId && { 'data-testid': `${dataTestId}-content` }),\n },\n }}\n {...props}\n >\n {childWithProps}\n </StyledTooltip>\n </div>\n );\n },\n);\n\nInteractiveTooltip.displayName = 'InteractiveTooltip';\n"],"mappings":";;;;;;;;;;;;AAAA,OAAO,gBAAgB;AACvB,SAAS,cAAc;AACvB,OAAO,WAAW;AAsFV;AA3ER,IAAM,gBAAgB,OAAO,YAAY;AAAA,EACvC,mBAAmB,CAAC,SAClB,CAAC,CAAC,iBAAiB,cAAc,QAAQ,OAAO,EAAE,SAAS,IAAc;AAC7E,CAAC,EAKE,CAAC,EAAE,OAAO,eAAe,YAAY,MAAM,MAAM,MAAM;AACxD,QAAM,aAAa,cAAc,UAAU;AAE3C,SAAO;AAAA,IACL,yBAAyB;AAAA,MACvB,cAAc,MAAM,QAAQ,CAAC;AAAA,MAC7B,UAAU,WAAW;AAAA,MACrB,SAAS,WAAW;AAAA,MACpB,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,UAAU;AAAA,MACV,UAAU;AAAA,MACV,GAAG,cAAc,OAAO,aAAa;AAAA,MACrC,GAAG,eAAe,OAAO,MAAM,KAAK;AAAA,IACtC;AAAA,IAEA,uBAAuB;AAAA,MACrB,OAAO,WAAW,OAAO,aAAa;AAAA,IACxC;AAAA,EACF;AACF,CAAC;AAEM,IAAM,qBAAqB,MAAM;AAAA,EACtC,CAAC,UAAU,QAAQ;AACjB,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,GAAG;AAAA,IACL,IAAI,oBAAoB,QAAQ;AAEhC,UAAM,EAAE,UAAU,kBAAkB,YAAY,YAAY,IAAI,iBAAiB;AAAA,MAC/E;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAGD,UAAM,iBAAiB,WAAW,gBAAgB;AAGlD,UAAM,eAAe;AAKrB,UAAM,iBAAiB,MAAM,aAAa,cAAc;AAAA,MACtD,SAAS,CAAC,MAAwB;AAChC,oBAAY,CAAC;AAEb,qBAAa,MAAM,UAAU,CAAC;AAAA,MAChC;AAAA,MACA,eAAe,aAAa,GAAG,UAAU,aAAa;AAAA,IACxD,CAAC;AAED,WACE,oBAAC,SAAI,KAAK,YAAY,WACpB;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,eAAe;AAAA,QACf,YAAY;AAAA,QACZ;AAAA,QACA;AAAA,QACA,OAAO;AAAA,QACP,MAAM,WAAW,mBAAmB;AAAA,QACpC,YAAY,WAAW,IAAI;AAAA,QAC3B,YAAY;AAAA,QACZ,sBAAsB;AAAA,QACtB,sBAAsB;AAAA,QACtB,sBAAsB;AAAA,QACtB,WAAW;AAAA,UACT,SAAS;AAAA,YACP,IAAI,EAAE,SAAS;AAAA,YACf,MAAM;AAAA,YACN,GAAI,cAAc,EAAE,eAAe,GAAG,UAAU,WAAW;AAAA,UAC7D;AAAA,QACF;AAAA,QACC,GAAG;AAAA,QAEH;AAAA;AAAA,IACH,GACF;AAAA,EAEJ;AACF;AAEA,mBAAmB,cAAc;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/form/CodeEditor/CodeEditorToolbar.tsx"],"sourcesContent":["import CodeIcon from '@mui/icons-material/Code';\nimport CopyIcon from '@mui/icons-material/ContentCopy';\nimport ExitFullscreenIcon from '@mui/icons-material/FullscreenExit';\nimport FullscreenIcon from '@mui/icons-material/Fullscreen';\nimport WrapIcon from '@mui/icons-material/WrapText';\nimport Box from '@mui/material/Box/index.js';\nimport IconButton from '@mui/material/IconButton/index.js';\nimport Stack from '@mui/material/Stack/index.js';\nimport Tooltip from '@mui/material/Tooltip/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 { CodeEditorCopy } from '../../../copy';\n\n// Each button repeated the same conditional test id; this is that ternary once.\nconst makeTestId =\n (dataTestId?: string) =>\n (suffix: string): string =>\n dataTestId ? `${dataTestId}-${suffix}` : `code-editor-${suffix}`;\n\nconst Toolbar = styled(Box)(({ theme }) => ({\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n padding: theme.spacing(1, 2),\n borderBottom: `1px solid ${alpha(theme.palette.divider, 0.12)}`,\n background: alpha(theme.palette.background.default, 0.4),\n}));\n\nconst LanguageBadge = styled(Box)(({ theme }) => ({\n display: 'inline-flex',\n alignItems: 'center',\n gap: theme.spacing(0.5),\n padding: theme.spacing(0.5, 1),\n borderRadius: theme.shape.borderRadius,\n background: alpha(theme.palette.primary.main, 0.1),\n color: theme.palette.primary.main,\n fontSize: '0.75rem',\n fontWeight: 600,\n textTransform: 'uppercase',\n letterSpacing: '0.05em',\n}));\n\nconst EditorActions: React.FC<{\n copy: CodeEditorCopy;\n readOnly: boolean;\n isWrapped: boolean;\n isCopied: boolean;\n isFullscreen: boolean;\n dataTestId?: string;\n onFormat: () => void;\n onCopy: () => void;\n onWrapToggle: () => void;\n onFullscreenToggle: () => void;\n}> = ({\n copy,\n readOnly,\n isWrapped,\n isCopied,\n isFullscreen,\n dataTestId,\n onFormat,\n onCopy,\n onWrapToggle,\n onFullscreenToggle,\n}) => {\n const testId = makeTestId(dataTestId);\n\n return (\n <Stack direction=\"row\" spacing={1}>\n {!readOnly && (\n <Tooltip title={copy.formatCode}>\n <IconButton\n size=\"small\"\n onClick={onFormat}\n data-testid={testId('format-btn')}\n >\n <CodeIcon fontSize=\"small\" />\n </IconButton>\n </Tooltip>\n )}\n\n <Tooltip title={isWrapped ? copy.disableWrap : copy.enableWrap}>\n <IconButton\n size=\"small\"\n onClick={onWrapToggle}\n color={isWrapped ? 'primary' : 'default'}\n data-testid={testId('wrap-btn')}\n >\n <WrapIcon fontSize=\"small\" />\n </IconButton>\n </Tooltip>\n\n <Tooltip title={isCopied ? copy.copied : copy.copyToClipboard}>\n <IconButton\n size=\"small\"\n onClick={onCopy}\n color={isCopied ? 'success' : 'default'}\n data-testid={testId('copy-btn')}\n >\n <CopyIcon fontSize=\"small\" />\n </IconButton>\n </Tooltip>\n\n <Tooltip title={isFullscreen ? copy.exitFullscreen : copy.enterFullscreen}>\n <IconButton\n size=\"small\"\n onClick={onFullscreenToggle}\n data-testid={testId('fullscreen-btn')}\n >\n {isFullscreen ? (\n <ExitFullscreenIcon fontSize=\"small\" />\n ) : (\n <FullscreenIcon fontSize=\"small\" />\n )}\n </IconButton>\n </Tooltip>\n </Stack>\n );\n};\n\n// Language badge, read-only marker and the four action buttons.\nexport const EditorToolbar: React.FC<{\n copy: CodeEditorCopy;\n language: string;\n readOnly: boolean;\n isWrapped: boolean;\n isCopied: boolean;\n isFullscreen: boolean;\n dataTestId?: string;\n onFormat: () => void;\n onCopy: () => void;\n onWrapToggle: () => void;\n onFullscreenToggle: () => void;\n}> = ({\n copy,\n language,\n readOnly,\n isWrapped,\n isCopied,\n isFullscreen,\n dataTestId,\n onFormat,\n onCopy,\n onWrapToggle,\n onFullscreenToggle,\n}) => {\n const testId = makeTestId(dataTestId);\n\n return (\n <Toolbar data-testid={testId('toolbar')}>\n <Stack direction=\"row\" spacing={2} alignItems=\"center\">\n <LanguageBadge data-testid={testId('language-badge')}>\n <CodeIcon sx={{ fontSize: 14 }} />\n {language}\n </LanguageBadge>\n {readOnly && (\n <Typography variant=\"caption\" color=\"text.secondary\">\n {copy.readOnly}\n </Typography>\n )}\n </Stack>\n\n <EditorActions\n copy={copy}\n readOnly={readOnly}\n isWrapped={isWrapped}\n isCopied={isCopied}\n isFullscreen={isFullscreen}\n dataTestId={dataTestId}\n onFormat={onFormat}\n onCopy={onCopy}\n onWrapToggle={onWrapToggle}\n onFullscreenToggle={onFullscreenToggle}\n />\n </Toolbar>\n );\n};\n"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/data-display/Chart/Chart.tsx"],"sourcesContent":["import Box from '@mui/material/Box/index.js';\nimport CircularProgress from '@mui/material/CircularProgress/index.js';\nimport Paper from '@mui/material/Paper/index.js';\nimport Typography from '@mui/material/Typography/index.js';\nimport { alpha, useTheme, type Theme } from '@mui/material/styles/index.js';\nimport React from 'react';\n\nimport type { ChartProps } from './Chart.types';\nimport { ChartContainer } from './ChartComposables';\nimport { getSizeStyles, getVariantStyles } from './chart-internals';\nimport { renderChartByType } from './chart-renderers';\nimport { uiInk } from '../../../tokens/ink';\nimport { muiColor } from '../../../tokens/scales';\n\n/**\n * Prop-driven Recharts wrapper (line/bar/area/pie/radar/scatter/composed)\n * with MUI-themed chrome. The serializable-spec API (`SpecChart`) layers on\n * top of this component; type-specific rendering lives in\n * `chart-renderers.tsx` and styling in `chart-internals.ts`.\n */\n\nfunction variantSx(theme: Theme, props: ChartProps): Record<string, unknown> {\n return getVariantStyles(theme, {\n variant: props.variant ?? 'default',\n color: props.color ?? 'primary',\n glow: props.glow ?? false,\n pulse: props.pulse ?? false,\n glass: props.glass ?? false,\n gradient: props.gradient ?? false,\n disabled: props.disabled ?? false,\n });\n}\n\ninterface HeaderProps {\n title?: string;\n subtitle?: string;\n neon: boolean;\n dataTestId: string;\n}\n\nfunction ChartHeader({ title, subtitle, neon, dataTestId }: HeaderProps): React.ReactElement | null {\n if (!title && !subtitle) return null;\n return (\n <Box sx={{ mb: 2 }} data-testid={`${dataTestId}-header`}>\n {title && (\n <Typography\n variant=\"h6\"\n data-testid={`${dataTestId}-title`}\n sx={(theme) => ({ color: neon ? uiInk(theme).dataVizNeon.accent : 'text.primary', fontWeight: 600 })}\n >\n {title}\n </Typography>\n )}\n {subtitle && (\n <Typography\n variant=\"body2\"\n data-testid={`${dataTestId}-subtitle`}\n sx={(theme) => ({ color: neon ? alpha(uiInk(theme).dataVizNeon.accent, 0.7) : 'text.secondary' })}\n >\n {subtitle}\n </Typography>\n )}\n </Box>\n );\n}\n\nexport const Chart: React.FC<ChartProps> = (props) => {\n const theme = useTheme();\n const sizeStyles = getSizeStyles(props.size, props.height);\n const styles = variantSx(theme, props);\n const dataTestId = props['data-testid'] ?? 'chart';\n\n if (props.loading) {\n return (\n <Paper\n data-testid={`${dataTestId}-loading`}\n sx={{ ...styles, ...sizeStyles, display: 'flex', justifyContent: 'center', alignItems: 'center' }}\n >\n <CircularProgress color={muiColor(props.color ?? 'primary', 'inherit')} data-testid={`${dataTestId}-loading-spinner`} />\n </Paper>\n );\n }\n\n return (\n <Paper\n data-testid={dataTestId}\n className={props.className}\n sx={{ p: 2, ...styles, ...props.style }}\n onFocus={props.onFocus}\n onBlur={props.onBlur}\n >\n <ChartHeader\n title={props.title}\n subtitle={props.subtitle}\n neon={props.variant === 'neon'}\n dataTestId={dataTestId}\n />\n <ChartContainer\n responsive={props.responsive ?? true}\n width={props.width ?? '100%'}\n height={props.fillHeight === true ? '100%' : sizeStyles.height}\n data-testid={`${dataTestId}-container`}\n >\n {renderChartByType(props, theme)}\n </ChartContainer>\n </Paper>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA,OAAO,SAAS;AAChB,OAAO,sBAAsB;AAC7B,OAAO,WAAW;AAClB,OAAO,gBAAgB;AACvB,SAAS,OAAO,gBAA4B;AAuCxC,SAEI,KAFJ;AAtBJ,SAAS,UAAU,OAAc,OAA4C;AAC3E,SAAO,iBAAiB,OAAO;AAAA,IAC7B,SAAS,MAAM,WAAW;AAAA,IAC1B,OAAO,MAAM,SAAS;AAAA,IACtB,MAAM,MAAM,QAAQ;AAAA,IACpB,OAAO,MAAM,SAAS;AAAA,IACtB,OAAO,MAAM,SAAS;AAAA,IACtB,UAAU,MAAM,YAAY;AAAA,IAC5B,UAAU,MAAM,YAAY;AAAA,EAC9B,CAAC;AACH;AASA,SAAS,YAAY,EAAE,OAAO,UAAU,MAAM,WAAW,GAA2C;AAClG,MAAI,CAAC,SAAS,CAAC,SAAU,QAAO;AAChC,SACE,qBAAC,OAAI,IAAI,EAAE,IAAI,EAAE,GAAG,eAAa,GAAG,UAAU,WAC3C;AAAA,aACC;AAAA,MAAC;AAAA;AAAA,QACC,SAAQ;AAAA,QACR,eAAa,GAAG,UAAU;AAAA,QAC1B,IAAI,CAAC,WAAW,EAAE,OAAO,OAAO,MAAM,KAAK,EAAE,YAAY,SAAS,gBAAgB,YAAY,IAAI;AAAA,QAEjG;AAAA;AAAA,IACH;AAAA,IAED,YACC;AAAA,MAAC;AAAA;AAAA,QACC,SAAQ;AAAA,QACR,eAAa,GAAG,UAAU;AAAA,QAC1B,IAAI,CAAC,WAAW,EAAE,OAAO,OAAO,MAAM,MAAM,KAAK,EAAE,YAAY,QAAQ,GAAG,IAAI,iBAAiB;AAAA,QAE9F;AAAA;AAAA,IACH;AAAA,KAEJ;AAEJ;AAEO,IAAM,QAA8B,CAAC,UAAU;AACpD,QAAM,QAAQ,SAAS;AACvB,QAAM,aAAa,cAAc,MAAM,MAAM,MAAM,MAAM;AACzD,QAAM,SAAS,UAAU,OAAO,KAAK;AACrC,QAAM,aAAa,MAAM,aAAa,KAAK;AAE3C,MAAI,MAAM,SAAS;AACjB,WACE;AAAA,MAAC;AAAA;AAAA,QACC,eAAa,GAAG,UAAU;AAAA,QAC1B,IAAI,EAAE,GAAG,QAAQ,GAAG,YAAY,SAAS,QAAQ,gBAAgB,UAAU,YAAY,SAAS;AAAA,QAEhG,8BAAC,oBAAiB,OAAO,SAAS,MAAM,SAAS,WAAW,SAAS,GAAG,eAAa,GAAG,UAAU,oBAAoB;AAAA;AAAA,IACxH;AAAA,EAEJ;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,eAAa;AAAA,MACb,WAAW,MAAM;AAAA,MACjB,IAAI,EAAE,GAAG,GAAG,GAAG,QAAQ,GAAG,MAAM,MAAM;AAAA,MACtC,SAAS,MAAM;AAAA,MACf,QAAQ,MAAM;AAAA,MAEd;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,OAAO,MAAM;AAAA,YACb,UAAU,MAAM;AAAA,YAChB,MAAM,MAAM,YAAY;AAAA,YACxB;AAAA;AAAA,QACF;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACC,YAAY,MAAM,cAAc;AAAA,YAChC,OAAO,MAAM,SAAS;AAAA,YACtB,QAAQ,MAAM,eAAe,OAAO,SAAS,WAAW;AAAA,YACxD,eAAa,GAAG,UAAU;AAAA,YAEzB,4BAAkB,OAAO,KAAK;AAAA;AAAA,QACjC;AAAA;AAAA;AAAA,EACF;AAEJ;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/form/CategorySelect/CategoryPanelHead.tsx"],"sourcesContent":["'use client';\n\nimport type { CategorySelectCopy } from '../../../copy';\nimport Box from '@mui/material/Box/index.js';\nimport InputBase from '@mui/material/InputBase/index.js';\nimport { alpha, type Theme } from '@mui/material/styles/index.js';\n\nimport { SearchGlyph } from './CategoryIcons';\nimport {\n chipSx,\n chipWrapSx,\n panelHeadSx,\n pinnedLabelSx,\n pinnedSx,\n} from './CategorySelect.styles';\nimport type { CategorySelectionChip } from './CategorySelect.types';\nimport { fieldBorder, fieldHeight } from '../../../tokens/field-height';\nimport { fieldRadiusPx } from '../../../tokens/field-radius';\n\ninterface PanelHeadProps {\n query: string;\n placeholder: string;\n sheet: boolean;\n /** Quick actions belong to multi-select only; single-select has nothing to bulk-do. */\n quickActions?: React.ReactNode;\n onQueryChange: (next: string) => void;\n searchInputRef: React.RefObject<HTMLInputElement | null>;\n dataTestId: string;\n copy: CategorySelectCopy;\n}\n\nconst searchFieldSx = {\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n '& input': {\n width: '100%',\n height: fieldHeight,\n padding: '0 30px 0 32px',\n fontSize: 13,\n border: fieldBorder,\n borderRadius: fieldRadiusPx,\n background: 'background.paper',\n color: 'text.primary',\n '&:focus': {\n outline: 'none',\n borderColor: 'primary.main',\n // 0x26 of 0xFF: the ring's old hex-alpha suffix, kept exact.\n boxShadow: (theme: Theme) => `0 0 0 3px ${alpha(theme.palette.primary.main, 0x26 / 0xff)}`,\n },\n },\n} as const;\n\nconst clearButtonSx = {\n position: 'absolute',\n right: 7,\n width: 20,\n height: 20,\n border: 0,\n background: 'action.selected',\n color: 'text.secondary',\n borderRadius: '50%',\n display: 'grid',\n placeItems: 'center',\n cursor: 'pointer',\n fontSize: 12,\n padding: 0,\n lineHeight: 1,\n} as const;\n\n/** Search field, its clear affordance, and the optional quick-action row. */\nexport function CategoryPanelHead({\n query,\n placeholder,\n sheet,\n quickActions,\n onQueryChange,\n searchInputRef,\n dataTestId,\n copy,\n}: PanelHeadProps): React.JSX.Element {\n return (\n <Box sx={(theme) => panelHeadSx(theme, sheet)}>\n <Box sx={searchFieldSx}>\n <SearchGlyph\n style={{\n position: 'absolute',\n left: 10,\n width: 15,\n height: 15,\n opacity: 0.55,\n pointerEvents: 'none',\n }}\n />\n <InputBase\n inputRef={searchInputRef}\n value={query}\n placeholder={placeholder}\n autoComplete=\"off\"\n inputProps={{ 'aria-label': placeholder, 'data-testid': `${dataTestId}-search` }}\n onChange={(event) => onQueryChange(event.target.value)}\n sx={{ width: '100%' }}\n />\n {query.length > 0 && (\n <Box\n component=\"button\"\n type=\"button\"\n aria-label={copy.search.clear}\n data-testid={`${dataTestId}-search-clear`}\n sx={clearButtonSx}\n onClick={() => onQueryChange('')}\n >\n ×\n </Box>\n )}\n </Box>\n {quickActions && (\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n gap: '10px',\n marginTop: '8px',\n fontSize: 12,\n }}\n >\n {quickActions}\n </Box>\n )}\n </Box>\n );\n}\n\ninterface PinnedTrayProps {\n chips: CategorySelectionChip[];\n onRemove: (chipId: string) => void;\n dataTestId: string;\n copy: CategorySelectCopy;\n}\n\n/**\n * The selected categories, pinned above the list.\n *\n * Pinned rather than left in place because a selection made at the bottom of a\n * ten-category tree scrolls out of sight the moment you look for the next one —\n * and a search hides it entirely. Here it survives both.\n */\nexport function CategoryPinnedTray({\n chips,\n onRemove,\n dataTestId,\n copy,\n}: PinnedTrayProps): React.JSX.Element | null {\n if (chips.length === 0) return null;\n return (\n <Box sx={pinnedSx} data-testid={`${dataTestId}-pinned`}>\n <Box sx={pinnedLabelSx}>{copy.search.pinnedLabel(chips.length)}</Box>\n <Box sx={chipWrapSx}>\n {chips.map((chip) => (\n <Box component=\"span\" key={chip.id} sx={chipSx}>\n {chip.label}\n <button\n type=\"button\"\n aria-label={copy.search.removeChip(chip.label)}\n data-testid={`${dataTestId}-unpin-${chip.id}`}\n onClick={() => onRemove(chip.id)}\n >\n ×\n </button>\n </Box>\n ))}\n </Box>\n </Box>\n );\n}\n"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/data-display/TimingDiagram/TimingDiagram.tsx"],"sourcesContent":["import Box from '@mui/material/Box/index.js';\nimport Paper from '@mui/material/Paper/index.js';\nimport Typography from '@mui/material/Typography/index.js';\nimport { alpha, styled } from '@mui/material/styles/index.js';\nimport type { FC } from 'react';\nimport React, { useMemo } from 'react';\n\nimport type { TimingData, TimingDiagramProps } from './TimingDiagram.types';\nimport type { Phase, PhaseKey, TimingViewProps } from './TimingDiagram.views';\nimport {\n HorizontalView,\n phaseColors,\n StackedView,\n WaterfallView,\n} from './TimingDiagram.views';\n\n// Styled components\nconst DiagramContainer = styled(Paper)(({ theme }) => ({\n padding: theme.spacing(3),\n background: `linear-gradient(135deg, ${alpha(theme.palette.background.paper, 0.9)} 0%, ${alpha(theme.palette.background.paper, 0.8)} 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}));\n\nconst Legend = styled(Box)(({ theme }) => ({\n display: 'flex',\n flexWrap: 'wrap',\n gap: theme.spacing(2),\n marginTop: theme.spacing(2),\n paddingTop: theme.spacing(2),\n borderTop: `1px solid ${alpha(theme.palette.divider, 0.2)}`,\n}));\n\nconst LegendItem = styled(Box)(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(1),\n '& .color': {\n width: 12,\n height: 12,\n borderRadius: 2,\n },\n '& .label': {\n fontSize: '0.8rem',\n color: theme.palette.text.secondary,\n },\n}));\n\n// Helper functions\nconst calculatePercentages = (data: TimingData): Record<string, number> => {\n const total = data.total || 1;\n return {\n dns: ((data.dns || 0) / total) * 100,\n connect: ((data.connect || 0) / total) * 100,\n ssl: ((data.ssl || 0) / total) * 100,\n request: ((data.request || 0) / total) * 100,\n response: ((data.response || 0) / total) * 100,\n };\n};\n\n// A phase with no recorded time never happened — an HTTP request has no SSL\n// handshake, for instance — so it gets no bar and no legend entry.\nconst phasesOf = (data: TimingData): Phase[] =>\n [\n { key: 'dns', label: 'DNS Lookup', value: data.dns },\n { key: 'connect', label: 'Connection', value: data.connect },\n { key: 'ssl', label: 'SSL/TLS', value: data.ssl },\n { key: 'request', label: 'Request', value: data.request },\n { key: 'response', label: 'Response', value: data.response },\n ].filter((phase) => phase.value !== undefined && phase.value > 0);\n\nconst VIEWS: Record<string, FC<TimingViewProps>> = {\n waterfall: WaterfallView,\n stacked: StackedView,\n horizontal: HorizontalView,\n};\n\n// Main component\nexport const TimingDiagram: FC<TimingDiagramProps> = ({\n copy,\n data,\n showLabels = true,\n height = 40,\n animated = true,\n showTooltips = true,\n variant = 'waterfall',\n}) => {\n const percentages = useMemo(() => calculatePercentages(data), [data]);\n const phases = phasesOf(data);\n const View = VIEWS[variant];\n\n return (\n <DiagramContainer elevation={2} role=\"region\" aria-label={copy.regionLabel} tabIndex={0}>\n <Typography variant=\"h6\" fontWeight=\"bold\" gutterBottom>\n {copy.heading}\n </Typography>\n\n {View && (\n <View\n phases={phases}\n percentages={percentages}\n data={data}\n animated={animated}\n showLabels={showLabels}\n showTooltips={showTooltips}\n height={height}\n />\n )}\n\n {showLabels && (\n <Legend>\n {phases.map((phase) => (\n <LegendItem key={phase.key}>\n <Box\n className=\"color\"\n sx={(theme) => ({ backgroundColor: phaseColors(theme)[phase.key as PhaseKey] })}\n />\n <Typography className=\"label\">{phase.label}</Typography>\n </LegendItem>\n ))}\n </Legend>\n )}\n </DiagramContainer>\n );\n};\n\n// Export default\nexport default TimingDiagram;\n"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/navigation/CommandPalette/ShortcutChip.tsx"],"sourcesContent":["import type { ChipProps } from '@mui/material/Chip/index.js';\nimport Chip from '@mui/material/Chip/index.js';\nimport React from 'react';\n\n// A plain component rather than styled(Chip): a styled component's inferred type\n// cannot be named across a module boundary in this package (TS2742), and both\n// the results list and the palette footer need this one.\nexport const ShortcutChip: React.FC<ChipProps> = (props) => (\n <Chip\n {...props}\n sx={{\n height: 20,\n fontSize: '0.7rem',\n fontFamily: 'monospace',\n ...props.sx,\n }}\n />\n);\n"],"mappings":";AACA,OAAO,UAAU;AAOf;AADK,IAAM,eAAoC,CAAC,UAChD;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,IAAI;AAAA,MACF,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,YAAY;AAAA,MACZ,GAAG,MAAM;AAAA,IACX;AAAA;AACF;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/data-display/InteractiveTooltip/InteractiveTooltip.styles.ts"],"sourcesContent":["import { alpha, keyframes } from '@mui/material/styles/index.js';\nimport type { CSSObject, Theme } from '@mui/material/styles/index.js';\n\nimport { absoluteInk, neutralTones, shadowInk, sheen } from '../../../tokens/ink';\n\nconst pulseAnimation = keyframes`\n 0% {\n transform: scale(1);\n opacity: 1;\n }\n 70% {\n transform: scale(1.05);\n opacity: 0.8;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n`;\n\nconst SIZE_MAP = {\n sm: { fontSize: '0.75rem', padding: '4px 8px' },\n md: { fontSize: '0.875rem', padding: '6px 12px' },\n lg: { fontSize: '1rem', padding: '8px 16px' },\n} as const;\n\nexport const getSizeStyles = (size?: string): { fontSize: string; padding: string } =>\n SIZE_MAP[size as keyof typeof SIZE_MAP] || SIZE_MAP.md;\n\nexport const variantStyles = (theme: Theme, variant?: string): CSSObject => {\n switch (variant) {\n case 'default':\n return {\n backgroundColor: alpha(neutralTones(theme).inverseSurface, 0.92),\n color: absoluteInk(theme).white,\n boxShadow: `0 4px 12px ${shadowInk(theme, 0.3)}`,\n };\n case 'dark':\n return {\n backgroundColor: absoluteInk(theme).black,\n color: absoluteInk(theme).white,\n boxShadow: `0 6px 16px ${shadowInk(theme, 0.5)}`,\n border: `1px solid ${sheen(theme, 0.1)}`,\n };\n case 'light':\n return {\n backgroundColor: absoluteInk(theme).white,\n color: neutralTones(theme).inverseSurface,\n border: `1px solid ${alpha(neutralTones(theme).subtle, 0.4)}`,\n boxShadow: `0 4px 16px ${shadowInk(theme, 0.15)}`,\n };\n case 'glass':\n return {\n backgroundColor: alpha(theme.palette.background.paper, 0.75),\n backdropFilter: 'blur(24px) saturate(180%)',\n WebkitBackdropFilter: 'blur(24px) saturate(180%)',\n border: `1px solid ${alpha(theme.palette.divider, 0.3)}`,\n color: theme.palette.text.primary,\n boxShadow: `0 8px 32px ${shadowInk(theme, 0.12)}`,\n };\n default:\n return {};\n }\n};\n\n// glow and pulse are independent flags. The three combinations used to be spelled\n// out one by one, but each is just the union of whichever flags are set.\nexport const emphasisStyles = (theme: Theme, glow?: boolean, pulse?: boolean): CSSObject => ({\n ...(glow && {\n boxShadow: `0 0 15px 3px ${alpha(theme.palette.primary.main, 0.4)} !important`,\n filter: 'brightness(1.05)',\n }),\n ...(pulse && {\n animation: `${pulseAnimation} 2s infinite`,\n }),\n});\n\nexport const arrowColor = (theme: Theme, variant?: string): string => {\n switch (variant) {\n case 'light':\n return absoluteInk(theme).white;\n case 'glass':\n return alpha(theme.palette.background.paper, 0.75);\n case 'dark':\n return absoluteInk(theme).black;\n default:\n return alpha(neutralTones(theme).inverseSurface, 0.92);\n }\n};\n"],"mappings":";;;;;;;;AAAA,SAAS,OAAO,iBAAiB;AAKjC,IAAM,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAevB,IAAM,WAAW;AAAA,EACf,IAAI,EAAE,UAAU,WAAW,SAAS,UAAU;AAAA,EAC9C,IAAI,EAAE,UAAU,YAAY,SAAS,WAAW;AAAA,EAChD,IAAI,EAAE,UAAU,QAAQ,SAAS,WAAW;AAC9C;AAEO,IAAM,gBAAgB,CAAC,SAC5B,SAAS,IAA6B,KAAK,SAAS;AAE/C,IAAM,gBAAgB,CAAC,OAAc,YAAgC;AAC1E,UAAQ,SAAS;AAAA,IACf,KAAK;AACH,aAAO;AAAA,QACL,iBAAiB,MAAM,aAAa,KAAK,EAAE,gBAAgB,IAAI;AAAA,QAC/D,OAAO,YAAY,KAAK,EAAE;AAAA,QAC1B,WAAW,cAAc,UAAU,OAAO,GAAG,CAAC;AAAA,MAChD;AAAA,IACF,KAAK;AACH,aAAO;AAAA,QACL,iBAAiB,YAAY,KAAK,EAAE;AAAA,QACpC,OAAO,YAAY,KAAK,EAAE;AAAA,QAC1B,WAAW,cAAc,UAAU,OAAO,GAAG,CAAC;AAAA,QAC9C,QAAQ,aAAa,MAAM,OAAO,GAAG,CAAC;AAAA,MACxC;AAAA,IACF,KAAK;AACH,aAAO;AAAA,QACL,iBAAiB,YAAY,KAAK,EAAE;AAAA,QACpC,OAAO,aAAa,KAAK,EAAE;AAAA,QAC3B,QAAQ,aAAa,MAAM,aAAa,KAAK,EAAE,QAAQ,GAAG,CAAC;AAAA,QAC3D,WAAW,cAAc,UAAU,OAAO,IAAI,CAAC;AAAA,MACjD;AAAA,IACF,KAAK;AACH,aAAO;AAAA,QACL,iBAAiB,MAAM,MAAM,QAAQ,WAAW,OAAO,IAAI;AAAA,QAC3D,gBAAgB;AAAA,QAChB,sBAAsB;AAAA,QACtB,QAAQ,aAAa,MAAM,MAAM,QAAQ,SAAS,GAAG,CAAC;AAAA,QACtD,OAAO,MAAM,QAAQ,KAAK;AAAA,QAC1B,WAAW,cAAc,UAAU,OAAO,IAAI,CAAC;AAAA,MACjD;AAAA,IACF;AACE,aAAO,CAAC;AAAA,EACZ;AACF;AAIO,IAAM,iBAAiB,CAAC,OAAc,MAAgB,WAAgC;AAAA,EAC3F,GAAI,QAAQ;AAAA,IACV,WAAW,gBAAgB,MAAM,MAAM,QAAQ,QAAQ,MAAM,GAAG,CAAC;AAAA,IACjE,QAAQ;AAAA,EACV;AAAA,EACA,GAAI,SAAS;AAAA,IACX,WAAW,GAAG,cAAc;AAAA,EAC9B;AACF;AAEO,IAAM,aAAa,CAAC,OAAc,YAA6B;AACpE,UAAQ,SAAS;AAAA,IACf,KAAK;AACH,aAAO,YAAY,KAAK,EAAE;AAAA,IAC5B,KAAK;AACH,aAAO,MAAM,MAAM,QAAQ,WAAW,OAAO,IAAI;AAAA,IACnD,KAAK;AACH,aAAO,YAAY,KAAK,EAAE;AAAA,IAC5B;AACE,aAAO,MAAM,aAAa,KAAK,EAAE,gBAAgB,IAAI;AAAA,EACzD;AACF;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/data-display/DataViews/data-views-filter-panel.tsx"],"sourcesContent":["\"use client\";\n\nimport Box from \"@mui/material/Box/index.js\";\nimport Link from \"@mui/material/Link/index.js\";\n\nimport { StackedModal, StackedModalContent } from \"../../feedback/StackedModal\";\nimport { TableFilter } from \"../../layout/TableFilter\";\n\nimport { PillControl } from \"./data-views-category-pill\";\nimport { PanelRangeField } from \"./data-views-range-pill\";\nimport { useDataViewsCopy } from \"./data-views-copy-context\";\nimport type {\n FilterFieldConfig,\n RangeFieldConfig,\n RangeValue,\n} from \"./data-views-types\";\n\n/* ── Filter panel ────────────────────────────────────────────────────────── */\n\nexport interface GridFilterPanelProps<T extends Record<string, unknown>> {\n testIdPrefix: string;\n search: string;\n fields: FilterFieldConfig<T>[];\n rangeFields: RangeFieldConfig<T>[];\n pills: Record<string, string[]>;\n ranges: Record<string, RangeValue>;\n onSearchChange: (value: string) => void;\n onTogglePill: (fieldId: string, value: string, checked: boolean) => void;\n onChangeRange: (fieldId: string, range: RangeValue) => void;\n onClearField: (fieldId: string) => void;\n onClearAll: () => void;\n}\n\n/** One pill field: a compact multi-select for long lists, else a checkbox list. */\nfunction PillField<T extends Record<string, unknown>>({\n field,\n selected,\n testIdPrefix,\n onTogglePill,\n onClearField,\n}: {\n field: FilterFieldConfig<T>;\n selected: string[];\n testIdPrefix: string;\n onTogglePill: (fieldId: string, value: string, checked: boolean) => void;\n onClearField: (fieldId: string) => void;\n}): React.JSX.Element {\n const testId = `${testIdPrefix}-filter-${field.id}`;\n // `searchEnabled` forces the searchable multi-select; a plain `multiselect`\n // keeps the auto \"search only when the list is long\" rule. `category` is the\n // hierarchical tree — see PillControl.\n if (field.searchEnabled || field.control === \"multiselect\" || field.control === \"category\") {\n return (\n <PillControl\n fieldId={field.id}\n pill={field}\n selected={selected}\n onTogglePill={onTogglePill}\n onClearField={onClearField}\n testIdPrefix={testIdPrefix}\n layout=\"stacked\"\n />\n );\n }\n return (\n <TableFilter.CheckboxField\n label={field.label}\n options={field.options}\n selected={new Set(selected)}\n onToggle={(value, checked) => onTogglePill(field.id, value, checked)}\n testId={testId}\n />\n );\n}\n\n/** The filter controls (keyword + pill facets + numeric ranges), surface-agnostic. */\nfunction FilterControls<T extends Record<string, unknown>>({\n testIdPrefix,\n search,\n fields,\n rangeFields,\n pills,\n ranges,\n onSearchChange,\n onTogglePill,\n onChangeRange,\n onClearField,\n}: Omit<GridFilterPanelProps<T>, \"onClearAll\">): React.JSX.Element {\n const copy = useDataViewsCopy();\n return (\n <>\n <TableFilter.Keyword\n value={search}\n onChange={onSearchChange}\n label={copy.search.allColumnsLabel}\n placeholder={copy.search.keywordPlaceholder}\n testId={`${testIdPrefix}-search-all`}\n />\n {(fields.length > 0 || rangeFields.length > 0) && (\n <TableFilter.Section title={copy.filters.panelTitle}>\n {fields.map((field) => (\n <PillField\n key={field.id}\n field={field}\n selected={pills[field.id] ?? []}\n testIdPrefix={testIdPrefix}\n onTogglePill={onTogglePill}\n onClearField={onClearField}\n />\n ))}\n {rangeFields.map((field) => (\n <PanelRangeField\n key={field.id}\n field={field}\n value={ranges[field.id] ?? {}}\n onChange={(range) => onChangeRange(field.id, range)}\n testId={`${testIdPrefix}-range-${field.id}`}\n />\n ))}\n </TableFilter.Section>\n )}\n </>\n );\n}\n\n/** The slide-in filter panel: keyword + checkbox facets + numeric ranges. */\nexport function GridFilterPanel<T extends Record<string, unknown>>(\n props: GridFilterPanelProps<T>,\n): React.JSX.Element {\n const copy = useDataViewsCopy();\n return (\n <TableFilter.Panel\n onClearAll={props.onClearAll}\n clearTestId={`${props.testIdPrefix}-clear-filters`}\n ariaLabel={copy.filters.panelTitle}\n >\n <FilterControls {...props} />\n </TableFilter.Panel>\n );\n}\n\n/** Props for the modal filter surface used below the inline breakpoint. */\ninterface FilterDialogProps<T extends Record<string, unknown>> extends GridFilterPanelProps<T> {\n open: boolean;\n onClose: () => void;\n}\n\n/**\n * The same filter controls in a centered modal — used on smaller screens where the\n * slide-in panel would overlap the table. The \"Filtros\" toolbar button opens it.\n */\nexport function FilterDialog<T extends Record<string, unknown>>({\n open,\n onClose,\n ...props\n}: FilterDialogProps<T>): React.JSX.Element {\n const copy = useDataViewsCopy();\n return (\n <StackedModal\n open={open}\n onClose={onClose}\n navigationTitle={copy.filters.panelTitle}\n backLabel={copy.nav.goBack}\n modalId={`${props.testIdPrefix}-filters`}\n maxWidth=\"xs\"\n dataTestId={`${props.testIdPrefix}-filter-dialog`}\n >\n <StackedModalContent>\n <Box sx={{ display: \"flex\", flexDirection: \"column\", gap: 2.5 }}>\n <Box sx={{ display: \"flex\", justifyContent: \"flex-end\" }}>\n <Link\n component=\"button\"\n type=\"button\"\n underline=\"hover\"\n onClick={props.onClearAll}\n data-testid={`${props.testIdPrefix}-clear-filters`}\n sx={{ fontSize: \"0.75rem\", color: \"text.secondary\" }}\n >\n {copy.filters.clearAllFilters}\n </Link>\n </Box>\n <FilterControls {...props} />\n </Box>\n </StackedModalContent>\n </StackedModal>\n );\n}\n"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/utility/AnimatedIcon/AnimatedIcon.styles.ts"],"sourcesContent":["import { alpha } from '@mui/material/styles/index.js';\nimport type { CSSObject, Theme } from '@mui/material/styles/index.js';\n\nimport {\n bounceAnimation,\n breatheAnimation,\n fadeInOutAnimation,\n flipAnimation,\n floatAnimation,\n glowPulseAnimation,\n heartbeatAnimation,\n jelloAnimation,\n morphAnimation,\n neonFlickerAnimation,\n pulseAnimation,\n rippleAnimation,\n rotateAnimation,\n shakeAnimation,\n spinAnimation,\n swingAnimation,\n translateAnimation,\n wobbleAnimation,\n} from './AnimatedIcon.animations';\nimport type { AnimationSize, AnimationVariant } from './AnimatedIcon.types';\nimport { neutralTones, shadowInk, sheen } from '../../../tokens/ink';\n\nexport const sizeConfigs: Record<AnimationSize, { size: number; fontSize: number }> = {\n xs: { size: 12, fontSize: 10 },\n sm: { size: 24, fontSize: 20 },\n md: { size: 32, fontSize: 28 },\n lg: { size: 48, fontSize: 44 },\n xl: { size: 64, fontSize: 60 },\n};\n\n/**\n * Every variant produces the same shorthand — keyframes, duration, easing,\n * iteration count, delay — so only the three things that actually differ are\n * tabulated. `scale` multiplies the caller's duration for the variants that\n * read as slower than the rest.\n */\nconst ANIMATIONS: Record<string, { keyframes: string; easing: string; scale: number }> = {\n rotate: { keyframes: `${rotateAnimation}`, easing: 'linear', scale: 1 },\n pulse: { keyframes: `${pulseAnimation}`, easing: 'ease-in-out', scale: 1 },\n translate: { keyframes: `${translateAnimation}`, easing: 'ease-in-out', scale: 1 },\n bounce: { keyframes: `${bounceAnimation}`, easing: 'ease-in-out', scale: 1 },\n shake: { keyframes: `${shakeAnimation}`, easing: 'ease-in-out', scale: 1 },\n flip: { keyframes: `${flipAnimation}`, easing: 'ease-in-out', scale: 1 },\n spin: { keyframes: `${spinAnimation}`, easing: 'ease-in-out', scale: 1 },\n fadeInOut: { keyframes: `${fadeInOutAnimation}`, easing: 'ease-in-out', scale: 1 },\n heartbeat: { keyframes: `${heartbeatAnimation}`, easing: 'ease-in-out', scale: 1 },\n wobble: { keyframes: `${wobbleAnimation}`, easing: 'ease-in-out', scale: 1 },\n morph: { keyframes: `${morphAnimation}`, easing: 'ease-in-out', scale: 1 },\n swing: { keyframes: `${swingAnimation}`, easing: 'ease-in-out', scale: 1 },\n jello: { keyframes: `${jelloAnimation}`, easing: 'ease-in-out', scale: 1 },\n float: { keyframes: `${floatAnimation}`, easing: 'ease-in-out', scale: 2 },\n neonFlicker: { keyframes: `${neonFlickerAnimation}`, easing: 'ease-in-out', scale: 2 },\n breathe: { keyframes: `${breatheAnimation}`, easing: 'ease-in-out', scale: 1.5 },\n};\n\nconst animationFor = (\n variant: AnimationVariant,\n duration: number,\n delay: number,\n loop: boolean,\n) => {\n const spec = ANIMATIONS[variant];\n if (!spec) return 'none';\n\n const iterationCount = loop ? 'infinite' : '1';\n return `${spec.keyframes} ${duration * spec.scale}s ${spec.easing} ${iterationCount} ${delay > 0 ? `${delay}s` : '0s'}`;\n};\n\nconst SHADOWS: Record<string, (theme: Theme) => string> = {\n soft: (theme) => `0 4px 20px ${shadowInk(theme, 0.15)}`,\n hard: (theme) => `4px 4px 0px ${shadowInk(theme, 0.25)}`,\n elevated: (theme) =>\n `0 10px 40px ${shadowInk(theme, 0.2)}, 0 2px 10px ${shadowInk(theme, 0.1)}`,\n};\n\nexport interface IconStyleFlags {\n $size: number;\n $fontSize: number;\n $animationVariant: AnimationVariant;\n $duration: number;\n $delay: number;\n $loop: boolean;\n $glow: boolean;\n $glass: boolean;\n $glowColor?: string;\n $customColor?: string;\n $metallic?: boolean;\n $gradient?: boolean;\n $shadow?: 'soft' | 'hard' | 'elevated' | 'none';\n $ripple?: boolean;\n $neon?: boolean;\n $holographic?: boolean;\n}\n\n/**\n * The four surface treatments that paint the icon themselves — metallic,\n * gradient, neon and holographic — each run a second animation alongside the\n * chosen one, so they all need the base animation string.\n */\nconst effectStyles = (\n theme: Theme,\n flags: IconStyleFlags,\n animation: string,\n color: string,\n): CSSObject => {\n const { $glass, $metallic, $gradient, $neon, $holographic } = flags;\n\n return {\n ...($glass && {\n background: `linear-gradient(135deg, ${alpha(theme.palette.background.paper, 0.2)}, ${alpha(theme.palette.background.paper, 0.1)})`,\n backdropFilter: 'blur(10px)',\n border: `1px solid ${alpha(theme.palette.divider, 0.2)}`,\n boxShadow: `inset 0 1px 1px ${sheen(theme, 0.3)}, 0 8px 32px ${shadowInk(theme, 0.1)}`,\n }),\n ...($metallic && {\n background: `linear-gradient(145deg,\n ${neutralTones(theme).track} 0%,\n ${neutralTones(theme).muted} 25%,\n ${neutralTones(theme).subtle} 50%,\n ${neutralTones(theme).emphasis} 75%,\n ${neutralTones(theme).subtle} 100%)`,\n backgroundSize: '200% 200%',\n animation: `${animation}, ${breatheAnimation} 4s ease-in-out infinite`,\n boxShadow: `inset 0 2px 4px ${sheen(theme, 0.5)},\n inset 0 -2px 4px ${shadowInk(theme, 0.3)},\n 0 4px 8px ${shadowInk(theme, 0.2)}`,\n }),\n ...($gradient && {\n background: `linear-gradient(135deg,\n ${theme.palette.primary.main} 0%,\n ${theme.palette.secondary.main} 100%)`,\n backgroundSize: '200% 200%',\n animation: `${animation}, ${breatheAnimation} 3s ease-in-out infinite`,\n }),\n ...($neon && {\n color,\n textShadow: `0 0 10px ${color}, 0 0 20px ${color}, 0 0 30px ${color}`,\n filter: `brightness(1.2) contrast(1.2)`,\n animation: `${animation}, ${neonFlickerAnimation} 3s ease-in-out infinite`,\n }),\n ...($holographic && {\n background: `linear-gradient(45deg,\n ${theme.palette.primary.main} 0%,\n ${theme.palette.secondary.main} 25%,\n ${theme.palette.error.main} 50%,\n ${theme.palette.warning.main} 75%,\n ${theme.palette.primary.main} 100%)`,\n backgroundSize: '400% 400%',\n animation: `${animation}, ${floatAnimation} 6s ease-in-out infinite`,\n backgroundClip: 'text',\n WebkitBackgroundClip: 'text',\n WebkitTextFillColor: 'transparent',\n filter: `hue-rotate(0deg)`,\n '@keyframes hueRotate': {\n '0%': { filter: 'hue-rotate(0deg)' },\n '100%': { filter: 'hue-rotate(360deg)' },\n },\n '&::before': {\n content: '\"\"',\n position: 'absolute' as const,\n inset: -2,\n borderRadius: '50%',\n background: 'inherit',\n filter: 'blur(10px)',\n opacity: 0.5,\n zIndex: -1,\n },\n }),\n };\n};\n\nexport const iconSx = (theme: Theme, flags: IconStyleFlags): CSSObject => {\n const {\n $size, $fontSize, $animationVariant, $duration, $delay, $loop,\n $glow, $glowColor, $customColor, $shadow, $ripple, $neon,\n } = flags;\n\n const color = $customColor || theme.palette.primary.main;\n const glowColor = $glowColor || color;\n const animation = animationFor($animationVariant, $duration, $delay, $loop);\n\n // Both selectors size the same glyph — MUI icons render an MuiSvgIcon-root,\n // a bare child renders an svg.\n const glyphSize = { fontSize: $fontSize, width: $fontSize, height: $fontSize };\n\n return {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: $size,\n height: $size,\n color,\n animation,\n position: 'relative' as const,\n cursor: 'default',\n borderRadius: '50%',\n transition: 'all 0.3s ease',\n boxShadow: SHADOWS[$shadow ?? 'none']?.(theme) ?? 'none',\n ...($glow && {\n '&::before': {\n content: '\"\"',\n position: 'absolute' as const,\n inset: -8,\n borderRadius: '50%',\n background: `radial-gradient(circle, ${alpha(glowColor, 0.3)} 0%, transparent 70%)`,\n animation: `${glowPulseAnimation} ${$duration * 1.2}s ease-in-out infinite`,\n zIndex: -1,\n },\n filter: `drop-shadow(0 0 8px ${alpha(glowColor, 0.5)})`,\n }),\n ...effectStyles(theme, flags, animation, color),\n ...($ripple && {\n '&::after': {\n content: '\"\"',\n position: 'absolute' as const,\n inset: 0,\n borderRadius: '50%',\n border: `2px solid ${color}`,\n animation: `${rippleAnimation} ${$duration * 1.5}s ease-out infinite`,\n },\n }),\n '& .MuiSvgIcon-root': glyphSize,\n '& svg': glyphSize,\n '&:hover': {\n transform: 'scale(1.05)',\n filter: $neon ? `brightness(1.4) contrast(1.3)` : undefined,\n },\n };\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,aAAa;AA0Bf,IAAM,cAAyE;AAAA,EACpF,IAAI,EAAE,MAAM,IAAI,UAAU,GAAG;AAAA,EAC7B,IAAI,EAAE,MAAM,IAAI,UAAU,GAAG;AAAA,EAC7B,IAAI,EAAE,MAAM,IAAI,UAAU,GAAG;AAAA,EAC7B,IAAI,EAAE,MAAM,IAAI,UAAU,GAAG;AAAA,EAC7B,IAAI,EAAE,MAAM,IAAI,UAAU,GAAG;AAC/B;AAQA,IAAM,aAAmF;AAAA,EACvF,QAAQ,EAAE,WAAW,GAAG,eAAe,IAAI,QAAQ,UAAU,OAAO,EAAE;AAAA,EACtE,OAAO,EAAE,WAAW,GAAG,cAAc,IAAI,QAAQ,eAAe,OAAO,EAAE;AAAA,EACzE,WAAW,EAAE,WAAW,GAAG,kBAAkB,IAAI,QAAQ,eAAe,OAAO,EAAE;AAAA,EACjF,QAAQ,EAAE,WAAW,GAAG,eAAe,IAAI,QAAQ,eAAe,OAAO,EAAE;AAAA,EAC3E,OAAO,EAAE,WAAW,GAAG,cAAc,IAAI,QAAQ,eAAe,OAAO,EAAE;AAAA,EACzE,MAAM,EAAE,WAAW,GAAG,aAAa,IAAI,QAAQ,eAAe,OAAO,EAAE;AAAA,EACvE,MAAM,EAAE,WAAW,GAAG,aAAa,IAAI,QAAQ,eAAe,OAAO,EAAE;AAAA,EACvE,WAAW,EAAE,WAAW,GAAG,kBAAkB,IAAI,QAAQ,eAAe,OAAO,EAAE;AAAA,EACjF,WAAW,EAAE,WAAW,GAAG,kBAAkB,IAAI,QAAQ,eAAe,OAAO,EAAE;AAAA,EACjF,QAAQ,EAAE,WAAW,GAAG,eAAe,IAAI,QAAQ,eAAe,OAAO,EAAE;AAAA,EAC3E,OAAO,EAAE,WAAW,GAAG,cAAc,IAAI,QAAQ,eAAe,OAAO,EAAE;AAAA,EACzE,OAAO,EAAE,WAAW,GAAG,cAAc,IAAI,QAAQ,eAAe,OAAO,EAAE;AAAA,EACzE,OAAO,EAAE,WAAW,GAAG,cAAc,IAAI,QAAQ,eAAe,OAAO,EAAE;AAAA,EACzE,OAAO,EAAE,WAAW,GAAG,cAAc,IAAI,QAAQ,eAAe,OAAO,EAAE;AAAA,EACzE,aAAa,EAAE,WAAW,GAAG,oBAAoB,IAAI,QAAQ,eAAe,OAAO,EAAE;AAAA,EACrF,SAAS,EAAE,WAAW,GAAG,gBAAgB,IAAI,QAAQ,eAAe,OAAO,IAAI;AACjF;AAEA,IAAM,eAAe,CACnB,SACA,UACA,OACA,SACG;AACH,QAAM,OAAO,WAAW,OAAO;AAC/B,MAAI,CAAC,KAAM,QAAO;AAElB,QAAM,iBAAiB,OAAO,aAAa;AAC3C,SAAO,GAAG,KAAK,SAAS,IAAI,WAAW,KAAK,KAAK,KAAK,KAAK,MAAM,IAAI,cAAc,IAAI,QAAQ,IAAI,GAAG,KAAK,MAAM,IAAI;AACvH;AAEA,IAAM,UAAoD;AAAA,EACxD,MAAM,CAAC,UAAU,cAAc,UAAU,OAAO,IAAI,CAAC;AAAA,EACrD,MAAM,CAAC,UAAU,eAAe,UAAU,OAAO,IAAI,CAAC;AAAA,EACtD,UAAU,CAAC,UACT,eAAe,UAAU,OAAO,GAAG,CAAC,gBAAgB,UAAU,OAAO,GAAG,CAAC;AAC7E;AA0BA,IAAM,eAAe,CACnB,OACA,OACA,WACA,UACc;AACd,QAAM,EAAE,QAAQ,WAAW,WAAW,OAAO,aAAa,IAAI;AAE9D,SAAO;AAAA,IACL,GAAI,UAAU;AAAA,MACZ,YAAY,2BAA2B,MAAM,MAAM,QAAQ,WAAW,OAAO,GAAG,CAAC,KAAK,MAAM,MAAM,QAAQ,WAAW,OAAO,GAAG,CAAC;AAAA,MAChI,gBAAgB;AAAA,MAChB,QAAQ,aAAa,MAAM,MAAM,QAAQ,SAAS,GAAG,CAAC;AAAA,MACtD,WAAW,mBAAmB,MAAM,OAAO,GAAG,CAAC,gBAAgB,UAAU,OAAO,GAAG,CAAC;AAAA,IACtF;AAAA,IACA,GAAI,aAAa;AAAA,MACf,YAAY;AAAA,QACV,aAAa,KAAK,EAAE,KAAK;AAAA,QACzB,aAAa,KAAK,EAAE,KAAK;AAAA,QACzB,aAAa,KAAK,EAAE,MAAM;AAAA,QAC1B,aAAa,KAAK,EAAE,QAAQ;AAAA,QAC5B,aAAa,KAAK,EAAE,MAAM;AAAA,MAC5B,gBAAgB;AAAA,MAChB,WAAW,GAAG,SAAS,KAAK,gBAAgB;AAAA,MAC5C,WAAW,mBAAmB,MAAM,OAAO,GAAG,CAAC;AAAA,mCAClB,UAAU,OAAO,GAAG,CAAC;AAAA,4BAC5B,UAAU,OAAO,GAAG,CAAC;AAAA,IAC7C;AAAA,IACA,GAAI,aAAa;AAAA,MACf,YAAY;AAAA,QACV,MAAM,QAAQ,QAAQ,IAAI;AAAA,QAC1B,MAAM,QAAQ,UAAU,IAAI;AAAA,MAC9B,gBAAgB;AAAA,MAChB,WAAW,GAAG,SAAS,KAAK,gBAAgB;AAAA,IAC9C;AAAA,IACA,GAAI,SAAS;AAAA,MACX;AAAA,MACA,YAAY,YAAY,KAAK,cAAc,KAAK,cAAc,KAAK;AAAA,MACnE,QAAQ;AAAA,MACR,WAAW,GAAG,SAAS,KAAK,oBAAoB;AAAA,IAClD;AAAA,IACA,GAAI,gBAAgB;AAAA,MAClB,YAAY;AAAA,QACV,MAAM,QAAQ,QAAQ,IAAI;AAAA,QAC1B,MAAM,QAAQ,UAAU,IAAI;AAAA,QAC5B,MAAM,QAAQ,MAAM,IAAI;AAAA,QACxB,MAAM,QAAQ,QAAQ,IAAI;AAAA,QAC1B,MAAM,QAAQ,QAAQ,IAAI;AAAA,MAC5B,gBAAgB;AAAA,MAChB,WAAW,GAAG,SAAS,KAAK,cAAc;AAAA,MAC1C,gBAAgB;AAAA,MAChB,sBAAsB;AAAA,MACtB,qBAAqB;AAAA,MACrB,QAAQ;AAAA,MACR,wBAAwB;AAAA,QACtB,MAAM,EAAE,QAAQ,mBAAmB;AAAA,QACnC,QAAQ,EAAE,QAAQ,qBAAqB;AAAA,MACzC;AAAA,MACA,aAAa;AAAA,QACX,SAAS;AAAA,QACT,UAAU;AAAA,QACV,OAAO;AAAA,QACP,cAAc;AAAA,QACd,YAAY;AAAA,QACZ,QAAQ;AAAA,QACR,SAAS;AAAA,QACT,QAAQ;AAAA,MACV;AAAA,IACF;AAAA,EACF;AACF;AAEO,IAAM,SAAS,CAAC,OAAc,UAAqC;AACxE,QAAM;AAAA,IACJ;AAAA,IAAO;AAAA,IAAW;AAAA,IAAmB;AAAA,IAAW;AAAA,IAAQ;AAAA,IACxD;AAAA,IAAO;AAAA,IAAY;AAAA,IAAc;AAAA,IAAS;AAAA,IAAS;AAAA,EACrD,IAAI;AAEJ,QAAM,QAAQ,gBAAgB,MAAM,QAAQ,QAAQ;AACpD,QAAM,YAAY,cAAc;AAChC,QAAM,YAAY,aAAa,mBAAmB,WAAW,QAAQ,KAAK;AAI1E,QAAM,YAAY,EAAE,UAAU,WAAW,OAAO,WAAW,QAAQ,UAAU;AAE7E,SAAO;AAAA,IACL,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,OAAO;AAAA,IACP,QAAQ;AAAA,IACR;AAAA,IACA;AAAA,IACA,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,WAAW,QAAQ,WAAW,MAAM,IAAI,KAAK,KAAK;AAAA,IAClD,GAAI,SAAS;AAAA,MACX,aAAa;AAAA,QACX,SAAS;AAAA,QACT,UAAU;AAAA,QACV,OAAO;AAAA,QACP,cAAc;AAAA,QACd,YAAY,2BAA2B,MAAM,WAAW,GAAG,CAAC;AAAA,QAC5D,WAAW,GAAG,kBAAkB,IAAI,YAAY,GAAG;AAAA,QACnD,QAAQ;AAAA,MACV;AAAA,MACA,QAAQ,uBAAuB,MAAM,WAAW,GAAG,CAAC;AAAA,IACtD;AAAA,IACA,GAAG,aAAa,OAAO,OAAO,WAAW,KAAK;AAAA,IAC9C,GAAI,WAAW;AAAA,MACb,YAAY;AAAA,QACV,SAAS;AAAA,QACT,UAAU;AAAA,QACV,OAAO;AAAA,QACP,cAAc;AAAA,QACd,QAAQ,aAAa,KAAK;AAAA,QAC1B,WAAW,GAAG,eAAe,IAAI,YAAY,GAAG;AAAA,MAClD;AAAA,IACF;AAAA,IACA,sBAAsB;AAAA,IACtB,SAAS;AAAA,IACT,WAAW;AAAA,MACT,WAAW;AAAA,MACX,QAAQ,QAAQ,kCAAkC;AAAA,IACpD;AAAA,EACF;AACF;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/navigation/Breadcrumbs/BreadcrumbEntry.tsx"],"sourcesContent":["import Home from '@mui/icons-material/Home';\nimport MoreHoriz from '@mui/icons-material/MoreHoriz';\nimport Box from '@mui/material/Box/index.js';\nimport Fade from '@mui/material/Fade/index.js';\nimport Link from '@mui/material/Link/index.js';\nimport Tooltip from '@mui/material/Tooltip/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 { breadcrumbLinkStyles } from './Breadcrumbs.styles';\nimport type { BreadcrumbItem } from './Breadcrumbs.types';\nimport type { BreadcrumbCopy } from '../../../copy';\nimport { sheen, uiInk } from '../../../tokens/ink';\n\nconst BreadcrumbLink = styled(Link, {\n shouldForwardProp: (prop) => prop !== 'size' && prop !== 'active' && prop !== 'visualStyle' })<{ size?: string; active?: boolean; visualStyle?: string }>(\n ({ theme, size, active, visualStyle }) => ({\n ...breadcrumbLinkStyles({ theme, size, active, visualStyle }) }),\n);\n\nconst BreadcrumbText = styled(Typography, {\n shouldForwardProp: (prop) => prop !== 'size' && prop !== 'visualStyle' })<{ size?: string; visualStyle?: string }>(({ theme, size, visualStyle }) => ({\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(0.5),\n fontSize: size === 'sm' ? '0.875rem' : size === 'lg' ? '1.125rem' : '1rem',\n fontWeight: 600,\n color: theme.palette.primary.main,\n padding: theme.spacing(0.5, 0.75),\n borderRadius: theme.spacing(0.75),\n position: 'relative',\n\n ...(visualStyle === 'glass' && {\n background: `linear-gradient(135deg, ${alpha(theme.palette.primary.main, 0.1)} 0%, ${alpha(theme.palette.primary.main, 0.05)} 100%)`,\n backdropFilter: 'blur(4px)',\n border: `1px solid ${alpha(theme.palette.primary.main, 0.2)}` }),\n\n '& .breadcrumb-icon': {\n color: theme.palette.primary.main },\n\n // Mobile responsiveness\n [theme.breakpoints.down('sm')]: {\n fontSize: size === 'lg' ? '1rem' : size === 'sm' ? '0.75rem' : '0.875rem',\n padding: theme.spacing(0.375, 0.5) } }));\n\n// Animated separator wrapper\n\n// Mobile collapsed menu component\n// The list that drops down from the \"...\" trigger.\nconst CollapsedItemsPopover: React.FC<{\n open: boolean;\n items: BreadcrumbItem[];\n size: string;\n visualStyle?: string;\n dataTestId?: string;\n onSelect: () => void;\n}> = ({ open, items, dataTestId, onSelect }) => (\n<Fade in={open}>\n <Box\n sx={{\n background: (theme) =>\n theme.palette.mode === 'dark'\n ? alpha(uiInk(theme).glassSlate, 0.95)\n : sheen(theme, 0.95),\n backdropFilter: 'blur(10px)',\n borderRadius: 1,\n boxShadow: 3,\n p: 1,\n minWidth: 150 }}\n >\n {items.map((item, index) => (\n <Box\n key={index}\n component=\"a\"\n href={item.href || '#'}\n onClick={(e) => {\n onSelect();\n item.onClick?.(e);\n }}\n sx={{\n display: 'block',\n px: 2,\n py: 1,\n color: 'text.secondary',\n textDecoration: 'none',\n borderRadius: 0.5,\n transition: 'all 0.2s',\n '&:hover': {\n backgroundColor: 'action.hover',\n color: 'primary.main' } }}\n data-testid={dataTestId ? `${dataTestId}-collapsed-item-${index}` : `breadcrumbs-collapsed-item-${index}`}\n >\n {item.label}\n </Box>\n ))}\n </Box>\n </Fade>\n);\n\nconst CollapsedMenu = ({\n items,\n size,\n visualStyle,\n copy,\n dataTestId }: {\n items: BreadcrumbItem[];\n size: string;\n visualStyle?: string;\n copy: BreadcrumbCopy;\n dataTestId?: string;\n}) => {\n const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null);\n const open = Boolean(anchorEl);\n\n const handleClick = (event: React.MouseEvent<HTMLElement>) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n return (\n <>\n <Tooltip title={copy.showMore} arrow>\n <BreadcrumbLink\n onClick={handleClick}\n size={size}\n visualStyle={visualStyle}\n sx={{ cursor: 'pointer' }}\n data-testid={dataTestId ? `${dataTestId}-collapsed-menu` : 'breadcrumbs-collapsed-menu'}\n >\n <MoreHoriz className=\"breadcrumb-icon\" />\n </BreadcrumbLink>\n </Tooltip>\n <Box\n sx={{\n position: 'absolute',\n top: '100%',\n left: 0,\n mt: 1,\n display: open ? 'block' : 'none',\n zIndex: 1000 }}\n data-testid={dataTestId ? `${dataTestId}-collapsed-menu-items` : 'breadcrumbs-collapsed-menu-items'}\n >\n <CollapsedItemsPopover\n open={open}\n items={items}\n size={size}\n visualStyle={visualStyle}\n dataTestId={dataTestId}\n onSelect={handleClose}\n />\n </Box>\n </>\n );\n};\n\n// The leading crumb gets a house unless it brings its own icon; everything else\n// shows only what it supplies.\nconst crumbIcon = ({\n item,\n isFirst,\n showHomeIcon,\n iconSize }: {\n item: BreadcrumbItem;\n isFirst: boolean;\n showHomeIcon: boolean;\n iconSize: 'small' | 'medium';\n}) => {\n if (isFirst && showHomeIcon && !item.icon) {\n return <Home className=\"breadcrumb-icon\" fontSize={iconSize} />;\n }\n\n if (!item.icon) return null;\n\n return (\n <Box component=\"span\" className=\"breadcrumb-icon\" sx={{ display: 'flex', alignItems: 'center' }}>\n {item.icon}\n </Box>\n );\n};\n\nconst EllipsisCrumb: React.FC<{ label: string; copy: BreadcrumbCopy; dataTestId?: string }> = ({\n label,\n copy,\n dataTestId }) => (\n <Tooltip title={copy.moreItems} arrow>\n <Box\n sx={{\n px: 1,\n color: 'text.disabled',\n cursor: 'default',\n userSelect: 'none' }}\n data-testid={dataTestId ? `${dataTestId}-ellipsis` : 'breadcrumbs-ellipsis'}\n >\n {label}\n </Box>\n </Tooltip>\n);\n\n// The same conditional test id was written at each crumb variant. An item that\n// names its OWN id wins: see `BreadcrumbItem.dataTestId`.\nconst makeTestId =\n (dataTestId?: string) =>\n (suffix: string, own?: string): string =>\n own ?? (dataTestId ? `${dataTestId}-${suffix}` : `breadcrumbs-${suffix}`);\n\nconst ClickableCrumb: React.FC<{\n item: BreadcrumbItem;\n index: number;\n icon: React.ReactNode;\n size: string;\n variant: string;\n isActive: boolean;\n testId: (suffix: string, own?: string) => string;\n}> = ({ item, index, icon, size, variant, isActive, testId }) => (\n <Tooltip title={item.tooltip || item.label} arrow disableHoverListener={!item.tooltip}>\n <BreadcrumbLink\n href={item.href || '#'}\n onClick={item.onClick}\n size={size}\n visualStyle={variant}\n active={isActive}\n underline=\"none\"\n aria-label={item.ariaLabel || item.label}\n data-testid={testId(`link-${index}`, item.dataTestId)}\n >\n {icon}\n <span>{item.label}</span>\n </BreadcrumbLink>\n </Tooltip>\n);\n\n// One crumb: the collapsed-menu stand-in, the ellipsis, the active tail item or\n// a plain link.\nexport const BreadcrumbEntry: React.FC<{\n item: BreadcrumbItem & { isEllipsis?: boolean };\n index: number;\n itemCount: number;\n collapsedItems: BreadcrumbItem[];\n collapseBehavior: string;\n separator: React.ReactNode;\n showHomeIcon: boolean;\n iconSize: 'small' | 'medium';\n size: string;\n variant: string;\n copy: BreadcrumbCopy;\n dataTestId?: string;\n}> = ({\n item,\n index,\n itemCount,\n collapsedItems,\n collapseBehavior,\n separator,\n showHomeIcon,\n iconSize,\n size,\n variant,\n copy,\n dataTestId }) => {\n const testId = makeTestId(dataTestId);\n const isLast = index === itemCount - 1;\n // The tail crumb is the current page unless it is the ellipsis placeholder.\n const isActive = item.active || (isLast && !item.isEllipsis);\n\n const isCollapsePoint =\n index === 1 && collapsedItems.length > 0 && collapseBehavior === 'menu';\n\n if (isCollapsePoint) {\n return (\n <>\n <CollapsedMenu\n copy={copy}\n items={collapsedItems}\n size={size}\n visualStyle={variant}\n dataTestId={dataTestId}\n />\n {separator}\n </>\n );\n }\n\n if (item.isEllipsis) {\n return <EllipsisCrumb copy={copy} label={item.label} dataTestId={dataTestId} />;\n }\n\n const icon = crumbIcon({ item, isFirst: index === 0, showHomeIcon, iconSize });\n\n if (isActive) {\n return (\n <BreadcrumbText\n size={size}\n visualStyle={variant}\n aria-current=\"page\"\n data-testid={testId(`item-${index}`, item.dataTestId)}\n >\n {icon}\n <span>{item.label}</span>\n </BreadcrumbText>\n );\n }\n\n return (\n <ClickableCrumb\n item={item}\n index={index}\n icon={icon}\n size={size}\n variant={variant}\n isActive={isActive}\n testId={testId}\n />\n );\n};\n"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/data-display/DataViews/list-card-cells.tsx"],"sourcesContent":["\"use client\";\n\nimport { createContext, useContext, type ReactNode } from \"react\";\n\nimport { Box } from \"../../../mui/Box\";\n\n/**\n * THE CELL CONFIG — the list declares its columns once, every row obeys them.\n *\n * The row used to name its middle slots: a title, a subtitle beneath it, then\n * labelled `meta` pairs, then a value, then a status. That vocabulary was the\n * mistake twice over. It reads as a description of every list, and no list is\n * quite that shape — so a consumer wanting a date over a time, or an order\n * number over the client who placed it, had to pick whichever named slot was\n * least wrong and take its styling with it. And because each row decided its own\n * content, alignment across a list was a convention the rows could break.\n *\n * So cells are CONFIGURED, the way a data grid's columns are: the list declares\n * them once, and every card renders the same columns in the same tracks from its\n * own row. Two cards cannot disagree about the shape of the list, because\n * neither of them is deciding it.\n *\n * THE SECOND LINE IS AN OPTION, NOT A SUBTITLE. `secondary` is not \"the small\n * grey text under the title\" — it is the cell's second line, for whatever pairs\n * naturally in this list: date over time, name over e-mail, pedido over cliente.\n * It carries no meaning the config did not put there, and a cell that wants one\n * line simply omits it.\n */\nexport interface ListCardCellConfig<T extends Record<string, unknown> = Record<string, unknown>> {\n /** Stable key. Also the cell's `data-slot`, so a test can find it by name. */\n id: string;\n /** The cell's first line, from the row. */\n primary: (row: T) => ReactNode;\n /** An optional second line beneath it. Anything that pairs with the first. */\n secondary?: (row: T) => ReactNode;\n /**\n * Which edge the lines sit on. `end` is what a column of numbers wants, so its\n * digits line up with the values above and below it — and it switches the cell\n * to tabular figures, since nothing else ever asks for that alignment.\n */\n align?: \"start\" | \"center\" | \"end\";\n /**\n * This cell's track, as a `grid-template-columns` entry. Defaults to an even\n * share of the spare width.\n *\n * A cell holding a number usually wants `max-content`: the rail is then as\n * wide as the widest amount in the list and no wider, and its right edge does\n * not move when a longer row arrives.\n */\n width?: string;\n /** Emphasise the first line — for the one figure the row is really about. */\n strong?: boolean;\n}\n\nconst ALIGN_ITEMS = { start: \"flex-start\", center: \"center\", end: \"flex-end\" } as const;\nconst TEXT_ALIGN = { start: \"left\", center: \"center\", end: \"right\" } as const;\n\n/** The default track: an even share of whatever width the row has spare. */\nexport const DEFAULT_CELL_WIDTH = \"minmax(0, 1fr)\";\n\n/** The tracks a cell config asks for, in order. */\nexport function cellTracks(cells: readonly ListCardCellConfig<never>[] | undefined): string[] {\n return (cells ?? []).map((cell) => cell.width ?? DEFAULT_CELL_WIDTH);\n}\n\n/**\n * The config handed down by the list.\n *\n * A card inside a group takes its columns from here rather than from props, so\n * there is exactly one declaration of the list's shape and no way for a row to\n * hold a different one.\n */\nconst CellConfigContext = createContext<readonly ListCardCellConfig<never>[] | null>(null);\n\nexport function CellConfigProvider({\n cells,\n children,\n}: {\n cells: readonly ListCardCellConfig<never>[] | undefined;\n children: ReactNode;\n}): React.JSX.Element {\n return <CellConfigContext.Provider value={cells ?? null}>{children}</CellConfigContext.Provider>;\n}\n\n/** The list's cell config, if it declared one. */\nexport function useCellConfig(): readonly ListCardCellConfig<never>[] | null {\n return useContext(CellConfigContext);\n}\n\n/**\n * One cell rendered from its config.\n *\n * Both lines truncate rather than wrap: a row is a fixed-height scanning unit,\n * and a cell that grows to two lines because one name was long drags every rail\n * on that row down with it. Whatever does not fit belongs in the expandable\n * body, which is the entire reason the body exists.\n */\nfunction Cell<T extends Record<string, unknown>>({\n config,\n row,\n}: {\n config: ListCardCellConfig<T>;\n row: T;\n}): React.JSX.Element {\n const align = config.align ?? \"start\";\n const numeric = align === \"end\" ? { fontVariantNumeric: \"tabular-nums\" } : {};\n const clamp = {\n minWidth: 0,\n maxWidth: \"100%\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n } as const;\n const secondary = config.secondary?.(row);\n return (\n <Box\n data-slot={`cell-${config.id}`}\n sx={{\n minWidth: 0,\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: ALIGN_ITEMS[align],\n justifyContent: \"center\",\n textAlign: TEXT_ALIGN[align],\n }}\n >\n <Box\n component=\"span\"\n sx={{ ...clamp, fontSize: 14, fontWeight: config.strong ? 700 : 600, lineHeight: 1.25, ...numeric }}\n >\n {config.primary(row)}\n </Box>\n {secondary != null && (\n <Box\n component=\"span\"\n sx={{ ...clamp, fontSize: 12.5, lineHeight: 1.3, color: \"text.secondary\", ...numeric }}\n >\n {secondary}\n </Box>\n )}\n </Box>\n );\n}\n\n/** Every configured cell of a row, in the list's declared order. */\nexport function ListCardCells<T extends Record<string, unknown>>({\n cells,\n row,\n}: {\n cells: readonly ListCardCellConfig<T>[];\n row: T;\n}): React.JSX.Element {\n return (\n <>\n {cells.map((config) => (\n <Cell key={config.id} config={config} row={row} />\n ))}\n </>\n );\n}\n"],"mappings":";;;;;AAEA,SAAS,eAAe,kBAAkC;AA+EjD,SAwEL,UAxEK,KAkCL,YAlCK;AA3BT,IAAM,cAAc,EAAE,OAAO,cAAc,QAAQ,UAAU,KAAK,WAAW;AAC7E,IAAM,aAAa,EAAE,OAAO,QAAQ,QAAQ,UAAU,KAAK,QAAQ;AAG5D,IAAM,qBAAqB;AAG3B,SAAS,WAAW,OAAmE;AAC5F,UAAQ,SAAS,CAAC,GAAG,IAAI,CAAC,SAAS,KAAK,SAAS,kBAAkB;AACrE;AASA,IAAM,oBAAoB,cAA2D,IAAI;AAElF,SAAS,mBAAmB;AAAA,EACjC;AAAA,EACA;AACF,GAGsB;AACpB,SAAO,oBAAC,kBAAkB,UAAlB,EAA2B,OAAO,SAAS,MAAO,UAAS;AACrE;AAGO,SAAS,gBAA6D;AAC3E,SAAO,WAAW,iBAAiB;AACrC;AAUA,SAAS,KAAwC;AAAA,EAC/C;AAAA,EACA;AACF,GAGsB;AACpB,QAAM,QAAQ,OAAO,SAAS;AAC9B,QAAM,UAAU,UAAU,QAAQ,EAAE,oBAAoB,eAAe,IAAI,CAAC;AAC5E,QAAM,QAAQ;AAAA,IACZ,UAAU;AAAA,IACV,UAAU;AAAA,IACV,UAAU;AAAA,IACV,cAAc;AAAA,IACd,YAAY;AAAA,EACd;AACA,QAAM,YAAY,OAAO,YAAY,GAAG;AACxC,SACE;AAAA,IAACA;AAAA,IAAA;AAAA,MACC,aAAW,QAAQ,OAAO,EAAE;AAAA,MAC5B,IAAI;AAAA,QACF,UAAU;AAAA,QACV,SAAS;AAAA,QACT,eAAe;AAAA,QACf,YAAY,YAAY,KAAK;AAAA,QAC7B,gBAAgB;AAAA,QAChB,WAAW,WAAW,KAAK;AAAA,MAC7B;AAAA,MAEA;AAAA;AAAA,UAACA;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,IAAI,EAAE,GAAG,OAAO,UAAU,IAAI,YAAY,OAAO,SAAS,MAAM,KAAK,YAAY,MAAM,GAAG,QAAQ;AAAA,YAEjG,iBAAO,QAAQ,GAAG;AAAA;AAAA,QACrB;AAAA,QACC,aAAa,QACZ;AAAA,UAACA;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,IAAI,EAAE,GAAG,OAAO,UAAU,MAAM,YAAY,KAAK,OAAO,kBAAkB,GAAG,QAAQ;AAAA,YAEpF;AAAA;AAAA,QACH;AAAA;AAAA;AAAA,EAEJ;AAEJ;AAGO,SAAS,cAAiD;AAAA,EAC/D;AAAA,EACA;AACF,GAGsB;AACpB,SACE,gCACG,gBAAM,IAAI,CAAC,WACV,oBAAC,QAAqB,QAAgB,OAA3B,OAAO,EAA8B,CACjD,GACH;AAEJ;","names":["default"]}