@12-apps/ui 6.46.1 → 6.47.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 (277) 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/Badge/Badge.js +2 -2
  5. package/dist/_internal/components/data-display/CardKit/use-remove-confirm.js +1 -1
  6. package/dist/_internal/components/data-display/CardKit/use-row-confirm.js +1 -1
  7. package/dist/_internal/components/data-display/Chart/Chart.js +4 -4
  8. package/dist/_internal/components/data-display/Chart/SpecChart.js +7 -7
  9. package/dist/_internal/components/data-display/Chart/chart-context.js +2 -2
  10. package/dist/_internal/components/data-display/Chart/chart-renderers.js +3 -3
  11. package/dist/_internal/components/data-display/Chart/chart-spec.js +2 -2
  12. package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +29 -29
  13. package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +38 -38
  14. package/dist/_internal/components/data-display/DataViews/ManageViewsDialog.js +1 -1
  15. package/dist/_internal/components/data-display/DataViews/SaveViewModal.js +3 -3
  16. package/dist/_internal/components/data-display/DataViews/base-list-card-geometry.js +4 -4
  17. package/dist/_internal/components/data-display/DataViews/base-list-card-slots.js +3 -3
  18. package/dist/_internal/components/data-display/DataViews/base-list-card.js +7 -7
  19. package/dist/_internal/components/data-display/DataViews/data-views-category-pill.js +9 -9
  20. package/dist/_internal/components/data-display/DataViews/data-views-display-panel.js +1 -1
  21. package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +12 -12
  22. package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +5 -5
  23. package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +26 -26
  24. package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +14 -14
  25. package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +12 -12
  26. package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +13 -13
  27. package/dist/_internal/components/data-display/DataViews/data-views-range-pill.js +2 -2
  28. package/dist/_internal/components/data-display/DataViews/data-views-scope-tabs.js +2 -2
  29. package/dist/_internal/components/data-display/DataViews/data-views-shell-toolbar.js +2 -2
  30. package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +5 -5
  31. package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +2 -2
  32. package/dist/_internal/components/data-display/DataViews/list-card-rails.js +2 -2
  33. package/dist/_internal/components/data-display/DataViews/use-data-views-state.js +2 -2
  34. package/dist/_internal/components/data-display/FleetMap/FleetBody.js +11 -11
  35. package/dist/_internal/components/data-display/FleetMap/FleetCanvas.js +8 -8
  36. package/dist/_internal/components/data-display/FleetMap/FleetMap.js +12 -12
  37. package/dist/_internal/components/data-display/FleetMap/FleetRoster.js +2 -2
  38. package/dist/_internal/components/data-display/HoverCard/HoverCard.js +3 -3
  39. package/dist/_internal/components/data-display/Lightbox/Lightbox.js +3 -3
  40. package/dist/_internal/components/data-display/MapPreview/MapLayers.js +2 -2
  41. package/dist/_internal/components/data-display/MapPreview/MapPreview.js +7 -7
  42. package/dist/_internal/components/data-display/Progress/Progress.js +2 -2
  43. package/dist/_internal/components/data-display/Sheet/Sheet.js +4 -4
  44. package/dist/_internal/components/data-display/Table/Table.js +3 -3
  45. package/dist/_internal/components/data-display/index.js +42 -42
  46. package/dist/_internal/components/feedback/TutorialOverlay/TutorialOverlay.js +2 -2
  47. package/dist/_internal/components/feedback/index.js +5 -5
  48. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.hooks.js +4 -4
  49. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.js +7 -7
  50. package/dist/_internal/components/form/Autocomplete/Autocomplete.js +2 -2
  51. package/dist/_internal/components/form/Calendar/Calendar.hooks.js +2 -2
  52. package/dist/_internal/components/form/Calendar/Calendar.js +3 -3
  53. package/dist/_internal/components/form/CategorySelect/CategoryPanel.js +4 -4
  54. package/dist/_internal/components/form/CategorySelect/CategoryPanelList.js +3 -3
  55. package/dist/_internal/components/form/CategorySelect/CategoryRows.js +2 -2
  56. package/dist/_internal/components/form/CategorySelect/CategorySelect.js +8 -8
  57. package/dist/_internal/components/form/CepField/CepField.js +3 -3
  58. package/dist/_internal/components/form/CodeEditor/CodeEditor.js +2 -2
  59. package/dist/_internal/components/form/Command/Command.js +2 -2
  60. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.js +5 -5
  61. package/dist/_internal/components/form/Input/Input.js +2 -2
  62. package/dist/_internal/components/form/NumberField/NumberField.js +3 -3
  63. package/dist/_internal/components/form/Select/Select.js +5 -2
  64. package/dist/_internal/components/form/Select/Select.metrics.js +5 -1
  65. package/dist/_internal/components/form/Select/Select.searchable.js +28 -0
  66. package/dist/_internal/components/form/Select/Select.searchable.js.map +1 -0
  67. package/dist/_internal/components/form/Select/Select.styles.js +25 -0
  68. package/dist/_internal/components/form/Select/Select.styles.js.map +1 -0
  69. package/dist/_internal/components/form/index.js +32 -29
  70. package/dist/_internal/components/form/total-form/Fields/CategoryField.js +9 -9
  71. package/dist/_internal/components/form/total-form/Fields/CepField.js +4 -4
  72. package/dist/_internal/components/form/total-form/Fields/SelectField.js +6 -3
  73. package/dist/_internal/components/form/total-form/Fields/TextField.js +3 -3
  74. package/dist/_internal/components/form/total-form/Fields/index.js +20 -18
  75. package/dist/_internal/components/index.js +85 -83
  76. package/dist/_internal/components/navigation/AppHeader/AppHeader.details.js +4 -4
  77. package/dist/_internal/components/navigation/SectionNav/SectionNav.bar.js +6 -6
  78. package/dist/_internal/components/navigation/SectionNav/SectionNav.js +8 -8
  79. package/dist/_internal/components/navigation/SectionNav/SectionNav.parts.js +3 -3
  80. package/dist/_internal/components/navigation/SectionNav/SectionNav.primary.js +4 -4
  81. package/dist/_internal/components/navigation/SectionNav/SectionNav.rail.js +4 -4
  82. package/dist/_internal/components/navigation/SectionNav/SectionNav.sheet.js +4 -4
  83. package/dist/_internal/components/navigation/index.js +12 -12
  84. package/dist/_internal/user-avatar/user-avatar.js +4 -4
  85. package/dist/charts.js +10 -10
  86. package/dist/{chunk-A64MQ7GW.js → chunk-2LSJTQIL.js} +2 -2
  87. package/dist/{chunk-EU76OQGR.js → chunk-2NYVMLFQ.js} +2 -2
  88. package/dist/{chunk-CJPP4OUK.js → chunk-2YKTB2IZ.js} +2 -2
  89. package/dist/{chunk-ISW5K72V.js → chunk-2ZRZTGWP.js} +5 -5
  90. package/dist/{chunk-LQRUTHJY.js → chunk-3CDU7DLD.js} +5 -5
  91. package/dist/{chunk-72FPUWD6.js → chunk-3IPQANXY.js} +2 -2
  92. package/dist/{chunk-56QYSVLI.js → chunk-3WAAL3KN.js} +7 -7
  93. package/dist/{chunk-JO4UMHWR.js → chunk-43UFSKEK.js} +3 -3
  94. package/dist/{chunk-N2XQKTXX.js → chunk-5NFQKL7C.js} +5 -5
  95. package/dist/{chunk-PCHUIDMT.js → chunk-5OEC546C.js} +2 -2
  96. package/dist/{chunk-JBGCGYEC.js → chunk-6EJF3BUR.js} +4 -4
  97. package/dist/{chunk-P3XEF26U.js → chunk-A5ODDTGU.js} +3 -3
  98. package/dist/{chunk-RVOYCPKF.js → chunk-ACU7LEFG.js} +5 -5
  99. package/dist/{chunk-OARM5RX4.js → chunk-AQC67NQZ.js} +5 -5
  100. package/dist/{chunk-QQUNZH3L.js → chunk-AS2PWQIU.js} +3 -3
  101. package/dist/chunk-AV6NNCRO.js +111 -0
  102. package/dist/chunk-AV6NNCRO.js.map +1 -0
  103. package/dist/{chunk-V54LG3QG.js → chunk-B3QWQG62.js} +2 -2
  104. package/dist/{chunk-J2JWWGMT.js → chunk-BPOVRMVS.js} +7 -7
  105. package/dist/{chunk-V4R6Q5ED.js → chunk-CGBUWNNQ.js} +11 -11
  106. package/dist/{chunk-ZCEXSYAJ.js → chunk-CGL7R37P.js} +4 -4
  107. package/dist/{chunk-GYZUJ7HH.js → chunk-CO4MSWTV.js} +5 -5
  108. package/dist/chunk-EISPWFYO.js +146 -0
  109. package/dist/chunk-EISPWFYO.js.map +1 -0
  110. package/dist/{chunk-PGPPN63I.js → chunk-EMEXXAQI.js} +2 -2
  111. package/dist/{chunk-2HPNN5XA.js → chunk-FIF4RQ4S.js} +2 -2
  112. package/dist/{chunk-T6HVNVFI.js → chunk-FQT4C5R4.js} +9 -9
  113. package/dist/{chunk-BWURMQWZ.js → chunk-FS7UVKEE.js} +4 -4
  114. package/dist/{chunk-LUPHXDEU.js → chunk-FVKBP3UX.js} +2 -2
  115. package/dist/{chunk-TPPFWETI.js → chunk-G6II7SVX.js} +7 -7
  116. package/dist/{chunk-LV2SZFXK.js → chunk-GMC3F43L.js} +7 -7
  117. package/dist/{chunk-R6SBP5M5.js → chunk-GOWBYHYW.js} +4 -4
  118. package/dist/{chunk-AA7QTFMB.js → chunk-HGRC635A.js} +2 -2
  119. package/dist/{chunk-TE3XYCX7.js → chunk-IHO2O44S.js} +5 -5
  120. package/dist/{chunk-VPH47OIV.js → chunk-IKZSQKOE.js} +2 -2
  121. package/dist/{chunk-IPI3OU2P.js → chunk-IV7G7NK3.js} +5 -5
  122. package/dist/{chunk-JTWRI4WD.js → chunk-IX3U3XPP.js} +14 -14
  123. package/dist/{chunk-WYXNFH5Y.js → chunk-IYC7NPX7.js} +14 -2
  124. package/dist/{chunk-WYXNFH5Y.js.map → chunk-IYC7NPX7.js.map} +1 -1
  125. package/dist/{chunk-HC2AO3RT.js → chunk-J44PPGBF.js} +2 -2
  126. package/dist/{chunk-V2GHNHP6.js → chunk-JAHWFJCW.js} +4 -4
  127. package/dist/{chunk-HAFLKWWU.js → chunk-JQ6HDXKA.js} +2 -2
  128. package/dist/{chunk-SPZAEMGW.js → chunk-JWJ77IMK.js} +4 -4
  129. package/dist/{chunk-HYNDC3FP.js → chunk-JYLOCXMV.js} +5 -5
  130. package/dist/{chunk-ILKNYENU.js → chunk-LB27LKG3.js} +4 -4
  131. package/dist/{chunk-IWYTOCCV.js → chunk-LHTEAPYG.js} +4 -4
  132. package/dist/{chunk-TPVSHO75.js → chunk-NLEO5YI4.js} +7 -7
  133. package/dist/{chunk-K45ML7M7.js → chunk-NU55QUMO.js} +2 -2
  134. package/dist/{chunk-KN3WYEH2.js → chunk-NYHZUVLC.js} +4 -4
  135. package/dist/{chunk-U2UT2NDH.js → chunk-OBID7SOG.js} +2 -2
  136. package/dist/{chunk-UUJ7J7NE.js → chunk-PP7CDKO4.js} +2 -2
  137. package/dist/{chunk-6L2FKTBO.js → chunk-PQS3IPMD.js} +10 -91
  138. package/dist/chunk-PQS3IPMD.js.map +1 -0
  139. package/dist/{chunk-PARTZ7XI.js → chunk-R53ZOW4B.js} +2 -2
  140. package/dist/{chunk-BWXPO2SE.js → chunk-S22XIXLL.js} +3 -3
  141. package/dist/{chunk-QL7NPQOP.js → chunk-SAJ5H5VC.js} +2 -2
  142. package/dist/{chunk-6GAZAJXB.js → chunk-SDKOOVEX.js} +4 -4
  143. package/dist/{chunk-ETCS6OBJ.js → chunk-THCDUP6Q.js} +9 -9
  144. package/dist/{chunk-CMFJQH6A.js → chunk-UG636FEL.js} +4 -4
  145. package/dist/{chunk-NFA7STJA.js → chunk-UILH4OAZ.js} +5 -5
  146. package/dist/{chunk-X5F4FRH7.js → chunk-VNOXUWK7.js} +4 -4
  147. package/dist/{chunk-MD3ND6DT.js → chunk-VU63PDWW.js} +3 -3
  148. package/dist/{chunk-RBLBXJR7.js → chunk-WAD5VL6B.js} +7 -7
  149. package/dist/{chunk-4MGFUPQT.js → chunk-WC3W36AM.js} +7 -7
  150. package/dist/{chunk-Z3L2EGXW.js → chunk-WDAEYLT5.js} +2 -2
  151. package/dist/{chunk-BEX3FLHB.js → chunk-X3C3VTYS.js} +2 -2
  152. package/dist/{chunk-NFTFP6WO.js → chunk-XNTDEQEB.js} +5 -5
  153. package/dist/{chunk-TWVRPT7J.js → chunk-XXL4PM4M.js} +2 -2
  154. package/dist/{chunk-6OQHZVK6.js → chunk-XXNLBO4Q.js} +3 -3
  155. package/dist/{chunk-TNQDSTIA.js → chunk-Y6C4MYZE.js} +7 -7
  156. package/dist/{chunk-NRKAJHBB.js → chunk-YRACC6BB.js} +4 -4
  157. package/dist/{chunk-RSQYWGMU.js → chunk-YTIUFMRM.js} +5 -5
  158. package/dist/{chunk-FQ637IDM.js → chunk-YXU45AVO.js} +5 -5
  159. package/dist/{chunk-YDU2YPQA.js → chunk-ZVJSY2OV.js} +3 -3
  160. package/dist/data-display/Avatar.js +3 -3
  161. package/dist/data-display/Badge.js +2 -2
  162. package/dist/data-display/CardKit.js +10 -10
  163. package/dist/data-display/Chart.js +10 -10
  164. package/dist/data-display/DataViews.js +55 -55
  165. package/dist/data-display/FleetMap.js +12 -12
  166. package/dist/data-display/HoverCard.js +3 -3
  167. package/dist/data-display/Lightbox.js +3 -3
  168. package/dist/data-display/MapPreview.js +7 -7
  169. package/dist/data-display/Progress.js +2 -2
  170. package/dist/data-display/Sheet.js +4 -4
  171. package/dist/data-display/Table.js +3 -3
  172. package/dist/feedback/ConfirmAction.js +3 -3
  173. package/dist/feedback/TutorialOverlay.js +2 -2
  174. package/dist/form/AddressAutocomplete.js +7 -7
  175. package/dist/form/Autocomplete.js +2 -2
  176. package/dist/form/Calendar.js +3 -3
  177. package/dist/form/CategorySelect.js +8 -8
  178. package/dist/form/CepField.js +3 -3
  179. package/dist/form/CodeEditor.js +2 -2
  180. package/dist/form/Command.js +2 -2
  181. package/dist/form/DateRangePicker.js +10 -10
  182. package/dist/form/Input.js +2 -2
  183. package/dist/form/NumberField.js +3 -3
  184. package/dist/form/Select.js +5 -2
  185. package/dist/form/total-form.js +20 -18
  186. package/dist/native/form/Select.js.map +1 -1
  187. package/dist/navigation/AppHeader.js +4 -4
  188. package/dist/navigation/SectionNav.js +8 -8
  189. package/dist/types/components/form/Select/Select.base.d.ts +15 -0
  190. package/dist/types/components/form/Select/Select.base.d.ts.map +1 -1
  191. package/dist/types/components/form/Select/Select.d.ts +5 -0
  192. package/dist/types/components/form/Select/Select.d.ts.map +1 -1
  193. package/dist/types/components/form/Select/Select.metrics.d.ts +20 -0
  194. package/dist/types/components/form/Select/Select.metrics.d.ts.map +1 -1
  195. package/dist/types/components/form/Select/Select.searchable.d.ts +23 -0
  196. package/dist/types/components/form/Select/Select.searchable.d.ts.map +1 -0
  197. package/dist/types/components/form/Select/Select.styles.d.ts +27 -0
  198. package/dist/types/components/form/Select/Select.styles.d.ts.map +1 -0
  199. package/dist/types-native/components/form/Select/Select.base.d.ts +15 -0
  200. package/dist/types-native/components/form/Select/Select.base.d.ts.map +1 -1
  201. package/dist/types-native/components/form/Select/Select.metrics.d.ts +20 -0
  202. package/dist/types-native/components/form/Select/Select.metrics.d.ts.map +1 -1
  203. package/dist/user-avatar.js +4 -4
  204. package/package.json +1 -1
  205. package/src/components/form/Select/Select.base.ts +15 -0
  206. package/src/components/form/Select/Select.md +31 -1
  207. package/src/components/form/Select/Select.metrics.ts +22 -0
  208. package/src/components/form/Select/Select.searchable.tsx +203 -0
  209. package/src/components/form/Select/Select.styles.tsx +195 -0
  210. package/src/components/form/Select/Select.tsx +20 -166
  211. package/dist/chunk-6L2FKTBO.js.map +0 -1
  212. /package/dist/{chunk-A64MQ7GW.js.map → chunk-2LSJTQIL.js.map} +0 -0
  213. /package/dist/{chunk-EU76OQGR.js.map → chunk-2NYVMLFQ.js.map} +0 -0
  214. /package/dist/{chunk-CJPP4OUK.js.map → chunk-2YKTB2IZ.js.map} +0 -0
  215. /package/dist/{chunk-ISW5K72V.js.map → chunk-2ZRZTGWP.js.map} +0 -0
  216. /package/dist/{chunk-LQRUTHJY.js.map → chunk-3CDU7DLD.js.map} +0 -0
  217. /package/dist/{chunk-72FPUWD6.js.map → chunk-3IPQANXY.js.map} +0 -0
  218. /package/dist/{chunk-56QYSVLI.js.map → chunk-3WAAL3KN.js.map} +0 -0
  219. /package/dist/{chunk-JO4UMHWR.js.map → chunk-43UFSKEK.js.map} +0 -0
  220. /package/dist/{chunk-N2XQKTXX.js.map → chunk-5NFQKL7C.js.map} +0 -0
  221. /package/dist/{chunk-PCHUIDMT.js.map → chunk-5OEC546C.js.map} +0 -0
  222. /package/dist/{chunk-JBGCGYEC.js.map → chunk-6EJF3BUR.js.map} +0 -0
  223. /package/dist/{chunk-P3XEF26U.js.map → chunk-A5ODDTGU.js.map} +0 -0
  224. /package/dist/{chunk-RVOYCPKF.js.map → chunk-ACU7LEFG.js.map} +0 -0
  225. /package/dist/{chunk-OARM5RX4.js.map → chunk-AQC67NQZ.js.map} +0 -0
  226. /package/dist/{chunk-QQUNZH3L.js.map → chunk-AS2PWQIU.js.map} +0 -0
  227. /package/dist/{chunk-V54LG3QG.js.map → chunk-B3QWQG62.js.map} +0 -0
  228. /package/dist/{chunk-J2JWWGMT.js.map → chunk-BPOVRMVS.js.map} +0 -0
  229. /package/dist/{chunk-V4R6Q5ED.js.map → chunk-CGBUWNNQ.js.map} +0 -0
  230. /package/dist/{chunk-ZCEXSYAJ.js.map → chunk-CGL7R37P.js.map} +0 -0
  231. /package/dist/{chunk-GYZUJ7HH.js.map → chunk-CO4MSWTV.js.map} +0 -0
  232. /package/dist/{chunk-PGPPN63I.js.map → chunk-EMEXXAQI.js.map} +0 -0
  233. /package/dist/{chunk-2HPNN5XA.js.map → chunk-FIF4RQ4S.js.map} +0 -0
  234. /package/dist/{chunk-T6HVNVFI.js.map → chunk-FQT4C5R4.js.map} +0 -0
  235. /package/dist/{chunk-BWURMQWZ.js.map → chunk-FS7UVKEE.js.map} +0 -0
  236. /package/dist/{chunk-LUPHXDEU.js.map → chunk-FVKBP3UX.js.map} +0 -0
  237. /package/dist/{chunk-TPPFWETI.js.map → chunk-G6II7SVX.js.map} +0 -0
  238. /package/dist/{chunk-LV2SZFXK.js.map → chunk-GMC3F43L.js.map} +0 -0
  239. /package/dist/{chunk-R6SBP5M5.js.map → chunk-GOWBYHYW.js.map} +0 -0
  240. /package/dist/{chunk-AA7QTFMB.js.map → chunk-HGRC635A.js.map} +0 -0
  241. /package/dist/{chunk-TE3XYCX7.js.map → chunk-IHO2O44S.js.map} +0 -0
  242. /package/dist/{chunk-VPH47OIV.js.map → chunk-IKZSQKOE.js.map} +0 -0
  243. /package/dist/{chunk-IPI3OU2P.js.map → chunk-IV7G7NK3.js.map} +0 -0
  244. /package/dist/{chunk-JTWRI4WD.js.map → chunk-IX3U3XPP.js.map} +0 -0
  245. /package/dist/{chunk-HC2AO3RT.js.map → chunk-J44PPGBF.js.map} +0 -0
  246. /package/dist/{chunk-V2GHNHP6.js.map → chunk-JAHWFJCW.js.map} +0 -0
  247. /package/dist/{chunk-HAFLKWWU.js.map → chunk-JQ6HDXKA.js.map} +0 -0
  248. /package/dist/{chunk-SPZAEMGW.js.map → chunk-JWJ77IMK.js.map} +0 -0
  249. /package/dist/{chunk-HYNDC3FP.js.map → chunk-JYLOCXMV.js.map} +0 -0
  250. /package/dist/{chunk-ILKNYENU.js.map → chunk-LB27LKG3.js.map} +0 -0
  251. /package/dist/{chunk-IWYTOCCV.js.map → chunk-LHTEAPYG.js.map} +0 -0
  252. /package/dist/{chunk-TPVSHO75.js.map → chunk-NLEO5YI4.js.map} +0 -0
  253. /package/dist/{chunk-K45ML7M7.js.map → chunk-NU55QUMO.js.map} +0 -0
  254. /package/dist/{chunk-KN3WYEH2.js.map → chunk-NYHZUVLC.js.map} +0 -0
  255. /package/dist/{chunk-U2UT2NDH.js.map → chunk-OBID7SOG.js.map} +0 -0
  256. /package/dist/{chunk-UUJ7J7NE.js.map → chunk-PP7CDKO4.js.map} +0 -0
  257. /package/dist/{chunk-PARTZ7XI.js.map → chunk-R53ZOW4B.js.map} +0 -0
  258. /package/dist/{chunk-BWXPO2SE.js.map → chunk-S22XIXLL.js.map} +0 -0
  259. /package/dist/{chunk-QL7NPQOP.js.map → chunk-SAJ5H5VC.js.map} +0 -0
  260. /package/dist/{chunk-6GAZAJXB.js.map → chunk-SDKOOVEX.js.map} +0 -0
  261. /package/dist/{chunk-ETCS6OBJ.js.map → chunk-THCDUP6Q.js.map} +0 -0
  262. /package/dist/{chunk-CMFJQH6A.js.map → chunk-UG636FEL.js.map} +0 -0
  263. /package/dist/{chunk-NFA7STJA.js.map → chunk-UILH4OAZ.js.map} +0 -0
  264. /package/dist/{chunk-X5F4FRH7.js.map → chunk-VNOXUWK7.js.map} +0 -0
  265. /package/dist/{chunk-MD3ND6DT.js.map → chunk-VU63PDWW.js.map} +0 -0
  266. /package/dist/{chunk-RBLBXJR7.js.map → chunk-WAD5VL6B.js.map} +0 -0
  267. /package/dist/{chunk-4MGFUPQT.js.map → chunk-WC3W36AM.js.map} +0 -0
  268. /package/dist/{chunk-Z3L2EGXW.js.map → chunk-WDAEYLT5.js.map} +0 -0
  269. /package/dist/{chunk-BEX3FLHB.js.map → chunk-X3C3VTYS.js.map} +0 -0
  270. /package/dist/{chunk-NFTFP6WO.js.map → chunk-XNTDEQEB.js.map} +0 -0
  271. /package/dist/{chunk-TWVRPT7J.js.map → chunk-XXL4PM4M.js.map} +0 -0
  272. /package/dist/{chunk-6OQHZVK6.js.map → chunk-XXNLBO4Q.js.map} +0 -0
  273. /package/dist/{chunk-TNQDSTIA.js.map → chunk-Y6C4MYZE.js.map} +0 -0
  274. /package/dist/{chunk-NRKAJHBB.js.map → chunk-YRACC6BB.js.map} +0 -0
  275. /package/dist/{chunk-RSQYWGMU.js.map → chunk-YTIUFMRM.js.map} +0 -0
  276. /package/dist/{chunk-FQ637IDM.js.map → chunk-YXU45AVO.js.map} +0 -0
  277. /package/dist/{chunk-YDU2YPQA.js.map → chunk-ZVJSY2OV.js.map} +0 -0
