@12-apps/ui 6.29.1 → 6.30.1

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 (395) hide show
  1. package/NATIVE.md +1 -1
  2. package/components-catalog.md +7 -0
  3. package/dist/_internal/components/data-display/Avatar/Avatar.js +4 -4
  4. package/dist/_internal/components/data-display/Avatar/Avatar.view.js +2 -2
  5. package/dist/_internal/components/data-display/Badge/Badge.js +2 -2
  6. package/dist/_internal/components/data-display/CardKit/CardKebab.js +3 -3
  7. package/dist/_internal/components/data-display/CardKit/use-remove-confirm.js +4 -4
  8. package/dist/_internal/components/data-display/CardKit/use-row-confirm.js +4 -4
  9. package/dist/_internal/components/data-display/Carousel/Carousel.js +3 -3
  10. package/dist/_internal/components/data-display/Chart/Chart.js +4 -4
  11. package/dist/_internal/components/data-display/Chart/SpecChart.js +8 -8
  12. package/dist/_internal/components/data-display/Chart/chart-context.js +2 -2
  13. package/dist/_internal/components/data-display/Chart/chart-renderers.js +3 -3
  14. package/dist/_internal/components/data-display/Chart/chart-spec.js +2 -2
  15. package/dist/_internal/components/data-display/DataGrid/DataGrid.js +2 -2
  16. package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +40 -40
  17. package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +52 -52
  18. package/dist/_internal/components/data-display/DataViews/DeleteViewDialog.js +6 -6
  19. package/dist/_internal/components/data-display/DataViews/ManageViewsDialog.js +8 -8
  20. package/dist/_internal/components/data-display/DataViews/SaveViewModal.js +6 -6
  21. package/dist/_internal/components/data-display/DataViews/base-card.js +2 -2
  22. package/dist/_internal/components/data-display/DataViews/base-list-card-geometry.js +5 -5
  23. package/dist/_internal/components/data-display/DataViews/base-list-card-slots.js +4 -4
  24. package/dist/_internal/components/data-display/DataViews/base-list-card.js +7 -7
  25. package/dist/_internal/components/data-display/DataViews/data-views-category-pill.js +4 -4
  26. package/dist/_internal/components/data-display/DataViews/data-views-columns.js +4 -4
  27. package/dist/_internal/components/data-display/DataViews/data-views-display-panel.js +7 -7
  28. package/dist/_internal/components/data-display/DataViews/data-views-display-tabs.js +3 -3
  29. package/dist/_internal/components/data-display/DataViews/data-views-empty.js +3 -3
  30. package/dist/_internal/components/data-display/DataViews/data-views-export.js +3 -3
  31. package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +7 -7
  32. package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +10 -10
  33. package/dist/_internal/components/data-display/DataViews/data-views-grid-helpers.js +3 -3
  34. package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +35 -35
  35. package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +11 -11
  36. package/dist/_internal/components/data-display/DataViews/data-views-layout-context.js +2 -2
  37. package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +4 -4
  38. package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +7 -7
  39. package/dist/_internal/components/data-display/DataViews/data-views-range-pill.js +2 -2
  40. package/dist/_internal/components/data-display/DataViews/data-views-scope-tabs.js +3 -3
  41. package/dist/_internal/components/data-display/DataViews/data-views-select-all-strip.js +3 -3
  42. package/dist/_internal/components/data-display/DataViews/data-views-shell-toolbar.js +12 -12
  43. package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +11 -11
  44. package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +11 -11
  45. package/dist/_internal/components/data-display/DataViews/data-views-view-nav.js +3 -3
  46. package/dist/_internal/components/data-display/DataViews/list-card-rails.js +3 -3
  47. package/dist/_internal/components/data-display/DataViews/use-data-views-state.js +7 -7
  48. package/dist/_internal/components/data-display/DataViews/use-saved-views-controller.js +2 -2
  49. package/dist/_internal/components/data-display/FleetMap/FleetBody.js +10 -10
  50. package/dist/_internal/components/data-display/FleetMap/FleetCanvas.js +9 -9
  51. package/dist/_internal/components/data-display/FleetMap/FleetMap.fixtures.js +2 -2
  52. package/dist/_internal/components/data-display/FleetMap/FleetMap.js +12 -12
  53. package/dist/_internal/components/data-display/HoverCard/HoverCard.js +2 -2
  54. package/dist/_internal/components/data-display/Lightbox/Lightbox.js +6 -6
  55. package/dist/_internal/components/data-display/MapPreview/MapLayers.js +2 -2
  56. package/dist/_internal/components/data-display/MapPreview/MapMarkers.js +2 -2
  57. package/dist/_internal/components/data-display/MapPreview/MapPreview.js +8 -8
  58. package/dist/_internal/components/data-display/Progress/Progress.js +2 -2
  59. package/dist/_internal/components/data-display/Sheet/Sheet.hooks.js +2 -2
  60. package/dist/_internal/components/data-display/Sheet/Sheet.js +4 -4
  61. package/dist/_internal/components/data-display/Table/Table.js +2 -2
  62. package/dist/_internal/components/data-display/index.js +56 -56
  63. package/dist/_internal/components/feedback/ConfirmAction/ConfirmButton.js +3 -3
  64. package/dist/_internal/components/feedback/Dialog/Dialog.js +2 -2
  65. package/dist/_internal/components/feedback/Modal/Modal.js +2 -2
  66. package/dist/_internal/components/feedback/NotificationStatusNotice/NotificationStatusNotice.helpers.js +12 -0
  67. package/dist/_internal/components/feedback/NotificationStatusNotice/NotificationStatusNotice.js +24 -0
  68. package/dist/_internal/components/feedback/NotificationStatusNotice/NotificationStatusNotice.js.map +1 -0
  69. package/dist/_internal/components/feedback/NotificationStatusNotice/NotificationStatusNotice.metrics.js +12 -0
  70. package/dist/_internal/components/feedback/NotificationStatusNotice/NotificationStatusNotice.metrics.js.map +1 -0
  71. package/dist/_internal/components/feedback/NotificationStatusNotice/NotificationStatusNotice.types.js +1 -0
  72. package/dist/_internal/components/feedback/NotificationStatusNotice/NotificationStatusNotice.types.js.map +1 -0
  73. package/dist/_internal/components/feedback/index.js +35 -19
  74. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.hooks.js +2 -2
  75. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.js +6 -6
  76. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocompleteField.js +3 -3
  77. package/dist/_internal/components/form/Autocomplete/Autocomplete.helpers.js +1 -1
  78. package/dist/_internal/components/form/Autocomplete/Autocomplete.js +5 -5
  79. package/dist/_internal/components/form/Autocomplete/Autocomplete.keys.js +2 -2
  80. package/dist/_internal/components/form/Autocomplete/Autocomplete.parts.js +2 -2
  81. package/dist/_internal/components/form/Autocomplete/useAutocomplete.js +3 -3
  82. package/dist/_internal/components/form/Button/Button.js +2 -2
  83. package/dist/_internal/components/form/Calendar/Calendar.hooks.js +2 -2
  84. package/dist/_internal/components/form/Calendar/Calendar.js +3 -3
  85. package/dist/_internal/components/form/CategorySelect/CategorySelect.js +2 -2
  86. package/dist/_internal/components/form/CodeEditor/CodeEditor.js +2 -2
  87. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.js +4 -4
  88. package/dist/_internal/components/form/InputOTP/InputOTP.js +2 -2
  89. package/dist/_internal/components/form/Menubar/Menubar.js +2 -2
  90. package/dist/_internal/components/form/UploadButton/UploadButton.js +2 -2
  91. package/dist/_internal/components/form/index.js +51 -51
  92. package/dist/_internal/components/form/total-form/Fields/CategoryField.js +3 -3
  93. package/dist/_internal/components/form/total-form/Fields/index.js +7 -7
  94. package/dist/_internal/components/form/total-form/SubmitButton.js +3 -3
  95. package/dist/_internal/components/index.js +178 -166
  96. package/dist/_internal/components/layout/ScrollArea/ScrollArea.js +1 -1
  97. package/dist/_internal/components/layout/SettingsLayout/SettingsLayout.js +4 -4
  98. package/dist/_internal/components/layout/SettingsLayout/SettingsPanel.js +2 -2
  99. package/dist/_internal/components/layout/index.js +18 -18
  100. package/dist/_internal/components/navigation/AppHeader/AppHeader.details.js +10 -10
  101. package/dist/_internal/components/navigation/NavigationMenu/NavigationMegaSection.js +2 -2
  102. package/dist/_internal/components/navigation/NavigationMenu/NavigationMenu.js +4 -4
  103. package/dist/_internal/components/navigation/NavigationMenu/NavigationStandardBody.js +2 -2
  104. package/dist/_internal/components/navigation/index.js +22 -22
  105. package/dist/_internal/components/utility/InstallPrompt/InstallPrompt.js +3 -3
  106. package/dist/_internal/components/utility/InstallPrompt/usePwaInstall.js +2 -2
  107. package/dist/_internal/components/utility/index.js +17 -17
  108. package/dist/_internal/en-US.data-display.js +2 -2
  109. package/dist/_internal/en-US.feedback.js +3 -1
  110. package/dist/_internal/icons/Icon.js +2 -2
  111. package/dist/_internal/pt-BR.feedback.js +3 -1
  112. package/dist/_internal/social-login-button/social-login-button.js +4 -4
  113. package/dist/_internal/user-avatar/user-avatar.js +8 -8
  114. package/dist/charts.js +17 -17
  115. package/dist/{chunk-W5CW7JFZ.js → chunk-22ZJH7RY.js} +2 -2
  116. package/dist/{chunk-JRWPI4XF.js → chunk-23FCBIUN.js} +4 -4
  117. package/dist/{chunk-HQB5XNK5.js → chunk-2UBFDRL7.js} +2 -2
  118. package/dist/{chunk-HS2OJI6L.js → chunk-35UG2QDB.js} +7 -7
  119. package/dist/{chunk-4H4Y2SX3.js → chunk-3MALHTZQ.js} +2 -2
  120. package/dist/chunk-3MEIGSDK.js +88 -0
  121. package/dist/chunk-3MEIGSDK.js.map +1 -0
  122. package/dist/{chunk-PVIAHB7D.js → chunk-3XLDTVLC.js} +6 -6
  123. package/dist/{chunk-5UC2RNOY.js → chunk-4MXFPDKL.js} +4 -4
  124. package/dist/{chunk-OJCK5RNJ.js → chunk-4XVH6IWN.js} +2 -2
  125. package/dist/{chunk-ALAJBLBE.js → chunk-554SVTCN.js} +3 -3
  126. package/dist/chunk-55FFONIV.js +11 -0
  127. package/dist/chunk-55FFONIV.js.map +1 -0
  128. package/dist/{chunk-3BPDHWVF.js → chunk-57W2C7HY.js} +4 -4
  129. package/dist/{chunk-XGOWREVV.js → chunk-57ZSQB5V.js} +2 -2
  130. package/dist/{chunk-6TSP45KC.js → chunk-5NOCXEL2.js} +13 -5
  131. package/dist/chunk-5NOCXEL2.js.map +1 -0
  132. package/dist/{chunk-P3NRT6GV.js → chunk-62NA6IF3.js} +4 -4
  133. package/dist/{chunk-J2K65BQQ.js → chunk-6FUOUUYO.js} +3 -3
  134. package/dist/{chunk-MVJYIHPH.js → chunk-6IKX5IIX.js} +3 -3
  135. package/dist/{chunk-QGAYEBMU.js → chunk-6PKVHFCK.js} +8 -8
  136. package/dist/chunk-6YIKVXAV.js +1 -0
  137. package/dist/chunk-6YIKVXAV.js.map +1 -0
  138. package/dist/{chunk-G5ZVD5IJ.js → chunk-7AR2R7TV.js} +4 -4
  139. package/dist/{chunk-XBZ43VIV.js → chunk-7IKWIWWV.js} +7 -7
  140. package/dist/{chunk-YFY3YVV6.js → chunk-7OZBOS75.js} +3 -3
  141. package/dist/chunk-ASHXIAJO.js +88 -0
  142. package/dist/chunk-ASHXIAJO.js.map +1 -0
  143. package/dist/{chunk-NGVGTMHT.js → chunk-B474PL5O.js} +2 -2
  144. package/dist/{chunk-TX3ZHO5R.js → chunk-BEGWE5O4.js} +4 -4
  145. package/dist/{chunk-NGM5XKAS.js → chunk-BILJU2DX.js} +5 -5
  146. package/dist/{chunk-GJUIZ5FN.js → chunk-BKAB4KZK.js} +4 -4
  147. package/dist/{chunk-HKV4MQ2W.js → chunk-BLBOYCOV.js} +5 -5
  148. package/dist/{chunk-NY2Y2SHA.js → chunk-CASZGBCA.js} +4 -4
  149. package/dist/{chunk-UN5INW6K.js → chunk-CZJLWCEG.js} +2 -2
  150. package/dist/{chunk-WYDGPJ3Z.js → chunk-CZPU5TW3.js} +4 -4
  151. package/dist/{chunk-TC3EPGGJ.js → chunk-DAPK3ADA.js} +4 -4
  152. package/dist/{chunk-QZBUGUOY.js → chunk-DFLTUI7W.js} +4 -4
  153. package/dist/{chunk-PJTSGHTY.js → chunk-DQOLW4B5.js} +2 -2
  154. package/dist/{chunk-FR6AJSMT.js → chunk-DUWF5LUK.js} +4 -4
  155. package/dist/{chunk-SHDIZSN5.js → chunk-EXJBPKGW.js} +5 -5
  156. package/dist/{chunk-MHSTG7FF.js → chunk-EZMCWRXO.js} +2 -2
  157. package/dist/{chunk-BYMWW65P.js → chunk-FGUK3D54.js} +2 -2
  158. package/dist/{chunk-PCYGUOWJ.js → chunk-FLIMEQUA.js} +7 -7
  159. package/dist/{chunk-TEE6HNHS.js → chunk-FRW4SYZD.js} +4 -4
  160. package/dist/{chunk-R6SBP5M5.js → chunk-GOWBYHYW.js} +4 -4
  161. package/dist/{chunk-362OGE5J.js → chunk-HBRKA67N.js} +3 -3
  162. package/dist/{chunk-THOPGHTY.js → chunk-HGJHZ5PE.js} +7 -7
  163. package/dist/{chunk-K4N3V7YE.js → chunk-HR7YTBR7.js} +4 -4
  164. package/dist/{chunk-PZEC5CQA.js → chunk-HT4B2DJU.js} +4 -4
  165. package/dist/{chunk-EMAX7RPN.js → chunk-HZ6L7WXE.js} +7 -7
  166. package/dist/{chunk-BEWD734I.js → chunk-I3FXTIKA.js} +2 -2
  167. package/dist/{chunk-JE6RZ5L6.js → chunk-IABE56TG.js} +2 -2
  168. package/dist/{chunk-B443IIQG.js → chunk-IE7ISTLQ.js} +4 -4
  169. package/dist/{chunk-LKF5KQ2Q.js → chunk-IIUB4IOH.js} +4 -4
  170. package/dist/{chunk-2ZRZTGWP.js → chunk-ISW5K72V.js} +5 -5
  171. package/dist/{chunk-JOXBCXVL.js → chunk-J4W4TQPC.js} +9 -9
  172. package/dist/{chunk-K7DCYV5Q.js → chunk-JGV66VUK.js} +2 -2
  173. package/dist/{chunk-QPDDS6DQ.js → chunk-JJ3VR7WX.js} +2 -2
  174. package/dist/{chunk-DVE53B2L.js → chunk-JQL4GG5L.js} +7 -7
  175. package/dist/chunk-JQRKXMSH.js +1 -0
  176. package/dist/chunk-JQRKXMSH.js.map +1 -0
  177. package/dist/{chunk-XBHQT4BQ.js → chunk-JXS56EW5.js} +3 -3
  178. package/dist/{chunk-XBHQT4BQ.js.map → chunk-JXS56EW5.js.map} +1 -1
  179. package/dist/{chunk-EZNTM6PT.js → chunk-JYF3HT7M.js} +7 -7
  180. package/dist/{chunk-H53YNR23.js → chunk-K2EHH7TC.js} +5 -5
  181. package/dist/{chunk-FOKBP6HR.js → chunk-K2JH7QPR.js} +10 -10
  182. package/dist/chunk-K4JRHQMI.js +109 -0
  183. package/dist/chunk-K4JRHQMI.js.map +1 -0
  184. package/dist/{chunk-VRKS5K4N.js → chunk-K5V3KCFI.js} +4 -4
  185. package/dist/{chunk-LSJY4LWZ.js → chunk-KFZT3PHA.js} +3 -3
  186. package/dist/{chunk-DVUPIVI2.js → chunk-KT6HWAEN.js} +4 -4
  187. package/dist/{chunk-EYC6ERJJ.js → chunk-KUJLZFDW.js} +3 -3
  188. package/dist/{chunk-65DLYC4S.js → chunk-L3R7WPIK.js} +4 -4
  189. package/dist/chunk-L7BRU4UF.js +39 -0
  190. package/dist/chunk-L7BRU4UF.js.map +1 -0
  191. package/dist/{chunk-O42ZA3TW.js → chunk-MCBG6R5A.js} +2 -2
  192. package/dist/{chunk-MNSW33DU.js → chunk-MSS6IU5X.js} +3 -3
  193. package/dist/{chunk-VLHGBFR6.js → chunk-MZQTHSLN.js} +3 -3
  194. package/dist/{chunk-XELVDPKL.js → chunk-NFAKRI4S.js} +4 -4
  195. package/dist/{chunk-7TZ6OC5T.js → chunk-OH3YGJT5.js} +2 -2
  196. package/dist/{chunk-ZTZ6S5Q6.js → chunk-OXQP3N6X.js} +4 -4
  197. package/dist/{chunk-JDFTIK4L.js → chunk-PELRSZFU.js} +2 -2
  198. package/dist/{chunk-XSJWN3WH.js → chunk-PMS3H3OO.js} +10 -10
  199. package/dist/{chunk-IQ7WZ3RN.js → chunk-Q5NAZ7TW.js} +2 -2
  200. package/dist/{chunk-SOCKK67R.js → chunk-QRX5BYUQ.js} +7 -7
  201. package/dist/{chunk-OLZTGVBT.js → chunk-REMK55JI.js} +4 -4
  202. package/dist/{chunk-5GMHJ7Y5.js → chunk-S2GDYA6R.js} +5 -5
  203. package/dist/{chunk-T7WU7JGC.js → chunk-SUTNQG7E.js} +2 -2
  204. package/dist/{chunk-TTW4MAOJ.js → chunk-UCTJJYVC.js} +5 -5
  205. package/dist/{chunk-BLT5ZBVL.js → chunk-UEJQQVP2.js} +4 -4
  206. package/dist/{chunk-236QP424.js → chunk-URVNHKM2.js} +5 -5
  207. package/dist/{chunk-4OSGKO7E.js → chunk-UVD5NFRF.js} +2 -2
  208. package/dist/{chunk-TSFFZ3AH.js → chunk-VEGT5PAD.js} +17 -17
  209. package/dist/{chunk-UKPZVX3J.js → chunk-VJFH2AXT.js} +2 -2
  210. package/dist/{chunk-XXJRT6BP.js → chunk-VMXDTCYF.js} +6 -6
  211. package/dist/{chunk-HDNK7BAX.js → chunk-VNEEXUWA.js} +3 -3
  212. package/dist/{chunk-XOCLWQON.js → chunk-VNGYJXAU.js} +3 -3
  213. package/dist/{chunk-KW7H5O3K.js → chunk-WREIYOXN.js} +4 -4
  214. package/dist/{chunk-EPNUVSNK.js → chunk-XFUNJYFT.js} +7 -7
  215. package/dist/{chunk-QSKJLMNS.js → chunk-Y5UCOBQN.js} +2 -2
  216. package/dist/{chunk-D6HDJVQW.js → chunk-YANLN6HP.js} +5 -5
  217. package/dist/{chunk-JVVTSSS4.js → chunk-Z52HVR4J.js} +2 -2
  218. package/dist/{chunk-WC3W36AM.js → chunk-ZOUWHGV3.js} +4 -4
  219. package/dist/{chunk-M7E66OSC.js → chunk-ZPIMPOHV.js} +4 -4
  220. package/dist/{chunk-LCXXPIG3.js → chunk-ZWIDQEJ4.js} +4 -4
  221. package/dist/{chunk-MRMNVGNX.js → chunk-ZYKDPX3W.js} +2 -2
  222. package/dist/data-display/Avatar.js +4 -4
  223. package/dist/data-display/Badge.js +2 -2
  224. package/dist/data-display/CardKit.js +10 -10
  225. package/dist/data-display/Carousel.js +3 -3
  226. package/dist/data-display/Chart.js +17 -17
  227. package/dist/data-display/DataGrid.js +2 -2
  228. package/dist/data-display/DataViews.js +69 -69
  229. package/dist/data-display/FleetMap.js +12 -12
  230. package/dist/data-display/HoverCard.js +2 -2
  231. package/dist/data-display/Lightbox.js +6 -6
  232. package/dist/data-display/MapPreview.js +8 -8
  233. package/dist/data-display/Progress.js +2 -2
  234. package/dist/data-display/Sheet.js +4 -4
  235. package/dist/data-display/Table.js +2 -2
  236. package/dist/en-US.js +7 -5
  237. package/dist/feedback/ConfirmAction.js +6 -6
  238. package/dist/feedback/Dialog.js +2 -2
  239. package/dist/feedback/Modal.js +2 -2
  240. package/dist/feedback/NotificationStatusNotice.js +30 -0
  241. package/dist/feedback/NotificationStatusNotice.js.map +1 -0
  242. package/dist/form/AddressAutocomplete.js +6 -6
  243. package/dist/form/Autocomplete.js +5 -5
  244. package/dist/form/Button.js +2 -2
  245. package/dist/form/Calendar.js +3 -3
  246. package/dist/form/CategorySelect.js +2 -2
  247. package/dist/form/CodeEditor.js +2 -2
  248. package/dist/form/DateRangePicker.js +4 -4
  249. package/dist/form/InputOTP.js +2 -2
  250. package/dist/form/Menubar.js +2 -2
  251. package/dist/form/UploadButton.js +2 -2
  252. package/dist/form/total-form.js +10 -10
  253. package/dist/icons.js +2 -2
  254. package/dist/layout/ContentToolbar.js +3 -3
  255. package/dist/layout/ScrollArea.js +1 -1
  256. package/dist/layout/SettingsLayout.js +4 -4
  257. package/dist/locales.js +10 -10
  258. package/dist/navigation/AppHeader.js +12 -12
  259. package/dist/navigation/NavigationMenu.js +4 -4
  260. package/dist/pt-BR.js +7 -5
  261. package/dist/social-login-button.js +4 -4
  262. package/dist/types/components/feedback/NotificationStatusNotice/NotificationStatusNotice.d.ts +13 -0
  263. package/dist/types/components/feedback/NotificationStatusNotice/NotificationStatusNotice.d.ts.map +1 -0
  264. package/dist/types/components/feedback/NotificationStatusNotice/NotificationStatusNotice.helpers.d.ts +28 -0
  265. package/dist/types/components/feedback/NotificationStatusNotice/NotificationStatusNotice.helpers.d.ts.map +1 -0
  266. package/dist/types/components/feedback/NotificationStatusNotice/NotificationStatusNotice.metrics.d.ts +7 -0
  267. package/dist/types/components/feedback/NotificationStatusNotice/NotificationStatusNotice.metrics.d.ts.map +1 -0
  268. package/dist/types/components/feedback/NotificationStatusNotice/NotificationStatusNotice.types.d.ts +64 -0
  269. package/dist/types/components/feedback/NotificationStatusNotice/NotificationStatusNotice.types.d.ts.map +1 -0
  270. package/dist/types/components/feedback/NotificationStatusNotice/index.d.ts +4 -0
  271. package/dist/types/components/feedback/NotificationStatusNotice/index.d.ts.map +1 -0
  272. package/dist/types/components/feedback/index.d.ts +1 -0
  273. package/dist/types/components/feedback/index.d.ts.map +1 -1
  274. package/dist/types/components/form/Autocomplete/Autocomplete.helpers.d.ts +16 -3
  275. package/dist/types/components/form/Autocomplete/Autocomplete.helpers.d.ts.map +1 -1
  276. package/dist/types/components/form/Autocomplete/Autocomplete.parts.d.ts.map +1 -1
  277. package/dist/types/copy/feedback.d.ts +43 -0
  278. package/dist/types/copy/feedback.d.ts.map +1 -1
  279. package/dist/types/en-US.feedback.d.ts +2 -1
  280. package/dist/types/en-US.feedback.d.ts.map +1 -1
  281. package/dist/types/pt-BR.feedback.d.ts +2 -1
  282. package/dist/types/pt-BR.feedback.d.ts.map +1 -1
  283. package/dist/user-avatar.js +8 -8
  284. package/dist/utility/InstallPrompt.js +4 -4
  285. package/package.json +5 -1
  286. package/src/components/feedback/NotificationStatusNotice/NotificationStatusNotice.helpers.ts +80 -0
  287. package/src/components/feedback/NotificationStatusNotice/NotificationStatusNotice.md +106 -0
  288. package/src/components/feedback/NotificationStatusNotice/NotificationStatusNotice.metrics.ts +8 -0
  289. package/src/components/feedback/NotificationStatusNotice/NotificationStatusNotice.tsx +134 -0
  290. package/src/components/feedback/NotificationStatusNotice/NotificationStatusNotice.types.ts +83 -0
  291. package/src/components/feedback/NotificationStatusNotice/index.ts +16 -0
  292. package/src/components/feedback/NotificationStatusNotice/tests.md +24 -0
  293. package/src/components/feedback/NotificationStatusNotice/track.md +34 -0
  294. package/src/components/feedback/index.ts +1 -0
  295. package/src/components/form/Autocomplete/Autocomplete.helpers.ts +23 -5
  296. package/src/components/form/Autocomplete/Autocomplete.parts.tsx +17 -3
  297. package/src/copy/feedback.ts +28 -0
  298. package/src/en-US.feedback.ts +69 -0
  299. package/src/pt-BR.feedback.ts +69 -0
  300. package/dist/chunk-6TSP45KC.js.map +0 -1
  301. package/dist/chunk-E5ACI7EA.js +0 -22
  302. package/dist/chunk-E5ACI7EA.js.map +0 -1
  303. package/dist/chunk-IFLZNCAI.js +0 -22
  304. package/dist/chunk-IFLZNCAI.js.map +0 -1
  305. package/dist/chunk-SO2J7ULY.js +0 -1
  306. /package/dist/{chunk-SO2J7ULY.js.map → _internal/components/feedback/NotificationStatusNotice/NotificationStatusNotice.helpers.js.map} +0 -0
  307. /package/dist/{chunk-W5CW7JFZ.js.map → chunk-22ZJH7RY.js.map} +0 -0
  308. /package/dist/{chunk-JRWPI4XF.js.map → chunk-23FCBIUN.js.map} +0 -0
  309. /package/dist/{chunk-HQB5XNK5.js.map → chunk-2UBFDRL7.js.map} +0 -0
  310. /package/dist/{chunk-HS2OJI6L.js.map → chunk-35UG2QDB.js.map} +0 -0
  311. /package/dist/{chunk-4H4Y2SX3.js.map → chunk-3MALHTZQ.js.map} +0 -0
  312. /package/dist/{chunk-PVIAHB7D.js.map → chunk-3XLDTVLC.js.map} +0 -0
  313. /package/dist/{chunk-5UC2RNOY.js.map → chunk-4MXFPDKL.js.map} +0 -0
  314. /package/dist/{chunk-OJCK5RNJ.js.map → chunk-4XVH6IWN.js.map} +0 -0
  315. /package/dist/{chunk-ALAJBLBE.js.map → chunk-554SVTCN.js.map} +0 -0
  316. /package/dist/{chunk-3BPDHWVF.js.map → chunk-57W2C7HY.js.map} +0 -0
  317. /package/dist/{chunk-XGOWREVV.js.map → chunk-57ZSQB5V.js.map} +0 -0
  318. /package/dist/{chunk-P3NRT6GV.js.map → chunk-62NA6IF3.js.map} +0 -0
  319. /package/dist/{chunk-J2K65BQQ.js.map → chunk-6FUOUUYO.js.map} +0 -0
  320. /package/dist/{chunk-MVJYIHPH.js.map → chunk-6IKX5IIX.js.map} +0 -0
  321. /package/dist/{chunk-QGAYEBMU.js.map → chunk-6PKVHFCK.js.map} +0 -0
  322. /package/dist/{chunk-G5ZVD5IJ.js.map → chunk-7AR2R7TV.js.map} +0 -0
  323. /package/dist/{chunk-XBZ43VIV.js.map → chunk-7IKWIWWV.js.map} +0 -0
  324. /package/dist/{chunk-YFY3YVV6.js.map → chunk-7OZBOS75.js.map} +0 -0
  325. /package/dist/{chunk-NGVGTMHT.js.map → chunk-B474PL5O.js.map} +0 -0
  326. /package/dist/{chunk-TX3ZHO5R.js.map → chunk-BEGWE5O4.js.map} +0 -0
  327. /package/dist/{chunk-NGM5XKAS.js.map → chunk-BILJU2DX.js.map} +0 -0
  328. /package/dist/{chunk-GJUIZ5FN.js.map → chunk-BKAB4KZK.js.map} +0 -0
  329. /package/dist/{chunk-HKV4MQ2W.js.map → chunk-BLBOYCOV.js.map} +0 -0
  330. /package/dist/{chunk-NY2Y2SHA.js.map → chunk-CASZGBCA.js.map} +0 -0
  331. /package/dist/{chunk-UN5INW6K.js.map → chunk-CZJLWCEG.js.map} +0 -0
  332. /package/dist/{chunk-WYDGPJ3Z.js.map → chunk-CZPU5TW3.js.map} +0 -0
  333. /package/dist/{chunk-TC3EPGGJ.js.map → chunk-DAPK3ADA.js.map} +0 -0
  334. /package/dist/{chunk-QZBUGUOY.js.map → chunk-DFLTUI7W.js.map} +0 -0
  335. /package/dist/{chunk-PJTSGHTY.js.map → chunk-DQOLW4B5.js.map} +0 -0
  336. /package/dist/{chunk-FR6AJSMT.js.map → chunk-DUWF5LUK.js.map} +0 -0
  337. /package/dist/{chunk-SHDIZSN5.js.map → chunk-EXJBPKGW.js.map} +0 -0
  338. /package/dist/{chunk-MHSTG7FF.js.map → chunk-EZMCWRXO.js.map} +0 -0
  339. /package/dist/{chunk-BYMWW65P.js.map → chunk-FGUK3D54.js.map} +0 -0
  340. /package/dist/{chunk-PCYGUOWJ.js.map → chunk-FLIMEQUA.js.map} +0 -0
  341. /package/dist/{chunk-TEE6HNHS.js.map → chunk-FRW4SYZD.js.map} +0 -0
  342. /package/dist/{chunk-R6SBP5M5.js.map → chunk-GOWBYHYW.js.map} +0 -0
  343. /package/dist/{chunk-362OGE5J.js.map → chunk-HBRKA67N.js.map} +0 -0
  344. /package/dist/{chunk-THOPGHTY.js.map → chunk-HGJHZ5PE.js.map} +0 -0
  345. /package/dist/{chunk-K4N3V7YE.js.map → chunk-HR7YTBR7.js.map} +0 -0
  346. /package/dist/{chunk-PZEC5CQA.js.map → chunk-HT4B2DJU.js.map} +0 -0
  347. /package/dist/{chunk-EMAX7RPN.js.map → chunk-HZ6L7WXE.js.map} +0 -0
  348. /package/dist/{chunk-BEWD734I.js.map → chunk-I3FXTIKA.js.map} +0 -0
  349. /package/dist/{chunk-JE6RZ5L6.js.map → chunk-IABE56TG.js.map} +0 -0
  350. /package/dist/{chunk-B443IIQG.js.map → chunk-IE7ISTLQ.js.map} +0 -0
  351. /package/dist/{chunk-LKF5KQ2Q.js.map → chunk-IIUB4IOH.js.map} +0 -0
  352. /package/dist/{chunk-2ZRZTGWP.js.map → chunk-ISW5K72V.js.map} +0 -0
  353. /package/dist/{chunk-JOXBCXVL.js.map → chunk-J4W4TQPC.js.map} +0 -0
  354. /package/dist/{chunk-K7DCYV5Q.js.map → chunk-JGV66VUK.js.map} +0 -0
  355. /package/dist/{chunk-QPDDS6DQ.js.map → chunk-JJ3VR7WX.js.map} +0 -0
  356. /package/dist/{chunk-DVE53B2L.js.map → chunk-JQL4GG5L.js.map} +0 -0
  357. /package/dist/{chunk-EZNTM6PT.js.map → chunk-JYF3HT7M.js.map} +0 -0
  358. /package/dist/{chunk-H53YNR23.js.map → chunk-K2EHH7TC.js.map} +0 -0
  359. /package/dist/{chunk-FOKBP6HR.js.map → chunk-K2JH7QPR.js.map} +0 -0
  360. /package/dist/{chunk-VRKS5K4N.js.map → chunk-K5V3KCFI.js.map} +0 -0
  361. /package/dist/{chunk-LSJY4LWZ.js.map → chunk-KFZT3PHA.js.map} +0 -0
  362. /package/dist/{chunk-DVUPIVI2.js.map → chunk-KT6HWAEN.js.map} +0 -0
  363. /package/dist/{chunk-EYC6ERJJ.js.map → chunk-KUJLZFDW.js.map} +0 -0
  364. /package/dist/{chunk-65DLYC4S.js.map → chunk-L3R7WPIK.js.map} +0 -0
  365. /package/dist/{chunk-O42ZA3TW.js.map → chunk-MCBG6R5A.js.map} +0 -0
  366. /package/dist/{chunk-MNSW33DU.js.map → chunk-MSS6IU5X.js.map} +0 -0
  367. /package/dist/{chunk-VLHGBFR6.js.map → chunk-MZQTHSLN.js.map} +0 -0
  368. /package/dist/{chunk-XELVDPKL.js.map → chunk-NFAKRI4S.js.map} +0 -0
  369. /package/dist/{chunk-7TZ6OC5T.js.map → chunk-OH3YGJT5.js.map} +0 -0
  370. /package/dist/{chunk-ZTZ6S5Q6.js.map → chunk-OXQP3N6X.js.map} +0 -0
  371. /package/dist/{chunk-JDFTIK4L.js.map → chunk-PELRSZFU.js.map} +0 -0
  372. /package/dist/{chunk-XSJWN3WH.js.map → chunk-PMS3H3OO.js.map} +0 -0
  373. /package/dist/{chunk-IQ7WZ3RN.js.map → chunk-Q5NAZ7TW.js.map} +0 -0
  374. /package/dist/{chunk-SOCKK67R.js.map → chunk-QRX5BYUQ.js.map} +0 -0
  375. /package/dist/{chunk-OLZTGVBT.js.map → chunk-REMK55JI.js.map} +0 -0
  376. /package/dist/{chunk-5GMHJ7Y5.js.map → chunk-S2GDYA6R.js.map} +0 -0
  377. /package/dist/{chunk-T7WU7JGC.js.map → chunk-SUTNQG7E.js.map} +0 -0
  378. /package/dist/{chunk-TTW4MAOJ.js.map → chunk-UCTJJYVC.js.map} +0 -0
  379. /package/dist/{chunk-BLT5ZBVL.js.map → chunk-UEJQQVP2.js.map} +0 -0
  380. /package/dist/{chunk-236QP424.js.map → chunk-URVNHKM2.js.map} +0 -0
  381. /package/dist/{chunk-4OSGKO7E.js.map → chunk-UVD5NFRF.js.map} +0 -0
  382. /package/dist/{chunk-TSFFZ3AH.js.map → chunk-VEGT5PAD.js.map} +0 -0
  383. /package/dist/{chunk-UKPZVX3J.js.map → chunk-VJFH2AXT.js.map} +0 -0
  384. /package/dist/{chunk-XXJRT6BP.js.map → chunk-VMXDTCYF.js.map} +0 -0
  385. /package/dist/{chunk-HDNK7BAX.js.map → chunk-VNEEXUWA.js.map} +0 -0
  386. /package/dist/{chunk-XOCLWQON.js.map → chunk-VNGYJXAU.js.map} +0 -0
  387. /package/dist/{chunk-KW7H5O3K.js.map → chunk-WREIYOXN.js.map} +0 -0
  388. /package/dist/{chunk-EPNUVSNK.js.map → chunk-XFUNJYFT.js.map} +0 -0
  389. /package/dist/{chunk-QSKJLMNS.js.map → chunk-Y5UCOBQN.js.map} +0 -0
  390. /package/dist/{chunk-D6HDJVQW.js.map → chunk-YANLN6HP.js.map} +0 -0
  391. /package/dist/{chunk-JVVTSSS4.js.map → chunk-Z52HVR4J.js.map} +0 -0
  392. /package/dist/{chunk-WC3W36AM.js.map → chunk-ZOUWHGV3.js.map} +0 -0
  393. /package/dist/{chunk-M7E66OSC.js.map → chunk-ZPIMPOHV.js.map} +0 -0
  394. /package/dist/{chunk-LCXXPIG3.js.map → chunk-ZWIDQEJ4.js.map} +0 -0
  395. /package/dist/{chunk-MRMNVGNX.js.map → chunk-ZYKDPX3W.js.map} +0 -0
