@scalar/components 0.13.20 → 0.13.23

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 (84) hide show
  1. package/dist/components/ScalarButton/ScalarButton.stories.d.ts +12 -12
  2. package/dist/components/ScalarButton/ScalarButton.vue.d.ts +1 -1
  3. package/dist/components/ScalarButton/ScalarButton.vue.d.ts.map +1 -1
  4. package/dist/components/ScalarCombobox/ScalarCombobox.stories.d.ts +5 -4
  5. package/dist/components/ScalarCombobox/ScalarCombobox.stories.d.ts.map +1 -1
  6. package/dist/components/ScalarCombobox/ScalarCombobox.vue.d.ts +4 -4
  7. package/dist/components/ScalarCombobox/ScalarCombobox.vue.d.ts.map +1 -1
  8. package/dist/components/ScalarCombobox/ScalarCombobox.vue.js +14 -13
  9. package/dist/components/ScalarCombobox/ScalarComboboxMultiselect.vue.d.ts +2 -5
  10. package/dist/components/ScalarCombobox/ScalarComboboxMultiselect.vue.d.ts.map +1 -1
  11. package/dist/components/ScalarCombobox/ScalarComboboxMultiselect.vue.js +37 -26
  12. package/dist/components/ScalarCombobox/ScalarComboboxOptions.vue.d.ts +2 -14
  13. package/dist/components/ScalarCombobox/ScalarComboboxOptions.vue.d.ts.map +1 -1
  14. package/dist/components/ScalarCombobox/ScalarComboboxOptions.vue.js +76 -65
  15. package/dist/components/ScalarCombobox/ScalarComboboxPopover.vue.d.ts.map +1 -1
  16. package/dist/components/ScalarCombobox/ScalarComboboxPopover.vue.js +34 -30
  17. package/dist/components/ScalarCombobox/types.d.ts +9 -0
  18. package/dist/components/ScalarCombobox/types.d.ts.map +1 -1
  19. package/dist/components/ScalarContextMenu/ScalarContextMenu.stories.d.ts +3 -3
  20. package/dist/components/ScalarDropdown/ScalarDropdown.stories.d.ts +3 -3
  21. package/dist/components/ScalarFileUpload/ScalarFileUpload.stories.d.ts +364 -0
  22. package/dist/components/ScalarFileUpload/ScalarFileUpload.stories.d.ts.map +1 -0
  23. package/dist/components/ScalarFileUpload/ScalarFileUpload.test.d.ts +2 -0
  24. package/dist/components/ScalarFileUpload/ScalarFileUpload.test.d.ts.map +1 -0
  25. package/dist/components/ScalarFileUpload/ScalarFileUpload.vue.d.ts +86 -0
  26. package/dist/components/ScalarFileUpload/ScalarFileUpload.vue.d.ts.map +1 -0
  27. package/dist/components/ScalarFileUpload/ScalarFileUploadDropTarget.vue.d.ts +19 -0
  28. package/dist/components/ScalarFileUpload/ScalarFileUploadDropTarget.vue.d.ts.map +1 -0
  29. package/dist/components/ScalarFileUpload/ScalarFileUploadError.vue.d.ts +20 -0
  30. package/dist/components/ScalarFileUpload/ScalarFileUploadError.vue.d.ts.map +1 -0
  31. package/dist/components/ScalarFileUpload/ScalarFileUploadFileList.vue.d.ts +22 -0
  32. package/dist/components/ScalarFileUpload/ScalarFileUploadFileList.vue.d.ts.map +1 -0
  33. package/dist/components/ScalarFileUpload/ScalarFileUploadInput.vue.d.ts +21 -0
  34. package/dist/components/ScalarFileUpload/ScalarFileUploadInput.vue.d.ts.map +1 -0
  35. package/dist/components/ScalarFileUpload/ScalarFileUploadInputCompact.vue.d.ts +21 -0
  36. package/dist/components/ScalarFileUpload/ScalarFileUploadInputCompact.vue.d.ts.map +1 -0
  37. package/dist/components/ScalarFileUpload/ScalarFileUploadLoading.vue.d.ts +16 -0
  38. package/dist/components/ScalarFileUpload/ScalarFileUploadLoading.vue.d.ts.map +1 -0
  39. package/dist/components/ScalarFileUpload/index.d.ts +8 -0
  40. package/dist/components/ScalarFileUpload/index.d.ts.map +1 -0
  41. package/dist/components/ScalarFileUpload/types.d.ts +32 -0
  42. package/dist/components/ScalarFileUpload/types.d.ts.map +1 -0
  43. package/dist/components/ScalarListbox/ScalarListbox.stories.d.ts +9 -9
  44. package/dist/components/ScalarListbox/ScalarListbox.vue.d.ts +3 -3
  45. package/dist/components/ScalarListbox/ScalarListbox.vue.d.ts.map +1 -1
  46. package/dist/components/ScalarLoading/ScalarLoading.stories.d.ts +3 -3
  47. package/dist/components/ScalarPopover/ScalarPopover.stories.d.ts +3 -3
  48. package/dist/components/ScalarSidebar/ScalarSidebar.stories.d.ts +3 -2
  49. package/dist/components/ScalarSidebar/ScalarSidebar.stories.d.ts.map +1 -1
  50. package/dist/components/ScalarSidebar/ScalarSidebarButton.vue.d.ts +31 -0
  51. package/dist/components/ScalarSidebar/ScalarSidebarButton.vue.d.ts.map +1 -0
  52. package/dist/components/ScalarSidebar/ScalarSidebarButton.vue.js +63 -0
  53. package/dist/components/ScalarSidebar/ScalarSidebarButton.vue2.js +4 -0
  54. package/dist/components/ScalarSidebar/ScalarSidebarGroup.test.d.ts +2 -0
  55. package/dist/components/ScalarSidebar/ScalarSidebarGroup.test.d.ts.map +1 -0
  56. package/dist/components/ScalarSidebar/ScalarSidebarGroup.vue.d.ts +50 -0
  57. package/dist/components/ScalarSidebar/ScalarSidebarGroup.vue.d.ts.map +1 -0
  58. package/dist/components/ScalarSidebar/ScalarSidebarGroup.vue.js +47 -0
  59. package/dist/components/ScalarSidebar/ScalarSidebarGroup.vue2.js +4 -0
  60. package/dist/components/ScalarSidebar/ScalarSidebarGroupToggle.vue.d.ts +50 -0
  61. package/dist/components/ScalarSidebar/ScalarSidebarGroupToggle.vue.d.ts.map +1 -0
  62. package/dist/components/ScalarSidebar/ScalarSidebarGroupToggle.vue.js +39 -0
  63. package/dist/components/ScalarSidebar/ScalarSidebarGroupToggle.vue2.js +4 -0
  64. package/dist/components/ScalarSidebar/ScalarSidebarItem.vue.d.ts +27 -0
  65. package/dist/components/ScalarSidebar/ScalarSidebarItem.vue.d.ts.map +1 -0
  66. package/dist/components/ScalarSidebar/ScalarSidebarItem.vue.js +34 -0
  67. package/dist/components/ScalarSidebar/ScalarSidebarItem.vue2.js +4 -0
  68. package/dist/components/ScalarSidebar/ScalarSidebarItems.vue.d.ts +28 -0
  69. package/dist/components/ScalarSidebar/ScalarSidebarItems.vue.d.ts.map +1 -0
  70. package/dist/components/ScalarSidebar/ScalarSidebarItems.vue.js +22 -0
  71. package/dist/components/ScalarSidebar/ScalarSidebarItems.vue2.js +4 -0
  72. package/dist/components/ScalarSidebar/index.d.ts +5 -0
  73. package/dist/components/ScalarSidebar/index.d.ts.map +1 -1
  74. package/dist/components/ScalarSidebar/types.d.ts +25 -0
  75. package/dist/components/ScalarSidebar/types.d.ts.map +1 -0
  76. package/dist/components/ScalarSidebar/useSidebarGroups.d.ts +25 -0
  77. package/dist/components/ScalarSidebar/useSidebarGroups.d.ts.map +1 -0
  78. package/dist/components/ScalarSidebar/useSidebarGroups.js +11 -0
  79. package/dist/components/ScalarSidebar/useSidebarGroups.test.d.ts +2 -0
  80. package/dist/components/ScalarSidebar/useSidebarGroups.test.d.ts.map +1 -0
  81. package/dist/components/ScalarTooltip/ScalarTooltip.stories.d.ts +3 -3
  82. package/dist/index.js +95 -85
  83. package/dist/style.css +1 -1
  84. package/package.json +5 -4
