@nxgt/material 3.80.0 → 3.82.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 +66 -0
- package/README.md +4 -3
- package/dist/{alert-dialog-DgHtXZuB.js → alert-dialog-DXLJ4AZP.js} +75 -74
- package/dist/{async-slice-YBQsGtQT.js → async-slice-BfVokA46.js} +1 -1
- package/dist/{button-_vm-xSBU.js → button-CSKUtMI3.js} +2 -2
- package/dist/{calculator-CTd_S23A.js → calculator-Cv00UQgR.js} +10 -10
- package/dist/calculator-field.js +6 -6
- package/dist/{calculator-segment-OI1BT3bA.js → calculator-segment-CwnC2cV_.js} +1 -1
- package/dist/calculator.js +1 -1
- package/dist/charts.js +3 -3
- package/dist/{chip-DumcVzUO.js → chip-BGn0V6Pt.js} +3 -3
- package/dist/{code-editor-CiwgfSOK.js → code-editor-B25-mWhb.js} +4 -4
- package/dist/code-editor.js +4 -4
- package/dist/{code-language-items-Dip0xnmc.js → code-language-items-oRjtO3qV.js} +2 -2
- package/dist/components/base-content.css +11 -0
- package/dist/components/components.css +2 -0
- package/dist/components/ui/collections/data-table/data-table-items-tiles.css +27 -1
- package/dist/components/ui/collections/data-table/data-table-items.css +15 -0
- package/dist/components/ui/display/tube-cap/tube-cap.css +87 -0
- package/dist/{components-CJFHhkZv.js → components-BmZk-git.js} +19258 -18882
- package/dist/components.js +37 -37
- package/dist/{conversion-variant-CqrPwPjC.js → conversion-variant-wZd-G6xR.js} +3 -3
- package/dist/{currency-field-CMFvctye.js → currency-field-DizBTAat.js} +4 -4
- package/dist/{date.utils-DUvqcjan.js → date.utils-JTEIo3mM.js} +98 -98
- package/dist/{dialog-B0iU3fmh.js → dialog-B-3s-oXt.js} +3 -3
- package/dist/dnd.js +1 -1
- package/dist/{dropdown-menu-CPOgcajv.js → dropdown-menu-C6rcYGB9.js} +1 -1
- package/dist/editor.js +987 -980
- package/dist/{empty-state-D3Jggupu.js → empty-state-CSkghnD9.js} +1 -1
- package/dist/{financial-variant-BdyfYhnp.js → financial-variant-igpGRbGw.js} +5 -5
- package/dist/{hooks-Z7KKbv4G.js → hooks-k8_f3B0k.js} +2 -2
- package/dist/hooks.js +9 -8
- package/dist/{hover-card-CFGIX6kg.js → hover-card-DuaVVKMb.js} +1 -1
- package/dist/i18n.js +3 -3
- package/dist/{icon-badge-kxGWUvcO.js → icon-badge-3ThP6EOl.js} +1 -1
- package/dist/{icon-button-BamxMwZs.js → icon-button-4PKlaI1g.js} +2 -2
- package/dist/lib/components/ui/actions/button/button-tones.d.ts +17 -16
- package/dist/lib/components/ui/collections/day-grouped-list/day-grouped-list.d.ts +6 -1
- package/dist/lib/components/ui/collections/filter/use-filter-field-config.d.ts +2 -0
- package/dist/lib/components/ui/collections/server-table/types-states.d.ts +5 -1
- package/dist/lib/components/ui/display/index.d.ts +1 -0
- package/dist/lib/components/ui/display/tube-cap/index.d.ts +2 -0
- package/dist/lib/components/ui/display/tube-cap/tube-cap.d.ts +27 -0
- package/dist/lib/components/ui/display/tube-cap/tube-cap.kinds.d.ts +7 -0
- package/dist/lib/components/ui/fields/contacts/placeholders.d.ts +1 -1
- package/dist/lib/components/ui/fields/inline-edit/inline-edit-display.d.ts +5 -1
- package/dist/lib/components/ui/fields/inline-edit/inline-edit-editor.d.ts +6 -1
- package/dist/lib/components/ui/fields/inline-edit/inline-edit.d.ts +14 -1
- package/dist/lib/components/ui/fields/inline-edit/use-inline-edit.d.ts +4 -1
- package/dist/lib/components/ui/fields/repeatable-group/partials/repeatable-group-row.d.ts +3 -1
- package/dist/lib/components/ui/fields/repeatable-group/partials/repeatable-group-rows.d.ts +2 -1
- package/dist/lib/components/ui/fields/repeatable-group/repeatable-group.d.ts +1 -1
- package/dist/lib/components/ui/fields/repeatable-group/types.d.ts +7 -0
- package/dist/lib/components/ui/layout/dashboard-grid/dashboard-grid.types.d.ts +6 -1
- package/dist/lib/components/ui/layout/dashboard-grid/dashboard-tile.d.ts +1 -1
- package/dist/lib/components/ui/media/galleries/gallery.d.ts +1 -1
- package/dist/lib/components/ui/media/galleries/gallery.utils.d.ts +14 -0
- package/dist/lib/components/ui/media/galleries/lightbox-gallery.d.ts +1 -1
- package/dist/lib/components/ui/media/galleries/mini-gallery.d.ts +1 -1
- package/dist/lib/components/ui/media/galleries/partials/gallery-tile-button.d.ts +12 -0
- package/dist/lib/components/ui/media/galleries/partials/gallery-tile.d.ts +3 -1
- package/dist/lib/components/ui/overlays/dialog/dialog-parts.d.ts +1 -1
- package/dist/lib/components/ui/overlays/sheet/sheet-parts.d.ts +5 -0
- package/dist/lib/components/ui/selection/choice-card-group/choice-card-balance.d.ts +4 -0
- package/dist/lib/components/ui/selection/choice-card-group/choice-card-group.d.ts +3 -1
- package/dist/lib/components/ui/selection/choice-card-group/choice-card-group.types.d.ts +7 -0
- package/dist/lib/components/ui/selection/sortable-list/partials/sortable-list-body.d.ts +5 -1
- package/dist/lib/components/ui/selection/sortable-list/partials/sortable-list-row-parts.d.ts +2 -1
- package/dist/lib/components/ui/selection/sortable-list/partials/sortable-list-row-props.d.ts +8 -5
- package/dist/lib/components/ui/selection/sortable-list/partials/use-owed-focus.d.ts +10 -0
- package/dist/lib/components/ui/selection/sortable-list/sortable-list-context.d.ts +2 -0
- package/dist/lib/components/ui/selection/sortable-list/sortable-list.keyboard.d.ts +1 -1
- package/dist/lib/components/ui/widgets/event-calendar/event-calendar-context.d.ts +3 -0
- package/dist/lib/components/ui/widgets/event-calendar/event-calendar-shell.d.ts +15 -0
- package/dist/lib/components/ui/widgets/event-calendar/event-calendar-template.d.ts +9 -0
- package/dist/lib/components/ui/widgets/event-calendar/event-calendar.d.ts +7 -3
- package/dist/lib/components/ui/widgets/event-calendar/event-calendar.template.d.ts +41 -0
- package/dist/lib/components/ui/widgets/event-calendar/index.d.ts +1 -0
- package/dist/lib/components/ui/widgets/event-calendar/partials/calendar-date-nav.d.ts +2 -0
- package/dist/lib/components/ui/widgets/event-calendar/partials/calendar-lane-toggle.d.ts +5 -0
- package/dist/lib/components/ui/widgets/event-calendar/partials/time-grid-header-template.d.ts +7 -0
- package/dist/lib/components/ui/widgets/event-calendar/template.types.d.ts +73 -0
- package/dist/lib/components/ui/widgets/event-calendar/types.d.ts +2 -0
- package/dist/lib/components/ui/widgets/event-calendar/use-chip-event.d.ts +1 -0
- package/dist/lib/components/ui/widgets/event-calendar/use-drawn-events.d.ts +4 -3
- package/dist/lib/components/ui/widgets/event-calendar/use-template-calendar.d.ts +18 -0
- package/dist/lib/components/ui/widgets/event-calendar/use-template-lane.d.ts +17 -0
- package/dist/lib/hooks/index.d.ts +1 -0
- package/dist/lib/i18n/resources/en/en.d.ts +2 -0
- package/dist/lib/i18n/resources/en/material.json.d.ts +2 -0
- package/dist/lib/i18n/resources/fr/fr.d.ts +2 -0
- package/dist/lib/i18n/resources/fr/material.json.d.ts +2 -0
- package/dist/lib/i18n/resources/resources.d.ts +4 -0
- package/dist/lib/i18n/translator.d.ts +1 -1
- package/dist/lib/illustrations-game/index.d.ts +4 -3
- package/dist/lib.js +2 -2
- package/dist/main.js +53 -52
- package/dist/map.js +7 -7
- package/dist/material.css +1 -1
- package/dist/pdf-reader.js +1 -1
- package/dist/{percent-field-C2LNr8NA.js → percent-field-QwU1l2Q4.js} +1 -1
- package/dist/{picker-surface-BUCFMoAZ.js → picker-surface-CiTycWgV.js} +4 -4
- package/dist/{popover-DFRwQF12.js → popover-YmbzbKQG.js} +1 -1
- package/dist/{pos-types-CXnEdjdy.js → pos-types-BFrapNmx.js} +1 -1
- package/dist/{pos-variant-DMwn_7is.js → pos-variant-CctfqieO.js} +4 -4
- package/dist/print.js +1 -1
- package/dist/{programmer-variant-Bo4eiDFi.js → programmer-variant-Dd0YOixn.js} +2 -2
- package/dist/{public-CyQPkkSR.js → public-CshR_aW7.js} +10 -10
- package/dist/{rich-code-block-iK7UcZdc.js → rich-code-block-BuJLDoBu.js} +5 -5
- package/dist/{scientific-variant-B9ScTgfx.js → scientific-variant-CjErQxuZ.js} +2 -2
- package/dist/{sortable-provider-BZwVjSVU.js → sortable-provider-DU2nvpFc.js} +2 -2
- package/dist/{spinner-RITOxvpH.js → spinner-DH1mm8hH.js} +1 -1
- package/dist/{tabs-DSo4eCUn.js → tabs-Um0SFyf1.js} +1 -1
- package/dist/theme-picker.js +2 -2
- package/dist/{theme-toggle-3gbzQX0x.js → theme-toggle-C-Ih4uQU.js} +1 -1
- package/dist/{toolbar-items-Bt5RK-Nx.js → toolbar-items-BoEY5bkt.js} +4 -4
- package/dist/{translate-material-CZTGqgen.js → translate-material-D4rn5UaQ.js} +1 -1
- package/dist/{translator-DTlOlIoq.js → translator-CcEgQ-H7.js} +4 -0
- package/dist/{use-chat-composer-DBY01IpX.js → use-chat-composer-BfFcmDua.js} +1439 -1391
- package/dist/{use-click-lock-BZYtTmVt.js → use-click-lock-Bwg_caHO.js} +14 -14
- package/dist/{use-heading-spy-Dt48bBts.js → use-heading-spy-gDNtK1sU.js} +19 -19
- package/dist/{use-material-translation-BJucC_xe.js → use-material-translation-DYrfV_JJ.js} +1 -1
- package/dist/{use-return-focus-BS1JLcnq.js → use-return-focus-C_Qz_yTk.js} +1 -1
- package/docs/README.md +1 -1
- package/docs/components/data-display.md +36 -8
- package/docs/components/data-table-filter-and-lists.md +7 -3
- package/docs/components/form-fields.md +6 -0
- package/docs/components/media-and-files.md +1 -0
- package/docs/components/navigation-and-layout.md +3 -1
- package/docs/components/overlays-and-menus.md +11 -5
- package/docs/components/rich-widgets.md +85 -1
- package/docs/components/selection-and-choice.md +49 -10
- package/docs/guides/forms.md +7 -0
- package/docs/guides/helpers.md +23 -0
- package/docs/guides/icon-motifs.md +1 -1
- package/docs/guides/illustrations.md +5 -5
- package/docs/guides/layouts.md +2 -2
- package/docs/guides/theming.md +7 -7
- package/docs/previews/data-display-tubecap.webp +0 -0
- package/docs/previews/feedback-status-illustration-game.webp +0 -0
- package/docs/previews/selection-choice-sortablelist.webp +0 -0
- package/docs/roadmap.md +3 -1
- package/docs/troubleshooting.md +50 -2
- package/lib/components/base-content.css +11 -0
- package/lib/components/components.css +2 -0
- package/lib/components/ui/collections/data-table/data-table-items-tiles.css +27 -1
- package/lib/components/ui/collections/data-table/data-table-items.css +15 -0
- package/lib/components/ui/display/tube-cap/tube-cap.css +87 -0
- package/lib/themes/ambre.css +1 -1
- package/lib/themes/ardoise.css +1 -1
- package/lib/themes/bleumono.css +1 -1
- package/lib/themes/bluemoon.css +1 -1
- package/lib/themes/corail.css +2 -2
- package/lib/themes/foret.css +1 -1
- package/lib/themes/lavande.css +1 -1
- package/lib/themes/menthe.css +2 -2
- package/lib/themes/ocean.css +1 -1
- package/lib/themes/pink.css +2 -2
- package/lib/themes/prune.css +1 -1
- package/lib/themes/sable.css +1 -1
- package/lib/themes/slate.css +1 -1
- package/lib/themes/teal.css +2 -2
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,71 @@
|
|
|
1
1
|
# @nxgt/material
|
|
2
2
|
|
|
3
|
+
## 3.82.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#2466](https://github.com/softistx/nxgt-material/pull/2466) [`849e55f`](https://github.com/softistx/nxgt-material/commit/849e55f047f40dbf62459dd9611da743ee133e96) Thanks [@SteveGT96](https://github.com/SteveGT96)! - `DashboardTile` takes a `headingLevel` prop (`2` to `6`, default `3`, so nothing changes for existing tiles) to set the level of its title and keep the page's outline right. Fixes [#2453](https://github.com/softistx/nxgt-material/issues/2453).
|
|
8
|
+
|
|
9
|
+
- [#2476](https://github.com/softistx/nxgt-material/pull/2476) [`3451afc`](https://github.com/softistx/nxgt-material/commit/3451afc178b3173dcbe4710192e2e5f3389c5d0d) Thanks [@SteveGT96](https://github.com/SteveGT96)! - `@nxgt/material/illustrations/game` gains nine scenes for classic roles: `protector`, `elder`, `village-idiot`, `scapegoat`, `raven`, `fox`, `siblings`, `big-bad-wolf` and `wolf-father`, themed and dark-mode aware like the others. `fox` and `scapegoat` draw their animal as vector art (the sprites have none), in the same tone and dark mode as the icons. Fixes [#2473](https://github.com/softistx/nxgt-material/issues/2473).
|
|
10
|
+
|
|
11
|
+
- [#2478](https://github.com/softistx/nxgt-material/pull/2478) [`add1d9f`](https://github.com/softistx/nxgt-material/commit/add1d9f9d363ed48f1ef8f1e0c99354fa4a555b3) Thanks [@SteveGT96](https://github.com/SteveGT96)! - `InlineEdit` can be a document's title: `variant` sets the type step of its text and input, `headingLevel` (`1` to `6`) renders it as a heading, and `defaultEditing` (or `editing` with `onEditingChange`) opens it in editing mode. The input now has an accessible name even without a `label`. Defaults are unchanged. Fixes [#2457](https://github.com/softistx/nxgt-material/issues/2457).
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- [#2475](https://github.com/softistx/nxgt-material/pull/2475) [`f370c1c`](https://github.com/softistx/nxgt-material/commit/f370c1c9b2979799aab62b0d0732fbc3e278e9de) Thanks [@SteveGT96](https://github.com/SteveGT96)! - `ServerTable` and `DataTable` in the `cards` and `tiles` layouts no longer sit 4px inside their container: the list's room for the focus ring was inside the scroll box, so with `surface="none"` the first card started 4px right of a heading above it. The scroll box now takes that room back on both inline sides; the focus ring still fits. The list now reaches 4px past its parent on each inline side, so the parent needs that much inline room (a gutter) to avoid a horizontal scroll or a clipped ring. Fixes [#2472](https://github.com/softistx/nxgt-material/issues/2472).
|
|
16
|
+
|
|
17
|
+
- [#2463](https://github.com/softistx/nxgt-material/pull/2463) [`b28f55f`](https://github.com/softistx/nxgt-material/commit/b28f55f3be17138177cc803a5b24f664f13a445f) Thanks [@SteveGT96](https://github.com/SteveGT96)! - The `link` feature's toolbar control (and every other editor control that opens an `AlertDialog`) keeps `aria-expanded` and `aria-haspopup` on its button instead of on a wrapper `div`, so axe no longer reports `aria-allowed-attr`. `AlertDialogTrigger` now renders its child itself (`asChild`) with no extra `div` around it: a single element child is slotted (`asChild`), anything else (text, a fragment) gets the trigger's own button, and the wrapper `div` is gone. Fixes [#2461](https://github.com/softistx/nxgt-material/issues/2461).
|
|
18
|
+
|
|
19
|
+
- [#2468](https://github.com/softistx/nxgt-material/pull/2468) [`dadd372`](https://github.com/softistx/nxgt-material/commit/dadd3727328e7d8245ea143016fa87423e5463eb) Thanks [@SteveGT96](https://github.com/SteveGT96)! - `Gallery` with `preset="photos"` (justified rows) keeps a short last row at the row height and start-aligned, instead of stretching its few tiles across the whole width and blowing them up. A last row that is nearly full (it would need at most 1.3 times the target height to fill the width) still fills it, and a lone photo on a narrow screen follows the same rule. Fixes [#2445](https://github.com/softistx/nxgt-material/issues/2445).
|
|
20
|
+
- Updated dependencies [[`3451afc`](https://github.com/softistx/nxgt-material/commit/3451afc178b3173dcbe4710192e2e5f3389c5d0d)]:
|
|
21
|
+
- @nxgt/material-core@0.50.0
|
|
22
|
+
|
|
23
|
+
## 3.81.0
|
|
24
|
+
|
|
25
|
+
### Minor Changes
|
|
26
|
+
|
|
27
|
+
- [#2428](https://github.com/softistx/nxgt-material/pull/2428) [`01db466`](https://github.com/softistx/nxgt-material/commit/01db466820ad19e33444a07bc5bff474168f7130) Thanks [@SteveGT96](https://github.com/SteveGT96)! - `ChoiceCardGroup` balances its rows: four cards in room for three now draw 2+2 instead of 3+1 (and five in room for four draw 3+2). The column count follows the group's own width through container-query classes, so the server and the client print the same markup, and four fit in one row when the space allows. The new `balance` prop (default `true`) turns it off (`balance={false}`) to keep the previous fill-every-column layout. A balanced group's root is an `@container`, so in a shrink-to-fit parent (an inline-flex box) give the parent a width or pass `balance={false}`, which adds no container. Fixes [#2423](https://github.com/softistx/nxgt-material/issues/2423).
|
|
28
|
+
|
|
29
|
+
- [#2439](https://github.com/softistx/nxgt-material/pull/2439) [`77dc449`](https://github.com/softistx/nxgt-material/commit/77dc449ca58c3354274756d7790ba5dd3ae84a3f) Thanks [@SteveGT96](https://github.com/SteveGT96)! - `DayGroupedList` takes a `headingLevel` prop (`2` to `6`, default `3`, so nothing changes for existing lists) to set the level of each bucket's heading and keep the page's outline right. Fixes [#2438](https://github.com/softistx/nxgt-material/issues/2438).
|
|
30
|
+
|
|
31
|
+
- [#2454](https://github.com/softistx/nxgt-material/pull/2454) [`fd09402`](https://github.com/softistx/nxgt-material/commit/fd09402fce1e7c7b4fcbf3c682172ccfa9842483) Thanks [@SteveGT96](https://github.com/SteveGT96)! - `EventCalendar` has a template-week mode, `mode="template"`, for a recurring week such as a school timetable. The columns are named by weekday only, and there is no date navigation, Today button, today marker or now line. Events, slots and changes are keyed by ISO weekday (1 to 7) and `HH:mm` times (`EventCalendarTemplateEvent`, `EventCalendarTemplateSlot`, `EventCalendarTemplateChange`) instead of dates. Create, move, resize and the keyboard keep working. The optional `lanes` prop (`[{ id: 'A', label: 'Week A' }, …]`, with `lane`, `defaultLane` and `onLaneChange`) adds a switch to edit two alternating weeks in the same view: an event with a `lane` belongs to that week, one with none to every week. The dated props are unchanged, but `ComponentProps<typeof EventCalendar>` is now the union of the dated and template props: type a wrapper or a handler with `EventCalendarProps` (dated) or `EventCalendarTemplateProps`. Fixes [#2371](https://github.com/softistx/nxgt-material/issues/2371).
|
|
32
|
+
|
|
33
|
+
- [#2427](https://github.com/softistx/nxgt-material/pull/2427) [`12a87b4`](https://github.com/softistx/nxgt-material/commit/12a87b4001d0c5a2dcd1b3249f04bd1cfc56a26b) Thanks [@SteveGT96](https://github.com/SteveGT96)! - `@nxgt/material/hooks` exports `useSsrMediaQuery(query, serverValue)`, the hydration-safe media-query hook the library's own components use. Use it for a breakpoint `useIsMobile` (768px) does not cover, such as `(min-width: 80rem)`: the server and the hydrating client render `serverValue` (pass the desktop answer) and the client switches right after hydrating; a client-only render reads the real answer at once.
|
|
34
|
+
|
|
35
|
+
- [#2455](https://github.com/softistx/nxgt-material/pull/2455) [`2346f87`](https://github.com/softistx/nxgt-material/commit/2346f8762edcfc01b2fa97e0c7dcd3d222695423) Thanks [@SteveGT96](https://github.com/SteveGT96)! - A form grid can sit flush in a container that already pads it: add `data-padding="none"` to the `.form-grid-layout` element and its fields and actions lose their padding (the fields on all sides, the actions left and right), so they line up with the page's, card's or sheet's content edge instead of being double-padded. The default is unchanged. Fixes [#2452](https://github.com/softistx/nxgt-material/issues/2452).
|
|
36
|
+
|
|
37
|
+
- [#2419](https://github.com/softistx/nxgt-material/pull/2419) [`397062b`](https://github.com/softistx/nxgt-material/commit/397062be38a5e82a649f2e7f4deed358dc6d884e) Thanks [@SteveGT96](https://github.com/SteveGT96)! - `SortableList` and `SortableListFormField` pass axe: a row holds its own buttons (grip, move, remove), so the rows are `role="listitem"` of a `role="list"` instead of `option`s of a `listbox` (axe `nested-interactive`). Tab reaches the list on one row (a roving tab stop), the arrow keys move the focus from row to row and Space, Enter, Delete and Ctrl/⌘ + arrows keep their meaning when a row has the focus; a key pressed on a row's own button is no longer the list's. The grip's name carries the item (`Drag: Ada Lovelace`), and a truncated row title or subtitle (`ListPane` rows too) keeps its full text in a `title`. The component's props and emitted value are unchanged. For tests and queries: use `getByRole('list', { name })` and `getAllByRole('listitem')` in place of `listbox` and `option`; `aria-selected`, `aria-activedescendant` and `aria-required` are gone (`aria-disabled` stays on the rows of a disabled list or item, and a disabled list has no tab stop), so `required` only draws the asterisk. Fixes [#2416](https://github.com/softistx/nxgt-material/issues/2416).
|
|
38
|
+
|
|
39
|
+
- [#2471](https://github.com/softistx/nxgt-material/pull/2471) [`55555ad`](https://github.com/softistx/nxgt-material/commit/55555ad70ba3ac23717db1e48f37353efe967ec8) Thanks [@SteveGT96](https://github.com/SteveGT96)! - New `TubeCap` (`@nxgt/material/components`, Data display): a chip for a specimen tube. The cap colour follows the international tube convention (`kind`: `edta` lavender, `heparin` green, `citrate` light blue, `esr` black, `serum` red, `gel` gold, `fluoride` grey, `trace` royal blue, `other` plain), fixed and identical in light and dark and in every theme. The container's name (`label`, required) is written beside the cap, so colour never carries the meaning alone. Optional `volume`, `accession`, `action` and `size`. Fixes [#2467](https://github.com/softistx/nxgt-material/issues/2467).
|
|
40
|
+
|
|
41
|
+
### Patch Changes
|
|
42
|
+
|
|
43
|
+
- [#2465](https://github.com/softistx/nxgt-material/pull/2465) [`8e0853d`](https://github.com/softistx/nxgt-material/commit/8e0853d6bef57b72691d39b95f773778ac0028c7) Thanks [@SteveGT96](https://github.com/SteveGT96)! - In dark mode a tonal Button label now reaches 4.5:1 on a Card, a popover and the muted and accent surfaces, not only on the page and the ground, in every preset (teal success and secondary were 4.24 on a card, secondary 3.75 on muted). The dark secondary, info and success tonal labels are mixed toward white (80 %, 85 % and 70 % of the token). The dark success focus ring is a little lighter too. Nothing to adapt. Fixes [#2459](https://github.com/softistx/nxgt-material/issues/2459).
|
|
44
|
+
|
|
45
|
+
- [#2441](https://github.com/softistx/nxgt-material/pull/2441) [`9c2453f`](https://github.com/softistx/nxgt-material/commit/9c2453fd280520e609be48ab5fdb5cc576d10bfe) Thanks [@SteveGT96](https://github.com/SteveGT96)! - A field never exceeds its container: the 280px minimum width of `Textarea`, `InputGroupTextarea`, the labelled `Checkbox`, `ImageField`, `UploadField` and `NetworkUploadField` is now `min(280px, 100%)`. In a wide container the floor is the same; in a container narrower than 280px (a phone card, a narrow drawer or column) the field shrinks to fit instead of overflowing it. Fixes [#2210](https://github.com/softistx/nxgt-material/issues/2210).
|
|
46
|
+
|
|
47
|
+
- [#2443](https://github.com/softistx/nxgt-material/pull/2443) [`5b14c8f`](https://github.com/softistx/nxgt-material/commit/5b14c8fe3f43bdf56abdbf2913e2a3a236ef5c5a) Thanks [@SteveGT96](https://github.com/SteveGT96)! - `SheetFooter` now stacks its buttons in the same order as `DialogFooter` on a phone: write the secondary action first and the main one last, and the main one is on top (the footer is a reversed column). Before, a sheet showed them in source order, the opposite of a dialog. A sheet footer written main-first (`Apply`, `Reset`) now shows `Reset` on top: swap the two children, or add `flex-col` to its `className`. The order is stated in the Dialog and Sheet docs. Fixes [#2394](https://github.com/softistx/nxgt-material/issues/2394).
|
|
48
|
+
|
|
49
|
+
- [#2449](https://github.com/softistx/nxgt-material/pull/2449) [`8feff2a`](https://github.com/softistx/nxgt-material/commit/8feff2a393ca4d2f267d6720b2c6badb7488e67f) Thanks [@SteveGT96](https://github.com/SteveGT96)! - `Gallery` now honours the props you pass to it: an `aria-label` or `aria-labelledby` names the gallery (two galleries on a page can be told apart by screen-reader users), and `id`, `data-*` and other div props reach its root element. Without a name, the default "Gallery" label stays; a given `aria-labelledby` replaces it. `MiniGallery` and `LightboxGallery` accept the same two name props. Fixes [#2447](https://github.com/softistx/nxgt-material/issues/2447).
|
|
50
|
+
|
|
51
|
+
- [#2434](https://github.com/softistx/nxgt-material/pull/2434) [`a7173d5`](https://github.com/softistx/nxgt-material/commit/a7173d516a3fe051ddf668f02254a8828adc3435) Thanks [@SteveGT96](https://github.com/SteveGT96)! - `ListTile` `actions` no longer stretch the row: they are centred on it, so a tile with actions has the height and the title-to-subtitle rhythm of one without. Fixes [#2392](https://github.com/softistx/nxgt-material/issues/2392).
|
|
52
|
+
|
|
53
|
+
- [#2424](https://github.com/softistx/nxgt-material/pull/2424) [`92d5a03`](https://github.com/softistx/nxgt-material/commit/92d5a03d292834e95ffa6f63ed4aaefd60474b9b) Thanks [@SteveGT96](https://github.com/SteveGT96)! - RepeatableGroup and RepeatableGroupFormField take `removeAtMin="hide"`: at `min` rows the Remove button is not rendered instead of shown disabled (default `'disable'`, unchanged). Nothing to adapt. Fixes [#2389](https://github.com/softistx/nxgt-material/issues/2389).
|
|
54
|
+
|
|
55
|
+
- [#2425](https://github.com/softistx/nxgt-material/pull/2425) [`fe38112`](https://github.com/softistx/nxgt-material/commit/fe38112ee2371789ba4ee11e660aeb78c41d2775) Thanks [@SteveGT96](https://github.com/SteveGT96)! - The roadmap lists the layouts effort as shipped in 3.80.0.
|
|
56
|
+
|
|
57
|
+
- [#2433](https://github.com/softistx/nxgt-material/pull/2433) [`4300c78`](https://github.com/softistx/nxgt-material/commit/4300c781b06112e0d11f89aa6ffd589f93b33def) Thanks [@SteveGT96](https://github.com/SteveGT96)! - New recipe `Guides/Recipes/Search dialog and results page`: a command dialog (Ctrl/Cmd+K and a header button) with debounced suggestions grouped by type, and a results page with type chips, a filter that appears only where it applies and highlighted result cards, with its code in the `nxgt-material` plugin's `screen-recipes` skill (2.7.0).
|
|
58
|
+
|
|
59
|
+
- [#2429](https://github.com/softistx/nxgt-material/pull/2429) [`fc72811`](https://github.com/softistx/nxgt-material/commit/fc7281170ce58ca57c1065a8b65d3f51a4280526) Thanks [@SteveGT96](https://github.com/SteveGT96)! - `ServerTable`'s `error` takes an `illustration` (a scene id, a node, `true` or `false`), as `empty.none` and `empty.noMatch` do, replacing the scene its `kind` picks. Fixes [#2388](https://github.com/softistx/nxgt-material/issues/2388).
|
|
60
|
+
|
|
61
|
+
- [#2435](https://github.com/softistx/nxgt-material/pull/2435) [`b1c0445`](https://github.com/softistx/nxgt-material/commit/b1c0445d3a0cc43058c19864578b9db6ee197203) Thanks [@SteveGT96](https://github.com/SteveGT96)! - ServerTable (and DataTable) tiles: the selection checkbox sits on the tile's title row instead of the tile's vertical middle, and the tile's content starts at the top, so a multi-line tile no longer puts the box level with its body text. `item.Row` record rows keep the box centred. The phone select-all checkbox keeps an accessible name in every state. Nothing to adapt. Fixes [#2391](https://github.com/softistx/nxgt-material/issues/2391).
|
|
62
|
+
|
|
63
|
+
- [#2436](https://github.com/softistx/nxgt-material/pull/2436) [`30ee430`](https://github.com/softistx/nxgt-material/commit/30ee430749af42cf1056b5fb106d7812f8d41a5c) Thanks [@SteveGT96](https://github.com/SteveGT96)! - `StickyActionBar` no longer adds its own 1rem of horizontal padding: its leading and trailing edges are those of the column it sits in, so its buttons line up with the cards and fields above instead of ending 16px short (sticky or inline). Below `md` it still pads clear of the left and right safe areas. Fixes [#2393](https://github.com/softistx/nxgt-material/issues/2393).
|
|
64
|
+
|
|
65
|
+
- [#2431](https://github.com/softistx/nxgt-material/pull/2431) [`ec1da47`](https://github.com/softistx/nxgt-material/commit/ec1da478f72e8987a8e13192e7752d54f5ba20ea) Thanks [@SteveGT96](https://github.com/SteveGT96)! - A tonal Button label now reaches 4.5:1 straight on the tinted page (`--ground`), not only on a card or a striped row, in every preset and in both themes. The light `--primary-text` share is solved against the ground too (teal 92 %, corail 88 %, pink 92 %, menthe 95 %), the secondary, info and success tonal labels are mixed 10 % toward black in light, and the error one 20 %. A new contrast pair `primary-text / primary@ground15` guards it. Nothing to adapt: regenerate a theme file to take the new shares. Fixes [#2398](https://github.com/softistx/nxgt-material/issues/2398).
|
|
66
|
+
- Updated dependencies [[`ec1da47`](https://github.com/softistx/nxgt-material/commit/ec1da478f72e8987a8e13192e7752d54f5ba20ea)]:
|
|
67
|
+
- @nxgt/material-core@0.49.2
|
|
68
|
+
|
|
3
69
|
## 3.80.0
|
|
4
70
|
|
|
5
71
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -210,7 +210,7 @@ reads `duotone.svg`, the file that exists (it used to ask for the missing
|
|
|
210
210
|
| `@nxgt/material/illustrations` | State illustrations: `Illustration` (`scene`: `empty`, `no-results`, `not-found`, `error`, `offline`, `success`, `welcome`, `forbidden`, `maintenance`, `invitation`, `sign-in`, `empty-inbox`, or an id of the `scenes` table it is given; `size`, `title`, `animated`, `hero`, `satellites`, `iconStyle`, `tone`, `duotone`) draws a hero icon on a Material 3 Expressive plate with satellites, from the Font Awesome sprites your app serves (no icon artwork ships); `IllustrationDefaults` (`icons`: `'suggested'` or a table, `iconStyle`, `sets`) opts a subtree's `EmptyState` and `ErrorState` into them; `ILLUSTRATION_SCENES`, `SUGGESTED_ICONS` and the types re-exported from `@nxgt/material-core/illustrations` (`SceneRow`, `SceneTable`), plus `IconStyleInput` and `IconStyleRef` (the `iconStyle` types: `{ family?, type? }` or one of the 37 sprite file names), `SceneId` and `RegisteredScene` (the scene id types: the built-in ids plus those registered through `IllustrationSceneRegistry` by an imported set, or through `RegisteredScenes` by you), `RegisteredScenes` (an interface to augment with the ids of a table of your own registered through `sets`) and `SceneTableIds` (the helper type that gives a table's ids: `interface RegisteredScenes extends SceneTableIds<typeof MY_SCENES> {}`). `unauthorized` and `maintenance` states draw the `forbidden` and `maintenance` scenes. `EmptyState`, `ErrorState` and the `DataTable` empty row (`emptyIllustration`) also take `illustration` as a scene id or `true`. Colours are theme tones in `styles.css`; its own entry ([illustrations guide](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/guides/illustrations.md)) |
|
|
211
211
|
| `@nxgt/material/illustrations/health` | The health scenes: `HEALTH_SCENES` (`patient-record`, `consultation`, `appointment`, `lab-sample`, `prescription`, `vaccination`, `hospitalisation`, `emergency`, `no-patients`, `lab-results`), `HEALTH_SCENE_IDS`, `HEALTH_SUGGESTED_ICONS`, `HealthScene`; register it with `<IllustrationDefaults sets={[HEALTH_SCENES]}>` so `<Illustration scene="patient-record" />` and `<EmptyState illustration="no-patients" />` work (or pass `scenes={HEALTH_SCENES}` to one `Illustration`); importing it adds the ids to `SceneId`. An app that does not import it does not carry it |
|
|
212
212
|
| `@nxgt/material/illustrations/education` | The education scenes: `EDUCATION_SCENES` (`classroom`, `homework`, `exam-grades`, `timetable`, `attendance`, `enrolment`, `library`, `graduation`, `no-students`, `report-card`), `EDUCATION_SCENE_IDS`, `EDUCATION_SUGGESTED_ICONS`, `EducationScene`; register it with `<IllustrationDefaults sets={[EDUCATION_SCENES]}>` so `<Illustration scene="classroom" />` and `<EmptyState illustration="no-students" />` work (or pass `scenes={EDUCATION_SCENES}` to one `Illustration`); importing it adds the ids to `SceneId`. An app that does not import it does not carry it |
|
|
213
|
-
| `@nxgt/material/illustrations/game` | The game scenes, for a game, quiz, community or event app: `GAME_SCENES` (`night-sky`, `dawn`, `village`, `day-village`, `graveyard`, `seer`, `healer`, `archer`, `cupid`, `wolf`, `villager`, `witch`, `victory`, `empty-table`, `waiting-players`, `connection-lost`), `GAME_SCENE_IDS`, `GAME_SUGGESTED_ICONS`, `GameScene`; register it with `<IllustrationDefaults sets={[GAME_SCENES]}>` so `<Illustration scene="village" />` and `<EmptyState illustration="empty-table" />` work (or pass `scenes={GAME_SCENES}` to one `Illustration`); importing it adds the ids to `SceneId`. Pass `title` for an accessible name, otherwise the picture is decorative (`aria-hidden`). An app that does not import it does not carry it |
|
|
213
|
+
| `@nxgt/material/illustrations/game` | The game scenes, for a game, quiz, community or event app: `GAME_SCENES` (twenty-five scenes: `night-sky`, `dawn`, `village`, `day-village`, `graveyard`, `seer`, `healer`, `archer`, `cupid`, `wolf`, `villager`, `witch`, `protector`, `elder`, `village-idiot`, `scapegoat`, `raven`, `fox`, `siblings`, `big-bad-wolf`, `wolf-father`, `victory`, `empty-table`, `waiting-players`, `connection-lost`), `GAME_SCENE_IDS`, `GAME_SUGGESTED_ICONS`, `GameScene`; register it with `<IllustrationDefaults sets={[GAME_SCENES]}>` so `<Illustration scene="village" />` and `<EmptyState illustration="empty-table" />` work (or pass `scenes={GAME_SCENES}` to one `Illustration`); importing it adds the ids to `SceneId`. Pass `title` for an accessible name, otherwise the picture is decorative (`aria-hidden`). An app that does not import it does not carry it |
|
|
214
214
|
| `@nxgt/material/backgrounds` | Background presets: `Background` (a superset of the `/components` one: `preset`, `animated`, `grain`, `seed`, `fill`, `motif`, and for `preset="icons"` `icons`, `iconStyle` and `iconMotif`), `AVAILABLE_BACKGROUND_PRESETS` and `AvailableBackgroundPreset` (the 52 ids `Background` draws), `MoonOptions` (the `moon` prop), `IconMotifOptions` (`iconMotif`, with `quiet`: a band the icons fade out of for text), `IconLayout`, `IconQuiet`, `SkyPreset` and `CelestialPreset` (the `sky` ids), `IconsInput` (`icons`), `IconStyleInput` and `IconStyleRef` (`iconStyle`: `{ family?, type? }` or one of the 37 sprite file names, completed by the editor, any other string is a type error), `sky` (`'moon'` or a celestial preset over any preset, also read from the theme's `background.sky`; the four celestial presets and `sky` share the opt-in `@nxgt/material/backgrounds/celestial.css`, also in `backgrounds.css`), `MOTIF_SHAPES_ALL` (the 25 motif shapes), the `MotifLayout` type, the types and tables (`BACKGROUND_PRESETS`, `BACKGROUND_TONES`, ...) re-exported from `@nxgt/material-core/backgrounds`; its own entry, with an opt-in stylesheet ([backgrounds guide](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/guides/backgrounds.md)) |
|
|
215
215
|
| `@nxgt/material/editor` | The rich text editor: `DocumentEditor` and `DocumentEditorFormField` (with an `outline`, a block handle, focus mode, find and replace, `onUpload`, `onAssist` and `comments`), `CompactEditor` and `CompactEditorFormField`, `RichChatComposer`, `EditorRoot` and the parts (`EditorToolbar`, `EditorContent`, `EditorFooter`, `EditorAssistantPanel`, ...), `useEditor`, the kits (`documentKit`, `compactKit`, `chatKit`, `formNodesKit`), `withFeatures` / `withoutFeatures` and `defineFeature`, and the converters `toHtml`, `toJson`, `toMarkdown`, `fromMarkdown` and `looksLikeMarkdown` — **its own entry, and not in the barrel above**. **Client-only**: import it from a `'use client'` file; `/editor/viewer` is the server-safe one. The `.nxgt-prose` page styles ship in `styles.css` with the component CSS ([DocumentEditor](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/rich-widgets.md#documenteditor)) |
|
|
216
216
|
| `@nxgt/material/editor/viewer` | `RichTextViewer`: shows a saved document (HTML, JSON or Markdown) read-only, **server-safe**, with no editor instance and no `'use client'` ([RichTextViewer](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/rich-widgets.md#richtextviewer)) |
|
|
@@ -714,6 +714,7 @@ Not components: what the stylesheet gives any element.
|
|
|
714
714
|
| <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` |
|
|
715
715
|
| <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` |
|
|
716
716
|
| <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` |
|
|
717
|
+
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/data-display-tubecap.webp" width="120" alt="TubeCap"> | [`TubeCap`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/data-display.md#tubecap) | A specimen tube's chip: a cap in its fixed convention colour, the container's name beside it, optional volume, accession and action | `TubeCap` |
|
|
717
718
|
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/data-display-summarydata.webp" width="120" alt="SummaryData"> | [`SummaryData`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/data-display.md#summarydata) | Label / value pairs as a grid or inline; hides empty values. | `SummaryData` |
|
|
718
719
|
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/data-display-description.webp" width="120" alt="Description"> | [`Description`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/data-display.md#description) | Read-only label / value pair that renders nothing when empty. | `Description` |
|
|
719
720
|
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/data-display-descriptionlist.webp" width="120" alt="DescriptionList"> | [`DescriptionList`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/data-display.md#descriptionlist), `DescriptionList.Group` | Dense auto-fill grid of `Description`s in a `dl` (`minItem`, `maxColumns`, `meta`, `span`, `labelPosition`, `lines`), or tonal panels per group with `variant="panels"`. | — (later, [#1614](https://github.com/softistx/nxgt-material/issues/1614)) |
|
|
@@ -870,7 +871,7 @@ Not components: what the stylesheet gives any element.
|
|
|
870
871
|
| --- | --- | --- | --- |
|
|
871
872
|
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/rich-widgets-chat-overview.webp" width="120" alt="ChatInbox"> | [`ChatInbox`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/rich-widgets.md#chat-kit), `ChatThread`, `ChatMessageList`, `ChatMessage`, `ChatComposer`, `ChatThreadHeader`, `ChatWidget`, `ChatConversationItem`, `ChatActionProposal`, `ChatToolActivity`… | Chat kit: inbox (list + thread, container queries from `@md`), bubbles grouped by sender or flat rows, read receipts, replies, reactions and a message toolbar, a pill composer with quick replies, attachments and stop, a floating chat widget, an approval card for an assistant's proposed action and a compact tool-step row; 320 px to desktop, light and dark. | `ChatInbox`, `ChatThread`, `ChatMessageList`, `ChatMessage`, `ChatComposer` (same parts; `ChatActionProposal` and `ChatToolActivity` not yet, [#2145](https://github.com/softistx/nxgt-material/issues/2145)) |
|
|
872
873
|
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/rich-widgets-kanban.webp" width="120" alt="Kanban"> | [`Kanban`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/rich-widgets.md#kanban) | Board with columns, swimlanes, WIP limits, search, and drag-and-drop cards and columns. | `Kanban` |
|
|
873
|
-
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/rich-widgets-eventcalendar.webp" width="120" alt="EventCalendar"> | [`EventCalendar`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/rich-widgets.md#eventcalendar) | Month / week / day / agenda calendar with drag, resize and slot creation, a day view split by resource, a named time zone, a now line, a mini-month side panel and a phone layout. | `EventCalendar` |
|
|
874
|
+
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/rich-widgets-eventcalendar.webp" width="120" alt="EventCalendar"> | [`EventCalendar`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/rich-widgets.md#eventcalendar) | Month / week / day / agenda calendar with drag, resize and slot creation, a day view split by resource, a named time zone, a recurring template week (`mode="template"`), a now line, a mini-month side panel and a phone layout. | `EventCalendar` |
|
|
874
875
|
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/rich-widgets-native-charts-linechart.webp" width="120" alt="LineChart"> | [`LineChart`, `AreaChart`, `BarChart`, `PieChart`, `DonutChart`, `Gauge`, `RadialBarChart`, `FunnelChart`, `HeatmapChart`, `RadarChart`, `ScatterChart`, `ComboChart`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/rich-widgets.md#charts) from `@nxgt/material/charts` | Native SVG charts with keyboard point navigation, a screen-reader summary, a "View data" table, `patterns`, a hide/isolate legend, zoom and phone scroll (client-only entry; [guide](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/guides/charts.md)). | [not yet](https://github.com/softistx/nxgt-material/issues/1255) (#1255) |
|
|
875
876
|
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/rich-widgets-emojipicker.webp" width="120" alt="EmojiPicker"> | [`EmojiPicker`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/rich-widgets.md#emojipicker), `EmojiList` | Shared picker. `ChatComposer` takes `emojis`; `Markdown` expands `:shortcode:`; the RTE toolbar uses the same picker. | `EmojiPicker`, `EmojiList` |
|
|
876
877
|
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/rich-widgets-mentionlist.webp" width="120" alt="MentionList"> | [`MentionList`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/rich-widgets.md#mentionlist) | `@` mention list from an `items` prop (local search). ChatComposer and the RTE suggestion list use it. | `MentionList` |
|
|
@@ -931,7 +932,7 @@ which is private: adding it needs a GitHub account with access to it.
|
|
|
931
932
|
| --- | --- |
|
|
932
933
|
| 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/` |
|
|
933
934
|
| skill `design-screens` | the library's visual language for a screen (hierarchy, rhythm, tones, surfaces, states, phone, dark, motion) and a 12-criteria grid to score a screen out of 5 |
|
|
934
|
-
| 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
|
|
935
|
+
| 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, an occupancy board, a landing page and a search dialog with its results page), each the code of a tested `Guides/Recipes/<Name>` story |
|
|
935
936
|
| 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 |
|
|
936
937
|
| agent `design-reviewer` | read-only: scores a screen's screenshots on the same 12 criteria and returns the fixes ranked, each with the component and prop |
|
|
937
938
|
| 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 |
|
|
@@ -4,67 +4,68 @@ import { o as n } from "./dist-DVRQkaTK.js";
|
|
|
4
4
|
import { r } from "./dist-DWZXlCZR.js";
|
|
5
5
|
import { a as i } from "./dist-DHdUUM1w.js";
|
|
6
6
|
import { t as a } from "./in-dialog-D61Yeaol.js";
|
|
7
|
-
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-
|
|
7
|
+
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-C_Qz_yTk.js";
|
|
8
8
|
import { i as _ } from "./escape-owner-DpaP0lm1.js";
|
|
9
9
|
import * as v from "react";
|
|
10
|
-
import {
|
|
10
|
+
import { Fragment as y, isValidElement as b } from "react";
|
|
11
|
+
import { jsx as x, jsxs as S } from "react/jsx-runtime";
|
|
11
12
|
//#region ../../node_modules/@radix-ui/react-alert-dialog/dist/index.mjs
|
|
12
|
-
var
|
|
13
|
-
Action: () =>
|
|
14
|
-
AlertDialog: () =>
|
|
15
|
-
AlertDialogAction: () =>
|
|
16
|
-
AlertDialogCancel: () =>
|
|
17
|
-
AlertDialogContent: () =>
|
|
18
|
-
AlertDialogDescription: () =>
|
|
19
|
-
AlertDialogOverlay: () =>
|
|
20
|
-
AlertDialogPortal: () =>
|
|
21
|
-
AlertDialogTitle: () =>
|
|
22
|
-
AlertDialogTrigger: () =>
|
|
23
|
-
Cancel: () =>
|
|
24
|
-
Content: () =>
|
|
25
|
-
Description: () =>
|
|
26
|
-
Overlay: () =>
|
|
27
|
-
Portal: () =>
|
|
28
|
-
Root: () =>
|
|
29
|
-
Title: () =>
|
|
30
|
-
Trigger: () =>
|
|
31
|
-
createAlertDialogScope: () =>
|
|
32
|
-
}),
|
|
13
|
+
var C = /* @__PURE__ */ e({
|
|
14
|
+
Action: () => K,
|
|
15
|
+
AlertDialog: () => k,
|
|
16
|
+
AlertDialogAction: () => R,
|
|
17
|
+
AlertDialogCancel: () => B,
|
|
18
|
+
AlertDialogContent: () => F,
|
|
19
|
+
AlertDialogDescription: () => L,
|
|
20
|
+
AlertDialogOverlay: () => M,
|
|
21
|
+
AlertDialogPortal: () => j,
|
|
22
|
+
AlertDialogTitle: () => I,
|
|
23
|
+
AlertDialogTrigger: () => A,
|
|
24
|
+
Cancel: () => q,
|
|
25
|
+
Content: () => G,
|
|
26
|
+
Description: () => Y,
|
|
27
|
+
Overlay: () => W,
|
|
28
|
+
Portal: () => U,
|
|
29
|
+
Root: () => V,
|
|
30
|
+
Title: () => J,
|
|
31
|
+
Trigger: () => H,
|
|
32
|
+
createAlertDialogScope: () => D
|
|
33
|
+
}), w = Object.defineProperty, T = (e, t) => w(e, "name", {
|
|
33
34
|
value: t,
|
|
34
35
|
configurable: !0
|
|
35
|
-
}), [
|
|
36
|
+
}), [E, D] = i("AlertDialog", [c]), O = c(), k = /* @__PURE__ */ T((e) => {
|
|
36
37
|
let { __scopeAlertDialog: t, ...n } = e;
|
|
37
|
-
return /* @__PURE__ */
|
|
38
|
-
...
|
|
38
|
+
return /* @__PURE__ */ x(p, {
|
|
39
|
+
...O(t),
|
|
39
40
|
...n,
|
|
40
41
|
modal: !0
|
|
41
42
|
});
|
|
42
|
-
}, "AlertDialog"),
|
|
43
|
+
}, "AlertDialog"), A = v.forwardRef(/* @__PURE__ */ T(function(e, t) {
|
|
43
44
|
let { __scopeAlertDialog: n, ...r } = e;
|
|
44
|
-
return /* @__PURE__ */
|
|
45
|
-
...
|
|
45
|
+
return /* @__PURE__ */ x(g, {
|
|
46
|
+
...O(n),
|
|
46
47
|
...r,
|
|
47
48
|
ref: t
|
|
48
49
|
});
|
|
49
|
-
}, "AlertDialogTrigger")),
|
|
50
|
+
}, "AlertDialogTrigger")), j = /* @__PURE__ */ T((e) => {
|
|
50
51
|
let { __scopeAlertDialog: t, ...n } = e;
|
|
51
|
-
return /* @__PURE__ */
|
|
52
|
-
...
|
|
52
|
+
return /* @__PURE__ */ x(s, {
|
|
53
|
+
...O(t),
|
|
53
54
|
...n
|
|
54
55
|
});
|
|
55
|
-
}, "AlertDialogPortal"),
|
|
56
|
+
}, "AlertDialogPortal"), M = v.forwardRef(/* @__PURE__ */ T(function(e, t) {
|
|
56
57
|
let { __scopeAlertDialog: n, ...r } = e;
|
|
57
|
-
return /* @__PURE__ */
|
|
58
|
-
...
|
|
58
|
+
return /* @__PURE__ */ x(m, {
|
|
59
|
+
...O(n),
|
|
59
60
|
...r,
|
|
60
61
|
ref: t
|
|
61
62
|
});
|
|
62
|
-
}, "AlertDialogOverlay")), [
|
|
63
|
-
let { __scopeAlertDialog: i, children: a, ...s } = e, c =
|
|
64
|
-
return /* @__PURE__ */
|
|
63
|
+
}, "AlertDialogOverlay")), [N, P] = E("AlertDialogContent"), F = v.forwardRef(/* @__PURE__ */ T(function(e, t) {
|
|
64
|
+
let { __scopeAlertDialog: i, children: a, ...s } = e, c = O(i), l = n(t, v.useRef(null)), u = v.useRef(null);
|
|
65
|
+
return /* @__PURE__ */ x(N, {
|
|
65
66
|
scope: i,
|
|
66
67
|
cancelRef: u,
|
|
67
|
-
children: /* @__PURE__ */
|
|
68
|
+
children: /* @__PURE__ */ x(o, {
|
|
68
69
|
role: "alertdialog",
|
|
69
70
|
...c,
|
|
70
71
|
...s,
|
|
@@ -77,65 +78,65 @@ var x = /* @__PURE__ */ e({
|
|
|
77
78
|
children: a
|
|
78
79
|
})
|
|
79
80
|
});
|
|
80
|
-
}, "AlertDialogContent")),
|
|
81
|
+
}, "AlertDialogContent")), I = v.forwardRef(/* @__PURE__ */ T(function(e, t) {
|
|
81
82
|
let { __scopeAlertDialog: n, ...r } = e;
|
|
82
|
-
return /* @__PURE__ */
|
|
83
|
-
...
|
|
83
|
+
return /* @__PURE__ */ x(u, {
|
|
84
|
+
...O(n),
|
|
84
85
|
...r,
|
|
85
86
|
ref: t
|
|
86
87
|
});
|
|
87
|
-
}, "AlertDialogTitle")),
|
|
88
|
+
}, "AlertDialogTitle")), L = v.forwardRef(/* @__PURE__ */ T(function(e, t) {
|
|
88
89
|
let { __scopeAlertDialog: n, ...r } = e;
|
|
89
|
-
return /* @__PURE__ */
|
|
90
|
-
...
|
|
90
|
+
return /* @__PURE__ */ x(f, {
|
|
91
|
+
...O(n),
|
|
91
92
|
...r,
|
|
92
93
|
ref: t
|
|
93
94
|
});
|
|
94
|
-
}, "AlertDialogDescription")),
|
|
95
|
+
}, "AlertDialogDescription")), R = v.forwardRef(/* @__PURE__ */ T(function(e, t) {
|
|
95
96
|
let { __scopeAlertDialog: n, ...r } = e;
|
|
96
|
-
return /* @__PURE__ */
|
|
97
|
-
...
|
|
97
|
+
return /* @__PURE__ */ x(l, {
|
|
98
|
+
...O(n),
|
|
98
99
|
...r,
|
|
99
100
|
ref: t
|
|
100
101
|
});
|
|
101
|
-
}, "AlertDialogAction")),
|
|
102
|
-
let { __scopeAlertDialog: r, ...i } = e, { cancelRef: a } =
|
|
103
|
-
return /* @__PURE__ */
|
|
102
|
+
}, "AlertDialogAction")), z = "AlertDialogCancel", B = v.forwardRef(/* @__PURE__ */ T(function(e, t) {
|
|
103
|
+
let { __scopeAlertDialog: r, ...i } = e, { cancelRef: a } = P(z, r), o = O(r), s = n(t, a);
|
|
104
|
+
return /* @__PURE__ */ x(l, {
|
|
104
105
|
...o,
|
|
105
106
|
...i,
|
|
106
107
|
ref: s
|
|
107
108
|
});
|
|
108
|
-
}, "AlertDialogCancel")),
|
|
109
|
+
}, "AlertDialogCancel")), V = k, H = A, U = j, W = M, G = F, K = R, q = B, J = I, Y = L;
|
|
109
110
|
//#endregion
|
|
110
111
|
//#region lib/components/ui/feedback/alert-dialog/alert-dialog.tsx
|
|
111
|
-
function
|
|
112
|
-
return /* @__PURE__ */
|
|
112
|
+
function X({ ...e }) {
|
|
113
|
+
return /* @__PURE__ */ x(V, {
|
|
113
114
|
"data-slot": "alert-dialog",
|
|
114
115
|
...e
|
|
115
116
|
});
|
|
116
117
|
}
|
|
117
|
-
function
|
|
118
|
-
return /* @__PURE__ */
|
|
118
|
+
function Z({ children: e, asChild: t = !0, ...n }) {
|
|
119
|
+
return /* @__PURE__ */ x(H, {
|
|
119
120
|
"data-slot": "alert-dialog-trigger",
|
|
120
|
-
asChild: t,
|
|
121
|
+
asChild: t && b(e) && e.type !== y,
|
|
121
122
|
...n,
|
|
122
|
-
children:
|
|
123
|
+
children: e
|
|
123
124
|
});
|
|
124
125
|
}
|
|
125
|
-
function
|
|
126
|
-
return /* @__PURE__ */
|
|
126
|
+
function Q({ ...e }) {
|
|
127
|
+
return /* @__PURE__ */ x(U, {
|
|
127
128
|
"data-slot": "alert-dialog-portal",
|
|
128
129
|
...e
|
|
129
130
|
});
|
|
130
131
|
}
|
|
131
|
-
function
|
|
132
|
-
return /* @__PURE__ */
|
|
132
|
+
function $({ className: e, ...n }) {
|
|
133
|
+
return /* @__PURE__ */ x(W, {
|
|
133
134
|
"data-slot": "alert-dialog-overlay",
|
|
134
135
|
className: t("nxgt-scrim fixed inset-0 z-50", e),
|
|
135
136
|
...n
|
|
136
137
|
});
|
|
137
138
|
}
|
|
138
|
-
function
|
|
139
|
+
function ee({ className: e, onOpenAutoFocus: n, onCloseAutoFocus: r, onEscapeKeyDown: i, ref: o, ...s }) {
|
|
139
140
|
let c = h({
|
|
140
141
|
onOpenAutoFocus: n,
|
|
141
142
|
onCloseAutoFocus: r
|
|
@@ -144,9 +145,9 @@ function Q({ className: e, onOpenAutoFocus: n, onCloseAutoFocus: r, onEscapeKeyD
|
|
|
144
145
|
onEscapeKeyDown: i,
|
|
145
146
|
...s
|
|
146
147
|
}, !0);
|
|
147
|
-
return /* @__PURE__ */
|
|
148
|
+
return /* @__PURE__ */ x(_, { children: /* @__PURE__ */ x(a, {
|
|
148
149
|
value: !0,
|
|
149
|
-
children: /* @__PURE__ */
|
|
150
|
+
children: /* @__PURE__ */ S(Q, { children: [/* @__PURE__ */ x($, { ref: l.overlayRef }), /* @__PURE__ */ x(G, {
|
|
150
151
|
ref: l.ref,
|
|
151
152
|
"data-slot": "alert-dialog-content",
|
|
152
153
|
className: t("nxgt-dialog fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 p-6 sm:max-w-lg max-h-[calc(100dvh-2rem)] supports-[not(height:100dvh)]:max-h-[calc(100vh-2rem)] overflow-y-auto", e),
|
|
@@ -158,33 +159,33 @@ function Q({ className: e, onOpenAutoFocus: n, onCloseAutoFocus: r, onEscapeKeyD
|
|
|
158
159
|
})] })
|
|
159
160
|
}) });
|
|
160
161
|
}
|
|
161
|
-
function
|
|
162
|
-
return /* @__PURE__ */
|
|
162
|
+
function te({ className: e, ...n }) {
|
|
163
|
+
return /* @__PURE__ */ x("div", {
|
|
163
164
|
"data-slot": "alert-dialog-header",
|
|
164
165
|
className: t("flex flex-col gap-2 text-center sm:text-left", e),
|
|
165
166
|
...n
|
|
166
167
|
});
|
|
167
168
|
}
|
|
168
|
-
function
|
|
169
|
-
return /* @__PURE__ */
|
|
169
|
+
function ne({ className: e, ...n }) {
|
|
170
|
+
return /* @__PURE__ */ x("div", {
|
|
170
171
|
"data-slot": "alert-dialog-footer",
|
|
171
172
|
className: t("flex flex-col-reverse gap-2 pt-2 max-sm:*:w-full sm:flex-row sm:justify-end", e),
|
|
172
173
|
...n
|
|
173
174
|
});
|
|
174
175
|
}
|
|
175
|
-
function
|
|
176
|
-
return /* @__PURE__ */
|
|
176
|
+
function re({ className: e, ...n }) {
|
|
177
|
+
return /* @__PURE__ */ x(J, {
|
|
177
178
|
"data-slot": "alert-dialog-title",
|
|
178
179
|
className: t("text-2xl/8 font-medium tracking-tight text-foreground", e),
|
|
179
180
|
...n
|
|
180
181
|
});
|
|
181
182
|
}
|
|
182
|
-
function
|
|
183
|
-
return /* @__PURE__ */
|
|
183
|
+
function ie({ className: e, ...n }) {
|
|
184
|
+
return /* @__PURE__ */ x(Y, {
|
|
184
185
|
"data-slot": "alert-dialog-description",
|
|
185
186
|
className: t("text-muted-foreground text-sm/6", e),
|
|
186
187
|
...n
|
|
187
188
|
});
|
|
188
189
|
}
|
|
189
190
|
//#endregion
|
|
190
|
-
export {
|
|
191
|
+
export { te as a, re as c, q as d, C as f, ne as i, Z as l, ee as n, $ as o, ie as r, Q as s, X as t, K as u };
|
|
@@ -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-CcEgQ-H7.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";
|
|
@@ -1,8 +1,8 @@
|
|
|
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, t as i } from "./spinner-
|
|
3
|
+
import { n as r, t as i } from "./spinner-DH1mm8hH.js";
|
|
4
4
|
import { t as a } from "./dist-DkQbkF9T.js";
|
|
5
|
-
import { a as o, i as s, n as c, o as l, s as u, t as d } from "./use-click-lock-
|
|
5
|
+
import { a as o, i as s, n as c, o as l, s as u, t as d } from "./use-click-lock-Bwg_caHO.js";
|
|
6
6
|
import { t as f } from "./is-production-GLw59WU8.js";
|
|
7
7
|
import { t as p } from "./button-group-context-CaP0X5p_.js";
|
|
8
8
|
import { t as m } from "./has-text-content-Ds2dkHX_.js";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { t as e } from "./utils-BLfntITJ.js";
|
|
2
|
-
import { n as t, r as n, t as r, u as i } from "./tabs-
|
|
3
|
-
import { t as a } from "./button-
|
|
4
|
-
import { t as o } from "./use-material-translation-
|
|
5
|
-
import { t as s } from "./icon-button-
|
|
2
|
+
import { n as t, r as n, t as r, u as i } from "./tabs-Um0SFyf1.js";
|
|
3
|
+
import { t as a } from "./button-CSKUtMI3.js";
|
|
4
|
+
import { t as o } from "./use-material-translation-DYrfV_JJ.js";
|
|
5
|
+
import { t as s } from "./icon-button-4PKlaI1g.js";
|
|
6
6
|
import { t as c } from "./copy-to-clipboard-Be5Ffvs_.js";
|
|
7
7
|
import { t as l } from "./useEvent-2fKq-6w8.js";
|
|
8
8
|
import { t as u } from "./useLatest-C2PnQEeD.js";
|
|
@@ -11,7 +11,7 @@ import { t as f } from "./skeleton-DSdtr2qc.js";
|
|
|
11
11
|
import { t as p } from "./live-status-BGPaN8r8.js";
|
|
12
12
|
import { n as m, t as h } from "./calculator-context-BugcKuVG.js";
|
|
13
13
|
import { a as g, c as _, i as v, l as y, n as b, o as ee, r as te, s as ne } from "./calculator-announce-DRd2c6Dq.js";
|
|
14
|
-
import { i as re, t as ie } from "./pos-types-
|
|
14
|
+
import { i as re, t as ie } from "./pos-types-BFrapNmx.js";
|
|
15
15
|
import { a as ae, r as oe } from "./key-layout-cR79xfGE.js";
|
|
16
16
|
import { n as x, r as se, t as ce } from "./programmer-word-CNCF7DJF.js";
|
|
17
17
|
import { t as le } from "./standard-layout-BuSRr3TY.js";
|
|
@@ -279,11 +279,11 @@ function Le({ helpId: e }) {
|
|
|
279
279
|
//#endregion
|
|
280
280
|
//#region lib/components/ui/widgets/calculator/variants/variant-loader.ts
|
|
281
281
|
var Re = {
|
|
282
|
-
scientific: () => import("./scientific-variant-
|
|
283
|
-
pos: () => import("./pos-variant-
|
|
284
|
-
programmer: () => import("./programmer-variant-
|
|
285
|
-
financial: () => import("./financial-variant-
|
|
286
|
-
conversion: () => import("./conversion-variant-
|
|
282
|
+
scientific: () => import("./scientific-variant-CjErQxuZ.js"),
|
|
283
|
+
pos: () => import("./pos-variant-CctfqieO.js"),
|
|
284
|
+
programmer: () => import("./programmer-variant-Dd0YOixn.js"),
|
|
285
|
+
financial: () => import("./financial-variant-igpGRbGw.js"),
|
|
286
|
+
conversion: () => import("./conversion-variant-wZd-G6xR.js")
|
|
287
287
|
}, B = "failed", V = /* @__PURE__ */ new Map(), H = /* @__PURE__ */ new Map(), U = /* @__PURE__ */ new Set(), W = () => {
|
|
288
288
|
for (let e of U) e();
|
|
289
289
|
};
|
package/dist/calculator-field.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { t as e } from "./utils-BLfntITJ.js";
|
|
2
|
-
import { t } from "./button-
|
|
3
|
-
import { t as n } from "./use-material-translation-
|
|
4
|
-
import { t as r } from "./icon-button-
|
|
5
|
-
import { a as i, i as a, n as o, r as s, t as c } from "./picker-surface-
|
|
6
|
-
import { r as l, t as u } from "./currency-field-
|
|
2
|
+
import { t } from "./button-CSKUtMI3.js";
|
|
3
|
+
import { t as n } from "./use-material-translation-DYrfV_JJ.js";
|
|
4
|
+
import { t as r } from "./icon-button-4PKlaI1g.js";
|
|
5
|
+
import { a as i, i as a, n as o, r as s, t as c } from "./picker-surface-CiTycWgV.js";
|
|
6
|
+
import { r as l, t as u } from "./currency-field-DizBTAat.js";
|
|
7
7
|
import { r as d, t as f } from "./field-blur-DkiZOVNV.js";
|
|
8
|
-
import { t as p } from "./calculator-
|
|
8
|
+
import { t as p } from "./calculator-Cv00UQgR.js";
|
|
9
9
|
import { useId as m, useState as h } from "react";
|
|
10
10
|
import { Fragment as g, jsx as _, jsxs as v } from "react/jsx-runtime";
|
|
11
11
|
import { Calculator as y } from "lucide-react";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as e } from "./use-material-translation-
|
|
1
|
+
import { t as e } from "./use-material-translation-DYrfV_JJ.js";
|
|
2
2
|
import { jsx as t } from "react/jsx-runtime";
|
|
3
3
|
//#region lib/components/ui/widgets/calculator/partials/calculator-segment.tsx
|
|
4
4
|
function n({ label: n, choices: r, value: i, nameKey: a, onChange: o }) {
|
package/dist/calculator.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as e, t } from "./calculator-
|
|
1
|
+
import { n as e, t } from "./calculator-Cv00UQgR.js";
|
|
2
2
|
export { e as CALCULATOR_VARIANTS, t as Calculator };
|
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-CSKUtMI3.js";
|
|
5
|
+
import { t as i } from "./use-material-translation-DYrfV_JJ.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-BGn0V6Pt.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 { n as t } from "./spinner-
|
|
3
|
-
import { s as n } from "./use-click-lock-
|
|
4
|
-
import { t as r } from "./use-material-translation-
|
|
2
|
+
import { n as t } from "./spinner-DH1mm8hH.js";
|
|
3
|
+
import { s as n } from "./use-click-lock-Bwg_caHO.js";
|
|
4
|
+
import { t as r } from "./use-material-translation-DYrfV_JJ.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 { t as n } from "./dist-DWZXlCZR.js";
|
|
4
|
-
import { c as r, d as i, f as a, n as o, t as s } from "./dropdown-menu-
|
|
4
|
+
import { c as r, d as i, f as a, n as o, t as s } from "./dropdown-menu-C6rcYGB9.js";
|
|
5
5
|
import { a as c, i as l, n as u } from "./field-blur-context-BLGgf_3z.js";
|
|
6
|
-
import { a as d, o as f, r as p, s as m, t as h } from "./toolbar-items-
|
|
6
|
+
import { a as d, o as f, r as p, s as m, t as h } from "./toolbar-items-BoEY5bkt.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-DYrfV_JJ.js";
|
|
9
|
+
import { i as v, n as y, o as b, t as x } from "./code-language-items-oRjtO3qV.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,13 +1,13 @@
|
|
|
1
1
|
import { t as e } from "./utils-BLfntITJ.js";
|
|
2
2
|
import { t } from "./dist-DWZXlCZR.js";
|
|
3
|
-
import { o as n, r, s as i, t 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-
|
|
3
|
+
import { o as n, r, s as i, t as a } from "./toolbar-items-BoEY5bkt.js";
|
|
4
|
+
import { t as o } from "./use-material-translation-DYrfV_JJ.js";
|
|
5
|
+
import { i as s, n as c, o as l } from "./code-language-items-oRjtO3qV.js";
|
|
6
6
|
import { t as u } from "./skeleton-DSdtr2qc.js";
|
|
7
7
|
import { t as d } from "./live-status-BGPaN8r8.js";
|
|
8
8
|
import { t as f } from "./use-mobile-BDro060N.js";
|
|
9
9
|
import { t as p } from "./react-node-text-Crkpfpco.js";
|
|
10
|
-
import { a as m, c as h, d as g, f as _, i as v, l as y, m as b, o as x, p as S, r as C, s as w, t as T, u as E } from "./code-editor-
|
|
10
|
+
import { a as m, c as h, d as g, f as _, i as v, l as y, m as b, o as x, p as S, r as C, s as w, t as T, u as E } from "./code-editor-B25-mWhb.js";
|
|
11
11
|
import { r as D, t as O } from "./field-blur-DkiZOVNV.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";
|
|
@@ -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-C6rcYGB9.js";
|
|
2
|
+
import { t as n } from "./use-material-translation-DYrfV_JJ.js";
|
|
3
3
|
import { t as r } from "./copy-to-clipboard-Be5Ffvs_.js";
|
|
4
4
|
import { t as i } from "./live-status-BGPaN8r8.js";
|
|
5
5
|
import { useEffect as a, useRef as o, useState as s } from "react";
|
|
@@ -162,6 +162,17 @@
|
|
|
162
162
|
[data-slot="form-actions"] {
|
|
163
163
|
@apply sticky bottom-0 z-10 flex w-full justify-end gap-2 bg-background/80 border-t-8 border-transparent px-4 pb-[max(1rem,env(safe-area-inset-bottom))] backdrop-blur-sm max-sm:*:flex-1;
|
|
164
164
|
}
|
|
165
|
+
/* `data-padding="none"`: the form sits flush in a container that
|
|
166
|
+
already pads it (a page, a card, a sheet): no inset on the fields or
|
|
167
|
+
the actions, so both align with the container's content edge. */
|
|
168
|
+
&[data-padding="none"] {
|
|
169
|
+
[data-slot="form-fields"] {
|
|
170
|
+
@apply p-0;
|
|
171
|
+
}
|
|
172
|
+
[data-slot="form-actions"] {
|
|
173
|
+
@apply px-0;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
165
176
|
}
|
|
166
177
|
|
|
167
178
|
/* No height cap and no scroll of its own: the page (or the overlay) is
|
|
@@ -144,6 +144,8 @@
|
|
|
144
144
|
@import "./ui/display/seat-ring/seat-ring-ring.css";
|
|
145
145
|
/* VoteTally: ranked bars with counts, shares and voters. */
|
|
146
146
|
@import "./ui/display/vote-tally/vote-tally.css";
|
|
147
|
+
/* TubeCap: a specimen tube chip, cap colours fixed by the tube convention. */
|
|
148
|
+
@import "./ui/display/tube-cap/tube-cap.css";
|
|
147
149
|
/* SecretCard: a face that is not rendered until it is revealed. */
|
|
148
150
|
@import "./ui/display/secret-card/secret-card.css";
|
|
149
151
|
/* Alert and Banner span the row in the form grids (#1497). */
|