@nxgt/material-vue 0.20.0 → 0.21.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.
Files changed (30) hide show
  1. package/README.md +81 -0
  2. package/dist/HoverCardTrigger-CftN4TfW.js +415 -0
  3. package/dist/{camera-D_lnXyR3.js → camera-Cfp_DpaN.js} +5 -5
  4. package/dist/{components-DPA7UcWP.js → components-Do7bPo_-.js} +11700 -12103
  5. package/dist/components.js +5 -4
  6. package/dist/lib/map/components/consts.d.ts +18 -0
  7. package/dist/lib/map/components/index.d.ts +7 -0
  8. package/dist/lib/map/components/location-field.vue.d.ts +27 -0
  9. package/dist/lib/map/components/location-form-field.vue.d.ts +7 -0
  10. package/dist/lib/map/components/map.vue.d.ts +26 -0
  11. package/dist/lib/map/components/partials/index.d.ts +7 -0
  12. package/dist/lib/map/components/partials/location-marker.vue.d.ts +22 -0
  13. package/dist/lib/map/components/partials/location-preview.vue.d.ts +18 -0
  14. package/dist/lib/map/components/partials/map-actions.vue.d.ts +10 -0
  15. package/dist/lib/map/components/partials/marker.vue.d.ts +32 -0
  16. package/dist/lib/map/index.d.ts +43 -0
  17. package/dist/lib/map/use-geolocation.d.ts +27 -0
  18. package/dist/main.js +8 -7
  19. package/dist/map.js +363 -0
  20. package/dist/material-vue.css +1 -1
  21. package/dist/{pdf-outline-sidebar-Dbt_M8u7.js → pdf-outline-sidebar-DhTW6mJ0.js} +1 -1
  22. package/dist/{pdf-page-nn1STQlN.js → pdf-page-D4x_NxiO.js} +1 -1
  23. package/dist/{pdf-page-list-BlEPfn18.js → pdf-page-list-DkhiXStw.js} +2 -2
  24. package/dist/{pdf-reader-DkuEvdE7.js → pdf-reader-CiAIsMnH.js} +25 -24
  25. package/dist/{pdf-sidebar-ClNK5Kh3.js → pdf-sidebar-1NktEcai.js} +2 -2
  26. package/dist/{pdf-thumbnail-sidebar-DT0B1gF-.js → pdf-thumbnail-sidebar-DFvXWs3_.js} +2 -2
  27. package/dist/{pdf-toolbar-DUSBLW6r.js → pdf-toolbar-mXnJfhUC.js} +50 -50
  28. package/dist/{stx-player-Djdz3NHi.js → stx-player-C6DZOTxh.js} +5 -5
  29. package/lib/map/map.css +9 -0
  30. package/package.json +25 -4
@@ -1,5 +1,5 @@
1
1
  import { n as e } from "./rolldown-runtime-CWhphoD1.js";
2
- import { fl as t } from "./components-DPA7UcWP.js";
2
+ import { ll as t } from "./components-Do7bPo_-.js";
3
3
  import { t as n } from "./utils-Cy-ByIEo.js";
4
4
  import { n as r } from "./i18n-B7nNF_hw.js";
5
5
  import { Fragment as i, computed as a, createBlock as o, createCommentVNode as s, createElementBlock as c, createElementVNode as l, defineComponent as u, normalizeClass as d, normalizeStyle as f, openBlock as p, ref as m, renderList as h, toDisplayString as g, unref as _, withCtx as v } from "vue";
@@ -1,4 +1,4 @@
1
- import { au as e } from "./components-DPA7UcWP.js";
1
+ import { nu as e } from "./components-Do7bPo_-.js";
2
2
  import { t } from "./utils-Cy-ByIEo.js";
3
3
  import { createBlock as n, createCommentVNode as r, createElementBlock as i, createElementVNode as a, defineComponent as o, nextTick as s, normalizeClass as c, normalizeStyle as l, onBeforeUnmount as u, openBlock as d, ref as f, unref as p, watch as m } from "vue";
4
4
  //#region lib/components/ui/pdf-viewer/pdf-escape.ts
@@ -1,6 +1,6 @@
1
1
  import { n as e } from "./rolldown-runtime-CWhphoD1.js";
2
- import { fl as t } from "./components-DPA7UcWP.js";
3
- import { t as n } from "./pdf-page-nn1STQlN.js";
2
+ import { ll as t } from "./components-Do7bPo_-.js";
3
+ import { t as n } from "./pdf-page-D4x_NxiO.js";
4
4
  import { Fragment as r, createBlock as i, createElementBlock as a, createElementVNode as o, defineComponent as s, openBlock as c, renderList as l, withCtx as u } from "vue";
5
5
  //#region lib/components/ui/pdf-viewer/partials/pdf-page-list.vue?vue&type=script&setup=true&lang.ts
