@nxgt/material 3.57.0 → 3.59.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 (471) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/README.md +33 -1
  3. package/dist/{async-slice-B3RMgJUn.js → async-slice-Cmvxrvn9.js} +2 -2
  4. package/dist/{background-BtSZsTvY.js → background-qdnet2A5.js} +124 -83
  5. package/dist/backgrounds.js +1 -1
  6. package/dist/barcode.js +440 -0
  7. package/dist/{button-hnUZpzYu.js → button-Deo7l4wM.js} +97 -74
  8. package/dist/{callout-view-C6voDS00.js → callout-view-C7UznnDW.js} +1 -1
  9. package/dist/charts.js +1531 -1489
  10. package/dist/{chip-kplPa8ZV.js → chip-BlmIjpiD.js} +2 -2
  11. package/dist/{code-editor-Ba61Cd-g.js → code-editor-BYEpBp_U.js} +312 -282
  12. package/dist/code-editor.js +14 -14
  13. package/dist/{code-language-items-CsDC4Ky4.js → code-language-items-Cqk4Fq61.js} +2 -2
  14. package/dist/components/components.css +1 -0
  15. package/dist/components/ui/widgets/barcode/barcode.css +112 -0
  16. package/dist/{components-BgckuX2C.js → components-BsKpeqVX.js} +28688 -25977
  17. package/dist/components.js +26 -26
  18. package/dist/{convert-XAkWyO8-.js → convert-7g-F5cNf.js} +1 -1
  19. package/dist/{dialog-DS8O4Kkb.js → dialog-1BstKBvt.js} +4 -4
  20. package/dist/dnd.js +1 -1
  21. package/dist/draw-animate.js +1 -1
  22. package/dist/{dropdown-menu-CvVQJpsn.js → dropdown-menu-hoaocAS7.js} +1 -1
  23. package/dist/editor-viewer.js +1 -1
  24. package/dist/editor.js +715 -607
  25. package/dist/empty-state-DEG9h7xk.js +139 -0
  26. package/dist/{escape-owner-BJvicDmr.js → escape-owner-BvLBo_Al.js} +22 -22
  27. package/dist/{field-blur-Cnjk0o9A.js → field-blur-BkeYPaWi.js} +1 -1
  28. package/dist/{field-blur-context-CYlx9KnB.js → field-blur-context-Ba7iZVm_.js} +1 -1
  29. package/dist/{headless-extensions-CvmdhANJ.js → headless-extensions-B1NAgmkE.js} +1 -1
  30. package/dist/hooks.js +2 -2
  31. package/dist/{hover-card-DW4XnExA.js → hover-card-C5DTU9P_.js} +2 -2
  32. package/dist/{i18n-provider-DBr59j1p.js → i18n-provider-BJDI-A5w.js} +1 -1
  33. package/dist/i18n.js +5 -5
  34. package/dist/{icon-badge-4FMy66AC.js → icon-badge-9ZE6k7cn.js} +3 -3
  35. package/dist/{icon-button-QF7smCoV.js → icon-button-AwJtCkV5.js} +59 -59
  36. package/dist/{illustration-B4_W-OUS.js → illustration-DjZXUFbz.js} +11 -11
  37. package/dist/illustrations.js +1 -1
  38. package/dist/lib/backgrounds/background/background.d.ts +1 -1
  39. package/dist/lib/backgrounds/background/partials/use-background-scenes.d.ts +22 -0
  40. package/dist/lib/backgrounds/background/partials/use-themed-background.d.ts +304 -0
  41. package/dist/lib/barcode/index.d.ts +15 -0
  42. package/dist/lib/components/ui/actions/action-card/action-card-semantics-branches.d.ts +63 -0
  43. package/dist/lib/components/ui/actions/action-card/action-card-semantics.d.ts +0 -4
  44. package/dist/lib/components/ui/actions/action-card/partials/action-card-text.d.ts +3 -1
  45. package/dist/lib/components/ui/actions/action-card/use-action-card.d.ts +80 -0
  46. package/dist/lib/components/ui/actions/button/button-busy.d.ts +8 -0
  47. package/dist/lib/components/ui/actions/button/button.classes.d.ts +7 -0
  48. package/dist/lib/components/ui/actions/index.d.ts +1 -0
  49. package/dist/lib/components/ui/actions/load-more-footer/index.d.ts +1 -0
  50. package/dist/lib/components/ui/actions/load-more-footer/load-more-footer.d.ts +24 -0
  51. package/dist/lib/components/ui/actions/toolbar/use-toolbar-state.d.ts +22 -0
  52. package/dist/lib/components/ui/collections/data-grid/columns/column-check.d.ts +15 -0
  53. package/dist/lib/components/ui/collections/data-grid/columns/column-edit.d.ts +1 -12
  54. package/dist/lib/components/ui/collections/data-grid/editors/editor-props.d.ts +20 -0
  55. package/dist/lib/components/ui/collections/data-grid/editors/editor-route-key.d.ts +11 -0
  56. package/dist/lib/components/ui/collections/data-grid/partials/grid-cell-access.d.ts +26 -0
  57. package/dist/lib/components/ui/collections/data-grid/partials/grid-header-name.d.ts +15 -0
  58. package/dist/lib/components/ui/collections/data-grid/partials/header-menu-button.d.ts +17 -0
  59. package/dist/lib/components/ui/collections/data-grid/partials/open-header-menu.d.ts +14 -0
  60. package/dist/lib/components/ui/collections/data-grid/partials/width-field.d.ts +18 -0
  61. package/dist/lib/components/ui/collections/data-grid/phone/phone-item.d.ts +2 -2
  62. package/dist/lib/components/ui/collections/data-table/partials/layouts/data-table-card-list.d.ts +17 -0
  63. package/dist/lib/components/ui/collections/data-table/partials/layouts/list-bar-clear.d.ts +10 -0
  64. package/dist/lib/components/ui/collections/data-table/partials/layouts/list-bar-in-row.d.ts +18 -0
  65. package/dist/lib/components/ui/collections/data-table/partials/page-button.d.ts +12 -0
  66. package/dist/lib/components/ui/collections/data-table/partials/page-icon-control.d.ts +21 -0
  67. package/dist/lib/components/ui/collections/data-table/partials/pager-buttons.d.ts +7 -0
  68. package/dist/lib/components/ui/collections/data-table/use-data-table-setup.d.ts +36 -0
  69. package/dist/lib/components/ui/collections/facet-group/partials/facet-group-header.d.ts +11 -0
  70. package/dist/lib/components/ui/collections/filter/filter-field-config-base.utils.d.ts +13 -0
  71. package/dist/lib/components/ui/collections/filter/filter-field-config-choice.utils.d.ts +5 -0
  72. package/dist/lib/components/ui/collections/filter/filter-field-config-value.utils.d.ts +5 -0
  73. package/dist/lib/components/ui/collections/filter/filter-field-config.utils.d.ts +6 -0
  74. package/dist/lib/components/ui/collections/filter/filter-legacy.d.ts +1 -1
  75. package/dist/lib/components/ui/collections/filter/filter-persistence-url-value.utils.d.ts +9 -0
  76. package/dist/lib/components/ui/collections/filter/filter-schema.utils.d.ts +1 -5
  77. package/dist/lib/components/ui/collections/filter/filter-validation-presets.utils.d.ts +24 -0
  78. package/dist/lib/components/ui/collections/filter/filter-validation-rules.utils.d.ts +11 -0
  79. package/dist/lib/components/ui/collections/filter/filter-validation.utils.d.ts +1 -23
  80. package/dist/lib/components/ui/collections/filter/partials/filter-field-special.d.ts +8 -0
  81. package/dist/lib/components/ui/collections/filter/partials/filter-form-field-variant.d.ts +10 -0
  82. package/dist/lib/components/ui/collections/filter/partials/filter-group-fields.d.ts +5 -0
  83. package/dist/lib/components/ui/collections/filter/partials/filter-legacy-variant.d.ts +3 -0
  84. package/dist/lib/components/ui/collections/filter/partials/filter-preset-fields.d.ts +9 -0
  85. package/dist/lib/components/ui/collections/filter/partials/filter-presets-menu-items.d.ts +13 -0
  86. package/dist/lib/components/ui/collections/filter/partials/filter-presets-menu.d.ts +5 -0
  87. package/dist/lib/components/ui/collections/filter/partials/filter-presets-save-dialog.d.ts +7 -0
  88. package/dist/lib/components/ui/collections/filter/partials/filter-presets-save-trigger.d.ts +7 -0
  89. package/dist/lib/components/ui/collections/filter/query/types.d.ts +3 -39
  90. package/dist/lib/components/ui/collections/filter/query/use-filter-query-options.d.ts +1 -1
  91. package/dist/lib/components/ui/collections/filter/query/use-filter-query-value.d.ts +2 -2
  92. package/dist/lib/components/ui/collections/filter/query/view-types.d.ts +40 -0
  93. package/dist/lib/components/ui/collections/filter/sections/use-filter-search.d.ts +14 -0
  94. package/dist/lib/components/ui/collections/filter/use-filter-field-config.d.ts +7483 -0
  95. package/dist/lib/components/ui/collections/list-pane/partials/list-pane-body.d.ts +12 -0
  96. package/dist/lib/components/ui/collections/list-pane/partials/list-pane-item-content.d.ts +15 -0
  97. package/dist/lib/components/ui/collections/list-pane/partials/list-pane-search.d.ts +8 -0
  98. package/dist/lib/components/ui/collections/pagination/pagination-bar-pages.d.ts +8 -0
  99. package/dist/lib/components/ui/collections/server-table/partials/server-table-bulk-action-button.d.ts +26 -0
  100. package/dist/lib/components/ui/collections/server-table/partials/server-table-bulk-buttons.d.ts +13 -11
  101. package/dist/lib/components/ui/collections/server-table/partials/server-table-bulk-entries.d.ts +11 -0
  102. package/dist/lib/components/ui/collections/server-table/partials/server-table-bulk-focus.d.ts +1 -28
  103. package/dist/lib/components/ui/collections/server-table/partials/server-table-bulk-keys.d.ts +37 -0
  104. package/dist/lib/components/ui/collections/server-table/partials/server-table-grid-paging.d.ts +8 -0
  105. package/dist/lib/components/ui/collections/server-table/types-filter.d.ts +70 -0
  106. package/dist/lib/components/ui/collections/server-table/types-states.d.ts +42 -0
  107. package/dist/lib/components/ui/collections/server-table/types.d.ts +4 -110
  108. package/dist/lib/components/ui/collections/tree/tree-expand-button.d.ts +6 -0
  109. package/dist/lib/components/ui/collections/tree/use-tree-keys.d.ts +14 -0
  110. package/dist/lib/components/ui/collections/tree/use-tree-select.d.ts +14 -0
  111. package/dist/lib/components/ui/collections/tree/use-tree.d.ts +5 -4
  112. package/dist/lib/components/ui/dates/calendar/calendar-year-button.d.ts +10 -0
  113. package/dist/lib/components/ui/dates/calendar/calendar-year-nav.d.ts +9 -0
  114. package/dist/lib/components/ui/dates/date-field/date-field-parts.d.ts +78 -0
  115. package/dist/lib/components/ui/dates/date-range-field/partials/date-range-body-scroll.d.ts +15 -0
  116. package/dist/lib/components/ui/dates/date-range-field/partials/preview-calendar-props.d.ts +11 -0
  117. package/dist/lib/components/ui/dates/date-range-field/partials/use-cancel-range.d.ts +6 -0
  118. package/dist/lib/components/ui/dates/date-range-field/use-end-on.d.ts +12 -0
  119. package/dist/lib/components/ui/dates/date-range-field/use-typed-range.d.ts +2 -3
  120. package/dist/lib/components/ui/dates/mini-month/partials/mini-month-day.d.ts +8 -0
  121. package/dist/lib/components/ui/dates/mini-month/partials/mini-month-head.d.ts +18 -0
  122. package/dist/lib/components/ui/dates/mini-month/partials/mini-month-markers.d.ts +5 -0
  123. package/dist/lib/components/ui/dates/mini-month/partials/use-grid-focus.d.ts +11 -0
  124. package/dist/lib/components/ui/dates/picker-trigger/typed-box-parts.d.ts +12 -0
  125. package/dist/lib/components/ui/dates/time-field/partials/use-time-field-model.d.ts +14 -5
  126. package/dist/lib/components/ui/dates/time-picker/partials/time-column.d.ts +13 -0
  127. package/dist/lib/components/ui/display/cards/cards.stories.data.detail.d.ts +9 -0
  128. package/dist/lib/components/ui/display/cards/cards.stories.data.feed.d.ts +7 -0
  129. package/dist/lib/components/ui/display/cards/cards.stories.data.intro.d.ts +11 -0
  130. package/dist/lib/components/ui/display/cards/types-detail.d.ts +74 -0
  131. package/dist/lib/components/ui/display/cards/types-feed.d.ts +41 -0
  132. package/dist/lib/components/ui/display/cards/types-intro.d.ts +76 -0
  133. package/dist/lib/components/ui/display/cards/types.d.ts +3 -187
  134. package/dist/lib/components/ui/display/code/code-block-parts.d.ts +16 -0
  135. package/dist/lib/components/ui/display/enrolment-secret/enrolment-secret-manual.d.ts +9 -0
  136. package/dist/lib/components/ui/display/entity-header/partials/entity-header-start.d.ts +11 -0
  137. package/dist/lib/components/ui/display/event-chip/event-chip-content.d.ts +12 -0
  138. package/dist/lib/components/ui/display/param-table/param-table-views.d.ts +19 -0
  139. package/dist/lib/components/ui/display/recovery-codes/partials/use-recovery-codes-actions.d.ts +22 -0
  140. package/dist/lib/components/ui/display/recovery-codes-status/partials/recovery-codes-status-plain.d.ts +13 -0
  141. package/dist/lib/components/ui/feedback/alert-dialog/alert-dialog-actions.d.ts +6 -0
  142. package/dist/lib/components/ui/feedback/alert-dialog/alert-dialog.d.ts +1 -3
  143. package/dist/lib/components/ui/feedback/confirm-dialog/use-confirm-action.d.ts +16 -0
  144. package/dist/lib/components/ui/feedback/confirmation-dialog/use-confirmation-form.d.ts +18 -0
  145. package/dist/lib/components/ui/feedback/countdown-timer/countdown-timer.d.ts +5 -3
  146. package/dist/lib/components/ui/feedback/index.d.ts +1 -0
  147. package/dist/lib/components/ui/feedback/notification-row/partials/notification-row-body.d.ts +10 -0
  148. package/dist/lib/components/ui/feedback/notification-row/partials/notification-row-dot.d.ts +2 -0
  149. package/dist/lib/components/ui/feedback/notification-row/partials/notification-row-open.d.ts +5 -0
  150. package/dist/lib/components/ui/feedback/notifications/notifications-model.d.ts +59 -0
  151. package/dist/lib/components/ui/feedback/notifications/use-notifications-chrome.d.ts +17 -0
  152. package/dist/lib/components/ui/feedback/notifications/use-notifications.d.ts +4 -38
  153. package/dist/lib/components/ui/feedback/page-load-failed/index.d.ts +1 -0
  154. package/dist/lib/components/ui/feedback/page-load-failed/page-load-failed.d.ts +15 -0
  155. package/dist/lib/components/ui/feedback/spinner/spinner-variants.d.ts +5 -0
  156. package/dist/lib/components/ui/feedback/spinner/spinner.d.ts +1 -5
  157. package/dist/lib/components/ui/feedback/state-frame/state-frame-text.d.ts +10 -0
  158. package/dist/lib/components/ui/feedback/state-frame/use-state-media.d.ts +14 -0
  159. package/dist/lib/components/ui/feedback/step-dots/step-dot.d.ts +13 -0
  160. package/dist/lib/components/ui/feedback/step-dots/step-dots.d.ts +2 -1
  161. package/dist/lib/components/ui/feedback/step-up-dialog/describe-by.d.ts +4 -0
  162. package/dist/lib/components/ui/feedback/step-up-dialog/use-step-up-view.d.ts +34 -0
  163. package/dist/lib/components/ui/fields/attributes/attribute-form/attribute-options-form-fields.d.ts +7 -0
  164. package/dist/lib/components/ui/fields/attributes/attributes-list/attribute-tile.d.ts +11 -0
  165. package/dist/lib/components/ui/fields/attributes/partials/editor-rows.d.ts +15 -0
  166. package/dist/lib/components/ui/fields/contacts/partials/contact-groups.d.ts +20 -0
  167. package/dist/lib/components/ui/fields/contacts/partials/contact-tile.d.ts +13 -0
  168. package/dist/lib/components/ui/fields/contacts/partials/dialog-actions.d.ts +14 -0
  169. package/dist/lib/components/ui/fields/contacts/partials/dialog-fields.d.ts +14 -0
  170. package/dist/lib/components/ui/fields/contacts/placeholders.d.ts +1 -1
  171. package/dist/lib/components/ui/fields/country-field/iso-codes-1.d.ts +2 -0
  172. package/dist/lib/components/ui/fields/country-field/iso-codes-2.d.ts +2 -0
  173. package/dist/lib/components/ui/fields/country-field/iso-codes-3.d.ts +2 -0
  174. package/dist/lib/components/ui/fields/currency-field/use-currency-amount.d.ts +17 -0
  175. package/dist/lib/components/ui/fields/field/render-choice-field.d.ts +3 -0
  176. package/dist/lib/components/ui/fields/inline-edit/inline-edit-display.d.ts +12 -0
  177. package/dist/lib/components/ui/fields/inline-edit/inline-edit-editor.d.ts +14 -0
  178. package/dist/lib/components/ui/fields/inline-edit/use-inline-edit.d.ts +19 -0
  179. package/dist/lib/components/ui/fields/opening-hours/logic/missing-days.d.ts +3 -0
  180. package/dist/lib/components/ui/fields/opening-hours/partials/day-switch.d.ts +14 -0
  181. package/dist/lib/components/ui/fields/opening-hours/partials/dialog-actions.d.ts +13 -0
  182. package/dist/lib/components/ui/fields/opening-hours/partials/dialog-fields.d.ts +14 -0
  183. package/dist/lib/components/ui/fields/opening-hours/partials/hours-actions.d.ts +9 -0
  184. package/dist/lib/components/ui/fields/opening-hours/partials/hours-tile.d.ts +11 -0
  185. package/dist/lib/components/ui/fields/opening-hours/partials/week-rows.d.ts +14 -0
  186. package/dist/lib/components/ui/fields/opening-hours/use-hours-editor.d.ts +1 -0
  187. package/dist/lib/components/ui/fields/phone-field/phone-country-list.d.ts +10 -0
  188. package/dist/lib/components/ui/fields/phone-field/phone-dial-button.d.ts +10 -0
  189. package/dist/lib/components/ui/fields/phone-field/phone-number-input.d.ts +19 -0
  190. package/dist/lib/components/ui/fields/phone-field/use-phone-value.d.ts +17 -0
  191. package/dist/lib/components/ui/fields/postal-address/postal-address-dialog-actions.d.ts +14 -0
  192. package/dist/lib/components/ui/fields/postal-address/postal-address-dialog-fields.d.ts +10 -0
  193. package/dist/lib/components/ui/fields/rating-field/rating-color.d.ts +4 -0
  194. package/dist/lib/components/ui/fields/rating-field/rating-field.d.ts +1 -4
  195. package/dist/lib/components/ui/fields/rating-field/rating-star.d.ts +22 -0
  196. package/dist/lib/components/ui/fields/rating-field/use-rating.d.ts +16 -0
  197. package/dist/lib/components/ui/fields/search-field/search-box.d.ts +11 -0
  198. package/dist/lib/components/ui/fields/search-field/use-search-value.d.ts +21 -0
  199. package/dist/lib/components/ui/fields/slider/slider-control-row.d.ts +10 -0
  200. package/dist/lib/components/ui/fields/slider/slider-group-props.d.ts +16 -0
  201. package/dist/lib/components/ui/fields/slider/slider-group.d.ts +14 -0
  202. package/dist/lib/components/ui/fields/slider/slider-horizontal.d.ts +3 -0
  203. package/dist/lib/components/ui/fields/slider/slider-vertical.d.ts +3 -0
  204. package/dist/lib/components/ui/fields/slider/slider.d.ts +1 -1
  205. package/dist/lib/components/ui/fields/slider/use-slider-value.d.ts +10 -0
  206. package/dist/lib/components/ui/fields/textarea-field/textarea-footer.d.ts +14 -0
  207. package/dist/lib/components/ui/layout/app-shell/activity-chrome.d.ts +17 -0
  208. package/dist/lib/components/ui/layout/app-shell/activity-content-header.d.ts +15 -0
  209. package/dist/lib/components/ui/layout/app-shell/app-header-menu.d.ts +5 -0
  210. package/dist/lib/components/ui/layout/app-shell/band-boxes.d.ts +3 -0
  211. package/dist/lib/components/ui/layout/app-shell/collect-content.d.ts +24 -0
  212. package/dist/lib/components/ui/layout/app-shell/keep-inside-checker.d.ts +10 -0
  213. package/dist/lib/components/ui/layout/app-shell/page-title-focus.d.ts +32 -0
  214. package/dist/lib/components/ui/layout/app-shell/page-title-scope.d.ts +53 -0
  215. package/dist/lib/components/ui/layout/app-shell/page-title.d.ts +2 -82
  216. package/dist/lib/components/ui/layout/app-shell/use-keep-shapes-inside.d.ts +3 -13
  217. package/dist/lib/components/ui/layout/app-shell/watch-content.d.ts +2 -18
  218. package/dist/lib/components/ui/layout/auth-card/auth-card-parts.d.ts +25 -0
  219. package/dist/lib/components/ui/layout/doc/partials/doc-header-parts.d.ts +18 -0
  220. package/dist/lib/components/ui/layout/doc/partials/doc-header.d.ts +2 -4
  221. package/dist/lib/components/ui/layout/doc/partials/doc-nav-parts.d.ts +11 -0
  222. package/dist/lib/components/ui/layout/doc/use-doc-effects.d.ts +23 -0
  223. package/dist/lib/components/ui/layout/index.d.ts +1 -0
  224. package/dist/lib/components/ui/layout/sidebar/sidebar-menu-item-content.d.ts +7 -0
  225. package/dist/lib/components/ui/layout/sidebar/sidebar-menu-item.d.ts +2 -47
  226. package/dist/lib/components/ui/layout/sidebar/sidebar-menu-item.types.d.ts +54 -0
  227. package/dist/lib/components/ui/layout/sticky-action-bar/index.d.ts +1 -0
  228. package/dist/lib/components/ui/layout/sticky-action-bar/keyboard-inset.d.ts +17 -0
  229. package/dist/lib/components/ui/layout/sticky-action-bar/sticky-action-bar.d.ts +17 -0
  230. package/dist/lib/components/ui/layout/sticky-action-bar/use-keyboard-inset.d.ts +8 -0
  231. package/dist/lib/components/ui/layout/toc/toc-list.d.ts +16 -0
  232. package/dist/lib/components/ui/media/compare-slider/partials/compare-slider-handle.d.ts +9 -0
  233. package/dist/lib/components/ui/media/compare-slider/use-compare-slider.d.ts +22 -0
  234. package/dist/lib/components/ui/media/file-list/file-list-field.d.ts +1 -1
  235. package/dist/lib/components/ui/media/file-list/partials/file-list-dropzone.d.ts +13 -0
  236. package/dist/lib/components/ui/media/file-list/partials/file-list-input.d.ts +11 -0
  237. package/dist/lib/components/ui/media/file-list/partials/file-list-items.d.ts +14 -0
  238. package/dist/lib/components/ui/media/file-list/partials/file-list-row-actions.d.ts +12 -0
  239. package/dist/lib/components/ui/media/file-list/use-file-list-field.d.ts +33 -0
  240. package/dist/lib/components/ui/media/galleries/partials/gallery-chrome-toolbar.d.ts +2 -6
  241. package/dist/lib/components/ui/media/galleries/partials/gallery-chrome-zoom.d.ts +2 -0
  242. package/dist/lib/components/ui/media/galleries/partials/gallery-featured-arrows.d.ts +2 -0
  243. package/dist/lib/components/ui/media/galleries/partials/gallery-tile-media.d.ts +17 -0
  244. package/dist/lib/components/ui/media/galleries/partials/gallery-viewer-button.d.ts +6 -0
  245. package/dist/lib/components/ui/media/galleries/use-gallery-navigation.d.ts +18 -0
  246. package/dist/lib/components/ui/media/galleries/use-gallery-sync.d.ts +15 -0
  247. package/dist/lib/components/ui/media/image-cropper/partials/image-cropper-actions.d.ts +12 -0
  248. package/dist/lib/components/ui/media/image-cropper/partials/image-cropper-controls.d.ts +8 -0
  249. package/dist/lib/components/ui/media/image-cropper/partials/image-cropper-stage.d.ts +12 -0
  250. package/dist/lib/components/ui/media/image-cropper/use-image-cropper.d.ts +34 -0
  251. package/dist/lib/components/ui/media/image-editor/image-editor.slice.d.ts +43 -43
  252. package/dist/lib/components/ui/media/image-editor/image-editor.stage-gestures.d.ts +29 -0
  253. package/dist/lib/components/ui/media/image-editor/image-editor.stage-paint.d.ts +17 -0
  254. package/dist/lib/components/ui/media/image-editor/partials/crop-aspect-picker.d.ts +2 -0
  255. package/dist/lib/components/ui/media/image-editor/partials/crop-orientation.d.ts +2 -0
  256. package/dist/lib/components/ui/media/image-editor/partials/editor-export-options.d.ts +2 -0
  257. package/dist/lib/components/ui/media/image-editor/partials/editor-file-info.d.ts +2 -0
  258. package/dist/lib/components/ui/media/image-editor/partials/editor-history-buttons.d.ts +2 -0
  259. package/dist/lib/components/ui/media/image-editor/partials/markup-brush-section.d.ts +2 -0
  260. package/dist/lib/components/ui/media/image-editor/partials/markup-tool-picker.d.ts +2 -0
  261. package/dist/lib/components/ui/media/image-editor/types-edits.d.ts +106 -0
  262. package/dist/lib/components/ui/media/image-editor/types-session.d.ts +58 -0
  263. package/dist/lib/components/ui/media/image-editor/types.d.ts +4 -163
  264. package/dist/lib/components/ui/media/image-editor/use-crop-frame.d.ts +26 -0
  265. package/dist/lib/components/ui/media/image-editor/use-image-editor-keys.d.ts +4 -0
  266. package/dist/lib/components/ui/media/image-editor/use-image-editor.d.ts +10 -10
  267. package/dist/lib/components/ui/media/image-editor/use-markup-text.d.ts +10 -0
  268. package/dist/lib/components/ui/media/image-editor/use-stage-layer-key.d.ts +6 -0
  269. package/dist/lib/components/ui/media/image-editor/use-stage-pointer.d.ts +2 -3
  270. package/dist/lib/components/ui/media/media-player/partials/panels/transcript-follow.d.ts +7 -0
  271. package/dist/lib/components/ui/media/media-player/partials/panels/transcript-notice.d.ts +7 -0
  272. package/dist/lib/components/ui/media/media-player/partials/panels/use-search-announcement.d.ts +6 -0
  273. package/dist/lib/components/ui/media/media-player/partials/playlist-item.d.ts +13 -0
  274. package/dist/lib/components/ui/media/pdf-reader/partials/search-nav-buttons.d.ts +4 -0
  275. package/dist/lib/components/ui/media/pdf-reader/use-reader-chrome-state.d.ts +35 -0
  276. package/dist/lib/components/ui/media/pdf-reader/use-reader-chrome-value.d.ts +14 -0
  277. package/dist/lib/components/ui/media/upload/network-upload-field/network-upload-dropzone-body.d.ts +8 -0
  278. package/dist/lib/components/ui/primitives/segmented-input/segmented-input-cells.d.ts +20 -0
  279. package/dist/lib/components/ui/primitives/segmented-input/use-segment-paste.d.ts +17 -0
  280. package/dist/lib/components/ui/primitives/segmented-input/use-segmented-keys.d.ts +17 -0
  281. package/dist/lib/components/ui/selection/autocomplete/autocomplete-equality.d.ts +7 -0
  282. package/dist/lib/components/ui/selection/autocomplete/partials/autocomplete-chips.d.ts +2 -19
  283. package/dist/lib/components/ui/selection/autocomplete/types.d.ts +19 -1
  284. package/dist/lib/components/ui/selection/autocomplete/use-autocomplete-handlers.d.ts +5 -6
  285. package/dist/lib/components/ui/selection/autocomplete/use-autocomplete-leave.d.ts +14 -0
  286. package/dist/lib/components/ui/selection/autocomplete/use-autocomplete-picks.d.ts +17 -0
  287. package/dist/lib/components/ui/selection/autocomplete/use-autocomplete-typing.d.ts +14 -0
  288. package/dist/lib/components/ui/selection/autocomplete/use-autocomplete.d.ts +3 -3
  289. package/dist/lib/components/ui/selection/checkbox-group/checkbox-group.d.ts +2 -23
  290. package/dist/lib/components/ui/selection/checkbox-group/partials/checkbox-group-options.d.ts +10 -0
  291. package/dist/lib/components/ui/selection/checkbox-group/types.d.ts +23 -0
  292. package/dist/lib/components/ui/selection/color-swatches/color-swatches.d.ts +2 -1
  293. package/dist/lib/components/ui/selection/color-swatches/color-swatches.utils.d.ts +3 -0
  294. package/dist/lib/components/ui/selection/color-swatches/partials/color-swatch-button.d.ts +13 -0
  295. package/dist/lib/components/ui/selection/color-swatches/partials/color-swatch-styles.d.ts +3 -0
  296. package/dist/lib/components/ui/selection/color-swatches/partials/custom-color-swatch.d.ts +11 -0
  297. package/dist/lib/components/ui/selection/color-swatches/types.d.ts +1 -0
  298. package/dist/lib/components/ui/selection/combobox-field/combobox-field.d.ts +3 -48
  299. package/dist/lib/components/ui/selection/combobox-field/partials/combobox-field-input.d.ts +4 -0
  300. package/dist/lib/components/ui/selection/combobox-field/types.d.ts +47 -0
  301. package/dist/lib/components/ui/selection/combobox-field/use-combobox-field-aria.d.ts +15 -0
  302. package/dist/lib/components/ui/selection/combobox-field/use-combobox-field-items.d.ts +1 -1
  303. package/dist/lib/components/ui/selection/combobox-field/use-typed-query.d.ts +8 -0
  304. package/dist/lib/components/ui/selection/option-tile/use-status-text.d.ts +3 -0
  305. package/dist/lib/components/ui/selection/radio-group/partials/radio-group-options.d.ts +7 -0
  306. package/dist/lib/components/ui/selection/radio-group/partials/radio-group-parts.d.ts +4 -0
  307. package/dist/lib/components/ui/selection/radio-group/radio-group.d.ts +3 -24
  308. package/dist/lib/components/ui/selection/radio-group/types.d.ts +22 -0
  309. package/dist/lib/components/ui/selection/sortable-list/partials/sortable-list-footer.d.ts +4 -0
  310. package/dist/lib/components/ui/selection/sortable-list/partials/sortable-list-frame.d.ts +20 -0
  311. package/dist/lib/components/ui/selection/sortable-list/partials/sortable-list-row-parts.d.ts +20 -0
  312. package/dist/lib/components/ui/selection/sortable-list/partials/sortable-list-row-props.d.ts +298 -0
  313. package/dist/lib/components/ui/selection/sortable-list/use-sortable-list-chrome.d.ts +20 -0
  314. package/dist/lib/components/ui/selection/sortable-list/use-sortable-list-data.d.ts +20 -0
  315. package/dist/lib/components/ui/selection/sortable-list/use-sortable-list-grab.d.ts +15 -0
  316. package/dist/lib/components/ui/selection/sortable-list/use-sortable-list-moves.d.ts +18 -0
  317. package/dist/lib/components/ui/selection/sortable-list/use-sortable-list.d.ts +7 -8
  318. package/dist/lib/components/ui/selection/switcher/partials/switcher-recent.d.ts +11 -0
  319. package/dist/lib/components/ui/selection/switcher/partials/switcher-row-body.d.ts +8 -0
  320. package/dist/lib/components/ui/selection/switcher/switcher-list-keys.d.ts +17 -0
  321. package/dist/lib/components/ui/selection/switcher/switcher.d.ts +1 -1
  322. package/dist/lib/components/ui/selection/switcher/use-switcher-clip.d.ts +9 -0
  323. package/dist/lib/components/ui/selection/switcher/use-switcher-list-focus.d.ts +14 -0
  324. package/dist/lib/components/ui/selection/switcher/use-switcher-open.d.ts +9 -0
  325. package/dist/lib/components/ui/selection/switcher/use-switcher-panel.d.ts +24 -0
  326. package/dist/lib/components/ui/selection/switcher/use-switcher.d.ts +326 -0
  327. package/dist/lib/components/ui/selection/transfer-list/partials/transfer-list-frame.d.ts +19 -0
  328. package/dist/lib/components/ui/selection/transfer-list/partials/transfer-list-item-row.d.ts +2 -3
  329. package/dist/lib/components/ui/selection/transfer-list/partials/transfer-list-listbox.d.ts +5 -0
  330. package/dist/lib/components/ui/selection/transfer-list/partials/transfer-list-row-parts.d.ts +16 -0
  331. package/dist/lib/components/ui/selection/transfer-list/partials/transfer-list-row-props.d.ts +283 -0
  332. package/dist/lib/components/ui/selection/transfer-list/transfer-list.keyboard.d.ts +3 -2
  333. package/dist/lib/components/ui/selection/transfer-list/use-transfer-list-actions.d.ts +3 -2
  334. package/dist/lib/components/ui/selection/transfer-list/use-transfer-list-checks.d.ts +18 -0
  335. package/dist/lib/components/ui/selection/transfer-list/use-transfer-list-derived.d.ts +14 -0
  336. package/dist/lib/components/ui/selection/transfer-list/use-transfer-list.d.ts +1 -1
  337. package/dist/lib/components/ui/selection/tree-select-field/partials/tree-select-chips.d.ts +9 -0
  338. package/dist/lib/components/ui/selection/tree-select-field/partials/tree-select-trigger-button.d.ts +15 -0
  339. package/dist/lib/components/ui/widgets/barcode/barcode-error.d.ts +4 -0
  340. package/dist/lib/components/ui/widgets/barcode/barcode-geometry.d.ts +22 -0
  341. package/dist/lib/components/ui/widgets/barcode/barcode.d.ts +31 -0
  342. package/dist/lib/components/ui/widgets/barcode/code128.d.ts +15 -0
  343. package/dist/lib/components/ui/widgets/barcode/datamatrix-placement.d.ts +7 -0
  344. package/dist/lib/components/ui/widgets/barcode/datamatrix-rs.d.ts +2 -0
  345. package/dist/lib/components/ui/widgets/barcode/datamatrix-tables.d.ts +13 -0
  346. package/dist/lib/components/ui/widgets/barcode/datamatrix.d.ts +10 -0
  347. package/dist/lib/components/ui/widgets/barcode/encode.d.ts +12 -0
  348. package/dist/lib/components/ui/widgets/barcode/index.d.ts +6 -0
  349. package/dist/lib/components/ui/widgets/barcode/label-length.d.ts +4 -0
  350. package/dist/lib/components/ui/widgets/barcode/label-sheet.d.ts +37 -0
  351. package/dist/lib/components/ui/widgets/chat/chat-message.d.ts +1 -1
  352. package/dist/lib/components/ui/widgets/chat/chat-message.view.d.ts +32 -0
  353. package/dist/lib/components/ui/widgets/chat/partials/chat-composer-notices.d.ts +8 -0
  354. package/dist/lib/components/ui/widgets/chat/partials/chat-composer-surface.d.ts +11 -0
  355. package/dist/lib/components/ui/widgets/chat/partials/chat-conversation-item-skeleton.d.ts +4 -0
  356. package/dist/lib/components/ui/widgets/chat/partials/chat-conversation-item-text.d.ts +10 -0
  357. package/dist/lib/components/ui/widgets/chat/partials/chat-inbox-list.d.ts +8 -0
  358. package/dist/lib/components/ui/widgets/chat/partials/chat-inbox-thread.d.ts +11 -0
  359. package/dist/lib/components/ui/widgets/chat/partials/chat-message-action-menus.d.ts +17 -0
  360. package/dist/lib/components/ui/widgets/chat/partials/chat-message-body.d.ts +6 -0
  361. package/dist/lib/components/ui/widgets/chat/partials/chat-scroll-to-latest.d.ts +7 -0
  362. package/dist/lib/components/ui/widgets/chat/partials/chat-typing-row.d.ts +9 -0
  363. package/dist/lib/components/ui/widgets/chat/use-chat-inbox-pane.d.ts +13 -0
  364. package/dist/lib/components/ui/widgets/chat/use-chat-widget-open.d.ts +19 -0
  365. package/dist/lib/components/ui/widgets/code-editor/toolbar/code-view-tools.d.ts +10 -0
  366. package/dist/lib/components/ui/widgets/code-editor/use-monaco-options.d.ts +9 -0
  367. package/dist/lib/components/ui/widgets/editor/extensions/custom/accordion/accordion-item-actions.d.ts +7 -0
  368. package/dist/lib/components/ui/widgets/editor/extensions/custom/action-card/action-card-tile.d.ts +10 -0
  369. package/dist/lib/components/ui/widgets/editor/extensions/custom/select-card/select-card-tile.d.ts +11 -0
  370. package/dist/lib/components/ui/widgets/editor/extensions/custom/select-card/toggle-selection.d.ts +3 -0
  371. package/dist/lib/components/ui/widgets/editor/extensions/custom/shared/use-node-list.d.ts +11 -0
  372. package/dist/lib/components/ui/widgets/editor/extensions/emoji/use-emoji-groups.d.ts +13 -0
  373. package/dist/lib/components/ui/widgets/editor/presets/compact-editor-parts.d.ts +10 -0
  374. package/dist/lib/components/ui/widgets/editor/presets/document-editor-frame-parts.d.ts +19 -0
  375. package/dist/lib/components/ui/widgets/editor/presets/document-editor-layout.d.ts +5 -0
  376. package/dist/lib/components/ui/widgets/editor/presets/document-editor-overlays.d.ts +6 -0
  377. package/dist/lib/components/ui/widgets/editor/presets/document-editor-page-parts.d.ts +25 -0
  378. package/dist/lib/components/ui/widgets/editor/presets/rich-chat-composer/composer-class.d.ts +8 -0
  379. package/dist/lib/components/ui/widgets/editor/presets/rich-chat-composer/partials/composer-toolbar.d.ts +6 -0
  380. package/dist/lib/components/ui/widgets/editor/presets/rich-chat-composer/partials/format-buttons.d.ts +8 -0
  381. package/dist/lib/components/ui/widgets/editor/presets/use-document-features.d.ts +15 -0
  382. package/dist/lib/components/ui/widgets/education/questions/partials/question-body.d.ts +5 -0
  383. package/dist/lib/components/ui/widgets/education/questions/partials/question-content.d.ts +3 -0
  384. package/dist/lib/components/ui/widgets/education/questions/partials/question-extras.d.ts +10 -0
  385. package/dist/lib/components/ui/widgets/education/questions/partials/question-outcome.d.ts +7 -0
  386. package/dist/lib/components/ui/widgets/education/questions/question-options.keyboard.d.ts +17 -0
  387. package/dist/lib/components/ui/widgets/education/questions/question.d.ts +1 -1
  388. package/dist/lib/components/ui/widgets/education/questions/types.d.ts +3 -2
  389. package/dist/lib/components/ui/widgets/education/quizzes/partials/quiz-shortcuts.d.ts +6 -0
  390. package/dist/lib/components/ui/widgets/education/quizzes/partials/results-actions.d.ts +7 -0
  391. package/dist/lib/components/ui/widgets/education/quizzes/partials/results-ring.d.ts +5 -0
  392. package/dist/lib/components/ui/widgets/education/quizzes/quiz.flow.d.ts +29 -0
  393. package/dist/lib/components/ui/widgets/education/quizzes/quiz.slice.d.ts +3 -0
  394. package/dist/lib/components/ui/widgets/education/quizzes/use-quiz-actions.d.ts +20 -0
  395. package/dist/lib/components/ui/widgets/education/quizzes/use-quiz-flow.d.ts +29 -0
  396. package/dist/lib/components/ui/widgets/education/quizzes/use-quiz-lifecycle.d.ts +12 -0
  397. package/dist/lib/components/ui/widgets/education/quizzes/use-quiz.d.ts +2 -1
  398. package/dist/lib/components/ui/widgets/event-calendar/partials/calendar-step-buttons.d.ts +2 -0
  399. package/dist/lib/components/ui/widgets/event-calendar/partials/month-day-cell-class.d.ts +9 -0
  400. package/dist/lib/components/ui/widgets/event-calendar/partials/month-day-parts.d.ts +12 -0
  401. package/dist/lib/components/ui/widgets/event-calendar/use-month-day.d.ts +26 -0
  402. package/dist/lib/components/ui/widgets/kanban/kanban.drag.d.ts +15 -0
  403. package/dist/lib/components/ui/widgets/kanban/partials/kanban-card-tile.d.ts +7 -0
  404. package/dist/lib/components/ui/widgets/kanban/partials/kanban-column-cards.d.ts +8 -0
  405. package/dist/lib/components/ui/widgets/kanban/partials/kanban-drag-preview.d.ts +8 -0
  406. package/dist/lib/components/ui/widgets/kanban/partials/kanban-group-header.d.ts +8 -0
  407. package/dist/lib/components/ui/widgets/kanban/use-kanban-item-actions.d.ts +20 -0
  408. package/dist/lib/components/ui/widgets/native-charts/core/base-props-types.d.ts +64 -0
  409. package/dist/lib/components/ui/widgets/native-charts/core/reference-geometry.d.ts +62 -0
  410. package/dist/lib/components/ui/widgets/native-charts/core/reference-types.d.ts +35 -0
  411. package/dist/lib/components/ui/widgets/native-charts/core/reference.d.ts +1 -56
  412. package/dist/lib/components/ui/widgets/native-charts/core/types.d.ts +2 -96
  413. package/dist/lib/components/ui/widgets/native-charts/hooks/use-model-parts.d.ts +20 -0
  414. package/dist/lib/components/ui/widgets/native-charts/hooks/use-model-shown.d.ts +23 -0
  415. package/dist/lib/components/ui/widgets/native-charts/line-chart/partials/line-strokes.d.ts +10 -0
  416. package/dist/lib/components/ui/widgets/native-charts/line-chart/partials/use-line-reveal.d.ts +9 -0
  417. package/dist/lib/i18n/resources/en/en.d.ts +12 -0
  418. package/dist/lib/i18n/resources/en/material.json.d.ts +13 -1
  419. package/dist/lib/i18n/resources/fr/fr.d.ts +12 -0
  420. package/dist/lib/i18n/resources/fr/material.json.d.ts +13 -1
  421. package/dist/lib/i18n/resources/resources.d.ts +24 -0
  422. package/dist/lib/i18n/translator.d.ts +1 -1
  423. package/dist/lib/map/components/partials/default-location.d.ts +2 -0
  424. package/dist/lib/map/components/partials/location-dialog.d.ts +17 -0
  425. package/dist/lib/print/components/print-document/print-document.d.ts +2 -37
  426. package/dist/lib/print/components/print-document/print-document.types.d.ts +37 -0
  427. package/dist/lib/print/components/print-document/use-print-context.d.ts +11 -0
  428. package/dist/lib/print/components/print-section.d.ts +8 -1
  429. package/dist/lib.js +55 -48
  430. package/dist/main.js +43 -43
  431. package/dist/map.js +91 -74
  432. package/dist/material.css +1 -1
  433. package/dist/{nxgt-theme-ivgNca3z.js → nxgt-theme-DA1IQe0O.js} +5 -5
  434. package/dist/pdf-reader.js +1 -1
  435. package/dist/print.js +123 -108
  436. package/dist/{public-DVZJVdxD.js → public-CLkf8uky.js} +368 -338
  437. package/dist/{render-json-BOhvPnSv.js → render-json-COvAkihK.js} +3 -3
  438. package/dist/{rich-code-block-DL5-9JIi.js → rich-code-block-hJexXOdk.js} +5 -5
  439. package/dist/{rich-text-viewer-W15XIwah.js → rich-text-viewer-CXJp584B.js} +3 -3
  440. package/dist/{sortable-provider-DrpBwx75.js → sortable-provider-DE-MSfeJ.js} +2 -2
  441. package/dist/{spinner-D4XGdse6.js → spinner-CquTUxzt.js} +3 -1
  442. package/dist/{stored-language-C89mti-z.js → stored-language-BDzGeEAm.js} +22 -2
  443. package/dist/theme-picker.js +3 -3
  444. package/dist/{theme-toggle-BFhqLmgx.js → theme-toggle-DBgsBw8S.js} +1 -1
  445. package/dist/themes.js +1 -1
  446. package/dist/{toolbar-items-SZ5pyAFz.js → toolbar-items-Bm1baIp6.js} +578 -567
  447. package/dist/{translate-material-BkqnImND.js → translate-material-Q67GD4co.js} +2 -2
  448. package/dist/{translator-B5fId5Rw.js → translator-CBhGdYun.js} +1 -1
  449. package/dist/{use-chat-composer-BG5B4DGB.js → use-chat-composer-Cx7Q_KOV.js} +8929 -8650
  450. package/dist/{use-heading-spy-51GQw8tH.js → use-heading-spy-COxCWqWF.js} +1 -1
  451. package/dist/{use-material-translation-BQOr4Oks.js → use-material-translation-BZAy_ffS.js} +2 -2
  452. package/dist/use-shape-morph-BKA_R5P5.js +35 -0
  453. package/dist/{youtube-node-OWSNlYCc.js → youtube-node-A3NPAPgK.js} +27 -27
  454. package/docs/README.md +1 -0
  455. package/docs/components/buttons-and-actions.md +37 -0
  456. package/docs/components/feedback-and-status.md +30 -4
  457. package/docs/components/navigation-and-layout.md +47 -0
  458. package/docs/components/rich-widgets.md +34 -3
  459. package/docs/guides/barcode.md +203 -0
  460. package/docs/guides/data-grid.md +11 -1
  461. package/docs/guides/printing.md +28 -3
  462. package/docs/previews/buttons-actions-loadmorefooter.webp +0 -0
  463. package/docs/previews/feedback-status-pageloadfailed.webp +0 -0
  464. package/docs/previews/navigation-layout-stickyactionbar.webp +0 -0
  465. package/docs/roadmap.md +18 -3
  466. package/docs/troubleshooting.md +62 -0
  467. package/lib/components/components.css +1 -0
  468. package/lib/components/ui/widgets/barcode/barcode.css +112 -0
  469. package/package.json +10 -3
  470. package/dist/empty-state-4gmbCkcw.js +0 -117
  471. package/dist/use-shape-morph-DXdy2X5g.js +0 -35
