@nxgt/material 3.83.0 → 3.84.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/README.md +2 -2
  3. package/dist/{alert-dialog-DXLJ4AZP.js → alert-dialog-1t6ULy5i.js} +1 -1
  4. package/dist/{async-slice-BfVokA46.js → async-slice-xyA9Uzct.js} +1 -1
  5. package/dist/{background-Q4Ek3rNy.js → background-DHjdFbNo.js} +86 -86
  6. package/dist/backgrounds.js +1 -1
  7. package/dist/{button-CSKUtMI3.js → button-DhiNGrdT.js} +1 -1
  8. package/dist/{calculator-Cv00UQgR.js → calculator-BcgxxScL.js} +10 -10
  9. package/dist/calculator-field.js +6 -6
  10. package/dist/{calculator-segment-CwnC2cV_.js → calculator-segment-C4WQAHcN.js} +1 -1
  11. package/dist/calculator.js +1 -1
  12. package/dist/charts.js +3 -3
  13. package/dist/{chip-BGn0V6Pt.js → chip-m0_usuzd.js} +2 -2
  14. package/dist/{code-editor-B25-mWhb.js → code-editor-BgKFrcld.js} +4 -4
  15. package/dist/code-editor.js +4 -4
  16. package/dist/{code-language-items-oRjtO3qV.js → code-language-items-BWw17W9s.js} +2 -2
  17. package/dist/components/theme-tokens.css +3 -3
  18. package/dist/components/ui/collections/server-table/server-table-phone-row.css +12 -0
  19. package/dist/{components-C22jCW4C.js → components-BRJM9hd1.js} +10691 -10624
  20. package/dist/components.js +23 -23
  21. package/dist/{conversion-variant-wZd-G6xR.js → conversion-variant-DultZZQm.js} +3 -3
  22. package/dist/{currency-field-DizBTAat.js → currency-field-CPbaM7ay.js} +4 -4
  23. package/dist/{dialog-B-3s-oXt.js → dialog-DmlG9opW.js} +3 -3
  24. package/dist/dnd.js +1 -1
  25. package/dist/{dropdown-menu-C6rcYGB9.js → dropdown-menu-CDKev8dk.js} +1 -1
  26. package/dist/editor.js +7 -7
  27. package/dist/{empty-state-CSkghnD9.js → empty-state-C56000TB.js} +1 -1
  28. package/dist/{financial-variant-igpGRbGw.js → financial-variant-BYjQ690K.js} +5 -5
  29. package/dist/{hooks-k8_f3B0k.js → hooks-BTwLAy_A.js} +119 -83
  30. package/dist/hooks.js +3 -3
  31. package/dist/{hover-card-DuaVVKMb.js → hover-card-CDtW6utN.js} +1 -1
  32. package/dist/i18n.js +3 -3
  33. package/dist/{icon-badge-3ThP6EOl.js → icon-badge-ec7MmUGA.js} +1 -1
  34. package/dist/{icon-button-4PKlaI1g.js → icon-button-CG4aO8Gh.js} +1 -1
  35. package/dist/lib/components/ui/fields/contacts/placeholders.d.ts +1 -1
  36. package/dist/lib/components/ui/widgets/event-calendar/event-calendar-context.d.ts +6 -1
  37. package/dist/lib/components/ui/widgets/event-calendar/event-calendar-shell.d.ts +1 -1
  38. package/dist/lib/components/ui/widgets/event-calendar/index.d.ts +1 -1
  39. package/dist/lib/components/ui/widgets/event-calendar/partials/event-preview-title.d.ts +6 -2
  40. package/dist/lib/components/ui/widgets/event-calendar/partials/event-preview.d.ts +3 -1
  41. package/dist/lib/components/ui/widgets/event-calendar/template.types.d.ts +5 -1
  42. package/dist/lib/components/ui/widgets/event-calendar/types.d.ts +20 -0
  43. package/dist/lib/components/ui/widgets/event-calendar/use-template-calendar.d.ts +3 -1
  44. package/dist/lib/hooks/index.d.ts +1 -0
  45. package/dist/lib/hooks/poll.d.ts +26 -0
  46. package/dist/lib/hooks/use-poll.d.ts +30 -0
  47. package/dist/lib/i18n/resources/en/en.d.ts +1 -0
  48. package/dist/lib/i18n/resources/en/material.json.d.ts +1 -0
  49. package/dist/lib/i18n/resources/fr/fr.d.ts +1 -0
  50. package/dist/lib/i18n/resources/fr/material.json.d.ts +1 -0
  51. package/dist/lib/i18n/resources/resources.d.ts +2 -0
  52. package/dist/lib/i18n/translator.d.ts +1 -1
  53. package/dist/lib.js +1 -1
  54. package/dist/main.js +30 -30
  55. package/dist/map.js +7 -7
  56. package/dist/material.css +1 -1
  57. package/dist/pdf-reader.js +1 -1
  58. package/dist/{percent-field-QwU1l2Q4.js → percent-field-8_pILs15.js} +1 -1
  59. package/dist/{picker-surface-CiTycWgV.js → picker-surface-pyGv-Qh9.js} +4 -4
  60. package/dist/{popover-YmbzbKQG.js → popover-3EF4q2CT.js} +1 -1
  61. package/dist/{pos-types-BFrapNmx.js → pos-types-Dv2UxKSN.js} +1 -1
  62. package/dist/{pos-variant-CctfqieO.js → pos-variant-DJvtN9N8.js} +4 -4
  63. package/dist/print.js +1 -1
  64. package/dist/{programmer-variant-Dd0YOixn.js → programmer-variant-Bmcq2KzC.js} +2 -2
  65. package/dist/{public-CshR_aW7.js → public-BNebh4z0.js} +9 -9
  66. package/dist/{rich-code-block-BuJLDoBu.js → rich-code-block-DmX7d58S.js} +5 -5
  67. package/dist/{scientific-variant-CjErQxuZ.js → scientific-variant-DijUrpP8.js} +2 -2
  68. package/dist/{sortable-provider-DU2nvpFc.js → sortable-provider-Cnmt_gWu.js} +2 -2
  69. package/dist/{spinner-DH1mm8hH.js → spinner-C6LP2Rw8.js} +1 -1
  70. package/dist/{tabs-Um0SFyf1.js → tabs-Bj1zOe7-.js} +1 -1
  71. package/dist/theme-picker.js +2 -2
  72. package/dist/{theme-toggle-C-Ih4uQU.js → theme-toggle-Cxku5iBP.js} +1 -1
  73. package/dist/{toolbar-items-BoEY5bkt.js → toolbar-items-CEIuSxU_.js} +4 -4
  74. package/dist/{translate-material-D4rn5UaQ.js → translate-material-DI3nmQ6I.js} +1 -1
  75. package/dist/{translator-CcEgQ-H7.js → translator-BstxG_hN.js} +177 -163
  76. package/dist/{use-chat-composer-DG9YkB4L.js → use-chat-composer-BqLkk_iH.js} +15 -15
  77. package/dist/{use-heading-spy-gDNtK1sU.js → use-heading-spy-nFyb9_KE.js} +4 -4
  78. package/dist/{use-material-translation-DYrfV_JJ.js → use-material-translation-1kCHtB0p.js} +1 -1
  79. package/dist/{use-return-focus-C_Qz_yTk.js → use-return-focus-Hv8rn55-.js} +1 -1
  80. package/docs/components/rich-widgets.md +22 -1
  81. package/docs/guides/helpers.md +40 -0
  82. package/docs/guides/theming.md +2 -2
  83. package/docs/previews/backgrounds-background-from-theme.webp +0 -0
  84. package/docs/previews/backgrounds-celestial.webp +0 -0
  85. package/docs/previews/backgrounds-geometry-more.webp +0 -0
  86. package/docs/previews/backgrounds-geometry.webp +0 -0
  87. package/docs/previews/backgrounds-icons.webp +0 -0
  88. package/docs/previews/backgrounds-illustrated-scenes.webp +0 -0
  89. package/docs/previews/backgrounds-light-more.webp +0 -0
  90. package/docs/previews/backgrounds-light.webp +0 -0
  91. package/docs/previews/backgrounds-material-more.webp +0 -0
  92. package/docs/previews/backgrounds-matrix.webp +0 -0
  93. package/docs/previews/backgrounds-moon.webp +0 -0
  94. package/docs/previews/backgrounds-motif-shapes.webp +0 -0
  95. package/docs/previews/backgrounds-motifs.webp +0 -0
  96. package/docs/previews/backgrounds-sky-overlay.webp +0 -0
  97. package/docs/roadmap.md +6 -0
  98. package/docs/troubleshooting.md +2 -2
  99. package/lib/components/theme-tokens.css +3 -3
  100. package/lib/components/ui/collections/server-table/server-table-phone-row.css +12 -0
  101. package/lib/themes/ambre.css +2 -2
  102. package/lib/themes/ardoise.css +2 -2
  103. package/lib/themes/bleumono.css +2 -2
  104. package/lib/themes/bluemoon.css +2 -2
  105. package/lib/themes/corail.css +2 -2
  106. package/lib/themes/foret.css +2 -2
  107. package/lib/themes/lavande.css +2 -2
  108. package/lib/themes/menthe.css +2 -2
  109. package/lib/themes/ocean.css +2 -2
  110. package/lib/themes/pink.css +2 -2
  111. package/lib/themes/prune.css +1 -1
  112. package/lib/themes/sable.css +2 -2
  113. package/lib/themes/slate.css +1 -1
  114. package/lib/themes/teal.css +2 -2
  115. package/package.json +4 -4
