@nxgt/material 3.94.0 → 3.95.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 (391) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/README.md +6 -2
  3. package/dist/{alert-dialog-BaqK-rmd.js → alert-dialog-D4r0Kn9h.js} +1 -1
  4. package/dist/{async-slice-BfNpIJAH.js → async-slice-Bx438UlG.js} +1 -1
  5. package/dist/{button-CozGHXAv.js → button-Z_xcg10A.js} +1 -1
  6. package/dist/{calculator-BIx6cwgU.js → calculator-DGxClOmW.js} +10 -10
  7. package/dist/calculator-field.js +6 -6
  8. package/dist/{calculator-segment-BsaxUtzL.js → calculator-segment-DQE1EFdw.js} +1 -1
  9. package/dist/calculator.js +1 -1
  10. package/dist/charts.js +3 -3
  11. package/dist/{chip-DMEUGYdC.js → chip-Bb9SM3Ly.js} +2 -2
  12. package/dist/{code-editor-BWfky-aN.js → code-editor-Cw-dOrn2.js} +4 -4
  13. package/dist/code-editor.js +4 -4
  14. package/dist/{code-language-items-BUaNYJuw.js → code-language-items-BVfxGKiv.js} +2 -2
  15. package/dist/components/components.css +7 -1
  16. package/dist/components/theme-tokens.css +7 -0
  17. package/dist/components/ui/dates/duration-field/duration-field-expressive.css +2 -63
  18. package/dist/components/ui/dates/picker-trigger/typed-box-expressive.css +30 -21
  19. package/dist/components/ui/fields/number-field/number-field-score.css +151 -0
  20. package/dist/components/ui/fields/quantity-field/quantity-field.css +117 -0
  21. package/dist/components/ui/primitives/field-box/field-box-parts.css +1 -2
  22. package/dist/components/ui/primitives/field-box/field-box-tokens.css +54 -36
  23. package/dist/components/ui/primitives/field-box/field-box.css +44 -86
  24. package/dist/components/ui/primitives/field-box/field-stepper.css +129 -0
  25. package/dist/{components-CZpdAQMh.js → components-5n6qa3vr.js} +13787 -13699
  26. package/dist/components.js +26 -27
  27. package/dist/{conversion-variant-aIBhul_U.js → conversion-variant-BjIJep32.js} +4 -4
  28. package/dist/currency-field-DzLtJtDI.js +303 -0
  29. package/dist/{dialog-H40HjqXN.js → dialog-CFuONiW5.js} +3 -3
  30. package/dist/dnd.js +1 -1
  31. package/dist/{dropdown-menu-CawkIlW8.js → dropdown-menu-BvtBDoSD.js} +1 -1
  32. package/dist/editor.js +8 -8
  33. package/dist/{empty-state-sRVjgCis.js → empty-state-n2zb23YG.js} +1 -1
  34. package/dist/{financial-variant-Bqo9-swy.js → financial-variant-CniddOSL.js} +7 -7
  35. package/dist/{hooks-BTj_WJm9.js → hooks-zyRsvilJ.js} +2 -2
  36. package/dist/hooks.js +2 -2
  37. package/dist/{hover-card-BZU1DWGY.js → hover-card-BJ15hu7B.js} +1 -1
  38. package/dist/i18n.js +3 -3
  39. package/dist/{icon-badge-CXgvqMsM.js → icon-badge-B2ns44Cz.js} +1 -1
  40. package/dist/{icon-button-B9WjQ3RO.js → icon-button-BG438okX.js} +1 -1
  41. package/dist/lib/components/ui/fields/contacts/placeholders.d.ts +1 -1
  42. package/dist/lib/components/ui/fields/number-field/number-control.d.ts +10 -3
  43. package/dist/lib/components/ui/fields/number-field/number-field-base.d.ts +2 -0
  44. package/dist/lib/components/ui/fields/number-field/number-field.d.ts +7 -1
  45. package/dist/lib/components/ui/fields/number-field/number-field.types.d.ts +13 -0
  46. package/dist/lib/components/ui/fields/number-field/number-score-control.d.ts +19 -0
  47. package/dist/lib/components/ui/fields/number-field/number-stepper.d.ts +16 -2
  48. package/dist/lib/components/ui/fields/quantity-field/quantity-field.d.ts +4 -3
  49. package/dist/lib/components/ui/fields/quantity-field/quantity-row.d.ts +5 -9
  50. package/dist/lib/components/ui/fields/quantity-field/quantity-unit-menu.d.ts +19 -0
  51. package/dist/lib/components/ui/fields/quantity-field/quantity-unit.d.ts +11 -4
  52. package/dist/lib/components/ui/fields/quantity-field/use-unit-chip-name.d.ts +14 -0
  53. package/dist/lib/components/ui/fields/switch/partials/switch-row.d.ts +2 -2
  54. package/dist/lib/components/ui/fields/switch/switch.d.ts +2 -2
  55. package/dist/lib/components/ui/fields/text-field/text-field-units.d.ts +22 -0
  56. package/dist/lib/components/ui/fields/text-field/text-field.d.ts +9 -0
  57. package/dist/lib/components/ui/fields/verification-code/partials/code-surface.d.ts +13 -6
  58. package/dist/lib/components/ui/fields/verification-code/partials/recovery-input.d.ts +1 -1
  59. package/dist/lib/components/ui/layout/app-shell/app-sidebar-group.d.ts +12 -0
  60. package/dist/lib/components/ui/layout/app-shell/types.d.ts +7 -0
  61. package/dist/lib/components/ui/primitives/input-group/input-group.d.ts +1 -1
  62. package/dist/lib/i18n/resources/en/en.d.ts +5 -0
  63. package/dist/lib/i18n/resources/en/material.json.d.ts +7 -2
  64. package/dist/lib/i18n/resources/fr/fr.d.ts +5 -0
  65. package/dist/lib/i18n/resources/fr/material.json.d.ts +7 -2
  66. package/dist/lib/i18n/resources/resources.d.ts +10 -0
  67. package/dist/lib/i18n/translator.d.ts +1 -1
  68. package/dist/lib.js +1 -1
  69. package/dist/main.js +32 -33
  70. package/dist/map.js +8 -8
  71. package/dist/material.css +1 -1
  72. package/dist/pdf-reader.js +1 -1
  73. package/dist/percent-field-CeDpzUTS.js +137 -0
  74. package/dist/{picker-surface-D2aYI4v7.js → picker-surface-Cr2n42qv.js} +4 -4
  75. package/dist/{popover-QQYPWzw6.js → popover-XBAX2Shp.js} +1 -1
  76. package/dist/{pos-types-BIeZGGAs.js → pos-types-BFVWeJki.js} +1 -1
  77. package/dist/{pos-variant-Cdn1AVoA.js → pos-variant-DWB8Bc12.js} +4 -4
  78. package/dist/print.js +1 -1
  79. package/dist/{programmer-variant-CMBybkqw.js → programmer-variant-B-wPnDeX.js} +2 -2
  80. package/dist/{public-CPxFxbi4.js → public-D1bH-KPQ.js} +9 -9
  81. package/dist/{rich-code-block-DKJ8eKzL.js → rich-code-block-DP2RT7pV.js} +5 -5
  82. package/dist/{scientific-variant-CXL1ayb7.js → scientific-variant-BP08Mo0g.js} +2 -2
  83. package/dist/{sortable-provider-BYqwwyr1.js → sortable-provider-CHGZrS0f.js} +2 -2
  84. package/dist/{spinner-D7ol2n_-.js → spinner-rk8J5y9O.js} +1 -1
  85. package/dist/styles.css +2 -0
  86. package/dist/{tabs-DyiFTy5g.js → tabs-nuYLggwC.js} +1 -1
  87. package/dist/text-field-DxKSPY0T.js +154 -0
  88. package/dist/theme-picker.js +2 -2
  89. package/dist/{theme-toggle-QZ0bIrg9.js → theme-toggle-5waw9Wk8.js} +1 -1
  90. package/dist/{toolbar-items-BpOEBsSt.js → toolbar-items-Bo-nMzKJ.js} +4 -4
  91. package/dist/{translate-material-DlMetRSJ.js → translate-material-H5GMStyF.js} +1 -1
  92. package/dist/{translator-VtzVrnLm.js → translator-gdpQeToI.js} +14 -4
  93. package/dist/{use-chat-composer-DQ2rTD_q.js → use-chat-composer-yTODkjut.js} +23 -24
  94. package/dist/{use-heading-spy-17B5xa7B.js → use-heading-spy-n_wPa5jC.js} +4 -4
  95. package/dist/{use-material-translation-Cx5u36V5.js → use-material-translation-BW5HZMwt.js} +1 -1
  96. package/dist/{use-return-focus-S7g7q_Yn.js → use-return-focus-BC4sGh1b.js} +1 -1
  97. package/docs/README.md +1 -0
  98. package/docs/components/date-and-time.md +25 -23
  99. package/docs/components/form-fields.md +80 -26
  100. package/docs/components/navigation-and-layout.md +1 -1
  101. package/docs/guides/app-shell.md +15 -0
  102. package/docs/guides/field-look-2-x.md +10 -4
  103. package/docs/guides/field-look-refined.md +130 -0
  104. package/docs/guides/layouts.md +2 -1
  105. package/docs/guides/theming.md +39 -31
  106. package/docs/previews/backgrounds-icons-quiet-band.webp +0 -0
  107. package/docs/previews/backgrounds-icons.webp +0 -0
  108. package/docs/previews/backgrounds-matrix.webp +0 -0
  109. package/docs/previews/buttons-actions-actioncard.webp +0 -0
  110. package/docs/previews/buttons-actions-backlink.webp +0 -0
  111. package/docs/previews/buttons-actions-button.webp +0 -0
  112. package/docs/previews/buttons-actions-buttongroup.webp +0 -0
  113. package/docs/previews/buttons-actions-fab.webp +0 -0
  114. package/docs/previews/buttons-actions-fabmenu.webp +0 -0
  115. package/docs/previews/buttons-actions-iconbutton.webp +0 -0
  116. package/docs/previews/buttons-actions-languageswitcher.webp +0 -0
  117. package/docs/previews/buttons-actions-linkbutton.webp +0 -0
  118. package/docs/previews/buttons-actions-loadmorebutton.webp +0 -0
  119. package/docs/previews/buttons-actions-loadmorefooter.webp +0 -0
  120. package/docs/previews/buttons-actions-responsivebutton.webp +0 -0
  121. package/docs/previews/buttons-actions-scrolltolatestbutton.webp +0 -0
  122. package/docs/previews/buttons-actions-scrolltotop.webp +0 -0
  123. package/docs/previews/buttons-actions-splitbutton.webp +0 -0
  124. package/docs/previews/buttons-actions-themetoggle.webp +0 -0
  125. package/docs/previews/buttons-actions-toolbar-density-and-keyboard.webp +0 -0
  126. package/docs/previews/buttons-actions-toolbar.webp +0 -0
  127. package/docs/previews/data-display-accordioncard.webp +0 -0
  128. package/docs/previews/data-display-apiendpoint.webp +0 -0
  129. package/docs/previews/data-display-apioperation.webp +0 -0
  130. package/docs/previews/data-display-avatar.webp +0 -0
  131. package/docs/previews/data-display-badge.webp +0 -0
  132. package/docs/previews/data-display-card-presets.webp +0 -0
  133. package/docs/previews/data-display-changehistory.webp +0 -0
  134. package/docs/previews/data-display-chip.webp +0 -0
  135. package/docs/previews/data-display-codegroup.webp +0 -0
  136. package/docs/previews/data-display-description.webp +0 -0
  137. package/docs/previews/data-display-enrolmentcard.webp +0 -0
  138. package/docs/previews/data-display-enrolmentsecret.webp +0 -0
  139. package/docs/previews/data-display-metric-cards.webp +0 -0
  140. package/docs/previews/data-display-periodcards.webp +0 -0
  141. package/docs/previews/data-display-recoverycodes.webp +0 -0
  142. package/docs/previews/data-display-recoverycodesstatus.webp +0 -0
  143. package/docs/previews/data-display-secretcard.webp +0 -0
  144. package/docs/previews/data-display-terminal.webp +0 -0
  145. package/docs/previews/data-display-timeline.webp +0 -0
  146. package/docs/previews/data-display-tonevalue.webp +0 -0
  147. package/docs/previews/data-display-votetally.webp +0 -0
  148. package/docs/previews/data-table-filter-lists-datagrid.webp +0 -0
  149. package/docs/previews/data-table-filter-lists-datatable.webp +0 -0
  150. package/docs/previews/data-table-filter-lists-daygroupedlist.webp +0 -0
  151. package/docs/previews/data-table-filter-lists-drag-and-drop.webp +0 -0
  152. package/docs/previews/data-table-filter-lists-facetgroup.webp +0 -0
  153. package/docs/previews/data-table-filter-lists-filter.webp +0 -0
  154. package/docs/previews/data-table-filter-lists-listempty.webp +0 -0
  155. package/docs/previews/data-table-filter-lists-listpane.webp +0 -0
  156. package/docs/previews/data-table-filter-lists-markinglist.webp +0 -0
  157. package/docs/previews/data-table-filter-lists-pagination.webp +0 -0
  158. package/docs/previews/data-table-filter-lists-servertable.webp +0 -0
  159. package/docs/previews/data-table-filter-lists-tree.webp +0 -0
  160. package/docs/previews/date-time-agefield.webp +0 -0
  161. package/docs/previews/date-time-calendar-expressive.webp +0 -0
  162. package/docs/previews/date-time-calendar.webp +0 -0
  163. package/docs/previews/date-time-datefield.webp +0 -0
  164. package/docs/previews/date-time-daterangefield.webp +0 -0
  165. package/docs/previews/date-time-durationfield.webp +0 -0
  166. package/docs/previews/date-time-fields-expressive.webp +0 -0
  167. package/docs/previews/date-time-halfdayrangefield.webp +0 -0
  168. package/docs/previews/date-time-nowindicator.webp +0 -0
  169. package/docs/previews/date-time-timefield.webp +0 -0
  170. package/docs/previews/date-time-timepicker-tiles.webp +0 -0
  171. package/docs/previews/date-time-timepicker.webp +0 -0
  172. package/docs/previews/feedback-status-alert.webp +0 -0
  173. package/docs/previews/feedback-status-alertdialog.webp +0 -0
  174. package/docs/previews/feedback-status-celebration.webp +0 -0
  175. package/docs/previews/feedback-status-circularprogress.webp +0 -0
  176. package/docs/previews/feedback-status-confirmationdialog.webp +0 -0
  177. package/docs/previews/feedback-status-confirmdialog.webp +0 -0
  178. package/docs/previews/feedback-status-countdowntimer.webp +0 -0
  179. package/docs/previews/feedback-status-customalertdialog.webp +0 -0
  180. package/docs/previews/feedback-status-customdialog.webp +0 -0
  181. package/docs/previews/feedback-status-emptystate.webp +0 -0
  182. package/docs/previews/feedback-status-errorstate.webp +0 -0
  183. package/docs/previews/feedback-status-hydrateloading.webp +0 -0
  184. package/docs/previews/feedback-status-illustration-education.webp +0 -0
  185. package/docs/previews/feedback-status-illustration-game.webp +0 -0
  186. package/docs/previews/feedback-status-illustration-health.webp +0 -0
  187. package/docs/previews/feedback-status-illustration.webp +0 -0
  188. package/docs/previews/feedback-status-notificationrow.webp +0 -0
  189. package/docs/previews/feedback-status-notifications.webp +0 -0
  190. package/docs/previews/feedback-status-pageloadfailed.webp +0 -0
  191. package/docs/previews/feedback-status-progress.webp +0 -0
  192. package/docs/previews/feedback-status-skeleton.webp +0 -0
  193. package/docs/previews/feedback-status-spinner.webp +0 -0
  194. package/docs/previews/feedback-status-stalenotice.webp +0 -0
  195. package/docs/previews/feedback-status-stepupdialog-retry.webp +0 -0
  196. package/docs/previews/feedback-status-stepupdialog.webp +0 -0
  197. package/docs/previews/feedback-status-toast.webp +0 -0
  198. package/docs/previews/feedback-status-typingindicator.webp +0 -0
  199. package/docs/previews/feedback-status-unsaveddialog.webp +0 -0
  200. package/docs/previews/form-fields-attributes.webp +0 -0
  201. package/docs/previews/form-fields-choicelistfield.webp +0 -0
  202. package/docs/previews/form-fields-colorfield.webp +0 -0
  203. package/docs/previews/form-fields-contacts.webp +0 -0
  204. package/docs/previews/form-fields-countryfield.webp +0 -0
  205. package/docs/previews/form-fields-currencyfield.webp +0 -0
  206. package/docs/previews/form-fields-emailfield.webp +0 -0
  207. package/docs/previews/form-fields-field.webp +0 -0
  208. package/docs/previews/form-fields-formsection.webp +0 -0
  209. package/docs/previews/form-fields-inlineedit.webp +0 -0
  210. package/docs/previews/form-fields-inputgroupfield.webp +0 -0
  211. package/docs/previews/form-fields-localizedtextfields.webp +0 -0
  212. package/docs/previews/form-fields-markdowntextareafield.webp +0 -0
  213. package/docs/previews/form-fields-numberfield.webp +0 -0
  214. package/docs/previews/form-fields-openinghours.webp +0 -0
  215. package/docs/previews/form-fields-otpfield.webp +0 -0
  216. package/docs/previews/form-fields-passwordfield.webp +0 -0
  217. package/docs/previews/form-fields-percentfield.webp +0 -0
  218. package/docs/previews/form-fields-phonefield.webp +0 -0
  219. package/docs/previews/form-fields-postaladdress.webp +0 -0
  220. package/docs/previews/form-fields-repeatablegroup.webp +0 -0
  221. package/docs/previews/form-fields-searchfield.webp +0 -0
  222. package/docs/previews/form-fields-slider.webp +0 -0
  223. package/docs/previews/form-fields-switch.webp +0 -0
  224. package/docs/previews/form-fields-textareafield.webp +0 -0
  225. package/docs/previews/form-fields-textfield.webp +0 -0
  226. package/docs/previews/form-fields-timezonefield.webp +0 -0
  227. package/docs/previews/form-fields-urlfield.webp +0 -0
  228. package/docs/previews/form-fields-verificationcode.webp +0 -0
  229. package/docs/previews/foundations-themes-gallery.webp +0 -0
  230. package/docs/previews/foundations-themes-icon-motifs.webp +0 -0
  231. package/docs/previews/foundations-themes-nesting.webp +0 -0
  232. package/docs/previews/foundations-themes-provider.webp +0 -0
  233. package/docs/previews/foundations-themes-themepicker.webp +0 -0
  234. package/docs/previews/guides-i18n-i18nprovider.webp +0 -0
  235. package/docs/previews/guides-i18n-translated-components.webp +0 -0
  236. package/docs/previews/media-files-audioplayer.webp +0 -0
  237. package/docs/previews/media-files-camera.webp +0 -0
  238. package/docs/previews/media-files-carousel.webp +0 -0
  239. package/docs/previews/media-files-filelist.webp +0 -0
  240. package/docs/previews/media-files-filelistfield.webp +0 -0
  241. package/docs/previews/media-files-filepreview.webp +0 -0
  242. package/docs/previews/media-files-gallery-image-lists.webp +0 -0
  243. package/docs/previews/media-files-gallery-video.webp +0 -0
  244. package/docs/previews/media-files-gallery-viewer.webp +0 -0
  245. package/docs/previews/media-files-gallery.webp +0 -0
  246. package/docs/previews/media-files-imagecropper.webp +0 -0
  247. package/docs/previews/media-files-imageeditor.webp +0 -0
  248. package/docs/previews/media-files-imagefield.webp +0 -0
  249. package/docs/previews/media-files-lightboxgallery.webp +0 -0
  250. package/docs/previews/media-files-map.webp +0 -0
  251. package/docs/previews/media-files-mediaplayer.webp +0 -0
  252. package/docs/previews/media-files-mediaplayerhost.webp +0 -0
  253. package/docs/previews/media-files-mediaplayerlightbox.webp +0 -0
  254. package/docs/previews/media-files-mediaplayermini.webp +0 -0
  255. package/docs/previews/media-files-minigallery.webp +0 -0
  256. package/docs/previews/media-files-pdfreader.webp +0 -0
  257. package/docs/previews/media-files-uploadfield.webp +0 -0
  258. package/docs/previews/navigation-layout-appshell-blue-moon.webp +0 -0
  259. package/docs/previews/navigation-layout-appshell-footer-icon.webp +0 -0
  260. package/docs/previews/navigation-layout-appshell-menu-badge.webp +0 -0
  261. package/docs/previews/navigation-layout-appshell-page-ground.webp +0 -0
  262. package/docs/previews/navigation-layout-appshell-themes.webp +0 -0
  263. package/docs/previews/navigation-layout-appshell.webp +0 -0
  264. package/docs/previews/navigation-layout-authcard-split.webp +0 -0
  265. package/docs/previews/navigation-layout-authcard.webp +0 -0
  266. package/docs/previews/navigation-layout-background.webp +0 -0
  267. package/docs/previews/navigation-layout-breadcrumb.webp +0 -0
  268. package/docs/previews/navigation-layout-doc-api.webp +0 -0
  269. package/docs/previews/navigation-layout-doc-blocks.webp +0 -0
  270. package/docs/previews/navigation-layout-doc.webp +0 -0
  271. package/docs/previews/navigation-layout-editorlayout.webp +0 -0
  272. package/docs/previews/navigation-layout-hero.webp +0 -0
  273. package/docs/previews/navigation-layout-landinglayout.webp +0 -0
  274. package/docs/previews/navigation-layout-listdetailslayout.webp +0 -0
  275. package/docs/previews/navigation-layout-pager.webp +0 -0
  276. package/docs/previews/navigation-layout-recordpage.webp +0 -0
  277. package/docs/previews/navigation-layout-settingslayout.webp +0 -0
  278. package/docs/previews/navigation-layout-sidebar.webp +0 -0
  279. package/docs/previews/navigation-layout-steps.webp +0 -0
  280. package/docs/previews/navigation-layout-stickyactionbar.webp +0 -0
  281. package/docs/previews/navigation-layout-threadlayout-pages.webp +0 -0
  282. package/docs/previews/navigation-layout-toc.webp +0 -0
  283. package/docs/previews/overlays-menus-contextmenu.webp +0 -0
  284. package/docs/previews/overlays-menus-dialog.webp +0 -0
  285. package/docs/previews/overlays-menus-drawer.webp +0 -0
  286. package/docs/previews/overlays-menus-dropdownmenu.webp +0 -0
  287. package/docs/previews/overlays-menus-hovercard.webp +0 -0
  288. package/docs/previews/overlays-menus-popover.webp +0 -0
  289. package/docs/previews/overlays-menus-sheet.webp +0 -0
  290. package/docs/previews/overlays-menus-tooltip.webp +0 -0
  291. package/docs/previews/primitives-accordion.webp +0 -0
  292. package/docs/previews/primitives-card.webp +0 -0
  293. package/docs/previews/primitives-collapsible.webp +0 -0
  294. package/docs/previews/primitives-extendedlabel.webp +0 -0
  295. package/docs/previews/primitives-helpertext.webp +0 -0
  296. package/docs/previews/primitives-input.webp +0 -0
  297. package/docs/previews/primitives-inputgroup.webp +0 -0
  298. package/docs/previews/primitives-label.webp +0 -0
  299. package/docs/previews/primitives-scrollarea.webp +0 -0
  300. package/docs/previews/primitives-segmentednav.webp +0 -0
  301. package/docs/previews/primitives-tabs.webp +0 -0
  302. package/docs/previews/primitives-tabsnav.webp +0 -0
  303. package/docs/previews/primitives-textarea.webp +0 -0
  304. package/docs/previews/primitives-toggle.webp +0 -0
  305. package/docs/previews/primitives-togglegroup.webp +0 -0
  306. package/docs/previews/primitives-typography.webp +0 -0
  307. package/docs/previews/rich-widgets-calculator-conversion.webp +0 -0
  308. package/docs/previews/rich-widgets-chat-action-proposal.webp +0 -0
  309. package/docs/previews/rich-widgets-chat-advanced.webp +0 -0
  310. package/docs/previews/rich-widgets-chat-composer.webp +0 -0
  311. package/docs/previews/rich-widgets-chat-inbox.webp +0 -0
  312. package/docs/previews/rich-widgets-chat-overview.webp +0 -0
  313. package/docs/previews/rich-widgets-chat-thread.webp +0 -0
  314. package/docs/previews/rich-widgets-chat-widget.webp +0 -0
  315. package/docs/previews/rich-widgets-codeeditor.webp +0 -0
  316. package/docs/previews/rich-widgets-compacteditor.webp +0 -0
  317. package/docs/previews/rich-widgets-documenteditor.webp +0 -0
  318. package/docs/previews/rich-widgets-drawing.webp +0 -0
  319. package/docs/previews/rich-widgets-emojipicker.webp +0 -0
  320. package/docs/previews/rich-widgets-eventcalendar.webp +0 -0
  321. package/docs/previews/rich-widgets-kanban-phone-layout.webp +0 -0
  322. package/docs/previews/rich-widgets-kanban.webp +0 -0
  323. package/docs/previews/rich-widgets-mentionlist.webp +0 -0
  324. package/docs/previews/rich-widgets-native-charts-areachart.webp +0 -0
  325. package/docs/previews/rich-widgets-native-charts-barchart.webp +0 -0
  326. package/docs/previews/rich-widgets-native-charts-combochart.webp +0 -0
  327. package/docs/previews/rich-widgets-native-charts-donutchart.webp +0 -0
  328. package/docs/previews/rich-widgets-native-charts-funnelchart.webp +0 -0
  329. package/docs/previews/rich-widgets-native-charts-heatmapchart.webp +0 -0
  330. package/docs/previews/rich-widgets-native-charts-linechart-reference.webp +0 -0
  331. package/docs/previews/rich-widgets-native-charts-linechart.webp +0 -0
  332. package/docs/previews/rich-widgets-native-charts-palette.webp +0 -0
  333. package/docs/previews/rich-widgets-native-charts-piechart.webp +0 -0
  334. package/docs/previews/rich-widgets-native-charts-radarchart.webp +0 -0
  335. package/docs/previews/rich-widgets-native-charts-radialbarchart.webp +0 -0
  336. package/docs/previews/rich-widgets-native-charts-scatterchart.webp +0 -0
  337. package/docs/previews/rich-widgets-questioncard-rich-content.webp +0 -0
  338. package/docs/previews/rich-widgets-questionmediaview.webp +0 -0
  339. package/docs/previews/rich-widgets-questionnavigator.webp +0 -0
  340. package/docs/previews/rich-widgets-quiz.webp +0 -0
  341. package/docs/previews/rich-widgets-richchatcomposer.webp +0 -0
  342. package/docs/previews/rich-widgets-richtexteditor.webp +0 -0
  343. package/docs/previews/rich-widgets-richtextviewer.webp +0 -0
  344. package/docs/previews/selection-choice-autocomplete.webp +0 -0
  345. package/docs/previews/selection-choice-checkbox.webp +0 -0
  346. package/docs/previews/selection-choice-checkboxgroup.webp +0 -0
  347. package/docs/previews/selection-choice-checkcardfield.webp +0 -0
  348. package/docs/previews/selection-choice-chipgroupfield.webp +0 -0
  349. package/docs/previews/selection-choice-choicecardgroup.webp +0 -0
  350. package/docs/previews/selection-choice-combobox.webp +0 -0
  351. package/docs/previews/selection-choice-comboboxfield.webp +0 -0
  352. package/docs/previews/selection-choice-optiontile.webp +0 -0
  353. package/docs/previews/selection-choice-radiogroup.webp +0 -0
  354. package/docs/previews/selection-choice-select.webp +0 -0
  355. package/docs/previews/selection-choice-selectfield.webp +0 -0
  356. package/docs/previews/selection-choice-sortablelist.webp +0 -0
  357. package/docs/previews/selection-choice-switcher.webp +0 -0
  358. package/docs/previews/selection-choice-transferlist.webp +0 -0
  359. package/docs/previews/selection-choice-treeselectfield.webp +0 -0
  360. package/docs/roadmap.md +13 -10
  361. package/docs/troubleshooting.md +44 -0
  362. package/lib/components/components.css +7 -1
  363. package/lib/components/theme-tokens.css +7 -0
  364. package/lib/components/ui/dates/duration-field/duration-field-expressive.css +2 -63
  365. package/lib/components/ui/dates/picker-trigger/typed-box-expressive.css +30 -21
  366. package/lib/components/ui/fields/number-field/number-field-score.css +151 -0
  367. package/lib/components/ui/fields/quantity-field/quantity-field.css +117 -0
  368. package/lib/components/ui/primitives/field-box/field-box-parts.css +1 -2
  369. package/lib/components/ui/primitives/field-box/field-box-tokens.css +54 -36
  370. package/lib/components/ui/primitives/field-box/field-box.css +44 -86
  371. package/lib/components/ui/primitives/field-box/field-stepper.css +129 -0
  372. package/lib/styles.css +2 -0
  373. package/lib/themes/ambre.css +5 -1
  374. package/lib/themes/ardoise.css +5 -1
  375. package/lib/themes/bleumono.css +5 -1
  376. package/lib/themes/bluemoon.css +5 -1
  377. package/lib/themes/corail.css +5 -1
  378. package/lib/themes/foret.css +5 -1
  379. package/lib/themes/lavande.css +5 -1
  380. package/lib/themes/menthe.css +5 -1
  381. package/lib/themes/ocean.css +5 -1
  382. package/lib/themes/pink.css +5 -1
  383. package/lib/themes/prune.css +5 -1
  384. package/lib/themes/sable.css +5 -1
  385. package/lib/themes/slate.css +5 -1
  386. package/lib/themes/teal.css +5 -1
  387. package/package.json +2 -2
  388. package/dist/currency-field-IcEMAcAw.js +0 -289
  389. package/dist/input-group-Df9vp2EZ.js +0 -70
  390. package/dist/percent-field-DrI4_J7x.js +0 -14
  391. package/dist/text-field-BAdY-kpO.js +0 -59
