iryx-ui 0.12.0 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (225) hide show
  1. package/README.md +35 -1315
  2. package/dist/component-names.d.ts +1 -1
  3. package/dist/component-names.js +1 -1
  4. package/dist/components/Accordion.js +5 -0
  5. package/dist/components/Accordion.vue.d.ts +80 -0
  6. package/dist/components/Accordion.vue_vue_type_script_setup_true_lang.js +87 -0
  7. package/dist/components/Alert.vue.d.ts +1 -1
  8. package/dist/components/Alert.vue_vue_type_script_setup_true_lang.js +7 -7
  9. package/dist/components/App.vue.d.ts +1 -1
  10. package/dist/components/AppShell.js +5 -0
  11. package/dist/components/AppShell.vue.d.ts +46 -0
  12. package/dist/components/AppShell.vue_vue_type_script_setup_true_lang.js +59 -0
  13. package/dist/components/AspectRatio.js +5 -0
  14. package/dist/components/AspectRatio.vue.d.ts +26 -0
  15. package/dist/components/AspectRatio.vue_vue_type_script_setup_true_lang.js +27 -0
  16. package/dist/components/Avatar.js +5 -0
  17. package/dist/components/Avatar.vue.d.ts +52 -0
  18. package/dist/components/Avatar.vue_vue_type_script_setup_true_lang.js +67 -0
  19. package/dist/components/AvatarGroup.js +5 -0
  20. package/dist/components/AvatarGroup.vue.d.ts +39 -0
  21. package/dist/components/AvatarGroup.vue_vue_type_script_setup_true_lang.js +45 -0
  22. package/dist/components/Badge.vue.d.ts +1 -1
  23. package/dist/components/Banner.vue.d.ts +2 -2
  24. package/dist/components/BarChart.vue.d.ts +1 -1
  25. package/dist/components/BarChart.vue_vue_type_script_setup_true_lang.js +14 -14
  26. package/dist/components/Button.vue.d.ts +2 -2
  27. package/dist/components/ButtonGroup.vue.d.ts +1 -1
  28. package/dist/components/Card.vue.d.ts +1 -1
  29. package/dist/components/Collapsible.js +5 -0
  30. package/dist/components/Collapsible.vue.d.ts +58 -0
  31. package/dist/components/Collapsible.vue_vue_type_script_setup_true_lang.js +67 -0
  32. package/dist/components/ColorPicker.js +5 -0
  33. package/dist/components/ColorPicker.vue.d.ts +49 -0
  34. package/dist/components/ColorPicker.vue_vue_type_script_setup_true_lang.js +172 -0
  35. package/dist/components/Combobox.vue.d.ts +6 -6
  36. package/dist/components/CommandPalette.js +5 -0
  37. package/dist/components/CommandPalette.vue.d.ts +63 -0
  38. package/dist/components/CommandPalette.vue_vue_type_script_setup_true_lang.js +185 -0
  39. package/dist/components/Container.js +5 -0
  40. package/dist/components/Container.vue.d.ts +33 -0
  41. package/dist/components/Container.vue_vue_type_script_setup_true_lang.js +40 -0
  42. package/dist/components/ContextMenu.js +5 -0
  43. package/dist/components/ContextMenu.vue.d.ts +42 -0
  44. package/dist/components/ContextMenu.vue_vue_type_script_setup_true_lang.js +49 -0
  45. package/dist/components/DateRangePicker.vue.d.ts +1 -1
  46. package/dist/components/Dialog.vue.d.ts +1 -1
  47. package/dist/components/Drawer.vue.d.ts +2 -2
  48. package/dist/components/EmptyState.vue.d.ts +1 -1
  49. package/dist/components/Input.vue.d.ts +1 -1
  50. package/dist/components/Input.vue_vue_type_script_setup_true_lang.js +4 -4
  51. package/dist/components/Kbd.js +5 -0
  52. package/dist/components/Kbd.vue.d.ts +46 -0
  53. package/dist/components/Kbd.vue_vue_type_script_setup_true_lang.js +41 -0
  54. package/dist/components/LineChart.vue_vue_type_script_setup_true_lang.js +19 -19
  55. package/dist/components/Menubar.js +5 -0
  56. package/dist/components/Menubar.vue.d.ts +62 -0
  57. package/dist/components/Menubar.vue_vue_type_script_setup_true_lang.js +79 -0
  58. package/dist/components/NavigationMenu.js +5 -0
  59. package/dist/components/NavigationMenu.vue.d.ts +75 -0
  60. package/dist/components/NavigationMenu.vue_vue_type_script_setup_true_lang.js +167 -0
  61. package/dist/components/NumberInput.vue_vue_type_script_setup_true_lang.js +2 -2
  62. package/dist/components/PageHeader.js +5 -0
  63. package/dist/components/PageHeader.vue.d.ts +52 -0
  64. package/dist/components/PageHeader.vue_vue_type_script_setup_true_lang.js +59 -0
  65. package/dist/components/PinInput.js +5 -0
  66. package/dist/components/PinInput.vue.d.ts +65 -0
  67. package/dist/components/PinInput.vue_vue_type_script_setup_true_lang.js +76 -0
  68. package/dist/components/Popover.js +5 -0
  69. package/dist/components/Popover.vue.d.ts +75 -0
  70. package/dist/components/Popover.vue_vue_type_script_setup_true_lang.js +99 -0
  71. package/dist/components/Progress.vue.d.ts +20 -1
  72. package/dist/components/Progress.vue_vue_type_script_setup_true_lang.js +84 -44
  73. package/dist/components/RadioGroup.vue_vue_type_script_setup_true_lang.js +4 -1
  74. package/dist/components/ScrollArea.js +5 -0
  75. package/dist/components/ScrollArea.vue.d.ts +41 -0
  76. package/dist/components/ScrollArea.vue_vue_type_script_setup_true_lang.js +68 -0
  77. package/dist/components/ScrollFade.js +5 -0
  78. package/dist/components/ScrollFade.vue.d.ts +36 -0
  79. package/dist/components/ScrollFade.vue_vue_type_script_setup_true_lang.js +59 -0
  80. package/dist/components/Select.vue.d.ts +2 -2
  81. package/dist/components/Sidebar.js +5 -0
  82. package/dist/components/Sidebar.vue.d.ts +72 -0
  83. package/dist/components/Sidebar.vue_vue_type_script_setup_true_lang.js +183 -0
  84. package/dist/components/SignaturePad.js +5 -0
  85. package/dist/components/SignaturePad.vue.d.ts +60 -0
  86. package/dist/components/SignaturePad.vue_vue_type_script_setup_true_lang.js +158 -0
  87. package/dist/components/Skeleton.vue.d.ts +1 -1
  88. package/dist/components/Skeleton.vue_vue_type_script_setup_true_lang.js +8 -8
  89. package/dist/components/Slider.js +5 -0
  90. package/dist/components/Slider.vue.d.ts +80 -0
  91. package/dist/components/Slider.vue_vue_type_script_setup_true_lang.js +115 -0
  92. package/dist/components/Splitter.js +5 -0
  93. package/dist/components/Splitter.vue.d.ts +59 -0
  94. package/dist/components/Splitter.vue_vue_type_script_setup_true_lang.js +69 -0
  95. package/dist/components/Stat.vue.d.ts +1 -1
  96. package/dist/components/Switch.vue.d.ts +1 -0
  97. package/dist/components/Switch.vue_vue_type_script_setup_true_lang.js +7 -3
  98. package/dist/components/Table.vue.d.ts +7 -1
  99. package/dist/components/Table.vue_vue_type_script_setup_true_lang.js +73 -58
  100. package/dist/components/TagsInput.js +5 -0
  101. package/dist/components/TagsInput.vue.d.ts +71 -0
  102. package/dist/components/TagsInput.vue_vue_type_script_setup_true_lang.js +119 -0
  103. package/dist/components/Textarea.vue_vue_type_script_setup_true_lang.js +3 -3
  104. package/dist/components/TimeField.js +5 -0
  105. package/dist/components/TimeField.vue.d.ts +50 -0
  106. package/dist/components/TimeField.vue_vue_type_script_setup_true_lang.js +85 -0
  107. package/dist/components/Timeline.js +5 -0
  108. package/dist/components/Timeline.vue.d.ts +61 -0
  109. package/dist/components/Timeline.vue_vue_type_script_setup_true_lang.js +60 -0
  110. package/dist/components/Toaster.vue.d.ts +1 -1
  111. package/dist/components/Toggle.js +5 -0
  112. package/dist/components/Toggle.vue.d.ts +42 -0
  113. package/dist/components/Toggle.vue_vue_type_script_setup_true_lang.js +52 -0
  114. package/dist/components/ToggleGroup.js +5 -0
  115. package/dist/components/ToggleGroup.vue.d.ts +64 -0
  116. package/dist/components/ToggleGroup.vue_vue_type_script_setup_true_lang.js +78 -0
  117. package/dist/components/Toolbar.js +5 -0
  118. package/dist/components/Toolbar.vue.d.ts +52 -0
  119. package/dist/components/Toolbar.vue_vue_type_script_setup_true_lang.js +94 -0
  120. package/dist/components/Tree.js +5 -0
  121. package/dist/components/Tree.vue.d.ts +70 -0
  122. package/dist/components/Tree.vue_vue_type_script_setup_true_lang.js +112 -0
  123. package/dist/components/index.d.ts +29 -0
  124. package/dist/components/index.js +144 -86
  125. package/dist/composables/appearance.js +5 -1
  126. package/dist/composables/cartesian.d.ts +11 -0
  127. package/dist/composables/cartesian.js +18 -19
  128. package/dist/composables/command-palette.d.ts +42 -0
  129. package/dist/composables/command-palette.js +32 -0
  130. package/dist/composables/date.d.ts +18 -2
  131. package/dist/composables/date.js +23 -12
  132. package/dist/composables/kbd.d.ts +26 -0
  133. package/dist/composables/kbd.js +161 -0
  134. package/dist/composables/navigation-menu.d.ts +29 -0
  135. package/dist/composables/navigation-menu.js +6 -0
  136. package/dist/composables/scroll-fade.d.ts +35 -0
  137. package/dist/composables/scroll-fade.js +36 -0
  138. package/dist/composables/sidebar.d.ts +35 -0
  139. package/dist/composables/sidebar.js +23 -0
  140. package/dist/composables/signature.d.ts +22 -0
  141. package/dist/composables/signature.js +13 -0
  142. package/dist/index.d.ts +35 -0
  143. package/dist/index.js +153 -93
  144. package/dist/theme/accordion.d.ts +68 -0
  145. package/dist/theme/accordion.js +24 -0
  146. package/dist/theme/alert.d.ts +0 -3
  147. package/dist/theme/app-shell.d.ts +77 -0
  148. package/dist/theme/app-shell.js +35 -0
  149. package/dist/theme/avatar.d.ts +253 -0
  150. package/dist/theme/avatar.js +84 -0
  151. package/dist/theme/banner.d.ts +0 -9
  152. package/dist/theme/bar-chart.d.ts +0 -16
  153. package/dist/theme/breadcrumb.d.ts +3 -3
  154. package/dist/theme/button-group.d.ts +0 -3
  155. package/dist/theme/button.d.ts +0 -3
  156. package/dist/theme/card.js +2 -2
  157. package/dist/theme/chart-legend.d.ts +3 -11
  158. package/dist/theme/collapsible.d.ts +44 -0
  159. package/dist/theme/collapsible.js +17 -0
  160. package/dist/theme/color-picker.d.ts +98 -0
  161. package/dist/theme/color-picker.js +19 -0
  162. package/dist/theme/command-palette.d.ts +122 -0
  163. package/dist/theme/command-palette.js +22 -0
  164. package/dist/theme/container.d.ts +101 -0
  165. package/dist/theme/container.js +26 -0
  166. package/dist/theme/date-picker.d.ts +12 -0
  167. package/dist/theme/date-picker.js +1 -1
  168. package/dist/theme/dropdown-menu.d.ts +0 -9
  169. package/dist/theme/file-upload.d.ts +0 -3
  170. package/dist/theme/form.d.ts +12 -12
  171. package/dist/theme/index.d.ts +25 -0
  172. package/dist/theme/kbd.d.ts +71 -0
  173. package/dist/theme/kbd.js +29 -0
  174. package/dist/theme/line-chart.d.ts +0 -9
  175. package/dist/theme/menubar.d.ts +29 -0
  176. package/dist/theme/menubar.js +11 -0
  177. package/dist/theme/navigation-menu.d.ts +161 -0
  178. package/dist/theme/navigation-menu.js +43 -0
  179. package/dist/theme/number-input.d.ts +0 -3
  180. package/dist/theme/page-header.d.ts +47 -0
  181. package/dist/theme/page-header.js +17 -0
  182. package/dist/theme/pagination.d.ts +0 -3
  183. package/dist/theme/pin-input.d.ts +86 -0
  184. package/dist/theme/pin-input.js +32 -0
  185. package/dist/theme/popover.d.ts +119 -0
  186. package/dist/theme/popover.js +31 -0
  187. package/dist/theme/presets.d.ts +0 -2
  188. package/dist/theme/progress.d.ts +93 -0
  189. package/dist/theme/progress.js +37 -7
  190. package/dist/theme/radio-group.d.ts +24 -0
  191. package/dist/theme/radio-group.js +23 -14
  192. package/dist/theme/scroll-area.d.ts +65 -0
  193. package/dist/theme/scroll-area.js +57 -0
  194. package/dist/theme/scroll-fade.d.ts +35 -0
  195. package/dist/theme/scroll-fade.js +12 -0
  196. package/dist/theme/sidebar.d.ts +167 -0
  197. package/dist/theme/sidebar.js +43 -0
  198. package/dist/theme/signature-pad.d.ts +50 -0
  199. package/dist/theme/signature-pad.js +17 -0
  200. package/dist/theme/slider.d.ts +128 -0
  201. package/dist/theme/slider.js +49 -0
  202. package/dist/theme/sparkline.d.ts +0 -6
  203. package/dist/theme/splitter.d.ts +59 -0
  204. package/dist/theme/splitter.js +25 -0
  205. package/dist/theme/stat.d.ts +0 -3
  206. package/dist/theme/stepper.js +2 -2
  207. package/dist/theme/switch.d.ts +53 -29
  208. package/dist/theme/switch.js +33 -8
  209. package/dist/theme/table.d.ts +51 -3
  210. package/dist/theme/table.js +8 -3
  211. package/dist/theme/tabs.d.ts +0 -3
  212. package/dist/theme/tags-input.d.ts +110 -0
  213. package/dist/theme/tags-input.js +42 -0
  214. package/dist/theme/time-field.d.ts +68 -0
  215. package/dist/theme/time-field.js +21 -0
  216. package/dist/theme/timeline.d.ts +182 -0
  217. package/dist/theme/timeline.js +83 -0
  218. package/dist/theme/toggle.d.ts +145 -0
  219. package/dist/theme/toggle.js +84 -0
  220. package/dist/theme/toolbar.d.ts +56 -0
  221. package/dist/theme/toolbar.js +21 -0
  222. package/dist/theme/tree.d.ts +68 -0
  223. package/dist/theme/tree.js +28 -0
  224. package/package.json +2 -2
  225. package/theme.css +221 -0
