@nxgt/material-vue 0.40.1 → 0.41.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 +47 -0
- package/README.md +1 -1
- package/dist/{Button-teS2p_af.js → Button-BG3oDkrl.js} +132 -94
- package/dist/{HoverCardTrigger-BEzEsgBo.js → HoverCardTrigger-Dh1ar_W4.js} +2 -2
- package/dist/{camera-1QRTmpnM.js → camera-DV9jcl_3.js} +4 -4
- package/dist/components/base-content.css +14 -4
- package/dist/{components-XJ95qxB1.js → components-C1JYYoQ4.js} +7297 -7245
- package/dist/components.js +6 -6
- package/dist/composables.js +2 -2
- package/dist/dnd.js +1 -1
- package/dist/{form-scope-BtEP6yC2.js → form-scope-CeD0v_mw.js} +1 -1
- package/dist/{i18n-provider-BpNC9SxV.js → i18n-provider-D5XyLQ3P.js} +1 -1
- package/dist/i18n.js +4 -4
- package/dist/{icon-button-Vz4NECf1.js → icon-button-DXrmfs6e.js} +43 -5
- package/dist/lib/components/ui/actions/button/Button.vue.d.ts +1 -1
- package/dist/lib/components/ui/actions/button/button.compound-variants.d.ts +28 -0
- package/dist/lib/components/ui/actions/button/button.variants.d.ts +8 -2
- package/dist/lib/components/ui/actions/copy-button/copy-button.vue.d.ts +1 -1
- package/dist/lib/components/ui/actions/copy-button/use-copy-status.d.ts +3 -1
- package/dist/lib/components/ui/actions/icon-button/icon-button.compound-variants.d.ts +28 -0
- package/dist/lib/components/ui/actions/icon-button/icon-button.variants.d.ts +8 -2
- package/dist/lib/components/ui/actions/icon-button/icon-button.vue.d.ts +1 -1
- package/dist/lib/components/ui/actions/link/icon-link-button.vue.d.ts +1 -1
- package/dist/lib/components/ui/actions/link/link-button.vue.d.ts +1 -1
- package/dist/lib/components/ui/actions/link/responsive-link-button.vue.d.ts +1 -1
- package/dist/lib/components/ui/actions/load-more-button/load-more-button.vue.d.ts +1 -1
- package/dist/lib/components/ui/actions/scroll-to-top/scroll-to-top.vue.d.ts +1 -1
- package/dist/lib/components/ui/display/cards/cards.gallery.d.ts +3 -3
- package/dist/lib/components/ui/display/chip/chip.utils.d.ts +1 -1
- package/dist/lib/components/ui/display/enrolment-secret/enrolment-secret.vue.d.ts +17 -1
- package/dist/lib/components/ui/display/qrcode/qrcode.vue.d.ts +6 -0
- package/dist/lib/components/ui/display/recovery-codes/index.d.ts +1 -1
- package/dist/lib/components/ui/display/recovery-codes/partials/recovery-codes-actions.vue.d.ts +20 -2
- package/dist/lib/components/ui/display/recovery-codes/recovery-codes.vue.d.ts +9 -1
- package/dist/lib/components/ui/display/recovery-codes/types.d.ts +4 -0
- package/dist/lib/components/ui/display/recovery-codes/use-recovery-codes-labels.d.ts +1 -0
- package/dist/lib/components/ui/fields/contacts/consts.d.ts +1 -1
- package/dist/lib/components/ui/fields/otp-field/otp-field.vue.d.ts +2 -0
- package/dist/lib/components/ui/layout/stepper/stepper.vue.d.ts +7 -2
- package/dist/lib/components/ui/media/carousel/carousel-next.vue.d.ts +1 -1
- package/dist/lib/components/ui/media/carousel/carousel-previous.vue.d.ts +1 -1
- package/dist/lib/components/ui/primitives/input-group/input-group-button.vue.d.ts +1 -1
- package/dist/lib/i18n/resources/en/en.d.ts +1 -0
- package/dist/lib/i18n/resources/en/material.json.d.ts +1 -0
- package/dist/lib/i18n/resources/fr/fr.d.ts +1 -0
- package/dist/lib/i18n/resources/fr/material.json.d.ts +3 -2
- package/dist/lib/i18n/resources/resources.d.ts +2 -0
- package/dist/lib/i18n/translator.d.ts +1 -1
- package/dist/lib.js +1 -1
- package/dist/main.js +11 -11
- package/dist/map.js +4 -4
- package/dist/material-vue.css +1 -1
- package/dist/{pdf-outline-sidebar-DINCjWKk.js → pdf-outline-sidebar-CgmJjhUz.js} +2 -2
- package/dist/{pdf-page-BLJ0xkS3.js → pdf-page-BjQNWV72.js} +1 -1
- package/dist/{pdf-page-list-BNUPVA9x.js → pdf-page-list-nG0l4SjH.js} +2 -2
- package/dist/{pdf-reader-BcB_Kd_F.js → pdf-reader-Dekd4Ymw.js} +8 -8
- package/dist/{pdf-sidebar-B7WgcY77.js → pdf-sidebar-gDj63dRH.js} +3 -3
- package/dist/{pdf-thumbnail-sidebar-BRtyyBPt.js → pdf-thumbnail-sidebar-C5ikii1Z.js} +3 -3
- package/dist/{pdf-toolbar-_CBHSMnH.js → pdf-toolbar-DmmrSlCq.js} +4 -4
- package/dist/pdf.js +2 -2
- package/dist/{print-format.utils-k5W0GBRF.js → print-format.utils-CiUiQE-i.js} +2 -2
- package/dist/{sortable-provider-Dw9TBAlq.js → sortable-provider-lK0srHJF.js} +2 -2
- package/dist/{stored-language-DEyPmUzl.js → stored-language-dM2e5qaS.js} +4 -2
- package/dist/{stx-player-CgwzX7_k.js → stx-player-C2VQCXFc.js} +2 -2
- package/dist/{translator-B62GlCBp.js → translator-DXL5RDRg.js} +1 -1
- package/dist/{use-heading-spy-T94lNeNA.js → use-heading-spy-Btwc0yad.js} +1 -1
- package/dist/{use-material-translation-DxU51--g.js → use-material-translation-Du3Wvsk1.js} +3 -3
- package/docs/components/buttons-and-actions.md +2 -2
- package/docs/components/data-display.md +14 -7
- package/docs/components/data-table-filter-and-lists.md +3 -1
- package/docs/components/feedback-and-status.md +7 -2
- package/docs/components/form-fields.md +2 -1
- package/docs/components/navigation-and-layout.md +6 -1
- package/docs/guides/forms.md +10 -4
- package/docs/troubleshooting.md +31 -0
- package/lib/components/base-content.css +14 -4
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,52 @@
|
|
|
1
1
|
# @nxgt/material-vue
|
|
2
2
|
|
|
3
|
+
## 0.41.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#623](https://github.com/softistx/nxgt-material/pull/623) [`619cc13`](https://github.com/softistx/nxgt-material/commit/619cc13af84048938718a4c3a3bbca2b15ed6650) Thanks [@SteveGT96](https://github.com/SteveGT96)! - Placeholders now read as placeholders ([#587](https://github.com/softistx/nxgt-material/issues/587)). `Select`/`SelectField`, `DateField`, `TimeField`, `DateRangeField` and `TreeSelectField` draw their empty state in the muted foreground, as a text input does, instead of the value's colour (still at least 4.5:1 in light and dark); Vue's `Autocomplete` input too. `OtpField` takes a `placeholder`: a format hint such as `"123456"`, one character per slot, drawn muted in the empty slots until the first character is typed (`InputOTP` takes it as well, and `InputOTPSlot` shows it).
|
|
8
|
+
|
|
9
|
+
- [#619](https://github.com/softistx/nxgt-material/pull/619) [`d281bc2`](https://github.com/softistx/nxgt-material/commit/d281bc26437dcd6902458523ff73a8db68aca5dd) Thanks [@SteveGT96](https://github.com/SteveGT96)! - `RecoveryCodes` and `EnrolmentSecret` get the feedback, icons and QR margin a
|
|
10
|
+
sighted user and a themed app need:
|
|
11
|
+
|
|
12
|
+
- **Copy result visible** ([#558](https://github.com/softistx/nxgt-material/issues/558)): `RecoveryCodes` writes "Codes copied" or
|
|
13
|
+
"Copy failed. Download or print the codes instead." beside the buttons (it
|
|
14
|
+
stays a polite status region; a refusal stays until the next copy or action), and the copy button's icon turns into a check
|
|
15
|
+
or a cross for a moment. New `onCopy(result)` prop (Vue: `@copy`) with
|
|
16
|
+
`'copied' | 'failed'`, so the app can toast it. New label `copyFailedHint`
|
|
17
|
+
(English and French built in).
|
|
18
|
+
- **Replaceable icons** ([#559](https://github.com/softistx/nxgt-material/issues/559)): React `RecoveryCodes` takes `icons={{ copy,
|
|
19
|
+
download, print }}` and `EnrolmentSecret` takes `copyIcon`; Vue has the slots
|
|
20
|
+
`copy-icon`, `download-icon`, `print-icon` and, on `EnrolmentSecret`,
|
|
21
|
+
`copy-icon`. An app on Font Awesome through `<Icon>` no longer mixes in
|
|
22
|
+
Lucide.
|
|
23
|
+
- **QR quiet zone** ([#560](https://github.com/softistx/nxgt-material/issues/560)): `QRCode` takes `quietZone` (in modules) and
|
|
24
|
+
`EnrolmentSecret` takes `qrQuietZone`, default `4` as the QR spec asks, so
|
|
25
|
+
the margin follows the size and the density instead of a fixed `p-4`. It is
|
|
26
|
+
drawn inside the SVG (no inline `style`, so a strict CSP is untouched). The
|
|
27
|
+
QR tile of `EnrolmentSecret` is therefore a little wider or narrower than
|
|
28
|
+
before; `QRCode` alone is unchanged unless `quietZone` is set. React adds
|
|
29
|
+
`qrcode-generator` (already installed through `react-qr-code`) as a direct
|
|
30
|
+
dependency to draw the code with a quiet zone.
|
|
31
|
+
|
|
32
|
+
- [#617](https://github.com/softistx/nxgt-material/pull/617) [`9140735`](https://github.com/softistx/nxgt-material/commit/91407355cb9b5d95aed906c4a9f34f9072702aea) Thanks [@SteveGT96](https://github.com/SteveGT96)! - `Stepper` takes `orientation="responsive"` ([#517](https://github.com/softistx/nxgt-material/issues/517)): below `sm` (640px) every step is listed in a column, with the current one marked `aria-current="step"`, instead of the compact single-step bar; from `sm` the steps sit in a row. `'horizontal'` stays the default and renders as before.
|
|
33
|
+
|
|
34
|
+
### Patch Changes
|
|
35
|
+
|
|
36
|
+
- [#616](https://github.com/softistx/nxgt-material/pull/616) [`5a0b2d4`](https://github.com/softistx/nxgt-material/commit/5a0b2d48c28f70aa9825d70b98f8ceab0b95a42c) Thanks [@SteveGT96](https://github.com/SteveGT96)! - On a phone, a Banner action that is a `ghost` or `link` button (a `LinkButton` too) now starts at the text's edge ([#613](https://github.com/softistx/nxgt-material/issues/613)). It used to sit one button padding (about 16px) to the inline end of the text, because it has no fill or border to show its box. From `sm` up nothing changes. The React `Button` also renders `data-size`, as the Vue one already did.
|
|
37
|
+
|
|
38
|
+
- [#620](https://github.com/softistx/nxgt-material/pull/620) [`a693a0c`](https://github.com/softistx/nxgt-material/commit/a693a0c75b67491659f93e4cb70e40edb601605c) Thanks [@SteveGT96](https://github.com/SteveGT96)! - The sticky `[data-slot="form-actions"]` of a `.form-grid-layout` pads its bottom for the safe area (`max(1rem, env(safe-area-inset-bottom))`), so in an installed app with `viewport-fit=cover` it no longer sits under the home indicator ([#609](https://github.com/softistx/nxgt-material/issues/609)). The default clearance that keeps a tabbed-to field above the actions is now 8rem on a phone (6rem elsewhere), which covers actions whose label wraps over two lines plus a field's error line, and it grows with the safe-area inset. `--form-actions-clearance` still overrides it; an app that set 8rem for this can drop it.
|
|
39
|
+
|
|
40
|
+
- [#622](https://github.com/softistx/nxgt-material/pull/622) [`cb9b6c8`](https://github.com/softistx/nxgt-material/commit/cb9b6c859f2700be0303dd153ea750e87b69ffcb) Thanks [@SteveGT96](https://github.com/SteveGT96)! - `Button` and `IconButton` with `variant="ghost"` now honour `color` ([#610](https://github.com/softistx/nxgt-material/issues/610)): in `secondary`, `success`, `info`, `warning` or `error` the text (and icon) takes that colour, with a tint of it on hover, focus and press, at 4.5:1 on the page and on a card in both themes, as `link` does. In `primary` (the default), `default`, or with `color={null}`, a ghost button looks as before. What is drawn with the Button's classes follows: a ghost `Chip`, and an `AlertDialogAction` or `AlertDialogCancel` given `variant="ghost"` and a colour, now show it. So do the library's own ghost buttons that name a colour: `InlineEdit`'s save (success), and the remove or retry buttons of `FilterPresets`, `FileList` and the rich-text editor's repeating blocks (error).
|
|
41
|
+
|
|
42
|
+
In `@nxgt/material`, a `ConfirmDialog` (or any `AlertDialog`, `Dialog`, `Sheet` or `Drawer`) opened from a `DropdownMenuItem`, a submenu's included, now hands the focus back to the menu's trigger when it closes, instead of losing it to the page; `@nxgt/material-vue` already did, and now has stories that prove it.
|
|
43
|
+
|
|
44
|
+
- [#622](https://github.com/softistx/nxgt-material/pull/622) [`deb9af0`](https://github.com/softistx/nxgt-material/commit/deb9af08d4dcee4f03247a4687d8a4a80a180f73) Thanks [@SteveGT96](https://github.com/SteveGT96)! - A sorted `DataTable` column now says so ([#612](https://github.com/softistx/nxgt-material/issues/612)): its header cell carries `aria-sort="ascending"` or `"descending"` (none while unsorted, nor on a grouped header's placeholder), as the WAI-ARIA sortable table pattern has it. The `DataTableColumnHeader` button keeps its name, the column's title. In French the sort menu reads "Croissant" / "Décroissant" instead of "Asc" / "Desc"; a French test that clicked "Asc" needs "Croissant".
|
|
45
|
+
|
|
46
|
+
The troubleshooting guide explains axe's `target-size` on a control half under a form's sticky actions, and how to scan with the actions in the flow.
|
|
47
|
+
|
|
48
|
+
- [#620](https://github.com/softistx/nxgt-material/pull/620) [`505349a`](https://github.com/softistx/nxgt-material/commit/505349a572afedcc174c7956baf69ab9ee371c5e) Thanks [@SteveGT96](https://github.com/SteveGT96)! - A toast with an action no longer breaks its message in the middle of a word on desktop ([#515](https://github.com/softistx/nxgt-material/issues/515)). The title and description used `overflow-wrap: anywhere`, which let the text column shrink to a single character beside the action and the X; they now use `overflow-wrap: break-word`, so the column keeps the room of its longest word and the text wraps between words.
|
|
49
|
+
|
|
3
50
|
## 0.40.1
|
|
4
51
|
|
|
5
52
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -490,7 +490,7 @@ React-only for now: `StepperIndicator` ([roadmap](https://cdn.jsdelivr.net/npm/@
|
|
|
490
490
|
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material-vue@0/docs/previews/data-display-qrcode.webp" width="120" alt="QRCode"> | [`QRCode`](https://cdn.jsdelivr.net/npm/@nxgt/material-vue@0/docs/components/data-display.md#qrcode) | QR code on a padded tile, with an optional centred logo in its `#logo` slot. | `QRCode` |
|
|
491
491
|
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material-vue@0/docs/previews/data-display-barecode.webp" width="120" alt="Barecode"> | [`Barecode`](https://cdn.jsdelivr.net/npm/@nxgt/material-vue@0/docs/components/data-display.md#barecode) | 1D barcode. | `Barecode` |
|
|
492
492
|
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material-vue@0/docs/previews/data-display-enrolmentsecret.webp" width="120" alt="EnrolmentSecret"> | [`EnrolmentSecret`](https://cdn.jsdelivr.net/npm/@nxgt/material-vue@0/docs/components/data-display.md#enrolmentsecret), `groupSecret` | A TOTP enrolment: the `otpauth://` QR code, the URI as a link to the authenticator app, and the key grouped by four, copyable, wrapping on a phone. | `EnrolmentSecret` |
|
|
493
|
-
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material-vue@0/docs/previews/data-display-recoverycodes.webp" width="120" alt="RecoveryCodes"> | [`RecoveryCodes`](https://cdn.jsdelivr.net/npm/@nxgt/material-vue@0/docs/components/data-display.md#recoverycodes), `recoveryCodesText`, `downloadText` | One-time recovery codes: a list, copy (announced), download, print of the card alone, and an "I have saved these codes" confirmation before Done. | `RecoveryCodes` |
|
|
493
|
+
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material-vue@0/docs/previews/data-display-recoverycodes.webp" width="120" alt="RecoveryCodes"> | [`RecoveryCodes`](https://cdn.jsdelivr.net/npm/@nxgt/material-vue@0/docs/components/data-display.md#recoverycodes), `recoveryCodesText`, `downloadText` | One-time recovery codes: a list, copy (its result shown and announced), download, print of the card alone, and an "I have saved these codes" confirmation before Done. | `RecoveryCodes` |
|
|
494
494
|
|
|
495
495
|
### Data table, filter & lists
|
|
496
496
|
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { t as e } from "./utils-CykWQ0iJ.js";
|
|
2
|
-
import { t } from "./use-material-translation-
|
|
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
|
|
4
|
-
import { Primitive as
|
|
2
|
+
import { t } from "./use-material-translation-Du3Wvsk1.js";
|
|
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 te, ref as b, renderSlot as x, shallowRef as S, unref as C, useAttrs as ne, useSlots as w, watch as T, withCtx as E } from "vue";
|
|
4
|
+
import { Primitive as re, TooltipArrow as D, TooltipContent as O, TooltipPortal as k, TooltipProvider as A, TooltipRoot as j, TooltipTrigger as M, useForwardPropsEmits as N } from "reka-ui";
|
|
5
5
|
import { cva as P } from "class-variance-authority";
|
|
6
|
-
import { createSharedComposable as
|
|
6
|
+
import { createSharedComposable as ie, defaultDocument as F, reactiveOmit as ae, useEventListener as oe } from "@vueuse/core";
|
|
7
7
|
//#endregion
|
|
8
8
|
//#region lib/components/ui/feedback/spinner/spinner.variants.ts
|
|
9
|
-
var
|
|
9
|
+
var I = P("transition-all duration-500", {
|
|
10
10
|
variants: {
|
|
11
11
|
variant: {
|
|
12
12
|
1: "",
|
|
@@ -191,11 +191,11 @@ var L = P("transition-all duration-500", {
|
|
|
191
191
|
class: "stroke-white"
|
|
192
192
|
}
|
|
193
193
|
]
|
|
194
|
-
}),
|
|
194
|
+
}), se = [
|
|
195
195
|
"data-variant",
|
|
196
196
|
"data-color",
|
|
197
197
|
"aria-label"
|
|
198
|
-
],
|
|
198
|
+
], ce = ["data-variant", "data-color"], L = /* @__PURE__ */ d({
|
|
199
199
|
__name: "spinner",
|
|
200
200
|
props: {
|
|
201
201
|
variant: { default: "1" },
|
|
@@ -218,10 +218,10 @@ var L = P("transition-all duration-500", {
|
|
|
218
218
|
"data-color": n.color,
|
|
219
219
|
xmlns: "http://www.w3.org/2000/svg",
|
|
220
220
|
role: "img",
|
|
221
|
-
"aria-label":
|
|
222
|
-
class: g(
|
|
221
|
+
"aria-label": C(i)("material.spinner.loading", "Loading..."),
|
|
222
|
+
class: g(C(e)("size-14", r.class))
|
|
223
223
|
}, [c("circle", {
|
|
224
|
-
class: g(["spin2",
|
|
224
|
+
class: g(["spin2", C(I)({
|
|
225
225
|
variant: n.variant,
|
|
226
226
|
color: n.color
|
|
227
227
|
})]),
|
|
@@ -232,18 +232,18 @@ var L = P("transition-all duration-500", {
|
|
|
232
232
|
"stroke-width": "50",
|
|
233
233
|
"stroke-dasharray": "700 1400",
|
|
234
234
|
"stroke-linecap": "round"
|
|
235
|
-
}, null, 2)], 10,
|
|
235
|
+
}, null, 2)], 10, se)) : (y(), s("div", {
|
|
236
236
|
key: 1,
|
|
237
237
|
"data-slot": "spinner",
|
|
238
238
|
"data-variant": n.variant,
|
|
239
239
|
"data-color": n.color,
|
|
240
|
-
class: g(
|
|
240
|
+
class: g(C(e)("size-12 border-[2px] rounded-full animate-spin", C(I)({
|
|
241
241
|
variant: n.variant,
|
|
242
242
|
color: n.color
|
|
243
243
|
}), r.class))
|
|
244
|
-
}, null, 10,
|
|
244
|
+
}, null, 10, ce));
|
|
245
245
|
}
|
|
246
|
-
}),
|
|
246
|
+
}), R = /* @__PURE__ */ d({
|
|
247
247
|
__name: "Tooltip",
|
|
248
248
|
props: {
|
|
249
249
|
defaultOpen: { type: Boolean },
|
|
@@ -257,28 +257,28 @@ var L = P("transition-all duration-500", {
|
|
|
257
257
|
emits: ["update:open"],
|
|
258
258
|
setup(e, { emit: t }) {
|
|
259
259
|
let n = N(e, t);
|
|
260
|
-
return (e, t) => (y(), o(
|
|
261
|
-
default: E((t) => [
|
|
260
|
+
return (e, t) => (y(), o(C(j), h({ "data-slot": "tooltip" }, C(n)), {
|
|
261
|
+
default: E((t) => [x(e.$slots, "default", _(f(t)))]),
|
|
262
262
|
_: 3
|
|
263
263
|
}, 16));
|
|
264
264
|
}
|
|
265
|
-
}),
|
|
265
|
+
}), z = /* @__PURE__ */ new Set([
|
|
266
266
|
"VIDEO",
|
|
267
267
|
"IFRAME",
|
|
268
268
|
"CANVAS",
|
|
269
269
|
"IMG",
|
|
270
270
|
"EMBED"
|
|
271
271
|
]);
|
|
272
|
-
function
|
|
272
|
+
function B(e) {
|
|
273
273
|
let t = e?.fullscreenElement;
|
|
274
|
-
return !t || typeof HTMLElement > "u" || !(t instanceof HTMLElement) ||
|
|
274
|
+
return !t || typeof HTMLElement > "u" || !(t instanceof HTMLElement) || z.has(t.tagName) ? null : t;
|
|
275
275
|
}
|
|
276
|
-
var
|
|
277
|
-
let e =
|
|
278
|
-
return
|
|
279
|
-
e.value =
|
|
276
|
+
var V = ie(() => {
|
|
277
|
+
let e = S(B(F));
|
|
278
|
+
return oe(F, "fullscreenchange", () => {
|
|
279
|
+
e.value = B(F);
|
|
280
280
|
}), e;
|
|
281
|
-
}),
|
|
281
|
+
}), H = /* @__PURE__ */ d({
|
|
282
282
|
inheritAttrs: !1,
|
|
283
283
|
__name: "TooltipContent",
|
|
284
284
|
props: {
|
|
@@ -309,19 +309,19 @@ var H = F(() => {
|
|
|
309
309
|
},
|
|
310
310
|
emits: ["escapeKeyDown", "pointerDownOutside"],
|
|
311
311
|
setup(t, { emit: n }) {
|
|
312
|
-
let r = t, i = n, a =
|
|
313
|
-
return (n, i) => (y(), o(
|
|
314
|
-
default: E(() => [u(
|
|
315
|
-
...
|
|
312
|
+
let r = t, i = n, a = V(), s = N(ae(r, "class", "to"), i);
|
|
313
|
+
return (n, i) => (y(), o(C(k), { to: t.to ?? C(a) ?? void 0 }, {
|
|
314
|
+
default: E(() => [u(C(O), h({ "data-slot": "tooltip-content" }, {
|
|
315
|
+
...C(s),
|
|
316
316
|
...n.$attrs
|
|
317
|
-
}, { class:
|
|
318
|
-
default: E(() => [
|
|
317
|
+
}, { class: C(e)("bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit rounded-md px-3 py-1.5 text-xs text-balance", r.class) }), {
|
|
318
|
+
default: E(() => [x(n.$slots, "default"), u(C(D), { class: "bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-xs" })]),
|
|
319
319
|
_: 3
|
|
320
320
|
}, 16, ["class"])]),
|
|
321
321
|
_: 3
|
|
322
322
|
}, 8, ["to"]));
|
|
323
323
|
}
|
|
324
|
-
}),
|
|
324
|
+
}), U = /* @__PURE__ */ d({
|
|
325
325
|
__name: "TooltipProvider",
|
|
326
326
|
props: {
|
|
327
327
|
delayDuration: { default: 0 },
|
|
@@ -334,12 +334,12 @@ var H = F(() => {
|
|
|
334
334
|
},
|
|
335
335
|
setup(e) {
|
|
336
336
|
let t = e;
|
|
337
|
-
return (e, n) => (y(), o(
|
|
338
|
-
default: E(() => [
|
|
337
|
+
return (e, n) => (y(), o(C(A), _(f(t)), {
|
|
338
|
+
default: E(() => [x(e.$slots, "default")]),
|
|
339
339
|
_: 3
|
|
340
340
|
}, 16));
|
|
341
341
|
}
|
|
342
|
-
}),
|
|
342
|
+
}), W = /* @__PURE__ */ d({
|
|
343
343
|
__name: "TooltipTrigger",
|
|
344
344
|
props: {
|
|
345
345
|
reference: {},
|
|
@@ -348,12 +348,12 @@ var H = F(() => {
|
|
|
348
348
|
},
|
|
349
349
|
setup(e) {
|
|
350
350
|
let t = e;
|
|
351
|
-
return (e, n) => (y(), o(
|
|
352
|
-
default: E(() => [
|
|
351
|
+
return (e, n) => (y(), o(C(M), h({ "data-slot": "tooltip-trigger" }, t), {
|
|
352
|
+
default: E(() => [x(e.$slots, "default")]),
|
|
353
353
|
_: 3
|
|
354
354
|
}, 16));
|
|
355
355
|
}
|
|
356
|
-
}),
|
|
356
|
+
}), G = Symbol("named-control"), K = {
|
|
357
357
|
primary: "text-primary dark:text-[color-mix(in_oklab,var(--color-primary)_40%,white)]",
|
|
358
358
|
secondary: "text-secondary",
|
|
359
359
|
success: "text-success dark:text-[color-mix(in_oklab,var(--color-success)_85%,white)]",
|
|
@@ -361,7 +361,7 @@ var H = F(() => {
|
|
|
361
361
|
warning: "text-[color-mix(in_oklab,var(--color-warning)_85%,black)] dark:text-[color-mix(in_oklab,var(--color-warning)_85%,white)]",
|
|
362
362
|
error: "text-[color-mix(in_oklab,var(--color-error)_85%,black)] dark:text-[color-mix(in_oklab,var(--color-error)_70%,white)]",
|
|
363
363
|
default: "text-foreground"
|
|
364
|
-
},
|
|
364
|
+
}, q = {
|
|
365
365
|
primary: "[&_svg]:data-[slot=icon]:text-primary dark:[&_svg]:data-[slot=icon]:text-[color-mix(in_oklab,var(--color-primary)_40%,white)]",
|
|
366
366
|
secondary: "[&_svg]:data-[slot=icon]:text-secondary",
|
|
367
367
|
success: "[&_svg]:data-[slot=icon]:text-success dark:[&_svg]:data-[slot=icon]:text-[color-mix(in_oklab,var(--color-success)_85%,white)]",
|
|
@@ -369,7 +369,7 @@ var H = F(() => {
|
|
|
369
369
|
warning: "[&_svg]:data-[slot=icon]:text-[color-mix(in_oklab,var(--color-warning)_85%,black)] dark:[&_svg]:data-[slot=icon]:text-[color-mix(in_oklab,var(--color-warning)_85%,white)]",
|
|
370
370
|
error: "[&_svg]:data-[slot=icon]:text-[color-mix(in_oklab,var(--color-error)_85%,black)] dark:[&_svg]:data-[slot=icon]:text-[color-mix(in_oklab,var(--color-error)_70%,white)]",
|
|
371
371
|
default: "[&_svg]:data-[slot=icon]:text-foreground"
|
|
372
|
-
},
|
|
372
|
+
}, le = {
|
|
373
373
|
primary: "[&_svg]:stroke-primary dark:[&_svg]:stroke-[color-mix(in_oklab,var(--color-primary)_40%,white)]",
|
|
374
374
|
secondary: "[&_svg]:stroke-secondary",
|
|
375
375
|
success: "[&_svg]:stroke-success dark:[&_svg]:stroke-[color-mix(in_oklab,var(--color-success)_85%,white)]",
|
|
@@ -377,12 +377,12 @@ var H = F(() => {
|
|
|
377
377
|
warning: "[&_svg]:stroke-[color-mix(in_oklab,var(--color-warning)_85%,black)] dark:[&_svg]:stroke-[color-mix(in_oklab,var(--color-warning)_85%,white)]",
|
|
378
378
|
error: "[&_svg]:stroke-[color-mix(in_oklab,var(--color-error)_85%,black)] dark:[&_svg]:stroke-[color-mix(in_oklab,var(--color-error)_70%,white)]",
|
|
379
379
|
default: "[&_svg]:stroke-foreground"
|
|
380
|
-
},
|
|
380
|
+
}, ue = P("inline-flex center truncate **:truncate gap-2 h-min cursor-pointer whitespace-nowrap rounded-full text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 aria-busy:cursor-progress [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-error/20 dark:aria-invalid:ring-error/40 aria-invalid:border-error px-4 py-2 has-[>svg]:px-3", {
|
|
381
381
|
variants: {
|
|
382
382
|
variant: {
|
|
383
383
|
filled: "shadow-xs",
|
|
384
384
|
tonal: "shadow-xs",
|
|
385
|
-
ghost: "
|
|
385
|
+
ghost: "",
|
|
386
386
|
outlined: "border shadow-xs",
|
|
387
387
|
link: "focus:underline underline-offset-4 hover:underline"
|
|
388
388
|
},
|
|
@@ -449,134 +449,172 @@ var H = F(() => {
|
|
|
449
449
|
{
|
|
450
450
|
variant: "tonal",
|
|
451
451
|
color: "primary",
|
|
452
|
-
class: `${
|
|
452
|
+
class: `${K.primary} ${q.primary} bg-primary/15 hover:bg-primary/10 active:bg-primary/5 focus:bg-primary/10`
|
|
453
453
|
},
|
|
454
454
|
{
|
|
455
455
|
variant: "tonal",
|
|
456
456
|
color: "secondary",
|
|
457
|
-
class: `${
|
|
457
|
+
class: `${K.secondary} ${q.secondary} bg-secondary/15 hover:bg-secondary/10 active:bg-secondary/5 focus:bg-secondary/10`
|
|
458
458
|
},
|
|
459
459
|
{
|
|
460
460
|
variant: "tonal",
|
|
461
461
|
color: "info",
|
|
462
|
-
class: `${
|
|
462
|
+
class: `${K.info} ${q.info} bg-info/15 hover:bg-info/10 active:bg-info/5 focus:bg-info/10`
|
|
463
463
|
},
|
|
464
464
|
{
|
|
465
465
|
variant: "tonal",
|
|
466
466
|
color: "success",
|
|
467
|
-
class: `${
|
|
467
|
+
class: `${K.success} ${q.success} bg-success/15 hover:bg-success/10 active:bg-success/5 focus:bg-success/10`
|
|
468
468
|
},
|
|
469
469
|
{
|
|
470
470
|
variant: "tonal",
|
|
471
471
|
color: "warning",
|
|
472
|
-
class: `${
|
|
472
|
+
class: `${K.warning} ${q.warning} bg-warning/15 hover:bg-warning/10 active:bg-warning/5 focus:bg-warning/10`
|
|
473
473
|
},
|
|
474
474
|
{
|
|
475
475
|
variant: "tonal",
|
|
476
476
|
color: "error",
|
|
477
|
-
class: `${
|
|
477
|
+
class: `${K.error} ${q.error} bg-error/15 hover:bg-error/10 active:bg-error/5 focus:bg-error/10`
|
|
478
478
|
},
|
|
479
479
|
{
|
|
480
480
|
variant: "tonal",
|
|
481
481
|
color: "default",
|
|
482
|
-
class: `${
|
|
482
|
+
class: `${K.default} ${q.default} bg-foreground/15 hover:bg-foreground/10 active:bg-muted focus:bg-muted`
|
|
483
|
+
},
|
|
484
|
+
{
|
|
485
|
+
variant: "ghost",
|
|
486
|
+
color: "primary",
|
|
487
|
+
class: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50"
|
|
488
|
+
},
|
|
489
|
+
{
|
|
490
|
+
variant: "ghost",
|
|
491
|
+
color: "default",
|
|
492
|
+
class: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50"
|
|
493
|
+
},
|
|
494
|
+
{
|
|
495
|
+
variant: "ghost",
|
|
496
|
+
color: "secondary",
|
|
497
|
+
class: `${K.secondary} ${q.secondary} hover:bg-secondary/10 active:bg-secondary/5 focus:bg-secondary/15`
|
|
498
|
+
},
|
|
499
|
+
{
|
|
500
|
+
variant: "ghost",
|
|
501
|
+
color: "success",
|
|
502
|
+
class: `${K.success} ${q.success} hover:bg-success/10 active:bg-success/5 focus:bg-success/15`
|
|
503
|
+
},
|
|
504
|
+
{
|
|
505
|
+
variant: "ghost",
|
|
506
|
+
color: "info",
|
|
507
|
+
class: `${K.info} ${q.info} hover:bg-info/10 active:bg-info/5 focus:bg-info/15`
|
|
508
|
+
},
|
|
509
|
+
{
|
|
510
|
+
variant: "ghost",
|
|
511
|
+
color: "warning",
|
|
512
|
+
class: `${K.warning} ${q.warning} hover:bg-warning/10 active:bg-warning/5 focus:bg-warning/15`
|
|
513
|
+
},
|
|
514
|
+
{
|
|
515
|
+
variant: "ghost",
|
|
516
|
+
color: "error",
|
|
517
|
+
class: `${K.error} ${q.error} hover:bg-error/10 active:bg-error/5 focus:bg-error/15`
|
|
483
518
|
},
|
|
484
519
|
{
|
|
485
520
|
variant: "outlined",
|
|
486
521
|
color: "primary",
|
|
487
|
-
class: `${
|
|
522
|
+
class: `${K.primary} ${q.primary} border-primary/50 focus:bg-primary/15 hover:bg-primary/10`
|
|
488
523
|
},
|
|
489
524
|
{
|
|
490
525
|
variant: "outlined",
|
|
491
526
|
color: "secondary",
|
|
492
|
-
class: `${
|
|
527
|
+
class: `${K.secondary} ${q.secondary} border-secondary/50 focus:bg-secondary/15 hover:bg-secondary/10`
|
|
493
528
|
},
|
|
494
529
|
{
|
|
495
530
|
variant: "outlined",
|
|
496
531
|
color: "info",
|
|
497
|
-
class: `${
|
|
532
|
+
class: `${K.info} ${q.info} border-info/50 focus:bg-info/15 hover:bg-info/10`
|
|
498
533
|
},
|
|
499
534
|
{
|
|
500
535
|
variant: "outlined",
|
|
501
536
|
color: "success",
|
|
502
|
-
class: `${
|
|
537
|
+
class: `${K.success} ${q.success} border-success/50 focus:bg-success/15 hover:bg-success/10`
|
|
503
538
|
},
|
|
504
539
|
{
|
|
505
540
|
variant: "outlined",
|
|
506
541
|
color: "warning",
|
|
507
|
-
class: `${
|
|
542
|
+
class: `${K.warning} ${q.warning} border-warning/50 focus:bg-warning/15 hover:bg-warning/10`
|
|
508
543
|
},
|
|
509
544
|
{
|
|
510
545
|
variant: "outlined",
|
|
511
546
|
color: "error",
|
|
512
|
-
class: `${
|
|
547
|
+
class: `${K.error} ${q.error} border-error/50 focus:bg-error/15 hover:bg-error/10`
|
|
513
548
|
},
|
|
514
549
|
{
|
|
515
550
|
variant: "outlined",
|
|
516
551
|
color: "default",
|
|
517
|
-
class: `${
|
|
552
|
+
class: `${K.default} ${q.default} border-foreground/50 focus:bg-foreground/15 hover:bg-foreground/10`
|
|
518
553
|
},
|
|
519
554
|
{
|
|
520
555
|
variant: "link",
|
|
521
556
|
color: "primary",
|
|
522
|
-
class: `${
|
|
557
|
+
class: `${K.primary} ${q.primary} hover:bg-primary/10 active:bg-primary/5 focus:bg-primary/15`
|
|
523
558
|
},
|
|
524
559
|
{
|
|
525
560
|
variant: "link",
|
|
526
561
|
color: "secondary",
|
|
527
|
-
class: `${
|
|
562
|
+
class: `${K.secondary} ${q.secondary} hover:bg-secondary/10 active:bg-secondary/5 focus:bg-secondary/15`
|
|
528
563
|
},
|
|
529
564
|
{
|
|
530
565
|
variant: "link",
|
|
531
566
|
color: "success",
|
|
532
|
-
class: `${
|
|
567
|
+
class: `${K.success} ${q.success} hover:bg-success/10 active:bg-success/5 focus:bg-success/15`
|
|
533
568
|
},
|
|
534
569
|
{
|
|
535
570
|
variant: "link",
|
|
536
571
|
color: "info",
|
|
537
|
-
class: `${
|
|
572
|
+
class: `${K.info} ${q.info} hover:bg-info/10 active:bg-info/5 focus:bg-info/15`
|
|
538
573
|
},
|
|
539
574
|
{
|
|
540
575
|
variant: "link",
|
|
541
576
|
color: "warning",
|
|
542
|
-
class: `${
|
|
577
|
+
class: `${K.warning} ${q.warning} hover:bg-warning/10 active:bg-warning/5 focus:bg-warning/15`
|
|
543
578
|
},
|
|
544
579
|
{
|
|
545
580
|
variant: "link",
|
|
546
581
|
color: "error",
|
|
547
|
-
class: `${
|
|
582
|
+
class: `${K.error} ${q.error} hover:bg-error/10 active:bg-error/5 focus:bg-error/15`
|
|
548
583
|
},
|
|
549
584
|
{
|
|
550
585
|
variant: "link",
|
|
551
586
|
color: "default",
|
|
552
|
-
class: `${
|
|
587
|
+
class: `${K.default} ${q.default} hover:bg-foreground/10 active:bg-muted focus:bg-foreground/15`
|
|
553
588
|
}
|
|
554
589
|
]
|
|
555
|
-
}),
|
|
590
|
+
}), J = ((e) => ue(e?.variant === "ghost" && e.color === null ? {
|
|
591
|
+
...e,
|
|
592
|
+
color: void 0
|
|
593
|
+
} : e)), de = {
|
|
556
594
|
xs: "min-h-6",
|
|
557
595
|
sm: "min-h-8",
|
|
558
596
|
default: "min-h-9",
|
|
559
597
|
lg: "min-h-10"
|
|
560
598
|
};
|
|
561
|
-
function
|
|
562
|
-
return !e || t?.startsWith("icon") ? !1 : `h-auto ${t ?
|
|
599
|
+
function fe(e, t) {
|
|
600
|
+
return !e || t?.startsWith("icon") ? !1 : `h-auto ${t ? de[t] : ""} whitespace-normal **:whitespace-normal text-center`;
|
|
563
601
|
}
|
|
564
602
|
//#endregion
|
|
565
603
|
//#region lib/components/ui/actions/button/has-text-content.ts
|
|
566
|
-
function
|
|
604
|
+
function Y(e) {
|
|
567
605
|
if (e == null || typeof e == "boolean") return !1;
|
|
568
606
|
if (typeof e == "string" || typeof e == "number") return String(e).trim() !== "";
|
|
569
|
-
if (Array.isArray(e)) return e.some(
|
|
607
|
+
if (Array.isArray(e)) return e.some(Y);
|
|
570
608
|
if (!m(e) || e.type === n) return !1;
|
|
571
609
|
if (e.type === i) return String(e.children ?? "").trim() !== "";
|
|
572
|
-
if (
|
|
610
|
+
if (X(e.props?.["aria-hidden"] ?? e.props?.ariaHidden)) return !1;
|
|
573
611
|
let { children: t } = e;
|
|
574
612
|
if (typeof t == "string") return t.trim() !== "";
|
|
575
|
-
if (Array.isArray(t)) return
|
|
613
|
+
if (Array.isArray(t)) return Y(t);
|
|
576
614
|
let r = t?.default;
|
|
577
|
-
return typeof r == "function" &&
|
|
615
|
+
return typeof r == "function" && Y(r());
|
|
578
616
|
}
|
|
579
|
-
function
|
|
617
|
+
function X(e) {
|
|
580
618
|
return e === "" || !!e && e !== "false";
|
|
581
619
|
}
|
|
582
620
|
//#endregion
|
|
@@ -595,7 +633,7 @@ function Z(e) {
|
|
|
595
633
|
}
|
|
596
634
|
return a(), t;
|
|
597
635
|
}
|
|
598
|
-
var
|
|
636
|
+
var pe = (e, { slots: t }) => Z(t.default?.() ?? []), Q = (e) => e.flatMap((e) => e.type === r && Array.isArray(e.children) ? Q(e.children) : [e]), $ = (e, { attrs: t, slots: r }) => {
|
|
599
637
|
let i = Q(r.default?.() ?? []), a = i.find((e) => e.type !== n);
|
|
600
638
|
if (!a) return i;
|
|
601
639
|
let o = h(t, a.props ?? {});
|
|
@@ -616,16 +654,16 @@ var fe = (e, { slots: t }) => Z(t.default?.() ?? []), Q = (e) => e.flatMap((e) =
|
|
|
616
654
|
$.props = ["leading"], $.inheritAttrs = !1;
|
|
617
655
|
//#endregion
|
|
618
656
|
//#region lib/components/ui/actions/button/use-click-lock.ts
|
|
619
|
-
var
|
|
620
|
-
function
|
|
621
|
-
let n =
|
|
657
|
+
var me = 1e3;
|
|
658
|
+
function he(e, t) {
|
|
659
|
+
let n = b(!1), r = !1, i;
|
|
622
660
|
function a() {
|
|
623
661
|
n.value = !1, r = !1, clearTimeout(i);
|
|
624
662
|
}
|
|
625
663
|
function o() {
|
|
626
664
|
e() && (n.value = !0, clearTimeout(i), i = setTimeout(() => {
|
|
627
665
|
r || a();
|
|
628
|
-
},
|
|
666
|
+
}, me));
|
|
629
667
|
}
|
|
630
668
|
return T(t, (e) => {
|
|
631
669
|
n.value && (e ? r = !0 : r && a());
|
|
@@ -636,7 +674,7 @@ function me(e, t) {
|
|
|
636
674
|
}
|
|
637
675
|
//#endregion
|
|
638
676
|
//#region lib/components/ui/actions/button/Button.vue
|
|
639
|
-
var
|
|
677
|
+
var ge = /* @__PURE__ */ d({
|
|
640
678
|
inheritAttrs: !1,
|
|
641
679
|
__name: "Button",
|
|
642
680
|
props: {
|
|
@@ -660,9 +698,9 @@ var he = /* @__PURE__ */ d({
|
|
|
660
698
|
tooltip: {}
|
|
661
699
|
},
|
|
662
700
|
setup(t) {
|
|
663
|
-
let n = t, i =
|
|
664
|
-
|
|
665
|
-
let d =
|
|
701
|
+
let n = t, i = ne(), c = w(), l = ee(G, void 0);
|
|
702
|
+
te(G, a(() => !!l?.value || !!(i["aria-label"] || i["aria-labelledby"]) || Y(c.default?.())));
|
|
703
|
+
let d = he(() => n.lockOnClick, () => !!n.loading), f = a(() => !!(n.loading || d.locked.value)), m = (e) => f.value || i[e];
|
|
666
704
|
function g(e) {
|
|
667
705
|
if (f.value) {
|
|
668
706
|
e.preventDefault(), e.stopImmediatePropagation();
|
|
@@ -670,19 +708,19 @@ var he = /* @__PURE__ */ d({
|
|
|
670
708
|
}
|
|
671
709
|
d.lock();
|
|
672
710
|
}
|
|
673
|
-
let _ = () => p(
|
|
711
|
+
let _ = () => p(L, {
|
|
674
712
|
variant: n.spinnerVariant,
|
|
675
713
|
color: n.variant === "filled" ? "light" : n.color,
|
|
676
714
|
class: e("starting:scale-0 duration-500", n.spinnerVariant === "4" ? "size-7.5" : "size-4.5")
|
|
677
|
-
}), v = () => f.value ? _() : null,
|
|
678
|
-
|
|
679
|
-
let
|
|
715
|
+
}), v = () => f.value ? _() : null, b = (e, { slots: t }) => e.text ? p(U, () => p(R, () => [p(W, { asChild: !0 }, t.default), p(H, () => e.text)])) : t.default?.()[0];
|
|
716
|
+
b.props = ["text"];
|
|
717
|
+
let S = a(() => n.as !== "button" || n.asChild ? i.type : i.type ?? "button"), T = a(() => !!n.size?.startsWith("icon")), D = a(() => e("justify-center duration-500", !T.value && "w-fit max-w-full truncate line-clamp-1 text-ellipsis", J({
|
|
680
718
|
variant: n.variant,
|
|
681
719
|
color: n.color,
|
|
682
720
|
size: n.size
|
|
683
|
-
}),
|
|
684
|
-
return (e, n) => (y(), o(
|
|
685
|
-
default: E(() => [u(
|
|
721
|
+
}), fe(n.wrap, n.size), n.class));
|
|
722
|
+
return (e, n) => (y(), o(b, { text: t.tooltip }, {
|
|
723
|
+
default: E(() => [u(C(re), h(e.$attrs, {
|
|
686
724
|
onClickCapture: g,
|
|
687
725
|
"data-slot": e.$attrs["data-slot"] ?? "button",
|
|
688
726
|
"data-variant": t.variant,
|
|
@@ -690,20 +728,20 @@ var he = /* @__PURE__ */ d({
|
|
|
690
728
|
"data-size": t.size,
|
|
691
729
|
as: t.as,
|
|
692
730
|
"as-child": t.asChild,
|
|
693
|
-
type:
|
|
731
|
+
type: S.value,
|
|
694
732
|
disabled: t.disabled,
|
|
695
733
|
"aria-disabled": m("aria-disabled"),
|
|
696
734
|
"aria-busy": m("aria-busy"),
|
|
697
|
-
class:
|
|
735
|
+
class: D.value
|
|
698
736
|
}), {
|
|
699
|
-
default: E(() => [t.asChild ? (y(), o(
|
|
737
|
+
default: E(() => [t.asChild ? (y(), o(C($), {
|
|
700
738
|
key: 0,
|
|
701
739
|
leading: f.value ? _() : null
|
|
702
740
|
}, {
|
|
703
|
-
default: E(() => [
|
|
741
|
+
default: E(() => [x(e.$slots, "default")]),
|
|
704
742
|
_: 3
|
|
705
|
-
}, 8, ["leading"])) : (y(), s(r, { key: 1 }, [u(v), u(
|
|
706
|
-
default: E(() => [
|
|
743
|
+
}, 8, ["leading"])) : (y(), s(r, { key: 1 }, [u(v), u(C(pe), null, {
|
|
744
|
+
default: E(() => [x(e.$slots, "default")]),
|
|
707
745
|
_: 3
|
|
708
746
|
})], 64))]),
|
|
709
747
|
_: 3
|
|
@@ -725,4 +763,4 @@ var he = /* @__PURE__ */ d({
|
|
|
725
763
|
}
|
|
726
764
|
});
|
|
727
765
|
//#endregion
|
|
728
|
-
export {
|
|
766
|
+
export { q as a, G as c, H as d, V as f, I as h, J as i, W as l, L as m, $ as n, le as o, R as p, Y as r, K as s, ge as t, U as u };
|
|
@@ -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-Du3Wvsk1.js";
|
|
3
|
+
import { t as n } from "./Button-BG3oDkrl.js";
|
|
4
4
|
import { r, t as i } from "./in-dialog-Blhwwbyb.js";
|
|
5
5
|
import { t as a } from "./field-name-attribute-Bl7LSVK0.js";
|
|
6
6
|
import { computed as o, createBlock as s, createCommentVNode as c, createElementBlock as l, createElementVNode as u, createTextVNode as d, createVNode as f, defineComponent as p, getCurrentInstance as m, guardReactiveProps as h, isRef as g, mergeProps as _, normalizeClass as v, normalizeProps as y, onMounted as ee, onUpdated as b, openBlock as x, renderSlot as S, toDisplayString as C, unref as w, useAttrs as T, useId as E, useTemplateRef as D, vModelText as O, withCtx as k, withDirectives as A } from "vue";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { t as e } from "./utils-CykWQ0iJ.js";
|
|
2
|
-
import { _r as t, hr as n, mr 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 { _r as t, hr as n, mr as r } from "./components-C1JYYoQ4.js";
|
|
3
|
+
import { t as i } from "./use-material-translation-Du3Wvsk1.js";
|
|
4
|
+
import { t as a } from "./Button-BG3oDkrl.js";
|
|
5
|
+
import { t as o } from "./icon-button-DXrmfs6e.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
|
|
@@ -139,13 +139,23 @@
|
|
|
139
139
|
[contenteditable]
|
|
140
140
|
) {
|
|
141
141
|
scroll-margin-bottom: calc(
|
|
142
|
-
var(
|
|
143
|
-
|
|
142
|
+
var(
|
|
143
|
+
--form-actions-clearance,
|
|
144
|
+
var(--form-actions-clearance-default, 6rem)
|
|
145
|
+
) +
|
|
146
|
+
var(--form-actions-fill, 0px) +
|
|
147
|
+
max(0px, calc(env(safe-area-inset-bottom, 0px) - 1rem))
|
|
144
148
|
);
|
|
145
149
|
}
|
|
146
|
-
/*
|
|
150
|
+
/* A phone's actions wrap their labels over two lines and a field has an
|
|
151
|
+
error line: 8rem covers both (`--form-actions-clearance` still wins). */
|
|
152
|
+
@variant max-sm {
|
|
153
|
+
--form-actions-clearance-default: 8rem;
|
|
154
|
+
}
|
|
155
|
+
/* Sticky at the bottom of whatever scrolls the form: in reach. Padded
|
|
156
|
+
for the safe area (`viewport-fit=cover`: the home indicator). */
|
|
147
157
|
[data-slot="form-actions"] {
|
|
148
|
-
@apply sticky bottom-0 z-10 flex w-full justify-end gap-2 bg-background/90 p-4 backdrop-blur-sm max-sm:*:flex-1;
|
|
158
|
+
@apply sticky bottom-0 z-10 flex w-full justify-end gap-2 bg-background/90 p-4 pb-[max(1rem,env(safe-area-inset-bottom))] backdrop-blur-sm max-sm:*:flex-1;
|
|
149
159
|
}
|
|
150
160
|
}
|
|
151
161
|
|