brutx-ui-vue 0.10.0 → 0.10.1

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 (172) hide show
  1. package/dist/chunks/AccordionContent-CaTxwpAt.js +141 -0
  2. package/dist/chunks/{AlertDescription-Bp69BOkN.js → AlertDescription-CkxZay6m.js} +45 -29
  3. package/dist/chunks/AlertDialogCancel-bJYOPbTY.js +141 -0
  4. package/dist/chunks/AuthCard-DiQZx8pV.js +219 -0
  5. package/dist/chunks/AvatarFallback-aHxpzpEF.js +125 -0
  6. package/dist/chunks/Backtop-D_g60DIH.js +114 -0
  7. package/dist/chunks/{Badge-pOzgPTI3.js → Badge-xfW_Kb-K.js} +22 -15
  8. package/dist/chunks/{BeforeAfter-BcE6tTC6.js → BeforeAfter-CveqVRjE.js} +25 -20
  9. package/dist/chunks/BreadcrumbEllipsis-CNwlJSMT.js +97 -0
  10. package/dist/chunks/{BrutalistHero-Dnrz8kbc.js → BrutalistHero-JGVRjcsw.js} +24 -24
  11. package/dist/chunks/{Button-BqrvVG21.js → Button-QI4aDHQu.js} +6 -4
  12. package/dist/chunks/{ColorModeSwitcher-BBz-h37h.js → ColorModeSwitcher-bAKsOVpp.js} +1 -1
  13. package/dist/chunks/{ColorPicker-C8istlEd.js → ColorPicker-CIO2uu9v.js} +1 -1
  14. package/dist/chunks/{Combobox-CuoCqBPD.js → Combobox-CaFhRFau.js} +1 -1
  15. package/dist/chunks/{CookieConsent-jmBmow3m.js → CookieConsent-dbcxjeJ9.js} +1 -1
  16. package/dist/chunks/{DashboardShell-DU72_E7g.js → DashboardShell-SdzkEawB.js} +1 -1
  17. package/dist/chunks/{DataTable-BQEJOXJg.js → DataTable-ChPbldgY.js} +2 -2
  18. package/dist/chunks/{FeedbackForm-C7KaYHrs.js → FeedbackForm-DVw8HQCk.js} +3 -3
  19. package/dist/chunks/{FooterSection-DP2FXS7r.js → FooterSection-EhA_qRk2.js} +1 -1
  20. package/dist/chunks/{HardcoreInput-3lnuJmg3.js → HardcoreInput-tgK5Z6zP.js} +1 -1
  21. package/dist/chunks/{HeaderSection-BFGxRz55.js → HeaderSection-CuPDgQc3.js} +1 -1
  22. package/dist/chunks/{Input-GuHL4o2p.js → Input-CUcG77vb.js} +74 -68
  23. package/dist/chunks/{KanbanBoard-B4StA5zi.js → KanbanBoard-D9dBB0Vj.js} +1 -1
  24. package/dist/chunks/{NumberInput-B8NFRUuc.js → NumberInput-CJ7kgMsn.js} +1 -1
  25. package/dist/chunks/{Pagination-CvIVOLL7.js → Pagination-Dv6C-rtQ.js} +1 -1
  26. package/dist/chunks/{Popconfirm-CLtr0FZj.js → Popconfirm-DenOCiKU.js} +1 -1
  27. package/dist/chunks/{PricingSection-Cw9l-mCP.js → PricingSection-B2Y_Zqi8.js} +2 -2
  28. package/dist/chunks/{Textarea-DENERz-d.js → Textarea-ogAPI10v.js} +1 -1
  29. package/dist/chunks/{ToastContainer-CIyzkAhJ.js → ToastContainer-CS7lMDPc.js} +1 -1
  30. package/dist/chunks/{Transfer-Dkn0nIyS.js → Transfer-DMhXjE8f.js} +2 -2
  31. package/dist/chunks/{TreeSelect-DDWP1N_j.js → TreeSelect-mIIo6sEQ.js} +1 -1
  32. package/dist/chunks/{UploadFileList-D13QCPFD.js → UploadFileList-BD5zVD7s.js} +1 -1
  33. package/dist/chunks/{button-variants-R9hEuVua.js → button-variants-CBpRcDNH.js} +1 -3
  34. package/dist/chunks/{carousel-7X68z1af.js → carousel-vyeNmDab.js} +1 -1
  35. package/dist/chunks/{code-block-B-moVvKx.js → code-block-Cot7eRdy.js} +1 -1
  36. package/dist/chunks/{date-picker-5rN7ScKT.js → date-picker-Bfer5xeZ.js} +2 -2
  37. package/dist/chunks/{form-BiZstA9T.js → form-NJJ3ffGk.js} +1 -1
  38. package/dist/chunks/{functional-B8WPv1y-.js → functional-0753IgG_.js} +8 -5
  39. package/dist/chunks/{locales-C_U381MQ.js → locales-B2uD02qv.js} +3 -1
  40. package/dist/chunks/{plugin-CwDSizUp.js → plugin-DZEePcdx.js} +1 -1
  41. package/dist/chunks/{shared-input-variants-C8wUYxKJ.js → shared-input-variants-Ct9rJ3Kb.js} +2 -2
  42. package/dist/chunks/{useMessage-CfzIAOkG.js → useMessage-CYO_399i.js} +2 -2
  43. package/dist/chunks/{zh-CN-9JcLDC8B.js → zh-CN-DFfHhWu4.js} +3 -1
  44. package/dist/components/accordion/Accordion.vue.d.ts.map +1 -1
  45. package/dist/components/accordion/AccordionContent.vue.d.ts.map +1 -1
  46. package/dist/components/accordion/AccordionItem.vue.d.ts.map +1 -1
  47. package/dist/components/accordion/AccordionTrigger.vue.d.ts.map +1 -1
  48. package/dist/components/accordion/accordion-key.d.ts +3 -2
  49. package/dist/components/accordion/accordion-key.d.ts.map +1 -1
  50. package/dist/components/accordion/accordion-variants.d.ts +1 -0
  51. package/dist/components/accordion/accordion-variants.d.ts.map +1 -1
  52. package/dist/components/accordion/index.js +2 -2
  53. package/dist/components/alert/Alert.vue.d.ts.map +1 -1
  54. package/dist/components/alert/AlertDescription.vue.d.ts +2 -0
  55. package/dist/components/alert/AlertDescription.vue.d.ts.map +1 -1
  56. package/dist/components/alert/AlertTitle.vue.d.ts.map +1 -1
  57. package/dist/components/alert/alert-context.d.ts +10 -0
  58. package/dist/components/alert/alert-context.d.ts.map +1 -0
  59. package/dist/components/alert/alert-variants.d.ts.map +1 -1
  60. package/dist/components/alert/index.d.ts +1 -0
  61. package/dist/components/alert/index.d.ts.map +1 -1
  62. package/dist/components/alert/index.js +2 -2
  63. package/dist/components/alert-dialog/AlertDialogAction.vue.d.ts +5 -3
  64. package/dist/components/alert-dialog/AlertDialogAction.vue.d.ts.map +1 -1
  65. package/dist/components/alert-dialog/AlertDialogCancel.vue.d.ts +2 -1
  66. package/dist/components/alert-dialog/AlertDialogCancel.vue.d.ts.map +1 -1
  67. package/dist/components/alert-dialog/AlertDialogContent.vue.d.ts +4 -1
  68. package/dist/components/alert-dialog/AlertDialogContent.vue.d.ts.map +1 -1
  69. package/dist/components/alert-dialog/AlertDialogDescription.vue.d.ts +2 -1
  70. package/dist/components/alert-dialog/AlertDialogDescription.vue.d.ts.map +1 -1
  71. package/dist/components/alert-dialog/AlertDialogFooter.vue.d.ts +2 -1
  72. package/dist/components/alert-dialog/AlertDialogFooter.vue.d.ts.map +1 -1
  73. package/dist/components/alert-dialog/AlertDialogHeader.vue.d.ts +2 -1
  74. package/dist/components/alert-dialog/AlertDialogHeader.vue.d.ts.map +1 -1
  75. package/dist/components/alert-dialog/AlertDialogTitle.vue.d.ts +2 -1
  76. package/dist/components/alert-dialog/AlertDialogTitle.vue.d.ts.map +1 -1
  77. package/dist/components/alert-dialog/alert-dialog-variants.d.ts.map +1 -1
  78. package/dist/components/alert-dialog/index.js +1 -1
  79. package/dist/components/auth-card/AuthCard.vue.d.ts +6 -0
  80. package/dist/components/auth-card/AuthCard.vue.d.ts.map +1 -1
  81. package/dist/components/auth-card/index.js +1 -1
  82. package/dist/components/avatar/Avatar.vue.d.ts.map +1 -1
  83. package/dist/components/avatar/AvatarFallback.vue.d.ts +10 -2
  84. package/dist/components/avatar/AvatarFallback.vue.d.ts.map +1 -1
  85. package/dist/components/avatar/AvatarImage.vue.d.ts +3 -1
  86. package/dist/components/avatar/AvatarImage.vue.d.ts.map +1 -1
  87. package/dist/components/avatar/avatar-key.d.ts +8 -0
  88. package/dist/components/avatar/avatar-key.d.ts.map +1 -1
  89. package/dist/components/avatar/avatar-variants.d.ts.map +1 -1
  90. package/dist/components/avatar/index.js +1 -1
  91. package/dist/components/backtop/Backtop.vue.d.ts.map +1 -1
  92. package/dist/components/backtop/index.js +1 -1
  93. package/dist/components/badge/Badge.vue.d.ts.map +1 -1
  94. package/dist/components/badge/index.js +1 -1
  95. package/dist/components/before-after/BeforeAfter.vue.d.ts.map +1 -1
  96. package/dist/components/before-after/before-after-variants.d.ts.map +1 -1
  97. package/dist/components/before-after/index.js +1 -1
  98. package/dist/components/breadcrumb/Breadcrumb.vue.d.ts.map +1 -1
  99. package/dist/components/breadcrumb/BreadcrumbEllipsis.vue.d.ts.map +1 -1
  100. package/dist/components/breadcrumb/BreadcrumbItem.vue.d.ts.map +1 -1
  101. package/dist/components/breadcrumb/BreadcrumbLink.vue.d.ts +1 -0
  102. package/dist/components/breadcrumb/BreadcrumbLink.vue.d.ts.map +1 -1
  103. package/dist/components/breadcrumb/BreadcrumbList.vue.d.ts.map +1 -1
  104. package/dist/components/breadcrumb/BreadcrumbPage.vue.d.ts.map +1 -1
  105. package/dist/components/breadcrumb/BreadcrumbSeparator.vue.d.ts.map +1 -1
  106. package/dist/components/breadcrumb/breadcrumb-variants.d.ts.map +1 -1
  107. package/dist/components/breadcrumb/index.js +1 -1
  108. package/dist/components/brutalist-hero/BrutalistHero.vue.d.ts +11 -1
  109. package/dist/components/brutalist-hero/BrutalistHero.vue.d.ts.map +1 -1
  110. package/dist/components/brutalist-hero/index.js +1 -1
  111. package/dist/components/button/Button.vue.d.ts.map +1 -1
  112. package/dist/components/button/button-variants.d.ts.map +1 -1
  113. package/dist/components/button/index.js +2 -2
  114. package/dist/components/button/shared-button-variants.d.ts.map +1 -1
  115. package/dist/components/carousel/carousel-variants.d.ts +1 -1
  116. package/dist/components/carousel/index.js +1 -1
  117. package/dist/components/code-block/index.js +1 -1
  118. package/dist/components/color-mode-switcher/index.js +1 -1
  119. package/dist/components/color-picker/index.js +1 -1
  120. package/dist/components/combobox/index.js +1 -1
  121. package/dist/components/cookie-consent/index.js +1 -1
  122. package/dist/components/counter/Counter.vue.d.ts +1 -1
  123. package/dist/components/counter/Counter.vue.d.ts.map +1 -1
  124. package/dist/components/dashboard-shell/index.js +1 -1
  125. package/dist/components/data-table/index.js +1 -1
  126. package/dist/components/date-picker/date-picker-variants.d.ts.map +1 -1
  127. package/dist/components/date-picker/index.js +1 -1
  128. package/dist/components/dialog/DialogFooter.vue.d.ts.map +1 -1
  129. package/dist/components/dialog/index.js +1 -1
  130. package/dist/components/feedback-form/index.js +1 -1
  131. package/dist/components/footer-section/index.js +1 -1
  132. package/dist/components/form/index.js +1 -1
  133. package/dist/components/hardcore-input/index.js +1 -1
  134. package/dist/components/header-section/index.js +1 -1
  135. package/dist/components/input/Input.vue.d.ts +3 -0
  136. package/dist/components/input/Input.vue.d.ts.map +1 -1
  137. package/dist/components/input/index.js +2 -2
  138. package/dist/components/input/shared-input-variants.d.ts +0 -7
  139. package/dist/components/input/shared-input-variants.d.ts.map +1 -1
  140. package/dist/components/kanban/index.js +1 -1
  141. package/dist/components/message/index.js +1 -1
  142. package/dist/components/number-input/index.js +1 -1
  143. package/dist/components/pagination/index.js +1 -1
  144. package/dist/components/popconfirm/index.js +1 -1
  145. package/dist/components/pricing-section/index.js +1 -1
  146. package/dist/components/stepper/stepper-variants.d.ts +1 -1
  147. package/dist/components/textarea/index.js +1 -1
  148. package/dist/components/toast/index.js +1 -1
  149. package/dist/components/transfer/index.js +1 -1
  150. package/dist/components/tree-select/index.js +1 -1
  151. package/dist/components/upload/index.js +1 -1
  152. package/dist/composables/destroyFallbacks.js +1 -1
  153. package/dist/composables/useDialog.js +1 -1
  154. package/dist/composables/useLocale.js +1 -1
  155. package/dist/composables/useMessage.js +1 -1
  156. package/dist/composables/useMessageBox.js +1 -1
  157. package/dist/index.js +44 -44
  158. package/dist/lib/validation.d.ts +7 -0
  159. package/dist/lib/validation.d.ts.map +1 -1
  160. package/dist/locales/en.d.ts.map +1 -1
  161. package/dist/locales/types.d.ts +2 -0
  162. package/dist/locales/types.d.ts.map +1 -1
  163. package/dist/locales/zh-CN.d.ts.map +1 -1
  164. package/dist/locales.js +2 -2
  165. package/dist/styles.css +1 -1
  166. package/package.json +1 -1
  167. package/dist/chunks/AccordionContent-ztQ9otVO.js +0 -135
  168. package/dist/chunks/AlertDialogCancel-NhRPU3l0.js +0 -94
  169. package/dist/chunks/AuthCard-Bw9msjia.js +0 -185
  170. package/dist/chunks/AvatarFallback-VZWaXoX1.js +0 -108
  171. package/dist/chunks/Backtop-DTyrBOTx.js +0 -87
  172. package/dist/chunks/BreadcrumbEllipsis-Dgb6NbNn.js +0 -94
