@guoyg578/k-ui 0.1.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 (179) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +59 -0
  3. package/dist/_virtual/_plugin-vue_export-helper.js +8 -0
  4. package/dist/components/KAlert.js +7 -0
  5. package/dist/components/KAlert.vue.d.ts +40 -0
  6. package/dist/components/KAlert.vue_vue_type_script_setup_true_lang.js +76 -0
  7. package/dist/components/KAvatar.js +7 -0
  8. package/dist/components/KAvatar.vue.d.ts +15 -0
  9. package/dist/components/KAvatar.vue_vue_type_script_setup_true_lang.js +53 -0
  10. package/dist/components/KAvatarGroup.js +7 -0
  11. package/dist/components/KAvatarGroup.vue.d.ts +18 -0
  12. package/dist/components/KAvatarGroup.vue_vue_type_script_setup_true_lang.js +11 -0
  13. package/dist/components/KBreadcrumb.js +7 -0
  14. package/dist/components/KBreadcrumb.vue.d.ts +12 -0
  15. package/dist/components/KBreadcrumb.vue_vue_type_script_setup_true_lang.js +38 -0
  16. package/dist/components/KButton.js +7 -0
  17. package/dist/components/KButton.vue.d.ts +36 -0
  18. package/dist/components/KButton.vue_vue_type_script_setup_true_lang.js +50 -0
  19. package/dist/components/KCard.js +7 -0
  20. package/dist/components/KCard.vue.d.ts +33 -0
  21. package/dist/components/KCard.vue_vue_type_script_setup_true_lang.js +50 -0
  22. package/dist/components/KCarousel.js +7 -0
  23. package/dist/components/KCarousel.vue.d.ts +59 -0
  24. package/dist/components/KCarousel.vue_vue_type_script_setup_true_lang.js +141 -0
  25. package/dist/components/KCheckbox.js +7 -0
  26. package/dist/components/KCheckbox.vue.d.ts +26 -0
  27. package/dist/components/KCheckbox.vue_vue_type_script_setup_true_lang.js +48 -0
  28. package/dist/components/KCheckboxGroup.js +7 -0
  29. package/dist/components/KCheckboxGroup.vue.d.ts +27 -0
  30. package/dist/components/KCheckboxGroup.vue_vue_type_script_setup_true_lang.js +36 -0
  31. package/dist/components/KCombobox.js +8 -0
  32. package/dist/components/KCombobox.vue.d.ts +28 -0
  33. package/dist/components/KCombobox.vue_vue_type_script_setup_true_lang.js +120 -0
  34. package/dist/components/KCommandPalette.js +7 -0
  35. package/dist/components/KCommandPalette.vue.d.ts +31 -0
  36. package/dist/components/KCommandPalette.vue_vue_type_script_setup_true_lang.js +169 -0
  37. package/dist/components/KConfirmDialog.js +6 -0
  38. package/dist/components/KConfirmDialog.vue.d.ts +3 -0
  39. package/dist/components/KConfirmDialog.vue_vue_type_script_setup_true_lang.js +48 -0
  40. package/dist/components/KDataTable.js +7 -0
  41. package/dist/components/KDataTable.vue.d.ts +47 -0
  42. package/dist/components/KDataTable.vue_vue_type_script_setup_true_lang.js +62 -0
  43. package/dist/components/KDatePicker.js +6 -0
  44. package/dist/components/KDatePicker.vue.d.ts +19 -0
  45. package/dist/components/KDatePicker.vue_vue_type_script_setup_true_lang.js +57 -0
  46. package/dist/components/KDialog.js +7 -0
  47. package/dist/components/KDialog.vue.d.ts +52 -0
  48. package/dist/components/KDialog.vue_vue_type_script_setup_true_lang.js +117 -0
  49. package/dist/components/KDiff.js +7 -0
  50. package/dist/components/KDiff.vue.d.ts +13 -0
  51. package/dist/components/KDiff.vue_vue_type_script_setup_true_lang.js +116 -0
  52. package/dist/components/KDrawer.js +7 -0
  53. package/dist/components/KDrawer.vue.d.ts +37 -0
  54. package/dist/components/KDrawer.vue_vue_type_script_setup_true_lang.js +81 -0
  55. package/dist/components/KDropdown.js +7 -0
  56. package/dist/components/KDropdown.vue.d.ts +56 -0
  57. package/dist/components/KDropdown.vue_vue_type_script_setup_true_lang.js +93 -0
  58. package/dist/components/KEmpty.js +5 -0
  59. package/dist/components/KEmpty.vue.d.ts +22 -0
  60. package/dist/components/KEmpty.vue_vue_type_script_setup_true_lang.js +30 -0
  61. package/dist/components/KForm.js +7 -0
  62. package/dist/components/KForm.vue.d.ts +38 -0
  63. package/dist/components/KForm.vue_vue_type_script_setup_true_lang.js +69 -0
  64. package/dist/components/KFormField.js +7 -0
  65. package/dist/components/KFormField.vue.d.ts +32 -0
  66. package/dist/components/KFormField.vue_vue_type_script_setup_true_lang.js +84 -0
  67. package/dist/components/KGridSkeleton.js +5 -0
  68. package/dist/components/KGridSkeleton.vue.d.ts +10 -0
  69. package/dist/components/KGridSkeleton.vue_vue_type_script_setup_true_lang.js +21 -0
  70. package/dist/components/KImage.js +7 -0
  71. package/dist/components/KImage.vue.d.ts +25 -0
  72. package/dist/components/KImage.vue_vue_type_script_setup_true_lang.js +97 -0
  73. package/dist/components/KImageViewer.js +7 -0
  74. package/dist/components/KImageViewer.vue.d.ts +14 -0
  75. package/dist/components/KImageViewer.vue_vue_type_script_setup_true_lang.js +108 -0
  76. package/dist/components/KInput.js +7 -0
  77. package/dist/components/KInput.vue.d.ts +43 -0
  78. package/dist/components/KInput.vue_vue_type_script_setup_true_lang.js +89 -0
  79. package/dist/components/KInputNumber.js +7 -0
  80. package/dist/components/KInputNumber.vue.d.ts +28 -0
  81. package/dist/components/KInputNumber.vue_vue_type_script_setup_true_lang.js +109 -0
  82. package/dist/components/KListSkeleton.js +5 -0
  83. package/dist/components/KListSkeleton.vue.d.ts +8 -0
  84. package/dist/components/KListSkeleton.vue_vue_type_script_setup_true_lang.js +14 -0
  85. package/dist/components/KLoadingOverlay.js +7 -0
  86. package/dist/components/KLoadingOverlay.vue.d.ts +11 -0
  87. package/dist/components/KLoadingOverlay.vue_vue_type_script_setup_true_lang.js +34 -0
  88. package/dist/components/KMessage.d.ts +20 -0
  89. package/dist/components/KMessage.js +55 -0
  90. package/dist/components/KMessageContainer.js +7 -0
  91. package/dist/components/KMessageContainer.vue.d.ts +15 -0
  92. package/dist/components/KMessageContainer.vue_vue_type_script_setup_true_lang.js +41 -0
  93. package/dist/components/KPagination.js +7 -0
  94. package/dist/components/KPagination.vue.d.ts +14 -0
  95. package/dist/components/KPagination.vue_vue_type_script_setup_true_lang.js +104 -0
  96. package/dist/components/KPopover.js +6 -0
  97. package/dist/components/KPopover.vue.d.ts +40 -0
  98. package/dist/components/KPopover.vue_vue_type_script_setup_true_lang.js +63 -0
  99. package/dist/components/KProgress.js +7 -0
  100. package/dist/components/KProgress.vue.d.ts +21 -0
  101. package/dist/components/KProgress.vue_vue_type_script_setup_true_lang.js +108 -0
  102. package/dist/components/KRadio.js +7 -0
  103. package/dist/components/KRadio.vue.d.ts +18 -0
  104. package/dist/components/KRadio.vue_vue_type_script_setup_true_lang.js +26 -0
  105. package/dist/components/KRadioGroup.js +7 -0
  106. package/dist/components/KRadioGroup.vue.d.ts +26 -0
  107. package/dist/components/KRadioGroup.vue_vue_type_script_setup_true_lang.js +32 -0
  108. package/dist/components/KRefetchOverlay.js +5 -0
  109. package/dist/components/KRefetchOverlay.vue.d.ts +8 -0
  110. package/dist/components/KRefetchOverlay.vue_vue_type_script_setup_true_lang.js +26 -0
  111. package/dist/components/KResizablePanel.js +7 -0
  112. package/dist/components/KResizablePanel.vue.d.ts +30 -0
  113. package/dist/components/KResizablePanel.vue_vue_type_script_setup_true_lang.js +57 -0
  114. package/dist/components/KResult.js +7 -0
  115. package/dist/components/KResult.vue.d.ts +29 -0
  116. package/dist/components/KResult.vue_vue_type_script_setup_true_lang.js +82 -0
  117. package/dist/components/KSearchBar.js +5 -0
  118. package/dist/components/KSearchBar.vue.d.ts +11 -0
  119. package/dist/components/KSearchBar.vue_vue_type_script_setup_true_lang.js +38 -0
  120. package/dist/components/KSelect.js +9 -0
  121. package/dist/components/KSelect.vue.d.ts +22 -0
  122. package/dist/components/KSelect.vue_vue_type_script_setup_true_lang.js +96 -0
  123. package/dist/components/KSkeleton.js +7 -0
  124. package/dist/components/KSkeleton.vue.d.ts +14 -0
  125. package/dist/components/KSkeleton.vue_vue_type_script_setup_true_lang.js +27 -0
  126. package/dist/components/KSteps.js +7 -0
  127. package/dist/components/KSteps.vue.d.ts +20 -0
  128. package/dist/components/KSteps.vue_vue_type_script_setup_true_lang.js +39 -0
  129. package/dist/components/KSwitch.js +7 -0
  130. package/dist/components/KSwitch.vue.d.ts +16 -0
  131. package/dist/components/KSwitch.vue_vue_type_script_setup_true_lang.js +35 -0
  132. package/dist/components/KTabs.js +7 -0
  133. package/dist/components/KTabs.vue.d.ts +35 -0
  134. package/dist/components/KTabs.vue_vue_type_script_setup_true_lang.js +47 -0
  135. package/dist/components/KTag.js +7 -0
  136. package/dist/components/KTag.vue.d.ts +32 -0
  137. package/dist/components/KTag.vue_vue_type_script_setup_true_lang.js +40 -0
  138. package/dist/components/KTextarea.js +7 -0
  139. package/dist/components/KTextarea.vue.d.ts +23 -0
  140. package/dist/components/KTextarea.vue_vue_type_script_setup_true_lang.js +51 -0
  141. package/dist/components/KThemeToggleButton.js +7 -0
  142. package/dist/components/KThemeToggleButton.vue.d.ts +14 -0
  143. package/dist/components/KThemeToggleButton.vue_vue_type_script_setup_true_lang.js +48 -0
  144. package/dist/components/KTooltip.js +6 -0
  145. package/dist/components/KTooltip.vue.d.ts +23 -0
  146. package/dist/components/KTooltip.vue_vue_type_script_setup_true_lang.js +49 -0
  147. package/dist/components/KTreeNode.js +7 -0
  148. package/dist/components/KTreeNode.vue.d.ts +8 -0
  149. package/dist/components/KTreeNode.vue_vue_type_script_setup_true_lang.js +47 -0
  150. package/dist/components/KTreeView.js +7 -0
  151. package/dist/components/KTreeView.vue.d.ts +22 -0
  152. package/dist/components/KTreeView.vue_vue_type_script_setup_true_lang.js +45 -0
  153. package/dist/components/KUpload.js +7 -0
  154. package/dist/components/KUpload.vue.d.ts +81 -0
  155. package/dist/components/KUpload.vue_vue_type_script_setup_true_lang.js +181 -0
  156. package/dist/components/KVirtualList.js +7 -0
  157. package/dist/components/KVirtualList.vue.d.ts +31 -0
  158. package/dist/components/KVirtualList.vue_vue_type_script_setup_true_lang.js +41 -0
  159. package/dist/components/form-context.d.ts +25 -0
  160. package/dist/components/form-context.js +4 -0
  161. package/dist/components/tree-context.d.ts +16 -0
  162. package/dist/components/tree-context.js +4 -0
  163. package/dist/composables/useConfirm.d.ts +17 -0
  164. package/dist/composables/useConfirm.js +31 -0
  165. package/dist/directives/index.d.ts +6 -0
  166. package/dist/directives/index.js +8 -0
  167. package/dist/directives/reveal.d.ts +20 -0
  168. package/dist/directives/reveal.js +18 -0
  169. package/dist/directives/spotlight.d.ts +22 -0
  170. package/dist/directives/spotlight.js +25 -0
  171. package/dist/index.d.ts +62 -0
  172. package/dist/index.js +55 -0
  173. package/dist/k-ui.css +2 -0
  174. package/dist/styles/components.css +92 -0
  175. package/dist/styles/index.css +2 -0
  176. package/dist/styles/menu.css +59 -0
  177. package/dist/styles/tokens.css +229 -0
  178. package/dist/types.d.ts +1 -0
  179. package/package.json +79 -0
