@nxgt/material-vue 0.32.0 → 0.34.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 +68 -0
- package/README.md +19 -6
- package/dist/{camera-DlWK0PLP.js → camera-C52IuvMH.js} +1 -1
- package/dist/components/components.css +3 -1
- package/dist/components/ui/fields/otp-field/input-otp.css +48 -0
- package/dist/{components-Dqg7KwA2.js → components-DFEmacXJ.js} +12895 -16816
- package/dist/components.js +8 -8
- package/dist/composables.js +24 -24
- package/dist/fonts/katex/KaTeX_AMS-Regular.woff2 +0 -0
- package/dist/fonts/katex/KaTeX_Caligraphic-Bold.woff2 +0 -0
- package/dist/fonts/katex/KaTeX_Caligraphic-Regular.woff2 +0 -0
- package/dist/fonts/katex/KaTeX_Fraktur-Bold.woff2 +0 -0
- package/dist/fonts/katex/KaTeX_Fraktur-Regular.woff2 +0 -0
- package/dist/fonts/katex/KaTeX_Main-Bold.woff2 +0 -0
- package/dist/fonts/katex/KaTeX_Main-BoldItalic.woff2 +0 -0
- package/dist/fonts/katex/KaTeX_Main-Italic.woff2 +0 -0
- package/dist/fonts/katex/KaTeX_Main-Regular.woff2 +0 -0
- package/dist/fonts/katex/KaTeX_Math-BoldItalic.woff2 +0 -0
- package/dist/fonts/katex/KaTeX_Math-Italic.woff2 +0 -0
- package/dist/fonts/katex/KaTeX_SansSerif-Bold.woff2 +0 -0
- package/dist/fonts/katex/KaTeX_SansSerif-Italic.woff2 +0 -0
- package/dist/fonts/katex/KaTeX_SansSerif-Regular.woff2 +0 -0
- package/dist/fonts/katex/KaTeX_Script-Regular.woff2 +0 -0
- package/dist/fonts/katex/KaTeX_Size1-Regular.woff2 +0 -0
- package/dist/fonts/katex/KaTeX_Size2-Regular.woff2 +0 -0
- package/dist/fonts/katex/KaTeX_Size3-Regular.woff2 +0 -0
- package/dist/fonts/katex/KaTeX_Size4-Regular.woff2 +0 -0
- package/dist/fonts/katex/KaTeX_Typewriter-Regular.woff2 +0 -0
- package/dist/{form-scope-btEYYnGW.js → form-scope-CaYs-o2w.js} +1 -1
- package/dist/lib/components/ui/fields/attributes/form-schema.d.ts +11 -2
- package/dist/lib/components/ui/fields/opening-hours/consts.d.ts +12 -1
- package/dist/lib/components/ui/primitives/index.d.ts +1 -0
- package/dist/lib/components/ui/primitives/nonce-provider/index.d.ts +2 -0
- package/dist/lib/components/ui/primitives/nonce-provider/nonce-provider.vue.d.ts +20 -0
- package/dist/lib/components/ui/primitives/typography/typography.vue.d.ts +7 -4
- package/dist/lib/composables/index.d.ts +1 -0
- package/dist/lib/composables/use-csp-nonce.d.ts +18 -0
- package/dist/lib/lib/index.d.ts +1 -0
- package/dist/lib/nuxt/auto-imports.d.ts +1 -1
- package/dist/lib/nuxt/component-names.d.ts +1 -1
- package/dist/lib/vite/index.d.ts +3 -2
- package/dist/lib.js +49 -48
- package/dist/main.js +17 -17
- package/dist/material-vue.css +1 -1
- package/dist/{number.utils-Cy1z6qI7.js → number.utils-Bpo9tUaJ.js} +20 -20
- package/dist/{pdf-outline-sidebar-DchMD-_k.js → pdf-outline-sidebar-C_iJ8gqD.js} +1 -1
- package/dist/{pdf-page-D-kDQq5h.js → pdf-page-DOiJlWQn.js} +1 -1
- package/dist/{pdf-page-list-Cta0S89W.js → pdf-page-list-BTmUd7Ga.js} +2 -2
- package/dist/{pdf-reader-BwWozoIQ.js → pdf-reader-CEMMLJnB.js} +48 -45
- package/dist/{pdf-sidebar-B0Addf1P.js → pdf-sidebar-KLd76E5S.js} +2 -2
- package/dist/{pdf-thumbnail-sidebar-Dsptq4fb.js → pdf-thumbnail-sidebar-B4JkT_LV.js} +2 -2
- package/dist/{print-format.utils-DwJfU1tK.js → print-format.utils-DpBtUJvL.js} +1 -1
- package/dist/{stx-player-Bpnir1KO.js → stx-player-B6-PSgzP.js} +13 -13
- package/dist/{use-heading-spy-Czi_Xv3u.js → use-heading-spy-ClhUg50z.js} +54 -46
- package/dist/vite.js +2 -2
- package/docs/README.md +1 -0
- package/docs/components/data-display.md +5 -0
- package/docs/components/date-and-time.md +6 -0
- package/docs/components/feedback-and-status.md +3 -1
- package/docs/components/form-fields.md +23 -0
- package/docs/components/primitives.md +51 -2
- package/docs/getting-started.md +5 -1
- package/docs/guides/csp.md +420 -0
- package/docs/guides/helpers.md +2 -0
- package/docs/guides/i18n.md +2 -0
- package/docs/guides/theming.md +27 -0
- package/docs/roadmap.md +17 -0
- package/docs/troubleshooting.md +161 -0
- package/lib/components/components.css +3 -1
- package/lib/components/ui/fields/otp-field/input-otp.css +48 -0
- package/lib/nuxt/auto-imports.ts +1 -0
- package/lib/nuxt/component-names.ts +1 -0
- package/lib/vite/index.ts +6 -2
- package/package.json +4 -4
package/docs/troubleshooting.md
CHANGED
|
@@ -17,6 +17,7 @@ words in your error.
|
|
|
17
17
|
**Styles & assets**
|
|
18
18
|
|
|
19
19
|
- [Components render unstyled, with no error](#components-render-unstyled-with-no-error)
|
|
20
|
+
- [Math renders in the system fonts](#math-renders-in-the-system-fonts)
|
|
20
21
|
- [`<Icon>` renders nothing](#icon-renders-nothing)
|
|
21
22
|
- [An accessibility audit reports low contrast on a badge, a button, a toast or a menu entry](#an-accessibility-audit-reports-low-contrast-on-a-badge-a-button-a-toast-or-a-menu-entry)
|
|
22
23
|
- [`ARIA hidden element must not be focusable or contain focusable elements`](#aria-hidden-element-must-not-be-focusable-or-contain-focusable-elements)
|
|
@@ -157,6 +158,7 @@ words in your error.
|
|
|
157
158
|
- [A test no longer finds an icon badge by role `button`, or an `Icon` named "Icon {name}" inside a button](#a-test-no-longer-finds-an-icon-badge-by-role-button-or-an-icon-named-icon-name-inside-a-button)
|
|
158
159
|
- [A button named "Icon plus Add" is now named "Add"](#a-button-named-icon-plus-add-is-now-named-add)
|
|
159
160
|
- [`An invalid form control with name='…' is not focusable` (an `UploadField`)](#an-invalid-form-control-with-name-is-not-focusable)
|
|
161
|
+
- [The date field shows MM/DD/YYYY on a French page](#the-date-field-shows-mmddyyyy-on-a-french-page)
|
|
160
162
|
- [An `id`, `aria-describedby` or `data-testid` on a `DateField`, `DateRangeField` or `TimeField` is nowhere in the page](#an-id-aria-describedby-or-data-testid-on-a-datefield-daterangefield-or-timefield-is-nowhere-in-the-page)
|
|
161
163
|
- [A test no longer finds the label or helper text inside a date or time picker's trigger](#a-test-no-longer-finds-the-label-or-helper-text-inside-a-date-or-time-pickers-trigger)
|
|
162
164
|
- [A test no longer finds a `DurationField` input by the field's label, or a `Slider`'s `aria-label` on its root](#a-test-no-longer-finds-a-durationfield-input-by-the-fields-label-or-a-sliders-aria-label-on-its-root)
|
|
@@ -204,6 +206,14 @@ words in your error.
|
|
|
204
206
|
- [`@page-change` reports another page after opening on `initialPage`](#page-change-reports-another-page-after-opening-on-initialpage)
|
|
205
207
|
- [`FilePreview` shows a file card with a Download link for a PDF](#filepreview-shows-a-file-card-with-a-download-link-for-a-pdf)
|
|
206
208
|
- [`FilePreview` says "This file could not be previewed."](#filepreview-says-this-file-could-not-be-previewed)
|
|
209
|
+
|
|
210
|
+
**Content Security Policy**
|
|
211
|
+
|
|
212
|
+
- [`Refused to apply inline style because it violates the following Content Security Policy directive`](#refused-to-apply-inline-style-because-it-violates-the-following-content-security-policy-directive)
|
|
213
|
+
- [`Refused to load the font 'data:font/woff2…' because it violates the following Content Security Policy directive: "font-src 'self'"`](#refused-to-load-the-font-datafontwoff2-because-it-violates-the-following-content-security-policy-directive-font-src-self)
|
|
214
|
+
- [`Refused to load the font 'https://fonts.gstatic.com/…' because it violates the following Content Security Policy directive: "font-src 'self'"`](#refused-to-load-the-font-httpsfontsgstaticcom-because-it-violates-the-following-content-security-policy-directive-font-src-self)
|
|
215
|
+
- [`Refused to evaluate a string as JavaScript because 'unsafe-eval' is not an allowed source of script`](#refused-to-evaluate-a-string-as-javascript-because-unsafe-eval-is-not-an-allowed-source-of-script)
|
|
216
|
+
|
|
207
217
|
- [Reporting a bug](#reporting-a-bug)
|
|
208
218
|
|
|
209
219
|
---
|
|
@@ -368,6 +378,21 @@ to 0.22.0.
|
|
|
368
378
|
stylesheet up to 0.21.0: an app without Tailwind adds
|
|
369
379
|
`@import "vue-advanced-cropper/dist/style.css";` on an older version too.
|
|
370
380
|
|
|
381
|
+
### Math renders in the system fonts
|
|
382
|
+
|
|
383
|
+
**When:** a formula in `Markdown` (or `ChatMarkdown`) shows in a serif or
|
|
384
|
+
sans-serif system font: letters look upright or thin, `\mathbb{R}` is a
|
|
385
|
+
plain R, large brackets and roots are mis-sized, and the network tab shows a
|
|
386
|
+
`404` for `fonts/katex/KaTeX_*.woff2`, or no request at all.
|
|
387
|
+
**Why:** the compiled stylesheet (`dist/material-vue.css`) loads KaTeX's fonts from
|
|
388
|
+
`dist/fonts/katex/`, through a relative `url()`. The stylesheet was served
|
|
389
|
+
without that folder beside it (copied alone to a public folder or a CDN).
|
|
390
|
+
**Fix:** serve `dist/fonts/` next to the stylesheet, at the same relative
|
|
391
|
+
path, or let your bundler import it through the `style` condition
|
|
392
|
+
(`@import "@nxgt/material-vue";`), which emits the fonts as files (Vite inlines the 3.6 KB `KaTeX_Size3` font unless `assetsInlineLimit` is set: see the CSP guide's KaTeX fonts section). On the Tailwind route
|
|
393
|
+
(`@nxgt/material-vue/styles.css`) the fonts come from `katex` itself, and your bundler
|
|
394
|
+
emits them.
|
|
395
|
+
|
|
371
396
|
### `<Icon>` renders nothing
|
|
372
397
|
|
|
373
398
|
**When:** every `Icon` (and anything that uses one: the app shell menu, the
|
|
@@ -2905,6 +2930,27 @@ stops on it with the browser's own "select a file" message. If vee-validate
|
|
|
2905
2930
|
validates the form (`UploadFormField`) and you do not want the browser's check,
|
|
2906
2931
|
put `novalidate` on the `<form>`.
|
|
2907
2932
|
|
|
2933
|
+
### The date field shows MM/DD/YYYY on a French page
|
|
2934
|
+
|
|
2935
|
+
**When:** a `DateField`, `DateFormField`, `DateRangeField` or `DateRangeFormField` (and a `TimeField`, which shows `2:30 PM` instead of `14:30`) under a French
|
|
2936
|
+
`I18nProvider` shows 1 September 2028 as `09/01/2028` in its trigger, while the
|
|
2937
|
+
calendar inside it is in French. No error is printed.
|
|
2938
|
+
**Why:** the trigger formatted the date without a locale, so it was always
|
|
2939
|
+
English (`MM/DD/YYYY`), whatever the language of the page.
|
|
2940
|
+
**Fix:** upgrade: the trigger now writes the date (and the time, for a
|
|
2941
|
+
`TimeField` or a `DateRangeField` with `withTime`) in the language of the
|
|
2942
|
+
page: the `I18nProvider` language, else English. Mount the provider above the
|
|
2943
|
+
field:
|
|
2944
|
+
|
|
2945
|
+
```vue
|
|
2946
|
+
<I18nProvider initial-language="fr">
|
|
2947
|
+
<DateField v-model="value" label="Livraison" />
|
|
2948
|
+
</I18nProvider>
|
|
2949
|
+
```
|
|
2950
|
+
|
|
2951
|
+
With no provider, or in English, the output is unchanged (`09/01/2028`). The
|
|
2952
|
+
document's `<html lang>` and the browser's language are not read.
|
|
2953
|
+
|
|
2908
2954
|
### An `id`, `aria-describedby` or `data-testid` on a `DateField`, `DateRangeField` or `TimeField` is nowhere in the page
|
|
2909
2955
|
|
|
2910
2956
|
**When:** with 0.21.0 or earlier: `getByTestId` finds nothing, a hint is not read as
|
|
@@ -3713,6 +3759,121 @@ beginning is shown, with "Showing the first … of this file." below.
|
|
|
3713
3759
|
|
|
3714
3760
|
---
|
|
3715
3761
|
|
|
3762
|
+
## Content Security Policy
|
|
3763
|
+
|
|
3764
|
+
How to set up the policy is in the [Content Security Policy guide](guides/csp.md).
|
|
3765
|
+
|
|
3766
|
+
### `Refused to apply inline style because it violates the following Content Security Policy directive`
|
|
3767
|
+
|
|
3768
|
+
**When:** a component mounts, or a modal opens, on a page that sends
|
|
3769
|
+
`style-src-elem` or `style-src` without `'unsafe-inline'`. The message ends
|
|
3770
|
+
with `style-src-elem` for a `<style>` element and `style-src-attr` for a
|
|
3771
|
+
`style="…"` attribute.
|
|
3772
|
+
**Why:** a `<style>` element needs the page's nonce, an attribute cannot carry
|
|
3773
|
+
one. The usual sources are the components listed in
|
|
3774
|
+
[the guide](guides/csp.md#style-elements-the-components-inject). reka's
|
|
3775
|
+
`Select`, `Combobox`, `ScrollArea` and `Splitter`, `InputOTP` and
|
|
3776
|
+
`RichTextEditor` take the nonce from `NonceProvider`, and report this when the
|
|
3777
|
+
app has none (or gives it another nonce than the header's). A `<style>` in
|
|
3778
|
+
mermaid's SVG is a [known gap](guides/csp.md#known-gaps). `Toaster`,
|
|
3779
|
+
`ImageCropper`, `Spinner` and `PdfReader` create none: if one of them looks
|
|
3780
|
+
unstyled, the app does not import `styles.css`.
|
|
3781
|
+
**Fix:** for `style-src-attr`, allow attributes: they cannot be nonced.
|
|
3782
|
+
|
|
3783
|
+
```http
|
|
3784
|
+
Content-Security-Policy: style-src-elem 'self' 'nonce-X'; style-src-attr 'unsafe-inline'
|
|
3785
|
+
```
|
|
3786
|
+
|
|
3787
|
+
For `style-src-elem`, hand the nonce over:
|
|
3788
|
+
|
|
3789
|
+
```vue
|
|
3790
|
+
<NonceProvider :nonce="nonce">
|
|
3791
|
+
<!-- the app -->
|
|
3792
|
+
</NonceProvider>
|
|
3793
|
+
```
|
|
3794
|
+
|
|
3795
|
+
on the server and on the client, with the nonce of the header
|
|
3796
|
+
([the guide](guides/csp.md#nonceprovider); with Nuxt, nuxt-security's
|
|
3797
|
+
`useNonce()` on the server). For a mermaid diagram, serve that route with
|
|
3798
|
+
`'unsafe-inline'` in `style-src-elem` instead of the nonce (a nonce in the
|
|
3799
|
+
same directive makes browsers ignore `'unsafe-inline'`).
|
|
3800
|
+
|
|
3801
|
+
Once a page has a header-delivered CSP, browsers blank the `nonce` attribute,
|
|
3802
|
+
so Vue's development build may log `Hydration attribute mismatch` when it
|
|
3803
|
+
hydrates a server-rendered `<style nonce>`. The warning is harmless.
|
|
3804
|
+
|
|
3805
|
+
### `Refused to load the font 'data:font/woff2…' because it violates the following Content Security Policy directive: "font-src 'self'"`
|
|
3806
|
+
|
|
3807
|
+
**When:** a formula renders in `Markdown`, with `font-src 'self'`.
|
|
3808
|
+
**Why:** a KaTeX font reached the browser as a `data:` URI. Vite inlines any
|
|
3809
|
+
asset under its 4096-byte limit, and `KaTeX_Size3-Regular.woff2` is 3.6 KB:
|
|
3810
|
+
on the Tailwind route (`@nxgt/material-vue/styles.css`), and on the compiled route
|
|
3811
|
+
when your Vite build processes `dist/material-vue.css`. Earlier versions' compiled
|
|
3812
|
+
stylesheet inlined all 60 KaTeX fonts itself; it now ships them as files.
|
|
3813
|
+
**Fix:** upgrade, then stop Vite from inlining fonts:
|
|
3814
|
+
|
|
3815
|
+
```ts
|
|
3816
|
+
// vite.config.ts
|
|
3817
|
+
import { defineConfig } from 'vite';
|
|
3818
|
+
|
|
3819
|
+
export default defineConfig({
|
|
3820
|
+
build: {
|
|
3821
|
+
assetsInlineLimit: (file) => (/\.(woff2?|ttf)$/.test(file) ? false : undefined),
|
|
3822
|
+
},
|
|
3823
|
+
});
|
|
3824
|
+
```
|
|
3825
|
+
|
|
3826
|
+
### `Refused to load the font 'https://fonts.gstatic.com/…' because it violates the following Content Security Policy directive: "font-src 'self'"`
|
|
3827
|
+
|
|
3828
|
+
**When:** the page loads a font from `https://fonts.googleapis.com` or
|
|
3829
|
+
`https://fonts.gstatic.com`, or from `rsms.me`, on a page whose `font-src` is
|
|
3830
|
+
`'self'` (the message names the font's URL). The stylesheet that declares it
|
|
3831
|
+
is refused too, as a `style-src-elem` violation.
|
|
3832
|
+
**Why:** the app's `<link>` or `@import` for Inter asks another origin for CSS
|
|
3833
|
+
and woff2 files, and the policy allows only your own.
|
|
3834
|
+
**Fix:** host the font: install `@fontsource-variable/inter`, import it, and set
|
|
3835
|
+
`--font-sans` to `"Inter Variable"` followed by the system stack in the root
|
|
3836
|
+
`@theme`. The woff2 files then come from your build
|
|
3837
|
+
([CSP guide](guides/csp.md#inter--the-sans-font)):
|
|
3838
|
+
|
|
3839
|
+
```css
|
|
3840
|
+
@import "@fontsource-variable/inter";
|
|
3841
|
+
|
|
3842
|
+
@theme {
|
|
3843
|
+
--font-sans: "Inter Variable", ui-sans-serif, system-ui, sans-serif;
|
|
3844
|
+
}
|
|
3845
|
+
```
|
|
3846
|
+
|
|
3847
|
+
Delete the Google Fonts `<link>`, and the `fonts.googleapis.com` and
|
|
3848
|
+
`fonts.gstatic.com` sources you may have added to the policy.
|
|
3849
|
+
|
|
3850
|
+
### `Refused to evaluate a string as JavaScript because 'unsafe-eval' is not an allowed source of script`
|
|
3851
|
+
|
|
3852
|
+
**When:** an `EvalError` with this message, or a CSP report with
|
|
3853
|
+
`effectiveDirective: script-src` and `sample: ''`, from a stack that ends in
|
|
3854
|
+
zod (`allowsEval`, in `zod/v4/core/util.js`), on a page whose `script-src`
|
|
3855
|
+
has no `'unsafe-eval'`. Nothing visibly breaks.
|
|
3856
|
+
**Why:** the first `z.object()` built in the page makes zod test whether
|
|
3857
|
+
`new Function` works. The error is caught, but the browser sends the
|
|
3858
|
+
violation report. The library builds no schema at import any more (zod is
|
|
3859
|
+
not bundled, its schemas are factories), so the report comes from a schema
|
|
3860
|
+
built before `z.config({ jitless: true })` ran: one of yours, or the first
|
|
3861
|
+
render of a component that validates. Versions that bundled zod built their
|
|
3862
|
+
own schemas at import, before the app could configure anything.
|
|
3863
|
+
**Fix:** switch zod to its interpreter in a module the app imports before
|
|
3864
|
+
anything else, and build your own schemas inside functions rather than at
|
|
3865
|
+
module scope when that module may load first
|
|
3866
|
+
([CSP guide](guides/csp.md#zod-and-unsafe-eval)):
|
|
3867
|
+
|
|
3868
|
+
```ts
|
|
3869
|
+
// zod-config.ts, imported first in the app entry
|
|
3870
|
+
import { z } from 'zod';
|
|
3871
|
+
|
|
3872
|
+
z.config({ jitless: true });
|
|
3873
|
+
```
|
|
3874
|
+
|
|
3875
|
+
---
|
|
3876
|
+
|
|
3716
3877
|
## Reporting a bug
|
|
3717
3878
|
|
|
3718
3879
|
If an error comes from inside this package and none of the entries above
|
|
@@ -6,7 +6,8 @@
|
|
|
6
6
|
* The code theme (CodeBlock); PdfReader's text layer, highlights and pdf.js's
|
|
7
7
|
* annotation layer; KaTeX (Markdown), highlight.js (RichTextEditor code
|
|
8
8
|
* blocks), vue-sonner (Toaster), vue-advanced-cropper (ImageCropper); and the
|
|
9
|
-
* components styled by a stylesheet of their own.
|
|
9
|
+
* components styled by a stylesheet of their own, input-otp.css among them:
|
|
10
|
+
* the rules vue-input-otp also injects, here for a strict CSP. */
|
|
10
11
|
@import "./ui/display/code/code-moonlight.css";
|
|
11
12
|
@import "./ui/media/pdf-viewer/pdf-viewer.css";
|
|
12
13
|
@import "./ui/media/pdf-viewer/pdf-annotation-layer.css";
|
|
@@ -15,6 +16,7 @@
|
|
|
15
16
|
@import "vue-sonner/style.css";
|
|
16
17
|
@import "vue-advanced-cropper/dist/style.css";
|
|
17
18
|
@import "./ui/feedback/spinner/spinner.css";
|
|
19
|
+
@import "./ui/fields/otp-field/input-otp.css";
|
|
18
20
|
@import "./ui/media/image-cropper/partials/image-cropper-canvas.css";
|
|
19
21
|
@import "./ui/actions/button-group/button-group.css";
|
|
20
22
|
@import "./ui/primitives/label/label.css";
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/* The rules input-otp (React, 1.4.2) and vue-input-otp (0.4.0) add on mount,
|
|
2
|
+
* through `insertRule` into a `<style id="input-otp-style">`: the hidden
|
|
3
|
+
* input's caret, selection and autofill stay invisible behind the slots.
|
|
4
|
+
* Here so a strict CSP blocks nothing. @nxgt/material strips input-otp's
|
|
5
|
+
* injection at build (build/strip-style-injection.ts); vue-input-otp is
|
|
6
|
+
* external, still injects, and takes the nonce (NonceProvider). The same file
|
|
7
|
+
* in both libraries (scripts/shared-paths.ts). */
|
|
8
|
+
/* biome-ignore-all lint/complexity/noImportantStyles: input-otp's own rules */
|
|
9
|
+
[data-input-otp]::selection {
|
|
10
|
+
background: transparent !important;
|
|
11
|
+
color: transparent !important;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/* Two rules: a browser that does not know one pseudo-class drops the list. */
|
|
15
|
+
[data-input-otp]:autofill {
|
|
16
|
+
background: transparent !important;
|
|
17
|
+
color: transparent !important;
|
|
18
|
+
border-color: transparent !important;
|
|
19
|
+
opacity: 0 !important;
|
|
20
|
+
box-shadow: none !important;
|
|
21
|
+
-webkit-box-shadow: none !important;
|
|
22
|
+
-webkit-text-fill-color: transparent !important;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
[data-input-otp]:-webkit-autofill {
|
|
26
|
+
background: transparent !important;
|
|
27
|
+
color: transparent !important;
|
|
28
|
+
border-color: transparent !important;
|
|
29
|
+
opacity: 0 !important;
|
|
30
|
+
box-shadow: none !important;
|
|
31
|
+
-webkit-box-shadow: none !important;
|
|
32
|
+
-webkit-text-fill-color: transparent !important;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
@supports (-webkit-touch-callout: none) {
|
|
36
|
+
[data-input-otp] {
|
|
37
|
+
letter-spacing: -0.6em !important;
|
|
38
|
+
font-weight: 100 !important;
|
|
39
|
+
font-stretch: ultra-condensed;
|
|
40
|
+
font-optical-sizing: none !important;
|
|
41
|
+
left: -1px !important;
|
|
42
|
+
right: 1px !important;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
[data-input-otp] + * {
|
|
47
|
+
pointer-events: all !important;
|
|
48
|
+
}
|
package/lib/nuxt/auto-imports.ts
CHANGED
package/lib/vite/index.ts
CHANGED
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
* Build-time helpers for the apps that consume this library: Node code that
|
|
3
3
|
* runs inside a consumer's `vite.config.ts`. The one copy lives in
|
|
4
4
|
* `@nxgt/material-core/vite`, shared with the sister library; this entry keeps
|
|
5
|
-
* the subpath consumers already import. See `pdfkitStandardFonts`
|
|
5
|
+
* the subpath consumers already import. See `pdfkitStandardFonts` and
|
|
6
|
+
* `cspAssetsInlineLimit` there.
|
|
6
7
|
*/
|
|
7
|
-
export {
|
|
8
|
+
export {
|
|
9
|
+
cspAssetsInlineLimit,
|
|
10
|
+
pdfkitStandardFonts,
|
|
11
|
+
} from '@nxgt/material-core/vite';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nxgt/material-vue",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.34.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"bugs": {
|
|
6
6
|
"email": "stevegires@gmail.com"
|
|
@@ -28,9 +28,9 @@
|
|
|
28
28
|
],
|
|
29
29
|
"exports": {
|
|
30
30
|
".": {
|
|
31
|
-
"import": "./dist/main.js",
|
|
32
31
|
"style": "./dist/material-vue.css",
|
|
33
32
|
"types": "./dist/lib/main.d.ts",
|
|
33
|
+
"import": "./dist/main.js",
|
|
34
34
|
"require": "./dist/main.js"
|
|
35
35
|
},
|
|
36
36
|
"./components": {
|
|
@@ -106,7 +106,7 @@
|
|
|
106
106
|
"dev": "bun storybook",
|
|
107
107
|
"generate:nuxt-names": "bun scripts/generate-nuxt-names.ts",
|
|
108
108
|
"build": "bun run generate:nuxt-names && vue-tsc -b && vite build",
|
|
109
|
-
"postbuild": "bun ../../scripts/copy-styles.ts && bun run verify:ssr && bun run verify:dts",
|
|
109
|
+
"postbuild": "bun ../../scripts/copy-styles.ts && bun ../../scripts/katex-fonts.ts && bun run verify:ssr && bun run verify:dts",
|
|
110
110
|
"prepack": "bun run verify:dts",
|
|
111
111
|
"storybook": "storybook dev -p 6006",
|
|
112
112
|
"build-storybook": "storybook build",
|
|
@@ -124,7 +124,7 @@
|
|
|
124
124
|
"docs:previews": "vitest run --project previews"
|
|
125
125
|
},
|
|
126
126
|
"dependencies": {
|
|
127
|
-
"@nxgt/material-core": "^0.
|
|
127
|
+
"@nxgt/material-core": "^0.9.0",
|
|
128
128
|
"@floating-ui/dom": "^1.8.0",
|
|
129
129
|
"@fortawesome/fontawesome-common-types": "7.3.1",
|
|
130
130
|
"@lucide/vue": "^1.45.0",
|