@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,200 @@
1
+ /* The celestial presets (`eclipse`, `meteor-shower`, `ringed-planet`,
2
+ * `northern-lights`) and the `sky` overlay, which draws the moon or one of
3
+ * them over any preset. Core's `/backgrounds/celestial` builds the scenes: the
4
+ * root is `mn cl-<preset>`, the colours are the `k1..k3` and `s1..s3` classes
5
+ * of scene.css, and a scene holds no inline style. Both kinds of scene sit in
6
+ * a `[data-scene][data-celestial]` div, which is what this file styles, so the
7
+ * look is the same alone and as a sky. Discreet like `moon.css`: a faint
8
+ * watermark in light (multiplied into the page), silver light in dark.
9
+ *
10
+ * Motion (opt-in, `animated`): stars twinkle, meteors glide, ribbons drift;
11
+ * never under `prefers-reduced-motion`. React only. */
12
+ @import "../css/scene.css";
13
+
14
+ @layer components {
15
+ /* The wash behind a celestial preset, as the moon's: two faint pools of
16
+ * the tone, the strength each intensity sets. */
17
+ :is(
18
+ [data-background="eclipse"],
19
+ [data-background="meteor-shower"],
20
+ [data-background="ringed-planet"]
21
+ ) > [data-layer="wash"] {
22
+ position: absolute;
23
+ inset: 0;
24
+ background:
25
+ radial-gradient(
26
+ ellipse 70% 60% at 80% 16%,
27
+ color-mix(in oklab, var(--nxgt-bg-c3) var(--nxgt-bg-a1), transparent),
28
+ transparent 72%
29
+ ),
30
+ radial-gradient(
31
+ ellipse 60% 55% at 12% 92%,
32
+ color-mix(in oklab, var(--nxgt-bg-c1) var(--nxgt-bg-a1), transparent),
33
+ transparent 70%
34
+ );
35
+ }
36
+
37
+ /* The lights hang from the top edge: a pool across it, one at the foot. */
38
+ [data-background="northern-lights"] > [data-layer="wash"] {
39
+ position: absolute;
40
+ inset: 0;
41
+ background:
42
+ radial-gradient(
43
+ ellipse 90% 45% at 50% 0%,
44
+ color-mix(in oklab, var(--nxgt-bg-c3) var(--nxgt-bg-a1), transparent),
45
+ transparent 75%
46
+ ),
47
+ radial-gradient(
48
+ ellipse 60% 50% at 14% 96%,
49
+ color-mix(in oklab, var(--nxgt-bg-c1) var(--nxgt-bg-a1), transparent),
50
+ transparent 70%
51
+ );
52
+ }
53
+
54
+ [data-background] > [data-scene][data-celestial] {
55
+ overflow: hidden;
56
+ container: nxgt-sky / inline-size;
57
+ /* In light the scene is multiplied into the page: a faint watermark. */
58
+ mix-blend-mode: multiply;
59
+ }
60
+
61
+ /* The scene is written for 0.8 at the default strength: subtle 0.47,
62
+ * vivid the full 1. */
63
+ [data-background] > [data-scene][data-celestial] > .mn :is(.mo, .mh) {
64
+ opacity: calc(var(--nxgt-bg-op) / 0.9);
65
+ }
66
+
67
+ /* The scene has no viewBox (lengths are pixels, positions shares of the
68
+ * container): its bodies, halos and stars draw past their own origin. */
69
+ [data-background] > [data-scene][data-celestial] .pt {
70
+ overflow: visible;
71
+ }
72
+
73
+ /* The lit part of the body is lighter still. */
74
+ [data-background] > [data-scene][data-celestial] .md {
75
+ opacity: 0.55;
76
+ }
77
+
78
+ /* A narrow container: the moon and the eclipse at half size and the
79
+ * planet and its ring at two thirds, so they stay whole in their corner
80
+ * (the cut-out of an eclipse or a planet is in its halo too). */
81
+ @container nxgt-sky (max-width: 640px) {
82
+ [data-background]
83
+ > [data-scene][data-celestial]
84
+ .mn:not(.cl-ringed-planet)
85
+ .mg
86
+ > .mo,
87
+ [data-background] > [data-scene][data-celestial] .cl-eclipse .mh > circle {
88
+ transform: scale(0.5);
89
+ }
90
+ [data-background]
91
+ > [data-scene][data-celestial]
92
+ .cl-ringed-planet
93
+ :is(.mg > .mo, .mh > circle) {
94
+ transform: scale(0.65);
95
+ }
96
+ }
97
+
98
+ /* In dark it adds nothing but light, and the body is silver, lighter than the lifted tone. */
99
+ :is(.dark, [data-theme="dark"])
100
+ [data-background]
101
+ > [data-scene][data-celestial],
102
+ [data-background]:is(.dark, [data-theme="dark"])
103
+ > [data-scene][data-celestial] {
104
+ mix-blend-mode: normal;
105
+ }
106
+ :is(.dark, [data-theme="dark"])
107
+ [data-background]
108
+ > [data-scene][data-celestial]
109
+ .md,
110
+ [data-background]:is(.dark, [data-theme="dark"])
111
+ > [data-scene][data-celestial]
112
+ .md {
113
+ color: color-mix(in oklab, var(--nxgt-bg-c2) 30%, white);
114
+ opacity: 0.78;
115
+ }
116
+
117
+ /* The delay classes (`l1..l4`) only set a number, which the animations
118
+ * above read: one rule each, whatever an animation's own specificity. */
119
+ [data-background] > [data-scene][data-celestial] .l1 {
120
+ --nxgt-sky-delay: 0s;
121
+ }
122
+ [data-background] > [data-scene][data-celestial] .l2 {
123
+ --nxgt-sky-delay: -2.5s;
124
+ }
125
+ [data-background] > [data-scene][data-celestial] .l3 {
126
+ --nxgt-sky-delay: -5s;
127
+ }
128
+ [data-background] > [data-scene][data-celestial] .l4 {
129
+ --nxgt-sky-delay: -7.5s;
130
+ }
131
+
132
+ /* The ribbons and the meteors move from their own box. */
133
+ [data-background] > [data-scene][data-celestial] .cl-northern-lights .au {
134
+ transform-box: fill-box;
135
+ transform-origin: 50% 0;
136
+ }
137
+ }
138
+
139
+ @media (prefers-reduced-motion: no-preference) {
140
+ @keyframes nxgt-bg-sky-twinkle {
141
+ to {
142
+ opacity: 0.3;
143
+ }
144
+ }
145
+ @keyframes nxgt-bg-sky-meteor-fade {
146
+ 0%,
147
+ 100% {
148
+ opacity: 0;
149
+ }
150
+ 6% {
151
+ opacity: 1;
152
+ }
153
+ 30% {
154
+ opacity: 0;
155
+ }
156
+ }
157
+ @keyframes nxgt-bg-sky-meteor-glide {
158
+ 0%,
159
+ 100% {
160
+ transform: translate(0, 0);
161
+ }
162
+ 30% {
163
+ transform: translate(-72px, 48px);
164
+ }
165
+ }
166
+ @keyframes nxgt-bg-sky-drift {
167
+ to {
168
+ transform: translate(3px, 1px) scaleY(1.1);
169
+ }
170
+ }
171
+
172
+ @layer components {
173
+ [data-background][data-animated] > [data-scene][data-celestial] .tw {
174
+ animation: nxgt-bg-sky-twinkle 8s ease-in-out var(--nxgt-sky-delay, 0s)
175
+ infinite alternate var(--nxgt-bg-play, running);
176
+ }
177
+ [data-background][data-animated]
178
+ > [data-scene][data-celestial]
179
+ .cl-meteor-shower
180
+ .mt {
181
+ animation: nxgt-bg-sky-meteor-fade 10s linear var(--nxgt-sky-delay, 0s)
182
+ infinite var(--nxgt-bg-play, running);
183
+ }
184
+ [data-background][data-animated]
185
+ > [data-scene][data-celestial]
186
+ .cl-meteor-shower
187
+ .mt
188
+ > .mo {
189
+ animation: nxgt-bg-sky-meteor-glide 10s ease-out var(--nxgt-sky-delay, 0s)
190
+ infinite var(--nxgt-bg-play, running);
191
+ }
192
+ [data-background][data-animated]
193
+ > [data-scene][data-celestial]
194
+ .cl-northern-lights
195
+ .au {
196
+ animation: nxgt-bg-sky-drift 14s ease-in-out var(--nxgt-sky-delay, 0s)
197
+ infinite alternate var(--nxgt-bg-play, running);
198
+ }
199
+ }
200
+ }
@@ -0,0 +1,175 @@
1
+ /* The `icons` preset: Font Awesome icons, each a `<use>` of a sprite file the
2
+ * app serves, over a faint wash. The scene is core's `buildIconScene`
3
+ * (`@nxgt/material-core/backgrounds/icons`); this file gives it its colours,
4
+ * its constellation threads and its motion. A scene holds no `style`: an icon
5
+ * carries a tone class (`k1..k3`, colours in scene.css) and the root carries
6
+ * `ic-so0..ic-so10` and `ic-so85` (a duotone icon's second layer, in tenths, or 0.85) and, for
7
+ * `duotone: 'tones'`, `ic-tones`.
8
+ *
9
+ * The sprites read `--fa-primary-color`, `--fa-secondary-color` and
10
+ * `--fa-secondary-opacity`; custom properties inherit into the `<use>` copy.
11
+ * By default the second layer is the same tone, faded (`opacity`); `ic-tones`
12
+ * takes the next tone for it, nearly opaque. A flat (non-duotone) style reads
13
+ * the tone through `currentColor`. Motion (opt-in, `animated`): each icon
14
+ * drifts a few pixels along one of four vectors (`iv1..4`) at one of four
15
+ * paces (`ia`, delay `id1..4`), on `translate`, because `transform` carries
16
+ * its place. React only: nothing in the shared `css/` folder. */
17
+ @import "../css/motifs.css";
18
+
19
+ @layer components {
20
+ [data-background="icons"] > [data-layer="wash"] {
21
+ position: absolute;
22
+ inset: 0;
23
+ background:
24
+ radial-gradient(
25
+ ellipse 75% 65% at 22% 18%,
26
+ color-mix(in oklab, var(--nxgt-bg-c1) var(--nxgt-bg-a1), transparent),
27
+ transparent 72%
28
+ ),
29
+ radial-gradient(
30
+ ellipse 60% 60% at 86% 90%,
31
+ color-mix(in oklab, var(--nxgt-bg-c3) var(--nxgt-bg-a1), transparent),
32
+ transparent 70%
33
+ );
34
+ }
35
+
36
+ [data-background="icons"] > [data-scene] {
37
+ overflow: hidden;
38
+ }
39
+
40
+ /* Primary layer: the icon's tone. Second layer: the same tone, faded. */
41
+ [data-background="icons"] > [data-scene] .ic.k1 {
42
+ --fa-primary-color: var(--nxgt-bg-c1);
43
+ --fa-secondary-color: var(--nxgt-bg-c1);
44
+ }
45
+ [data-background="icons"] > [data-scene] .ic.k2 {
46
+ --fa-primary-color: var(--nxgt-bg-c2);
47
+ --fa-secondary-color: var(--nxgt-bg-c2);
48
+ }
49
+ [data-background="icons"] > [data-scene] .ic.k3 {
50
+ --fa-primary-color: var(--nxgt-bg-c3);
51
+ --fa-secondary-color: var(--nxgt-bg-c3);
52
+ }
53
+
54
+ /* Two tones: the second layer takes the next tone. */
55
+ [data-background="icons"] > [data-scene] > .ic-tones .ic.k1 {
56
+ --fa-secondary-color: var(--nxgt-bg-c2);
57
+ }
58
+ [data-background="icons"] > [data-scene] > .ic-tones .ic.k2 {
59
+ --fa-secondary-color: var(--nxgt-bg-c3);
60
+ }
61
+ [data-background="icons"] > [data-scene] > .ic-tones .ic.k3 {
62
+ --fa-secondary-color: var(--nxgt-bg-c1);
63
+ }
64
+
65
+ /* The second layer's opacity, in tenths (`secondaryOpacity`). */
66
+ [data-background="icons"] > [data-scene] > .ic-so0 .ic {
67
+ --fa-secondary-opacity: 0;
68
+ }
69
+ [data-background="icons"] > [data-scene] > .ic-so1 .ic {
70
+ --fa-secondary-opacity: 0.1;
71
+ }
72
+ [data-background="icons"] > [data-scene] > .ic-so2 .ic {
73
+ --fa-secondary-opacity: 0.2;
74
+ }
75
+ [data-background="icons"] > [data-scene] > .ic-so3 .ic {
76
+ --fa-secondary-opacity: 0.3;
77
+ }
78
+ [data-background="icons"] > [data-scene] > .ic-so4 .ic {
79
+ --fa-secondary-opacity: 0.4;
80
+ }
81
+ [data-background="icons"] > [data-scene] > .ic-so5 .ic {
82
+ --fa-secondary-opacity: 0.5;
83
+ }
84
+ [data-background="icons"] > [data-scene] > .ic-so6 .ic {
85
+ --fa-secondary-opacity: 0.6;
86
+ }
87
+ [data-background="icons"] > [data-scene] > .ic-so7 .ic {
88
+ --fa-secondary-opacity: 0.7;
89
+ }
90
+ [data-background="icons"] > [data-scene] > .ic-so8 .ic {
91
+ --fa-secondary-opacity: 0.8;
92
+ }
93
+ [data-background="icons"] > [data-scene] > .ic-so9 .ic {
94
+ --fa-secondary-opacity: 0.9;
95
+ }
96
+ [data-background="icons"] > [data-scene] > .ic-so10 .ic {
97
+ --fa-secondary-opacity: 1;
98
+ }
99
+ /* 0.85: the default of two tones, or a `secondaryOpacity` of 0.85. */
100
+ [data-background="icons"] > [data-scene] > .ic-so85 .ic {
101
+ --fa-secondary-opacity: 0.85;
102
+ }
103
+
104
+ /* The constellation's threads and dots. */
105
+ [data-background="icons"] > [data-scene] .ic-ln {
106
+ stroke: var(--nxgt-bg-c1);
107
+ stroke-width: 0.7;
108
+ stroke-linecap: round;
109
+ opacity: 0.4;
110
+ }
111
+ [data-background="icons"] > [data-scene] .ic-dt {
112
+ fill: var(--nxgt-bg-c1);
113
+ opacity: 0.5;
114
+ }
115
+ [data-background="icons"] > [data-scene] .ic-ln.k2 {
116
+ stroke: var(--nxgt-bg-c2);
117
+ }
118
+ [data-background="icons"] > [data-scene] .ic-ln.k3 {
119
+ stroke: var(--nxgt-bg-c3);
120
+ }
121
+ [data-background="icons"] > [data-scene] .ic-dt.k2 {
122
+ fill: var(--nxgt-bg-c2);
123
+ }
124
+ [data-background="icons"] > [data-scene] .ic-dt.k3 {
125
+ fill: var(--nxgt-bg-c3);
126
+ }
127
+ }
128
+
129
+ @media (prefers-reduced-motion: no-preference) {
130
+ @keyframes nxgt-bg-ic-1 {
131
+ to {
132
+ translate: 14px 10px;
133
+ }
134
+ }
135
+ @keyframes nxgt-bg-ic-2 {
136
+ to {
137
+ translate: -12px 12px;
138
+ }
139
+ }
140
+ @keyframes nxgt-bg-ic-3 {
141
+ to {
142
+ translate: 12px -12px;
143
+ }
144
+ }
145
+ @keyframes nxgt-bg-ic-4 {
146
+ to {
147
+ translate: -14px -9px;
148
+ }
149
+ }
150
+
151
+ @layer components {
152
+ [data-background="icons"][data-animated] > [data-scene] .ia {
153
+ animation: nxgt-bg-ic-1 18s ease-in-out infinite alternate
154
+ var(--nxgt-bg-play, running);
155
+ }
156
+ [data-background="icons"][data-animated] > [data-scene] .iv2 {
157
+ animation-name: nxgt-bg-ic-2;
158
+ }
159
+ [data-background="icons"][data-animated] > [data-scene] .iv3 {
160
+ animation-name: nxgt-bg-ic-3;
161
+ }
162
+ [data-background="icons"][data-animated] > [data-scene] .iv4 {
163
+ animation-name: nxgt-bg-ic-4;
164
+ }
165
+ [data-background="icons"][data-animated] > [data-scene] .id2 {
166
+ animation-delay: -4s;
167
+ }
168
+ [data-background="icons"][data-animated] > [data-scene] .id3 {
169
+ animation-delay: -9s;
170
+ }
171
+ [data-background="icons"][data-animated] > [data-scene] .id4 {
172
+ animation-delay: -13s;
173
+ }
174
+ }
175
+ }
@@ -21,13 +21,10 @@
21
21
  @import "./ui/overlays/drawer/vaul-drawer.css";