@@ -0,0 +1,32 @@
1
+ type KTagType = 'default' | 'primary' | 'success' | 'warning' | 'danger' | 'info' | 'neutral';
2
+ type KTagSize = 'sm' | 'md';
3
+ type __VLS_Props = {
4
+ type?: KTagType;
5
+ size?: KTagSize;
6
+ bordered?: boolean;
7
+ closable?: boolean;
8
+ round?: boolean;
9
+ };
10
+ declare var __VLS_1: {};
11
+ type __VLS_Slots = {} & {
12
+ default?: (props: typeof __VLS_1) => any;
13
+ };
14
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
15
+ close: (ev: MouseEvent) => any;
16
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
17
+ onClose?: ((ev: MouseEvent) => any) | undefined;
18
+ }>, {
19
+ type: KTagType;
20
+ size: KTagSize;
21
+ bordered: boolean;
22
+ closable: boolean;
23
+ round: boolean;
24
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
25
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
26
+ declare const _default: typeof __VLS_export;
27
+ export default _default;
28
+ type __VLS_WithSlots<T, S> = T & {
29
+ new (): {
30
+ $slots: S;
31
+ };
32
+ };
@@ -0,0 +1,40 @@
1
+ import { createCommentVNode as e, createElementBlock as t, createVNode as n, defineComponent as r, normalizeClass as i, openBlock as a, renderSlot as o, unref as s } from "vue";
2
+ import { X as c } from "lucide-vue-next";
3
+ //#region components/KTag.vue?vue&type=script&setup=true&lang.ts
4
+ var l = /* @__PURE__ */ r({
5
+ __name: "KTag",
6
+ props: {
7
+ type: { default: "default" },
8
+ size: { default: "md" },
9
+ bordered: {
10
+ type: Boolean,
11
+ default: !0
12
+ },
13
+ closable: {
14
+ type: Boolean,
15
+ default: !1
16
+ },
17
+ round: {
18
+ type: Boolean,
19
+ default: !1
20
+ }
21
+ },
22
+ emits: ["close"],
23
+ setup(r) {
24
+ return (l, u) => (a(), t("span", { class: i(["k-tag", [
25
+ `k-tag--${r.type}`,
26
+ `k-tag--${r.size}`,
27
+ {
28
+ "k-tag--borderless": !r.bordered,
29
+ "k-tag--round": r.round
30
+ }
31
+ ]]) }, [o(l.$slots, "default", {}, void 0, !0), r.closable ? (a(), t("button", {
32
+ key: 0,
33
+ type: "button",
34
+ class: "k-tag__close",
35
+ onClick: u[0] ||= (e) => l.$emit("close", e)
36
+ }, [n(s(c), { size: 10 })])) : e("", !0)], 2));
37
+ }
38
+ });
39
+ //#endregion
40
+ export { l as default };
@@ -0,0 +1,7 @@
1
+ import e from "../_virtual/_plugin-vue_export-helper.js";
2
+ import t from "./KTextarea.vue_vue_type_script_setup_true_lang.js";
3
+ /* empty css */
4
+ //#region components/KTextarea.vue
5
+ var n = /* @__PURE__ */ e(t, [["__scopeId", "data-v-1740afe2"]]);
6
+ //#endregion
7
+ export { n as default };
@@ -0,0 +1,23 @@
1
+ type __VLS_Props = {
2
+ modelValue?: string;
3
+ rows?: number;
4
+ placeholder?: string;
5
+ disabled?: boolean;
6
+ readonly?: boolean;
7
+ error?: boolean;
8
+ resize?: 'none' | 'vertical' | 'horizontal' | 'both';
9
+ };
10
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
11
+ "update:modelValue": (v: string) => any;
12
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
13
+ "onUpdate:modelValue"?: ((v: string) => any) | undefined;
14
+ }>, {
15
+ disabled: boolean;
16
+ modelValue: string;
17
+ readonly: boolean;
18
+ error: boolean;
19
+ rows: number;
20
+ resize: "none" | "vertical" | "horizontal" | "both";
21
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
22
+ declare const _default: typeof __VLS_export;
23
+ export default _default;
@@ -0,0 +1,51 @@
1
+ import { createElementBlock as e, defineComponent as t, normalizeClass as n, normalizeStyle as r, openBlock as i } from "vue";
2
+ //#region components/KTextarea.vue?vue&type=script&setup=true&lang.ts
3
+ var a = [
4
+ "value",
5
+ "rows",
6
+ "placeholder",
7
+ "disabled",
8
+ "readonly"
9
+ ], o = /* @__PURE__ */ t({
10
+ __name: "KTextarea",
11
+ props: {
12
+ modelValue: { default: "" },
13
+ rows: { default: 3 },
14
+ placeholder: {},
15
+ disabled: {
16
+ type: Boolean,
17
+ default: !1
18
+ },
19
+ readonly: {
20
+ type: Boolean,
21
+ default: !1
22
+ },
23
+ error: {
24
+ type: Boolean,
25
+ default: !1
26
+ },
27
+ resize: { default: "vertical" }
28
+ },
29
+ emits: ["update:modelValue"],
30
+ setup(t, { emit: o }) {
31
+ let s = o;
32
+ function c(e) {
33
+ s("update:modelValue", e.target.value);
34
+ }
35
+ return (o, s) => (i(), e("textarea", {
36
+ class: n(["k-textarea", {
37
+ "k-textarea--error": t.error,
38
+ "k-textarea--disabled": t.disabled
39
+ }]),
40
+ value: t.modelValue,
41
+ rows: t.rows,
42
+ placeholder: t.placeholder,
43
+ disabled: t.disabled,
44
+ readonly: t.readonly,
45
+ style: r({ resize: t.resize }),
46
+ onInput: c
47
+ }, null, 46, a));
48
+ }
49
+ });
50
+ //#endregion
51
+ export { o as default };
@@ -0,0 +1,7 @@
1
+ import e from "../_virtual/_plugin-vue_export-helper.js";
2
+ import t from "./KThemeToggleButton.vue_vue_type_script_setup_true_lang.js";
3
+ /* empty css */
4
+ //#region components/KThemeToggleButton.vue
5
+ var n = /* @__PURE__ */ e(t, [["__scopeId", "data-v-88b80661"]]);
6
+ //#endregion
7
+ export { n as default };
@@ -0,0 +1,14 @@
1
+ import type { ThemeMode } from '../types';
2
+ type __VLS_Props = {
3
+ /** Current theme mode. Defaults to 'auto' when unset. */
4
+ mode?: ThemeMode;
5
+ };
6
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
7
+ "update:mode": (value: ThemeMode) => any;
8
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
9
+ "onUpdate:mode"?: ((value: ThemeMode) => any) | undefined;
10
+ }>, {
11
+ mode: ThemeMode;
12
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
13
+ declare const _default: typeof __VLS_export;
14
+ export default _default;
@@ -0,0 +1,48 @@
1
+ import { Transition as e, computed as t, createBlock as n, createElementBlock as r, createVNode as i, defineComponent as a, openBlock as o, resolveDynamicComponent as s, withCtx as c } from "vue";
2
+ import { Monitor as l, Moon as u, Sun as d } from "lucide-vue-next";
3
+ //#region components/KThemeToggleButton.vue?vue&type=script&setup=true&lang.ts
4
+ var f = ["title", "aria-label"], p = /* @__PURE__ */ a({
5
+ __name: "KThemeToggleButton",
6
+ props: { mode: { default: "auto" } },
7
+ emits: ["update:mode"],
8
+ setup(a, { emit: p }) {
9
+ let m = a, h = p, g = [
10
+ {
11
+ value: "light",
12
+ label: "浅色",
13
+ icon: d
14
+ },
15
+ {
16
+ value: "dark",
17
+ label: "深色",
18
+ icon: u
19
+ },
20
+ {
21
+ value: "auto",
22
+ label: "跟随系统",
23
+ icon: l
24
+ }
25
+ ], _ = t(() => g.find((e) => e.value === m.mode) ?? g[2]);
26
+ function v() {
27
+ h("update:mode", g[(g.findIndex((e) => e.value === m.mode) + 1) % g.length].value);
28
+ }
29
+ return (t, a) => (o(), r("button", {
30
+ type: "button",
31
+ class: "grid size-9 place-items-center rounded-full text-ink-500 transition-all hover:bg-ink-100 hover:text-ink-900",
32
+ title: `当前: ${_.value.label} · 点击切换`,
33
+ "aria-label": `当前主题: ${_.value.label}`,
34
+ onClick: v
35
+ }, [i(e, {
36
+ name: "k-theme-icon",
37
+ mode: "out-in"
38
+ }, {
39
+ default: c(() => [(o(), n(s(_.value.icon), {
40
+ key: _.value.value,
41
+ class: "size-4"
42
+ }))]),
43
+ _: 1
44
+ })], 8, f));
45
+ }
46
+ });
47
+ //#endregion
48
+ export { p as default };
@@ -0,0 +1,6 @@
1
+ import e from "./KTooltip.vue_vue_type_script_setup_true_lang.js";
2
+ /* empty css */
3
+ //#region components/KTooltip.vue
4
+ var t = e;
5
+ //#endregion
6
+ export { t as default };
@@ -0,0 +1,23 @@
1
+ type __VLS_Props = {
2
+ label: string;
3
+ side?: 'top' | 'right' | 'bottom' | 'left';
4
+ delayMs?: number;
5
+ disabled?: boolean;
6
+ };
7
+ declare var __VLS_20: {};
8
+ type __VLS_Slots = {} & {
9
+ default?: (props: typeof __VLS_20) => any;
10
+ };
11
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
12
+ disabled: boolean;
13
+ side: "top" | "right" | "bottom" | "left";
14
+ delayMs: number;
15
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
16
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
17
+ declare const _default: typeof __VLS_export;
18
+ export default _default;
19
+ type __VLS_WithSlots<T, S> = T & {
20
+ new (): {
21
+ $slots: S;
22
+ };
23
+ };
@@ -0,0 +1,49 @@
1
+ import { createBlock as e, createTextVNode as t, createVNode as n, defineComponent as r, openBlock as i, renderSlot as a, toDisplayString as o, unref as s, withCtx as c } from "vue";
2
+ import { TooltipArrow as l, TooltipContent as u, TooltipPortal as d, TooltipProvider as f, TooltipRoot as p, TooltipTrigger as m } from "reka-ui";
3
+ //#region components/KTooltip.vue?vue&type=script&setup=true&lang.ts
4
+ var h = /* @__PURE__ */ r({
5
+ __name: "KTooltip",
6
+ props: {
7
+ label: {},
8
+ side: { default: "top" },
9
+ delayMs: { default: 350 },
10
+ disabled: {
11
+ type: Boolean,
12
+ default: !1
13
+ }
14
+ },
15
+ setup(r) {
16
+ return (h, g) => (i(), e(s(f), {
17
+ "delay-duration": r.delayMs,
18
+ "skip-delay-duration": 200
19
+ }, {
20
+ default: c(() => [n(s(p), null, {
21
+ default: c(() => [n(s(m), {
22
+ "as-child": "",
23
+ disabled: r.disabled
24
+ }, {
25
+ default: c(() => [a(h.$slots, "default")]),
26
+ _: 3
27
+ }, 8, ["disabled"]), n(s(d), null, {
28
+ default: c(() => [n(s(u), {
29
+ side: r.side,
30
+ "side-offset": 6,
31
+ class: "k-tooltip pointer-events-none z-50 select-none rounded-md bg-ink-900 px-2 py-1 text-[11px] font-medium text-ink-50 shadow-md will-change-[transform,opacity]"
32
+ }, {
33
+ default: c(() => [t(o(r.label) + " ", 1), n(s(l), {
34
+ class: "fill-ink-900",
35
+ width: 8,
36
+ height: 4
37
+ })]),
38
+ _: 1
39
+ }, 8, ["side"])]),
40
+ _: 1
41
+ })]),
42
+ _: 3
43
+ })]),
44
+ _: 3
45
+ }, 8, ["delay-duration"]));
46
+ }
47
+ });
48
+ //#endregion
49
+ export { h as default };
@@ -0,0 +1,7 @@
1
+ import e from "../_virtual/_plugin-vue_export-helper.js";
2
+ import t from "./KTreeNode.vue_vue_type_script_setup_true_lang.js";
3
+ /* empty css */
4
+ //#region components/KTreeNode.vue
5
+ var n = /* @__PURE__ */ e(t, [["__scopeId", "data-v-69ce0363"]]);
6
+ //#endregion
7
+ export { n as default };
@@ -0,0 +1,8 @@
1
+ import { type TreeNode } from './tree-context';
2
+ type __VLS_Props = {
3
+ node: TreeNode;
4
+ depth: number;
5
+ };
6
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
7
+ declare const _default: typeof __VLS_export;
8
+ export default _default;
@@ -0,0 +1,47 @@
1
+ import { kTreeContextKey as e } from "./tree-context.js";
2
+ import { Fragment as t, computed as n, createBlock as r, createCommentVNode as i, createElementBlock as a, createElementVNode as o, createVNode as s, defineComponent as c, inject as l, normalizeClass as u, normalizeStyle as d, openBlock as f, renderList as p, resolveComponent as m, resolveDynamicComponent as h, toDisplayString as g, unref as _, withModifiers as v } from "vue";
3
+ import { ChevronRight as y } from "lucide-vue-next";
4
+ //#region components/KTreeNode.vue?vue&type=script&setup=true&lang.ts
5
+ var b = { class: "k-tree__node" }, x = {
6
+ key: 1,
7
+ class: "k-tree__toggle-placeholder"
8
+ }, S = { class: "k-tree__label" }, C = {
9
+ key: 0,
10
+ class: "k-tree__children"
11
+ }, w = /* @__PURE__ */ c({
12
+ __name: "KTreeNode",
13
+ props: {
14
+ node: {},
15
+ depth: {}
16
+ },
17
+ setup(c) {
18
+ let w = c, T = l(e), E = n(() => !!(w.node.children && w.node.children.length > 0)), D = n(() => T.expanded.value.includes(w.node.id)), O = n(() => T.selected.value === w.node.id);
19
+ return (e, n) => {
20
+ let l = m("KTreeNode", !0);
21
+ return f(), a("li", b, [o("div", {
22
+ class: u(["k-tree__row", { "k-tree__row--selected": O.value }]),
23
+ style: d({ paddingLeft: c.depth * _(T).indent.value + 8 + "px" }),
24
+ onClick: n[1] ||= (e) => _(T).select(c.node)
25
+ }, [
26
+ E.value ? (f(), a("button", {
27
+ key: 0,
28
+ type: "button",
29
+ class: u(["k-tree__toggle", { "k-tree__toggle--open": D.value }]),
30
+ onClick: n[0] ||= v((e) => _(T).toggle(c.node.id), ["stop"])
31
+ }, [s(_(y), { size: 12 })], 2)) : (f(), a("span", x)),
32
+ c.node.icon ? (f(), r(h(c.node.icon), {
33
+ key: 2,
34
+ size: 14,
35
+ class: "k-tree__icon"
36
+ })) : i("", !0),
37
+ o("span", S, g(c.node.label), 1)
38
+ ], 6), E.value && D.value ? (f(), a("ul", C, [(f(!0), a(t, null, p(c.node.children, (e) => (f(), r(l, {
39
+ key: e.id,
40
+ node: e,
41
+ depth: c.depth + 1
42
+ }, null, 8, ["node", "depth"]))), 128))])) : i("", !0)]);
43
+ };
44
+ }
45
+ });
46
+ //#endregion
47
+ export { w as default };
@@ -0,0 +1,7 @@
1
+ import e from "../_virtual/_plugin-vue_export-helper.js";
2
+ import t from "./KTreeView.vue_vue_type_script_setup_true_lang.js";
3
+ /* empty css */
4
+ //#region components/KTreeView.vue
5
+ var n = /* @__PURE__ */ e(t, [["__scopeId", "data-v-92c28a8c"]]);
6
+ //#endregion
7
+ export { n as default };
@@ -0,0 +1,22 @@
1
+ import { type TreeNode } from './tree-context';
2
+ type __VLS_Props = {
3
+ nodes: TreeNode[];
4
+ expanded?: (string | number)[];
5
+ selected?: string | number | null;
6
+ indent?: number;
7
+ };
8
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
9
+ "update:expanded": (v: (string | number)[]) => any;
10
+ "update:selected": (v: string | number | null) => any;
11
+ nodeClick: (node: TreeNode) => any;
12
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
13
+ "onUpdate:expanded"?: ((v: (string | number)[]) => any) | undefined;
14
+ "onUpdate:selected"?: ((v: string | number | null) => any) | undefined;
15
+ onNodeClick?: ((node: TreeNode) => any) | undefined;
16
+ }>, {
17
+ expanded: (string | number)[];
18
+ selected: string | number | null;
19
+ indent: number;
20
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
21
+ declare const _default: typeof __VLS_export;
22
+ export default _default;
@@ -0,0 +1,45 @@
1
+ import { kTreeContextKey as e } from "./tree-context.js";
2
+ import t from "./KTreeNode.js";
3
+ import { Fragment as n, computed as r, createBlock as i, createElementBlock as a, defineComponent as o, openBlock as s, provide as c, ref as l, renderList as u, watch as d } from "vue";
4
+ //#region components/KTreeView.vue?vue&type=script&setup=true&lang.ts
5
+ var f = {
6
+ class: "k-tree",
7
+ role: "tree"
8
+ }, p = /* @__PURE__ */ o({
9
+ __name: "KTreeView",
10
+ props: {
11
+ nodes: {},
12
+ expanded: { default: () => [] },
13
+ selected: { default: null },
14
+ indent: { default: 16 }
15
+ },
16
+ emits: [
17
+ "update:expanded",
18
+ "update:selected",
19
+ "nodeClick"
20
+ ],
21
+ setup(o, { emit: p }) {
22
+ let m = o, h = p, g = l([...m.expanded]), _ = l(m.selected);
23
+ d(() => m.expanded, (e) => g.value = [...e]), d(() => m.selected, (e) => _.value = e);
24
+ function v(e) {
25
+ let t = g.value.indexOf(e);
26
+ t >= 0 ? g.value.splice(t, 1) : g.value.push(e), h("update:expanded", [...g.value]);
27
+ }
28
+ function y(e) {
29
+ _.value = e.id, h("update:selected", e.id), h("nodeClick", e);
30
+ }
31
+ return c(e, {
32
+ expanded: r(() => g.value),
33
+ selected: r(() => _.value),
34
+ indent: r(() => m.indent),
35
+ toggle: v,
36
+ select: y
37
+ }), (e, r) => (s(), a("ul", f, [(s(!0), a(n, null, u(o.nodes, (e) => (s(), i(t, {
38
+ key: e.id,
39
+ node: e,
40
+ depth: 0
41
+ }, null, 8, ["node"]))), 128))]));
42
+ }
43
+ });
44
+ //#endregion
45
+ export { p as default };
@@ -0,0 +1,7 @@
1
+ import e from "../_virtual/_plugin-vue_export-helper.js";
2
+ import t from "./KUpload.vue_vue_type_script_setup_true_lang.js";
3
+ /* empty css */
4
+ //#region components/KUpload.vue
5
+ var n = /* @__PURE__ */ e(t, [["__scopeId", "data-v-b4cbeb87"]]);
6
+ //#endregion
7
+ export { n as default };
@@ -0,0 +1,81 @@
1
+ export interface UploadFile {
2
+ id: string;
3
+ name: string;
4
+ size: number;
5
+ status: 'pending' | 'uploading' | 'success' | 'error';
6
+ progress: number;
7
+ url?: string;
8
+ error?: string;
9
+ raw?: File;
10
+ }
11
+ type __VLS_Props = {
12
+ multiple?: boolean;
13
+ accept?: string;
14
+ /** bytes */
15
+ maxSize?: number;
16
+ /** 用户自定义上传函数; 不传则文件保持 pending */
17
+ uploader?: (file: File, onProgress: (p: number) => void) => Promise<{
18
+ url?: string;
19
+ }>;
20
+ drag?: boolean;
21
+ };
22
+ declare function addFiles(list: FileList | File[]): Promise<void>;
23
+ declare function remove(id: string): void;
24
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {
25
+ files: import("vue").Ref<{
26
+ id: string;
27
+ name: string;
28
+ size: number;
29
+ status: "pending" | "uploading" | "success" | "error";
30
+ progress: number;
31
+ url?: string | undefined;
32
+ error?: string | undefined;
33
+ raw?: {
34
+ readonly lastModified: number;
35
+ readonly name: string;
36
+ readonly webkitRelativePath: string;
37
+ readonly size: number;
38
+ readonly type: string;
39
+ arrayBuffer: () => Promise<ArrayBuffer>;
40
+ bytes: () => Promise<Uint8Array<ArrayBuffer>>;
41
+ slice: (start?: number, end?: number, contentType?: string) => Blob;
42
+ stream: () => ReadableStream<Uint8Array<ArrayBuffer>>;
43
+ text: () => Promise<string>;
44
+ } | undefined;
45
+ }[], UploadFile[] | {
46
+ id: string;
47
+ name: string;
48
+ size: number;
49
+ status: "pending" | "uploading" | "success" | "error";
50
+ progress: number;
51
+ url?: string | undefined;
52
+ error?: string | undefined;
53
+ raw?: {
54
+ readonly lastModified: number;
55
+ readonly name: string;
56
+ readonly webkitRelativePath: string;
57
+ readonly size: number;
58
+ readonly type: string;
59
+ arrayBuffer: () => Promise<ArrayBuffer>;
60
+ bytes: () => Promise<Uint8Array<ArrayBuffer>>;
61
+ slice: (start?: number, end?: number, contentType?: string) => Blob;
62
+ stream: () => ReadableStream<Uint8Array<ArrayBuffer>>;
63
+ text: () => Promise<string>;
64
+ } | undefined;
65
+ }[]>;
66
+ remove: typeof remove;
67
+ addFiles: typeof addFiles;
68
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
69
+ error: (file: UploadFile, error: any) => any;
70
+ change: (files: UploadFile[]) => any;
71
+ success: (file: UploadFile) => any;
72
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
73
+ onError?: ((file: UploadFile, error: any) => any) | undefined;
74
+ onChange?: ((files: UploadFile[]) => any) | undefined;
75
+ onSuccess?: ((file: UploadFile) => any) | undefined;
76
+ }>, {
77
+ multiple: boolean;
78
+ drag: boolean;
79
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
80
+ declare const _default: typeof __VLS_export;
81
+ export default _default;