@12-apps/ui 6.86.1 → 6.86.2

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 (335) hide show
  1. package/dist/_internal/components/data-display/AsyncStateContainer/AsyncStateContainer.js +3 -3
  2. package/dist/_internal/components/data-display/Avatar/Avatar.js +2 -2
  3. package/dist/_internal/components/data-display/CardKit/CardKebab.js +3 -3
  4. package/dist/_internal/components/data-display/CardKit/use-remove-confirm.js +3 -3
  5. package/dist/_internal/components/data-display/CardKit/use-row-confirm.js +3 -3
  6. package/dist/_internal/components/data-display/Carousel/Carousel.js +2 -2
  7. package/dist/_internal/components/data-display/Chart/Chart.js +4 -4
  8. package/dist/_internal/components/data-display/Chart/SpecChart.js +5 -5
  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/Chip/Chip.js +3 -3
  12. package/dist/_internal/components/data-display/Chip/Chip.styles.js +2 -2
  13. package/dist/_internal/components/data-display/DataGrid/DataGrid.js +1 -1
  14. package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +28 -28
  15. package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +36 -36
  16. package/dist/_internal/components/data-display/DataViews/DeleteViewDialog.js +3 -3
  17. package/dist/_internal/components/data-display/DataViews/ManageViewsDialog.js +4 -4
  18. package/dist/_internal/components/data-display/DataViews/SaveViewModal.js +3 -3
  19. package/dist/_internal/components/data-display/DataViews/base-list-card-geometry.js +2 -2
  20. package/dist/_internal/components/data-display/DataViews/base-list-card-layout.js +2 -2
  21. package/dist/_internal/components/data-display/DataViews/base-list-card-slots.js +2 -2
  22. package/dist/_internal/components/data-display/DataViews/base-list-card.js +2 -2
  23. package/dist/_internal/components/data-display/DataViews/data-views-card-body.js +4 -4
  24. package/dist/_internal/components/data-display/DataViews/data-views-columns.js +4 -4
  25. package/dist/_internal/components/data-display/DataViews/data-views-display-panel.js +4 -4
  26. package/dist/_internal/components/data-display/DataViews/data-views-empty.js +3 -3
  27. package/dist/_internal/components/data-display/DataViews/data-views-export.js +3 -3
  28. package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +4 -4
  29. package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +9 -9
  30. package/dist/_internal/components/data-display/DataViews/data-views-grid-helpers.js +3 -3
  31. package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +24 -24
  32. package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +9 -9
  33. package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +5 -5
  34. package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +8 -8
  35. package/dist/_internal/components/data-display/DataViews/data-views-range-pill.js +3 -3
  36. package/dist/_internal/components/data-display/DataViews/data-views-select-all-strip.js +3 -3
  37. package/dist/_internal/components/data-display/DataViews/data-views-shell-toolbar.js +8 -8
  38. package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +6 -6
  39. package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +7 -7
  40. package/dist/_internal/components/data-display/DataViews/data-views-view-nav.js +3 -3
  41. package/dist/_internal/components/data-display/DataViews/list-card-rails.js +2 -2
  42. package/dist/_internal/components/data-display/DataViews/use-data-views-state.js +7 -7
  43. package/dist/_internal/components/data-display/EmptyState/EmptyState.js +2 -2
  44. package/dist/_internal/components/data-display/FleetMap/FleetBody.js +9 -9
  45. package/dist/_internal/components/data-display/FleetMap/FleetCanvas.js +8 -8
  46. package/dist/_internal/components/data-display/FleetMap/FleetMap.js +12 -12
  47. package/dist/_internal/components/data-display/InteractiveTooltip/InteractiveTooltip.js +2 -2
  48. package/dist/_internal/components/data-display/Lightbox/Lightbox.js +7 -7
  49. package/dist/_internal/components/data-display/Lightbox/LightboxControls.js +2 -2
  50. package/dist/_internal/components/data-display/Lightbox/LightboxOverlay.js +3 -3
  51. package/dist/_internal/components/data-display/Lightbox/LightboxThumbnails.js +2 -2
  52. package/dist/_internal/components/data-display/MapPreview/MapLayers.js +2 -2
  53. package/dist/_internal/components/data-display/MapPreview/MapMarkers.js +2 -2
  54. package/dist/_internal/components/data-display/MapPreview/MapPreview.js +7 -7
  55. package/dist/_internal/components/data-display/RegionMap/RegionMap.js +2 -2
  56. package/dist/_internal/components/data-display/SectionOnboarding/SectionOnboarding.js +3 -3
  57. package/dist/_internal/components/data-display/Sheet/Sheet.js +2 -2
  58. package/dist/_internal/components/data-display/Table/Table.js +2 -2
  59. package/dist/_internal/components/data-display/index.js +42 -42
  60. package/dist/_internal/components/feedback/ConfirmAction/ConfirmButton.js +3 -3
  61. package/dist/_internal/components/feedback/Modal/Modal.js +2 -2
  62. package/dist/_internal/components/feedback/NotificationStatusNotice/NotificationStatusNotice.js +3 -3
  63. package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.js +4 -4
  64. package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.parts.js +3 -3
  65. package/dist/_internal/components/feedback/index.js +8 -8
  66. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.js +4 -4
  67. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocompleteField.js +2 -2
  68. package/dist/_internal/components/form/AddressAutocomplete/AddressSuggestionsPaper.js +1 -1
  69. package/dist/_internal/components/form/Autocomplete/Autocomplete.js +1 -1
  70. package/dist/_internal/components/form/Button/Button.js +2 -2
  71. package/dist/_internal/components/form/Calendar/Calendar.band.js +18 -0
  72. package/dist/_internal/components/form/Calendar/Calendar.band.js.map +1 -0
  73. package/dist/_internal/components/form/Calendar/Calendar.js +7 -5
  74. package/dist/_internal/components/form/Calendar/CalendarDay.js +4 -1
  75. package/dist/_internal/components/form/Calendar/CalendarDayCell.js +4 -2
  76. package/dist/_internal/components/form/Calendar/CalendarMonth.js +5 -3
  77. package/dist/_internal/components/form/Calendar/CalendarSelectorsMonth.js +6 -4
  78. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.js +7 -6
  79. package/dist/_internal/components/form/index.js +14 -13
  80. package/dist/_internal/components/form/total-form/SubmitButton.js +3 -3
  81. package/dist/_internal/components/index.js +75 -74
  82. package/dist/_internal/components/layout/SettingCard/SettingCard.js +10 -10
  83. package/dist/_internal/components/layout/SettingCard/SettingCard.parts.js +6 -6
  84. package/dist/_internal/components/layout/SettingCard/SettingCard.summary.js +9 -9
  85. package/dist/_internal/components/layout/SettingCard/SettingGrid.js +7 -7
  86. package/dist/_internal/components/layout/SettingCard/SettingGroup.js +11 -11
  87. package/dist/_internal/components/layout/SettingCard/SettingSwitch.js +10 -10
  88. package/dist/_internal/components/layout/SettingCard/SettingToggle.js +11 -11
  89. package/dist/_internal/components/layout/index.js +14 -14
  90. package/dist/_internal/components/navigation/AppHeader/AppHeader.details.js +5 -5
  91. package/dist/_internal/components/navigation/CommandPalette/CommandPalette.helpers.js +2 -2
  92. package/dist/_internal/components/navigation/CommandPalette/CommandPalette.hooks.js +3 -3
  93. package/dist/_internal/components/navigation/CommandPalette/CommandPalette.js +5 -5
  94. package/dist/_internal/components/navigation/CommandPalette/CommandPaletteResults.js +2 -2
  95. package/dist/_internal/components/navigation/index.js +10 -10
  96. package/dist/_internal/en-US.navigation.js +1 -1
  97. package/dist/_internal/pt-BR.navigation.js +1 -1
  98. package/dist/_internal/social-login-button/social-login-button.js +3 -3
  99. package/dist/_internal/user-avatar/user-avatar.js +5 -5
  100. package/dist/charts.js +5 -5
  101. package/dist/{chunk-OPY2AGAU.js → chunk-2IHUFUTO.js} +2 -2
  102. package/dist/{chunk-33AVAYCR.js → chunk-2L6TANRY.js} +5 -5
  103. package/dist/{chunk-ENJOBJPK.js → chunk-2MT6VSS2.js} +2 -2
  104. package/dist/{chunk-QADTI63U.js → chunk-3JZ3KEQQ.js} +2 -2
  105. package/dist/{chunk-EOIRU62W.js → chunk-42D7KBDH.js} +2 -2
  106. package/dist/{chunk-LXIPBHNJ.js → chunk-42TOCPXB.js} +5 -5
  107. package/dist/{chunk-EXVCVXFX.js → chunk-437HQPUN.js} +4 -4
  108. package/dist/{chunk-VYQZ5U3N.js → chunk-4NG3LTRX.js} +2 -2
  109. package/dist/{chunk-POUNFTG3.js → chunk-4OUJ4ZMK.js} +9 -3
  110. package/dist/chunk-4OUJ4ZMK.js.map +1 -0
  111. package/dist/{chunk-7YJYIMWP.js → chunk-4QR7LM5F.js} +6 -6
  112. package/dist/{chunk-KR4TN3OF.js → chunk-4ZQQUICR.js} +2 -2
  113. package/dist/{chunk-IYDXKLCE.js → chunk-5C3JSXBK.js} +2 -2
  114. package/dist/{chunk-4LUWZ6UE.js → chunk-5IMI2XNU.js} +5 -5
  115. package/dist/{chunk-Q7XLTN2D.js → chunk-5VKHJ7PI.js} +3 -3
  116. package/dist/{chunk-BP3ZKIPE.js → chunk-64UNVW6D.js} +4 -4
  117. package/dist/{chunk-SSCEX5NY.js → chunk-656DBMWT.js} +3 -2
  118. package/dist/{chunk-SSCEX5NY.js.map → chunk-656DBMWT.js.map} +1 -1
  119. package/dist/{chunk-FCLON3MO.js → chunk-6HXNFNOB.js} +3 -3
  120. package/dist/{chunk-WNNA6YYE.js → chunk-6IRZZYHF.js} +4 -4
  121. package/dist/{chunk-A5CKUJP2.js → chunk-6X7PE5DH.js} +4 -4
  122. package/dist/{chunk-ABRVOPC2.js → chunk-7FFY4LJY.js} +2 -2
  123. package/dist/{chunk-H7CZRKN7.js → chunk-7WE432RQ.js} +11 -11
  124. package/dist/{chunk-V4CWJ7Q6.js → chunk-A3DDEKLV.js} +2 -2
  125. package/dist/{chunk-KRPDBVUB.js → chunk-APSEM5AA.js} +3 -3
  126. package/dist/{chunk-I2LMLQGQ.js → chunk-AQPPSR4P.js} +2 -2
  127. package/dist/{chunk-U2DRE36S.js → chunk-BAC2PBOS.js} +4 -4
  128. package/dist/{chunk-OQN2FHEL.js → chunk-C4NSEUT5.js} +3 -3
  129. package/dist/{chunk-MW7P2C2C.js → chunk-CJLZHW2Z.js} +2 -2
  130. package/dist/{chunk-65KJLPF5.js → chunk-DILDC77M.js} +3 -3
  131. package/dist/{chunk-UTUYXH72.js → chunk-E5QOT7KK.js} +8 -8
  132. package/dist/{chunk-V6KQ5R4T.js → chunk-EAFZ3RDY.js} +5 -5
  133. package/dist/{chunk-C5RQBTRZ.js → chunk-EIOGJBJ5.js} +25 -5
  134. package/dist/chunk-EIOGJBJ5.js.map +1 -0
  135. package/dist/{chunk-ULAZDF6D.js → chunk-FF22F7FA.js} +2 -2
  136. package/dist/{chunk-Z5WUSI47.js → chunk-G3JFESKD.js} +6 -6
  137. package/dist/{chunk-CARUHKZW.js → chunk-G4W6HR6Q.js} +9 -9
  138. package/dist/{chunk-KYTFGW4R.js → chunk-GMIMHQ6H.js} +2 -2
  139. package/dist/chunk-H2UUMZQR.js +74 -0
  140. package/dist/chunk-H2UUMZQR.js.map +1 -0
  141. package/dist/{chunk-UT545JBQ.js → chunk-HC6OZ7QK.js} +3 -3
  142. package/dist/{chunk-MVNFUIJS.js → chunk-HOPRZEBM.js} +4 -4
  143. package/dist/{chunk-Z445LLFN.js → chunk-I44XL4Z4.js} +7 -6
  144. package/dist/chunk-I44XL4Z4.js.map +1 -0
  145. package/dist/{chunk-FZUAB2KS.js → chunk-INFBO356.js} +2 -2
  146. package/dist/{chunk-XW44IFYE.js → chunk-IWMAFTXP.js} +2 -2
  147. package/dist/{chunk-2DDCRHJE.js → chunk-IX5ADKII.js} +2 -2
  148. package/dist/{chunk-N5OEDOJT.js → chunk-J2KVF5GO.js} +3 -3
  149. package/dist/{chunk-TZC6KIK2.js → chunk-JG733RMP.js} +5 -5
  150. package/dist/{chunk-PGYYDSNX.js → chunk-JH2XLVWM.js} +2 -2
  151. package/dist/{chunk-TMUGBHHG.js → chunk-JHW35C6W.js} +5 -5
  152. package/dist/{chunk-4V37DAMA.js → chunk-JRBSTOMA.js} +3 -3
  153. package/dist/{chunk-NCI74EOS.js → chunk-K6FCSB6T.js} +5 -5
  154. package/dist/{chunk-FZEDQNUN.js → chunk-K7IDOTSU.js} +3 -3
  155. package/dist/{chunk-B32554CQ.js → chunk-LH43GKP2.js} +10 -10
  156. package/dist/{chunk-QJLOWBFW.js → chunk-LXTNWQWF.js} +2 -2
  157. package/dist/{chunk-HI7JPDD6.js → chunk-M3XJVD5G.js} +2 -2
  158. package/dist/{chunk-FQMLTCXT.js → chunk-MAHY7PK3.js} +4 -4
  159. package/dist/{chunk-NTRWUDP6.js → chunk-MKVDHR3B.js} +2 -2
  160. package/dist/{chunk-67ADHGA2.js → chunk-NKEFH3RS.js} +3 -3
  161. package/dist/{chunk-WXZCNHBX.js → chunk-OFESNJKE.js} +2 -2
  162. package/dist/{chunk-GLR5MSU3.js → chunk-OY437NRJ.js} +2 -2
  163. package/dist/{chunk-CJUK32UH.js → chunk-OZYUE2BI.js} +4 -4
  164. package/dist/{chunk-NI67M453.js → chunk-PGANINQD.js} +5 -5
  165. package/dist/{chunk-KRYOT3KB.js → chunk-PQGHYFUA.js} +2 -2
  166. package/dist/{chunk-ZHYLOB7Q.js → chunk-PXEIN3J4.js} +7 -7
  167. package/dist/{chunk-ZO2GZRZS.js → chunk-Q4QFYGPH.js} +2 -2
  168. package/dist/{chunk-TIM4PXWN.js → chunk-QHIWV55K.js} +2 -2
  169. package/dist/{chunk-DHAXUVMR.js → chunk-QN7FVZQD.js} +4 -4
  170. package/dist/{chunk-6PTP5NID.js → chunk-R2ODLE6G.js} +2 -2
  171. package/dist/{chunk-XQJPR57I.js → chunk-T5RFH2T5.js} +2 -2
  172. package/dist/{chunk-WMAS6DZR.js → chunk-TLJVUWJ5.js} +2 -2
  173. package/dist/{chunk-MK6UXAWY.js → chunk-TSEBMVYY.js} +3 -3
  174. package/dist/{chunk-OKRITX4S.js → chunk-UFGT2SFD.js} +6 -6
  175. package/dist/{chunk-WTOA52EQ.js → chunk-UKNMPGEM.js} +2 -2
  176. package/dist/{chunk-P772HCHI.js → chunk-W676GY42.js} +4 -4
  177. package/dist/{chunk-T2G4LDU5.js → chunk-WLLUARTC.js} +2 -2
  178. package/dist/{chunk-JZQYVGPV.js → chunk-WLSFBXGS.js} +3 -3
  179. package/dist/{chunk-52RHAAIH.js → chunk-X3EEV3OI.js} +3 -3
  180. package/dist/{chunk-DYRZRY2T.js → chunk-X4N6Q37Q.js} +4 -4
  181. package/dist/{chunk-HKGKQKQT.js → chunk-X5OGIT2F.js} +52 -20
  182. package/dist/chunk-X5OGIT2F.js.map +1 -0
  183. package/dist/{chunk-56GWNA5V.js → chunk-X6D5JEUV.js} +12 -5
  184. package/dist/chunk-X6D5JEUV.js.map +1 -0
  185. package/dist/{chunk-ZVZTQF7E.js → chunk-XS6QHZMD.js} +2 -2
  186. package/dist/{chunk-CPZGFIFH.js → chunk-YNVTUQ5B.js} +2 -2
  187. package/dist/{chunk-HJJR2WGL.js → chunk-YOXYSAUI.js} +4 -4
  188. package/dist/{chunk-D72GD4XC.js → chunk-YPW4HZ3Z.js} +6 -2
  189. package/dist/chunk-YPW4HZ3Z.js.map +1 -0
  190. package/dist/{chunk-G76PIGF7.js → chunk-ZHQAVW2V.js} +3 -2
  191. package/dist/chunk-ZHQAVW2V.js.map +1 -0
  192. package/dist/{chunk-COKPPU42.js → chunk-ZIHSCBMN.js} +12 -12
  193. package/dist/data-display/AsyncStateContainer.js +3 -3
  194. package/dist/data-display/Avatar.js +2 -2
  195. package/dist/data-display/CardKit.js +11 -11
  196. package/dist/data-display/Carousel.js +2 -2
  197. package/dist/data-display/Chart.js +5 -5
  198. package/dist/data-display/Chip.js +3 -3
  199. package/dist/data-display/DataGrid.js +1 -1
  200. package/dist/data-display/DataViews.js +43 -43
  201. package/dist/data-display/EmptyState.js +2 -2
  202. package/dist/data-display/FleetMap.js +12 -12
  203. package/dist/data-display/InteractiveTooltip.js +2 -2
  204. package/dist/data-display/Lightbox.js +7 -7
  205. package/dist/data-display/MapPreview.js +7 -7
  206. package/dist/data-display/RegionMap.js +2 -2
  207. package/dist/data-display/SectionOnboarding.js +3 -3
  208. package/dist/data-display/Sheet.js +2 -2
  209. package/dist/data-display/Table.js +2 -2
  210. package/dist/en-US.js +1 -1
  211. package/dist/feedback/ConfirmAction.js +3 -3
  212. package/dist/feedback/Modal.js +2 -2
  213. package/dist/feedback/NotificationStatusNotice.js +3 -3
  214. package/dist/feedback/SequenceResolver.js +4 -4
  215. package/dist/form/AddressAutocomplete.js +4 -4
  216. package/dist/form/Autocomplete.js +1 -1
  217. package/dist/form/Button.js +2 -2
  218. package/dist/form/Calendar.js +7 -5
  219. package/dist/form/DateRangePicker.js +7 -6
  220. package/dist/form/total-form.js +3 -3
  221. package/dist/layout/SettingCard.js +14 -14
  222. package/dist/locales.js +2 -2
  223. package/dist/navigation/AppHeader.js +5 -5
  224. package/dist/navigation/CommandPalette.js +5 -5
  225. package/dist/pt-BR.js +1 -1
  226. package/dist/social-login-button.js +3 -3
  227. package/dist/types/components/form/AddressAutocomplete/AddressAutocompleteField.d.ts.map +1 -1
  228. package/dist/types/components/form/AddressAutocomplete/AddressSuggestionsPaper.d.ts +11 -1
  229. package/dist/types/components/form/AddressAutocomplete/AddressSuggestionsPaper.d.ts.map +1 -1
  230. package/dist/types/components/form/Calendar/Calendar.band.d.ts +44 -0
  231. package/dist/types/components/form/Calendar/Calendar.band.d.ts.map +1 -0
  232. package/dist/types/components/form/Calendar/CalendarDay.d.ts +2 -0
  233. package/dist/types/components/form/Calendar/CalendarDay.d.ts.map +1 -1
  234. package/dist/types/components/form/Calendar/CalendarDayCell.d.ts.map +1 -1
  235. package/dist/types/components/form/Calendar/CalendarMonth.d.ts +3 -2
  236. package/dist/types/components/form/Calendar/CalendarMonth.d.ts.map +1 -1
  237. package/dist/types/components/navigation/CommandPalette/CommandPalette.d.ts.map +1 -1
  238. package/dist/types/copy/navigation.d.ts +2 -0
  239. package/dist/types/copy/navigation.d.ts.map +1 -1
  240. package/dist/types/en-US.navigation.d.ts.map +1 -1
  241. package/dist/types/pt-BR.navigation.d.ts.map +1 -1
  242. package/dist/user-avatar.js +5 -5
  243. package/package.json +1 -1
  244. package/src/components/form/AddressAutocomplete/AddressAutocompleteField.tsx +17 -4
  245. package/src/components/form/AddressAutocomplete/AddressSuggestionsPaper.tsx +32 -3
  246. package/src/components/form/Calendar/Calendar.band.ts +118 -0
  247. package/src/components/form/Calendar/CalendarDay.tsx +73 -23
  248. package/src/components/form/Calendar/CalendarDayCell.tsx +2 -0
  249. package/src/components/form/Calendar/CalendarMonth.tsx +14 -4
  250. package/src/components/navigation/CommandPalette/CommandPalette.md +1 -0
  251. package/src/components/navigation/CommandPalette/CommandPalette.tsx +4 -2
  252. package/src/copy/navigation.ts +2 -0
  253. package/src/en-US.navigation.ts +1 -0
  254. package/src/pt-BR.navigation.ts +1 -0
  255. package/dist/chunk-56GWNA5V.js.map +0 -1
  256. package/dist/chunk-C5RQBTRZ.js.map +0 -1
  257. package/dist/chunk-D72GD4XC.js.map +0 -1
  258. package/dist/chunk-G76PIGF7.js.map +0 -1
  259. package/dist/chunk-HKGKQKQT.js.map +0 -1
  260. package/dist/chunk-POUNFTG3.js.map +0 -1
  261. package/dist/chunk-Z445LLFN.js.map +0 -1
  262. /package/dist/{chunk-OPY2AGAU.js.map → chunk-2IHUFUTO.js.map} +0 -0
  263. /package/dist/{chunk-33AVAYCR.js.map → chunk-2L6TANRY.js.map} +0 -0
  264. /package/dist/{chunk-ENJOBJPK.js.map → chunk-2MT6VSS2.js.map} +0 -0
  265. /package/dist/{chunk-QADTI63U.js.map → chunk-3JZ3KEQQ.js.map} +0 -0
  266. /package/dist/{chunk-EOIRU62W.js.map → chunk-42D7KBDH.js.map} +0 -0
  267. /package/dist/{chunk-LXIPBHNJ.js.map → chunk-42TOCPXB.js.map} +0 -0
  268. /package/dist/{chunk-EXVCVXFX.js.map → chunk-437HQPUN.js.map} +0 -0
  269. /package/dist/{chunk-VYQZ5U3N.js.map → chunk-4NG3LTRX.js.map} +0 -0
  270. /package/dist/{chunk-7YJYIMWP.js.map → chunk-4QR7LM5F.js.map} +0 -0
  271. /package/dist/{chunk-KR4TN3OF.js.map → chunk-4ZQQUICR.js.map} +0 -0
  272. /package/dist/{chunk-IYDXKLCE.js.map → chunk-5C3JSXBK.js.map} +0 -0
  273. /package/dist/{chunk-4LUWZ6UE.js.map → chunk-5IMI2XNU.js.map} +0 -0
  274. /package/dist/{chunk-Q7XLTN2D.js.map → chunk-5VKHJ7PI.js.map} +0 -0
  275. /package/dist/{chunk-BP3ZKIPE.js.map → chunk-64UNVW6D.js.map} +0 -0
  276. /package/dist/{chunk-FCLON3MO.js.map → chunk-6HXNFNOB.js.map} +0 -0
  277. /package/dist/{chunk-WNNA6YYE.js.map → chunk-6IRZZYHF.js.map} +0 -0
  278. /package/dist/{chunk-A5CKUJP2.js.map → chunk-6X7PE5DH.js.map} +0 -0
  279. /package/dist/{chunk-ABRVOPC2.js.map → chunk-7FFY4LJY.js.map} +0 -0
  280. /package/dist/{chunk-H7CZRKN7.js.map → chunk-7WE432RQ.js.map} +0 -0
  281. /package/dist/{chunk-V4CWJ7Q6.js.map → chunk-A3DDEKLV.js.map} +0 -0
  282. /package/dist/{chunk-KRPDBVUB.js.map → chunk-APSEM5AA.js.map} +0 -0
  283. /package/dist/{chunk-I2LMLQGQ.js.map → chunk-AQPPSR4P.js.map} +0 -0
  284. /package/dist/{chunk-U2DRE36S.js.map → chunk-BAC2PBOS.js.map} +0 -0
  285. /package/dist/{chunk-OQN2FHEL.js.map → chunk-C4NSEUT5.js.map} +0 -0
  286. /package/dist/{chunk-MW7P2C2C.js.map → chunk-CJLZHW2Z.js.map} +0 -0
  287. /package/dist/{chunk-65KJLPF5.js.map → chunk-DILDC77M.js.map} +0 -0
  288. /package/dist/{chunk-UTUYXH72.js.map → chunk-E5QOT7KK.js.map} +0 -0
  289. /package/dist/{chunk-V6KQ5R4T.js.map → chunk-EAFZ3RDY.js.map} +0 -0
  290. /package/dist/{chunk-ULAZDF6D.js.map → chunk-FF22F7FA.js.map} +0 -0
  291. /package/dist/{chunk-Z5WUSI47.js.map → chunk-G3JFESKD.js.map} +0 -0
  292. /package/dist/{chunk-CARUHKZW.js.map → chunk-G4W6HR6Q.js.map} +0 -0
  293. /package/dist/{chunk-KYTFGW4R.js.map → chunk-GMIMHQ6H.js.map} +0 -0
  294. /package/dist/{chunk-UT545JBQ.js.map → chunk-HC6OZ7QK.js.map} +0 -0
  295. /package/dist/{chunk-MVNFUIJS.js.map → chunk-HOPRZEBM.js.map} +0 -0
  296. /package/dist/{chunk-FZUAB2KS.js.map → chunk-INFBO356.js.map} +0 -0
  297. /package/dist/{chunk-XW44IFYE.js.map → chunk-IWMAFTXP.js.map} +0 -0
  298. /package/dist/{chunk-2DDCRHJE.js.map → chunk-IX5ADKII.js.map} +0 -0
  299. /package/dist/{chunk-N5OEDOJT.js.map → chunk-J2KVF5GO.js.map} +0 -0
  300. /package/dist/{chunk-TZC6KIK2.js.map → chunk-JG733RMP.js.map} +0 -0
  301. /package/dist/{chunk-PGYYDSNX.js.map → chunk-JH2XLVWM.js.map} +0 -0
  302. /package/dist/{chunk-TMUGBHHG.js.map → chunk-JHW35C6W.js.map} +0 -0
  303. /package/dist/{chunk-4V37DAMA.js.map → chunk-JRBSTOMA.js.map} +0 -0
  304. /package/dist/{chunk-NCI74EOS.js.map → chunk-K6FCSB6T.js.map} +0 -0
  305. /package/dist/{chunk-FZEDQNUN.js.map → chunk-K7IDOTSU.js.map} +0 -0
  306. /package/dist/{chunk-B32554CQ.js.map → chunk-LH43GKP2.js.map} +0 -0
  307. /package/dist/{chunk-QJLOWBFW.js.map → chunk-LXTNWQWF.js.map} +0 -0
  308. /package/dist/{chunk-HI7JPDD6.js.map → chunk-M3XJVD5G.js.map} +0 -0
  309. /package/dist/{chunk-FQMLTCXT.js.map → chunk-MAHY7PK3.js.map} +0 -0
  310. /package/dist/{chunk-NTRWUDP6.js.map → chunk-MKVDHR3B.js.map} +0 -0
  311. /package/dist/{chunk-67ADHGA2.js.map → chunk-NKEFH3RS.js.map} +0 -0
  312. /package/dist/{chunk-WXZCNHBX.js.map → chunk-OFESNJKE.js.map} +0 -0
  313. /package/dist/{chunk-GLR5MSU3.js.map → chunk-OY437NRJ.js.map} +0 -0
  314. /package/dist/{chunk-CJUK32UH.js.map → chunk-OZYUE2BI.js.map} +0 -0
  315. /package/dist/{chunk-NI67M453.js.map → chunk-PGANINQD.js.map} +0 -0
  316. /package/dist/{chunk-KRYOT3KB.js.map → chunk-PQGHYFUA.js.map} +0 -0
  317. /package/dist/{chunk-ZHYLOB7Q.js.map → chunk-PXEIN3J4.js.map} +0 -0
  318. /package/dist/{chunk-ZO2GZRZS.js.map → chunk-Q4QFYGPH.js.map} +0 -0
  319. /package/dist/{chunk-TIM4PXWN.js.map → chunk-QHIWV55K.js.map} +0 -0
  320. /package/dist/{chunk-DHAXUVMR.js.map → chunk-QN7FVZQD.js.map} +0 -0
  321. /package/dist/{chunk-6PTP5NID.js.map → chunk-R2ODLE6G.js.map} +0 -0
  322. /package/dist/{chunk-XQJPR57I.js.map → chunk-T5RFH2T5.js.map} +0 -0
  323. /package/dist/{chunk-WMAS6DZR.js.map → chunk-TLJVUWJ5.js.map} +0 -0
  324. /package/dist/{chunk-MK6UXAWY.js.map → chunk-TSEBMVYY.js.map} +0 -0
  325. /package/dist/{chunk-OKRITX4S.js.map → chunk-UFGT2SFD.js.map} +0 -0
  326. /package/dist/{chunk-WTOA52EQ.js.map → chunk-UKNMPGEM.js.map} +0 -0
  327. /package/dist/{chunk-P772HCHI.js.map → chunk-W676GY42.js.map} +0 -0
  328. /package/dist/{chunk-T2G4LDU5.js.map → chunk-WLLUARTC.js.map} +0 -0
  329. /package/dist/{chunk-JZQYVGPV.js.map → chunk-WLSFBXGS.js.map} +0 -0
  330. /package/dist/{chunk-52RHAAIH.js.map → chunk-X3EEV3OI.js.map} +0 -0
  331. /package/dist/{chunk-DYRZRY2T.js.map → chunk-X4N6Q37Q.js.map} +0 -0
  332. /package/dist/{chunk-ZVZTQF7E.js.map → chunk-XS6QHZMD.js.map} +0 -0
  333. /package/dist/{chunk-CPZGFIFH.js.map → chunk-YNVTUQ5B.js.map} +0 -0
  334. /package/dist/{chunk-HJJR2WGL.js.map → chunk-YOXYSAUI.js.map} +0 -0
  335. /package/dist/{chunk-COKPPU42.js.map → chunk-ZIHSCBMN.js.map} +0 -0
