@wirekyt/vue 0.0.1 → 0.0.2

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 (291) hide show
  1. package/dist/accordion.cjs +273 -0
  2. package/dist/accordion.d.cts +195 -0
  3. package/dist/accordion.d.ts +195 -0
  4. package/dist/accordion.js +250 -0
  5. package/dist/angle-slider.cjs +268 -0
  6. package/dist/angle-slider.d.cts +228 -0
  7. package/dist/angle-slider.d.ts +228 -0
  8. package/dist/angle-slider.js +244 -0
  9. package/dist/avatar.cjs +145 -0
  10. package/dist/avatar.d.cts +114 -0
  11. package/dist/avatar.d.ts +114 -0
  12. package/dist/avatar.js +126 -0
  13. package/dist/boolean-BCaEpMxQ.js +6 -0
  14. package/dist/boolean-Dyu9-5Wp.cjs +11 -0
  15. package/dist/carousel.cjs +342 -0
  16. package/dist/carousel.d.cts +303 -0
  17. package/dist/carousel.d.ts +303 -0
  18. package/dist/carousel.js +320 -0
  19. package/dist/checkbox.cjs +345 -0
  20. package/dist/checkbox.d.cts +272 -0
  21. package/dist/checkbox.d.ts +272 -0
  22. package/dist/checkbox.js +324 -0
  23. package/dist/clean-props--1kqQE0Y.js +8 -0
  24. package/dist/clean-props-MyKqus13.cjs +13 -0
  25. package/dist/client-only.cjs +17 -0
  26. package/dist/client-only.d.cts +18 -0
  27. package/dist/client-only.d.ts +18 -0
  28. package/dist/client-only.js +16 -0
  29. package/dist/clipboard.cjs +229 -0
  30. package/dist/clipboard.d.cts +203 -0
  31. package/dist/clipboard.d.ts +203 -0
  32. package/dist/clipboard.js +206 -0
  33. package/dist/collapsible-CEjnJlpm.js +179 -0
  34. package/dist/collapsible-aSz4kYqo.cjs +232 -0
  35. package/dist/collapsible.cjs +23 -0
  36. package/dist/collapsible.d.cts +161 -0
  37. package/dist/collapsible.d.ts +161 -0
  38. package/dist/collapsible.js +2 -0
  39. package/dist/collection-1IjtyI-g.cjs +254 -0
  40. package/dist/collection-Ea6ZCZKK.js +211 -0
  41. package/dist/collection.cjs +9 -0
  42. package/dist/collection.d.cts +2 -0
  43. package/dist/collection.d.ts +2 -0
  44. package/dist/collection.js +2 -0
  45. package/dist/color-picker.cjs +804 -0
  46. package/dist/color-picker.d.cts +605 -0
  47. package/dist/color-picker.d.ts +605 -0
  48. package/dist/color-picker.js +759 -0
  49. package/dist/combobox.cjs +552 -0
  50. package/dist/combobox.d.cts +442 -0
  51. package/dist/combobox.d.ts +442 -0
  52. package/dist/combobox.js +521 -0
  53. package/dist/create-split-props-BBxrD7TV.js +10 -0
  54. package/dist/create-split-props-Jx-IEwdk.cjs +15 -0
  55. package/dist/date-input.cjs +293 -0
  56. package/dist/date-input.d.cts +212 -0
  57. package/dist/date-input.d.ts +212 -0
  58. package/dist/date-input.js +270 -0
  59. package/dist/date-picker.cjs +821 -0
  60. package/dist/date-picker.d.cts +637 -0
  61. package/dist/date-picker.d.ts +637 -0
  62. package/dist/date-picker.js +776 -0
  63. package/dist/dialog.cjs +333 -0
  64. package/dist/dialog.d.cts +272 -0
  65. package/dist/dialog.d.ts +272 -0
  66. package/dist/dialog.js +308 -0
  67. package/dist/download-trigger.cjs +65 -0
  68. package/dist/download-trigger.d.cts +34 -0
  69. package/dist/download-trigger.d.ts +34 -0
  70. package/dist/download-trigger.js +63 -0
  71. package/dist/drawer.cjs +448 -0
  72. package/dist/drawer.d.cts +346 -0
  73. package/dist/drawer.d.ts +346 -0
  74. package/dist/drawer.js +415 -0
  75. package/dist/editable.cjs +331 -0
  76. package/dist/editable.d.cts +285 -0
  77. package/dist/editable.d.ts +285 -0
  78. package/dist/editable.js +306 -0
  79. package/dist/factory-8Ao0DEy3.js +34 -0
  80. package/dist/factory-BNwuanv4.d.cts +21 -0
  81. package/dist/factory-BNwuanv4.d.ts +21 -0
  82. package/dist/factory-JL7MPjkk.cjs +45 -0
  83. package/dist/field-C3pLqz1S.js +435 -0
  84. package/dist/field-DRz-v4rB.cjs +524 -0
  85. package/dist/field.cjs +22 -0
  86. package/dist/field.d.cts +344 -0
  87. package/dist/field.d.ts +344 -0
  88. package/dist/field.js +2 -0
  89. package/dist/fieldset-ByP_r1Uq.js +216 -0
  90. package/dist/fieldset-C5aj6Ims.cjs +275 -0
  91. package/dist/fieldset.cjs +17 -0
  92. package/dist/fieldset.d.cts +159 -0
  93. package/dist/fieldset.d.ts +159 -0
  94. package/dist/fieldset.js +2 -0
  95. package/dist/file-upload.cjs +421 -0
  96. package/dist/file-upload.d.cts +327 -0
  97. package/dist/file-upload.d.ts +327 -0
  98. package/dist/file-upload.js +392 -0
  99. package/dist/floating-panel.cjs +412 -0
  100. package/dist/floating-panel.d.cts +337 -0
  101. package/dist/floating-panel.d.ts +337 -0
  102. package/dist/floating-panel.js +383 -0
  103. package/dist/focus-trap.cjs +79 -0
  104. package/dist/focus-trap.d.cts +46 -0
  105. package/dist/focus-trap.d.ts +46 -0
  106. package/dist/focus-trap.js +78 -0
  107. package/dist/format.cjs +116 -0
  108. package/dist/format.d.cts +46 -0
  109. package/dist/format.d.ts +46 -0
  110. package/dist/format.js +106 -0
  111. package/dist/frame.cjs +93 -0
  112. package/dist/frame.d.cts +37 -0
  113. package/dist/frame.d.ts +37 -0
  114. package/dist/frame.js +92 -0
  115. package/dist/highlight.cjs +44 -0
  116. package/dist/highlight.d.cts +32 -0
  117. package/dist/highlight.d.ts +32 -0
  118. package/dist/highlight.js +42 -0
  119. package/dist/hover-card.cjs +269 -0
  120. package/dist/hover-card.d.cts +202 -0
  121. package/dist/hover-card.d.ts +202 -0
  122. package/dist/hover-card.js +246 -0
  123. package/dist/image-cropper.cjs +252 -0
  124. package/dist/image-cropper.d.cts +207 -0
  125. package/dist/image-cropper.d.ts +207 -0
  126. package/dist/image-cropper.js +235 -0
  127. package/dist/index-B-o8jLyV.d.cts +31 -0
  128. package/dist/index-BSoF1D-v.d.ts +31 -0
  129. package/dist/index-BTNfeIXf.d.ts +104 -0
  130. package/dist/index-C6Q2DqG6.d.ts +37 -0
  131. package/dist/index-CG9mpPgL.d.cts +444 -0
  132. package/dist/index-Cc4qS0rQ.d.cts +38 -0
  133. package/dist/index-Cc4qS0rQ.d.ts +38 -0
  134. package/dist/index-DB2uALlJ.d.cts +74 -0
  135. package/dist/index-DXb0W_NP.d.cts +37 -0
  136. package/dist/index-Zc9P69Ka.d.cts +104 -0
  137. package/dist/index-aMWdJRGL.d.ts +444 -0
  138. package/dist/index-uLE-tXSk.d.ts +74 -0
  139. package/dist/index.cjs +43 -0
  140. package/dist/index.d.cts +5 -0
  141. package/dist/index.d.ts +5 -0
  142. package/dist/index.js +7 -0
  143. package/dist/json-tree-view.cjs +346 -0
  144. package/dist/json-tree-view.d.cts +86 -0
  145. package/dist/json-tree-view.d.ts +86 -0
  146. package/dist/json-tree-view.js +336 -0
  147. package/dist/listbox.cjs +386 -0
  148. package/dist/listbox.d.cts +323 -0
  149. package/dist/listbox.d.ts +323 -0
  150. package/dist/listbox.js +361 -0
  151. package/dist/marquee.cjs +256 -0
  152. package/dist/marquee.d.cts +208 -0
  153. package/dist/marquee.d.ts +208 -0
  154. package/dist/marquee.js +235 -0
  155. package/dist/menu.cjs +650 -0
  156. package/dist/menu.d.cts +501 -0
  157. package/dist/menu.d.ts +501 -0
  158. package/dist/menu.js +613 -0
  159. package/dist/navigation-menu.cjs +408 -0
  160. package/dist/navigation-menu.d.cts +271 -0
  161. package/dist/navigation-menu.d.ts +271 -0
  162. package/dist/navigation-menu.js +380 -0
  163. package/dist/number-input.cjs +298 -0
  164. package/dist/number-input.d.cts +253 -0
  165. package/dist/number-input.d.ts +253 -0
  166. package/dist/number-input.js +274 -0
  167. package/dist/pagination.cjs +249 -0
  168. package/dist/pagination.d.cts +209 -0
  169. package/dist/pagination.d.ts +209 -0
  170. package/dist/pagination.js +226 -0
  171. package/dist/password-input.cjs +232 -0
  172. package/dist/password-input.d.cts +208 -0
  173. package/dist/password-input.d.ts +208 -0
  174. package/dist/password-input.js +210 -0
  175. package/dist/pin-input.cjs +245 -0
  176. package/dist/pin-input.d.cts +199 -0
  177. package/dist/pin-input.d.ts +199 -0
  178. package/dist/pin-input.js +224 -0
  179. package/dist/popover.cjs +377 -0
  180. package/dist/popover.d.cts +324 -0
  181. package/dist/popover.d.ts +324 -0
  182. package/dist/popover.js +349 -0
  183. package/dist/presence-DD3l4Tgb.cjs +60 -0
  184. package/dist/presence-jaHZaD_O.js +43 -0
  185. package/dist/presence.cjs +7 -0
  186. package/dist/presence.d.cts +3 -0
  187. package/dist/presence.d.ts +3 -0
  188. package/dist/presence.js +3 -0
  189. package/dist/progress.cjs +270 -0
  190. package/dist/progress.d.cts +229 -0
  191. package/dist/progress.d.ts +229 -0
  192. package/dist/progress.js +245 -0
  193. package/dist/providers-5QhcwgSd.cjs +190 -0
  194. package/dist/providers-C3XQH-uu.js +119 -0
  195. package/dist/qr-code.cjs +195 -0
  196. package/dist/qr-code.d.cts +157 -0
  197. package/dist/qr-code.d.ts +157 -0
  198. package/dist/qr-code.js +174 -0
  199. package/dist/radio-group.cjs +274 -0
  200. package/dist/radio-group.d.cts +230 -0
  201. package/dist/radio-group.d.ts +230 -0
  202. package/dist/radio-group.js +249 -0
  203. package/dist/rating-group.cjs +243 -0
  204. package/dist/rating-group.d.cts +200 -0
  205. package/dist/rating-group.d.ts +200 -0
  206. package/dist/rating-group.js +220 -0
  207. package/dist/rolldown-runtime-D7D4PA-g.js +13 -0
  208. package/dist/rolldown-runtime-DakpK96I.cjs +43 -0
  209. package/dist/scroll-area.cjs +206 -0
  210. package/dist/scroll-area.d.cts +169 -0
  211. package/dist/scroll-area.d.ts +169 -0
  212. package/dist/scroll-area.js +184 -0
  213. package/dist/segment-group.cjs +318 -0
  214. package/dist/segment-group.d.cts +229 -0
  215. package/dist/segment-group.d.ts +229 -0
  216. package/dist/segment-group.js +298 -0
  217. package/dist/select.cjs +560 -0
  218. package/dist/select.d.cts +430 -0
  219. package/dist/select.d.ts +430 -0
  220. package/dist/select.js +523 -0
  221. package/dist/signature-pad.cjs +260 -0
  222. package/dist/signature-pad.d.cts +200 -0
  223. package/dist/signature-pad.d.ts +200 -0
  224. package/dist/signature-pad.js +237 -0
  225. package/dist/slider.cjs +350 -0
  226. package/dist/slider.d.cts +299 -0
  227. package/dist/slider.d.ts +299 -0
  228. package/dist/slider.js +323 -0
  229. package/dist/splitter.cjs +225 -0
  230. package/dist/splitter.d.cts +166 -0
  231. package/dist/splitter.d.ts +166 -0
  232. package/dist/splitter.js +198 -0
  233. package/dist/steps.cjs +348 -0
  234. package/dist/steps.d.cts +289 -0
  235. package/dist/steps.d.ts +289 -0
  236. package/dist/steps.js +319 -0
  237. package/dist/swap.cjs +154 -0
  238. package/dist/swap.d.cts +98 -0
  239. package/dist/swap.d.ts +98 -0
  240. package/dist/swap.js +141 -0
  241. package/dist/switch.cjs +213 -0
  242. package/dist/switch.d.cts +177 -0
  243. package/dist/switch.d.ts +177 -0
  244. package/dist/switch.js +192 -0
  245. package/dist/tabs.cjs +240 -0
  246. package/dist/tabs.d.cts +179 -0
  247. package/dist/tabs.d.ts +179 -0
  248. package/dist/tabs.js +218 -0
  249. package/dist/tags-input.cjs +405 -0
  250. package/dist/tags-input.d.cts +340 -0
  251. package/dist/tags-input.d.ts +340 -0
  252. package/dist/tags-input.js +376 -0
  253. package/dist/timer.cjs +221 -0
  254. package/dist/timer.d.cts +176 -0
  255. package/dist/timer.d.ts +176 -0
  256. package/dist/timer.js +199 -0
  257. package/dist/toast.cjs +211 -0
  258. package/dist/toast.d.cts +157 -0
  259. package/dist/toast.d.ts +157 -0
  260. package/dist/toast.js +189 -0
  261. package/dist/toggle-group.cjs +150 -0
  262. package/dist/toggle-group.d.cts +122 -0
  263. package/dist/toggle-group.d.ts +122 -0
  264. package/dist/toggle-group.js +132 -0
  265. package/dist/toggle.cjs +107 -0
  266. package/dist/toggle.d.cts +98 -0
  267. package/dist/toggle.d.ts +98 -0
  268. package/dist/toggle.js +94 -0
  269. package/dist/tooltip.cjs +265 -0
  270. package/dist/tooltip.d.cts +204 -0
  271. package/dist/tooltip.d.ts +204 -0
  272. package/dist/tooltip.js +242 -0
  273. package/dist/tour.cjs +418 -0
  274. package/dist/tour.d.cts +304 -0
  275. package/dist/tour.d.ts +304 -0
  276. package/dist/tour.js +374 -0
  277. package/dist/tree-view-CWH9tv7s.cjs +651 -0
  278. package/dist/tree-view-CZcXMwi6.js +508 -0
  279. package/dist/tree-view.cjs +41 -0
  280. package/dist/tree-view.d.cts +3 -0
  281. package/dist/tree-view.d.ts +3 -0
  282. package/dist/tree-view.js +3 -0
  283. package/dist/types-rSRkzyd6.d.cts +13 -0
  284. package/dist/types-rSRkzyd6.d.ts +13 -0
  285. package/dist/use-presence-BSp_dR-C.d.cts +22 -0
  286. package/dist/use-presence-CtEY6ZT8.cjs +49 -0
  287. package/dist/use-presence-DkGU_j9h.d.ts +22 -0
  288. package/dist/use-presence-oNdFU2c2.js +42 -0
  289. package/dist/utils-D95V66v9.js +548 -0
  290. package/dist/utils-XrBZd2Yk.cjs +625 -0
  291. package/package.json +278 -6