22
22
  @import "./ui/overlays/drawer/vaul-keyframes.css";
23
23
  @import "./ui/fields/otp-field/input-otp.css";
24
- @import "./ui/feedback/spinner/spinner.css";
25
- @import "./ui/feedback/progress/progress.css";
24
+ /* Feedback: spinner, state scenes, progress, loading and typing indicators. */
25
+ @import "./ui/feedback/feedback.css";
26
26
  /* Quiz: the confetti behind a great score. */
27
27
  @import "./ui/widgets/education/quizzes/quiz-celebration.css";
28
- @import "./ui/feedback/loading-indicator/loading-indicator.css";
29
- /* TypingIndicator's wave (ChatTypingIndicator, ChatMessageList). */
30
- @import "./ui/feedback/typing-indicator/typing-indicator.css";
31
28
  @import "./ui/media/carousel/carousel.css";
32
29
  @import "./ui/media/carousel/carousel-first-frame.css";
33
30
  @import "./ui/media/media-player/nxgt-media-player.css";
@@ -0,0 +1,7 @@
1
+ @import "./spinner/spinner.css";
2
+ /* Illustration: the classes of the state scenes (EmptyState, ErrorState, @nxgt/material/illustrations). */
3
+ @import "./state-frame/illustration.css";
4
+ @import "./progress/progress.css";
5
+ @import "./loading-indicator/loading-indicator.css";
6
+ /* TypingIndicator's wave (ChatTypingIndicator, ChatMessageList). */
7
+ @import "./typing-indicator/typing-indicator.css";
@@ -0,0 +1,171 @@
1
+ /* Illustration (`@nxgt/material/illustrations`) and the scenes EmptyState and
2
+ * ErrorState draw with it. The scene is core's `buildIllustration`: it names
3
+ * classes and sets no colour, so everything below is a rule on theme tokens
4
+ * (`--<tone>-text` follow the light and the dark theme). No inline style.
5
+ *
6
+ * A Font Awesome duotone sprite reads `--fa-primary-color`,
7
+ * `--fa-secondary-color` and `--fa-secondary-opacity`: the second layer is the
8
+ * same tone, fainter (`ill-duo-opacity`), or another tone (`ill-duo-tones`). */
9
+ @layer components {
10
+ [data-slot="illustration"] {
11
+ display: block;
12
+ flex-shrink: 0;
13
+ max-width: 100%;
14
+ aspect-ratio: 4 / 3;
15
+ }
16
+
17
+ [data-slot="illustration"][data-size="sm"] {
18
+ width: 7.5rem;
19
+ }
20
+
21
+ [data-slot="illustration"][data-size="md"] {
22
+ width: 11.875rem;
23
+ }
24
+
25
+ [data-slot="illustration"][data-size="lg"] {
26
+ width: 17.5rem;
27
+ }
28
+
29
+ [data-slot="illustration"] > svg {
30
+ display: block;
31
+ width: 100%;
32
+ height: 100%;
33
+ }
34
+
35
+ /* The tone: its colour, and the one the second layer takes in `tones`. */
36
+ .ill-primary {
37
+ --ill: var(--primary-text);
38
+ --ill-d: var(--tertiary-text);
39
+ }
40
+
41
+ .ill-secondary {
42
+ --ill: var(--secondary-text);
43
+ --ill-d: var(--primary-text);
44
+ }
45
+
46
+ .ill-tertiary {
47
+ --ill: var(--tertiary-text);
48
+ --ill-d: var(--secondary-text);
49
+ }
50
+
51
+ .ill-error {
52
+ --ill: var(--error-text);
53
+ --ill-d: var(--warning-text);
54
+ }
55
+
56
+ .ill-warning {
57
+ --ill: var(--warning-text);
58
+ --ill-d: var(--error-text);
59
+ }
60
+
61
+ .ill-success {
62
+ --ill: var(--success-text);
63
+ --ill-d: var(--primary-text);
64
+ }
65
+
66
+ /* Who takes which colour: the hero and the first and fourth satellites the
67
+ * tone, the second and third the secondary and tertiary text. */
68
+ .ill-hero,
69
+ .ill-s0,
70
+ .ill-s3 {
71
+ --c: var(--ill);
72
+ }
73
+
74
+ .ill-s1 {
75
+ --c: var(--secondary-text);
76
+ }
77
+
78
+ .ill-s2 {
79
+ --c: var(--tertiary-text);
80
+ }
81
+
82
+ .ill-hero,
83
+ .ill-sat {
84
+ color: var(--c);
85
+ --fa-primary-color: var(--c);
86
+ --fa-secondary-color: var(--c);
87
+ --fa-primary-opacity: 1;
88
+ --fa-secondary-opacity: 0.4;
89
+ }
90
+
91
+ .ill-duo-tones :is(.ill-hero, .ill-sat) {
92
+ --fa-secondary-color: var(--ill-d);
93
+ --fa-secondary-opacity: 0.85;
94
+ }
95
+
96
+ .ill-plate {
97
+ fill: color-mix(in oklab, var(--ill) 17%, transparent);
98
+ }
99
+
100
+ /* The error plate (a gem) is rounded by a stroke of its own colour. */
101
+ .ill-error .ill-plate {
102
+ stroke: color-mix(in oklab, var(--ill) 17%, transparent);
103
+ stroke-width: 12;
104
+ stroke-linejoin: round;
105
+ }
106
+
107
+ .ill-ring {
108
+ stroke: color-mix(in oklab, var(--ill) 30%, transparent);
109
+ stroke-width: 1;
110
+ }
111
+
112
+ .ill-satbg {
113
+ fill: var(--card);
114
+ stroke: color-mix(in oklab, var(--c) 35%, transparent);
115
+ stroke-width: 1;
116
+ }
117
+
118
+ .ill-k0 {
119
+ fill: var(--tertiary-text);
120
+ }
121
+
122
+ .ill-k1 {
123
+ fill: var(--ill);
124
+ }
125
+
126
+ /* Opt-in motion (`animated`): the satellites drift, the sparkles twinkle. */
127
+ @media (prefers-reduced-motion: no-preference) {
128
+ [data-slot="illustration"][data-animated] :is(.ill-satbg, .ill-sat) {
129
+ animation: nxgt-ill-drift 6s ease-in-out infinite alternate;
130
+ }
131
+
132
+ [data-slot="illustration"][data-animated] .ill-s1 {
133
+ animation-delay: -1.5s;
134
+ }
135
+
136
+ [data-slot="illustration"][data-animated] .ill-s2 {
137
+ animation-delay: -3s;
138
+ }
139
+
140
+ [data-slot="illustration"][data-animated] .ill-s3 {
141
+ animation-delay: -4.5s;
142
+ }
143
+
144
+ [data-slot="illustration"][data-animated] .ill-spark {
145
+ transform-box: fill-box;
146
+ transform-origin: center;
147
+ animation: nxgt-ill-twinkle 3.2s ease-in-out infinite alternate;
148
+ }
149
+
150
+ [data-slot="illustration"][data-animated] .ill-spark.ill-k1 {
151
+ animation-delay: -1.6s;
152
+ }
153
+ }
154
+ }
155
+
156
+ @keyframes nxgt-ill-drift {
157
+ to {
158
+ transform: translateY(-3px);
159
+ }
160
+ }
161
+
162
+ @keyframes nxgt-ill-twinkle {
163
+ from {
164
+ opacity: 1;
165
+ transform: scale(1);
166
+ }
167
+ to {
168
+ opacity: 0.45;
169
+ transform: scale(0.75);
170
+ }
171
+ }
@@ -14,6 +14,7 @@
14
14
  @import "./theme-tile-background.css";