@@ -1,4 +1,4 @@
1
- import { r as e } from "./i18n-provider-DBr59j1p.js";
1
+ import { r as e } from "./i18n-provider-BJDI-A5w.js";
2
2
  import { _ as t, g as n, h as r, n as i, v as a, y as o } from "./number.utils-BG_eEt5g.js";
3
3
  import { useCallback as s, useEffect as c, useMemo as l, useRef as u, useState as d } from "react";
4
4
  import { busySettler as f, busySettler as p, createSubmitGuard as m, createSubmitGuard as h } from "@nxgt/material-core/submit-guard";
@@ -1,5 +1,5 @@
1
- import { r as e } from "./i18n-provider-DBr59j1p.js";
2
- import { t } from "./translate-material-BkqnImND.js";
1
+ import { r as e } from "./i18n-provider-BJDI-A5w.js";
2
+ import { t } from "./translate-material-Q67GD4co.js";
3
3
  import { useCallback as n } from "react";
4
4
  //#region lib/i18n/use-material-translation.ts
5
5
  function r() {
@@ -0,0 +1,35 @@
1
+ import { morph as e, morphAt as t, toSvgPath as n } from "@nxgt/material-core/shapes";
2
+ import { useLayoutEffect as r, useRef as i } from "react";
3
+ //#region lib/components/ui/display/shape/use-shape-morph.ts
4
+ var a = .8, o = 14, s = o * Math.sqrt(1 - a * a);
5
+ function c(e) {
6
+ let t = e / 1e3;
7
+ return 1 - Math.exp(-.8 * o * t) * (Math.cos(s * t) + a * o / s * Math.sin(s * t));
8
+ }
9
+ var l = () => typeof window.matchMedia == "function" && window.matchMedia("(prefers-reduced-motion: reduce)").matches;
10
+ function u(a, o, s) {
11
+ let u = i(o);
12
+ r(() => {
13
+ let r = a.current, i = u.current;
14
+ if (!r || i === o || !s || l()) {
15
+ r && i !== o && r.setAttribute("d", n(o)), u.current = o;
16
+ return;
17
+ }
18
+ let d = e(i, o), f = n(o), p = 0, m = performance.now(), h = (e) => {
19
+ let i = e - m;
20
+ if (i >= 520) {
21
+ u.current = o, r.setAttribute("d", f);
22
+ return;
23
+ }
24
+ let a = t(d, c(i));
25
+ u.current = a, r.setAttribute("d", n(a)), p = requestAnimationFrame(h);
26
+ };
27
+ return r.setAttribute("d", n(d.from)), p = requestAnimationFrame(h), () => cancelAnimationFrame(p);
28
+ }, [
29
+ a,
30
+ o,
31
+ s
32
+ ]);
33
+ }
34
+ //#endregion
35
+ export { u as n, c as t };
@@ -172,15 +172,7 @@ var mt = D.create({
172
172
  return ["div", w(e)];
173
173
  },
174
174
  ...A(Be, ft)
175
- }), ht = /^(https?:|mailto:|tel:)/i, gt = /^[a-z][a-z0-9+.-]*:/i;
176
- function _t(e) {
177
- if (typeof e != "string") return;
178
- let t = e.replace(/[\u0000-\u001f\u007f\s]+/g, "");
179
- if (t) return ht.test(t) ? e.trim() : gt.test(t) ? void 0 : e.trim();
180
- }
181
- //#endregion
182
- //#region lib/components/ui/widgets/editor/extensions/custom/shared/icon-options.ts
183
- var vt = {
175
+ }), ht = {
184
176
  sparkles: Pe,
185
177
  rocket: je,
186
178
  star: Fe,
@@ -195,34 +187,42 @@ var vt = {
195
187
  "trending-up": Le,
196
188
  info: Ae,
197
189
  settings: Me
198
- }, yt = Object.keys(vt), bt = "sparkles";
199
- function xt(e) {
190
+ }, gt = Object.keys(ht), _t = "sparkles";
191
+ function vt(e) {
200
192
  return e.split("-").map((e) => e[0].toUpperCase() + e.slice(1)).join(" ");
201
193
  }
202
- function St(e) {
203
- return vt[typeof e == "string" && yt.includes(e) ? e : bt];
194
+ function yt(e) {
195
+ return ht[typeof e == "string" && gt.includes(e) ? e : _t];
204
196
  }
205
197
  //#endregion
206
198
  //#region lib/components/ui/widgets/editor/extensions/custom/action-card/const.ts
207
- var Ct = "actionCard", wt = [{
199
+ var bt = "actionCard", xt = [{
208
200
  value: "sm",
209
201
  label: "Small"
210
202
  }, {
211
203
  value: "md",
212
204
  label: "Medium"
213
- }], Tt = [{
205
+ }], St = [{
214
206
  id: "card-1",
215
- icon: bt,
207
+ icon: _t,
216
208
  title: "Title",
217
209
  description: "Description",
218
210
  href: ""
219
211
  }, {
220
212
  id: "card-2",
221
- icon: bt,
213
+ icon: _t,
222
214
  title: "Title",
223
215
  description: "Description",
224
216
  href: ""
225
- }], Et = /^\[((?:\\.|[^\]])*)\]\(([^)\s]*)\)$/, Dt = (e) => Array.isArray(e) ? e : [], Ot = (e) => j(e) ? [` ${j(e).replace(/\n/g, " ")}`] : [], kt = {
217
+ }], Ct = /^(https?:|mailto:|tel:)/i, wt = /^[a-z][a-z0-9+.-]*:/i;
218
+ function Tt(e) {
219
+ if (typeof e != "string") return;
220
+ let t = e.replace(/[\u0000-\u001f\u007f\s]+/g, "");
221
+ if (t) return Ct.test(t) ? e.trim() : wt.test(t) ? void 0 : e.trim();
222
+ }
223
+ //#endregion
224
+ //#region lib/components/ui/widgets/editor/format/codecs/cards.ts
225
+ var Et = /^\[((?:\\.|[^\]])*)\]\(([^)\s]*)\)$/, Dt = (e) => Array.isArray(e) ? e : [], Ot = (e) => j(e) ? [` ${j(e).replace(/\n/g, " ")}`] : [], kt = {
226
226
  write: (e) => {
227
227
  let t = new Set((Array.isArray(e.value) ? e.value : []).map(String));
228
228
  return {
@@ -279,23 +279,23 @@ var Ct = "actionCard", wt = [{
279
279
  //#endregion
280
280
  //#region lib/components/ui/widgets/editor/extensions/custom/action-card/spec.ts
281
281
  function jt(e) {
282
- if (!e) return Tt;
282
+ if (!e) return St;
283
283
  try {
284
284
  let t = JSON.parse(e);
285
- return Array.isArray(t) ? t : Tt;
285
+ return Array.isArray(t) ? t : St;
286
286
  } catch {
287
- return Tt;
287
+ return St;
288
288
  }
289
289
  }
290
290
  var Mt = D.create({
291
- name: Ct,
291
+ name: bt,
292
292
  group: "block",
293
293
  atom: !0,
294
294
  draggable: !0,
295
295
  addAttributes() {
296
296
  return {
297
297
  items: {
298
- default: Tt,
298
+ default: St,
299
299
  parseHTML: (e) => jt(e.getAttribute("data-action-card-items")),
300
300
  renderHTML: (e) => ({ "data-action-card-items": JSON.stringify(e.items) })
301
301
  },
@@ -312,7 +312,7 @@ var Mt = D.create({
312
312
  renderHTML({ HTMLAttributes: e }) {
313
313
  return ["div", w(e)];
314
314
  },
315
- ...A(Ct, At)
315
+ ...A(bt, At)
316
316
  }), Nt = "callout", Pt = {
317
317
  info: {
318
318
  label: "Info",
@@ -4583,12 +4583,12 @@ var Ls = D.create({
4583
4583
  value: "option-1",
4584
4584
  title: "Option 1",
4585
4585
  description: "",
4586
- icon: bt
4586
+ icon: _t
4587
4587
  }, {
4588
4588
  value: "option-2",
4589
4589
  title: "Option 2",
4590
4590
  description: "",
4591
- icon: bt
4591
+ icon: _t
4592
4592
  }];
4593
4593
  //#endregion
4594
4594
  //#region lib/components/ui/widgets/editor/extensions/custom/select-card/spec.ts
@@ -6778,4 +6778,4 @@ var ru = nu(Ll), iu = nu(Rl), au = E.create({
6778
6778
  })
6779
6779
  });
6780
6780
  //#endregion
6781
- export { Ve as $, fr as A, It as B, Di as C, mr as D, vr as E, $t as F, Tt as G, Ft as H, Ut as I, vt as J, bt as K, zt as L, Ln as M, nr as N, dr as O, Xt as P, mt as Q, Bt as R, Ei as S, xr as T, Mt as U, Pt as V, wt as W, St as X, xt as Y, _t as Z, Ps as _, tu as a, ki as b, Js as c, Us as d, Bs as f, Ns as g, Fs as h, iu as i, Fn as j, ur as k, Ks as l, Ls as m, au as n, zl as o, zs as p, yt as q, ru as r, Z as s, gu as t, Gs as u, js as v, Cr as w, Oi as x, Ts as y, Rt as z };
6781
+ export { Ve as $, fr as A, It as B, Di as C, mr as D, vr as E, $t as F, xt as G, Ft as H, Ut as I, gt as J, St as K, zt as L, Ln as M, nr as N, dr as O, Xt as P, mt as Q, Bt as R, Ei as S, xr as T, Mt as U, Pt as V, Tt as W, vt as X, ht as Y, yt as Z, Ps as _, tu as a, ki as b, Js as c, Us as d, Bs as f, Ns as g, Fs as h, iu as i, Fn as j, ur as k, Ks as l, Ls as m, au as n, zl as o, zs as p, _t as q, ru as r, Z as s, gu as t, Gs as u, js as v, Cr as w, Oi as x, Ts as y, Rt as z };
package/docs/README.md CHANGED
@@ -9,6 +9,7 @@ detail: every option, the second example, and the traps.
9
9
  | [Components](components/README.md) | You are looking for a component — one preview per category, then one page per category |
10
10
  | [Forms](guides/forms.md) | You are building a form: the field / `*FormField` pair, React Hook Form + Zod, what each field emits, server errors, multi-step forms |
11
11
  | [Themes for your app](guides/themes.md) | You define your own themes: `defineTheme` modules, the Vite plugin's `themes` option, the `nxgt-theme` command and its CI check, the tone warnings |
12
+ | [Barcodes and label sheets](guides/barcode.md) | You draw a Code 128 or Data Matrix code and print a sheet of labels with `@nxgt/material/barcode`: `Barcode`, `LabelSheet` and `Label`, label size, columns, rows, gaps and a start offset, dark mode, print and accessibility |
12
13
  | [Charts](guides/charts.md) | You draw charts with `@nxgt/material/charts`: each chart, the shared props, reference bands, thresholds and point tones, zoom and phone scroll, the keyboard, accessibility, theming the `--chart-1..5` tokens, and moving off the Nivo charts, removed in 3.0 |
13
14
  | [Cards and tiles](guides/cards-and-tiles.md) | You want a `DataTable` as a list of cards or tiles: `layout`, `renderCard`, `renderTile`, the card's one link, selection, the sort control, columns by the list's width |
14
15
  | [DataGrid](guides/data-grid.md) | You are building an editable grid: columns and editors, save modes and conflicts, resizing, hiding and reordering columns, paste, fill and series, undo, totals, long lists, phones, custom editors, CSP |
@@ -18,6 +18,7 @@ and language switches. Everything is imported from `@nxgt/material/components`.
18
18
  | <img src="../previews/buttons-actions-copybutton.webp" width="96" alt=""> | [CopyButton](#copybutton) | Copies a value, shows a check mark |
19
19
  | <img src="../previews/buttons-actions-highlighttext.webp" width="96" alt=""> | [HighlightText](#highlighttext) | Marks matches of a query inside a string |
20
20
  | <img src="../previews/buttons-actions-loadmorebutton.webp" width="96" alt=""> | [LoadMoreButton](#loadmorebutton) | "Load more" for cursor pagination |
21
+ | <img src="../previews/buttons-actions-loadmorefooter.webp" width="96" alt=""> | [LoadMoreFooter](#loadmorefooter) | Shown-of-total line, load button and a failed state with retry, for a paged list |
21
22
  | <img src="../previews/buttons-actions-scrolltotop.webp" width="96" alt=""> | [ScrollToTop](#scrolltotop) | Appears past a scroll threshold |
22
23
  | <img src="../previews/buttons-actions-scrolltolatestbutton.webp" width="96" alt=""> | [ScrollToLatestButton](#scrolltolatestbutton) | "Jump to latest" over a scroll box, counting what arrived |
23
24
  | <img src="../previews/buttons-actions-actioncard.webp" width="96" alt=""> | [ActionCard](#actioncard) | Clickable card, a button (`aria-pressed`) when it chooses or reacts, with an active indicator; `status`, `meta`, a trailing `action` and a `tile` variant |
@@ -969,6 +970,42 @@ buttons.
969
970
 
970
971
  ---
971
972
 
973
+
974
+ ## LoadMoreFooter
975
+
976
+ ![LoadMoreFooter](../previews/buttons-actions-loadmorefooter.webp)
977
+
978
+ The footer of a paged list: a "Showing N of M" line (a polite live region), the load button and, when the next page failed, an error alert whose "Try again" calls `onLoad`. The rows already shown stay on screen. It renders nothing when there is no next page.
979
+
980
+ ```tsx
981
+ import { LoadMoreFooter } from '@nxgt/material/components';
982
+
983
+ <LoadMoreFooter
984
+ shown={items.length}
985
+ total={totalCount}
986
+ hasMore={hasNextPage}
987
+ loading={isFetchingNextPage}
988
+ failed={isFetchNextPageError}
989
+ onLoad={() => fetchNextPage()}
990
+ />;
991
+ ```
992
+
993
+ | Prop | Type | Default | Effect |
994
+ | --- | --- | --- | --- |
995
+ | `shown` | `number` | — | items shown now |
996
+ | `total` | `number` | — | items in all; leave it out when unknown, the line then reads "20 shown" |
997
+ | `hasMore` | `boolean` | — | `false` renders nothing, not even the count |
998
+ | `loading` | `boolean` | `false` | the button (or the retry) spins and ignores clicks |
999
+ | `failed` | `boolean` | `false` | an error alert with a tonal "Try again" replaces the button |
1000
+ | `label` | `string` | `"Load more"` (translated) | the load button's text; the button is expanded here |
1001
+ | `onLoad` | `() => void` | — | loads the next page; the retry calls it too |
1002
+
1003
+ Texts are `material.load-more.shown`, `.shown-count`, `.failed` and `.retry` (English and French). It composes [`LoadMoreButton`](#loadmorebutton); keep that one for a pagination bar. For a page opened at a cursor that failed, see [`PageLoadFailed`](./feedback-and-status.md#pageloadfailed).
1004
+
1005
+ **Storybook:** `Buttons & actions/LoadMoreFooter` · **Vue:** not yet (tracked as a `vue` issue)
1006
+
1007
+ ---
1008
+
972
1009
  ## ScrollToTop
973
1010
 
974
1011
  ![ScrollToTop](../previews/buttons-actions-scrolltotop.webp)
@@ -13,11 +13,12 @@ centre.
13
13
  | <img src="../previews/feedback-status-customdialog.webp" width="96" alt=""> | [CustomDialog](#customdialog) | Ready-made dialog with trigger, icon, title, body and footer |
14
14
  | <img src="../previews/feedback-status-stepupdialog.webp" width="96" alt=""> | [StepUpDialog](#stepupdialog) | "Confirm it's you": a dialog that asks for a one-time code, driven by props |
15
15
  | <img src="../previews/feedback-status-emptystate.webp" width="96" alt=""> | [EmptyState](#emptystate) | Illustration, title, description and action, by kind (empty, search, not-found, unauthorized) |
16
+ | <img src="../previews/feedback-status-pageloadfailed.webp" width="96" alt=""> | [PageLoadFailed](#pageloadfailed) | An empty state for a page opened at a cursor that failed, with a link back to the start |
16
17
  | <img src="../previews/feedback-status-errorstate.webp" width="96" alt=""> | [ErrorState](#errorstate) | Failure block with Retry and technical details |
17
18
  | <img src="../previews/feedback-status-progress.webp" width="96" alt=""> | [Progress](#progress) | Material 3 Expressive linear bar, circular ring and labelled progress field, flat or wavy |
18
19
  | <img src="../previews/feedback-status-scrollprogress.webp" width="96" alt=""> | [ScrollProgress](#scrollprogress) | Hairline tracking the window or a scrollable element |
19
20
  | <img src="../previews/feedback-status-stepdots.webp" width="96" alt=""> | [StepDots](#stepdots) | Segmented step progress, each step coloured by its state |
20
- | <img src="../previews/feedback-status-countdowntimer.webp" width="96" alt=""> | [CountdownTimer](#countdowntimer) | Countdown clock with a ring, amber then red as time runs out, with an icon and words in the warning |
21
+ | <img src="../previews/feedback-status-countdowntimer.webp" width="96" alt=""> | [CountdownTimer](#countdowntimer) | Countdown clock with a ring, amber then red as time runs out, with an icon and words when time is low |
21
22
  | <img src="../previews/feedback-status-spinner.webp" width="96" alt=""> | [Spinner](#spinner) | Loading spinner in several styles and colours |
22
23
  | <img src="../previews/feedback-status-loadingindicator.webp" width="96" alt=""> | [LoadingIndicator](#loadingindicator) | Material 3 Expressive's loading indicator: a shape morphing while it turns |
23
24
  | <img src="../previews/feedback-status-typingindicator.webp" width="96" alt=""> | [TypingIndicator](#typingindicator) | Three dots in a wave: someone is writing |
@@ -502,6 +503,30 @@ The default description is the companion of its title: with your own `title` and
502
503
 
503
504
  ---
504
505
 
506
+ ## PageLoadFailed
507
+
508
+ ![PageLoadFailed](../previews/feedback-status-pageloadfailed.webp)
509
+
510
+ An `EmptyState` for a list page opened at a cursor that failed to load (a stale link, a lost page): a title and a tonal "Back to the start" link. The link is rendered by the `LinkComponentProvider`'s component. For the next page of a list that is already shown, use [`LoadMoreFooter`](./buttons-and-actions.md#loadmorefooter), which keeps the rows.
511
+
512
+ ```tsx
513
+ import { PageLoadFailed } from '@nxgt/material/components';
514
+
515
+ <PageLoadFailed href="/orders" />;
516
+ ```
517
+
518
+ | Prop | Type | Default | Effect |
519
+ | --- | --- | --- | --- |
520
+ | `href` | `string` | — | where "Back to the start" goes: the list without its cursor |
521
+ | `linkLabel` | `string` | `"Back to the start"` (translated) | the link's text |
522
+ | `title` | `ReactNode` | `"This page could not be loaded"` (translated) | the title |
523
+
524
+ It takes the other `EmptyState` props (`size`, `illustration`, `description`, `headingLevel`) except `action`. Texts are `material.load-more.page-failed-title` and `.back-to-start`.
525
+
526
+ **Storybook:** `Feedback & status/PageLoadFailed` · **Vue:** not yet (tracked as a `vue` issue)
527
+
528
+ ---
529
+
505
530
  ## ErrorState
506
531
 
507
532
  ![ErrorState](../previews/feedback-status-errorstate.webp)
@@ -747,7 +772,8 @@ import { CountdownTimer } from '@nxgt/material/components';
747
772
 
748
773
  <CountdownTimer duration={300} onExpire={() => submit()} />;
749
774
 
750
- // Past `warningAt` it shows a clock icon and "Little time left"; change or hide the words:
775
+ // Past `warningAt` it shows a clock icon and "Little time left" ("Almost out of time" past
776
+ // `criticalAt`); change (both tones) or hide the words:
751
777
  <CountdownTimer duration={300} warningText="Hurry up" />;
752
778
  <CountdownTimer duration={300} warningText={false} />;
753
779
  ```
@@ -759,12 +785,12 @@ import { CountdownTimer } from '@nxgt/material/components';
759
785
  | `onExpire` | `() => void` | — | called once, at zero |
760
786
  | `warningAt` / `criticalAt` | `number` | a quarter (≤ 60 s) / a tenth (≤ 10 s) | the seconds left when it turns amber / red |
761
787
  | `label` | `string` | `'Time remaining'` | its name |
762
- | `warningText` | `string \| false` | `'Little time left'` | the words shown with a clock icon in the warning tone, so low time is not told by colour alone; `false` hides them |
788
+ | `warningText` | `string \| false` | `'Little time left'` / `'Almost out of time'` | the words shown with a clock icon in the warning and critical tones, so low time is not told by colour alone; a string replaces both phrases; `false` hides them |
763
789
  | `size` | `'sm' \| 'md'` | `'md'` | 28 or 36 px high |
764
790
 
765
791
  It ticks on the client only: the server renders the full time. The clock is a
766
792
  `role="timer"`; a polite live region speaks only when a threshold is crossed
767
- ("Little time left. 1:00 left", the phrase being `warningText`) and when the time is up, never every second. `formatClock` and
793
+ ("Little time left. 1:00 left", the phrase being `warningText` or the critical one) and when the time is up, never every second. `formatClock` and
768
794
  `countdownTone` are exported too, and so is the clock itself as the
769
795
  [`useCountdown`](../guides/helpers.md#usecountdown) hook (`@nxgt/material/hooks`),
770
796
  for a button that waits without a ring.
@@ -12,6 +12,7 @@ documentation-site shell. Everything is imported from
12
12
  | <img src="../previews/navigation-layout-authcard.webp" width="96" alt=""> | [AuthCard](#authcard) | Signed-out page frame: one `main`, a centred card, its title the `h1` |
13
13
  | <img src="../previews/navigation-layout-sidebar.webp" width="96" alt=""> | [Sidebar](#sidebar) | Collapsible navigation sidebar |
14
14
  | <img src="../previews/navigation-layout-topappbar.webp" width="96" alt=""> | [TopAppBar, BottomAppBar](#topappbar) | Top and bottom bars |
15
+ | <img src="../previews/navigation-layout-stickyactionbar.webp" width="96" alt=""> | [StickyActionBar](#stickyactionbar) | A page's main decision, stuck to the bottom on a phone, inline from `md` |
15
16
  | <img src="../previews/navigation-layout-breadcrumb.webp" width="96" alt=""> | [Breadcrumb](#breadcrumb) | Breadcrumb primitives |
16
17
  | <img src="../previews/navigation-layout-listdetailslayout.webp" width="96" alt=""> | [ListDetailsLayout, PaneLayout, ThreadLayout](#listdetailslayout) | Page layouts that adapt to phones |
17
18
  | <img src="../previews/navigation-layout-responsivegrid.webp" width="96" alt=""> | [ResponsiveGrid](#responsivegrid) | Container-query grid, 1 to 5 columns, or `auto-fill` columns by a minimum tile width (`minItem`) |
@@ -343,6 +344,52 @@ the one with `data-state="active"`.
343
344
 
344
345
  ---
345
346
 
347
+ ## StickyActionBar
348
+
349
+ ![StickyActionBar](../previews/navigation-layout-stickyactionbar.webp)
350
+
351
+ The bar that holds a page's main decision (approve / send back). On a phone it
352
+ sticks to the bottom of the scroll box, above the on-screen keyboard and clear
353
+ of the safe areas; from `md` (768px) it is an inline row after the content.
354
+
355
+ ```tsx
356
+ import { Button, StickyActionBar } from '@nxgt/material/components';
357
+
358
+ <main>
359
+ {/* long content */}
360
+ <StickyActionBar aria-label="Review decision">
361
+ <Button variant="outlined">Send back</Button>
362
+ <Button>Approve</Button>
363
+ </StickyActionBar>
364
+ </main>
365
+ ```
366
+
367
+ Put it last in the scrolling content: it is `position: sticky`, not `fixed`, so
368
+ it takes its own room (nothing hides behind it) and rests inline at the end of
369
+ the page. It takes a `div`'s props.
370
+
371
+ - **One primary action.** The last child is the primary: on a phone it takes
372
+ the room the others leave, which keep their size. Give it the one filled
373
+ `Button`; a second filled `Button` among the children warns once in
374
+ development, make the others `outlined` or `tonal`.
375
+ - **Safe areas.** Under `viewport-fit=cover` the bar pads clear of
376
+ `env(safe-area-inset-left | right | bottom)`, as classes.
377
+ - **Keyboard.** From the visual viewport (`visualViewport`), the bar rises by
378
+ the height the on-screen keyboard covers (`--nxgt-keyboard-inset` on the bar,
379
+ `data-keyboard="open"` while it is open) and drops the bottom safe-area
380
+ padding, which the keyboard covers. A browser that resizes the layout itself
381
+ (`interactive-widget=resizes-content`) needs no lift, and none is applied.
382
+ Pinch-zoom is not treated as a keyboard.
383
+ - **Name.** With `aria-label` or `aria-labelledby` the bar is a `group`.
384
+
385
+ | Prop | Type | Default | Effect |
386
+ | --- | --- | --- | --- |
387
+ | `sticky` | `boolean` | `true` | `false`: inline on a phone too |
388
+
389
+ **Storybook:** `Navigation & layout/StickyActionBar` · **Vue:** not yet
390
+
391
+ ---
392
+
346
393
  ## Breadcrumb
347
394
 
348
395
  ![Breadcrumb](../previews/navigation-layout-breadcrumb.webp)
@@ -11,6 +11,7 @@ the app owns the data.
11
11
  | <img src="../previews/rich-widgets-eventcalendar.webp" width="96" alt=""> | [EventCalendar](#eventcalendar) | Month / week / day / agenda calendar, a day view split by resource, a named time zone, phone to desktop |
12
12
  | <img src="../previews/rich-widgets-native-charts-linechart.webp" width="96" alt=""> | [Charts](#charts) | Native SVG charts (line, area, bar, pie, donut, gauge, radial, funnel, heat map, radar, scatter, combo) with keyboard, summary and View data; the Nivo ones were removed in 3.0 |
13
13
  | <img src="../previews/rich-widgets-drawing.webp" width="96" alt=""> | [Drawing](#drawing) | Vector drawing from a scene of plain data or JSX primitives: theme colours, accessible, focusable nodes, strict-CSP safe |
14
+ | | [Barcode](#barcode) | Code 128 and Data Matrix as accessible SVG, themed and dark-aware, black on white in print, with `LabelSheet` for a printed sheet of labels |
14
15
  | <img src="../previews/rich-widgets-emojipicker.webp" width="96" alt=""> | [EmojiPicker](#emojipicker) | Shared emoji picker and list |
15
16
  | <img src="../previews/rich-widgets-mentionlist.webp" width="96" alt=""> | [MentionList](#mentionlist) | `@` mention list with local search |
16
17
  | <img src="../previews/rich-widgets-documenteditor.webp" width="96" alt=""> | [DocumentEditor](#documenteditor) | Rich text editor for long-form writing, built on a headless core |
@@ -615,6 +616,36 @@ How to use it in an app (server rendering, CSP, colours, events, PNG, PDF, e-mai
615
616
 
616
617
  ---
617
618
 
619
+ ## Barcode
620
+
621
+ Code 128 and Data Matrix from `@nxgt/material/barcode`, drawn as SVG by the
622
+ package (no runtime dependency). The symbol follows the theme and dark mode on
623
+ screen (`appearance="paper"` keeps it dark on light), is black on white in
624
+ print, is named by `label` (or its value) and writes no inline `style`. Its own
625
+ entry, server-safe.
626
+
627
+ ```tsx
628
+ import { Barcode, Label, LabelSheet } from '@nxgt/material/barcode';
629
+
630
+ <Barcode value="TUBE-0042" label="Tube 0042" showText />
631
+ <Barcode value="TUBE-0042" symbology="datamatrix" />
632
+
633
+ <LabelSheet label={{ width: '50mm', height: '25mm' }} columns={3} rows={8} gap="2mm" offset={{ x: 5, y: 8 }}>
634
+ {items.map((i) => (
635
+ <Label key={i.id}>
636
+ <Barcode value={i.code} decorative />
637
+ {i.code}
638
+ </Label>
639
+ ))}
640
+ </LabelSheet>
641
+ ```
642
+
643
+ `LabelSheet` takes `label` (`{ width, height }`), `columns`, `rows` (labels per
644
+ page), `gap`, `offset` (margin before the first label) and `skip` (blank labels
645
+ first); lengths are millimetres or a string with a unit. A value a symbology cannot hold throws a `BarcodeError`; `barcodeGeometry(value, options)` returns the `viewBox` size and path for an SVG of your own. See the
646
+ [barcode guide](../guides/barcode.md) for printing a sheet and for the limits
647
+ of each symbology.
648
+
618
649
  ## EmojiPicker
619
650
 
620
651
  ![EmojiPicker](../previews/rich-widgets-emojipicker.webp)
@@ -2412,7 +2443,7 @@ French bundle — see [i18n](../guides/i18n.md).
2412
2443
  | `onComplete` | `(result: QuizResult) => void` | — | `{ correct, total, percent, answers, timedOut }`, once per results screen |
2413
2444
  | `onAnswersChange` / `onIndexChange` | callbacks | — | follow progress |
2414
2445
  | `QuestionCard` `revealed` | `boolean` | `false` | marks right / wrong and shows the verdict and `explanation` |
2415
- | `QuestionCard` `verdict` | `'correct' \| 'incorrect' \| 'pending'` | — | the server's verdict, shown as given (word and icon, never colour alone); reveals the card. `question.correct` is optional and only highlights the right choices. Without it, `revealed` compares in the browser as before |
2446
+ | `QuestionCard` `verdict` | `'correct' \| 'incorrect' \| 'pending' \| 'unanswered'` | — | the server's verdict, shown as given (word and icon, never colour alone); reveals the card; `unanswered` is a blank question ("No answer", no value shown, the correct answer and `explanation` shown, points read 0). `question.correct` is optional and only highlights the right choices. Without it, `revealed` compares in the browser as before |
2416
2447
  | `QuestionCard` `points` / `feedback` | `{ awarded, possible }` / `string` | — | points earned and a grader's remark, in the verdict banner (with `verdict`) |
2417
2448
  | `Question` `media` | `{ src, alt?, kind?, type?, name? }` | — | an image (default), audio (`kind: 'audio'` or `type: 'audio/*'`, an `AudioPlayer`) or a document link (any other `type`, a `FilePreview`); `name` (else `alt`) is the text alternative |
2418
2449
  | `QuestionCard` `value` / `onValueChange` | `QuestionAnswer` | — | controlled answer |
@@ -2424,7 +2455,7 @@ A server-graded answer, shown as given (no comparison in the browser):
2424
2455
  <QuestionCard
2425
2456
  question={{ id: 'q1', kind: 'text', prompt: 'Explain X' }}
2426
2457
  value="my answer"
2427
- verdict="incorrect" // or 'correct' | 'pending'
2458
+ verdict="incorrect" // or 'correct' | 'pending' | 'unanswered'
2428
2459
  points={{ awarded: 2, possible: 3 }}
2429
2460
  feedback="Good, but cite a source"
2430
2461
  />
@@ -2436,7 +2467,7 @@ A server-graded answer, shown as given (no comparison in the browser):
2436
2467
 
2437
2468
  The numbered questions of a quiz or exam player: jump to one, see the current
2438
2469
  one and which are answered or flagged. Import it from
2439
- `@nxgt/material/widgets/education`.
2470
+ `@nxgt/material/components`.
2440
2471
 
2441
2472
  ```tsx
2442
2473
  <QuestionNavigator
@@ -0,0 +1,203 @@
1
+ # Barcodes and label sheets
2
+
3
+ `@nxgt/material/barcode` draws a scannable code and lays labels out on a sheet
4
+ to print. `Barcode` is a Code 128 or Data Matrix symbol as SVG: it follows the
5
+ theme and dark mode on screen, is black on white in print, has an accessible
6
+ name and writes no inline `style` (a strict CSP is satisfied). `LabelSheet`
7
+ and `Label` set the label size, the columns, rows, gaps and a start offset.
8
+
9
+ The encoders are in the package: no runtime dependency comes with it. Its
10
+ tests read the symbols back with a real decoder (zxing-cpp) and compare the
11
+ Data Matrix modules with bwip-js.
12
+
13
+ - [Set up](#set-up)
14
+ - [A barcode](#a-barcode)
15
+ - [Code 128 or Data Matrix](#code-128-or-data-matrix)
16
+ - [Colours, dark mode and print](#colours-dark-mode-and-print)
17
+ - [Accessibility](#accessibility)
18
+ - [A sheet of labels](#a-sheet-of-labels)
19
+ - [Printing a sheet](#printing-a-sheet)
20
+ - [Without React](#without-react)
21
+ - [Troubleshooting](#troubleshooting)
22
+
23
+ ## Set up
24
+
25
+ ```tsx
26
+ import { Barcode, Label, LabelSheet } from '@nxgt/material/barcode';
27
+ ```
28
+
29
+ The entry is its own: it is not in `@nxgt/material` or
30
+ `@nxgt/material/components`. The colours come from `styles.css`, which your app
31
+ already imports. `Barcode` has no hooks and renders on the server; `LabelSheet`
32
+ sets its lengths once mounted (see [Printing a sheet](#printing-a-sheet)).
33
+
34
+ ## A barcode
35
+
36
+ ```tsx
37
+ <Barcode value="TUBE-0042" showText />
38
+ ```
39
+
40
+ | Prop | Default | |
41
+ | --- | --- | --- |
42
+ | `value` | | The text to encode (required). |
43
+ | `symbology` | `'code128'` | `'code128'` or `'datamatrix'`. |
44
+ | `label` | the value | The accessible name. |
45
+ | `decorative` | `false` | Hide the symbol from assistive technology. |
46
+ | `showText` | `false` | Print the value under a Code 128, inside the SVG (a Data Matrix ignores it). |
47
+ | `appearance` | `'themed'` | `'themed'` or `'paper'` ([Colours](#colours-dark-mode-and-print)). |
48
+ | `moduleSize` | | Pixels per module: sets a fixed `width` and `height`. Without it the SVG fills its box and keeps its ratio. |
49
+ | `quietZone` | 10 (Code 128), 2 (Data Matrix) | The blank margin, in modules. Scanners need it: keep at least 10 and 1. |
50
+ | `barHeight` | 40 | The bar height of a Code 128, in modules. |
51
+
52
+ Other SVG props (`className`, `data-*`...) pass to the `<svg>`. An invalid
53
+ value throws a `BarcodeError` while rendering, with a message that names the
54
+ limit.
55
+
56
+ ## Code 128 or Data Matrix
57
+
58
+ | | Code 128 | Data Matrix |
59
+ | --- | --- | --- |
60
+ | Shape | bars, as wide as the text is long | a square |
61
+ | Holds | ASCII, characters 0 to 127 | any text (UTF-8), up to about 3 100 digits |
62
+ | Best for | an identifier a handheld laser or camera reads at 5 to 10 cm | a small label (a tube, a part) read by a camera, error correction included |
63
+ | Digits | two per symbol character (code set C) | two per codeword |
64
+
65
+ Code 128 switches between its three code sets to keep the symbol short. Data
66
+ Matrix uses the ASCII encodation, with the smallest square symbol (10x10 to
67
+ 144x144) that holds the text; upper-case text may come out one size larger than
68
+ a symbol made with the denser C40 encodation. Text outside ASCII goes through
69
+ `symbology="datamatrix"` as UTF-8: tell your scanner's decoder to read UTF-8.
70
+
71
+ ## Colours, dark mode and print
72
+
73
+ On screen the symbol is drawn with the theme: `--foreground` on `--background`,
74
+ so it follows light and dark. Many scanners read **dark on light only**, so in
75
+ dark mode a themed symbol may not scan from the screen: use
76
+ `appearance="paper"` for a symbol that must be scanned from the screen, which
77
+ stays black on white in dark mode too. In print every symbol is black on white,
78
+ whatever the theme or `appearance`.
79
+
80
+ ## Accessibility
81
+
82
+ A symbol is `role="img"` named by `label`, or by the value when there is no
83
+ `label`, with the same text in a `<title>`. A code is not meant to be read aloud:
84
+ name it with what it identifies (`label="Tube 0042"`). When the value is written
85
+ beside the symbol, pass `decorative`: the symbol is then hidden, and the text
86
+ carries the meaning. `showText` writes the value under a Code 128 in a
87
+ `<text>` that is hidden from assistive technology (the image already carries
88
+ the name).
89
+
90
+ ## A sheet of labels
91
+
92
+ ```tsx
93
+ <LabelSheet
94
+ label={{ width: '50mm', height: '25mm' }}
95
+ columns={3}
96
+ rows={8}
97
+ gap="2mm"
98
+ offset={{ x: '5mm', y: '8mm' }}
99
+ >
100
+ {items.map((i) => (
101
+ <Label key={i.id}>
102
+ <Barcode value={i.code} decorative barHeight={30} />
103
+ {i.code}
104
+ </Label>
105
+ ))}
106
+ </LabelSheet>
107
+ ```
108
+
109
+ | Prop | Default | |
110
+ | --- | --- | --- |
111
+ | `label` | | `{ width, height }` of one label (required). |
112
+ | `columns` | | Labels per row (required). |
113
+ | `rows` | all on one page | Rows per page: every `columns` x `rows` labels start a new page. |
114
+ | `gap` | 0 | One length, or `{ x, y }`. |
115
+ | `offset` | 0 | `{ x, y }`: the margin before the first label, for a printer's unprintable edge or a sheet's own margin. |
116
+ | `skip` | 0 | Blank labels first: start on the fifth label of a sheet that is partly used. |
117
+
118
+ `columns` and `rows` are whole numbers of at least 1, `skip` a whole number of at least 0. A length is a number of millimetres or a string with a unit (`'2.5cm'`,
119
+ `'0.5in'`, `'8pt'`, `'12px'`, `'1rem'`); anything else throws a `BarcodeError`.
120
+ A `Label` clips to the label size and never splits across two pages. A symbol
121
+ inside a `Label` scales to fit it, leaving room for the text under it.
122
+
123
+ ## Printing a sheet
124
+
125
+ A browser prints a page size that the page's CSS names. Add it to your print
126
+ stylesheet, with the size of your sheet and no margin of its own (the sheet's
127
+ `offset` is the margin):
128
+
129
+ ```css
130
+ @media print {
131
+ @page {
132
+ size: A4;
133
+ margin: 0;
134
+ }
135
+ }
136
+ ```
137
+
138
+ Then call `window.print()`. The preview on screen draws a dashed outline around
139
+ each page and a dotted one around each label; both disappear in print, and the
140
+ symbols turn black on white. To print the sheet alone from a page with other
141
+ content, use `printOnly` from `@nxgt/material/lib`.
142
+
143
+ `LabelSheet` writes its lengths as custom properties (`--nxgt-label-w`...) from
144
+ an effect, because a strict CSP blocks a `style` attribute in server markup.
145
+ Print after the page has hydrated; the server's markup alone has no label size, so a sheet printed from it comes out wrong.
146
+ Check the printed size once on your own printer: browsers scale a page to fit
147
+ unless the print dialog says "100%" or "Actual size".
148
+
149
+ ## Without React
150
+
151
+ `barcodeGeometry(value, options)` returns the `viewBox` size and one SVG path of
152
+ the dark modules, in module units, for an SVG you assemble yourself (an e-mail,
153
+ a PDF drawing). Options: `symbology`, `quietZone`, `barHeight` and
154
+ `textHeight` (room under a Code 128 for text). The result is
155
+ `{ symbology, width, height, path, textY }`; `textY` is where a Code 128's text
156
+ baseline sits.
157
+
158
+ ```tsx
159
+ const g = barcodeGeometry('TUBE-0042', { symbology: 'code128', barHeight: 30 });
160
+ const svg = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 ${g.width} ${g.height}">
161
+ <rect width="${g.width}" height="${g.height}" fill="#fff"/><path d="${g.path}"/></svg>`;
162
+ ```
163
+
164
+ The types `BarcodeProps`, `BarcodeSymbology`, `BarcodeGeometry`,
165
+ `BarcodeGeometryOptions`, `LabelSheetProps` and `LabelLength` are exported too.
166
+
167
+ ## Troubleshooting
168
+
169
+ ### `Code 128 holds ASCII only (0-127)`
170
+
171
+ The value has a character such as `é` or `€`. Use `symbology="datamatrix"`, or
172
+ remove the character.
173
+
174
+ ### `Code 128 needs a value` / `Data Matrix needs a value`
175
+
176
+ The value is an empty string. Render the symbol only once there is a code.
177
+
178
+ ### `<name> must be a whole number`
179
+
180
+ `columns`, `rows` or `skip` is zero, negative or fractional.
181
+
182
+ ### `Data Matrix holds at most 1558 codewords`
183
+
184
+ The value is longer than the largest symbol (about 3 100 digits, fewer
185
+ characters otherwise). Encode an identifier and look the rest up.
186
+
187
+ ### `<name> must be a number (millimetres) or a length such as "50mm"`
188
+
189
+ A size or gap is a bare string (`'50'`) or an unsupported unit. Pass a number
190
+ (millimetres) or a string like `'50mm'`.
191
+
192
+ ### `Unknown symbology "x"`
193
+
194
+ `symbology` is neither `"code128"` nor `"datamatrix"`; TypeScript catches it, plain JS does not.
195
+
196
+ ### The code does not scan from the screen in dark mode
197
+
198
+ Use `appearance="paper"`, and keep the quiet zone.
199
+
200
+ ### The printed labels are a little off
201
+
202
+ The print dialog scaled the page. Choose "100%" / "Actual size", set the
203
+ `@page` size to the sheet's, and set `offset` to move the first label.