@nxgt/material-vue 0.26.1 → 0.28.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 (168) hide show
  1. package/CHANGELOG.md +202 -0
  2. package/README.md +10 -7
  3. package/dist/Button-D1uzdbOJ.js +728 -0
  4. package/dist/{DropdownMenuTrigger-BHAhXGUO.js → DropdownMenuTrigger-BsuyNVzV.js} +48 -41
  5. package/dist/HoverCardTrigger-DaM5d4hE.js +510 -0
  6. package/dist/{camera-DvKuqT4L.js → camera-CxXijySa.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-Db9OdMfQ.js} +19053 -18364
  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-BILi3ke-.js} +1 -1
  21. package/dist/{i18n-provider-CaaZCmaR.js → i18n-provider-BPK68eqM.js} +1 -1
  22. package/dist/i18n.js +4 -4
  23. package/dist/icon-button-D60G5B_Z.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/tabs/Tabs.vue.d.ts +6 -2
  89. package/dist/lib/components/ui/primitives/tabs/TabsList.vue.d.ts +2 -2
  90. package/dist/lib/components/ui/primitives/tabs/TabsTrigger.vue.d.ts +6 -4
  91. package/dist/lib/components/ui/primitives/tabs/tabs-classes.d.ts +27 -0
  92. package/dist/lib/components/ui/primitives/tabs/tabs-indicator.vue.d.ts +25 -0
  93. package/dist/lib/components/ui/primitives/tabs/tabs-variant.d.ts +5 -8
  94. package/dist/lib/components/ui/primitives/toggle/Toggle.vue.d.ts +1 -1
  95. package/dist/lib/components/ui/primitives/toggle/index.d.ts +1 -1
  96. package/dist/lib/components/ui/selection/autocomplete/partials/autocomplete-box.vue.d.ts +2 -0
  97. package/dist/lib/components/ui/selection/select/SelectContent.vue.d.ts +2 -2
  98. package/dist/lib/components/ui/selection/select-chip-field/select-chip-field.vue.d.ts +1 -0
  99. package/dist/lib/components/ui/widgets/emoji/types.d.ts +1 -6
  100. package/dist/lib/i18n/resources/en/en.d.ts +23 -0
  101. package/dist/lib/i18n/resources/en/material.json.d.ts +28 -5
  102. package/dist/lib/i18n/resources/fr/fr.d.ts +23 -0
  103. package/dist/lib/i18n/resources/fr/material.json.d.ts +28 -5
  104. package/dist/lib/i18n/resources/resources.d.ts +46 -0
  105. package/dist/lib/i18n/translator.d.ts +1 -1
  106. package/dist/lib/lib/field-name-attribute.d.ts +7 -0
  107. package/dist/lib/lib/focus-field.d.ts +17 -0
  108. package/dist/lib/lib/index.d.ts +1 -0
  109. package/dist/lib.js +76 -74
  110. package/dist/main.js +13 -13
  111. package/dist/map.js +4 -4
  112. package/dist/material-vue.css +1 -1
  113. package/dist/{pdf-outline-sidebar-D3vq2qfS.js → pdf-outline-sidebar-BXGTDISI.js} +2 -2
  114. package/dist/{pdf-page-BrJbyjQj.js → pdf-page-BR4G03kN.js} +1 -1
  115. package/dist/{pdf-page-list-BCgYEszV.js → pdf-page-list-bjQm6_kf.js} +2 -2
  116. package/dist/{pdf-reader-BAzevSJU.js → pdf-reader-DGVEFNc0.js} +9 -9
  117. package/dist/{pdf-sidebar-DSh2Mend.js → pdf-sidebar-CiM6dwAm.js} +3 -3
  118. package/dist/{pdf-thumbnail-sidebar-D_EMcbKF.js → pdf-thumbnail-sidebar-fM3DGJzD.js} +3 -3
  119. package/dist/{pdf-toolbar-BcL7HlfS.js → pdf-toolbar-mWlGTWU1.js} +5 -5
  120. package/dist/pdf.js +2 -2
  121. package/dist/{sortable-provider-DMpmM7Ke.js → sortable-provider-Dml11nQY.js} +2 -2
  122. package/dist/{stored-language-Bxhsx4iB.js → stored-language-UnInBB6T.js} +56 -10
  123. package/dist/{stx-player-MldK_ZAZ.js → stx-player-BS7-CXFx.js} +2 -2
  124. package/dist/styles.css +10 -368
  125. package/dist/{translator-CLI_7Crg.js → translator-J3_vaV_A.js} +1 -1
  126. package/dist/{use-heading-spy-VPuFj2Gt.js → use-heading-spy-_dk8kGwL.js} +19 -19
  127. package/dist/use-inert-others-CtGqZKR8.js +22 -0
  128. package/dist/{use-material-translation-CONqD9wJ.js → use-material-translation-Do6ztdtV.js} +3 -3
  129. package/docs/components/buttons-and-actions.md +71 -16
  130. package/docs/components/data-display.md +13 -2
  131. package/docs/components/data-table-filter-and-lists.md +85 -5
  132. package/docs/components/date-and-time.md +25 -1
  133. package/docs/components/feedback-and-status.md +86 -11
  134. package/docs/components/form-fields.md +13 -4
  135. package/docs/components/media-and-files.md +7 -0
  136. package/docs/components/navigation-and-layout.md +19 -1
  137. package/docs/components/overlays-and-menus.md +20 -4
  138. package/docs/components/primitives.md +97 -20
  139. package/docs/components/rich-widgets.md +10 -0
  140. package/docs/components/selection-and-choice.md +12 -1
  141. package/docs/getting-started.md +2 -2
  142. package/docs/guides/app-shell.md +102 -6
  143. package/docs/guides/forms.md +58 -5
  144. package/docs/guides/helpers.md +2 -1
  145. package/docs/guides/i18n.md +24 -4
  146. package/docs/guides/ssr.md +1 -1
  147. package/docs/guides/theming.md +148 -6
  148. package/docs/previews/data-display-codegroup.webp +0 -0
  149. package/docs/previews/data-display-description.webp +0 -0
  150. package/docs/previews/feedback-status-toast.webp +0 -0
  151. package/docs/previews/primitives-tabs.webp +0 -0
  152. package/docs/previews/rich-widgets-emojipicker.webp +0 -0
  153. package/docs/roadmap.md +30 -1
  154. package/docs/troubleshooting.md +889 -12
  155. package/lib/components/base-content.css +139 -0
  156. package/lib/components/base.css +150 -0
  157. package/lib/components/components.css +2 -0
  158. package/lib/components/reduced-motion.css +56 -0
  159. package/lib/components/theme-tokens.css +116 -0
  160. package/lib/components/ui/actions/button-group/button-group.css +1 -1
  161. package/lib/components/ui/feedback/toast/toast.css +21 -0
  162. package/lib/components/ui/primitives/label/label.css +33 -0
  163. package/lib/styles.css +10 -368
  164. package/package.json +2 -2
  165. package/dist/Button-16J7vTpE.js +0 -665
  166. package/dist/HoverCardTrigger-C41002JS.js +0 -455
  167. package/dist/icon-button-CDdNsZuZ.js +0 -227
  168. package/dist/lib/components/ui/widgets/emoji/emoji.groups.d.ts +0 -6
