@nxgt/material 3.48.0 → 3.50.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 +32 -0
- package/README.md +3 -3
- package/dist/{async-slice-DlvKCKAa.js → async-slice-3loEtzUY.js} +2 -2
- package/dist/{button-yaltbQmC.js → button-BRUaHD8z.js} +81 -112
- package/dist/charts.js +144 -144
- package/dist/{chip-BqWbbr1b.js → chip-DneTrtNj.js} +56 -56
- package/dist/{code-editor-C9qBNoYb.js → code-editor-R_nPN_-d.js} +308 -308
- package/dist/code-editor.js +47 -47
- package/dist/{code-language-items-DAHtfQ7W.js → code-language-items-BKEUhQlF.js} +2 -2
- package/dist/components/components.css +1 -0
- package/dist/components/ui/actions/action-card/action-card-indicator.css +48 -0
- package/dist/components/ui/actions/action-card/action-card-modes.css +4 -1
- package/dist/components/ui/actions/action-card/action-card-tile.css +141 -0
- package/dist/components/ui/actions/action-card/action-card.css +33 -3
- package/dist/{components-Ox6FHmpx.js → components-D6xFLcoE.js} +17646 -17567
- package/dist/components.js +26 -27
- package/dist/{dialog-CCCcnTIx.js → dialog-S7dLsYRZ.js} +16 -16
- package/dist/dnd.js +1 -1
- package/dist/{dropdown-menu-Df8785nt.js → dropdown-menu-XLlxfDgq.js} +271 -272
- package/dist/editor.js +1028 -1028
- package/dist/{empty-state-DcF4TBzi.js → empty-state-Dsf6R-Zo.js} +37 -37
- package/dist/{escape-owner-C4W_sOAU.js → escape-owner-B9eCwjLw.js} +1 -1
- package/dist/{field-blur-CJHzVSh9.js → field-blur-5uRDFHvB.js} +1 -1
- package/dist/{field-blur-context-Cft9s7Hg.js → field-blur-context-Cwt4TuBq.js} +1 -1
- package/dist/hooks.js +4 -4
- package/dist/{hover-card-C0fw2kLK.js → hover-card-PHUgRSjJ.js} +24 -24
- package/dist/{i18n-provider-C0fB0sEL.js → i18n-provider-DPM_ALQ4.js} +1 -1
- package/dist/i18n.js +5 -5
- package/dist/{icon-badge-aJ22mKGh.js → icon-badge-Dh6-FNOF.js} +3 -3
- package/dist/{icon-button-CN9r5TNE.js → icon-button-DSC2-IAG.js} +118 -86
- package/dist/lib/components/ui/actions/action-card/action-card-semantics.d.ts +25 -2
- package/dist/lib/components/ui/actions/action-card/action-card.d.ts +18 -2
- package/dist/lib/components/ui/actions/action-card/partials/action-card-icon.d.ts +6 -0
- package/dist/lib/components/ui/actions/action-card/partials/action-card-meta.d.ts +15 -0
- package/dist/lib/components/ui/actions/action-card/partials/action-card-status.d.ts +6 -0
- package/dist/lib/components/ui/actions/action-card/partials/action-card-text.d.ts +20 -0
- package/dist/lib/components/ui/actions/action-card/partials/action-card-title-button.d.ts +14 -0
- package/dist/lib/components/ui/actions/action-card/partials/action-card-trail.d.ts +6 -0
- package/dist/lib/components/ui/actions/action-card/use-action-card-names.d.ts +22 -0
- package/dist/lib/components/ui/actions/action-card/use-reveal.d.ts +23 -0
- package/dist/lib/components/ui/actions/button/button.variants.d.ts +1 -1
- package/dist/lib/components/ui/actions/icon-button/icon-button-busy.d.ts +22 -0
- package/dist/lib/components/ui/actions/icon-button/icon-button-shape.d.ts +2 -0
- package/dist/lib/components/ui/actions/icon-button/icon-button.d.ts +7 -0
- package/dist/lib/components/ui/actions/icon-button/icon-button.variants.d.ts +1 -1
- package/dist/lib/components/ui/collections/filter/bar/partials/filter-quick-toggle.d.ts +3 -2
- package/dist/lib/components/ui/collections/filter/sections/filter-sections-classes.d.ts +7 -1
- package/dist/lib/components/ui/collections/page-footer/page-footer.d.ts +6 -1
- package/dist/lib/components/ui/collections/row-menu/row-menu-trigger.d.ts +5 -2
- package/dist/lib/components/ui/collections/row-menu/row-menu.d.ts +1 -1
- package/dist/lib/components/ui/collections/server-table/index.d.ts +1 -1
- package/dist/lib/components/ui/collections/server-table/partials/server-table-empty-chips.d.ts +5 -3
- package/dist/lib/components/ui/collections/server-table/types-paging.d.ts +17 -0
- package/dist/lib/components/ui/collections/server-table/types.d.ts +3 -10
- package/dist/lib/components/ui/dates/duration-field/partials/use-duration-box.d.ts +1 -1
- package/dist/lib/components/ui/display/badge/badge.d.ts +1 -1
- package/dist/lib/components/ui/display/day-separator/day-separator.d.ts +1 -1
- package/dist/lib/components/ui/feedback/step-up-dialog/partials/step-up-body.d.ts +5 -3
- package/dist/lib/components/ui/feedback/step-up-dialog/partials/step-up-request-error.d.ts +15 -0
- package/dist/lib/components/ui/feedback/step-up-dialog/step-up-dialog.d.ts +6 -3
- package/dist/lib/components/ui/feedback/step-up-dialog/types.d.ts +12 -1
- package/dist/lib/components/ui/feedback/step-up-dialog/use-retry-focus.d.ts +27 -0
- package/dist/lib/components/ui/feedback/step-up-dialog/use-retry.d.ts +11 -0
- package/dist/lib/components/ui/fields/contacts/placeholders.d.ts +1 -1
- package/dist/lib/components/ui/fields/slider/split-slider-props.d.ts +20 -20
- package/dist/lib/components/ui/fields/slider/use-slider-control.d.ts +20 -20
- package/dist/lib/components/ui/fields/verification-code/use-settled-focus.d.ts +10 -0
- package/dist/lib/components/ui/layout/app-shell/route-transition.d.ts +1 -1
- package/dist/lib/components/ui/media/carousel/use-carousel-engine.d.ts +1 -1
- package/dist/lib/components/ui/media/media-player/engine/use-queue-actions.d.ts +1 -1
- package/dist/lib/components/ui/media/pdf-reader/pdf-reader.slice.d.ts +1 -1
- package/dist/lib/components/ui/selection/choice-group/use-choice-group-field.d.ts +34 -34
- package/dist/lib/components/ui/widgets/chat/chat-message.variants.d.ts +2 -2
- package/dist/lib/components/ui/widgets/event-calendar/use-event-calendar.d.ts +1 -1
- package/dist/lib/i18n/resources/en/en.d.ts +1 -0
- package/dist/lib/i18n/resources/en/material.json.d.ts +2 -1
- package/dist/lib/i18n/resources/fr/fr.d.ts +1 -0
- package/dist/lib/i18n/resources/fr/material.json.d.ts +2 -1
- package/dist/lib/i18n/resources/resources.d.ts +2 -0
- package/dist/lib/i18n/translator.d.ts +1 -1
- package/dist/lib.js +1 -1
- package/dist/main.js +43 -44
- package/dist/map.js +79 -79
- package/dist/material.css +1 -1
- package/dist/nxgt-theme-ivgNca3z.js +37 -0
- package/dist/pdf-reader.js +1 -1
- package/dist/print.js +2 -2
- package/dist/{public-zVb_Nq_D.js → public-vxiijIJF.js} +82 -82
- package/dist/{rich-code-block-DMWZZJma.js → rich-code-block-BwvCXPqq.js} +52 -52
- package/dist/{sortable-provider-DstbgMVf.js → sortable-provider-D2pAFWQB.js} +218 -218
- package/dist/{tooltip-CkttDIab.js → spinner-BpVwI1ps.js} +503 -278
- package/dist/{stored-language-IaL1Ftn_.js → stored-language-Beyj2ult.js} +4 -2
- package/dist/theme-picker.js +45 -45
- package/dist/{theme-store-CSl51uNH.js → theme-store-BdPp43cV.js} +13 -13
- package/dist/{theme-toggle-CGW2_K54.js → theme-toggle-BTYRPkP4.js} +16 -16
- package/dist/themes.js +17 -17
- package/dist/{toggle-group-BMJNcFAC.js → toggle-group-BkH23Jk4.js} +11 -11
- package/dist/{toolbar-items-CsLGJMEJ.js → toolbar-items-CIMo4F9q.js} +421 -421
- package/dist/{translate-material-v9u-e7Kd.js → translate-material-DEUlaL_1.js} +2 -2
- package/dist/{translator-Dk4_qE6U.js → translator-CBgIb3zP.js} +1 -1
- package/dist/{use-chat-composer-Brcb5f7r.js → use-chat-composer-D8UAsX0f.js} +6228 -5999
- package/dist/{button-tones-BwuVvAmd.js → use-click-lock-BZYtTmVt.js} +37 -7
- package/dist/{use-heading-spy-DjKixjLm.js → use-heading-spy-C5LXtA8Z.js} +1 -1
- package/dist/{use-material-translation-DOkTaWK_.js → use-material-translation-DWWeeg-B.js} +2 -2
- package/dist/{use-theme-DMcyJ52N.js → use-theme-BCLireTd.js} +1 -1
- package/docs/components/buttons-and-actions.md +64 -5
- package/docs/components/data-table-filter-and-lists.md +30 -10
- package/docs/components/feedback-and-status.md +22 -3
- package/docs/components/form-fields.md +7 -0
- package/docs/guides/cards-and-tiles.md +60 -0
- package/docs/guides/server-lists-url.md +3 -2
- package/docs/roadmap.md +11 -0
- package/lib/components/components.css +1 -0
- package/lib/components/ui/actions/action-card/action-card-indicator.css +48 -0
- package/lib/components/ui/actions/action-card/action-card-modes.css +4 -1
- package/lib/components/ui/actions/action-card/action-card-tile.css +141 -0
- package/lib/components/ui/actions/action-card/action-card.css +33 -3
- package/package.json +1 -1
- package/dist/nxgt-theme-ZS945iMP.js +0 -37
- package/dist/spinner-C4CgDEYm.js +0 -229
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,37 @@
|
|
|
1
1
|
# @nxgt/material
|
|
2
2
|
|
|
3
|
+
## 3.50.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#1830](https://github.com/softistx/nxgt-material/pull/1830) [`a42fa41`](https://github.com/softistx/nxgt-material/commit/a42fa41f31a418a7ddae46a34330f75e9fe684be) Thanks [@SteveGT96](https://github.com/SteveGT96)! - Re-export `effectiveConditions` and `splitFilterErrors` (with `FilterSplitErrors`, `FilterFieldError` and `FilterFieldErrors`) from `@nxgt/material/components`, next to `parseFilterQuery`, so a server loader reads the effective conditions and the field errors of a filter query without a direct `@nxgt/material-core` dependency ([#1726](https://github.com/softistx/nxgt-material/issues/1726)).
|
|
8
|
+
|
|
9
|
+
- [#1837](https://github.com/softistx/nxgt-material/pull/1837) [`6ec2b9d`](https://github.com/softistx/nxgt-material/commit/6ec2b9dde775e3bcac235fc0c46567d98420aad6) Thanks [@SteveGT96](https://github.com/SteveGT96)! - Add `hideOnSinglePage` to `PageFooter` and `ServerTable`: an opt-in that renders no footer when the result is a single page (no previous and no next page), in the table, cards and tiles layouts. The default is unchanged; `ServerTable` still announces the count in its live region, and keeps its selection status with `bulkActions` ([#1732](https://github.com/softistx/nxgt-material/issues/1732)).
|
|
10
|
+
|
|
11
|
+
- [#1833](https://github.com/softistx/nxgt-material/pull/1833) [`776fbc6`](https://github.com/softistx/nxgt-material/commit/776fbc66cd26f79d4cbdcc2155d23c58989272f1) Thanks [@SteveGT96](https://github.com/SteveGT96)! - `IconButton` and `RowMenuTrigger` take `loading`, as `Button`'s (`RowMenu` takes it in `triggerProps`): `aria-busy` and `aria-disabled`, a spinner in place of the icon with no change of size, every click blocked, and the button stays focusable, so the focus stays on it when a row's menu closes and its action runs. A busy row does not open its menu again until it is over ([#1730](https://github.com/softistx/nxgt-material/issues/1730)).
|
|
12
|
+
|
|
13
|
+
- [#1843](https://github.com/softistx/nxgt-material/pull/1843) [`440665b`](https://github.com/softistx/nxgt-material/commit/440665b38e18055baf43e6cf98196e4004618610) Thanks [@SteveGT96](https://github.com/SteveGT96)! - `StepUpDialog` gains `onRetry`: when the code request failed (`requestError`), the alert holds a "Retry" button (`labels.retry`, `material.step-up-dialog.retry` in English and French) that calls it. While the returned promise is pending the button is busy and keeps the focus; once the request succeeds the code field takes the focus, and a retry that fails again keeps the focus on "Retry" and announces the new error, even when its text is the same. Without `onRetry` nothing changes ([#1831](https://github.com/softistx/nxgt-material/issues/1831)).
|
|
14
|
+
|
|
15
|
+
### Patch Changes
|
|
16
|
+
|
|
17
|
+
- [#1842](https://github.com/softistx/nxgt-material/pull/1842) [`cb50aae`](https://github.com/softistx/nxgt-material/commit/cb50aaeef0d7d96a8b5dcec47935da3b77cc6aaa) Thanks [@SteveGT96](https://github.com/SteveGT96)! - Fix the touch hit areas of `static` close buttons ([#1733](https://github.com/softistx/nxgt-material/issues/1733)). A tap on a section header of the phone filters sheet, or on a field of the DataGrid's phone row panel, did nothing on a touch screen: the Close button was `static`, so its invisible 44px hit area was placed against the whole sheet and covered it. These buttons (and the gallery's column arrows, and the switcher's close) are now `relative` with their offsets reset, and cover only their own corner.
|
|
18
|
+
|
|
19
|
+
- [#1844](https://github.com/softistx/nxgt-material/pull/1844) [`1f2e06c`](https://github.com/softistx/nxgt-material/commit/1f2e06c04129f9446d4cfb2523110ac8c3ff626f) Thanks [@SteveGT96](https://github.com/SteveGT96)! - fix(filter): a quick `switch` or `checkbox` field is drawn as a toggle chip, not an add pill ([#1722](https://github.com/softistx/nxgt-material/issues/1722)). Off, `FilterQuickToggle` shows its label alone, with no plus icon and no dashed border; on, the chip's check mark and selected look. It stays a button with `aria-pressed`. The dashed "+ Field" pill remains for the quick fields that open an editor.
|
|
20
|
+
|
|
21
|
+
- [#1834](https://github.com/softistx/nxgt-material/pull/1834) [`2e083b7`](https://github.com/softistx/nxgt-material/commit/2e083b75c1b851cf34c119676b48c35ffe0fa284) Thanks [@SteveGT96](https://github.com/SteveGT96)! - ServerTable with `filter`: the no-match empty state always offers "Clear all", a single active chip included, and its label is `empty.clear` when set ([#1731](https://github.com/softistx/nxgt-material/issues/1731)). Locked conditions stay.
|
|
22
|
+
|
|
23
|
+
- [#1841](https://github.com/softistx/nxgt-material/pull/1841) [`7072131`](https://github.com/softistx/nxgt-material/commit/70721316d9c32b82d8577e5937b635d30349c02c) Thanks [@SteveGT96](https://github.com/SteveGT96)! - `VerificationCode` and `StepUpDialog`: once a resend settles, with or without a throttle, the focus returns to the code field when "Resend" (or the page, after a disabled Resend dropped it) held it as the resend started; a focus the user moved elsewhere is left alone. `StepUpDialog` now accepts `autoFocus` and passes it to `VerificationCode`, so the code field takes the first focus instead of the title ([#1832](https://github.com/softistx/nxgt-material/issues/1832)).
|
|
24
|
+
|
|
25
|
+
## 3.49.0
|
|
26
|
+
|
|
27
|
+
### Minor Changes
|
|
28
|
+
|
|
29
|
+
- [#1820](https://github.com/softistx/nxgt-material/pull/1820) [`22d3dd0`](https://github.com/softistx/nxgt-material/commit/22d3dd018e478e9cc8907697be27a34775a91de3) Thanks [@SteveGT96](https://github.com/SteveGT96)! - `ActionCard` takes `status` (a soft badge line), `meta` (one line, with a tooltip only while it is clipped), a trailing `action` outside the press surface (the title becomes the card's one button, so the card and its action are two tab stops and nothing nests), and `variant="tile"`, a compact grid cell with no minimum width and no indicator by default. Without `action` the DOM is unchanged. With an `action`, `title` is required (the button's text; development builds warn without one and the button is then named after the status and the meta line), the `description` is the button's description, a `role` (`switch`, `checkbox`, `radio`) and its `aria-checked` move to the button instead of the plain root, hover and press answer only the title button, and the meta tooltip follows hover and focus of the card (only Escape dismisses it). A tile's `withIndicator` gets its own column. `RowMenu`'s children (radio and checkbox items) take the text size of its `items`, as their 44px floor already did.
|
|
30
|
+
|
|
31
|
+
### Patch Changes
|
|
32
|
+
|
|
33
|
+
- [#1823](https://github.com/softistx/nxgt-material/pull/1823) [`bc5775c`](https://github.com/softistx/nxgt-material/commit/bc5775c7cfb2354616214d21f3318102793b10bd) Thanks [@SteveGT96](https://github.com/SteveGT96)! - New recipe `Guides/Recipes/Status board`: a board of tiles in sections (an `ActionCard` tile with a status badge, the occupant as meta and a menu that changes the status) and an occupancy screen (figures, a table with a rate per section, tiles on a phone), with its code in the `nxgt-material` plugin's `screen-recipes` skill (2.5.0).
|
|
34
|
+
|
|
3
35
|
## 3.48.0
|
|
4
36
|
|
|
5
37
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -518,7 +518,7 @@ Not components: what the stylesheet gives any element.
|
|
|
518
518
|
| <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` |
|
|
519
519
|
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/buttons-actions-scrolltotop.webp" width="120" alt="ScrollToTop"> | [`ScrollToTop`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/buttons-and-actions.md#scrolltotop) | Floating button that appears past a scroll threshold. | `ScrollToTop` |
|
|
520
520
|
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/buttons-actions-scrolltolatestbutton.webp" width="120" alt="ScrollToLatestButton"> | [`ScrollToLatestButton`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/buttons-and-actions.md#scrolltolatestbutton) | "Jump to latest" over a scroll box: an arrow that widens into "3 new messages". | — |
|
|
521
|
-
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/buttons-actions-actioncard.webp" width="120" alt="ActionCard"> | [`ActionCard`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/buttons-and-actions.md#actioncard) | Clickable card (a `role="button"` with `aria-pressed`) with a shape icon that morphs when chosen, title, description and active indicator. | `ActionCard` |
|
|
521
|
+
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/buttons-actions-actioncard.webp" width="120" alt="ActionCard"> | [`ActionCard`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/buttons-and-actions.md#actioncard) | Clickable card (a `role="button"` with `aria-pressed`) with a shape icon that morphs when chosen, title, description and active indicator; `status`, `meta`, a trailing `action` (a `RowMenu`) and `variant="tile"` make a compact cell for status boards. | `ActionCard` |
|
|
522
522
|
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/buttons-actions-themetoggle.webp" width="120" alt="ThemeToggle"> | [`ThemeToggle`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/buttons-and-actions.md#themetoggle) | Light / dark / system switch that stores and applies the choice. | `ThemeToggle` |
|
|
523
523
|
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/buttons-actions-languageswitcher.webp" width="120" alt="LanguageSwitcher"> | [`LanguageSwitcher`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/buttons-and-actions.md#languageswitcher) | Globe button with a menu of the `I18nProvider` languages. | `LanguageSwitcher` |
|
|
524
524
|
|
|
@@ -639,7 +639,7 @@ Not components: what the stylesheet gives any element.
|
|
|
639
639
|
| <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` |
|
|
640
640
|
| <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. | — |
|
|
641
641
|
| <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` |
|
|
642
|
-
| <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), 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` |
|
|
642
|
+
| <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` |
|
|
643
643
|
| <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) |
|
|
644
644
|
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/data-table-filter-lists-daygroupedlist.webp" width="120" alt="DayGroupedList"> | [`DayGroupedList`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/data-table-filter-and-lists.md#daygroupedlist), `groupByDay` | A list split by day — Today, Yesterday, This week, Earlier — under headings that stick while their items scroll. | — (later) |
|
|
645
645
|
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/data-table-filter-lists-filter.webp" width="120" alt="Filter"> | [`Filter`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/data-table-filter-and-lists.md#filter), `FilterProvider`, `FilterContent`, `FilterChips`, `FilterPresets`, `FilterSheetTrigger`, `FilterBar`, `useFilterUrlQuery` · `FilterFormField` | Schema-driven filters with chips, presets, validation, and URL or storage persistence, and a query-driven `variant="bar"` / `"facets"` (quick filters, locked conditions, a phone sheet, a URL codec for a loader; `bandDensity="compact"` as on `ServerTable`), and `FilterBar`, the same bar bound to the URL for a feed or list without a table (`useFilterUrlQuery` is its hook, also `ServerTable`'s), a field `default` shown as an uncounted hint chip (a button that opens the editor on the default), a pressed toggle or checked values with a "Default" word (`defaults` prop), a `scope` field as a leading pill kept by "Clear all", a server refusal shown on the chip (`errors`, its words in the Alert under the bar unless `errorSummary={false}`), on the search box (`searchError`) or as an Alert under the bar (`formError`) and a model with `search: false`; the filter bar's "Filters (N)" (`FilterSheetTrigger`) can be placed inside a `ServerTable` (its actions). | `Filter`, `FilterProvider`, `FilterContent`, `FilterChips`, `FilterPresets`, `FilterSheetTrigger`, `FilterFormField`; `FilterBar`, `useFilterUrlQuery`: — (later, #1569) |
|
|
@@ -805,7 +805,7 @@ which is private: adding it needs a GitHub account with access to it.
|
|
|
805
805
|
| --- | --- |
|
|
806
806
|
| skill `use-nxgt-material` | an index that picks the component by need and wires imports and `styles.css`; its references cover the tokens and themes, forms, i18n, tests by role, SSR and the other subpaths, read from these docs in `node_modules/@nxgt/material/docs/` |
|
|
807
807
|
| skill `design-screens` | the library's visual language for a screen (hierarchy, rhythm, tones, surfaces, states, phone, dark, motion) and an 11-criteria grid to score a screen out of 5 |
|
|
808
|
-
| skill `screen-recipes` | whole screens to start from (a home dashboard, a list with a detail sheet, forms and dialogs, tables and settings), each the code of a tested `Guides/Recipes/<Name>` story |
|
|
808
|
+
| skill `screen-recipes` | whole screens to start from (a home dashboard, a list with a detail sheet, forms and dialogs, tables and settings, a dense record page, a status board and an occupancy board), each the code of a tested `Guides/Recipes/<Name>` story |
|
|
809
809
|
| agent `screen-builder` | builds a page or a form from the catalogue, with tests by role and name and an accessibility check, then looks at 360 and 1440 px screenshots in light and dark and fixes until the grid reads 4 everywhere |
|
|
810
810
|
| agent `design-reviewer` | read-only: scores a screen's screenshots on the same 11 criteria and returns the fixes ranked, each with the component and prop |
|
|
811
811
|
| skill `build-a-theme` + agent `theme-builder` | the app's own theme with `defineTheme`: seeds, tones, background and icon motif, generation, provider and picker; checks the AA contrast of the generated tokens in light and dark and looks at key screens |
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { i as e, r as t, t as n } from "./stored-language-
|
|
2
|
-
import { r } from "./translator-
|
|
1
|
+
import { i as e, r as t, t as n } from "./stored-language-Beyj2ult.js";
|
|
2
|
+
import { r } from "./translator-CBgIb3zP.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";
|
|
@@ -1,26 +1,14 @@
|
|
|
1
1
|
import { t as e } from "./utils-BLfntITJ.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import { t as
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import { jsx as S, jsxs as C } from "react/jsx-runtime";
|
|
11
|
-
//#region lib/components/ui/actions/button/busy-click-capture.ts
|
|
12
|
-
function w(e, t, n) {
|
|
13
|
-
return (r) => {
|
|
14
|
-
if (e || t.isLocked()) {
|
|
15
|
-
r.preventDefault(), r.stopPropagation();
|
|
16
|
-
return;
|
|
17
|
-
}
|
|
18
|
-
t.lock(), n?.(r);
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
//#endregion
|
|
2
|
+
import { t } from "./is-production-GLw59WU8.js";
|
|
3
|
+
import { n, t as r } from "./dist-DVRQkaTK.js";
|
|
4
|
+
import { n as i, r as a, t as o } from "./spinner-BpVwI1ps.js";
|
|
5
|
+
import { a as s, i as c, n as l, o as u, s as d, t as f } from "./use-click-lock-BZYtTmVt.js";
|
|
6
|
+
import { t as p } from "./button-group-context-CaP0X5p_.js";
|
|
7
|
+
import { t as m } from "./has-text-content-Ds2dkHX_.js";
|
|
8
|
+
import { Children as h, Fragment as g, cloneElement as _, isValidElement as v, useContext as y, useEffect as b } from "react";
|
|
9
|
+
import { jsx as x, jsxs as S } from "react/jsx-runtime";
|
|
22
10
|
//#region lib/components/ui/actions/button/button.compound-variants.ts
|
|
23
|
-
var
|
|
11
|
+
var C = [
|
|
24
12
|
{
|
|
25
13
|
variant: "filled",
|
|
26
14
|
color: "primary",
|
|
@@ -59,42 +47,42 @@ var T = [
|
|
|
59
47
|
{
|
|
60
48
|
variant: "tonal",
|
|
61
49
|
color: "primary",
|
|
62
|
-
class: `${
|
|
50
|
+
class: `${c.primary} ${l.primary} bg-primary/15 hover:bg-primary/10 active:bg-primary/5 focus:bg-primary/10`
|
|
63
51
|
},
|
|
64
52
|
{
|
|
65
53
|
variant: "tonal",
|
|
66
54
|
color: "secondary",
|
|
67
|
-
class: `${
|
|
55
|
+
class: `${c.secondary} ${l.secondary} bg-secondary/15 hover:bg-secondary/10 active:bg-secondary/5 focus:bg-secondary/10`
|
|
68
56
|
},
|
|
69
57
|
{
|
|
70
58
|
variant: "tonal",
|
|
71
59
|
color: "info",
|
|
72
|
-
class: `${
|
|
60
|
+
class: `${c.info} ${l.info} bg-info/15 hover:bg-info/10 active:bg-info/5 focus:bg-info/10`
|
|
73
61
|
},
|
|
74
62
|
{
|
|
75
63
|
variant: "tonal",
|
|
76
64
|
color: "success",
|
|
77
|
-
class: `${
|
|
65
|
+
class: `${c.success} ${l.success} bg-success/15 hover:bg-success/10 active:bg-success/5 focus:bg-success/10`
|
|
78
66
|
},
|
|
79
67
|
{
|
|
80
68
|
variant: "tonal",
|
|
81
69
|
color: "warning",
|
|
82
|
-
class: `${
|
|
70
|
+
class: `${c.warning} ${l.warning} bg-warning/15 hover:bg-warning/10 active:bg-warning/5 focus:bg-warning/10`
|
|
83
71
|
},
|
|
84
72
|
{
|
|
85
73
|
variant: "tonal",
|
|
86
74
|
color: "error",
|
|
87
|
-
class: `${
|
|
75
|
+
class: `${c.error} ${l.error} bg-error/15 hover:bg-error/10 active:bg-error/5 focus:bg-error/10`
|
|
88
76
|
},
|
|
89
77
|
{
|
|
90
78
|
variant: "tonal",
|
|
91
79
|
color: "default",
|
|
92
|
-
class: `${
|
|
80
|
+
class: `${c.default} ${l.default} bg-foreground/15 hover:bg-foreground/10 active:bg-muted focus:bg-muted`
|
|
93
81
|
},
|
|
94
82
|
{
|
|
95
83
|
variant: "ghost",
|
|
96
84
|
color: "primary",
|
|
97
|
-
class: `${
|
|
85
|
+
class: `${c.primary} ${l.primary} hover:bg-primary/10 active:bg-primary/5 focus:bg-primary/10`
|
|
98
86
|
},
|
|
99
87
|
{
|
|
100
88
|
variant: "ghost",
|
|
@@ -104,99 +92,99 @@ var T = [
|
|
|
104
92
|
{
|
|
105
93
|
variant: "ghost",
|
|
106
94
|
color: "secondary",
|
|
107
|
-
class: `${
|
|
95
|
+
class: `${c.secondary} ${l.secondary} hover:bg-secondary/10 active:bg-secondary/5 focus:bg-secondary/10`
|
|
108
96
|
},
|
|
109
97
|
{
|
|
110
98
|
variant: "ghost",
|
|
111
99
|
color: "success",
|
|
112
|
-
class: `${
|
|
100
|
+
class: `${c.success} ${l.success} hover:bg-success/10 active:bg-success/5 focus:bg-success/10`
|
|
113
101
|
},
|
|
114
102
|
{
|
|
115
103
|
variant: "ghost",
|
|
116
104
|
color: "info",
|
|
117
|
-
class: `${
|
|
105
|
+
class: `${c.info} ${l.info} hover:bg-info/10 active:bg-info/5 focus:bg-info/10`
|
|
118
106
|
},
|
|
119
107
|
{
|
|
120
108
|
variant: "ghost",
|
|
121
109
|
color: "warning",
|
|
122
|
-
class: `${
|
|
110
|
+
class: `${c.warning} ${l.warning} hover:bg-warning/10 active:bg-warning/5 focus:bg-warning/10`
|
|
123
111
|
},
|
|
124
112
|
{
|
|
125
113
|
variant: "ghost",
|
|
126
114
|
color: "error",
|
|
127
|
-
class: `${
|
|
115
|
+
class: `${c.error} ${l.error} hover:bg-error/10 active:bg-error/5 focus:bg-error/10`
|
|
128
116
|
},
|
|
129
117
|
{
|
|
130
118
|
variant: "outlined",
|
|
131
119
|
color: "primary",
|
|
132
|
-
class: `${
|
|
120
|
+
class: `${c.primary} ${l.primary} focus:bg-primary/10 hover:bg-primary/10`
|
|
133
121
|
},
|
|
134
122
|
{
|
|
135
123
|
variant: "outlined",
|
|
136
124
|
color: "secondary",
|
|
137
|
-
class: `${
|
|
125
|
+
class: `${c.secondary} ${l.secondary} focus:bg-secondary/10 hover:bg-secondary/10`
|
|
138
126
|
},
|
|
139
127
|
{
|
|
140
128
|
variant: "outlined",
|
|
141
129
|
color: "info",
|
|
142
|
-
class: `${
|
|
130
|
+
class: `${c.info} ${l.info} focus:bg-info/10 hover:bg-info/10`
|
|
143
131
|
},
|
|
144
132
|
{
|
|
145
133
|
variant: "outlined",
|
|
146
134
|
color: "success",
|
|
147
|
-
class: `${
|
|
135
|
+
class: `${c.success} ${l.success} focus:bg-success/10 hover:bg-success/10`
|
|
148
136
|
},
|
|
149
137
|
{
|
|
150
138
|
variant: "outlined",
|
|
151
139
|
color: "warning",
|
|
152
|
-
class: `${
|
|
140
|
+
class: `${c.warning} ${l.warning} focus:bg-warning/10 hover:bg-warning/10`
|
|
153
141
|
},
|
|
154
142
|
{
|
|
155
143
|
variant: "outlined",
|
|
156
144
|
color: "error",
|
|
157
|
-
class: `${
|
|
145
|
+
class: `${c.error} ${l.error} focus:bg-error/10 hover:bg-error/10`
|
|
158
146
|
},
|
|
159
147
|
{
|
|
160
148
|
variant: "outlined",
|
|
161
149
|
color: "default",
|
|
162
|
-
class: `${
|
|
150
|
+
class: `${c.default} ${l.default} focus:bg-foreground/10 hover:bg-foreground/10`
|
|
163
151
|
},
|
|
164
152
|
{
|
|
165
153
|
variant: "link",
|
|
166
154
|
color: "primary",
|
|
167
|
-
class: `${
|
|
155
|
+
class: `${c.primary} ${l.primary} hover:bg-primary/10 active:bg-primary/5 focus:bg-primary/10`
|
|
168
156
|
},
|
|
169
157
|
{
|
|
170
158
|
variant: "link",
|
|
171
159
|
color: "secondary",
|
|
172
|
-
class: `${
|
|
160
|
+
class: `${c.secondary} ${l.secondary} hover:bg-secondary/10 active:bg-secondary/5 focus:bg-secondary/10`
|
|
173
161
|
},
|
|
174
162
|
{
|
|
175
163
|
variant: "link",
|
|
176
164
|
color: "success",
|
|
177
|
-
class: `${
|
|
165
|
+
class: `${c.success} ${l.success} hover:bg-success/10 active:bg-success/5 focus:bg-success/10`
|
|
178
166
|
},
|
|
179
167
|
{
|
|
180
168
|
variant: "link",
|
|
181
169
|
color: "info",
|
|
182
|
-
class: `${
|
|
170
|
+
class: `${c.info} ${l.info} hover:bg-info/10 active:bg-info/5 focus:bg-info/10`
|
|
183
171
|
},
|
|
184
172
|
{
|
|
185
173
|
variant: "link",
|
|
186
174
|
color: "warning",
|
|
187
|
-
class: `${
|
|
175
|
+
class: `${c.warning} ${l.warning} hover:bg-warning/10 active:bg-warning/5 focus:bg-warning/10`
|
|
188
176
|
},
|
|
189
177
|
{
|
|
190
178
|
variant: "link",
|
|
191
179
|
color: "error",
|
|
192
|
-
class: `${
|
|
180
|
+
class: `${c.error} ${l.error} hover:bg-error/10 active:bg-error/5 focus:bg-error/10`
|
|
193
181
|
},
|
|
194
182
|
{
|
|
195
183
|
variant: "link",
|
|
196
184
|
color: "default",
|
|
197
|
-
class: `${
|
|
185
|
+
class: `${c.default} ${l.default} hover:bg-foreground/10 active:bg-muted focus:bg-foreground/10`
|
|
198
186
|
}
|
|
199
|
-
],
|
|
187
|
+
], w = i("nxgt-btn nxgt-morph-fill inline-flex center gap-[var(--btn-gap,0.5rem)] h-min cursor-pointer whitespace-nowrap disabled:pointer-events-none aria-busy:cursor-progress [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-[var(--btn-ic,1rem)] shrink-0 [&_svg]:shrink-0 aria-invalid:[--btn-focus:var(--color-error)] aria-invalid:[--btn-line:var(--color-error)] px-[calc(var(--btn-px,1rem)+var(--btn-dx,0px))] py-2 has-[>svg]:px-[calc(var(--btn-px,1rem)-var(--btn-pxi,0.25rem)+var(--btn-dx,0px))]", {
|
|
200
188
|
variants: {
|
|
201
189
|
variant: {
|
|
202
190
|
filled: "",
|
|
@@ -205,7 +193,7 @@ var T = [
|
|
|
205
193
|
outlined: "shadow-[inset_0_0_0_1.5px_color-mix(in_oklab,var(--btn-line,currentColor)_55%,transparent)]",
|
|
206
194
|
link: "nxgt-btn-bare focus:underline underline-offset-4 hover:underline"
|
|
207
195
|
},
|
|
208
|
-
color:
|
|
196
|
+
color: s,
|
|
209
197
|
size: {
|
|
210
198
|
xs: "h-(--btn-h) [--btn-h:24px] [--btn-px:12px] [--btn-pxi:4px] [--btn-gap:4px] [--btn-ic:14px] [--btn-sq:6px] [--btn-fs:var(--text-label-md)] [--btn-lh:var(--text-label-md--line-height)] [--btn-ls:var(--text-label-md--letter-spacing)] [--btn-fw:560]",
|
|
211
199
|
sm: "h-(--btn-h) [--btn-h:32px] [--btn-px:16px] [--btn-pxi:4px] [--btn-gap:6px] [--btn-ic:16px] [--btn-sq:8px] [--btn-fs:var(--text-label-lg)] [--btn-lh:var(--text-label-lg--line-height)] [--btn-ls:var(--text-label-lg--letter-spacing)] [--btn-fw:580]",
|
|
@@ -223,11 +211,11 @@ var T = [
|
|
|
223
211
|
variant: "filled",
|
|
224
212
|
color: "primary"
|
|
225
213
|
},
|
|
226
|
-
compoundVariants:
|
|
227
|
-
}),
|
|
214
|
+
compoundVariants: C
|
|
215
|
+
}), T = ((e) => w(e?.variant === "ghost" && e.color == null ? {
|
|
228
216
|
...e,
|
|
229
217
|
color: "default"
|
|
230
|
-
} : e)),
|
|
218
|
+
} : e)), E = {
|
|
231
219
|
xs: "min-h-6",
|
|
232
220
|
sm: "min-h-8",
|
|
233
221
|
default: "min-h-9",
|
|
@@ -235,94 +223,75 @@ var T = [
|
|
|
235
223
|
xl: "min-h-14",
|
|
236
224
|
"2xl": "min-h-24"
|
|
237
225
|
};
|
|
238
|
-
function
|
|
239
|
-
return !e || t?.startsWith("icon") ? !1 : `h-auto ${t ?
|
|
226
|
+
function D(e, t) {
|
|
227
|
+
return !e || t?.startsWith("icon") ? !1 : `h-auto ${t ? E[t] : ""} whitespace-normal **:whitespace-normal text-center`;
|
|
240
228
|
}
|
|
241
229
|
//#endregion
|
|
242
230
|
//#region lib/components/ui/actions/button/label-text.tsx
|
|
243
|
-
function
|
|
231
|
+
function O(e) {
|
|
244
232
|
let t = [], n = 0, r = [], i = () => {
|
|
245
233
|
if (r.length === 0) return;
|
|
246
234
|
let e = r.join("");
|
|
247
|
-
r = [], e.trim() === "" ? t.push(e) : t.push(/* @__PURE__ */
|
|
235
|
+
r = [], e.trim() === "" ? t.push(e) : t.push(/* @__PURE__ */ x("span", {
|
|
248
236
|
"data-slot": "button-label",
|
|
249
237
|
children: e
|
|
250
238
|
}, `label-${n++}`));
|
|
251
239
|
};
|
|
252
|
-
for (let n of
|
|
240
|
+
for (let n of h.toArray(e)) {
|
|
253
241
|
if (typeof n == "string" || typeof n == "number" || typeof n == "bigint") {
|
|
254
242
|
r.push(n);
|
|
255
243
|
continue;
|
|
256
244
|
}
|
|
257
|
-
i(), t.push(
|
|
245
|
+
i(), t.push(k(n));
|
|
258
246
|
}
|
|
259
247
|
return i(), t;
|
|
260
248
|
}
|
|
261
|
-
function
|
|
262
|
-
return
|
|
263
|
-
}
|
|
264
|
-
//#endregion
|
|
265
|
-
//#region lib/components/ui/actions/button/use-click-lock.ts
|
|
266
|
-
var M = 1e3;
|
|
267
|
-
function N(e, t) {
|
|
268
|
-
let n = b(!1), r = b(!1), i = b(void 0), [a, o] = x(!1), s = _(() => {
|
|
269
|
-
n.current = !1, r.current = !1, clearTimeout(i.current), o(!1);
|
|
270
|
-
}, []), c = _(() => {
|
|
271
|
-
e && (n.current = !0, o(!0), clearTimeout(i.current), i.current = setTimeout(() => {
|
|
272
|
-
r.current || s();
|
|
273
|
-
}, M));
|
|
274
|
-
}, [e, s]);
|
|
275
|
-
return y(() => {
|
|
276
|
-
n.current && (t ? r.current = !0 : r.current && s());
|
|
277
|
-
}, [t, s]), y(() => () => clearTimeout(i.current), []), {
|
|
278
|
-
locked: a,
|
|
279
|
-
lock: c,
|
|
280
|
-
isLocked: _(() => n.current, [])
|
|
281
|
-
};
|
|
249
|
+
function k(e) {
|
|
250
|
+
return v(e) && e.type === g ? _(e, void 0, O(e.props.children)) : e;
|
|
282
251
|
}
|
|
283
252
|
//#endregion
|
|
284
253
|
//#region lib/components/ui/actions/button/button.tsx
|
|
285
|
-
function
|
|
286
|
-
let
|
|
287
|
-
|
|
288
|
-
I && !
|
|
254
|
+
function A({ className: i, variant: a = "filled", asChild: s = !1, children: c, color: l, size: h, loading: g = !1, lockOnClick: _, spinnerVariant: v = "2", wrap: C, shape: w, selected: E, disabled: k, onClickCapture: A, type: j = "button", ...M }) {
|
|
255
|
+
let N = s ? r : "button", P = y(p), F = h ?? P, I = s && E !== void 0;
|
|
256
|
+
b(() => {
|
|
257
|
+
I && !t() && console.warn("Button: `selected` is ignored with `asChild`; set aria-pressed on the child element.");
|
|
289
258
|
}, [I]);
|
|
290
|
-
let L = !
|
|
291
|
-
return /* @__PURE__ */
|
|
259
|
+
let L = !s && E !== void 0, R = y(d) || !!(M["aria-label"] || M["aria-labelledby"]) || m(c), z = f(_, g), B = g || z.locked, V = u(B, z, A);
|
|
260
|
+
return /* @__PURE__ */ x(d, {
|
|
292
261
|
value: R,
|
|
293
|
-
children: /* @__PURE__ */
|
|
262
|
+
children: /* @__PURE__ */ S(N, {
|
|
294
263
|
"data-slot": "button",
|
|
295
|
-
"data-variant":
|
|
296
|
-
"data-color":
|
|
264
|
+
"data-variant": a,
|
|
265
|
+
"data-color": l,
|
|
297
266
|
"data-size": F,
|
|
298
|
-
"data-shape":
|
|
299
|
-
"data-selected": L &&
|
|
300
|
-
className: e("w-fit max-w-full min-w-0 justify-center",
|
|
301
|
-
variant:
|
|
302
|
-
color:
|
|
267
|
+
"data-shape": w,
|
|
268
|
+
"data-selected": L && E ? "true" : void 0,
|
|
269
|
+
className: e("w-fit max-w-full min-w-0 justify-center", s && "nxgt-btn-as-child overflow-clip text-ellipsis whitespace-nowrap [overflow-clip-margin:22px]", T({
|
|
270
|
+
variant: a,
|
|
271
|
+
color: l,
|
|
303
272
|
size: F
|
|
304
|
-
}),
|
|
305
|
-
type:
|
|
306
|
-
disabled:
|
|
307
|
-
...
|
|
308
|
-
"aria-disabled": B ||
|
|
309
|
-
"aria-busy": B ||
|
|
310
|
-
"aria-pressed": L ?
|
|
273
|
+
}), D(C, F), i),
|
|
274
|
+
type: s ? void 0 : j,
|
|
275
|
+
disabled: k,
|
|
276
|
+
...M,
|
|
277
|
+
"aria-disabled": B || M["aria-disabled"],
|
|
278
|
+
"aria-busy": B || M["aria-busy"],
|
|
279
|
+
"aria-pressed": L ? E : M["aria-pressed"],
|
|
311
280
|
onClickCapture: V,
|
|
312
|
-
children: [B && /* @__PURE__ */
|
|
313
|
-
variant:
|
|
314
|
-
color:
|
|
315
|
-
className: e("starting:scale-0 duration-500",
|
|
316
|
-
}), /* @__PURE__ */
|
|
281
|
+
children: [B && /* @__PURE__ */ x(o, {
|
|
282
|
+
variant: v,
|
|
283
|
+
color: a === "filled" ? "light" : l,
|
|
284
|
+
className: e("starting:scale-0 duration-500", v === "4" ? "size-7.5" : "size-4.5")
|
|
285
|
+
}), /* @__PURE__ */ x(n, { children: s ? c : O(c) })]
|
|
317
286
|
})
|
|
318
287
|
});
|
|
319
288
|
}
|
|
320
|
-
function
|
|
321
|
-
return e ? /* @__PURE__ */
|
|
289
|
+
function j({ tooltip: e, ...t }) {
|
|
290
|
+
return e ? /* @__PURE__ */ x(a, {
|
|
322
291
|
content: e,
|
|
323
|
-
children: /* @__PURE__ */
|
|
324
|
-
}) : /* @__PURE__ */
|
|
292
|
+
children: /* @__PURE__ */ x(A, { ...t })
|
|
293
|
+
}) : /* @__PURE__ */ x(A, { ...t });
|
|
325
294
|
}
|
|
326
|
-
var
|
|
295
|
+
var M = "tonal";
|
|
327
296
|
//#endregion
|
|
328
|
-
export {
|
|
297
|
+
export { T as i, M as n, O as r, j as t };
|