@nxgt/material 3.65.0 → 3.67.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 +28 -0
- package/README.md +6 -2
- package/dist/{alert-dialog-C0nGUSCP.js → alert-dialog-BgQDxcYh.js} +1 -1
- package/dist/{async-slice-CyansBvD.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-D5k3K-gM.js → button-2de_lrix.js} +1 -1
- package/dist/charts.js +3 -3
- package/dist/{chip-lWXIJkqo.js → chip-Cs0uEjpu.js} +2 -2
- package/dist/{code-editor-aXG4CdY-.js → code-editor-BYhBAfcc.js} +5 -5
- package/dist/code-editor.js +5 -5
- package/dist/{code-language-items-CsaXyApg.js → code-language-items-xhmbF6wA.js} +2 -2
- package/dist/components/components.css +2 -0
- 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-DNcTvjlv.js → components-BRWaX4Xk.js} +17477 -17205
- package/dist/components.js +28 -28
- package/dist/{compose-refs-DZ0iIVF-.js → compose-refs-G4J4kaUA.js} +1 -1
- package/dist/{dialog-DWNaxpa-.js → dialog-Co5oksU1.js} +4 -4
- package/dist/dnd.js +2 -2
- package/dist/{dropdown-menu-ChvAIQIW.js → dropdown-menu-DdzyvN76.js} +1 -1
- package/dist/editor.js +365 -365
- package/dist/{empty-state-CFLcVzKL.js → empty-state-CQ0CV0kA.js} +2 -2
- package/dist/{field-blur-CV9orzdJ.js → field-blur-B2y-bNYi.js} +1 -1
- package/dist/{field-blur-context-C8BX8IBy.js → field-blur-context-BZtwcPUV.js} +1 -1
- package/dist/{hooks-DilW-3jc.js → hooks-DjuYsY-j.js} +2 -2
- package/dist/hooks.js +2 -2
- package/dist/{hover-card-IeS_1RPH.js → hover-card-BeBVy6tB.js} +1 -1
- package/dist/i18n.js +3 -3
- package/dist/{icon-badge-Bf4SoA2i.js → icon-badge-DbYsbzwZ.js} +3 -3
- package/dist/{icon-button-l3dQTRrC.js → icon-button-Co6ttdv1.js} +1 -1
- package/dist/lib/components/ui/actions/back-link/back-link.d.ts +10 -0
- package/dist/lib/components/ui/actions/back-link/index.d.ts +1 -0
- package/dist/lib/components/ui/actions/index.d.ts +2 -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/row-menu/index.d.ts +1 -0
- package/dist/lib/components/ui/collections/row-menu/row-menu.d.ts +6 -1
- package/dist/lib/components/ui/collections/row-menu/use-row-menu-focus.d.ts +30 -0
- 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/media/media-player-host/use-host-engine.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/i18n/resources/en/en.d.ts +5 -0
- package/dist/lib/i18n/resources/en/material.json.d.ts +6 -1
- package/dist/lib/i18n/resources/fr/fr.d.ts +5 -0
- package/dist/lib/i18n/resources/fr/material.json.d.ts +6 -1
- package/dist/lib/i18n/resources/resources.d.ts +10 -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-B-greXGt.js → public-AXwv1h3v.js} +10 -10
- package/dist/{rich-code-block-Cv6s59vB.js → rich-code-block-qSvkA5rI.js} +5 -5
- package/dist/{sortable-provider-DVmZcglU.js → sortable-provider-DPk-RVEU.js} +3 -3
- package/dist/{spinner-OQAweH2r.js → spinner-PdSk7zEs.js} +1 -1
- package/dist/theme-picker.js +2 -2
- package/dist/{theme-toggle-DPx44p6a.js → theme-toggle-CZQckLDd.js} +2 -2
- package/dist/{toggle-group-BkH23Jk4.js → toggle-group-DXXlqid2.js} +1 -1
- package/dist/{toolbar-items-CQ3S_XZw.js → toolbar-items-BmNYNaRB.js} +3 -3
- package/dist/{translate-material-BHL4g2UB.js → translate-material-BlCQ6AW9.js} +1 -1
- package/dist/{translator-BJsjXcAp.js → translator-ChpeKCO3.js} +8 -2
- package/dist/{typography-CwhEwPay.js → typography-C4JSRr2B.js} +1 -1
- package/dist/{use-chat-composer-R0vng5RU.js → use-chat-composer-OUa9akfM.js} +1725 -1719
- package/dist/{use-heading-spy-Brcn0l_J.js → use-heading-spy-K-HUp4o_.js} +4 -4
- package/dist/{use-material-translation-mY3U83TV.js → use-material-translation-DkE9J5NE.js} +1 -1
- package/dist/{use-return-focus-BQ413TNG.js → use-return-focus-KypnR7vv.js} +1 -1
- package/docs/components/README.md +3 -1
- package/docs/components/buttons-and-actions.md +50 -0
- package/docs/components/data-display.md +14 -1
- package/docs/components/data-table-filter-and-lists.md +68 -4
- package/docs/components/form-fields.md +9 -1
- package/docs/components/primitives.md +209 -0
- package/docs/previews/buttons-actions-backlink.webp +0 -0
- 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 +42 -3
- package/lib/components/components.css +2 -0
- 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 +1 -1
- /package/dist/lib/{components/ui/collections/dnd → lib}/compose-refs.d.ts +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,33 @@
|
|
|
1
1
|
# @nxgt/material
|
|
2
2
|
|
|
3
|
+
## 3.67.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#2079](https://github.com/softistx/nxgt-material/pull/2079) [`37b1427`](https://github.com/softistx/nxgt-material/commit/37b1427bfc7bc0438e2367f91b6d71ba117a8c16) Thanks [@SteveGT96](https://github.com/SteveGT96)! - Add `BackLink`: a link to the parent page, a ghost `LinkButton` with a leading arrow-left icon hidden from assistive tech and mirrored in right-to-left, named by its label ([#1694](https://github.com/softistx/nxgt-material/issues/1694)).
|
|
8
|
+
|
|
9
|
+
- [#2076](https://github.com/softistx/nxgt-material/pull/2076) [`280a39a`](https://github.com/softistx/nxgt-material/commit/280a39a6ce85a8f638899094dcfa48ea7d901071) Thanks [@SteveGT96](https://github.com/SteveGT96)! - RowMenu: `useRowMenuFocus()` hands the focus back to a given row's trigger once an async action, a toast or a follow-up dialog is over. It returns a `focusRef` for the table and `focusRowMenu(rowId)`, which matches the row by id exactly (`getRowId`'s, written on the trigger by `rowMenuColumn` and by the new `RowMenu` `rowId` prop), never by label. `findRowMenuTrigger(rowId, scope?)` is exported too ([#2075](https://github.com/softistx/nxgt-material/issues/2075)). `focusRowMenu` answers `true` only when the trigger holds the focus, and claims it again for two frames if a dialog or a toast takes it. Vue: [#2077](https://github.com/softistx/nxgt-material/issues/2077).
|
|
10
|
+
|
|
11
|
+
## 3.66.0
|
|
12
|
+
|
|
13
|
+
### Minor Changes
|
|
14
|
+
|
|
15
|
+
- [#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).
|
|
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 `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"`.
|
|
18
|
+
|
|
19
|
+
- [#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).
|
|
20
|
+
|
|
21
|
+
- [#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)).
|
|
22
|
+
|
|
23
|
+
- [#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.
|
|
24
|
+
|
|
25
|
+
- [#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`.
|
|
26
|
+
|
|
27
|
+
### Patch Changes
|
|
28
|
+
|
|
29
|
+
- [#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)).
|
|
30
|
+
|
|
3
31
|
## 3.65.0
|
|
4
32
|
|
|
5
33
|
### 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` |
|
|
@@ -545,7 +547,9 @@ Not components: what the stylesheet gives any element.
|
|
|
545
547
|
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/buttons-actions-toolbar.webp" width="120" alt="Toolbar"> | [`Toolbar`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/buttons-and-actions.md#toolbar), `ToolbarButton`, `ToolbarToggle`, `ToolbarSeparator`, `ToolbarGroup`, `ToolbarToggleGroup`, `ToolbarToggleItem`, `ToolbarItemSlot`, `ToolbarMore`, `useToolbarEntry`, `useToolbarOverflow`, `useToolbarSpilled`, `useToolbarMoreAnchor`, `ToolbarPair` | A row of icon actions (WAI-ARIA toolbar): floating or docked, neutral or primary, comfortable or compact density, quiet, expressive or morph pressed look, rides above the phone keyboard, groups, choices and priorities spilling into More (a row or a column, with submenus, checkboxes and launched popovers and dialogs), `useToolbarOverflow` for a More of your own, your own controls and fields as items, hides on scroll. | — |
|
|
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` |
|
|
550
|
+
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/buttons-actions-backlink.webp" width="120" alt="BackLink"> | [`BackLink`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/buttons-and-actions.md#backlink) | A ghost link to the parent page with a leading arrow, mirrored in right-to-left. | `BackLink` |
|
|
548
551
|
| <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` |
|
|
552
|
+
| <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
553
|
| <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
554
|
| <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
555
|
| <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 +643,7 @@ Not components: what the stylesheet gives any element.
|
|
|
639
643
|
| <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
644
|
| <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
645
|
| <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` |
|
|
646
|
+
| <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
647
|
| <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
648
|
| <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
649
|
| <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` |
|
|
@@ -673,7 +677,7 @@ Not components: what the stylesheet gives any element.
|
|
|
673
677
|
| --- | --- | --- | --- |
|
|
674
678
|
| <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` |
|
|
675
679
|
| <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` |
|
|
676
|
-
| <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. | — |
|
|
680
|
+
| <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; `useRowMenuFocus()` / `focusRowMenu(rowId)` hands it back to one row's button after an async action, a toast or a later dialog. | — |
|
|
677
681
|
| <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` |
|
|
678
682
|
| <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`; `totalCount` is optional: a feed with no total shows no range, only Previous / Next; `hideOnSinglePage` renders nothing when there is no previous and no next page), 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` |
|
|
679
683
|
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/data-table-filter-lists-datagrid.webp" width="120" alt="DataGrid"> | [`DataGrid`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/data-table-filter-and-lists.md#datagrid) | An editable grid over `DataTable`'s columns: spreadsheet keys, a selected range, editors for text, numbers (with codes such as "abs"), options, dates and checkboxes, or your own; paste from Excel or Sheets, a fill handle that continues series, resizable, hideable and reorderable columns, undo, totals, and saving per cell, per row or in a batch with versions and conflicts ([guide](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/guides/data-grid.md)). Long grids render only what is in view; on a phone it is a list of rows that open a panel. | — (later) |
|
|
@@ -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";
|
package/dist/charts.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { t as e } from "./ui.utils-CAnKTCw5.js";
|
|
2
2
|
import { t } from "./utils-BLfntITJ.js";
|
|
3
3
|
import { t as n } from "./warn-once-C_e47JM8.js";
|
|
4
|
-
import { t as r } from "./button-
|
|
5
|
-
import { t as i } from "./use-material-translation-
|
|
4
|
+
import { t as r } from "./button-2de_lrix.js";
|
|
5
|
+
import { t as i } from "./use-material-translation-DkE9J5NE.js";
|
|
6
6
|
import { t as a } from "./use-ssr-media-query-C6M5m8sf.js";
|
|
7
7
|
import { i as o, n as s, r as c, t as l } from "./util-4heV2LPI.js";
|
|
8
8
|
import { t as u } from "./useIsomorphicLayoutEffect-DfgAhWcH.js";
|
|
9
|
-
import { t as d } from "./chip-
|
|
9
|
+
import { t as d } from "./chip-Cs0uEjpu.js";
|
|
10
10
|
import { c as f, d as p, f as m, i as h, o as g, p as _, s as v, t as y } from "./line-path-C5pZGC49.js";
|
|
11
11
|
import { t as b } from "./live-status-BGPaN8r8.js";
|
|
12
12
|
import { t as x } from "./linear-G97mfnKF.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as e } from "./utils-BLfntITJ.js";
|
|
2
|
-
import { r as t } from "./spinner-
|
|
2
|
+
import { r as t } from "./spinner-PdSk7zEs.js";
|
|
3
3
|
import { s as n } from "./use-click-lock-BZYtTmVt.js";
|
|
4
|
-
import { t as r } from "./use-material-translation-
|
|
4
|
+
import { t as r } from "./use-material-translation-DkE9J5NE.js";
|
|
5
5
|
import { t as i } from "./react-node-text-Crkpfpco.js";
|
|
6
6
|
import { cloneElement as a, isValidElement as o } from "react";
|
|
7
7
|
import { Fragment as s, jsx as c, jsxs as l } from "react/jsx-runtime";
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { r as e } from "./rolldown-runtime-BFFgcFxR.js";
|
|
2
2
|
import { t } from "./utils-BLfntITJ.js";
|
|
3
3
|
import { a as n } from "./dist-lmHmz_bu.js";
|
|
4
|
-
import { c as r, d as i, f as a, n as o, t as s } from "./dropdown-menu-
|
|
5
|
-
import { a as c, i as l, n as u } from "./field-blur-context-
|
|
6
|
-
import { a as d, d as f, r as p, t as m, u as h } from "./toolbar-items-
|
|
4
|
+
import { c as r, d as i, f as a, n as o, t as s } from "./dropdown-menu-DdzyvN76.js";
|
|
5
|
+
import { a as c, i as l, n as u } from "./field-blur-context-BZtwcPUV.js";
|
|
6
|
+
import { a as d, d as f, r as p, t as m, u as h } from "./toolbar-items-BmNYNaRB.js";
|
|
7
7
|
import { t as g } from "./is-production-GLw59WU8.js";
|
|
8
|
-
import { t as _ } from "./use-material-translation-
|
|
9
|
-
import { i as v, n as y, o as b, t as x } from "./code-language-items-
|
|
8
|
+
import { t as _ } from "./use-material-translation-DkE9J5NE.js";
|
|
9
|
+
import { i as v, n as y, o as b, t as x } from "./code-language-items-xhmbF6wA.js";
|
|
10
10
|
import { t as S } from "./useIsomorphicLayoutEffect-DfgAhWcH.js";
|
|
11
11
|
import { n as C, t as w } from "./escape-owner-DpaP0lm1.js";
|
|
12
12
|
import { t as T } from "./skeleton-DSdtr2qc.js";
|
package/dist/code-editor.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { t as e } from "./utils-BLfntITJ.js";
|
|
2
2
|
import { a as t } from "./dist-lmHmz_bu.js";
|
|
3
|
-
import { d as n, r, t as i, u as a } from "./toolbar-items-
|
|
4
|
-
import { t as o } from "./use-material-translation-
|
|
5
|
-
import { i as s, n as c, o as l } from "./code-language-items-
|
|
6
|
-
import { r as u, t as d } from "./field-blur-
|
|
3
|
+
import { d as n, r, t as i, u as a } from "./toolbar-items-BmNYNaRB.js";
|
|
4
|
+
import { t as o } from "./use-material-translation-DkE9J5NE.js";
|
|
5
|
+
import { i as s, n as c, o as l } from "./code-language-items-xhmbF6wA.js";
|
|
6
|
+
import { r as u, t as d } from "./field-blur-B2y-bNYi.js";
|
|
7
7
|
import { t as f } from "./skeleton-DSdtr2qc.js";
|
|
8
8
|
import { t as p } from "./live-status-BGPaN8r8.js";
|
|
9
9
|
import { t as m } from "./use-mobile-BDro060N.js";
|
|
10
10
|
import { t as h } from "./react-node-text-Crkpfpco.js";
|
|
11
|
-
import { a as g, c as _, d as v, f as y, i as b, l as x, m as S, o as C, p as w, r as T, s as E, t as D, u as O } from "./code-editor-
|
|
11
|
+
import { a as g, c as _, d as v, f as y, i as b, l as x, m as S, o as C, p as w, r as T, s as E, t as D, u as O } from "./code-editor-BYhBAfcc.js";
|
|
12
12
|
import { useEffect as k, useRef as A, useState as j } from "react";
|
|
13
13
|
import { Fragment as M, jsx as N, jsxs as P } from "react/jsx-runtime";
|
|
14
14
|
import { getCspNonce as F } from "@nxgt/material-core/csp-nonce";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { d as e, f as t } from "./dropdown-menu-
|
|
2
|
-
import { t as n } from "./use-material-translation-
|
|
1
|
+
import { d as e, f as t } from "./dropdown-menu-DdzyvN76.js";
|
|
2
|
+
import { t as n } from "./use-material-translation-DkE9J5NE.js";
|
|
3
3
|
import { t as r } from "./live-status-BGPaN8r8.js";
|
|
4
4
|
import { useEffect as i, useRef as a, useState as o } from "react";
|
|
5
5
|
import { jsx as s } from "react/jsx-runtime";
|
|
@@ -122,6 +122,8 @@
|
|
|
122
122
|
@import "./ui/primitives/accordion/accordion.css";
|
|
123
123
|
@import "./ui/primitives/accordion/accordion-surfaces.css";
|
|
124
124
|
@import "./ui/primitives/collapsible/collapsible.css";
|
|
125
|
+
/* TabsNav in forced colours (the current link's mark). */
|
|
126
|
+
@import "./ui/primitives/tabs/tabs-nav-forced.css";
|
|
125
127
|
/* ToggleGroup: shared rules, then one file per variant. */
|
|
126
128
|
@import "./ui/primitives/toggle-group/toggle-group.css";
|
|
127
129
|
@import "./ui/primitives/toggle-group/toggle-group-connected.css";
|
|
@@ -149,9 +149,10 @@
|
|
|
149
149
|
backdrop-filter: blur(var(--nxgt-backdrop-blur));
|
|
150
150
|
}
|
|
151
151
|
|
|
152
|
-
/* Tabs: the strip is a band, its top corners
|
|
153
|
-
* has its own track.) */
|
|
154
|
-
[data-slot="activity-layout"][data-backdrop]
|
|
152
|
+
/* Tabs and route tabs (`TabsNav`): the strip is a band, its top corners
|
|
153
|
+
* rounded. (The segmented look has its own track.) */
|
|
154
|
+
[data-slot="activity-layout"][data-backdrop]
|
|
155
|
+
:is([data-slot="tabs-list"], [data-slot="tabs-nav"]) {
|
|
155
156
|
border-start-start-radius: var(--radius);
|
|
156
157
|
border-start-end-radius: var(--radius);
|
|
157
158
|
background: var(--nxgt-backdrop-fill-nav);
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/* The indicator hides when no link is current (a `value` that matches none). */
|
|
2
|
+
[data-slot="tabs-nav"]:not(:has([data-state="active"]))
|
|
3
|
+
> [data-slot="tabs-indicator"] {
|
|
4
|
+
visibility: hidden;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
/* TabsNav in forced colours: the current link keeps a mark. The indicator and
|
|
8
|
+
* the active link's ::after are backgrounds and borders, which the browser
|
|
9
|
+
* flattens; they are painted again with the system Highlight. React only
|
|
10
|
+
* (tabs-classes.ts is shared with Vue, so this is not a class there). */
|
|
11
|
+
@media (forced-colors: active) {
|
|
12
|
+
[data-slot="tabs-nav"][data-variant="underline"]
|
|
13
|
+
> [data-slot="tabs-indicator"],
|
|
14
|
+
[data-slot="tabs-nav"][data-variant="underline"]
|
|
15
|
+
[data-slot="tabs-trigger"][aria-current="page"]::after {
|
|
16
|
+
forced-color-adjust: none;
|
|
17
|
+
background: Highlight;
|
|
18
|
+
}
|
|
19
|
+
[data-slot="tabs-nav"][data-variant="segmented"]
|
|
20
|
+
> [data-slot="tabs-indicator"],
|
|
21
|
+
[data-slot="tabs-nav"][data-variant="segmented"]
|
|
22
|
+
[data-slot="tabs-trigger"][aria-current="page"]::after {
|
|
23
|
+
forced-color-adjust: none;
|
|
24
|
+
border: 2px solid Highlight;
|
|
25
|
+
background: Canvas;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -61,7 +61,8 @@
|
|
|
61
61
|
> .nxgt-toggle-group-item:hover:not(
|
|
62
62
|
:disabled,
|
|
63
63
|
[aria-checked="true"],
|
|
64
|
-
[aria-pressed="true"]
|
|
64
|
+
[aria-pressed="true"],
|
|
65
|
+
[aria-current="page"]
|
|
65
66
|
) {
|
|
66
67
|
background: var(--tg-seg-hover);
|
|
67
68
|
}
|
|
@@ -78,7 +79,11 @@
|
|
|
78
79
|
* every chosen state is primary). Forced colours: the pill is hidden and
|
|
79
80
|
* the SelectedItem rule in toggle-group.css wins (its layer-less rule). */
|
|
80
81
|
[data-variant="segmented"]
|
|
81
|
-
> .nxgt-toggle-group-item:is(
|
|
82
|
+
> .nxgt-toggle-group-item:is(
|
|
83
|
+
[aria-checked="true"],
|
|
84
|
+
[aria-pressed="true"],
|
|
85
|
+
[aria-current="page"]
|
|
86
|
+
) {
|
|
82
87
|
color: var(--primary-text);
|
|
83
88
|
}
|
|
84
89
|
|
|
@@ -135,6 +140,9 @@
|
|
|
135
140
|
/* Multiple: a pill per pressed item; touching pills join. Also a single
|
|
136
141
|
* group of 9 or more items, which has no sliding pill. */
|
|
137
142
|
[data-variant="segmented"] > .nxgt-toggle-group-item[aria-pressed="true"],
|
|
143
|
+
/* SegmentedNav: a scrolling track has no sliding pill, the current link
|
|
144
|
+
* paints its own. */
|
|
145
|
+
[data-variant="segmented"] > .nxgt-toggle-group-item[aria-current="page"],
|
|
138
146
|
[data-variant="segmented"]:has(> .nxgt-toggle-group-item:nth-of-type(9))
|
|
139
147
|
> .nxgt-toggle-group-item[aria-checked="true"] {
|
|
140
148
|
background: var(--tg-pill);
|
|
@@ -127,7 +127,11 @@
|
|
|
127
127
|
.nxgt-toggle-group-item {
|
|
128
128
|
border: 1px solid ButtonText;
|
|
129
129
|
}
|
|
130
|
-
.nxgt-toggle-group-item:is(
|
|
130
|
+
.nxgt-toggle-group-item:is(
|
|
131
|
+
[aria-checked="true"],
|
|
132
|
+
[aria-pressed="true"],
|
|
133
|
+
[aria-current="page"]
|
|
134
|
+
) {
|
|
131
135
|
forced-color-adjust: none;
|
|
132
136
|
background: SelectedItem;
|
|
133
137
|
color: SelectedItemText;
|