6
6
  var d = { class: "flex flex-col items-center gap-4 px-4 py-4" }, f = /*@__PURE__*/ s({
@@ -1,11 +1,12 @@
1
- import { ft as e, qf as t } from "./components-DPA7UcWP.js";
2
- import { t as n } from "./utils-Cy-ByIEo.js";
3
- import { r } from "./icon-button-Ghucx7Ah.js";
4
- import { n as i } from "./i18n-B7nNF_hw.js";
5
- import { i as a, n as o, r as s } from "./pdf-page-nn1STQlN.js";
6
- import { t as c } from "./pdf-page-list-BlEPfn18.js";
7
- import { t as l } from "./pdf-sidebar-ClNK5Kh3.js";
8
- import { t as u } from "./pdf-toolbar-DUSBLW6r.js";
1
+ import { ft as e } from "./components-Do7bPo_-.js";
2
+ import { t } from "./utils-Cy-ByIEo.js";
3
+ import { r as n } from "./icon-button-Ghucx7Ah.js";
4
+ import { n as r } from "./i18n-B7nNF_hw.js";
5
+ import { p as i } from "./HoverCardTrigger-CftN4TfW.js";
6
+ import { i as a, n as o, r as s } from "./pdf-page-D4x_NxiO.js";
7
+ import { t as c } from "./pdf-page-list-DkhiXStw.js";
8
+ import { t as l } from "./pdf-sidebar-1NktEcai.js";
9
+ import { t as u } from "./pdf-toolbar-mXnJfhUC.js";
9
10
  import { createBlock as d, createCommentVNode as f, createElementBlock as p, createElementVNode as m, createTextVNode as h, createVNode as g, defineComponent as _, normalizeClass as v, onBeforeUnmount as y, onMounted as b, openBlock as x, reactive as S, ref as C, shallowRef as w, toDisplayString as T, toRef as E, unref as D, watch as O, withCtx as k } from "vue";
10
11
  import { AlertCircle as A, FileX2 as j, KeyRound as M, Loader2 as N } from "lucide-vue-next";
11
12
  //#region lib/components/ui/pdf-viewer/pdf-download.ts
@@ -54,8 +55,8 @@ var R = { class: "text-sm font-medium" }, z = /* @__PURE__ */ _({
54
55
  __name: "pdf-empty-state",
55
56
  props: { class: {} },
56
57
  setup(e) {
57
- let { t } = i();
58
- return (e, r) => (x(), p("div", { class: v(D(n)("flex min-h-64 h-full flex-col items-center justify-center gap-3 text-muted-foreground", e.$props.class)) }, [g(D(j), { class: "size-10 opacity-40" }), m("p", R, T(D(t)("material.pdf-reader.empty", "No document selected")), 1)], 2));
58
+ let { t: n } = r();
59
+ return (e, r) => (x(), p("div", { class: v(D(t)("flex min-h-64 h-full flex-col items-center justify-center gap-3 text-muted-foreground", e.$props.class)) }, [g(D(j), { class: "size-10 opacity-40" }), m("p", R, T(D(n)("material.pdf-reader.empty", "No document selected")), 1)], 2));
59
60
  }
60
61
  });
61
62
  //#endregion
@@ -101,7 +102,7 @@ var H = { class: "absolute inset-0 flex flex-col items-center justify-center gap
101
102
  __name: "pdf-error-state",
102
103
  props: { message: {} },
103
104
  setup(e) {
104
- let { t } = i();
105
+ let { t } = r();
105
106
  return (n, r) => (x(), p("div", H, [
106
107
  g(D(A), { class: "size-10 text-error opacity-70" }),
107
108
  m("p", U, T(D(t)("material.pdf-reader.error", "Failed to load document")), 1),
@@ -111,33 +112,33 @@ var H = { class: "absolute inset-0 flex flex-col items-center justify-center gap
111
112
  }), K = { class: "absolute inset-0 z-10 flex flex-col items-center justify-center gap-3 bg-background/80 backdrop-blur-sm" }, q = { class: "text-sm text-muted-foreground" }, J = /* @__PURE__ */ _({
112
113
  __name: "pdf-loading-overlay",
113
114
  setup(e) {
114
- let { t } = i();
115
+ let { t } = r();
115
116
  return (e, n) => (x(), p("div", K, [g(D(N), { class: "size-8 animate-spin text-primary" }), m("p", q, T(D(t)("material.pdf-reader.loading", "Loading document…")), 1)]));
116
117
  }
117
118
  }), Y = { class: "absolute inset-0 flex flex-col items-center justify-center gap-4" }, X = { class: "text-sm font-semibold" }, Z = { class: "flex gap-2" }, Q = /* @__PURE__ */ _({
118
119
  __name: "pdf-password-form",
119
120
  props: { modelValue: {} },
120
121
  emits: ["update:modelValue", "submit"],
121
- setup(e, { emit: n }) {
122
- let a = n, { t: o } = i();
122
+ setup(e, { emit: t }) {
123
+ let a = t, { t: o } = r();
123
124
  function s(e) {
124
125
  e.key === "Enter" && a("submit");
125
126
  }
126
- return (n, i) => (x(), p("div", Y, [
127
+ return (t, r) => (x(), p("div", Y, [
127
128
  g(D(M), { class: "size-10 text-primary opacity-70" }),
128
129
  m("p", X, T(D(o)("material.pdf-reader.password", "Password protected")), 1),
129
- m("div", Z, [g(t, {
130
+ m("div", Z, [g(i, {
130
131
  type: "password",
131
132
  placeholder: D(o)("material.pdf-reader.password-placeholder", "Enter password"),
132
133
  class: "h-9 w-48",
133
134
  "model-value": e.modelValue,
134
135
  autofocus: "",
135
- "onUpdate:modelValue": i[0] ||= (e) => a("update:modelValue", String(e)),
136
+ "onUpdate:modelValue": r[0] ||= (e) => a("update:modelValue", String(e)),
136
137
  onKeydown: s
137
- }, null, 8, ["placeholder", "model-value"]), g(r, {
138
+ }, null, 8, ["placeholder", "model-value"]), g(n, {
138
139
  variant: "filled",
139
140
  color: "primary",
140
- onClick: i[1] ||= (e) => a("submit")
141
+ onClick: r[1] ||= (e) => a("submit")
141
142
  }, {
142
143
  default: k(() => [h(T(D(o)("material.pdf-reader.unlock", "Unlock")), 1)]),
143
144
  _: 1
@@ -274,8 +275,8 @@ var ne = ["aria-label"], re = /* @__PURE__ */ _({
274
275
  "loadSuccess",
275
276
  "loadError"
276
277
  ],
277
- setup(t, { emit: r }) {
278
- let a = t, o = r, { t: s } = i(), c = C(null), l = /* @__PURE__ */ new Map(), f = te(c), m = e({
278
+ setup(n, { emit: i }) {
279
+ let a = n, o = i, { t: s } = r(), c = C(null), l = /* @__PURE__ */ new Map(), f = te(c), m = e({
279
280
  get file() {
280
281
  return a.file;
281
282
  },
@@ -330,12 +331,12 @@ var ne = ["aria-label"], re = /* @__PURE__ */ _({
330
331
  function M() {
331
332
  a.onPrint ? a.onPrint() : a.file && I(a.file);
332
333
  }
333
- return (e, r) => t.file ? (x(), p("div", {
334
+ return (e, r) => n.file ? (x(), p("div", {
334
335
  key: 1,
335
336
  ref_key: "wrapperRef",
336
337
  ref: c,
337
338
  "data-slot": "pdf-reader",
338
- class: v(D(n)("relative flex h-full min-h-0 flex-col overflow-hidden rounded border bg-background", D(h).isFullscreen && "rounded-none", a.class)),
339
+ class: v(D(t)("relative flex h-full min-h-0 flex-col overflow-hidden rounded border bg-background", D(h).isFullscreen && "rounded-none", a.class)),
339
340
  role: "application",
340
341
  tabindex: "0",
341
342
  "aria-label": D(s)("material.pdf-reader.label", "PDF reader"),
@@ -380,7 +381,7 @@ var ne = ["aria-label"], re = /* @__PURE__ */ _({
380
381
  "onSearchOpenChange",
381
382
  "onToggleNightMode"
382
383
  ]), g(ee, {
383
- file: t.file,
384
+ file: n.file,
384
385
  state: D(h),
385
386
  "effective-scale": D(_),
386
387
  "page-refs": D(l),
@@ -1,8 +1,8 @@
1
1
  import { n as e } from "./rolldown-runtime-CWhphoD1.js";
2
2
  import { t } from "./utils-Cy-ByIEo.js";
3
3
  import { n } from "./i18n-B7nNF_hw.js";
4
- import { t as r } from "./pdf-outline-sidebar-Dbt_M8u7.js";
5
- import { t as i } from "./pdf-thumbnail-sidebar-DT0B1gF-.js";
4
+ import { t as r } from "./pdf-outline-sidebar-DhTW6mJ0.js";
5
+ import { t as i } from "./pdf-thumbnail-sidebar-DFvXWs3_.js";
6
6
  import { createElementBlock as a, createElementVNode as o, createVNode as s, defineComponent as c, normalizeClass as l, openBlock as u, toDisplayString as d, unref as f, useId as p, useTemplateRef as m } from "vue";
7
7
  //#region lib/components/ui/pdf-viewer/partials/pdf-sidebar.vue?vue&type=script&setup=true&lang.ts
8
8
  var h = ["aria-label"], g = ["aria-label"], _ = [
@@ -1,8 +1,8 @@
1
1
  import { n as e } from "./rolldown-runtime-CWhphoD1.js";
2
- import { fl as t } from "./components-DPA7UcWP.js";
2
+ import { ll as t } from "./components-Do7bPo_-.js";
3
3
  import { t as n } from "./utils-Cy-ByIEo.js";
4
4
  import { n as r } from "./i18n-B7nNF_hw.js";
5
- import { t as i } from "./pdf-page-nn1STQlN.js";
5
+ import { t as i } from "./pdf-page-D4x_NxiO.js";
6
6
  import { Fragment as a, createCommentVNode as o, createElementBlock as s, createElementVNode as c, createVNode as l, defineComponent as u, normalizeClass as d, openBlock as f, renderList as p, toDisplayString as m, unref as h, withCtx as g } from "vue";
7
7
  //#region lib/components/ui/pdf-viewer/partials/pdf-thumbnail-sidebar.vue?vue&type=script&setup=true&lang.ts
8
8
  var _ = ["aria-label"], v = {
@@ -1,8 +1,8 @@
1
1
  import { n as e } from "./rolldown-runtime-CWhphoD1.js";
2
- import { qf as t } from "./components-DPA7UcWP.js";
3
- import { t as n } from "./utils-Cy-ByIEo.js";
4
- import { t as r } from "./icon-button-Ghucx7Ah.js";
5
- import { n as i } from "./i18n-B7nNF_hw.js";
2
+ import { t } from "./utils-Cy-ByIEo.js";
3
+ import { t as n } from "./icon-button-Ghucx7Ah.js";
4
+ import { n as r } from "./i18n-B7nNF_hw.js";
5
+ import { p as i } from "./HoverCardTrigger-CftN4TfW.js";
6
6
  import { Fragment as a, computed as o, createBlock as s, createCommentVNode as c, createElementBlock as l, createElementVNode as u, createVNode as d, defineComponent as f, nextTick as p, normalizeClass as m, openBlock as h, ref as g, renderList as _, toDisplayString as v, unref as y, useTemplateRef as b, watch as x, withCtx as S } from "vue";
7
7
  import { ChevronDown as C, ChevronLeft as w, ChevronRight as T, ChevronUp as E, Download as D, Maximize2 as O, Minimize2 as k, Moon as A, Printer as j, RotateCw as M, Search as N, Sidebar as P, ZoomIn as F, ZoomOut as I } from "lucide-vue-next";
8
8
  //#region lib/components/ui/pdf-viewer/partials/pdf-toolbar-search.vue?vue&type=script&setup=true&lang.ts
@@ -14,8 +14,8 @@ var L = { class: "min-w-10 text-center text-muted-foreground text-xs" }, R = /*
14
14
  searchHits: {}
15
15
  },
16
16
  emits: ["search-open-change", "search-change"],
17
- setup(e, { emit: n }) {
18
- let o = e, s = n, { t: f } = i(), m = b("searchHost"), g = f("material.pdf-reader.search", "Search"), _ = f("material.pdf-reader.search-next", "Next match (F3)"), w = f("material.pdf-reader.search-prev", "Previous match (Shift+F3)");
17
+ setup(e, { emit: t }) {
18
+ let o = e, s = t, { t: f } = r(), m = b("searchHost"), g = f("material.pdf-reader.search", "Search"), _ = f("material.pdf-reader.search-next", "Next match (F3)"), w = f("material.pdf-reader.search-prev", "Previous match (Shift+F3)");
19
19
  x(() => o.searchOpen, async (e) => {
20
20
  e && (await p(), m.value?.querySelector("input")?.focus());
21
21
  });
@@ -25,12 +25,12 @@ var L = { class: "min-w-10 text-center text-muted-foreground text-xs" }, R = /*
25
25
  function D(e) {
26
26
  s("search-change", String(e)), o.searchHits.reset();
27
27
  }
28
- return (n, i) => (h(), l(a, null, [e.searchOpen ? (h(), l("div", {
28
+ return (t, r) => (h(), l(a, null, [e.searchOpen ? (h(), l("div", {
29
29
  key: 0,
30
30
  ref_key: "searchHost",
31
31
  ref: m,
32
32
  class: "flex items-center gap-1"
33
- }, [d(t, {
33
+ }, [d(i, {
34
34
  class: "h-7 w-36 text-sm",
35
35
  placeholder: y(g),
36
36
  "model-value": e.searchQuery,
@@ -38,35 +38,35 @@ var L = { class: "min-w-10 text-center text-muted-foreground text-xs" }, R = /*
38
38
  onKeydown: T
39
39
  }, null, 8, ["placeholder", "model-value"]), e.searchQuery ? (h(), l(a, { key: 0 }, [
40
40
  u("span", L, v(e.searchHits.hitCount > 0 ? `${e.searchHits.hitIndex + 1}/${e.searchHits.hitCount}` : "0/0"), 1),
41
- d(r, {
41
+ d(n, {
42
42
  variant: "ghost",
43
43
  color: "default",
44
44
  class: "size-7",
45
45
  "aria-label": y(w),
46
46
  tooltip: y(w),
47
- onClick: i[0] ||= (t) => e.searchHits.jump(-1)
47
+ onClick: r[0] ||= (t) => e.searchHits.jump(-1)
48
48
  }, {
49
49
  default: S(() => [d(y(E))]),
50
50
  _: 1
51
51
  }, 8, ["aria-label", "tooltip"]),
52
- d(r, {
52
+ d(n, {
53
53
  variant: "ghost",
54
54
  color: "default",
55
55
  class: "size-7",
56
56
  "aria-label": y(_),
57
57
  tooltip: y(_),
58
- onClick: i[1] ||= (t) => e.searchHits.jump(1)
58
+ onClick: r[1] ||= (t) => e.searchHits.jump(1)
59
59
  }, {
60
60
  default: S(() => [d(y(C))]),
61
61
  _: 1
62
62
  }, 8, ["aria-label", "tooltip"])
63
- ], 64)) : c("", !0)], 512)) : c("", !0), d(r, {
63
+ ], 64)) : c("", !0)], 512)) : c("", !0), d(n, {
64
64
  variant: e.searchOpen ? "tonal" : "ghost",
65
65
  color: "default",
66
66
  "aria-label": y(g),
67
67
  "aria-pressed": e.searchOpen,
68
68
  tooltip: y(f)("material.pdf-reader.search-shortcut", "Search (Ctrl+F)"),
69
- onClick: i[2] ||= (t) => s("search-open-change", !e.searchOpen)
69
+ onClick: r[2] ||= (t) => s("search-open-change", !e.searchOpen)
70
70
  }, {
71
71
  default: S(() => [d(y(N))]),
72
72
  _: 1
@@ -95,20 +95,20 @@ var L = { class: "min-w-10 text-center text-muted-foreground text-xs" }, R = /*
95
95
  "toggleFullscreen"
96
96
  ],
97
97
  setup(e, { emit: t }) {
98
- let n = e, u = t, { t: f } = i(), p = o(() => n.nightMode ? f("material.pdf-reader.day", "Day mode") : f("material.pdf-reader.night", "Night mode")), m = o(() => n.isFullscreen ? f("material.pdf-reader.exit-fullscreen", "Exit fullscreen") : f("material.pdf-reader.fullscreen", "Fullscreen"));
99
- return (t, n) => (h(), l(a, null, [
98
+ let i = e, u = t, { t: f } = r(), p = o(() => i.nightMode ? f("material.pdf-reader.day", "Day mode") : f("material.pdf-reader.night", "Night mode")), m = o(() => i.isFullscreen ? f("material.pdf-reader.exit-fullscreen", "Exit fullscreen") : f("material.pdf-reader.fullscreen", "Fullscreen"));
99
+ return (t, r) => (h(), l(a, null, [
100
100
  d(R, {
101
101
  "search-open": e.searchOpen,
102
102
  "search-query": e.searchQuery,
103
103
  "search-hits": e.searchHits,
104
- onSearchOpenChange: n[0] ||= (e) => u("search-open-change", e),
105
- onSearchChange: n[1] ||= (e) => u("search-change", e)
104
+ onSearchOpenChange: r[0] ||= (e) => u("search-open-change", e),
105
+ onSearchChange: r[1] ||= (e) => u("search-change", e)
106
106
  }, null, 8, [
107
107
  "search-open",
108
108
  "search-query",
109
109
  "search-hits"
110
110
  ]),
111
- e.onDownload ? (h(), s(r, {
111
+ e.onDownload ? (h(), s(n, {
112
112
  key: 0,
113
113
  variant: "ghost",
114
114
  color: "default",
@@ -123,7 +123,7 @@ var L = { class: "min-w-10 text-center text-muted-foreground text-xs" }, R = /*
123
123
  "tooltip",
124
124
  "onClick"
125
125
  ])) : c("", !0),
126
- e.onPrint ? (h(), s(r, {
126
+ e.onPrint ? (h(), s(n, {
127
127
  key: 1,
128
128
  variant: "ghost",
129
129
  color: "default",
@@ -138,13 +138,13 @@ var L = { class: "min-w-10 text-center text-muted-foreground text-xs" }, R = /*
138
138
  "tooltip",
139
139
  "onClick"
140
140
  ])) : c("", !0),
141
- d(r, {
141
+ d(n, {
142
142
  variant: e.nightMode ? "tonal" : "ghost",
143
143
  color: "default",
144
144
  "aria-label": p.value,
145
145
  "aria-pressed": e.nightMode,
146
146
  tooltip: p.value,
147
- onClick: n[2] ||= (e) => u("toggleNightMode")
147
+ onClick: r[2] ||= (e) => u("toggleNightMode")
148
148
  }, {
149
149
  default: S(() => [d(y(A))]),
150
150
  _: 1
@@ -154,12 +154,12 @@ var L = { class: "min-w-10 text-center text-muted-foreground text-xs" }, R = /*
154
154
  "aria-pressed",
155
155
  "tooltip"
156
156
  ]),
157
- d(r, {
157
+ d(n, {
158
158
  variant: "ghost",
159
159
  color: "default",
160
160
  "aria-label": m.value,
161
161
  tooltip: m.value,
162
- onClick: n[3] ||= (e) => u("toggleFullscreen")
162
+ onClick: r[3] ||= (e) => u("toggleFullscreen")
163
163
  }, {
164
164
  default: S(() => [e.isFullscreen ? (h(), s(y(k), { key: 0 })) : (h(), s(y(O), { key: 1 }))]),
165
165
  _: 1
@@ -177,8 +177,8 @@ var L = { class: "min-w-10 text-center text-muted-foreground text-xs" }, R = /*
177
177
  "nextPage",
178
178
  "goToPage"
179
179
  ],
180
- setup(e, { emit: n }) {
181
- let o = n, { t: s } = i(), c = g(""), f = s("material.pdf-reader.previous-page", "Previous page"), p = s("material.pdf-reader.next-page", "Next page"), m = s("material.pdf-reader.current-page", "Current page");
180
+ setup(e, { emit: t }) {
181
+ let o = t, { t: s } = r(), c = g(""), f = s("material.pdf-reader.previous-page", "Previous page"), p = s("material.pdf-reader.next-page", "Next page"), m = s("material.pdf-reader.current-page", "Current page");
182
182
  function _() {
183
183
  let e = Number.parseInt(c.value, 10);
184
184
  Number.isNaN(e) || o("goToPage", e), c.value = "";
@@ -186,14 +186,14 @@ var L = { class: "min-w-10 text-center text-muted-foreground text-xs" }, R = /*
186
186
  function b(e) {
187
187
  e.key === "Enter" && _();
188
188
  }
189
- return (n, i) => (h(), l(a, null, [
190
- d(r, {
189
+ return (t, r) => (h(), l(a, null, [
190
+ d(n, {
191
191
  variant: "ghost",
192
192
  color: "default",
193
193
  "aria-label": y(f),
194
194
  tooltip: y(f),
195
195
  disabled: e.currentPage <= 1,
196
- onClick: i[0] ||= (e) => o("prevPage")
196
+ onClick: r[0] ||= (e) => o("prevPage")
197
197
  }, {
198
198
  default: S(() => [d(y(w))]),
199
199
  _: 1
@@ -202,21 +202,21 @@ var L = { class: "min-w-10 text-center text-muted-foreground text-xs" }, R = /*
202
202
  "tooltip",
203
203
  "disabled"
204
204
  ]),
205
- u("div", B, [d(t, {
205
+ u("div", B, [d(i, {
206
206
  class: "h-7 w-12 px-1 py-0 text-center text-sm",
207
207
  "model-value": c.value || e.currentPage,
208
208
  "aria-label": y(m),
209
- "onUpdate:modelValue": i[1] ||= (e) => c.value = String(e),
209
+ "onUpdate:modelValue": r[1] ||= (e) => c.value = String(e),
210
210
  onKeydown: b,
211
211
  onBlur: _
212
212
  }, null, 8, ["model-value", "aria-label"]), u("span", V, "/ " + v(e.numPages), 1)]),
213
- d(r, {
213
+ d(n, {
214
214
  variant: "ghost",
215
215
  color: "default",
216
216
  "aria-label": y(p),
217
217
  tooltip: y(p),
218
218
  disabled: e.currentPage >= e.numPages,
219
- onClick: i[2] ||= (e) => o("nextPage")
219
+ onClick: r[2] ||= (e) => o("nextPage")
220
220
  }, {
221
221
  default: S(() => [d(y(T))]),
222
222
  _: 1
@@ -243,7 +243,7 @@ var L = { class: "min-w-10 text-center text-muted-foreground text-xs" }, R = /*
243
243
  "setFitMode"
244
244
  ],
245
245
  setup(e, { emit: t }) {
246
- let n = [
246
+ let i = [
247
247
  {
248
248
  label: "50%",
249
249
  value: .5
@@ -268,21 +268,21 @@ var L = { class: "min-w-10 text-center text-muted-foreground text-xs" }, R = /*
268
268
  label: "200%",
269
269
  value: 2
270
270
  }
271
- ], s = e, f = t, { t: p } = i(), m = g(!1), b = o(() => Math.round(s.computedScale * 100)), x = o(() => s.fitMode === "width" ? p("material.pdf-reader.fit-width", "Fit W") : s.fitMode === "page" ? p("material.pdf-reader.fit-page", "Fit P") : `${b.value}%`);
271
+ ], s = e, f = t, { t: p } = r(), m = g(!1), b = o(() => Math.round(s.computedScale * 100)), x = o(() => s.fitMode === "width" ? p("material.pdf-reader.fit-width", "Fit W") : s.fitMode === "page" ? p("material.pdf-reader.fit-page", "Fit P") : `${b.value}%`);
272
272
  function C(e) {
273
273
  f("setFitMode", e), m.value = !1;
274
274
  }
275
275
  function w(e) {
276
276
  f("setScale", e), m.value = !1;
277
277
  }
278
- return (t, i) => (h(), l(a, null, [
279
- d(r, {
278
+ return (t, r) => (h(), l(a, null, [
279
+ d(n, {
280
280
  variant: "ghost",
281
281
  color: "default",
282
282
  "aria-label": y(p)("material.pdf-reader.zoom-out", "Zoom out"),
283
283
  tooltip: y(p)("material.pdf-reader.zoom-out", "Zoom out (-)"),
284
284
  disabled: e.computedScale <= .25,
285
- onClick: i[0] ||= (e) => f("zoomOut")
285
+ onClick: r[0] ||= (e) => f("zoomOut")
286
286
  }, {
287
287
  default: S(() => [d(y(I))]),
288
288
  _: 1
@@ -294,33 +294,33 @@ var L = { class: "min-w-10 text-center text-muted-foreground text-xs" }, R = /*
294
294
  u("div", U, [u("button", {
295
295
  type: "button",
296
296
  class: "flex h-7 min-w-14 items-center justify-center rounded border border-border px-2 text-xs font-medium hover:bg-accent",
297
- onClick: i[1] ||= (e) => m.value = !m.value
297
+ onClick: r[1] ||= (e) => m.value = !m.value
298
298
  }, v(x.value), 1), m.value ? (h(), l("div", W, [
299
299
  u("button", {
300
300
  type: "button",
301
301
  class: "w-full px-3 py-1.5 text-left text-sm hover:bg-accent",
302
- onClick: i[2] ||= (e) => C("width")
302
+ onClick: r[2] ||= (e) => C("width")
303
303
  }, v(y(p)("material.pdf-reader.fit-width-full", "Fit Width")), 1),
304
304
  u("button", {
305
305
  type: "button",
306
306
  class: "w-full px-3 py-1.5 text-left text-sm hover:bg-accent",
307
- onClick: i[3] ||= (e) => C("page")
307
+ onClick: r[3] ||= (e) => C("page")
308
308
  }, v(y(p)("material.pdf-reader.fit-page-full", "Fit Page")), 1),
309
- i[5] ||= u("div", { class: "my-1 h-px bg-border" }, null, -1),
310
- (h(), l(a, null, _(n, (e) => u("button", {
309
+ r[5] ||= u("div", { class: "my-1 h-px bg-border" }, null, -1),
310
+ (h(), l(a, null, _(i, (e) => u("button", {
311
311
  key: e.label,
312
312
  type: "button",
313
313
  class: "w-full px-3 py-1.5 text-left text-sm hover:bg-accent",
314
314
  onClick: (t) => w(e.value)
315
315
  }, v(e.label), 9, G)), 64))
316
316
  ])) : c("", !0)]),
317
- d(r, {
317
+ d(n, {
318
318
  variant: "ghost",
319
319
  color: "default",
320
320
  "aria-label": y(p)("material.pdf-reader.zoom-in", "Zoom in"),
321
321
  tooltip: y(p)("material.pdf-reader.zoom-in", "Zoom in (+)"),
322
322
  disabled: e.computedScale >= 5,
323
- onClick: i[4] ||= (e) => f("zoomIn")
323
+ onClick: r[4] ||= (e) => f("zoomIn")
324
324
  }, {
325
325
  default: S(() => [d(y(F))]),
326
326
  _: 1
@@ -359,10 +359,10 @@ var L = { class: "min-w-10 text-center text-muted-foreground text-xs" }, R = /*
359
359
  "toggleNightMode",
360
360
  "toggleFullscreen"
361
361
  ],
362
- setup(e, { emit: t }) {
363
- let a = t, { t: o } = i(), s = o("material.pdf-reader.sidebar-toggle", "Toggle sidebar"), c = o("material.pdf-reader.rotate", "Rotate");
364
- return (t, i) => (h(), l("div", { class: m(y(n)("@container z-10 flex min-h-12 shrink-0 flex-wrap items-center gap-1 border-b bg-background px-2 py-1 @md:px-3", t.$props.class)) }, [
365
- d(r, {
362
+ setup(e, { emit: i }) {
363
+ let a = i, { t: o } = r(), s = o("material.pdf-reader.sidebar-toggle", "Toggle sidebar"), c = o("material.pdf-reader.rotate", "Rotate");
364
+ return (r, i) => (h(), l("div", { class: m(y(t)("@container z-10 flex min-h-12 shrink-0 flex-wrap items-center gap-1 border-b bg-background px-2 py-1 @md:px-3", r.$props.class)) }, [
365
+ d(n, {
366
366
  variant: "ghost",
367
367
  color: "default",
368
368
  "aria-label": y(s),
@@ -395,7 +395,7 @@ var L = { class: "min-w-10 text-center text-muted-foreground text-xs" }, R = /*
395
395
  onSetFitMode: i[7] ||= (e) => a("setFitMode", e)
396
396
  }, null, 8, ["fit-mode", "computed-scale"]),
397
397
  i[15] ||= u("div", { class: "mx-1 hidden h-6 w-px shrink-0 bg-border @md:block" }, null, -1),
398
- d(r, {
398
+ d(n, {
399
399
  variant: "ghost",
400
400
  color: "default",
401
401
  "aria-label": y(c),
@@ -1,4 +1,4 @@
1
- import { S as e, _ as t, b as n, g as r, h as i, wd as a, x as o, y as s } from "./components-DPA7UcWP.js";
1
+ import { S as e, _ as t, b as n, g as r, h as i, x as a, xd as o, y as s } from "./components-Do7bPo_-.js";
2
2
  import { t as c } from "./utils-Cy-ByIEo.js";
3
3
  import { createBlock as l, createCommentVNode as u, createElementBlock as d, createElementVNode as f, createTextVNode as p, createVNode as m, defineComponent as h, normalizeClass as g, openBlock as _, toDisplayString as v, unref as y, withCtx as b } from "vue";
4
4
  //#region lib/components/ui/stx-player/partials/stx-player-frame.vue?vue&type=script&setup=true&lang.ts
@@ -33,10 +33,10 @@ var x = ["data-layout", "aria-label"], S = {
33
33
  key: 1,
34
34
  class: g(y(c)("grid gap-3", t.showQueue && "@min-[768px]:grid-cols-[minmax(0,1fr)_18rem] @min-[768px]:items-stretch"))
35
35
  }, [f("div", { class: g(y(c)("bg-card overflow-hidden rounded border", y(C).current?.kind === "audio" && "flex flex-col gap-4 p-6")) }, [
36
- y(C).current?.kind === "audio" ? (_(), d("div", S, [m(a, { variant: "title-medium" }, {
36
+ y(C).current?.kind === "audio" ? (_(), d("div", S, [m(o, { variant: "title-medium" }, {
37
37
  default: b(() => [p(v(y(C).current.title), 1)]),
38
38
  _: 1
39
- }), y(C).current.artist ? (_(), l(a, {
39
+ }), y(C).current.artist ? (_(), l(o, {
40
40
  key: 0,
41
41
  class: "text-muted-foreground"
42
42
  }, {
@@ -44,7 +44,7 @@ var x = ["data-layout", "aria-label"], S = {
44
44
  _: 1
45
45
  })) : u("", !0)])) : u("", !0),
46
46
  m(i, null, {
47
- default: b(() => [y(C).current?.kind === "audio" ? u("", !0) : (_(), l(o, {
47
+ default: b(() => [y(C).current?.kind === "audio" ? u("", !0) : (_(), l(a, {
48
48
  key: 0,
49
49
  tone: "overlay"
50
50
  }, {
@@ -53,7 +53,7 @@ var x = ["data-layout", "aria-label"], S = {
53
53
  }))]),
54
54
  _: 1
55
55
  }),
56
- y(C).current?.kind === "audio" ? (_(), l(o, {
56
+ y(C).current?.kind === "audio" ? (_(), l(a, {
57
57
  key: 1,
58
58
  tone: "surface"
59
59
  }, {
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Leaflet's own stylesheet, re-exported as `@nxgt/material-vue/map.css`.
3
+ *
4
+ * It is NOT part of `@nxgt/material-vue/styles.css`: an app that renders no map
5
+ * should not download leaflet's CSS, and the `@import` below only resolves when
6
+ * `leaflet` is installed — which, as an optional peer, is true exactly of the
7
+ * apps that use `@nxgt/material-vue/map`.
8
+ */
9
+ @import "leaflet/dist/leaflet.css";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nxgt/material-vue",
3
- "version": "0.20.0",
3
+ "version": "0.21.0",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "files": [
@@ -8,6 +8,7 @@
8
8
  "!dist/assets",
9
9
  "lib/nuxt",
10
10
  "lib/styles.css",
11
+ "lib/map/map.css",
11
12
  "lib/components/ui/code/code-moonlight.css",
12
13
  "README.md",
13
14
  "package.json"
@@ -24,6 +25,11 @@
24
25
  "types": "./dist/lib/components/index.d.ts",
25
26
  "require": "./dist/components.js"
26
27
  },
28
+ "./map": {
29
+ "import": "./dist/map.js",
30
+ "types": "./dist/lib/map/index.d.ts",
31
+ "require": "./dist/map.js"
32
+ },
27
33
  "./composables": {
28
34
  "import": "./dist/composables.js",
29
35
  "types": "./dist/lib/composables/index.d.ts",
@@ -58,6 +64,10 @@
58
64
  "style": "./lib/styles.css",
59
65
  "default": "./lib/styles.css"
60
66
  },
67
+ "./map.css": {
68
+ "style": "./lib/map/map.css",
69
+ "default": "./lib/map/map.css"
70
+ },
61
71
  "./nuxt": {
62
72
  "types": "./lib/nuxt/module.ts",
63
73
  "import": "./lib/nuxt/module.ts",
@@ -159,13 +169,16 @@
159
169
  "@tanstack/vue-table": "^9.1.2",
160
170
  "@types/bun": "^1.4.2",
161
171
  "@types/jsbarcode": "^3.11.4",
172
+ "@types/leaflet": "^1.9.22",
162
173
  "@types/lodash-es": "^4.17.12",
163
174
  "@types/markdown-it": "^14.2.0",
164
175
  "@types/node": "^26.1.1",
165
176
  "@types/qrcode": "^1.5.6",
166
177
  "@vitejs/plugin-vue": "^6.0.1",
178
+ "@vue-leaflet/vue-leaflet": "^0.10.1",
167
179
  "ajv": "^8.20.0",
168
180
  "globals": "^17.7.0",
181
+ "leaflet": "^1.9.4",
169
182
  "monaco-editor": "^0.56.0",
170
183
  "pinia": "^3.0.3",
171
184
  "shadcn-vue": "^2.2.0",
@@ -180,14 +193,22 @@
180
193
  },
181
194
  "peerDependencies": {
182
195
  "@tanstack/vue-table": "^9.1.2",
183
- "pinia": "^3.0.3",
196
+ "@vue-leaflet/vue-leaflet": "^0.10.1",
184
197
  "@vueuse/core": "^13.0.0 || ^14.0.0",
198
+ "leaflet": "^1.9.4",
199
+ "nuxt": ">=3.13.0",
200
+ "pinia": "^3.0.3",
185
201
  "vee-validate": "^4.15.0",
186
202
  "vue": "^3.5.0",
187
- "vue-router": "^4.5.0 || ^5.0.0",
188
- "nuxt": ">=3.13.0"
203
+ "vue-router": "^4.5.0 || ^5.0.0"
189
204
  },
190
205
  "peerDependenciesMeta": {
206
+ "@vue-leaflet/vue-leaflet": {
207
+ "optional": true
208
+ },
209
+ "leaflet": {
210
+ "optional": true
211
+ },
191
212
  "nuxt": {
192
213
  "optional": true
193
214
  }