@12-apps/ui 6.27.1 → 6.28.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 (583) hide show
  1. package/dist/_internal/components/data-display/Alert/Alert.js +5 -4
  2. package/dist/_internal/components/data-display/Alert/Alert.metrics.js +3 -2
  3. package/dist/_internal/components/data-display/Alert/Alert.styles.js +4 -3
  4. package/dist/_internal/components/data-display/AsyncStateContainer/AsyncStateContainer.js +4 -4
  5. package/dist/_internal/components/data-display/Avatar/Avatar.js +6 -5
  6. package/dist/_internal/components/data-display/Avatar/Avatar.view.js +4 -3
  7. package/dist/_internal/components/data-display/Badge/Badge.animations.js +4 -3
  8. package/dist/_internal/components/data-display/Badge/Badge.js +8 -7
  9. package/dist/_internal/components/data-display/Badge/Badge.metrics.js +3 -2
  10. package/dist/_internal/components/data-display/Badge/Badge.styles.js +6 -5
  11. package/dist/_internal/components/data-display/Badge/Badge.variants.js +4 -3
  12. package/dist/_internal/components/data-display/Badge/BadgeContent.js +7 -6
  13. package/dist/_internal/components/data-display/Banner/Banner.js +5 -4
  14. package/dist/_internal/components/data-display/Banner/Banner.styles.js +4 -3
  15. package/dist/_internal/components/data-display/CardKit/CardKebab.js +5 -4
  16. package/dist/_internal/components/data-display/CardKit/card-actions-context.js +6 -5
  17. package/dist/_internal/components/data-display/CardKit/use-remove-confirm.js +10 -9
  18. package/dist/_internal/components/data-display/CardKit/use-row-confirm.js +5 -4
  19. package/dist/_internal/components/data-display/Carousel/Carousel.chrome.js +2 -1
  20. package/dist/_internal/components/data-display/Carousel/Carousel.js +5 -4
  21. package/dist/_internal/components/data-display/Carousel/Carousel.parts.js +2 -1
  22. package/dist/_internal/components/data-display/Carousel/Carousel.styles.js +2 -1
  23. package/dist/_internal/components/data-display/Chart/Chart.js +5 -4
  24. package/dist/_internal/components/data-display/Chart/SpecChart.js +9 -8
  25. package/dist/_internal/components/data-display/Chart/chart-context.js +2 -1
  26. package/dist/_internal/components/data-display/Chart/chart-internals.js +2 -1
  27. package/dist/_internal/components/data-display/Chart/chart-renderers.js +4 -3
  28. package/dist/_internal/components/data-display/Chart/chart-spec.js +2 -2
  29. package/dist/_internal/components/data-display/DataGrid/DataGrid.body.js +2 -2
  30. package/dist/_internal/components/data-display/DataGrid/DataGrid.cells.js +1 -1
  31. package/dist/_internal/components/data-display/DataGrid/DataGrid.js +3 -3
  32. package/dist/_internal/components/data-display/DataViews/DataViewsBoard.js +5 -4
  33. package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +49 -47
  34. package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +68 -66
  35. package/dist/_internal/components/data-display/DataViews/DeleteViewDialog.js +9 -8
  36. package/dist/_internal/components/data-display/DataViews/ManageViewsDialog.js +10 -9
  37. package/dist/_internal/components/data-display/DataViews/SaveViewModal.js +15 -14
  38. package/dist/_internal/components/data-display/DataViews/base-card.js +11 -10
  39. package/dist/_internal/components/data-display/DataViews/base-list-card-geometry.js +12 -11
  40. package/dist/_internal/components/data-display/DataViews/base-list-card-gutters.js +4 -3
  41. package/dist/_internal/components/data-display/DataViews/base-list-card-slots.js +8 -7
  42. package/dist/_internal/components/data-display/DataViews/base-list-card.js +17 -16
  43. package/dist/_internal/components/data-display/DataViews/card-surface.js +5 -4
  44. package/dist/_internal/components/data-display/DataViews/data-views-category-pill.js +8 -8
  45. package/dist/_internal/components/data-display/DataViews/data-views-columns-tab.js +5 -4
  46. package/dist/_internal/components/data-display/DataViews/data-views-columns.js +6 -5
  47. package/dist/_internal/components/data-display/DataViews/data-views-display-panel.js +10 -9
  48. package/dist/_internal/components/data-display/DataViews/data-views-display-tabs.js +5 -4
  49. package/dist/_internal/components/data-display/DataViews/data-views-empty.js +7 -6
  50. package/dist/_internal/components/data-display/DataViews/data-views-export.js +7 -6
  51. package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +11 -11
  52. package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +16 -14
  53. package/dist/_internal/components/data-display/DataViews/data-views-grid-helpers.js +5 -4
  54. package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +45 -43
  55. package/dist/_internal/components/data-display/DataViews/data-views-header-row.js +5 -4
  56. package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +19 -18
  57. package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +8 -7
  58. package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +11 -10
  59. package/dist/_internal/components/data-display/DataViews/data-views-range-pill.js +2 -2
  60. package/dist/_internal/components/data-display/DataViews/data-views-row-detail.js +8 -0
  61. package/dist/_internal/components/data-display/DataViews/data-views-row-detail.js.map +1 -0
  62. package/dist/_internal/components/data-display/DataViews/data-views-scope-tabs.js +2 -2
  63. package/dist/_internal/components/data-display/DataViews/data-views-select-all-strip.js +7 -6
  64. package/dist/_internal/components/data-display/DataViews/data-views-shell-toolbar.js +15 -14
  65. package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +22 -21
  66. package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +14 -13
  67. package/dist/_internal/components/data-display/DataViews/data-views-view-nav.js +7 -6
  68. package/dist/_internal/components/data-display/DataViews/list-card-rails.js +2 -2
  69. package/dist/_internal/components/data-display/DataViews/save-view-preview.js +5 -4
  70. package/dist/_internal/components/data-display/DataViews/use-data-views-state.js +8 -7
  71. package/dist/_internal/components/data-display/DataViews/use-saved-views-controller.js +2 -2
  72. package/dist/_internal/components/data-display/DescriptionItem/DescriptionItem.js +5 -4
  73. package/dist/_internal/components/data-display/FleetMap/FleetBody.js +15 -15
  74. package/dist/_internal/components/data-display/FleetMap/FleetCanvas.js +11 -11
  75. package/dist/_internal/components/data-display/FleetMap/FleetMap.js +18 -17
  76. package/dist/_internal/components/data-display/FleetMap/FleetRoster.js +3 -3
  77. package/dist/_internal/components/data-display/LazyImage/LazyImage.js +3 -3
  78. package/dist/_internal/components/data-display/Lightbox/Lightbox.js +4 -4
  79. package/dist/_internal/components/data-display/LoadingState/LoadingState.js +3 -3
  80. package/dist/_internal/components/data-display/MapPreview/MapDecorations.js +2 -2
  81. package/dist/_internal/components/data-display/MapPreview/MapMarkers.js +2 -2
  82. package/dist/_internal/components/data-display/MapPreview/MapPreview.hooks.js +2 -2
  83. package/dist/_internal/components/data-display/MapPreview/MapPreview.js +10 -10
  84. package/dist/_internal/components/data-display/MapPreview/MapTiles.js +2 -2
  85. package/dist/_internal/components/data-display/MapPreview/StaticMapView.js +4 -4
  86. package/dist/_internal/components/data-display/MapPreview/useMapPreview.js +3 -3
  87. package/dist/_internal/components/data-display/Progress/Progress.js +5 -4
  88. package/dist/_internal/components/data-display/Progress/Progress.metrics.js +3 -2
  89. package/dist/_internal/components/data-display/Progress/Progress.styles.js +4 -3
  90. package/dist/_internal/components/data-display/Sheet/Sheet.body.js +2 -1
  91. package/dist/_internal/components/data-display/Sheet/Sheet.js +4 -3
  92. package/dist/_internal/components/data-display/Sheet/Sheet.styles.js +2 -1
  93. package/dist/_internal/components/data-display/StatCard/StatCard.js +3 -3
  94. package/dist/_internal/components/data-display/Table/Table.js +2 -2
  95. package/dist/_internal/components/data-display/index.js +74 -73
  96. package/dist/_internal/components/feedback/ConfirmAction/ConfirmButton.js +5 -4
  97. package/dist/_internal/components/feedback/Dialog/Dialog.js +2 -2
  98. package/dist/_internal/components/feedback/TutorialOverlay/TutorialOverlay.js +2 -2
  99. package/dist/_internal/components/feedback/index.js +9 -8
  100. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.hooks.js +4 -4
  101. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.js +6 -6
  102. package/dist/_internal/components/form/Button/Button.js +4 -3
  103. package/dist/_internal/components/form/Button/Button.styles.js +3 -2
  104. package/dist/_internal/components/form/Calendar/Calendar.js +2 -2
  105. package/dist/_internal/components/form/CategorySelect/CategoryPanel.js +4 -4
  106. package/dist/_internal/components/form/CategorySelect/CategoryPanelList.js +3 -3
  107. package/dist/_internal/components/form/CategorySelect/CategoryRows.js +2 -2
  108. package/dist/_internal/components/form/CategorySelect/CategorySelect.js +6 -6
  109. package/dist/_internal/components/form/CepField/CepField.js +3 -3
  110. package/dist/_internal/components/form/Checkbox/Checkbox.js +3 -2
  111. package/dist/_internal/components/form/CodeEditor/CodeEditor.js +2 -2
  112. package/dist/_internal/components/form/Command/Command.js +4 -3
  113. package/dist/_internal/components/form/Command/Command.styles.js +2 -1
  114. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.js +3 -3
  115. package/dist/_internal/components/form/Input/Input.js +2 -2
  116. package/dist/_internal/components/form/Label/Label.js +2 -1
  117. package/dist/_internal/components/form/Label/Label.styles.js +2 -1
  118. package/dist/_internal/components/form/Menubar/Menubar.item.js +2 -1
  119. package/dist/_internal/components/form/Menubar/Menubar.js +2 -1
  120. package/dist/_internal/components/form/Menubar/Menubar.styles.js +2 -1
  121. package/dist/_internal/components/form/Menubar/Menubar.toolbar.js +2 -1
  122. package/dist/_internal/components/form/Switch/Switch.js +5 -4
  123. package/dist/_internal/components/form/Switch/Switch.parts.js +4 -3
  124. package/dist/_internal/components/form/Switch/Switch.styles.js +3 -2
  125. package/dist/_internal/components/form/index.js +24 -23
  126. package/dist/_internal/components/form/total-form/Fields/CategoryField.js +7 -7
  127. package/dist/_internal/components/form/total-form/Fields/CepField.js +4 -4
  128. package/dist/_internal/components/form/total-form/Fields/TextField.js +3 -3
  129. package/dist/_internal/components/form/total-form/Fields/index.js +15 -15
  130. package/dist/_internal/components/form/total-form/SubmitButton.js +5 -4
  131. package/dist/_internal/components/index.js +122 -121
  132. package/dist/_internal/components/layout/Box/Box.js +5 -4
  133. package/dist/_internal/components/layout/Card/Card.js +2 -2
  134. package/dist/_internal/components/layout/ScrollArea/ScrollArea.js +2 -2
  135. package/dist/_internal/components/layout/SettingsLayout/SettingsLayout.js +4 -4
  136. package/dist/_internal/components/layout/SettingsLayout/SettingsPanel.js +2 -2
  137. package/dist/_internal/components/layout/Skeleton/Skeleton.js +2 -2
  138. package/dist/_internal/components/layout/Stack/Stack.js +6 -5
  139. package/dist/_internal/components/layout/index.js +9 -9
  140. package/dist/_internal/components/navigation/AppHeader/AppHeader.details.js +9 -8
  141. package/dist/_internal/components/navigation/AppHeader/AppHeader.identity.js +2 -1
  142. package/dist/_internal/components/navigation/NavigationMenu/NavigationMegaSection.js +3 -3
  143. package/dist/_internal/components/navigation/NavigationMenu/NavigationMenu.js +5 -5
  144. package/dist/_internal/components/navigation/NavigationMenu/NavigationMenuItem.js +2 -2
  145. package/dist/_internal/components/navigation/NavigationMenu/NavigationStandardBody.js +3 -3
  146. package/dist/_internal/components/navigation/Tabs/Tabs.js +2 -2
  147. package/dist/_internal/components/navigation/index.js +18 -17
  148. package/dist/_internal/components/typography/Heading/Heading.js +5 -4
  149. package/dist/_internal/components/typography/Heading/Heading.metrics.js +3 -2
  150. package/dist/_internal/components/typography/Heading/Heading.styles.js +4 -3
  151. package/dist/_internal/components/typography/Paragraph/Paragraph.js +3 -2
  152. package/dist/_internal/components/typography/Text/Text.js +4 -3
  153. package/dist/_internal/components/typography/Text/Text.metrics.js +3 -2
  154. package/dist/_internal/components/typography/index.js +8 -7
  155. package/dist/_internal/icons/Icon.js +5 -4
  156. package/dist/_internal/provider/UiProvider.js +4 -3
  157. package/dist/_internal/provider/mui-bridge.js +3 -2
  158. package/dist/_internal/provider/use-ui-theme.js +4 -3
  159. package/dist/_internal/social-login-button/social-login-button.js +12 -11
  160. package/dist/_internal/tokens/ink-over.js +17 -0
  161. package/dist/_internal/tokens/ink-over.js.map +1 -0
  162. package/dist/_internal/tokens/theme.js +5 -3
  163. package/dist/_internal/user-avatar/user-avatar.js +13 -12
  164. package/dist/charts.js +19 -18
  165. package/dist/{chunk-Q3GSDSK2.js → chunk-236QP424.js} +2 -2
  166. package/dist/{chunk-JFRKBSWI.js → chunk-237NDIT2.js} +2 -2
  167. package/dist/chunk-2BYKTBDL.js +33 -0
  168. package/dist/chunk-2BYKTBDL.js.map +1 -0
  169. package/dist/{chunk-TQOPF7LD.js → chunk-2L2NWXWJ.js} +2 -2
  170. package/dist/{chunk-M4NFXC5R.js → chunk-2WSU6OGE.js} +5 -5
  171. package/dist/{chunk-72T5PAW7.js → chunk-3BPDHWVF.js} +9 -9
  172. package/dist/{chunk-EOHKZGOZ.js → chunk-3PUOLOEP.js} +2 -2
  173. package/dist/{chunk-ECMJ5VPW.js → chunk-3TFUAKWJ.js} +2 -2
  174. package/dist/{chunk-4ETQRBZC.js → chunk-46UPILLK.js} +4 -4
  175. package/dist/{chunk-6VHCSPKK.js → chunk-4H4Y2SX3.js} +3 -3
  176. package/dist/{chunk-L7S6N67X.js → chunk-4OSGKO7E.js} +2 -2
  177. package/dist/{chunk-UG76BO5K.js → chunk-5KFZGB5U.js} +2 -2
  178. package/dist/{chunk-FF3R67WD.js → chunk-5UC2RNOY.js} +4 -4
  179. package/dist/{chunk-EMNGIYH6.js → chunk-7TZ6OC5T.js} +5 -5
  180. package/dist/{chunk-G2JPUHEJ.js → chunk-AIBNBWQU.js} +2 -2
  181. package/dist/{chunk-QE2C35TO.js → chunk-ALAJBLBE.js} +5 -5
  182. package/dist/{chunk-E5LWJDI3.js → chunk-AROBXRC5.js} +11 -5
  183. package/dist/chunk-AROBXRC5.js.map +1 -0
  184. package/dist/{chunk-AIRWM7KK.js → chunk-AVI3XHRQ.js} +4 -4
  185. package/dist/{chunk-IE7ISTLQ.js → chunk-B443IIQG.js} +4 -4
  186. package/dist/{chunk-CKJI7JO5.js → chunk-BEWD734I.js} +2 -2
  187. package/dist/{chunk-RRX6ZTNX.js → chunk-BLT5ZBVL.js} +2 -2
  188. package/dist/{chunk-MDTSMJ7C.js → chunk-BYMWW65P.js} +3 -3
  189. package/dist/{chunk-Q3OFOOO7.js → chunk-C5EFVSBN.js} +2 -2
  190. package/dist/{chunk-Y55ILY2F.js → chunk-C5YBXQTK.js} +3 -3
  191. package/dist/{chunk-YANLN6HP.js → chunk-D6HDJVQW.js} +5 -5
  192. package/dist/{chunk-DIHVWBQV.js → chunk-DEE6IPGI.js} +32 -6
  193. package/dist/chunk-DEE6IPGI.js.map +1 -0
  194. package/dist/{chunk-ZA4U5GDU.js → chunk-DORPR2YP.js} +2 -2
  195. package/dist/{chunk-6YLAVHV4.js → chunk-DTKMBI7B.js} +4 -4
  196. package/dist/{chunk-5QUSX3TC.js → chunk-DVE53B2L.js} +7 -7
  197. package/dist/chunk-DVE53B2L.js.map +1 -0
  198. package/dist/{chunk-JXNT5TUP.js → chunk-DVEYD27F.js} +2 -2
  199. package/dist/{chunk-WZUNBSS7.js → chunk-DVUPIVI2.js} +4 -4
  200. package/dist/{chunk-CMN26J5Y.js → chunk-E6D2Y5EK.js} +2 -2
  201. package/dist/{chunk-HKB5C2KY.js → chunk-EMAX7RPN.js} +5 -5
  202. package/dist/{chunk-ZAJO2B75.js → chunk-EPRA5QLB.js} +2 -2
  203. package/dist/{chunk-ERX4XIYC.js → chunk-EUKYQXYU.js} +2 -2
  204. package/dist/{chunk-C3CMEDSO.js → chunk-EVXFEXBS.js} +2 -2
  205. package/dist/{chunk-O7HLQTB7.js → chunk-EYC6ERJJ.js} +3 -3
  206. package/dist/chunk-EYC6ERJJ.js.map +1 -0
  207. package/dist/{chunk-DYESJJ3Q.js → chunk-EZNTM6PT.js} +4 -4
  208. package/dist/{chunk-67ALTEWH.js → chunk-FGKKLHKY.js} +2 -2
  209. package/dist/{chunk-OXYR2HVK.js → chunk-FOKBP6HR.js} +10 -10
  210. package/dist/{chunk-22X7TT6Z.js → chunk-FR6AJSMT.js} +5 -5
  211. package/dist/{chunk-TUO47RL2.js → chunk-FVPN4YKW.js} +4 -4
  212. package/dist/{chunk-ZDWU52DJ.js → chunk-G5ZVD5IJ.js} +2 -2
  213. package/dist/{chunk-NPN7JTRM.js → chunk-GH2DC7PS.js} +4 -4
  214. package/dist/{chunk-77DF5LKI.js → chunk-GJUIZ5FN.js} +2 -2
  215. package/dist/{chunk-YJ4HM25H.js → chunk-GLWW2XCP.js} +2 -2
  216. package/dist/{chunk-7AIHK2XM.js → chunk-H53YNR23.js} +6 -6
  217. package/dist/{chunk-GT7C6TSM.js → chunk-HDNK7BAX.js} +3 -3
  218. package/dist/{chunk-7NEUPEV5.js → chunk-HQB5XNK5.js} +2 -2
  219. package/dist/{chunk-SZETT7QV.js → chunk-HS2OJI6L.js} +8 -8
  220. package/dist/{chunk-KZLLTOB2.js → chunk-HTZNB6IV.js} +2 -2
  221. package/dist/{chunk-NNXZ5RK5.js → chunk-IQ7WZ3RN.js} +4 -4
  222. package/dist/{chunk-7KEGJH3Q.js → chunk-IVVOIDE5.js} +3 -3
  223. package/dist/{chunk-45OHGD2B.js → chunk-J2K65BQQ.js} +4 -4
  224. package/dist/{chunk-SSWZHR46.js → chunk-J3ZP6EUS.js} +5 -5
  225. package/dist/{chunk-YPILHGEO.js → chunk-J6CSPDC7.js} +2 -2
  226. package/dist/{chunk-RRO2EOJB.js → chunk-JB67KPGM.js} +4 -4
  227. package/dist/{chunk-V5P5Q6HM.js → chunk-JOXBCXVL.js} +8 -8
  228. package/dist/{chunk-LO2B7FDQ.js → chunk-JPVDZXXX.js} +2 -2
  229. package/dist/{chunk-P7FQUGED.js → chunk-JRWPI4XF.js} +5 -5
  230. package/dist/{chunk-OVGASVPW.js → chunk-JVVTSSS4.js} +2 -2
  231. package/dist/{chunk-IASDP44E.js → chunk-K4N3V7YE.js} +4 -4
  232. package/dist/{chunk-L7LCSZ3H.js → chunk-K7DCYV5Q.js} +3 -3
  233. package/dist/{chunk-B5SW7I5W.js → chunk-L4D6YLLU.js} +2 -2
  234. package/dist/{chunk-FOF2RAVQ.js → chunk-L6TCIZFR.js} +4 -4
  235. package/dist/{chunk-7Z2AQEC5.js → chunk-LCXXPIG3.js} +2 -2
  236. package/dist/{chunk-MQPT254A.js → chunk-LSJY4LWZ.js} +4 -4
  237. package/dist/{chunk-CA7TA36R.js → chunk-MGPA6KTM.js} +2 -2
  238. package/dist/{chunk-OGHW7RQC.js → chunk-MHSTG7FF.js} +3 -3
  239. package/dist/{chunk-GQJ4NCZ6.js → chunk-MNSW33DU.js} +4 -4
  240. package/dist/{chunk-WETAIIKC.js → chunk-MRMNVGNX.js} +2 -2
  241. package/dist/{chunk-MYH7VISV.js → chunk-MSUSZLRE.js} +5 -5
  242. package/dist/{chunk-WKF54CCK.js → chunk-MVJYIHPH.js} +5 -5
  243. package/dist/{chunk-EQA4VQEO.js → chunk-NGM5XKAS.js} +2 -2
  244. package/dist/{chunk-PKFFJAQ6.js → chunk-NGVGTMHT.js} +2 -2
  245. package/dist/{chunk-3GB6KWHH.js → chunk-NUB4T3RQ.js} +2 -2
  246. package/dist/{chunk-GTLJYAEG.js → chunk-NWQWUYOV.js} +2 -2
  247. package/dist/{chunk-QXFPTRHB.js → chunk-NY2Y2SHA.js} +4 -4
  248. package/dist/{chunk-4A2Q22HO.js → chunk-O42ZA3TW.js} +3 -3
  249. package/dist/chunk-O5UGAL2V.js +15 -0
  250. package/dist/chunk-O5UGAL2V.js.map +1 -0
  251. package/dist/{chunk-DTIB5KWP.js → chunk-OJCK5RNJ.js} +3 -3
  252. package/dist/{chunk-OAWEUKUC.js → chunk-OLQDB346.js} +2 -2
  253. package/dist/{chunk-4IVOHL32.js → chunk-OP6F3NXX.js} +2 -2
  254. package/dist/{chunk-DWJBOR47.js → chunk-P3NRT6GV.js} +4 -4
  255. package/dist/{chunk-GBX5ACPF.js → chunk-PCYGUOWJ.js} +4 -4
  256. package/dist/{chunk-3PJLT5FX.js → chunk-PFZAUMJA.js} +5 -3
  257. package/dist/{chunk-3PJLT5FX.js.map → chunk-PFZAUMJA.js.map} +1 -1
  258. package/dist/{chunk-N5PY7IXI.js → chunk-PJTSGHTY.js} +2 -2
  259. package/dist/{chunk-AGYGNNOM.js → chunk-PQECNGDE.js} +2 -2
  260. package/dist/{chunk-XNOSTV5F.js → chunk-PTP3CZL4.js} +2 -2
  261. package/dist/{chunk-LGJ2H4AH.js → chunk-PVIAHB7D.js} +10 -10
  262. package/dist/{chunk-SC72DRTX.js → chunk-QGAYEBMU.js} +14 -8
  263. package/dist/chunk-QGAYEBMU.js.map +1 -0
  264. package/dist/{chunk-X5RDHO6G.js → chunk-QPDDS6DQ.js} +2 -2
  265. package/dist/{chunk-6SK3MTYJ.js → chunk-QSKJLMNS.js} +4 -4
  266. package/dist/{chunk-GYQT47YZ.js → chunk-QTZ7I6QS.js} +2 -2
  267. package/dist/{chunk-WBKWIFXA.js → chunk-QYNCPS5W.js} +6 -6
  268. package/dist/{chunk-DFLTUI7W.js → chunk-QZBUGUOY.js} +4 -4
  269. package/dist/{chunk-GOWBYHYW.js → chunk-R6SBP5M5.js} +4 -4
  270. package/dist/{chunk-FGK2C7JR.js → chunk-RVGG5YJY.js} +2 -2
  271. package/dist/{chunk-7FOOLP5H.js → chunk-RXSGHPCR.js} +4 -4
  272. package/dist/{chunk-LUMF63BM.js → chunk-SFAP5EH5.js} +4 -4
  273. package/dist/{chunk-DW6GBMLQ.js → chunk-SLMA4UQS.js} +3 -3
  274. package/dist/{chunk-QRX5BYUQ.js → chunk-SOCKK67R.js} +7 -7
  275. package/dist/{chunk-QLI7ES7Z.js → chunk-SONWG2RT.js} +5 -18
  276. package/dist/chunk-SONWG2RT.js.map +1 -0
  277. package/dist/{chunk-G76H5PEM.js → chunk-SQV3HPTZ.js} +4 -4
  278. package/dist/{chunk-IV5QQLCS.js → chunk-T2VO32Z2.js} +2 -2
  279. package/dist/{chunk-VK4ULJFH.js → chunk-T5WNNEP5.js} +2 -2
  280. package/dist/{chunk-FRW4SYZD.js → chunk-TEE6HNHS.js} +4 -4
  281. package/dist/{chunk-JD3D6Y4U.js → chunk-THOPGHTY.js} +7 -7
  282. package/dist/{chunk-2LSCK45B.js → chunk-TSEWUY4V.js} +5 -3
  283. package/dist/{chunk-2LSCK45B.js.map → chunk-TSEWUY4V.js.map} +1 -1
  284. package/dist/{chunk-65METCKT.js → chunk-TSFFZ3AH.js} +20 -19
  285. package/dist/chunk-TSFFZ3AH.js.map +1 -0
  286. package/dist/{chunk-EZ5Z5UFI.js → chunk-TTW4MAOJ.js} +5 -5
  287. package/dist/{chunk-DTC224UJ.js → chunk-TX3ZHO5R.js} +5 -5
  288. package/dist/{chunk-H3BQFEN5.js → chunk-UC6A6ASM.js} +2 -2
  289. package/dist/{chunk-GSTRPZS4.js → chunk-UKPZVX3J.js} +2 -2
  290. package/dist/{chunk-EPNCYUQ7.js → chunk-UN5INW6K.js} +4 -4
  291. package/dist/{chunk-UGL6SJN6.js → chunk-UQNB2W2I.js} +3 -3
  292. package/dist/{chunk-P7IVAMAU.js → chunk-V7F53GEO.js} +7 -7
  293. package/dist/{chunk-ZC7RQDZ5.js → chunk-VESIQYBF.js} +5 -5
  294. package/dist/{chunk-2KVQIGVE.js → chunk-VKH7AENA.js} +2 -2
  295. package/dist/{chunk-S7HRED4D.js → chunk-VLHGBFR6.js} +3 -3
  296. package/dist/{chunk-SMZBGHR2.js → chunk-VRKS5K4N.js} +5 -5
  297. package/dist/{chunk-PW2WLDX3.js → chunk-VVXA7T2M.js} +2 -2
  298. package/dist/{chunk-2SWQ6HIK.js → chunk-W3FAKT3D.js} +4 -4
  299. package/dist/{chunk-QQLGSMGE.js → chunk-W5CW7JFZ.js} +2 -2
  300. package/dist/{chunk-HOJL2GKW.js → chunk-WC3W36AM.js} +4 -4
  301. package/dist/{chunk-3VZT2FAI.js → chunk-WC5XYWTE.js} +3 -3
  302. package/dist/{chunk-RFZU5BTG.js → chunk-WYDGPJ3Z.js} +4 -4
  303. package/dist/{chunk-27BL3DNT.js → chunk-XBZ43VIV.js} +9 -9
  304. package/dist/{chunk-KOFO6QZY.js → chunk-XGOWREVV.js} +2 -2
  305. package/dist/{chunk-KAV63FBG.js → chunk-XOCLWQON.js} +3 -3
  306. package/dist/{chunk-DF2FFYZ7.js → chunk-XSJWN3WH.js} +7 -7
  307. package/dist/{chunk-DB2MAYPK.js → chunk-XV2TDULR.js} +2 -2
  308. package/dist/{chunk-4OHRZW7U.js → chunk-XXE6NTJB.js} +4 -4
  309. package/dist/{chunk-4G3FGCWX.js → chunk-XXJRT6BP.js} +2 -2
  310. package/dist/{chunk-LV4UTYAD.js → chunk-XYDW5RQB.js} +2 -2
  311. package/dist/{chunk-7VN7LFBA.js → chunk-YD77RANW.js} +5 -5
  312. package/dist/{chunk-77OXG6DH.js → chunk-YFY3YVV6.js} +7 -7
  313. package/dist/{chunk-PENJBKPH.js → chunk-YTYROOLY.js} +3 -3
  314. package/dist/data-display/Alert.js +5 -4
  315. package/dist/data-display/AsyncStateContainer.js +4 -4
  316. package/dist/data-display/Avatar.js +6 -5
  317. package/dist/data-display/Badge.js +8 -7
  318. package/dist/data-display/Banner.js +5 -4
  319. package/dist/data-display/CardKit.js +13 -12
  320. package/dist/data-display/Carousel.js +5 -4
  321. package/dist/data-display/Chart.js +19 -18
  322. package/dist/data-display/DataGrid.js +3 -3
  323. package/dist/data-display/DataViews.js +87 -85
  324. package/dist/data-display/DescriptionItem.js +5 -4
  325. package/dist/data-display/FleetMap.js +18 -17
  326. package/dist/data-display/LazyImage.js +3 -3
  327. package/dist/data-display/Lightbox.js +4 -4
  328. package/dist/data-display/LoadingState.js +3 -3
  329. package/dist/data-display/MapPreview.js +10 -10
  330. package/dist/data-display/Progress.js +5 -4
  331. package/dist/data-display/Sheet.js +4 -3
  332. package/dist/data-display/StatCard.js +3 -3
  333. package/dist/data-display/Table.js +2 -2
  334. package/dist/feedback/ConfirmAction.js +5 -4
  335. package/dist/feedback/Dialog.js +2 -2
  336. package/dist/feedback/TutorialOverlay.js +2 -2
  337. package/dist/form/AddressAutocomplete.js +6 -6
  338. package/dist/form/Button.js +4 -3
  339. package/dist/form/Calendar.js +2 -2
  340. package/dist/form/CategorySelect.js +8 -8
  341. package/dist/form/CepField.js +3 -3
  342. package/dist/form/Checkbox.js +3 -2
  343. package/dist/form/CodeEditor.js +2 -2
  344. package/dist/form/Command.js +4 -3
  345. package/dist/form/DateRangePicker.js +3 -3
  346. package/dist/form/Input.js +2 -2
  347. package/dist/form/Label.js +2 -1
  348. package/dist/form/Menubar.js +2 -1
  349. package/dist/form/Switch.js +5 -4
  350. package/dist/form/total-form.js +20 -19
  351. package/dist/icons.js +5 -4
  352. package/dist/layout/Box.js +5 -4
  353. package/dist/layout/Card.js +2 -2
  354. package/dist/layout/ContentToolbar.js +3 -3
  355. package/dist/layout/ScrollArea.js +2 -2
  356. package/dist/layout/SettingsLayout.js +6 -6
  357. package/dist/layout/Skeleton.js +2 -2
  358. package/dist/layout/Stack.js +6 -5
  359. package/dist/native/chunks/{chunk-XI7HTAVN.js → chunk-2HLEFYJ5.js} +2 -2
  360. package/dist/native/chunks/{chunk-UYREIOEM.js → chunk-6XDMYJBW.js} +2 -2
  361. package/dist/native/chunks/{chunk-6L4UZBQP.js → chunk-BEPOBULQ.js} +3 -3
  362. package/dist/native/chunks/{chunk-ZOP7UAZK.js → chunk-CO47ZRXO.js} +2 -2
  363. package/dist/native/chunks/{chunk-UII3IFLP.js → chunk-NVPXIJ2O.js} +2 -2
  364. package/dist/native/chunks/{chunk-2SBTJSQE.js → chunk-SOQVMWLQ.js} +5 -5
  365. package/dist/native/chunks/{chunk-MP3UDWTT.js → chunk-YQDDM6ZW.js} +24 -17
  366. package/dist/native/chunks/chunk-YQDDM6ZW.js.map +1 -0
  367. package/dist/native/chunks/{chunk-QEQZ5AF6.js → chunk-YXM4NR2B.js} +3 -3
  368. package/dist/native/data-display/Alert.js +3 -3
  369. package/dist/native/data-display/Avatar.js +3 -3
  370. package/dist/native/data-display/Badge.js +3 -3
  371. package/dist/native/data-display/Chip.js +3 -3
  372. package/dist/native/data-display/EmptyState.js +5 -5
  373. package/dist/native/data-display/ErrorState.js +4 -4
  374. package/dist/native/data-display/FleetMap.js +6 -6
  375. package/dist/native/data-display/LoadingState.js +2 -2
  376. package/dist/native/data-display/Progress.js +2 -2
  377. package/dist/native/feedback/Dialog.js +3 -3
  378. package/dist/native/form/Button.js +3 -3
  379. package/dist/native/form/Checkbox.js +3 -3
  380. package/dist/native/form/Input.js +3 -3
  381. package/dist/native/form/Select.js +4 -4
  382. package/dist/native/form/Switch.js +2 -2
  383. package/dist/native/icons.js +3 -3
  384. package/dist/native/layout/Box.js +3 -3
  385. package/dist/native/layout/Card.js +2 -2
  386. package/dist/native/layout/Container.js +2 -2
  387. package/dist/native/layout/Skeleton.js +3 -3
  388. package/dist/native/layout/Spacer.js +2 -2
  389. package/dist/native/layout/Stack.js +3 -3
  390. package/dist/native/provider.js +2 -2
  391. package/dist/native/tokens.js +1 -1
  392. package/dist/native/typography/Heading.js +2 -2
  393. package/dist/native/typography/Paragraph.js +2 -2
  394. package/dist/native/typography/Text.js +2 -2
  395. package/dist/navigation/AppHeader.js +11 -10
  396. package/dist/navigation/NavigationMenu.js +5 -5
  397. package/dist/navigation/Tabs.js +2 -2
  398. package/dist/provider.js +5 -4
  399. package/dist/social-login-button.js +12 -11
  400. package/dist/tokens.js +5 -3
  401. package/dist/types/components/data-display/DataGrid/DataGrid.cells.d.ts.map +1 -1
  402. package/dist/types/components/data-display/DataGrid/DataGrid.types.d.ts +10 -0
  403. package/dist/types/components/data-display/DataGrid/DataGrid.types.d.ts.map +1 -1
  404. package/dist/types/components/data-display/DataViews/DataViewsGrid.d.ts +6 -0
  405. package/dist/types/components/data-display/DataViews/DataViewsGrid.d.ts.map +1 -1
  406. package/dist/types/components/data-display/DataViews/DataViewsTableBase.d.ts +3 -0
  407. package/dist/types/components/data-display/DataViews/DataViewsTableBase.d.ts.map +1 -1
  408. package/dist/types/components/data-display/DataViews/data-views-grid-bodies.d.ts +3 -0
  409. package/dist/types/components/data-display/DataViews/data-views-grid-bodies.d.ts.map +1 -1
  410. package/dist/types/components/data-display/DataViews/data-views-grid-parts.d.ts +3 -0
  411. package/dist/types/components/data-display/DataViews/data-views-grid-parts.d.ts.map +1 -1
  412. package/dist/types/components/data-display/DataViews/data-views-row-detail.d.ts +27 -0
  413. package/dist/types/components/data-display/DataViews/data-views-row-detail.d.ts.map +1 -0
  414. package/dist/types/components/data-display/DataViews/index.d.ts +1 -0
  415. package/dist/types/components/data-display/DataViews/index.d.ts.map +1 -1
  416. package/dist/types/components/form/Switch/Switch.styles.d.ts.map +1 -1
  417. package/dist/types/tokens/ink-over.d.ts +12 -0
  418. package/dist/types/tokens/ink-over.d.ts.map +1 -0
  419. package/dist/types/tokens/theme.d.ts +2 -44
  420. package/dist/types/tokens/theme.d.ts.map +1 -1
  421. package/dist/types-native/tokens/ink-over.d.ts +12 -0
  422. package/dist/types-native/tokens/ink-over.d.ts.map +1 -0
  423. package/dist/types-native/tokens/theme.d.ts +2 -44
  424. package/dist/types-native/tokens/theme.d.ts.map +1 -1
  425. package/dist/typography/Heading.js +5 -4
  426. package/dist/typography/Paragraph.js +3 -2
  427. package/dist/typography/Text.js +4 -3
  428. package/dist/user-avatar.js +13 -12
  429. package/package.json +1 -1
  430. package/src/components/data-display/DataGrid/DataGrid.cells.tsx +23 -9
  431. package/src/components/data-display/DataGrid/DataGrid.md +8 -0
  432. package/src/components/data-display/DataGrid/DataGrid.types.ts +10 -0
  433. package/src/components/data-display/DataViews/DataViewsGrid.tsx +6 -0
  434. package/src/components/data-display/DataViews/DataViewsTableBase.tsx +3 -0
  435. package/src/components/data-display/DataViews/data-views-grid-bodies.tsx +7 -0
  436. package/src/components/data-display/DataViews/data-views-grid-parts.tsx +4 -0
  437. package/src/components/data-display/DataViews/data-views-row-detail.ts +40 -0
  438. package/src/components/data-display/DataViews/index.ts +1 -0
  439. package/src/components/form/Switch/Switch.styles.ts +29 -3
  440. package/src/tokens/ink-over.ts +142 -0
  441. package/src/tokens/theme.ts +10 -65
  442. package/dist/chunk-5QUSX3TC.js.map +0 -1
  443. package/dist/chunk-65METCKT.js.map +0 -1
  444. package/dist/chunk-DIHVWBQV.js.map +0 -1
  445. package/dist/chunk-E5LWJDI3.js.map +0 -1
  446. package/dist/chunk-O7HLQTB7.js.map +0 -1
  447. package/dist/chunk-QLI7ES7Z.js.map +0 -1
  448. package/dist/chunk-SC72DRTX.js.map +0 -1
  449. package/dist/native/chunks/chunk-MP3UDWTT.js.map +0 -1
  450. /package/dist/{chunk-Q3GSDSK2.js.map → chunk-236QP424.js.map} +0 -0
  451. /package/dist/{chunk-JFRKBSWI.js.map → chunk-237NDIT2.js.map} +0 -0
  452. /package/dist/{chunk-TQOPF7LD.js.map → chunk-2L2NWXWJ.js.map} +0 -0
  453. /package/dist/{chunk-M4NFXC5R.js.map → chunk-2WSU6OGE.js.map} +0 -0
  454. /package/dist/{chunk-72T5PAW7.js.map → chunk-3BPDHWVF.js.map} +0 -0
  455. /package/dist/{chunk-EOHKZGOZ.js.map → chunk-3PUOLOEP.js.map} +0 -0
  456. /package/dist/{chunk-ECMJ5VPW.js.map → chunk-3TFUAKWJ.js.map} +0 -0
  457. /package/dist/{chunk-4ETQRBZC.js.map → chunk-46UPILLK.js.map} +0 -0
  458. /package/dist/{chunk-6VHCSPKK.js.map → chunk-4H4Y2SX3.js.map} +0 -0
  459. /package/dist/{chunk-L7S6N67X.js.map → chunk-4OSGKO7E.js.map} +0 -0
  460. /package/dist/{chunk-UG76BO5K.js.map → chunk-5KFZGB5U.js.map} +0 -0
  461. /package/dist/{chunk-FF3R67WD.js.map → chunk-5UC2RNOY.js.map} +0 -0
  462. /package/dist/{chunk-EMNGIYH6.js.map → chunk-7TZ6OC5T.js.map} +0 -0
  463. /package/dist/{chunk-G2JPUHEJ.js.map → chunk-AIBNBWQU.js.map} +0 -0
  464. /package/dist/{chunk-QE2C35TO.js.map → chunk-ALAJBLBE.js.map} +0 -0
  465. /package/dist/{chunk-AIRWM7KK.js.map → chunk-AVI3XHRQ.js.map} +0 -0
  466. /package/dist/{chunk-IE7ISTLQ.js.map → chunk-B443IIQG.js.map} +0 -0
  467. /package/dist/{chunk-CKJI7JO5.js.map → chunk-BEWD734I.js.map} +0 -0
  468. /package/dist/{chunk-RRX6ZTNX.js.map → chunk-BLT5ZBVL.js.map} +0 -0
  469. /package/dist/{chunk-MDTSMJ7C.js.map → chunk-BYMWW65P.js.map} +0 -0
  470. /package/dist/{chunk-Q3OFOOO7.js.map → chunk-C5EFVSBN.js.map} +0 -0
  471. /package/dist/{chunk-Y55ILY2F.js.map → chunk-C5YBXQTK.js.map} +0 -0
  472. /package/dist/{chunk-YANLN6HP.js.map → chunk-D6HDJVQW.js.map} +0 -0
  473. /package/dist/{chunk-ZA4U5GDU.js.map → chunk-DORPR2YP.js.map} +0 -0
  474. /package/dist/{chunk-6YLAVHV4.js.map → chunk-DTKMBI7B.js.map} +0 -0
  475. /package/dist/{chunk-JXNT5TUP.js.map → chunk-DVEYD27F.js.map} +0 -0
  476. /package/dist/{chunk-WZUNBSS7.js.map → chunk-DVUPIVI2.js.map} +0 -0
  477. /package/dist/{chunk-CMN26J5Y.js.map → chunk-E6D2Y5EK.js.map} +0 -0
  478. /package/dist/{chunk-HKB5C2KY.js.map → chunk-EMAX7RPN.js.map} +0 -0
  479. /package/dist/{chunk-ZAJO2B75.js.map → chunk-EPRA5QLB.js.map} +0 -0
  480. /package/dist/{chunk-ERX4XIYC.js.map → chunk-EUKYQXYU.js.map} +0 -0
  481. /package/dist/{chunk-C3CMEDSO.js.map → chunk-EVXFEXBS.js.map} +0 -0
  482. /package/dist/{chunk-DYESJJ3Q.js.map → chunk-EZNTM6PT.js.map} +0 -0
  483. /package/dist/{chunk-67ALTEWH.js.map → chunk-FGKKLHKY.js.map} +0 -0
  484. /package/dist/{chunk-OXYR2HVK.js.map → chunk-FOKBP6HR.js.map} +0 -0
  485. /package/dist/{chunk-22X7TT6Z.js.map → chunk-FR6AJSMT.js.map} +0 -0
  486. /package/dist/{chunk-TUO47RL2.js.map → chunk-FVPN4YKW.js.map} +0 -0
  487. /package/dist/{chunk-ZDWU52DJ.js.map → chunk-G5ZVD5IJ.js.map} +0 -0
  488. /package/dist/{chunk-NPN7JTRM.js.map → chunk-GH2DC7PS.js.map} +0 -0
  489. /package/dist/{chunk-77DF5LKI.js.map → chunk-GJUIZ5FN.js.map} +0 -0
  490. /package/dist/{chunk-YJ4HM25H.js.map → chunk-GLWW2XCP.js.map} +0 -0
  491. /package/dist/{chunk-7AIHK2XM.js.map → chunk-H53YNR23.js.map} +0 -0
  492. /package/dist/{chunk-GT7C6TSM.js.map → chunk-HDNK7BAX.js.map} +0 -0
  493. /package/dist/{chunk-7NEUPEV5.js.map → chunk-HQB5XNK5.js.map} +0 -0
  494. /package/dist/{chunk-SZETT7QV.js.map → chunk-HS2OJI6L.js.map} +0 -0
  495. /package/dist/{chunk-KZLLTOB2.js.map → chunk-HTZNB6IV.js.map} +0 -0
  496. /package/dist/{chunk-NNXZ5RK5.js.map → chunk-IQ7WZ3RN.js.map} +0 -0
  497. /package/dist/{chunk-7KEGJH3Q.js.map → chunk-IVVOIDE5.js.map} +0 -0
  498. /package/dist/{chunk-45OHGD2B.js.map → chunk-J2K65BQQ.js.map} +0 -0
  499. /package/dist/{chunk-SSWZHR46.js.map → chunk-J3ZP6EUS.js.map} +0 -0
  500. /package/dist/{chunk-YPILHGEO.js.map → chunk-J6CSPDC7.js.map} +0 -0
  501. /package/dist/{chunk-RRO2EOJB.js.map → chunk-JB67KPGM.js.map} +0 -0
  502. /package/dist/{chunk-V5P5Q6HM.js.map → chunk-JOXBCXVL.js.map} +0 -0
  503. /package/dist/{chunk-LO2B7FDQ.js.map → chunk-JPVDZXXX.js.map} +0 -0
  504. /package/dist/{chunk-P7FQUGED.js.map → chunk-JRWPI4XF.js.map} +0 -0
  505. /package/dist/{chunk-OVGASVPW.js.map → chunk-JVVTSSS4.js.map} +0 -0
  506. /package/dist/{chunk-IASDP44E.js.map → chunk-K4N3V7YE.js.map} +0 -0
  507. /package/dist/{chunk-L7LCSZ3H.js.map → chunk-K7DCYV5Q.js.map} +0 -0
  508. /package/dist/{chunk-B5SW7I5W.js.map → chunk-L4D6YLLU.js.map} +0 -0
  509. /package/dist/{chunk-FOF2RAVQ.js.map → chunk-L6TCIZFR.js.map} +0 -0
  510. /package/dist/{chunk-7Z2AQEC5.js.map → chunk-LCXXPIG3.js.map} +0 -0
  511. /package/dist/{chunk-MQPT254A.js.map → chunk-LSJY4LWZ.js.map} +0 -0
  512. /package/dist/{chunk-CA7TA36R.js.map → chunk-MGPA6KTM.js.map} +0 -0
  513. /package/dist/{chunk-OGHW7RQC.js.map → chunk-MHSTG7FF.js.map} +0 -0
  514. /package/dist/{chunk-GQJ4NCZ6.js.map → chunk-MNSW33DU.js.map} +0 -0
  515. /package/dist/{chunk-WETAIIKC.js.map → chunk-MRMNVGNX.js.map} +0 -0
  516. /package/dist/{chunk-MYH7VISV.js.map → chunk-MSUSZLRE.js.map} +0 -0
  517. /package/dist/{chunk-WKF54CCK.js.map → chunk-MVJYIHPH.js.map} +0 -0
  518. /package/dist/{chunk-EQA4VQEO.js.map → chunk-NGM5XKAS.js.map} +0 -0
  519. /package/dist/{chunk-PKFFJAQ6.js.map → chunk-NGVGTMHT.js.map} +0 -0
  520. /package/dist/{chunk-3GB6KWHH.js.map → chunk-NUB4T3RQ.js.map} +0 -0
  521. /package/dist/{chunk-GTLJYAEG.js.map → chunk-NWQWUYOV.js.map} +0 -0
  522. /package/dist/{chunk-QXFPTRHB.js.map → chunk-NY2Y2SHA.js.map} +0 -0
  523. /package/dist/{chunk-4A2Q22HO.js.map → chunk-O42ZA3TW.js.map} +0 -0
  524. /package/dist/{chunk-DTIB5KWP.js.map → chunk-OJCK5RNJ.js.map} +0 -0
  525. /package/dist/{chunk-OAWEUKUC.js.map → chunk-OLQDB346.js.map} +0 -0
  526. /package/dist/{chunk-4IVOHL32.js.map → chunk-OP6F3NXX.js.map} +0 -0
  527. /package/dist/{chunk-DWJBOR47.js.map → chunk-P3NRT6GV.js.map} +0 -0
  528. /package/dist/{chunk-GBX5ACPF.js.map → chunk-PCYGUOWJ.js.map} +0 -0
  529. /package/dist/{chunk-N5PY7IXI.js.map → chunk-PJTSGHTY.js.map} +0 -0
  530. /package/dist/{chunk-AGYGNNOM.js.map → chunk-PQECNGDE.js.map} +0 -0
  531. /package/dist/{chunk-XNOSTV5F.js.map → chunk-PTP3CZL4.js.map} +0 -0
  532. /package/dist/{chunk-LGJ2H4AH.js.map → chunk-PVIAHB7D.js.map} +0 -0
  533. /package/dist/{chunk-X5RDHO6G.js.map → chunk-QPDDS6DQ.js.map} +0 -0
  534. /package/dist/{chunk-6SK3MTYJ.js.map → chunk-QSKJLMNS.js.map} +0 -0
  535. /package/dist/{chunk-GYQT47YZ.js.map → chunk-QTZ7I6QS.js.map} +0 -0
  536. /package/dist/{chunk-WBKWIFXA.js.map → chunk-QYNCPS5W.js.map} +0 -0
  537. /package/dist/{chunk-DFLTUI7W.js.map → chunk-QZBUGUOY.js.map} +0 -0
  538. /package/dist/{chunk-GOWBYHYW.js.map → chunk-R6SBP5M5.js.map} +0 -0
  539. /package/dist/{chunk-FGK2C7JR.js.map → chunk-RVGG5YJY.js.map} +0 -0
  540. /package/dist/{chunk-7FOOLP5H.js.map → chunk-RXSGHPCR.js.map} +0 -0
  541. /package/dist/{chunk-LUMF63BM.js.map → chunk-SFAP5EH5.js.map} +0 -0
  542. /package/dist/{chunk-DW6GBMLQ.js.map → chunk-SLMA4UQS.js.map} +0 -0
  543. /package/dist/{chunk-QRX5BYUQ.js.map → chunk-SOCKK67R.js.map} +0 -0
  544. /package/dist/{chunk-G76H5PEM.js.map → chunk-SQV3HPTZ.js.map} +0 -0
  545. /package/dist/{chunk-IV5QQLCS.js.map → chunk-T2VO32Z2.js.map} +0 -0
  546. /package/dist/{chunk-VK4ULJFH.js.map → chunk-T5WNNEP5.js.map} +0 -0
  547. /package/dist/{chunk-FRW4SYZD.js.map → chunk-TEE6HNHS.js.map} +0 -0
  548. /package/dist/{chunk-JD3D6Y4U.js.map → chunk-THOPGHTY.js.map} +0 -0
  549. /package/dist/{chunk-EZ5Z5UFI.js.map → chunk-TTW4MAOJ.js.map} +0 -0
  550. /package/dist/{chunk-DTC224UJ.js.map → chunk-TX3ZHO5R.js.map} +0 -0
  551. /package/dist/{chunk-H3BQFEN5.js.map → chunk-UC6A6ASM.js.map} +0 -0
  552. /package/dist/{chunk-GSTRPZS4.js.map → chunk-UKPZVX3J.js.map} +0 -0
  553. /package/dist/{chunk-EPNCYUQ7.js.map → chunk-UN5INW6K.js.map} +0 -0
  554. /package/dist/{chunk-UGL6SJN6.js.map → chunk-UQNB2W2I.js.map} +0 -0
  555. /package/dist/{chunk-P7IVAMAU.js.map → chunk-V7F53GEO.js.map} +0 -0
  556. /package/dist/{chunk-ZC7RQDZ5.js.map → chunk-VESIQYBF.js.map} +0 -0
  557. /package/dist/{chunk-2KVQIGVE.js.map → chunk-VKH7AENA.js.map} +0 -0
  558. /package/dist/{chunk-S7HRED4D.js.map → chunk-VLHGBFR6.js.map} +0 -0
  559. /package/dist/{chunk-SMZBGHR2.js.map → chunk-VRKS5K4N.js.map} +0 -0
  560. /package/dist/{chunk-PW2WLDX3.js.map → chunk-VVXA7T2M.js.map} +0 -0
  561. /package/dist/{chunk-2SWQ6HIK.js.map → chunk-W3FAKT3D.js.map} +0 -0
  562. /package/dist/{chunk-QQLGSMGE.js.map → chunk-W5CW7JFZ.js.map} +0 -0
  563. /package/dist/{chunk-HOJL2GKW.js.map → chunk-WC3W36AM.js.map} +0 -0
  564. /package/dist/{chunk-3VZT2FAI.js.map → chunk-WC5XYWTE.js.map} +0 -0
  565. /package/dist/{chunk-RFZU5BTG.js.map → chunk-WYDGPJ3Z.js.map} +0 -0
  566. /package/dist/{chunk-27BL3DNT.js.map → chunk-XBZ43VIV.js.map} +0 -0
  567. /package/dist/{chunk-KOFO6QZY.js.map → chunk-XGOWREVV.js.map} +0 -0
  568. /package/dist/{chunk-KAV63FBG.js.map → chunk-XOCLWQON.js.map} +0 -0
  569. /package/dist/{chunk-DF2FFYZ7.js.map → chunk-XSJWN3WH.js.map} +0 -0
  570. /package/dist/{chunk-DB2MAYPK.js.map → chunk-XV2TDULR.js.map} +0 -0
  571. /package/dist/{chunk-4OHRZW7U.js.map → chunk-XXE6NTJB.js.map} +0 -0
  572. /package/dist/{chunk-4G3FGCWX.js.map → chunk-XXJRT6BP.js.map} +0 -0
  573. /package/dist/{chunk-LV4UTYAD.js.map → chunk-XYDW5RQB.js.map} +0 -0
  574. /package/dist/{chunk-7VN7LFBA.js.map → chunk-YD77RANW.js.map} +0 -0
  575. /package/dist/{chunk-77OXG6DH.js.map → chunk-YFY3YVV6.js.map} +0 -0
  576. /package/dist/{chunk-PENJBKPH.js.map → chunk-YTYROOLY.js.map} +0 -0
  577. /package/dist/native/chunks/{chunk-XI7HTAVN.js.map → chunk-2HLEFYJ5.js.map} +0 -0
  578. /package/dist/native/chunks/{chunk-UYREIOEM.js.map → chunk-6XDMYJBW.js.map} +0 -0
  579. /package/dist/native/chunks/{chunk-6L4UZBQP.js.map → chunk-BEPOBULQ.js.map} +0 -0
  580. /package/dist/native/chunks/{chunk-ZOP7UAZK.js.map → chunk-CO47ZRXO.js.map} +0 -0
  581. /package/dist/native/chunks/{chunk-UII3IFLP.js.map → chunk-NVPXIJ2O.js.map} +0 -0
  582. /package/dist/native/chunks/{chunk-2SBTJSQE.js.map → chunk-SOQVMWLQ.js.map} +0 -0
  583. /package/dist/native/chunks/{chunk-QEQZ5AF6.js.map → chunk-YXM4NR2B.js.map} +0 -0
