@nxgt/material-vue 0.26.1 → 0.27.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 (156) hide show
  1. package/CHANGELOG.md +175 -0
  2. package/README.md +8 -5
  3. package/dist/Button-DEUkxkrJ.js +728 -0
  4. package/dist/{DropdownMenuTrigger-BHAhXGUO.js → DropdownMenuTrigger-BsuyNVzV.js} +48 -41
  5. package/dist/HoverCardTrigger-TDll55LP.js +510 -0
  6. package/dist/{camera-DvKuqT4L.js → camera-UJXnnFeb.js} +4 -4
  7. package/dist/components/base-content.css +139 -0
  8. package/dist/components/base.css +150 -0
  9. package/dist/components/components.css +2 -0
  10. package/dist/components/reduced-motion.css +56 -0
  11. package/dist/components/theme-tokens.css +116 -0
  12. package/dist/components/ui/actions/button-group/button-group.css +1 -1
  13. package/dist/components/ui/feedback/toast/toast.css +21 -0
  14. package/dist/components/ui/primitives/label/label.css +33 -0
  15. package/dist/{components-CCWod7cJ.js → components-BZ1XAK37.js} +19198 -18568
  16. package/dist/components.js +7 -7
  17. package/dist/composables.js +3 -3
  18. package/dist/dnd.js +1 -1
  19. package/dist/field-name-attribute-Bl7LSVK0.js +4 -0
  20. package/dist/{form-scope-x-7TYn2s.js → form-scope-BFGca0h6.js} +1 -1
  21. package/dist/{i18n-provider-CaaZCmaR.js → i18n-provider-DBusa725.js} +1 -1
  22. package/dist/i18n.js +4 -4
  23. package/dist/icon-button-jHB4MhQ5.js +262 -0
  24. package/dist/lib/components/ui/actions/button/Button.vue.d.ts +22 -4
  25. package/dist/lib/components/ui/actions/button/button-tones.d.ts +36 -0
  26. package/dist/lib/components/ui/actions/button/button.variants.d.ts +1 -1
  27. package/dist/lib/components/ui/actions/button/button.wrap.d.ts +8 -0
  28. package/dist/lib/components/ui/actions/button/label-text.d.ts +9 -0
  29. package/dist/lib/components/ui/actions/button/prepend-to-child.d.ts +18 -0
  30. package/dist/lib/components/ui/actions/button/use-click-lock.d.ts +14 -0
  31. package/dist/lib/components/ui/actions/copy-button/copy-button.vue.d.ts +6 -2
  32. package/dist/lib/components/ui/actions/icon-button/icon-button.compound-variants.d.ts +28 -0
  33. package/dist/lib/components/ui/actions/icon-button/icon-button.vue.d.ts +1 -1
  34. package/dist/lib/components/ui/actions/responsive-button/responsive-button.vue.d.ts +1 -3
  35. package/dist/lib/components/ui/collections/data-table/partials/data-table-empty.vue.d.ts +5 -1
  36. package/dist/lib/components/ui/collections/data-table/partials/data-table-scroll-region.vue.d.ts +28 -0
  37. package/dist/lib/components/ui/collections/data-table/partials/data-table-toolbar.d.ts +60 -0
  38. package/dist/lib/components/ui/collections/data-table/types.d.ts +9 -0
  39. package/dist/lib/components/ui/collections/data-table/use-scroll-edges.d.ts +22 -0
  40. package/dist/lib/components/ui/collections/pagination/PaginationFirst.vue.d.ts +1 -1
  41. package/dist/lib/components/ui/collections/pagination/PaginationItem.vue.d.ts +1 -1
  42. package/dist/lib/components/ui/collections/pagination/PaginationLast.vue.d.ts +1 -1
  43. package/dist/lib/components/ui/collections/pagination/PaginationNext.vue.d.ts +1 -1
  44. package/dist/lib/components/ui/collections/pagination/PaginationPrevious.vue.d.ts +1 -1
  45. package/dist/lib/components/ui/dates/calendar/Calendar.vue.d.ts +4 -4
  46. package/dist/lib/components/ui/dates/calendar/calendar-day-label.d.ts +17 -0
  47. package/dist/lib/components/ui/dates/calendar/calendar-years.d.ts +11 -0
  48. package/dist/lib/components/ui/dates/calendar/partials/calendar-month-select.vue.d.ts +18 -0
  49. package/dist/lib/components/ui/dates/calendar/partials/calendar-year-select.vue.d.ts +19 -0
  50. package/dist/lib/components/ui/dates/calendar/use-calendar-locale.d.ts +7 -0
  51. package/dist/lib/components/ui/dates/calendar/use-calendar-selected-hint.d.ts +17 -0
  52. package/dist/lib/components/ui/dates/date-range-field/partials/date-range-day.vue.d.ts +8 -0
  53. package/dist/lib/components/ui/display/cards/cards.gallery.d.ts +3 -3
  54. package/dist/lib/components/ui/display/list-tile/list-tile.vue.d.ts +10 -6
  55. package/dist/lib/components/ui/feedback/alert-dialog/AlertDialogContent.vue.d.ts +2 -2
  56. package/dist/lib/components/ui/feedback/sonner/index.d.ts +1 -0
  57. package/dist/lib/components/ui/feedback/toast/toast.d.ts +7 -0
  58. package/dist/lib/components/ui/feedback/toast/toast.vue.d.ts +18 -2
  59. package/dist/lib/components/ui/fields/contacts/consts.d.ts +1 -1
  60. package/dist/lib/components/ui/forms/use-field-blur.d.ts +3 -0
  61. package/dist/lib/components/ui/layout/app-shell/activity-content.vue.d.ts +9 -3
  62. package/dist/lib/components/ui/layout/app-shell/activity-layout.vue.d.ts +21 -4
  63. package/dist/lib/components/ui/layout/app-shell/app-header.vue.d.ts +7 -5
  64. package/dist/lib/components/ui/layout/app-shell/app-sidebar.vue.d.ts +4 -1
  65. package/dist/lib/components/ui/layout/app-shell/index.d.ts +2 -2
  66. package/dist/lib/components/ui/layout/app-shell/router-menu-link.d.ts +7 -0
  67. package/dist/lib/components/ui/layout/app-shell/types.d.ts +8 -0
  68. package/dist/lib/components/ui/layout/app-shell/use-content-scroll.d.ts +13 -0
  69. package/dist/lib/components/ui/layout/app-shell/use-navigation-sheet.d.ts +17 -0
  70. package/dist/lib/components/ui/layout/sidebar/sidebar-context.d.ts +15 -0
  71. package/dist/lib/components/ui/layout/sidebar/sidebar-menu-item.vue.d.ts +13 -4
  72. package/dist/lib/components/ui/media/carousel/carousel-next.vue.d.ts +1 -1
  73. package/dist/lib/components/ui/media/carousel/carousel-previous.vue.d.ts +1 -1
  74. package/dist/lib/components/ui/menu-item-variant.d.ts +4 -4
  75. package/dist/lib/components/ui/overlays/context-menu/ContextMenuContent.vue.d.ts +2 -2
  76. package/dist/lib/components/ui/overlays/dialog/DialogContent.vue.d.ts +2 -2
  77. package/dist/lib/components/ui/overlays/dialog/DialogScrollContent.vue.d.ts +2 -2
  78. package/dist/lib/components/ui/overlays/dialog/use-escape-forward.d.ts +17 -0
  79. package/dist/lib/components/ui/overlays/dialog/use-inert-others.d.ts +17 -0
  80. package/dist/lib/components/ui/overlays/dialog/use-modal-content.d.ts +32 -0
  81. package/dist/lib/components/ui/overlays/drawer/DrawerContent.vue.d.ts +2 -2
  82. package/dist/lib/components/ui/overlays/dropdown-menu/DropdownMenu.vue.d.ts +3 -1
  83. package/dist/lib/components/ui/overlays/dropdown-menu/DropdownMenuContent.vue.d.ts +2 -2
  84. package/dist/lib/components/ui/overlays/popover/PopoverContent.vue.d.ts +2 -2
  85. package/dist/lib/components/ui/overlays/sheet/SheetContent.vue.d.ts +2 -2
  86. package/dist/lib/components/ui/primitives/card/CardTitle.vue.d.ts +11 -4
  87. package/dist/lib/components/ui/primitives/card/index.d.ts +1 -0
  88. package/dist/lib/components/ui/primitives/toggle/Toggle.vue.d.ts +1 -1
  89. package/dist/lib/components/ui/primitives/toggle/index.d.ts +1 -1
  90. package/dist/lib/components/ui/selection/autocomplete/partials/autocomplete-box.vue.d.ts +2 -0
  91. package/dist/lib/components/ui/selection/select/SelectContent.vue.d.ts +2 -2
  92. package/dist/lib/components/ui/selection/select-chip-field/select-chip-field.vue.d.ts +1 -0
  93. package/dist/lib/i18n/resources/en/en.d.ts +9 -0
  94. package/dist/lib/i18n/resources/en/material.json.d.ts +13 -4
  95. package/dist/lib/i18n/resources/fr/fr.d.ts +9 -0
  96. package/dist/lib/i18n/resources/fr/material.json.d.ts +13 -4
  97. package/dist/lib/i18n/resources/resources.d.ts +18 -0
  98. package/dist/lib/i18n/translator.d.ts +1 -1
  99. package/dist/lib/lib/field-name-attribute.d.ts +7 -0
  100. package/dist/lib/lib/focus-field.d.ts +17 -0
  101. package/dist/lib/lib/index.d.ts +1 -0
  102. package/dist/lib.js +76 -74
  103. package/dist/main.js +13 -13
  104. package/dist/map.js +4 -4
  105. package/dist/material-vue.css +1 -1
  106. package/dist/{pdf-outline-sidebar-D3vq2qfS.js → pdf-outline-sidebar-ChjAXoUX.js} +2 -2
  107. package/dist/{pdf-page-BrJbyjQj.js → pdf-page-D4OTPcpF.js} +1 -1
  108. package/dist/{pdf-page-list-BCgYEszV.js → pdf-page-list-CFgKYLur.js} +2 -2
  109. package/dist/{pdf-reader-BAzevSJU.js → pdf-reader-B1hw81cG.js} +9 -9
  110. package/dist/{pdf-sidebar-DSh2Mend.js → pdf-sidebar-Do5HzrDq.js} +3 -3
  111. package/dist/{pdf-thumbnail-sidebar-D_EMcbKF.js → pdf-thumbnail-sidebar-CMge0C9-.js} +3 -3
  112. package/dist/{pdf-toolbar-BcL7HlfS.js → pdf-toolbar-BBio9baU.js} +5 -5
  113. package/dist/pdf.js +2 -2
  114. package/dist/{sortable-provider-DMpmM7Ke.js → sortable-provider-DMVbbmUU.js} +2 -2
  115. package/dist/{stored-language-Bxhsx4iB.js → stored-language-AJpwOMsA.js} +26 -8
  116. package/dist/{stx-player-MldK_ZAZ.js → stx-player-gtyStl7e.js} +2 -2
  117. package/dist/styles.css +10 -368
  118. package/dist/{translator-CLI_7Crg.js → translator-D2_swsMz.js} +1 -1
  119. package/dist/{use-heading-spy-VPuFj2Gt.js → use-heading-spy-BbEbAfPK.js} +19 -19
  120. package/dist/use-inert-others-CtGqZKR8.js +22 -0
  121. package/dist/{use-material-translation-CONqD9wJ.js → use-material-translation-BHtgyMz3.js} +3 -3
  122. package/docs/components/buttons-and-actions.md +71 -16
  123. package/docs/components/data-display.md +12 -1
  124. package/docs/components/data-table-filter-and-lists.md +85 -5
  125. package/docs/components/date-and-time.md +25 -1
  126. package/docs/components/feedback-and-status.md +86 -11
  127. package/docs/components/form-fields.md +13 -4
  128. package/docs/components/media-and-files.md +7 -0
  129. package/docs/components/navigation-and-layout.md +19 -1
  130. package/docs/components/overlays-and-menus.md +20 -4
  131. package/docs/components/primitives.md +16 -2
  132. package/docs/components/selection-and-choice.md +12 -1
  133. package/docs/getting-started.md +2 -2
  134. package/docs/guides/app-shell.md +102 -6
  135. package/docs/guides/forms.md +58 -5
  136. package/docs/guides/helpers.md +2 -1
  137. package/docs/guides/i18n.md +5 -2
  138. package/docs/guides/ssr.md +1 -1
  139. package/docs/guides/theming.md +134 -6
  140. package/docs/previews/data-display-description.webp +0 -0
  141. package/docs/previews/feedback-status-toast.webp +0 -0
  142. package/docs/roadmap.md +21 -0
  143. package/docs/troubleshooting.md +854 -12
  144. package/lib/components/base-content.css +139 -0
  145. package/lib/components/base.css +150 -0
  146. package/lib/components/components.css +2 -0
  147. package/lib/components/reduced-motion.css +56 -0
  148. package/lib/components/theme-tokens.css +116 -0
  149. package/lib/components/ui/actions/button-group/button-group.css +1 -1
  150. package/lib/components/ui/feedback/toast/toast.css +21 -0
  151. package/lib/components/ui/primitives/label/label.css +33 -0
  152. package/lib/styles.css +10 -368
  153. package/package.json +2 -2
  154. package/dist/Button-16J7vTpE.js +0 -665
  155. package/dist/HoverCardTrigger-C41002JS.js +0 -455
  156. package/dist/icon-button-CDdNsZuZ.js +0 -227