15
15
  @import "./theme-tile-textures.css";
16
16
  @import "./theme-tile-textures-night.css";
17
+ @import "./theme-tile-icons.css";
17
18
  @import "./theme-picker-list.css";
18
19
  @layer components {
19
20
  [data-slot="theme-picker"] {
@@ -0,0 +1,50 @@
1
+ /* ThemePicker's mini background, the `icons` preset: the first four icons the
2
+ * theme names, each a `<use>` of the app's sprite, in the tile's own tones. A
3
+ * sprite that is missing draws nothing and the wash stays. A duotone icon's
4
+ * second layer is the same tone, faded (the sprite's `--fa-secondary-opacity`). */
5
+ @layer components {
6
+ [data-slot="theme-tile-background"][data-preset="icons"] {
7
+ position: relative;
8
+ --mini-pattern: none;
9
+ }
10
+ [data-slot="theme-tile-icon"] {
11
+ position: absolute;
12
+ inline-size: 1.15rem;
13
+ block-size: 1.15rem;
14
+ color: var(--mini-a);
15
+ --fa-primary-color: var(--mini-a);
16
+ --fa-secondary-color: var(--mini-a);
17
+ --fa-secondary-opacity: 0.4;
18
+ opacity: 0.8;
19
+ }
20
+ [data-slot="theme-tile-icon"][data-n="1"] {
21
+ inset-inline-start: 10%;
22
+ inset-block-start: 14%;
23
+ rotate: -10deg;
24
+ }
25
+ [data-slot="theme-tile-icon"][data-n="2"] {
26
+ inset-inline-start: 68%;
27
+ inset-block-start: 10%;
28
+ inline-size: 1.4rem;
29
+ block-size: 1.4rem;
30
+ --fa-primary-color: var(--mini-b);
31
+ --fa-secondary-color: var(--mini-b);
32
+ color: var(--mini-b);
33
+ rotate: 8deg;
34
+ }
35
+ [data-slot="theme-tile-icon"][data-n="3"] {
36
+ inset-inline-start: 36%;
37
+ inset-block-start: 52%;
38
+ --fa-primary-color: var(--mini-c);
39
+ --fa-secondary-color: var(--mini-c);
40
+ color: var(--mini-c);
41
+ rotate: 6deg;
42
+ }
43
+ [data-slot="theme-tile-icon"][data-n="4"] {
44
+ inset-inline-start: 82%;
45
+ inset-block-start: 56%;
46
+ inline-size: 1rem;
47
+ block-size: 1rem;
48
+ rotate: -14deg;
49
+ }
50
+ }