@12-apps/ui 6.52.0 → 6.53.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 (270) hide show
  1. package/components-catalog.md +1 -1
  2. package/dist/_internal/components/data-display/Avatar/Avatar.js +3 -3
  3. package/dist/_internal/components/data-display/Avatar/Avatar.view.js +2 -2
  4. package/dist/_internal/components/data-display/CardKit/use-remove-confirm.js +1 -1
  5. package/dist/_internal/components/data-display/CardKit/use-row-confirm.js +1 -1
  6. package/dist/_internal/components/data-display/Chart/SpecChart.js +3 -3
  7. package/dist/_internal/components/data-display/Chart/chart-spec.js +2 -2
  8. package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +24 -24
  9. package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +26 -26
  10. package/dist/_internal/components/data-display/DataViews/ManageViewsDialog.js +1 -1
  11. package/dist/_internal/components/data-display/DataViews/base-list-card-geometry.js +4 -4
  12. package/dist/_internal/components/data-display/DataViews/base-list-card-slots.js +3 -3
  13. package/dist/_internal/components/data-display/DataViews/base-list-card.js +6 -6
  14. package/dist/_internal/components/data-display/DataViews/data-views-category-pill.js +6 -6
  15. package/dist/_internal/components/data-display/DataViews/data-views-display-panel.js +2 -2
  16. package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +9 -9
  17. package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +3 -3
  18. package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +21 -21
  19. package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +11 -11
  20. package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +9 -9
  21. package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +10 -10
  22. package/dist/_internal/components/data-display/DataViews/data-views-range-pill.js +2 -2
  23. package/dist/_internal/components/data-display/DataViews/data-views-shell-toolbar.js +6 -6
  24. package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +2 -2
  25. package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +5 -5
  26. package/dist/_internal/components/data-display/DataViews/list-card-rails.js +2 -2
  27. package/dist/_internal/components/data-display/DataViews/use-data-views-state.js +2 -2
  28. package/dist/_internal/components/data-display/FleetMap/FleetBody.js +4 -4
  29. package/dist/_internal/components/data-display/FleetMap/FleetCanvas.js +3 -3
  30. package/dist/_internal/components/data-display/FleetMap/FleetMap.fixtures.js +2 -2
  31. package/dist/_internal/components/data-display/FleetMap/FleetMap.js +5 -5
  32. package/dist/_internal/components/data-display/HoverCard/HoverCard.js +2 -2
  33. package/dist/_internal/components/data-display/InteractiveTooltip/InteractiveTooltip.hooks.js +3 -1
  34. package/dist/_internal/components/data-display/InteractiveTooltip/InteractiveTooltip.js +2 -2
  35. package/dist/_internal/components/data-display/Lightbox/Lightbox.js +3 -3
  36. package/dist/_internal/components/data-display/MapPreview/MapPreview.js +2 -2
  37. package/dist/_internal/components/data-display/Progress/Progress.js +2 -2
  38. package/dist/_internal/components/data-display/Sheet/Sheet.hooks.js +2 -2
  39. package/dist/_internal/components/data-display/Sheet/Sheet.js +4 -4
  40. package/dist/_internal/components/data-display/index.js +27 -27
  41. package/dist/_internal/components/feedback/index.js +3 -3
  42. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.hooks.js +2 -2
  43. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.js +5 -5
  44. package/dist/_internal/components/form/Autocomplete/Autocomplete.js +2 -2
  45. package/dist/_internal/components/form/Calendar/Calendar.hooks.js +2 -2
  46. package/dist/_internal/components/form/Calendar/Calendar.js +3 -3
  47. package/dist/_internal/components/form/CategorySelect/CategoryPanel.js +1 -1
  48. package/dist/_internal/components/form/CategorySelect/CategorySelect.js +4 -4
  49. package/dist/_internal/components/form/Command/Command.js +3 -3
  50. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.js +5 -5
  51. package/dist/_internal/components/form/UploadButton/UploadButton.js +2 -2
  52. package/dist/_internal/components/form/index.js +22 -22
  53. package/dist/_internal/components/form/total-form/Fields/CategoryField.js +5 -5
  54. package/dist/_internal/components/form/total-form/Fields/index.js +9 -9
  55. package/dist/_internal/components/index.js +67 -66
  56. package/dist/_internal/components/layout/ScrollArea/ScrollArea.js +2 -2
  57. package/dist/_internal/components/layout/SettingCard/SettingCard.js +9 -4
  58. package/dist/_internal/components/layout/SettingCard/SettingCard.metrics.js +1 -1
  59. package/dist/_internal/components/layout/SettingCard/SettingCard.parts.js +3 -3
  60. package/dist/_internal/components/layout/SettingCard/SettingCard.styles.js +6 -2
  61. package/dist/_internal/components/layout/SettingCard/SettingCard.summary.js +63 -0
  62. package/dist/_internal/components/layout/SettingCard/SettingCard.summary.js.map +1 -0
  63. package/dist/_internal/components/layout/SettingCard/SettingGrid.js +4 -4
  64. package/dist/_internal/components/layout/SettingCard/SettingGroup.js +10 -5
  65. package/dist/_internal/components/layout/SettingCard/SettingSwitch.js +9 -4
  66. package/dist/_internal/components/layout/SettingCard/SettingToggle.js +10 -5
  67. package/dist/_internal/components/layout/index.js +18 -13
  68. package/dist/_internal/components/navigation/AppHeader/AppHeader.details.js +5 -5
  69. package/dist/_internal/components/navigation/index.js +5 -5
  70. package/dist/_internal/en-US.data-display.js +2 -2
  71. package/dist/_internal/en-US.layout.js +1 -1
  72. package/dist/_internal/pt-BR.data-display.js +2 -2
  73. package/dist/_internal/pt-BR.layout.js +1 -1
  74. package/dist/_internal/user-avatar/user-avatar.js +4 -4
  75. package/dist/charts.js +6 -6
  76. package/dist/{chunk-GXQDWHPN.js → chunk-2CJZLL5Y.js} +2 -2
  77. package/dist/{chunk-57VL5UX7.js → chunk-2JTZWQ25.js} +6 -4
  78. package/dist/chunk-2JTZWQ25.js.map +1 -0
  79. package/dist/{chunk-STTULW2K.js → chunk-2KVWOTEQ.js} +5 -5
  80. package/dist/{chunk-ISW5K72V.js → chunk-2ZRZTGWP.js} +5 -5
  81. package/dist/{chunk-33L26P4J.js → chunk-3ZKGNEP2.js} +5 -3
  82. package/dist/{chunk-33L26P4J.js.map → chunk-3ZKGNEP2.js.map} +1 -1
  83. package/dist/{chunk-2OTBMU5Z.js → chunk-44LYXLW7.js} +7 -7
  84. package/dist/{chunk-LYVTJLCF.js → chunk-56JF5PZK.js} +4 -4
  85. package/dist/{chunk-5KGABAQB.js → chunk-5752357K.js} +4 -4
  86. package/dist/{chunk-SPZAEMGW.js → chunk-5WX6U34F.js} +4 -4
  87. package/dist/{chunk-QHXMNSOZ.js → chunk-6L6VXRLJ.js} +2 -2
  88. package/dist/{chunk-VVFASSFY.js → chunk-6VGB4OX2.js} +3 -3
  89. package/dist/{chunk-FRP7NM6X.js → chunk-6WZUKV55.js} +2 -2
  90. package/dist/{chunk-QEINKMMX.js → chunk-7C763T3K.js} +2 -2
  91. package/dist/{chunk-PARTZ7XI.js → chunk-7JKDB5J5.js} +4 -4
  92. package/dist/{chunk-3U7WKBMH.js → chunk-AA2X5GOT.js} +5 -3
  93. package/dist/{chunk-3U7WKBMH.js.map → chunk-AA2X5GOT.js.map} +1 -1
  94. package/dist/{chunk-QYV7KLEN.js → chunk-ASGSC5UA.js} +5 -5
  95. package/dist/{chunk-7GQ2ZZBQ.js → chunk-BCTRC6AR.js} +2 -2
  96. package/dist/{chunk-XSHWEUDB.js → chunk-BE5Z36XZ.js} +4 -4
  97. package/dist/{chunk-IC7GHPMK.js → chunk-BFRVMCQM.js} +7 -2
  98. package/dist/chunk-BFRVMCQM.js.map +1 -0
  99. package/dist/{chunk-PM7SI4YT.js → chunk-BJOKL5PQ.js} +5 -5
  100. package/dist/{chunk-PGPPN63I.js → chunk-EMEXXAQI.js} +2 -2
  101. package/dist/{chunk-R6SBP5M5.js → chunk-GOWBYHYW.js} +4 -4
  102. package/dist/{chunk-LZQQ4JXY.js → chunk-HGVPPJKE.js} +8 -8
  103. package/dist/{chunk-XNBX3M35.js → chunk-HLCEKWFS.js} +4 -4
  104. package/dist/{chunk-4MGFUPQT.js → chunk-HOJL2GKW.js} +4 -4
  105. package/dist/{chunk-V5ZLUJV7.js → chunk-HRMB72E4.js} +2 -2
  106. package/dist/{chunk-CSDVRHUX.js → chunk-HWBKMUMV.js} +4 -4
  107. package/dist/{chunk-KN3WYEH2.js → chunk-IA6F7DU6.js} +4 -4
  108. package/dist/{chunk-BE5FGUJS.js → chunk-IM5SR7G2.js} +2 -2
  109. package/dist/{chunk-PJVDIUT2.js → chunk-IRNKHHQM.js} +3 -3
  110. package/dist/{chunk-4XET5MWR.js → chunk-KKE4SHRS.js} +2 -2
  111. package/dist/{chunk-ZTTFLIPH.js → chunk-L624DFJV.js} +2 -2
  112. package/dist/{chunk-OYT7YXQL.js → chunk-MGPN5TZE.js} +5 -5
  113. package/dist/{chunk-ERY6D2OV.js → chunk-MWPXKZ7O.js} +4 -4
  114. package/dist/{chunk-SCCE6VWY.js → chunk-N2Z7NHD5.js} +2 -2
  115. package/dist/chunk-N4R6T5K7.js +95 -0
  116. package/dist/chunk-N4R6T5K7.js.map +1 -0
  117. package/dist/{chunk-GNHXFJRR.js → chunk-N6EEY7V3.js} +2 -2
  118. package/dist/{chunk-OEBHWQSX.js → chunk-OESAYTNG.js} +9 -4
  119. package/dist/chunk-OESAYTNG.js.map +1 -0
  120. package/dist/{chunk-G5XHAN56.js → chunk-OT3KFZRE.js} +2 -2
  121. package/dist/{chunk-XAUKQZJK.js → chunk-QX4LMVL2.js} +2 -2
  122. package/dist/{chunk-S5UY5U73.js → chunk-QYJ25FWM.js} +20 -2
  123. package/dist/{chunk-S5UY5U73.js.map → chunk-QYJ25FWM.js.map} +1 -1
  124. package/dist/{chunk-6PYX6V3R.js → chunk-RJXVVLBO.js} +4 -4
  125. package/dist/{chunk-FRCBJLV5.js → chunk-RKKYSSAV.js} +5 -5
  126. package/dist/{chunk-WF7BZT6V.js → chunk-RR6BIHFX.js} +2 -2
  127. package/dist/{chunk-NGAU6PNB.js → chunk-RRVQVQF7.js} +5 -5
  128. package/dist/{chunk-F33YKDO2.js → chunk-TEST2NBS.js} +5 -5
  129. package/dist/{chunk-NKJSYZEU.js → chunk-V32626FV.js} +4 -4
  130. package/dist/{chunk-MLDA44NW.js → chunk-VGXSPUTD.js} +3 -3
  131. package/dist/{chunk-CTXF22BU.js → chunk-VODKYDC4.js} +5 -5
  132. package/dist/{chunk-DWJH3KXN.js → chunk-WAKGVAOB.js} +4 -4
  133. package/dist/{chunk-3DO5AJCG.js → chunk-WE2LNTR6.js} +12 -5
  134. package/dist/chunk-WE2LNTR6.js.map +1 -0
  135. package/dist/{chunk-SZA44EFA.js → chunk-WOEVBEGJ.js} +4 -4
  136. package/dist/{chunk-EOTV5BLM.js → chunk-WOP2DRMC.js} +2 -2
  137. package/dist/{chunk-E6JRPGMN.js → chunk-X3DVZNZH.js} +2 -2
  138. package/dist/{chunk-MLQYIJTO.js → chunk-XM7QCNZQ.js} +9 -3
  139. package/dist/chunk-XM7QCNZQ.js.map +1 -0
  140. package/dist/{chunk-P35CTP6L.js → chunk-Y3WB66XT.js} +7 -7
  141. package/dist/{chunk-DI46ZEWP.js → chunk-Y5QDXG5N.js} +20 -4
  142. package/dist/chunk-Y5QDXG5N.js.map +1 -0
  143. package/dist/{chunk-TNQDSTIA.js → chunk-Y6C4MYZE.js} +7 -7
  144. package/dist/{chunk-TBZKUZNW.js → chunk-ZPWU7Z6O.js} +3 -3
  145. package/dist/{chunk-QQSRZUT4.js → chunk-ZXEDKRRT.js} +4 -4
  146. package/dist/data-display/Avatar.js +3 -3
  147. package/dist/data-display/CardKit.js +8 -8
  148. package/dist/data-display/Chart.js +6 -6
  149. package/dist/data-display/DataViews.js +35 -35
  150. package/dist/data-display/FleetMap.js +5 -5
  151. package/dist/data-display/HoverCard.js +2 -2
  152. package/dist/data-display/InteractiveTooltip.js +2 -2
  153. package/dist/data-display/Lightbox.js +3 -3
  154. package/dist/data-display/MapPreview.js +2 -2
  155. package/dist/data-display/Progress.js +2 -2
  156. package/dist/data-display/Sheet.js +4 -4
  157. package/dist/en-US.js +2 -2
  158. package/dist/feedback/ConfirmAction.js +3 -3
  159. package/dist/form/AddressAutocomplete.js +5 -5
  160. package/dist/form/Autocomplete.js +2 -2
  161. package/dist/form/Calendar.js +3 -3
  162. package/dist/form/CategorySelect.js +4 -4
  163. package/dist/form/Command.js +3 -3
  164. package/dist/form/DateRangePicker.js +10 -10
  165. package/dist/form/UploadButton.js +2 -2
  166. package/dist/form/total-form.js +7 -7
  167. package/dist/layout/ContentToolbar.js +3 -3
  168. package/dist/layout/ScrollArea.js +2 -2
  169. package/dist/layout/SettingCard.js +13 -8
  170. package/dist/locales.js +4 -4
  171. package/dist/native/feedback/Dialog.js +86 -40
  172. package/dist/native/feedback/Dialog.js.map +1 -1
  173. package/dist/navigation/AppHeader.js +5 -5
  174. package/dist/pt-BR.js +2 -2
  175. package/dist/types/components/data-display/InteractiveTooltip/InteractiveTooltip.d.ts.map +1 -1
  176. package/dist/types/components/data-display/InteractiveTooltip/InteractiveTooltip.hooks.d.ts +18 -0
  177. package/dist/types/components/data-display/InteractiveTooltip/InteractiveTooltip.hooks.d.ts.map +1 -1
  178. package/dist/types/components/layout/SettingCard/SettingCard.d.ts.map +1 -1
  179. package/dist/types/components/layout/SettingCard/SettingCard.metrics.d.ts +5 -0
  180. package/dist/types/components/layout/SettingCard/SettingCard.metrics.d.ts.map +1 -1
  181. package/dist/types/components/layout/SettingCard/SettingCard.parts.d.ts +2 -0
  182. package/dist/types/components/layout/SettingCard/SettingCard.parts.d.ts.map +1 -1
  183. package/dist/types/components/layout/SettingCard/SettingCard.styles.d.ts +9 -2
  184. package/dist/types/components/layout/SettingCard/SettingCard.styles.d.ts.map +1 -1
  185. package/dist/types/components/layout/SettingCard/SettingCard.summary.d.ts +33 -0
  186. package/dist/types/components/layout/SettingCard/SettingCard.summary.d.ts.map +1 -0
  187. package/dist/types/components/layout/SettingCard/SettingSwitch.d.ts.map +1 -1
  188. package/dist/types/copy/layout.d.ts +8 -0
  189. package/dist/types/copy/layout.d.ts.map +1 -1
  190. package/dist/types/en-US.layout.d.ts.map +1 -1
  191. package/dist/types/pt-BR.layout.d.ts.map +1 -1
  192. package/dist/types-native/components/feedback/Dialog/Dialog.look.native.d.ts +12 -0
  193. package/dist/types-native/components/feedback/Dialog/Dialog.look.native.d.ts.map +1 -1
  194. package/dist/types-native/components/feedback/Dialog/Dialog.native.d.ts.map +1 -1
  195. package/dist/types-native/platform/keyboard-overlap.native.d.ts +36 -0
  196. package/dist/types-native/platform/keyboard-overlap.native.d.ts.map +1 -0
  197. package/dist/user-avatar.js +4 -4
  198. package/package.json +1 -1
  199. package/src/components/data-display/InteractiveTooltip/InteractiveTooltip.hooks.ts +36 -0
  200. package/src/components/data-display/InteractiveTooltip/InteractiveTooltip.tsx +7 -2
  201. package/src/components/feedback/Dialog/Dialog.look.native.ts +17 -0
  202. package/src/components/feedback/Dialog/Dialog.native.tsx +12 -2
  203. package/src/components/layout/SettingCard/SettingCard.md +1 -1
  204. package/src/components/layout/SettingCard/SettingCard.metrics.ts +5 -0
  205. package/src/components/layout/SettingCard/SettingCard.parts.tsx +4 -0
  206. package/src/components/layout/SettingCard/SettingCard.styles.ts +17 -5
  207. package/src/components/layout/SettingCard/SettingCard.summary.tsx +100 -0
  208. package/src/components/layout/SettingCard/SettingCard.tsx +6 -2
  209. package/src/components/layout/SettingCard/SettingSwitch.tsx +11 -2
  210. package/src/components/layout/SettingCard/SettingToggle.md +1 -1
  211. package/src/copy/layout.ts +8 -0
  212. package/src/en-US.layout.ts +2 -0
  213. package/src/platform/keyboard-overlap.native.ts +77 -0
  214. package/src/pt-BR.layout.ts +2 -0
  215. package/dist/chunk-3DO5AJCG.js.map +0 -1
  216. package/dist/chunk-57VL5UX7.js.map +0 -1
  217. package/dist/chunk-DI46ZEWP.js.map +0 -1
  218. package/dist/chunk-IC7GHPMK.js.map +0 -1
  219. package/dist/chunk-MLQYIJTO.js.map +0 -1
  220. package/dist/chunk-OEBHWQSX.js.map +0 -1
  221. /package/dist/{chunk-GXQDWHPN.js.map → chunk-2CJZLL5Y.js.map} +0 -0
  222. /package/dist/{chunk-STTULW2K.js.map → chunk-2KVWOTEQ.js.map} +0 -0
  223. /package/dist/{chunk-ISW5K72V.js.map → chunk-2ZRZTGWP.js.map} +0 -0
  224. /package/dist/{chunk-2OTBMU5Z.js.map → chunk-44LYXLW7.js.map} +0 -0
  225. /package/dist/{chunk-LYVTJLCF.js.map → chunk-56JF5PZK.js.map} +0 -0
  226. /package/dist/{chunk-5KGABAQB.js.map → chunk-5752357K.js.map} +0 -0
  227. /package/dist/{chunk-SPZAEMGW.js.map → chunk-5WX6U34F.js.map} +0 -0
  228. /package/dist/{chunk-QHXMNSOZ.js.map → chunk-6L6VXRLJ.js.map} +0 -0
  229. /package/dist/{chunk-VVFASSFY.js.map → chunk-6VGB4OX2.js.map} +0 -0
  230. /package/dist/{chunk-FRP7NM6X.js.map → chunk-6WZUKV55.js.map} +0 -0
  231. /package/dist/{chunk-QEINKMMX.js.map → chunk-7C763T3K.js.map} +0 -0
  232. /package/dist/{chunk-PARTZ7XI.js.map → chunk-7JKDB5J5.js.map} +0 -0
  233. /package/dist/{chunk-QYV7KLEN.js.map → chunk-ASGSC5UA.js.map} +0 -0
  234. /package/dist/{chunk-7GQ2ZZBQ.js.map → chunk-BCTRC6AR.js.map} +0 -0
  235. /package/dist/{chunk-XSHWEUDB.js.map → chunk-BE5Z36XZ.js.map} +0 -0
  236. /package/dist/{chunk-PM7SI4YT.js.map → chunk-BJOKL5PQ.js.map} +0 -0
  237. /package/dist/{chunk-PGPPN63I.js.map → chunk-EMEXXAQI.js.map} +0 -0
  238. /package/dist/{chunk-R6SBP5M5.js.map → chunk-GOWBYHYW.js.map} +0 -0
  239. /package/dist/{chunk-LZQQ4JXY.js.map → chunk-HGVPPJKE.js.map} +0 -0
  240. /package/dist/{chunk-XNBX3M35.js.map → chunk-HLCEKWFS.js.map} +0 -0
  241. /package/dist/{chunk-4MGFUPQT.js.map → chunk-HOJL2GKW.js.map} +0 -0
  242. /package/dist/{chunk-V5ZLUJV7.js.map → chunk-HRMB72E4.js.map} +0 -0
  243. /package/dist/{chunk-CSDVRHUX.js.map → chunk-HWBKMUMV.js.map} +0 -0
  244. /package/dist/{chunk-KN3WYEH2.js.map → chunk-IA6F7DU6.js.map} +0 -0
  245. /package/dist/{chunk-BE5FGUJS.js.map → chunk-IM5SR7G2.js.map} +0 -0
  246. /package/dist/{chunk-PJVDIUT2.js.map → chunk-IRNKHHQM.js.map} +0 -0
  247. /package/dist/{chunk-4XET5MWR.js.map → chunk-KKE4SHRS.js.map} +0 -0
  248. /package/dist/{chunk-ZTTFLIPH.js.map → chunk-L624DFJV.js.map} +0 -0
  249. /package/dist/{chunk-OYT7YXQL.js.map → chunk-MGPN5TZE.js.map} +0 -0
  250. /package/dist/{chunk-ERY6D2OV.js.map → chunk-MWPXKZ7O.js.map} +0 -0
  251. /package/dist/{chunk-SCCE6VWY.js.map → chunk-N2Z7NHD5.js.map} +0 -0
  252. /package/dist/{chunk-GNHXFJRR.js.map → chunk-N6EEY7V3.js.map} +0 -0
  253. /package/dist/{chunk-G5XHAN56.js.map → chunk-OT3KFZRE.js.map} +0 -0
  254. /package/dist/{chunk-XAUKQZJK.js.map → chunk-QX4LMVL2.js.map} +0 -0
  255. /package/dist/{chunk-6PYX6V3R.js.map → chunk-RJXVVLBO.js.map} +0 -0
  256. /package/dist/{chunk-FRCBJLV5.js.map → chunk-RKKYSSAV.js.map} +0 -0
  257. /package/dist/{chunk-WF7BZT6V.js.map → chunk-RR6BIHFX.js.map} +0 -0
  258. /package/dist/{chunk-NGAU6PNB.js.map → chunk-RRVQVQF7.js.map} +0 -0
  259. /package/dist/{chunk-F33YKDO2.js.map → chunk-TEST2NBS.js.map} +0 -0
  260. /package/dist/{chunk-NKJSYZEU.js.map → chunk-V32626FV.js.map} +0 -0
  261. /package/dist/{chunk-MLDA44NW.js.map → chunk-VGXSPUTD.js.map} +0 -0
  262. /package/dist/{chunk-CTXF22BU.js.map → chunk-VODKYDC4.js.map} +0 -0
  263. /package/dist/{chunk-DWJH3KXN.js.map → chunk-WAKGVAOB.js.map} +0 -0
  264. /package/dist/{chunk-SZA44EFA.js.map → chunk-WOEVBEGJ.js.map} +0 -0
  265. /package/dist/{chunk-EOTV5BLM.js.map → chunk-WOP2DRMC.js.map} +0 -0
  266. /package/dist/{chunk-E6JRPGMN.js.map → chunk-X3DVZNZH.js.map} +0 -0
  267. /package/dist/{chunk-P35CTP6L.js.map → chunk-Y3WB66XT.js.map} +0 -0
  268. /package/dist/{chunk-TNQDSTIA.js.map → chunk-Y6C4MYZE.js.map} +0 -0
  269. /package/dist/{chunk-TBZKUZNW.js.map → chunk-ZPWU7Z6O.js.map} +0 -0
  270. /package/dist/{chunk-QQSRZUT4.js.map → chunk-ZXEDKRRT.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/layout/SettingCard/SettingCard.styles.ts"],"sourcesContent":["import type { CSSObject, SxProps, Theme } from '@mui/material/styles/index.js';\n\nimport { rem } from '../../../tokens/relative';\nimport { CARD_BORDER_WIDTH, CARD_RADIUS_UNITS } from '../Card/Card.metrics';\n\nimport { SETTING_CARD, SETTING_GROUP_INACTIVE_OPACITY } from './SettingCard.metrics';\n\n/**\n * The attribute an open `SettingCard` carries, which `SettingGrid` reads to\n * give it the whole row. An attribute rather than a class so a host's wrapper\n * around the card can be matched with `:has()` as well.\n */\nexport const SETTING_CARD_OPEN_ATTR = 'data-setting-card-open';\n\n/** `sx` as MUI documents it for composition: the component's own first, the caller's after. */\nexport const withCallerSx = (\n own: SxProps<Theme>,\n sx: SxProps<Theme> | undefined,\n): SxProps<Theme> => [own, ...(Array.isArray(sx) ? sx : [sx])] as SxProps<Theme>;\n\n/**\n * The card surface — `Card`'s outlined hairline and medium radius, so a\n * settings screen and a content screen are drawn with one kit.\n *\n * `height: 100%` is what turns the grid's per-row stretch into equal-height\n * cards: a grid item stretches, but a card that sized itself to its content\n * would not fill the item it sits in.\n *\n * `gridColumn: 1 / -1` while open is the full-row span. It lives on the card,\n * not only in the grid's CSS, so it also holds when the card sits in a host's\n * own grid. Outside a grid the property does nothing.\n */\nexport const surfaceStyles = (theme: Theme, open: boolean): CSSObject => ({\n boxSizing: 'border-box',\n height: '100%',\n minWidth: 0,\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(1.5),\n padding: theme.spacing(2.5),\n backgroundColor: theme.palette.background.paper,\n border: `${CARD_BORDER_WIDTH}px solid ${open ? theme.palette.primary.main : theme.palette.divider}`,\n borderRadius: theme.spacing(CARD_RADIUS_UNITS.lg),\n boxShadow: open ? theme.shadows[4] : 'none',\n transition: theme.transitions.create(['border-color', 'box-shadow'], {\n duration: theme.transitions.duration.short,\n }),\n ...(open ? { gridColumn: '1 / -1' } : {}),\n});\n\n/** A `row` toggle: the card's content with none of its surface. */\nexport const flatStyles = (theme: Theme): CSSObject => ({\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(0.5),\n padding: theme.spacing(1.25, 0),\n minWidth: 0,\n});\n\nexport const headerStyles = (theme: Theme): CSSObject => ({\n display: 'flex',\n alignItems: 'center',\n gap: rem(theme, SETTING_CARD.iconGap),\n minWidth: 0,\n});\n\n/**\n * The title names its colour rather than inheriting it: a card rendered under\n * a theme other than the page's (a dark panel on a light page) would otherwise\n * take the page's text colour onto its own surface.\n */\nexport const titleStyles = (theme: Theme): CSSObject => ({\n ...theme.typography.subtitle1,\n fontWeight: theme.typography.fontWeightMedium,\n color: theme.palette.text.primary,\n margin: 0,\n minWidth: 0,\n overflowWrap: 'anywhere',\n});\n\n/** The one line a closed card shows. Long values end in an ellipsis, not a second line. */\nexport const summaryStyles = (theme: Theme): CSSObject => ({\n ...theme.typography.body2,\n color: theme.palette.text.secondary,\n margin: 0,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n});\n\n/** A switch card's explanation, which may wrap: it is read, not scanned. */\nexport const descriptionStyles = (theme: Theme): CSSObject => ({\n ...theme.typography.body2,\n color: theme.palette.text.secondary,\n margin: 0,\n});\n\n/** The inactive group's hint: a glyph and the sentence, so it does not read as a second summary. */\nexport const hintStyles = (theme: Theme): CSSObject => ({\n ...descriptionStyles(theme),\n display: 'flex',\n alignItems: 'flex-start',\n gap: theme.spacing(1),\n // Centre the 16px glyph on the first 20px line; later lines wrap under the text.\n '& > svg': { flexShrink: 0, marginTop: rem(theme, 2) },\n});\n\nexport const errorStyles = (theme: Theme): CSSObject => ({\n ...theme.typography.body2,\n color: theme.palette.error.main,\n margin: 0,\n});\n\nexport const actionsStyles = (theme: Theme): CSSObject => ({\n display: 'flex',\n flexWrap: 'wrap',\n justifyContent: 'flex-end',\n gap: theme.spacing(1),\n marginTop: 'auto',\n});\n\nexport const iconStyles = (theme: Theme): CSSObject => ({\n display: 'inline-flex',\n flexShrink: 0,\n color: theme.palette.text.secondary,\n});\n\n/**\n * A group's dependent rows: indented under the main switch, with a rule down\n * their left edge so the \"belongs to\" reads without words. While the main\n * switch is off they fade — and `inert` (set by the component) is what makes\n * them unreachable; opacity alone would only make them look it.\n */\nexport const dependentsStyles = (theme: Theme, active: boolean): CSSObject => ({\n display: 'flex',\n flexDirection: 'column',\n marginLeft: rem(theme, SETTING_CARD.groupIndent / 2),\n paddingLeft: rem(theme, SETTING_CARD.groupIndent / 2),\n borderLeft: `${rem(theme, SETTING_CARD.groupRuleWidth)} solid ${theme.palette.divider}`,\n opacity: active ? 1 : SETTING_GROUP_INACTIVE_OPACITY,\n transition: theme.transitions.create('opacity', { duration: theme.transitions.duration.short }),\n});\n"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/layout/SettingCard/SettingCard.parts.tsx"],"sourcesContent":["import Box from '@mui/material/Box/index.js';\nimport CircularProgress from '@mui/material/CircularProgress/index.js';\nimport { useTheme } from '@mui/material/styles/index.js';\nimport React, { useId, useState } from 'react';\n\nimport { Icon } from '../../../icons';\nimport { rem } from '../../../tokens/relative';\nimport { Chip } from '../../data-display/Chip';\nimport { Button } from '../../form/Button';\nimport { BUTTON_SIZES } from '../../form/Button/Button.metrics';\nimport { Collapsible } from '../Collapsible';\n\nimport { SETTING_CARD } from './SettingCard.metrics';\nimport { errorStyles, headerStyles, iconStyles, titleStyles } from './SettingCard.styles';\nimport type { SettingHeadingLevel, SettingStatus } from './SettingCard.types';\n\n/** `<root>-<part>` when the host gave a root test id, else nothing. */\nexport const partTestId = (root: string | undefined, part: string): string | undefined =>\n root ? `${root}-${part}` : undefined;\n\ninterface HeaderProps {\n titleId: string;\n title: string;\n headingLevel: SettingHeadingLevel;\n icon?: React.ReactNode;\n status?: SettingStatus;\n /** Rendered at the row's far end — the Edit trigger, or a switch. */\n trailing?: React.ReactNode;\n /** Renders the title as a `<label>` for this control instead of a heading. */\n labelFor?: string;\n dataTestId?: string;\n}\n\n/**\n * Icon, title, status pill, and whatever the row ends with.\n *\n * A switch card's title is the switch's `<label>`, so the words are both its\n * accessible name and a tap target far larger than the track. An editable\n * card's title is a heading, so the page outline lists every setting.\n */\nexport const SettingHeader: React.FC<HeaderProps> = ({\n titleId,\n title,\n headingLevel,\n icon,\n status,\n trailing,\n labelFor,\n dataTestId,\n}) => {\n const theme = useTheme();\n return (\n <Box sx={headerStyles(theme)}>\n {icon && (\n <Box component=\"span\" aria-hidden sx={iconStyles(theme)}>\n {icon}\n </Box>\n )}\n <Box sx={{ display: 'flex', alignItems: 'center', flexWrap: 'wrap', gap: 1, minWidth: 0, flex: 1 }}>\n <Box\n component={labelFor ? 'label' : headingLevel}\n id={titleId}\n htmlFor={labelFor}\n sx={{ ...titleStyles(theme), ...(labelFor ? { cursor: 'pointer' } : {}) }}\n data-testid={partTestId(dataTestId, 'title')}\n >\n {title}\n </Box>\n {status && (\n <Chip\n label={status.label}\n color={status.color ?? 'neutral'}\n size=\"sm\"\n variant=\"outlined\"\n dataTestId={partTestId(dataTestId, 'status')}\n />\n )}\n </Box>\n {trailing}\n </Box>\n );\n};\n\n/**\n * The failure line. `role=\"alert\"` so it is announced the moment it appears,\n * without anyone having to move focus to find it.\n */\nexport const SaveError: React.FC<{ id: string; message: string | null; dataTestId?: string }> = ({\n id,\n message,\n dataTestId,\n}) => {\n const theme = useTheme();\n if (!message) return null;\n return (\n <Box component=\"p\" id={id} role=\"alert\" sx={errorStyles(theme)} data-testid={partTestId(dataTestId, 'error')}>\n {message}\n </Box>\n );\n};\n\n/** The spinner that rides beside a pending control; decorative — the words are announced separately. */\nexport const PendingSpinner: React.FC<{ dataTestId?: string }> = ({ dataTestId }) => {\n const theme = useTheme();\n return (\n <CircularProgress\n size={rem(theme, SETTING_CARD.spinnerSize)}\n color=\"inherit\"\n aria-hidden\n data-testid={partTestId(dataTestId, 'saving')}\n />\n );\n};\n\n/**\n * The \"learn more\" disclosure: a text button that owns `aria-expanded`, and\n * the collapsible region it controls. Closed by default — it is the longer\n * explanation, and the form is what the reader came for.\n */\nexport const LearnMore: React.FC<{\n label: string;\n children: React.ReactNode;\n dataTestId?: string;\n}> = ({ label, children, dataTestId }) => {\n const [expanded, setExpanded] = useState(false);\n const regionId = useId();\n const theme = useTheme();\n return (\n // Pulled out by the button's own padding, so the words line up with the form above.\n <Box sx={{ marginLeft: `-${rem(theme, BUTTON_SIZES.sm.paddingHorizontal)}` }}>\n <Button\n variant=\"text\"\n size=\"sm\"\n aria-expanded={expanded}\n aria-controls={regionId}\n onClick={() => setExpanded((was) => !was)}\n icon={\n <Box\n component=\"span\"\n sx={{\n display: 'inline-flex',\n transform: expanded ? 'rotate(180deg)' : 'none',\n transition: theme.transitions.create('transform'),\n }}\n >\n <Icon name=\"ExpandMore\" size=\"xs\" />\n </Box>\n }\n iconPosition=\"right\"\n dataTestId={partTestId(dataTestId, 'learn-more')}\n >\n {label}\n </Button>\n {/* Kept mounted so `aria-controls` always names an element that exists. */}\n <Collapsible open={expanded} keepMounted sx={{ marginLeft: rem(theme, BUTTON_SIZES.sm.paddingHorizontal) }} dataTestId={partTestId(dataTestId, 'learn-more-content')}>\n <Box id={regionId} sx={{ ...theme.typography.body2, color: 'text.secondary', pt: 1 }}>\n {children}\n </Box>\n </Collapsible>\n </Box>\n );\n};\n"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/layout/SettingCard/SettingSwitch.tsx"],"sourcesContent":["import Box from '@mui/material/Box/index.js';\nimport { useTheme } from '@mui/material/styles/index.js';\nimport React, { useId } from 'react';\n\nimport { Switch } from '../../form/Switch';\nimport { SR_ONLY_SX } from '../../form/Label/Label.styles';\n\nimport { useAsyncSwitch } from './SettingCard.hooks';\nimport { PendingSpinner, SaveError, SettingHeader, partTestId } from './SettingCard.parts';\nimport { descriptionStyles } from './SettingCard.styles';\nimport type { SettingToggleProps } from './SettingCard.types';\n\n/** Everything the switch-driven cards share, minus the surface each draws around it. */\nexport type SettingSwitchBlockProps = Pick<\n SettingToggleProps,\n 'title' | 'headingLevel' | 'icon' | 'summary' | 'checked' | 'onChange' | 'copy' | 'formatError' | 'dataTestId'\n> & { disabled: boolean };\n\n/** The ids one switch block wires its label, description and failure line with. */\nexport interface SettingSwitchIds {\n titleId: string;\n inputId: string;\n summaryId: string;\n errorId: string;\n}\n\nexport const useSettingSwitchIds = (): SettingSwitchIds => {\n const base = useId();\n return {\n titleId: `${base}-title`,\n inputId: `${base}-switch`,\n summaryId: `${base}-summary`,\n errorId: `${base}-error`,\n };\n};\n\n/**\n * Title-as-label, the switch, its explanation and the failure line.\n *\n * The switch is never `disabled` while it saves, for the reason Save is not\n * (`SettingCard.tsx`): a disabled control drops keyboard focus. It says\n * `aria-busy` instead, ignores flips until the save settles (see\n * `useAsyncSwitch`), shows a spinner, and a polite live region says the words.\n */\nexport const SettingSwitchBlock: React.FC<\n SettingSwitchBlockProps & { ids: SettingSwitchIds; state: ReturnType<typeof useAsyncSwitch> }\n> = ({ title, headingLevel = 'h3', icon, summary, copy, disabled, dataTestId, ids, state }) => {\n const theme = useTheme();\n const { shown, saving, error, flip } = state;\n const describedBy = [summary != null ? ids.summaryId : null, error ? ids.errorId : null]\n .filter(Boolean)\n .join(' ');\n\n const control = (\n <Box sx={{ display: 'inline-flex', alignItems: 'center', gap: 1, flexShrink: 0 }}>\n {saving && <PendingSpinner dataTestId={dataTestId} />}\n <Switch\n id={ids.inputId}\n checked={shown}\n onChange={(event) => void flip(event.target.checked)}\n disabled={disabled}\n error={Boolean(error)}\n aria-describedby={describedBy || undefined}\n inputProps={{ role: 'switch', 'aria-busy': saving }}\n dataTestId={partTestId(dataTestId, 'switch')}\n />\n </Box>\n );\n\n return (\n <>\n <SettingHeader\n titleId={ids.titleId}\n title={title}\n headingLevel={headingLevel}\n icon={icon}\n labelFor={ids.inputId}\n trailing={control}\n dataTestId={dataTestId}\n />\n {summary != null && (\n <Box component=\"p\" id={ids.summaryId} sx={descriptionStyles(theme)} data-testid={partTestId(dataTestId, 'summary')}>\n {summary}\n </Box>\n )}\n <SaveError id={ids.errorId} message={error} dataTestId={dataTestId} />\n <Box role=\"status\" aria-live=\"polite\" sx={SR_ONLY_SX}>\n {saving ? copy.saving : ''}\n </Box>\n </>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA,OAAO,SAAS;AAChB,SAAS,gBAAgB;AACzB,SAAgB,aAAa;AAoDzB,SAgBA,UAfa,KADb;AA5BG,IAAM,sBAAsB,MAAwB;AACzD,QAAM,OAAO,MAAM;AACnB,SAAO;AAAA,IACL,SAAS,GAAG,IAAI;AAAA,IAChB,SAAS,GAAG,IAAI;AAAA,IAChB,WAAW,GAAG,IAAI;AAAA,IAClB,SAAS,GAAG,IAAI;AAAA,EAClB;AACF;AAUO,IAAM,qBAET,CAAC,EAAE,OAAO,eAAe,MAAM,MAAM,SAAS,MAAM,UAAU,YAAY,KAAK,MAAM,MAAM;AAC7F,QAAM,QAAQ,SAAS;AACvB,QAAM,EAAE,OAAO,QAAQ,OAAO,KAAK,IAAI;AACvC,QAAM,cAAc,CAAC,WAAW,OAAO,IAAI,YAAY,MAAM,QAAQ,IAAI,UAAU,IAAI,EACpF,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,QAAM,UACJ,qBAAC,OAAI,IAAI,EAAE,SAAS,eAAe,YAAY,UAAU,KAAK,GAAG,YAAY,EAAE,GAC5E;AAAA,cAAU,oBAAC,kBAAe,YAAwB;AAAA,IACnD;AAAA,MAAC;AAAA;AAAA,QACC,IAAI,IAAI;AAAA,QACR,SAAS;AAAA,QACT,UAAU,CAAC,UAAU,KAAK,KAAK,MAAM,OAAO,OAAO;AAAA,QACnD;AAAA,QACA,OAAO,QAAQ,KAAK;AAAA,QACpB,oBAAkB,eAAe;AAAA,QACjC,YAAY,EAAE,MAAM,UAAU,aAAa,OAAO;AAAA,QAClD,YAAY,WAAW,YAAY,QAAQ;AAAA;AAAA,IAC7C;AAAA,KACF;AAGF,SACE,iCACE;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,SAAS,IAAI;AAAA,QACb;AAAA,QACA;AAAA,QACA;AAAA,QACA,UAAU,IAAI;AAAA,QACd,UAAU;AAAA,QACV;AAAA;AAAA,IACF;AAAA,IACC,WAAW,QACV,oBAAC,OAAI,WAAU,KAAI,IAAI,IAAI,WAAW,IAAI,kBAAkB,KAAK,GAAG,eAAa,WAAW,YAAY,SAAS,GAC9G,mBACH;AAAA,IAEF,oBAAC,aAAU,IAAI,IAAI,SAAS,SAAS,OAAO,YAAwB;AAAA,IACpE,oBAAC,OAAI,MAAK,UAAS,aAAU,UAAS,IAAI,YACvC,mBAAS,KAAK,SAAS,IAC1B;AAAA,KACF;AAEJ;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/layout/SettingCard/SettingCard.metrics.ts"],"sourcesContent":["/**\n * The setting-card family's lengths, in design px. The web reads every one\n * through `rem(theme, n)`, so they scale with the host's type scale.\n */\nexport const SETTING_CARD = {\n /** Between the icon and the title. */\n iconGap: 12,\n /** The spinner beside a switch while its flip is saving. */\n spinnerSize: 16,\n /** How far a group's dependent rows sit in from its main switch. */\n groupIndent: 24,\n /** The rule down the left of a group's dependent rows. */\n groupRuleWidth: 2,\n /** The narrowest a grid column gets by default. */\n gridMinColumnWidth: 320,\n} as const;\n\n/** The grid's default gap, in theme SPACING units (not px): what `sx`'s `gap: 2` means. */\nexport const SETTING_GRID_GAP_UNITS = 2;\n\n/** How faded a group's dependent rows are while the main switch is off. */\nexport const SETTING_GROUP_INACTIVE_OPACITY = 0.5;\n"],"mappings":";AAIO,IAAM,eAAe;AAAA;AAAA,EAE1B,SAAS;AAAA;AAAA,EAET,aAAa;AAAA;AAAA,EAEb,aAAa;AAAA;AAAA,EAEb,gBAAgB;AAAA;AAAA,EAEhB,oBAAoB;AACtB;AAGO,IAAM,yBAAyB;AAG/B,IAAM,iCAAiC;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/data-display/InteractiveTooltip/InteractiveTooltip.tsx"],"sourcesContent":["import MuiTooltip from '@mui/material/Tooltip/index.js';\nimport { styled } from '@mui/material/styles/index.js';\nimport React from 'react';\n\nimport { resolveTooltipProps, usePinnedTooltip } from './InteractiveTooltip.hooks';\nimport {\n arrowColor,\n emphasisStyles,\n getSizeStyles,\n tooltipCap,\n variantStyles,\n} from './InteractiveTooltip.styles';\nimport type { InteractiveTooltipProps } from './InteractiveTooltip.types';\n\nconst StyledTooltip = styled(MuiTooltip, {\n shouldForwardProp: (prop) =>\n !['customVariant', 'customSize', 'glow', 'pulse'].includes(prop as string),\n})<{\n customVariant?: string;\n customSize?: string;\n glow?: boolean;\n pulse?: boolean;\n}>(({ theme, customVariant, customSize, glow, pulse }) => {\n const sizeStyles = getSizeStyles(customSize);\n\n return {\n '& .MuiTooltip-tooltip': {\n borderRadius: theme.spacing(1),\n fontSize: sizeStyles.fontSize(theme),\n padding: sizeStyles.padding(theme),\n fontWeight: 500,\n transition: 'all 0.3s ease',\n position: 'relative',\n overflow: 'hidden',\n ...variantStyles(theme, customVariant),\n ...emphasisStyles(theme, glow, pulse),\n },\n\n '& .MuiTooltip-arrow': {\n color: arrowColor(theme, customVariant),\n },\n };\n});\n\nexport const InteractiveTooltip = React.forwardRef<HTMLDivElement, InteractiveTooltipProps>(\n (rawProps, ref) => {\n const {\n variant,\n size,\n glow,\n pulse,\n maxWidth,\n dataTestId,\n hoverContent,\n pinnedContent,\n clickable,\n onPin,\n onUnpin,\n className,\n children,\n ...props\n } = resolveTooltipProps(rawProps);\n\n const { isPinned, isControlledOpen, wrapperRef, handleClick } = usePinnedTooltip({\n clickable,\n onPin,\n onUnpin,\n });\n\n // Determine which content to show\n const tooltipContent = isPinned ? pinnedContent : hoverContent;\n\n // Child with click handler and ref\n const childElement = children as React.ReactElement<{\n onClick?: (e: React.MouseEvent) => void;\n 'data-testid'?: string;\n }>;\n\n const childWithProps = React.cloneElement(childElement, {\n onClick: (e: React.MouseEvent) => {\n handleClick(e);\n // Call original onClick if it exists\n childElement.props.onClick?.(e);\n },\n 'data-testid': dataTestId ? `${dataTestId}-trigger` : undefined,\n });\n\n return (\n <div ref={wrapperRef} className={className}>\n <StyledTooltip\n ref={ref}\n customVariant={variant}\n customSize={size}\n glow={glow}\n pulse={pulse}\n title={tooltipContent}\n open={isPinned ? isControlledOpen : undefined}\n enterDelay={isPinned ? 0 : 100}\n leaveDelay={0}\n disableHoverListener={isPinned}\n disableFocusListener={isPinned}\n disableTouchListener={isPinned}\n slotProps={{\n tooltip: {\n sx: { maxWidth: tooltipCap(maxWidth) },\n role: 'tooltip',\n ...(dataTestId && { 'data-testid': `${dataTestId}-content` }),\n },\n }}\n {...props}\n >\n {childWithProps}\n </StyledTooltip>\n </div>\n );\n },\n);\n\nInteractiveTooltip.displayName = 'InteractiveTooltip';\n"],"mappings":";;;;;;;;;;;;;AAAA,OAAO,gBAAgB;AACvB,SAAS,cAAc;AACvB,OAAO,WAAW;AAuFV;AA3ER,IAAM,gBAAgB,OAAO,YAAY;AAAA,EACvC,mBAAmB,CAAC,SAClB,CAAC,CAAC,iBAAiB,cAAc,QAAQ,OAAO,EAAE,SAAS,IAAc;AAC7E,CAAC,EAKE,CAAC,EAAE,OAAO,eAAe,YAAY,MAAM,MAAM,MAAM;AACxD,QAAM,aAAa,cAAc,UAAU;AAE3C,SAAO;AAAA,IACL,yBAAyB;AAAA,MACvB,cAAc,MAAM,QAAQ,CAAC;AAAA,MAC7B,UAAU,WAAW,SAAS,KAAK;AAAA,MACnC,SAAS,WAAW,QAAQ,KAAK;AAAA,MACjC,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,UAAU;AAAA,MACV,UAAU;AAAA,MACV,GAAG,cAAc,OAAO,aAAa;AAAA,MACrC,GAAG,eAAe,OAAO,MAAM,KAAK;AAAA,IACtC;AAAA,IAEA,uBAAuB;AAAA,MACrB,OAAO,WAAW,OAAO,aAAa;AAAA,IACxC;AAAA,EACF;AACF,CAAC;AAEM,IAAM,qBAAqB,MAAM;AAAA,EACtC,CAAC,UAAU,QAAQ;AACjB,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,GAAG;AAAA,IACL,IAAI,oBAAoB,QAAQ;AAEhC,UAAM,EAAE,UAAU,kBAAkB,YAAY,YAAY,IAAI,iBAAiB;AAAA,MAC/E;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAGD,UAAM,iBAAiB,WAAW,gBAAgB;AAGlD,UAAM,eAAe;AAKrB,UAAM,iBAAiB,MAAM,aAAa,cAAc;AAAA,MACtD,SAAS,CAAC,MAAwB;AAChC,oBAAY,CAAC;AAEb,qBAAa,MAAM,UAAU,CAAC;AAAA,MAChC;AAAA,MACA,eAAe,aAAa,GAAG,UAAU,aAAa;AAAA,IACxD,CAAC;AAED,WACE,oBAAC,SAAI,KAAK,YAAY,WACpB;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,eAAe;AAAA,QACf,YAAY;AAAA,QACZ;AAAA,QACA;AAAA,QACA,OAAO;AAAA,QACP,MAAM,WAAW,mBAAmB;AAAA,QACpC,YAAY,WAAW,IAAI;AAAA,QAC3B,YAAY;AAAA,QACZ,sBAAsB;AAAA,QACtB,sBAAsB;AAAA,QACtB,sBAAsB;AAAA,QACtB,WAAW;AAAA,UACT,SAAS;AAAA,YACP,IAAI,EAAE,UAAU,WAAW,QAAQ,EAAE;AAAA,YACrC,MAAM;AAAA,YACN,GAAI,cAAc,EAAE,eAAe,GAAG,UAAU,WAAW;AAAA,UAC7D;AAAA,QACF;AAAA,QACC,GAAG;AAAA,QAEH;AAAA;AAAA,IACH,GACF;AAAA,EAEJ;AACF;AAEA,mBAAmB,cAAc;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/layout/SettingCard/SettingCard.tsx"],"sourcesContent":["import Box from '@mui/material/Box/index.js';\nimport React, { forwardRef, useId } from 'react';\n\nimport { Icon } from '../../../icons';\nimport { Button } from '../../form/Button';\n\nimport { useSettingCard } from './SettingCard.hooks';\nimport { LearnMore, PendingSpinner, SaveError, SettingHeader, partTestId } from './SettingCard.parts';\nimport { SETTING_CARD_OPEN_ATTR, actionsStyles, summaryStyles, surfaceStyles, withCallerSx } from './SettingCard.styles';\nimport type { SettingCardCopy, SettingCardProps } from './SettingCard.types';\n\ninterface OpenBodyProps {\n bodyRef: React.RefObject<HTMLDivElement | null>;\n titleId: string;\n errorId: string;\n copy: SettingCardCopy;\n learnMore?: React.ReactNode;\n children: React.ReactNode;\n saving: boolean;\n error: string | null;\n saveDisabled: boolean;\n onSave: () => void;\n onCancel: () => void;\n dataTestId?: string;\n}\n\n/**\n * The open card: the host's form, the disclosure, the failure line, and the\n * two actions.\n *\n * Save is NOT `disabled` while it saves — it is `aria-disabled` and ignores\n * the click. A disabled button drops the focus it holds, so a keyboard user\n * who pressed Save would land on `<body>` and, if the save then failed, have\n * to find their way back to the form from the top of the page.\n */\nconst OpenBody: React.FC<OpenBodyProps> = ({\n bodyRef, titleId, errorId, copy, learnMore, children, saving, error, saveDisabled, onSave, onCancel, dataTestId,\n}) => {\n const onKeyDown = (event: React.KeyboardEvent) => {\n if (event.key !== 'Escape') return;\n event.stopPropagation();\n onCancel();\n };\n\n return (\n <Box\n ref={bodyRef}\n role=\"group\"\n aria-labelledby={titleId}\n onKeyDown={onKeyDown}\n sx={{ display: 'flex', flexDirection: 'column', gap: 2, flex: 1 }}\n data-testid={partTestId(dataTestId, 'body')}\n >\n <Box>{children}</Box>\n {learnMore && (\n <LearnMore label={copy.learnMore} dataTestId={dataTestId}>\n {learnMore}\n </LearnMore>\n )}\n <SaveError id={errorId} message={error} dataTestId={dataTestId} />\n <Box sx={(theme) => actionsStyles(theme)}>\n <Button variant=\"ghost\" color=\"neutral\" onClick={onCancel} disabled={saving} dataTestId={partTestId(dataTestId, 'cancel')}>\n {copy.cancel}\n </Button>\n <Button\n variant=\"solid\"\n onClick={onSave}\n disabled={saveDisabled}\n aria-disabled={saving || undefined}\n aria-describedby={error ? errorId : undefined}\n icon={saving ? <PendingSpinner dataTestId={dataTestId} /> : undefined}\n iconPosition=\"left\"\n dataTestId={partTestId(dataTestId, 'save')}\n >\n {saving ? copy.saving : copy.save}\n </Button>\n </Box>\n </Box>\n );\n};\n\n/**\n * A setting, summarised while closed and edited in place.\n *\n * Closed: title, status pill, a one-line summary and Edit. Edit opens the card\n * where it is — no dialog, no route — around the host's form, a \"learn more\"\n * disclosure and Cancel / Save. Save may be async: the card holds its saving\n * state while the promise is pending, closes when it resolves, and stays open\n * with the error when it rejects. Focus moves into the card as it opens and\n * back to Edit as it closes.\n */\ninterface EditTriggerProps {\n triggerRef: React.RefObject<HTMLButtonElement | null>;\n id: string;\n titleId: string;\n label: string;\n disabled: boolean;\n onOpen: () => void;\n dataTestId?: string;\n}\n\n/** Edit. Its accessible name is \"Edit\" AND the card's title, so a grid of them is not a list of \"Edit, Edit, Edit\". */\nconst EditTrigger: React.FC<EditTriggerProps> = ({ triggerRef, id, titleId, label, disabled, onOpen, dataTestId }) => (\n <Button\n ref={triggerRef}\n id={id}\n variant=\"outline\"\n color=\"neutral\"\n size=\"sm\"\n icon={<Icon name=\"Edit\" size=\"xs\" />}\n iconPosition=\"left\"\n disabled={disabled}\n aria-labelledby={`${id} ${titleId}`}\n onClick={onOpen}\n dataTestId={partTestId(dataTestId, 'edit')}\n >\n {label}\n </Button>\n);\n\n/**\n * A setting, summarised while closed and edited in place.\n *\n * Closed: title, status pill, a one-line summary and Edit. Edit opens the card\n * where it is — no dialog, no route — around the host's form, a \"learn more\"\n * disclosure and Cancel / Save. Save may be async: the card holds its saving\n * state while the promise is pending, closes when it resolves, and stays open\n * with the error when it rejects. Focus moves into the card as it opens and\n * back to Edit as it closes.\n */\nexport const SettingCard = forwardRef<HTMLElement, SettingCardProps>(function SettingCard(props, ref) {\n const { title, headingLevel = 'h3', icon, status, summary, children, learnMore, copy, dataTestId, className, sx } = props;\n const baseId = useId();\n const titleId = `${baseId}-title`;\n const card = useSettingCard(props);\n const { open } = card;\n\n return (\n <Box\n component=\"section\"\n ref={ref}\n aria-labelledby={titleId}\n aria-busy={card.saving || undefined}\n data-state={open ? 'open' : 'closed'}\n {...{ [SETTING_CARD_OPEN_ATTR]: open ? '' : undefined }}\n data-testid={dataTestId}\n className={className}\n sx={withCallerSx((theme) => surfaceStyles(theme, open), sx)}\n >\n <SettingHeader\n titleId={titleId}\n title={title}\n headingLevel={headingLevel}\n icon={icon}\n status={status}\n trailing={\n open ? null : (\n <EditTrigger\n triggerRef={card.editRef}\n id={`${baseId}-edit`}\n titleId={titleId}\n label={copy.edit}\n disabled={card.disabled}\n onOpen={card.openCard}\n dataTestId={dataTestId}\n />\n )\n }\n dataTestId={dataTestId}\n />\n {!open && summary != null && (\n <Box component=\"p\" sx={summaryStyles} data-testid={partTestId(dataTestId, 'summary')}>\n {summary}\n </Box>\n )}\n {open && (\n <OpenBody\n bodyRef={card.bodyRef}\n titleId={titleId}\n errorId={`${baseId}-error`}\n copy={copy}\n learnMore={learnMore}\n saving={card.saving}\n error={card.error}\n saveDisabled={card.saveDisabled}\n onSave={card.save}\n onCancel={card.cancel}\n dataTestId={dataTestId}\n >\n {children}\n </OpenBody>\n )}\n </Box>\n );\n});\n\nSettingCard.displayName = 'SettingCard';\n"],"mappings":"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","names":["SettingCard"]}