@@ -0,0 +1,141 @@
1
+ import { n as e } from "./utils-D4SUu3He.js";
2
+ import { i as t, o as n } from "./brutal-interaction-variants-Dd50fX12.js";
3
+ import { t as r } from "./icon-size-variants-Cp9lYoRk.js";
4
+ import { Comment as i, computed as a, createBlock as o, createCommentVNode as s, createElementBlock as c, createElementVNode as l, createVNode as u, defineComponent as d, inject as f, mergeProps as p, normalizeClass as m, openBlock as h, provide as g, renderSlot as _, toRef as v, unref as y, useSlots as b, withCtx as x } from "vue";
5
+ import { ChevronDown as S } from "@lucide/vue";
6
+ import { AccordionContent as C, AccordionHeader as w, AccordionItem as T, AccordionRoot as E, AccordionTrigger as D, useForwardProps as O, useForwardPropsEmits as k } from "reka-ui";
7
+ import { cva as A } from "class-variance-authority";
8
+ //#endregion
9
+ //#region src/components/accordion/Accordion.vue
10
+ var j = /* @__PURE__ */ d({
11
+ __name: "Accordion",
12
+ props: {
13
+ collapsible: { type: Boolean },
14
+ disabled: { type: Boolean },
15
+ dir: {},
16
+ orientation: {},
17
+ unmountOnHide: { type: Boolean },
18
+ asChild: { type: Boolean },
19
+ as: {},
20
+ type: {},
21
+ modelValue: {},
22
+ defaultValue: {},
23
+ class: {}
24
+ },
25
+ emits: ["update:modelValue"],
26
+ setup(t, { emit: n }) {
27
+ let r = t, i = n, s = k(a(() => {
28
+ let { class: e, ...t } = r;
29
+ return t;
30
+ }), i), c = a(() => e(r.class));
31
+ return (e, t) => (h(), o(y(E), p(y(s), { class: c.value }), {
32
+ default: x(() => [_(e.$slots, "default")]),
33
+ _: 3
34
+ }, 16, ["class"]));
35
+ }
36
+ }), M = [
37
+ "mb-4",
38
+ "data-[state=closed]:shadow-brutal-sm",
39
+ "data-[state=open]:shadow-brutal",
40
+ "data-[state=open]:-translate-x-0.5",
41
+ "data-[state=open]:-translate-y-0.5"
42
+ ], N = A(["border-3 bg-brutal-bg text-brutal-fg", "transition-all duration-150"], {
43
+ variants: { variant: {
44
+ default: ["border-brutal", ...M],
45
+ flat: ["border-brutal", "shadow-none mb-4"],
46
+ ghost: ["border-transparent", "shadow-none mb-2"],
47
+ interactive: [
48
+ "border-brutal",
49
+ ...M,
50
+ t
51
+ ]
52
+ } },
53
+ defaultVariants: { variant: "default" }
54
+ }), P = A([
55
+ "flex flex-1 items-center justify-between py-4 px-6",
56
+ "text-left font-black tracking-wide transition-all",
57
+ "hover:bg-brutal-muted",
58
+ n
59
+ ], {
60
+ variants: { variant: {
61
+ default: "hover:shadow-brutal-sm hover:-translate-y-0.5",
62
+ flat: "",
63
+ ghost: "",
64
+ interactive: ""
65
+ } },
66
+ defaultVariants: { variant: "default" }
67
+ }), F = "shrink-0 transition-transform duration-200 border-3 border-brutal rounded-brutal bg-brutal-bg p-0.5 shadow-brutal-sm", I = A("border-t-3 p-6 bg-brutal-bg text-brutal-fg", {
68
+ variants: { variant: {
69
+ default: "border-brutal",
70
+ flat: "border-brutal bg-brutal-muted/30",
71
+ ghost: "border-transparent",
72
+ interactive: "border-brutal hover:bg-brutal-muted/20"
73
+ } },
74
+ defaultVariants: { variant: "default" }
75
+ }), L = Symbol("accordionItem"), R = /* @__PURE__ */ d({
76
+ __name: "AccordionItem",
77
+ props: {
78
+ variant: { default: "default" },
79
+ class: { default: void 0 },
80
+ disabled: { type: Boolean },
81
+ value: {},
82
+ unmountOnHide: { type: Boolean },
83
+ asChild: { type: Boolean },
84
+ as: {}
85
+ },
86
+ setup(t) {
87
+ let n = t, r = O(a(() => {
88
+ let { class: e, variant: t, ...r } = n;
89
+ return r;
90
+ })), i = a(() => e(N({ variant: n.variant }), n.class));
91
+ return g(L, { variant: v(n, "variant") }), (e, t) => (h(), o(y(T), p(y(r), { class: i.value }), {
92
+ default: x(() => [_(e.$slots, "default")]),
93
+ _: 3
94
+ }, 16, ["class"]));
95
+ }
96
+ }), z = /* @__PURE__ */ d({
97
+ __name: "AccordionTrigger",
98
+ props: {
99
+ asChild: { type: Boolean },
100
+ as: {},
101
+ class: { default: void 0 },
102
+ iconSize: { default: "lg" }
103
+ },
104
+ setup(t) {
105
+ let n = t, l = f(L, { variant: a(() => void 0) }), d = O(a(() => {
106
+ let { class: e, iconSize: t, ...r } = n;
107
+ return r;
108
+ })), g = a(() => e(P({ variant: l.variant.value }), "[&[data-state=open]_[data-accordion-icon]]:rotate-180", n.class)), v = b(), C = a(() => v.icon ? v.icon().some((e) => e.type !== i) : !0), T = a(() => e("inline-flex items-center justify-center", F)), E = a(() => r({ size: n.iconSize }));
109
+ return (e, t) => (h(), o(y(w), { class: "flex !m-0" }, {
110
+ default: x(() => [u(y(D), p(y(d), { class: g.value }), {
111
+ default: x(() => [_(e.$slots, "default"), C.value ? (h(), c("span", {
112
+ key: 0,
113
+ "data-accordion-icon": "",
114
+ class: m(T.value)
115
+ }, [_(e.$slots, "icon", {}, () => [u(y(S), { class: m(E.value) }, null, 8, ["class"])])], 2)) : s("", !0)]),
116
+ _: 3
117
+ }, 16, ["class"])]),
118
+ _: 3
119
+ }));
120
+ }
121
+ }), B = /* @__PURE__ */ d({
122
+ __name: "AccordionContent",
123
+ props: {
124
+ forceMount: { type: Boolean },
125
+ asChild: { type: Boolean },
126
+ as: {},
127
+ class: {}
128
+ },
129
+ setup(t) {
130
+ let n = t, r = f(L, { variant: a(() => void 0) }), i = a(() => {
131
+ let { class: e, ...t } = n;
132
+ return t;
133
+ });
134
+ return (t, a) => (h(), o(y(C), p(i.value, { class: y(e)("overflow-hidden text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down", n.class) }), {
135
+ default: x(() => [l("div", { class: m(y(I)({ variant: y(r).variant.value })) }, [_(t.$slots, "default")], 2)]),
136
+ _: 3
137
+ }, 16, ["class"]));
138
+ }
139
+ });
140
+ //#endregion
141
+ export { I as a, P as c, L as i, j as l, z as n, N as o, R as r, F as s, B as t };
@@ -1,13 +1,13 @@
1
1
  import { n as e } from "./utils-D4SUu3He.js";
