@nxgt/material 3.8.0 → 3.9.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.
- package/CHANGELOG.md +38 -0
- package/README.md +28 -4
- package/dist/background-CAWV_qSk.js +247 -0
- package/dist/backgrounds/backgrounds.css +4 -0
- package/dist/backgrounds/css-react/celestial.css +200 -0
- package/dist/backgrounds/css-react/icons.css +175 -0
- package/dist/backgrounds.js +1 -1
- package/dist/celestial-scene-DaOsRFF3.js +30 -0
- package/dist/components/components.css +2 -5
- package/dist/components/ui/feedback/feedback.css +7 -0
- package/dist/components/ui/feedback/state-frame/illustration.css +171 -0
- package/dist/{components-B9EIfMdd.js → components-DiaPdu-E.js} +41 -32
- package/dist/components.js +16 -15
- package/dist/editor.js +1 -1
- package/dist/empty-state-COAV2d-R.js +98 -0
- package/dist/hooks.js +1 -1
- package/dist/icon-sprites-CZ3vcD7P.js +17 -0
- package/dist/icons-scene-bA7I4wdP.js +24 -0
- package/dist/illustration-DfPJtkFY.js +86 -0
- package/dist/illustrations-education.js +2 -0
- package/dist/illustrations-health.js +2 -0
- package/dist/illustrations.js +4 -0
- package/dist/lib/backgrounds/background/available.d.ts +8 -3
- package/dist/lib/backgrounds/background/background.d.ts +4 -4
- package/dist/lib/backgrounds/background/partials/background-layers.d.ts +17 -6
- package/dist/lib/backgrounds/background/partials/celestial-scene.d.ts +22 -0
- package/dist/lib/backgrounds/background/partials/icons-check.d.ts +8 -0
- package/dist/lib/backgrounds/background/partials/icons-keys.d.ts +3 -0
- package/dist/lib/backgrounds/background/partials/icons-layer.d.ts +8 -0
- package/dist/lib/backgrounds/background/partials/icons-scene.d.ts +19 -0
- package/dist/lib/backgrounds/background/partials/scene-options.d.ts +23 -0
- package/dist/lib/backgrounds/background/partials/use-icons-scene.d.ts +22 -0
- package/dist/lib/backgrounds/background/types.d.ts +28 -2
- package/dist/lib/backgrounds/index.d.ts +1 -1
- package/dist/lib/components/ui/collections/data-table/empty-types.d.ts +20 -0
- package/dist/lib/components/ui/collections/data-table/layout-types.d.ts +12 -0
- package/dist/lib/components/ui/collections/data-table/partials/data-table-body.d.ts +3 -1
- package/dist/lib/components/ui/collections/data-table/partials/data-table-empty-row.d.ts +5 -2
- package/dist/lib/components/ui/collections/data-table/partials/layouts/data-table-items-empty.d.ts +2 -2
- package/dist/lib/components/ui/collections/data-table/types.d.ts +4 -26
- package/dist/lib/components/ui/feedback/empty-state/empty-state.d.ts +8 -3
- package/dist/lib/components/ui/feedback/error-state/error-state.d.ts +3 -3
- package/dist/lib/components/ui/feedback/state-frame/illustration-defaults.d.ts +46 -0
- package/dist/lib/components/ui/feedback/state-frame/scene-registry.d.ts +14 -0
- package/dist/lib/components/ui/feedback/state-frame/state-frame.d.ts +10 -2
- package/dist/lib/components/ui/feedback/state-frame/state-scene-illustration.d.ts +5 -0
- package/dist/lib/components/ui/feedback/state-frame/state-scenes.d.ts +15 -0
- package/dist/lib/components/ui/layout/account-menu/account-menu-avatar.d.ts +1 -1
- package/dist/lib/components/ui/layout/app-shell/use-keep-shapes-inside.d.ts +3 -0
- package/dist/lib/components/ui/primitives/icon/icon-sprites.d.ts +17 -0
- package/dist/lib/components/ui/primitives/icon/index.d.ts +1 -0
- package/dist/lib/illustrations/illustration.d.ts +38 -0
- package/dist/lib/illustrations/index.d.ts +11 -0
- package/dist/lib/illustrations/plated-illustration.d.ts +11 -0
- package/dist/lib/illustrations/use-illustration.d.ts +22 -0
- package/dist/lib/illustrations-education/index.d.ts +16 -0
- package/dist/lib/illustrations-health/index.d.ts +16 -0
- package/dist/lib/theme-picker/partials/mini-background.d.ts +3 -0
- package/dist/lib/theme-picker/partials/tile-icons.d.ts +9 -0
- package/dist/main.js +28 -27
- package/dist/material.css +1 -1
- package/dist/{nxgt-theme-CgSb9Obl.js → nxgt-theme-ZS945iMP.js} +1 -1
- package/dist/pdf-reader.js +1 -1
- package/dist/plated-illustration-C3z0hP9U.js +19 -0
- package/dist/{public-Ce30uvp0.js → public-DGvtAz7M.js} +1 -1
- package/dist/scene-options-CCy3V7XS.js +60 -0
- package/dist/scene-svg-DJKa5vsg.js +9 -0
- package/dist/state-scenes-Be9w_3an.js +130 -0
- package/dist/{theme-context-BagPvRcz.js → theme-context-Cofk6vgs.js} +2 -2
- package/dist/theme-picker.js +69 -45
- package/dist/{theme-toggle-C8os82b4.js → theme-toggle-oU-fh6WE.js} +2 -2
- package/dist/themes.js +2 -2
- package/dist/{use-chat-composer-CDrgWGMM.js → use-chat-composer-CkEPJo5I.js} +4236 -4230
- package/dist/{use-theme-Cd-aiDJo.js → use-theme-DMcyJ52N.js} +1 -1
- package/docs/README.md +2 -0
- package/docs/components/README.md +2 -0
- package/docs/components/data-table-filter-and-lists.md +1 -0
- package/docs/components/feedback-and-status.md +2 -2
- package/docs/components/foundations.md +2 -2
- package/docs/components/navigation-and-layout.md +1 -1
- package/docs/components/primitives.md +14 -1
- package/docs/getting-started.md +7 -2
- package/docs/guides/app-shell.md +1 -1
- package/docs/guides/backgrounds.md +93 -6
- package/docs/guides/icon-motifs.md +198 -0
- package/docs/guides/illustrations.md +172 -0
- package/docs/guides/themes.md +35 -0
- package/docs/guides/theming.md +1 -1
- package/docs/previews/backgrounds-background-from-theme.webp +0 -0
- package/docs/previews/backgrounds-celestial.webp +0 -0
- package/docs/previews/backgrounds-geometry-more.webp +0 -0
- package/docs/previews/backgrounds-geometry.webp +0 -0
- package/docs/previews/backgrounds-icons.webp +0 -0
- package/docs/previews/backgrounds-illustrated-scenes.webp +0 -0
- package/docs/previews/backgrounds-light-more.webp +0 -0
- package/docs/previews/backgrounds-light.webp +0 -0
- package/docs/previews/backgrounds-material-more.webp +0 -0
- package/docs/previews/backgrounds-matrix.webp +0 -0
- package/docs/previews/backgrounds-moon.webp +0 -0
- package/docs/previews/backgrounds-motif-shapes.webp +0 -0
- package/docs/previews/backgrounds-motifs.webp +0 -0
- package/docs/previews/backgrounds-sky-overlay.webp +0 -0
- package/docs/previews/buttons-actions-actioncard.webp +0 -0
- package/docs/previews/buttons-actions-button.webp +0 -0
- package/docs/previews/buttons-actions-buttongroup.webp +0 -0
- package/docs/previews/buttons-actions-copybutton.webp +0 -0
- package/docs/previews/buttons-actions-fab.webp +0 -0
- package/docs/previews/buttons-actions-fabmenu.webp +0 -0
- package/docs/previews/buttons-actions-highlighttext.webp +0 -0
- package/docs/previews/buttons-actions-iconbutton.webp +0 -0
- package/docs/previews/buttons-actions-languageswitcher.webp +0 -0
- package/docs/previews/buttons-actions-linkbutton.webp +0 -0
- package/docs/previews/buttons-actions-loadmorebutton.webp +0 -0
- package/docs/previews/buttons-actions-responsivebutton.webp +0 -0
- package/docs/previews/buttons-actions-scrolltolatestbutton.webp +0 -0
- package/docs/previews/buttons-actions-scrolltotop.webp +0 -0
- package/docs/previews/buttons-actions-splitbutton.webp +0 -0
- package/docs/previews/buttons-actions-themetoggle.webp +0 -0
- package/docs/previews/buttons-actions-toolbar-overflow.webp +0 -0
- package/docs/previews/buttons-actions-toolbar.webp +0 -0
- package/docs/previews/data-display-accordioncard.webp +0 -0
- package/docs/previews/data-display-apiendpoint.webp +0 -0
- package/docs/previews/data-display-apioperation.webp +0 -0
- package/docs/previews/data-display-avatar.webp +0 -0
- package/docs/previews/data-display-avatargroup.webp +0 -0
- package/docs/previews/data-display-badge.webp +0 -0
- package/docs/previews/data-display-barecode.webp +0 -0
- package/docs/previews/data-display-card-presets.webp +0 -0
- package/docs/previews/data-display-chip.webp +0 -0
- package/docs/previews/data-display-codeblock.webp +0 -0
- package/docs/previews/data-display-codegroup.webp +0 -0
- package/docs/previews/data-display-countbadge.webp +0 -0
- package/docs/previews/data-display-dayseparator.webp +0 -0
- package/docs/previews/data-display-description.webp +0 -0
- package/docs/previews/data-display-enrolmentsecret.webp +0 -0
- package/docs/previews/data-display-entityheader.webp +0 -0
- package/docs/previews/data-display-eventchip.webp +0 -0
- package/docs/previews/data-display-figure.webp +0 -0
- package/docs/previews/data-display-jsonviewer.webp +0 -0
- package/docs/previews/data-display-listtile.webp +0 -0
- package/docs/previews/data-display-markdown.webp +0 -0
- package/docs/previews/data-display-metric-cards.webp +0 -0
- package/docs/previews/data-display-paramtable.webp +0 -0
- package/docs/previews/data-display-periodcards.webp +0 -0
- package/docs/previews/data-display-recoverycodes.webp +0 -0
- package/docs/previews/data-display-shape.webp +0 -0
- package/docs/previews/data-display-statcard.webp +0 -0
- package/docs/previews/data-display-statusindicator.webp +0 -0
- package/docs/previews/data-display-summarydata.webp +0 -0
- package/docs/previews/data-display-terminal.webp +0 -0
- package/docs/previews/data-display-timeline.webp +0 -0
- package/docs/previews/data-table-filter-lists-datagrid.webp +0 -0
- package/docs/previews/data-table-filter-lists-datatable.webp +0 -0
- package/docs/previews/data-table-filter-lists-daygroupedlist.webp +0 -0
- package/docs/previews/data-table-filter-lists-drag-and-drop.webp +0 -0
- package/docs/previews/data-table-filter-lists-facetgroup.webp +0 -0
- package/docs/previews/data-table-filter-lists-filter.webp +0 -0
- package/docs/previews/data-table-filter-lists-listempty.webp +0 -0
- package/docs/previews/data-table-filter-lists-listpane.webp +0 -0
- package/docs/previews/data-table-filter-lists-pagination.webp +0 -0
- package/docs/previews/data-table-filter-lists-servertable.webp +0 -0
- package/docs/previews/data-table-filter-lists-tree.webp +0 -0
- package/docs/previews/date-time-calendar.webp +0 -0
- package/docs/previews/date-time-datefield.webp +0 -0
- package/docs/previews/date-time-daterangefield.webp +0 -0
- package/docs/previews/date-time-durationfield.webp +0 -0
- package/docs/previews/date-time-minimonth.webp +0 -0
- package/docs/previews/date-time-nowindicator.webp +0 -0
- package/docs/previews/date-time-timefield.webp +0 -0
- package/docs/previews/date-time-timepicker.webp +0 -0
- package/docs/previews/feedback-status-alert.webp +0 -0
- package/docs/previews/feedback-status-alertdialog.webp +0 -0
- package/docs/previews/feedback-status-banner.webp +0 -0
- package/docs/previews/feedback-status-circularprogress.webp +0 -0
- package/docs/previews/feedback-status-confirmationdialog.webp +0 -0
- package/docs/previews/feedback-status-confirmdialog.webp +0 -0
- package/docs/previews/feedback-status-countdowntimer.webp +0 -0
- package/docs/previews/feedback-status-customalertdialog.webp +0 -0
- package/docs/previews/feedback-status-customdialog.webp +0 -0
- package/docs/previews/feedback-status-emptystate.webp +0 -0
- package/docs/previews/feedback-status-errorstate.webp +0 -0
- package/docs/previews/feedback-status-hydrateloading.webp +0 -0
- package/docs/previews/feedback-status-illustration-education.webp +0 -0
- package/docs/previews/feedback-status-illustration-health.webp +0 -0
- package/docs/previews/feedback-status-illustration.webp +0 -0
- package/docs/previews/feedback-status-loadingindicator.webp +0 -0
- package/docs/previews/feedback-status-notificationrow.webp +0 -0
- package/docs/previews/feedback-status-notifications.webp +0 -0
- package/docs/previews/feedback-status-progress.webp +0 -0
- package/docs/previews/feedback-status-scrollprogress.webp +0 -0
- package/docs/previews/feedback-status-skeleton.webp +0 -0
- package/docs/previews/feedback-status-spinner.webp +0 -0
- package/docs/previews/feedback-status-stepdots.webp +0 -0
- package/docs/previews/feedback-status-toast.webp +0 -0
- package/docs/previews/feedback-status-typingindicator.webp +0 -0
- package/docs/previews/form-fields-attributes.webp +0 -0
- package/docs/previews/form-fields-colorfield.webp +0 -0
- package/docs/previews/form-fields-contacts.webp +0 -0
- package/docs/previews/form-fields-countryfield.webp +0 -0
- package/docs/previews/form-fields-currencyfield.webp +0 -0
- package/docs/previews/form-fields-emailfield.webp +0 -0
- package/docs/previews/form-fields-field.webp +0 -0
- package/docs/previews/form-fields-formsection.webp +0 -0
- package/docs/previews/form-fields-inlineedit.webp +0 -0
- package/docs/previews/form-fields-inputgroupfield.webp +0 -0
- package/docs/previews/form-fields-localizedtextfields.webp +0 -0
- package/docs/previews/form-fields-numberfield.webp +0 -0
- package/docs/previews/form-fields-openinghours.webp +0 -0
- package/docs/previews/form-fields-otpfield.webp +0 -0
- package/docs/previews/form-fields-passwordfield.webp +0 -0
- package/docs/previews/form-fields-percentfield.webp +0 -0
- package/docs/previews/form-fields-phonefield.webp +0 -0
- package/docs/previews/form-fields-postaladdress.webp +0 -0
- package/docs/previews/form-fields-ratingfield.webp +0 -0
- package/docs/previews/form-fields-repeatablegroup.webp +0 -0
- package/docs/previews/form-fields-searchfield.webp +0 -0
- package/docs/previews/form-fields-slider.webp +0 -0
- package/docs/previews/form-fields-switch.webp +0 -0
- package/docs/previews/form-fields-textareafield.webp +0 -0
- package/docs/previews/form-fields-textfield.webp +0 -0
- package/docs/previews/form-fields-timezonefield.webp +0 -0
- package/docs/previews/form-fields-urlfield.webp +0 -0
- package/docs/previews/foundations-themes-icon-motifs.webp +0 -0
- package/docs/previews/foundations-themes-themepicker.webp +0 -0
- package/docs/previews/guides-i18n-i18nprovider.webp +0 -0
- package/docs/previews/guides-i18n-translated-components.webp +0 -0
- package/docs/previews/media-files-audioplayer.webp +0 -0
- package/docs/previews/media-files-camera.webp +0 -0
- package/docs/previews/media-files-carousel.webp +0 -0
- package/docs/previews/media-files-filelist.webp +0 -0
- package/docs/previews/media-files-filelistfield.webp +0 -0
- package/docs/previews/media-files-filepreview.webp +0 -0
- package/docs/previews/media-files-gallery-image-lists.webp +0 -0
- package/docs/previews/media-files-gallery-viewer.webp +0 -0
- package/docs/previews/media-files-gallery.webp +0 -0
- package/docs/previews/media-files-imagecropper.webp +0 -0
- package/docs/previews/media-files-imageeditor.webp +0 -0
- package/docs/previews/media-files-imagefield.webp +0 -0
- package/docs/previews/media-files-lightboxgallery.webp +0 -0
- package/docs/previews/media-files-map.webp +0 -0
- package/docs/previews/media-files-mediaplayer.webp +0 -0
- package/docs/previews/media-files-mediaplayerhost.webp +0 -0
- package/docs/previews/media-files-mediaplayerlightbox.webp +0 -0
- package/docs/previews/media-files-mediaplayermini.webp +0 -0
- package/docs/previews/media-files-minigallery.webp +0 -0
- package/docs/previews/media-files-networkuploadfield.webp +0 -0
- package/docs/previews/media-files-pdfreader.webp +0 -0
- package/docs/previews/media-files-s3uploadfield.webp +0 -0
- package/docs/previews/media-files-uploadfield.webp +0 -0
- package/docs/previews/navigation-layout-accountmenu.webp +0 -0
- package/docs/previews/navigation-layout-appshell-menu-badge.webp +0 -0
- package/docs/previews/navigation-layout-appshell.webp +0 -0
- package/docs/previews/navigation-layout-authcard.webp +0 -0
- package/docs/previews/navigation-layout-background.webp +0 -0
- package/docs/previews/navigation-layout-bottomappbar.webp +0 -0
- package/docs/previews/navigation-layout-breadcrumb.webp +0 -0
- package/docs/previews/navigation-layout-doc-api.webp +0 -0
- package/docs/previews/navigation-layout-doc-blocks.webp +0 -0
- package/docs/previews/navigation-layout-doc.webp +0 -0
- package/docs/previews/navigation-layout-hero.webp +0 -0
- package/docs/previews/navigation-layout-listdetailslayout.webp +0 -0
- package/docs/previews/navigation-layout-pager.webp +0 -0
- package/docs/previews/navigation-layout-panelayout.webp +0 -0
- package/docs/previews/navigation-layout-resizable.webp +0 -0
- package/docs/previews/navigation-layout-responsivegrid.webp +0 -0
- package/docs/previews/navigation-layout-seealso.webp +0 -0
- package/docs/previews/navigation-layout-sidebar.webp +0 -0
- package/docs/previews/navigation-layout-skiplink.webp +0 -0
- package/docs/previews/navigation-layout-stepper.webp +0 -0
- package/docs/previews/navigation-layout-steps.webp +0 -0
- package/docs/previews/navigation-layout-threadlayout.webp +0 -0
- package/docs/previews/navigation-layout-toc.webp +0 -0
- package/docs/previews/navigation-layout-topappbar.webp +0 -0
- package/docs/previews/overlays-menus-command.webp +0 -0
- package/docs/previews/overlays-menus-contextmenu.webp +0 -0
- package/docs/previews/overlays-menus-dialog.webp +0 -0
- package/docs/previews/overlays-menus-drawer.webp +0 -0
- package/docs/previews/overlays-menus-dropdownmenu.webp +0 -0
- package/docs/previews/overlays-menus-hovercard.webp +0 -0
- package/docs/previews/overlays-menus-menubar.webp +0 -0
- package/docs/previews/overlays-menus-popover.webp +0 -0
- package/docs/previews/overlays-menus-sheet.webp +0 -0
- package/docs/previews/overlays-menus-tooltip.webp +0 -0
- package/docs/previews/primitives-accordion.webp +0 -0
- package/docs/previews/primitives-anchorheading.webp +0 -0
- package/docs/previews/primitives-card.webp +0 -0
- package/docs/previews/primitives-collapsible.webp +0 -0
- package/docs/previews/primitives-extendedlabel.webp +0 -0
- package/docs/previews/primitives-helpertext.webp +0 -0
- package/docs/previews/primitives-icon.webp +0 -0
- package/docs/previews/primitives-input.webp +0 -0
- package/docs/previews/primitives-inputgroup.webp +0 -0
- package/docs/previews/primitives-kbd.webp +0 -0
- package/docs/previews/primitives-label.webp +0 -0
- package/docs/previews/primitives-scrollarea.webp +0 -0
- package/docs/previews/primitives-separator.webp +0 -0
- package/docs/previews/primitives-table.webp +0 -0
- package/docs/previews/primitives-tabs.webp +0 -0
- package/docs/previews/primitives-textarea.webp +0 -0
- package/docs/previews/primitives-toggle.webp +0 -0
- package/docs/previews/primitives-togglegroup.webp +0 -0
- package/docs/previews/primitives-typography.webp +0 -0
- package/docs/previews/rich-widgets-chat-advanced.webp +0 -0
- package/docs/previews/rich-widgets-chat-composer.webp +0 -0
- package/docs/previews/rich-widgets-chat-inbox.webp +0 -0
- package/docs/previews/rich-widgets-chat-overview.webp +0 -0
- package/docs/previews/rich-widgets-chat-thread.webp +0 -0
- package/docs/previews/rich-widgets-chat-widget.webp +0 -0
- package/docs/previews/rich-widgets-codeeditor-diff.webp +0 -0
- package/docs/previews/rich-widgets-codeeditor.webp +0 -0
- package/docs/previews/rich-widgets-compacteditor.webp +0 -0
- package/docs/previews/rich-widgets-documenteditor.webp +0 -0
- package/docs/previews/rich-widgets-drawing.webp +0 -0
- package/docs/previews/rich-widgets-emojipicker.webp +0 -0
- package/docs/previews/rich-widgets-eventcalendar.webp +0 -0
- package/docs/previews/rich-widgets-kanban.webp +0 -0
- package/docs/previews/rich-widgets-mentionlist.webp +0 -0
- package/docs/previews/rich-widgets-native-charts-areachart.webp +0 -0
- package/docs/previews/rich-widgets-native-charts-barchart.webp +0 -0
- package/docs/previews/rich-widgets-native-charts-combochart.webp +0 -0
- package/docs/previews/rich-widgets-native-charts-donutchart.webp +0 -0
- package/docs/previews/rich-widgets-native-charts-funnelchart.webp +0 -0
- package/docs/previews/rich-widgets-native-charts-gauge.webp +0 -0
- package/docs/previews/rich-widgets-native-charts-heatmapchart.webp +0 -0
- package/docs/previews/rich-widgets-native-charts-linechart.webp +0 -0
- package/docs/previews/rich-widgets-native-charts-piechart.webp +0 -0
- package/docs/previews/rich-widgets-native-charts-radarchart.webp +0 -0
- package/docs/previews/rich-widgets-native-charts-radialbarchart.webp +0 -0
- package/docs/previews/rich-widgets-native-charts-scatterchart.webp +0 -0
- package/docs/previews/rich-widgets-questioncard.webp +0 -0
- package/docs/previews/rich-widgets-quiz.webp +0 -0
- package/docs/previews/rich-widgets-richchatcomposer.webp +0 -0
- package/docs/previews/rich-widgets-richtexteditor.webp +0 -0
- package/docs/previews/rich-widgets-richtextviewer.webp +0 -0
- package/docs/previews/selection-choice-autocomplete.webp +0 -0
- package/docs/previews/selection-choice-checkbox.webp +0 -0
- package/docs/previews/selection-choice-checkboxgroup.webp +0 -0
- package/docs/previews/selection-choice-checkcardfield.webp +0 -0
- package/docs/previews/selection-choice-chipgroupfield.webp +0 -0
- package/docs/previews/selection-choice-choicecardgroup.webp +0 -0
- package/docs/previews/selection-choice-colorswatches.webp +0 -0
- package/docs/previews/selection-choice-combobox.webp +0 -0
- package/docs/previews/selection-choice-comboboxfield.webp +0 -0
- package/docs/previews/selection-choice-optiontile.webp +0 -0
- package/docs/previews/selection-choice-radiogroup.webp +0 -0
- package/docs/previews/selection-choice-select.webp +0 -0
- package/docs/previews/selection-choice-selectfield.webp +0 -0
- package/docs/previews/selection-choice-sortablelist.webp +0 -0
- package/docs/previews/selection-choice-switcher.webp +0 -0
- package/docs/previews/selection-choice-transferlist.webp +0 -0
- package/docs/previews/selection-choice-treeselectfield.webp +0 -0
- package/docs/roadmap.md +22 -0
- package/docs/troubleshooting.md +69 -4
- package/lib/backgrounds/backgrounds.css +4 -0
- package/lib/backgrounds/css-react/celestial.css +200 -0
- package/lib/backgrounds/css-react/icons.css +175 -0
- package/lib/components/components.css +2 -5
- package/lib/components/ui/feedback/feedback.css +7 -0
- package/lib/components/ui/feedback/state-frame/illustration.css +171 -0
- package/lib/theme-picker/theme-picker.css +1 -0
- package/lib/theme-picker/theme-tile-icons.css +50 -0
- package/lib/theme-picker/theme-tile-textures-night.css +107 -1
- package/lib/themes/teal.css +2 -3
- package/package.json +28 -4
- package/dist/background--Bf_EbFR.js +0 -159
- 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`
|
package/docs/guides/themes.md
CHANGED
|
@@ -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:
|
package/docs/guides/theming.md
CHANGED
|
@@ -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.
|
|
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
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|