@nxgt/material 3.8.1 → 3.10.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 (370) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/README.md +28 -4
  3. package/dist/background-CAWV_qSk.js +247 -0
  4. package/dist/backgrounds/backgrounds.css +4 -0
  5. package/dist/backgrounds/css-react/celestial.css +200 -0
  6. package/dist/backgrounds/css-react/icons.css +175 -0
  7. package/dist/backgrounds.js +1 -1
  8. package/dist/celestial-scene-DaOsRFF3.js +30 -0
  9. package/dist/components/components.css +2 -5
  10. package/dist/components/ui/feedback/feedback.css +7 -0
  11. package/dist/components/ui/feedback/state-frame/illustration.css +171 -0
  12. package/dist/{components-DNUYg8QM.js → components-D5d2rflJ.js} +11650 -11598
  13. package/dist/components.js +16 -15
  14. package/dist/editor.js +1 -1
  15. package/dist/empty-state-COAV2d-R.js +98 -0
  16. package/dist/hooks.js +1 -1
  17. package/dist/icon-sprites-CZ3vcD7P.js +17 -0
  18. package/dist/icons-scene-bA7I4wdP.js +24 -0
  19. package/dist/illustration-DfPJtkFY.js +86 -0
  20. package/dist/illustrations-education.js +2 -0
  21. package/dist/illustrations-health.js +2 -0
  22. package/dist/illustrations.js +4 -0
  23. package/dist/lib/backgrounds/background/available.d.ts +8 -3
  24. package/dist/lib/backgrounds/background/background.d.ts +4 -4
  25. package/dist/lib/backgrounds/background/partials/background-layers.d.ts +17 -6
  26. package/dist/lib/backgrounds/background/partials/celestial-scene.d.ts +22 -0
  27. package/dist/lib/backgrounds/background/partials/icons-check.d.ts +8 -0
  28. package/dist/lib/backgrounds/background/partials/icons-keys.d.ts +3 -0
  29. package/dist/lib/backgrounds/background/partials/icons-layer.d.ts +8 -0
  30. package/dist/lib/backgrounds/background/partials/icons-scene.d.ts +19 -0
  31. package/dist/lib/backgrounds/background/partials/scene-options.d.ts +23 -0
  32. package/dist/lib/backgrounds/background/partials/use-icons-scene.d.ts +22 -0
  33. package/dist/lib/backgrounds/background/types.d.ts +28 -2
  34. package/dist/lib/backgrounds/index.d.ts +1 -1
  35. package/dist/lib/components/ui/collections/data-table/empty-types.d.ts +20 -0
  36. package/dist/lib/components/ui/collections/data-table/layout-types.d.ts +12 -0
  37. package/dist/lib/components/ui/collections/data-table/partials/data-table-body.d.ts +3 -1
  38. package/dist/lib/components/ui/collections/data-table/partials/data-table-empty-row.d.ts +5 -2
  39. package/dist/lib/components/ui/collections/data-table/partials/layouts/data-table-items-empty.d.ts +2 -2
  40. package/dist/lib/components/ui/collections/data-table/types.d.ts +4 -26
  41. package/dist/lib/components/ui/feedback/empty-state/empty-state.d.ts +8 -3
  42. package/dist/lib/components/ui/feedback/error-state/error-state.d.ts +3 -3
  43. package/dist/lib/components/ui/feedback/state-frame/illustration-defaults.d.ts +46 -0
  44. package/dist/lib/components/ui/feedback/state-frame/scene-registry.d.ts +14 -0
  45. package/dist/lib/components/ui/feedback/state-frame/state-frame.d.ts +10 -2
  46. package/dist/lib/components/ui/feedback/state-frame/state-scene-illustration.d.ts +5 -0
  47. package/dist/lib/components/ui/feedback/state-frame/state-scenes.d.ts +15 -0
  48. package/dist/lib/components/ui/fields/country-field/country-field.d.ts +8 -3
  49. package/dist/lib/components/ui/fields/country-field/country-options.d.ts +6 -3
  50. package/dist/lib/components/ui/fields/country-field/iso-countries.d.ts +17 -0
  51. package/dist/lib/components/ui/fields/postal-address/utils.d.ts +1 -1
  52. package/dist/lib/components/ui/layout/app-shell/use-keep-shapes-inside.d.ts +3 -0
  53. package/dist/lib/components/ui/primitives/icon/icon-sprites.d.ts +17 -0
  54. package/dist/lib/components/ui/primitives/icon/index.d.ts +1 -0
  55. package/dist/lib/illustrations/illustration.d.ts +38 -0
  56. package/dist/lib/illustrations/index.d.ts +11 -0
  57. package/dist/lib/illustrations/plated-illustration.d.ts +11 -0
  58. package/dist/lib/illustrations/use-illustration.d.ts +22 -0
  59. package/dist/lib/illustrations-education/index.d.ts +16 -0
  60. package/dist/lib/illustrations-health/index.d.ts +16 -0
  61. package/dist/lib/theme-picker/partials/mini-background.d.ts +3 -0
  62. package/dist/lib/theme-picker/partials/tile-icons.d.ts +9 -0
  63. package/dist/main.js +28 -27
  64. package/dist/material.css +1 -1
  65. package/dist/{nxgt-theme-CgSb9Obl.js → nxgt-theme-ZS945iMP.js} +1 -1
  66. package/dist/pdf-reader.js +1 -1
  67. package/dist/plated-illustration-C3z0hP9U.js +19 -0
  68. package/dist/{public-Ce30uvp0.js → public-DGvtAz7M.js} +1 -1
  69. package/dist/scene-options-CCy3V7XS.js +60 -0
  70. package/dist/scene-svg-DJKa5vsg.js +9 -0
  71. package/dist/state-scenes-Be9w_3an.js +130 -0
  72. package/dist/{theme-context-BagPvRcz.js → theme-context-Cofk6vgs.js} +2 -2
  73. package/dist/theme-picker.js +69 -45
  74. package/dist/{theme-toggle-C8os82b4.js → theme-toggle-oU-fh6WE.js} +2 -2
  75. package/dist/themes.js +2 -2
  76. package/dist/{use-chat-composer-CDrgWGMM.js → use-chat-composer-CkEPJo5I.js} +4236 -4230
  77. package/dist/{use-theme-Cd-aiDJo.js → use-theme-DMcyJ52N.js} +1 -1
  78. package/docs/README.md +2 -0
  79. package/docs/components/README.md +2 -0
  80. package/docs/components/data-table-filter-and-lists.md +1 -0
  81. package/docs/components/feedback-and-status.md +2 -2
  82. package/docs/components/form-fields.md +10 -4
  83. package/docs/components/foundations.md +2 -2
  84. package/docs/components/navigation-and-layout.md +1 -1
  85. package/docs/components/primitives.md +14 -1
  86. package/docs/getting-started.md +7 -2
  87. package/docs/guides/app-shell.md +1 -1
  88. package/docs/guides/backgrounds.md +93 -6
  89. package/docs/guides/icon-motifs.md +198 -0
  90. package/docs/guides/illustrations.md +172 -0
  91. package/docs/guides/themes.md +35 -0
  92. package/docs/guides/theming.md +1 -1
  93. package/docs/previews/backgrounds-background-from-theme.webp +0 -0
  94. package/docs/previews/backgrounds-celestial.webp +0 -0
  95. package/docs/previews/backgrounds-geometry-more.webp +0 -0
  96. package/docs/previews/backgrounds-geometry.webp +0 -0
  97. package/docs/previews/backgrounds-icons.webp +0 -0
  98. package/docs/previews/backgrounds-illustrated-scenes.webp +0 -0
  99. package/docs/previews/backgrounds-light-more.webp +0 -0
  100. package/docs/previews/backgrounds-light.webp +0 -0
  101. package/docs/previews/backgrounds-material-more.webp +0 -0
  102. package/docs/previews/backgrounds-matrix.webp +0 -0
  103. package/docs/previews/backgrounds-moon.webp +0 -0
  104. package/docs/previews/backgrounds-motif-shapes.webp +0 -0
  105. package/docs/previews/backgrounds-motifs.webp +0 -0
  106. package/docs/previews/backgrounds-sky-overlay.webp +0 -0
  107. package/docs/previews/buttons-actions-actioncard.webp +0 -0
  108. package/docs/previews/buttons-actions-button.webp +0 -0
  109. package/docs/previews/buttons-actions-buttongroup.webp +0 -0
  110. package/docs/previews/buttons-actions-copybutton.webp +0 -0
  111. package/docs/previews/buttons-actions-fab.webp +0 -0
  112. package/docs/previews/buttons-actions-fabmenu.webp +0 -0
  113. package/docs/previews/buttons-actions-highlighttext.webp +0 -0
  114. package/docs/previews/buttons-actions-iconbutton.webp +0 -0
  115. package/docs/previews/buttons-actions-languageswitcher.webp +0 -0
  116. package/docs/previews/buttons-actions-linkbutton.webp +0 -0
  117. package/docs/previews/buttons-actions-loadmorebutton.webp +0 -0
  118. package/docs/previews/buttons-actions-responsivebutton.webp +0 -0
  119. package/docs/previews/buttons-actions-scrolltolatestbutton.webp +0 -0
  120. package/docs/previews/buttons-actions-scrolltotop.webp +0 -0
  121. package/docs/previews/buttons-actions-splitbutton.webp +0 -0
  122. package/docs/previews/buttons-actions-themetoggle.webp +0 -0
  123. package/docs/previews/buttons-actions-toolbar-overflow.webp +0 -0
  124. package/docs/previews/buttons-actions-toolbar.webp +0 -0
  125. package/docs/previews/data-display-accordioncard.webp +0 -0
  126. package/docs/previews/data-display-apiendpoint.webp +0 -0
  127. package/docs/previews/data-display-apioperation.webp +0 -0
  128. package/docs/previews/data-display-avatar.webp +0 -0
  129. package/docs/previews/data-display-avatargroup.webp +0 -0
  130. package/docs/previews/data-display-badge.webp +0 -0
  131. package/docs/previews/data-display-barecode.webp +0 -0
  132. package/docs/previews/data-display-card-presets.webp +0 -0
  133. package/docs/previews/data-display-chip.webp +0 -0
  134. package/docs/previews/data-display-codeblock.webp +0 -0
  135. package/docs/previews/data-display-codegroup.webp +0 -0
  136. package/docs/previews/data-display-countbadge.webp +0 -0
  137. package/docs/previews/data-display-dayseparator.webp +0 -0
  138. package/docs/previews/data-display-description.webp +0 -0
  139. package/docs/previews/data-display-enrolmentsecret.webp +0 -0
  140. package/docs/previews/data-display-entityheader.webp +0 -0
  141. package/docs/previews/data-display-eventchip.webp +0 -0
  142. package/docs/previews/data-display-figure.webp +0 -0
  143. package/docs/previews/data-display-jsonviewer.webp +0 -0
  144. package/docs/previews/data-display-listtile.webp +0 -0
  145. package/docs/previews/data-display-markdown.webp +0 -0
  146. package/docs/previews/data-display-metric-cards.webp +0 -0
  147. package/docs/previews/data-display-paramtable.webp +0 -0
  148. package/docs/previews/data-display-periodcards.webp +0 -0
  149. package/docs/previews/data-display-recoverycodes.webp +0 -0
  150. package/docs/previews/data-display-shape.webp +0 -0
  151. package/docs/previews/data-display-statcard.webp +0 -0
  152. package/docs/previews/data-display-statusindicator.webp +0 -0
  153. package/docs/previews/data-display-summarydata.webp +0 -0
  154. package/docs/previews/data-display-terminal.webp +0 -0
  155. package/docs/previews/data-display-timeline.webp +0 -0
  156. package/docs/previews/data-table-filter-lists-datagrid.webp +0 -0
  157. package/docs/previews/data-table-filter-lists-datatable.webp +0 -0
  158. package/docs/previews/data-table-filter-lists-daygroupedlist.webp +0 -0
  159. package/docs/previews/data-table-filter-lists-drag-and-drop.webp +0 -0
  160. package/docs/previews/data-table-filter-lists-facetgroup.webp +0 -0
  161. package/docs/previews/data-table-filter-lists-filter.webp +0 -0
  162. package/docs/previews/data-table-filter-lists-listempty.webp +0 -0
  163. package/docs/previews/data-table-filter-lists-listpane.webp +0 -0
  164. package/docs/previews/data-table-filter-lists-pagination.webp +0 -0
  165. package/docs/previews/data-table-filter-lists-servertable.webp +0 -0
  166. package/docs/previews/data-table-filter-lists-tree.webp +0 -0
  167. package/docs/previews/date-time-calendar.webp +0 -0
  168. package/docs/previews/date-time-datefield.webp +0 -0
  169. package/docs/previews/date-time-daterangefield.webp +0 -0
  170. package/docs/previews/date-time-durationfield.webp +0 -0
  171. package/docs/previews/date-time-minimonth.webp +0 -0
  172. package/docs/previews/date-time-nowindicator.webp +0 -0
  173. package/docs/previews/date-time-timefield.webp +0 -0
  174. package/docs/previews/date-time-timepicker.webp +0 -0
  175. package/docs/previews/feedback-status-alert.webp +0 -0
  176. package/docs/previews/feedback-status-alertdialog.webp +0 -0
  177. package/docs/previews/feedback-status-banner.webp +0 -0
  178. package/docs/previews/feedback-status-circularprogress.webp +0 -0
  179. package/docs/previews/feedback-status-confirmationdialog.webp +0 -0
  180. package/docs/previews/feedback-status-confirmdialog.webp +0 -0
  181. package/docs/previews/feedback-status-countdowntimer.webp +0 -0
  182. package/docs/previews/feedback-status-customalertdialog.webp +0 -0
  183. package/docs/previews/feedback-status-customdialog.webp +0 -0
  184. package/docs/previews/feedback-status-emptystate.webp +0 -0
  185. package/docs/previews/feedback-status-errorstate.webp +0 -0
  186. package/docs/previews/feedback-status-hydrateloading.webp +0 -0
  187. package/docs/previews/feedback-status-illustration-education.webp +0 -0
  188. package/docs/previews/feedback-status-illustration-health.webp +0 -0
  189. package/docs/previews/feedback-status-illustration.webp +0 -0
  190. package/docs/previews/feedback-status-loadingindicator.webp +0 -0
  191. package/docs/previews/feedback-status-notificationrow.webp +0 -0
  192. package/docs/previews/feedback-status-notifications.webp +0 -0
  193. package/docs/previews/feedback-status-progress.webp +0 -0
  194. package/docs/previews/feedback-status-scrollprogress.webp +0 -0
  195. package/docs/previews/feedback-status-skeleton.webp +0 -0
  196. package/docs/previews/feedback-status-spinner.webp +0 -0
  197. package/docs/previews/feedback-status-stepdots.webp +0 -0
  198. package/docs/previews/feedback-status-toast.webp +0 -0
  199. package/docs/previews/feedback-status-typingindicator.webp +0 -0
  200. package/docs/previews/form-fields-attributes.webp +0 -0
  201. package/docs/previews/form-fields-colorfield.webp +0 -0
  202. package/docs/previews/form-fields-contacts.webp +0 -0
  203. package/docs/previews/form-fields-countryfield.webp +0 -0
  204. package/docs/previews/form-fields-currencyfield.webp +0 -0
  205. package/docs/previews/form-fields-emailfield.webp +0 -0
  206. package/docs/previews/form-fields-field.webp +0 -0
  207. package/docs/previews/form-fields-formsection.webp +0 -0
  208. package/docs/previews/form-fields-inlineedit.webp +0 -0
  209. package/docs/previews/form-fields-inputgroupfield.webp +0 -0
  210. package/docs/previews/form-fields-localizedtextfields.webp +0 -0
  211. package/docs/previews/form-fields-numberfield.webp +0 -0
  212. package/docs/previews/form-fields-openinghours.webp +0 -0
  213. package/docs/previews/form-fields-otpfield.webp +0 -0
  214. package/docs/previews/form-fields-passwordfield.webp +0 -0
  215. package/docs/previews/form-fields-percentfield.webp +0 -0
  216. package/docs/previews/form-fields-phonefield.webp +0 -0
  217. package/docs/previews/form-fields-postaladdress.webp +0 -0
  218. package/docs/previews/form-fields-ratingfield.webp +0 -0
  219. package/docs/previews/form-fields-repeatablegroup.webp +0 -0
  220. package/docs/previews/form-fields-searchfield.webp +0 -0
  221. package/docs/previews/form-fields-slider.webp +0 -0
  222. package/docs/previews/form-fields-switch.webp +0 -0
  223. package/docs/previews/form-fields-textareafield.webp +0 -0
  224. package/docs/previews/form-fields-textfield.webp +0 -0
  225. package/docs/previews/form-fields-timezonefield.webp +0 -0
  226. package/docs/previews/form-fields-urlfield.webp +0 -0
  227. package/docs/previews/foundations-themes-icon-motifs.webp +0 -0
  228. package/docs/previews/foundations-themes-themepicker.webp +0 -0
  229. package/docs/previews/guides-i18n-i18nprovider.webp +0 -0
  230. package/docs/previews/guides-i18n-translated-components.webp +0 -0
  231. package/docs/previews/media-files-audioplayer.webp +0 -0
  232. package/docs/previews/media-files-camera.webp +0 -0
  233. package/docs/previews/media-files-carousel.webp +0 -0
  234. package/docs/previews/media-files-filelist.webp +0 -0
  235. package/docs/previews/media-files-filelistfield.webp +0 -0
  236. package/docs/previews/media-files-filepreview.webp +0 -0
  237. package/docs/previews/media-files-gallery-image-lists.webp +0 -0
  238. package/docs/previews/media-files-gallery-viewer.webp +0 -0
  239. package/docs/previews/media-files-gallery.webp +0 -0
  240. package/docs/previews/media-files-imagecropper.webp +0 -0
  241. package/docs/previews/media-files-imageeditor.webp +0 -0
  242. package/docs/previews/media-files-imagefield.webp +0 -0
  243. package/docs/previews/media-files-lightboxgallery.webp +0 -0
  244. package/docs/previews/media-files-map.webp +0 -0
  245. package/docs/previews/media-files-mediaplayer.webp +0 -0
  246. package/docs/previews/media-files-mediaplayerhost.webp +0 -0
  247. package/docs/previews/media-files-mediaplayerlightbox.webp +0 -0
  248. package/docs/previews/media-files-mediaplayermini.webp +0 -0
  249. package/docs/previews/media-files-minigallery.webp +0 -0
  250. package/docs/previews/media-files-networkuploadfield.webp +0 -0
  251. package/docs/previews/media-files-pdfreader.webp +0 -0
  252. package/docs/previews/media-files-s3uploadfield.webp +0 -0
  253. package/docs/previews/media-files-uploadfield.webp +0 -0
  254. package/docs/previews/navigation-layout-accountmenu.webp +0 -0
  255. package/docs/previews/navigation-layout-appshell-menu-badge.webp +0 -0
  256. package/docs/previews/navigation-layout-appshell.webp +0 -0
  257. package/docs/previews/navigation-layout-authcard.webp +0 -0
  258. package/docs/previews/navigation-layout-background.webp +0 -0
  259. package/docs/previews/navigation-layout-bottomappbar.webp +0 -0
  260. package/docs/previews/navigation-layout-breadcrumb.webp +0 -0
  261. package/docs/previews/navigation-layout-doc-api.webp +0 -0
  262. package/docs/previews/navigation-layout-doc-blocks.webp +0 -0
  263. package/docs/previews/navigation-layout-doc.webp +0 -0
  264. package/docs/previews/navigation-layout-hero.webp +0 -0
  265. package/docs/previews/navigation-layout-listdetailslayout.webp +0 -0
  266. package/docs/previews/navigation-layout-pager.webp +0 -0
  267. package/docs/previews/navigation-layout-panelayout.webp +0 -0
  268. package/docs/previews/navigation-layout-resizable.webp +0 -0
  269. package/docs/previews/navigation-layout-responsivegrid.webp +0 -0
  270. package/docs/previews/navigation-layout-seealso.webp +0 -0
  271. package/docs/previews/navigation-layout-sidebar.webp +0 -0
  272. package/docs/previews/navigation-layout-skiplink.webp +0 -0
  273. package/docs/previews/navigation-layout-stepper.webp +0 -0
  274. package/docs/previews/navigation-layout-steps.webp +0 -0
  275. package/docs/previews/navigation-layout-threadlayout.webp +0 -0
  276. package/docs/previews/navigation-layout-toc.webp +0 -0
  277. package/docs/previews/navigation-layout-topappbar.webp +0 -0
  278. package/docs/previews/overlays-menus-command.webp +0 -0
  279. package/docs/previews/overlays-menus-contextmenu.webp +0 -0
  280. package/docs/previews/overlays-menus-dialog.webp +0 -0
  281. package/docs/previews/overlays-menus-drawer.webp +0 -0
  282. package/docs/previews/overlays-menus-dropdownmenu.webp +0 -0
  283. package/docs/previews/overlays-menus-hovercard.webp +0 -0
  284. package/docs/previews/overlays-menus-menubar.webp +0 -0
  285. package/docs/previews/overlays-menus-popover.webp +0 -0
  286. package/docs/previews/overlays-menus-sheet.webp +0 -0
  287. package/docs/previews/overlays-menus-tooltip.webp +0 -0
  288. package/docs/previews/primitives-accordion.webp +0 -0
  289. package/docs/previews/primitives-anchorheading.webp +0 -0
  290. package/docs/previews/primitives-card.webp +0 -0
  291. package/docs/previews/primitives-collapsible.webp +0 -0
  292. package/docs/previews/primitives-extendedlabel.webp +0 -0
  293. package/docs/previews/primitives-helpertext.webp +0 -0
  294. package/docs/previews/primitives-icon.webp +0 -0
  295. package/docs/previews/primitives-input.webp +0 -0
  296. package/docs/previews/primitives-inputgroup.webp +0 -0
  297. package/docs/previews/primitives-kbd.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-separator.webp +0 -0
  301. package/docs/previews/primitives-table.webp +0 -0
  302. package/docs/previews/primitives-tabs.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-chat-advanced.webp +0 -0
  308. package/docs/previews/rich-widgets-chat-composer.webp +0 -0
  309. package/docs/previews/rich-widgets-chat-inbox.webp +0 -0
  310. package/docs/previews/rich-widgets-chat-overview.webp +0 -0
  311. package/docs/previews/rich-widgets-chat-thread.webp +0 -0
  312. package/docs/previews/rich-widgets-chat-widget.webp +0 -0
  313. package/docs/previews/rich-widgets-codeeditor-diff.webp +0 -0
  314. package/docs/previews/rich-widgets-codeeditor.webp +0 -0
  315. package/docs/previews/rich-widgets-compacteditor.webp +0 -0
  316. package/docs/previews/rich-widgets-documenteditor.webp +0 -0
  317. package/docs/previews/rich-widgets-drawing.webp +0 -0
  318. package/docs/previews/rich-widgets-emojipicker.webp +0 -0
  319. package/docs/previews/rich-widgets-eventcalendar.webp +0 -0
  320. package/docs/previews/rich-widgets-kanban.webp +0 -0
  321. package/docs/previews/rich-widgets-mentionlist.webp +0 -0
  322. package/docs/previews/rich-widgets-native-charts-areachart.webp +0 -0
  323. package/docs/previews/rich-widgets-native-charts-barchart.webp +0 -0
  324. package/docs/previews/rich-widgets-native-charts-combochart.webp +0 -0
  325. package/docs/previews/rich-widgets-native-charts-donutchart.webp +0 -0
  326. package/docs/previews/rich-widgets-native-charts-funnelchart.webp +0 -0
  327. package/docs/previews/rich-widgets-native-charts-gauge.webp +0 -0
  328. package/docs/previews/rich-widgets-native-charts-heatmapchart.webp +0 -0
  329. package/docs/previews/rich-widgets-native-charts-linechart.webp +0 -0
  330. package/docs/previews/rich-widgets-native-charts-piechart.webp +0 -0
  331. package/docs/previews/rich-widgets-native-charts-radarchart.webp +0 -0
  332. package/docs/previews/rich-widgets-native-charts-radialbarchart.webp +0 -0
  333. package/docs/previews/rich-widgets-native-charts-scatterchart.webp +0 -0
  334. package/docs/previews/rich-widgets-questioncard.webp +0 -0
  335. package/docs/previews/rich-widgets-quiz.webp +0 -0
  336. package/docs/previews/rich-widgets-richchatcomposer.webp +0 -0
  337. package/docs/previews/rich-widgets-richtexteditor.webp +0 -0
  338. package/docs/previews/rich-widgets-richtextviewer.webp +0 -0
  339. package/docs/previews/selection-choice-autocomplete.webp +0 -0
  340. package/docs/previews/selection-choice-checkbox.webp +0 -0
  341. package/docs/previews/selection-choice-checkboxgroup.webp +0 -0
  342. package/docs/previews/selection-choice-checkcardfield.webp +0 -0
  343. package/docs/previews/selection-choice-chipgroupfield.webp +0 -0
  344. package/docs/previews/selection-choice-choicecardgroup.webp +0 -0
  345. package/docs/previews/selection-choice-colorswatches.webp +0 -0
  346. package/docs/previews/selection-choice-combobox.webp +0 -0
  347. package/docs/previews/selection-choice-comboboxfield.webp +0 -0
  348. package/docs/previews/selection-choice-optiontile.webp +0 -0
  349. package/docs/previews/selection-choice-radiogroup.webp +0 -0
  350. package/docs/previews/selection-choice-select.webp +0 -0
  351. package/docs/previews/selection-choice-selectfield.webp +0 -0
  352. package/docs/previews/selection-choice-sortablelist.webp +0 -0
  353. package/docs/previews/selection-choice-switcher.webp +0 -0
  354. package/docs/previews/selection-choice-transferlist.webp +0 -0
  355. package/docs/previews/selection-choice-treeselectfield.webp +0 -0
  356. package/docs/roadmap.md +22 -0
  357. package/docs/troubleshooting.md +69 -4
  358. package/lib/backgrounds/backgrounds.css +4 -0
  359. package/lib/backgrounds/css-react/celestial.css +200 -0
  360. package/lib/backgrounds/css-react/icons.css +175 -0
  361. package/lib/components/components.css +2 -5
  362. package/lib/components/ui/feedback/feedback.css +7 -0
  363. package/lib/components/ui/feedback/state-frame/illustration.css +171 -0
  364. package/lib/theme-picker/theme-picker.css +1 -0
  365. package/lib/theme-picker/theme-tile-icons.css +50 -0
  366. package/lib/theme-picker/theme-tile-textures-night.css +107 -1
  367. package/lib/themes/teal.css +2 -3
  368. package/package.json +28 -4
  369. package/dist/background--Bf_EbFR.js +0 -159
  370. package/dist/empty-state-s2CSjKXJ.js +0 -126