@@ -2,9 +2,12 @@ import {
2
2
  cssLengthToPx,
3
3
  cssTrackingToEm
4
4
  } from "./chunk-AG66JBNH.js";
5
+ import {
6
+ DARK_TEXT_PRIMARY,
7
+ contrastText
8
+ } from "./chunk-2BYKTBDL.js";
5
9
  import {
6
10
  darken,
7
- getContrastRatio,
8
11
  lighten
9
12
  } from "./chunk-6JAIFIPW.js";
10
13
  import {
@@ -15,9 +18,6 @@ import {
15
18
  var ROOT_FONT_PX = 16;
16
19
  var px = (value) => `${value / ROOT_FONT_PX}rem`;
17
20
  var TONAL_OFFSET = 0.2;
18
- var CONTRAST_THRESHOLD = 3;
19
- var DARK_TEXT_PRIMARY = "rgba(0, 0, 0, 0.87)";
20
- var LIGHT_TEXT_PRIMARY = "#fff";
21
21
  var GREY = {
22
22
  50: "#fafafa",
23
23
  100: "#f5f5f5",
@@ -76,17 +76,6 @@ var MODE_DEFAULTS = {
76
76
  }
77
77
  }
78
78
  };
79
- function contrastText(background) {
80
- return getContrastRatio(background, LIGHT_TEXT_PRIMARY) >= CONTRAST_THRESHOLD ? LIGHT_TEXT_PRIMARY : DARK_TEXT_PRIMARY;
81
- }
82
- function inkOver(fills, fallback) {
83
- try {
84
- const worstCase = (ink) => Math.min(...fills.map((fill) => getContrastRatio(ink, fill)));
85
- return worstCase(LIGHT_TEXT_PRIMARY) >= worstCase(DARK_TEXT_PRIMARY) ? LIGHT_TEXT_PRIMARY : DARK_TEXT_PRIMARY;
86
- } catch {
87
- return fallback;
88
- }
89
- }
90
79
  function augmentColor(seed) {
91
80
  const partial = typeof seed === "string" ? { main: seed } : seed;
92
81
  const main = partial.main ?? partial.light ?? partial.dark;
@@ -177,8 +166,6 @@ export {
177
166
  px,
178
167
  GREY,
179
168
  DEFAULT_BRAND,
180
- contrastText,
181
- inkOver,
182
169
  augmentColor,
183
170
  NEUTRAL,
184
171
  TYPE_SIZES,
@@ -188,4 +175,4 @@ export {
188
175
  createUiTheme,
189
176
  DEFAULT_UI_THEME
190
177
  };
191
- //# sourceMappingURL=chunk-QLI7ES7Z.js.map
178
+ //# sourceMappingURL=chunk-SONWG2RT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/tokens/theme.ts"],"sourcesContent":["import { darken, lighten } from './color';\nimport { contrastText, DARK_TEXT_PRIMARY, inkOver } from './ink-over';\n\n/*\n RE-EXPORTED rather than moved out of the public surface. Both were published\n from here, and `ink-over.ts` exists because this file reached the 400-line cap\n — a caller should not have to learn that.\n*/\nexport { contrastText, inkOver };\nimport { cssLengthToPx, cssTrackingToEm } from './css-units';\nimport { HEADING_SCALE, type HeadingLevel } from './heading-scale';\n\nimport type { SizeValue } from './vocabulary';\n\n/**\n * THE THEME BOTH RENDERERS READ.\n *\n * On the web every component styles itself from MUI's `Theme`, which is built\n * by the host (`@12-apps/app-shell`'s `createAppTheme` in the origin apps) and\n * reaches a component through emotion's context. React Native has no emotion,\n * no CSS and no MUI, so a native `Button` needs the same decisions — the\n * palette, the spacing unit, the radius, the type scale — from somewhere that\n * does not import a renderer.\n *\n * This is that somewhere. `UiTheme` is a plain object of numbers and colour\n * strings. `createUiTheme` derives it the way MUI's `createPalette` derives its\n * own: a `light` shade is `lighten(main, 0.2)`, a `dark` shade `darken(main,\n * 0.3)`, `contrastText` flips at a 3:1 ratio against `rgba(0, 0, 0, 0.87)`.\n * Same seeds in, same shades out, on both sides — that is the whole basis for\n * a native button being the web button's colour and not a near miss.\n *\n * Numbers are in px on the web and dp on native; both are the CSS-pixel unit\n * a design is drawn in, so a `fontSize: 16` here IS `1rem` in a web style\n * and `16` in a `StyleSheet`. The web components keep their `rem` strings and\n * derive them from these numbers where the two meet (see `px()` below and the\n * `*.metrics.ts` file beside each ported component).\n *\n * `danger` and `neutral` are this package's names (see `./scales`); `danger`\n * is MUI's `error` and `neutral` is drawn from the grey ramp the way\n * `Button.styles.ts` has always drawn it.\n */\n\nexport type UiThemeMode = 'light' | 'dark';\n\nexport interface UiPaletteColor {\n main: string;\n light: string;\n dark: string;\n contrastText: string;\n}\n\nexport type UiGreyStep = 50 | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900;\n\nexport interface UiPalette {\n mode: UiThemeMode;\n primary: UiPaletteColor;\n secondary: UiPaletteColor;\n success: UiPaletteColor;\n warning: UiPaletteColor;\n info: UiPaletteColor;\n danger: UiPaletteColor;\n neutral: UiPaletteColor;\n text: { primary: string; secondary: string; disabled: string };\n background: { default: string; paper: string };\n divider: string;\n action: {\n active: string;\n hover: string;\n selected: string;\n disabled: string;\n disabledBackground: string;\n focus: string;\n };\n grey: Record<UiGreyStep, string>;\n}\n\n/** One step of the body scale: `fontSize` in px, `lineHeight` as a ratio. */\nexport interface UiTypeStep {\n fontSize: number;\n lineHeight: number;\n}\n\nexport type UiFontWeight = 'light' | 'normal' | 'medium' | 'semibold' | 'bold';\n\nexport interface UiHeadingStep extends UiTypeStep {\n /** In em, so it scales with the step. `undefined` is \"normal\". */\n letterSpacing?: number;\n normalWeight: number;\n}\n\nexport interface UiTypography {\n /**\n * Native has no fallback stacks: a font is either installed and named, or\n * `undefined` and the platform's own. The web default is MUI's Roboto stack.\n */\n fontFamily: string | undefined;\n monospaceFontFamily: string | undefined;\n sizes: Record<SizeValue, UiTypeStep>;\n weights: Record<UiFontWeight, number>;\n heading: Record<HeadingLevel, UiHeadingStep>;\n}\n\nexport interface UiTheme {\n mode: UiThemeMode;\n palette: UiPalette;\n /** MUI's `theme.spacing(n)`: `n` units of {@link UiTheme.spacingUnit}, in px. */\n spacing: (units: number) => number;\n spacingUnit: number;\n /** `md` is MUI's `shape.borderRadius`; the others are its halves and doubles. */\n radius: { sm: number; md: number; lg: number; xl: number; full: number };\n typography: UiTypography;\n zIndex: { appBar: number; drawer: number; modal: number; snackbar: number; tooltip: number };\n}\n\n/** A seed for one palette slot: a hex `main`, or any subset of the four shades. */\nexport type UiPaletteSeed = string | Partial<UiPaletteColor>;\n\nexport interface UiThemeOptions {\n mode?: UiThemeMode;\n palette?: Partial<{\n primary: UiPaletteSeed;\n secondary: UiPaletteSeed;\n success: UiPaletteSeed;\n warning: UiPaletteSeed;\n info: UiPaletteSeed;\n danger: UiPaletteSeed;\n background: Partial<UiPalette['background']>;\n }>;\n typography?: Partial<Pick<UiTypography, 'fontFamily' | 'monospaceFontFamily'>>;\n spacingUnit?: number;\n}\n\nconst ROOT_FONT_PX = 16;\n\n/** The px value as the rem string the web components write. */\nexport const px = (value: number): string => `${value / ROOT_FONT_PX}rem`;\n\n/** MUI's `createPalette` default tonal offset, exactly. */\nconst TONAL_OFFSET = 0.2;\n\nexport const GREY: Record<UiGreyStep, string> = {\n 50: '#fafafa',\n 100: '#f5f5f5',\n 200: '#eeeeee',\n 300: '#e0e0e0',\n 400: '#bdbdbd',\n 500: '#9e9e9e',\n 600: '#757575',\n 700: '#616161',\n 800: '#424242',\n 900: '#212121',\n};\n\n/**\n * The platform's own seeds. The pair `@12-apps/ui`'s Storybook preview and\n * `@12-apps/app-shell`'s `DEFAULT_THEME_TOKENS` both carry — keep the three in\n * step if the design tokens change.\n */\nexport const DEFAULT_BRAND: Record<UiThemeMode, { primary: string; secondary: string }> = {\n light: { primary: '#6366F1', secondary: '#8B5CF6' },\n dark: { primary: '#818CF8', secondary: '#A78BFA' },\n};\n\n/** MUI's semantic defaults per mode. These are declared shades, not derived. */\nconst SEMANTIC_DEFAULTS: Record<\n UiThemeMode,\n Record<'success' | 'warning' | 'info' | 'danger', UiPaletteColor>\n> = {\n light: {\n success: { main: '#2e7d32', light: '#4caf50', dark: '#1b5e20', contrastText: '#fff' },\n warning: { main: '#ed6c02', light: '#ff9800', dark: '#e65100', contrastText: '#fff' },\n info: { main: '#0288d1', light: '#03a9f4', dark: '#01579b', contrastText: '#fff' },\n danger: { main: '#d32f2f', light: '#ef5350', dark: '#c62828', contrastText: '#fff' },\n },\n dark: {\n success: { main: '#66bb6a', light: '#81c784', dark: '#388e3c', contrastText: DARK_TEXT_PRIMARY },\n warning: { main: '#ffa726', light: '#ffb74d', dark: '#f57c00', contrastText: DARK_TEXT_PRIMARY },\n info: { main: '#29b6f6', light: '#4fc3f7', dark: '#0288d1', contrastText: DARK_TEXT_PRIMARY },\n danger: { main: '#f44336', light: '#e57373', dark: '#d32f2f', contrastText: '#fff' },\n },\n};\n\nconst MODE_DEFAULTS: Record<\n UiThemeMode,\n Pick<UiPalette, 'text' | 'background' | 'divider' | 'action'>\n> = {\n light: {\n text: { primary: DARK_TEXT_PRIMARY, secondary: 'rgba(0, 0, 0, 0.6)', disabled: 'rgba(0, 0, 0, 0.38)' },\n background: { default: '#fff', paper: '#fff' },\n divider: 'rgba(0, 0, 0, 0.12)',\n action: {\n active: 'rgba(0, 0, 0, 0.54)',\n hover: 'rgba(0, 0, 0, 0.04)',\n selected: 'rgba(0, 0, 0, 0.08)',\n disabled: 'rgba(0, 0, 0, 0.26)',\n disabledBackground: 'rgba(0, 0, 0, 0.12)',\n focus: 'rgba(0, 0, 0, 0.12)',\n },\n },\n dark: {\n text: { primary: '#fff', secondary: 'rgba(255, 255, 255, 0.7)', disabled: 'rgba(255, 255, 255, 0.5)' },\n background: { default: '#121212', paper: '#121212' },\n divider: 'rgba(255, 255, 255, 0.12)',\n action: {\n active: '#fff',\n hover: 'rgba(255, 255, 255, 0.08)',\n selected: 'rgba(255, 255, 255, 0.16)',\n disabled: 'rgba(255, 255, 255, 0.3)',\n disabledBackground: 'rgba(255, 255, 255, 0.12)',\n focus: 'rgba(255, 255, 255, 0.12)',\n },\n },\n};\n\n\n/**\n * MUI's `augmentColor` for a custom colour: derive whatever shade the seed\n * left out. `light` is one tonal offset up, `dark` one and a half down.\n */\nexport function augmentColor(seed: UiPaletteSeed): UiPaletteColor {\n const partial = typeof seed === 'string' ? { main: seed } : seed;\n const main = partial.main ?? partial.light ?? partial.dark;\n if (!main) {\n throw new Error('@12-apps/ui: a palette seed needs at least a `main` colour.');\n }\n return {\n main,\n light: partial.light ?? lighten(main, TONAL_OFFSET),\n dark: partial.dark ?? darken(main, TONAL_OFFSET * 1.5),\n contrastText: partial.contrastText ?? contrastText(main),\n };\n}\n\nconst semantic = (\n mode: UiThemeMode,\n key: 'success' | 'warning' | 'info' | 'danger',\n seed: UiPaletteSeed | undefined,\n): UiPaletteColor => (seed === undefined ? SEMANTIC_DEFAULTS[mode][key] : augmentColor(seed));\n\n/** `neutral` as `accentFor` in `./scales` has always drawn it: three greys and white. */\nexport const NEUTRAL: UiPaletteColor = {\n main: GREY[600],\n light: GREY[400],\n dark: GREY[800],\n contrastText: '#fff',\n};\n\n/** The body scale `Text` renders, in px. `Text.tsx`'s rem map is this, divided by 16. */\nexport const TYPE_SIZES: Record<SizeValue, UiTypeStep> = {\n xs: { fontSize: 12, lineHeight: 1.2 },\n sm: { fontSize: 14, lineHeight: 1.3 },\n md: { fontSize: 16, lineHeight: 1.5 },\n lg: { fontSize: 18, lineHeight: 1.4 },\n xl: { fontSize: 20, lineHeight: 1.3 },\n};\n\nexport const FONT_WEIGHTS: Record<UiFontWeight, number> = {\n light: 300,\n normal: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n};\n\n// `HEADING_SCALE` speaks CSS, this theme speaks numbers; `./css-units` is the\n// one place that conversion is written.\nconst HEADING_STEPS = Object.fromEntries(\n Object.entries(HEADING_SCALE).map(([level, metrics]) => [\n level,\n {\n fontSize: cssLengthToPx(metrics.fontSize, ROOT_FONT_PX),\n lineHeight: metrics.lineHeight,\n letterSpacing: cssTrackingToEm(metrics.letterSpacing),\n normalWeight: metrics.normalWeight,\n },\n ]),\n) as Record<HeadingLevel, UiHeadingStep>;\n\nexport const WEB_FONT_FAMILY = '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif';\nexport const WEB_MONOSPACE_FONT_FAMILY = 'Monaco, Menlo, \"Ubuntu Mono\", \"Courier New\", monospace';\n\n/**\n * Build the theme. Every field is derived here so a host that changes one\n * seed gets every dependent shade recomputed, on both renderers, identically.\n */\nexport function createUiTheme(options: UiThemeOptions = {}): UiTheme {\n const mode = options.mode ?? 'light';\n const seeds = options.palette ?? {};\n const brand = DEFAULT_BRAND[mode];\n const defaults = MODE_DEFAULTS[mode];\n const spacingUnit = options.spacingUnit ?? 8;\n\n const palette: UiPalette = {\n mode,\n primary: augmentColor(seeds.primary ?? brand.primary),\n secondary: augmentColor(seeds.secondary ?? brand.secondary),\n success: semantic(mode, 'success', seeds.success),\n warning: semantic(mode, 'warning', seeds.warning),\n info: semantic(mode, 'info', seeds.info),\n danger: semantic(mode, 'danger', seeds.danger),\n neutral: NEUTRAL,\n text: defaults.text,\n background: { ...defaults.background, ...seeds.background },\n divider: defaults.divider,\n action: defaults.action,\n grey: GREY,\n };\n\n return {\n mode,\n palette,\n spacing: (units: number) => units * spacingUnit,\n spacingUnit,\n radius: { sm: 2, md: 4, lg: 8, xl: 16, full: 9999 },\n typography: {\n fontFamily: options.typography?.fontFamily,\n monospaceFontFamily: options.typography?.monospaceFontFamily,\n sizes: TYPE_SIZES,\n weights: FONT_WEIGHTS,\n heading: HEADING_STEPS,\n },\n zIndex: { appBar: 1100, drawer: 1200, modal: 1300, snackbar: 1400, tooltip: 1500 },\n };\n}\n\n/** The palette slot a house colour name resolves to. */\nexport type UiPaletteKey = 'primary' | 'secondary' | 'success' | 'warning' | 'info' | 'danger' | 'neutral';\n\nexport const DEFAULT_UI_THEME: UiTheme = createUiTheme();\n"],"mappings":"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","names":[]}
@@ -1,9 +1,9 @@
1
- import {
2
- CustomTabPanel
3
- } from "./chunk-7UZ2TFIK.js";
4
1
  import {
5
2
  tabsRootStyles
6
3
  } from "./chunk-EWSGWLHN.js";
4
+ import {
5
+ CustomTabPanel
6
+ } from "./chunk-7UZ2TFIK.js";
7
7
 
8
8
  // src/components/navigation/Tabs/Tabs.tsx
9
9
  import Close from "@mui/icons-material/Close";
@@ -246,4 +246,4 @@ Tabs.displayName = "Tabs";
246
246
  export {
247
247
  Tabs
248
248
  };
249
- //# sourceMappingURL=chunk-G76H5PEM.js.map
249
+ //# sourceMappingURL=chunk-SQV3HPTZ.js.map
@@ -9,7 +9,7 @@ import {
9
9
  TYPE_SIZES,
10
10
  WEB_FONT_FAMILY,
11
11
  WEB_MONOSPACE_FONT_FAMILY
12
- } from "./chunk-QLI7ES7Z.js";
12
+ } from "./chunk-SONWG2RT.js";
13
13
  import {
14
14
  cssLengthToPx,
15
15
  cssTrackingToEm
@@ -131,4 +131,4 @@ export {
131
131
  uiThemeFromMui,
132
132
  muiThemeOptionsFrom
133
133
  };
134
- //# sourceMappingURL=chunk-IV5QQLCS.js.map
134
+ //# sourceMappingURL=chunk-T2VO32Z2.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  useCardActions
3
- } from "./chunk-Q3OFOOO7.js";
3
+ } from "./chunk-C5EFVSBN.js";
4
4
  import {
5
5
  ConfirmActionDialog
6
6
  } from "./chunk-QQS3GQYS.js";
@@ -50,4 +50,4 @@ function useRemoveConfirm({
50
50
  export {
51
51
  useRemoveConfirm
52
52
  };
53
- //# sourceMappingURL=chunk-VK4ULJFH.js.map
53
+ //# sourceMappingURL=chunk-T5WNNEP5.js.map
@@ -1,9 +1,9 @@
1
- import {
2
- MARKER_PIXELS_PER_DEGREE
3
- } from "./chunk-H2J2MTRE.js";
4
1
  import {
5
2
  BOUNCE_KEYFRAMES
6
3
  } from "./chunk-DRADVLHZ.js";
4
+ import {
5
+ MARKER_PIXELS_PER_DEGREE
6
+ } from "./chunk-H2J2MTRE.js";
7
7
 
8
8
  // src/components/data-display/MapPreview/MapMarkers.tsx
9
9
  import LocationIcon from "@mui/icons-material/LocationOn";
@@ -76,4 +76,4 @@ export {
76
76
  MapMarkers,
77
77
  MapCoordinates
78
78
  };
79
- //# sourceMappingURL=chunk-FRW4SYZD.js.map
79
+ //# sourceMappingURL=chunk-TEE6HNHS.js.map
@@ -1,17 +1,17 @@
1
+ import {
2
+ AVATAR_DEFAULTS,
3
+ contentTypeOf,
4
+ pickAvatarContent
5
+ } from "./chunk-3ZVUNSFF.js";
1
6
  import {
2
7
  AvatarView
3
- } from "./chunk-SZETT7QV.js";
8
+ } from "./chunk-HS2OJI6L.js";
4
9
  import {
5
10
  BORDER_WIDTH,
6
11
  GROUP_HOVER,
7
12
  GROUP_MAX,
8
13
  GROUP_OVERLAP
9
14
  } from "./chunk-FAITHWIO.js";
10
- import {
11
- AVATAR_DEFAULTS,
12
- contentTypeOf,
13
- pickAvatarContent
14
- } from "./chunk-3ZVUNSFF.js";
15
15
 
16
16
  // src/components/data-display/Avatar/Avatar.tsx
17
17
  import BrokenImage from "@mui/icons-material/BrokenImage";
@@ -172,4 +172,4 @@ export {
172
172
  Avatar,
173
173
  AvatarGroup
174
174
  };
175
- //# sourceMappingURL=chunk-JD3D6Y4U.js.map
175
+ //# sourceMappingURL=chunk-THOPGHTY.js.map
@@ -3,9 +3,11 @@ import {
3
3
  ICON_ONLY_PADDING
4
4
  } from "./chunk-5LQ7PKMW.js";
5
5
  import {
6
- inkOver,
7
6
  px
8
- } from "./chunk-QLI7ES7Z.js";
7
+ } from "./chunk-SONWG2RT.js";
8
+ import {
9
+ inkOver
10
+ } from "./chunk-2BYKTBDL.js";
9
11
 
10
12
  // src/components/form/Button/Button.styles.ts
11
13
  import { alpha, darken, keyframes, lighten } from "@mui/material/styles/index.js";
@@ -200,4 +202,4 @@ export {
200
202
  buttonVariantStyles,
201
203
  buttonEmphasisStyles
202
204
  };
203
- //# sourceMappingURL=chunk-2LSCK45B.js.map
205
+ //# sourceMappingURL=chunk-TSEWUY4V.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/form/Button/Button.styles.ts"],"sourcesContent":["import { alpha, darken, keyframes, lighten } from '@mui/material/styles/index.js';\nimport type { CSSObject, Theme } from '@mui/material/styles/index.js';\n\nimport { BUTTON_SIZES, ICON_ONLY_PADDING as ICON_ONLY_PADDING_PX } from './Button.metrics';\nimport { inkOver, px } from '../../../tokens/theme';\n\n// Define pulse animation globally\nconst pulseAnimation = keyframes`\n 0% {\n box-shadow: 0 0 0 0 currentColor;\n opacity: 1;\n }\n 70% {\n box-shadow: 0 0 0 15px currentColor;\n opacity: 0;\n }\n 100% {\n box-shadow: 0 0 0 0 currentColor;\n opacity: 0;\n }\n`;\n\ninterface ColorPalette {\n main: string;\n dark: string;\n light: string;\n contrastText: string;\n}\n\nconst shade = (\n palette: ColorPalette | undefined,\n key: 'dark' | 'light',\n fallback: ColorPalette,\n): string => palette?.[key] || palette?.main || fallback[key];\n\n/** `neutral` has no MUI palette entry, so its four shades come from grey. */\nconst neutralPalette = (theme: Theme): ColorPalette => ({\n main: theme.palette.grey?.[700] || '#616161',\n dark: theme.palette.grey?.[800] || '#424242',\n light: theme.palette.grey?.[500] || '#9e9e9e',\n contrastText: '#fff',\n});\n\nexport const getColorFromTheme = (theme: Theme, color: string): ColorPalette => {\n if (color === 'neutral') return neutralPalette(theme);\n\n const colorMap: Record<string, ColorPalette> = {\n primary: theme.palette.primary as ColorPalette,\n secondary: theme.palette.secondary as ColorPalette,\n success: theme.palette.success as ColorPalette,\n warning: theme.palette.warning as ColorPalette,\n info: theme.palette.info as ColorPalette,\n danger: theme.palette.error as ColorPalette,\n };\n\n const fallback = theme.palette.primary as ColorPalette;\n const palette = colorMap[color] || fallback;\n\n // Ensure palette has required properties\n return {\n main: palette?.main || fallback.main,\n dark: shade(palette, 'dark', fallback),\n light: shade(palette, 'light', fallback),\n contrastText: palette?.contrastText || '#fff',\n };\n};\n\n// Derived from `Button.metrics.ts`, which the native `Button` reads too — one\n// table, so a size cannot differ between the renderers.\nconst SIZE_MAP: Record<string, CSSObject> = Object.fromEntries(\n Object.entries(BUTTON_SIZES).map(([size, m]) => [\n size,\n { padding: `${m.paddingVertical}px ${m.paddingHorizontal}px`, fontSize: px(m.fontSize) },\n ]),\n);\n\n/** What an unrecognised size falls back to, named so indexing can never be undefined. */\nconst DEFAULT_SIZE: CSSObject = SIZE_MAP.md as CSSObject;\n\n/**\n * A BUTTON THAT IS ONLY AN ICON IS SQUARE.\n *\n * MUI puts a 64px `min-width` on every button, which is right for a label and\n * wrong for a glyph: three dots in a 64px slab reads as a button that failed to\n * load its text, and at the end of a dense row it claims space the row needs.\n * The horizontal padding goes too — a square of padding round a square glyph —\n * and so does the gap MUI reserves beside a start/end icon, since there is\n * nothing on the other side of it.\n *\n * Derived, not declared: a button with an `icon` and no children can only be an\n * icon button, so no consumer has to opt in and none can forget to.\n */\nconst ICON_ONLY_PADDING: Record<string, string> = Object.fromEntries(\n Object.entries(ICON_ONLY_PADDING_PX).map(([size, padding]) => [size, `${padding}px`]),\n);\n\nconst iconOnlySize = (size: string): CSSObject => ({\n minWidth: 0,\n padding: ICON_ONLY_PADDING[size] ?? ICON_ONLY_PADDING.md,\n fontSize: SIZE_MAP[size]?.fontSize ?? DEFAULT_SIZE.fontSize,\n '& .MuiButton-startIcon, & .MuiButton-endIcon': { margin: 0 },\n});\n\n/** The size styles for a button, square when it carries nothing but an icon. */\nexport const buttonSize = (size: string, iconOnly: boolean): CSSObject =>\n iconOnly ? iconOnlySize(size) : (SIZE_MAP[size] ?? DEFAULT_SIZE);\n\n/**\n * MUI centres icons with a negative margin that fights our own padding, so the\n * flex alignment is restated here rather than fought with `!important`.\n */\nexport const iconAlignmentStyles = (theme: Theme): CSSObject => ({\n '& .MuiButton-startIcon, & .MuiButton-endIcon': {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n margin: 0,\n verticalAlign: 'middle',\n '& > *': {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n lineHeight: 0,\n },\n },\n '& .MuiButton-startIcon': {\n marginRight: theme.spacing(0.5),\n },\n '& .MuiButton-endIcon': {\n marginLeft: theme.spacing(0.5),\n },\n});\n\n// Gradients run between two related hues; the named colours pick a specific pair,\n// anything else runs from its own main to its own dark.\nconst GRADIENT_PAIRS: Record<string, (theme: Theme) => [string, string]> = {\n primary: (theme) => [theme.palette.primary.main, theme.palette.secondary.main],\n secondary: (theme) => [theme.palette.secondary.main, theme.palette.primary.main],\n success: (theme) => [theme.palette.success.light, theme.palette.success.dark],\n warning: (theme) => [theme.palette.warning.light, theme.palette.warning.dark],\n danger: (theme) => [theme.palette.error.light, theme.palette.error.dark],\n};\n\nconst gradientStops = (theme: Theme, color: string, palette: ColorPalette): [string, string] =>\n GRADIENT_PAIRS[color]?.(theme) ?? [palette.main, palette.dark];\n\nconst gradientFor = (theme: Theme, color: string, palette: ColorPalette): string => {\n const [from, to] = gradientStops(theme, color, palette);\n return `linear-gradient(135deg, ${from} 0%, ${to} 100%)`;\n};\n\n/**\n * The label colour for `gradient`, which used to be `#fff` outright (FUT-1924).\n *\n * Every other filled variant reads `palette.contrastText`, derived from `main`\n * — so a white-labelled host handing the library a pale brand got dark ink on\n * its solid buttons and white ink on its gradient one. That store had exactly\n * one button in the library whose label it could not read, in LIGHT mode,\n * before dark mode existed anywhere.\n *\n * `contrastText` is still not the right thing to read, and that is why this\n * goes through {@link inkOver}: a gradient is TWO fills, the named pairs run\n * light-to-dark, and an ink chosen against `main` says nothing about the end\n * the gradient actually reaches. Both stops go in, and the ink has to survive\n * the worse of them.\n */\nconst gradientInk = (theme: Theme, color: string, palette: ColorPalette): string =>\n inkOver(gradientStops(theme, color, palette), palette.contrastText || '#fff');\n\n/**\n * The label colour for the two variants that paint no background of their own.\n *\n * `ghost` and `text` used `palette.main` directly, which is the same mistake\n * the Alert made with its body text: a palette's `main` is chosen to sit UNDER\n * white — it is the fill of a solid button — and it is not chosen to be read AS\n * text. `#6366F1`, the default primary, is 3.6:1 on white and worse on any\n * tinted surface, so a \"Cancelar\" or an \"Agora não\" placed on a coloured panel\n * turned into a smudge. That is precisely where these two variants belong: they\n * exist to be the quiet option NEXT to a solid one, so they are the buttons\n * most likely to be sitting on something other than plain paper.\n *\n * One step darker (lighter, on a dark theme) keeps the hue the caller asked for\n * and buys the contrast back. `main` still drives the hover wash and every\n * bordered variant, so nothing that was already legible moves.\n */\nconst quietInk = (theme: Theme, palette: ColorPalette): string =>\n theme.palette.mode === 'dark' ? lighten(palette.main, 0.35) : darken(palette.main, 0.3);\n\nconst VARIANT_STYLES: Record<\n string,\n (theme: Theme, palette: ColorPalette, color: string) => CSSObject\n> = {\n solid: (theme, palette) => ({\n backgroundColor: palette.main,\n color: palette.contrastText || '#fff',\n '&:hover': {\n backgroundColor: palette.dark,\n transform: 'translateY(-2px)',\n boxShadow: theme.shadows[8],\n },\n }),\n outline: (_theme, palette) => ({\n backgroundColor: 'transparent',\n color: palette.main,\n border: `1px solid ${palette.main}`,\n '&:hover': {\n backgroundColor: alpha(palette.main, 0.1),\n borderColor: palette.dark,\n },\n }),\n ghost: (theme, palette) => ({\n backgroundColor: 'transparent',\n color: quietInk(theme, palette),\n '&:hover': {\n backgroundColor: alpha(palette.main, 0.1),\n },\n }),\n text: (theme, palette) => ({\n backgroundColor: 'transparent',\n color: quietInk(theme, palette),\n border: `none`,\n '&:hover': {\n backgroundColor: alpha(palette.main, 0.1),\n },\n '&.active': {\n backgroundColor: alpha(palette.main, 0.1),\n color: quietInk(theme, palette),\n },\n }),\n glass: (theme, palette) => ({\n backgroundColor: alpha(theme.palette.background.paper, 0.1),\n backdropFilter: 'blur(20px)',\n border: `1px solid ${alpha(theme.palette.divider, 0.2)}`,\n color: palette.main,\n '&:hover': {\n backgroundColor: alpha(theme.palette.background.paper, 0.2),\n transform: 'translateY(-2px)',\n },\n }),\n gradient: (theme, palette, color) => ({\n background: gradientFor(theme, color, palette),\n color: gradientInk(theme, color, palette),\n '&:hover': {\n filter: 'brightness(1.1)',\n transform: 'translateY(-2px)',\n boxShadow: theme.shadows[12],\n },\n }),\n};\n\nexport const buttonVariantStyles = (\n theme: Theme,\n variant: string | undefined,\n palette: ColorPalette,\n color: string,\n): CSSObject => VARIANT_STYLES[variant ?? '']?.(theme, palette, color) ?? {};\n\n// Glow effect - applied with !important to override variant shadows\nconst glowStyles = (palette: ColorPalette): CSSObject => ({\n boxShadow: `0 0 20px 5px ${alpha(palette.main, 0.6)}, 0 0 40px 10px ${alpha(palette.main, 0.3)} !important`,\n filter: 'brightness(1.05)',\n '&:hover': {\n boxShadow: `0 0 25px 8px ${alpha(palette.main, 0.7)}, 0 0 50px 15px ${alpha(palette.main, 0.4)} !important`,\n filter: 'brightness(1.1)',\n transform: 'translateY(-2px) scale(1.02)',\n },\n});\n\n// Pulse animation using pseudo-element\nconst pulseStyles = (palette: ColorPalette): CSSObject => ({\n position: 'relative',\n overflow: 'visible',\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n top: '50%',\n left: '50%',\n width: '100%',\n height: '100%',\n borderRadius: 'inherit',\n transform: 'translate(-50%, -50%)',\n backgroundColor: palette.main,\n opacity: 0.3,\n animation: `${pulseAnimation} 2s infinite`,\n pointerEvents: 'none',\n zIndex: -1,\n },\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.\n */\nexport const buttonEmphasisStyles = (\n palette: ColorPalette,\n glow?: boolean,\n pulse?: boolean,\n): CSSObject => ({\n ...(glow ? glowStyles(palette) : {}),\n ...(pulse ? pulseStyles(palette) : {}),\n});\n"],"mappings":"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","names":["ICON_ONLY_PADDING"]}
1
+ {"version":3,"sources":["../src/components/form/Button/Button.styles.ts"],"sourcesContent":["import { alpha, darken, keyframes, lighten } from '@mui/material/styles/index.js';\nimport type { CSSObject, Theme } from '@mui/material/styles/index.js';\n\nimport { BUTTON_SIZES, ICON_ONLY_PADDING as ICON_ONLY_PADDING_PX } from './Button.metrics';\nimport { inkOver, px } from '../../../tokens/theme';\n\n// Define pulse animation globally\nconst pulseAnimation = keyframes`\n 0% {\n box-shadow: 0 0 0 0 currentColor;\n opacity: 1;\n }\n 70% {\n box-shadow: 0 0 0 15px currentColor;\n opacity: 0;\n }\n 100% {\n box-shadow: 0 0 0 0 currentColor;\n opacity: 0;\n }\n`;\n\ninterface ColorPalette {\n main: string;\n dark: string;\n light: string;\n contrastText: string;\n}\n\nconst shade = (\n palette: ColorPalette | undefined,\n key: 'dark' | 'light',\n fallback: ColorPalette,\n): string => palette?.[key] || palette?.main || fallback[key];\n\n/** `neutral` has no MUI palette entry, so its four shades come from grey. */\nconst neutralPalette = (theme: Theme): ColorPalette => ({\n main: theme.palette.grey?.[700] || '#616161',\n dark: theme.palette.grey?.[800] || '#424242',\n light: theme.palette.grey?.[500] || '#9e9e9e',\n contrastText: '#fff',\n});\n\nexport const getColorFromTheme = (theme: Theme, color: string): ColorPalette => {\n if (color === 'neutral') return neutralPalette(theme);\n\n const colorMap: Record<string, ColorPalette> = {\n primary: theme.palette.primary as ColorPalette,\n secondary: theme.palette.secondary as ColorPalette,\n success: theme.palette.success as ColorPalette,\n warning: theme.palette.warning as ColorPalette,\n info: theme.palette.info as ColorPalette,\n danger: theme.palette.error as ColorPalette,\n };\n\n const fallback = theme.palette.primary as ColorPalette;\n const palette = colorMap[color] || fallback;\n\n // Ensure palette has required properties\n return {\n main: palette?.main || fallback.main,\n dark: shade(palette, 'dark', fallback),\n light: shade(palette, 'light', fallback),\n contrastText: palette?.contrastText || '#fff',\n };\n};\n\n// Derived from `Button.metrics.ts`, which the native `Button` reads too — one\n// table, so a size cannot differ between the renderers.\nconst SIZE_MAP: Record<string, CSSObject> = Object.fromEntries(\n Object.entries(BUTTON_SIZES).map(([size, m]) => [\n size,\n { padding: `${m.paddingVertical}px ${m.paddingHorizontal}px`, fontSize: px(m.fontSize) },\n ]),\n);\n\n/** What an unrecognised size falls back to, named so indexing can never be undefined. */\nconst DEFAULT_SIZE: CSSObject = SIZE_MAP.md as CSSObject;\n\n/**\n * A BUTTON THAT IS ONLY AN ICON IS SQUARE.\n *\n * MUI puts a 64px `min-width` on every button, which is right for a label and\n * wrong for a glyph: three dots in a 64px slab reads as a button that failed to\n * load its text, and at the end of a dense row it claims space the row needs.\n * The horizontal padding goes too — a square of padding round a square glyph —\n * and so does the gap MUI reserves beside a start/end icon, since there is\n * nothing on the other side of it.\n *\n * Derived, not declared: a button with an `icon` and no children can only be an\n * icon button, so no consumer has to opt in and none can forget to.\n */\nconst ICON_ONLY_PADDING: Record<string, string> = Object.fromEntries(\n Object.entries(ICON_ONLY_PADDING_PX).map(([size, padding]) => [size, `${padding}px`]),\n);\n\nconst iconOnlySize = (size: string): CSSObject => ({\n minWidth: 0,\n padding: ICON_ONLY_PADDING[size] ?? ICON_ONLY_PADDING.md,\n fontSize: SIZE_MAP[size]?.fontSize ?? DEFAULT_SIZE.fontSize,\n '& .MuiButton-startIcon, & .MuiButton-endIcon': { margin: 0 },\n});\n\n/** The size styles for a button, square when it carries nothing but an icon. */\nexport const buttonSize = (size: string, iconOnly: boolean): CSSObject =>\n iconOnly ? iconOnlySize(size) : (SIZE_MAP[size] ?? DEFAULT_SIZE);\n\n/**\n * MUI centres icons with a negative margin that fights our own padding, so the\n * flex alignment is restated here rather than fought with `!important`.\n */\nexport const iconAlignmentStyles = (theme: Theme): CSSObject => ({\n '& .MuiButton-startIcon, & .MuiButton-endIcon': {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n margin: 0,\n verticalAlign: 'middle',\n '& > *': {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n lineHeight: 0,\n },\n },\n '& .MuiButton-startIcon': {\n marginRight: theme.spacing(0.5),\n },\n '& .MuiButton-endIcon': {\n marginLeft: theme.spacing(0.5),\n },\n});\n\n// Gradients run between two related hues; the named colours pick a specific pair,\n// anything else runs from its own main to its own dark.\nconst GRADIENT_PAIRS: Record<string, (theme: Theme) => [string, string]> = {\n primary: (theme) => [theme.palette.primary.main, theme.palette.secondary.main],\n secondary: (theme) => [theme.palette.secondary.main, theme.palette.primary.main],\n success: (theme) => [theme.palette.success.light, theme.palette.success.dark],\n warning: (theme) => [theme.palette.warning.light, theme.palette.warning.dark],\n danger: (theme) => [theme.palette.error.light, theme.palette.error.dark],\n};\n\nconst gradientStops = (theme: Theme, color: string, palette: ColorPalette): [string, string] =>\n GRADIENT_PAIRS[color]?.(theme) ?? [palette.main, palette.dark];\n\nconst gradientFor = (theme: Theme, color: string, palette: ColorPalette): string => {\n const [from, to] = gradientStops(theme, color, palette);\n return `linear-gradient(135deg, ${from} 0%, ${to} 100%)`;\n};\n\n/**\n * The label colour for `gradient`, which used to be `#fff` outright (FUT-1924).\n *\n * Every other filled variant reads `palette.contrastText`, derived from `main`\n * — so a white-labelled host handing the library a pale brand got dark ink on\n * its solid buttons and white ink on its gradient one. That store had exactly\n * one button in the library whose label it could not read, in LIGHT mode,\n * before dark mode existed anywhere.\n *\n * `contrastText` is still not the right thing to read, and that is why this\n * goes through {@link inkOver}: a gradient is TWO fills, the named pairs run\n * light-to-dark, and an ink chosen against `main` says nothing about the end\n * the gradient actually reaches. Both stops go in, and the ink has to survive\n * the worse of them.\n */\nconst gradientInk = (theme: Theme, color: string, palette: ColorPalette): string =>\n inkOver(gradientStops(theme, color, palette), palette.contrastText || '#fff');\n\n/**\n * The label colour for the two variants that paint no background of their own.\n *\n * `ghost` and `text` used `palette.main` directly, which is the same mistake\n * the Alert made with its body text: a palette's `main` is chosen to sit UNDER\n * white — it is the fill of a solid button — and it is not chosen to be read AS\n * text. `#6366F1`, the default primary, is 3.6:1 on white and worse on any\n * tinted surface, so a \"Cancelar\" or an \"Agora não\" placed on a coloured panel\n * turned into a smudge. That is precisely where these two variants belong: they\n * exist to be the quiet option NEXT to a solid one, so they are the buttons\n * most likely to be sitting on something other than plain paper.\n *\n * One step darker (lighter, on a dark theme) keeps the hue the caller asked for\n * and buys the contrast back. `main` still drives the hover wash and every\n * bordered variant, so nothing that was already legible moves.\n */\nconst quietInk = (theme: Theme, palette: ColorPalette): string =>\n theme.palette.mode === 'dark' ? lighten(palette.main, 0.35) : darken(palette.main, 0.3);\n\nconst VARIANT_STYLES: Record<\n string,\n (theme: Theme, palette: ColorPalette, color: string) => CSSObject\n> = {\n solid: (theme, palette) => ({\n backgroundColor: palette.main,\n color: palette.contrastText || '#fff',\n '&:hover': {\n backgroundColor: palette.dark,\n transform: 'translateY(-2px)',\n boxShadow: theme.shadows[8],\n },\n }),\n outline: (_theme, palette) => ({\n backgroundColor: 'transparent',\n color: palette.main,\n border: `1px solid ${palette.main}`,\n '&:hover': {\n backgroundColor: alpha(palette.main, 0.1),\n borderColor: palette.dark,\n },\n }),\n ghost: (theme, palette) => ({\n backgroundColor: 'transparent',\n color: quietInk(theme, palette),\n '&:hover': {\n backgroundColor: alpha(palette.main, 0.1),\n },\n }),\n text: (theme, palette) => ({\n backgroundColor: 'transparent',\n color: quietInk(theme, palette),\n border: `none`,\n '&:hover': {\n backgroundColor: alpha(palette.main, 0.1),\n },\n '&.active': {\n backgroundColor: alpha(palette.main, 0.1),\n color: quietInk(theme, palette),\n },\n }),\n glass: (theme, palette) => ({\n backgroundColor: alpha(theme.palette.background.paper, 0.1),\n backdropFilter: 'blur(20px)',\n border: `1px solid ${alpha(theme.palette.divider, 0.2)}`,\n color: palette.main,\n '&:hover': {\n backgroundColor: alpha(theme.palette.background.paper, 0.2),\n transform: 'translateY(-2px)',\n },\n }),\n gradient: (theme, palette, color) => ({\n background: gradientFor(theme, color, palette),\n color: gradientInk(theme, color, palette),\n '&:hover': {\n filter: 'brightness(1.1)',\n transform: 'translateY(-2px)',\n boxShadow: theme.shadows[12],\n },\n }),\n};\n\nexport const buttonVariantStyles = (\n theme: Theme,\n variant: string | undefined,\n palette: ColorPalette,\n color: string,\n): CSSObject => VARIANT_STYLES[variant ?? '']?.(theme, palette, color) ?? {};\n\n// Glow effect - applied with !important to override variant shadows\nconst glowStyles = (palette: ColorPalette): CSSObject => ({\n boxShadow: `0 0 20px 5px ${alpha(palette.main, 0.6)}, 0 0 40px 10px ${alpha(palette.main, 0.3)} !important`,\n filter: 'brightness(1.05)',\n '&:hover': {\n boxShadow: `0 0 25px 8px ${alpha(palette.main, 0.7)}, 0 0 50px 15px ${alpha(palette.main, 0.4)} !important`,\n filter: 'brightness(1.1)',\n transform: 'translateY(-2px) scale(1.02)',\n },\n});\n\n// Pulse animation using pseudo-element\nconst pulseStyles = (palette: ColorPalette): CSSObject => ({\n position: 'relative',\n overflow: 'visible',\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n top: '50%',\n left: '50%',\n width: '100%',\n height: '100%',\n borderRadius: 'inherit',\n transform: 'translate(-50%, -50%)',\n backgroundColor: palette.main,\n opacity: 0.3,\n animation: `${pulseAnimation} 2s infinite`,\n pointerEvents: 'none',\n zIndex: -1,\n },\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.\n */\nexport const buttonEmphasisStyles = (\n palette: ColorPalette,\n glow?: boolean,\n pulse?: boolean,\n): CSSObject => ({\n ...(glow ? glowStyles(palette) : {}),\n ...(pulse ? pulseStyles(palette) : {}),\n});\n"],"mappings":"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","names":["ICON_ONLY_PADDING"]}
@@ -1,42 +1,42 @@
1
+ import {
2
+ DataViewsEmpty
3
+ } from "./chunk-OJCK5RNJ.js";
4
+ import {
5
+ InlineFilterControls
6
+ } from "./chunk-NY2Y2SHA.js";
7
+ import {
8
+ GridHeaderRow
9
+ } from "./chunk-UC6A6ASM.js";
1
10
  import {
2
11
  GridMain
3
- } from "./chunk-SC72DRTX.js";
12
+ } from "./chunk-QGAYEBMU.js";
4
13
  import {
5
14
  FilterDialog,
6
15
  GridFilterPanel
7
- } from "./chunk-KAV63FBG.js";
16
+ } from "./chunk-XOCLWQON.js";
8
17
  import {
9
- DataViewsEmpty
10
- } from "./chunk-DTIB5KWP.js";
18
+ DataViewsPagination
19
+ } from "./chunk-HP2ODXNA.js";
11
20
  import {
12
21
  toOverflowFields,
13
22
  useFilterOverflow
14
23
  } from "./chunk-TQ6FPOPD.js";
