@nxgt/material 3.94.0 → 3.95.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (391) hide show
  1. package/CHANGELOG.md +42 -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-BfIBMiFX.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-DXCfO95n.js} +13787 -13699
  26. package/dist/components.js +26 -27
  27. package/dist/{conversion-variant-aIBhul_U.js → conversion-variant-Ciii9Rbh.js} +4 -4
  28. package/dist/currency-field-DipsI0Bv.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-CTXTLbE_.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 +24 -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-Cjc_3pP0.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-DOndWDT5.js +169 -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-DEd6GM2N.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
Binary file
Binary file
Binary file
Binary file
Binary file
package/docs/roadmap.md CHANGED
@@ -6,16 +6,6 @@ version they shipped in, and planned entries may name the major they target.
6
6
 
7
7
  ## Now
8
8
 
9
- - **Fields Refined** — every text-like field (text, select, combobox, search,
10
- phone, date and time boxes) gets a crisper, more legible look by default: a
11
- border of at least 3:1 contrast, the card surface, a clear focus ring, and no
12
- filled tint. `NumberField` is right-aligned with its steppers inside the box,
13
- and gains a compact `score` variant with a caller-set tone and a locked state
14
- with its reason. New `--success-text` and `--warning-text` tokens join
15
- `--error-text` in every theme preset. One minor release, no API removed;
16
- every `--nxgt-field-*` token override still applies
17
- ([#2644](https://github.com/softistx/nxgt-material/issues/2644)).
18
-
19
9
  - **Calculator** — `@nxgt/material/calculator` is an exact-decimal calculator
20
10
  (Standard, Scientific, point of sale, Financial, Conversion, Programmer;
21
11
  every variant but Standard loads on demand)
@@ -389,6 +379,19 @@ version they shipped in, and planned entries may name the major they target.
389
379
 
390
380
  ## Shipped
391
381
 
382
+ - **Fields Refined** (3.95.0) — every text-like field (text, select, combobox,
383
+ search, phone, date and time boxes) gets a crisper, more legible look by
384
+ default: a border of at least 3:1 contrast, the card surface, a clear focus
385
+ ring, and no filled tint. `NumberField` is right-aligned with its steppers
386
+ inside the box, `QuantityField` is one box with a unit chip (its unit is a
387
+ button, so tests query it as a button, not a `combobox`), and `NumberField`
388
+ gains a compact `score` variant with a caller-set tone and a locked state
389
+ with its reason. New `--success-text` and `--warning-text` tokens join
390
+ `--error-text` in every theme preset. One minor release, no API removed;
391
+ every `--nxgt-field-*` token override still applies
392
+ ([guide](guides/field-look-refined.md),
393
+ [#2644](https://github.com/softistx/nxgt-material/issues/2644)).
394
+
392
395
  - **EventCalendar background spans, badges, tones and cancelled events** —
393
396
  `EventCalendar` shows what the days themselves are: `spans` draw closures,
394
397
  half days and other labelled, toned stretches behind the events in every
@@ -23,6 +23,8 @@ words in your error.
23
23
  - [`is missing the following properties from type 'Pick<any, "variant" | "color">'`](#is-missing-the-following-properties-from-type-pickany-variant--color)
24
24
  - [`Types have separate declarations of a private property` on a `RichTextEditor` `onUpdate` or `onCreate` handler](#types-have-separate-declarations-of-a-private-property-on-a-richtexteditor-onupdate-or-oncreate-handler)
25
25
  - [`error TS2305: Module '"@nxgt/material/components"' has no exported member 'Button'`](#error-ts2305-module-nxgtmaterialcomponents-has-no-exported-member-button)
26
+ - [`Unable to find an accessible element with the role "combobox"`](#unable-to-find-an-accessible-element-with-the-role-combobox) (a `QuantityField` or `AgeField` unit in a test)
27
+ - [A test finds an extra `group`, or tabs in the wrong order, in a `NumberField`](#a-test-finds-an-extra-group-or-tabs-in-the-wrong-order-in-a-numberfield)
26
28
 
27
29
  **Styles & assets**
28
30
 
@@ -68,6 +70,7 @@ words in your error.
68
70
  - [A Button's label overflows a card on a phone](#a-buttons-label-overflows-a-card-on-a-phone)
69
71
  - [A ResponsiveButton no longer shows its tooltip next to its visible label](#a-responsivebutton-no-longer-shows-its-tooltip-next-to-its-visible-label)
70
72
  - [An input now has `placeholder=" "` in the DOM](#an-input-now-has-placeholder--in-the-dom)
73
+ - [A filled field has no primary tint after upgrading](#a-filled-field-has-no-primary-tint-after-upgrading)
71
74
  - ["Select all" runs under the sort, "Filters" or the actions in a cards or tiles list on a phone](#select-all-runs-under-the-sort-filters-or-the-actions-in-a-cards-or-tiles-list-on-a-phone)
72
75
  - [A dialog or sheet scrolls, or clips a child, after upgrading](#a-dialog-or-sheet-scrolls-or-clips-a-child-after-upgrading)
73
76
  - [A `DialogBody`'s header and footer do not stay pinned](#a-dialogbodys-header-and-footer-do-not-stay-pinned)
@@ -790,8 +793,37 @@ Vite and React Router apps use:
790
793
  { "compilerOptions": { "module": "esnext", "moduleResolution": "bundler" } }
791
794
  ```
792
795
 
796
+ ### `Unable to find an accessible element with the role "combobox"`
797
+
798
+ **When:** a test of a `QuantityField` or `AgeField` unit fails after upgrading.
799
+ **Why:** the unit is no longer a select or a text input: it is a chip, a
800
+ `button` named "Unit: mg" ("Age unit: months"), that opens a menu of options.
801
+ **Fix:** click the button, then pick the option:
802
+
803
+ ```ts
804
+ await user.click(screen.getByRole('button', { name: /^Dose unit|^Unit:/ }));
805
+ await user.click(await screen.findByRole('option', { name: 'mL' }));
806
+ ```
807
+
808
+ With `allowCustomUnit`, type into the search box inside the menu
809
+ (`screen.getByPlaceholderText('Search or type a unit')`), then pick
810
+ `Use “sachet”`.
811
+
793
812
  ## Styles & assets
794
813
 
814
+ ### A test finds an extra `group`, or tabs in the wrong order, in a `NumberField`
815
+
816
+ **When:** after the Refined field release, `getByRole('group')` matches more than one element, or a test that tabs through a `NumberField` lands on a different control.
817
+ **Why:** the number box is now one `role="group"` with the input first and the Decrease and Increase buttons after it (it was Decrease, input, Increase). With a `CalculatorField` the order is input, Open calculator, Decrease, Increase.
818
+ **Fix:** name the group you mean, and tab in the new order.
819
+
820
+ ```ts
821
+ screen.getByRole('group', { name: 'Quantity' });
822
+ await user.tab(); // the input, then Decrease, then Increase
823
+ ```
824
+
825
+ [Tab order and roles](guides/field-look-refined.md#tab-order-and-roles-for-tests) has the list.
826
+
795
827
  ### The backdrop shapes disappeared between the cards (3.22+)
796
828
 
797
829
  **When:** an `ActivityLayout` with `backdrop={<Background preset="shapes" ... />}`
@@ -1762,6 +1794,18 @@ page.locator('[data-slot=chip]').getByRole('button', { name: 'Remove Design' });
1762
1794
  **Why:** the "filled" tint relies on `:placeholder-shown`, which only matches a field that has a placeholder. A text field without one (or with `placeholder=""`) now renders a blank `placeholder=" "`, so an empty field is not tinted as if it held a value. It draws nothing and is not announced.
1763
1795
  **Fix:** select by role and accessible name (`getByRole('textbox', { name: ... })`) rather than by the missing attribute, and update the snapshot.
1764
1796
 
1797
+ ### A filled field has no primary tint after upgrading
1798
+
1799
+ **When:** after the Refined field release, a field that holds a value looks the same as an empty one, a style or a screenshot that expected the primary tint no longer matches, or setting `--nxgt-field-bg-filled` changes nothing.
1800
+ **Why:** the field box dropped the filled tint on purpose: the surface is the card and a border that keeps 3:1 says where the field is. `data-filled` is still set on a box that holds a value, and the `--nxgt-field-bg-filled` tokens still exist but alias the rest surface, so nothing paints from them.
1801
+ **Fix:** to bring a tint back, style on `data-filled` after the import (an unlayered rule beats the field box's layer); the dark theme needs its own rule. [The Refined field look](guides/field-look-refined.md#getting-a-detail-of-the-earlier-look-back) has both.
1802
+
1803
+ ```css
1804
+ .nxgt-field-box[data-filled]:not([data-filled="false"]) {
1805
+ background-color: color-mix(in oklab, var(--primary) 10%, transparent);
1806
+ }
1807
+ ```
1808
+
1765
1809
  ### Shaped Gallery tiles are plain rounded squares
1766
1810
 
1767
1811
  **When:** `<Gallery preset="shaped" />` or `shape="cookie-9"` shows ordinary rounded tiles, and the tile does not morph on hover.
@@ -197,7 +197,13 @@
197
197
  @import "./ui/primitives/segmented-input/segmented-input-expressive.css";
198
198
  @import "./ui/dates/picker-trigger/typed-box-expressive.css";
199
199
  @import "./ui/dates/picker-popover/picker-surface-expressive.css";
200
- /* DurationField's one-line field: units and the −/+ pair. */
200
+ /* The −/+ pair shared by DurationField and NumberField. */
201
+ @import "./ui/primitives/field-box/field-stepper.css";
202
+ /* QuantityField: the unit chip inside its one box. */
203
+ @import "./ui/fields/quantity-field/quantity-field.css";
204
+ /* NumberField `variant="score"`. */
205
+ @import "./ui/fields/number-field/number-field-score.css";
206
+ /* DurationField's one-line field: units. */
201
207
  @import "./ui/dates/duration-field/duration-field-expressive.css";
202
208
  @import "./ui/feedback/toast/toast.css";
203
209
  @import "./ui/feedback/toast/toast-expressive.css";
@@ -66,12 +66,16 @@
66
66
  text (4.5:1) on them, and for the same colours used as text on white. */
67
67
  --success: oklch(0.46 0.118 184.704);
68
68
  --success-foreground: oklch(0.984 0.003 247.858);
69
+ /* Success and warning drawn as text on --background and --card (a field's
70
+ valid or caution message), like --error-text: 92 % of the colour toward black. */
71
+ --success-text: color-mix(in oklab, var(--success) 92%, black);
69
72
  --info: oklch(0.48 0.165 254.624);
70
73
  --info-foreground: oklch(0.984 0.003 247.858);
71
74
  /* Amber, a hue apart from --error (27): a warning must not read as a
72
75
  failure. 5.7:1 as text on white, 5.0:1 on its 10% tint, 5.5:1 under near-white text. */
73
76
  --warning: oklch(0.52 0.13 62);
74
77
  --warning-foreground: oklch(0.984 0.003 247.858);
78
+ --warning-text: color-mix(in oklab, var(--warning) 92%, black);
75
79
  --destructive: var(--error);
76
80
  --border: oklch(0.912 0.016 293.7);
77
81
  --input: oklch(0.912 0.016 293.7);
@@ -172,6 +176,8 @@
172
176
  7.1:1, info 5.6:1, error 9.1:1). */
173
177
  --success: oklch(0.6 0.118 184.704);
174
178
  --success-foreground: oklch(0.995 0.002 291.3);
179
+ /* Dark: lightened toward white like --error-text, 5.3:1 on --background and --card. */
180
+ --success-text: color-mix(in oklab, var(--success) 76%, white);
175
181
  --info: oklch(0.707 0.165 254.624);
176
182
  --info-foreground: oklch(0.995 0.002 291.3);
177
183
  /* Amber too, as text: 7.2:1 on --background and 6.3:1 on --card, 6.4:1 and
@@ -179,6 +185,7 @@
179
185
  6.1:1 on a page and 5.6:1 on a Card. */
180
186
  --warning: oklch(0.7 0.15 70);
181
187
  --warning-foreground: oklch(0.995 0.002 291.3);
188
+ --warning-text: color-mix(in oklab, var(--warning) 76%, white);
182
189
  --destructive: oklch(0.704 0.191 22.216);
183
190
  --border: oklch(0.289 0.025 291.4);
184
191
  --input: oklch(0.328 0.027 291.4);
@@ -2,7 +2,7 @@
2
2
  * the date fields' shared bordered box (typed-box-expressive.css) and its segments
3
3
  * (segmented-input-expressive.css): "1 h 29 min", each amount followed by
4
4
  * its muted unit, then one −/+ pair. Every focus ring is drawn inside the
5
- * field (an inset outline), never clipped. The box keeps its focus boundary
5
+ * field (an inset outline), never clipped. The box keeps its focus ring
6
6
  * while a button has focus; the segments' chip tint only shows while a
7
7
  * segment has it. A coarse pointer gets 44px buttons; the 52px box (4px
8
8
  * around them) is its utilities' (duration-segments.tsx). */
@@ -67,7 +67,7 @@
67
67
  }
68
68
  }
69
69
 
70
- /* A button has focus: the box keeps its boundary, no segment its chip. */
70
+ /* A button has focus: the box keeps its ring, no segment its chip. */
71
71
  @media not ((pointer: coarse) or (max-width: 767.98px)) {
72
72
  .nxgt-duration-box.nxgt-field-box[data-tonal][data-focused]:not(
73
73
  :has(.nxgt-segment:focus)
@@ -84,65 +84,4 @@
84
84
  background: transparent;
85
85
  }
86
86
  }
87
-
88
- /* The −/+ pair: round, 4px apart, a ring inside each button. */
89
- .nxgt-duration-step {
90
- display: grid;
91
- flex: none;
92
- place-items: center;
93
- inline-size: var(--_dd-step);
94
- block-size: var(--_dd-step);
95
- border-radius: var(--nxgt-shape-corner-full);
96
- background: var(--_dd-btn);
97
- color: var(--primary-text);
98
- cursor: pointer;
99
- transition: background-color var(--nxgt-motion-effects-default-duration)
100
- var(--nxgt-motion-effects-default);
101
- }
102
- .nxgt-duration-step + .nxgt-duration-step {
103
- margin-inline-start: -0.25rem;
104
- }
105
- .nxgt-duration-step:hover:not(:disabled, [aria-disabled="true"]) {
106
- background: var(--_dd-btn-hover);
107
- }
108
- .nxgt-duration-step:focus-visible {
109
- outline: 2px solid var(--_fx-line, var(--nxgt-field-focus));
110
- outline-offset: -2px;
111
- }
112
- .nxgt-duration-step:is(:disabled, [aria-disabled="true"]) {
113
- cursor: not-allowed;
114
- }
115
- .nxgt-duration-step[aria-disabled="true"]:not(:disabled) {
116
- opacity: 0.38;
117
- }
118
- .nxgt-duration-box[data-disabled] .nxgt-duration-step {
119
- background: transparent;
120
- }
121
- .nxgt-duration-step svg {
122
- inline-size: 1rem;
123
- block-size: 1rem;
124
- }
125
-
126
- @media (prefers-reduced-motion: reduce) {
127
- .nxgt-duration-step {
128
- transition: none;
129
- }
130
- }
131
- @media (forced-colors: active) {
132
- .nxgt-duration-step {
133
- forced-color-adjust: none;
134
- border: 1px solid ButtonBorder;
135
- background: ButtonFace;
136
- color: ButtonText;
137
- }
138
- .nxgt-duration-step[aria-disabled="true"],
139
- .nxgt-duration-step:disabled {
140
- border-color: GrayText;
141
- color: GrayText;
142
- opacity: 1;
143
- }
144
- .nxgt-duration-step:focus-visible {
145
- outline-color: Highlight;
146
- }
147
- }
148
87
  }