package/CHANGELOG.md CHANGED
@@ -1,5 +1,35 @@
1
1
  # @nxgt/material
2
2
 
3
+ ## 3.84.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#2523](https://github.com/softistx/nxgt-material/pull/2523) [`ba31843`](https://github.com/softistx/nxgt-material/commit/ba31843912fe8e6e03f51ee0bccf51f5c421f2ec) Thanks [@SteveGT96](https://github.com/SteveGT96)! - `Background` renders no `data-slot="background-content"` layer when it has no children. A backdrop-only `Background` (self-closing, absolute next to `relative` siblings) no longer covers them with an empty `z-index: 5` layer that swallowed their clicks.
8
+
9
+ ## 3.84.0
10
+
11
+ ### Minor Changes
12
+
13
+ - [#2487](https://github.com/softistx/nxgt-material/pull/2487) [`f06e9e8`](https://github.com/softistx/nxgt-material/commit/f06e9e8fc87a28e27bca3db093f781e858be0f31) Thanks [@SteveGT96](https://github.com/SteveGT96)! - `EventCalendar`: a click on an event now runs `onEventClick` and opens the preview even when `onSlotClick` is set. Pressing on an event in a time grid used to start a slot gesture, whose pointer capture sent the click to the column: only `onSlotClick` ran, with the slot under the event. The preview popover can now be routed to the app, in the dated and the `mode="template"` calendar alike (additive, nothing to migrate): `onEventEdit(event)` adds an Edit button, `onEventDelete(event)` replaces the built-in confirmation and removal (the app confirms and deletes; neither button shows for a disabled calendar or event), `previewFields` (`'title' | 'color' | 'description'`, `[]` for none) hides the built-in inline fields, and `eventPreview={false}` skips the popover so `onEventClick` alone handles the click. New message key `material.event-calendar.edit` (en, fr). Fixes [#2486](https://github.com/softistx/nxgt-material/issues/2486).
14
+
15
+ - [#2499](https://github.com/softistx/nxgt-material/pull/2499) [`37b6fbe`](https://github.com/softistx/nxgt-material/commit/37b6fbecc51005a635f8ece3687d33fd816b5d6a) Thanks [@SteveGT96](https://github.com/SteveGT96)! - Add `usePoll({ ms, enabled?, read, onError? })` to `@nxgt/material/hooks`: reads again every `ms` while `enabled` and `document.visibilityState` is `visible`, never two reads at once (a tick during a running read or a hidden page is skipped), and clears its timer on unmount or when `enabled` turns false. The latest `read` is used without restarting the interval. `startPoll({ ms, read, active?, visible?, onError? })`, the framework-free loop behind it, is exported too and returns its stop.
16
+
17
+ ### Patch Changes
18
+
19
+ - [#2505](https://github.com/softistx/nxgt-material/pull/2505) [`58b74e0`](https://github.com/softistx/nxgt-material/commit/58b74e0c59c2f1ff87e66d591d852129bfbfaaea) Thanks [@SteveGT96](https://github.com/SteveGT96)! - The app shell's phone menu button is a ghost icon button (no frame).
20
+
21
+ - [#2494](https://github.com/softistx/nxgt-material/pull/2494) [`2461b9b`](https://github.com/softistx/nxgt-material/commit/2461b9b9912ab554f63d5e2ad38abd0e323f533b) Thanks [@SteveGT96](https://github.com/SteveGT96)! - Docs: the `Guides/Recipes/Gallery` screen puts its bulk Delete in the "n selected" bar through `Gallery`'s `selectionActions`, in the story and in the plugin's `screen-recipes` code.
22
+
23
+ - [#2519](https://github.com/softistx/nxgt-material/pull/2519) [`def1980`](https://github.com/softistx/nxgt-material/commit/def1980378f6f2369d15ddbcbbdaa7349fe77902) Thanks [@SteveGT96](https://github.com/SteveGT96)! - Move `intl-messageformat` to `^12.1.4` and `@tanstack/react-virtual` to `3.14.24`. The message formatting API the libraries use (`new IntlMessageFormat(message, locale).format(values)`) is unchanged.
24
+
25
+ - [#2504](https://github.com/softistx/nxgt-material/pull/2504) [`44601b1`](https://github.com/softistx/nxgt-material/commit/44601b14a2667f82d78873d3fea6cb3e1e5a5cd9) Thanks [@SteveGT96](https://github.com/SteveGT96)! - Docs: roadmap lists the header refresh.
26
+
27
+ - [#2500](https://github.com/softistx/nxgt-material/pull/2500) [`d9aa282`](https://github.com/softistx/nxgt-material/commit/d9aa2829fe2233dc78854fadc5a00941f9594b6e) Thanks [@SteveGT96](https://github.com/SteveGT96)! - `ServerTable` on a phone no longer leaves an empty 40px row under the filter bar when a list in cards or tiles has no select column, no sort, no `actions` and no "Filters" trigger to put there: the row is not displayed while both of its slots are empty, and comes back as soon as any control is present. Fixes [#2497](https://github.com/softistx/nxgt-material/issues/2497).
28
+
29
+ - [#2502](https://github.com/softistx/nxgt-material/pull/2502) [`896b90c`](https://github.com/softistx/nxgt-material/commit/896b90c56fc4c948bdc394fa4100f75c0e8ca283) Thanks [@SteveGT96](https://github.com/SteveGT96)! - A tonal Button label now reaches 4.5:1 on a selected table row (`data-state="selected"`, a 15 % primary tint) and on a table header or footer (10 %, with the row over it), not only on the page, the ground and a striped row, in every preset. The light `--primary-text` share is solved against those two surfaces too, and two contrast pairs, `primary-text / primary@selrow15` and `primary-text / primary@head15`, guard them. Nothing to adapt: regenerate a theme file to take the new shares. Fixes [#2495](https://github.com/softistx/nxgt-material/issues/2495).
30
+ - Updated dependencies [[`def1980`](https://github.com/softistx/nxgt-material/commit/def1980378f6f2369d15ddbcbbdaa7349fe77902), [`896b90c`](https://github.com/softistx/nxgt-material/commit/896b90c56fc4c948bdc394fa4100f75c0e8ca283)]:
31
+ - @nxgt/material-core@0.50.1
32
+
3
33
  ## 3.83.0
4
34
 
5
35
  ### Minor Changes
package/README.md CHANGED
@@ -222,7 +222,7 @@ reads `duotone.svg`, the file that exists (it used to ask for the missing
222
222
  | `@nxgt/material/draw/png` | `drawingToPng(sceneOrSvg, { scale?, background?, colorsFrom? })` and `downloadDrawingPng(source, fileName)` — a drawing (a scene, or a live `<svg>` such as `svgRef.current` of a `<Drawing ref={svgRef}>`) as a PNG `Blob` in the browser, with the page's theme colours resolved, `data:` images inlined and CORS errors named; its own entry, DOM only when called ([drawing guide](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/guides/drawing.md#png), [reference](https://cdn.jsdelivr.net/npm/@nxgt/material-core@0/docs/draw.md#png-nxgtmaterial-coredrawpng)) |
223
223
  | `@nxgt/material/vite` | build-time helpers for consumers: `nxgtMaterial()` (a strict CSP by hash or nonce, self-hosted fonts, a styles check, serves the pdf.js worker on the Vite 5–7 dev server, generates your app themes' stylesheets with `nxgtMaterial({ themes })` and the `nxgt-theme` bin: [Themes guide](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/guides/themes.md), a reduced backdrop icon sprite from your Font Awesome install with `nxgtMaterial({ backdropSprite })` and the `nxgt-backdrop-sprite` bin, PDFs on a bundled server with `nxgtMaterial({ pdf: { bundle: true } })`: [Vite plugin guide](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/guides/vite-plugin.md)), `pdfkitStandardFonts()` ([printing guide](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/guides/printing.md)), `cspAssetsInlineLimit`, a `build.assetsInlineLimit` that never inlines a font ([CSP guide](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/guides/csp.md#katex-fonts)) |
224
224
  | `@nxgt/material/next` | `withNxgtPrint(nextConfig)`: the `next.config.ts` a Next.js route handler that imports `/print` needs, `output: 'standalone'` included. Node only, no dependency on `next` ([printing guide](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/guides/printing.md#nextjs-serverexternalpackages-and-output-standalone)) |
225
- | `@nxgt/material/hooks` | `useTheme`, `useIsClient`, `useIsMobile`, `useLocalizedDate`, `useCspNonce`, `useFocusOnMount`, `useCountdown`, `useSubmitOnce`, `useDrafts`, `useUnsavedGuard`, … ([helpers](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/guides/helpers.md#nxgtmaterialhooks)) |
225
+ | `@nxgt/material/hooks` | `useTheme`, `useIsClient`, `useIsMobile`, `useLocalizedDate`, `useCspNonce`, `useFocusOnMount`, `useCountdown`, `useSubmitOnce`, `useDrafts`, `usePoll`, `useUnsavedGuard`, … ([helpers](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/guides/helpers.md#nxgtmaterialhooks)) |
226
226
  | `@nxgt/material/dnd` | `@dnd-kit` primitives ([helpers](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/guides/helpers.md#nxgtmaterialdnd)) |
227
227
  | `@nxgt/material/i18n` | `I18nProvider`, `mergeResources`, `createTranslator`, `translateMaterial`, `formatMessage` ([i18n guide](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/guides/i18n.md)) |
228
228
  | `@nxgt/material/lib` | `cn`, `clientOnly`, date, number and storage utilities, `useSliceReducer`, `getCspNonce` / `setCspNonce`, the server-side CSP helpers (`createCspNonce`, `cspPolicy`, `cspHash`, `applyCspNonce`, `CSP_NONCE_PLACEHOLDER`, `ZOD_JITLESS_SCRIPT`, `zodJitlessTag`: [CSP, SSR](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/guides/csp.md#ssr)) ([helpers](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/guides/helpers.md#nxgtmateriallib)) |
@@ -872,7 +872,7 @@ Not components: what the stylesheet gives any element.
872
872
  | --- | --- | --- | --- |
873
873
  | <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)) |
874
874
  | <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` |
875
- | <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` |
875
+ | <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"`), an event preview you can route to your own edit and delete (`onEventEdit`, `onEventDelete`, `eventPreview`, `previewFields`), a now line, a mini-month side panel and a phone layout. | `EventCalendar` |
876
876
  | <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) |
877
877
  | <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` |
878
878
  | <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` |
@@ -4,7 +4,7 @@ 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-C_Qz_yTk.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-Hv8rn55-.js";
8
8
  import { i as _ } from "./escape-owner-DpaP0lm1.js";
9
9
  import * as v from "react";
10
10
  import { Fragment as y, isValidElement as b } from "react";
@@ -1,4 +1,4 @@
1
- import { l as e, r as t, s as n, u as r } from "./translator-CcEgQ-H7.js";
1
+ import { l as e, r as t, s as n, u as r } from "./translator-BstxG_hN.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";
@@ -6,12 +6,12 @@ import { t as c } from "./compose-refs-G4J4kaUA.js";
6
6
  import { t as l } from "./use-background-activity-KxQgelFF.js";
7
7
  import { t as u } from "./scene-svg-DJKa5vsg.js";
8
8
  import { n as d, r as f, t as p } from "./scene-options-2zNF3ZkQ.js";
9
- import { Suspense as m, lazy as h, memo as g, useId as _, useMemo as v, useRef as y } from "react";
10
- import { Fragment as b, jsx as x, jsxs as S } from "react/jsx-runtime";
11
- import { IconRefError as C, resolveIconStyles as w, resolveIcons as T } from "@nxgt/material-core/icons";
12
- import { SCENE_LAYER as E, buildBackgroundScene as D, presetLayers as O, resolveBackgroundPreset as k, svgIdPrefix as A } from "@nxgt/material-core/backgrounds";
9
+ import { Children as m, Suspense as h, lazy as g, memo as _, useId as v, useMemo as y, useRef as b } from "react";
10
+ import { Fragment as x, jsx as S, jsxs as C } from "react/jsx-runtime";
11
+ import { IconRefError as w, resolveIconStyles as T, resolveIcons as E } from "@nxgt/material-core/icons";
12
+ import { SCENE_LAYER as D, buildBackgroundScene as O, presetLayers as k, resolveBackgroundPreset as A, svgIdPrefix as j } from "@nxgt/material-core/backgrounds";
13
13
  //#region lib/backgrounds/background/available.ts
14
- var j = [
14
+ var M = [
15
15
  "gradient",
16
16
  "grain",
17
17
  "mesh",
@@ -28,7 +28,7 @@ var j = [
28
28
  "linen",
29
29
  "concrete",
30
30
  "marble"
31
- ], M = [
31
+ ], N = [
32
32
  "isometric",
33
33
  "blueprint",
34
34
  "dots",
@@ -42,7 +42,7 @@ var j = [
42
42
  "checker",
43
43
  "diagonal-checker",
44
44
  "chevrons"
45
- ], N = [
45
+ ], P = [
46
46
  "shapes",
47
47
  "confetti-grid",
48
48
  "constellation",
@@ -60,61 +60,61 @@ var j = [
60
60
  "sport",
61
61
  "moon",
62
62
  "icons"
63
- ], P = [
63
+ ], F = [
64
64
  "eclipse",
65
65
  "meteor-shower",
66
66
  "ringed-planet",
67
67
  "northern-lights",
68
68
  "day-sky",
69
69
  "dawn-sky"
70
- ], F = (e) => P.includes(e), I = [
71
- ...j,
70
+ ], I = (e) => F.includes(e), L = [
72
71
  ...M,
73
72
  ...N,
74
- ...P
75
- ], L = h(() => import("./icons-scene-M4HBeN2c.js"));
76
- function R(e) {
77
- return /* @__PURE__ */ x("div", {
73
+ ...P,
74
+ ...F
75
+ ], R = g(() => import("./icons-scene-M4HBeN2c.js"));
76
+ function z(e) {
77
+ return /* @__PURE__ */ S("div", {
78
78
  "data-scene": "",
79
79
  "aria-hidden": "true",
80
- children: /* @__PURE__ */ x(m, {
80
+ children: /* @__PURE__ */ S(h, {
81
81
  fallback: null,
82
- children: /* @__PURE__ */ x(L, { ...e })
82
+ children: /* @__PURE__ */ S(R, { ...e })
83
83
  })
84
84
  });
85
85
  }
86
86
  //#endregion
87
87
  //#region lib/backgrounds/background/partials/background-layers.tsx
88
- var z = h(() => import("./celestial-scene-8Muu6f7O.js")), B = g(function({ preset: e, scene: t, grain: n, sky: r, icons: i, ...a }) {
89
- return /* @__PURE__ */ S(b, { children: [
90
- O(e).map((n) => n === E ? i ? /* @__PURE__ */ x(R, { ...i }, n) : F(e) ? /* @__PURE__ */ x("div", {
88
+ var B = g(() => import("./celestial-scene-8Muu6f7O.js")), V = _(function({ preset: e, scene: t, grain: n, sky: r, icons: i, ...a }) {
89
+ return /* @__PURE__ */ C(x, { children: [
90
+ k(e).map((n) => n === D ? i ? /* @__PURE__ */ S(z, { ...i }, n) : I(e) ? /* @__PURE__ */ S("div", {
91
91
  "data-scene": "",
92
92
  "data-celestial": "",
93
93
  "aria-hidden": "true",
94
- children: /* @__PURE__ */ x(m, {
94
+ children: /* @__PURE__ */ S(h, {
95
95
  fallback: null,
96
- children: /* @__PURE__ */ x(z, {
96
+ children: /* @__PURE__ */ S(B, {
97
97
  name: e,
98
98
  as: "preset",
99
99
  ...a
100
100
  })
101
101
  })
102
- }, n) : t && /* @__PURE__ */ x("div", {
102
+ }, n) : t && /* @__PURE__ */ S("div", {
103
103
  "data-scene": "",
104
104
  "aria-hidden": "true",
105
- children: /* @__PURE__ */ x(u, { node: t })
106
- }, n) : /* @__PURE__ */ x("div", {
105
+ children: /* @__PURE__ */ S(u, { node: t })
106
+ }, n) : /* @__PURE__ */ S("div", {
107
107
  "data-layer": n,
108
108
  "aria-hidden": "true"
109
109
  }, n)),
110
- r && /* @__PURE__ */ x("div", {
110
+ r && /* @__PURE__ */ S("div", {
111
111
  "data-layer": "sky-scene",
112
112
  "data-scene": "",
113
113
  "data-celestial": "",
114
114
  "aria-hidden": "true",
115
- children: /* @__PURE__ */ x(m, {
115
+ children: /* @__PURE__ */ S(h, {
116
116
  fallback: null,
117
- children: /* @__PURE__ */ x(z, {
117
+ children: /* @__PURE__ */ S(B, {
118
118
  name: r,
119
119
  as: "sky",
120
120
  base: e,
@@ -122,28 +122,28 @@ var z = h(() => import("./celestial-scene-8Muu6f7O.js")), B = g(function({ prese
122
122
  })
123
123
  })
124
124
  }),
125
- n && /* @__PURE__ */ x("div", {
125
+ n && /* @__PURE__ */ S("div", {
126
126
  "data-overlay": "grain",
127
127
  "aria-hidden": "true",
128
- children: /* @__PURE__ */ x(u, { node: n })
128
+ children: /* @__PURE__ */ S(u, { node: n })
129
129
  })
130
130
  ] });
131
131
  });
132
132
  //#endregion
133
133
  //#region lib/backgrounds/background/partials/use-background-scenes.ts
134
- function V(e, t, n, r, i, a) {
135
- return e === "grain" ? null : D(e, f(t, n, r, i, a));
134
+ function H(e, t, n, r, i, a) {
135
+ return e === "grain" ? null : O(e, f(t, n, r, i, a));
136
136
  }
137
- function H(e, t) {
138
- return D("grain", {
137
+ function U(e, t) {
138
+ return O("grain", {
139
139
  idPrefix: `${e}-grain`,
140
140
  seed: t
141
141
  });
142
142
  }
143
- function U({ preset: e, hasIcons: t, grain: n, idPrefix: r, seed: i, motif: a, moon: o }) {
143
+ function W({ preset: e, hasIcons: t, grain: n, idPrefix: r, seed: i, motif: a, moon: o }) {
144
144
  let s = n || e === "grain", c = a?.shapes ? [...new Set(a.shapes)].sort().join(",") : void 0, l = JSON.stringify(d(a)), u = JSON.stringify(p(o));
145
145
  return {
146
- scene: v(() => t ? null : V(e, r, i, c, l, u), [
146
+ scene: y(() => t ? null : H(e, r, i, c, l, u), [
147
147
  t,
148
148
  e,
149
149
  r,
@@ -152,7 +152,7 @@ function U({ preset: e, hasIcons: t, grain: n, idPrefix: r, seed: i, motif: a, m
152
152
  l,
153
153
  u
154
154
  ]),
155
- grainScene: v(() => s ? H(r, i) : null, [
155
+ grainScene: y(() => s ? U(r, i) : null, [
156
156
  s,
157
157
  r,
158
158
  i
@@ -165,19 +165,19 @@ function U({ preset: e, hasIcons: t, grain: n, idPrefix: r, seed: i, motif: a, m
165
165
  }
166
166
  //#endregion
167
167
  //#region lib/backgrounds/background/partials/icons-check.ts
168
- function W(e, t) {
168
+ function G(e, t) {
169
169
  try {
170
- e !== void 0 && T(e);
170
+ e !== void 0 && E(e);
171
171
  let n = Array.isArray(t) ? t.map((e) => e && typeof e == "object" && "style" in e ? e.style : e) : t && typeof t == "object" && "style" in t ? t.style : t;
172
- return Array.isArray(n) && n.some((e) => !e) ? "an empty icon style" : (w(n), null);
172
+ return Array.isArray(n) && n.some((e) => !e) ? "an empty icon style" : (T(n), null);
173
173
  } catch (e) {
174
- if (e instanceof C) return e.message;
174
+ if (e instanceof w) return e.message;
175
175
  throw e;
176
176
  }
177
177
  }
178
178
  //#endregion
179
179
  //#region lib/backgrounds/background/partials/icons-keys.ts
180
- var G = Object.keys({
180
+ var K = Object.keys({
181
181
  layout: 1,
182
182
  colors: 1,
183
183
  sizeRange: 1,
@@ -187,48 +187,48 @@ var G = Object.keys({
187
187
  calm: 1,
188
188
  quiet: 1
189
189
  });
190
- function K(e) {
191
- return JSON.stringify(Object.fromEntries(G.flatMap((t) => e?.[t] === void 0 ? [] : [[t, e[t]]])));
190
+ function q(e) {
191
+ return JSON.stringify(Object.fromEntries(K.flatMap((t) => e?.[t] === void 0 ? [] : [[t, e[t]]])));
192
192
  }
193
- var q = .2;
194
- function J(e, t, n) {
193
+ var J = .2;
194
+ function Y(e, t, n) {
195
195
  let { icons: r, iconStyle: i, iconMotif: a, motif: o } = t, s = o?.icons, c = a?.layout, l = e === "shapes" ? !!s : e === "icons" && (c === void 0 || c === "even");
196
196
  return {
197
197
  wants: e === "icons" || e === "shapes" && !!s,
198
198
  iconsKey: JSON.stringify(s?.pack ?? r ?? null),
199
199
  styleKey: JSON.stringify(s?.style ?? i ?? null),
200
- motifKey: K(a),
200
+ motifKey: q(a),
201
201
  mixKey: JSON.stringify(l ? {
202
202
  ...o,
203
- icons: { ratio: s?.ratio ?? q }
203
+ icons: { ratio: s?.ratio ?? J }
204
204
  } : null),
205
205
  servedKey: JSON.stringify(n ?? null)
206
206
  };
207
207
  }
208
208
  //#endregion
209
209
  //#region lib/backgrounds/background/partials/use-icons-scene.ts
210
- function Y(e, { icons: o, iconStyle: s, iconMotif: c, motif: l, idPrefix: u, seed: d, animated: f }) {
211
- let p = t(), m = i(), h = n(), g = r(), { wants: _, iconsKey: y, styleKey: b, motifKey: x, mixKey: S, servedKey: C } = J(e, {
210
+ function X(e, { icons: o, iconStyle: s, iconMotif: c, motif: l, idPrefix: u, seed: d, animated: f }) {
211
+ let p = t(), m = i(), h = n(), g = r(), { wants: _, iconsKey: v, styleKey: b, motifKey: x, mixKey: S, servedKey: C } = Y(e, {
212
212
  icons: o,
213
213
  iconStyle: s,
214
214
  iconMotif: c,
215
215
  motif: l
216
- }, h), w = v(() => {
216
+ }, h), w = y(() => {
217
217
  if (!_) return null;
218
- let t = W(JSON.parse(y) ?? void 0, JSON.parse(b) ?? void 0);
218
+ let t = G(JSON.parse(v) ?? void 0, JSON.parse(b) ?? void 0);
219
219
  return t && !a() && console.warn(`Background: icons cannot be drawn (${t}); drawing "${e === "icons" ? "scatter-icons" : e}" instead.`), t;
220
220
  }, [
221
221
  _,
222
222
  e,
223
- y,
223
+ v,
224
224
  b
225
225
  ]);
226
226
  return {
227
227
  preset: w && e === "icons" ? "scatter-icons" : e,
228
- iconsScene: v(() => _ && !w ? {
228
+ iconsScene: y(() => _ && !w ? {
229
229
  seed: d,
230
230
  idPrefix: u,
231
- iconsKey: y,
231
+ iconsKey: v,
232
232
  styleKey: b,
233
233
  motifKey: x,
234
234
  mixKey: S,
@@ -242,7 +242,7 @@ function Y(e, { icons: o, iconStyle: s, iconMotif: c, motif: l, idPrefix: u, see
242
242
  w,
243
243
  d,
244
244
  u,
245
- y,
245
+ v,
246
246
  b,
247
247
  x,
248
248
  S,
@@ -256,7 +256,7 @@ function Y(e, { icons: o, iconStyle: s, iconMotif: c, motif: l, idPrefix: u, see
256
256
  }
257
257
  //#endregion
258
258
  //#region lib/backgrounds/background/partials/use-themed-background.ts
259
- function X({ preset: e, tone: t, intensity: n, animated: r, grain: i, seed: a, motif: c, moon: l, sky: u, icons: d, iconStyle: f, iconMotif: p, ...m }) {
259
+ function Z({ preset: e, tone: t, intensity: n, animated: r, grain: i, seed: a, motif: c, moon: l, sky: u, icons: d, iconStyle: f, iconMotif: p, ...m }) {
260
260
  let h = o()?.background || s;
261
261
  return {
262
262
  requested: e ?? h.preset,
@@ -278,52 +278,52 @@ function X({ preset: e, tone: t, intensity: n, animated: r, grain: i, seed: a, m
278
278
  }
279
279
  //#endregion
280
280
  //#region lib/backgrounds/background/background.tsx
281
- var Z = /* @__PURE__ */ e({ Background: () => $ }), Q = (e) => console.warn(e);
281
+ var Q = /* @__PURE__ */ e({ Background: () => $ }), ee = (e) => console.warn(e);
282
282
  function $({ children: e, ref: t, fill: n = "viewport", ...r }) {
283
- let { requested: i, tone: o, intensity: s, animated: u, grain: d, seed: f, motif: p, moon: m, sky: h, iconProps: g, props: b } = X(r), C = y(null), w = v(() => c(C, t), [t]), T = l(C, u), E = A(_()), { preset: D, iconsScene: O } = Y(k(i, I, a() ? void 0 : Q), {
284
- ...g,
283
+ let { requested: i, tone: o, intensity: s, animated: u, grain: d, seed: f, motif: p, moon: h, sky: g, iconProps: _, props: x } = Z(r), w = b(null), T = y(() => c(w, t), [t]), E = l(w, u), D = j(v()), { preset: O, iconsScene: k } = X(A(i, L, a() ? void 0 : ee), {
284
+ ..._,
285
285
  motif: p,
286
- idPrefix: E,
286
+ idPrefix: D,
287
287
  seed: f,
288
288
  animated: u
289
- }), { scene: j, grainScene: M, withGrain: N, shapesKey: P, scalarsKey: F, moonKey: L } = U({
290
- preset: D,
291
- hasIcons: O !== void 0,
289
+ }), { scene: M, grainScene: N, withGrain: P, shapesKey: F, scalarsKey: I, moonKey: R } = W({
290
+ preset: O,
291
+ hasIcons: k !== void 0,
292
292
  grain: d,
293
- idPrefix: E,
293
+ idPrefix: D,
294
294
  seed: f,
295
295
  motif: p,
296
- moon: m
296
+ moon: h
297
297
  });
298
- return /* @__PURE__ */ S("div", {
298
+ return /* @__PURE__ */ C("div", {
299
299
  "data-slot": "background",
300
- ...b,
301
- ref: w,
302
- "data-background": D === "grain" ? "gradient" : D,
303
- "data-preset": D,
300
+ ...x,
301
+ ref: T,
302
+ "data-background": O === "grain" ? "gradient" : O,
303
+ "data-preset": O,
304
304
  "data-tone": o,
305
305
  "data-intensity": s,
306
306
  "data-fill": n === "container" ? n : void 0,
307
307
  "data-animated": u ? "" : void 0,
308
- "data-grain": N ? "" : void 0,
309
- "data-sky": h,
310
- "data-paused": u && T ? "" : void 0,
311
- children: [/* @__PURE__ */ x(B, {
312
- preset: D,
313
- scene: j,
314
- grain: M,
315
- sky: h,
316
- idPrefix: E,
308
+ "data-grain": P ? "" : void 0,
309
+ "data-sky": g,
310
+ "data-paused": u && E ? "" : void 0,
311
+ children: [/* @__PURE__ */ S(V, {
312
+ preset: O,
313
+ scene: M,
314
+ grain: N,
315
+ sky: g,
316
+ idPrefix: D,
317
317
  seed: f,
318
- shapesKey: P,
319
- scalarsKey: F,
320
- moonKey: L,
321
- icons: O
322
- }), /* @__PURE__ */ x("div", {
318
+ shapesKey: F,
319
+ scalarsKey: I,
320
+ moonKey: R,
321
+ icons: k
322
+ }), m.toArray(e).length > 0 ? /* @__PURE__ */ S("div", {
323
323
  "data-slot": "background-content",
324
324
  children: e
325
- })]
325
+ }) : null]
326
326
  });
327
327
  }
328
328
  //#endregion
329
- export { Z as n, I as r, $ as t };
329
+ export { Q as n, L as r, $ as t };
@@ -1,3 +1,3 @@
1
- import { r as e, t } from "./background-Q4Ek3rNy.js";
1
+ import { r as e, t } from "./background-DHjdFbNo.js";
2
2
  import { BACKGROUND_INTENSITIES as n, BACKGROUND_PRESETS as r, BACKGROUND_TONES as i, MOTIF_SHAPES as a, MOTIF_SHAPES_ALL as o, SHIPPED_BACKGROUND_PRESETS as s } from "@nxgt/material-core/backgrounds";
3
3
  export { e as AVAILABLE_BACKGROUND_PRESETS, n as BACKGROUND_INTENSITIES, r as BACKGROUND_PRESETS, i as BACKGROUND_TONES, t as Background, a as MOTIF_SHAPES, o as MOTIF_SHAPES_ALL, s as SHIPPED_BACKGROUND_PRESETS };
@@ -1,6 +1,6 @@
1
1
  import { t as e } from "./utils-BLfntITJ.js";
2
2
  import { n as t, t as n } from "./dist-DVRQkaTK.js";
3
- import { n as r, t as i } from "./spinner-DH1mm8hH.js";
3
+ import { n as r, t as i } from "./spinner-C6LP2Rw8.js";
4
4
  import { t as a } from "./dist-DkQbkF9T.js";
5
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";
@@ -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-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";
2
+ import { n as t, r as n, t as r, u as i } from "./tabs-Bj1zOe7-.js";
3
+ import { t as a } from "./button-DhiNGrdT.js";
4
+ import { t as o } from "./use-material-translation-1kCHtB0p.js";
5
+ import { t as s } from "./icon-button-CG4aO8Gh.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-BFrapNmx.js";
14
+ import { i as re, t as ie } from "./pos-types-Dv2UxKSN.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-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")
282
+ scientific: () => import("./scientific-variant-DijUrpP8.js"),
283
+ pos: () => import("./pos-variant-DJvtN9N8.js"),
284
+ programmer: () => import("./programmer-variant-Bmcq2KzC.js"),
285
+ financial: () => import("./financial-variant-BYjQ690K.js"),
286
+ conversion: () => import("./conversion-variant-DultZZQm.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
  };
@@ -1,11 +1,11 @@
1
1
  import { t as e } from "./utils-BLfntITJ.js";
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";
2
+ import { t } from "./button-DhiNGrdT.js";
3
+ import { t as n } from "./use-material-translation-1kCHtB0p.js";
4
+ import { t as r } from "./icon-button-CG4aO8Gh.js";
5
+ import { a as i, i as a, n as o, r as s, t as c } from "./picker-surface-pyGv-Qh9.js";
6
+ import { r as l, t as u } from "./currency-field-CPbaM7ay.js";
7
7
  import { r as d, t as f } from "./field-blur-DkiZOVNV.js";
8
- import { t as p } from "./calculator-Cv00UQgR.js";
8
+ import { t as p } from "./calculator-BcgxxScL.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-DYrfV_JJ.js";
1
+ import { t as e } from "./use-material-translation-1kCHtB0p.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 }) {
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "./calculator-Cv00UQgR.js";
1
+ import { n as e, t } from "./calculator-BcgxxScL.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-CSKUtMI3.js";
5
- import { t as i } from "./use-material-translation-DYrfV_JJ.js";
4
+ import { t as r } from "./button-DhiNGrdT.js";
5
+ import { t as i } from "./use-material-translation-1kCHtB0p.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-BGn0V6Pt.js";
9
+ import { t as d } from "./chip-m0_usuzd.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-DH1mm8hH.js";
2
+ import { n as t } from "./spinner-C6LP2Rw8.js";
3
3
  import { s as n } from "./use-click-lock-Bwg_caHO.js";
4
- import { t as r } from "./use-material-translation-DYrfV_JJ.js";
4
+ import { t as r } from "./use-material-translation-1kCHtB0p.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-C6rcYGB9.js";
4
+ import { c as r, d as i, f as a, n as o, t as s } from "./dropdown-menu-CDKev8dk.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-BoEY5bkt.js";
6
+ import { a as d, o as f, r as p, s as m, t as h } from "./toolbar-items-CEIuSxU_.js";
7
7
  import { t as g } from "./is-production-GLw59WU8.js";
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";
8
+ import { t as _ } from "./use-material-translation-1kCHtB0p.js";
9
+ import { i as v, n as y, o as b, t as x } from "./code-language-items-BWw17W9s.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";
@@ -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-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";
3
+ import { o as n, r, s as i, t as a } from "./toolbar-items-CEIuSxU_.js";
4
+ import { t as o } from "./use-material-translation-1kCHtB0p.js";
5
+ import { i as s, n as c, o as l } from "./code-language-items-BWw17W9s.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-B25-mWhb.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-BgKFrcld.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-C6rcYGB9.js";
2
- import { t as n } from "./use-material-translation-DYrfV_JJ.js";
1
+ import { d as e, f as t } from "./dropdown-menu-CDKev8dk.js";
2
+ import { t as n } from "./use-material-translation-1kCHtB0p.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";
@@ -21,9 +21,9 @@
21
21
  --primary: oklch(46% 0.1135 276.35);
22
22
  --primary-foreground: oklch(0.984 0.003 247.858);
23
23
  /* Primary drawn as text or an icon on a normal surface (`text-primary-text`):
24
- the colour mixed 4 % toward black in light, which keeps it 7.9:1 on
25
- the white page and on a Card (the colour itself gives 7.3:1); the dark theme lifts it. */
26
- --primary-text: color-mix(in oklab, var(--primary) 96%, black);
24
+ the colour mixed 10 % toward black in light, which keeps it above 4.5:1 on
25
+ the page, a Card and the tinted row, header and ground surfaces a tonal Button label sits on; the dark theme lifts it. */
26
+ --primary-text: color-mix(in oklab, var(--primary) 90%, black);
27
27
  /* Primary drawn as a non-text mark (WCAG 1.4.11, 3:1): an indicator bar or dot,
28
28
  a selected or focused border, a ring, a spinner arc, a progress fill
29
29
  (`bg-primary-indicator`, `border-primary-indicator`...). Light is --primary;