@nxgt/material-vue 0.31.0 → 0.32.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 +30 -0
- package/README.md +1 -1
- package/dist/{Button-CNbJT5qV.js → Button-DEA5W6O3.js} +1 -1
- package/dist/{HoverCardTrigger-BTAHE6wK.js → HoverCardTrigger-CjSteFgk.js} +2 -2
- package/dist/{camera-rJmgxIEn.js → camera-DlWK0PLP.js} +4 -4
- package/dist/{components-Dxy9DvEe.js → components-Dqg7KwA2.js} +13503 -13362
- package/dist/components.js +6 -6
- package/dist/composables.js +2 -2
- package/dist/dnd.js +1 -1
- package/dist/{form-scope-BhNw4Mm6.js → form-scope-btEYYnGW.js} +1 -1
- package/dist/{i18n-provider-BPK68eqM.js → i18n-provider-CiVi05fs.js} +1 -1
- package/dist/i18n.js +4 -4
- package/dist/{icon-button-DXXjxBgr.js → icon-button-CWcOcNHr.js} +1 -1
- package/dist/lib/components/ui/fields/contacts/consts.d.ts +1 -1
- package/dist/lib/components/ui/fields/search-field/index.d.ts +2 -1
- package/dist/lib/components/ui/selection/autocomplete/autocomplete-items.d.ts +5 -0
- package/dist/lib/components/ui/selection/autocomplete/autocomplete.vue.d.ts +6 -3
- package/dist/lib/components/ui/selection/autocomplete/filter-options.d.ts +9 -2
- package/dist/lib/components/ui/selection/autocomplete/index.d.ts +1 -0
- package/dist/lib/components/ui/selection/autocomplete/partials/autocomplete-list.vue.d.ts +8 -1
- package/dist/lib/components/ui/selection/autocomplete/search-types.d.ts +34 -0
- package/dist/lib/components/ui/selection/autocomplete/use-autocomplete-items.d.ts +20 -3
- package/dist/lib/components/ui/selection/autocomplete/use-autocomplete-list.d.ts +28 -0
- package/dist/lib/components/ui/selection/autocomplete/use-autocomplete-search.d.ts +11 -0
- package/dist/lib/components/ui/selection/autocomplete/use-autocomplete-status.d.ts +32 -0
- package/dist/lib/components/ui/selection/autocomplete/use-autocomplete-texts.d.ts +1 -3
- package/dist/lib/components/ui/selection/autocomplete/use-autocomplete.d.ts +10 -5
- package/dist/lib/components/ui/selection/radio-group/radio-group-field.vue.d.ts +2 -0
- package/dist/lib/i18n/resources/en/en.d.ts +4 -0
- package/dist/lib/i18n/resources/en/material.json.d.ts +5 -1
- package/dist/lib/i18n/resources/fr/fr.d.ts +4 -0
- package/dist/lib/i18n/resources/fr/material.json.d.ts +5 -1
- package/dist/lib/i18n/resources/resources.d.ts +8 -0
- package/dist/lib/i18n/translator.d.ts +1 -1
- package/dist/lib.js +2 -2
- package/dist/main.js +11 -11
- package/dist/map.js +4 -4
- package/dist/{pdf-outline-sidebar-6pIxLP_o.js → pdf-outline-sidebar-DchMD-_k.js} +2 -2
- package/dist/{pdf-page--zE3j8bc.js → pdf-page-D-kDQq5h.js} +1 -1
- package/dist/{pdf-page-list-ojy2YSTr.js → pdf-page-list-Cta0S89W.js} +2 -2
- package/dist/{pdf-reader-CcSJaFFp.js → pdf-reader-BwWozoIQ.js} +8 -8
- package/dist/{pdf-sidebar-8DC9VdCG.js → pdf-sidebar-B0Addf1P.js} +3 -3
- package/dist/{pdf-thumbnail-sidebar-BbPcfCYm.js → pdf-thumbnail-sidebar-Dsptq4fb.js} +3 -3
- package/dist/{pdf-toolbar-B_MDicKL.js → pdf-toolbar-Da6UMt1O.js} +4 -4
- package/dist/pdf.js +2 -2
- package/dist/{sortable-provider-Cb3tm9Cy.js → sortable-provider-Cvpqk8tp.js} +2 -2
- package/dist/{stored-language-UnInBB6T.js → stored-language-GDRdeYD8.js} +10 -2
- package/dist/{stx-player-CjGKQF6K.js → stx-player-Bpnir1KO.js} +2 -2
- package/dist/{translator-J3_vaV_A.js → translator-BDFEmlcL.js} +1 -1
- package/dist/{use-heading-spy-_dk8kGwL.js → use-heading-spy-Czi_Xv3u.js} +1 -1
- package/dist/{use-material-translation-Do6ztdtV.js → use-material-translation-CaHS6oZz.js} +3 -3
- package/docs/components/selection-and-choice.md +75 -4
- package/docs/guides/helpers.md +1 -1
- package/docs/roadmap.md +4 -0
- package/docs/troubleshooting.md +78 -0
- package/package.json +7 -2
- package/dist/lib/components/ui/fields/search-field/debounce.d.ts +0 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,35 @@
|
|
|
1
1
|
# @nxgt/material-vue
|
|
2
2
|
|
|
3
|
+
## 0.32.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#521](https://github.com/softistx/nxgt-material/pull/521) [`b76cd9a`](https://github.com/softistx/nxgt-material/commit/b76cd9ae3cc4f4d0f1b20cec31c9471819ffcd3c) Thanks [@SteveGT96](https://github.com/SteveGT96)! - `Autocomplete` can search a server (softistx/nxgt-material#514). Fixes [#514](https://github.com/softistx/nxgt-material/issues/514).
|
|
8
|
+
|
|
9
|
+
- **Server search.** `onSearch(query, { signal })` (Vue: the function prop `on-search`, so `@search="fn"` binds it too) is called once typing pauses and its results become the list. Each search aborts the previous one (pass `signal` to `fetch`), and a response that lands after a newer one is dropped, even from an API that ignores the signal. `minQueryLength` (Vue: `min-query-length`, default 1) is how many characters it waits for; below it the list says "Type at least N characters to search." A rejected search is shown and announced ("The search failed. Try again.") and reported to `onSearchError` (Vue: `@search-error`). `options` is now optional: with `onSearch` it is the list before a search and the selected options' labels, and a picked option keeps its chip once a new search no longer returns it.
|
|
10
|
+
- **Controlled mode.** `loading` and `searchError` (Vue: `search-error`), beside `onQueryChange` (Vue: `@query-change`), for an app that fetches `options` itself.
|
|
11
|
+
- **A configurable debounce.** `debounceMs` (Vue: `debounce-ms`), 250 ms by default, sets the pause before `onSearch` and `onQueryChange`.
|
|
12
|
+
- **Accent-insensitive matching.** `filter`: `'accent-insensitive'` (the default without `onSearch`), `'none'` (the default with `onSearch`) or `(option, query) => boolean`. The default compares the label or value with the query lowercased in the provider's language and stripped of accents, so "e" finds "École" and "orle" finds "Orléans". Vue's exported `filterAutocompleteOptions` matches the same way and takes an optional `locale`.
|
|
13
|
+
- **Accessibility.** A polite live region announces "Loading…", then "N results" / "No results" (or the failure) once the search answers or typing pauses, not on every keystroke; the list is `aria-busy` while loading. New strings: `material.autocomplete.loading`, `.results`, `.search-error`, `.min-query` (en, fr). The keyboard works as before.
|
|
14
|
+
- React: clearing a single `Autocomplete`'s input no longer throws (`Cannot read properties of null (reading 'value')`).
|
|
15
|
+
- `@nxgt/material-core` adds `/debounce` (the `debounce` both libraries' `SearchField` kept a copy of, still exported by both, Vue now with its `Debounced` type), `/text-match` (`foldText`, `matchesText`) and `/async-search` (`createAsyncSearch`, `searchAnnouncement`).
|
|
16
|
+
|
|
17
|
+
Apps that built their own search field and result list while waiting for this (marked `Temporary, until material [#514](https://github.com/softistx/nxgt-material/issues/514)`) can replace it with `onSearch` and remove the workaround.
|
|
18
|
+
|
|
19
|
+
**Behaviour changes, no API removed.**
|
|
20
|
+
|
|
21
|
+
- Local matching ignores accents by default, so a query can keep more options than before. To match as before, pass your own `filter`, for example `filter={(option, query) => option.label.toLowerCase().includes(query.toLowerCase())}`; to show `options` exactly as given (filtered on your server), pass `filter="none"`.
|
|
22
|
+
- `onQueryChange` (`@query-change`) now runs 250 ms after typing pauses; it was a fixed 1 s in `@nxgt/material` and 300 ms in `@nxgt/material-vue`. Search for `onQueryChange` / `@query-change`, and add `debounceMs={1000}` (`:debounce-ms="300"`) where the old pause mattered — or move the fetch to `onSearch`.
|
|
23
|
+
- React: the list's empty text is no longer a live region of its own (Base UI's `ComboboxEmpty` had `role="status"`); the field's one status region (`[data-slot="autocomplete-status"]`) says "No results" instead. A test that found the empty text by `role="status"` finds it by its text.
|
|
24
|
+
|
|
25
|
+
- [#518](https://github.com/softistx/nxgt-material/pull/518) [`102f3b8`](https://github.com/softistx/nxgt-material/commit/102f3b822ea8d1e83aaffec8b6739ce4fdb5a599) Thanks [@SteveGT96](https://github.com/SteveGT96)! - A `RadioGroup` option can be disabled on its own (softistx/nxgt-material#513): `options` take `disabled?: boolean`, in `RadioGroup` and `RadioGroupFormField` of `@nxgt/material` and in `RadioGroupField` and `RadioGroupFormField` of `@nxgt/material-vue`. A disabled option is announced as disabled, skipped by the arrow keys (as the Radix and Reka UI primitives do), and drawn with a muted label (4.5:1 in both themes) and a faded radio; the group's own `disabled` still disables every option. `@nxgt/material` also exports the `RadioGroupOption` type, as `@nxgt/material-vue` does. Apps can drop the list of unavailable choices they kept apart (`Temporary, until material [#513](https://github.com/softistx/nxgt-material/issues/513)`). Fixes [#513](https://github.com/softistx/nxgt-material/issues/513).
|
|
26
|
+
|
|
27
|
+
### Patch Changes
|
|
28
|
+
|
|
29
|
+
- [#519](https://github.com/softistx/nxgt-material/pull/519) [`18f30c1`](https://github.com/softistx/nxgt-material/commit/18f30c1cc6cc41c2b73a43fad2501b7db2bbc016) Thanks [@SteveGT96](https://github.com/SteveGT96)! - package.json names its repository, so issue reports route to it. Each package now has a `repository` field (`git+https://github.com/softistx/nxgt-material.git`, with its `directory` under `packages/`).
|
|
30
|
+
- Updated dependencies [[`b76cd9a`](https://github.com/softistx/nxgt-material/commit/b76cd9ae3cc4f4d0f1b20cec31c9471819ffcd3c), [`18f30c1`](https://github.com/softistx/nxgt-material/commit/18f30c1cc6cc41c2b73a43fad2501b7db2bbc016)]:
|
|
31
|
+
- @nxgt/material-core@0.8.0
|
|
32
|
+
|
|
3
33
|
## 0.31.0
|
|
4
34
|
|
|
5
35
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -433,7 +433,7 @@ React-only for now: `StepperIndicator` ([roadmap](https://cdn.jsdelivr.net/npm/@
|
|
|
433
433
|
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material-vue@0/docs/previews/selection-choice-selectfield.webp" width="120" alt="SelectField"> | [`SelectField`](https://cdn.jsdelivr.net/npm/@nxgt/material-vue@0/docs/components/selection-and-choice.md#selectfield) · `SelectFormField` | Labelled select built from `options`, with an `#option` slot. | `SelectField`, `SelectFormField` |
|
|
434
434
|
| — | [Combobox](https://cdn.jsdelivr.net/npm/@nxgt/material-vue@0/docs/components/selection-and-choice.md#combobox) | The raw combobox primitives are not in `@nxgt/material-vue`. Use [`ComboboxField`](https://cdn.jsdelivr.net/npm/@nxgt/material-vue@0/docs/components/selection-and-choice.md#comboboxfield) for a searchable single select, [`Autocomplete`](https://cdn.jsdelivr.net/npm/@nxgt/material-vue@0/docs/components/selection-and-choice.md#autocomplete) for several values or free text, or the `Command` parts (Overlays & menus) for a hand-built list. | `Combobox` |
|
|
435
435
|
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material-vue@0/docs/previews/selection-choice-comboboxfield.webp" width="120" alt="ComboboxField"> | [`ComboboxField`](https://cdn.jsdelivr.net/npm/@nxgt/material-vue@0/docs/components/selection-and-choice.md#comboboxfield) · `ComboboxFormField` | Labelled, searchable single select over `{ value, label }` options, in a popover. | `ComboboxField`, `ComboboxFormField` |
|
|
436
|
-
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material-vue@0/docs/previews/selection-choice-autocomplete.webp" width="120" alt="Autocomplete"> | [`Autocomplete`](https://cdn.jsdelivr.net/npm/@nxgt/material-vue@0/docs/components/selection-and-choice.md#autocomplete) · `AutocompleteFormField` | Single or multiple (chips) autocomplete typed by its options, with free-solo values, a
|
|
436
|
+
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material-vue@0/docs/previews/selection-choice-autocomplete.webp" width="120" alt="Autocomplete"> | [`Autocomplete`](https://cdn.jsdelivr.net/npm/@nxgt/material-vue@0/docs/components/selection-and-choice.md#autocomplete) · `AutocompleteFormField` | Single or multiple (chips) autocomplete typed by its options, with free-solo values, accent-insensitive matching, a debounced server search and option slots. | `Autocomplete`, `AutocompleteFormField` |
|
|
437
437
|
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material-vue@0/docs/previews/selection-choice-checkbox.webp" width="120" alt="Checkbox"> | [`Checkbox`](https://cdn.jsdelivr.net/npm/@nxgt/material-vue@0/docs/components/selection-and-choice.md#checkbox) · `CheckboxFormField` | Checkbox with label, helper text and an indeterminate state; without a label, the bare Reka UI box. | `Checkbox`, `CheckboxFormField` |
|
|
438
438
|
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material-vue@0/docs/previews/selection-choice-checkboxgroup.webp" width="120" alt="CheckboxGroup"> | [`CheckboxGroup`](https://cdn.jsdelivr.net/npm/@nxgt/material-vue@0/docs/components/selection-and-choice.md#checkboxgroup) · `CheckboxGroupFormField` | Checkbox list built from `options`, valued as `string[]`. | `CheckboxGroup`, `CheckboxGroupFormField` |
|
|
439
439
|
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material-vue@0/docs/previews/selection-choice-radiogroup.webp" width="120" alt="RadioGroup"> | [`RadioGroupField`](https://cdn.jsdelivr.net/npm/@nxgt/material-vue@0/docs/components/selection-and-choice.md#radiogroup) · `RadioGroupFormField`, `RadioGroup`, `RadioGroupItem` | Labelled radio group built from `options`, horizontal or vertical. | `RadioGroupField` (alias), `RadioGroup`, `RadioGroupItem`, `RadioGroupFormField` |
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as e } from "./utils-CykWQ0iJ.js";
|
|
2
|
-
import { t } from "./use-material-translation-
|
|
2
|
+
import { t } from "./use-material-translation-CaHS6oZz.js";
|
|
3
3
|
import { Comment as n, Fragment as r, Text as i, computed as a, createBlock as o, createElementBlock as s, createElementVNode as c, createTextVNode as l, createVNode as u, defineComponent as d, guardReactiveProps as f, h as p, inject as ee, isVNode as m, mergeProps as h, normalizeClass as g, normalizeProps as _, onBeforeUnmount as v, openBlock as y, provide as b, ref as x, renderSlot as S, shallowRef as C, unref as w, useAttrs as te, useSlots as ne, watch as T, withCtx as E } from "vue";
|
|
4
4
|
import { Primitive as D, TooltipArrow as O, TooltipContent as k, TooltipPortal as A, TooltipProvider as re, TooltipRoot as j, TooltipTrigger as M, useForwardPropsEmits as N } from "reka-ui";
|
|
5
5
|
import { cva as P } from "class-variance-authority";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as e } from "./utils-CykWQ0iJ.js";
|
|
2
|
-
import { t } from "./use-material-translation-
|
|
3
|
-
import { t as n } from "./Button-
|
|
2
|
+
import { t } from "./use-material-translation-CaHS6oZz.js";
|
|
3
|
+
import { t as n } from "./Button-DEA5W6O3.js";
|
|
4
4
|
import { t as r } from "./use-inert-others-CtGqZKR8.js";
|
|
5
5
|
import { t as i } from "./field-name-attribute-Bl7LSVK0.js";
|
|
6
6
|
import { computed as a, createBlock as o, createCommentVNode as s, createElementBlock as c, createElementVNode as l, createTextVNode as u, createVNode as d, defineComponent as f, getCurrentInstance as p, guardReactiveProps as m, isRef as h, mergeProps as g, normalizeClass as _, normalizeProps as v, onMounted as ee, onUpdated as y, openBlock as b, renderSlot as x, toDisplayString as S, unref as C, useAttrs as w, useId as T, useTemplateRef as E, vModelText as D, withCtx as O, withDirectives as k } from "vue";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { t as e } from "./utils-CykWQ0iJ.js";
|
|
2
|
-
import { gr as t, mr as n, pr as r } from "./components-
|
|
3
|
-
import { t as i } from "./use-material-translation-
|
|
4
|
-
import { t as a } from "./Button-
|
|
5
|
-
import { t as o } from "./icon-button-
|
|
2
|
+
import { gr as t, mr as n, pr as r } from "./components-Dqg7KwA2.js";
|
|
3
|
+
import { t as i } from "./use-material-translation-CaHS6oZz.js";
|
|
4
|
+
import { t as a } from "./Button-DEA5W6O3.js";
|
|
5
|
+
import { t as o } from "./icon-button-CWcOcNHr.js";
|
|
6
6
|
import { createBlock as s, createCommentVNode as c, createElementBlock as l, createElementVNode as u, createTextVNode as d, createVNode as f, defineComponent as p, normalizeClass as m, openBlock as h, ref as g, renderSlot as _, shallowRef as v, toDisplayString as y, unref as b, withCtx as x } from "vue";
|
|
7
7
|
import { Pause as S, Play as C } from "@lucide/vue";
|
|
8
8
|
//#region lib/components/ui/media/camera/camera-content.vue?vue&type=script&setup=true&lang.ts
|