2
2
  import { t } from "./icon-size-variants-Cp9lYoRk.js";
3
3
  import { useLocale as n } from "../composables/useLocale.js";
4
- import { t as r } from "./Button-BqrvVG21.js";
5
- import { computed as i, createBlock as a, createCommentVNode as o, createElementBlock as s, createVNode as c, defineComponent as l, normalizeClass as u, openBlock as d, renderSlot as f, unref as p, useSlots as m, withCtx as h } from "vue";
6
- import { X as g } from "@lucide/vue";
7
- import { Primitive as _ } from "reka-ui";
8
- import { cva as v } from "class-variance-authority";
4
+ import { t as r } from "./Button-QI4aDHQu.js";
5
+ import { computed as i, createBlock as a, createCommentVNode as o, createElementBlock as s, createVNode as c, defineComponent as l, inject as u, normalizeClass as d, onBeforeUnmount as f, onMounted as p, openBlock as m, provide as h, ref as g, renderSlot as _, unref as v, useId as y, useSlots as b, withCtx as x, withModifiers as S } from "vue";
6
+ import { X as C } from "@lucide/vue";
7
+ import { Primitive as w } from "reka-ui";
8
+ import { cva as T } from "class-variance-authority";
9
9
  //#region src/components/alert/alert-variants.ts