15
- import {
16
- InlineFilterControls
17
- } from "./chunk-QXFPTRHB.js";
18
- import {
19
- GridHeaderRow
20
- } from "./chunk-H3BQFEN5.js";
21
24
  import {
22
25
  ScopeTabsSlot
23
- } from "./chunk-6SK3MTYJ.js";
24
- import {
25
- DataViewsPagination
26
- } from "./chunk-HP2ODXNA.js";
26
+ } from "./chunk-QSKJLMNS.js";
27
27
  import {
28
28
  ShellToolbar
29
- } from "./chunk-WETAIIKC.js";
29
+ } from "./chunk-MRMNVGNX.js";
30
30
  import {
31
31
  resolveSelectionExtra
32
32
  } from "./chunk-KX75HM5U.js";
33
+ import {
34
+ togglePillValues
35
+ } from "./chunk-XGOWREVV.js";
33
36
  import {
34
37
  DataViewsLayoutProvider,
35
38
  useDataViewsLayout
36
39
  } from "./chunk-M7E66OSC.js";
37
- import {
38
- togglePillValues
39
- } from "./chunk-KOFO6QZY.js";
40
40
  import {
41
41
  useDataViewsCopy
42
42
  } from "./chunk-KHG57NAE.js";
@@ -180,6 +180,7 @@ function ShellStack({
180
180
  renderListRow: props.renderListRow,
181
181
  listGroup: props.listGroup,
182
182
  board: props.board,
183
+ rowDetail: props.rowDetail,
183
184
  dataTestId,
184
185
  testIdPrefix,
185
186
  emptyState: body
@@ -237,4 +238,4 @@ function GridShell(props) {
237
238
  export {
238
239
  GridShell
239
240
  };
240
- //# sourceMappingURL=chunk-65METCKT.js.map
241
+ //# sourceMappingURL=chunk-TSFFZ3AH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/data-display/DataViews/data-views-grid-parts.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect, useState } from \"react\";\n\nimport { TableFilter } from \"../../layout/TableFilter\";\nimport { Stack } from \"../../../mui/Stack\";\n\nimport {\n DataViewsLayoutProvider,\n useDataViewsLayout,\n type DataViewsLayout,\n} from \"./data-views-layout-context\";\nimport { FilterDialog, GridFilterPanel } from \"./data-views-filter-panel\";\nimport { GridMain } from \"./data-views-grid-bodies\";\nimport type { ListGroupConfig } from \"./list-card-rails\";\nimport { InlineFilterControls } from \"./data-views-inline-bar\";\nimport { toOverflowFields, useFilterOverflow, type OverflowSplit } from \"./data-views-overflow\";\nimport { GridHeaderRow } from \"./data-views-header-row\";\nimport { resolveSelectionExtra, type SelectionExtraRender } from \"./data-views-selection-extra\";\nimport { ShellToolbar } from \"./data-views-shell-toolbar\";\nimport type { DisplayPanelView } from \"./data-views-display-panel\";\nimport type { DataViewExport } from \"./data-views-export\";\nimport { useDataViewsCopy } from \"./data-views-copy-context\";\nimport { DataViewsEmpty } from \"./data-views-empty\";\nimport { DataViewsPagination } from \"./data-views-pagination\";\nimport type { BoardConfig } from \"./DataViewsBoard\";\nimport { type ScopeConfig } from \"./data-views-scopes\";\nimport { ScopeTabsSlot } from \"./data-views-scope-tabs\";\nimport { togglePillValues } from \"./data-views-grid-helpers\";\nimport type {\n DataViewCardSelection,\n FilterFieldConfig,\n RangeFieldConfig,\n RangeValue,\n RowAction,\n} from \"./data-views-types\";\nimport type { DataViewRowDetail } from \"./data-views-row-detail\";\nimport type { DataViewsController } from \"./use-data-views-state\";\n\n/* ── Layout ⇄ view-state mirror ──────────────────────────────────────────── */\n\n/**\n * Mirrors the LIVE layout back into the view state, so saving a view captures\n * the layout the user is actually looking at.\n *\n * A component rather than a callback prop because only something INSIDE the\n * provider can read the layout, and only the controller can write the state.\n * The `stored !== layout` guard is what makes it idempotent: `c` is rebuilt on\n * every render, so an unguarded effect here would patch → re-render → patch.\n *\n * It re-fires when `stored` changes too, which is the case that matters after\n * applying a saved view: `appliedState` REPLACES the state, so a view saved\n * before layouts were captured clears `state.layout`, and the mirror puts the\n * current one back rather than leaving the next save with nothing to store.\n */\nfunction LayoutStateSync<T extends Record<string, unknown>>({\n c,\n}: {\n c: DataViewsController<T>;\n}): null {\n const { layout } = useDataViewsLayout();\n const stored = c.state.layout;\n useEffect(() => {\n if (stored !== layout) c.patch({ layout });\n // `c` is intentionally out of the deps — see the guard above.\n }, [layout, stored]);\n return null;\n}\n\n/* ── Shell (composes toolbar + body + panel) ─────────────────────────────── */\n\n/** The shared filter-surface props consumed by the inline bar, panel, and modal. */\ninterface FilterSurfaceProps<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/**\n * Derives the responsive filter state (which surface to show at this width) and\n * the filter-mutation handlers from the controller — pulled out of `GridShell`\n * so the component body stays under the size/complexity budget.\n */\n/** Grouped rather than positional: the list had grown past readability. */\ninterface GridShellFiltersArgs<T extends Record<string, unknown>> {\n c: DataViewsController<T>;\n inlineFilters: boolean;\n fields: FilterFieldConfig<T>[];\n rangeFields: RangeFieldConfig<T>[];\n testIdPrefix: string;\n alwaysShowSearch: boolean;\n /** Is \"Exportar\" on the bar? Half the right cluster's cost when it is not. */\n hasExport: boolean;\n}\n\nfunction useGridShellFilters<T extends Record<string, unknown>>({\n c,\n inlineFilters,\n fields,\n rangeFields,\n testIdPrefix,\n alwaysShowSearch,\n hasExport,\n}: GridShellFiltersArgs<T>): {\n showInline: boolean;\n useModal: boolean;\n inlineVisible: boolean;\n filterProps: FilterSurfaceProps<T>;\n split: OverflowSplit<T>;\n onControlOpenChange: (open: boolean) => void;\n} {\n const { state } = c;\n // How many filter controls are open. A COUNT, not a flag: closing one popover\n // by opening another overlaps, and a boolean would unfreeze mid-handover.\n const [openControls, setOpenControls] = useState(0);\n // ONE measurement for the whole shell: the filter row decides which controls\n // it can keep, and the TOOLBAR needs the same answer to drop its labels.\n // Measuring twice would let the two disagree at the crossover width.\n const split = useFilterOverflow(\n toOverflowFields(fields, rangeFields),\n state.pills,\n c.ranges,\n openControls > 0,\n hasExport,\n );\n // THE BAR RENDERS AT EVERY WIDTH. It used to be swapped for a full-screen\n // filter MODAL below `lg`, which was the responsive strategy before the\n // measured ladder existed — and the two now do the same job, badly together:\n // the modal took the bar away at 1199px, and with it the very degradation\n // (labels off, search collapsed, filters into \"Mais\") that exists to make a\n // narrow bar work. So a 900px window got no bar and no ladder, and the\n // operator lost the search entirely rather than gaining a compact one.\n //\n // The ladder is measured, so it already covers every width the modal did.\n const showInline = inlineFilters;\n const useModal = false;\n const inlineVisible =\n showInline &&\n (alwaysShowSearch || fields.length > 0 || rangeFields.length > 0 || state.search !== \"\");\n const filterProps: FilterSurfaceProps<T> = {\n testIdPrefix,\n search: state.search,\n fields,\n rangeFields,\n pills: state.pills,\n ranges: c.ranges,\n onSearchChange: (value) => c.patch({ search: value }),\n // Updater, never the render's `state` — see {@link DataViewStatePatch}.\n onTogglePill: (fieldId, value, checked) =>\n c.patch(({ pills }) => ({ pills: { ...pills, [fieldId]: togglePillValues(pills[fieldId], value, checked) } })),\n onChangeRange: (fieldId, range) => c.patch({ ranges: { ...c.ranges, [fieldId]: range } }),\n onClearField: (fieldId) => c.patch({ pills: { ...state.pills, [fieldId]: [] } }),\n onClearAll: () => c.patch({ search: \"\", pills: {}, ranges: {} }),\n };\n return {\n showInline,\n useModal,\n inlineVisible,\n filterProps,\n split,\n onControlOpenChange: (open) =>\n setOpenControls((count) => Math.max(0, count + (open ? 1 : -1))),\n };\n}\n\ninterface GridShellProps<T extends Record<string, unknown>> {\n c: DataViewsController<T>;\n rows: T[];\n fields: FilterFieldConfig<T>[];\n rangeFields: RangeFieldConfig<T>[];\n getRowId: (row: T) => string | number;\n testIdPrefix: string;\n dataTestId?: string;\n emptyState?: React.ReactNode;\n toolbarRightSlot?: React.ReactNode;\n rowActions?: RowAction<T>[];\n bulkActions?: (selectedRows: T[], clearSelection: () => void) => React.ReactNode;\n /** A widening control beside the selection count — see `resolveSelectionExtra`. */\n selectionExtra?: SelectionExtraRender<T>;\n /** Opt-in \"Grade\" (cards) layout: renders each row as an entity-supplied card.\n * Omit ⇒ table only (no layout toggle). */\n renderCard?: (row: T, selection: DataViewCardSelection) => React.ReactNode;\n /**\n * Opt-in \"Quadro\" (board) layout. Needs `renderCard` too — the board reuses\n * the entity's card, so a board config without one simply offers no board\n * rather than failing: that is a config gap, not a runtime error.\n */\n board?: BoardConfig<T>;\n /** Opt-in \"Lista\" layout: one full-width, entity-rendered row per record. */\n renderListRow?: (row: T, selection: DataViewCardSelection) => React.ReactNode;\n /** The Lista's shared columns, so its rows line up by construction. */\n listGroup?: ListGroupConfig<T>;\n /** Opt-in expandable rows, drawn by the table layout only. */\n rowDetail?: DataViewRowDetail<T>;\n /** The page-level partition rendered as tabs under the toolbar. */\n scopes?: ScopeConfig[];\n /**\n * The row field the scopes partition by. Compared against the board's\n * `groupBy` so the two are not shown as the same partition twice.\n */\n scopeFieldId?: string;\n /** Per-sort-field value kind, so directions read in the column's own terms. */\n sortKinds?: Record<string, string>;\n /** The saved-view chrome bracketing the Exibir panel. */\n displayView?: DisplayPanelView;\n /** Injected export — the host re-queries; the grid never fetches. */\n exportConfig?: DataViewExport;\n /** Page title in the grid's own header row, above the scopes + toolbar. */\n title?: string;\n /** Primary page actions rendered at the header row's right. */\n headerActions?: React.ReactNode;\n /** Which layout to show first when the user has expressed no preference (default \"table\"). */\n defaultLayout?: DataViewsLayout;\n /** Pin to `defaultLayout`, ignoring the remembered preference (stories/docs). */\n ignoreStoredLayout?: boolean;\n /**\n * Opt into the responsive inline filter UX: a collapsible filter row below the\n * toolbar on wide screens and a modal on narrow ones. When false (default),\n * keep the classic slide-in filter panel opened by the \"Filtros\" button.\n */\n inlineFilters?: boolean;\n /**\n * Keep the inline search box on screen even with no filter fields and no\n * active search. Without it a grid whose only filter IS the search (`fields`\n * empty) can never OFFER one: the row renders only once a search exists, so\n * the operator would have to hand-edit the URL to start one. Default false —\n * every grid that ships filter fields already shows the row.\n */\n alwaysShowSearch?: boolean;\n}\n\n/** The scrollable content region: scope tabs, toolbar, filter bar, body, pager. */\nfunction ShellStack<T extends Record<string, unknown>>({\n props,\n filters,\n}: {\n props: GridShellProps<T>;\n filters: ReturnType<typeof useGridShellFilters<T>>;\n}): React.JSX.Element {\n const copy = useDataViewsCopy();\n const { c, testIdPrefix, dataTestId, scopes = [], emptyState, inlineFilters = false } = props;\n const { showInline, useModal, inlineVisible, filterProps, split, onControlOpenChange } = filters;\n // The grid renders the FILTERED empty state itself — it is the only party\n // that knows a filter is applied. See {@link DataViewsEmpty}.\n const body = (\n <DataViewsEmpty\n filtered={c.activeFilterCount > 0 || c.state.search !== \"\"}\n onClearFilters={() => c.patch({ search: \"\", pills: {}, ranges: {} })}\n emptyState={emptyState}\n testIdPrefix={testIdPrefix}\n />\n );\n return (\n <TableFilter\n copy={copy.tableFilter} open={c.filterOpen} onOpenChange={c.setFilterOpen}\n hasActiveFilters={c.activeFilterCount > 0}\n >\n <Stack spacing={0} data-testid={dataTestId ? `${dataTestId}-container` : undefined}>\n <GridHeaderRow title={props.title} headerActions={props.headerActions} testIdPrefix={testIdPrefix} />\n <ShellToolbar\n c={c}\n rows={props.rows}\n sortKinds={props.sortKinds}\n displayView={props.displayView}\n exportConfig={props.exportConfig}\n filterControls={\n inlineVisible ? (\n <InlineFilterControls\n {...filterProps} split={split} activeFilterCount={c.activeFilterCount}\n onControlOpenChange={onControlOpenChange}\n />\n ) : undefined\n }\n barRef={split.barRef}\n testIdPrefix={testIdPrefix}\n rowActions={props.rowActions}\n bulkActions={props.bulkActions}\n selectionExtra={resolveSelectionExtra(props)}\n toolbarRightSlot={props.toolbarRightSlot}\n compactControls={showInline && split.compactControls}\n counterHidden={showInline && split.counterHidden}\n showInline={showInline}\n />\n <ScopeTabsSlot\n scopes={scopes} scopeFieldId={props.scopeFieldId} board={props.board}\n value={c.scope} onChange={c.setScope} counts={c.scopeCounts}\n testIdPrefix={testIdPrefix}\n />\n <TableFilter.Layout>\n <TableFilter.Main>\n <GridMain\n c={c}\n getRowId={props.getRowId}\n renderCard={props.renderCard}\n renderListRow={props.renderListRow}\n listGroup={props.listGroup}\n board={props.board}\n rowDetail={props.rowDetail}\n dataTestId={dataTestId}\n testIdPrefix={testIdPrefix}\n emptyState={body}\n />\n <DataViewsPagination c={c} testIdPrefix={testIdPrefix} />\n </TableFilter.Main>\n {inlineFilters ? null : <GridFilterPanel {...filterProps} />}\n </TableFilter.Layout>\n {useModal && <FilterDialog open={c.filterOpen} onClose={() => c.setFilterOpen(false)} {...filterProps} />}\n </Stack>\n </TableFilter>\n );\n}\n\nexport function GridShell<T extends Record<string, unknown>>(props: GridShellProps<T>): React.JSX.Element {\n const {\n c,\n fields,\n rangeFields,\n testIdPrefix,\n renderCard,\n renderListRow,\n board,\n defaultLayout,\n ignoreStoredLayout,\n inlineFilters = false,\n alwaysShowSearch = false,\n } = props;\n const filters = useGridShellFilters({\n c,\n inlineFilters,\n fields,\n rangeFields,\n testIdPrefix,\n alwaysShowSearch,\n hasExport: props.exportConfig !== undefined,\n });\n return (\n <DataViewsLayoutProvider\n canUseCards={Boolean(renderCard)}\n canUseList={Boolean(renderListRow)}\n // The board reuses the entity's card, so it needs BOTH — a `board` with no\n // `renderCard` offers no board rather than throwing.\n canUseBoard={Boolean(board && renderCard)}\n defaultLayout={defaultLayout}\n ignoreStoredLayout={ignoreStoredLayout}\n viewLayout={c.state.layout}\n >\n <LayoutStateSync c={c} />\n <ShellStack props={props} filters={filters} />\n </DataViewsLayoutProvider>\n );\n}\n"],"mappings":"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","names":["default"]}
@@ -1,3 +1,7 @@
1
+ import {
2
+ GridBody,
3
+ GridHeader
4
+ } from "./chunk-HTZNB6IV.js";
1
5
  import {
2
6
  DataGridEmpty,
3
7
  DataGridError,
@@ -6,10 +10,6 @@ import {
6
10
  import {
7
11
  useDataGridModel
8
12
  } from "./chunk-DLJGBJZW.js";
9
- import {
10
- GridBody,
11
- GridHeader
12
- } from "./chunk-KZLLTOB2.js";
13
13
 
14
14
  // src/components/data-display/DataGrid/DataGrid.tsx
15
15
  import Paper from "@mui/material/Paper/index.js";
@@ -117,4 +117,4 @@ export {
117
117
  DataGrid,
118
118
  GRID_ONLY_PROPS
119
119
  };
120
- //# sourceMappingURL=chunk-EZ5Z5UFI.js.map
120
+ //# sourceMappingURL=chunk-TTW4MAOJ.js.map
@@ -1,13 +1,13 @@
1
+ import {
2
+ makeTestId,
3
+ resolveCodeEditorProps
4
+ } from "./chunk-CSSCGM27.js";
1
5
  import {
2
6
  EditorToolbar
3
7
  } from "./chunk-4V7DBU4H.js";
4
8
  import {
5
9
  useCodeEditor
6
10
  } from "./chunk-ZSXV3ERD.js";
7
- import {
8
- makeTestId,
9
- resolveCodeEditorProps
10
- } from "./chunk-CSSCGM27.js";
11
11
  import {
12
12
  fieldEdge
13
13
  } from "./chunk-7FDU3FIN.js";
@@ -167,4 +167,4 @@ var CodeEditor = (componentProps) => {
167
167
  export {
168
168
  CodeEditor
169
169
  };
170
- //# sourceMappingURL=chunk-DTC224UJ.js.map
170
+ //# sourceMappingURL=chunk-TX3ZHO5R.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-6DPAWXZ3.js";
4
4
  import {
5
5
  Text
6
- } from "./chunk-PENJBKPH.js";
6
+ } from "./chunk-YTYROOLY.js";
7
7
 
8
8
  // src/components/data-display/DataViews/data-views-header-row.tsx
9
9
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -36,4 +36,4 @@ function GridHeaderRow({
36
36
  export {
37
37
  GridHeaderRow
38
38
  };
39
- //# sourceMappingURL=chunk-H3BQFEN5.js.map
39
+ //# sourceMappingURL=chunk-UC6A6ASM.js.map
@@ -15,7 +15,7 @@ import {
15
15
  } from "./chunk-FRAVVI4A.js";
16
16
  import {
17
17
  Calendar
18
- } from "./chunk-EPNCYUQ7.js";
18
+ } from "./chunk-UN5INW6K.js";
19
19
 
20
20
  // src/components/form/DateRangePicker/DateRangePicker.tsx
21
21
  import Box from "@mui/material/Box/index.js";
@@ -180,4 +180,4 @@ export {
180
180
  DateRangePicker,
181
181
  DateRangePicker_default
182
182
  };
183
- //# sourceMappingURL=chunk-GSTRPZS4.js.map
183
+ //# sourceMappingURL=chunk-UKPZVX3J.js.map
@@ -1,12 +1,12 @@
1
+ import {
2
+ useCalendar
3
+ } from "./chunk-2ZRZTGWP.js";
1
4
  import {
2
5
  resolveCalendarProps
3
6
  } from "./chunk-SUALMVL7.js";
4
7
  import {
5
8
  CalendarMonth
6
9
  } from "./chunk-PUBPZOQJ.js";
7
- import {
8
- useCalendar
9
- } from "./chunk-2ZRZTGWP.js";
10
10
 
11
11
  // src/components/form/Calendar/Calendar.tsx
12
12
  import Box from "@mui/material/Box/index.js";
@@ -83,4 +83,4 @@ export {
83
83
  Calendar,
84
84
  Calendar_default
85
85
  };
86
- //# sourceMappingURL=chunk-EPNCYUQ7.js.map
86
+ //# sourceMappingURL=chunk-UN5INW6K.js.map
@@ -4,10 +4,10 @@ import {
4
4
  bannerPointerStates,
5
5
  fadeInSlide,
6
6
  getVariantColor
7
- } from "./chunk-GYQT47YZ.js";
7
+ } from "./chunk-QTZ7I6QS.js";
8
8
  import {
9
9
  FOCUS
10
- } from "./chunk-XNOSTV5F.js";
10
+ } from "./chunk-PTP3CZL4.js";
11
11
 
12
12
  // src/components/data-display/Banner/Banner.tsx
13
13
  import CheckCircle from "@mui/icons-material/CheckCircle";
@@ -260,4 +260,4 @@ Banner.displayName = "Banner";
260
260
  export {
261
261
  Banner
262
262
  };
263
- //# sourceMappingURL=chunk-UGL6SJN6.js.map
263
+ //# sourceMappingURL=chunk-UQNB2W2I.js.map
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  CategorySectionHeading,
3
3
  CategoryTreeRow
4
- } from "./chunk-NPN7JTRM.js";
5
- import {
6
- emptySx,
7
- listSx,
8
- skeletonSx
9
- } from "./chunk-ZS44PY7T.js";
4
+ } from "./chunk-GH2DC7PS.js";
10
5
  import {
11
6
  categoryCheckState,
12
7
  isLeafCategory,
13
8
  leavesOf
14
9
  } from "./chunk-PN4HVM43.js";
10
+ import {
11
+ emptySx,
12
+ listSx,
13
+ skeletonSx
14
+ } from "./chunk-ZS44PY7T.js";
15
15
 
16
16
  // src/components/form/CategorySelect/CategoryPanelList.tsx
17
17
  import Box from "@mui/material/Box/index.js";
@@ -141,4 +141,4 @@ function CategoryPanelList(props) {
141
141
  export {
142
142
  CategoryPanelList
143
143
  };
144
- //# sourceMappingURL=chunk-P7IVAMAU.js.map
144
+ //# sourceMappingURL=chunk-V7F53GEO.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-V6Z4XS3I.js";
4
4
  import {
5
5
  CategoryPanelList
6
- } from "./chunk-P7IVAMAU.js";
6
+ } from "./chunk-V7F53GEO.js";
7
7
  import {
8
8
  CategoryPanelHead,
9
9
  CategoryPinnedTray
@@ -12,13 +12,13 @@ import {
12
12
  CategoryMultiFoot,
13
13
  CategorySingleFoot
14
14
  } from "./chunk-ZUY65MFH.js";
15
+ import {
16
+ removeChip
17
+ } from "./chunk-PN4HVM43.js";
15
18
  import {
16
19
  panelSx,
17
20
  sheetSx
18
21
  } from "./chunk-ZS44PY7T.js";
19
- import {
20
- removeChip
21
- } from "./chunk-PN4HVM43.js";
22
22
 
23
23
  // src/components/form/CategorySelect/CategoryPanel.tsx
24
24
  import Box from "@mui/material/Box/index.js";
@@ -156,4 +156,4 @@ function PanelFooter({
156
156
  export {
157
157
  CategoryPanel
158
158
  };
159
- //# sourceMappingURL=chunk-ZC7RQDZ5.js.map
159
+ //# sourceMappingURL=chunk-VESIQYBF.js.map
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-6DPAWXZ3.js";
7
7
  import {
8
8
  Text
9
- } from "./chunk-PENJBKPH.js";
9
+ } from "./chunk-YTYROOLY.js";
10
10
 
11
11
  // src/components/data-display/DataViews/DataViewsBoard.tsx
12
12
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -187,4 +187,4 @@ export {
187
187
  groupRows,
188
188
  DataViewsBoard
189
189
  };
190
- //# sourceMappingURL=chunk-2KVQIGVE.js.map
190
+ //# sourceMappingURL=chunk-VKH7AENA.js.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  Chart
3
- } from "./chunk-EMNGIYH6.js";
3
+ } from "./chunk-7TZ6OC5T.js";
4
4
  import {
5
5
  CHART_SEMANTIC_COLORS,
6
6
  specToChartProps
7
- } from "./chunk-GOWBYHYW.js";
7
+ } from "./chunk-R6SBP5M5.js";
8
8
  import {
9
9
  accentFor
10
10
  } from "./chunk-V5IOLAIS.js";
@@ -46,4 +46,4 @@ var SpecChart = ({
46
46
  export {
47
47
  SpecChart
48
48
  };
49
- //# sourceMappingURL=chunk-S7HRED4D.js.map
49
+ //# sourceMappingURL=chunk-VLHGBFR6.js.map