@gspa/ui 0.1.3 → 0.1.4

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 (196) hide show
  1. package/README.md +18 -0
  2. package/dist/_plugin-vue_export-helper-BHFhmbuH.cjs +1 -0
  3. package/dist/_plugin-vue_export-helper-CHgC5LLL.js +9 -0
  4. package/dist/components/Accordion.cjs +1 -0
  5. package/dist/components/Accordion.js +192 -0
  6. package/dist/components/AccordionItem.cjs +1 -0
  7. package/dist/components/AccordionItem.js +109 -0
  8. package/dist/components/AddReminderModal.cjs +1 -0
  9. package/dist/components/AddReminderModal.js +107 -0
  10. package/dist/components/Alert.cjs +1 -0
  11. package/dist/components/Alert.js +222 -0
  12. package/dist/components/Avatar.cjs +1 -0
  13. package/dist/components/Avatar.js +86 -0
  14. package/dist/components/Badge.cjs +1 -0
  15. package/dist/components/Badge.js +109 -0
  16. package/dist/components/Breadcrumb.cjs +1 -0
  17. package/dist/components/Breadcrumb.js +72 -0
  18. package/dist/components/Button.cjs +1 -0
  19. package/dist/components/Button.js +190 -0
  20. package/dist/components/ButtonGroup.cjs +1 -0
  21. package/dist/components/ButtonGroup.js +46 -0
  22. package/dist/components/Calendar.cjs +1 -0
  23. package/dist/components/Calendar.js +341 -0
  24. package/dist/components/Card.cjs +1 -0
  25. package/dist/components/Card.js +316 -0
  26. package/dist/components/CardBody.cjs +1 -0
  27. package/dist/components/CardBody.js +34 -0
  28. package/dist/components/CardContent.cjs +1 -0
  29. package/dist/components/CardContent.js +17 -0
  30. package/dist/components/CardFooter.cjs +1 -0
  31. package/dist/components/CardFooter.js +34 -0
  32. package/dist/components/CardHeader.cjs +1 -0
  33. package/dist/components/CardHeader.js +91 -0
  34. package/dist/components/CardTitle.cjs +1 -0
  35. package/dist/components/CardTitle.js +17 -0
  36. package/dist/components/Checkbox.cjs +1 -0
  37. package/dist/components/Checkbox.js +185 -0
  38. package/dist/components/CircularProgress.cjs +1 -0
  39. package/dist/components/CircularProgress.js +141 -0
  40. package/dist/components/DataTable.cjs +1 -0
  41. package/dist/components/DataTable.js +863 -0
  42. package/dist/components/DataTableCell.cjs +1 -0
  43. package/dist/components/DataTableCell.js +95 -0
  44. package/dist/components/DataTableFilters.cjs +1 -0
  45. package/dist/components/DataTableFilters.js +519 -0
  46. package/dist/components/DataTableHeader.cjs +1 -0
  47. package/dist/components/DataTableHeader.js +116 -0
  48. package/dist/components/DataTablePagination.cjs +1 -0
  49. package/dist/components/DataTablePagination.js +290 -0
  50. package/dist/components/DataTableRow.cjs +1 -0
  51. package/dist/components/DataTableRow.js +199 -0
  52. package/dist/components/DataTableToolBar.cjs +1 -0
  53. package/dist/components/DataTableToolBar.js +477 -0
  54. package/dist/components/DatePicker.cjs +1 -0
  55. package/dist/components/DatePicker.js +401 -0
  56. package/dist/components/Divider.cjs +1 -0
  57. package/dist/components/Divider.js +103 -0
  58. package/dist/components/Dropdown.cjs +1 -0
  59. package/dist/components/Dropdown.js +104 -0
  60. package/dist/components/DropdownItem.cjs +1 -0
  61. package/dist/components/DropdownItem.js +60 -0
  62. package/dist/components/EventsCalendar.cjs +1 -0
  63. package/dist/components/EventsCalendar.js +863 -0
  64. package/dist/components/FileUpload.cjs +1 -0
  65. package/dist/components/FileUpload.js +195 -0
  66. package/dist/components/FilterDrawer.cjs +1 -0
  67. package/dist/components/FilterDrawer.js +412 -0
  68. package/dist/components/Footer.cjs +1 -0
  69. package/dist/components/Footer.js +157 -0
  70. package/dist/components/FormField.cjs +1 -0
  71. package/dist/components/FormField.js +190 -0
  72. package/dist/components/Graph.cjs +1 -0
  73. package/dist/components/Graph.js +164 -0
  74. package/dist/components/GraphFilters.cjs +1 -0
  75. package/dist/components/GraphFilters.js +305 -0
  76. package/dist/components/Header.cjs +1 -0
  77. package/dist/components/Header.js +674 -0
  78. package/dist/components/Icon.cjs +1 -0
  79. package/dist/components/Icon.js +51 -0
  80. package/dist/components/Image.cjs +1 -0
  81. package/dist/components/Image.js +112 -0
  82. package/dist/components/Input.cjs +1 -0
  83. package/dist/components/Input.js +166 -0
  84. package/dist/components/InputGroup.cjs +1 -0
  85. package/dist/components/InputGroup.js +45 -0
  86. package/dist/components/Label.cjs +1 -0
  87. package/dist/components/Label.js +46 -0
  88. package/dist/components/Link.cjs +1 -0
  89. package/dist/components/Link.js +119 -0
  90. package/dist/components/ListItem.cjs +1 -0
  91. package/dist/components/ListItem.js +89 -0
  92. package/dist/components/Loader.cjs +1 -0
  93. package/dist/components/Loader.js +154 -0
  94. package/dist/components/Logo.cjs +1 -0
  95. package/dist/components/Logo.js +67 -0
  96. package/dist/components/MenuItem.cjs +1 -0
  97. package/dist/components/MenuItem.js +66 -0
  98. package/dist/components/Modal.cjs +1 -0
  99. package/dist/components/Modal.js +110 -0
  100. package/dist/components/ModalBody.cjs +1 -0
  101. package/dist/components/ModalBody.js +33 -0
  102. package/dist/components/ModalFooter.cjs +1 -0
  103. package/dist/components/ModalFooter.js +33 -0
  104. package/dist/components/ModalHeader.cjs +1 -0
  105. package/dist/components/ModalHeader.js +24 -0
  106. package/dist/components/MultiSelect.cjs +1 -0
  107. package/dist/components/MultiSelect.js +211 -0
  108. package/dist/components/Notification.cjs +1 -0
  109. package/dist/components/Notification.js +121 -0
  110. package/dist/components/Option.cjs +1 -0
  111. package/dist/components/Option.js +44 -0
  112. package/dist/components/Progress.cjs +1 -0
  113. package/dist/components/Progress.js +77 -0
  114. package/dist/components/ProgressBar.cjs +1 -0
  115. package/dist/components/ProgressBar.js +101 -0
  116. package/dist/components/Radio.cjs +1 -0
  117. package/dist/components/Radio.js +81 -0
  118. package/dist/components/RailNav.cjs +1 -0
  119. package/dist/components/RailNav.js +124 -0
  120. package/dist/components/ReminderConfig.cjs +1 -0
  121. package/dist/components/ReminderConfig.js +375 -0
  122. package/dist/components/ReusableForm.cjs +1 -0
  123. package/dist/components/ReusableForm.js +657 -0
  124. package/dist/components/ReusableFormModal.cjs +1 -0
  125. package/dist/components/ReusableFormModal.js +112 -0
  126. package/dist/components/RightDrawer.cjs +1 -0
  127. package/dist/components/RightDrawer.js +143 -0
  128. package/dist/components/Search.cjs +1 -0
  129. package/dist/components/Search.js +252 -0
  130. package/dist/components/Select.cjs +1 -0
  131. package/dist/components/Select.js +243 -0
  132. package/dist/components/Sidebar.cjs +1 -0
  133. package/dist/components/Sidebar.js +372 -0
  134. package/dist/components/Slider.cjs +1 -0
  135. package/dist/components/Slider.js +42 -0
  136. package/dist/components/Spinner.cjs +1 -0
  137. package/dist/components/Spinner.js +87 -0
  138. package/dist/components/Stepper.cjs +1 -0
  139. package/dist/components/Stepper.js +12 -0
  140. package/dist/components/StepperItem.cjs +1 -0
  141. package/dist/components/StepperItem.js +33 -0
  142. package/dist/components/Switch.cjs +1 -0
  143. package/dist/components/Switch.js +112 -0
  144. package/dist/components/Tab.cjs +1 -0
  145. package/dist/components/Tab.js +134 -0
  146. package/dist/components/TabPanel.cjs +1 -0
  147. package/dist/components/TabPanel.js +49 -0
  148. package/dist/components/Text.cjs +1 -0
  149. package/dist/components/Text.js +84 -0
  150. package/dist/components/Textarea.cjs +1 -0
  151. package/dist/components/Textarea.js +102 -0
  152. package/dist/components/ThemeConfigurator.cjs +1 -0
  153. package/dist/components/ThemeConfigurator.js +50 -0
  154. package/dist/components/Timeline.cjs +1 -0
  155. package/dist/components/Timeline.js +24 -0
  156. package/dist/components/TimelineItem.cjs +1 -0
  157. package/dist/components/TimelineItem.js +63 -0
  158. package/dist/components/Toast.cjs +1 -0
  159. package/dist/components/Toast.js +231 -0
  160. package/dist/components/Tooltip.cjs +1 -0
  161. package/dist/components/Tooltip.js +124 -0
  162. package/dist/components/Typography.cjs +1 -0
  163. package/dist/components/Typography.js +267 -0
  164. package/dist/components/charts/BarChart.cjs +1 -0
  165. package/dist/components/charts/BarChart.js +323 -0
  166. package/dist/components/charts/LineChart.cjs +1 -0
  167. package/dist/components/charts/LineChart.js +322 -0
  168. package/dist/components/charts/PieChart.cjs +1 -0
  169. package/dist/components/charts/PieChart.js +311 -0
  170. package/dist/components/charts/StackedBarChart.cjs +1 -0
  171. package/dist/components/charts/StackedBarChart.js +348 -0
  172. package/dist/components/widgets/DashboardWidget.cjs +1 -0
  173. package/dist/components/widgets/DashboardWidget.js +309 -0
  174. package/dist/directives/tooltip.cjs +47 -0
  175. package/dist/directives/tooltip.js +115 -0
  176. package/dist/index.cjs +1 -0
  177. package/dist/index.esm.js +311 -19548
  178. package/dist/layouts/AuthLayout.cjs +1 -0
  179. package/dist/layouts/AuthLayout.js +190 -0
  180. package/dist/layouts/DashboardLayout.cjs +1 -0
  181. package/dist/layouts/DashboardLayout.js +244 -0
  182. package/dist/layouts/DefaultLayout.cjs +1 -0
  183. package/dist/layouts/DefaultLayout.js +94 -0
  184. package/dist/layouts/ErrorLayout.cjs +1 -0
  185. package/dist/layouts/ErrorLayout.js +452 -0
  186. package/dist/lib/auth.cjs +1 -0
  187. package/dist/lib/auth.js +4 -0
  188. package/dist/lib/theme.cjs +1 -0
  189. package/dist/lib/theme.js +135 -0
  190. package/dist/lib/toast.cjs +1 -0
  191. package/dist/lib/toast.js +81 -0
  192. package/dist/tsconfig.tsbuildinfo +1 -1
  193. package/dist/utils/cn.cjs +1 -0
  194. package/dist/utils/cn.js +7 -0
  195. package/package.json +37 -7
  196. package/dist/index.js +0 -605
