@nxgt/material 3.77.0 → 3.79.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 (33) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/README.md +1 -1
  3. package/dist/{calculator-DSSaYRmM.js → calculator-KqIMBXSh.js} +2 -2
  4. package/dist/calculator-field.js +1 -1
  5. package/dist/calculator.js +1 -1
  6. package/dist/{components-ZJx47chq.js → components-ConMf2w-.js} +12367 -12323
  7. package/dist/components.js +3 -3
  8. package/dist/editor.js +1 -1
  9. package/dist/{financial-variant-vZdgyMeN.js → financial-variant-CggTpad2.js} +1 -1
  10. package/dist/lib/components/ui/actions/back-link/back-link.d.ts +12 -3
  11. package/dist/lib/components/ui/collections/server-table/partials/server-table-band.d.ts +2 -2
  12. package/dist/lib/components/ui/collections/server-table/partials/server-table-grid-sorting.d.ts +6 -0
  13. package/dist/lib/components/ui/collections/server-table/partials/server-table-passed-through.d.ts +1 -0
  14. package/dist/lib/components/ui/collections/server-table/types.d.ts +1 -1
  15. package/dist/lib/components/ui/feedback/state-frame/scene-registry.d.ts +24 -4
  16. package/dist/lib/components/ui/primitives/tabs/tabs-clipped.d.ts +9 -0
  17. package/dist/lib/components/ui/primitives/tabs/tabs-overflow-classes.d.ts +1 -1
  18. package/dist/lib/components/ui/primitives/tabs/tabs-overflow-state.d.ts +11 -0
  19. package/dist/lib/components/ui/primitives/tabs/use-tabs-overflow.d.ts +2 -9
  20. package/dist/lib/components/ui/selection/sortable-list/partials/sortable-list-frame.d.ts +2 -1
  21. package/dist/lib/components/ui/selection/sortable-list/sortable-list.d.ts +3 -1
  22. package/dist/lib/components/ui/widgets/event-calendar/partials/calendar-view-toggle.d.ts +2 -1
  23. package/dist/lib/illustrations/index.d.ts +1 -1
  24. package/dist/main.js +3 -3
  25. package/dist/material.css +1 -1
  26. package/dist/{tabs-BT9pSRwk.js → tabs-KGKvve3y.js} +101 -93
  27. package/dist/{use-chat-composer-BOx4I6Ma.js → use-chat-composer-BFhRMHcX.js} +1 -1
  28. package/docs/components/buttons-and-actions.md +9 -1
  29. package/docs/components/data-table-filter-and-lists.md +8 -4
  30. package/docs/components/primitives.md +4 -4
  31. package/docs/components/selection-and-choice.md +2 -1
  32. package/docs/guides/illustrations.md +34 -1
  33. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,33 @@
1
1
  # @nxgt/material
2
2
 