@@ -5,14 +5,20 @@ import React from 'react';
5
5
 
6
6
  import { rem, sxRem } from '../../../tokens/relative';
7
7
 
8
+ import type { DayBand } from './Calendar.band';
9
+ import { bandColor, endpointFill, endpointHoverFill } from './Calendar.band';
8
10
  import type { DayRenderArgs } from './Calendar.types';
9
11
 
10
12
  /**
11
- * A day cell's LARGEST edge, 40 design px through the theme's type scale. The
12
- * cell is a square that fills its grid column up to this size, so the month
13
- * shrinks with its container instead of holding a fixed 304px floor (FUT-3861).
13
+ * A column's width: the 304 design px a month asked for when its seven 40px
14
+ * cells sat 4px apart, shared by seven columns that now touch (FUT-4162). The
15
+ * cell fills its column up to this size, so the month shrinks with its
16
+ * container instead of holding a fixed 304px floor (FUT-3861).
14
17
  */
15
- const CELL_SIZE = sxRem(40);
18
+ const COLUMN_SIZE = sxRem(304 / 7);
19
+
20
+ /** 304/7 wide to 40 tall: the day's face is a 40 design px circle at full size. */
21
+ const CELL_RATIO = '38 / 35';
16
22
 
17
23
  interface DayState extends DayRenderArgs {
18
24
  outside: boolean;
@@ -42,12 +48,24 @@ const dayClassNames = (state: DayState, custom?: string): string =>
42
48
  const isEndpoint = (day: DayRenderArgs): boolean =>
43
49
  day.selected || day.rangeStart || day.rangeEnd;
44
50
 
45
- const backgroundFor = (day: DayRenderArgs): string => {
46
- if (isEndpoint(day)) return 'primary.main';
47
- if (day.inRange || day.hovered) return 'primary.light';
48
- return 'transparent';
51
+ // The band's share of the cell (see `Calendar.band.ts`): all of it, or the
52
+ // half that faces the rest of the range.
53
+ const BAND_IMAGE: Record<Exclude<DayBand, 'none'>, (band: string) => string> = {
54
+ full: (band) => `linear-gradient(${band}, ${band})`,
55
+ after: (band) => `linear-gradient(to right, transparent 50%, ${band} 50%)`,
56
+ before: (band) => `linear-gradient(to left, transparent 50%, ${band} 50%)`,
57
+ };
58
+
59
+ // A gradient's `to right` is physical; a right-to-left grid starts a range on
60
+ // its right, so the two halves trade places there.
61
+ const inDirection = (band: Exclude<DayBand, 'none'>, theme: Theme): Exclude<DayBand, 'none'> => {
62
+ if (theme.direction !== 'rtl' || band === 'full') return band;
63
+ return band === 'after' ? 'before' : 'after';
49
64
  };
50
65
 
66
+ const faceBackgroundFor = (day: DayRenderArgs): ((theme: Theme) => string) | string =>
67
+ isEndpoint(day) ? endpointFill : 'transparent';
68
+
51
69
  const colorFor = (day: DayRenderArgs, visible: boolean): string => {
52
70
  if (isEndpoint(day)) return 'primary.contrastText';
53
71
  if (day.disabled) return 'text.disabled';
@@ -57,35 +75,65 @@ const colorFor = (day: DayRenderArgs, visible: boolean): string => {
57
75
  return 'text.primary';
58
76
  };
59
77
 
60
- const hoverBackgroundFor = (day: DayRenderArgs): string | undefined => {
78
+ const hoverBackgroundFor = (day: DayRenderArgs): ((theme: Theme) => string) | string | undefined => {
61
79
  if (day.disabled) return undefined;
62
- return day.selected ? 'primary.dark' : 'action.hover';
80
+ return isEndpoint(day) ? endpointHoverFill : 'action.hover';
63
81
  };
64
82
 
65
- const dayCellSx = (day: DayRenderArgs, visible: boolean): SxProps<Theme> => ({
83
+ // The band reaches the cell's edges so neighbouring days join; where a week
84
+ // row ends, it rounds off instead of stopping square: half the cell each way
85
+ // is a half-round cap on a cell as tall as it is wide.
86
+ const BAND_RADIUS = '50%';
87
+
88
+ /**
89
+ * One cell: the band, painted on the button across its whole column, and the
90
+ * day's round face, a `::before` circle behind the number. The face is a
91
+ * pseudo-element so the button's own content stays the bare day number a host's
92
+ * tests query (`getByText('27')` is the cell, as it always was).
93
+ */
94
+ const dayCellSx = (day: DayRenderArgs, band: DayBand, visible: boolean): SxProps<Theme> => ({
95
+ position: 'relative',
96
+ isolation: 'isolate',
66
97
  display: 'flex',
67
98
  alignItems: 'center',
68
99
  justifyContent: 'center',
69
- // 40 is the size it ASKS for, so the month's intrinsic width stays 304 and a
70
- // shrink-wrapping parent (the picker is inline-flex) still sizes to it; the
71
- // column's `minmax(0, 1fr)` and this `maxWidth` let it give way below that.
72
- width: CELL_SIZE,
100
+ // The column it ASKS for keeps the month's intrinsic width at 304 (FUT-3861),
101
+ // now that the seven columns carry no gap between them; `maxWidth` and the
102
+ // column's `minmax(0, 1fr)` let it give way below that, and the ratio keeps
103
+ // it 40 tall at full size and shrinking with it.
104
+ width: COLUMN_SIZE,
73
105
  maxWidth: '100%',
74
- aspectRatio: '1 / 1',
75
- justifySelf: 'center',
106
+ aspectRatio: CELL_RATIO,
107
+ justifySelf: 'stretch',
76
108
  boxSizing: 'border-box',
77
109
  padding: 0,
78
110
  border: 'none',
79
- borderRadius: 1,
111
+ background: 'none',
112
+ backgroundImage: band === 'none' ? 'none' : (theme: Theme) => BAND_IMAGE[inDirection(band, theme)](bandColor(theme)),
80
113
  cursor: day.disabled ? 'not-allowed' : 'pointer',
81
- backgroundColor: backgroundFor(day),
82
114
  color: colorFor(day, visible),
83
115
  opacity: !day.inCurrentMonth && visible ? 0.5 : 1,
84
- fontWeight: day.today ? 'bold' : 'normal',
85
- '&:hover': {
116
+ fontWeight: day.today || isEndpoint(day) ? 'bold' : 'normal',
117
+ '&:nth-of-type(7n + 1)': { borderStartStartRadius: BAND_RADIUS, borderEndStartRadius: BAND_RADIUS },
118
+ '&:nth-of-type(7n)': { borderStartEndRadius: BAND_RADIUS, borderEndEndRadius: BAND_RADIUS },
119
+ '&::before': {
120
+ content: '""',
121
+ position: 'absolute',
122
+ inset: 0,
123
+ margin: 'auto',
124
+ zIndex: -1,
125
+ // A circle as tall as the cell: 40 design px at full size (FUT-3861).
126
+ height: '100%',
127
+ aspectRatio: '1 / 1',
128
+ maxWidth: '100%',
129
+ borderRadius: '50%',
130
+ backgroundColor: faceBackgroundFor(day),
131
+ },
132
+ '&:hover::before': {
86
133
  backgroundColor: hoverBackgroundFor(day),
87
134
  },
88
- '&:focus': {
135
+ '&:focus': { outline: 'none' },
136
+ '&:focus::before': {
89
137
  outline: (theme: Theme) => `${rem(theme, 2)} solid`,
90
138
  outlineColor: 'primary.main',
91
139
  outlineOffset: sxRem(1),
@@ -94,6 +142,7 @@ const dayCellSx = (day: DayRenderArgs, visible: boolean): SxProps<Theme> => ({
94
142
 
95
143
  export interface CalendarDayProps {
96
144
  day: DayRenderArgs;
145
+ band: DayBand;
97
146
  focused: boolean;
98
147
  showOutsideDays: boolean;
99
148
  dayClassName?: (args: DayRenderArgs) => string;
@@ -104,6 +153,7 @@ export interface CalendarDayProps {
104
153
 
105
154
  export const CalendarDay: FC<CalendarDayProps> = ({
106
155
  day,
156
+ band,
107
157
  focused,
108
158
  showOutsideDays,
109
159
  dayClassName,
@@ -127,7 +177,7 @@ export const CalendarDay: FC<CalendarDayProps> = ({
127
177
  onClick={() => onSelect(day.date)}
128
178
  onMouseEnter={() => onHover(day.date)}
129
179
  onMouseLeave={onHoverEnd}
130
- sx={dayCellSx(day, visible)}
180
+ sx={dayCellSx(day, band, visible)}
131
181
  >
132
182
  {day.selected && (
133
183
  <Box component="span" data-testid="calendar-selected-date" sx={{ display: 'none' }} />
@@ -1,6 +1,7 @@
1
1
  import type { FC } from 'react';
2
2
  import React from 'react';
3
3
 
4
+ import { bandFor } from './Calendar.band';
4
5
  import { isSameDay } from './Calendar.dates';
5
6
  import { buildDayArgs } from './Calendar.selection';
6
7
  import type { CalendarProps, DateRange, MonthMatrixDay, SelectionMode } from './Calendar.types';
@@ -41,6 +42,7 @@ export const CalendarDayCell: FC<DayCellContext & { day: MonthMatrixDay }> = ({
41
42
  return (
42
43
  <CalendarDay
43
44
  day={args}
45
+ band={bandFor({ args, ...context })}
44
46
  focused={isSameDay(args.date, focusedDate)}
45
47
  showOutsideDays={showOutsideDays}
46
48
  dayClassName={dayClassName}
@@ -17,12 +17,22 @@ import { CalendarDayCell } from './CalendarDayCell';
17
17
  const SPACER_WIDTH = sxRem(32);
18
18
 
19
19
  // `minmax(0, 1fr)`, not `1fr`: a bare `1fr` keeps each column at least its
20
- // content's width, which is what held the grid at 304px (FUT-3861).
21
- const GRID_SX = { display: 'grid', gridTemplateColumns: 'repeat(7, minmax(0, 1fr))', gap: 0.5 } as const;
20
+ // content's width, which is what held the grid at 304px (FUT-3861). No column
21
+ // gap: a selected range is one band across the days, and a gap cut it into
22
+ // tiles (FUT-4162). Rows keep theirs. Items centre in their column: the built-in
23
+ // day stretches across it, a host's `renderDay` cell sits in its middle.
24
+ const GRID_SX = {
25
+ display: 'grid',
26
+ justifyItems: 'center',
27
+ gridTemplateColumns: 'repeat(7, minmax(0, 1fr))',
28
+ columnGap: 0,
29
+ rowGap: 0.5,
30
+ } as const;
22
31
 
23
32
  /**
24
- * A month takes the room it is given, from nothing up to seven full cells and
25
- * their gaps (7 × 40 + 6 × 4 design px). Months side by side keep a 280 basis,
33
+ * A month takes the room it is given, from nothing up to seven full columns
34
+ * (304 design px: what 7 × 40 cells and 6 × 4 gaps came to before the gaps
35
+ * went, FUT-4162). Months side by side keep a 280 basis,
26
36
  * so a multi-month calendar still wraps rather than squeezing every month.
27
37
  */
28
38
  export const MONTH_SX = { flex: `1 1 ${sxRem(280)}`, minWidth: 0, maxWidth: sxRem(304) } as const;
@@ -88,6 +88,7 @@ function App() {
88
88
  | `showRecent` | `boolean` | `false` | Whether to show recent commands section |
89
89
  | `recentCommands` | `string[]` | - | Array of recent command IDs |
90
90
  | `onCommandExecute` | `(command: Command) => void` | - | Callback fired when a command is executed |
91
+ | `copy` | `CommandPaletteCopy` | - | **Required.** The palette's words (`PT_BR_COMMAND_PALETTE_COPY`, `EN_US_COMMAND_PALETTE_COPY`). `closeSearch` names the search row's ✕ for a screen reader; a pack without it falls back to "Close search" |
91
92
 
92
93
  ### Command Interface
93
94
 
@@ -80,9 +80,10 @@ const PaletteSearch: React.FC<{
80
80
  placeholder?: string;
81
81
  value: string;
82
82
  dataTestId?: string;
83
+ closeLabel: string;
83
84
  onChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
84
85
  onClose: () => void;
85
- }> = ({ inputRef, placeholder, value, dataTestId, onChange, onClose }) => (
86
+ }> = ({ inputRef, placeholder, value, dataTestId, closeLabel, onChange, onClose }) => (
86
87
  <SearchContainer>
87
88
  <SearchIcon sx={{ color: 'text.secondary', mr: 1 }} />
88
89
  <SearchInput
@@ -96,7 +97,7 @@ const PaletteSearch: React.FC<{
96
97
  spellCheck="false"
97
98
  inputProps={{ 'data-testid': `${dataTestId}-input` }}
98
99
  />
99
- <IconButton size="small" onClick={onClose} sx={{ ml: 1 }}>
100
+ <IconButton size="small" onClick={onClose} aria-label={closeLabel} sx={{ ml: 1 }}>
100
101
  <CloseIcon fontSize="small" />
101
102
  </IconButton>
102
103
  </SearchContainer>
@@ -190,6 +191,7 @@ export const CommandPalette: FC<CommandPaletteProps> = ({
190
191
  placeholder={placeholder ?? text.placeholder}
191
192
  value={searchQuery}
192
193
  dataTestId={dataTestId}
194
+ closeLabel={text.closeSearch}
193
195
  onChange={handleSearchChange}
194
196
  onClose={onClose}
195
197
  />
@@ -28,6 +28,8 @@ export interface CommandPaletteCopy {
28
28
  noCommandsFound?: (query: string) => string;
29
29
  /** The group header of a command that names no `category`. */
30
30
  general?: string;
31
+ /** The search row's ✕, as a screen reader names it (FUT-4162). */
32
+ closeSearch?: string;
31
33
  }
32
34
 
33
35
  /**
@@ -20,6 +20,7 @@ export const EN_US_COMMAND_PALETTE_COPY: Required<CommandPaletteCopy> = {
20
20
  commandCount: (count) => `${count} commands`,
21
21
  noCommandsFound: (query) => `No commands found for "${query}"`,
22
22
  general: "General",
23
+ closeSearch: "Close search",
23
24
  };
24
25
 
25
26
  export const EN_US_BREADCRUMB_COPY: BreadcrumbCopy = {
@@ -18,6 +18,7 @@ export const PT_BR_COMMAND_PALETTE_COPY: Required<CommandPaletteCopy> = {
18
18
  commandCount: (count) => (count === 1 ? "1 comando" : `${count} comandos`),
19
19
  noCommandsFound: (query) => `Nenhum comando encontrado para "${query}"`,
20
20
  general: "Geral",
21
+ closeSearch: "Fechar busca",
21
22
  };
22
23
 
23
24
  export const PT_BR_BREADCRUMB_COPY: BreadcrumbCopy = {
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/form/AddressAutocomplete/AddressAutocompleteField.tsx"],"sourcesContent":["import { EN_US_ADDRESS_AUTOCOMPLETE_COPY } from '../../../en-US.form';\nimport { resolveLabels } from '../../../utils/resolve-labels';\nimport Alert from '@mui/material/Alert/index.js';\nimport Autocomplete from '@mui/material/Autocomplete/index.js';\nimport Box from '@mui/material/Box/index.js';\nimport type { FC } from 'react';\nimport React from 'react';\n\nimport {\n addressOptionLabel,\n isSameAddressOption,\n MIN_QUERY_LENGTH,\n type ResolvedAddressProps,\n} from './AddressAutocomplete.helpers';\nimport type { AddressAutocompleteState } from './AddressAutocomplete.hooks';\nimport { AddressInputField } from './AddressInputField';\nimport { AddressOption } from './AddressOption';\nimport { AddressSuggestionsPaper } from './AddressSuggestionsPaper';\n\nexport type AddressAutocompleteFieldProps = ResolvedAddressProps & AddressAutocompleteState;\n\n// The live field, rendered once Google Maps (or the mock stand-in) is ready.\nexport const AddressAutocompleteField: FC<AddressAutocompleteFieldProps> = ({\n copy,\n variant,\n label,\n placeholder,\n icon,\n floating,\n error,\n helperText,\n disabled,\n required,\n fullWidth,\n getCurrentLocation,\n inputValue,\n options,\n loading,\n apiError,\n handleInputChange,\n handleSelect,\n handleGetCurrentLocation,\n}) => {\n const text = resolveLabels(EN_US_ADDRESS_AUTOCOMPLETE_COPY, copy);\n return (\n <Box data-testid=\"address-autocomplete-container\">\n <Autocomplete\n freeSolo\n options={options}\n inputValue={inputValue}\n onInputChange={handleInputChange}\n onChange={handleSelect}\n loading={loading}\n loadingText={text.loadingSuggestions}\n disabled={disabled}\n fullWidth={fullWidth}\n getOptionLabel={addressOptionLabel}\n isOptionEqualToValue={isSameAddressOption}\n PaperComponent={AddressSuggestionsPaper}\n noOptionsText={\n inputValue.length <= MIN_QUERY_LENGTH ? text.typeToSearch : text.noAddressesFound\n }\n renderOption={({ key, ...optionProps }, option, state) => (\n <AddressOption\n key={key}\n optionProps={optionProps}\n option={option}\n index={state.index}\n />\n )}\n renderInput={(params) => (\n <AddressInputField\n copy={copy}\n params={params}\n addressVariant={variant}\n label={floating ? undefined : label}\n placeholder={placeholder}\n icon={icon}\n error={error || !!apiError}\n helperText={apiError || helperText}\n required={required}\n disabled={disabled}\n loading={loading}\n showCurrentLocation={getCurrentLocation && !loading}\n onGetCurrentLocation={handleGetCurrentLocation}\n />\n )}\n />\n {apiError && (\n <Alert severity=\"warning\" sx={{ mt: 1 }}>\n {apiError}\n </Alert>\n )}\n </Box>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAEA,OAAO,WAAW;AAClB,OAAO,kBAAkB;AACzB,OAAO,SAAS;AAyCd,SAkBM,KAlBN;AAvBK,IAAM,2BAA8D,CAAC;AAAA,EAC1E;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,OAAO,cAAc,iCAAiC,IAAI;AAChE,SACA,qBAAC,OAAI,eAAY,kCACf;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,UAAQ;AAAA,QACR;AAAA,QACA;AAAA,QACA,eAAe;AAAA,QACf,UAAU;AAAA,QACV;AAAA,QACA,aAAa,KAAK;AAAA,QAClB;AAAA,QACA;AAAA,QACA,gBAAgB;AAAA,QAChB,sBAAsB;AAAA,QACtB,gBAAgB;AAAA,QAChB,eACE,WAAW,UAAU,mBAAmB,KAAK,eAAe,KAAK;AAAA,QAEnE,cAAc,CAAC,EAAE,KAAK,GAAG,YAAY,GAAG,QAAQ,UAC9C;AAAA,UAAC;AAAA;AAAA,YAEC;AAAA,YACA;AAAA,YACA,OAAO,MAAM;AAAA;AAAA,UAHR;AAAA,QAIP;AAAA,QAEF,aAAa,CAAC,WACZ;AAAA,UAAC;AAAA;AAAA,YACC;AAAA,YACA;AAAA,YACA,gBAAgB;AAAA,YAChB,OAAO,WAAW,SAAY;AAAA,YAC9B;AAAA,YACA;AAAA,YACA,OAAO,SAAS,CAAC,CAAC;AAAA,YAClB,YAAY,YAAY;AAAA,YACxB;AAAA,YACA;AAAA,YACA;AAAA,YACA,qBAAqB,sBAAsB,CAAC;AAAA,YAC5C,sBAAsB;AAAA;AAAA,QACxB;AAAA;AAAA,IAEJ;AAAA,IACC,YACC,oBAAC,SAAM,UAAS,WAAU,IAAI,EAAE,IAAI,EAAE,GACnC,oBACH;AAAA,KAEJ;AAEF;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/form/AddressAutocomplete/AddressSuggestionsPaper.tsx"],"sourcesContent":["import type { PaperProps } from '@mui/material/Paper/index.js';\nimport Paper from '@mui/material/Paper/index.js';\nimport { alpha, useTheme } from '@mui/material/styles/index.js';\nimport type { FC } from 'react';\nimport React from 'react';\n\nimport { rem } from '../../../tokens/relative';\n\n// The dropdown surface, frosted to match the glass field.\nexport const AddressSuggestionsPaper: FC<PaperProps> = (props) => {\n const theme = useTheme();\n\n return (\n <Paper\n {...props}\n elevation={8}\n data-testid=\"address-suggestions-dropdown\"\n sx={{\n mt: 1,\n background: `linear-gradient(135deg, ${alpha(theme.palette.background.paper, 0.98)} 0%, ${alpha(theme.palette.background.paper, 0.95)} 100%)`,\n backdropFilter: `blur(${rem(theme, 20)})`,\n WebkitBackdropFilter: `blur(${rem(theme, 20)})`,\n border: `1px solid ${alpha(theme.palette.divider, 0.18)}`,\n }}\n />\n );\n};\n"],"mappings":";;;;;AACA,OAAO,WAAW;AAClB,SAAS,OAAO,gBAAgB;AAW5B;AAJG,IAAM,0BAA0C,CAAC,UAAU;AAChE,QAAM,QAAQ,SAAS;AAEvB,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ,WAAW;AAAA,MACX,eAAY;AAAA,MACZ,IAAI;AAAA,QACF,IAAI;AAAA,QACJ,YAAY,2BAA2B,MAAM,MAAM,QAAQ,WAAW,OAAO,IAAI,CAAC,QAAQ,MAAM,MAAM,QAAQ,WAAW,OAAO,IAAI,CAAC;AAAA,QACrI,gBAAgB,QAAQ,IAAI,OAAO,EAAE,CAAC;AAAA,QACtC,sBAAsB,QAAQ,IAAI,OAAO,EAAE,CAAC;AAAA,QAC5C,QAAQ,aAAa,MAAM,MAAM,QAAQ,SAAS,IAAI,CAAC;AAAA,MACzD;AAAA;AAAA,EACF;AAEJ;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/form/Calendar/CalendarDayCell.tsx"],"sourcesContent":["import type { FC } from 'react';\nimport React from 'react';\n\nimport { isSameDay } from './Calendar.dates';\nimport { buildDayArgs } from './Calendar.selection';\nimport type { CalendarProps, DateRange, MonthMatrixDay, SelectionMode } from './Calendar.types';\nimport { CalendarDay } from './CalendarDay';\n\n// Everything a cell needs that is the same for every cell in the calendar.\nexport interface DayCellContext {\n selectionMode: SelectionMode;\n value: Date | null;\n range: DateRange;\n hoveredDate: Date | null;\n focusedDate: Date;\n today: Date;\n showOutsideDays: boolean;\n isDisabled: (date: Date) => boolean;\n renderDay?: CalendarProps['renderDay'];\n dayClassName?: CalendarProps['dayClassName'];\n onSelect: (date: Date) => void;\n onHover: (date: Date) => void;\n onHoverEnd: () => void;\n}\n\nexport const CalendarDayCell: FC<DayCellContext & { day: MonthMatrixDay }> = ({\n day,\n focusedDate,\n showOutsideDays,\n renderDay,\n dayClassName,\n onSelect,\n onHover,\n onHoverEnd,\n ...context\n}) => {\n const args = buildDayArgs({ day, ...context });\n\n if (renderDay) return <>{renderDay(args)}</>;\n\n return (\n <CalendarDay\n day={args}\n focused={isSameDay(args.date, focusedDate)}\n showOutsideDays={showOutsideDays}\n dayClassName={dayClassName}\n onSelect={onSelect}\n onHover={onHover}\n onHoverEnd={onHoverEnd}\n />\n );\n};\n"],"mappings":";;;;;;;;;;;AAsCwB;AAbjB,IAAM,kBAAgE,CAAC;AAAA,EAC5E;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM,OAAO,aAAa,EAAE,KAAK,GAAG,QAAQ,CAAC;AAE7C,MAAI,UAAW,QAAO,gCAAG,oBAAU,IAAI,GAAE;AAEzC,SACE;AAAA,IAAC;AAAA;AAAA,MACC,KAAK;AAAA,MACL,SAAS,UAAU,KAAK,MAAM,WAAW;AAAA,MACzC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,EACF;AAEJ;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/pt-BR.navigation.ts"],"sourcesContent":["/**\n * The pt-BR pack for the navigation family. Split out of `pt-BR.ts`, which is a\n * barrel over this folder — see that file for why.\n */\nimport type {\n BreadcrumbCopy,\n CommandPaletteCopy,\n SectionNavCopy,\n} from './copy';\n\nexport const PT_BR_COMMAND_PALETTE_COPY: Required<CommandPaletteCopy> = {\n execute: \"Executar\",\n navigate: \"↑↓ Navegar\",\n close: \"ESC Fechar\",\n recent: \"Recentes\",\n tryAnotherTerm: \"Tente outro termo\",\n placeholder: \"Digite um comando ou pesquise...\",\n commandCount: (count) => (count === 1 ? \"1 comando\" : `${count} comandos`),\n noCommandsFound: (query) => `Nenhum comando encontrado para \"${query}\"`,\n general: \"Geral\",\n};\n\nexport const PT_BR_BREADCRUMB_COPY: BreadcrumbCopy = {\n showMore: \"Mostrar mais\",\n moreItems: \"Mais itens\",\n};\n\nexport const PT_BR_SECTION_NAV_COPY: SectionNavCopy = {\n close: \"Fechar\",\n badge: (count) => (count === 1 ? \"1 pendente\" : `${count} pendentes`),\n attention: \"Precisa de atenção\",\n};\n"],"mappings":";AAUO,IAAM,6BAA2D;AAAA,EACtE,SAAS;AAAA,EACT,UAAU;AAAA,EACV,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,gBAAgB;AAAA,EAChB,aAAa;AAAA,EACb,cAAc,CAAC,UAAW,UAAU,IAAI,cAAc,GAAG,KAAK;AAAA,EAC9D,iBAAiB,CAAC,UAAU,mCAAmC,KAAK;AAAA,EACpE,SAAS;AACX;AAEO,IAAM,wBAAwC;AAAA,EACnD,UAAU;AAAA,EACV,WAAW;AACb;AAEO,IAAM,yBAAyC;AAAA,EACpD,OAAO;AAAA,EACP,OAAO,CAAC,UAAW,UAAU,IAAI,eAAe,GAAG,KAAK;AAAA,EACxD,WAAW;AACb;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/form/Calendar/CalendarDay.tsx"],"sourcesContent":["import type { SxProps, Theme } from '@mui/material/styles/index.js';\nimport Box from '@mui/material/Box/index.js';\nimport type { FC } from 'react';\nimport React from 'react';\n\nimport { rem, sxRem } from '../../../tokens/relative';\n\nimport type { DayRenderArgs } from './Calendar.types';\n\n/**\n * A day cell's LARGEST edge, 40 design px through the theme's type scale. The\n * cell is a square that fills its grid column up to this size, so the month\n * shrinks with its container instead of holding a fixed 304px floor (FUT-3861).\n */\nconst CELL_SIZE = sxRem(40);\n\ninterface DayState extends DayRenderArgs {\n outside: boolean;\n focused: boolean;\n}\n\n// Order matters: these land on the element in the order listed.\nconst CLASS_FLAGS: Array<[keyof DayState, string]> = [\n ['selected', 'selected'],\n ['inRange', 'in-range'],\n ['rangeStart', 'range-start'],\n ['rangeEnd', 'range-end'],\n ['disabled', 'disabled'],\n ['today', 'today'],\n ['outside', 'outside'],\n ['hovered', 'hovered'],\n ['focused', 'focused'],\n];\n\nconst dayClassNames = (state: DayState, custom?: string): string =>\n [\n 'calendar-day',\n ...CLASS_FLAGS.filter(([flag]) => state[flag]).map(([, name]) => name),\n ...(custom ? [custom] : []),\n ].join(' ');\n\nconst isEndpoint = (day: DayRenderArgs): boolean =>\n day.selected || day.rangeStart || day.rangeEnd;\n\nconst backgroundFor = (day: DayRenderArgs): string => {\n if (isEndpoint(day)) return 'primary.main';\n if (day.inRange || day.hovered) return 'primary.light';\n return 'transparent';\n};\n\nconst colorFor = (day: DayRenderArgs, visible: boolean): string => {\n if (isEndpoint(day)) return 'primary.contrastText';\n if (day.disabled) return 'text.disabled';\n // Outside days that are switched off still occupy the grid, they just have\n // nothing to show.\n if (!visible) return 'transparent';\n return 'text.primary';\n};\n\nconst hoverBackgroundFor = (day: DayRenderArgs): string | undefined => {\n if (day.disabled) return undefined;\n return day.selected ? 'primary.dark' : 'action.hover';\n};\n\nconst dayCellSx = (day: DayRenderArgs, visible: boolean): SxProps<Theme> => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n // 40 is the size it ASKS for, so the month's intrinsic width stays 304 and a\n // shrink-wrapping parent (the picker is inline-flex) still sizes to it; the\n // column's `minmax(0, 1fr)` and this `maxWidth` let it give way below that.\n width: CELL_SIZE,\n maxWidth: '100%',\n aspectRatio: '1 / 1',\n justifySelf: 'center',\n boxSizing: 'border-box',\n padding: 0,\n border: 'none',\n borderRadius: 1,\n cursor: day.disabled ? 'not-allowed' : 'pointer',\n backgroundColor: backgroundFor(day),\n color: colorFor(day, visible),\n opacity: !day.inCurrentMonth && visible ? 0.5 : 1,\n fontWeight: day.today ? 'bold' : 'normal',\n '&:hover': {\n backgroundColor: hoverBackgroundFor(day),\n },\n '&:focus': {\n outline: (theme: Theme) => `${rem(theme, 2)} solid`,\n outlineColor: 'primary.main',\n outlineOffset: sxRem(1),\n },\n});\n\nexport interface CalendarDayProps {\n day: DayRenderArgs;\n focused: boolean;\n showOutsideDays: boolean;\n dayClassName?: (args: DayRenderArgs) => string;\n onSelect: (date: Date) => void;\n onHover: (date: Date) => void;\n onHoverEnd: () => void;\n}\n\nexport const CalendarDay: FC<CalendarDayProps> = ({\n day,\n focused,\n showOutsideDays,\n dayClassName,\n onSelect,\n onHover,\n onHoverEnd,\n}) => {\n const visible = day.inCurrentMonth || showOutsideDays;\n const state: DayState = { ...day, outside: !day.inCurrentMonth, focused };\n\n return (\n <Box\n component=\"button\"\n role=\"gridcell\"\n tabIndex={focused ? 0 : -1}\n aria-selected={day.selected}\n aria-disabled={day.disabled}\n aria-current={day.today ? 'date' : undefined}\n className={dayClassNames(state, dayClassName?.(day))}\n data-testid={`calendar-date-${day.date.getDate()}`}\n onClick={() => onSelect(day.date)}\n onMouseEnter={() => onHover(day.date)}\n onMouseLeave={onHoverEnd}\n sx={dayCellSx(day, visible)}\n >\n {day.selected && (\n <Box component=\"span\" data-testid=\"calendar-selected-date\" sx={{ display: 'none' }} />\n )}\n {day.today && (\n <Box component=\"span\" data-testid=\"calendar-today\" sx={{ display: 'none' }} />\n )}\n {visible ? day.date.getDate() : ''}\n </Box>\n );\n};\n"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/form/Calendar/CalendarMonth.tsx"],"sourcesContent":["import ChevronLeft from '@mui/icons-material/ChevronLeft';\nimport ChevronRight from '@mui/icons-material/ChevronRight';\nimport Box from '@mui/material/Box/index.js';\nimport IconButton from '@mui/material/IconButton/index.js';\nimport Typography from '@mui/material/Typography/index.js';\nimport type { FC } from 'react';\nimport React from 'react';\n\nimport { sxRem } from '../../../tokens/relative';\n\nimport { getMonthName } from './Calendar.dates';\nimport type { CalendarProps, MonthMatrix } from './Calendar.types';\nimport type { DayCellContext } from './CalendarDayCell';\nimport { CalendarDayCell } from './CalendarDayCell';\n\n/** The nav spacer's width and the weekday row's height, 32 design px through the type scale. */\nconst SPACER_WIDTH = sxRem(32);\n\n// `minmax(0, 1fr)`, not `1fr`: a bare `1fr` keeps each column at least its\n// content's width, which is what held the grid at 304px (FUT-3861).\nconst GRID_SX = { display: 'grid', gridTemplateColumns: 'repeat(7, minmax(0, 1fr))', gap: 0.5 } as const;\n\n/**\n * A month takes the room it is given, from nothing up to seven full cells and\n * their gaps (7 × 40 + 6 × 4 design px). Months side by side keep a 280 basis,\n * so a multi-month calendar still wraps rather than squeezing every month.\n */\nexport const MONTH_SX = { flex: `1 1 ${sxRem(280)}`, minWidth: 0, maxWidth: sxRem(304) } as const;\n\n// Only the outermost months carry arrows; the ones between get a spacer so their\n// titles stay centred.\nconst MonthNavHeader: FC<{\n title: React.ReactNode;\n showPrevious: boolean;\n showNext: boolean;\n onPreviousMonth: () => void;\n onNextMonth: () => void;\n}> = ({ title, showPrevious, showNext, onPreviousMonth, onNextMonth }) => (\n <Box\n sx={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', mb: 2 }}\n data-testid=\"calendar-header\"\n >\n {showPrevious && (\n <IconButton onClick={onPreviousMonth} size=\"small\" data-testid=\"calendar-prev-month\">\n <ChevronLeft />\n </IconButton>\n )}\n\n <Typography\n variant=\"h6\"\n component=\"h2\"\n sx={{ fontWeight: 'bold', flex: 1, textAlign: 'center' }}\n >\n {title}\n </Typography>\n\n {showNext && (\n <IconButton onClick={onNextMonth} size=\"small\" data-testid=\"calendar-next-month\">\n <ChevronRight />\n </IconButton>\n )}\n\n {!showPrevious && !showNext && <Box sx={{ width: SPACER_WIDTH }} />}\n </Box>\n);\n\nconst WeekdayHeader: FC<{ weekdayNames: string[] }> = ({ weekdayNames }) => (\n <Box sx={{ ...GRID_SX, mb: 1 }}>\n {weekdayNames.map((weekday, index) => (\n <Box\n // Narrow weekday names repeat within a week ('S', 'T'), so position is\n // the only stable key here.\n key={`weekday-${index}`}\n role=\"columnheader\"\n data-testid={`calendar-weekday-${index}`}\n sx={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: SPACER_WIDTH,\n fontSize: sxRem(14),\n fontWeight: 'bold',\n color: 'text.secondary',\n }}\n >\n {weekday}\n </Box>\n ))}\n </Box>\n);\n\n/** The weekday row and the day grid under a month's caption. */\nexport const MonthDays: FC<{\n matrix: MonthMatrix;\n monthIndex: number;\n weekdayNames: string[];\n dayContext: DayCellContext;\n}> = ({ matrix, monthIndex, weekdayNames, dayContext }) => (\n <>\n <WeekdayHeader weekdayNames={weekdayNames} />\n\n <Box\n role=\"grid\"\n aria-labelledby={`month-${monthIndex}`}\n data-testid=\"calendar-grid\"\n sx={GRID_SX}\n >\n {matrix.weeks.flat().map((day) => (\n <CalendarDayCell key={day.key} day={day} {...dayContext} />\n ))}\n </Box>\n </>\n);\n\nexport interface CalendarMonthProps {\n matrix: MonthMatrix;\n monthIndex: number;\n monthsToShow: number;\n locale: string;\n weekdayNames: string[];\n renderHeader?: CalendarProps['renderHeader'];\n onPreviousMonth: () => void;\n onNextMonth: () => void;\n dayContext: DayCellContext;\n}\n\nexport const CalendarMonth: FC<CalendarMonthProps> = ({\n matrix,\n monthIndex,\n monthsToShow,\n locale,\n weekdayNames,\n renderHeader,\n onPreviousMonth,\n onNextMonth,\n dayContext,\n}) => {\n const monthName = getMonthName(matrix.month, matrix.year, locale);\n const title = renderHeader ? renderHeader({ month: matrix.month, year: matrix.year }) : monthName;\n\n return (\n /* The month is addressable by its position, because in a multi-month\n calendar every day number appears once PER MONTH — `calendar-date-5` is\n January's 5th and February's. Without a per-month hook a test can only\n reach a day positionally, which is exactly what the flakiness gate\n refuses. Additive: `calendar-grid` below is unchanged. */\n <Box sx={MONTH_SX} data-testid={`calendar-month-${monthIndex}`}>\n <MonthNavHeader\n title={title}\n showPrevious={monthIndex === 0}\n showNext={monthIndex === monthsToShow - 1}\n onPreviousMonth={onPreviousMonth}\n onNextMonth={onNextMonth}\n />\n\n <MonthDays\n matrix={matrix}\n monthIndex={monthIndex}\n weekdayNames={weekdayNames}\n dayContext={dayContext}\n />\n </Box>\n );\n};\n"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/navigation/CommandPalette/CommandPalette.tsx"],"sourcesContent":["import { EN_US_COMMAND_PALETTE_COPY } from '../../../en-US.navigation';\nimport { resolveLabels } from '../../../utils/resolve-labels';\nimport CloseIcon from '@mui/icons-material/Close';\nimport EnterIcon from '@mui/icons-material/KeyboardReturn';\nimport SearchIcon from '@mui/icons-material/Search';\nimport Box from '@mui/material/Box/index.js';\nimport Dialog from '@mui/material/Dialog/index.js';\nimport DialogContent from '@mui/material/DialogContent/index.js';\nimport IconButton from '@mui/material/IconButton/index.js';\nimport InputBase from '@mui/material/InputBase/index.js';\nimport Paper from '@mui/material/Paper/index.js';\nimport Slide from '@mui/material/Slide/index.js';\nimport Typography from '@mui/material/Typography/index.js';\nimport { alpha, styled, useTheme } from '@mui/material/styles/index.js';\nimport type { TransitionProps } from '@mui/material/transitions/index.js';\nimport type { FC} from 'react';\nimport React, { } from 'react';\n\nimport { useCommandPalette } from './CommandPalette.hooks';\nimport { PaletteResults } from './CommandPaletteResults';\nimport { ShortcutChip } from './ShortcutChip';\nimport type { CommandPaletteProps } from './CommandPalette.types';\nimport type { CommandPaletteCopy } from '../../../copy';\nimport { scrim } from '../../../tokens/ink';\nimport { rem, sxRem } from '../../../tokens/relative';\n\n// Styled components\nconst StyledDialog = styled(Dialog)(({ theme }) => ({\n '& .MuiBackdrop-root': {\n backgroundColor: scrim(theme, 0.6),\n backdropFilter: `blur(${rem(theme, 4)})` },\n '& .MuiDialog-paper': {\n position: 'fixed',\n top: '20%',\n margin: 0,\n maxHeight: 'none',\n background: 'transparent',\n boxShadow: 'none',\n overflow: 'visible' } }));\n\nconst PaletteContainer = styled(Paper)(({ theme }) => ({\n width: '100%',\n // 640 is the desktop width (FUT-3347); below it the palette takes the dialog's\n // own width, which already keeps MUI's 32px gutters, so a phone sees it whole.\n maxWidth: `min(${rem(theme, 640)}, 100%)`,\n background: `linear-gradient(135deg, ${alpha(theme.palette.background.paper, 0.98)} 0%, ${alpha(theme.palette.background.paper, 0.95)} 100%)`,\n backdropFilter: `blur(${rem(theme, 20)})`,\n WebkitBackdropFilter: `blur(${rem(theme, 20)})`,\n border: `1px solid ${alpha(theme.palette.divider, 0.18)}`,\n borderRadius: theme.shape.borderRadius * 2,\n overflow: 'hidden',\n boxShadow: theme.shadows[24] }));\n\nconst SearchContainer = styled(Box)(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n padding: theme.spacing(2),\n borderBottom: `1px solid ${alpha(theme.palette.divider, 0.12)}`,\n background: alpha(theme.palette.background.default, 0.4) }));\n\nconst SearchInput = styled(InputBase)(({ theme }) => ({\n flex: 1,\n fontSize: rem(theme, 18),\n fontWeight: 400,\n '& input': {\n padding: theme.spacing(0, 1),\n '&::placeholder': {\n color: theme.palette.text.secondary,\n opacity: 0.8 } } }));\n\nconst Transition = React.forwardRef<unknown, TransitionProps & { children: React.ReactElement }>(\n function Transition(props, ref) {\n return <Slide direction=\"down\" ref={ref} {...props} />;\n },\n);\n\n// Main component\nconst PaletteSearch: React.FC<{\n inputRef: React.Ref<HTMLInputElement>;\n placeholder?: string;\n value: string;\n dataTestId?: string;\n onChange: (event: React.ChangeEvent<HTMLInputElement>) => void;\n onClose: () => void;\n}> = ({ inputRef, placeholder, value, dataTestId, onChange, onClose }) => (\n <SearchContainer>\n <SearchIcon sx={{ color: 'text.secondary', mr: 1 }} />\n <SearchInput\n ref={inputRef}\n placeholder={placeholder}\n value={value}\n onChange={onChange}\n autoComplete=\"off\"\n autoCorrect=\"off\"\n autoCapitalize=\"off\"\n spellCheck=\"false\"\n inputProps={{ 'data-testid': `${dataTestId}-input` }}\n />\n <IconButton size=\"small\" onClick={onClose} sx={{ ml: 1 }}>\n <CloseIcon fontSize=\"small\" />\n </IconButton>\n </SearchContainer>\n);\n\nconst PaletteFooter: React.FC<{ commandCount: number; copy: CommandPaletteCopy }> = ({\n commandCount,\n copy,\n}) => {\n const theme = useTheme();\n const text = resolveLabels(EN_US_COMMAND_PALETTE_COPY, copy);\n\n return (\n <Box\n sx={{\n display: 'flex',\n // Wraps the count under the hints on a phone; one row on desktop.\n flexWrap: 'wrap',\n gap: 1,\n justifyContent: 'space-between',\n alignItems: 'center',\n padding: 1,\n borderTop: `1px solid ${alpha(theme.palette.divider, 0.12)}`,\n background: alpha(theme.palette.background.default, 0.4) }}\n >\n <Box sx={{ display: 'flex', flexWrap: 'wrap', gap: 1 }}>\n <ShortcutChip\n icon={<EnterIcon sx={{ fontSize: sxRem(12) }} />}\n label={copy.execute}\n size=\"small\"\n />\n <ShortcutChip label={copy.navigate} size=\"small\" />\n <ShortcutChip label={copy.close} size=\"small\" />\n </Box>\n <Typography variant=\"caption\" color=\"text.secondary\">\n {text.commandCount(commandCount)}\n </Typography>\n </Box>\n );\n};\n\nexport const CommandPalette: FC<CommandPaletteProps> = ({\n copy,\n open,\n onClose,\n commands,\n placeholder,\n width,\n maxHeight,\n showRecent = true,\n recentCommands = [],\n onCommandExecute,\n dataTestId = 'command-palette' }) => {\n const text = resolveLabels(EN_US_COMMAND_PALETTE_COPY, copy);\n const {\n searchQuery,\n setSearchQuery,\n selectedIndex,\n setSelectedIndex,\n searchInputRef,\n listRef,\n filteredCommands,\n groupedCommands,\n executeCommand,\n recentCommandIds } = useCommandPalette({\n open,\n commands,\n showRecent,\n recentCommands,\n onCommandExecute,\n onClose,\n generalLabel: text.general });\n\n const handleSearchChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n setSearchQuery(event.target.value);\n };\n\n return (\n <StyledDialog\n open={open}\n onClose={onClose}\n TransitionComponent={Transition}\n maxWidth={false}\n fullWidth\n data-testid={dataTestId}\n >\n <DialogContent sx={{ overflow: 'visible', p: 0 }}>\n <PaletteContainer elevation={24} sx={{ width: width ?? sxRem(640), maxHeight: maxHeight ?? sxRem(400) }}>\n <PaletteSearch\n inputRef={searchInputRef}\n placeholder={placeholder ?? text.placeholder}\n value={searchQuery}\n dataTestId={dataTestId}\n onChange={handleSearchChange}\n onClose={onClose}\n />\n\n <PaletteResults\n copy={copy}\n listRef={listRef}\n dataTestId={dataTestId}\n searchQuery={searchQuery}\n showRecent={showRecent}\n commands={commands}\n recentCommandIds={recentCommandIds}\n filteredCommands={filteredCommands}\n groupedCommands={groupedCommands}\n selectedIndex={selectedIndex}\n onSelect={setSelectedIndex}\n onExecute={executeCommand}\n />\n\n <PaletteFooter copy={copy} commandCount={filteredCommands.length} />\n </PaletteContainer>\n </DialogContent>\n </StyledDialog>\n );\n};\n\n// Export default\nexport default CommandPalette;\n"],"mappings":"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","names":["Transition"]}