10
- var y = v([
10
+ var E = T([
11
11
  "relative w-full p-4",
12
12
  "border-3 border-brutal",
13
13
  "rounded-brutal",
@@ -25,10 +25,10 @@ var y = v([
25
25
  info: "bg-brutal-info text-brutal-info-foreground"
26
26
  } },
27
27
  defaultVariants: { variant: "default" }
28
- }), b = {
28
+ }), D = Symbol("alert-description-ids"), O = ["aria-describedby"], k = {
29
29
  key: 0,
30
30
  class: "mt-3 flex items-center gap-2"
31
- }, x = /* @__PURE__ */ l({
31
+ }, A = /* @__PURE__ */ l({
32
32
  __name: "Alert",
33
33
  props: {
34
34
  variant: { default: "default" },
@@ -39,30 +39,34 @@ var y = v([
39
39
  class: { default: void 0 }
40
40
  },
41
41
  emits: ["close"],
42
- setup(l, { emit: _ }) {
43
- let v = m(), x = l, S = _, { t: C } = n(), w = i(() => e(y({ variant: x.variant }), x.closable && "pr-12", x.class)), T = i(() => e(t({ size: "md" }), "stroke-[3]"));
44
- return (e, t) => (d(), s("div", {
42
+ setup(l, { emit: u }) {
43
+ let f = b(), p = l, y = u, { t: w } = n(), T = g([]);
44
+ h(D, T);
45
+ let A = i(() => {
46
+ if (T.value.length !== 0) return T.value.join(" ");
47
+ }), j = i(() => e(E({ variant: p.variant }), p.closable && "pr-12", p.class)), M = i(() => e(t({ size: "md" }), "stroke-[3]"));
48
+ return (e, t) => (m(), s("div", {
45
49
  role: "alert",
46
- "aria-live": "assertive",
47
- class: u(w.value)
50
+ class: d(j.value),
51
+ "aria-describedby": A.value
48
52
  }, [
49
- f(e.$slots, "default"),
50
- p(v).actions ? (d(), s("div", b, [f(e.$slots, "actions")])) : o("", !0),
51
- l.closable ? (d(), a(r, {
53
+ _(e.$slots, "default"),
54
+ v(f).actions ? (m(), s("div", k, [_(e.$slots, "actions")])) : o("", !0),
55
+ l.closable ? (m(), a(r, {
52
56
  key: 1,
53
57
  type: "button",
54
58
  variant: "ghost",
55
59
  size: "icon",
56
60
  class: "absolute right-3 top-3 h-8 w-8",
57
- "aria-label": p(C)("alert.close"),
58
- onClick: t[0] ||= (e) => S("close")
61
+ "aria-label": v(w)("alert.close"),
62
+ onClick: t[0] ||= S((e) => y("close"), ["stop"])
59
63
  }, {
60
- default: h(() => [c(p(g), { class: u(T.value) }, null, 8, ["class"])]),
64
+ default: x(() => [c(v(C), { class: d(M.value) }, null, 8, ["class"])]),
61
65
  _: 1
62
66
  }, 8, ["aria-label"])) : o("", !0)
63
- ], 2));
67
+ ], 10, O));
64
68
  }
65
- }), S = /* @__PURE__ */ l({
69
+ }), j = /* @__PURE__ */ l({
66
70
  __name: "AlertTitle",
67
71
  props: {
68
72
  class: { default: void 0 },
@@ -74,12 +78,12 @@ var y = v([
74
78
  },
75
79
  setup(t) {
76
80
  let n = t, r = i(() => e("mb-1 font-black tracking-tight leading-none", n.class));
77
- return (e, t) => (d(), a(p(_), {
81
+ return (e, t) => (m(), a(v(w), {
78
82
  as: n.as,
79
83
  "as-child": n.asChild,
80
- class: u(r.value)
84
+ class: d(r.value)
81
85
  }, {
82
- default: h(() => [f(e.$slots, "default")]),
86
+ default: x(() => [_(e.$slots, "default")]),
83
87
  _: 3
84
88
  }, 8, [
85
89
  "as",
@@ -87,13 +91,25 @@ var y = v([
87
91
  "class"
88
92
  ]));
89
93
  }
90
- }), C = /* @__PURE__ */ l({
94
+ }), M = ["id"], N = /* @__PURE__ */ l({
91
95
  __name: "AlertDescription",
92
- props: { class: {} },
96
+ props: {
97
+ id: {},
98
+ class: {}
99
+ },
93
100
  setup(t) {
94
- let n = t, r = i(() => e("text-sm font-medium [&_p]:leading-relaxed", n.class));
95
- return (e, t) => (d(), s("div", { class: u(r.value) }, [f(e.$slots, "default")], 2));
101
+ let n = t, r = y(), a = i(() => n.id ?? `alert-description-${r}`), o = u(D, null);
102
+ p(() => {
103
+ o?.value.push(a.value);
104
+ }), f(() => {
105
+ o && (o.value = o.value.filter((e) => e !== a.value));
106
+ });
107
+ let c = i(() => e("text-sm font-medium [&_p]:leading-relaxed", n.class));
108
+ return (e, t) => (m(), s("div", {
109
+ id: a.value,
110
+ class: d(c.value)
111
+ }, [_(e.$slots, "default")], 10, M));
96
112
  }
97
113
  });
98
114
  //#endregion
99
- export { y as i, S as n, x as r, C as t };
115
+ export { E as a, D as i, j as n, A as r, N as t };
@@ -0,0 +1,141 @@
1
+ import { n as e } from "./utils-D4SUu3He.js";
2
+ import { t } from "./button-variants-CBpRcDNH.js";
3
+ import { a as n, i as r, r as i, t as a } from "./modal-variants-BpiGhY-y.js";
4
+ import { t as o } from "./floating-animation-classes-BEu35hIg.js";
5
+ import { computed as s, createBlock as c, createCommentVNode as l, createElementBlock as u, createTextVNode as d, createVNode as f, defineComponent as p, mergeProps as m, normalizeClass as h, openBlock as g, renderSlot as _, unref as v, withCtx as y } from "vue";
6
+ import { AlertDialogAction as b, AlertDialogCancel as x, AlertDialogContent as S, AlertDialogDescription as C, AlertDialogOverlay as w, AlertDialogPortal as T, AlertDialogTitle as E, useForwardProps as D } from "reka-ui";
7
+ import { cva as O } from "class-variance-authority";
8
+ //#region src/components/alert-dialog/alert-dialog-variants.ts
9
+ var k = O([
10
+ "fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4",
11
+ "p-6 text-brutal-fg",
12
+ ...a,
13
+ ...o
14
+ ]), A = O(["text-lg font-black tracking-tight text-brutal-fg"]), j = O(["text-sm text-brutal-muted-foreground font-medium"]), M = /* @__PURE__ */ p({
15
+ inheritAttrs: !1,
16
+ __name: "AlertDialogContent",
17
+ props: {
18
+ class: { type: [
19
+ Array,
20
+ Object,
21
+ String,
22
+ Number,
23
+ null,
24
+ Boolean
25
+ ] },
26
+ overlayClass: { type: [
27
+ Array,
28
+ Object,
29
+ String,
30
+ Number,
31
+ null,
32
+ Boolean
33
+ ] }
34
+ },
35
+ setup(t) {
36
+ let n = t, r = s(() => e(i(), n.overlayClass)), a = s(() => e(k(), n.class));
37
+ return (e, t) => (g(), c(v(T), null, {
38
+ default: y(() => [f(v(w), { class: h(r.value) }, null, 8, ["class"]), f(v(S), m(e.$attrs, { class: a.value }), {
39
+ default: y(() => [_(e.$slots, "default")]),
40
+ _: 3
41
+ }, 16, ["class"])]),
42
+ _: 3
43
+ }));
44
+ }
45
+ }), N = /* @__PURE__ */ p({
46
+ __name: "AlertDialogHeader",
47
+ props: { class: { type: [
48
+ Array,
49
+ Object,
50
+ String,
51
+ Number,
52
+ null,
53
+ Boolean
54
+ ] } },
55
+ setup(t) {
56
+ let r = t, i = s(() => e(n(), r.class));
57
+ return (e, t) => (g(), u("header", { class: h(i.value) }, [_(e.$slots, "default")], 2));
58
+ }
59
+ }), P = /* @__PURE__ */ p({
60
+ __name: "AlertDialogFooter",
61
+ props: { class: { type: [
62
+ Array,
63
+ Object,
64
+ String,
65
+ Number,
66
+ null,
67
+ Boolean
68
+ ] } },
69
+ setup(t) {
70
+ let n = t, i = s(() => e(r(), n.class));
71
+ return (e, t) => e.$slots.default ? (g(), u("div", {
72
+ key: 0,
73
+ class: h(i.value)
74
+ }, [_(e.$slots, "default")], 2)) : l("", !0);
75
+ }
76
+ }), F = /* @__PURE__ */ p({
77
+ __name: "AlertDialogTitle",
78
+ props: { class: { type: [
79
+ Array,
80
+ Object,
81
+ String,
82
+ Number,
83
+ null,
84
+ Boolean
85
+ ] } },
86
+ setup(t) {
87
+ let n = t, r = s(() => e(A(), n.class));
88
+ return (e, t) => (g(), c(v(E), { class: h(r.value) }, {
89
+ default: y(() => [_(e.$slots, "default", {}, () => [t[0] ||= d("Alert", -1)])]),
90
+ _: 3
91
+ }, 8, ["class"]));
92
+ }
93
+ }), I = /* @__PURE__ */ p({
94
+ __name: "AlertDialogDescription",
95
+ props: { class: { type: [
96
+ Array,
97
+ Object,
98
+ String,
99
+ Number,
100
+ null,
101
+ Boolean
102
+ ] } },
103
+ setup(t) {
104
+ let n = t, r = s(() => e(j(), n.class));
105
+ return (e, t) => (g(), c(v(C), { class: h(r.value) }, {
106
+ default: y(() => [_(e.$slots, "default")]),
107
+ _: 3
108
+ }, 8, ["class"]));
109
+ }
110
+ }), L = /* @__PURE__ */ p({
111
+ __name: "AlertDialogAction",
112
+ setup(n) {
113
+ let r = n, i = D(s(() => {
114
+ let { class: e, variant: t, ...n } = r;
115
+ return n;
116
+ })), a = s(() => e(t({ variant: r.variant }), r.class));
117
+ return (e, t) => (g(), c(v(b), m(v(i), { class: a.value }), {
118
+ default: y(() => [_(e.$slots, "default")]),
119
+ _: 3
120
+ }, 16, ["class"]));
121
+ }
122
+ }), R = /* @__PURE__ */ p({
123
+ __name: "AlertDialogCancel",
124
+ props: { class: { type: [
125
+ Array,
126
+ Object,
127
+ String,
128
+ Number,
129
+ null,
130
+ Boolean
131
+ ] } },
132
+ setup(n) {
133
+ let r = n, i = s(() => e(t({ variant: "outline" }), r.class));
134
+ return (e, t) => (g(), c(v(x), { class: h(i.value) }, {
135
+ default: y(() => [_(e.$slots, "default")]),
136
+ _: 3
137
+ }, 8, ["class"]));
138
+ }
139
+ });
140
+ //#endregion
141
+ export { P as a, k as c, F as i, j as l, L as n, N as o, I as r, M as s, R as t, A as u };
@@ -0,0 +1,219 @@
1
+ import { n as e } from "./utils-D4SUu3He.js";
2
+ import { t } from "./icon-size-variants-Cp9lYoRk.js";
3
+ import { useLocale as n } from "../composables/useLocale.js";
4
+ import { t as r } from "./Button-QI4aDHQu.js";
5
+ import { t as i } from "./Label-XrK3v0Wx.js";
6
+ import { t as a } from "./Input-CUcG77vb.js";
7
+ import { t as o } from "./Card-01h9lLdf.js";
8
+ import { i as s, n as c, r as ee, t as l } from "./CardFooter-C6APHurx.js";
9
+ import { t as u } from "./CardContent-DQSu-W_o.js";
10
+ import { computed as d, createBlock as f, createCommentVNode as p, createElementBlock as m, createElementVNode as h, createTextVNode as g, createVNode as _, defineComponent as v, normalizeClass as y, openBlock as b, ref as x, toDisplayString as S, unref as C, useId as w, watch as T, withCtx as E, withModifiers as D } from "vue";
11
+ import { Lock as te, Mail as ne } from "@lucide/vue";
12
+ //#region src/lib/validation.ts
13
+ var re = /^[a-zA-Z0-9_%+-]+(?:\.[a-zA-Z0-9_%+-]+)*@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*\.[a-zA-Z]{2,}$/, ie = { class: "grid grid-cols-2 gap-3 mb-6" }, ae = { class: "relative mb-6" }, oe = { class: "relative flex justify-center text-xs" }, O = { class: "bg-brutal-bg px-2 font-bold text-brutal-muted-foreground" }, k = { class: "space-y-2" }, A = { class: "relative" }, j = ["id"], M = { class: "space-y-2" }, N = { class: "flex items-center justify-between" }, P = { class: "relative" }, F = ["id"], I = { class: "text-sm font-medium text-brutal-muted-foreground" }, L = /* @__PURE__ */ v({
14
+ __name: "AuthCard",
15
+ props: {
16
+ title: { default: void 0 },
17
+ description: { default: void 0 },
18
+ texts: { default: () => ({}) },
19
+ class: { default: void 0 },
20
+ iconSize: { default: "md" },
21
+ submitting: {
22
+ type: Boolean,
23
+ default: !1
24
+ },
25
+ passwordMinLength: { default: 6 }
26
+ },
27
+ emits: [
28
+ "login-submit",
29
+ "forgot-password",
30
+ "google-click",
31
+ "github-click",
32
+ "register-click"
33
+ ],
34
+ setup(v, { emit: L }) {
35
+ let R = v, { t: z } = n(), B = L, V = d(() => e("w-full max-w-md mx-auto", R.class)), H = d(() => e(t({ size: R.iconSize }), "stroke-[3]")), U = d(() => e("absolute left-3 top-1/2 -translate-y-1/2 text-brutal-muted-foreground", H.value)), W = e(t({ size: "md" }), "mr-2"), G = w(), K = w(), q = w(), J = w(), Y = x(""), X = x(""), Z = x(""), Q = x(""), se = d(() => R.title ?? R.texts.welcomeBack ?? z("authCard.welcomeBack")), ce = d(() => R.description ?? R.texts.signInToContinue ?? z("authCard.signInToContinue")), le = d(() => R.texts.google ?? z("authCard.google")), ue = d(() => R.texts.github ?? z("authCard.github")), de = d(() => R.texts.orEmailLogin ?? z("authCard.orEmailLogin")), fe = d(() => R.texts.email ?? z("authCard.email")), pe = d(() => R.texts.password ?? z("authCard.password")), $ = d(() => R.texts.forgotPassword ?? z("authCard.forgotPassword")), me = d(() => R.texts.signIn ?? z("authCard.signIn")), he = d(() => R.texts.noAccount ?? z("authCard.noAccount")), ge = d(() => R.texts.register ?? z("authCard.register"));
36
+ T(Y, () => {
37
+ Z.value = "";
38
+ }), T(X, () => {
39
+ Q.value = "";
40
+ });
41
+ function _e() {
42
+ if (R.submitting) return;
43
+ Z.value = "", Q.value = "";
44
+ let e = !0;
45
+ (!Y.value || !re.test(Y.value)) && (Z.value = z("authCard.invalidEmail"), e = !1), X.value ? [...X.value].length < R.passwordMinLength && (Q.value = z("authCard.passwordTooShort", { min: R.passwordMinLength }), e = !1) : (Q.value = z("authCard.passwordRequired"), e = !1), e && B("login-submit", {
46
+ email: Y.value,
47
+ password: X.value
48
+ });
49
+ }
50
+ return (e, t) => (b(), f(o, {
51
+ class: y(V.value),
52
+ variant: "default"
53
+ }, {
54
+ default: E(() => [
55
+ _(s, null, {
56
+ default: E(() => [_(ee, { class: "text-2xl" }, {
57
+ default: E(() => [g(S(se.value), 1)]),
58
+ _: 1
59
+ }), _(c, null, {
60
+ default: E(() => [g(S(ce.value), 1)]),
61
+ _: 1
62
+ })]),
63
+ _: 1
64
+ }),
65
+ _(u, null, {
66
+ default: E(() => [
67
+ h("div", ie, [_(r, {
68
+ variant: "outline",
69
+ class: "w-full",
70
+ disabled: v.submitting,
71
+ onClick: t[0] ||= (e) => B("google-click")
72
+ }, {
73
+ default: E(() => [(b(), m("svg", {
74
+ class: y(C(W)),
75
+ viewBox: "0 0 24 24",
76
+ "aria-hidden": "true"
77
+ }, [...t[6] ||= [
78
+ h("path", {
79
+ d: "M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92a5.06 5.06 0 0 1-2.2 3.32v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.1z",
80
+ fill: "var(--brutal-info)"
81
+ }, null, -1),
82
+ h("path", {
83
+ d: "M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z",
84
+ fill: "var(--brutal-success)"
85
+ }, null, -1),
86
+ h("path", {
87
+ d: "M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z",
88
+ fill: "var(--brutal-accent)"
89
+ }, null, -1),
90
+ h("path", {
91
+ d: "M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z",
92
+ fill: "var(--brutal-destructive)"
93
+ }, null, -1)
94
+ ]], 2)), g(" " + S(le.value), 1)]),
95
+ _: 1
96
+ }, 8, ["disabled"]), _(r, {
97
+ variant: "outline",
98
+ class: "w-full",
99
+ disabled: v.submitting,
100
+ onClick: t[1] ||= (e) => B("github-click")
101
+ }, {
102
+ default: E(() => [(b(), m("svg", {
103
+ class: y(C(W)),
104
+ fill: "currentColor",
105
+ viewBox: "0 0 24 24",
106
+ "aria-hidden": "true"
107
+ }, [...t[7] ||= [h("path", { d: "M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z" }, null, -1)]], 2)), g(" " + S(ue.value), 1)]),
108
+ _: 1
109
+ }, 8, ["disabled"])]),
110
+ h("div", ae, [t[8] ||= h("div", { class: "absolute inset-0 flex items-center" }, [h("div", { class: "w-full border-t-3 border-brutal" })], -1), h("div", oe, [h("span", O, S(de.value), 1)])]),
111
+ h("form", {
112
+ class: "space-y-4",
113
+ onSubmit: D(_e, ["prevent"])
114
+ }, [
115
+ h("div", k, [
116
+ _(i, { for: C(G) }, {
117
+ default: E(() => [g(S(fe.value), 1)]),
118
+ _: 1
119
+ }, 8, ["for"]),
120
+ h("div", A, [_(C(ne), {
121
+ class: y(U.value),
122
+ "aria-hidden": "true"
123
+ }, null, 8, ["class"]), _(a, {
124
+ id: C(G),
125
+ modelValue: Y.value,
126
+ "onUpdate:modelValue": t[2] ||= (e) => Y.value = e,
127
+ type: "email",
128
+ autocomplete: "email",
129
+ variant: Z.value ? "error" : "default",
130
+ "aria-describedby": Z.value ? C(q) : void 0,
131
+ placeholder: C(z)("authCard.emailPlaceholder"),
132
+ size: "default",
133
+ class: "pl-10"
134
+ }, null, 8, [
135
+ "id",
136
+ "modelValue",
137
+ "variant",
138
+ "aria-describedby",
139
+ "placeholder"
140
+ ])]),
141
+ Z.value ? (b(), m("p", {
142
+ key: 0,
143
+ id: C(q),
144
+ class: "text-sm font-bold text-brutal-destructive"
145
+ }, S(Z.value), 9, j)) : p("", !0)
146
+ ]),
147
+ h("div", M, [
148
+ h("div", N, [_(i, { for: C(K) }, {
149
+ default: E(() => [g(S(pe.value), 1)]),
150
+ _: 1
151
+ }, 8, ["for"]), _(r, {
152
+ type: "button",
153
+ variant: "link",
154
+ class: "text-sm font-bold text-brutal-primary",
155
+ onClick: t[3] ||= (e) => B("forgot-password")
156
+ }, {
157
+ default: E(() => [g(S($.value), 1)]),
158
+ _: 1
159
+ })]),
160
+ h("div", P, [_(C(te), {
161
+ class: y(U.value),
162
+ "aria-hidden": "true"
163
+ }, null, 8, ["class"]), _(a, {
164
+ id: C(K),
165
+ modelValue: X.value,
166
+ "onUpdate:modelValue": t[4] ||= (e) => X.value = e,
167
+ type: "password",
168
+ "show-password": "",
169
+ autocomplete: "current-password",
170
+ variant: Q.value ? "error" : "default",
171
+ "aria-describedby": Q.value ? C(J) : void 0,
172
+ placeholder: C(z)("authCard.passwordPlaceholder"),
173
+ size: "default",
174
+ class: "pl-10"
175
+ }, null, 8, [
176
+ "id",
177
+ "modelValue",
178
+ "variant",
179
+ "aria-describedby",
180
+ "placeholder"
181
+ ])]),
182
+ Q.value ? (b(), m("p", {
183
+ key: 0,
184
+ id: C(J),
185
+ class: "text-sm font-bold text-brutal-destructive"
186
+ }, S(Q.value), 9, F)) : p("", !0)
187
+ ]),
188
+ _(r, {
189
+ type: "submit",
190
+ variant: "primary",
191
+ class: "w-full",
192
+ loading: v.submitting
193
+ }, {
194
+ default: E(() => [g(S(me.value), 1)]),
195
+ _: 1
196
+ }, 8, ["loading"])
197
+ ], 32)
198
+ ]),
199
+ _: 1
200
+ }),
201
+ _(l, { class: "justify-center" }, {
202
+ default: E(() => [h("p", I, [g(S(he.value) + " ", 1), _(r, {
203
+ type: "button",
204
+ variant: "link",
205
+ class: "font-bold text-brutal-primary",
206
+ onClick: t[5] ||= (e) => B("register-click")
207
+ }, {
208
+ default: E(() => [g(S(ge.value), 1)]),
209
+ _: 1
210
+ })])]),
211
+ _: 1
212
+ })
213
+ ]),
214
+ _: 1
215
+ }, 8, ["class"]));
216
+ }
217
+ });
218
+ //#endregion
219
+ export { L as t };