@@ -1,8 +1,9 @@
1
- import { defineComponent as m, ref as c, openBlock as v, createBlock as y, unref as t, withCtx as r, createVNode as l, normalizeProps as w, guardReactiveProps as _, createSlots as b, renderSlot as s, mergeProps as g, createElementVNode as B } from "vue";
2
- import { Popover as P, PopoverButton as k, PopoverPanel as x } from "@headlessui/vue";
3
- import { useBindCx as h } from "../../hooks/useBindCx.js";
4
- import C from "../ScalarFloating/ScalarFloating.vue.js";
5
- const K = /* @__PURE__ */ m({
1
+ import { defineComponent as u, ref as c, openBlock as _, createBlock as v, unref as o, withCtx as t, createVNode as r, normalizeProps as y, guardReactiveProps as w, createSlots as x, renderSlot as l, mergeProps as B } from "vue";
2
+ import { Popover as P, PopoverButton as h, PopoverPanel as k } from "@headlessui/vue";
3
+ import { useBindCx as g } from "../../hooks/useBindCx.js";
4
+ import $ from "../ScalarFloating/ScalarFloating.vue.js";
5
+ import C from "../ScalarFloating/ScalarFloatingBackdrop.vue.js";
6
+ const z = /* @__PURE__ */ u({
6
7
  inheritAttrs: !1,
7
8
  __name: "ScalarComboboxPopover",
8
9
  props: {
@@ -13,42 +14,45 @@ const K = /* @__PURE__ */ m({
13
14
  middleware: {},
14
15
  teleport: { type: [Boolean, String] }
15
16
  },
16
- setup(E, { expose: p }) {
17
- const { cx: d } = h(), a = c(null), f = (e) => {
18
- var o;
19
- ["ArrowUp", "ArrowDown"].includes(e.key) && (e.preventDefault(), (o = e.target) == null || o.dispatchEvent(new KeyboardEvent("keydown", { key: "Enter" })));
17
+ setup(S, { expose: s }) {
18
+ const { cx: f } = g(), p = c(null), i = (e) => {
19
+ var n;
20
+ ["ArrowUp", "ArrowDown"].includes(e.key) && (e.preventDefault(), (n = e.target) == null || n.dispatchEvent(new KeyboardEvent("keydown", { key: "Enter" })));
20
21
  };
21
- return p({ popoverButtonRef: a }), (e, o) => (v(), y(t(P), { as: "template" }, {
22
- default: r(({ open: n }) => [
23
- l(t(C), w(_(e.$props)), b({
24
- default: r(() => [
25
- l(t(k), {
22
+ return s({ popoverButtonRef: p }), (e, n) => (_(), v(o(P), { as: "template" }, {
23
+ default: t(({ open: a }) => [
24
+ r(o($), y(w(e.$props)), x({
25
+ default: t(() => [
26
+ r(o(h), {
26
27
  ref_key: "popoverButtonRef",
27
- ref: a,
28
+ ref: p,
28
29
  as: "template",
29
- onKeydown: f
30
+ onKeydown: i
30
31
  }, {
31
- default: r(() => [
32
- s(e.$slots, "default", { open: n })
32
+ default: t(() => [
33
+ l(e.$slots, "default", { open: a })
33
34
  ]),
34
35
  _: 2
35
36
  }, 1536)
36
37
  ]),
37
38
  _: 2
38
39
  }, [
39
- n ? {
40
+ a ? {
40
41
  name: "floating",
41
- fn: r(({ width: i }) => [
42
- l(t(x), g({
43
- focus: "",
44
- style: { width: i }
45
- }, t(d)("relative flex w-40 flex-col rounded border text-sm")), {
46
- default: r(({ close: u }) => [
47
- s(e.$slots, "popover", {
48
- close: u,
49
- open: n
42
+ fn: t(({ width: m }) => [
43
+ r(o(k), B(
44
+ {
45
+ focus: "",
46
+ style: { width: m }
47
+ },
48
+ o(f)("relative flex flex-col max-h-[inherit] w-40 rounded text-sm")
49
+ ), {
50
+ default: t(({ close: d }) => [
51
+ l(e.$slots, "popover", {
52
+ close: d,
53
+ open: a
50
54
  }),
51
- o[0] || (o[0] = B("div", { class: "absolute inset-0 -z-1 rounded bg-b-1 shadow-md brightness-lifted" }, null, -1))
55
+ r(o(C))
52
56
  ]),
53
57
  _: 2
54
58
  }, 1040, ["style"])
@@ -62,5 +66,5 @@ const K = /* @__PURE__ */ m({
62
66
  }
63
67
  });
64
68
  export {
65
- K as default
69
+ z as default
66
70
  };
@@ -12,4 +12,13 @@ export type OptionGroup = {
12
12
  export declare function isGroup(option: Option | OptionGroup): option is OptionGroup;
13
13
  /** Type guard to check if an array of options is an array of groups */
14
14
  export declare function isGroups(options: Option[] | OptionGroup[]): options is OptionGroup[];
15
+ /** Available slots for the combobox */
16
+ export type ComboboxSlots = {
17
+ /** The reference element / trigger for the combobox */
18
+ default(): any;
19
+ /** A slot for contents before the combobox options */
20
+ before?(): any;
21
+ /** A slot for contents after the combobox options */
22
+ after?(): any;
23
+ };
15
24
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarCombobox/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,MAAM,GAAG;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB,CAAA;AAED,kDAAkD;AAClD,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,MAAM,IAAI,WAAW,CAE3E;AAED,uEAAuE;AACvE,wBAAgB,QAAQ,CACtB,OAAO,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,GAChC,OAAO,IAAI,WAAW,EAAE,CAE1B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarCombobox/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,MAAM,GAAG;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB,CAAA;AAED,kDAAkD;AAClD,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,MAAM,IAAI,WAAW,CAE3E;AAED,uEAAuE;AACvE,wBAAgB,QAAQ,CACtB,OAAO,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,GAChC,OAAO,IAAI,WAAW,EAAE,CAE1B;AAED,uCAAuC;AACvC,MAAM,MAAM,aAAa,GAAG;IAC1B,uDAAuD;IACvD,OAAO,IAAI,GAAG,CAAA;IACd,sDAAsD;IACtD,MAAM,CAAC,IAAI,GAAG,CAAA;IACd,qDAAqD;IACrD,KAAK,CAAC,IAAI,GAAG,CAAA;CACd,CAAA"}
@@ -162,7 +162,7 @@ declare const meta: {
162
162
  new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<{
163
163
  disabled?: boolean;
164
164
  fullWidth?: boolean;
165
- loading?: import("../ScalarLoading").LoadingState;
165
+ loading?: import("../ScalarLoading").LoadingState | undefined;
166
166
  size?: import("../ScalarButton/variants.js").Variants["size"];
167
167
  variant?: import("../ScalarButton/variants.js").Variants["variant"];
168
168
  type?: "button" | "submit" | "reset";
@@ -181,7 +181,7 @@ declare const meta: {
181
181
  }, Readonly<{
182
182
  disabled?: boolean;
183
183
  fullWidth?: boolean;
184
- loading?: import("../ScalarLoading").LoadingState;
184
+ loading?: import("../ScalarLoading").LoadingState | undefined;
185
185
  size?: import("../ScalarButton/variants.js").Variants["size"];
186
186
  variant?: import("../ScalarButton/variants.js").Variants["variant"];
187
187
  type?: "button" | "submit" | "reset";
@@ -197,7 +197,7 @@ declare const meta: {
197
197
  } & import("vue").ComponentOptionsBase<Readonly<{
198
198
  disabled?: boolean;
199
199
  fullWidth?: boolean;
200
- loading?: import("../ScalarLoading").LoadingState;
200
+ loading?: import("../ScalarLoading").LoadingState | undefined;
201
201
  size?: import("../ScalarButton/variants.js").Variants["size"];
202
202
  variant?: import("../ScalarButton/variants.js").Variants["variant"];
203
203
  type?: "button" | "submit" | "reset";
@@ -139,7 +139,7 @@ declare const meta: {
139
139
  new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<{
140
140
  disabled?: boolean;
141
141
  fullWidth?: boolean;
142
- loading?: import("../ScalarLoading").LoadingState;
142
+ loading?: import("../ScalarLoading").LoadingState | undefined;
143
143
  size?: import("../ScalarButton/variants.js").Variants["size"];
144
144
  variant?: import("../ScalarButton/variants.js").Variants["variant"];
145
145
  type?: "button" | "submit" | "reset";
@@ -158,7 +158,7 @@ declare const meta: {
158
158
  }, Readonly<{
159
159
  disabled?: boolean;
160
160
  fullWidth?: boolean;
161
- loading?: import("../ScalarLoading").LoadingState;
161
+ loading?: import("../ScalarLoading").LoadingState | undefined;
162
162
  size?: import("../ScalarButton/variants.js").Variants["size"];
163
163
  variant?: import("../ScalarButton/variants.js").Variants["variant"];
164
164
  type?: "button" | "submit" | "reset";
@@ -174,7 +174,7 @@ declare const meta: {
174
174
  } & import("vue").ComponentOptionsBase<Readonly<{
175
175
  disabled?: boolean;
176
176
  fullWidth?: boolean;
177
- loading?: import("../ScalarLoading").LoadingState;
177
+ loading?: import("../ScalarLoading").LoadingState | undefined;
178
178
  size?: import("../ScalarButton/variants.js").Variants["size"];
179
179
  variant?: import("../ScalarButton/variants.js").Variants["variant"];
180
180
  type?: "button" | "submit" | "reset";
@@ -0,0 +1,364 @@
1
+ import type { StoryObj } from '@storybook/vue3';
2
+ declare const meta: {
3
+ component: {
4
+ new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<{
5
+ modelValue?: File[];
6
+ error?: string;
7
+ } & {
8
+ multiple?: boolean;
9
+ accept?: import("./types").ExtensionList | string;
10
+ loader?: import("../ScalarLoading").LoadingState;
11
+ variant?: "compact" | "default";
12
+ }> & Readonly<{
13
+ "onUpdate:modelValue"?: ((value: File[]) => any) | undefined;
14
+ onSelected?: ((value: File[]) => any) | undefined;
15
+ "onUpdate:error"?: ((value: string) => any) | undefined;
16
+ }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
17
+ "update:modelValue": (value: File[]) => any;
18
+ "update:error": (value: string) => any;
19
+ } & {
20
+ selected: (value: File[]) => any;
21
+ }, import("vue").PublicProps, {}, false, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
22
+ P: {};
23
+ B: {};
24
+ D: {};
25
+ C: {};
26
+ M: {};
27
+ Defaults: {};
28
+ }, Readonly<{
29
+ modelValue?: File[];
30
+ error?: string;
31
+ } & {
32
+ multiple?: boolean;
33
+ accept?: import("./types").ExtensionList | string;
34
+ loader?: import("../ScalarLoading").LoadingState;
35
+ variant?: "compact" | "default";
36
+ }> & Readonly<{
37
+ "onUpdate:modelValue"?: ((value: File[]) => any) | undefined;
38
+ onSelected?: ((value: File[]) => any) | undefined;
39
+ "onUpdate:error"?: ((value: string) => any) | undefined;
40
+ }>, {}, {}, {}, {}, {}>;
41
+ __isFragment?: never;
42
+ __isTeleport?: never;
43
+ __isSuspense?: never;
44
+ } & import("vue").ComponentOptionsBase<Readonly<{
45
+ modelValue?: File[];
46
+ error?: string;
47
+ } & {
48
+ multiple?: boolean;
49
+ accept?: import("./types").ExtensionList | string;
50
+ loader?: import("../ScalarLoading").LoadingState;
51
+ variant?: "compact" | "default";
52
+ }> & Readonly<{
53
+ "onUpdate:modelValue"?: ((value: File[]) => any) | undefined;
54
+ onSelected?: ((value: File[]) => any) | undefined;
55
+ "onUpdate:error"?: ((value: string) => any) | undefined;
56
+ }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
57
+ "update:modelValue": (value: File[]) => any;
58
+ "update:error": (value: string) => any;
59
+ } & {
60
+ selected: (value: File[]) => any;
61
+ }, string, {}, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new () => {
62
+ $slots: Readonly<{
63
+ default?: (props: {
64
+ open: () => void;
65
+ }) => any;
66
+ label?: () => any;
67
+ 'drop-target'?: () => any;
68
+ 'drop-target-label'?: () => any;
69
+ }> & {
70
+ default?: (props: {
71
+ open: () => void;
72
+ }) => any;
73
+ label?: () => any;
74
+ 'drop-target'?: () => any;
75
+ 'drop-target-label'?: () => any;
76
+ };
77
+ });
78
+ tags: string[];
79
+ argTypes: {
80
+ class: {
81
+ control: "text";
82
+ };
83
+ accept: {
84
+ control: "select";
85
+ options: string[][];
86
+ };
87
+ variant: {
88
+ control: "select";
89
+ options: string[];
90
+ };
91
+ };
92
+ render: (args: import("@storybook/vue3").ComponentPropsAndSlots<{
93
+ new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<{
94
+ modelValue?: File[];
95
+ error?: string;
96
+ } & {
97
+ multiple?: boolean;
98
+ accept?: import("./types").ExtensionList | string;
99
+ loader?: import("../ScalarLoading").LoadingState;
100
+ variant?: "compact" | "default";
101
+ }> & Readonly<{
102
+ "onUpdate:modelValue"?: ((value: File[]) => any) | undefined;
103
+ onSelected?: ((value: File[]) => any) | undefined;
104
+ "onUpdate:error"?: ((value: string) => any) | undefined;
105
+ }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
106
+ "update:modelValue": (value: File[]) => any;
107
+ "update:error": (value: string) => any;
108
+ } & {
109
+ selected: (value: File[]) => any;
110
+ }, import("vue").PublicProps, {}, false, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
111
+ P: {};
112
+ B: {};
113
+ D: {};
114
+ C: {};
115
+ M: {};
116
+ Defaults: {};
117
+ }, Readonly<{
118
+ modelValue?: File[];
119
+ error?: string;
120
+ } & {
121
+ multiple?: boolean;
122
+ accept?: import("./types").ExtensionList | string;
123
+ loader?: import("../ScalarLoading").LoadingState;
124
+ variant?: "compact" | "default";
125
+ }> & Readonly<{
126
+ "onUpdate:modelValue"?: ((value: File[]) => any) | undefined;
127
+ onSelected?: ((value: File[]) => any) | undefined;
128
+ "onUpdate:error"?: ((value: string) => any) | undefined;
129
+ }>, {}, {}, {}, {}, {}>;
130
+ __isFragment?: never;
131
+ __isTeleport?: never;
132
+ __isSuspense?: never;
133
+ } & import("vue").ComponentOptionsBase<Readonly<{
134
+ modelValue?: File[];
135
+ error?: string;
136
+ } & {
137
+ multiple?: boolean;
138
+ accept?: import("./types").ExtensionList | string;
139
+ loader?: import("../ScalarLoading").LoadingState;
140
+ variant?: "compact" | "default";
141
+ }> & Readonly<{
142
+ "onUpdate:modelValue"?: ((value: File[]) => any) | undefined;
143
+ onSelected?: ((value: File[]) => any) | undefined;
144
+ "onUpdate:error"?: ((value: string) => any) | undefined;
145
+ }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
146
+ "update:modelValue": (value: File[]) => any;
147
+ "update:error": (value: string) => any;
148
+ } & {
149
+ selected: (value: File[]) => any;
150
+ }, string, {}, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new () => {
151
+ $slots: Readonly<{
152
+ default?: (props: {
153
+ open: () => void;
154
+ }) => any;
155
+ label?: () => any;
156
+ 'drop-target'?: () => any;
157
+ 'drop-target-label'?: () => any;
158
+ }> & {
159
+ default?: (props: {
160
+ open: () => void;
161
+ }) => any;
162
+ label?: () => any;
163
+ 'drop-target'?: () => any;
164
+ 'drop-target-label'?: () => any;
165
+ };
166
+ })>) => {
167
+ components: {
168
+ ScalarFileUpload: {
169
+ new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<{
170
+ modelValue?: File[];
171
+ error?: string;
172
+ } & {
173
+ multiple?: boolean;
174
+ accept?: import("./types").ExtensionList | string;
175
+ loader?: import("../ScalarLoading").LoadingState;
176
+ variant?: "compact" | "default";
177
+ }> & Readonly<{
178
+ "onUpdate:modelValue"?: ((value: File[]) => any) | undefined;
179
+ onSelected?: ((value: File[]) => any) | undefined;
180
+ "onUpdate:error"?: ((value: string) => any) | undefined;
181
+ }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
182
+ "update:modelValue": (value: File[]) => any;
183
+ "update:error": (value: string) => any;
184
+ } & {
185
+ selected: (value: File[]) => any;
186
+ }, import("vue").PublicProps, {}, false, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
187
+ P: {};
188
+ B: {};
189
+ D: {};
190
+ C: {};
191
+ M: {};
192
+ Defaults: {};
193
+ }, Readonly<{
194
+ modelValue?: File[];
195
+ error?: string;
196
+ } & {
197
+ multiple?: boolean;
198
+ accept?: import("./types").ExtensionList | string;
199
+ loader?: import("../ScalarLoading").LoadingState;
200
+ variant?: "compact" | "default";
201
+ }> & Readonly<{
202
+ "onUpdate:modelValue"?: ((value: File[]) => any) | undefined;
203
+ onSelected?: ((value: File[]) => any) | undefined;
204
+ "onUpdate:error"?: ((value: string) => any) | undefined;
205
+ }>, {}, {}, {}, {}, {}>;
206
+ __isFragment?: never;
207
+ __isTeleport?: never;
208
+ __isSuspense?: never;
209
+ } & import("vue").ComponentOptionsBase<Readonly<{
210
+ modelValue?: File[];
211
+ error?: string;
212
+ } & {
213
+ multiple?: boolean;
214
+ accept?: import("./types").ExtensionList | string;
215
+ loader?: import("../ScalarLoading").LoadingState;
216
+ variant?: "compact" | "default";
217
+ }> & Readonly<{
218
+ "onUpdate:modelValue"?: ((value: File[]) => any) | undefined;
219
+ onSelected?: ((value: File[]) => any) | undefined;
220
+ "onUpdate:error"?: ((value: string) => any) | undefined;
221
+ }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
222
+ "update:modelValue": (value: File[]) => any;
223
+ "update:error": (value: string) => any;
224
+ } & {
225
+ selected: (value: File[]) => any;
226
+ }, string, {}, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new () => {
227
+ $slots: Readonly<{
228
+ default?: (props: {
229
+ open: () => void;
230
+ }) => any;
231
+ label?: () => any;
232
+ 'drop-target'?: () => any;
233
+ 'drop-target-label'?: () => any;
234
+ }> & {
235
+ default?: (props: {
236
+ open: () => void;
237
+ }) => any;
238
+ label?: () => any;
239
+ 'drop-target'?: () => any;
240
+ 'drop-target-label'?: () => any;
241
+ };
242
+ });
243
+ ScalarFileUploadFileList: import("vue").DefineComponent<{
244
+ modelValue?: File[];
245
+ }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
246
+ "update:modelValue": (value: File[]) => any;
247
+ } & {
248
+ upload: () => any;
249
+ }, string, import("vue").PublicProps, Readonly<{
250
+ modelValue?: File[];
251
+ }> & Readonly<{
252
+ "onUpdate:modelValue"?: ((value: File[]) => any) | undefined;
253
+ onUpload?: (() => any) | undefined;
254
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
255
+ };
256
+ setup(this: void): {
257
+ args: import("@storybook/vue3").ComponentPropsAndSlots<{
258
+ new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<{
259
+ modelValue?: File[];
260
+ error?: string;
261
+ } & {
262
+ multiple?: boolean;
263
+ accept?: import("./types").ExtensionList | string;
264
+ loader?: import("../ScalarLoading").LoadingState;
265
+ variant?: "compact" | "default";
266
+ }> & Readonly<{
267
+ "onUpdate:modelValue"?: ((value: File[]) => any) | undefined;
268
+ onSelected?: ((value: File[]) => any) | undefined;
269
+ "onUpdate:error"?: ((value: string) => any) | undefined;
270
+ }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
271
+ "update:modelValue": (value: File[]) => any;
272
+ "update:error": (value: string) => any;
273
+ } & {
274
+ selected: (value: File[]) => any;
275
+ }, import("vue").PublicProps, {}, false, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
276
+ P: {};
277
+ B: {};
278
+ D: {};
279
+ C: {};
280
+ M: {};
281
+ Defaults: {};
282
+ }, Readonly<{
283
+ modelValue?: File[];
284
+ error?: string;
285
+ } & {
286
+ multiple?: boolean;
287
+ accept?: import("./types").ExtensionList | string;
288
+ loader?: import("../ScalarLoading").LoadingState;
289
+ variant?: "compact" | "default";
290
+ }> & Readonly<{
291
+ "onUpdate:modelValue"?: ((value: File[]) => any) | undefined;
292
+ onSelected?: ((value: File[]) => any) | undefined;
293
+ "onUpdate:error"?: ((value: string) => any) | undefined;
294
+ }>, {}, {}, {}, {}, {}>;
295
+ __isFragment?: never;
296
+ __isTeleport?: never;
297
+ __isSuspense?: never;
298
+ } & import("vue").ComponentOptionsBase<Readonly<{
299
+ modelValue?: File[];
300
+ error?: string;
301
+ } & {
302
+ multiple?: boolean;
303
+ accept?: import("./types").ExtensionList | string;
304
+ loader?: import("../ScalarLoading").LoadingState;
305
+ variant?: "compact" | "default";
306
+ }> & Readonly<{
307
+ "onUpdate:modelValue"?: ((value: File[]) => any) | undefined;
308
+ onSelected?: ((value: File[]) => any) | undefined;
309
+ "onUpdate:error"?: ((value: string) => any) | undefined;
310
+ }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
311
+ "update:modelValue": (value: File[]) => any;
312
+ "update:error": (value: string) => any;
313
+ } & {
314
+ selected: (value: File[]) => any;
315
+ }, string, {}, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new () => {
316
+ $slots: Readonly<{
317
+ default?: (props: {
318
+ open: () => void;
319
+ }) => any;
320
+ label?: () => any;
321
+ 'drop-target'?: () => any;
322
+ 'drop-target-label'?: () => any;
323
+ }> & {
324
+ default?: (props: {
325
+ open: () => void;
326
+ }) => any;
327
+ label?: () => any;
328
+ 'drop-target'?: () => any;
329
+ 'drop-target-label'?: () => any;
330
+ };
331
+ })>;
332
+ files: import("vue").Ref<{
333
+ readonly lastModified: number;
334
+ readonly name: string;
335
+ readonly webkitRelativePath: string;
336
+ readonly size: number;
337
+ readonly type: string;
338
+ arrayBuffer: () => Promise<ArrayBuffer>;
339
+ slice: (start?: number, end?: number, contentType?: string) => Blob;
340
+ stream: () => ReadableStream<Uint8Array>;
341
+ text: () => Promise<string>;
342
+ }[], File[] | {
343
+ readonly lastModified: number;
344
+ readonly name: string;
345
+ readonly webkitRelativePath: string;
346
+ readonly size: number;
347
+ readonly type: string;
348
+ arrayBuffer: () => Promise<ArrayBuffer>;
349
+ slice: (start?: number, end?: number, contentType?: string) => Blob;
350
+ stream: () => ReadableStream<Uint8Array>;
351
+ text: () => Promise<string>;
352
+ }[]>;
353
+ };
354
+ template: string;
355
+ };
356
+ };
357
+ export default meta;
358
+ type Story = StoryObj<typeof meta>;
359
+ export declare const Base: Story;
360
+ export declare const Compact: Story;
361
+ export declare const Files: Story;
362
+ export declare const Loading: Story;
363
+ export declare const Labelled: Story;
364
+ //# sourceMappingURL=ScalarFileUpload.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScalarFileUpload.stories.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarFileUpload/ScalarFileUpload.stories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAOrD,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqC+B,CAAA;AAEzC,eAAe,IAAI,CAAA;AACnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAA;AAElC,eAAO,MAAM,IAAI,EAAE,KAAU,CAAA;AAE7B,eAAO,MAAM,OAAO,EAAE,KAErB,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,KAsBnB,CAAA;AACD,eAAO,MAAM,OAAO,EAAE,KAiBrB,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAqBtB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ScalarFileUpload.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScalarFileUpload.test.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarFileUpload/ScalarFileUpload.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,86 @@
1
+ import { type ExtensionList } from './types';
2
+ import type { LoadingState } from '../ScalarLoading';
3
+ /**
4
+ * Scalar File Upload component
5
+ *
6
+ * @example
7
+ * <ScalarFileUpload @selected="handleSelected" />
8
+ *
9
+ * @example
10
+ * <ScalarFileUpload v-slot="{ open }">
11
+ * <ScalarButton @click="open">Select files</ScalarButton>
12
+ * </ScalarFileUpload>
13
+ */
14
+ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
15
+ modelValue?: File[];
16
+ error?: string;
17
+ } & {
18
+ /** Whether multiple files can be uploaded */
19
+ multiple?: boolean;
20
+ /**
21
+ * Accepted file types
22
+ * @default '*'
23
+ * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/accept
24
+ */
25
+ accept?: ExtensionList | string;
26
+ /** Whether the file upload is loading */
27
+ loader?: LoadingState;
28
+ /** Whether the file upload is compact */
29
+ variant?: "compact" | "default";
30
+ }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
31
+ "update:modelValue": (value: File[]) => any;
32
+ "update:error": (value: string) => any;
33
+ } & {
34
+ selected: (value: File[]) => any;
35
+ }, string, import("vue").PublicProps, Readonly<{
36
+ modelValue?: File[];
37
+ error?: string;
38
+ } & {
39
+ /** Whether multiple files can be uploaded */
40
+ multiple?: boolean;
41
+ /**
42
+ * Accepted file types
43
+ * @default '*'
44
+ * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/accept
45
+ */
46
+ accept?: ExtensionList | string;
47
+ /** Whether the file upload is loading */
48
+ loader?: LoadingState;
49
+ /** Whether the file upload is compact */
50
+ variant?: "compact" | "default";
51
+ }> & Readonly<{
52
+ "onUpdate:modelValue"?: ((value: File[]) => any) | undefined;
53
+ onSelected?: ((value: File[]) => any) | undefined;
54
+ "onUpdate:error"?: ((value: string) => any) | undefined;
55
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, Readonly<{
56
+ /** Override the entire input */
57
+ default?: (props: {
58
+ /** Open the file dialog to select files */
59
+ open: () => void;
60
+ }) => any;
61
+ /** Override the label */
62
+ label?: () => any;
63
+ /** Override the entire drop target */
64
+ 'drop-target'?: () => any;
65
+ /** Override the drop target label */
66
+ 'drop-target-label'?: () => any;
67
+ }> & {
68
+ /** Override the entire input */
69
+ default?: (props: {
70
+ /** Open the file dialog to select files */
71
+ open: () => void;
72
+ }) => any;
73
+ /** Override the label */
74
+ label?: () => any;
75
+ /** Override the entire drop target */
76
+ 'drop-target'?: () => any;
77
+ /** Override the drop target label */
78
+ 'drop-target-label'?: () => any;
79
+ }>;
80
+ export default _default;
81
+ type __VLS_WithTemplateSlots<T, S> = T & {
82
+ new (): {
83
+ $slots: S;
84
+ };
85
+ };
86
+ //# sourceMappingURL=ScalarFileUpload.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScalarFileUpload.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarFileUpload/ScalarFileUpload.vue"],"names":[],"mappings":"AAmLA,OAAO,EAAE,KAAK,aAAa,EAAmB,MAAM,SAAS,CAAA;AAO7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAIpD;;;;;;;;;;GAUG;;iBAwGU,IAAI,EAAE;YACT,MAAM;;IArGd,6CAA6C;eAClC,OAAO;IAClB;;;;OAIG;aACM,aAAa,GAAG,MAAM;IAC/B,yCAAyC;aAChC,YAAY;IACrB,yCAAyC;cAC/B,SAAS,GAAG,SAAS;;;;;;;iBAyFpB,IAAI,EAAE;YACT,MAAM;;IArGd,6CAA6C;eAClC,OAAO;IAClB;;;;OAIG;aACM,aAAa,GAAG,MAAM;IAC/B,yCAAyC;aAChC,YAAY;IACrB,yCAAyC;cAC/B,SAAS,GAAG,SAAS;;;;;;IAgB/B,gCAAgC;cACpB,CAAC,KAAK,EAAE;QAClB,2CAA2C;QAC3C,IAAI,EAAE,MAAM,IAAI,CAAA;KACjB,KAAK,GAAG;IACT,yBAAyB;YACf,MAAM,GAAG;IACnB,sCAAsC;oBACtB,MAAM,GAAG;IACzB,qCAAqC;0BACf,MAAM,GAAG;;IAV/B,gCAAgC;cACpB,CAAC,KAAK,EAAE;QAClB,2CAA2C;QAC3C,IAAI,EAAE,MAAM,IAAI,CAAA;KACjB,KAAK,GAAG;IACT,yBAAyB;YACf,MAAM,GAAG;IACnB,sCAAsC;oBACtB,MAAM,GAAG;IACzB,qCAAqC;0BACf,MAAM,GAAG;;AAxCjC,wBA8QC;AAWD,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Scalar File Upload Drop Target
3
+ *
4
+ * Displays a drop target for file uploads (used when
5
+ * the user is dragging files over the component)
6
+ *
7
+ * @example
8
+ * <ScalarFileUploadDropTarget />
9
+ */
10
+ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, {
11
+ default?(_: {}): any;
12
+ }>;
13
+ export default _default;
14
+ type __VLS_WithTemplateSlots<T, S> = T & {
15
+ new (): {
16
+ $slots: S;
17
+ };
18
+ };
19
+ //# sourceMappingURL=ScalarFileUploadDropTarget.vue.d.ts.map