@@ -1,163 +1,15 @@
1
- import FormControl from '@mui/material/FormControl/index.js';
2
1
  import FormHelperText from '@mui/material/FormHelperText/index.js';
3
2
  import InputLabel from '@mui/material/InputLabel/index.js';
4
3
  import MenuItem from '@mui/material/MenuItem/index.js';
5
4
  import MuiSelect from '@mui/material/Select/index.js';
6
- import { alpha, type CSSObject, keyframes, styled, type Theme } from '@mui/material/styles/index.js';
7
5
  import React from 'react';
8
6
 
9
- import {
10
- SELECT_BORDER,
11
- SELECT_GLASS,
12
- SELECT_GLOW,
13
- SELECT_GRADIENT,
14
- SELECT_PULSE,
15
- selectInputSize,
16
- } from './Select.metrics';
7
+ import { SearchableSelect, shouldSearch } from './Select.searchable';
8
+ import { formControlSize, SelectFieldControl } from './Select.styles';
17
9
  import type { SelectProps } from './Select.types';
18
10
 
19
11
  import { splitTestId } from '../../../platform/test-id';
20
- import { fieldEdge } from '../../../tokens/field-edge';
21
- import { asFieldSize, FIELD_BORDER_WIDTH, fieldControlStyles, fieldHeight } from '../../../tokens/field-height';
22
- import type { SizeValue } from '../../../tokens/vocabulary';
23
- import { fieldRadius } from '../../../tokens/field-radius';
24
- import { absoluteInk } from '../../../tokens/ink';
25
- import { rem } from '../../../tokens/relative';
26
-
27
- // Define pulse animation
28
- const pulseAnimation = (theme: Theme) => keyframes`
29
- 0% {
30
- box-shadow: 0 0 0 0 currentColor;
31
- opacity: 1;
32
- }
33
- 70% {
34
- box-shadow: 0 0 0 ${rem(theme, SELECT_PULSE.spread)} currentColor;
35
- opacity: 0;
36
- }
37
- 100% {
38
- box-shadow: 0 0 0 0 currentColor;
39
- opacity: 0;
40
- }
41
- `;
42
-
43
- /** Glow ring on the outlined input, keyed off the `glow` prop. */
44
- const glowStyles = (theme: Theme): CSSObject => ({
45
- '& .MuiOutlinedInput-root': {
46
- boxShadow: `0 0 ${rem(theme, SELECT_GLOW.rest.blur)} ${alpha(theme.palette.primary.main, SELECT_GLOW.rest.alpha)}`,
47
- '&.Mui-focused': {
48
- boxShadow: `0 0 ${rem(theme, SELECT_GLOW.focused.blur)} ${alpha(theme.palette.primary.main, SELECT_GLOW.focused.alpha)}`,
49
- },
50
- },
51
- });
52
-
53
- /** Pulsing halo behind the control, keyed off the `pulse` prop. */
54
- const pulseStyles = (theme: Theme, size: SizeValue): CSSObject => ({
55
- '&::after': {
56
- content: '""',
57
- position: 'absolute',
58
- top: '50%',
59
- left: '0',
60
- right: '0',
61
- height: fieldHeight(theme, size),
62
- transform: 'translateY(-50%)',
63
- borderRadius: fieldRadius(theme),
64
- backgroundColor: theme.palette.primary.main,
65
- opacity: SELECT_PULSE.opacity,
66
- animation: `${pulseAnimation(theme)} ${SELECT_PULSE.ms / 1000}s infinite`,
67
- pointerEvents: 'none',
68
- zIndex: -1,
69
- },
70
- });
71
-
72
- /** `glass` variant: translucent, blurred background. */
73
- const glassVariant = (theme: Theme): CSSObject => ({
74
- backgroundColor: alpha(theme.palette.background.paper, SELECT_GLASS.background.rest),
75
- backdropFilter: `blur(${rem(theme, SELECT_GLASS.blur)})`,
76
- // `SELECT_BORDER.rest` is the field hairline.
77
- border: `${FIELD_BORDER_WIDTH}px solid ${fieldEdge(theme)}`,
78
- '& fieldset': { border: 'none' },
79
- '&:hover': {
80
- backgroundColor: alpha(theme.palette.background.paper, SELECT_GLASS.background.hover),
81
- borderColor: alpha(theme.palette.primary.main, SELECT_GLASS.hoverBorderAlpha),
82
- },
83
- '&.Mui-focused': {
84
- backgroundColor: alpha(theme.palette.background.paper, SELECT_GLASS.background.focused),
85
- borderColor: theme.palette.primary.main,
86
- boxShadow: `0 0 0 ${rem(theme, SELECT_GLASS.focusRing.width)} ${alpha(theme.palette.primary.main, SELECT_GLASS.focusRing.alpha)}`,
87
- },
88
- });
89
-
90
- /** `gradient` variant: gradient fill with a masked gradient border. */
91
- const gradientFill = (theme: Theme, strength: number): string =>
92
- `linear-gradient(${SELECT_GRADIENT.angleDeg}deg, ${alpha(theme.palette.primary.main, strength)}, ${alpha(theme.palette.secondary.main, strength)})`;
93
-
94
- const gradientVariant = (theme: Theme): CSSObject => ({
95
- background: gradientFill(theme, SELECT_GRADIENT.fill.rest),
96
- border: `${rem(theme, SELECT_GRADIENT.borderWidth)} solid transparent`,
97
- backgroundOrigin: 'border-box',
98
- backgroundClip: 'padding-box, border-box',
99
- position: 'relative',
100
- '& fieldset': { border: 'none' },
101
- '&::before': {
102
- content: '""',
103
- position: 'absolute',
104
- top: 0,
105
- left: 0,
106
- right: 0,
107
- bottom: 0,
108
- borderRadius: 'inherit',
109
- background: `linear-gradient(${SELECT_GRADIENT.angleDeg}deg, ${theme.palette.primary.main}, ${theme.palette.secondary.main})`,
110
- mask: `linear-gradient(${absoluteInk(theme).white} 0 0) content-box, linear-gradient(${absoluteInk(theme).white} 0 0)`,
111
- maskComposite: 'exclude',
112
- padding: rem(theme, SELECT_GRADIENT.borderWidth),
113
- zIndex: -1,
114
- },
115
- '&:hover': {
116
- background: gradientFill(theme, SELECT_GRADIENT.fill.hover),
117
- },
118
- '&.Mui-focused': {
119
- background: gradientFill(theme, SELECT_GRADIENT.fill.focused),
120
- '&::before': {
121
- background: `linear-gradient(${SELECT_GRADIENT.angleDeg}deg, ${theme.palette.primary.dark}, ${theme.palette.secondary.dark})`,
122
- },
123
- },
124
- });
125
-
126
- /** `default` variant: standard outlined borders with hover/focus/error states. */
127
- const defaultVariant = (theme: Theme): CSSObject => ({
128
- '& fieldset': { borderColor: fieldEdge(theme) },
129
- '&:hover fieldset': { borderColor: theme.palette.primary.main },
130
- '&.Mui-focused fieldset': { borderColor: theme.palette.primary.main, borderWidth: rem(theme, SELECT_BORDER.focused) },
131
- '&.Mui-error fieldset': { borderColor: theme.palette.error.main },
132
- });
133
-
134
- /** Pick the variant style block for the outlined input. */
135
- const variantStyles = (theme: Theme, variant: SelectProps['variant']): CSSObject => {
136
- if (variant === 'glass') return glassVariant(theme);
137
- if (variant === 'gradient') return gradientVariant(theme);
138
- return defaultVariant(theme);
139
- };
140
-
141
- const StyledFormControl = styled(FormControl, {
142
- shouldForwardProp: (prop) =>
143
- prop !== 'customVariant' && prop !== 'fieldSize' && prop !== 'glow' && prop !== 'pulse',
144
- })<{
145
- customVariant?: SelectProps['variant'];
146
- fieldSize: SizeValue;
147
- glow?: boolean;
148
- pulse?: boolean;
149
- }>(({ theme, customVariant, fieldSize, glow, pulse }) => ({
150
- position: 'relative',
151
- // The theme's field height for this size — the height `Input` draws for it.
152
- ...fieldControlStyles(theme, fieldSize),
153
- ...(glow ? glowStyles(theme) : {}),
154
- ...(pulse ? pulseStyles(theme, fieldSize) : {}),
155
- '& .MuiOutlinedInput-root': {
156
- transition: 'all 0.3s ease',
157
- borderRadius: fieldRadius(theme),
158
- ...variantStyles(theme, customVariant),
159
- },
160
- }));
12
+ import { asFieldSize } from '../../../tokens/field-height';
161
13
 
