@nxgt/material 3.38.0 → 3.41.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 (112) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +3 -3
  3. package/dist/{async-slice-DqjtOYlO.js → async-slice-Dj0tAKRI.js} +2 -2
  4. package/dist/{button-D52ron-a.js → button-CTsT_LqL.js} +1 -1
  5. package/dist/charts.js +1733 -1364
  6. package/dist/{chip-0XYwSp9o.js → chip-DP7EyhtT.js} +1 -1
  7. package/dist/{code-editor-BetIXpJ6.js → code-editor-BWn0AXBf.js} +4 -4
  8. package/dist/code-editor.js +4 -4
  9. package/dist/{code-language-items-C7prxl_7.js → code-language-items-CCRuLYpA.js} +2 -2
  10. package/dist/components/components.css +1 -0
  11. package/dist/components/ui/widgets/native-charts/native-charts-reference.css +102 -0
  12. package/dist/{components-NoCZ44Ri.js → components-BUFDh6nQ.js} +16216 -15813
  13. package/dist/components.js +15 -15
  14. package/dist/{dialog-BCsT_aLo.js → dialog-uQld1gKm.js} +1 -1
  15. package/dist/dnd.js +1 -1
  16. package/dist/{dropdown-menu-Crt5QvTr.js → dropdown-menu-BA70o7HC.js} +1 -1
  17. package/dist/editor.js +7 -7
  18. package/dist/{empty-state-DFWq2CWB.js → empty-state-BzwyRX5J.js} +1 -1
  19. package/dist/hooks.js +2 -2
  20. package/dist/{i18n-provider-C0RBM8rH.js → i18n-provider-DkeMr5bw.js} +1 -1
  21. package/dist/i18n.js +5 -5
  22. package/dist/{icon-badge-XBoBIt_R.js → icon-badge-D_z5BGbc.js} +1 -1
  23. package/dist/lib/charts/index.d.ts +3 -1
  24. package/dist/lib/components/ui/collections/server-table/bulk-action-targets.d.ts +18 -0
  25. package/dist/lib/components/ui/collections/server-table/bulk-action.d.ts +50 -3
  26. package/dist/lib/components/ui/collections/server-table/partials/server-table-bulk-buttons.d.ts +5 -3
  27. package/dist/lib/components/ui/collections/server-table/partials/server-table-bulk-focus.d.ts +31 -0
  28. package/dist/lib/components/ui/collections/server-table/partials/server-table-bulk-more.d.ts +24 -0
  29. package/dist/lib/components/ui/collections/server-table/partials/server-table-bulk-notice.d.ts +16 -0
  30. package/dist/lib/components/ui/collections/server-table/partials/server-table-bulk-texts.d.ts +9 -0
  31. package/dist/lib/components/ui/collections/server-table/server-table.d.ts +1 -1
  32. package/dist/lib/components/ui/dates/date-field/date-field-content.d.ts +1 -1
  33. package/dist/lib/components/ui/dates/date-field/date-field-popover.d.ts +3 -1
  34. package/dist/lib/components/ui/dates/date-field/date-field-sheet-entry.d.ts +3 -2
  35. package/dist/lib/components/ui/dates/date-field/date-field-surface.d.ts +1 -1
  36. package/dist/lib/components/ui/dates/date-field/date-field-typed.d.ts +3 -3
  37. package/dist/lib/components/ui/dates/date-field/date-field.d.ts +23 -2
  38. package/dist/lib/components/ui/dates/date-field/use-typed-date.d.ts +3 -1
  39. package/dist/lib/components/ui/dates/date-field/use-zoned-content.d.ts +36 -0
  40. package/dist/lib/components/ui/dates/date-range-field/date-range-field.types.d.ts +1 -1
  41. package/dist/lib/components/ui/dates/picker-popover/hero-text.d.ts +1 -0
  42. package/dist/lib/components/ui/dates/picker-trigger/floating-clock.d.ts +7 -0
  43. package/dist/lib/components/ui/dates/picker-trigger/typed-day.d.ts +8 -0
  44. package/dist/lib/components/ui/dates/picker-trigger/use-zoned-date-props.d.ts +38 -0
  45. package/dist/lib/components/ui/dates/picker-trigger/use-zoned-value.d.ts +20 -0
  46. package/dist/lib/components/ui/dates/picker-trigger/zoned-bounds.d.ts +16 -0
  47. package/dist/lib/components/ui/dates/picker-trigger/zoned-matchers.d.ts +8 -0
  48. package/dist/lib/components/ui/dates/time-field/time-field.d.ts +14 -1
  49. package/dist/lib/components/ui/dates/time-field/time-form-field.d.ts +5 -1
  50. package/dist/lib/components/ui/dates/time-field/time-string-field.d.ts +3 -2
  51. package/dist/lib/components/ui/fields/contacts/placeholders.d.ts +1 -1
  52. package/dist/lib/components/ui/primitives/segmented-input/segment-date-time.d.ts +13 -0
  53. package/dist/lib/components/ui/primitives/segmented-input/segment-defs.d.ts +6 -0
  54. package/dist/lib/components/ui/primitives/segmented-input/segment-floating.d.ts +11 -0
  55. package/dist/lib/components/ui/primitives/segmented-input/segment-part.d.ts +19 -0
  56. package/dist/lib/components/ui/widgets/native-charts/core/point-tones.d.ts +17 -0
  57. package/dist/lib/components/ui/widgets/native-charts/core/reference-text.d.ts +30 -0
  58. package/dist/lib/components/ui/widgets/native-charts/core/reference.d.ts +45 -0
  59. package/dist/lib/components/ui/widgets/native-charts/core/summary.d.ts +3 -0
  60. package/dist/lib/components/ui/widgets/native-charts/core/table.d.ts +7 -0
  61. package/dist/lib/components/ui/widgets/native-charts/core/types.d.ts +25 -0
  62. package/dist/lib/components/ui/widgets/native-charts/hooks/chart-model-types.d.ts +18 -1
  63. package/dist/lib/components/ui/widgets/native-charts/hooks/model-parts.d.ts +3 -0
  64. package/dist/lib/components/ui/widgets/native-charts/hooks/model-series.d.ts +3 -0
  65. package/dist/lib/components/ui/widgets/native-charts/hooks/model-tones.d.ts +19 -0
  66. package/dist/lib/components/ui/widgets/native-charts/hooks/use-chart-model.d.ts +3 -3
  67. package/dist/lib/components/ui/widgets/native-charts/index.d.ts +1 -1
  68. package/dist/lib/components/ui/widgets/native-charts/line-chart/line-chart-types.d.ts +26 -1
  69. package/dist/lib/components/ui/widgets/native-charts/line-chart/line-geometry.d.ts +4 -0
  70. package/dist/lib/components/ui/widgets/native-charts/line-chart/partials/reference-marks.d.ts +17 -0
  71. package/dist/lib/components/ui/widgets/native-charts/line-chart/partials/tone-points.d.ts +11 -0
  72. package/dist/lib/components/ui/widgets/native-charts/partials/chart-tooltip.d.ts +3 -0
  73. package/dist/lib/i18n/resources/en/en.d.ts +23 -0
  74. package/dist/lib/i18n/resources/en/material.json.d.ts +23 -0
  75. package/dist/lib/i18n/resources/fr/fr.d.ts +23 -0
  76. package/dist/lib/i18n/resources/fr/material.json.d.ts +23 -0
  77. package/dist/lib/i18n/resources/resources.d.ts +46 -0
  78. package/dist/lib/i18n/translator.d.ts +1 -1
  79. package/dist/lib/lib/zoned-floating.d.ts +30 -0
  80. package/dist/lib/lib/zoned-instant.d.ts +16 -0
  81. package/dist/lib/lib/zoned.d.ts +11 -4
  82. package/dist/lib.js +1 -1
  83. package/dist/main.js +21 -21
  84. package/dist/map.js +4 -4
  85. package/dist/material.css +1 -1
  86. package/dist/pdf-reader.js +1 -1
  87. package/dist/print.js +2 -2
  88. package/dist/{public-CWIpzLzO.js → public-ib0sK0Hr.js} +6 -6
  89. package/dist/{rich-code-block-C4aBv4cA.js → rich-code-block-D_PTTZWQ.js} +4 -4
  90. package/dist/{sortable-provider-0uBi0zcP.js → sortable-provider-CrS51nKB.js} +1 -1
  91. package/dist/{spinner-CuxEwO0d.js → spinner-DLd_IHev.js} +1 -1
  92. package/dist/{stored-language-D8aemZhx.js → stored-language-B5SMR-W2.js} +46 -0
  93. package/dist/theme-picker.js +2 -2
  94. package/dist/{theme-toggle-ik5nV1P5.js → theme-toggle-wJYmnwgu.js} +1 -1
  95. package/dist/{toolbar-items-C97E5HRa.js → toolbar-items-BLjrk8uU.js} +2 -2
  96. package/dist/{translate-material-B84ufMSF.js → translate-material-BYRDtSEk.js} +2 -2
  97. package/dist/{translator-Bq8UHmvu.js → translator-C-_M57ZA.js} +1 -1
  98. package/dist/{use-chat-composer-DmDcEGp4.js → use-chat-composer-DrFgIE3T.js} +12 -12
  99. package/dist/{use-heading-spy-BgG7Q47k.js → use-heading-spy-wElRpO2G.js} +1 -1
  100. package/dist/{use-material-translation-CiYhVc39.js → use-material-translation-CFF73jk5.js} +2 -2
  101. package/docs/README.md +1 -1
  102. package/docs/components/data-table-filter-and-lists.md +59 -4
  103. package/docs/components/date-and-time.md +77 -3
  104. package/docs/components/rich-widgets.md +6 -0
  105. package/docs/guides/charts.md +78 -2
  106. package/docs/guides/forms.md +2 -2
  107. package/docs/guides/i18n.md +3 -2
  108. package/docs/roadmap.md +7 -0
  109. package/docs/troubleshooting.md +9 -1
  110. package/lib/components/components.css +1 -0
  111. package/lib/components/ui/widgets/native-charts/native-charts-reference.css +102 -0
  112. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -1,5 +1,28 @@