@@ -1,19 +1,19 @@
1
- import {
2
- DataViewsGrid
3
- } from "./chunk-EYC6ERJJ.js";
4
1
  import {
5
2
  DeleteViewDialog
6
- } from "./chunk-MNSW33DU.js";
3
+ } from "./chunk-MSS6IU5X.js";
4
+ import {
5
+ DataViewsGrid
6
+ } from "./chunk-KUJLZFDW.js";
7
7
  import {
8
8
  viewStateKey
9
9
  } from "./chunk-ZOLAYP2D.js";
10
10
  import {
11
11
  ViewDialogs,
12
12
  ViewMutationErrorAlert
13
- } from "./chunk-LSJY4LWZ.js";
13
+ } from "./chunk-KFZT3PHA.js";
14
14
  import {
15
15
  useSavedViewsController
16
- } from "./chunk-K4N3V7YE.js";
16
+ } from "./chunk-HR7YTBR7.js";
17
17
 
18
18
  // src/components/data-display/DataViews/DataViewsTableBase.tsx
19
19
  import { useEffect, useMemo, useRef, useState } from "react";
@@ -178,4 +178,4 @@ function renderViewDialogs(ctl, fields, columns, views, testIdPrefix, onSaved) {
178
178
  export {
179
179
  DataViewsTableBase
180
180
  };
181
- //# sourceMappingURL=chunk-DVE53B2L.js.map
181
+ //# sourceMappingURL=chunk-JQL4GG5L.js.map
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=chunk-JQRKXMSH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -67,9 +67,9 @@ function escapeRegExp(value) {
67
67
  return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
68
68
  }
69
69
  function highlightLabel(label, query, matchMode) {
70
- if (!query || matchMode === "fuzzy") return label;
70
+ if (!query || matchMode === "fuzzy") return [{ text: label, match: false }];
71
71
  const regex = new RegExp(`(${escapeRegExp(query)})`, "gi");
72
- return label.replace(regex, "<mark>$1</mark>");
72
+ return label.split(regex).map((text, index) => ({ text, match: index % 2 === 1 })).filter((segment) => segment.text !== "");
73
73
  }
74
74
 
75
75
  export {
@@ -82,4 +82,4 @@ export {
82
82
  firstGhostSuggestion,
83
83
  highlightLabel
84
84
  };
85
- //# sourceMappingURL=chunk-XBHQT4BQ.js.map
85
+ //# sourceMappingURL=chunk-JXS56EW5.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/form/Autocomplete/Autocomplete.helpers.ts"],"sourcesContent":["import type { SuggestionType } from './Autocomplete.types';\n\n/** Local filtering strategy. */\nexport type MatchMode = 'startsWith' | 'contains' | 'fuzzy';\n\n/** Default key extractor: id/key/value/label, else the item itself stringified. */\nexport const defaultGetKey = <T,>(item: T): string => {\n if (typeof item === 'string') return item;\n if (typeof item === 'object' && item !== null) {\n const obj = item as Record<string, unknown>;\n return String(obj.id ?? obj.key ?? obj.value ?? obj.label ?? obj);\n }\n return String(item);\n};\n\n/** Default label extractor: label/name/text, else the item itself stringified. */\nexport const defaultGetLabel = <T,>(item: T): string => {\n if (typeof item === 'string') return item;\n if (typeof item === 'object' && item !== null) {\n const obj = item as Record<string, unknown>;\n return String(obj.label ?? obj.name ?? obj.text ?? obj);\n }\n return String(item);\n};\n\n/** Default suggestion-type extractor: reads a `type: 'search' | 'link'` field. */\nexport const defaultGetSuggestionType = <T,>(item: T): SuggestionType | undefined => {\n if (typeof item === 'object' && item !== null) {\n const { type } = item as { type?: unknown };\n if (type === 'search' || type === 'link') return type;\n }\n return undefined;\n};\n\n/** Default URL extractor for `link` suggestions: reads a `url: string` field. */\nexport const defaultGetUrl = <T,>(item: T): string | undefined => {\n if (typeof item === 'object' && item !== null) {\n const { url } = item as { url?: unknown };\n if (typeof url === 'string') return url;\n }\n return undefined;\n};\n\n/** Default link opener: a new tab with `noopener,noreferrer`. SSR-guarded. */\nexport const defaultOpenLink = (url: string): void => {\n if (typeof window !== 'undefined') {\n window.open(url, '_blank', 'noopener,noreferrer');\n }\n};\n\n/** Fuzzy match: every char of `query` appears in `label`, in order. */\nfunction fuzzyMatch(label: string, query: string): boolean {\n let labelIndex = 0;\n for (let queryIndex = 0; queryIndex < query.length; queryIndex++) {\n const char = query[queryIndex];\n if (!char) continue;\n labelIndex = label.indexOf(char, labelIndex);\n if (labelIndex === -1) return false;\n labelIndex++;\n }\n return true;\n}\n\n/** True when `label` matches `query` under the given {@link MatchMode} (case-insensitive). */\nfunction matchesQuery(label: string, query: string, matchMode: MatchMode): boolean {\n const haystack = label.toLowerCase();\n const needle = query.toLowerCase();\n if (matchMode === 'startsWith') return haystack.startsWith(needle);\n if (matchMode === 'fuzzy') return fuzzyMatch(haystack, needle);\n return haystack.includes(needle);\n}\n\n/** Filter `suggestions` by `query` under `matchMode`; an empty query returns all. */\nexport function filterSuggestions<T>(\n suggestions: T[],\n query: string,\n matchMode: MatchMode,\n getLabel: (item: T) => string,\n): T[] {\n if (!query) return suggestions;\n return suggestions.filter((item) => matchesQuery(getLabel(item), query, matchMode));\n}\n\n/**\n * The first suggestion eligible for inline ghost completion: a non-`link` item\n * whose label starts with `inputValue` (case-insensitive) but isn't equal to it.\n * Shared by the ghost-text effect and ArrowRight completion.\n */\nexport function firstGhostSuggestion<T>(\n list: T[],\n inputValue: string,\n getLabel: (item: T) => string,\n getSuggestionType: (item: T) => SuggestionType | undefined,\n): T | undefined {\n const needle = inputValue.toLowerCase();\n return list.find((item) => {\n const label = getLabel(item).toLowerCase();\n return getSuggestionType(item) !== 'link' && label.startsWith(needle) && label !== needle;\n });\n}\n\n/** Escape a user query for safe use inside a `RegExp`. */\nfunction escapeRegExp(value: string): string {\n return value.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n}\n\n/**\n * Wrap query matches in `<mark>` for the default suggestion renderer. Skipped for\n * fuzzy mode (non-contiguous matches) and empty queries. Returns HTML.\n */\nexport function highlightLabel(label: string, query: string, matchMode: MatchMode): string {\n if (!query || matchMode === 'fuzzy') return label;\n const regex = new RegExp(`(${escapeRegExp(query)})`, 'gi');\n return label.replace(regex, '<mark>$1</mark>');\n}\n"],"mappings":";AAMO,IAAM,gBAAgB,CAAK,SAAoB;AACpD,MAAI,OAAO,SAAS,SAAU,QAAO;AACrC,MAAI,OAAO,SAAS,YAAY,SAAS,MAAM;AAC7C,UAAM,MAAM;AACZ,WAAO,OAAO,IAAI,MAAM,IAAI,OAAO,IAAI,SAAS,IAAI,SAAS,GAAG;AAAA,EAClE;AACA,SAAO,OAAO,IAAI;AACpB;AAGO,IAAM,kBAAkB,CAAK,SAAoB;AACtD,MAAI,OAAO,SAAS,SAAU,QAAO;AACrC,MAAI,OAAO,SAAS,YAAY,SAAS,MAAM;AAC7C,UAAM,MAAM;AACZ,WAAO,OAAO,IAAI,SAAS,IAAI,QAAQ,IAAI,QAAQ,GAAG;AAAA,EACxD;AACA,SAAO,OAAO,IAAI;AACpB;AAGO,IAAM,2BAA2B,CAAK,SAAwC;AACnF,MAAI,OAAO,SAAS,YAAY,SAAS,MAAM;AAC7C,UAAM,EAAE,KAAK,IAAI;AACjB,QAAI,SAAS,YAAY,SAAS,OAAQ,QAAO;AAAA,EACnD;AACA,SAAO;AACT;AAGO,IAAM,gBAAgB,CAAK,SAAgC;AAChE,MAAI,OAAO,SAAS,YAAY,SAAS,MAAM;AAC7C,UAAM,EAAE,IAAI,IAAI;AAChB,QAAI,OAAO,QAAQ,SAAU,QAAO;AAAA,EACtC;AACA,SAAO;AACT;AAGO,IAAM,kBAAkB,CAAC,QAAsB;AACpD,MAAI,OAAO,WAAW,aAAa;AACjC,WAAO,KAAK,KAAK,UAAU,qBAAqB;AAAA,EAClD;AACF;AAGA,SAAS,WAAW,OAAe,OAAwB;AACzD,MAAI,aAAa;AACjB,WAAS,aAAa,GAAG,aAAa,MAAM,QAAQ,cAAc;AAChE,UAAM,OAAO,MAAM,UAAU;AAC7B,QAAI,CAAC,KAAM;AACX,iBAAa,MAAM,QAAQ,MAAM,UAAU;AAC3C,QAAI,eAAe,GAAI,QAAO;AAC9B;AAAA,EACF;AACA,SAAO;AACT;AAGA,SAAS,aAAa,OAAe,OAAe,WAA+B;AACjF,QAAM,WAAW,MAAM,YAAY;AACnC,QAAM,SAAS,MAAM,YAAY;AACjC,MAAI,cAAc,aAAc,QAAO,SAAS,WAAW,MAAM;AACjE,MAAI,cAAc,QAAS,QAAO,WAAW,UAAU,MAAM;AAC7D,SAAO,SAAS,SAAS,MAAM;AACjC;AAGO,SAAS,kBACd,aACA,OACA,WACA,UACK;AACL,MAAI,CAAC,MAAO,QAAO;AACnB,SAAO,YAAY,OAAO,CAAC,SAAS,aAAa,SAAS,IAAI,GAAG,OAAO,SAAS,CAAC;AACpF;AAOO,SAAS,qBACd,MACA,YACA,UACA,mBACe;AACf,QAAM,SAAS,WAAW,YAAY;AACtC,SAAO,KAAK,KAAK,CAAC,SAAS;AACzB,UAAM,QAAQ,SAAS,IAAI,EAAE,YAAY;AACzC,WAAO,kBAAkB,IAAI,MAAM,UAAU,MAAM,WAAW,MAAM,KAAK,UAAU;AAAA,EACrF,CAAC;AACH;AAGA,SAAS,aAAa,OAAuB;AAC3C,SAAO,MAAM,QAAQ,uBAAuB,MAAM;AACpD;AAMO,SAAS,eAAe,OAAe,OAAe,WAA8B;AACzF,MAAI,CAAC,SAAS,cAAc,QAAS,QAAO;AAC5C,QAAM,QAAQ,IAAI,OAAO,IAAI,aAAa,KAAK,CAAC,KAAK,IAAI;AACzD,SAAO,MAAM,QAAQ,OAAO,iBAAiB;AAC/C;","names":[]}
1
+ {"version":3,"sources":["../src/components/form/Autocomplete/Autocomplete.helpers.ts"],"sourcesContent":["import type { SuggestionType } from './Autocomplete.types';\n\n/** Local filtering strategy. */\nexport type MatchMode = 'startsWith' | 'contains' | 'fuzzy';\n\n/** Default key extractor: id/key/value/label, else the item itself stringified. */\nexport const defaultGetKey = <T,>(item: T): string => {\n if (typeof item === 'string') return item;\n if (typeof item === 'object' && item !== null) {\n const obj = item as Record<string, unknown>;\n return String(obj.id ?? obj.key ?? obj.value ?? obj.label ?? obj);\n }\n return String(item);\n};\n\n/** Default label extractor: label/name/text, else the item itself stringified. */\nexport const defaultGetLabel = <T,>(item: T): string => {\n if (typeof item === 'string') return item;\n if (typeof item === 'object' && item !== null) {\n const obj = item as Record<string, unknown>;\n return String(obj.label ?? obj.name ?? obj.text ?? obj);\n }\n return String(item);\n};\n\n/** Default suggestion-type extractor: reads a `type: 'search' | 'link'` field. */\nexport const defaultGetSuggestionType = <T,>(item: T): SuggestionType | undefined => {\n if (typeof item === 'object' && item !== null) {\n const { type } = item as { type?: unknown };\n if (type === 'search' || type === 'link') return type;\n }\n return undefined;\n};\n\n/** Default URL extractor for `link` suggestions: reads a `url: string` field. */\nexport const defaultGetUrl = <T,>(item: T): string | undefined => {\n if (typeof item === 'object' && item !== null) {\n const { url } = item as { url?: unknown };\n if (typeof url === 'string') return url;\n }\n return undefined;\n};\n\n/** Default link opener: a new tab with `noopener,noreferrer`. SSR-guarded. */\nexport const defaultOpenLink = (url: string): void => {\n if (typeof window !== 'undefined') {\n window.open(url, '_blank', 'noopener,noreferrer');\n }\n};\n\n/** Fuzzy match: every char of `query` appears in `label`, in order. */\nfunction fuzzyMatch(label: string, query: string): boolean {\n let labelIndex = 0;\n for (let queryIndex = 0; queryIndex < query.length; queryIndex++) {\n const char = query[queryIndex];\n if (!char) continue;\n labelIndex = label.indexOf(char, labelIndex);\n if (labelIndex === -1) return false;\n labelIndex++;\n }\n return true;\n}\n\n/** True when `label` matches `query` under the given {@link MatchMode} (case-insensitive). */\nfunction matchesQuery(label: string, query: string, matchMode: MatchMode): boolean {\n const haystack = label.toLowerCase();\n const needle = query.toLowerCase();\n if (matchMode === 'startsWith') return haystack.startsWith(needle);\n if (matchMode === 'fuzzy') return fuzzyMatch(haystack, needle);\n return haystack.includes(needle);\n}\n\n/** Filter `suggestions` by `query` under `matchMode`; an empty query returns all. */\nexport function filterSuggestions<T>(\n suggestions: T[],\n query: string,\n matchMode: MatchMode,\n getLabel: (item: T) => string,\n): T[] {\n if (!query) return suggestions;\n return suggestions.filter((item) => matchesQuery(getLabel(item), query, matchMode));\n}\n\n/**\n * The first suggestion eligible for inline ghost completion: a non-`link` item\n * whose label starts with `inputValue` (case-insensitive) but isn't equal to it.\n * Shared by the ghost-text effect and ArrowRight completion.\n */\nexport function firstGhostSuggestion<T>(\n list: T[],\n inputValue: string,\n getLabel: (item: T) => string,\n getSuggestionType: (item: T) => SuggestionType | undefined,\n): T | undefined {\n const needle = inputValue.toLowerCase();\n return list.find((item) => {\n const label = getLabel(item).toLowerCase();\n return getSuggestionType(item) !== 'link' && label.startsWith(needle) && label !== needle;\n });\n}\n\n/** Escape a user query for safe use inside a `RegExp`. */\nfunction escapeRegExp(value: string): string {\n return value.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n}\n\n/** One run of a highlighted label: plain text, or text the query matched. */\nexport interface HighlightSegment {\n text: string;\n match: boolean;\n}\n\n/**\n * Split `label` into the runs the query matches and the runs between them, in\n * order, for the default suggestion renderer to wrap the matches in `<mark>`.\n * Every occurrence of the query matches, case-insensitively and literally (regex\n * metacharacters are escaped). Fuzzy mode (non-contiguous matches) and an empty\n * query yield the whole label as one unmatched run.\n *\n * Returns TEXT, never markup: a label is caller data (in a consumer, a user's\n * own display name), so the renderer must hand each run to React as a text\n * child, which escapes it. Building an HTML string here and injecting it is how\n * a label of `<img onerror=…>` once ran script in the host page.\n */\nexport function highlightLabel(label: string, query: string, matchMode: MatchMode): HighlightSegment[] {\n if (!query || matchMode === 'fuzzy') return [{ text: label, match: false }];\n // The capturing group makes `split` keep each match, at the odd indices.\n const regex = new RegExp(`(${escapeRegExp(query)})`, 'gi');\n return label\n .split(regex)\n .map((text, index) => ({ text, match: index % 2 === 1 }))\n .filter((segment) => segment.text !== '');\n}\n"],"mappings":";AAMO,IAAM,gBAAgB,CAAK,SAAoB;AACpD,MAAI,OAAO,SAAS,SAAU,QAAO;AACrC,MAAI,OAAO,SAAS,YAAY,SAAS,MAAM;AAC7C,UAAM,MAAM;AACZ,WAAO,OAAO,IAAI,MAAM,IAAI,OAAO,IAAI,SAAS,IAAI,SAAS,GAAG;AAAA,EAClE;AACA,SAAO,OAAO,IAAI;AACpB;AAGO,IAAM,kBAAkB,CAAK,SAAoB;AACtD,MAAI,OAAO,SAAS,SAAU,QAAO;AACrC,MAAI,OAAO,SAAS,YAAY,SAAS,MAAM;AAC7C,UAAM,MAAM;AACZ,WAAO,OAAO,IAAI,SAAS,IAAI,QAAQ,IAAI,QAAQ,GAAG;AAAA,EACxD;AACA,SAAO,OAAO,IAAI;AACpB;AAGO,IAAM,2BAA2B,CAAK,SAAwC;AACnF,MAAI,OAAO,SAAS,YAAY,SAAS,MAAM;AAC7C,UAAM,EAAE,KAAK,IAAI;AACjB,QAAI,SAAS,YAAY,SAAS,OAAQ,QAAO;AAAA,EACnD;AACA,SAAO;AACT;AAGO,IAAM,gBAAgB,CAAK,SAAgC;AAChE,MAAI,OAAO,SAAS,YAAY,SAAS,MAAM;AAC7C,UAAM,EAAE,IAAI,IAAI;AAChB,QAAI,OAAO,QAAQ,SAAU,QAAO;AAAA,EACtC;AACA,SAAO;AACT;AAGO,IAAM,kBAAkB,CAAC,QAAsB;AACpD,MAAI,OAAO,WAAW,aAAa;AACjC,WAAO,KAAK,KAAK,UAAU,qBAAqB;AAAA,EAClD;AACF;AAGA,SAAS,WAAW,OAAe,OAAwB;AACzD,MAAI,aAAa;AACjB,WAAS,aAAa,GAAG,aAAa,MAAM,QAAQ,cAAc;AAChE,UAAM,OAAO,MAAM,UAAU;AAC7B,QAAI,CAAC,KAAM;AACX,iBAAa,MAAM,QAAQ,MAAM,UAAU;AAC3C,QAAI,eAAe,GAAI,QAAO;AAC9B;AAAA,EACF;AACA,SAAO;AACT;AAGA,SAAS,aAAa,OAAe,OAAe,WAA+B;AACjF,QAAM,WAAW,MAAM,YAAY;AACnC,QAAM,SAAS,MAAM,YAAY;AACjC,MAAI,cAAc,aAAc,QAAO,SAAS,WAAW,MAAM;AACjE,MAAI,cAAc,QAAS,QAAO,WAAW,UAAU,MAAM;AAC7D,SAAO,SAAS,SAAS,MAAM;AACjC;AAGO,SAAS,kBACd,aACA,OACA,WACA,UACK;AACL,MAAI,CAAC,MAAO,QAAO;AACnB,SAAO,YAAY,OAAO,CAAC,SAAS,aAAa,SAAS,IAAI,GAAG,OAAO,SAAS,CAAC;AACpF;AAOO,SAAS,qBACd,MACA,YACA,UACA,mBACe;AACf,QAAM,SAAS,WAAW,YAAY;AACtC,SAAO,KAAK,KAAK,CAAC,SAAS;AACzB,UAAM,QAAQ,SAAS,IAAI,EAAE,YAAY;AACzC,WAAO,kBAAkB,IAAI,MAAM,UAAU,MAAM,WAAW,MAAM,KAAK,UAAU;AAAA,EACrF,CAAC;AACH;AAGA,SAAS,aAAa,OAAuB;AAC3C,SAAO,MAAM,QAAQ,uBAAuB,MAAM;AACpD;AAoBO,SAAS,eAAe,OAAe,OAAe,WAA0C;AACrG,MAAI,CAAC,SAAS,cAAc,QAAS,QAAO,CAAC,EAAE,MAAM,OAAO,OAAO,MAAM,CAAC;AAE1E,QAAM,QAAQ,IAAI,OAAO,IAAI,aAAa,KAAK,CAAC,KAAK,IAAI;AACzD,SAAO,MACJ,MAAM,KAAK,EACX,IAAI,CAAC,MAAM,WAAW,EAAE,MAAM,OAAO,QAAQ,MAAM,EAAE,EAAE,EACvD,OAAO,CAAC,YAAY,QAAQ,SAAS,EAAE;AAC5C;","names":[]}
@@ -1,9 +1,3 @@
1
- import {
2
- badgeContentOf,
3
- definedAria,
4
- formatCount,
5
- resolveBadgeProps
6
- } from "./chunk-6C5D6O3D.js";
7
1
  import {
8
2
  buildBadgeContent
9
3
  } from "./chunk-FVPN4YKW.js";
@@ -11,6 +5,12 @@ import {
11
5
  badgeStyles,
12
6
  getAnchorOrigin
13
7
  } from "./chunk-J3ZP6EUS.js";
8
+ import {
9
+ badgeContentOf,
10
+ definedAria,
11
+ formatCount,
12
+ resolveBadgeProps
13
+ } from "./chunk-6C5D6O3D.js";
14
14
  import {
15
15
  CLOSE_DELAY_MS,
16
16
  MOUNT_ANIMATION_MS
@@ -180,4 +180,4 @@ Badge.displayName = "Badge";
180
180
  export {
181
181
  Badge
182
182
  };
183
- //# sourceMappingURL=chunk-EZNTM6PT.js.map
183
+ //# sourceMappingURL=chunk-JYF3HT7M.js.map
@@ -1,3 +1,6 @@
1
+ import {
2
+ ToggleField
3
+ } from "./chunk-LYMAMKJT.js";
1
4
  import {
2
5
  TextField
3
6
  } from "./chunk-EVXFEXBS.js";
@@ -9,10 +12,7 @@ import {
9
12
  } from "./chunk-3PUOLOEP.js";
10
13
  import {
11
14
  CategoryField
12
- } from "./chunk-QPDDS6DQ.js";
13
- import {
14
- ToggleField
15
- } from "./chunk-LYMAMKJT.js";
15
+ } from "./chunk-JJ3VR7WX.js";
16
16
  import {
17
17
  __export
18
18
  } from "./chunk-PZ5AY32C.js";
@@ -30,4 +30,4 @@ __export(Fields_exports, {
30
30
  export {
31
31
  Fields_exports
32
32
  };
33
- //# sourceMappingURL=chunk-H53YNR23.js.map
33
+ //# sourceMappingURL=chunk-K2EHH7TC.js.map
@@ -1,18 +1,10 @@
1
1
  import {
2
2
  useColumnsWithActions,
3
3
  useRenderedColumns
4
- } from "./chunk-HQB5XNK5.js";
4
+ } from "./chunk-2UBFDRL7.js";
5
5
  import {
6
6
  filterRows
7
7
  } from "./chunk-YGQX7BNI.js";
8
- import {
9
- resolveScope,
10
- useScopeConfigChecks
11
- } from "./chunk-LYKV3C7B.js";
12
- import {
13
- computeActiveFilterCount,
14
- defaultSortFields
15
- } from "./chunk-XGOWREVV.js";
16
8
  import {
17
9
  serverDerived,
18
10
  useServerQuery
@@ -20,9 +12,17 @@ import {
20
12
  import {
21
13
  useSelection
22
14
  } from "./chunk-LLZWB32X.js";
15
+ import {
16
+ resolveScope,
17
+ useScopeConfigChecks
18
+ } from "./chunk-LYKV3C7B.js";
23
19
  import {
24
20
  useStateWriters
25
21
  } from "./chunk-U5FOJBLG.js";
22
+ import {
23
+ computeActiveFilterCount,
24
+ defaultSortFields
25
+ } from "./chunk-57ZSQB5V.js";
26
26
  import {
27
27
  emptyViewState
28
28
  } from "./chunk-LHHAYZ55.js";
@@ -172,4 +172,4 @@ function useDataViewsState({
172
172
  export {
173
173
  useDataViewsState
174
174
  };
175
- //# sourceMappingURL=chunk-FOKBP6HR.js.map
175
+ //# sourceMappingURL=chunk-K2JH7QPR.js.map
@@ -0,0 +1,109 @@
1
+ import {
2
+ NOTICE_ACTION_GAP_UNITS,
3
+ NOTICE_STEPS_INDENT_UNITS,
4
+ NOTICE_STEP_GAP_UNITS
5
+ } from "./chunk-55FFONIV.js";
6
+ import {
7
+ NOTICE_VARIANT
8
+ } from "./chunk-L7BRU4UF.js";
9
+ import {
10
+ Alert
11
+ } from "./chunk-L6TCIZFR.js";
12
+ import {
13
+ Button
14
+ } from "./chunk-BKAB4KZK.js";
15
+
16
+ // src/components/feedback/NotificationStatusNotice/NotificationStatusNotice.tsx
17
+ import Box from "@mui/material/Box/index.js";
18
+ import Typography from "@mui/material/Typography/index.js";
19
+ import React from "react";
20
+ import { jsx, jsxs } from "react/jsx-runtime";
21
+ var DEFAULT_TEST_ID = "notification-status-notice";
22
+ var EnableAction = ({
23
+ props,
24
+ testId
25
+ }) => /* @__PURE__ */ jsx(Box, { sx: { mt: NOTICE_ACTION_GAP_UNITS }, children: /* @__PURE__ */ jsx(
26
+ Button,
27
+ {
28
+ variant: "solid",
29
+ color: "primary",
30
+ size: "sm",
31
+ loading: props.pending,
32
+ onClick: props.onEnable,
33
+ dataTestId: `${testId}-enable`,
34
+ children: props.enableLabel
35
+ }
36
+ ) });
37
+ var BlockedSteps = ({
38
+ props,
39
+ testId
40
+ }) => {
41
+ const [open, setOpen] = React.useState(props.defaultStepsOpen ?? false);
42
+ const listId = React.useId();
43
+ return /* @__PURE__ */ jsxs(Box, { sx: { mt: NOTICE_ACTION_GAP_UNITS }, children: [
44
+ /* @__PURE__ */ jsx(
45
+ Button,
46
+ {
47
+ variant: "text",
48
+ color: "primary",
49
+ size: "sm",
50
+ "aria-expanded": open,
51
+ "aria-controls": listId,
52
+ onClick: () => setOpen((was) => !was),
53
+ dataTestId: `${testId}-steps-toggle`,
54
+ children: props.stepsToggleLabel
55
+ }
56
+ ),
57
+ /* @__PURE__ */ jsx(
58
+ Box,
59
+ {
60
+ component: "ol",
61
+ id: listId,
62
+ hidden: !open,
63
+ "data-testid": `${testId}-steps`,
64
+ sx: {
65
+ m: 0,
66
+ mt: NOTICE_STEP_GAP_UNITS,
67
+ pl: NOTICE_STEPS_INDENT_UNITS,
68
+ display: open ? "flex" : "none",
69
+ flexDirection: "column",
70
+ gap: NOTICE_STEP_GAP_UNITS
71
+ },
72
+ children: props.steps.map((step, index) => /* @__PURE__ */ jsx(Typography, { component: "li", variant: "body2", children: step }, `${index}-${step}`))
73
+ }
74
+ )
75
+ ] });
76
+ };
77
+ var NoticeAction = ({
78
+ props,
79
+ testId
80
+ }) => {
81
+ if (props.status === "disabled") return /* @__PURE__ */ jsx(EnableAction, { props, testId });
82
+ if (props.status === "blocked") return /* @__PURE__ */ jsx(BlockedSteps, { props, testId });
83
+ return null;
84
+ };
85
+ var NotificationStatusNotice = React.forwardRef((props, ref) => {
86
+ const testId = props.dataTestId ?? DEFAULT_TEST_ID;
87
+ return /* @__PURE__ */ jsx(
88
+ Alert,
89
+ {
90
+ ref,
91
+ variant: NOTICE_VARIANT[props.status],
92
+ title: props.title,
93
+ description: props.description,
94
+ announce: "polite",
95
+ showIcon: true,
96
+ "data-testid": testId,
97
+ "data-status": props.status,
98
+ className: props.className,
99
+ sx: props.sx,
100
+ children: /* @__PURE__ */ jsx(NoticeAction, { props, testId })
101
+ }
102
+ );
103
+ });
104
+ NotificationStatusNotice.displayName = "NotificationStatusNotice";
105
+
106
+ export {
107
+ NotificationStatusNotice
108
+ };
109
+ //# sourceMappingURL=chunk-K4JRHQMI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/feedback/NotificationStatusNotice/NotificationStatusNotice.tsx"],"sourcesContent":["import Box from '@mui/material/Box/index.js';\nimport Typography from '@mui/material/Typography/index.js';\nimport React from 'react';\n\nimport { Alert } from '../../data-display/Alert/Alert';\nimport { Button } from '../../form/Button/Button';\nimport { NOTICE_VARIANT } from './NotificationStatusNotice.helpers';\nimport {\n NOTICE_ACTION_GAP_UNITS,\n NOTICE_STEP_GAP_UNITS,\n NOTICE_STEPS_INDENT_UNITS,\n} from './NotificationStatusNotice.metrics';\nimport type {\n BlockedNoticeProps,\n DisabledNoticeProps,\n NotificationStatusNoticeProps,\n} from './NotificationStatusNotice.types';\n\nconst DEFAULT_TEST_ID = 'notification-status-notice';\n\nconst EnableAction: React.FC<{ props: DisabledNoticeProps; testId: string }> = ({\n props,\n testId,\n}) => (\n <Box sx={{ mt: NOTICE_ACTION_GAP_UNITS }}>\n <Button\n variant=\"solid\"\n color=\"primary\"\n size=\"sm\"\n // `loading` also disables the button, so a second tap cannot ask twice.\n loading={props.pending}\n onClick={props.onEnable}\n dataTestId={`${testId}-enable`}\n >\n {props.enableLabel}\n </Button>\n </Box>\n);\n\n/**\n * The way back from a refusal: a disclosure over the steps, because the steps\n * are long and most readers of a blocked notice will not act on it right now.\n * A real button with `aria-expanded`, so a screen reader hears that it opens\n * something and whether it has.\n */\nconst BlockedSteps: React.FC<{ props: BlockedNoticeProps; testId: string }> = ({\n props,\n testId,\n}) => {\n const [open, setOpen] = React.useState(props.defaultStepsOpen ?? false);\n const listId = React.useId();\n\n return (\n <Box sx={{ mt: NOTICE_ACTION_GAP_UNITS }}>\n <Button\n variant=\"text\"\n color=\"primary\"\n size=\"sm\"\n aria-expanded={open}\n aria-controls={listId}\n onClick={() => setOpen((was) => !was)}\n dataTestId={`${testId}-steps-toggle`}\n >\n {props.stepsToggleLabel}\n </Button>\n <Box\n component=\"ol\"\n id={listId}\n hidden={!open}\n data-testid={`${testId}-steps`}\n sx={{\n m: 0,\n mt: NOTICE_STEP_GAP_UNITS,\n pl: NOTICE_STEPS_INDENT_UNITS,\n display: open ? 'flex' : 'none',\n flexDirection: 'column',\n gap: NOTICE_STEP_GAP_UNITS,\n }}\n >\n {props.steps.map((step, index) => (\n <Typography key={`${index}-${step}`} component=\"li\" variant=\"body2\">\n {step}\n </Typography>\n ))}\n </Box>\n </Box>\n );\n};\n\nconst NoticeAction: React.FC<{ props: NotificationStatusNoticeProps; testId: string }> = ({\n props,\n testId,\n}) => {\n if (props.status === 'disabled') return <EnableAction props={props} testId={testId} />;\n if (props.status === 'blocked') return <BlockedSteps props={props} testId={testId} />;\n return null;\n};\n\n/**\n * Tells a reader whether this browser will notify them, and gives them the one\n * thing they can do about it: a tap that asks (`disabled`), the steps that\n * undo a refusal (`blocked`), or nothing when nothing can change (`enabled`,\n * `unavailable`).\n *\n * Every word is the host's. The component decides only the shape and how loud\n * each status is — see `NOTICE_VARIANT`.\n */\nexport const NotificationStatusNotice = React.forwardRef<\n HTMLDivElement,\n NotificationStatusNoticeProps\n>((props, ref) => {\n const testId = props.dataTestId ?? DEFAULT_TEST_ID;\n\n return (\n <Alert\n ref={ref}\n variant={NOTICE_VARIANT[props.status]}\n title={props.title}\n description={props.description}\n // A status line, not an interruption: it must not cut across whatever\n // the screen reader is saying about the page it sits on.\n announce=\"polite\"\n showIcon\n data-testid={testId}\n data-status={props.status}\n className={props.className}\n sx={props.sx}\n >\n <NoticeAction props={props} testId={testId} />\n </Alert>\n );\n});\n\nNotificationStatusNotice.displayName = 'NotificationStatusNotice';\n"],"mappings":";;;;;;;;;;;;;;;;AAAA,OAAO,SAAS;AAChB,OAAO,gBAAgB;AACvB,OAAO,WAAW;AAuBd,cA4BA,YA5BA;AAPJ,IAAM,kBAAkB;AAExB,IAAM,eAAyE,CAAC;AAAA,EAC9E;AAAA,EACA;AACF,MACE,oBAAC,OAAI,IAAI,EAAE,IAAI,wBAAwB,GACrC;AAAA,EAAC;AAAA;AAAA,IACC,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,MAAK;AAAA,IAEL,SAAS,MAAM;AAAA,IACf,SAAS,MAAM;AAAA,IACf,YAAY,GAAG,MAAM;AAAA,IAEpB,gBAAM;AAAA;AACT,GACF;AASF,IAAM,eAAwE,CAAC;AAAA,EAC7E;AAAA,EACA;AACF,MAAM;AACJ,QAAM,CAAC,MAAM,OAAO,IAAI,MAAM,SAAS,MAAM,oBAAoB,KAAK;AACtE,QAAM,SAAS,MAAM,MAAM;AAE3B,SACE,qBAAC,OAAI,IAAI,EAAE,IAAI,wBAAwB,GACrC;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,SAAQ;AAAA,QACR,OAAM;AAAA,QACN,MAAK;AAAA,QACL,iBAAe;AAAA,QACf,iBAAe;AAAA,QACf,SAAS,MAAM,QAAQ,CAAC,QAAQ,CAAC,GAAG;AAAA,QACpC,YAAY,GAAG,MAAM;AAAA,QAEpB,gBAAM;AAAA;AAAA,IACT;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC,WAAU;AAAA,QACV,IAAI;AAAA,QACJ,QAAQ,CAAC;AAAA,QACT,eAAa,GAAG,MAAM;AAAA,QACtB,IAAI;AAAA,UACF,GAAG;AAAA,UACH,IAAI;AAAA,UACJ,IAAI;AAAA,UACJ,SAAS,OAAO,SAAS;AAAA,UACzB,eAAe;AAAA,UACf,KAAK;AAAA,QACP;AAAA,QAEC,gBAAM,MAAM,IAAI,CAAC,MAAM,UACtB,oBAAC,cAAoC,WAAU,MAAK,SAAQ,SACzD,kBADc,GAAG,KAAK,IAAI,IAAI,EAEjC,CACD;AAAA;AAAA,IACH;AAAA,KACF;AAEJ;AAEA,IAAM,eAAmF,CAAC;AAAA,EACxF;AAAA,EACA;AACF,MAAM;AACJ,MAAI,MAAM,WAAW,WAAY,QAAO,oBAAC,gBAAa,OAAc,QAAgB;AACpF,MAAI,MAAM,WAAW,UAAW,QAAO,oBAAC,gBAAa,OAAc,QAAgB;AACnF,SAAO;AACT;AAWO,IAAM,2BAA2B,MAAM,WAG5C,CAAC,OAAO,QAAQ;AAChB,QAAM,SAAS,MAAM,cAAc;AAEnC,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,SAAS,eAAe,MAAM,MAAM;AAAA,MACpC,OAAO,MAAM;AAAA,MACb,aAAa,MAAM;AAAA,MAGnB,UAAS;AAAA,MACT,UAAQ;AAAA,MACR,eAAa;AAAA,MACb,eAAa,MAAM;AAAA,MACnB,WAAW,MAAM;AAAA,MACjB,IAAI,MAAM;AAAA,MAEV,8BAAC,gBAAa,OAAc,QAAgB;AAAA;AAAA,EAC9C;AAEJ,CAAC;AAED,yBAAyB,cAAc;","names":[]}
@@ -9,12 +9,12 @@ import {
9
9
  DragHandle,
10
10
  useDragItem
11
11
  } from "./chunk-JCJGJX7V.js";
12
- import {
13
- useDataViewsCopy
14
- } from "./chunk-KHG57NAE.js";
15
12
  import {
16
13
  CARD_ASPECT_RATIOS
17
14
  } from "./chunk-LHHAYZ55.js";
15
+ import {
16
+ useDataViewsCopy
17
+ } from "./chunk-KHG57NAE.js";
18
18
  import {
19
19
  Checkbox
20
20
  } from "./chunk-MGPA6KTM.js";
@@ -263,4 +263,4 @@ function BaseCard(props) {
263
263
  export {
264
264
  BaseCard
265
265
  };
266
- //# sourceMappingURL=chunk-VRKS5K4N.js.map
266
+ //# sourceMappingURL=chunk-K5V3KCFI.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  SaveViewModal
3
- } from "./chunk-YFY3YVV6.js";
3
+ } from "./chunk-7OZBOS75.js";
4
4
  import {
5
5
  ManageViewsDialog
6
- } from "./chunk-FR6AJSMT.js";
6
+ } from "./chunk-DUWF5LUK.js";
7
7
  import {
8
8
  useDataViewsCopy
9
9
  } from "./chunk-KHG57NAE.js";
@@ -121,4 +121,4 @@ export {
121
121
  ViewsMenuSlot,
122
122
  ViewDialogs
123
123
  };
124
- //# sourceMappingURL=chunk-LSJY4LWZ.js.map
124
+ //# sourceMappingURL=chunk-KFZT3PHA.js.map
@@ -1,10 +1,10 @@
1
+ import {
2
+ buildChartContext
3
+ } from "./chunk-BLBOYCOV.js";
1
4
  import {
2
5
  ChartLegendContent,
3
6
  ChartTooltipContent
4
7
  } from "./chunk-M5T3COS2.js";
5
- import {
6
- buildChartContext
7
- } from "./chunk-HKV4MQ2W.js";
8
8
 
9
9
  // src/components/data-display/Chart/chart-renderers.tsx
10
10
  import {
@@ -312,4 +312,4 @@ function renderChartByType(props, theme) {
312
312
  export {
313
313
  renderChartByType
314
314
  };
315
- //# sourceMappingURL=chunk-DVUPIVI2.js.map
315
+ //# sourceMappingURL=chunk-KT6HWAEN.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  GridShell
3
- } from "./chunk-TSFFZ3AH.js";
3
+ } from "./chunk-VEGT5PAD.js";
4
4
  import {
5
5
  useDataViewsState
6
- } from "./chunk-FOKBP6HR.js";
6
+ } from "./chunk-K2JH7QPR.js";
7
7
 
8
8
  // src/components/data-display/DataViews/DataViewsGrid.tsx
9
9
  import { useEffect, useRef } from "react";
@@ -27,4 +27,4 @@ function DataViewsGrid(props) {
27
27
  export {
28
28
  DataViewsGrid
29
29
  };
30
- //# sourceMappingURL=chunk-EYC6ERJJ.js.map
30
+ //# sourceMappingURL=chunk-KUJLZFDW.js.map
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  useAutocomplete
3
- } from "./chunk-362OGE5J.js";
3
+ } from "./chunk-HBRKA67N.js";
4
4
  import {
5
5
  AutocompleteInput,
6
6
  ChipList,
7
7
  DefaultSuggestion,
8
8
  SuggestionListBox
9
- } from "./chunk-6TSP45KC.js";
9
+ } from "./chunk-5NOCXEL2.js";
10
10
  import {
11
11
  defaultGetKey,
12
12
  defaultGetLabel,
13
13
  defaultGetSuggestionType
14
- } from "./chunk-XBHQT4BQ.js";
14
+ } from "./chunk-JXS56EW5.js";
15
15
 
16
16
  // src/components/form/Autocomplete/Autocomplete.tsx
17
17
  import Box from "@mui/material/Box/index.js";
@@ -131,4 +131,4 @@ export {
131
131
  Autocomplete,
132
132
  Autocomplete_default
133
133
  };
134
- //# sourceMappingURL=chunk-65DLYC4S.js.map
134
+ //# sourceMappingURL=chunk-L3R7WPIK.js.map
@@ -0,0 +1,39 @@
1
+ // src/components/feedback/NotificationStatusNotice/NotificationStatusNotice.helpers.ts
2
+ var NOTICE_VARIANT = {
3
+ enabled: "success",
4
+ disabled: "warning",
5
+ blocked: "warning",
6
+ unavailable: "info"
7
+ };
8
+ var platformOf = (userAgent, maxTouchPoints) => {
9
+ if (/iphone|ipad|ipod/i.test(userAgent)) return "ios";
10
+ if (/macintosh/i.test(userAgent) && maxTouchPoints > 1) return "ios";
11
+ if (/android/i.test(userAgent)) return "android";
12
+ return "desktop";
13
+ };
14
+ var FAMILY_PATTERNS = [
15
+ ["samsung", /samsungbrowser/i],
16
+ ["edge", /edg(e|a|ios)?\//i],
17
+ ["opera", /opr\/|opera|opt\//i],
18
+ ["firefox", /firefox\/|fxios\//i],
19
+ ["chrome", /chrome\/|crios\//i],
20
+ ["safari", /safari\//i]
21
+ ];
22
+ var familyOf = (userAgent) => FAMILY_PATTERNS.find(([, pattern]) => pattern.test(userAgent))?.[0] ?? "other";
23
+ var detectNotificationBrowser = (userAgent, maxTouchPoints = 0) => ({
24
+ family: familyOf(userAgent),
25
+ platform: platformOf(userAgent, maxTouchPoints)
26
+ });
27
+ var notificationUnblockSteps = (copy, browser) => {
28
+ if (browser.platform === "ios") return copy.ios;
29
+ if (browser.family === "other") return copy.other;
30
+ const byPlatform = copy[browser.family];
31
+ return byPlatform[browser.platform] ?? copy.other;
32
+ };
33
+
34
+ export {
35
+ NOTICE_VARIANT,
36
+ detectNotificationBrowser,
37
+ notificationUnblockSteps
38
+ };
39
+ //# sourceMappingURL=chunk-L7BRU4UF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/feedback/NotificationStatusNotice/NotificationStatusNotice.helpers.ts"],"sourcesContent":["import type { NotificationUnblockCopy } from '../../../copy';\nimport type { AlertVariant } from '../../data-display/Alert/Alert.types';\n\nimport type {\n NotificationBrowser,\n NotificationBrowserFamily,\n NotificationPlatform,\n NotificationStatus,\n} from './NotificationStatusNotice.types';\n\n/**\n * How loud each status is.\n *\n * `disabled` and `blocked` are warnings because the reader can do something\n * about them and will miss something if they do not. `unavailable` is only\n * information: there is nothing to act on, and painting it amber would ask the\n * reader to fix what they cannot.\n */\nexport const NOTICE_VARIANT: Record<NotificationStatus, AlertVariant> = {\n enabled: 'success',\n disabled: 'warning',\n blocked: 'warning',\n unavailable: 'info',\n};\n\nconst platformOf = (userAgent: string, maxTouchPoints: number): NotificationPlatform => {\n if (/iphone|ipad|ipod/i.test(userAgent)) return 'ios';\n // iPadOS asks for the desktop site and reports itself as a Mac; the touch\n // points are what give it away.\n if (/macintosh/i.test(userAgent) && maxTouchPoints > 1) return 'ios';\n if (/android/i.test(userAgent)) return 'android';\n return 'desktop';\n};\n\n/**\n * Ordered most-specific first: every Chromium browser also says `Chrome`, and\n * every browser on iOS also says `Safari`.\n */\nconst FAMILY_PATTERNS: ReadonlyArray<readonly [NotificationBrowserFamily, RegExp]> = [\n ['samsung', /samsungbrowser/i],\n ['edge', /edg(e|a|ios)?\\//i],\n ['opera', /opr\\/|opera|opt\\//i],\n ['firefox', /firefox\\/|fxios\\//i],\n ['chrome', /chrome\\/|crios\\//i],\n ['safari', /safari\\//i],\n];\n\nconst familyOf = (userAgent: string): NotificationBrowserFamily =>\n FAMILY_PATTERNS.find(([, pattern]) => pattern.test(userAgent))?.[0] ?? 'other';\n\n/**\n * Which browser, on which platform, the reader is using — enough to pick the\n * steps that lift a notification block there. Pure: pass\n * `navigator.userAgent` and `navigator.maxTouchPoints`.\n */\nexport const detectNotificationBrowser = (\n userAgent: string,\n maxTouchPoints = 0,\n): NotificationBrowser => ({\n family: familyOf(userAgent),\n platform: platformOf(userAgent, maxTouchPoints),\n});\n\n/**\n * The steps that lift a notification block in `browser`, from a\n * `NotificationUnblockCopy` pack (`PT_BR_NOTIFICATION_UNBLOCK_COPY`, …).\n *\n * Every iOS browser shares one list — the switch is in the device's Settings,\n * whichever browser installed the app — and a family or platform the pack does\n * not name falls back to its general `other` steps.\n */\nexport const notificationUnblockSteps = (\n copy: NotificationUnblockCopy,\n browser: NotificationBrowser,\n): readonly string[] => {\n if (browser.platform === 'ios') return copy.ios;\n if (browser.family === 'other') return copy.other;\n const byPlatform: Partial<Record<NotificationPlatform, readonly string[]>> = copy[browser.family];\n return byPlatform[browser.platform] ?? copy.other;\n};\n"],"mappings":";AAkBO,IAAM,iBAA2D;AAAA,EACtE,SAAS;AAAA,EACT,UAAU;AAAA,EACV,SAAS;AAAA,EACT,aAAa;AACf;AAEA,IAAM,aAAa,CAAC,WAAmB,mBAAiD;AACtF,MAAI,oBAAoB,KAAK,SAAS,EAAG,QAAO;AAGhD,MAAI,aAAa,KAAK,SAAS,KAAK,iBAAiB,EAAG,QAAO;AAC/D,MAAI,WAAW,KAAK,SAAS,EAAG,QAAO;AACvC,SAAO;AACT;AAMA,IAAM,kBAA+E;AAAA,EACnF,CAAC,WAAW,iBAAiB;AAAA,EAC7B,CAAC,QAAQ,kBAAkB;AAAA,EAC3B,CAAC,SAAS,oBAAoB;AAAA,EAC9B,CAAC,WAAW,oBAAoB;AAAA,EAChC,CAAC,UAAU,mBAAmB;AAAA,EAC9B,CAAC,UAAU,WAAW;AACxB;AAEA,IAAM,WAAW,CAAC,cAChB,gBAAgB,KAAK,CAAC,CAAC,EAAE,OAAO,MAAM,QAAQ,KAAK,SAAS,CAAC,IAAI,CAAC,KAAK;AAOlE,IAAM,4BAA4B,CACvC,WACA,iBAAiB,OACQ;AAAA,EACzB,QAAQ,SAAS,SAAS;AAAA,EAC1B,UAAU,WAAW,WAAW,cAAc;AAChD;AAUO,IAAM,2BAA2B,CACtC,MACA,YACsB;AACtB,MAAI,QAAQ,aAAa,MAAO,QAAO,KAAK;AAC5C,MAAI,QAAQ,WAAW,QAAS,QAAO,KAAK;AAC5C,QAAM,aAAuE,KAAK,QAAQ,MAAM;AAChG,SAAO,WAAW,QAAQ,QAAQ,KAAK,KAAK;AAC9C;","names":[]}
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-6DPAWXZ3.js";
7
7
  import {
8
8
  Button
9
- } from "./chunk-GJUIZ5FN.js";
9
+ } from "./chunk-BKAB4KZK.js";
10
10
  import {
11
11
  Text
12
12
  } from "./chunk-YTYROOLY.js";
@@ -170,4 +170,4 @@ function DataViewsExportMenu({
170
170
  export {
171
171
  DataViewsExportMenu
172
172
  };
173
- //# sourceMappingURL=chunk-O42ZA3TW.js.map
173
+ //# sourceMappingURL=chunk-MCBG6R5A.js.map
@@ -4,13 +4,13 @@ import {
4
4
  import {
5
5
  Dialog,
6
6
  DialogContent
7
- } from "./chunk-D6HDJVQW.js";
7
+ } from "./chunk-YANLN6HP.js";
8
8
  import {
9
9
  default as default2
10
10
  } from "./chunk-WEBEOBN5.js";
11
11
  import {
12
12
  Button
13
- } from "./chunk-GJUIZ5FN.js";
13
+ } from "./chunk-BKAB4KZK.js";
14
14
  import {
15
15
  Text
16
16
  } from "./chunk-YTYROOLY.js";
@@ -69,4 +69,4 @@ function DeleteViewDialog({
69
69
  export {
70
70
  DeleteViewDialog
71
71
  };
72
- //# sourceMappingURL=chunk-MNSW33DU.js.map
72
+ //# sourceMappingURL=chunk-MSS6IU5X.js.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  Chart
3
- } from "./chunk-7TZ6OC5T.js";
3
+ } from "./chunk-OH3YGJT5.js";
4
4
  import {
5
5
  CHART_SEMANTIC_COLORS,
6
6
  specToChartProps
7
- } from "./chunk-R6SBP5M5.js";
7
+ } from "./chunk-GOWBYHYW.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-VLHGBFR6.js.map
49
+ //# sourceMappingURL=chunk-MZQTHSLN.js.map
@@ -1,12 +1,12 @@
1
+ import {
2
+ useMenubarMenus
3
+ } from "./chunk-42VH7N5L.js";
1
4
  import {
2
5
  MenubarToolbar
3
6
  } from "./chunk-SX3V2DLV.js";
4
7
  import {
5
8
  barStyles
6
9
  } from "./chunk-ZU3SWR4I.js";
7
- import {
8
- useMenubarMenus
9
- } from "./chunk-42VH7N5L.js";
10
10
  import {
11
11
  withDefaults
12
12
  } from "./chunk-HPK33ACY.js";
@@ -190,4 +190,4 @@ export {
190
190
  Menubar,
191
191
  MenubarGroup
192
192
  };
193
- //# sourceMappingURL=chunk-XELVDPKL.js.map
193
+ //# sourceMappingURL=chunk-NFAKRI4S.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  renderChartByType
3
- } from "./chunk-DVUPIVI2.js";
3
+ } from "./chunk-KT6HWAEN.js";
4
4
  import {
5
5
  ChartContainer
6
6
  } from "./chunk-M5T3COS2.js";
@@ -104,4 +104,4 @@ var Chart = (props) => {
104
104
  export {
105
105
  Chart
106
106
  };
107
- //# sourceMappingURL=chunk-7TZ6OC5T.js.map
107
+ //# sourceMappingURL=chunk-OH3YGJT5.js.map
@@ -1,10 +1,10 @@
1
- import {
2
- transitionFor
3
- } from "./chunk-N7GE6BGM.js";
4
1
  import {
5
2
  backdropSx,
6
3
  panelSx
7
4
  } from "./chunk-PEWNWKDI.js";
5
+ import {
6
+ transitionFor
7
+ } from "./chunk-N7GE6BGM.js";
8
8
  import {
9
9
  withDefaults
10
10
  } from "./chunk-HPK33ACY.js";
@@ -83,4 +83,4 @@ export {
83
83
  Modal,
84
84
  ModalContent
85
85
  };
86
- //# sourceMappingURL=chunk-ZTZ6S5Q6.js.map
86
+ //# sourceMappingURL=chunk-OXQP3N6X.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  firstGhostSuggestion
3
- } from "./chunk-XBHQT4BQ.js";
3
+ } from "./chunk-JXS56EW5.js";
4
4
 
5
5
  // src/components/form/Autocomplete/Autocomplete.keys.ts
6
6
  function canAcceptGhost(ctx) {
@@ -86,4 +86,4 @@ function handleAutocompleteKey(event, composition, ctx) {
86
86
  export {
87
87
  handleAutocompleteKey
88
88
  };
89
- //# sourceMappingURL=chunk-JDFTIK4L.js.map
89
+ //# sourceMappingURL=chunk-PELRSZFU.js.map
@@ -1,27 +1,27 @@
1
- import {
2
- LightboxOverlay
3
- } from "./chunk-X4GALW6I.js";
4
- import {
5
- LightboxCurrentMedia
6
- } from "./chunk-2DWBJJK6.js";
7
1
  import {
8
2
  resolveLightboxProps
9
3
  } from "./chunk-UOS7DEQZ.js";
10
4
  import {
11
5
  useLightbox
12
6
  } from "./chunk-3EYRRVNT.js";
13
- import {
14
- LightboxCopyProvider
15
- } from "./chunk-TEQYTEM2.js";
16
7
  import {
17
8
  LightboxThumbnails
18
9
  } from "./chunk-Q725MACF.js";
19
10
  import {
20
11
  LightboxStage
21
12
  } from "./chunk-EUHVBR3J.js";
13
+ import {
14
+ LightboxOverlay
15
+ } from "./chunk-X4GALW6I.js";
16
+ import {
17
+ LightboxCopyProvider
18
+ } from "./chunk-TEQYTEM2.js";
22
19
  import {
23
20
  makeTestId
24
21
  } from "./chunk-56SJYTIT.js";
22
+ import {
23
+ LightboxCurrentMedia
24
+ } from "./chunk-2DWBJJK6.js";
25
25
 
26
26
  // src/components/data-display/Lightbox/Lightbox.tsx
27
27
  import Dialog from "@mui/material/Dialog/index.js";
@@ -128,4 +128,4 @@ export {
128
128
  Lightbox,
129
129
  Lightbox_default
130
130
  };
131
- //# sourceMappingURL=chunk-XSJWN3WH.js.map
131
+ //# sourceMappingURL=chunk-PMS3H3OO.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  RAIL_GAP_PX
3
- } from "./chunk-WYDGPJ3Z.js";
3
+ } from "./chunk-CZPU5TW3.js";
4
4
  import {
5
5
  DescriptionItem
6
6
  } from "./chunk-VVXA7T2M.js";
@@ -222,4 +222,4 @@ export {
222
222
  ListCardActions,
223
223
  ListCardTail
224
224
  };
225
- //# sourceMappingURL=chunk-IQ7WZ3RN.js.map
225
+ //# sourceMappingURL=chunk-Q5NAZ7TW.js.map