@nxgt/material 3.64.0 → 3.66.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 +46 -0
- package/README.md +4 -1
- package/dist/{alert-dialog-RHm6WtQj.js → alert-dialog-BgQDxcYh.js} +1 -1
- package/dist/{async-slice-DmX59NyA.js → async-slice-BCZyWgGr.js} +48 -25
- package/dist/{background-qdnet2A5.js → background-D1gC4m2R.js} +1 -1
- package/dist/backgrounds.js +1 -1
- package/dist/{button-DfS_amfQ.js → button-2de_lrix.js} +1 -1
- package/dist/charts.js +818 -807
- package/dist/{chip-Cbndukko.js → chip-Cs0uEjpu.js} +2 -2
- package/dist/{code-editor-B0tN8Ha_.js → code-editor-BYhBAfcc.js} +403 -393
- package/dist/code-editor.js +5 -5
- package/dist/{code-language-items-andgHKrM.js → code-language-items-xhmbF6wA.js} +2 -2
- package/dist/components/components.css +2 -0
- package/dist/components/ui/display/chip/chip-soft.css +19 -5
- package/dist/components/ui/layout/app-shell/activity-backdrop.css +4 -3
- package/dist/components/ui/primitives/tabs/tabs-nav-forced.css +27 -0
- package/dist/components/ui/primitives/toggle-group/toggle-group-segmented.css +10 -2
- package/dist/components/ui/primitives/toggle-group/toggle-group.css +5 -1
- package/dist/{components-2kTVPsMg.js → components-DYiyCe6v.js} +16922 -16679
- package/dist/components.js +28 -28
- package/dist/{compose-refs-DZ0iIVF-.js → compose-refs-G4J4kaUA.js} +1 -1
- package/dist/{dialog-Bd7Hid2L.js → dialog-Co5oksU1.js} +4 -4
- package/dist/dnd.js +2 -2
- package/dist/{dropdown-menu-_SyVmSuy.js → dropdown-menu-DdzyvN76.js} +1 -1
- package/dist/editor.js +365 -365
- package/dist/{empty-state-D-2ZMXXJ.js → empty-state-CQ0CV0kA.js} +2 -2
- package/dist/{field-blur-DyOByjzw.js → field-blur-B2y-bNYi.js} +1 -1
- package/dist/{field-blur-context-DPe5_Nv5.js → field-blur-context-BZtwcPUV.js} +1 -1
- package/dist/{hooks-a7_exKWS.js → hooks-DjuYsY-j.js} +2 -2
- package/dist/hooks.js +2 -2
- package/dist/{hover-card-D_0smKBQ.js → hover-card-BeBVy6tB.js} +1 -1
- package/dist/i18n.js +3 -3
- package/dist/{icon-badge-CBCU3ySF.js → icon-badge-DbYsbzwZ.js} +3 -3
- package/dist/{icon-button-hKHsWTAt.js → icon-button-Co6ttdv1.js} +1 -1
- package/dist/lib/components/ui/actions/index.d.ts +1 -0
- package/dist/lib/components/ui/actions/link/link.d.ts +1 -19
- package/dist/lib/components/ui/actions/share-button/index.d.ts +3 -0
- package/dist/lib/components/ui/actions/share-button/share-button.d.ts +17 -0
- package/dist/lib/components/ui/actions/share-button/share-or-copy.d.ts +17 -0
- package/dist/lib/components/ui/collections/dnd/index.d.ts +1 -1
- package/dist/lib/components/ui/collections/filter/use-filter-field-config.d.ts +1 -0
- package/dist/lib/components/ui/collections/server-table/past-end.d.ts +3 -0
- package/dist/lib/components/ui/collections/server-table/types.d.ts +2 -2
- package/dist/lib/components/ui/collections/server-table/use-table-answer.d.ts +1 -1
- package/dist/lib/components/ui/display/enrolment-card/use-enrolment-card-labels.d.ts +1 -1
- package/dist/lib/components/ui/display/recovery-codes/use-recovery-codes-labels.d.ts +1 -1
- package/dist/lib/components/ui/display/recovery-codes-status/use-recovery-codes-status-labels.d.ts +1 -1
- package/dist/lib/components/ui/display/stat-card/partials/stat-card-link-parts.d.ts +7 -0
- package/dist/lib/components/ui/display/stat-card/stat-card.d.ts +6 -1
- package/dist/lib/components/ui/display/stat-card/types.d.ts +14 -0
- package/dist/lib/components/ui/feedback/step-up-dialog/use-step-up-labels.d.ts +1 -1
- package/dist/lib/components/ui/fields/contacts/placeholders.d.ts +1 -1
- package/dist/lib/components/ui/fields/number-field/number-control.d.ts +4 -1
- package/dist/lib/components/ui/fields/number-field/number-stepper.d.ts +5 -0
- package/dist/lib/components/ui/fields/verification-code/use-verification-labels.d.ts +1 -1
- package/dist/lib/components/ui/layout/app-shell/route-transition.d.ts +1 -1
- package/dist/lib/components/ui/primitives/link/link-component-provider.d.ts +1 -1
- package/dist/lib/components/ui/primitives/link/nav-current.d.ts +22 -0
- package/dist/lib/components/ui/primitives/link/router-link.d.ts +25 -0
- package/dist/lib/components/ui/primitives/tabs/index.d.ts +2 -0
- package/dist/lib/components/ui/primitives/tabs/internal.d.ts +2 -0
- package/dist/lib/components/ui/primitives/tabs/partials/tabs-nav-link.d.ts +22 -0
- package/dist/lib/components/ui/primitives/tabs/tab-param-url.d.ts +53 -0
- package/dist/lib/components/ui/primitives/tabs/tabs-nav.d.ts +22 -0
- package/dist/lib/components/ui/primitives/tabs/tabs-selectors.d.ts +8 -0
- package/dist/lib/components/ui/primitives/tabs/use-tab-param.d.ts +35 -0
- package/dist/lib/components/ui/primitives/tabs/use-tabs-overflow.d.ts +4 -1
- package/dist/lib/components/ui/primitives/toggle-group/index.d.ts +1 -0
- package/dist/lib/components/ui/primitives/toggle-group/segmented-nav-item.d.ts +20 -0
- package/dist/lib/components/ui/primitives/toggle-group/segmented-nav.d.ts +22 -0
- package/dist/lib/components/ui/primitives/toggle-group/toggle-group.d.ts +4 -3
- package/dist/lib/components/ui/widgets/code-editor/code-editor-field.d.ts +7 -6
- package/dist/lib/components/ui/widgets/code-editor/code-editor-types.d.ts +6 -0
- package/dist/lib/components/ui/widgets/code-editor/use-code-editor-instance.d.ts +12 -1
- package/dist/lib/components/ui/widgets/native-charts/core/reference-geometry.d.ts +16 -2
- package/dist/lib/i18n/resources/en/en.d.ts +6 -0
- package/dist/lib/i18n/resources/en/material.json.d.ts +7 -1
- package/dist/lib/i18n/resources/fr/fr.d.ts +6 -0
- package/dist/lib/i18n/resources/fr/material.json.d.ts +7 -1
- package/dist/lib/i18n/resources/resources.d.ts +12 -0
- package/dist/lib/i18n/translator.d.ts +1 -1
- package/dist/lib.js +31 -54
- package/dist/main.js +42 -42
- package/dist/map.js +8 -8
- package/dist/material.css +1 -1
- package/dist/pdf-reader.js +1 -1
- package/dist/print.js +1 -1
- package/dist/{public-D8JGp3PH.js → public-AXwv1h3v.js} +10 -10
- package/dist/{rich-code-block-0R3bidsM.js → rich-code-block-qSvkA5rI.js} +5 -5
- package/dist/{sortable-provider-B75v53sB.js → sortable-provider-DPk-RVEU.js} +3 -3
- package/dist/{spinner-CAnpF3RK.js → spinner-PdSk7zEs.js} +1 -1
- package/dist/theme-picker.js +2 -2
- package/dist/{theme-toggle-pQ5F602V.js → theme-toggle-CZQckLDd.js} +2 -2
- package/dist/{toggle-group-BkH23Jk4.js → toggle-group-DXXlqid2.js} +1 -1
- package/dist/{toolbar-items-_ezD5B0r.js → toolbar-items-BmNYNaRB.js} +3 -3
- package/dist/{translate-material-CvZK8_S6.js → translate-material-BlCQ6AW9.js} +1 -1
- package/dist/{translator-Caf-d96e.js → translator-ChpeKCO3.js} +10 -2
- package/dist/{typography-CEK19bj8.js → typography-C4JSRr2B.js} +1 -1
- package/dist/{use-chat-composer-Dpvi_-CR.js → use-chat-composer-OUa9akfM.js} +1725 -1719
- package/dist/{use-heading-spy-mmcyEGmm.js → use-heading-spy-K-HUp4o_.js} +4 -4
- package/dist/{use-material-translation-C_1cWRzW.js → use-material-translation-DkE9J5NE.js} +1 -1
- package/dist/{use-return-focus-1ZIchrBM.js → use-return-focus-KypnR7vv.js} +1 -1
- package/docs/components/README.md +3 -1
- package/docs/components/buttons-and-actions.md +30 -1
- package/docs/components/data-display.md +14 -1
- package/docs/components/data-table-filter-and-lists.md +16 -3
- package/docs/components/form-fields.md +9 -1
- package/docs/components/navigation-and-layout.md +9 -5
- package/docs/components/primitives.md +209 -0
- package/docs/components/rich-widgets.md +1 -0
- package/docs/guides/charts.md +1 -1
- package/docs/guides/code-editor.md +14 -0
- package/docs/guides/i18n.md +3 -1
- package/docs/previews/buttons-actions-sharebutton.webp +0 -0
- package/docs/previews/primitives-segmentednav.webp +0 -0
- package/docs/previews/primitives-tabsnav.webp +0 -0
- package/docs/roadmap.md +2 -1
- package/docs/troubleshooting.md +35 -7
- package/lib/components/components.css +2 -0
- package/lib/components/ui/display/chip/chip-soft.css +19 -5
- package/lib/components/ui/layout/app-shell/activity-backdrop.css +4 -3
- package/lib/components/ui/primitives/tabs/tabs-nav-forced.css +27 -0
- package/lib/components/ui/primitives/toggle-group/toggle-group-segmented.css +10 -2
- package/lib/components/ui/primitives/toggle-group/toggle-group.css +5 -1
- package/package.json +2 -2
- /package/dist/lib/{components/ui/collections/dnd → lib}/compose-refs.d.ts +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,51 @@
|
|
|
1
1
|
# @nxgt/material
|
|
2
2
|
|
|
3
|
+
## 3.66.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#2062](https://github.com/softistx/nxgt-material/pull/2062) [`6d1e6f6`](https://github.com/softistx/nxgt-material/commit/6d1e6f631b738f5e3c7539e2d54b73e36cbaa2e5) Thanks [@SteveGT96](https://github.com/SteveGT96)! - `NumberField` and `NumberFormField`: the +/− buttons are named after their field ("Increase Guests", "Diminuer Invités"), through the new `material.number-field.increase-named` and `decrease-named` keys (en, fr), so a form with several number fields no longer gives a screen reader identical buttons ([#1928](https://github.com/softistx/nxgt-material/issues/1928)). The name is the plain-text `label`, else `aria-label`; a field with neither keeps "Increase" / "Decrease". A test that looks the buttons up by the exact name `Increase` now needs `/^Increase/` or the full name. The Vue twin is the `vue` issue [#2060](https://github.com/softistx/nxgt-material/issues/2060).
|
|
8
|
+
|
|
9
|
+
- [#2078](https://github.com/softistx/nxgt-material/pull/2078) [`1c6ca26`](https://github.com/softistx/nxgt-material/commit/1c6ca2674d0cea09a3f728b041cae42d0c1f9ccd) Thanks [@SteveGT96](https://github.com/SteveGT96)! - Add `SegmentedNav` and `SegmentedNavItem`, segmented route links: the segmented `ToggleGroup` look as a labelled `nav` of links, the current one marked `aria-current="page"` from `value` or `current` and drawn as the selected pill. Tab moves from link to link; on a phone the nav scrolls inside itself with an edge fade. The links render through React Router's `Link` or the `LinkComponentProvider`, with `preventScrollReset` on by default. The segmented and forced-colours `ToggleGroup` styles also follow `aria-current="page"`.
|
|
10
|
+
|
|
11
|
+
- [#2070](https://github.com/softistx/nxgt-material/pull/2070) [`59a0cdc`](https://github.com/softistx/nxgt-material/commit/59a0cdc8642bdca240f3483f743e808a9d2a747b) Thanks [@SteveGT96](https://github.com/SteveGT96)! - `ShareButton` (Buttons & actions) shares a link, text or title (`url`, `text`, `title`) through `navigator.share` when the browser has it (and `canShare` accepts the data), does nothing when the user closes the sheet (`AbortError`), and otherwise copies the link with `CopyButton`'s "Copied" / "Copy failed" announcement. The accessible name stays "Share" (`SHARE_BUTTON_LABEL`, or `label`) and `onShare` reports `'shared'`, `'cancelled'`, `'copied'` or `'failed'`. `navigator` is read on click, so it server-renders. New text `material.share.share`, in English and French. Additive; React only for now. Fixes [#1945](https://github.com/softistx/nxgt-material/issues/1945).
|
|
12
|
+
|
|
13
|
+
- [#2073](https://github.com/softistx/nxgt-material/pull/2073) [`76c8eac`](https://github.com/softistx/nxgt-material/commit/76c8eac2c26fb38e47e43e317498b3c4a393b4d8) Thanks [@SteveGT96](https://github.com/SteveGT96)! - `StatCard` takes `href` (and `linkComponent`, like `LinkButton`; `LinkComponentProvider` applies too): the whole card becomes one link with a trailing chevron (a link without hover, on a phone), the card's hover border and focus-visible ring, named by its label and value ([#2072](https://github.com/softistx/nxgt-material/issues/2072)).
|
|
14
|
+
|
|
15
|
+
- [#2078](https://github.com/softistx/nxgt-material/pull/2078) [`1c6ca26`](https://github.com/softistx/nxgt-material/commit/1c6ca2674d0cea09a3f728b041cae42d0c1f9ccd) Thanks [@SteveGT96](https://github.com/SteveGT96)! - Add `useTabParam`, `skipTabChange` and `tabIds` for route tabs kept in the URL. `useTabParam({ values })` reads `values` as literal types and returns the current `value` (an unknown param falls back to the default) and `hrefFor(tab)`, a `to` for `TabsNavLink` / `SegmentedNavItem` that keeps the other params, drops the hash (`keepHash` keeps it, since `ScrollRestoration` jumps to a hash) and writes no param for the default tab (`explicitDefault` writes it out). `skipTabChange()` is a `shouldRevalidate` that skips the loaders when only the tab param changed. `tabIds(value, prefix = 'tab')` returns the stable `<prefix>-<value>` / `<prefix>-panel-<value>` ids for the tab and its panel, for tests; the prefix keeps two tab sets on one page apart.
|
|
16
|
+
|
|
17
|
+
- [#2078](https://github.com/softistx/nxgt-material/pull/2078) [`1c6ca26`](https://github.com/softistx/nxgt-material/commit/1c6ca2674d0cea09a3f728b041cae42d0c1f9ccd) Thanks [@SteveGT96](https://github.com/SteveGT96)! - Add `TabsNav` and `TabsNavLink`, route tabs as links: a labelled `nav` of links in the `Tabs` look (`underline` or `segmented`), the current one marked `aria-current="page"` from `value` or `current`, with the sliding indicator and the phone scroll cue. The links render through React Router's `Link` or the `LinkComponentProvider`, with `preventScrollReset` on by default. The current link stays marked in forced colours, links keep a 44px target on a coarse pointer, and inside an `ActivityLayout` with a `backdrop` the strip is a frosted band like `Tabs`.
|
|
18
|
+
|
|
19
|
+
### Patch Changes
|
|
20
|
+
|
|
21
|
+
- [#2067](https://github.com/softistx/nxgt-material/pull/2067) [`b60e637`](https://github.com/softistx/nxgt-material/commit/b60e637ce3d9b94e84b1de570281582443628309) Thanks [@SteveGT96](https://github.com/SteveGT96)! - Internal: the label hooks reuse `cleanObject` instead of six local copies ([#1941](https://github.com/softistx/nxgt-material/issues/1941)).
|
|
22
|
+
|
|
23
|
+
## 3.65.0
|
|
24
|
+
|
|
25
|
+
### Minor Changes
|
|
26
|
+
|
|
27
|
+
- [#2052](https://github.com/softistx/nxgt-material/pull/2052) [`7b3664b`](https://github.com/softistx/nxgt-material/commit/7b3664bf3f2e4493bec9cf54a6ed1f553aa76a5c) Thanks [@SteveGT96](https://github.com/SteveGT96)! - `ServerTable`'s `totalCount` is optional, for a cursor list whose API gives no total ([#1561](https://github.com/softistx/nxgt-material/issues/1561)). Without it the paging footer is Previous / Next from `pageInfo` and the cursor trail, with no "x of y"; with `footer="load-more"` the footer says "N shown" while a next page exists, never a made-up "N of N"; the live region (and the Filter's count) says the rows on the page. With a total nothing changes.
|
|
28
|
+
|
|
29
|
+
### Patch Changes
|
|
30
|
+
|
|
31
|
+
- [#2057](https://github.com/softistx/nxgt-material/pull/2057) [`2785fa6`](https://github.com/softistx/nxgt-material/commit/2785fa6ec487855b2b1e1e846e8b383c5d834c77) Thanks [@SteveGT96](https://github.com/SteveGT96)! - A `LineChart` (and `AreaChart`) threshold's label no longer covers a data point or its marker: when a series' point under the label's width sits on it above the line, the label moves under the line (and the other way at the top of the plot), and stays above the line otherwise The label under a line at the top of the plot sits 2 px lower ([#2051](https://github.com/softistx/nxgt-material/issues/2051)).
|
|
32
|
+
|
|
33
|
+
- [#2048](https://github.com/softistx/nxgt-material/pull/2048) [`01c663e`](https://github.com/softistx/nxgt-material/commit/01c663e751199831b8bcde5055a02749f4e4895e) Thanks [@SteveGT96](https://github.com/SteveGT96)! - A selected soft `Chip` (the chips of `ChipGroupField`) stands out from an unselected one: in dark mode its fill is mixed from `--primary-text` (56 %, 58 % on hover) with a white label, 3:1 or more over the surface and 4.5:1 or more for the label in all 14 themes, instead of a 42 % tint of the deep `--primary` (1.3:1); in light mode the tint goes from 12 % to 20 % (25 % on hover). The ring and check are unchanged ([#2044](https://github.com/softistx/nxgt-material/issues/2044)).
|
|
34
|
+
|
|
35
|
+
- [#2041](https://github.com/softistx/nxgt-material/pull/2041) [`2000933`](https://github.com/softistx/nxgt-material/commit/200093334d8d2ba7bd32634f115beb64fba8b362) Thanks [@SteveGT96](https://github.com/SteveGT96)! - `CodeEditor` and `CodeEditorFormField` take `aria-describedby`, set on Monaco's input before the id of the field's own helper text, so `QuestionCard`'s `QuestionCodeField.describedBy` can be applied ([#2039](https://github.com/softistx/nxgt-material/issues/2039)).
|
|
36
|
+
|
|
37
|
+
- [#2046](https://github.com/softistx/nxgt-material/pull/2046) [`2d855de`](https://github.com/softistx/nxgt-material/commit/2d855dec5e3cb15ed559dd79fa3a179f4a18b308) Thanks [@SteveGT96](https://github.com/SteveGT96)! - The inline chip group of a `ServerTable` or `FilterBar` filter field (`inline: true`, `chips-single` / `chips-multiple`) is described, through `aria-describedby` on visually hidden text, by `material.filter.inline-clear-hint` ("Pressing a selected chip removes it from the filter"), since it has no "All" chip. Applications can drop their own hint ([#2043](https://github.com/softistx/nxgt-material/issues/2043)).
|
|
38
|
+
|
|
39
|
+
- [#2037](https://github.com/softistx/nxgt-material/pull/2037) [`32102ff`](https://github.com/softistx/nxgt-material/commit/32102ff2b7b8652802e8b1fcb0f95db4b3b385db) Thanks [@SteveGT96](https://github.com/SteveGT96)! - Three fixes.
|
|
40
|
+
|
|
41
|
+
- `GoalCard` and `ThresholdCard` rendered their value (a heading) inside a `<p>`, invalid nesting that broke hydration; it is a `<div>` now ([#1043](https://github.com/softistx/nxgt-material/issues/1043)).
|
|
42
|
+
- `PaneLayout`: the inline pane is hidden by CSS at 648 px and narrower, so a phone no longer flashes it before the sheet replaces it after hydration; the layout root and content use `overflow-clip` instead of `overflow-hidden` ([#1568](https://github.com/softistx/nxgt-material/issues/1568)).
|
|
43
|
+
- The backdrop contrast story probe read an icon's `fill` where the library's icons paint with `currentColor`; it now reads the computed `color`, and asserts that the rail icon button is measured on its own surface ([#1388](https://github.com/softistx/nxgt-material/issues/1388)).
|
|
44
|
+
|
|
45
|
+
- [#2054](https://github.com/softistx/nxgt-material/pull/2054) [`79bb04d`](https://github.com/softistx/nxgt-material/commit/79bb04d6ed30ed6c5f312d4705420cac37c86d49) Thanks [@SteveGT96](https://github.com/SteveGT96)! - `StickyActionBar` paints `--background` only below `md`, where it is stuck to the bottom; from `md` (and with `sticky={false}`) it is inline and takes its parent's surface, so inside a `Card` it no longer shows as a dark strip ([#2050](https://github.com/softistx/nxgt-material/issues/2050)).
|
|
46
|
+
- Updated dependencies [[`adf975a`](https://github.com/softistx/nxgt-material/commit/adf975ab6cc86f6a1438b6a372e39a276841dff2)]:
|
|
47
|
+
- @nxgt/material-core@0.45.1
|
|
48
|
+
|
|
3
49
|
## 3.64.0
|
|
4
50
|
|
|
5
51
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -526,6 +526,8 @@ Not components: what the stylesheet gives any element.
|
|
|
526
526
|
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/primitives-scrollarea.webp" width="120" alt="ScrollArea"> | [`ScrollArea`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/primitives.md#scrollarea), `ScrollBar` | Scroll container with a thin custom scrollbar that matches the theme. | `ScrollArea`, `ScrollBar` |
|
|
527
527
|
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/primitives-table.webp" width="120" alt="Table"> | [`Table`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/primitives.md#table), `TableHeader`, `TableBody`, `TableFooter`, `TableRow`, `TableHead`, `TableCell`, `TableCaption`, `TableEmpty` | Styled semantic table inside a scrollable wrapper; `TableEmpty` is the full-width "nothing here" row. | `Table` (same parts) |
|
|
528
528
|
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/primitives-tabs.webp" width="120" alt="Tabs"> | [`Tabs`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/primitives.md#tabs), `TabsList`, `TabsTrigger`, `TabsContent` | Tabs whose triggers can take an icon, in two looks: `underline` (the default) and the `segmented` pill. | `Tabs` (same parts) |
|
|
529
|
+
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/primitives-tabsnav.webp" width="120" alt="TabsNav"> | [`TabsNav`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/primitives.md#tabsnav), `TabsNavLink`, `useTabParam`, `skipTabChange`, `tabIds` | Route tabs as links: a `nav` of links in the `Tabs` look, with `aria-current="page"` on the current one, the sliding indicator and the phone scroll cue; `useTabParam` keeps the tab in the URL. | no equivalent yet |
|
|
530
|
+
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/primitives-segmentednav.webp" width="120" alt="SegmentedNav"> | [`SegmentedNav`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/primitives.md#segmentednav), `SegmentedNavItem` | Segmented links: the segmented `ToggleGroup` look as a `nav` of links, with `aria-current="page"` and the pill on the current one; it scrolls inside itself on a phone. | no equivalent yet |
|
|
529
531
|
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/primitives-toggle.webp" width="120" alt="Toggle"> | [`Toggle`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/primitives.md#toggle) | Pressable on / off button: default or outlined, three sizes. | `Toggle` |
|
|
530
532
|
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/primitives-togglegroup.webp" width="120" alt="ToggleGroup"> | [`ToggleGroup`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/primitives.md#togglegroup), `ToggleGroupItem`, `ToggleGroupSeparator` | Toggle group in three looks: connected (pill morph), segmented (sliding pill), separate; sizes sm, md, lg; horizontal or vertical. | `ToggleGroup`, `ToggleGroupItem` |
|
|
531
533
|
| — | [`Activity`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/primitives.md#activity) | React `<Activity>` switched by a boolean `visible`. | `Activity` |
|
|
@@ -546,6 +548,7 @@ Not components: what the stylesheet gives any element.
|
|
|
546
548
|
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/buttons-actions-responsivebutton.webp" width="120" alt="ResponsiveButton"> | [`ResponsiveButton`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/buttons-and-actions.md#responsivebutton) | Shows its label on desktop and collapses to icon-only on mobile, keeping the label for screen readers. | `ResponsiveButton` |
|
|
547
549
|
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/buttons-actions-linkbutton.webp" width="120" alt="LinkButton"> | [`LinkButton`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/buttons-and-actions.md#linkbutton), `IconLinkButton`, `ResponsiveLinkButton` | The button styles rendered as `react-router` links. | `LinkButton`, `IconLinkButton`, `ResponsiveLinkButton` |
|
|
548
550
|
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/buttons-actions-copybutton.webp" width="120" alt="CopyButton"> | [`CopyButton`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/buttons-and-actions.md#copybutton), `CopyValue` | Copies a value to the clipboard and briefly shows a check mark. `CopyValue` displays the value next to the button. | `CopyButton`, `CopyValue` |
|
|
551
|
+
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/buttons-actions-sharebutton.webp" width="120" alt="ShareButton"> | [`ShareButton`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/buttons-and-actions.md#sharebutton) | Opens the system share sheet (`navigator.share`) and copies the link where there is none. | not yet |
|
|
549
552
|
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/buttons-actions-highlighttext.webp" width="120" alt="HighlightText"> | [`HighlightText`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/buttons-and-actions.md#highlighttext) | Marks case-insensitive matches of a query inside a string (`splitMatch`). | `HighlightText` |
|
|
550
553
|
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/buttons-actions-loadmorebutton.webp" width="120" alt="LoadMoreButton"> | [`LoadMoreButton`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/buttons-and-actions.md#loadmorebutton) | "Load more" button for cursor pagination; icon-only with a tooltip unless `expanded`. | `LoadMoreButton` |
|
|
551
554
|
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/buttons-actions-loadmorefooter.webp" width="120" alt="LoadMoreFooter"> | [`LoadMoreFooter`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/buttons-and-actions.md#loadmorefooter) | Footer of a paged list: shown-of-total line, load button, and a failed state with retry. | not yet |
|
|
@@ -639,7 +642,7 @@ Not components: what the stylesheet gives any element.
|
|
|
639
642
|
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/data-display-dayseparator.webp" width="120" alt="DaySeparator"> | [`DaySeparator`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/data-display.md#dayseparator), `isNewDay`, `formatDayLabel` | "Today", "Yesterday", the weekday or the date between two hairlines, in the provider's language; sticky if asked. | — |
|
|
640
643
|
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/data-display-periodcards.webp" width="120" alt="PeriodCards"> | [`PeriodCards`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/data-display.md#periodcards) | Consecutive date ranges (terms, sprints) as cards: a "Current" marker with `aria-current`, a link over each card, as many 14rem columns as fit (one on a phone). | — |
|
|
641
644
|
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/data-display-chip.webp" width="120" alt="Chip"> | [`Chip`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/data-display.md#chip) | Compact pill in three looks (hairline, soft, tag) and a dashed add pill, with leading, avatar and trailing slots, a selected state and a dismiss button; a coloured soft chip reads as a status (the tone's container, its text colour on it). | `Chip` |
|
|
642
|
-
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/data-display-statcard.webp" width="120" alt="StatCard"> | [`StatCard`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/data-display.md#statcard) | KPI tile with value, hint, icon, toned delta and a loading skeleton; `tone` and `variant` (`outlined`, `tonal`, `filled`) colour it, `valueSize` enlarges the value, `size="sm"` makes a compact tile (it ignores `hint`, `delta` and `valueSize`); `StatCardGroup` lays compact tiles 2×2 on a phone and in a row beside, holds its width in a flex row, and `align="end"` sets them against its end edge. | `StatCard` |
|
|
645
|
+
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/data-display-statcard.webp" width="120" alt="StatCard"> | [`StatCard`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/data-display.md#statcard) | KPI tile with value, hint, icon, toned delta and a loading skeleton; `tone` and `variant` (`outlined`, `tonal`, `filled`) colour it, `valueSize` enlarges the value, `size="sm"` makes a compact tile (it ignores `hint`, `delta` and `valueSize`); `href` (and `linkComponent`) makes the whole card one link with a trailing chevron; `StatCardGroup` lays compact tiles 2×2 on a phone and in a row beside, holds its width in a flex row, and `align="end"` sets them against its end edge. | `StatCard` |
|
|
643
646
|
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/data-display-metric-cards.webp" width="120" alt="TrendCard"> | [`TrendCard`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/data-display.md#metric-cards), `GoalCard`, `BreakdownCard`, `RankCard`, `CompareCard`, `HeatweekCard`, `FunnelCard`, `GaugeCard`, `SparkbarCard`, `DeltaListCard`, `BandCard`, `LatencyCard`, `RatioCard`, `ThresholdCard`, `PaceCard`, `HistogramCard`, `Sparkline` | Dashboard tiles including compare, heat, funnel, gauge, spark bars, delta list, range band, latency, ratio, threshold, pace and labelled histogram. Container queries. A `tone` (named, or your app's) draws the accent in it; deltas and breaches stay semantic. | `TrendCard`, `GoalCard`, `BreakdownCard`, `RankCard`, `CompareCard`, `HeatweekCard`, `FunnelCard`, `GaugeCard`, `SparkbarCard`, `DeltaListCard`, `BandCard`, `LatencyCard`, `RatioCard`, `ThresholdCard`, `PaceCard`, `HistogramCard` |
|
|
644
647
|
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/data-display-card-presets.webp" width="120" alt="FeatureCard"> | [`FeatureCard`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/data-display.md#card-presets), `MediaCard`, `PricingCard`, `ProfileCard`, `QuoteCard`, `OverlayCard`, `SpotlightCard`, `CrewCard`, `SplitCard`, `TicketCard`, `NoticeCard`, `TimelineCard`, `MessageCard`, `EventCard`, `StackCard`, `LinkCard`, `AlbumCard`, `TagCard`, `ReceiptCard`, `ReviewCard`, `OfferCard`, `PlaceCard`, `FileCard`, `StatusCard`, `ScoreCard`, `ShortcutCard`, `ChecklistCard` | Card presets including overlay, ticket, inbox, event, stack, link, album, tags, receipt, review, offer, place, file, status, score, shortcuts and checklist. Container queries. | `FeatureCard`, `MediaCard`, `PricingCard`, `ProfileCard`, `QuoteCard`, `OverlayCard`, `SpotlightCard`, `CrewCard`, `SplitCard`, `TicketCard`, `NoticeCard`, `TimelineCard`, `MessageCard`, `EventCard`, `StackCard`, `LinkCard`, `AlbumCard`, `TagCard`, `ReceiptCard`, `ReviewCard`, `OfferCard`, `PlaceCard`, `FileCard`, `StatusCard`, `ScoreCard`, `ShortcutCard`, `ChecklistCard` |
|
|
645
648
|
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/data-display-statusindicator.webp" width="120" alt="StatusIndicator"> | [`StatusIndicator`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/data-display.md#statusindicator) | Coloured status dot with an optional pulse and label. | `StatusIndicator` |
|
|
@@ -3,7 +3,7 @@ import { t } from "./utils-BLfntITJ.js";
|
|
|
3
3
|
import { o as n } from "./dist-DVRQkaTK.js";
|
|
4
4
|
import { c as r, s as i } from "./dist-lmHmz_bu.js";
|
|
5
5
|
import { t as a } from "./in-dialog-Vwkyp-M5.js";
|
|
6
|
-
import { a as o, c as s, d as c, i as l, l as u, n as d, o as f, r as p, s as m, t as h, u as g } from "./use-return-focus-
|
|
6
|
+
import { a as o, c as s, d as c, i as l, l as u, n as d, o as f, r as p, s as m, t as h, u as g } from "./use-return-focus-KypnR7vv.js";
|
|
7
7
|
import { i as _ } from "./escape-owner-DpaP0lm1.js";
|
|
8
8
|
import * as v from "react";
|
|
9
9
|
import { jsx as y, jsxs as b } from "react/jsx-runtime";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { l as e, r as t, s as n, u as r } from "./translator-
|
|
1
|
+
import { l as e, r as t, s as n, u as r } from "./translator-ChpeKCO3.js";
|
|
2
2
|
import { t as i } from "./_baseIsEqual-C6ksIHya.js";
|
|
3
3
|
import { useMemo as a } from "react";
|
|
4
4
|
import { asyncThunkCreator as o, buildCreateSlice as s } from "@reduxjs/toolkit";
|
|
@@ -72,8 +72,31 @@ function x(e) {
|
|
|
72
72
|
return /^(https?:)?\/\//.test(e) || e.startsWith("mailto:");
|
|
73
73
|
}
|
|
74
74
|
//#endregion
|
|
75
|
+
//#region lib/lib/object.utils.ts
|
|
76
|
+
function S(e, t) {
|
|
77
|
+
let n = {};
|
|
78
|
+
if (!Array.isArray(t)) n[t] = e?.[t];
|
|
79
|
+
else for (let r of t) n[r] = e?.[r];
|
|
80
|
+
return n;
|
|
81
|
+
}
|
|
82
|
+
function C(e, t) {
|
|
83
|
+
let n = { ...e };
|
|
84
|
+
if (Array.isArray(t)) for (let e of t) delete n?.[e];
|
|
85
|
+
else delete n?.[t];
|
|
86
|
+
return n ?? {};
|
|
87
|
+
}
|
|
88
|
+
function w(e) {
|
|
89
|
+
return e;
|
|
90
|
+
}
|
|
91
|
+
async function T(e) {
|
|
92
|
+
return await e;
|
|
93
|
+
}
|
|
94
|
+
function E(e, t = !1) {
|
|
95
|
+
return Object.fromEntries(Object.entries(e).filter(([e, n]) => t ? n != null && n !== void 0 : n !== void 0));
|
|
96
|
+
}
|
|
97
|
+
//#endregion
|
|
75
98
|
//#region lib/lib/zod-error-map.ts
|
|
76
|
-
var
|
|
99
|
+
var D = (e) => {
|
|
77
100
|
let t = typeof e;
|
|
78
101
|
switch (t) {
|
|
79
102
|
case "number": return Number.isNaN(e) ? "NaN" : "number";
|
|
@@ -83,7 +106,7 @@ var S = (e) => {
|
|
|
83
106
|
if (Object.getPrototypeOf(e) !== Object.prototype && e.constructor) return e.constructor.name;
|
|
84
107
|
}
|
|
85
108
|
return t;
|
|
86
|
-
},
|
|
109
|
+
}, O = ({ storageKey: i = e, language: a, translate: o = t } = {}) => {
|
|
87
110
|
let s = () => typeof a == "function" ? a() : a ?? n(i, "en", r);
|
|
88
111
|
return (e) => {
|
|
89
112
|
let t = s(), n = (e, n) => o(e, n, t), r = (e, t) => {
|
|
@@ -94,7 +117,7 @@ var S = (e) => {
|
|
|
94
117
|
case "invalid_type": {
|
|
95
118
|
let t = {
|
|
96
119
|
expected: e.expected,
|
|
97
|
-
received:
|
|
120
|
+
received: D(e.input)
|
|
98
121
|
};
|
|
99
122
|
return e.input ? r(`material.zod.invalid_type.${e.expected}`, t) ?? n("material.zod.invalid_type.default", t) : n("material.zod.required", t);
|
|
100
123
|
}
|
|
@@ -119,12 +142,12 @@ var S = (e) => {
|
|
|
119
142
|
};
|
|
120
143
|
//#endregion
|
|
121
144
|
//#region ../../node_modules/redux/dist/redux.mjs
|
|
122
|
-
function
|
|
145
|
+
function k(e) {
|
|
123
146
|
return `Minified Redux error #${e}; visit https://redux.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `;
|
|
124
147
|
}
|
|
125
|
-
var
|
|
126
|
-
`${/* @__PURE__ */
|
|
127
|
-
function
|
|
148
|
+
var A = () => Math.random().toString(36).substring(7).split("").join(".");
|
|
149
|
+
`${/* @__PURE__ */ A()}`, `${/* @__PURE__ */ A()}`;
|
|
150
|
+
function j(e) {
|
|
128
151
|
if (e === void 0) return "undefined";
|
|
129
152
|
if (e === null) return "null";
|
|
130
153
|
let t = typeof e;
|
|
@@ -136,9 +159,9 @@ function E(e) {
|
|
|
136
159
|
case "function": return t;
|
|
137
160
|
}
|
|
138
161
|
if (Array.isArray(e)) return "array";
|
|
139
|
-
if (
|
|
140
|
-
if (
|
|
141
|
-
let n =
|
|
162
|
+
if (P(e)) return "date";
|
|
163
|
+
if (N(e)) return "error";
|
|
164
|
+
let n = M(e);
|
|
142
165
|
switch (n) {
|
|
143
166
|
case "Symbol":
|
|
144
167
|
case "Promise":
|
|
@@ -149,42 +172,42 @@ function E(e) {
|
|
|
149
172
|
}
|
|
150
173
|
return Object.prototype.toString.call(e).slice(8, -1).toLowerCase().replace(/\s/g, "");
|
|
151
174
|
}
|
|
152
|
-
function
|
|
175
|
+
function M(e) {
|
|
153
176
|
return typeof e.constructor == "function" ? e.constructor.name : null;
|
|
154
177
|
}
|
|
155
|
-
function
|
|
178
|
+
function N(e) {
|
|
156
179
|
return e instanceof Error || typeof e.message == "string" && e.constructor && typeof e.constructor.stackTraceLimit == "number";
|
|
157
180
|
}
|
|
158
|
-
function
|
|
181
|
+
function P(e) {
|
|
159
182
|
return e instanceof Date || typeof e.toDateString == "function" && typeof e.getDate == "function" && typeof e.setDate == "function";
|
|
160
183
|
}
|
|
161
|
-
function
|
|
184
|
+
function F(e) {
|
|
162
185
|
let t = typeof e;
|
|
163
|
-
return process.env.NODE_ENV !== "production" && (t =
|
|
186
|
+
return process.env.NODE_ENV !== "production" && (t = j(e)), t;
|
|
164
187
|
}
|
|
165
|
-
function
|
|
188
|
+
function I(e, t) {
|
|
166
189
|
return function(...n) {
|
|
167
190
|
return t(e.apply(this, n));
|
|
168
191
|
};
|
|
169
192
|
}
|
|
170
|
-
function
|
|
171
|
-
if (typeof e == "function") return
|
|
172
|
-
if (typeof e != "object" || !e) throw Error(process.env.NODE_ENV === "production" ?
|
|
193
|
+
function L(e, t) {
|
|
194
|
+
if (typeof e == "function") return I(e, t);
|
|
195
|
+
if (typeof e != "object" || !e) throw Error(process.env.NODE_ENV === "production" ? k(16) : `bindActionCreators expected an object or a function, but instead received: '${F(e)}'. Did you write "import ActionCreators from" instead of "import * as ActionCreators from"?`);
|
|
173
196
|
let n = {};
|
|
174
197
|
for (let r in e) {
|
|
175
198
|
let i = e[r];
|
|
176
|
-
typeof i == "function" && (n[r] =
|
|
199
|
+
typeof i == "function" && (n[r] = I(i, t));
|
|
177
200
|
}
|
|
178
201
|
return n;
|
|
179
202
|
}
|
|
180
203
|
//#endregion
|
|
181
204
|
//#region lib/lib/redux/use-actions.ts
|
|
182
|
-
function
|
|
205
|
+
function R(e, t) {
|
|
183
206
|
let n = u();
|
|
184
|
-
return a(() =>
|
|
207
|
+
return a(() => L(e, n), t ? [n, ...t] : [n]);
|
|
185
208
|
}
|
|
186
209
|
//#endregion
|
|
187
210
|
//#region lib/lib/redux/async-slice.ts
|
|
188
|
-
var
|
|
211
|
+
var z = s({ creators: { asyncThunk: o } });
|
|
189
212
|
//#endregion
|
|
190
|
-
export {
|
|
213
|
+
export { p as _, w as a, d as b, C as c, b as d, y as f, h as g, m as h, O as i, S as l, _ as m, R as n, T as o, v as p, D as r, E as s, z as t, x as u, g as v, f as y };
|
|
@@ -2,7 +2,7 @@ import { r as e } from "./rolldown-runtime-BFFgcFxR.js";
|
|
|
2
2
|
import { a as t, i as n, n as r, r as i } from "./icon-sprites-CaYXzOL4.js";
|
|
3
3
|
import { t as a } from "./is-production-GLw59WU8.js";
|
|
4
4
|
import { a as o, t as s } from "./theme-context-Cofk6vgs.js";
|
|
5
|
-
import { t as c } from "./compose-refs-
|
|
5
|
+
import { t as c } from "./compose-refs-G4J4kaUA.js";
|
|
6
6
|
import { t as l } from "./use-background-activity-KxQgelFF.js";
|
|
7
7
|
import { t as u } from "./scene-svg-DJKa5vsg.js";
|
|
8
8
|
import { n as d, r as f, t as p } from "./scene-options-2zNF3ZkQ.js";
|
package/dist/backgrounds.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { r as e, t } from "./background-
|
|
1
|
+
import { r as e, t } from "./background-D1gC4m2R.js";
|
|
2
2
|
import { BACKGROUND_INTENSITIES as n, BACKGROUND_PRESETS as r, BACKGROUND_TONES as i, MOTIF_SHAPES as a, MOTIF_SHAPES_ALL as o, SHIPPED_BACKGROUND_PRESETS as s } from "@nxgt/material-core/backgrounds";
|
|
3
3
|
export { e as AVAILABLE_BACKGROUND_PRESETS, n as BACKGROUND_INTENSITIES, r as BACKGROUND_PRESETS, i as BACKGROUND_TONES, t as Background, a as MOTIF_SHAPES, o as MOTIF_SHAPES_ALL, s as SHIPPED_BACKGROUND_PRESETS };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as e } from "./utils-BLfntITJ.js";
|
|
2
2
|
import { n as t, t as n } from "./dist-DVRQkaTK.js";
|
|
3
|
-
import { n as r, r as i, t as a } from "./spinner-
|
|
3
|
+
import { n as r, r as i, t as a } from "./spinner-PdSk7zEs.js";
|
|
4
4
|
import { a as o, i as s, n as c, o as l, s as u, t as d } from "./use-click-lock-BZYtTmVt.js";
|
|
5
5
|
import { t as f } from "./is-production-GLw59WU8.js";
|
|
6
6
|
import { t as p } from "./button-group-context-CaP0X5p_.js";
|