@@ -0,0 +1,42 @@
1
+ import { computed as d, createElementBlock as N, openBlock as f, createElementVNode as l, normalizeStyle as p, toDisplayString as r } from "vue";
2
+ const x = { class: "w-full" }, b = ["min", "max", "step", "value"], y = { class: "flex justify-between text-xs ui-text mt-1" }, h = {
3
+ __name: "Slider",
4
+ props: {
5
+ modelValue: { type: [Number, String], default: 0 },
6
+ min: { type: Number, default: 0 },
7
+ max: { type: Number, default: 100 },
8
+ step: { type: Number, default: 1 }
9
+ },
10
+ emits: ["update:modelValue"],
11
+ setup(e, { emit: i }) {
12
+ const m = e, s = i, o = d(() => {
13
+ const a = Number(m.modelValue), t = Number(m.min), u = Number(m.max);
14
+ if (Number.isNaN(a) || Number.isNaN(t) || Number.isNaN(u) || u <= t)
15
+ return "var(--ui-primary)";
16
+ const n = (Math.min(Math.max(a, t), u) - t) / (u - t);
17
+ return n <= 0.2 ? "#16a34a" : n <= 0.4 ? "#65a30d" : n <= 0.6 ? "#eab308" : n <= 0.8 ? "#f97316" : "#dc2626";
18
+ }), c = (a) => {
19
+ s("update:modelValue", Number(a.target.value));
20
+ };
21
+ return (a, t) => (f(), N("div", x, [
22
+ l("input", {
23
+ type: "range",
24
+ min: e.min,
25
+ max: e.max,
26
+ step: e.step,
27
+ value: e.modelValue,
28
+ class: "w-full cursor-pointer",
29
+ style: p({ accentColor: o.value }),
30
+ onInput: c
31
+ }, null, 44, b),
32
+ l("div", y, [
33
+ l("span", null, r(e.min), 1),
34
+ l("span", null, r(e.modelValue), 1),
35
+ l("span", null, r(e.max), 1)
36
+ ])
37
+ ]));
38
+ }
39
+ };
40
+ export {
41
+ h as default
42
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),l=require("class-variance-authority"),c=require("../utils/cn.cjs"),u=["aria-label"],d={key:0,class:"sr-only"},m={__name:"Spinner",props:{size:{type:String,default:"md",validator:t=>["xs","sm","md","lg","xl"].includes(t)},variant:{type:String,default:"default",validator:t=>["default","primary","secondary"].includes(t)},label:{type:String,default:"Loading..."},class:String},setup(t){const a=t,n=l.cva("inline-flex items-center justify-center",{variants:{variant:{default:"text-muted-foreground",primary:"ui-primary",secondary:"text-secondary-foreground"}}}),r=l.cva("animate-spin",{variants:{size:{xs:"h-3 w-3",sm:"h-4 w-4",md:"h-6 w-6",lg:"h-8 w-8",xl:"h-12 w-12"}}}),i=e.computed(()=>c.cn(n({variant:a.variant}),a.class)),o=e.computed(()=>r({size:a.size}));return(p,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(i.value),role:"status","aria-label":t.label},[(e.openBlock(),e.createElementBlock("svg",{class:e.normalizeClass(o.value),xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},[...s[0]||(s[0]=[e.createElementVNode("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"},null,-1),e.createElementVNode("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"},null,-1)])],2)),t.label?(e.openBlock(),e.createElementBlock("span",d,e.toDisplayString(t.label),1)):e.createCommentVNode("",!0)],10,u))}};exports.default=m;
@@ -0,0 +1,87 @@
1
+ import { computed as l, createElementBlock as a, openBlock as s, normalizeClass as n, createCommentVNode as p, createElementVNode as i, toDisplayString as f } from "vue";
2
+ import { cva as o } from "class-variance-authority";
3
+ import { cn as v } from "../utils/cn.js";
4
+ const y = ["aria-label"], g = {
5
+ key: 0,
6
+ class: "sr-only"
7
+ }, C = {
8
+ __name: "Spinner",
9
+ props: {
10
+ size: {
11
+ type: String,
12
+ default: "md",
13
+ validator: (e) => ["xs", "sm", "md", "lg", "xl"].includes(e)
14
+ },
15
+ variant: {
16
+ type: String,
17
+ default: "default",
18
+ validator: (e) => ["default", "primary", "secondary"].includes(e)
19
+ },
20
+ label: {
21
+ type: String,
22
+ default: "Loading..."
23
+ },
24
+ class: String
25
+ },
26
+ setup(e) {
27
+ const t = e, c = o(
28
+ "inline-flex items-center justify-center",
29
+ {
30
+ variants: {
31
+ variant: {
32
+ default: "text-muted-foreground",
33
+ primary: "ui-primary",
34
+ secondary: "text-secondary-foreground"
35
+ }
36
+ }
37
+ }
38
+ ), d = o(
39
+ "animate-spin",
40
+ {
41
+ variants: {
42
+ size: {
43
+ xs: "h-3 w-3",
44
+ sm: "h-4 w-4",
45
+ md: "h-6 w-6",
46
+ lg: "h-8 w-8",
47
+ xl: "h-12 w-12"
48
+ }
49
+ }
50
+ }
51
+ ), m = l(
52
+ () => v(c({ variant: t.variant }), t.class)
53
+ ), u = l(
54
+ () => d({ size: t.size })
55
+ );
56
+ return (x, r) => (s(), a("div", {
57
+ class: n(m.value),
58
+ role: "status",
59
+ "aria-label": e.label
60
+ }, [
61
+ (s(), a("svg", {
62
+ class: n(u.value),
63
+ xmlns: "http://www.w3.org/2000/svg",
64
+ fill: "none",
65
+ viewBox: "0 0 24 24"
66
+ }, [...r[0] || (r[0] = [
67
+ i("circle", {
68
+ class: "opacity-25",
69
+ cx: "12",
70
+ cy: "12",
71
+ r: "10",
72
+ stroke: "currentColor",
73
+ "stroke-width": "4"
74
+ }, null, -1),
75
+ i("path", {
76
+ class: "opacity-75",
77
+ fill: "currentColor",
78
+ d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
79
+ }, null, -1)
80
+ ])], 2)),
81
+ e.label ? (s(), a("span", g, f(e.label), 1)) : p("", !0)
82
+ ], 10, y));
83
+ }
84
+ };
85
+ export {
86
+ C as default
87
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),r={class:"flex items-center space-x-4 ui-text"},s={__name:"Stepper",setup(o){return(t,c)=>(e.openBlock(),e.createElementBlock("div",r,[e.renderSlot(t.$slots,"default")]))}};exports.default=s;
@@ -0,0 +1,12 @@
1
+ import { createElementBlock as t, openBlock as r, renderSlot as s } from "vue";
2
+ const o = { class: "flex items-center space-x-4 ui-text" }, l = {
3
+ __name: "Stepper",
4
+ setup(c) {
5
+ return (e, n) => (r(), t("div", o, [
6
+ s(e.$slots, "default")
7
+ ]));
8
+ }
9
+ };
10
+ export {
11
+ l as default
12
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),i={class:"flex items-center"},r={class:"ml-2"},s={class:"font-medium"},l={key:0,class:"text-sm ui-text"},o={__name:"StepperItem",props:{step:{type:Number,required:!0},title:{type:String,required:!0},description:{type:String,default:""},active:{type:Boolean,default:!1},completed:{type:Boolean,default:!1}},setup(t){return(c,n)=>(e.openBlock(),e.createElementBlock("div",i,[e.createElementVNode("div",{class:e.normalizeClass(["flex items-center justify-center w-8 h-8 rounded-full border-2",t.active?"ui-primary-bg border-(--ui-primary) ui-text":t.completed?"ui-success-bg border-(--ui-success) ui-text":"ui-border-strong ui-text"])},[e.createElementVNode("span",null,e.toDisplayString(t.step),1)],2),e.createElementVNode("div",r,[e.createElementVNode("div",s,e.toDisplayString(t.title),1),t.description?(e.openBlock(),e.createElementBlock("div",l,e.toDisplayString(t.description),1)):e.createCommentVNode("",!0)])]))}};exports.default=o;
@@ -0,0 +1,33 @@
1
+ import { createElementBlock as s, openBlock as r, createElementVNode as t, normalizeClass as c, toDisplayString as i, createCommentVNode as o } from "vue";
2
+ const l = { class: "flex items-center" }, n = { class: "ml-2" }, d = { class: "font-medium" }, u = {
3
+ key: 0,
4
+ class: "text-sm ui-text"
5
+ }, f = {
6
+ __name: "StepperItem",
7
+ props: {
8
+ step: { type: Number, required: !0 },
9
+ title: { type: String, required: !0 },
10
+ description: { type: String, default: "" },
11
+ active: { type: Boolean, default: !1 },
12
+ completed: { type: Boolean, default: !1 }
13
+ },
14
+ setup(e) {
15
+ return (a, m) => (r(), s("div", l, [
16
+ t("div", {
17
+ class: c([
18
+ "flex items-center justify-center w-8 h-8 rounded-full border-2",
19
+ e.active ? "ui-primary-bg border-(--ui-primary) ui-text" : e.completed ? "ui-success-bg border-(--ui-success) ui-text" : "ui-border-strong ui-text"
20
+ ])
21
+ }, [
22
+ t("span", null, i(e.step), 1)
23
+ ], 2),
24
+ t("div", n, [
25
+ t("div", d, i(e.title), 1),
26
+ e.description ? (r(), s("div", u, i(e.description), 1)) : o("", !0)
27
+ ])
28
+ ]));
29
+ }
30
+ };
31
+ export {
32
+ f as default
33
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const s=require("vue"),t=require("class-variance-authority"),u=require("../utils/cn.cjs"),m=["aria-checked","disabled"],h={__name:"Switch",props:{modelValue:Boolean,disabled:Boolean,size:{type:String,default:"md",validator:a=>["sm","md","lg"].includes(a)},class:String},emits:["update:modelValue"],setup(a,{emit:l}){const e=a,i=l,c=t.cva("inline-flex shrink-0 cursor-pointer items-center rounded-full border-2 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-(--ui-ring) focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",{variants:{size:{sm:"h-5 w-9",md:"h-6 w-11",lg:"h-7 w-12"},checked:{true:"ui-danger-bg border-(--ui-danger)",false:"ui-surface-soft border-(--ui-border-strong)"}}}),r=t.cva("pointer-events-none block rounded-full ui-surface border ui-border-strong shadow-sm ring-0 transition-transform",{variants:{size:{sm:"h-4 w-4",md:"h-5 w-5",lg:"h-6 w-6"},checked:{true:"",false:""}},compoundVariants:[{size:"sm",checked:!0,class:"translate-x-4"},{size:"sm",checked:!1,class:"translate-x-0"},{size:"md",checked:!0,class:"translate-x-5"},{size:"md",checked:!1,class:"translate-x-0"},{size:"lg",checked:!0,class:"translate-x-5"},{size:"lg",checked:!1,class:"translate-x-0"}]}),o=s.computed(()=>u.cn(c({size:e.size,checked:e.modelValue}),e.class)),n=s.computed(()=>r({size:e.size,checked:e.modelValue})),d=()=>{e.disabled||i("update:modelValue",!e.modelValue)};return(b,f)=>(s.openBlock(),s.createElementBlock("button",{type:"button",role:"switch","aria-checked":a.modelValue,disabled:a.disabled,class:s.normalizeClass(o.value),onClick:d},[s.createElementVNode("span",{class:s.normalizeClass(n.value)},null,2)],10,m))}};exports.default=h;
@@ -0,0 +1,112 @@
1
+ import { computed as a, createElementBlock as m, openBlock as h, normalizeClass as t, createElementVNode as f } from "vue";
2
+ import { cva as l } from "class-variance-authority";
3
+ import { cn as b } from "../utils/cn.js";
4
+ const g = ["aria-checked", "disabled"], V = {
5
+ __name: "Switch",
6
+ props: {
7
+ modelValue: Boolean,
8
+ disabled: Boolean,
9
+ size: {
10
+ type: String,
11
+ default: "md",
12
+ validator: (s) => ["sm", "md", "lg"].includes(s)
13
+ },
14
+ class: String
15
+ },
16
+ emits: ["update:modelValue"],
17
+ setup(s, { emit: i }) {
18
+ const e = s, o = i, r = l(
19
+ "inline-flex shrink-0 cursor-pointer items-center rounded-full border-2 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-(--ui-ring) focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
20
+ {
21
+ variants: {
22
+ size: {
23
+ sm: "h-5 w-9",
24
+ md: "h-6 w-11",
25
+ lg: "h-7 w-12"
26
+ },
27
+ checked: {
28
+ true: "ui-danger-bg border-(--ui-danger)",
29
+ false: "ui-surface-soft border-(--ui-border-strong)"
30
+ }
31
+ }
32
+ }
33
+ ), c = l(
34
+ "pointer-events-none block rounded-full ui-surface border ui-border-strong shadow-sm ring-0 transition-transform",
35
+ {
36
+ variants: {
37
+ size: {
38
+ sm: "h-4 w-4",
39
+ md: "h-5 w-5",
40
+ lg: "h-6 w-6"
41
+ },
42
+ checked: {
43
+ true: "",
44
+ false: ""
45
+ }
46
+ },
47
+ compoundVariants: [
48
+ {
49
+ size: "sm",
50
+ checked: !0,
51
+ class: "translate-x-4"
52
+ },
53
+ {
54
+ size: "sm",
55
+ checked: !1,
56
+ class: "translate-x-0"
57
+ },
58
+ {
59
+ size: "md",
60
+ checked: !0,
61
+ class: "translate-x-5"
62
+ },
63
+ {
64
+ size: "md",
65
+ checked: !1,
66
+ class: "translate-x-0"
67
+ },
68
+ {
69
+ size: "lg",
70
+ checked: !0,
71
+ class: "translate-x-5"
72
+ },
73
+ {
74
+ size: "lg",
75
+ checked: !1,
76
+ class: "translate-x-0"
77
+ }
78
+ ]
79
+ }
80
+ ), n = a(
81
+ () => b(
82
+ r({
83
+ size: e.size,
84
+ checked: e.modelValue
85
+ }),
86
+ e.class
87
+ )
88
+ ), d = a(
89
+ () => c({
90
+ size: e.size,
91
+ checked: e.modelValue
92
+ })
93
+ ), u = () => {
94
+ e.disabled || o("update:modelValue", !e.modelValue);
95
+ };
96
+ return (k, p) => (h(), m("button", {
97
+ type: "button",
98
+ role: "switch",
99
+ "aria-checked": s.modelValue,
100
+ disabled: s.disabled,
101
+ class: t(n.value),
102
+ onClick: u
103
+ }, [
104
+ f("span", {
105
+ class: t(d.value)
106
+ }, null, 2)
107
+ ], 10, g));
108
+ }
109
+ };
110
+ export {
111
+ V as default
112
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("vue"),w=require("class-variance-authority"),x=require("../utils/cn.cjs"),_={class:"w-full"},k={class:"relative inline-flex w-full gap-2 rounded-xl border ui-border-strong ui-surface-muted p-1.5",role:"tablist"},V=["id","disabled","aria-selected","aria-controls","onKeydown","onClick"],z={class:"mt-4"},E={__name:"Tab",props:{defaultIndex:{type:Number,default:0},modelValue:{type:Number,default:null},size:{type:String,default:"sm"},variant:{type:String,default:"default"},loading:{type:Boolean,default:!1}},emits:["tab-change","update:modelValue"],setup(m,{emit:b}){const o=m,g=w.cva("relative z-10 rounded-lg font-medium transition-all duration-200 border border-transparent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-(--ui-primary)",{variants:{size:{sm:"px-2.5 py-1 text-[11px]",md:"px-3 py-1.5 text-xs",lg:"px-3.5 py-2 text-sm"},variant:{default:""}},defaultVariants:{size:"md",variant:"default"}}),l=t.ref(o.modelValue??o.defaultIndex),n=t.ref([]),c=t.ref([]),v=t.ref({width:"0px",transform:"translateX(0px)"}),i=e=>{e<0||e>=n.value.length||(l.value=e,d("update:modelValue",e),d("tab-change",e),s())};t.watch(()=>o.modelValue,e=>{typeof e=="number"&&e!==l.value&&(l.value=e,s())});const d=b,y=(e,r)=>{c.value[r]=e||null},f=e=>{const r=c.value[e];r&&typeof r.focus=="function"&&r.focus()},h=(e,r)=>{if(o.loading)return;const u=n.value.length-1;if(!(u<0)){if(e.key==="ArrowRight"){e.preventDefault();const a=r>=u?0:r+1;i(a),f(a);return}if(e.key==="ArrowLeft"){e.preventDefault();const a=r<=0?u:r-1;i(a),f(a);return}if(e.key==="Home"){e.preventDefault(),i(0),f(0);return}e.key==="End"&&(e.preventDefault(),i(u),f(u))}},s=()=>{t.nextTick(()=>{const e=c.value[l.value];if(!e){v.value={width:"0px",transform:"translateX(0px)"};return}v.value={width:`${e.offsetWidth}px`,transform:`translateX(${e.offsetLeft}px)`}})};return t.watch(()=>n.value.length,()=>{s()}),t.watch(l,()=>{s()}),t.onMounted(()=>{s(),window.addEventListener("resize",s)}),t.onUnmounted(()=>{window.removeEventListener("resize",s)}),t.provide("tabsContext",{activeIndex:l,tabs:n,registerTab:e=>{n.value.push({label:e});const r=n.value.length-1;return s(),r},unregisterTab:e=>{n.value.splice(e,1),c.value.splice(e,1),l.value>=n.value.length&&(l.value=Math.max(n.value.length-1,0),d("update:modelValue",l.value),d("tab-change",l.value)),s()}}),(e,r)=>(t.openBlock(),t.createElementBlock("div",_,[t.createElementVNode("div",k,[t.createElementVNode("span",{class:"pointer-events-none absolute top-1.5 bottom-1.5 rounded-lg bg-(--ui-primary) opacity-10 transition-all duration-250 ease-out z-0",style:t.normalizeStyle(v.value)},null,4),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(n.value,(u,a)=>(t.openBlock(),t.createElementBlock("button",{id:`tab-${a}`,key:a,ref_for:!0,ref:p=>y(p,a),disabled:o.loading,class:t.normalizeClass(t.unref(x.cn)(t.unref(g)({size:o.size,variant:o.variant}),l.value===a?"bg-(--ui-primary) text-(--ui-text-inverse) shadow-sm":"border-transparent ui-text-muted hover:ui-text hover:bg-(--ui-surface)",o.loading&&"cursor-not-allowed opacity-50")),"aria-selected":l.value===a,"aria-controls":`panel-${a}`,role:"tab",tabindex:"0",onKeydown:p=>h(p,a),onClick:p=>!o.loading&&i(a)},t.toDisplayString(u.label),43,V))),128))]),t.createElementVNode("div",z,[t.renderSlot(e.$slots,"default")])]))}};exports.default=E;
@@ -0,0 +1,134 @@
1
+ import { ref as p, watch as m, nextTick as V, onMounted as T, onUnmounted as I, provide as E, createElementBlock as b, openBlock as g, createElementVNode as y, normalizeStyle as S, Fragment as $, renderList as D, normalizeClass as L, unref as h, toDisplayString as C, renderSlot as B } from "vue";
2
+ import { cva as K } from "class-variance-authority";
3
+ import { cn as N } from "../utils/cn.js";
4
+ const R = { class: "w-full" }, X = {
5
+ class: "relative inline-flex w-full gap-2 rounded-xl border ui-border-strong ui-surface-muted p-1.5",
6
+ role: "tablist"
7
+ }, A = ["id", "disabled", "aria-selected", "aria-controls", "onKeydown", "onClick"], M = { class: "mt-4" }, W = {
8
+ __name: "Tab",
9
+ props: {
10
+ defaultIndex: { type: Number, default: 0 },
11
+ modelValue: { type: Number, default: null },
12
+ size: { type: String, default: "sm" },
13
+ variant: { type: String, default: "default" },
14
+ loading: { type: Boolean, default: !1 }
15
+ },
16
+ emits: ["tab-change", "update:modelValue"],
17
+ setup(x, { emit: w }) {
18
+ const n = x, _ = K(
19
+ "relative z-10 rounded-lg font-medium transition-all duration-200 border border-transparent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-(--ui-primary)",
20
+ {
21
+ variants: {
22
+ size: {
23
+ sm: "px-2.5 py-1 text-[11px]",
24
+ md: "px-3 py-1.5 text-xs",
25
+ lg: "px-3.5 py-2 text-sm"
26
+ },
27
+ variant: {
28
+ default: ""
29
+ }
30
+ },
31
+ defaultVariants: {
32
+ size: "md",
33
+ variant: "default"
34
+ }
35
+ }
36
+ ), r = p(n.modelValue ?? n.defaultIndex), l = p([]), i = p([]), v = p({ width: "0px", transform: "translateX(0px)" }), u = (e) => {
37
+ e < 0 || e >= l.value.length || (r.value = e, d("update:modelValue", e), d("tab-change", e), o());
38
+ };
39
+ m(() => n.modelValue, (e) => {
40
+ typeof e == "number" && e !== r.value && (r.value = e, o());
41
+ });
42
+ const d = w, z = (e, a) => {
43
+ i.value[a] = e || null;
44
+ }, c = (e) => {
45
+ const a = i.value[e];
46
+ a && typeof a.focus == "function" && a.focus();
47
+ }, k = (e, a) => {
48
+ if (n.loading) return;
49
+ const s = l.value.length - 1;
50
+ if (!(s < 0)) {
51
+ if (e.key === "ArrowRight") {
52
+ e.preventDefault();
53
+ const t = a >= s ? 0 : a + 1;
54
+ u(t), c(t);
55
+ return;
56
+ }
57
+ if (e.key === "ArrowLeft") {
58
+ e.preventDefault();
59
+ const t = a <= 0 ? s : a - 1;
60
+ u(t), c(t);
61
+ return;
62
+ }
63
+ if (e.key === "Home") {
64
+ e.preventDefault(), u(0), c(0);
65
+ return;
66
+ }
67
+ e.key === "End" && (e.preventDefault(), u(s), c(s));
68
+ }
69
+ }, o = () => {
70
+ V(() => {
71
+ const e = i.value[r.value];
72
+ if (!e) {
73
+ v.value = { width: "0px", transform: "translateX(0px)" };
74
+ return;
75
+ }
76
+ v.value = {
77
+ width: `${e.offsetWidth}px`,
78
+ transform: `translateX(${e.offsetLeft}px)`
79
+ };
80
+ });
81
+ };
82
+ return m(() => l.value.length, () => {
83
+ o();
84
+ }), m(r, () => {
85
+ o();
86
+ }), T(() => {
87
+ o(), window.addEventListener("resize", o);
88
+ }), I(() => {
89
+ window.removeEventListener("resize", o);
90
+ }), E("tabsContext", {
91
+ activeIndex: r,
92
+ tabs: l,
93
+ registerTab: (e) => {
94
+ l.value.push({ label: e });
95
+ const a = l.value.length - 1;
96
+ return o(), a;
97
+ },
98
+ unregisterTab: (e) => {
99
+ l.value.splice(e, 1), i.value.splice(e, 1), r.value >= l.value.length && (r.value = Math.max(l.value.length - 1, 0), d("update:modelValue", r.value), d("tab-change", r.value)), o();
100
+ }
101
+ }), (e, a) => (g(), b("div", R, [
102
+ y("div", X, [
103
+ y("span", {
104
+ class: "pointer-events-none absolute top-1.5 bottom-1.5 rounded-lg bg-(--ui-primary) opacity-10 transition-all duration-250 ease-out z-0",
105
+ style: S(v.value)
106
+ }, null, 4),
107
+ (g(!0), b($, null, D(l.value, (s, t) => (g(), b("button", {
108
+ id: `tab-${t}`,
109
+ key: t,
110
+ ref_for: !0,
111
+ ref: (f) => z(f, t),
112
+ disabled: n.loading,
113
+ class: L(h(N)(
114
+ h(_)({ size: n.size, variant: n.variant }),
115
+ r.value === t ? "bg-(--ui-primary) text-(--ui-text-inverse) shadow-sm" : "border-transparent ui-text-muted hover:ui-text hover:bg-(--ui-surface)",
116
+ n.loading && "cursor-not-allowed opacity-50"
117
+ )),
118
+ "aria-selected": r.value === t,
119
+ "aria-controls": `panel-${t}`,
120
+ role: "tab",
121
+ tabindex: "0",
122
+ onKeydown: (f) => k(f, t),
123
+ onClick: (f) => !n.loading && u(t)
124
+ }, C(s.label), 43, A))), 128))
125
+ ]),
126
+ y("div", M, [
127
+ B(e.$slots, "default")
128
+ ])
129
+ ]));
130
+ }
131
+ };
132
+ export {
133
+ W as default
134
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),r=require("./Spinner.cjs"),s=["id","aria-labelledby"],c={class:"rounded-xl border ui-border bg-(--ui-surface) p-2 shadow-xs"},u={key:0,class:"flex items-center justify-center p-8"},d={key:1,class:"transition-opacity duration-200 opacity-100"},b={__name:"TabPanel",props:{label:{type:String,required:!0},loading:{type:Boolean,default:!1}},setup(o){const i=o,l=e.inject("tabsContext");if(!l)throw new Error("TabPanel must be used within a Tab component");const t=e.ref(null),a=e.ref(!1);return e.onMounted(()=>{t.value=l.registerTab(i.label),a.value=l.activeIndex.value===t.value,e.watch(l.activeIndex,n=>{a.value=n===t.value})}),e.onUnmounted(()=>{t.value!==null&&l.unregisterTab(t.value)}),(n,v)=>e.withDirectives((e.openBlock(),e.createElementBlock("div",{id:`panel-${t.value}`,role:"tabpanel","aria-labelledby":`tab-${t.value}`,class:"ui-text"},[e.createElementVNode("div",c,[o.loading?(e.openBlock(),e.createElementBlock("div",u,[e.createVNode(r.default,{size:"lg",label:`Loading ${i.label}`},null,8,["label"])])):(e.openBlock(),e.createElementBlock("div",d,[e.renderSlot(n.$slots,"default")]))])],8,s)),[[e.vShow,a.value]])}};exports.default=b;
@@ -0,0 +1,49 @@
1
+ import { inject as c, ref as r, onMounted as d, watch as u, onUnmounted as b, withDirectives as v, createElementBlock as n, openBlock as o, createElementVNode as p, createVNode as f, renderSlot as m, vShow as _ } from "vue";
2
+ import h from "./Spinner.js";
3
+ const x = ["id", "aria-labelledby"], y = { class: "rounded-xl border ui-border bg-(--ui-surface) p-2 shadow-xs" }, g = {
4
+ key: 0,
5
+ class: "flex items-center justify-center p-8"
6
+ }, w = {
7
+ key: 1,
8
+ class: "transition-opacity duration-200 opacity-100"
9
+ }, B = {
10
+ __name: "TabPanel",
11
+ props: {
12
+ label: { type: String, required: !0 },
13
+ loading: { type: Boolean, default: !1 }
14
+ },
15
+ setup(i) {
16
+ const s = i, t = c("tabsContext");
17
+ if (!t)
18
+ throw new Error("TabPanel must be used within a Tab component");
19
+ const e = r(null), a = r(!1);
20
+ return d(() => {
21
+ e.value = t.registerTab(s.label), a.value = t.activeIndex.value === e.value, u(t.activeIndex, (l) => {
22
+ a.value = l === e.value;
23
+ });
24
+ }), b(() => {
25
+ e.value !== null && t.unregisterTab(e.value);
26
+ }), (l, T) => v((o(), n("div", {
27
+ id: `panel-${e.value}`,
28
+ role: "tabpanel",
29
+ "aria-labelledby": `tab-${e.value}`,
30
+ class: "ui-text"
31
+ }, [
32
+ p("div", y, [
33
+ i.loading ? (o(), n("div", g, [
34
+ f(h, {
35
+ size: "lg",
36
+ label: `Loading ${s.label}`
37
+ }, null, 8, ["label"])
38
+ ])) : (o(), n("div", w, [
39
+ m(l.$slots, "default")
40
+ ]))
41
+ ])
42
+ ], 8, x)), [
43
+ [_, a.value]
44
+ ]);
45
+ }
46
+ };
47
+ export {
48
+ B as default
49
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),n=require("class-variance-authority"),r=require("../utils/cn.cjs"),d={__name:"Text",props:{as:{type:String,default:"p"},size:{type:String,default:"md",validator:t=>["xs","sm","md","lg","xl"].includes(t)},variant:{type:String,default:"default",validator:t=>["default","muted","danger"].includes(t)},weight:{type:String,default:"normal",validator:t=>["normal","medium","semibold","bold"].includes(t)},align:{type:String,default:"left",validator:t=>["left","center","right","justify"].includes(t)},class:String},setup(t){const a=t,l=n.cva("leading-relaxed",{variants:{size:{xs:"text-xs",sm:"text-sm",md:"text-base",lg:"text-lg",xl:"text-xl"},variant:{default:"ui-text",muted:"ui-text",danger:"ui-danger"},weight:{normal:"font-normal",medium:"font-medium",semibold:"font-semibold",bold:"font-bold"},align:{left:"text-left",center:"text-center",right:"text-right",justify:"text-justify"}}}),i=e.computed(()=>r.cn(l({size:a.size,variant:a.variant,weight:a.weight,align:a.align}),a.class));return(s,u)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.as),{class:e.normalizeClass(i.value)},{default:e.withCtx(()=>[e.renderSlot(s.$slots,"default")]),_:3},8,["class"]))}};exports.default=d;
@@ -0,0 +1,84 @@
1
+ import { computed as n, createBlock as s, openBlock as r, resolveDynamicComponent as d, normalizeClass as o, withCtx as m, renderSlot as u } from "vue";
2
+ import { cva as f } from "class-variance-authority";
3
+ import { cn as c } from "../utils/cn.js";
4
+ const h = {
5
+ __name: "Text",
6
+ props: {
7
+ as: {
8
+ type: String,
9
+ default: "p"
10
+ },
11
+ size: {
12
+ type: String,
13
+ default: "md",
14
+ validator: (t) => ["xs", "sm", "md", "lg", "xl"].includes(t)
15
+ },
16
+ variant: {
17
+ type: String,
18
+ default: "default",
19
+ validator: (t) => ["default", "muted", "danger"].includes(t)
20
+ },
21
+ weight: {
22
+ type: String,
23
+ default: "normal",
24
+ validator: (t) => ["normal", "medium", "semibold", "bold"].includes(t)
25
+ },
26
+ align: {
27
+ type: String,
28
+ default: "left",
29
+ validator: (t) => ["left", "center", "right", "justify"].includes(t)
30
+ },
31
+ class: String
32
+ },
33
+ setup(t) {
34
+ const e = t, a = f(
35
+ "leading-relaxed",
36
+ {
37
+ variants: {
38
+ size: {
39
+ xs: "text-xs",
40
+ sm: "text-sm",
41
+ md: "text-base",
42
+ lg: "text-lg",
43
+ xl: "text-xl"
44
+ },
45
+ variant: {
46
+ default: "ui-text",
47
+ muted: "ui-text",
48
+ danger: "ui-danger"
49
+ },
50
+ weight: {
51
+ normal: "font-normal",
52
+ medium: "font-medium",
53
+ semibold: "font-semibold",
54
+ bold: "font-bold"
55
+ },
56
+ align: {
57
+ left: "text-left",
58
+ center: "text-center",
59
+ right: "text-right",
60
+ justify: "text-justify"
61
+ }
62
+ }
63
+ }
64
+ ), l = n(
65
+ () => c(a({
66
+ size: e.size,
67
+ variant: e.variant,
68
+ weight: e.weight,
69
+ align: e.align
70
+ }), e.class)
71
+ );
72
+ return (i, g) => (r(), s(d(t.as), {
73
+ class: o(l.value)
74
+ }, {
75
+ default: m(() => [
76
+ u(i.$slots, "default")
77
+ ]),
78
+ _: 3
79
+ }, 8, ["class"]));
80
+ }
81
+ };
82
+ export {
83
+ h as default
84
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("vue"),p=require("class-variance-authority"),x=require("../utils/cn.cjs"),h=["id","value","placeholder","disabled","readonly","required","rows","maxlength","aria-describedby","aria-invalid"],z={__name:"Textarea",props:{modelValue:{type:String,default:""},placeholder:{type:String,default:""},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},required:{type:Boolean,default:!1},rows:{type:Number,default:3},maxlength:{type:Number,default:null},resize:{type:String,default:"vertical",validator:e=>["none","vertical","horizontal","both"].includes(e)},autoResize:{type:Boolean,default:!1},size:{type:String,default:"md",validator:e=>["sm","md","lg"].includes(e)},variant:{type:String,default:"default",validator:e=>["default","error","success"].includes(e)},error:{type:String,default:null},id:{type:String,default:null}},emits:["update:modelValue","blur","focus","keydown"],setup(e,{expose:i,emit:n}){const r=e,u=n,l=a.ref(null),o=a.computed(()=>r.id||a.useId()),d=t=>{u("update:modelValue",t.target.value),r.autoResize&&a.nextTick(()=>s())},c=t=>u("blur",t),f=t=>u("focus",t),m=t=>u("keydown",t),y=a.computed(()=>!!r.error||r.variant==="error"),v=a.computed(()=>r.error?`${o.value}-error`:void 0),b=p.cva("block w-full rounded-lg border ui-surface transition-colors duration-200 placeholder:text-(--ui-text-muted) focus:outline-none focus:ring-2 focus:ring-offset-0 disabled:bg-(--ui-surface) disabled:text-(--ui-text) disabled:cursor-not-allowed",{variants:{size:{sm:"px-3 py-1.5 text-sm",md:"px-3 py-2 text-sm",lg:"px-4 py-3 text-base"},variant:{default:"ui-border-strong focus:border-(--ui-primary) focus:ring-(--ui-primary)",error:"border-(--ui-danger-soft) focus:border-(--ui-danger) focus:ring-(--ui-danger)",success:"border-(--ui-success-soft) focus:border-(--ui-success) focus:ring-(--ui-success)"},resize:{none:"resize-none",vertical:"resize-y",horizontal:"resize-x",both:"resize"}},defaultVariants:{size:"md",variant:"default",resize:"vertical"}}),g=a.computed(()=>x.cn(b({size:r.size,variant:r.variant,resize:r.resize}))),s=()=>{if(!l.value||!r.autoResize)return;const t=l.value;t.style.height="auto",t.style.height=`${t.scrollHeight}px`};return a.watch(()=>r.modelValue,()=>{r.autoResize&&a.nextTick(()=>s())},{immediate:!0}),i({focus:()=>l.value?.focus(),blur:()=>l.value?.blur(),select:()=>l.value?.select()}),(t,w)=>(a.openBlock(),a.createElementBlock("textarea",{id:o.value,ref_key:"textareaRef",ref:l,value:e.modelValue,placeholder:e.placeholder,disabled:e.disabled,readonly:e.readonly,required:e.required,rows:e.rows,maxlength:e.maxlength,class:a.normalizeClass(g.value),"aria-describedby":v.value,"aria-invalid":y.value,onInput:d,onBlur:c,onFocus:f,onKeydown:m},null,42,h))}};exports.default=z;