3
+ ## 3.79.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#2400](https://github.com/softistx/nxgt-material/pull/2400) [`7988e7b`](https://github.com/softistx/nxgt-material/commit/7988e7b73d3f5978aaf5686249750382b99391f4) Thanks [@SteveGT96](https://github.com/SteveGT96)! - `SortableList` and `SortableListFormField` now take `hideLabel`, as `AttributeValuesFormFieldSet` does: `true` keeps `label` as the list's accessible name (`aria-labelledby` on the `listbox`) but renders it `sr-only`, for a list under a heading that already names it. Nothing to adapt; the default is unchanged. Fixes [#2109](https://github.com/softistx/nxgt-material/issues/2109).
8
+
9
+ ### Patch Changes
10
+
11
+ - [#2407](https://github.com/softistx/nxgt-material/pull/2407) [`be4019f`](https://github.com/softistx/nxgt-material/commit/be4019fc37944758f3aff625717cba05a25efc2a) Thanks [@SteveGT96](https://github.com/SteveGT96)! - `EventCalendar`'s view switcher items are 44px tall on a coarse pointer (they were 36px), so a tap-target check passes on a phone. Fixes [#2403](https://github.com/softistx/nxgt-material/issues/2403).
12
+
13
+ - [#2404](https://github.com/softistx/nxgt-material/pull/2404) [`5876258`](https://github.com/softistx/nxgt-material/commit/58762584f51ac7feb5d16cbe78dea6e9c4ccfd2f) Thanks [@SteveGT96](https://github.com/SteveGT96)! - QuantityField with `allowCustomUnit` no longer shows the browser's solid datalist caret on its unit input; it shows the library's chevron, like SelectField. Nothing to adapt. Fixes [#2395](https://github.com/softistx/nxgt-material/issues/2395).
14
+
15
+ - [#2408](https://github.com/softistx/nxgt-material/pull/2408) [`9255992`](https://github.com/softistx/nxgt-material/commit/925599208700bd0a7eea3cd97577c35a186cfb4d) Thanks [@SteveGT96](https://github.com/SteveGT96)! - Fix `ServerTable` on a phone without `actions` (a list in cards or tiles with `filter`): "Filters (N)" is back beside the search, inside the `search` landmark, instead of alone in the second row since 3.77 (with the select-all and the sort). With `actions` the second row is unchanged. Fixes [#2397](https://github.com/softistx/nxgt-material/issues/2397).
16
+
17
+ - [#2405](https://github.com/softistx/nxgt-material/pull/2405) [`60f9707`](https://github.com/softistx/nxgt-material/commit/60f9707e38e3b8f070c08f358cdacfe0f36f0f5e) Thanks [@SteveGT96](https://github.com/SteveGT96)! - Scrollable `Tabs`, `TabsNav` and `SegmentedNav`: a tab that does not fit whole between the scroll buttons is now transparent instead of half faded or cut by a button, so a label is shown whole or not at all, and the mask under a button has a hard edge. Fixes [#2390](https://github.com/softistx/nxgt-material/issues/2390) (the [#2276](https://github.com/softistx/nxgt-material/issues/2276) fix only faded the labels).
18
+
19
+ ## 3.78.0
20
+
21
+ ### Minor Changes
22
+
23
+ - [#2381](https://github.com/softistx/nxgt-material/pull/2381) [`e1b6dbe`](https://github.com/softistx/nxgt-material/commit/e1b6dbe608e7fe41796c0bc26c08ec2ef0ce883e) Thanks [@SteveGT96](https://github.com/SteveGT96)! - `BackLink` takes `collapse="phone"`: below 768px it shows only its arrow, the label staying its accessible name and, when it is a string, its tooltip (as `ResponsiveLinkButton` does), with `variant` and `aria-label` kept. Unset, the label always shows, as before. Fixes [#2375](https://github.com/softistx/nxgt-material/issues/2375).
24
+
25
+ - [#2385](https://github.com/softistx/nxgt-material/pull/2385) [`2b2ad61`](https://github.com/softistx/nxgt-material/commit/2b2ad6145dcfe8074677f8c29d832f482fa1abab) Thanks [@SteveGT96](https://github.com/SteveGT96)! - Scenes registered through `IllustrationDefaults` `sets` are now typed. `@nxgt/material/illustrations` exports an empty `RegisteredScenes` interface to augment (`declare module '@nxgt/material/illustrations' { interface RegisteredScenes extends SceneTableIds<typeof MY_SCENES> {} }`) and the helper type `SceneTableIds<T extends SceneTable>`; the keys widen `SceneId` (and `RegisteredScene`), so `<Illustration scene="my-scene" />`, a state's `illustration` and `emptyIllustration` accept them beside the built-in ids, without a cast. The `scenes={T}` overload is unchanged. Nothing to adapt: an app that does not augment keeps today's types, and a `scene={id as SceneId}` cast can go. Fixes [#2384](https://github.com/softistx/nxgt-material/issues/2384).
26
+
27
+ ### Patch Changes
28
+
29
+ - [#2387](https://github.com/softistx/nxgt-material/pull/2387) [`17e479e`](https://github.com/softistx/nxgt-material/commit/17e479e30265dc30eedd29a46f0866262164760a) Thanks [@SteveGT96](https://github.com/SteveGT96)! - `ServerTable` now takes `focusRef`, as `DataTable` does, and fills it with the table (or the list of cards or tiles) it renders, beside its own ref. `useRowMenuFocus()`'s `focusRef` given to a `ServerTable` scopes `focusRowMenu(id)` to that table, so two tables on a page may share a row id. Nothing to adapt: pass `focusRef={focusRef}` and drop the wrapper element used as a workaround. Fixes [#2086](https://github.com/softistx/nxgt-material/issues/2086).
30
+
3
31
  ## 3.77.0
4
32
 
5
33
  ### Minor Changes
package/README.md CHANGED
@@ -207,7 +207,7 @@ reads `duotone.svg`, the file that exists (it used to ask for the missing
207
207
  | `@nxgt/material/map` | Leaflet maps, markers, a location field — **its own entry, not in the barrel, and browser-only** ([maps guide](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/guides/maps.md)) |
208
208
  | `@nxgt/material/themes` | `NxgtThemeProvider` (the registry, the persisted theme name, `<html data-nxgt-theme>`, `defaultMode`; renders no element; `useTheme({ defaultMode })` takes the first-visit mode too), `NxgtTheme` (a zone in another theme, `mode`, `asChild`), `useThemeContext`, `defineTheme` (a bad background `motif` key or value is dropped and warned about in development, 4.0: an error; core's own `defineTheme` warns only through `{ warn }`), `ThemeDefinitionError`, `themeBootScript` and `THEME_BOOT_SCRIPT` (with `ThemeBootOptions`), the 14 presets and `THEME_PRESETS`, `ThemeName` and `NxgtThemes` (augmentable), with the `NxgtThemeProps`, `NxgtThemeProviderProps`, `ThemeContextValue`, `Theme`, `ThemeDefinition` and `ThemeBackground` types ([guide](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/guides/theming.md#the-provider-and-zones)). `Background` and `ActivityLayout` take their background from the nearest theme |
209
209
  | `@nxgt/material/theme-picker` | `ThemePicker`, the theme and mode chooser (swatches and a mini background per theme; `themes`, `value`, `onValueChange`, `showMode`, `showBackground`, `layout`) and `ThemePickerProps`; its own entry so `/themes` stays small ([guide](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/guides/theming.md#let-users-choose)) |
210
- | `@nxgt/material/illustrations` | State illustrations: `Illustration` (`scene`: `empty`, `no-results`, `not-found`, `error`, `offline`, `success`, `welcome`, `forbidden`, `maintenance`, `invitation`, `sign-in`, `empty-inbox`, or an id of the `scenes` table it is given; `size`, `title`, `animated`, `hero`, `satellites`, `iconStyle`, `tone`, `duotone`) draws a hero icon on a Material 3 Expressive plate with satellites, from the Font Awesome sprites your app serves (no icon artwork ships); `IllustrationDefaults` (`icons`: `'suggested'` or a table, `iconStyle`, `sets`) opts a subtree's `EmptyState` and `ErrorState` into them; `ILLUSTRATION_SCENES`, `SUGGESTED_ICONS` and the types re-exported from `@nxgt/material-core/illustrations` (`SceneRow`, `SceneTable`), plus `IconStyleInput` and `IconStyleRef` (the `iconStyle` types: `{ family?, type? }` or one of the 37 sprite file names), `SceneId`, `RegisteredScene` and `IllustrationSceneRegistry`, the scene id type that an imported set's ids widen. `unauthorized` and `maintenance` states draw the `forbidden` and `maintenance` scenes. `EmptyState`, `ErrorState` and the `DataTable` empty row (`emptyIllustration`) also take `illustration` as a scene id or `true`. Colours are theme tones in `styles.css`; its own entry ([illustrations guide](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/guides/illustrations.md)) |
210
+ | `@nxgt/material/illustrations` | State illustrations: `Illustration` (`scene`: `empty`, `no-results`, `not-found`, `error`, `offline`, `success`, `welcome`, `forbidden`, `maintenance`, `invitation`, `sign-in`, `empty-inbox`, or an id of the `scenes` table it is given; `size`, `title`, `animated`, `hero`, `satellites`, `iconStyle`, `tone`, `duotone`) draws a hero icon on a Material 3 Expressive plate with satellites, from the Font Awesome sprites your app serves (no icon artwork ships); `IllustrationDefaults` (`icons`: `'suggested'` or a table, `iconStyle`, `sets`) opts a subtree's `EmptyState` and `ErrorState` into them; `ILLUSTRATION_SCENES`, `SUGGESTED_ICONS` and the types re-exported from `@nxgt/material-core/illustrations` (`SceneRow`, `SceneTable`), plus `IconStyleInput` and `IconStyleRef` (the `iconStyle` types: `{ family?, type? }` or one of the 37 sprite file names), `SceneId` and `RegisteredScene` (the scene id types: the built-in ids plus those registered through `IllustrationSceneRegistry` by an imported set, or through `RegisteredScenes` by you), `RegisteredScenes` (an interface to augment with the ids of a table of your own registered through `sets`) and `SceneTableIds` (the helper type that gives a table's ids: `interface RegisteredScenes extends SceneTableIds<typeof MY_SCENES> {}`). `unauthorized` and `maintenance` states draw the `forbidden` and `maintenance` scenes. `EmptyState`, `ErrorState` and the `DataTable` empty row (`emptyIllustration`) also take `illustration` as a scene id or `true`. Colours are theme tones in `styles.css`; its own entry ([illustrations guide](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/guides/illustrations.md)) |
211
211
  | `@nxgt/material/illustrations/health` | The health scenes: `HEALTH_SCENES` (`patient-record`, `consultation`, `appointment`, `lab-sample`, `prescription`, `vaccination`, `hospitalisation`, `emergency`, `no-patients`, `lab-results`), `HEALTH_SCENE_IDS`, `HEALTH_SUGGESTED_ICONS`, `HealthScene`; register it with `<IllustrationDefaults sets={[HEALTH_SCENES]}>` so `<Illustration scene="patient-record" />` and `<EmptyState illustration="no-patients" />` work (or pass `scenes={HEALTH_SCENES}` to one `Illustration`); importing it adds the ids to `SceneId`. An app that does not import it does not carry it |
212
212
  | `@nxgt/material/illustrations/education` | The education scenes: `EDUCATION_SCENES` (`classroom`, `homework`, `exam-grades`, `timetable`, `attendance`, `enrolment`, `library`, `graduation`, `no-students`, `report-card`), `EDUCATION_SCENE_IDS`, `EDUCATION_SUGGESTED_ICONS`, `EducationScene`; register it with `<IllustrationDefaults sets={[EDUCATION_SCENES]}>` so `<Illustration scene="classroom" />` and `<EmptyState illustration="no-students" />` work (or pass `scenes={EDUCATION_SCENES}` to one `Illustration`); importing it adds the ids to `SceneId`. An app that does not import it does not carry it |
213
213
  | `@nxgt/material/illustrations/game` | The game scenes, for a game, quiz, community or event app: `GAME_SCENES` (`night-sky`, `dawn`, `village`, `day-village`, `graveyard`, `seer`, `healer`, `archer`, `cupid`, `wolf`, `villager`, `witch`, `victory`, `empty-table`, `waiting-players`, `connection-lost`), `GAME_SCENE_IDS`, `GAME_SUGGESTED_ICONS`, `GameScene`; register it with `<IllustrationDefaults sets={[GAME_SCENES]}>` so `<Illustration scene="village" />` and `<EmptyState illustration="empty-table" />` work (or pass `scenes={GAME_SCENES}` to one `Illustration`); importing it adds the ids to `SceneId`. Pass `title` for an accessible name, otherwise the picture is decorative (`aria-hidden`). An app that does not import it does not carry it |
@@ -1,5 +1,5 @@
1
1
  import { t as e } from "./utils-BLfntITJ.js";
2
- import { n as t, r as n, t as r, u as i } from "./tabs-BT9pSRwk.js";
2
+ import { n as t, r as n, t as r, u as i } from "./tabs-KGKvve3y.js";
3
3
  import { t as a } from "./button-3op3rtZh.js";
4
4
  import { t as o } from "./use-material-translation-CD6QoVal.js";
5
5
  import { t as s } from "./icon-button-Cogxy1cy.js";
@@ -282,7 +282,7 @@ var Re = {
282
282
  scientific: () => import("./scientific-variant-2y3UxAAU.js"),
283
283
  pos: () => import("./pos-variant-GrUfbTTP.js"),
284
284
  programmer: () => import("./programmer-variant-eKJNKENL.js"),
285
- financial: () => import("./financial-variant-vZdgyMeN.js"),
285
+ financial: () => import("./financial-variant-CggTpad2.js"),
286
286
  conversion: () => import("./conversion-variant-BDFAxqe9.js")
287
287
  }, B = "failed", V = /* @__PURE__ */ new Map(), H = /* @__PURE__ */ new Map(), U = /* @__PURE__ */ new Set(), W = () => {
288
288
  for (let e of U) e();
@@ -5,7 +5,7 @@ import { t as r } from "./icon-button-Cogxy1cy.js";
5
5
  import { a as i, i as a, n as o, r as s, t as c } from "./picker-surface-CV09H7Nb.js";
6
6
  import { r as l, t as u } from "./currency-field-DWHB5oms.js";
7
7
  import { r as d, t as f } from "./field-blur-DkiZOVNV.js";
8
- import { t as p } from "./calculator-DSSaYRmM.js";
8
+ import { t as p } from "./calculator-KqIMBXSh.js";
9
9
  import { useId as m, useState as h } from "react";
10
10
  import { Fragment as g, jsx as _, jsxs as v } from "react/jsx-runtime";
11
11
  import { Calculator as y } from "lucide-react";
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "./calculator-DSSaYRmM.js";
1
+ import { n as e, t } from "./calculator-KqIMBXSh.js";
2
2
  export { e as CALCULATOR_VARIANTS, t as Calculator };