@@ -0,0 +1,172 @@
1
+ # Illustrations
2
+
3
+ `@nxgt/material/illustrations` draws the **state illustrations**: a hero icon
4
+ on a Material 3 Expressive plate, two to four satellite icons around it, a
5
+ dashed ring and a few sparkles. There are twelve scenes: `empty`, `no-results`,
6
+ `not-found`, `error`, `offline`, `success`, `welcome`, `forbidden`,
7
+ `maintenance`, `invitation`, `sign-in` and `empty-inbox`, and two domain sets of
8
+ ten more each, health and education, in their own entries ([health](#scene-sets-the-health-scenes) and [education](#scene-sets-the-education-scenes)). The icons are
9
+ [Font Awesome](https://fontawesome.com) sprites **your app serves** (see
10
+ [Icons](../getting-started.md#icons)): the package ships no icon artwork, so it
11
+ works with the sprites your licence covers. The [icon motifs guide](icon-motifs.md) shows them next to the icon backgrounds, the sky and the themes, and lists the suggested names that are Pro only, with Free neighbours.
12
+
13
+ Colours are the theme's tones, light and dark, painted by classes in
14
+ `styles.css` (no inline `style`, so a strict CSP is satisfied). The server and
15
+ the browser render the same markup.
16
+
17
+ ## Draw one
18
+
19
+ ```tsx
20
+ import { Illustration } from '@nxgt/material/illustrations';
21
+
22
+ <Illustration scene="empty" size="lg" title="An empty inbox" />
23
+ ```
24
+
25
+ | Prop | Type | Default | Effect |
26
+ | --- | --- | --- | --- |
27
+ | `scene` | `IllustrationScene`, or an id of `scenes` | required | which scene (`ILLUSTRATION_SCENES` lists the twelve) |
28
+ | `scenes` | a `SceneTable` | the twelve | a domain's set, such as `HEALTH_SCENES` or `EDUCATION_SCENES`: `scene` is then one of its ids (or register it with `IllustrationDefaults` `sets`). Pass a stable reference (a module constant), not a table built in render. A table of your own uses `SceneRow` and `SceneTable` from `@nxgt/material-core/illustrations` |
29
+ | `size` | `'sm' \| 'md' \| 'lg'` | `'md'` | 120, 190 or 280 px wide, 4:3, never wider than its container |
30
+ | `title` | `string` | none | the accessible name: the picture becomes `role="img"` with an `aria-label`. Without it the illustration is decorative and hidden from assistive technology. It is never a `<title>` element |
31
+ | `animated` | `boolean` | `false` | the satellites drift and the sparkles twinkle, slowly. Nothing moves under `prefers-reduced-motion` |
32
+ | `hero` | `string \| IconRef` | the scene's | the main icon, a name (`'graduation-cap'`) or `{ name, family?, type? }` |
33
+ | `satellites` | `(string \| IconRef)[]` | the scene's | up to four icons around the hero |
34
+ | `style` | the DOM `style` of the wrapper, as on any `div`; the look of the icons is `iconStyle` | none | the library's own markup holds no `style` attribute |
35
+ | `iconStyle` | a style, or a list of up to eight | `'duotone-thin'` | the icon style: `{ family, type }` or the sprite's file name (`'sharp-duotone-light'`, `'solid'`). Given a list, each icon takes one by a seeded pick. An `IconRef` with its own `family` or `type` wins |
36
+ | `tone` | `'primary' \| 'secondary' \| 'tertiary' \| 'error' \| 'warning' \| 'success'` | the scene's | the colour of the plate and the hero |
37
+ | `duotone` | `'opacity' \| 'tones'` | `'opacity'` | duotone styles: the second layer is the same tone, fainter, or another tone |
38
+
39
+ The rest of the props go to the wrapping `div` (`data-slot="illustration"`,
40
+ with `data-scene`, `data-size` and `data-animated`). A bad icon name or style
41
+ never crashes the page: outside production it warns once in the console, and
42
+ the scene's built-in art is drawn instead.
43
+
44
+ The sprites are read from `/assets/icons/sprites/`, or from the base of the
45
+ nearest `IconSpritesProvider`. An icon whose name the sprite does not hold is
46
+ blank: keep to names every style you use has (the suggested ones are the
47
+ `SUGGESTED_ICONS` table, hero first).
48
+
49
+ The plate's shape loads on demand: the illustration is a disc until it
50
+ arrives, in a box of the same size, so the page does not move. A streaming
51
+ server render includes the plate; `renderToString` sends the disc and the
52
+ browser draws the plate once the chunk has loaded.
53
+
54
+ ## Use them in the states
55
+
56
+ `EmptyState`, `ErrorState` and the `DataTable` empty row draw today's built-in
57
+ art unless you ask:
58
+
59
+ ```tsx
60
+ import { EmptyState } from '@nxgt/material/components';
61
+
62
+ <EmptyState kind="search" illustration /> {/* the kind's scene */}
63
+ <EmptyState kind="empty" illustration="welcome" /> {/* a scene by name */}
64
+ ```
65
+
66
+ `illustration` takes a scene id or `true` (the kind's scene: `empty`,
67
+ `search` is `no-results`, `not-found`, `offline`, `generic` is `error`,
68
+ `unauthorized` is `forbidden`, `maintenance`) as well as a
69
+ node or `false`. A scene is drawn at `md` in the default size and at `sm` in a
70
+ `compact` one; the `inline` row keeps its icon well. A string that is not a
71
+ scene id is a node, as before (so a string equal to a scene id, such as
72
+ `"error"`, now draws the scene). The scene engine loads only when a scene is
73
+ drawn: a state that keeps the built-in art costs nothing more.
74
+
75
+ A table's empty row takes `emptyIllustration`, a scene id (both states) or
76
+ `true` (`empty`, and `no-results` when filtered). It dresses the default empty
77
+ state only, never your own `empty` or `emptyFiltered`.
78
+
79
+ ## Scene sets: the health scenes
80
+
81
+ `@nxgt/material/illustrations/health` holds ten scenes for a health app:
82
+ `patient-record`, `consultation`, `appointment`, `lab-sample`, `prescription`,
83
+ `vaccination`, `hospitalisation`, `emergency`, `no-patients` and `lab-results`.
84
+ Register the set once, below your `IllustrationDefaults`, and its ids work
85
+ everywhere a scene id does:
86
+
87
+ ```tsx
88
+ import { Illustration, IllustrationDefaults } from '@nxgt/material/illustrations';
89
+ import { HEALTH_SCENES } from '@nxgt/material/illustrations/health';
90
+ import { DataTable, EmptyState, ErrorState } from '@nxgt/material/components';
91
+
92
+ <IllustrationDefaults sets={[HEALTH_SCENES]}>
93
+ <Illustration scene="patient-record" title="Patient record" />
94
+ <EmptyState illustration="no-patients" title="No patients yet" />
95
+ <ErrorState kind="generic" illustration="emergency" />
96
+ <DataTable data={rows} columns={columns} emptyIllustration="no-patients" />
97
+ </IllustrationDefaults>
98
+ ```
99
+
100
+ `sets` takes any number of `SceneTable`s. A base id wins over a set's id, and
101
+ a `scenes` prop on one `Illustration` (`<Illustration scene="no-patients"
102
+ scenes={HEALTH_SCENES} />`) wins over the provider, so a single scene needs no
103
+ provider. The ids are typed: importing the health entry adds them to `SceneId`
104
+ (module augmentation of `IllustrationSceneRegistry`; `RegisteredScene` is the union of the imported sets' ids), so `scene="no-patients"`
105
+ type-checks in an app that imports it and `scene="bogus"` does not. An id that no
106
+ registered set holds draws the built-in art and warns once outside production;
107
+ in a state, a string that is not a registered id is a node, as before (so the
108
+ set must be registered for the string shorthand). An app that never imports the
109
+ subpath does not carry the table. A table of your own is a `SceneTable`
110
+ (`SceneRow` from `@nxgt/material-core/illustrations`), passed through `sets` or
111
+ `scenes`; its ids are not in `SceneId`, so type them with the `scenes` prop. `HEALTH_SUGGESTED_ICONS` (like `SUGGESTED_ICONS`) lists the icon names the set draws, hero first.
112
+
113
+ ## Scene sets: the education scenes
114
+
115
+ `@nxgt/material/illustrations/education` holds ten scenes for a school app:
116
+ `classroom`, `homework`, `exam-grades`, `timetable`, `attendance`,
117
+ `enrolment`, `library`, `graduation`, `no-students` and `report-card`. It works
118
+ exactly like the health set above, and the two register side by side:
119
+
120
+ ```tsx
121
+ import { Illustration, IllustrationDefaults } from '@nxgt/material/illustrations';
122
+ import { EDUCATION_SCENES } from '@nxgt/material/illustrations/education';
123
+ import { HEALTH_SCENES } from '@nxgt/material/illustrations/health';
124
+ import { EmptyState } from '@nxgt/material/components';
125
+
126
+ <IllustrationDefaults sets={[EDUCATION_SCENES, HEALTH_SCENES]}>
127
+ <Illustration scene="classroom" title="Classroom" />
128
+ <EmptyState illustration="no-students" title="No students yet" />
129
+ </IllustrationDefaults>
130
+ ```
131
+
132
+ Importing the entry adds the ids to `SceneId`; `EDUCATION_SUGGESTED_ICONS` lists
133
+ the icon names the set draws, hero first. Some of them (`backpack`,
134
+ `clipboard-list-check`, `books`, `file-chart-column`) are Font Awesome Pro
135
+ icons: serve a Pro sprite, or pass `icons` with Free neighbours.
136
+
137
+ ## Turn them on for an app
138
+
139
+ `IllustrationDefaults` opts a subtree in: every default-size `EmptyState` and
140
+ `ErrorState` below it draws its scene, without a prop on each.
141
+
142
+ ```tsx
143
+ import { IllustrationDefaults } from '@nxgt/material/illustrations';
144
+
145
+ <IllustrationDefaults icons="suggested" iconStyle="duotone-light">
146
+ <App />
147
+ </IllustrationDefaults>
148
+ ```
149
+
150
+ | Prop | Effect |
151
+ | --- | --- |
152
+ | `icons` | `'suggested'`: every state draws its scene with the suggested icons. A table `{ empty: { hero, satellites }, … }`: those scenes are drawn with those icons (a field you leave out keeps the suggested one), the others keep the built-in art. Without `icons` only `iconStyle` is set |
153
+ | `iconStyle` | the icon style of every `Illustration` below; a prop on one wins |
154
+ | `sets` | scene sets to register (`[HEALTH_SCENES, EDUCATION_SCENES]`): their ids work in `Illustration`, a state's `illustration` and `emptyIllustration`; `icons` may name them too |
155
+
156
+ An `illustration` prop always wins over the provider (`false` hides the
157
+ media), and `icon` too: a state given an `icon` keeps its well. Without the
158
+ provider nothing changes for an app: the default art is exactly what it was.
159
+ Mount the provider and `IconSpritesProvider` where your sprites are known,
160
+ typically at the root.
161
+
162
+ ## Styling
163
+
164
+ The look is the `ill-*` classes of `styles.css`: `ill-<tone>` on the root,
165
+ `ill-plate`, `ill-ring`, `ill-hero`, `ill-sat` and `ill-spark`. Override them
166
+ after the stylesheet, or set `--primary-text`, `--secondary-text` and
167
+ `--tertiary-text` (the tone colours are read from the `--<tone>-text` tokens,
168
+ light and dark). The core builder (`@nxgt/material-core/illustrations`,
169
+ [reference](https://cdn.jsdelivr.net/npm/@nxgt/material-core@0/docs/illustrations.md))
170
+ has the scene as data, for a server that draws its own markup.
171
+
172
+ **Storybook:** `Feedback & status/Illustration`
@@ -27,6 +27,41 @@ A module exports its themes as the default export (one theme or an array) or as
27
27
  named exports. The seeds, `extends`, `tones`, `fonts`, `radius` and `tokens` are
28
28
  documented in [`@nxgt/material-core`'s themes page](https://cdn.jsdelivr.net/npm/@nxgt/material-core@0/docs/theme.md).
29
29
 
30
+ ## Icon motifs in a theme
31
+
32
+ A theme can name an icon motif, so the whole app is dressed in the pack that
33
+ fits it, with no prop anywhere:
34
+
35
+ ```ts
36
+ // src/themes/sante.ts
37
+ import { defineTheme, menthe } from '@nxgt/material/themes';
38
+
39
+ export default defineTheme({
40
+ name: 'sante',
41
+ label: 'Santé',
42
+ extends: menthe,
43
+ background: {
44
+ preset: 'icons',
45
+ tone: 'mixed',
46
+ icons: 'health', // a pack, or up to 48 names and { name, family?, type? }
47
+ iconStyle: ['duotone-thin', 'duotone-light'], // one style or up to 8
48
+ iconMotif: { layout: 'constellation', duotone: 'opacity' },
49
+ sky: 'northern-lights', // optional: the moon or a celestial preset over the icons
50
+ },
51
+ });
52
+ ```
53
+
54
+ - `Background`, `ActivityLayout` and every `NxgtTheme` zone read it: no props, and a prop you pass still wins.
55
+ Serve the sprites (`/assets/icons/sprites/` or your `IconSpritesProvider base`) and import
56
+ `@nxgt/material/backgrounds/icons.css` (or `backgrounds.css`); see [backgrounds](backgrounds.md#icons).
57
+ - `extends` merges `iconMotif` and an `iconStyle` object key by key; `icons` and an `iconStyle` list or file name are
58
+ replaced whole. A derived theme that leaves them out inherits them.
59
+ - `defineTheme` checks them when it is defined: `name` for an unknown pack, a bad icon name or style, `range` for the
60
+ rest (more than 48 icons, a layout, a size range).
61
+ - `ThemePicker` draws the theme's first four icons in its tile, from the same sprite base. A sprite that is not served
62
+ draws nothing, and the tile keeps its wash.
63
+ - The 14 shipped themes name no icons and are unchanged.
64
+
30
65
  ## Generate the files
31
66
 
32
67
  With Vite:
@@ -1180,7 +1180,7 @@ import { ThemePicker } from '@nxgt/material/theme-picker';
1180
1180
  <ThemePicker layout="list" showBackground={false} />;
1181
1181
  ```
1182
1182
 
1183
- The tiles' stylesheet is opt-in (about 3.3 KB gzipped), so an app that does not
1183
+ The tiles' stylesheet is opt-in (about 3.8 KB gzipped; a theme's icon motif shows in its tile, see [Icon motifs in a theme](themes.md#icon-motifs-in-a-theme)), so an app that does not
1184
1184
  use the picker does not ship it; `styles.css` does not carry it.
1185
1185
 
1186
1186
  Pass `themes` to choose among fewer or to add an app theme, `value` and
Binary file