@@ -1,27 +1,31 @@
1
1
  import { t as e } from "./utils-CykWQ0iJ.js";
2
- import { createBlock as t, createElementVNode as n, createVNode as r, defineComponent as i, guardReactiveProps as a, mergeProps as o, normalizeProps as s, openBlock as c, renderSlot as l, unref as u, withCtx as d } from "vue";
3
- import { Circle as f } from "@lucide/vue";
4
- import { DropdownMenuContent as p, DropdownMenuItemIndicator as m, DropdownMenuPortal as h, DropdownMenuRadioGroup as g, DropdownMenuRadioItem as _, DropdownMenuRoot as v, DropdownMenuSeparator as y, DropdownMenuTrigger as b, useForwardProps as x, useForwardPropsEmits as S } from "reka-ui";
5
- import { reactiveOmit as C } from "@vueuse/core";
2
+ import { t } from "./use-inert-others-CtGqZKR8.js";
3
+ import { createBlock as n, createElementVNode as r, createVNode as i, defineComponent as a, guardReactiveProps as o, mergeProps as s, normalizeProps as c, openBlock as l, renderSlot as u, unref as d, withCtx as f } from "vue";
4
+ import { Circle as p } from "@lucide/vue";
5
+ import { DropdownMenuContent as m, DropdownMenuItemIndicator as h, DropdownMenuPortal as g, DropdownMenuRadioGroup as _, DropdownMenuRadioItem as v, DropdownMenuRoot as y, DropdownMenuSeparator as b, DropdownMenuTrigger as x, injectDropdownMenuRootContext as S, useForwardProps as C, useForwardPropsEmits as w } from "reka-ui";
6
+ import { reactiveOmit as T } from "@vueuse/core";
6
7
  //#endregion