1
1
  # @nxgt/material
2
2
 
3
+ ## 3.41.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#1774](https://github.com/softistx/nxgt-material/pull/1774) [`cb7d564`](https://github.com/softistx/nxgt-material/commit/cb7d564127bc457bc1060ecbfd086d5a2e3e91ba) Thanks [@SteveGT96](https://github.com/SteveGT96)! - feat(server-table): the `bulkActions` list gets an accessible name, a row maximum and focus return ([#1767](https://github.com/softistx/nxgt-material/issues/1767)). An action takes `name: (count) => string` (the button's accessible name and tooltip, e.g. "Archive 2 people"; start it with the visible label, WCAG 2.5.3; the default stays "Label n rows"), `max` with `maxNotice` (past `max` applicable rows its button gives way to a short muted notice, told politely once; default `material.server-table.bulk-max-notice`, "Select 100 rows or fewer to archive"; in the phone's More menu a disabled item whose description is the notice), and `onClick(ids, selection, rows, { trigger, focusTrigger })` so a step that opens a dialog can give the focus back to its button, or to the next bulk action, "More" or the table's "Select all" when the button is gone. New type `ServerTableBulkContext`. Additive: three-parameter handlers and lists without the new props render the same.
8
+
9
+ ## 3.40.0
10
+
11
+ ### Minor Changes
12
+
13
+ - [#1778](https://github.com/softistx/nxgt-material/pull/1778) [`c8bdd2a`](https://github.com/softistx/nxgt-material/commit/c8bdd2a7ab4f32f0923a9da170060bf4ea03bc51) Thanks [@SteveGT96](https://github.com/SteveGT96)! - feat(charts): LineChart reference bands, thresholds and point tones ([#1749](https://github.com/softistx/nxgt-material/issues/1749)). `bands` (`{ from, to, label, tone? }[]`) shade a range of the value axis behind the lines, `thresholds` (`{ value, label, tone?, dash? }[]`) draw a labelled line, and `pointTone` (`(point, series) => Tone | undefined`, with `toneLabels` for the words) rings the values that need a word. The words are carried into the tooltip, the live status (`Day 4: Reading 63 (High)`), the generated summary (the ranges and lines, how many values lie outside each band, the tone counts) and a tone column plus a list of the ranges under "View data". The value axis grows to hold the bands and lines unless `yAxis.min` / `max` pin it, then a band is clipped; zoom, scroll and resize keep them right. A toned point is a ring (never colour alone), labels hold 4.5:1 in both themes, forced colours and right-to-left labels are handled, and the markup is the same on the server. `AreaChart` takes the same props. New types `ChartBand` and `ChartThreshold`; new keys `material.charts.tone.*`, `material.charts.reference.*`, `material.charts.status-value-tone`, `material.charts.table-tone` and `material.charts.summary.{bands,thresholds,outside,tones,tone-count}` in English and French.
14
+
15
+ ## 3.39.0
16
+
17
+ ### Minor Changes
18
+
19
+ - [#1759](https://github.com/softistx/nxgt-material/pull/1759) [`a10f533`](https://github.com/softistx/nxgt-material/commit/a10f5335ab0080f0f82e71710f88d1619b925ece) Thanks [@SteveGT96](https://github.com/SteveGT96)! - feat(date-fields): `timeZone` on `DateField` and `TimeField` (and `DateFormField`, `TimeFormField`), and a time that is typed with `showTimePicker` ([#1750](https://github.com/softistx/nxgt-material/issues/1750)). `timeZone` is an IANA name (`Europe/Paris`): the segments and the picker show the value's wall clock in that zone, what is typed or picked is read in it, and `value` / `onValueChange` stay the true instant, whatever zone the browser runs in. `minDate`, `maxDate`, `disablePast`, `disableFuture`, today's mark and `disabledDays` are the zone's days. A time the clocks skip moves to the end of the gap (02:30 becomes 03:30); a time that happens twice is the first occurrence unless the value already holds the second. The zone helpers are `@nxgt/material-core/zone` ([#1763](https://github.com/softistx/nxgt-material/issues/1763)). The server renders the same wall clock whatever its own zone. Without `timeZone` nothing changes; an unknown name reads as `UTC`. `TimeFormField` with `asString` and `TimeStringField` keep the string as the wall clock and take no zone. With `showTimePicker`, `DateField` types the hours, minutes and AM / PM after the date, in the locale's clock (`hourCycle` forces one), beside the tiles; typed and picked are one value, and the field has a value once the date and the time are both complete. On a phone the time wraps under the date, and the sheet's large field takes the time too (`material.dates.type-date-time`, en and fr). **Behaviour change with `showTimePicker`:** a day picked in the calendar keeps the time of day instead of putting it back to midnight. **Note:** react-day-picker's own `timeZone` prop, which the types of `DateField` and `DateRangeField` used to let through to the calendar, is no longer accepted: `DateField`'s is ours, and `DateRangeField` takes none. `disabledDays` matchers that hold a `Date` name the days those instants fall on in the zone. A wall time the browser's own clocks skip is shown and typed as it is (the zone's wall clock is held as a floating date).
20
+
21
+ ### Patch Changes
22
+
23
+ - Updated dependencies [[`0655e48`](https://github.com/softistx/nxgt-material/commit/0655e48d2f67eb06a2c8bb8c5379fac2484f4a08)]:
24
+ - @nxgt/material-core@0.40.0
25
+
3
26
  ## 3.38.0
4
27
 
5
28
  ### Minor Changes
package/README.md CHANGED
@@ -193,7 +193,7 @@ reads `duotone.svg`, the file that exists (it used to ask for the missing
193
193
  | `@nxgt/material/components` | UI components, `*FormField` wrappers and `useCodeResolver` ([Components](#components)) |
194
194
  | `@nxgt/material/print` | PDF documents over `@react-pdf/renderer`: the `PrintDocument` page shell, the print blocks, `PrintDrawing` and the `drawing(scene)` node (a vector drawing from `@nxgt/material-core/draw` printed as vectors), and `PrintDataTable`, `PrintKeyValue` and `PrintMetric` from column definitions and plain rows; documents as plain data (`pdfDocument` and its builders, with `outline` and `conformance`); `registerPdfFont` (with the `PdfFontFaces` type) to embed a font, and the `PdfConformance` type for the PDF/A marker; a `numeric` column and `tabularNums` for figures that line up; `downloadPdf`, `openPdf`, `usePdfFile` and `pdfResponse` to get the file in one call — **its own entry, and not in the barrel above** ([printing guide](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/guides/printing.md)) |
195
195
  | `@nxgt/material/pdf-reader` | `PdfReader`, the redesigned PDF reader (header, floating page pill, rail and panel; `embedded`, `dialog`, `page` and `fullscreen` modes; single page and two-page layouts; `look="expressive"` by default, `"classic"` to opt out, type `PdfReaderLook`) and `configurePdfReader` for pdf.js's worker and assets. **Its own entry, browser-only** (pdf.js loads on first render); also exported as `PdfReader` from `/components` since 3.0 ([guide](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/guides/pdf-reader.md)) |
196
- | `@nxgt/material/charts` | Native SVG charts (d3-scale and d3-shape for the maths only) with keyboard point navigation, a screen-reader summary, a "View data" table and `patterns`: `LineChart` and `AreaChart` (`LineChartProps`, `AreaChartProps`, `ChartCurve`), `BarChart` (`BarChartProps`, `BarLayout`, `BarOrientation`), `PieChart` (`PieChartProps`), `DonutChart` (`DonutChartProps`), `Gauge` (`GaugeProps`, `GaugeSize`), `RadialBarChart` (`RadialBarChartProps`), `FunnelChart` (`FunnelChartProps`), `HeatmapChart` (`HeatmapChartProps`, `HeatColumn`), `RadarChart` (`RadarChartProps`), `ScatterChart` (`ScatterChartProps`, `ScatterSeries`, `ScatterPoint`), `ComboChart` (`ComboChartProps`, `ComboSeries`: bars, areas and lines, each on a left or a right axis), `zoom` (a mini overview with a window and two slider handles that picks the rows shown; `range`, `defaultRange`, `onRangeChange`) and `scroll` (a dense plot scrolls sideways on a phone, the value axis pinned) on the line, area, bar and combo charts (`ChartRangeProps`, `ChartZoomOptions`, `ChartScrollOptions`, `ChartRange`), `onPointClick` on every chart but `Gauge`, `palette` (`'soft'`: the soft palette, or `data-chart-palette="soft"` on an ancestor; `ChartPalette`) on every chart, and the shared types (`ChartSlice`, `ChartRow`, `ChartValue`, `ChartColor`, `ChartShape`, `ChartSeries`, `ChartAxis`, `ChartXAxis`, `ChartPoint`, `ChartBaseProps`). `categoryLabel` names the "View data" table's category column: on Line, Area, Bar and Combo it defaults to the x axis label, on Radar and Heatmap it is always "Category" unless set. **Its own entry, client-only** (import it from a `'use client'` file), not in the barrel above; replaces the Nivo charts (removed in 3.0) of `/components` ([guide](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/guides/charts.md)) |
196
+ | `@nxgt/material/charts` | Native SVG charts (d3-scale and d3-shape for the maths only) with keyboard point navigation, a screen-reader summary, a "View data" table and `patterns`: `LineChart` and `AreaChart` (`LineChartProps`, `AreaChartProps`, `ChartCurve`), `BarChart` (`BarChartProps`, `BarLayout`, `BarOrientation`), `PieChart` (`PieChartProps`), `DonutChart` (`DonutChartProps`), `Gauge` (`GaugeProps`, `GaugeSize`), `RadialBarChart` (`RadialBarChartProps`), `FunnelChart` (`FunnelChartProps`), `HeatmapChart` (`HeatmapChartProps`, `HeatColumn`), `RadarChart` (`RadarChartProps`), `ScatterChart` (`ScatterChartProps`, `ScatterSeries`, `ScatterPoint`), `ComboChart` (`ComboChartProps`, `ComboSeries`: bars, areas and lines, each on a left or a right axis), `zoom` (a mini overview with a window and two slider handles that picks the rows shown; `range`, `defaultRange`, `onRangeChange`) and `scroll` (a dense plot scrolls sideways on a phone, the value axis pinned) on the line, area, bar and combo charts (`ChartRangeProps`, `ChartZoomOptions`, `ChartScrollOptions`, `ChartRange`), `bands` (shaded ranges), `thresholds` (labelled lines) and `pointTone` (a ringed point with its word, `toneLabels`) on the line and area charts, read against the value axis and carried into the tooltip, the summary and the "View data" table (`ChartBand`, `ChartThreshold`), `onPointClick` on every chart but `Gauge`, `palette` (`'soft'`: the soft palette, or `data-chart-palette="soft"` on an ancestor; `ChartPalette`) on every chart, and the shared types (`ChartSlice`, `ChartRow`, `ChartValue`, `ChartColor`, `ChartShape`, `ChartSeries`, `ChartAxis`, `ChartXAxis`, `ChartPoint`, `ChartBaseProps`). `categoryLabel` names the "View data" table's category column: on Line, Area, Bar and Combo it defaults to the x axis label, on Radar and Heatmap it is always "Category" unless set. **Its own entry, client-only** (import it from a `'use client'` file), not in the barrel above; replaces the Nivo charts (removed in 3.0) of `/components` ([guide](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/guides/charts.md)) |
197
197
  | `@nxgt/material/draw` | Vector drawing: a scene of plain data or JSX primitives drawn as accessible, themeable SVG that is safe under a strict CSP and identical on the server and in the browser. `Drawing` (`DrawingProps`, `NodeHandlers`; `scene` or `w`/`h` with children; a `title` (with an optional long `description`, written as a `<desc>`) or `decorative`, enforced by the type), the primitives `Rect`, `Ellipse`, `Circle`, `Line`, `Polygon`, `Path` (takes `node`), `Text`, `Group` and `Image`, and the builders of `@nxgt/material-core/draw` re-exported by name (`scene`, `rect`, `ellipse`, `circle`, `line`, `polygon`, `path`, `text`, `group`, `image`, `linear`, `radial`, `pattern`, `hatch`, `tone`, `toSVG`, `compileScene`, `ROLES`, `DRAW_PALETTE`, and the types `Scene`, `DrawNode`, `Paint`, `Role`, `ToneRef`), plus Material 3 Expressive's shapes (`shape`, `morph`, `SHAPE_NAMES`, `toCubics`) and the layout helpers (`bbox`, `stack`, `grid`, `align`, `distribute`) re-exported by name. Colours are theme roles (`primary-container`, `on-surface`...) mapped to classes in `styles.css`, so import it. Interactive nodes are focusable `button`s with a focus ring; wrapped text is re-measured by the browser once mounted. **Its own entry, client-only** (render `Drawing` from a `'use client'` file; the builders and `toSVG` run anywhere), not in the barrel above ([drawing guide](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/guides/drawing.md)) |
198
198
  | `@nxgt/material/draw/sketch` | The sketchy, hand-drawn style for a drawing: `Sketch` (`seed`, `roughness`, `bowing`, `fill`: `hachure`, `cross-hatch`, `solid` or `none`, `hachureAngle`, `hachureGap`, `strokeWidth`) wraps a `Drawing`, or primitives inside one, and draws shapes as double wobbling strokes with hatched fills; `sketch(sceneOrNode, options)` does it to plain data for `toSVG`. Seeded, so the server and the client draw the same lines; ids, labels, focus rings and events keep working. **Its own entry, client-only** (render `Sketch` from a `'use client'` file), not in the barrel above ([drawing guide](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/guides/drawing.md#sketch)) |
199
199
  | `@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)) |
@@ -427,7 +427,7 @@ Each area a consumer starts from has its own page under `docs/guides/`.
427
427
  | [Theming](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/guides/theming.md) | changing colours, radius or fonts, motion and corner tokens, the page ground (`--ground`, `bg-ground`: its light and dark values and the opt-out), dark mode, tones (the `data-tone` channel, app tones and the calm zone `data-density="calm"`), touch targets, using the compiled CSS without Tailwind |
428
428
  | [Printing](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/guides/printing.md) | producing PDFs with `@nxgt/material/print` and getting the file in one call (download, new tab, preview, server `Response`) — its own entry since 2.0.0, with optional peers, a bundling trap on SSR servers, and the `next.config.ts` a Next.js route handler (and `output: 'standalone'`) needs |
429
429
  | [Maps](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/guides/maps.md) | using `@nxgt/material/map` — browser-only, optional leaflet peers, `map.css` |
430
- | [Charts](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/guides/charts.md) | drawing charts with `@nxgt/material/charts` (client-only): the twelve charts, shared props, legend, View data, `onPointClick`, zoom and phone scroll, right-to-left pages, keyboard and accessibility, theming the `--chart-*` tokens, and migrating from the Nivo charts, removed in 3.0 |
430
+ | [Charts](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/guides/charts.md) | drawing charts with `@nxgt/material/charts` (client-only): the twelve charts, shared props, legend, View data, `onPointClick`, reference bands, thresholds and point tones on the line chart, zoom and phone scroll, right-to-left pages, keyboard and accessibility, theming the `--chart-*` tokens, and migrating from the Nivo charts, removed in 3.0 |
431
431
  | [Drawing](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/guides/drawing.md) | drawing diagrams, badges and illustrations from code with `@nxgt/material/draw`: a scene or JSX, theme roles and tones, strict CSP, accessibility, events, sketch, animation, PNG, PDF and e-mail |
432
432
  | [Backgrounds](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/guides/backgrounds.md) | tones, intensity, the opt-in `backgrounds.css` and per-preset files, custom tone tokens, motion and CSP |
433
433
  | [Illustrations](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/guides/illustrations.md) | `@nxgt/material/illustrations`: the twelve scenes and the health and education sets, icons from your sprites, `EmptyState` / `ErrorState` / `DataTable` with `illustration`, `IllustrationDefaults` for an app, sizes, motion and CSP |
@@ -630,7 +630,7 @@ Not components: what the stylesheet gives any element.
630
630
  | Preview | Component | What it does | @nxgt/material-vue |
631
631
  | --- | --- | --- | --- |
632
632
  | <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/data-table-filter-lists-datatable.webp" width="120" alt="DataTable"> | [`DataTable`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/data-table-filter-and-lists.md#datatable), `DataTableColumnHeader`, `DataTablePagination`, `DataTableServerFooter`, `DataTableViewOptions` | TanStack Table v9 with sorting, filtering, selection, expandable rows, pagination or load-more, column visibility, skeleton rows while loading and your own empty state — or one server page at a time, with controlled sorting and selection, cursor Previous / Next links and row links. On a phone it keeps its header row and scrolls sideways in a keyboard-reachable region; the page does not. Or cards and tiles instead of the table (`layout`, `renderCard`, `renderTile`), and `layout={{ phone: 'tiles', wide: 'table' }}` for tiles on a phone ([cards and tiles guide](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/guides/cards-and-tiles.md)). Long lists render only the rows in view (`virtual`). | `DataTable`, `DataTableColumnHeader`, `DataTablePagination`, `DataTableServerFooter`, `DataTableViewOptions` |
633
- | <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/data-table-filter-lists-servertable.webp" width="120" alt="ServerTable"> | [`ServerTable`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/data-table-filter-and-lists.md#servertable), `createSorting`, `tableFilters`, `defineFilterModel`, `parseFilterQuery`, `serializeFilterQuery`, `paramsFromQuery`, `serverPagination`… | A server-mode `DataTable` driven by the URL's search params, for any router: the Filter in its top band with the page's title (optional), description and actions, the sort, forward cursor paging, a selection reset on a new query, the empty page (a scene and an action for "nothing yet", the filters as removable chips), a compact band (`bandDensity`), icon-only Previous / Next (`pageControls`, 44px targets on a touch screen, focus kept while a page loads), actions that stay on the search's row on a phone (`bandActions`), a bulk bar that reserves no row until a selection, bulk actions with `appliesTo` that count and run only the selected rows they apply to (hidden at zero), a `filterRef` to focus the Filter, a page past the last (rows deleted) that says so and links back to the first, an error state with Retry for a failed fetch (`error`, `onRetry`), and one count announced. | `ServerTable`, `createSorting`, `tableFilters`, `serverPagination` |
633
+ | <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/data-table-filter-lists-servertable.webp" width="120" alt="ServerTable"> | [`ServerTable`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/data-table-filter-and-lists.md#servertable), `createSorting`, `tableFilters`, `defineFilterModel`, `parseFilterQuery`, `serializeFilterQuery`, `paramsFromQuery`, `serverPagination`… | A server-mode `DataTable` driven by the URL's search params, for any router: the Filter in its top band with the page's title (optional), description and actions, the sort, forward cursor paging, a selection reset on a new query, the empty page (a scene and an action for "nothing yet", the filters as removable chips), a compact band (`bandDensity`), icon-only Previous / Next (`pageControls`, 44px targets on a touch screen, focus kept while a page loads), actions that stay on the search's row on a phone (`bandActions`), a bulk bar that reserves no row until a selection, bulk actions with `appliesTo` that count and run only the selected rows they apply to (hidden at zero), an accessible `name`, a `max` rows with a notice, and `focusTrigger()` to give the focus back after a dialog, a `filterRef` to focus the Filter, a page past the last (rows deleted) that says so and links back to the first, an error state with Retry for a failed fetch (`error`, `onRetry`), and one count announced. | `ServerTable`, `createSorting`, `tableFilters`, `serverPagination` |
634
634
  | <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/data-table-filter-lists-rowmenu.webp" width="120" alt="RowMenu"> | [`RowMenu`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/data-table-filter-and-lists.md#rowmenu), `RowMenuTrigger`, `rowMenuColumn` | A row's "..." button named after its row ("Actions for Ada"; 44px on touch, 36px with a mouse from `md`), its menu aligned to the end with the destructive item last and 44px items on touch, and a column helper for `DataTable` and `ServerTable` under a hidden but named "Actions" header; focus returns to the button, also from a dialog an item opened. | — |
635
635
  | <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/data-table-filter-lists-listempty.webp" width="120" alt="ListEmpty"> | [`ListEmpty`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/data-table-filter-and-lists.md#listempty) | A list's empty page: nothing yet (a title, or a scene, a line and an action), or nothing matches with what narrows it and a way out (a button or a link); its title is an `h2` (`headingLevel`). | `ListEmpty` |
636
636
  | <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/data-table-filter-lists-pagefooter.webp" width="120" alt="PageFooter"> | [`PageFooter`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/data-table-filter-and-lists.md#pagefooter) | The page footer of a feed that is not a table (a list of cards, a news feed) under a `FilterBar`: the range ("21–40 of 134") and Previous / Next as real links built from the URL's cursor trail (`pageInfo`, `totalCount`, `params`), the same footer `ServerTable` draws, icon-only with `pageControls="icon"` (44px targets on a touch screen); an end with no page is a disabled button, `aria-disabled`. | `PageFooter` |
@@ -1,5 +1,5 @@
1
- import { i as e, r as t, t as n } from "./stored-language-D8aemZhx.js";
2
- import { r } from "./translator-Bq8UHmvu.js";
1
+ import { i as e, r as t, t as n } from "./stored-language-B5SMR-W2.js";
2
+ import { r } from "./translator-C-_M57ZA.js";
3
3
  import { t as i } from "./_baseIsEqual-C6ksIHya.js";
4
4
  import { useMemo as a } from "react";
5
5
  import { asyncThunkCreator as o, buildCreateSlice as s } from "@reduxjs/toolkit";
@@ -2,7 +2,7 @@ import { t as e } from "./utils-BLfntITJ.js";
2
2
  import { n as t, t as n } from "./dist-DVRQkaTK.js";
3
3
  import { o as r, t as i } from "./tooltip-CkttDIab.js";
4
4
  import { t as a } from "./is-production-GLw59WU8.js";
5
- import { t as o } from "./spinner-CuxEwO0d.js";
5
+ import { t as o } from "./spinner-DLd_IHev.js";
6
6
  import { a as s, i as c, r as l, t as u } from "./button-tones-BwuVvAmd.js";
7
7
  import { t as d } from "./button-group-context-CaP0X5p_.js";
8
8
  import { t as f } from "./has-text-content-Ds2dkHX_.js";