@@ -0,0 +1,45 @@
1
+ const require_utils = require("./utils-XrBZd2Yk.cjs");
2
+ let vue = require("vue");
3
+ //#region src/components/factory.ts
4
+ const SELF_CLOSING_TAGS = "br, hr, img, input, area, textarea".split(", ");
5
+ const isSelfClosingTag = (tag) => typeof tag === "string" && SELF_CLOSING_TAGS.includes(tag);
6
+ const withAsChild = (component) => {
7
+ return (0, vue.defineComponent)({
8
+ name: "Polymorphic",
9
+ inheritAttrs: false,
10
+ props: { asChild: {
11
+ type: Boolean,
12
+ default: false
13
+ } },
14
+ setup(props, { attrs, slots }) {
15
+ if (!props.asChild) return () => (0, vue.h)(component, attrs, isSelfClosingTag(component) ? void 0 : slots.default?.());
16
+ return () => (0, vue.h)(require_utils.Dynamic, attrs, slots);
17
+ }
18
+ });
19
+ };
20
+ function jsxFactory() {
21
+ const cache = /* @__PURE__ */ new Map();
22
+ return new Proxy(withAsChild, {
23
+ apply(_target, _thisArg, argArray) {
24
+ return withAsChild(argArray[0]);
25
+ },
26
+ get(_, element) {
27
+ if (!cache.has(element)) cache.set(element, withAsChild(element));
28
+ return cache.get(element);
29
+ }
30
+ });
31
+ }
32
+ const wire = jsxFactory();
33
+ //#endregion
34
+ Object.defineProperty(exports, "jsxFactory", {
35
+ enumerable: true,
36
+ get: function() {
37
+ return jsxFactory;
38
+ }
39
+ });
40
+ Object.defineProperty(exports, "wire", {
41
+ enumerable: true,
42
+ get: function() {
43
+ return wire;
44
+ }
45
+ });
@@ -0,0 +1,435 @@
1
+ import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.js";
2
+ import { d as useForwardExpose, f as unrefElement, m as createContext } from "./utils-D95V66v9.js";
3
+ import { d as useEnvironmentContext, u as DEFAULT_ENVIRONMENT } from "./providers-C3XQH-uu.js";
4
+ import { n as wire } from "./factory-8Ao0DEy3.js";
5
+ import { computed, createBlock, createCommentVNode, createTextVNode, defineComponent, guardReactiveProps, mergeDefaults, mergeProps, normalizeProps, onBeforeUnmount, onMounted, openBlock, reactive, ref, renderSlot, toValue, unref, useId, withCtx } from "vue";
6
+ import { ariaAttr, dataAttr } from "@wirekyt/dom/dom-query";
7
+ import { createAnatomy } from "@wirekyt/dom/anatomy";
8
+ import { autoresizeTextarea } from "@wirekyt/dom/auto-resize";
9
+ //#region src/components/field/use-context.ts
10
+ const [FieldProvider, useFieldContext] = createContext("FieldContext");
11
+ //#endregion
12
+ //#region src/components/field/context.vue
13
+ const _sfc_main$10 = /*@__PURE__*/ defineComponent({
14
+ __name: "context",
15
+ setup(__props) {
16
+ const field = useFieldContext();
17
+ return (_ctx, _cache) => {
18
+ return renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(unref(field))));
19
+ };
20
+ }
21
+ });
22
+ //#endregion
23
+ //#region src/components/field/error-text.vue
24
+ const _sfc_main$9 = /*@__PURE__*/ defineComponent({
25
+ __name: "error-text",
26
+ props: { asChild: { type: Boolean } },
27
+ setup(__props) {
28
+ const field = useFieldContext();
29
+ useForwardExpose();
30
+ return (_ctx, _cache) => {
31
+ return unref(field).invalid ? (openBlock(), createBlock(unref(wire).span, mergeProps({ key: 0 }, unref(field).getErrorTextProps(), { "as-child": __props.asChild }), {
32
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
33
+ _: 3
34
+ }, 16, ["as-child"])) : createCommentVNode("v-if", true);
35
+ };
36
+ }
37
+ });
38
+ //#endregion
39
+ //#region src/components/field/helper-text.vue
40
+ const _sfc_main$8 = /*@__PURE__*/ defineComponent({
41
+ __name: "helper-text",
42
+ props: { asChild: { type: Boolean } },
43
+ setup(__props) {
44
+ const field = useFieldContext();
45
+ useForwardExpose();
46
+ return (_ctx, _cache) => {
47
+ return openBlock(), createBlock(unref(wire).span, mergeProps(unref(field).getHelperTextProps(), { "as-child": __props.asChild }), {
48
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
49
+ _: 3
50
+ }, 16, ["as-child"]);
51
+ };
52
+ }
53
+ });
54
+ //#endregion
55
+ //#region src/components/field/input.vue
56
+ const _sfc_main$7 = /*@__PURE__*/ defineComponent({
57
+ __name: "input",
58
+ props: {
59
+ modelValue: {},
60
+ asChild: { type: Boolean }
61
+ },
62
+ emits: ["update:modelValue"],
63
+ setup(__props, { emit: __emit }) {
64
+ const field = useFieldContext();
65
+ const emit = __emit;
66
+ useForwardExpose();
67
+ return (_ctx, _cache) => {
68
+ return openBlock(), createBlock(unref(wire).input, mergeProps(unref(field)?.getInputProps(), {
69
+ "as-child": __props.asChild,
70
+ value: __props.modelValue,
71
+ onInput: _cache[0] || (_cache[0] = (event) => emit("update:modelValue", event.target.value))
72
+ }), {
73
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
74
+ _: 3
75
+ }, 16, ["as-child", "value"]);
76
+ };
77
+ }
78
+ });
79
+ //#endregion
80
+ //#region src/components/field/anatomy.ts
81
+ const fieldAnatomy = createAnatomy("field").parts("root", "errorText", "helperText", "input", "label", "select", "textarea", "requiredIndicator");
82
+ const parts = fieldAnatomy.build();
83
+ //#endregion
84
+ //#region src/components/field/item.vue
85
+ const _sfc_main$6 = /*@__PURE__*/ defineComponent({
86
+ __name: "item",
87
+ props: { value: {} },
88
+ setup(__props) {
89
+ const props = __props;
90
+ const parentField = useFieldContext();
91
+ FieldProvider(computed(() => {
92
+ const parent = toValue(parentField);
93
+ if (!parent) throw new Error("Field.Item must be used within Field.Root");
94
+ const controlId = `field::${parent.ids.control}::item::${props.value}`;
95
+ const labelId = `${controlId}::label`;
96
+ const getControlProps = () => ({
97
+ ...parent.getInputProps(),
98
+ id: controlId
99
+ });
100
+ return {
101
+ ...parent,
102
+ ids: {
103
+ ...parent.ids,
104
+ control: controlId,
105
+ label: labelId
106
+ },
107
+ getLabelProps: () => ({
108
+ ...parent.getLabelProps(),
109
+ id: labelId,
110
+ htmlFor: controlId
111
+ }),
112
+ getInputProps: () => ({
113
+ ...getControlProps(),
114
+ ...parts.input.attrs
115
+ }),
116
+ getSelectProps: () => ({
117
+ ...getControlProps(),
118
+ ...parts.select.attrs
119
+ }),
120
+ getTextareaProps: () => ({
121
+ ...getControlProps(),
122
+ ...parts.textarea.attrs
123
+ })
124
+ };
125
+ }));
126
+ return (_ctx, _cache) => {
127
+ return renderSlot(_ctx.$slots, "default");
128
+ };
129
+ }
130
+ });
131
+ //#endregion
132
+ //#region src/components/field/label.vue
133
+ const _sfc_main$5 = /*@__PURE__*/ defineComponent({
134
+ __name: "label",
135
+ props: { asChild: { type: Boolean } },
136
+ setup(__props) {
137
+ const field = useFieldContext();
138
+ useForwardExpose();
139
+ return (_ctx, _cache) => {
140
+ return openBlock(), createBlock(unref(wire).label, mergeProps(unref(field).getLabelProps(), { "as-child": __props.asChild }), {
141
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
142
+ _: 3
143
+ }, 16, ["as-child"]);
144
+ };
145
+ }
146
+ });
147
+ //#endregion
148
+ //#region src/components/field/required-indicator.vue
149
+ const _sfc_main$4 = /*@__PURE__*/ defineComponent({
150
+ __name: "required-indicator",
151
+ props: { asChild: { type: Boolean } },
152
+ setup(__props) {
153
+ const field = useFieldContext();
154
+ useForwardExpose();
155
+ return (_ctx, _cache) => {
156
+ return unref(field).required ? (openBlock(), createBlock(unref(wire).span, mergeProps({ key: 0 }, unref(field).getRequiredIndicatorProps(), { "as-child": __props.asChild }), {
157
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default", {}, () => [_cache[0] || (_cache[0] = createTextVNode("*", -1))])]),
158
+ _: 3
159
+ }, 16, ["as-child"])) : renderSlot(_ctx.$slots, "fallback", {}, void 0, void 0, 1);
160
+ };
161
+ }
162
+ });
163
+ //#endregion
164
+ //#region src/components/field/root-provider.vue
165
+ const _sfc_main$3 = /*@__PURE__*/ defineComponent({
166
+ __name: "root-provider",
167
+ props: {
168
+ value: {},
169
+ asChild: { type: Boolean }
170
+ },
171
+ setup(__props) {
172
+ const props = __props;
173
+ const field = computed(() => props.value);
174
+ FieldProvider(field);
175
+ useForwardExpose();
176
+ return (_ctx, _cache) => {
177
+ return openBlock(), createBlock(unref(wire).div, mergeProps(field.value.getRootProps(), { "as-child": __props.asChild }), {
178
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
179
+ _: 3
180
+ }, 16, ["as-child"]);
181
+ };
182
+ }
183
+ });
184
+ //#endregion
185
+ //#region src/components/field/use-field.ts
186
+ const useField = (props = {}) => {
187
+ const env = useEnvironmentContext(DEFAULT_ENVIRONMENT);
188
+ const state = reactive({
189
+ hasErrorText: false,
190
+ hasHelperText: false
191
+ });
192
+ const uid = useId();
193
+ const id = computed(() => toValue(props).id ?? uid);
194
+ const rootRef = ref(null);
195
+ const rootId = computed(() => toValue(props).ids?.control ?? `field::${id.value}`);
196
+ const errorTextId = computed(() => toValue(props).ids?.errorText ?? `field::${id.value}::error-text`);
197
+ const helperTextId = computed(() => toValue(props).ids?.helperText ?? `field::${id.value}::helper-text`);
198
+ const labelId = computed(() => toValue(props).ids?.label ?? `field::${id.value}::label`);
199
+ onMounted(() => {
200
+ const rootNode = unrefElement(rootRef);
201
+ if (!rootNode) return;
202
+ const checkTextElements = () => {
203
+ const docOrShadowRoot = env.value.getRootNode();
204
+ state.hasErrorText = !!docOrShadowRoot.getElementById(errorTextId.value);
205
+ state.hasHelperText = !!docOrShadowRoot.getElementById(helperTextId.value);
206
+ };
207
+ checkTextElements();
208
+ const observer = new (env.value.getWindow()).MutationObserver(checkTextElements);
209
+ observer.observe(rootNode, {
210
+ childList: true,
211
+ subtree: true
212
+ });
213
+ onBeforeUnmount(() => {
214
+ observer.disconnect();
215
+ });
216
+ });
217
+ const getRootProps = () => {
218
+ const values = toValue(props);
219
+ return {
220
+ ...parts.root.attrs,
221
+ id: rootId.value,
222
+ role: "group",
223
+ "data-disabled": dataAttr(values.disabled),
224
+ "data-invalid": dataAttr(values.invalid),
225
+ "data-readonly": dataAttr(values.readOnly)
226
+ };
227
+ };
228
+ const targetControlId = computed(() => {
229
+ const target = toValue(props).target;
230
+ return target ? `field::${id.value}::item::${target}` : void 0;
231
+ });
232
+ const getLabelProps = () => {
233
+ const values = toValue(props);
234
+ return {
235
+ ...parts.label.attrs,
236
+ id: labelId.value,
237
+ "data-disabled": dataAttr(values.disabled),
238
+ "data-invalid": dataAttr(values.invalid),
239
+ "data-readonly": dataAttr(values.readOnly),
240
+ "data-required": dataAttr(values.required),
241
+ htmlFor: targetControlId.value ?? id.value
242
+ };
243
+ };
244
+ const errorMessageId = computed(() => state.hasErrorText && toValue(props).invalid ? errorTextId.value : void 0);
245
+ const getControlProps = () => {
246
+ const values = toValue(props);
247
+ return {
248
+ "aria-describedby": state.hasHelperText ? helperTextId.value : void 0,
249
+ "aria-errormessage": errorMessageId.value,
250
+ "aria-invalid": ariaAttr(values.invalid),
251
+ "data-invalid": dataAttr(values.invalid),
252
+ "data-required": dataAttr(values.required),
253
+ "data-readonly": dataAttr(values.readOnly),
254
+ id: id.value,
255
+ required: values.required,
256
+ disabled: values.disabled,
257
+ readOnly: values.readOnly
258
+ };
259
+ };
260
+ const getInputProps = () => ({
261
+ ...getControlProps(),
262
+ ...parts.input.attrs
263
+ });
264
+ const getTextareaProps = () => ({
265
+ ...getControlProps(),
266
+ ...parts.textarea.attrs
267
+ });
268
+ const getSelectProps = () => ({
269
+ ...getControlProps(),
270
+ ...parts.select.attrs
271
+ });
272
+ const getHelperTextProps = () => {
273
+ const values = toValue(props);
274
+ return {
275
+ id: helperTextId.value,
276
+ ...parts.helperText.attrs,
277
+ "data-disabled": dataAttr(values.disabled)
278
+ };
279
+ };
280
+ const getErrorTextProps = () => ({
281
+ id: errorTextId.value,
282
+ ...parts.errorText.attrs,
283
+ "aria-live": "polite"
284
+ });
285
+ const getRequiredIndicatorProps = () => ({
286
+ "aria-hidden": true,
287
+ ...parts.requiredIndicator.attrs
288
+ });
289
+ return computed(() => {
290
+ const values = toValue(props);
291
+ return {
292
+ ariaDescribedby: state.hasHelperText ? helperTextId.value : void 0,
293
+ ids: {
294
+ control: id.value,
295
+ label: labelId.value,
296
+ errorText: errorTextId.value,
297
+ helperText: helperTextId.value
298
+ },
299
+ refs: { rootRef },
300
+ disabled: values.disabled,
301
+ invalid: values.invalid,
302
+ readOnly: values.readOnly,
303
+ required: values.required,
304
+ getLabelProps,
305
+ getRootProps,
306
+ getInputProps,
307
+ getTextareaProps,
308
+ getSelectProps,
309
+ getHelperTextProps,
310
+ getErrorTextProps,
311
+ getRequiredIndicatorProps
312
+ };
313
+ });
314
+ };
315
+ //#endregion
316
+ //#region src/components/field/root.vue
317
+ const _sfc_main$2 = /*@__PURE__*/ defineComponent({
318
+ __name: "root",
319
+ props: /*@__PURE__*/ mergeDefaults({
320
+ disabled: { type: Boolean },
321
+ id: {},
322
+ ids: {},
323
+ invalid: { type: Boolean },
324
+ readOnly: { type: Boolean },
325
+ required: { type: Boolean },
326
+ target: {},
327
+ asChild: { type: Boolean }
328
+ }, {
329
+ disabled: void 0,
330
+ invalid: void 0,
331
+ readOnly: void 0,
332
+ required: void 0
333
+ }),
334
+ setup(__props) {
335
+ const field = useField(__props);
336
+ FieldProvider(field);
337
+ useForwardExpose();
338
+ return (_ctx, _cache) => {
339
+ return openBlock(), createBlock(unref(wire).div, mergeProps(unref(field).getRootProps(), {
340
+ ref: unref(field).refs.rootRef,
341
+ "as-child": __props.asChild
342
+ }), {
343
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
344
+ _: 3
345
+ }, 16, ["as-child"]);
346
+ };
347
+ }
348
+ });
349
+ //#endregion
350
+ //#region src/components/field/select.vue
351
+ const _sfc_main$1 = /*@__PURE__*/ defineComponent({
352
+ __name: "select",
353
+ props: {
354
+ modelValue: {},
355
+ asChild: { type: Boolean }
356
+ },
357
+ emits: ["update:modelValue"],
358
+ setup(__props, { emit: __emit }) {
359
+ const field = useFieldContext();
360
+ const emit = __emit;
361
+ useForwardExpose();
362
+ return (_ctx, _cache) => {
363
+ return openBlock(), createBlock(unref(wire).select, mergeProps(unref(field)?.getSelectProps(), {
364
+ value: __props.modelValue,
365
+ onChange: _cache[0] || (_cache[0] = (event) => emit("update:modelValue", event.target.value)),
366
+ "as-child": __props.asChild
367
+ }), {
368
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
369
+ _: 3
370
+ }, 16, ["value", "as-child"]);
371
+ };
372
+ }
373
+ });
374
+ //#endregion
375
+ //#region src/components/field/textarea.vue
376
+ const _sfc_main = /*@__PURE__*/ defineComponent({
377
+ __name: "textarea",
378
+ props: {
379
+ modelValue: {},
380
+ autoresize: { type: Boolean },
381
+ asChild: { type: Boolean }
382
+ },
383
+ emits: ["update:modelValue"],
384
+ setup(__props, { emit: __emit }) {
385
+ const props = __props;
386
+ const field = useFieldContext();
387
+ const emit = __emit;
388
+ const textareaRef = ref();
389
+ onMounted(() => {
390
+ const node = unrefElement(textareaRef);
391
+ if (!node || !props.autoresize) return;
392
+ const cleanup = autoresizeTextarea(node);
393
+ onBeforeUnmount(() => cleanup?.());
394
+ });
395
+ useForwardExpose();
396
+ return (_ctx, _cache) => {
397
+ return openBlock(), createBlock(unref(wire).textarea, mergeProps({
398
+ ref_key: "textareaRef",
399
+ ref: textareaRef
400
+ }, unref(field)?.getTextareaProps(), {
401
+ value: __props.modelValue,
402
+ onInput: _cache[0] || (_cache[0] = (event) => emit("update:modelValue", event.target.value)),
403
+ style: props.autoresize ? {
404
+ resize: "none",
405
+ overflow: "hidden"
406
+ } : void 0,
407
+ "as-child": __props.asChild
408
+ }), {
409
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
410
+ _: 3
411
+ }, 16, [
412
+ "value",
413
+ "style",
414
+ "as-child"
415
+ ]);
416
+ };
417
+ }
418
+ });
419
+ //#endregion
420
+ //#region src/components/field/field.ts
421
+ var field_exports = /* @__PURE__ */ __exportAll({
422
+ Context: () => _sfc_main$10,
423
+ ErrorText: () => _sfc_main$9,
424
+ HelperText: () => _sfc_main$8,
425
+ Input: () => _sfc_main$7,
426
+ Item: () => _sfc_main$6,
427
+ Label: () => _sfc_main$5,
428
+ RequiredIndicator: () => _sfc_main$4,
429
+ Root: () => _sfc_main$2,
430
+ RootProvider: () => _sfc_main$3,
431
+ Select: () => _sfc_main$1,
432
+ Textarea: () => _sfc_main
433
+ });
434
+ //#endregion
435
+ export { useField as a, _sfc_main$5 as c, _sfc_main$7 as d, _sfc_main$8 as f, useFieldContext as h, _sfc_main$2 as i, _sfc_main$6 as l, _sfc_main$10 as m, _sfc_main as n, _sfc_main$3 as o, _sfc_main$9 as p, _sfc_main$1 as r, _sfc_main$4 as s, field_exports as t, fieldAnatomy as u };