7
8
  //#region lib/components/ui/overlays/dropdown-menu/DropdownMenu.vue
8
- var w = /* @__PURE__ */ i({
9
+ var E = /* @__PURE__ */ a({
9
10
  __name: "DropdownMenu",
10
11
  props: {
11
12
  defaultOpen: { type: Boolean },
12
13
  open: { type: Boolean },
13
14
  dir: {},
14
- modal: { type: Boolean }
15
+ modal: {
16
+ type: Boolean,
17
+ default: !1
18
+ }
15
19
  },
16
20
  emits: ["update:open"],
17
- setup(e, { emit: n }) {
18
- let r = S(e, n);
19
- return (e, n) => (c(), t(u(v), o({ "data-slot": "dropdown-menu" }, u(r)), {
20
- default: d((t) => [l(e.$slots, "default", s(a(t)))]),
21
+ setup(e, { emit: t }) {
22
+ let r = e, i = w(r, t);
23
+ return (e, t) => (l(), n(d(y), s({ "data-slot": "dropdown-menu" }, d(i), { modal: r.modal }), {
24
+ default: f((t) => [u(e.$slots, "default", c(o(t)))]),
21
25
  _: 3
22
- }, 16));
26
+ }, 16, ["modal"]));
23
27
  }
24
- }), T = /* @__PURE__ */ i({
28
+ }), D = /* @__PURE__ */ a({
25
29
  inheritAttrs: !1,
26
30
  __name: "DropdownMenuContent",
27
31
  props: {
@@ -64,20 +68,23 @@ var w = /* @__PURE__ */ i({
64
68
  "interactOutside",
65
69
  "closeAutoFocus"
66
70
  ],
67
- setup(n, { emit: i }) {
68
- let a = n, s = i, f = S(C(a, "class", "to"), s);
69
- return (i, s) => (c(), t(u(h), { to: n.to }, {
70
- default: d(() => [r(u(p), o({ "data-slot": "dropdown-menu-content" }, {
71
- ...i.$attrs,
72
- ...u(f)
73
- }, { class: u(e)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-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 max-h-(--reka-dropdown-menu-content-available-height) min-w-[8rem] origin-(--reka-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md", a.class) }), {
74
- default: d(() => [l(i.$slots, "default")]),
71
+ setup(r, { emit: a }) {
72
+ let o = r, c = a, p = w(T(o, "class", "to"), c), h = S();
73
+ return t("content", () => h.modal.value && h.open.value), (t, a) => (l(), n(d(g), { to: r.to }, {
74
+ default: f(() => [i(d(m), s({
75
+ ref: "content",
76
+ "data-slot": "dropdown-menu-content"
77
+ }, {
78
+ ...t.$attrs,
79
+ ...d(p)
80
+ }, { class: d(e)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-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 max-h-(--reka-dropdown-menu-content-available-height) min-w-[8rem] origin-(--reka-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md", o.class) }), {
81
+ default: f(() => [u(t.$slots, "default")]),
75
82
  _: 3
76
83
  }, 16, ["class"])]),
77
84
  _: 3
78
85
  }, 8, ["to"]));
79
86
  }
80
- }), E = /* @__PURE__ */ i({
87
+ }), O = /* @__PURE__ */ a({
81
88
  __name: "DropdownMenuRadioGroup",
82
89
  props: {
83
90
  modelValue: {},
@@ -85,14 +92,14 @@ var w = /* @__PURE__ */ i({
85
92
  as: {}
86
93
  },
87
94
  emits: ["update:modelValue"],
88
- setup(e, { emit: n }) {
89
- let r = S(e, n);
90
- return (e, n) => (c(), t(u(g), o({ "data-slot": "dropdown-menu-radio-group" }, u(r)), {
91
- default: d(() => [l(e.$slots, "default")]),
95
+ setup(e, { emit: t }) {
96
+ let r = w(e, t);
97
+ return (e, t) => (l(), n(d(_), s({ "data-slot": "dropdown-menu-radio-group" }, d(r)), {
98
+ default: f(() => [u(e.$slots, "default")]),
92
99
  _: 3
93
100
  }, 16));
94
101
  }
95
- }), D = { class: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center" }, O = /* @__PURE__ */ i({
102
+ }), k = { class: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center" }, A = /* @__PURE__ */ a({
96
103
  __name: "DropdownMenuRadioItem",
97
104
  props: {
98
105
  value: {},
@@ -109,17 +116,17 @@ var w = /* @__PURE__ */ i({
109
116
  ] }
110
117
  },
111
118
  emits: ["select"],
112
- setup(i, { emit: a }) {
113
- let s = i, p = a, h = S(C(s, "class"), p);
114
- return (i, a) => (c(), t(u(_), o({ "data-slot": "dropdown-menu-radio-item" }, u(h), { class: u(e)("focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", s.class) }), {
115
- default: d(() => [n("span", D, [r(u(m), null, {
116
- default: d(() => [l(i.$slots, "indicator-icon", {}, () => [r(u(f), { class: "size-2 fill-current" })])]),
119
+ setup(t, { emit: a }) {
120
+ let o = t, c = a, m = w(T(o, "class"), c);
121
+ return (t, a) => (l(), n(d(v), s({ "data-slot": "dropdown-menu-radio-item" }, d(m), { class: d(e)("focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", o.class) }), {
122
+ default: f(() => [r("span", k, [i(d(h), null, {
123
+ default: f(() => [u(t.$slots, "indicator-icon", {}, () => [i(d(p), { class: "size-2 fill-current" })])]),
117
124
  _: 3
118
- })]), l(i.$slots, "default")]),
125
+ })]), u(t.$slots, "default")]),
119
126
  _: 3
120
127
  }, 16, ["class"]));
121
128
  }
122
- }), k = /* @__PURE__ */ i({
129
+ }), j = /* @__PURE__ */ a({
123
130
  __name: "DropdownMenuSeparator",
124
131
  props: {
125
132
  asChild: { type: Boolean },
@@ -132,11 +139,11 @@ var w = /* @__PURE__ */ i({
132
139
  Array
133
140
  ] }
134
141
  },
135
- setup(n) {
136
- let r = n, i = C(r, "class");
137
- return (n, a) => (c(), t(u(y), o({ "data-slot": "dropdown-menu-separator" }, u(i), { class: u(e)("bg-border -mx-1 my-1 h-px", r.class) }), null, 16, ["class"]));
142
+ setup(t) {
143
+ let r = t, i = T(r, "class");
144
+ return (t, a) => (l(), n(d(b), s({ "data-slot": "dropdown-menu-separator" }, d(i), { class: d(e)("bg-border -mx-1 my-1 h-px", r.class) }), null, 16, ["class"]));
138
145
  }
139
- }), A = /* @__PURE__ */ i({
146
+ }), M = /* @__PURE__ */ a({
140
147
  __name: "DropdownMenuTrigger",
141
148
  props: {
142
149
  disabled: { type: Boolean },
@@ -144,12 +151,12 @@ var w = /* @__PURE__ */ i({
144
151
  as: {}
145
152
  },
146
153
  setup(e) {
147
- let n = x(e);
148
- return (e, r) => (c(), t(u(b), o({ "data-slot": "dropdown-menu-trigger" }, u(n)), {
149
- default: d(() => [l(e.$slots, "default")]),
154
+ let t = C(e);
155
+ return (e, r) => (l(), n(d(x), s({ "data-slot": "dropdown-menu-trigger" }, d(t)), {
156
+ default: f(() => [u(e.$slots, "default")]),
150
157
  _: 3
151
158
  }, 16));
152
159
  }
153
160
  });
154
161
  //#endregion
155
- export { T as a, E as i, k as n, w as o, O as r, A as t };
162
+ export { D as a, O as i, j as n, E as o, A as r, M as t };
@@ -0,0 +1,510 @@
1
+ import { t as e } from "./utils-CykWQ0iJ.js";
2
+ import { t } from "./use-material-translation-BHtgyMz3.js";
3
+ import { t as n } from "./Button-DEUkxkrJ.js";
4
+ import { t as r } from "./use-inert-others-CtGqZKR8.js";
5
+ import { t as i } from "./field-name-attribute-Bl7LSVK0.js";
6
+ import { computed as a, createBlock as o, createCommentVNode as s, createElementBlock as c, createElementVNode as l, createTextVNode as u, createVNode as d, defineComponent as f, getCurrentInstance as p, guardReactiveProps as m, isRef as h, mergeProps as g, normalizeClass as _, normalizeProps as v, onMounted as ee, onUpdated as y, openBlock as b, renderSlot as x, toDisplayString as S, unref as C, useAttrs as w, useId as T, useTemplateRef as E, vModelText as D, withCtx as O, withDirectives as k } from "vue";
7
+ import { X as A } from "@lucide/vue";
8
+ import { DialogClose as j, DialogContent as te, DialogDescription as ne, DialogOverlay as re, DialogPortal as ie, DialogRoot as ae, DialogTitle as oe, DialogTrigger as se, HoverCardContent as M, HoverCardPortal as N, HoverCardRoot as P, HoverCardTrigger as F, Label as I, injectDialogRootContext as L, useForwardProps as R, useForwardPropsEmits as z } from "reka-ui";
9
+ import { defaultDocument as B, reactiveOmit as V, tryOnScopeDispose as H, unrefElement as U, useEventListener as W, useVModel as G } from "@vueuse/core";
10
+ import { forwardEscape as K } from "@nxgt/material-core/escape-forward";
11
+ import { describedBy as ce } from "@nxgt/material-core/described-by";
12
+ import { layerOf as q, openerOf as le } from "@nxgt/material-core/field-blur-layers";
13
+ //#endregion
14
+ //#region lib/components/ui/primitives/helper-text/helper-text.vue
15
+ var J = /* @__PURE__ */ f({
16
+ __name: "helper-text",
17
+ props: {
18
+ error: { type: Boolean },
19
+ class: { type: [
20
+ Boolean,
21
+ null,
22
+ String,
23
+ Object,
24
+ Array
25
+ ] }
26
+ },
27
+ setup(t) {
28
+ let n = t;
29
+ return (r, i) => (b(), c("div", {
30
+ "data-slot": "helper-text",
31
+ "data-test": "typography",
32
+ class: _(C(e)("overflow-auto in-[[data-state=selected]]:text-primary-foreground text-[10px] text-muted-foreground flex pl-0.5 truncate text-wrap", { "text-error-text": t.error }, n.class))
33
+ }, [x(r.$slots, "default")], 2));
34
+ }
35
+ }), ue = {
36
+ key: 0,
37
+ "data-slot": "label-text",
38
+ "data-required": "",
39
+ class: "inline-flex"
40
+ }, Y = /* @__PURE__ */ f({
41
+ __name: "Label",
42
+ props: {
43
+ for: {},
44
+ asChild: { type: Boolean },
45
+ as: {},
46
+ class: { type: [
47
+ Boolean,
48
+ null,
49
+ String,
50
+ Object,
51
+ Array
52
+ ] },
53
+ withAsterisk: { type: Boolean }
54
+ },
55
+ setup(t) {
56
+ let n = t, r = V(n, "class", "withAsterisk");
57
+ return (i, a) => (b(), o(C(I), g({ "data-slot": "label" }, C(r), { class: C(e)("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50", n.class) }), {
58
+ default: O(() => [t.withAsterisk ? (b(), c("span", ue, [x(i.$slots, "default")])) : x(i.$slots, "default", {}, void 0, void 0, 1)]),
59
+ _: 3
60
+ }, 16, ["class"]));
61
+ }
62
+ });
63
+ //#endregion
64
+ //#region lib/components/ui/overlays/dialog/use-escape-forward.ts
65
+ function de(e = E("content")) {
66
+ return (t) => {
67
+ let n = U(e);
68
+ K(n instanceof HTMLElement ? n : null, t);
69
+ };
70
+ }
71
+ //#endregion
72
+ //#region lib/components/ui/overlays/dialog/use-modal-content.ts
73
+ function X(e) {
74
+ let t = e;
75
+ if (!t) {
76
+ let e = L();
77
+ t = () => e.modal.value && e.open.value;
78
+ }
79
+ let n = E("content");
80
+ return r(n, t), {
81
+ onEscapeKeyDown: de(n),
82
+ keepToaster: fe
83
+ };
84
+ }
85
+ function fe(e) {
86
+ let t = e.target;
87
+ t instanceof Element && t.closest("[data-sonner-toaster]") && e.preventDefault();
88
+ }
89
+ //#endregion
90
+ //#region lib/components/ui/overlays/dialog/Dialog.vue
91
+ var pe = /* @__PURE__ */ f({
92
+ __name: "Dialog",
93
+ props: {
94
+ open: { type: Boolean },
95
+ defaultOpen: { type: Boolean },
96
+ modal: { type: Boolean },
97
+ unmountOnHide: { type: Boolean }
98
+ },
99
+ emits: ["update:open"],
100
+ setup(e, { emit: t }) {
101
+ let n = z(e, t);
102
+ return (e, t) => (b(), o(C(ae), g({ "data-slot": "dialog" }, C(n)), {
103
+ default: O((t) => [x(e.$slots, "default", v(m(t)))]),
104
+ _: 3
105
+ }, 16));
106
+ }
107
+ }), Z = /* @__PURE__ */ f({
108
+ __name: "DialogOverlay",
109
+ props: {
110
+ forceMount: { type: Boolean },
111
+ asChild: { type: Boolean },
112
+ as: {},
113
+ class: { type: [
114
+ Boolean,
115
+ null,
116
+ String,
117
+ Object,
118
+ Array
119
+ ] }
120
+ },
121
+ setup(t) {
122
+ let n = t, r = V(n, "class");
123
+ return (t, i) => (b(), o(C(re), g({ "data-slot": "dialog-overlay" }, C(r), { class: C(e)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/80", n.class) }), {
124
+ default: O(() => [x(t.$slots, "default")]),
125
+ _: 3
126
+ }, 16, ["class"]));
127
+ }
128
+ }), me = { class: "sr-only" }, he = /* @__PURE__ */ f({
129
+ inheritAttrs: !1,
130
+ __name: "DialogContent",
131
+ props: {
132
+ forceMount: { type: Boolean },
133
+ disableOutsidePointerEvents: { type: Boolean },
134
+ asChild: { type: Boolean },
135
+ as: {},
136
+ class: { type: [
137
+ Boolean,
138
+ null,
139
+ String,
140
+ Object,
141
+ Array
142
+ ] },
143
+ showCloseButton: {
144
+ type: Boolean,
145
+ default: !0
146
+ }
147
+ },
148
+ emits: [
149
+ "escapeKeyDown",
150
+ "pointerDownOutside",
151
+ "focusOutside",
152
+ "interactOutside",
153
+ "openAutoFocus",
154
+ "closeAutoFocus"
155
+ ],
156
+ setup(n, { emit: r }) {
157
+ let i = n, a = r, c = z(V(i, "class"), a), u = X(), { t: f } = t();
158
+ return (t, r) => (b(), o(C(ie), null, {
159
+ default: O(() => [d(Z), d(C(te), g({
160
+ ref: "content",
161
+ "data-slot": "dialog-content"
162
+ }, {
163
+ ...t.$attrs,
164
+ ...C(c)
165
+ }, {
166
+ onEscapeKeyDown: C(u).onEscapeKeyDown,
167
+ onPointerDownOutside: C(u).keepToaster,
168
+ onFocusOutside: C(u).keepToaster,
169
+ onInteractOutside: C(u).keepToaster,
170
+ class: C(e)("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg", i.class)
171
+ }), {
172
+ default: O(() => [x(t.$slots, "default"), n.showCloseButton ? (b(), o(C(j), {
173
+ key: 0,
174
+ "data-slot": "dialog-close",
175
+ class: "ring-offset-background focus:ring-ring absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4"
176
+ }, {
177
+ default: O(() => [d(C(A)), l("span", me, S(C(f)("material.buttons.close", "Close")), 1)]),
178
+ _: 1
179
+ })) : s("", !0)]),
180
+ _: 3
181
+ }, 16, [
182
+ "onEscapeKeyDown",
183
+ "onPointerDownOutside",
184
+ "onFocusOutside",
185
+ "onInteractOutside",
186
+ "class"
187
+ ])]),
188
+ _: 3
189
+ }));
190
+ }
191
+ }), ge = /* @__PURE__ */ f({
192
+ __name: "DialogDescription",
193
+ props: {
194
+ asChild: { type: Boolean },
195
+ as: {},
196
+ class: { type: [
197
+ Boolean,
198
+ null,
199
+ String,
200
+ Object,
201
+ Array
202
+ ] }
203
+ },
204
+ setup(t) {
205
+ let n = t, r = R(V(n, "class"));
206
+ return (t, i) => (b(), o(C(ne), g({ "data-slot": "dialog-description" }, C(r), { class: C(e)("text-muted-foreground text-sm", n.class) }), {
207
+ default: O(() => [x(t.$slots, "default")]),
208
+ _: 3
209
+ }, 16, ["class"]));
210
+ }
211
+ }), _e = /* @__PURE__ */ f({
212
+ __name: "DialogFooter",
213
+ props: {
214
+ class: { type: [
215
+ Boolean,
216
+ null,
217
+ String,
218
+ Object,
219
+ Array
220
+ ] },
221
+ showCloseButton: {
222
+ type: Boolean,
223
+ default: !1
224
+ }
225
+ },
226
+ setup(r) {
227
+ let i = r, { t: a } = t();
228
+ return (t, l) => (b(), c("div", {
229
+ "data-slot": "dialog-footer",
230
+ class: _(C(e)("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end", i.class))
231
+ }, [x(t.$slots, "default"), r.showCloseButton ? (b(), o(C(j), {
232
+ key: 0,
233
+ "as-child": ""
234
+ }, {
235
+ default: O(() => [d(C(n), { variant: "outlined" }, {
236
+ default: O(() => [u(S(C(a)("material.buttons.close", "Close")), 1)]),
237
+ _: 1
238
+ })]),
239
+ _: 1
240
+ })) : s("", !0)], 2));
241
+ }
242
+ }), ve = /* @__PURE__ */ f({
243
+ __name: "DialogTitle",
244
+ props: {
245
+ asChild: { type: Boolean },
246
+ as: {},
247
+ class: { type: [
248
+ Boolean,
249
+ null,
250
+ String,
251
+ Object,
252
+ Array
253
+ ] }
254
+ },
255
+ setup(t) {
256
+ let n = t, r = R(V(n, "class"));
257
+ return (t, i) => (b(), o(C(oe), g({ "data-slot": "dialog-title" }, C(r), { class: C(e)("text-lg leading-none font-semibold", n.class) }), {
258
+ default: O(() => [x(t.$slots, "default")]),
259
+ _: 3
260
+ }, 16, ["class"]));
261
+ }
262
+ }), ye = /* @__PURE__ */ f({
263
+ __name: "DialogTrigger",
264
+ props: {
265
+ asChild: { type: Boolean },
266
+ as: {}
267
+ },
268
+ setup(e) {
269
+ let t = e;
270
+ return (e, n) => (b(), o(C(se), g({ "data-slot": "dialog-trigger" }, t), {
271
+ default: O(() => [x(e.$slots, "default")]),
272
+ _: 3
273
+ }, 16));
274
+ }
275
+ }), be = ["data-slot"], Q = /* @__PURE__ */ f({
276
+ __name: "Input",
277
+ props: {
278
+ defaultValue: {},
279
+ modelValue: {},
280
+ class: { type: [
281
+ Boolean,
282
+ null,
283
+ String,
284
+ Object,
285
+ Array
286
+ ] }
287
+ },
288
+ emits: ["update:modelValue"],
289
+ setup(t, { emit: n }) {
290
+ let r = t, i = G(r, "modelValue", n, {
291
+ passive: !0,
292
+ defaultValue: r.defaultValue
293
+ });
294
+ return (t, n) => k((b(), c("input", {
295
+ "onUpdate:modelValue": n[0] ||= (e) => h(i) ? i.value = e : null,
296
+ "data-slot": t.$attrs["data-slot"] ?? "input",
297
+ class: _(C(e)("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-3", "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", r.class))
298
+ }, null, 10, be)), [[D, C(i)]]);
299
+ }
300
+ }), $ = /* @__PURE__ */ f({
301
+ inheritAttrs: !1,
302
+ __name: "text-field",
303
+ props: {
304
+ label: {},
305
+ helperText: {},
306
+ error: { type: Boolean },
307
+ required: { type: Boolean },
308
+ disabled: { type: Boolean },
309
+ id: {},
310
+ name: {},
311
+ placeholder: {},
312
+ type: {},
313
+ modelValue: {},
314
+ class: { type: [
315
+ Boolean,
316
+ null,
317
+ String,
318
+ Object,
319
+ Array
320
+ ] }
321
+ },
322
+ emits: ["update:modelValue"],
323
+ setup(t, { emit: n }) {
324
+ let r = t, i = n, f = T(), p = () => r.id ?? f, m = w(), h = T(), v = a(() => ce(m["aria-describedby"], !!r.helperText && h));
325
+ return (n, a) => (b(), c("div", {
326
+ "data-slot": "text-field",
327
+ class: _(C(e)("grid w-full gap-1.5", r.class))
328
+ }, [
329
+ t.label ? (b(), o(Y, {
330
+ key: 0,
331
+ "with-asterisk": t.required,
332
+ for: p()
333
+ }, {
334
+ default: O(() => [u(S(t.label), 1)]),
335
+ _: 1
336
+ }, 8, ["with-asterisk", "for"])) : s("", !0),
337
+ l("div", { class: _(C(e)("relative", {
338
+ "*:first:size-8 *:first:absolute *:first:top-[calc(50%-16px)] *:first:left-1.5 [&_input]:pl-10 *:first:bg-muted/80 *:first:text-muted-foreground": !!n.$slots.leading,
339
+ "*:last:size-8 *:last:absolute *:last:top-[calc(50%-16px)] *:last:right-1.5 [&_input]:pr-10 *:last:bg-muted/80 *:last:text-muted-foreground": !!n.$slots.trailing
340
+ })) }, [
341
+ x(n.$slots, "leading"),
342
+ d(Q, g({ id: p() }, n.$attrs, {
343
+ name: t.name,
344
+ type: t.type,
345
+ placeholder: t.placeholder,
346
+ disabled: t.disabled,
347
+ required: t.required,
348
+ "model-value": t.modelValue,
349
+ "aria-invalid": t.error || void 0,
350
+ "aria-describedby": v.value,
351
+ class: "transition-all hover:border-primary hover:ring-[2px] hover:ring-primary/25",
352
+ "onUpdate:modelValue": a[0] ||= (e) => i("update:modelValue", e)
353
+ }), null, 16, [
354
+ "id",
355
+ "name",
356
+ "type",
357
+ "placeholder",
358
+ "disabled",
359
+ "required",
360
+ "model-value",
361
+ "aria-invalid",
362
+ "aria-describedby"
363
+ ]),
364
+ x(n.$slots, "trailing")
365
+ ], 2),
366
+ t.helperText ? (b(), o(J, {
367
+ key: 1,
368
+ id: C(h),
369
+ error: t.error
370
+ }, {
371
+ default: O(() => [u(S(t.helperText), 1)]),
372
+ _: 1
373
+ }, 8, ["id", "error"])) : s("", !0)
374
+ ], 2));
375
+ }
376
+ });
377
+ //#endregion
378
+ //#region lib/components/ui/forms/use-field-blur.ts
379
+ function xe(e) {
380
+ return e ? e instanceof Element ? e : e instanceof CharacterData ? e.nextElementSibling : null : null;
381
+ }
382
+ function Se(e, t = "root") {
383
+ let n = E(t), r = !1, a = /* @__PURE__ */ new Set(), o = /* @__PURE__ */ new Set(), s, c = () => {
384
+ let e = n.value;
385
+ return xe(e instanceof Node ? e : e?.$el);
386
+ };
387
+ function l(t) {
388
+ r = !1, e(t, !0);
389
+ }
390
+ function u(e) {
391
+ let t = c(), n = e.target;
392
+ if (!(!t || !(n instanceof Node))) {
393
+ if (clearTimeout(s), t.contains(n)) {
394
+ r || (a = new Set(t.ownerDocument.body.childNodes), o = /* @__PURE__ */ new Set()), r = !0;
395
+ return;
396
+ }
397
+ r && d(t, q(n)) && l(e);
398
+ }
399
+ }
400
+ function d(e, t) {
401
+ if (t === q(e)) return !0;
402
+ if (!t || o.has(t)) return !1;
403
+ let n = le([e], {
404
+ before: a,
405
+ home: /* @__PURE__ */ new Set([q(e)]),
406
+ opened: o
407
+ }, t);
408
+ return n === "theirs" || !n && a.has(t) ? !0 : (o.add(t), !1);
409
+ }
410
+ function f(e) {
411
+ !r || e.relatedTarget || (clearTimeout(s), s = setTimeout(() => {
412
+ let t = B?.activeElement;
413
+ r && (!t || t === B?.body) && l(e);
414
+ }));
415
+ }
416
+ let m = p(), h = () => {
417
+ let e = m?.props.name;
418
+ typeof e == "string" && c()?.setAttribute(i, e);
419
+ };
420
+ ee(h), y(h);
421
+ let g = {
422
+ capture: !0,
423
+ passive: !0
424
+ };
425
+ W(B, "focusin", u, g), W(B, "focusout", f, g), H(() => clearTimeout(s));
426
+ }
427
+ //#endregion
428
+ //#region lib/components/ui/overlays/hover-card/HoverCard.vue
429
+ var Ce = /* @__PURE__ */ f({
430
+ __name: "HoverCard",
431
+ props: {
432
+ defaultOpen: { type: Boolean },
433
+ open: { type: Boolean },
434
+ openDelay: {},
435
+ closeDelay: {},
436
+ enableTouch: { type: Boolean }
437
+ },
438
+ emits: ["update:open"],
439
+ setup(e, { emit: t }) {
440
+ let n = z(e, t);
441
+ return (e, t) => (b(), o(C(P), g({ "data-slot": "hover-card" }, C(n)), {
442
+ default: O((t) => [x(e.$slots, "default", v(m(t)))]),
443
+ _: 3
444
+ }, 16));
445
+ }
446
+ }), we = /* @__PURE__ */ f({
447
+ inheritAttrs: !1,
448
+ __name: "HoverCardContent",
449
+ props: {
450
+ forceMount: { type: Boolean },
451
+ memoDependencies: {},
452
+ side: {},
453
+ sideOffset: { default: 4 },
454
+ sideFlip: { type: Boolean },
455
+ align: {},
456
+ alignOffset: {},
457
+ alignFlip: { type: Boolean },
458
+ avoidCollisions: { type: Boolean },
459
+ collisionBoundary: {},
460
+ collisionPadding: {},
461
+ arrowPadding: {},
462
+ hideShiftedArrow: { type: Boolean },
463
+ sticky: {},
464
+ hideWhenDetached: { type: Boolean },
465
+ positionStrategy: {},
466
+ updatePositionStrategy: {},
467
+ disableUpdateOnLayoutShift: { type: Boolean },
468
+ prioritizePosition: { type: Boolean },
469
+ reference: {},
470
+ dir: {},
471
+ asChild: { type: Boolean },
472
+ as: {},
473
+ class: { type: [
474
+ Boolean,
475
+ null,
476
+ String,
477
+ Object,
478
+ Array
479
+ ] }
480
+ },
481
+ setup(t) {
482
+ let n = t, r = R(V(n, "class"));
483
+ return (t, i) => (b(), o(C(N), null, {
484
+ default: O(() => [d(C(M), g({ "data-slot": "hover-card-content" }, {
485
+ ...t.$attrs,
486
+ ...C(r)
487
+ }, { class: C(e)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-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-64 rounded-md border p-4 shadow-md outline-hidden", n.class) }), {
488
+ default: O(() => [x(t.$slots, "default")]),
489
+ _: 3
490
+ }, 16, ["class"])]),
491
+ _: 3
492
+ }));
493
+ }
494
+ }), Te = /* @__PURE__ */ f({
495
+ __name: "HoverCardTrigger",
496
+ props: {
497
+ reference: {},
498
+ asChild: { type: Boolean },
499
+ as: {}
500
+ },
501
+ setup(e) {
502
+ let t = e;
503
+ return (e, n) => (b(), o(C(F), g({ "data-slot": "hover-card-trigger" }, t), {
504
+ default: O(() => [x(e.$slots, "default")]),
505
+ _: 3
506
+ }, 16));
507
+ }
508
+ });
509
+ //#endregion
510
+ export { $ as a, ve as c, he as d, Z as f, J as g, Y as h, Se as i, _e as l, X as m, we as n, Q as o, pe as p, Ce as r, ye as s, Te as t, ge as u };
@@ -1,8 +1,8 @@
1
1
  import { t as e } from "./utils-CykWQ0iJ.js";
2
- import { gr as t, mr as n, pr as r } from "./components-CCWod7cJ.js";
3
- import { t as i } from "./use-material-translation-CONqD9wJ.js";
4
- import { t as a } from "./Button-16J7vTpE.js";
5
- import { t as o } from "./icon-button-CDdNsZuZ.js";
2
+ import { gr as t, mr as n, pr as r } from "./components-BZ1XAK37.js";
3
+ import { t as i } from "./use-material-translation-BHtgyMz3.js";
4
+ import { t as a } from "./Button-DEUkxkrJ.js";
5
+ import { t as o } from "./icon-button-jHB4MhQ5.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