162
14
  /**
163
15
  * Build the placeholder item plus one MenuItem per option. Returns a flat ARRAY
@@ -191,19 +43,7 @@ function renderMenuItems(
191
43
  return items;
192
44
  }
193
45
 
194
- /**
195
- * The house scale as a FormControl size.
196
- *
197
- * Not `muiSize`: that collapses five onto MUI's three, and a FormControl takes
198
- * only two. This component's scale is already narrowed to `sm | md`, so the map
199
- * is exact rather than lossy.
200
- */
201
- const formControlSize = (size: SelectProps['size']): 'small' | 'medium' | undefined => {
202
- if (size === undefined) return undefined;
203
- return selectInputSize(size) === 'sm' ? 'small' : 'medium';
204
- };
205
-
206
- export const Select = React.forwardRef<HTMLDivElement, SelectProps>(
46
+ const MenuSelect = React.forwardRef<HTMLDivElement, SelectProps>(
207
47
  (
208
48
  {
209
49
  // `variant`/`size`/`glow`/`pulse` intentionally have no defaults: undefined
@@ -231,7 +71,7 @@ export const Select = React.forwardRef<HTMLDivElement, SelectProps>(
231
71
  const selectId = React.useId();
232
72
 
233
73
  return (
234
- <StyledFormControl
74
+ <SelectFieldControl
235
75
  fullWidth={fullWidth}
236
76
  size={formControlSize(size)}
237
77
  error={error}
@@ -281,9 +121,23 @@ export const Select = React.forwardRef<HTMLDivElement, SelectProps>(
281
121
  {helperText}
282
122
  </FormHelperText>
283
123
  )}
284
- </StyledFormControl>
124
+ </SelectFieldControl>
285
125
  );
286
126
  },
287
127
  );
288
128
 
129
+ MenuSelect.displayName = 'MenuSelect';
130
+
131
+ /**
132
+ * The house select. Up to five options it opens a menu; from six on it is a
133
+ * search box over a list of bounded height (`Select.searchable.tsx`), with the
134
+ * same props, events and test ids either way. `searchable` overrides the count.
135
+ */
136
+ export const Select = React.forwardRef<HTMLDivElement, SelectProps>((props, ref) => {
137
+ if (shouldSearch(props)) return <SearchableSelect {...props} ref={ref} />;
138
+ // The searchable path's own props: nothing for MUI's Select to receive.
139
+ const { searchable: _searchable, noOptionsText: _noOptionsText, ...menuProps } = props;
140
+ return <MenuSelect {...menuProps} ref={ref} />;
141
+ });
142
+
289
143
  Select.displayName = 'Select';
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/form/Select/Select.tsx"],"sourcesContent":["import FormControl from '@mui/material/FormControl/index.js';\nimport FormHelperText from '@mui/material/FormHelperText/index.js';\nimport InputLabel from '@mui/material/InputLabel/index.js';\nimport MenuItem from '@mui/material/MenuItem/index.js';\nimport MuiSelect from '@mui/material/Select/index.js';\nimport { alpha, type CSSObject, keyframes, styled, type Theme } from '@mui/material/styles/index.js';\nimport React from 'react';\n\nimport {\n SELECT_BORDER,\n SELECT_GLASS,\n SELECT_GLOW,\n SELECT_GRADIENT,\n SELECT_PULSE,\n selectInputSize,\n} from './Select.metrics';\nimport type { SelectProps } from './Select.types';\n\nimport { splitTestId } from '../../../platform/test-id';\nimport { fieldEdge } from '../../../tokens/field-edge';\nimport { asFieldSize, FIELD_BORDER_WIDTH, fieldControlStyles, fieldHeight } from '../../../tokens/field-height';\nimport type { SizeValue } from '../../../tokens/vocabulary';\nimport { fieldRadius } from '../../../tokens/field-radius';\nimport { absoluteInk } from '../../../tokens/ink';\nimport { rem } from '../../../tokens/relative';\n\n// Define pulse animation\nconst pulseAnimation = (theme: Theme) => keyframes`\n 0% {\n box-shadow: 0 0 0 0 currentColor;\n opacity: 1;\n }\n 70% {\n box-shadow: 0 0 0 ${rem(theme, SELECT_PULSE.spread)} currentColor;\n opacity: 0;\n }\n 100% {\n box-shadow: 0 0 0 0 currentColor;\n opacity: 0;\n }\n`;\n\n/** Glow ring on the outlined input, keyed off the `glow` prop. */\nconst glowStyles = (theme: Theme): CSSObject => ({\n '& .MuiOutlinedInput-root': {\n boxShadow: `0 0 ${rem(theme, SELECT_GLOW.rest.blur)} ${alpha(theme.palette.primary.main, SELECT_GLOW.rest.alpha)}`,\n '&.Mui-focused': {\n boxShadow: `0 0 ${rem(theme, SELECT_GLOW.focused.blur)} ${alpha(theme.palette.primary.main, SELECT_GLOW.focused.alpha)}`,\n },\n },\n});\n\n/** Pulsing halo behind the control, keyed off the `pulse` prop. */\nconst pulseStyles = (theme: Theme, size: SizeValue): CSSObject => ({\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n top: '50%',\n left: '0',\n right: '0',\n height: fieldHeight(theme, size),\n transform: 'translateY(-50%)',\n borderRadius: fieldRadius(theme),\n backgroundColor: theme.palette.primary.main,\n opacity: SELECT_PULSE.opacity,\n animation: `${pulseAnimation(theme)} ${SELECT_PULSE.ms / 1000}s infinite`,\n pointerEvents: 'none',\n zIndex: -1,\n },\n});\n\n/** `glass` variant: translucent, blurred background. */\nconst glassVariant = (theme: Theme): CSSObject => ({\n backgroundColor: alpha(theme.palette.background.paper, SELECT_GLASS.background.rest),\n backdropFilter: `blur(${rem(theme, SELECT_GLASS.blur)})`,\n // `SELECT_BORDER.rest` is the field hairline.\n border: `${FIELD_BORDER_WIDTH}px solid ${fieldEdge(theme)}`,\n '& fieldset': { border: 'none' },\n '&:hover': {\n backgroundColor: alpha(theme.palette.background.paper, SELECT_GLASS.background.hover),\n borderColor: alpha(theme.palette.primary.main, SELECT_GLASS.hoverBorderAlpha),\n },\n '&.Mui-focused': {\n backgroundColor: alpha(theme.palette.background.paper, SELECT_GLASS.background.focused),\n borderColor: theme.palette.primary.main,\n boxShadow: `0 0 0 ${rem(theme, SELECT_GLASS.focusRing.width)} ${alpha(theme.palette.primary.main, SELECT_GLASS.focusRing.alpha)}`,\n },\n});\n\n/** `gradient` variant: gradient fill with a masked gradient border. */\nconst gradientFill = (theme: Theme, strength: number): string =>\n `linear-gradient(${SELECT_GRADIENT.angleDeg}deg, ${alpha(theme.palette.primary.main, strength)}, ${alpha(theme.palette.secondary.main, strength)})`;\n\nconst gradientVariant = (theme: Theme): CSSObject => ({\n background: gradientFill(theme, SELECT_GRADIENT.fill.rest),\n border: `${rem(theme, SELECT_GRADIENT.borderWidth)} solid transparent`,\n backgroundOrigin: 'border-box',\n backgroundClip: 'padding-box, border-box',\n position: 'relative',\n '& fieldset': { border: 'none' },\n '&::before': {\n content: '\"\"',\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n borderRadius: 'inherit',\n background: `linear-gradient(${SELECT_GRADIENT.angleDeg}deg, ${theme.palette.primary.main}, ${theme.palette.secondary.main})`,\n mask: `linear-gradient(${absoluteInk(theme).white} 0 0) content-box, linear-gradient(${absoluteInk(theme).white} 0 0)`,\n maskComposite: 'exclude',\n padding: rem(theme, SELECT_GRADIENT.borderWidth),\n zIndex: -1,\n },\n '&:hover': {\n background: gradientFill(theme, SELECT_GRADIENT.fill.hover),\n },\n '&.Mui-focused': {\n background: gradientFill(theme, SELECT_GRADIENT.fill.focused),\n '&::before': {\n background: `linear-gradient(${SELECT_GRADIENT.angleDeg}deg, ${theme.palette.primary.dark}, ${theme.palette.secondary.dark})`,\n },\n },\n});\n\n/** `default` variant: standard outlined borders with hover/focus/error states. */\nconst defaultVariant = (theme: Theme): CSSObject => ({\n '& fieldset': { borderColor: fieldEdge(theme) },\n '&:hover fieldset': { borderColor: theme.palette.primary.main },\n '&.Mui-focused fieldset': { borderColor: theme.palette.primary.main, borderWidth: rem(theme, SELECT_BORDER.focused) },\n '&.Mui-error fieldset': { borderColor: theme.palette.error.main },\n});\n\n/** Pick the variant style block for the outlined input. */\nconst variantStyles = (theme: Theme, variant: SelectProps['variant']): CSSObject => {\n if (variant === 'glass') return glassVariant(theme);\n if (variant === 'gradient') return gradientVariant(theme);\n return defaultVariant(theme);\n};\n\nconst StyledFormControl = styled(FormControl, {\n shouldForwardProp: (prop) =>\n prop !== 'customVariant' && prop !== 'fieldSize' && prop !== 'glow' && prop !== 'pulse',\n})<{\n customVariant?: SelectProps['variant'];\n fieldSize: SizeValue;\n glow?: boolean;\n pulse?: boolean;\n}>(({ theme, customVariant, fieldSize, glow, pulse }) => ({\n position: 'relative',\n // The theme's field height for this size — the height `Input` draws for it.\n ...fieldControlStyles(theme, fieldSize),\n ...(glow ? glowStyles(theme) : {}),\n ...(pulse ? pulseStyles(theme, fieldSize) : {}),\n '& .MuiOutlinedInput-root': {\n transition: 'all 0.3s ease',\n borderRadius: fieldRadius(theme),\n ...variantStyles(theme, customVariant),\n },\n}));\n\n/**\n * Build the placeholder item plus one MenuItem per option. Returns a flat ARRAY\n * (not a Fragment): MUI `Select` enumerates its children with `React.Children`,\n * which does not descend into Fragments — a Fragment would hide every option.\n */\nfunction renderMenuItems(\n options: SelectProps['options'],\n placeholder: string | undefined,\n dataTestId: string | undefined,\n): React.ReactNode[] {\n const optionTestId = (value: string | number): string =>\n dataTestId ? `${dataTestId}-option-${value}` : `option-${value}`;\n const items = options.map((option) => (\n <MenuItem\n key={option.value}\n value={option.value}\n disabled={option.disabled}\n data-testid={optionTestId(option.value)}\n >\n {option.label}\n </MenuItem>\n ));\n if (placeholder) {\n items.unshift(\n <MenuItem key=\"__placeholder__\" value=\"\" disabled>\n {placeholder}\n </MenuItem>,\n );\n }\n return items;\n}\n\n/**\n * The house scale as a FormControl size.\n *\n * Not `muiSize`: that collapses five onto MUI's three, and a FormControl takes\n * only two. This component's scale is already narrowed to `sm | md`, so the map\n * is exact rather than lossy.\n */\nconst formControlSize = (size: SelectProps['size']): 'small' | 'medium' | undefined => {\n if (size === undefined) return undefined;\n return selectInputSize(size) === 'sm' ? 'small' : 'medium';\n};\n\nexport const Select = React.forwardRef<HTMLDivElement, SelectProps>(\n (\n {\n // `variant`/`size`/`glow`/`pulse` intentionally have no defaults: undefined\n // resolves to the default variant, MUI's medium size, and no glow/pulse —\n // keeping this render function under the complexity budget.\n variant,\n options,\n label,\n helperText,\n fullWidth = true,\n size,\n error,\n placeholder,\n glow,\n pulse,\n value,\n 'aria-label': ariaLabel,\n ...rest\n },\n ref,\n ) => {\n const { testId: dataTestId, rest: props } = splitTestId(rest);\n const labelId = React.useId();\n const helperTextId = React.useId();\n const selectId = React.useId();\n\n return (\n <StyledFormControl\n fullWidth={fullWidth}\n size={formControlSize(size)}\n error={error}\n customVariant={variant}\n fieldSize={asFieldSize(size)}\n glow={glow} pulse={pulse}\n ref={ref}\n data-testid={dataTestId}\n >\n {label && (\n <InputLabel id={labelId} htmlFor={selectId}>\n {label}\n </InputLabel>\n )}\n <MuiSelect\n id={selectId}\n labelId={label ? labelId : undefined}\n label={label}\n displayEmpty={Boolean(placeholder)}\n aria-describedby={helperText ? helperTextId : undefined}\n data-testid={dataTestId ? `${dataTestId}-select` : 'select'}\n value={value ?? ''}\n {...props}\n /*\n * `role=\"combobox\"` sits on MUI's display DIV, not on the hidden\n * native input that `{...props}` reaches — so an `aria-label` passed\n * to this component never landed on the element carrying the role,\n * and MUI's `aria-labelledby` then fell back to that div's OWN id.\n * The control announced as its current value: a filter's field\n * select read \"Status\" instead of \"Filtro 1 — campo\".\n *\n * Forwarding it here names the right element. The explicit\n * `undefined` clears that self-referential `aria-labelledby`, which\n * would otherwise win — a labelledby always beats a label in the\n * accessible-name computation.\n */\n SelectDisplayProps={\n ariaLabel === undefined\n ? undefined\n : { 'aria-label': ariaLabel, 'aria-labelledby': undefined }\n }\n >\n {renderMenuItems(options, placeholder, dataTestId)}\n </MuiSelect>\n {helperText && (\n <FormHelperText id={helperTextId} error={error}>\n {helperText}\n </FormHelperText>\n )}\n </StyledFormControl>\n );\n },\n);\n\nSelect.displayName = 'Select';\n"],"mappings":"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","names":[]}