@@ -0,0 +1,115 @@
1
+ import { useIryxUiConfig as e } from "../config.js";
2
+ import { sliderTheme as t } from "../theme/slider.js";
3
+ import { Fragment as n, computed as r, createBlock as i, createCommentVNode as a, createElementBlock as o, createElementVNode as s, createTextVNode as c, createVNode as l, defineComponent as u, mergeProps as d, normalizeClass as f, openBlock as p, renderList as m, renderSlot as h, toDisplayString as g, unref as _, withCtx as v } from "vue";
4
+ import { SliderRange as y, SliderRoot as b, SliderThumb as x, SliderTrack as S, useId as C } from "reka-ui";
5
+ //#region src/components/Slider.vue?vue&type=script&setup=true&lang.ts
6
+ var w = ["id"], T = /*@__PURE__*/ u({
7
+ inheritAttrs: !1,
8
+ __name: "Slider",
9
+ props: {
10
+ modelValue: {},
11
+ min: { default: 0 },
12
+ max: { default: 100 },
13
+ step: { default: 1 },
14
+ disabled: { type: Boolean },
15
+ orientation: {},
16
+ inverted: { type: Boolean },
17
+ minStepsBetweenThumbs: {},
18
+ size: {},
19
+ label: {},
20
+ showValue: { type: Boolean },
21
+ showScale: { type: Boolean },
22
+ formatValue: {},
23
+ rangeLabels: { default: () => ["minimum", "maximum"] },
24
+ id: {},
25
+ unstyled: {
26
+ type: Boolean,
27
+ default: void 0
28
+ },
29
+ class: {},
30
+ ui: {}
31
+ },
32
+ emits: ["update:modelValue", "valueCommit"],
33
+ setup(u, { emit: T }) {
34
+ let E = u, D = T, O = r(() => typeof E.modelValue == "number"), k = r(() => Array.isArray(E.modelValue) ? E.modelValue : typeof E.modelValue == "number" ? [E.modelValue] : [E.min]);
35
+ function A(e) {
36
+ return O.value ? e[0] ?? E.min : e;
37
+ }
38
+ let j = r(() => E.formatValue ?? ((e) => String(e))), M = r(() => k.value.map((e) => j.value(e)).join(" – "));
39
+ function N(e, t) {
40
+ return E.label ? k.value.length > 1 ? `${E.label} ${E.rangeLabels[e] ?? ""}`.trim() : E.label : k.value.length > 1 ? E.rangeLabels[e] ?? void 0 : j.value(t);
41
+ }
42
+ let P = C(), F = r(() => `${E.id ?? P}-label`), I = r(() => !!(E.label || E.showValue)), L = e(), R = r(() => E.unstyled ?? L.unstyled), z = r(() => t({
43
+ orientation: E.orientation,
44
+ size: E.size,
45
+ disabled: E.disabled ?? !1
46
+ }));
47
+ function B(e, t) {
48
+ let n = [E.ui?.[e], t];
49
+ return R.value ? n : z.value[e]({ class: n });
50
+ }
51
+ return (e, t) => (p(), o("div", { class: f(B("root", E.class)) }, [
52
+ I.value ? (p(), o("div", {
53
+ key: 0,
54
+ class: f(B("header"))
55
+ }, [E.label || e.$slots.label ? (p(), o("span", {
56
+ key: 0,
57
+ id: F.value,
58
+ class: f(B("label"))
59
+ }, [h(e.$slots, "label", {}, () => [c(g(E.label), 1)])], 10, w)) : a("", !0), E.showValue ? (p(), o("span", {
60
+ key: 1,
61
+ class: f(B("value"))
62
+ }, [h(e.$slots, "value", {
63
+ values: k.value,
64
+ text: M.value
65
+ }, () => [c(g(M.value), 1)])], 2)) : a("", !0)], 2)) : a("", !0),
66
+ l(_(b), d({
67
+ "model-value": k.value,
68
+ min: E.min,
69
+ max: E.max,
70
+ step: E.step,
71
+ disabled: E.disabled,
72
+ orientation: E.orientation,
73
+ inverted: E.inverted,
74
+ "min-steps-between-thumbs": E.minStepsBetweenThumbs,
75
+ "aria-labelledby": E.label ? F.value : void 0
76
+ }, e.$attrs, {
77
+ class: B("slider"),
78
+ "onUpdate:modelValue": t[0] ||= (e) => e && D("update:modelValue", A(e)),
79
+ onValueCommit: t[1] ||= (e) => D("valueCommit", A(e))
80
+ }), {
81
+ default: v(() => [l(_(S), { class: f(B("track")) }, {
82
+ default: v(() => [l(_(y), { class: f(B("range")) }, null, 8, ["class"])]),
83
+ _: 1
84
+ }, 8, ["class"]), (p(!0), o(n, null, m(k.value, (e, t) => (p(), i(_(x), {
85
+ key: t,
86
+ "aria-label": N(t, e),
87
+ "aria-valuetext": j.value(e),
88
+ class: f(B("thumb"))
89
+ }, null, 8, [
90
+ "aria-label",
91
+ "aria-valuetext",
92
+ "class"
93
+ ]))), 128))]),
94
+ _: 1
95
+ }, 16, [
96
+ "model-value",
97
+ "min",
98
+ "max",
99
+ "step",
100
+ "disabled",
101
+ "orientation",
102
+ "inverted",
103
+ "min-steps-between-thumbs",
104
+ "aria-labelledby",
105
+ "class"
106
+ ]),
107
+ E.showScale && E.orientation !== "vertical" ? (p(), o("div", {
108
+ key: 1,
109
+ class: f(B("scale"))
110
+ }, [s("span", null, g(j.value(E.min)), 1), s("span", null, g(j.value(E.max)), 1)], 2)) : a("", !0)
111
+ ], 2));
112
+ }
113
+ });
114
+ //#endregion
115
+ export { T as default };
@@ -0,0 +1,5 @@
1
+ import e from "./Splitter.vue_vue_type_script_setup_true_lang.js";
2
+ //#region src/components/Splitter.vue
3
+ var t = e;
4
+ //#endregion
5
+ export { t as default };
@@ -0,0 +1,59 @@
1
+ export interface SplitterPanelOption {
2
+ /** Starting size, as a percentage of the group. */
3
+ size?: number;
4
+ minSize?: number;
5
+ maxSize?: number;
6
+ /** Allow dragging past `minSize` to collapse the panel entirely. */
7
+ collapsible?: boolean;
8
+ /** What "collapsed" means, as a percentage. `0` hides the panel. */
9
+ collapsedSize?: number;
10
+ /** Identifies the panel; needed when panels are conditionally rendered. */
11
+ id?: string;
12
+ }
13
+ export interface SplitterProps {
14
+ /** One entry per panel. Two by default, split evenly. */
15
+ panels?: SplitterPanelOption[];
16
+ direction?: 'horizontal' | 'vertical';
17
+ /**
18
+ * Remember the arrangement under this key, so a reader's layout survives a
19
+ * reload. Stored in `localStorage`.
20
+ */
21
+ autoSaveId?: string;
22
+ /** How far each arrow key press moves the handle, as a percentage. */
23
+ keyboardResizeBy?: number;
24
+ /** Skip built-in classes; you take over styling entirely. */
25
+ unstyled?: boolean;
26
+ class?: string;
27
+ /** Override classes per slot, e.g. `{ rule: 'bg-primary' }`. */
28
+ ui?: {
29
+ root?: string;
30
+ panel?: string;
31
+ handle?: string;
32
+ rule?: string;
33
+ };
34
+ }
35
+ declare var __VLS_16: {}, __VLS_25: `panel-${number}`, __VLS_26: {
36
+ panel: SplitterPanelOption;
37
+ index: number;
38
+ };
39
+ type __VLS_Slots = {} & {
40
+ [K in NonNullable<typeof __VLS_25>]?: (props: typeof __VLS_26) => any;
41
+ } & {
42
+ handle?: (props: typeof __VLS_16) => any;
43
+ };
44
+ declare const __VLS_base: import("vue").DefineComponent<SplitterProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
45
+ layout: (sizes: number[]) => any;
46
+ }, string, import("vue").PublicProps, Readonly<SplitterProps> & Readonly<{
47
+ onLayout?: ((sizes: number[]) => any) | undefined;
48
+ }>, {
49
+ unstyled: boolean;
50
+ direction: "horizontal" | "vertical";
51
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
52
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
53
+ declare const _default: typeof __VLS_export;
54
+ export default _default;
55
+ type __VLS_WithSlots<T, S> = T & {
56
+ new (): {
57
+ $slots: S;
58
+ };
59
+ };
@@ -0,0 +1,69 @@
1
+ import { useIryxUiConfig as e } from "../config.js";
2
+ import { splitterTheme as t } from "../theme/splitter.js";
3
+ import { Fragment as n, computed as r, createBlock as i, createCommentVNode as a, createElementBlock as o, createElementVNode as s, createVNode as c, defineComponent as l, normalizeClass as u, openBlock as d, renderList as f, renderSlot as p, unref as m, withCtx as h } from "vue";
4
+ import { SplitterGroup as g, SplitterPanel as _, SplitterResizeHandle as v } from "reka-ui";
5
+ //#region src/components/Splitter.vue?vue&type=script&setup=true&lang.ts
6
+ var y = /*@__PURE__*/ l({
7
+ __name: "Splitter",
8
+ props: {
9
+ panels: {},
10
+ direction: { default: "horizontal" },
11
+ autoSaveId: {},
12
+ keyboardResizeBy: {},
13
+ unstyled: {
14
+ type: Boolean,
15
+ default: void 0
16
+ },
17
+ class: {},
18
+ ui: {}
19
+ },
20
+ emits: ["layout"],
21
+ setup(l, { emit: y }) {
22
+ let b = l, x = y, S = r(() => b.panels?.length ? b.panels : [{}, {}]), C = e(), w = r(() => b.unstyled ?? C.unstyled), T = r(() => t({ direction: b.direction })), E = r(() => w.value ? [b.ui?.root, b.class] : T.value.root({ class: [b.ui?.root, b.class] })), D = r(() => w.value ? b.ui?.panel : T.value.panel({ class: b.ui?.panel })), O = r(() => w.value ? b.ui?.handle : T.value.handle({ class: b.ui?.handle })), k = r(() => w.value ? b.ui?.rule : T.value.rule({ class: b.ui?.rule }));
23
+ return (e, t) => (d(), i(m(g), {
24
+ direction: b.direction,
25
+ "auto-save-id": b.autoSaveId,
26
+ "keyboard-resize-by": b.keyboardResizeBy,
27
+ class: u(E.value),
28
+ onLayout: t[0] ||= (e) => x("layout", e)
29
+ }, {
30
+ default: h(() => [(d(!0), o(n, null, f(S.value, (t, r) => (d(), o(n, { key: t.id ?? r }, [r > 0 ? (d(), i(m(v), {
31
+ key: 0,
32
+ class: u(O.value)
33
+ }, {
34
+ default: h(() => [p(e.$slots, "handle", {}, () => [s("span", { class: u(k.value) }, null, 2)])]),
35
+ _: 3
36
+ }, 8, ["class"])) : a("", !0), c(m(_), {
37
+ id: t.id,
38
+ "default-size": t.size,
39
+ "min-size": t.minSize,
40
+ "max-size": t.maxSize,
41
+ collapsible: t.collapsible,
42
+ "collapsed-size": t.collapsedSize,
43
+ class: u(D.value)
44
+ }, {
45
+ default: h(() => [p(e.$slots, `panel-${r}`, {
46
+ panel: t,
47
+ index: r
48
+ })]),
49
+ _: 2
50
+ }, 1032, [
51
+ "id",
52
+ "default-size",
53
+ "min-size",
54
+ "max-size",
55
+ "collapsible",
56
+ "collapsed-size",
57
+ "class"
58
+ ])], 64))), 128))]),
59
+ _: 3
60
+ }, 8, [
61
+ "direction",
62
+ "auto-save-id",
63
+ "keyboard-resize-by",
64
+ "class"
65
+ ]));
66
+ }
67
+ });
68
+ //#endregion
69
+ export { y as default };
@@ -44,8 +44,8 @@ type __VLS_Slots = {} & {
44
44
  hint?: (props: typeof __VLS_19) => any;
45
45
  };
46
46
  declare const __VLS_base: import("vue").DefineComponent<StatProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<StatProps> & Readonly<{}>, {
47
- as: string;
48
47
  unstyled: boolean;
48
+ as: string;
49
49
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
50
50
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
51
51
  declare const _default: typeof __VLS_export;
@@ -4,6 +4,7 @@ export interface SwitchProps extends SwitchRootProps {
4
4
  label?: string;
5
5
  /** Secondary text under the label, e.g. what the setting does. */
6
6
  description?: string;
7
+ size?: 'sm' | 'md' | 'lg';
7
8
  id?: string;
8
9
  /** Skip built-in classes; you take over styling entirely. */
9
10
  unstyled?: boolean;
@@ -9,6 +9,7 @@ var S = ["id"], C = /*@__PURE__*/ l({
9
9
  props: {
10
10
  label: {},
11
11
  description: {},
12
+ size: {},
12
13
  id: {},
13
14
  unstyled: {
14
15
  type: Boolean,
@@ -30,9 +31,12 @@ var S = ["id"], C = /*@__PURE__*/ l({
30
31
  emits: ["update:modelValue"],
31
32
  setup(l, { emit: C }) {
32
33
  let w = l, T = C, E = b(n(() => {
33
- let { label: e, description: t, id: n, unstyled: r, class: i, ui: a, ...o } = w;
34
- return o;
35
- }), T), D = x(), O = n(() => w.id ?? D), k = n(() => !!(w.label || w.description)), A = e(), j = n(() => w.unstyled ?? A.unstyled), M = t(), N = n(() => j.value ? w.ui?.wrapper : M.wrapper({ class: w.ui?.wrapper })), P = n(() => j.value ? [w.ui?.root, w.class] : M.root({ class: [w.ui?.root, w.class] })), F = n(() => j.value ? w.ui?.thumb : M.thumb({ class: w.ui?.thumb })), I = n(() => j.value ? w.ui?.content : M.content({ class: w.ui?.content })), L = n(() => j.value ? w.ui?.label : M.label({ class: w.ui?.label })), R = n(() => j.value ? w.ui?.description : M.description({ class: w.ui?.description }));
34
+ let { label: e, description: t, size: n, id: r, unstyled: i, class: a, ui: o, ...s } = w;
35
+ return s;
36
+ }), T), D = x(), O = n(() => w.id ?? D), k = n(() => !!(w.label || w.description)), A = e(), j = n(() => w.unstyled ?? A.unstyled), M = n(() => t({
37
+ size: w.size,
38
+ withText: k.value
39
+ })), N = n(() => j.value ? w.ui?.wrapper : M.value.wrapper({ class: w.ui?.wrapper })), P = n(() => j.value ? [w.ui?.root, w.class] : M.value.root({ class: [w.ui?.root, w.class] })), F = n(() => j.value ? w.ui?.thumb : M.value.thumb({ class: w.ui?.thumb })), I = n(() => j.value ? w.ui?.content : M.value.content({ class: w.ui?.content })), L = n(() => j.value ? w.ui?.label : M.value.label({ class: w.ui?.label })), R = n(() => j.value ? w.ui?.description : M.value.description({ class: w.ui?.description }));
36
40
  return (e, t) => k.value ? (f(), a("div", {
37
41
  key: 0,
38
42
  class: d(N.value)
@@ -13,7 +13,7 @@ export interface TableProps<Row = any> {
13
13
  rowKey?: string;
14
14
  loading?: boolean;
15
15
  /** Rows of skeletons while `loading` and there is nothing to show yet. */
16
- loadingRows?: number;
16
+ skeletonRows?: number;
17
17
  selectable?: boolean;
18
18
  /** Veto selection per row — the checkbox is hidden and the header skips it. */
19
19
  isRowSelectable?: (row: Row) => boolean;
@@ -28,6 +28,8 @@ export interface TableProps<Row = any> {
28
28
  size?: 'sm' | 'md' | 'lg';
29
29
  /** Text when there are no rows. Overridden by the `empty` slot. */
30
30
  emptyText?: string;
31
+ /** Accessible name for the actions column, whose header is blank. */
32
+ actionsLabel?: string;
31
33
  /** Accessible name for the table, since a visible caption is optional. */
32
34
  label?: string;
33
35
  caption?: string;
@@ -113,6 +115,10 @@ declare const __VLS_export: <T = any>(__VLS_props: NonNullable<Awaited<typeof __
113
115
  caption?: (props: {}) => any;
114
116
  } & {
115
117
  empty?: (props: {}) => any;
118
+ } & {
119
+ 'row-actions'?: (props: {
120
+ row: T;
121
+ }) => any;
116
122
  } & {
117
123
  expanded?: (props: {
118
124
  row: T;
@@ -4,10 +4,10 @@ import n from "./Checkbox.js";
4
4
  import r from "./Skeleton.js";
5
5
  import { useDataTable as i } from "../composables/data-table.js";
6
6
  import { tableTheme as a } from "../theme/table.js";
7
- import { Fragment as o, computed as s, createBlock as c, createCommentVNode as l, createElementBlock as u, createElementVNode as d, createTextVNode as f, createVNode as p, defineComponent as m, mergeModels as h, normalizeClass as g, normalizeStyle as _, openBlock as v, renderList as y, renderSlot as b, toDisplayString as x, unref as S, useModel as C, withModifiers as w } from "vue";
8
- import { ArrowDown01Icon as T, ArrowRight01Icon as E, ArrowUp01Icon as D, UnfoldMoreIcon as O } from "@hugeicons/core-free-icons";
7
+ import { Fragment as o, computed as s, createBlock as c, createCommentVNode as l, createElementBlock as u, createElementVNode as d, createTextVNode as f, createVNode as p, defineComponent as m, mergeModels as h, normalizeClass as g, normalizeStyle as _, openBlock as v, renderList as y, renderSlot as b, toDisplayString as x, unref as S, useModel as C, useSlots as w, withModifiers as T } from "vue";
8
+ import { ArrowDown01Icon as E, ArrowRight01Icon as D, ArrowUp01Icon as O, UnfoldMoreIcon as ee } from "@hugeicons/core-free-icons";
9
9
  //#region src/components/Table.vue?vue&type=script&setup=true&lang.ts
10
- var k = ["aria-label", "aria-busy"], A = ["aria-sort"], ee = ["onClick"], j = { key: 1 }, M = ["colspan"], N = ["data-selected", "onClick"], P = ["aria-expanded", "onClick"], F = ["colspan"], I = /*@__PURE__*/ m({
10
+ var te = ["aria-label", "aria-busy"], ne = ["aria-sort"], k = ["onClick"], A = { class: "sr-only" }, j = { key: 1 }, M = ["colspan"], N = ["data-selected", "onClick"], P = ["aria-expanded", "onClick"], F = ["colspan"], I = /*@__PURE__*/ m({
11
11
  __name: "Table",
12
12
  props: /*@__PURE__*/ h({
13
13
  rows: { default: () => [] },
@@ -15,7 +15,7 @@ var k = ["aria-label", "aria-busy"], A = ["aria-sort"], ee = ["onClick"], j = {
15
15
  total: { default: void 0 },
16
16
  rowKey: { default: "id" },
17
17
  loading: { type: Boolean },
18
- loadingRows: { default: 5 },
18
+ skeletonRows: { default: 5 },
19
19
  selectable: { type: Boolean },
20
20
  isRowSelectable: {},
21
21
  expandable: { type: Boolean },
@@ -29,6 +29,7 @@ var k = ["aria-label", "aria-busy"], A = ["aria-sort"], ee = ["onClick"], j = {
29
29
  stickyHeader: { type: Boolean },
30
30
  size: {},
31
31
  emptyText: { default: "No results." },
32
+ actionsLabel: { default: "Actions" },
32
33
  label: {},
33
34
  caption: {},
34
35
  unstyled: {
@@ -68,61 +69,62 @@ var k = ["aria-label", "aria-busy"], A = ["aria-sort"], ee = ["onClick"], j = {
68
69
  perPage: V,
69
70
  selection: H,
70
71
  expanded: U
71
- }), G = e(), K = s(() => L.unstyled ?? G.unstyled), q = s(() => a({
72
+ }), G = w(), K = e(), q = s(() => L.unstyled ?? K.unstyled), J = s(() => a({
72
73
  size: L.size,
73
74
  striped: L.striped,
74
75
  hoverable: L.hoverable ?? !0,
75
76
  stickyHeader: L.stickyHeader,
76
- clickable: L.clickableRows
77
+ clickable: L.clickableRows,
78
+ loading: !!L.loading && W.pageRows.value.length > 0
77
79
  }));
78
- function J(e, t) {
80
+ function Y(e, t) {
79
81
  let n = L.ui?.[e];
80
- return K.value ? [n, t] : q.value[e]({ class: [n, t] });
82
+ return q.value ? [n, t] : J.value[e]({ class: [n, t] });
81
83
  }
82
- function Y(e) {
83
- return K.value ? void 0 : q.value[e]();
84
+ function X(e) {
85
+ return q.value ? void 0 : J.value[e]();
84
86
  }
85
- let X = s(() => K.value ? [L.ui?.root, L.class] : q.value.root({ class: [L.ui?.root, L.class] }));
87
+ let re = s(() => q.value ? [L.ui?.root, L.class] : J.value.root({ class: [L.ui?.root, L.class] }));
86
88
  function Z(e) {
87
- if (K.value) return;
89
+ if (q.value) return;
88
90
  let t = e.align ?? (e.numeric ? "end" : "start");
89
91
  if (t !== "start") return t === "end" ? "text-end" : "text-center";
90
92
  }
91
- function Q(e) {
92
- return !K.value && e.numeric ? "tabular-nums" : void 0;
93
+ function ie(e) {
94
+ return !q.value && e.numeric ? "tabular-nums" : void 0;
93
95
  }
94
- function te(e, t) {
96
+ function ae(e, t) {
95
97
  return typeof t.class == "function" ? t.class(e) : t.class;
96
98
  }
97
- function ne(e, t) {
99
+ function oe(e, t) {
98
100
  return typeof t.hidden == "function" ? t.hidden(e) : !1;
99
101
  }
100
- let $ = s(() => W.visibleColumns.value.length + +!!L.selectable + +!!L.expandable), re = s(() => L.loading && W.pageRows.value.length === 0), ie = s(() => !L.loading && W.pageRows.value.length === 0);
101
- function ae(e) {
102
+ let Q = s(() => W.visibleColumns.value.length + +!!L.selectable + +!!L.expandable + +!!G["row-actions"]), $ = s(() => L.loading && W.pageRows.value.length === 0), se = s(() => !L.loading && W.pageRows.value.length === 0);
103
+ function ce(e) {
102
104
  if (!e.sortable) return;
103
105
  let t = W.sortOrderFor(e);
104
106
  return t === "asc" ? "ascending" : t === "desc" ? "descending" : "none";
105
107
  }
106
- function oe(e) {
108
+ function le(e) {
107
109
  L.clickableRows && R("rowClick", e);
108
110
  }
109
- return h({ table: W }), (e, i) => (v(), u("div", { class: g(X.value) }, [d("table", {
110
- class: g(J("table")),
111
+ return h({ table: W }), (e, i) => (v(), u("div", { class: g(re.value) }, [d("table", {
112
+ class: g(Y("table")),
111
113
  "aria-label": L.label,
112
114
  "aria-busy": L.loading || void 0
113
115
  }, [
114
116
  L.caption || e.$slots.caption ? (v(), u("caption", {
115
117
  key: 0,
116
- class: g(J("caption"))
118
+ class: g(Y("caption"))
117
119
  }, [b(e.$slots, "caption", {}, () => [f(x(L.caption), 1)])], 2)) : l("", !0),
118
- d("thead", { class: g(J("thead")) }, [d("tr", null, [
120
+ d("thead", { class: g(Y("thead")) }, [d("tr", null, [
119
121
  L.expandable ? (v(), u("th", {
120
122
  key: 0,
121
- class: g(Y("headGutter"))
123
+ class: g(X("headGutter"))
122
124
  }, null, 2)) : l("", !0),
123
125
  L.selectable ? (v(), u("th", {
124
126
  key: 1,
125
- class: g(Y("headGutter"))
127
+ class: g(X("headGutter"))
126
128
  }, [p(n, {
127
129
  "model-value": S(W).headerSelection.value,
128
130
  "aria-label": "Select all rows on this page",
@@ -130,60 +132,68 @@ var k = ["aria-label", "aria-busy"], A = ["aria-sort"], ee = ["onClick"], j = {
130
132
  }, null, 8, ["model-value", "onUpdate:modelValue"])], 2)) : l("", !0),
131
133
  (v(!0), u(o, null, y(S(W).visibleColumns.value, (n) => (v(), u("th", {
132
134
  key: n.key,
133
- class: g(J("th", Z(n))),
135
+ class: g(Y("th", Z(n))),
134
136
  style: _(n.width ? { width: n.width } : void 0),
135
- "aria-sort": ae(n),
137
+ "aria-sort": ce(n),
136
138
  scope: "col"
137
139
  }, [b(e.$slots, `header-${n.key}`, { column: n }, () => [n.sortable ? (v(), u("button", {
138
140
  key: 0,
139
141
  type: "button",
140
- class: g(Y("sortButton")),
142
+ class: g(X("sortButton")),
141
143
  onClick: (e) => S(W).toggleSort(n)
142
144
  }, [f(x(n.label ?? n.key) + " ", 1), p(t, {
143
- icon: S(W).sortOrderFor(n) === "asc" ? S(D) : S(W).sortOrderFor(n) === "desc" ? S(T) : S(O),
144
- class: g(Y("sortIcon"))
145
- }, null, 8, ["icon", "class"])], 10, ee)) : (v(), u(o, { key: 1 }, [f(x(n.label ?? n.key), 1)], 64))])], 14, A))), 128))
145
+ icon: S(W).sortOrderFor(n) === "asc" ? S(O) : S(W).sortOrderFor(n) === "desc" ? S(E) : S(ee),
146
+ class: g(X("sortIcon"))
147
+ }, null, 8, ["icon", "class"])], 10, k)) : (v(), u(o, { key: 1 }, [f(x(n.label ?? n.key), 1)], 64))])], 14, ne))), 128)),
148
+ e.$slots["row-actions"] ? (v(), u("th", {
149
+ key: 2,
150
+ class: g(X("headActions"))
151
+ }, [d("span", A, x(L.actionsLabel), 1)], 2)) : l("", !0)
146
152
  ])], 2),
147
- d("tbody", { class: g(J("tbody")) }, [re.value ? (v(!0), u(o, { key: 0 }, y(L.loadingRows, (e) => (v(), u("tr", {
148
- key: `skeleton-${e}`,
149
- class: g(J("tr"))
153
+ d("tbody", { class: g(Y("tbody")) }, [$.value ? (v(!0), u(o, { key: 0 }, y(L.skeletonRows, (t) => (v(), u("tr", {
154
+ key: `skeleton-${t}`,
155
+ class: g(Y("tr"))
150
156
  }, [
151
157
  L.expandable ? (v(), u("td", {
152
158
  key: 0,
153
- class: g(Y("gutter"))
159
+ class: g(X("gutter"))
154
160
  }, [p(r, { class: "size-4" })], 2)) : l("", !0),
155
161
  L.selectable ? (v(), u("td", {
156
162
  key: 1,
157
- class: g(Y("gutter"))
163
+ class: g(X("gutter"))
158
164
  }, [p(r, { class: "size-4" })], 2)) : l("", !0),
159
165
  (v(!0), u(o, null, y(S(W).visibleColumns.value, (e) => (v(), u("td", {
160
166
  key: e.key,
161
- class: g(J("td"))
162
- }, [p(r, { class: "h-4 w-24" })], 2))), 128))
163
- ], 2))), 128)) : ie.value ? (v(), u("tr", j, [d("td", {
164
- colspan: $.value,
165
- class: g(J("empty"))
167
+ class: g(Y("td"))
168
+ }, [p(r, { class: "h-4 w-24" })], 2))), 128)),
169
+ e.$slots["row-actions"] ? (v(), u("td", {
170
+ key: 2,
171
+ class: g(X("actions"))
172
+ }, [p(r, { class: "size-4" })], 2)) : l("", !0)
173
+ ], 2))), 128)) : se.value ? (v(), u("tr", j, [d("td", {
174
+ colspan: Q.value,
175
+ class: g(Y("empty"))
166
176
  }, [b(e.$slots, "empty", {}, () => [f(x(L.emptyText), 1)])], 10, M)])) : (v(!0), u(o, { key: 2 }, y(S(W).pageRows.value, (r) => (v(), u(o, { key: S(W).keyOf(r) }, [d("tr", {
167
- class: g([J("tr"), !K.value && S(W).isSelected(r) ? "bg-primary/5" : void 0]),
177
+ class: g([Y("tr"), !q.value && S(W).isSelected(r) ? "bg-primary/5" : void 0]),
168
178
  "data-selected": S(W).isSelected(r) || void 0,
169
- onClick: (e) => oe(r)
179
+ onClick: (e) => le(r)
170
180
  }, [
171
181
  L.expandable ? (v(), u("td", {
172
182
  key: 0,
173
- class: g(Y("gutter")),
174
- onClick: i[0] ||= w(() => {}, ["stop"])
183
+ class: g(X("gutter")),
184
+ onClick: i[0] ||= T(() => {}, ["stop"])
175
185
  }, [!L.canExpandRow || L.canExpandRow(r) ? (v(), u("button", {
176
186
  key: 0,
177
187
  type: "button",
178
- class: g([Y("expandButton"), S(W).isExpanded(r) && !K.value ? "rotate-90" : void 0]),
188
+ class: g([X("expandButton"), S(W).isExpanded(r) && !q.value ? "rotate-90" : void 0]),
179
189
  "aria-expanded": S(W).isExpanded(r),
180
190
  "aria-label": "Toggle row details",
181
191
  onClick: (e) => S(W).toggleExpanded(r)
182
- }, [p(t, { icon: S(E) }, null, 8, ["icon"])], 10, P)) : l("", !0)], 2)) : l("", !0),
192
+ }, [p(t, { icon: S(D) }, null, 8, ["icon"])], 10, P)) : l("", !0)], 2)) : l("", !0),
183
193
  L.selectable ? (v(), u("td", {
184
194
  key: 1,
185
- class: g(Y("gutter")),
186
- onClick: i[1] ||= w(() => {}, ["stop"])
195
+ class: g(X("gutter")),
196
+ onClick: i[1] ||= T(() => {}, ["stop"])
187
197
  }, [!L.isRowSelectable || L.isRowSelectable(r) ? (v(), c(n, {
188
198
  key: 0,
189
199
  "model-value": S(W).isSelected(r),
@@ -192,25 +202,30 @@ var k = ["aria-label", "aria-busy"], A = ["aria-sort"], ee = ["onClick"], j = {
192
202
  }, null, 8, ["model-value", "onUpdate:modelValue"])) : l("", !0)], 2)) : l("", !0),
193
203
  (v(!0), u(o, null, y(S(W).visibleColumns.value, (t) => (v(), u("td", {
194
204
  key: t.key,
195
- class: g(J("td", [
205
+ class: g(Y("td", [
196
206
  Z(t),
197
- Q(t),
198
- te(r, t)
207
+ ie(t),
208
+ ae(r, t)
199
209
  ].filter(Boolean).join(" ") || void 0))
200
- }, [ne(r, t) ? l("", !0) : b(e.$slots, `cell-${t.key}`, {
210
+ }, [oe(r, t) ? l("", !0) : b(e.$slots, `cell-${t.key}`, {
201
211
  key: 0,
202
212
  row: r,
203
213
  column: t,
204
214
  value: S(W).getRowValue(r, t.key)
205
- }, () => [f(x(S(W).getRowValue(r, t.key)), 1)])], 2))), 128))
215
+ }, () => [f(x(S(W).getRowValue(r, t.key)), 1)])], 2))), 128)),
216
+ e.$slots["row-actions"] ? (v(), u("td", {
217
+ key: 2,
218
+ class: g(X("actions")),
219
+ onClick: i[2] ||= T(() => {}, ["stop"])
220
+ }, [b(e.$slots, "row-actions", { row: r })], 2)) : l("", !0)
206
221
  ], 10, N), L.expandable && S(W).isExpanded(r) ? (v(), u("tr", {
207
222
  key: 0,
208
- class: g([J("tr"), Y("expandedRow")])
223
+ class: g([Y("tr"), X("expandedRow")])
209
224
  }, [d("td", {
210
- colspan: $.value,
211
- class: g(Y("expandedCell"))
225
+ colspan: Q.value,
226
+ class: g(X("expandedCell"))
212
227
  }, [b(e.$slots, "expanded", { row: r })], 10, F)], 2)) : l("", !0)], 64))), 128))], 2)
213
- ], 10, k)], 2));
228
+ ], 10, te)], 2));
214
229
  }
215
230
  });
216
231
  //#endregion
@@ -0,0 +1,5 @@
1
+ import e from "./TagsInput.vue_vue_type_script_setup_true_lang.js";
2
+ //#region src/components/TagsInput.vue
3
+ var t = e;
4
+ //#endregion
5
+ export { t as default };
@@ -0,0 +1,71 @@
1
+ export interface TagsInputProps {
2
+ modelValue?: string[];
3
+ placeholder?: string;
4
+ /** Stop accepting tags past this many. */
5
+ max?: number;
6
+ /**
7
+ * What ends a tag. A comma by default, so pasting a comma-separated list
8
+ * does the obvious thing.
9
+ */
10
+ delimiter?: string | RegExp;
11
+ /** Allow the same tag twice. Off by default — a repeated tag is usually a slip. */
12
+ duplicate?: boolean;
13
+ /** Split a pasted string on the delimiter instead of taking it as one tag. */
14
+ addOnPaste?: boolean;
15
+ /** Commit the typed text when Tab moves focus on. */
16
+ addOnTab?: boolean;
17
+ /**
18
+ * Commit the typed text when focus leaves. Worth turning on: half-typed
19
+ * text silently discarded on blur is the classic way to lose a tag.
20
+ */
21
+ addOnBlur?: boolean;
22
+ /** Show a control that empties the whole field. */
23
+ clearable?: boolean;
24
+ disabled?: boolean;
25
+ invalid?: boolean;
26
+ size?: 'sm' | 'md' | 'lg';
27
+ id?: string;
28
+ /** Skip built-in classes; you take over styling entirely. */
29
+ unstyled?: boolean;
30
+ class?: string;
31
+ /** Override classes per slot, e.g. `{ tag: 'bg-accent' }`. */
32
+ ui?: {
33
+ root?: string;
34
+ tag?: string;
35
+ tagText?: string;
36
+ tagDelete?: string;
37
+ input?: string;
38
+ clear?: string;
39
+ };
40
+ }
41
+ declare var __VLS_16: {
42
+ tag: string;
43
+ }, __VLS_45: {};
44
+ type __VLS_Slots = {} & {
45
+ tag?: (props: typeof __VLS_16) => any;
46
+ } & {
47
+ clear?: (props: typeof __VLS_45) => any;
48
+ };
49
+ declare const __VLS_base: import("vue").DefineComponent<TagsInputProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
50
+ "update:modelValue": (value: string[]) => any;
51
+ invalidTag: (value: string) => any;
52
+ addTag: (value: string) => any;
53
+ removeTag: (value: string) => any;
54
+ }, string, import("vue").PublicProps, Readonly<TagsInputProps> & Readonly<{
55
+ "onUpdate:modelValue"?: ((value: string[]) => any) | undefined;
56
+ onInvalidTag?: ((value: string) => any) | undefined;
57
+ onAddTag?: ((value: string) => any) | undefined;
58
+ onRemoveTag?: ((value: string) => any) | undefined;
59
+ }>, {
60
+ unstyled: boolean;
61
+ invalid: boolean;
62
+ delimiter: string | RegExp;
63
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
64
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
65
+ declare const _default: typeof __VLS_export;
66
+ export default _default;
67
+ type __VLS_WithSlots<T, S> = T & {
68
+ new (): {
69
+ $slots: S;
70
+ };
71
+ };