@@ -1,10 +1,17 @@
1
+ import { ReactNode } from 'react';
1
2
  import { NumberFieldProps } from './number-field.types.js';
2
3
  /**
3
- * A NumberField's row: the "Decrease" button, the text input, the "Increase"
4
- * button; a suffix sits inside the input's box, as its end adornment. The
4
+ * A NumberField's box, an InputGroup (role "group"): the value end-aligned in
5
+ * tabular figures, the suffix hugging it, then the "Decrease" and "Increase"
6
+ * buttons as a tinted round pair inside the box at the end (tab order: input,
7
+ * Decrease, Increase). The
5
8
  * field's label, its help and its ids are the caller's.
6
9
  */
7
- export declare function NumberControl({ error, disabled, value, defaultValue, onChange, onBlur, min, max, step, hideSteppers, suffix, stepperName, ...input }: Omit<NumberFieldProps, 'label' | 'helperText' | 'className'> & {
10
+ export declare function NumberControl({ error, disabled, value, defaultValue, onChange, onBlur, min, max, step, hideSteppers, suffix, stepperName, endAdornment, valueAlign, ...input }: Omit<NumberFieldProps, 'label' | 'helperText' | 'className'> & {
8
11
  /** The field's plain-text name, appended to the steppers' own ("Increase Quantity"). */
9
12
  stepperName?: string;
13
+ /** A part of the same box between the value and the steppers (QuantityField's unit chip). */
14
+ endAdornment?: ReactNode;
15
+ /** Where the value reads: `end` (default) or `start`, when a part follows it. */
16
+ valueAlign?: 'start' | 'end';
10
17
  }): import("react").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { NumberFieldProps } from './number-field.types.js';
2
+ export declare function NumberFieldBase({ label, helperText, error, required, className, name, id, 'aria-describedby': ariaDescribedBy, variant: _variant, tone: _tone, locked: _locked, lockedReason: _lockedReason, ...control }: NumberFieldProps): import("react").JSX.Element;
@@ -1,2 +1,8 @@
1
1
  import { NumberFieldProps } from './number-field.types.js';
2
- export declare function NumberField({ label, helperText, error, required, className, name, id, 'aria-describedby': ariaDescribedBy, ...control }: NumberFieldProps): import("react").JSX.Element;
2
+ /**
3
+ * A number field. `variant="score"` draws a big value out of its max; the
4
+ * default is the boxed field (`NumberFieldBase`, which a field that never
5
+ * scores, such as CalculatorField, imports on its own to keep the score code
6
+ * out of its bundle).
7
+ */
8
+ export declare function NumberField(props: NumberFieldProps): import("react").JSX.Element;
@@ -1,4 +1,5 @@
1
1
  import { FocusEventHandler, ReactNode, Ref } from 'react';
2
+ import { Tone } from '../../tones.js';
2
3
  export type NumberFieldProps = {
3
4
  label?: ReactNode;
4
5
  helperText?: ReactNode;
@@ -17,6 +18,18 @@ export type NumberFieldProps = {
17
18
  max?: number;
18
19
  step?: number;
19
20
  hideSteppers?: boolean;
21
+ /**
22
+ * `default` is the boxed field with its steppers. `score` is a big tabular
23
+ * value with its maximum (`suffix`, "/ 20") on the same baseline, no box at
24
+ * rest, no steppers.
25
+ */
26
+ variant?: 'default' | 'score';
27
+ /** `score` only: the caller-set tone, drawn as text colour plus a shape marker (never colour alone). */
28
+ tone?: Tone;
29
+ /** `score` only: read-only and muted, a dashed frame and a lock. */
30
+ locked?: boolean;
31
+ /** `score` only: why it is locked, shown under the value and wired by `aria-describedby`. */
32
+ lockedReason?: ReactNode;
20
33
  suffix?: ReactNode;
21
34
  /** Names the input when it has no `label` of its own (a part of a larger field). */
22
35
  'aria-label'?: string;
@@ -0,0 +1,19 @@
1
+ import { ReactNode } from 'react';
2
+ import { NumberFieldProps } from './number-field.types.js';
3
+ /** The marker of a tone: success a circle, warning a triangle, error a diamond, any other a square. */
4
+ export declare function scoreShape(tone: string | undefined): "circle" | "square" | "diamond" | "triangle";
5
+ /**
6
+ * The `score` variant's box: a big tabular value with its maximum (`suffix`,
7
+ * "/ 20") on the same baseline, no box at rest, a hairline on hover and the
8
+ * focus ring on focus. A tone is the caller's: its text colour plus a shape
9
+ * marker (never colour alone). A locked score is read-only, muted, dashed, with
10
+ * a lock; its reason is wired by `aria-describedby` (`reasonId`).
11
+ */
12
+ export declare function NumberScoreControl({ error, disabled, locked, reasonId, tone, value, defaultValue, onChange, onBlur, min, max, step, suffix, hideSteppers: _hideSteppers, ...input }: Omit<NumberFieldProps, 'label' | 'helperText' | 'className' | 'variant'> & {
13
+ reasonId?: string;
14
+ }): import("react").JSX.Element;
15
+ /** Why a score is locked, under the value; the input names it in `aria-describedby`. */
16
+ export declare function ScoreReason({ id, children, }: {
17
+ id: string;
18
+ children?: ReactNode;
19
+ }): import("react").JSX.Element | null;
@@ -9,11 +9,25 @@ export declare function stepperTooltipMayOpen({ hovered, focused, focusVisible,
9
9
  focused: boolean;
10
10
  focusVisible: boolean;
11
11
  }): boolean;
12
- /** A NumberField's "Decrease" or "Increase" button. */
13
- export declare function NumberStepper({ direction, label, disabled, onStep, }: {
12
+ /** A NumberField's "Decrease" or "Increase" button: one of the tinted round pair at the end of its box. */
13
+ export declare function NumberStepper({ direction, label, disabled, atLimit, onStep, className, }: {
14
+ className?: string;
14
15
  direction: -1 | 1;
15
16
  label: string;
17
+ /** The whole field is disabled (native `disabled`). */
16
18
  disabled?: boolean;
19
+ /** At `min` / `max`: `aria-disabled`, so a held button keeps focus and its tooltip. */
20
+ atLimit?: boolean;
21
+ onStep: (direction: -1 | 1) => void;
22
+ }): import("react").JSX.Element;
23
+ /** The "Decrease" and "Increase" buttons as a tinted round pair (DurationField's look, field-stepper.css), one addon at the end of the NumberField's box. */
24
+ export declare function NumberStepperPair({ decreaseLabel, increaseLabel, atMin, atMax, fieldDisabled, onStep, }: {
25
+ decreaseLabel: string;
26
+ increaseLabel: string;
27
+ atMin?: boolean;
28
+ atMax?: boolean;
29
+ /** The whole field is disabled: native `disabled`, and the circles lose their tint. */
30
+ fieldDisabled?: boolean;
17
31
  onStep: (direction: -1 | 1) => void;
18
32
  }): import("react").JSX.Element;
19
33
  /** The steppers' names: "Increase Quantity" once the field has a name, else "Increase". */
@@ -1,8 +1,9 @@
1
1
  import { QuantityFieldProps } from './types.js';
2
2
  /**
3
3
  * One labelled field holding an amount and its unit: a group named by the one
4
- * label, a NumberField's number (locale decimal, min, max, step, steppers named
5
- * after the field), a unit picker (or a typed unit), and one message under the
6
- * pair. The value is `{ value, unit }`.
4
+ * label, and ONE field box holding a NumberField's number (locale decimal, min,
5
+ * max, step, steppers named after the field), the unit as a chip that opens a
6
+ * menu (a search and a typed unit with `allowCustomUnit`), and one message
7
+ * under the box. The value is `{ value, unit }`.
7
8
  */
8
9
  export declare function QuantityField({ label, helperText, className, value, defaultValue, onChange, unitLabel, 'aria-label': ariaLabel, ...props }: QuantityFieldProps): import("react").JSX.Element;
@@ -6,17 +6,13 @@ type QuantityRowProps = Pick<QuantityFieldProps, 'name' | 'id' | 'placeholder' |
6
6
  ariaLabel?: string;
7
7
  describedBy?: string;
8
8
  unitName: string;
9
+ unitNamed?: boolean;
9
10
  stepperName?: string;
10
11
  };
11
12
  /**
12
- * The longest label of `units`: an invisible copy of it, in the unit part's
13
- * grid cell, makes the part as wide as that label (plus the trigger's padding
14
- * and chevron) with no inline style. The part is never under 7rem nor over 55%
15
- * of the row, and it shrinks before the number does (the number's cell keeps
16
- * 9rem: two 44px steppers and a 44px input), so the input stays a tap target at
17
- * 375px; the select truncates and titles its value beyond the cap.
13
+ * The value, the unit chip and the steppers in ONE field box: the value at the
14
+ * start in tabular figures, the unit as a soft chip (capped at 52% of the box,
15
+ * it truncates before the value does), then the tinted round −/+ pair.
18
16
  */
19
- export declare function longestUnitLabel(units?: QuantityFieldProps['units']): string;
20
- /** The pair on one line: the unit part shrinks first, the number (NumberControl's row) keeps 9rem. */
21
- export declare function QuantityRow({ name, current, change, labelId, ariaLabel, describedBy, unitName, stepperName, unitPlaceholder, units, allowCustomUnit, ...props }: QuantityRowProps): import("react").JSX.Element;
17
+ export declare function QuantityRow({ name, current, change, labelId, ariaLabel, describedBy, unitName, unitNamed, stepperName, unitPlaceholder, units, allowCustomUnit, ...props }: QuantityRowProps): import("react").JSX.Element;
22
18
  export {};
@@ -0,0 +1,19 @@
1
+ import { QuantityUnit } from './types.js';
2
+ /**
3
+ * The unit menu: a listbox of `units` with the chosen one checked. With
4
+ * `allowCustom` a search input sits on top and a "Use “x”" item offers what
5
+ * was typed. cmdk gives the arrows, Enter and the filter.
6
+ */
7
+ export declare function QuantityUnitMenu({ units, unit, allowCustom, name, onPick, rootRef, }: {
8
+ units: QuantityUnit[];
9
+ unit: string;
10
+ allowCustom?: boolean;
11
+ /** Names the listbox. */
12
+ name: string;
13
+ onPick: (unit: string) => void;
14
+ rootRef: (element: HTMLDivElement | null) => void;
15
+ }): import("react").JSX.Element;
16
+ /** The popover around the menu, end-aligned; focus lands on the search or the list. */
17
+ export declare function QuantityUnitPopup({ label, onPick, ...menu }: Omit<Parameters<typeof QuantityUnitMenu>[0], 'name' | 'rootRef'> & {
18
+ label: string;
19
+ }): import("react").JSX.Element;
@@ -1,12 +1,19 @@
1
1
  import { QuantityFieldProps } from './types.js';
2
- type QuantityUnitProps = Pick<QuantityFieldProps, 'units' | 'allowCustomUnit' | 'disabled' | 'required' | 'error'> & {
2
+ type QuantityUnitProps = Pick<QuantityFieldProps, 'units' | 'allowCustomUnit' | 'disabled'> & {
3
3
  unit: string;
4
4
  onUnit: (unit: string) => void;
5
5
  name?: string;
6
+ /** Names the unit part ("Dose unit"): the menu's name, and the chip's when `chipName` is set. */
6
7
  label: string;
8
+ /** The chip's own prefix when the caller named the part (`unitLabel`). */
9
+ named?: boolean;
7
10
  placeholder?: string;
8
- describedBy?: string;
9
11
  };
10
- /** A quantity's unit: a picker over `units`, or a text input suggesting them. */
11
- export declare function QuantityUnitPicker({ units, allowCustomUnit, disabled, required, error, unit, onUnit, name, label, placeholder, describedBy, }: QuantityUnitProps): import("react").JSX.Element;
12
+ /**
13
+ * A quantity's unit as a soft chip inside the field's box, before the steppers.
14
+ * It opens a menu end-aligned under it: a listbox of `units`, or with
15
+ * `allowCustomUnit` a search input and a "Use “x”" item. A unit outside
16
+ * `units` shows as typed. The chip is named "Unit: <label>".
17
+ */
18
+ export declare function QuantityUnitChip({ units, allowCustomUnit, disabled, unit, onUnit, name, label, named, placeholder, }: QuantityUnitProps): import("react").JSX.Element;
12
19
  export {};
@@ -0,0 +1,14 @@
1
+ import { QuantityUnit } from './types.js';
2
+ /** What the unit chip shows, and its accessible name ("Unit: mg", "Age unit: months"). */
3
+ export declare function useUnitChipName({ units, unit, label, named, placeholder, }: {
4
+ units: QuantityUnit[];
5
+ unit: string;
6
+ label: string;
7
+ named?: boolean;
8
+ placeholder?: string;
9
+ }): {
10
+ known: QuantityUnit | undefined;
11
+ shown: string;
12
+ text: string;
13
+ name: string;
14
+ };
@@ -6,11 +6,11 @@ export type SwitchRowProps = {
6
6
  text: ReactNode;
7
7
  isChecked: boolean;
8
8
  error?: boolean;
9
- /** `plain` draws the row without the field box: no border, no tint. */
9
+ /** `plain` draws the row without the field box: no border. */
10
10
  variant?: 'box' | 'plain';
11
11
  className?: string;
12
12
  /** The switch itself. */
13
13
  children: ReactNode;
14
14
  };
15
- /** The bordered row (or, `plain`, the unboxed one): its text, tinted while checked, then the switch. */
15
+ /** The bordered row (or, `plain`, the unboxed one): its text, then the switch. The row carries `data-checked`; the checked state shows in the track, the thumb and the primary label. */
16
16
  export declare function SwitchRow({ id, rowTextId, text, isChecked, error, variant, className, children, }: SwitchRowProps): import("react").JSX.Element;
@@ -6,9 +6,9 @@ export type SwitchProps = {
6
6
  helperText?: ReactNode;
7
7
  placeholder?: ReactNode;
8
8
  /**
9
- * How a labelled switch is drawn: `box` (default) is the bordered, tinted
9
+ * How a labelled switch is drawn: `box` (default) is the bordered
10
10
  * row of an input; `plain` keeps the label beside the switch with no
11
- * border and no tint. Without a `label` or `placeholder` it changes nothing.
11
+ * border. Without a `label` or `placeholder` it changes nothing.
12
12
  */
13
13
  variant?: 'box' | 'plain';
14
14
  } & SwitchControlProps;
@@ -0,0 +1,22 @@
1
+ import { ReactNode } from 'react';
2
+ import { InputProps } from '../../primitives/input/input.js';
3
+ /**
4
+ * What the hidden mirror measures: the value (the caller's when controlled,
5
+ * what was typed when not, the default after a form reset), else the
6
+ * placeholder. A password is measured as bullets, never as its text.
7
+ */
8
+ export declare function mirrorText(type: string | undefined, value: string, placeholder: string | undefined): string;
9
+ /**
10
+ * The field box of a TextField with a text unit ("#", "/ 20", "kg"): a flex
11
+ * row of leading, input and trailing, all inside one box. Each side is an
12
+ * `InputGroupAddon` (a click on it focuses the input); a text unit is muted,
13
+ * 0.25rem from the value, and an element (an icon, an icon button) keeps its
14
+ * 32px (44px on a touch screen) size. With a trailing unit the input is sized
15
+ * to its content (a hidden mirror in the same grid cell, so it needs no
16
+ * `field-sizing`), which puts the unit right after the last character;
17
+ * without one the input fills the row. Internal.
18
+ */
19
+ export declare function TextFieldUnits({ leading, trailing, ...props }: InputProps & {
20
+ leading?: ReactNode;
21
+ trailing?: ReactNode;
22
+ }): import("react").JSX.Element;
@@ -3,7 +3,16 @@ import { InputProps } from '../../primitives/input/input.js';
3
3
  export type TextFieldProps = {
4
4
  label?: ReactNode;
5
5
  helperText?: ReactNode;
6
+ /**
7
+ * Before the value. An element (an icon, an icon button) is muted, with no
8
+ * well fill; text ("#") is a muted unit that hugs the value.
9
+ */
6
10
  leading?: ReactNode;
11
+ /**
12
+ * After the value. An element (an icon, an icon button) is muted, with no
13
+ * well fill; text ("/ 20", "kg") is a muted unit that sits right after the
14
+ * value, which the input is sized to.
15
+ */
7
16
  trailing?: ReactNode;
8
17
  error?: boolean;
9
18
  } & InputProps;
@@ -1,12 +1,19 @@
1
1
  /**
2
2
  * The look the code field's two controls share, the six slots and the
3
- * recovery code's text input: a tinted fill (`foreground` at 6%, 10% in dark)
3
+ * recovery code's text input: the field card fill
4
4
  * inside a hairline ring that holds 3:1 against the card in both themes
5
- * (WCAG 1.4.11), a 2px primary ring over the page background while active,
5
+ * (WCAG 1.4.11; the field border tokens, firmer on hover), a 1px primary ring
6
+ * with the 4px field halo over the page background while active,
6
7
  * and a soft error tint. The ring is a transparent border in forced colours,
7
8
  * where a box-shadow is dropped.
8
9
  */
9
- export declare const SURFACE = "border border-transparent bg-foreground/6 ring-1 ring-inset ring-foreground/50 transition-[box-shadow,background-color,color] duration-150 dark:bg-foreground/10 dark:ring-foreground/45 forced-colors:border-[ButtonText]";
10
- export declare const SURFACE_ACTIVE = "bg-background ring-2 ring-primary-indicator dark:bg-background forced-colors:border-[Highlight]";
11
- export declare const SURFACE_ERROR = "bg-error/10 text-error-text ring-error/75 dark:bg-error/20 dark:ring-error/90 forced-colors:border-[LinkText]";
12
- export declare const SURFACE_LOCKED = "bg-foreground/4 text-muted-foreground ring-foreground/20 dark:bg-foreground/6 dark:ring-foreground/20 forced-colors:border-[GrayText]";
10
+ export declare const SURFACE = "border border-transparent bg-(--nxgt-field-bg) ring-1 ring-inset ring-(--nxgt-field-border) hover:ring-(--nxgt-field-border-hover) transition-[box-shadow,background-color,color] duration-150 forced-colors:border-[ButtonText]";
11
+ /** The focus of a slot (the active one): the field box's 1px border and 4px halo. */
12
+ export declare const SURFACE_ACTIVE = "bg-background ring-1 ring-(--nxgt-field-focus) hover:ring-(--nxgt-field-focus) shadow-[0_0_0_4px_var(--nxgt-field-halo)] dark:bg-background forced-colors:border-[Highlight]";
13
+ /** The same focus on an input (the recovery code), on `:focus-visible`. */
14
+ export declare const FOCUS = "focus-visible:bg-background focus-visible:ring-(--nxgt-field-focus) focus-visible:shadow-[0_0_0_4px_var(--nxgt-field-halo)]";
15
+ export declare const SURFACE_ERROR = "bg-error/10 text-error-text ring-(--nxgt-field-error) hover:ring-(--nxgt-field-error) dark:bg-error/20 forced-colors:border-[LinkText]";
16
+ /** An error's focus: the error ring and its halo, no primary. */
17
+ export declare const SURFACE_ACTIVE_ERROR = "ring-(--nxgt-field-error) hover:ring-(--nxgt-field-error) shadow-[0_0_0_4px_var(--nxgt-field-halo-invalid)]";
18
+ export declare const FOCUS_ERROR = "focus-visible:ring-(--nxgt-field-error) focus-visible:shadow-[0_0_0_4px_var(--nxgt-field-halo-invalid)]";
19
+ export declare const SURFACE_LOCKED = "bg-foreground/4 text-muted-foreground ring-(--nxgt-field-border-disabled) hover:ring-(--nxgt-field-border-disabled) dark:bg-foreground/6 forced-colors:border-[GrayText]";
@@ -2,6 +2,6 @@ import { ComponentProps } from 'react';
2
2
  type Props = {
3
3
  state: 'idle' | 'error' | 'locked';
4
4
  } & Omit<ComponentProps<'input'>, 'type'>;
5
- /** The recovery code's text input, with the slots' tinted fill and ring. */
5
+ /** The recovery code's text input, with the slots' card fill and ring. */
6
6
  export declare function RecoveryInput({ state, className, ...props }: Props): import("react").JSX.Element;
7
7
  export {};
@@ -0,0 +1,12 @@
1
+ import { AppShellLinkComponent, MenuItem } from './types.js';
2
+ /**
3
+ * An entry of the expanded sidebar whose `children` fold (`defaultExpanded`
4
+ * set): the entry's row with a chevron button after it, then the children
5
+ * nested, hidden (out of the tab order too) while folded. The state is local, and a folded group opens at first when its current page is a child:
6
+ * the server render and the first client render both follow `defaultExpanded`.
7
+ */
8
+ export declare function AppSidebarGroup({ item, activeUrl, linkComponent, }: {
9
+ item: MenuItem;
10
+ activeUrl?: string;
11
+ linkComponent: AppShellLinkComponent;
12
+ }): import("react").JSX.Element;
@@ -66,6 +66,13 @@ export type MenuItem = {
66
66
  * like the expanded sidebar. Ignored without `children`.
67
67
  */
68
68
  childrenIn?: 'sidebar';
69
+ /**
70
+ * Makes the `children` collapsible in the expanded sidebar: a chevron
71
+ * button after the entry folds and unfolds them. `true`: open at first;
72
+ * `false`: folded at first, unless the current page is one of them. Unset: they are always listed. The phone's menu
73
+ * sheet and the other presets ignore it. Ignored without `children` and with `display: 'icon'`.
74
+ */
75
+ defaultExpanded?: boolean;
69
76
  /** The section this entry belongs to, already translated: the drawer draws one section per group. */
70
77
  group?: string;
71
78
  /** Whether a bottom navigation bar shows this entry (the others go under "More"): the bar and the floating toolbar. */
@@ -10,7 +10,7 @@ declare function InputGroupButton({ className, type, variant, ...props }: IconBu
10
10
  declare function InputGroupText({ className, ...props }: React.ComponentProps<'span'>): React.JSX.Element;
11
11
  /**
12
12
  * The control of an InputGroup: a bare `<input>`, the group is the field
13
- * box (it reads the control's `:placeholder-shown` for its tint).
13
+ * box (it reads the control's `:placeholder-shown` for `data-filled`).
14
14
  */
15
15
  declare function InputGroupInput({ className, type, ...props }: React.ComponentProps<'input'>): React.JSX.Element;
16
16
  declare function InputGroupTextarea({ className, ...props }: React.ComponentProps<'textarea'>): React.JSX.Element;
@@ -1364,8 +1364,11 @@ export declare const en: {
1364
1364
  "increase-named": string;
1365
1365
  };
1366
1366
  "quantity-field": {
1367
+ search: string;
1367
1368
  unit: string;
1369
+ "unit-chip": string;
1368
1370
  "unit-named": string;
1371
+ "use-typed": string;
1369
1372
  };
1370
1373
  "markdown-textarea-field": {
1371
1374
  write: string;
@@ -3542,6 +3545,8 @@ export declare const en: {
3542
3545
  "rail-toggle": string;
3543
3546
  "panel-collapse": string;
3544
3547
  "panel-expand": string;
3548
+ "group-collapse": string;
3549
+ "group-expand": string;
3545
3550
  };
3546
3551
  dashboard: {
3547
3552
  edit: string;
@@ -1354,8 +1354,11 @@ declare const _default: {
1354
1354
  "increase-named": "Increase {label}"
1355
1355
  },
1356
1356
  "quantity-field": {
1357
+ "search": "Search or type a unit",
1357
1358
  "unit": "Unit",
1358
- "unit-named": "{label} unit"
1359
+ "unit-chip": "Unit: {label}",
1360
+ "unit-named": "{label} unit",
1361
+ "use-typed": "Use “{unit}”"
1359
1362
  },
1360
1363
  "markdown-textarea-field": {
1361
1364
  "write": "Write",
@@ -3531,7 +3534,9 @@ declare const _default: {
3531
3534
  "steps": "Progress",
3532
3535
  "rail-toggle": "Navigation menu",
3533
3536
  "panel-collapse": "Collapse the panel",
3534
- "panel-expand": "Expand the panel"
3537
+ "panel-expand": "Expand the panel",
3538
+ "group-collapse": "Collapse the group",
3539
+ "group-expand": "Expand the group"
3535
3540
  },
3536
3541
  "dashboard": {
3537
3542
  "edit": "Edit layout",
@@ -1364,8 +1364,11 @@ export declare const fr: {
1364
1364
  "increase-named": string;
1365
1365
  };
1366
1366
  "quantity-field": {
1367
+ search: string;
1367
1368
  unit: string;
1369
+ "unit-chip": string;
1368
1370
  "unit-named": string;
1371
+ "use-typed": string;
1369
1372
  };
1370
1373
  "markdown-textarea-field": {
1371
1374
  write: string;
@@ -3542,6 +3545,8 @@ export declare const fr: {
3542
3545
  "rail-toggle": string;
3543
3546
  "panel-collapse": string;
3544
3547
  "panel-expand": string;
3548
+ "group-collapse": string;
3549
+ "group-expand": string;
3545
3550
  };
3546
3551
  dashboard: {
3547
3552
  edit: string;
@@ -1354,8 +1354,11 @@ declare const _default: {
1354
1354
  "increase-named": "Augmenter {label}"
1355
1355
  },
1356
1356
  "quantity-field": {
1357
+ "search": "Rechercher ou saisir une unité",
1357
1358
  "unit": "Unité",
1358
- "unit-named": "Unité de {label}"
1359
+ "unit-chip": "Unité : {label}",
1360
+ "unit-named": "Unité de {label}",
1361
+ "use-typed": "Utiliser « {unit} »"
1359
1362
  },
1360
1363
  "markdown-textarea-field": {
1361
1364
  "write": "Écrire",
@@ -3531,7 +3534,9 @@ declare const _default: {
3531
3534
  "steps": "Progression",
3532
3535
  "rail-toggle": "Menu de navigation",
3533
3536
  "panel-collapse": "Replier le panneau",
3534
- "panel-expand": "Déplier le panneau"
3537
+ "panel-expand": "Déplier le panneau",
3538
+ "group-collapse": "Replier le groupe",
3539
+ "group-expand": "Déplier le groupe"
3535
3540
  },
3536
3541
  "dashboard": {
3537
3542
  "edit": "Modifier la disposition",
@@ -1362,8 +1362,11 @@ export declare const resources: {
1362
1362
  "increase-named": string;
1363
1363
  };
1364
1364
  "quantity-field": {
1365
+ search: string;
1365
1366
  unit: string;
1367
+ "unit-chip": string;
1366
1368
  "unit-named": string;
1369
+ "use-typed": string;
1367
1370
  };
1368
1371
  "markdown-textarea-field": {
1369
1372
  write: string;
@@ -3540,6 +3543,8 @@ export declare const resources: {
3540
3543
  "rail-toggle": string;
3541
3544
  "panel-collapse": string;
3542
3545
  "panel-expand": string;
3546
+ "group-collapse": string;
3547
+ "group-expand": string;
3543
3548
  };
3544
3549
  dashboard: {
3545
3550
  edit: string;
@@ -4945,8 +4950,11 @@ export declare const resources: {
4945
4950
  "increase-named": string;
4946
4951
  };
4947
4952
  "quantity-field": {
4953
+ search: string;
4948
4954
  unit: string;
4955
+ "unit-chip": string;
4949
4956
  "unit-named": string;
4957
+ "use-typed": string;
4950
4958
  };
4951
4959
  "markdown-textarea-field": {
4952
4960
  write: string;
@@ -7123,6 +7131,8 @@ export declare const resources: {
7123
7131
  "rail-toggle": string;
7124
7132
  "panel-collapse": string;
7125
7133
  "panel-expand": string;
7134
+ "group-collapse": string;
7135
+ "group-expand": string;
7126
7136
  };
7127
7137
  dashboard: {
7128
7138
  edit: string;