@@ -1,455 +0,0 @@
1
- import { t as e } from "./utils-CykWQ0iJ.js";
2
- import { t } from "./use-material-translation-CONqD9wJ.js";
3
- import { t as n } from "./Button-16J7vTpE.js";
4
- import { createBlock as r, createCommentVNode as i, createElementBlock as a, createElementVNode as o, createTextVNode as s, createVNode as c, defineComponent as l, guardReactiveProps as u, isRef as d, mergeProps as f, normalizeClass as p, normalizeProps as m, openBlock as h, renderSlot as g, toDisplayString as _, unref as v, useId as y, useTemplateRef as b, vModelText as x, withCtx as S, withDirectives as C } from "vue";
5
- import { X as w } from "@lucide/vue";
6
- import { DialogClose as T, DialogContent as E, DialogDescription as D, DialogOverlay as O, DialogPortal as k, DialogRoot as ee, DialogTitle as te, DialogTrigger as A, HoverCardContent as j, HoverCardPortal as M, HoverCardRoot as N, HoverCardTrigger as P, Label as F, useForwardProps as I, useForwardPropsEmits as L } from "reka-ui";
7
- import { defaultDocument as R, reactiveOmit as z, tryOnScopeDispose as B, useEventListener as V, useVModel as H } from "@vueuse/core";
8
- import { layerOf as U, openerOf as W } from "@nxgt/material-core/field-blur-layers";
9
- //#endregion
10
- //#region lib/components/ui/primitives/helper-text/helper-text.vue
11
- var G = /* @__PURE__ */ l({
12
- __name: "helper-text",
13
- props: {
14
- error: { type: Boolean },
15
- class: { type: [
16
- Boolean,
17
- null,
18
- String,
19
- Object,
20
- Array
21
- ] }
22
- },
23
- setup(t) {
24
- let n = t;
25
- return (r, i) => (h(), a("div", {
26
- "data-slot": "helper-text",
27
- "data-test": "typogaphy",
28
- class: p(v(e)("overflow-auto in-[[data-state=selected]]:text-primary-foreground text-[10px] text-muted-foreground flex pl-0.5 truncate text-wrap", { "text-error": t.error }, n.class))
29
- }, [g(r.$slots, "default")], 2));
30
- }
31
- }), ne = {
32
- key: 0,
33
- class: "inline-flex"
34
- }, K = /* @__PURE__ */ l({
35
- __name: "Label",
36
- props: {
37
- for: {},
38
- asChild: { type: Boolean },
39
- as: {},
40
- class: { type: [
41
- Boolean,
42
- null,
43
- String,
44
- Object,
45
- Array
46
- ] },
47
- withAsterisk: { type: Boolean }
48
- },
49
- setup(t) {
50
- let n = t, i = z(n, "class", "withAsterisk");
51
- return (s, c) => (h(), r(v(F), f({ "data-slot": "label" }, v(i), { class: v(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) }), {
52
- default: S(() => [t.withAsterisk ? (h(), a("span", ne, [g(s.$slots, "default"), c[0] ||= o("span", {
53
- "aria-hidden": "true",
54
- class: "text-error"
55
- }, "*", -1)])) : g(s.$slots, "default", {}, void 0, void 0, 1)]),
56
- _: 3
57
- }, 16, ["class"]));
58
- }
59
- }), q = /* @__PURE__ */ l({
60
- __name: "Dialog",
61
- props: {
62
- open: { type: Boolean },
63
- defaultOpen: { type: Boolean },
64
- modal: { type: Boolean },
65
- unmountOnHide: { type: Boolean }
66
- },
67
- emits: ["update:open"],
68
- setup(e, { emit: t }) {
69
- let n = L(e, t);
70
- return (e, t) => (h(), r(v(ee), f({ "data-slot": "dialog" }, v(n)), {
71
- default: S((t) => [g(e.$slots, "default", m(u(t)))]),
72
- _: 3
73
- }, 16));
74
- }
75
- }), J = /* @__PURE__ */ l({
76
- __name: "DialogOverlay",
77
- props: {
78
- forceMount: { type: Boolean },
79
- asChild: { type: Boolean },
80
- as: {},
81
- class: { type: [
82
- Boolean,
83
- null,
84
- String,
85
- Object,
86
- Array
87
- ] }
88
- },
89
- setup(t) {
90
- let n = t, i = z(n, "class");
91
- return (t, a) => (h(), r(v(O), f({ "data-slot": "dialog-overlay" }, v(i), { class: v(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) }), {
92
- default: S(() => [g(t.$slots, "default")]),
93
- _: 3
94
- }, 16, ["class"]));
95
- }
96
- }), Y = { class: "sr-only" }, X = /* @__PURE__ */ l({
97
- inheritAttrs: !1,
98
- __name: "DialogContent",
99
- props: {
100
- forceMount: { type: Boolean },
101
- disableOutsidePointerEvents: { type: Boolean },
102
- asChild: { type: Boolean },
103
- as: {},
104
- class: { type: [
105
- Boolean,
106
- null,
107
- String,
108
- Object,
109
- Array
110
- ] },
111
- showCloseButton: {
112
- type: Boolean,
113
- default: !0
114
- }
115
- },
116
- emits: [
117
- "escapeKeyDown",
118
- "pointerDownOutside",
119
- "focusOutside",
120
- "interactOutside",
121
- "openAutoFocus",
122
- "closeAutoFocus"
123
- ],
124
- setup(n, { emit: a }) {
125
- let s = n, l = a, u = L(z(s, "class"), l), { t: d } = t();
126
- return (t, a) => (h(), r(v(k), null, {
127
- default: S(() => [c(J), c(v(E), f({ "data-slot": "dialog-content" }, {
128
- ...t.$attrs,
129
- ...v(u)
130
- }, { class: v(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", s.class) }), {
131
- default: S(() => [g(t.$slots, "default"), n.showCloseButton ? (h(), r(v(T), {
132
- key: 0,
133
- "data-slot": "dialog-close",
134
- class: "ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground 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"
135
- }, {
136
- default: S(() => [c(v(w)), o("span", Y, _(v(d)("material.buttons.close", "Close")), 1)]),
137
- _: 1
138
- })) : i("", !0)]),
139
- _: 3
140
- }, 16, ["class"])]),
141
- _: 3
142
- }));
143
- }
144
- }), Z = /* @__PURE__ */ l({
145
- __name: "DialogDescription",
146
- props: {
147
- asChild: { type: Boolean },
148
- as: {},
149
- class: { type: [
150
- Boolean,
151
- null,
152
- String,
153
- Object,
154
- Array
155
- ] }
156
- },
157
- setup(t) {
158
- let n = t, i = I(z(n, "class"));
159
- return (t, a) => (h(), r(v(D), f({ "data-slot": "dialog-description" }, v(i), { class: v(e)("text-muted-foreground text-sm", n.class) }), {
160
- default: S(() => [g(t.$slots, "default")]),
161
- _: 3
162
- }, 16, ["class"]));
163
- }
164
- }), re = /* @__PURE__ */ l({
165
- __name: "DialogFooter",
166
- props: {
167
- class: { type: [
168
- Boolean,
169
- null,
170
- String,
171
- Object,
172
- Array
173
- ] },
174
- showCloseButton: {
175
- type: Boolean,
176
- default: !1
177
- }
178
- },
179
- setup(o) {
180
- let l = o, { t: u } = t();
181
- return (t, d) => (h(), a("div", {
182
- "data-slot": "dialog-footer",
183
- class: p(v(e)("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end", l.class))
184
- }, [g(t.$slots, "default"), o.showCloseButton ? (h(), r(v(T), {
185
- key: 0,
186
- "as-child": ""
187
- }, {
188
- default: S(() => [c(v(n), { variant: "outlined" }, {
189
- default: S(() => [s(_(v(u)("material.buttons.close", "Close")), 1)]),
190
- _: 1
191
- })]),
192
- _: 1
193
- })) : i("", !0)], 2));
194
- }
195
- }), ie = /* @__PURE__ */ l({
196
- __name: "DialogTitle",
197
- props: {
198
- asChild: { type: Boolean },
199
- as: {},
200
- class: { type: [
201
- Boolean,
202
- null,
203
- String,
204
- Object,
205
- Array
206
- ] }
207
- },
208
- setup(t) {
209
- let n = t, i = I(z(n, "class"));
210
- return (t, a) => (h(), r(v(te), f({ "data-slot": "dialog-title" }, v(i), { class: v(e)("text-lg leading-none font-semibold", n.class) }), {
211
- default: S(() => [g(t.$slots, "default")]),
212
- _: 3
213
- }, 16, ["class"]));
214
- }
215
- }), ae = /* @__PURE__ */ l({
216
- __name: "DialogTrigger",
217
- props: {
218
- asChild: { type: Boolean },
219
- as: {}
220
- },
221
- setup(e) {
222
- let t = e;
223
- return (e, n) => (h(), r(v(A), f({ "data-slot": "dialog-trigger" }, t), {
224
- default: S(() => [g(e.$slots, "default")]),
225
- _: 3
226
- }, 16));
227
- }
228
- }), oe = ["data-slot"], Q = /* @__PURE__ */ l({
229
- __name: "Input",
230
- props: {
231
- defaultValue: {},
232
- modelValue: {},
233
- class: { type: [
234
- Boolean,
235
- null,
236
- String,
237
- Object,
238
- Array
239
- ] }
240
- },
241
- emits: ["update:modelValue"],
242
- setup(t, { emit: n }) {
243
- let r = t, i = H(r, "modelValue", n, {
244
- passive: !0,
245
- defaultValue: r.defaultValue
246
- });
247
- return (t, n) => C((h(), a("input", {
248
- "onUpdate:modelValue": n[0] ||= (e) => d(i) ? i.value = e : null,
249
- "data-slot": t.$attrs["data-slot"] ?? "input",
250
- class: p(v(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))
251
- }, null, 10, oe)), [[x, v(i)]]);
252
- }
253
- }), $ = /* @__PURE__ */ l({
254
- inheritAttrs: !1,
255
- __name: "text-field",
256
- props: {
257
- label: {},
258
- helperText: {},
259
- error: { type: Boolean },
260
- required: { type: Boolean },
261
- disabled: { type: Boolean },
262
- id: {},
263
- name: {},
264
- placeholder: {},
265
- type: {},
266
- modelValue: {},
267
- class: { type: [
268
- Boolean,
269
- null,
270
- String,
271
- Object,
272
- Array
273
- ] }
274
- },
275
- emits: ["update:modelValue"],
276
- setup(t, { emit: n }) {
277
- let l = t, u = n, d = y(), m = () => l.id ?? d;
278
- return (n, d) => (h(), a("div", {
279
- "data-slot": "text-field",
280
- class: p(v(e)("grid w-full gap-1.5", l.class))
281
- }, [
282
- t.label ? (h(), r(K, {
283
- key: 0,
284
- "with-asterisk": t.required,
285
- for: m()
286
- }, {
287
- default: S(() => [s(_(t.label), 1)]),
288
- _: 1
289
- }, 8, ["with-asterisk", "for"])) : i("", !0),
290
- o("div", { class: p(v(e)("relative", {
291
- "*: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,
292
- "*: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
293
- })) }, [
294
- g(n.$slots, "leading"),
295
- c(Q, f({ id: m() }, n.$attrs, {
296
- name: t.name,
297
- type: t.type,
298
- placeholder: t.placeholder,
299
- disabled: t.disabled,
300
- required: t.required,
301
- "model-value": t.modelValue,
302
- "aria-invalid": t.error || void 0,
303
- class: "transition-all hover:border-primary hover:ring-[2px] hover:ring-primary/25",
304
- "onUpdate:modelValue": d[0] ||= (e) => u("update:modelValue", e)
305
- }), null, 16, [
306
- "id",
307
- "name",
308
- "type",
309
- "placeholder",
310
- "disabled",
311
- "required",
312
- "model-value",
313
- "aria-invalid"
314
- ]),
315
- g(n.$slots, "trailing")
316
- ], 2),
317
- t.helperText ? (h(), r(G, {
318
- key: 1,
319
- error: t.error
320
- }, {
321
- default: S(() => [s(_(t.helperText), 1)]),
322
- _: 1
323
- }, 8, ["error"])) : i("", !0)
324
- ], 2));
325
- }
326
- });
327
- //#endregion
328
- //#region lib/components/ui/forms/use-field-blur.ts
329
- function se(e) {
330
- return e ? e instanceof Element ? e : e instanceof CharacterData ? e.nextElementSibling : null : null;
331
- }
332
- function ce(e, t = "root") {
333
- let n = b(t), r = !1, i = /* @__PURE__ */ new Set(), a = /* @__PURE__ */ new Set(), o, s = () => {
334
- let e = n.value;
335
- return se(e instanceof Node ? e : e?.$el);
336
- };
337
- function c(t) {
338
- r = !1, e(t, !0);
339
- }
340
- function l(e) {
341
- let t = s(), n = e.target;
342
- if (!(!t || !(n instanceof Node))) {
343
- if (clearTimeout(o), t.contains(n)) {
344
- r || (i = new Set(t.ownerDocument.body.childNodes), a = /* @__PURE__ */ new Set()), r = !0;
345
- return;
346
- }
347
- r && u(t, U(n)) && c(e);
348
- }
349
- }
350
- function u(e, t) {
351
- if (t === U(e)) return !0;
352
- if (!t || a.has(t)) return !1;
353
- let n = W([e], {
354
- before: i,
355
- home: /* @__PURE__ */ new Set([U(e)]),
356
- opened: a
357
- }, t);
358
- return n === "theirs" || !n && i.has(t) ? !0 : (a.add(t), !1);
359
- }
360
- function d(e) {
361
- !r || e.relatedTarget || (clearTimeout(o), o = setTimeout(() => {
362
- let t = R?.activeElement;
363
- r && (!t || t === R?.body) && c(e);
364
- }));
365
- }
366
- let f = {
367
- capture: !0,
368
- passive: !0
369
- };
370
- V(R, "focusin", l, f), V(R, "focusout", d, f), B(() => clearTimeout(o));
371
- }
372
- //#endregion
373
- //#region lib/components/ui/overlays/hover-card/HoverCard.vue
374
- var le = /* @__PURE__ */ l({
375
- __name: "HoverCard",
376
- props: {
377
- defaultOpen: { type: Boolean },
378
- open: { type: Boolean },
379
- openDelay: {},
380
- closeDelay: {},
381
- enableTouch: { type: Boolean }
382
- },
383
- emits: ["update:open"],
384
- setup(e, { emit: t }) {
385
- let n = L(e, t);
386
- return (e, t) => (h(), r(v(N), f({ "data-slot": "hover-card" }, v(n)), {
387
- default: S((t) => [g(e.$slots, "default", m(u(t)))]),
388
- _: 3
389
- }, 16));
390
- }
391
- }), ue = /* @__PURE__ */ l({
392
- inheritAttrs: !1,
393
- __name: "HoverCardContent",
394
- props: {
395
- forceMount: { type: Boolean },
396
- memoDependencies: {},
397
- side: {},
398
- sideOffset: { default: 4 },
399
- sideFlip: { type: Boolean },
400
- align: {},
401
- alignOffset: {},
402
- alignFlip: { type: Boolean },
403
- avoidCollisions: { type: Boolean },
404
- collisionBoundary: {},
405
- collisionPadding: {},
406
- arrowPadding: {},
407
- hideShiftedArrow: { type: Boolean },
408
- sticky: {},
409
- hideWhenDetached: { type: Boolean },
410
- positionStrategy: {},
411
- updatePositionStrategy: {},
412
- disableUpdateOnLayoutShift: { type: Boolean },
413
- prioritizePosition: { type: Boolean },
414
- reference: {},
415
- dir: {},
416
- asChild: { type: Boolean },
417
- as: {},
418
- class: { type: [
419
- Boolean,
420
- null,
421
- String,
422
- Object,
423
- Array
424
- ] }
425
- },
426
- setup(t) {
427
- let n = t, i = I(z(n, "class"));
428
- return (t, a) => (h(), r(v(M), null, {
429
- default: S(() => [c(v(j), f({ "data-slot": "hover-card-content" }, {
430
- ...t.$attrs,
431
- ...v(i)
432
- }, { class: v(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) }), {
433
- default: S(() => [g(t.$slots, "default")]),
434
- _: 3
435
- }, 16, ["class"])]),
436
- _: 3
437
- }));
438
- }
439
- }), de = /* @__PURE__ */ l({
440
- __name: "HoverCardTrigger",
441
- props: {
442
- reference: {},
443
- asChild: { type: Boolean },
444
- as: {}
445
- },
446
- setup(e) {
447
- let t = e;
448
- return (e, n) => (h(), r(v(P), f({ "data-slot": "hover-card-trigger" }, t), {
449
- default: S(() => [g(e.$slots, "default")]),
450
- _: 3
451
- }, 16));
452
- }
453
- });
454
- //#endregion
455
- export { $ as a, ie as c, X as d, J as f, G as h, ce as i, re as l, K as m, ue as n, Q as o, q as p, le as r, ae as s, de as t, Z as u };
@@ -1,227 +0,0 @@
1
- import { t as e } from "./utils-CykWQ0iJ.js";
2
- import { r as t, t as n } from "./Button-16J7vTpE.js";
3
- import { camelize as r, computed as i, createBlock as a, createCommentVNode as o, createElementBlock as s, createElementVNode as c, defineComponent as l, inject as u, normalizeClass as d, openBlock as f, provide as p, renderSlot as m, unref as h, useAttrs as g, withCtx as _ } from "vue";
4
- import { cva as v } from "class-variance-authority";
5
- //#region lib/lib/declared-prop.utils.ts
6
- function y(e, t) {
7
- return e[r(t)];
8
- }
9
- //#endregion
10
- //#region lib/components/ui/primitives/icon/icon.vue?vue&type=script&setup=true&lang.ts
11
- var b = [
12
- "role",
13
- "aria-label",
14
- "aria-hidden"
15
- ], x = ["href", "xlink:href"], S = /* @__PURE__ */ l({
16
- __name: "icon",
17
- props: {
18
- name: {},
19
- family: { default: "classic" },
20
- type: { default: "duotone" },
21
- class: { type: [
22
- Boolean,
23
- null,
24
- String,
25
- Object,
26
- Array
27
- ] },
28
- "aria-label": {}
29
- },
30
- setup(n) {
31
- let r = n, a = i(() => r.family === "classic" ? r.type : `${r.family}-${r.type}`), o = i(() => `/assets/icons/sprites/${a.value}.svg#${r.name}`), l = i(() => y(r, "aria-label") ?? `Icon ${r.name}`), p = u(t, void 0), m = g(), _ = i(() => !!p?.value && y(r, "aria-label") === void 0 && m["aria-labelledby"] === void 0);
32
- return (t, n) => (f(), s("svg", {
33
- "data-slot": "icon",
34
- role: _.value ? void 0 : "img",
35
- "aria-label": _.value ? void 0 : l.value,
36
- "aria-hidden": _.value ? "true" : void 0,
37
- class: d(h(e)("size-4", r.class))
38
- }, [c("use", {
39
- href: o.value,
40
- "xlink:href": o.value
41
- }, null, 8, x)], 10, b));
42
- }
43
- }), C = v("inline-flex size-9 center gap-2 cursor-pointer whitespace-nowrap text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:bg-transparent [&_svg]:text-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-error/20 dark:aria-invalid:ring-error/40 aria-invalid:border-error has-[[data-slot=icon]]:p-1.5 aspect-square rounded-full", {
44
- variants: {
45
- variant: {
46
- filled: "shadow-xs bg-primary text-primary-foreground [&_svg]:data-[slot=icon]:text-primary-foreground [&_svg]:stroke-primary-foreground hover:bg-primary/90 active:bg-primary/70 focus:bg-primary/80",
47
- tonal: "shadow-xs bg-primary/15 [&_svg]:data-[slot=icon]:text-primary [&_svg]:stroke-primary text-primary hover:bg-primary/10 active:bg-primary/5 focus:bg-primary/50",
48
- ghost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
49
- outlined: "border shadow-xs text-primary [&_svg]:data-[slot=icon]:text-primary [&_svg]:stroke-primary border-primary/50 focus:bg-primary/20 hover:bg-primary/10 hover:text-primary/90",
50
- link: "text-primary [&_svg]:data-[slot=icon]:text-primary [&_svg]:stroke-primary underline-offset-4 hover:underline hover:bg-primary/10 active:bg-primary/5 focus:bg-primary/15 focus:text-accent focus:underline"
51
- },
52
- color: {
53
- primary: null,
54
- secondary: null,
55
- info: null,
56
- warning: null,
57
- default: null,
58
- error: null,
59
- success: null
60
- }
61
- },
62
- defaultVariants: {
63
- variant: "filled",
64
- color: "primary"
65
- },
66
- compoundVariants: [
67
- {
68
- variant: "filled",
69
- color: "primary",
70
- class: "bg-primary text-primary-foreground [&_svg]:data-[slot=icon]:text-primary-foreground [&_svg]:stroke-primary-foreground hover:bg-primary/90 active:bg-primary/70 focus:bg-primary/80"
71
- },
72
- {
73
- variant: "filled",
74
- color: "secondary",
75
- class: "bg-secondary text-secondary-foreground [&_svg]:data-[slot=icon]:text-secondary-foreground [&_svg]:stroke-secondary-foreground hover:bg-secondary/90 active:bg-secondary/70 focus:bg-secondary/80"
76
- },
77
- {
78
- variant: "filled",
79
- color: "success",
80
- class: "bg-success text-success-foreground [&_svg]:data-[slot=icon]:text-success-foreground [&_svg]:stroke-success-foreground hover:bg-success/90 active:bg-success/70 focus:bg-success/80"
81
- },
82
- {
83
- variant: "filled",
84
- color: "info",
85
- class: "bg-info text-info-foreground [&_svg]:data-[slot=icon]:text-info-foreground [&_svg]:stroke-info-foreground hover:bg-info/90 active:bg-info/70 focus:bg-info/80"
86
- },
87
- {
88
- variant: "filled",
89
- color: "warning",
90
- class: "bg-warning text-warning-foreground [&_svg]:data-[slot=icon]:text-warning-foreground [&_svg]:stroke-warning-foreground hover:bg-warning/90 active:bg-warning/70 focus:bg-warning/80"
91
- },
92
- {
93
- variant: "filled",
94
- color: "error",
95
- class: "bg-error text-error-foreground [&_svg]:data-[slot=icon]:text-error-foreground [&_svg]:stroke-error-foreground hover:bg-error/90 active:bg-error/70 focus:bg-error/80"
96
- },
97
- {
98
- variant: "filled",
99
- color: "default",
100
- class: "bg-foreground text-background [&_svg]:data-[slot=icon]:text-foreground [&_svg]:stroke-foreground hover:bg-foreground/90 active:bg-foreground/70 focus:bg-foreground/80"
101
- },
102
- {
103
- variant: "tonal",
104
- color: "primary",
105
- class: "bg-primary/15 [&_svg]:data-[slot=icon]:text-primary [&_svg]:stroke-primary text-primary hover:bg-primary/10 active:bg-primary/5 focus:bg-primary/50"
106
- },
107
- {
108
- variant: "tonal",
109
- color: "secondary",
110
- class: "bg-secondary/15 [&_svg]:data-[slot=icon]:text-secondary [&_svg]:stroke-secondary text-secondary hover:bg-secondary/10 active:bg-secondary/5 focus:bg-secondary/50"
111
- },
112
- {
113
- variant: "tonal",
114
- color: "success",
115
- class: "bg-success/15 [&_svg]:data-[slot=icon]:text-success [&_svg]:stroke-success text-success hover:bg-success/10 active:bg-success/5 focus:bg-success/50"
116
- },
117
- {
118
- variant: "tonal",
119
- color: "info",
120
- class: "bg-info/15 [&_svg]:data-[slot=icon]:text-info [&_svg]:stroke-info text-info hover:bg-info/10 active:bg-info/5 focus:bg-info/50"
121
- },
122
- {
123
- variant: "tonal",
124
- color: "warning",
125
- class: "bg-warning/15 [&_svg]:data-[slot=icon]:text-warning [&_svg]:stroke-warning text-warning hover:bg-warning/10 active:bg-warning/5 focus:bg-warning/50"
126
- },
127
- {
128
- variant: "tonal",
129
- color: "error",
130
- class: "bg-error/15 [&_svg]:data-[slot=icon]:text-error [&_svg]:stroke-error text-error hover:bg-error/10 active:bg-error/5 focus:bg-error/50"
131
- },
132
- {
133
- variant: "tonal",
134
- color: "default",
135
- class: "bg-foreground/15 [&_svg]:data-[slot=icon]:text-foreground [&_svg]:stroke-foreground text-foreground hover:bg-foreground/10 active:bg-muted focus:bg-muted0"
136
- },
137
- {
138
- variant: "outlined",
139
- color: "primary",
140
- class: "text-primary [&_svg]:data-[slot=icon]:text-primary [&_svg]:stroke-primary border-primary/50 focus:bg-primary/20 hover:bg-primary/10 hover:text-primary/90"
141
- },
142
- {
143
- variant: "outlined",
144
- color: "secondary",
145
- class: "text-secondary [&_svg]:data-[slot=icon]:text-secondary [&_svg]:stroke-secondary border-secondary/50 focus:bg-secondary/20 hover:bg-secondary/10 hover:text-secondary/90"
146
- },
147
- {
148
- variant: "outlined",
149
- color: "success",
150
- class: "text-success [&_svg]:data-[slot=icon]:text-success [&_svg]:stroke-success border-success/50 focus:bg-success/20 hover:bg-success/10 hover:text-success/90"
151
- },
152
- {
153
- variant: "outlined",
154
- color: "info",
155
- class: "text-info [&_svg]:data-[slot=icon]:text-info [&_svg]:stroke-info border-info/50 focus:bg-info/20 hover:bg-info/10 hover:text-info/90"
156
- },
157
- {
158
- variant: "outlined",
159
- color: "warning",
160
- class: "text-warning [&_svg]:data-[slot=icon]:text-warning [&_svg]:stroke-warning border-warning/50 focus:bg-warning/20 hover:bg-warning/10 hover:text-warning/90"
161
- },
162
- {
163
- variant: "outlined",
164
- color: "error",
165
- class: "text-error [&_svg]:data-[slot=icon]:text-error [&_svg]:stroke-error border-error/50 focus:bg-error/20 hover:bg-error/10 hover:text-error/90"
166
- },
167
- {
168
- variant: "outlined",
169
- color: "default",
170
- class: "text-foreground [&_svg]:data-[slot=icon]:text-foreground [&_svg]:stroke-foreground border-foreground/50 focus:bg-foreground/20 hover:bg-foreground/10 hover:text-foreground/90"
171
- }
172
- ]
173
- }), w = /* @__PURE__ */ l({
174
- __name: "icon-button",
175
- props: {
176
- asChild: { type: Boolean },
177
- as: { default: "button" },
178
- variant: { default: "filled" },
179
- color: { default: "primary" },
180
- class: { type: [
181
- Boolean,
182
- null,
183
- String,
184
- Object,
185
- Array
186
- ] },
187
- name: {},
188
- tooltip: {},
189
- disabled: { type: Boolean },
190
- "aria-label": {}
191
- },
192
- setup(r) {
193
- let s = r, c = i(() => y(s, "aria-label") ?? (typeof s.tooltip == "string" ? s.tooltip : void 0)), l = g();
194
- return p(t, i(() => !!(c.value || l["aria-labelledby"]))), (t, i) => (f(), a(n, {
195
- "data-slot": "icon-button",
196
- size: "icon",
197
- variant: r.variant,
198
- color: r.color,
199
- as: r.as,
200
- "as-child": r.asChild,
201
- disabled: r.disabled,
202
- tooltip: r.tooltip,
203
- "aria-label": c.value,
204
- class: d(h(e)(h(C)({
205
- variant: r.variant,
206
- color: r.color
207
- }), s.class))
208
- }, {
209
- default: _(() => [r.name ? (f(), a(S, {
210
- key: 0,
211
- name: r.name
212
- }, null, 8, ["name"])) : o("", !0), m(t.$slots, "default")]),
213
- _: 3
214
- }, 8, [
215
- "variant",
216
- "color",
217
- "as",
218
- "as-child",
219
- "disabled",
220
- "tooltip",
221
- "aria-label",
222
- "class"
223
- ]));
224
- }
225
- });
226
- //#endregion
227
- export { y as i, C as n, S as r, w as t };
@@ -1,6 +0,0 @@
1
- import { EmojiItem } from './types';
2
- export declare function groupKey(group?: string | null): string;
3
- export declare function groupEmojis(emojis: EmojiItem[], recent: string[]): {
4
- [k: string]: EmojiItem[];
5
- };
6
- export declare function searchEmojis(emojis: EmojiItem[], query: string): EmojiItem[] | null;