straw-ui-vue 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 (200) hide show
  1. package/README.md +42 -0
  2. package/dist/_virtual/_plugin-vue_export-helper.cjs +1 -0
  3. package/dist/_virtual/_plugin-vue_export-helper.js +8 -0
  4. package/dist/components/st-button/index.d.ts +162 -0
  5. package/dist/components/st-button/st-button.vue.cjs +1 -0
  6. package/dist/components/st-button/st-button.vue.d.ts +29 -0
  7. package/dist/components/st-button/st-button.vue.js +5 -0
  8. package/dist/components/st-button/st-button.vue_vue_type_script_setup_true_lang.cjs +1 -0
  9. package/dist/components/st-button/st-button.vue_vue_type_script_setup_true_lang.js +81 -0
  10. package/dist/components/st-button/types.d.ts +49 -0
  11. package/dist/components/st-button.cjs +1 -0
  12. package/dist/components/st-button.js +6 -0
  13. package/dist/components/st-checkbox/index.d.ts +153 -0
  14. package/dist/components/st-checkbox/st-checkbox.vue.cjs +1 -0
  15. package/dist/components/st-checkbox/st-checkbox.vue.d.ts +27 -0
  16. package/dist/components/st-checkbox/st-checkbox.vue.js +5 -0
  17. package/dist/components/st-checkbox/st-checkbox.vue_vue_type_script_setup_true_lang.cjs +1 -0
  18. package/dist/components/st-checkbox/st-checkbox.vue_vue_type_script_setup_true_lang.js +109 -0
  19. package/dist/components/st-checkbox/types.d.ts +20 -0
  20. package/dist/components/st-checkbox-group/index.d.ts +171 -0
  21. package/dist/components/st-checkbox-group/st-checkbox-group.vue.cjs +1 -0
  22. package/dist/components/st-checkbox-group/st-checkbox-group.vue.d.ts +29 -0
  23. package/dist/components/st-checkbox-group/st-checkbox-group.vue.js +5 -0
  24. package/dist/components/st-checkbox-group/st-checkbox-group.vue_vue_type_script_setup_true_lang.cjs +1 -0
  25. package/dist/components/st-checkbox-group/st-checkbox-group.vue_vue_type_script_setup_true_lang.js +63 -0
  26. package/dist/components/st-checkbox-group/types.d.ts +43 -0
  27. package/dist/components/st-checkbox-group.cjs +1 -0
  28. package/dist/components/st-checkbox-group.js +6 -0
  29. package/dist/components/st-checkbox.cjs +1 -0
  30. package/dist/components/st-checkbox.js +6 -0
  31. package/dist/components/st-dialog/index.d.ts +243 -0
  32. package/dist/components/st-dialog/st-dialog.vue.cjs +1 -0
  33. package/dist/components/st-dialog/st-dialog.vue.d.ts +41 -0
  34. package/dist/components/st-dialog/st-dialog.vue.js +5 -0
  35. package/dist/components/st-dialog/st-dialog.vue_vue_type_script_setup_true_lang.cjs +1 -0
  36. package/dist/components/st-dialog/st-dialog.vue_vue_type_script_setup_true_lang.js +175 -0
  37. package/dist/components/st-dialog/types.d.ts +29 -0
  38. package/dist/components/st-dialog.cjs +1 -0
  39. package/dist/components/st-dialog.js +6 -0
  40. package/dist/components/st-input/index.d.ts +315 -0
  41. package/dist/components/st-input/st-input.vue.cjs +1 -0
  42. package/dist/components/st-input/st-input.vue.d.ts +48 -0
  43. package/dist/components/st-input/st-input.vue.js +7 -0
  44. package/dist/components/st-input/st-input.vue_vue_type_script_setup_true_lang.cjs +1 -0
  45. package/dist/components/st-input/st-input.vue_vue_type_script_setup_true_lang.js +146 -0
  46. package/dist/components/st-input/types.d.ts +68 -0
  47. package/dist/components/st-input.cjs +1 -0
  48. package/dist/components/st-input.js +6 -0
  49. package/dist/components/st-menu/index.d.ts +217 -0
  50. package/dist/components/st-menu/st-menu-node.vue.cjs +1 -0
  51. package/dist/components/st-menu/st-menu-node.vue.d.ts +14 -0
  52. package/dist/components/st-menu/st-menu-node.vue.js +5 -0
  53. package/dist/components/st-menu/st-menu-node.vue_vue_type_script_setup_true_lang.cjs +1 -0
  54. package/dist/components/st-menu/st-menu-node.vue_vue_type_script_setup_true_lang.js +107 -0
  55. package/dist/components/st-menu/st-menu.vue.cjs +1 -0
  56. package/dist/components/st-menu/st-menu.vue.d.ts +26 -0
  57. package/dist/components/st-menu/st-menu.vue.js +5 -0
  58. package/dist/components/st-menu/st-menu.vue_vue_type_script_setup_true_lang.cjs +1 -0
  59. package/dist/components/st-menu/st-menu.vue_vue_type_script_setup_true_lang.js +86 -0
  60. package/dist/components/st-menu/types.d.ts +82 -0
  61. package/dist/components/st-menu.cjs +1 -0
  62. package/dist/components/st-menu.js +7 -0
  63. package/dist/components/st-popover/index.d.ts +243 -0
  64. package/dist/components/st-popover/st-popover.vue.cjs +1 -0
  65. package/dist/components/st-popover/st-popover.vue.d.ts +37 -0
  66. package/dist/components/st-popover/st-popover.vue.js +5 -0
  67. package/dist/components/st-popover/st-popover.vue_vue_type_script_setup_true_lang.cjs +1 -0
  68. package/dist/components/st-popover/st-popover.vue_vue_type_script_setup_true_lang.js +355 -0
  69. package/dist/components/st-popover/types.d.ts +103 -0
  70. package/dist/components/st-popover.cjs +1 -0
  71. package/dist/components/st-popover.js +6 -0
  72. package/dist/components/st-radio/index.d.ts +135 -0
  73. package/dist/components/st-radio/st-radio.vue.cjs +1 -0
  74. package/dist/components/st-radio/st-radio.vue.d.ts +28 -0
  75. package/dist/components/st-radio/st-radio.vue.js +5 -0
  76. package/dist/components/st-radio/st-radio.vue_vue_type_script_setup_true_lang.cjs +1 -0
  77. package/dist/components/st-radio/st-radio.vue_vue_type_script_setup_true_lang.js +88 -0
  78. package/dist/components/st-radio/types.d.ts +15 -0
  79. package/dist/components/st-radio-group/index.d.ts +180 -0
  80. package/dist/components/st-radio-group/st-radio-group.vue.cjs +1 -0
  81. package/dist/components/st-radio-group/st-radio-group.vue.d.ts +35 -0
  82. package/dist/components/st-radio-group/st-radio-group.vue.js +5 -0
  83. package/dist/components/st-radio-group/st-radio-group.vue_vue_type_script_setup_true_lang.cjs +1 -0
  84. package/dist/components/st-radio-group/st-radio-group.vue_vue_type_script_setup_true_lang.js +66 -0
  85. package/dist/components/st-radio-group/types.d.ts +43 -0
  86. package/dist/components/st-radio-group.cjs +1 -0
  87. package/dist/components/st-radio-group.js +6 -0
  88. package/dist/components/st-radio.cjs +1 -0
  89. package/dist/components/st-radio.js +6 -0
  90. package/dist/components/st-select/index.d.ts +306 -0
  91. package/dist/components/st-select/st-select.vue.cjs +1 -0
  92. package/dist/components/st-select/st-select.vue.d.ts +47 -0
  93. package/dist/components/st-select/st-select.vue.js +5 -0
  94. package/dist/components/st-select/st-select.vue_vue_type_script_setup_true_lang.cjs +1 -0
  95. package/dist/components/st-select/st-select.vue_vue_type_script_setup_true_lang.js +200 -0
  96. package/dist/components/st-select/types.d.ts +85 -0
  97. package/dist/components/st-select.cjs +1 -0
  98. package/dist/components/st-select.js +6 -0
  99. package/dist/components/st-sidebar/index.d.ts +63 -0
  100. package/dist/components/st-sidebar/st-sidebar.vue.cjs +1 -0
  101. package/dist/components/st-sidebar/st-sidebar.vue.d.ts +11 -0
  102. package/dist/components/st-sidebar/st-sidebar.vue.js +5 -0
  103. package/dist/components/st-sidebar/st-sidebar.vue_vue_type_script_setup_true_lang.cjs +1 -0
  104. package/dist/components/st-sidebar/st-sidebar.vue_vue_type_script_setup_true_lang.js +108 -0
  105. package/dist/components/st-sidebar/types.d.ts +56 -0
  106. package/dist/components/st-sidebar-item/index.d.ts +63 -0
  107. package/dist/components/st-sidebar-item/st-sidebar-item.vue.cjs +1 -0
  108. package/dist/components/st-sidebar-item/st-sidebar-item.vue.d.ts +11 -0
  109. package/dist/components/st-sidebar-item/st-sidebar-item.vue.js +5 -0
  110. package/dist/components/st-sidebar-item/st-sidebar-item.vue_vue_type_script_setup_true_lang.cjs +1 -0
  111. package/dist/components/st-sidebar-item/st-sidebar-item.vue_vue_type_script_setup_true_lang.js +38 -0
  112. package/dist/components/st-sidebar-item/types.d.ts +19 -0
  113. package/dist/components/st-sidebar-item.cjs +1 -0
  114. package/dist/components/st-sidebar-item.js +6 -0
  115. package/dist/components/st-sidebar.cjs +1 -0
  116. package/dist/components/st-sidebar.js +6 -0
  117. package/dist/components/st-splitter/index.d.ts +88 -0
  118. package/dist/components/st-splitter/st-splitter.vue.cjs +1 -0
  119. package/dist/components/st-splitter/st-splitter.vue.d.ts +16 -0
  120. package/dist/components/st-splitter/st-splitter.vue.js +5 -0
  121. package/dist/components/st-splitter/st-splitter.vue_vue_type_script_setup_true_lang.cjs +1 -0
  122. package/dist/components/st-splitter/st-splitter.vue_vue_type_script_setup_true_lang.js +29 -0
  123. package/dist/components/st-splitter/types.d.ts +192 -0
  124. package/dist/components/st-splitter/useSplitter.cjs +1 -0
  125. package/dist/components/st-splitter/useSplitter.d.ts +24 -0
  126. package/dist/components/st-splitter/useSplitter.js +129 -0
  127. package/dist/components/st-splitter-panel/index.d.ts +180 -0
  128. package/dist/components/st-splitter-panel/st-splitter-panel.vue.cjs +1 -0
  129. package/dist/components/st-splitter-panel/st-splitter-panel.vue.d.ts +33 -0
  130. package/dist/components/st-splitter-panel/st-splitter-panel.vue.js +5 -0
  131. package/dist/components/st-splitter-panel/st-splitter-panel.vue_vue_type_script_setup_true_lang.cjs +1 -0
  132. package/dist/components/st-splitter-panel/st-splitter-panel.vue_vue_type_script_setup_true_lang.js +164 -0
  133. package/dist/components/st-splitter-panel/types.d.ts +27 -0
  134. package/dist/components/st-splitter-panel.cjs +1 -0
  135. package/dist/components/st-splitter-panel.js +6 -0
  136. package/dist/components/st-splitter.cjs +1 -0
  137. package/dist/components/st-splitter.js +7 -0
  138. package/dist/components/st-toggle/index.d.ts +159 -0
  139. package/dist/components/st-toggle/st-toggle.vue.cjs +1 -0
  140. package/dist/components/st-toggle/st-toggle.vue.d.ts +25 -0
  141. package/dist/components/st-toggle/st-toggle.vue.js +5 -0
  142. package/dist/components/st-toggle/st-toggle.vue_vue_type_script_setup_true_lang.cjs +1 -0
  143. package/dist/components/st-toggle/st-toggle.vue_vue_type_script_setup_true_lang.js +62 -0
  144. package/dist/components/st-toggle/types.d.ts +38 -0
  145. package/dist/components/st-toggle.cjs +1 -0
  146. package/dist/components/st-toggle.js +6 -0
  147. package/dist/components/st-tooltip/index.d.ts +183 -0
  148. package/dist/components/st-tooltip/st-tooltip.vue.cjs +1 -0
  149. package/dist/components/st-tooltip/st-tooltip.vue.d.ts +29 -0
  150. package/dist/components/st-tooltip/st-tooltip.vue.js +5 -0
  151. package/dist/components/st-tooltip/st-tooltip.vue_vue_type_script_setup_true_lang.cjs +1 -0
  152. package/dist/components/st-tooltip/st-tooltip.vue_vue_type_script_setup_true_lang.js +71 -0
  153. package/dist/components/st-tooltip/types.d.ts +79 -0
  154. package/dist/components/st-tooltip.cjs +1 -0
  155. package/dist/components/st-tooltip.js +6 -0
  156. package/dist/components/st-tree/index.d.ts +114 -0
  157. package/dist/components/st-tree/st-tree-node.vue.cjs +1 -0
  158. package/dist/components/st-tree/st-tree-node.vue.d.ts +4 -0
  159. package/dist/components/st-tree/st-tree-node.vue.js +5 -0
  160. package/dist/components/st-tree/st-tree-node.vue_vue_type_script_setup_true_lang.cjs +1 -0
  161. package/dist/components/st-tree/st-tree-node.vue_vue_type_script_setup_true_lang.js +87 -0
  162. package/dist/components/st-tree/st-tree.vue.cjs +1 -0
  163. package/dist/components/st-tree/st-tree.vue.d.ts +50 -0
  164. package/dist/components/st-tree/st-tree.vue.js +5 -0
  165. package/dist/components/st-tree/st-tree.vue_vue_type_script_setup_true_lang.cjs +1 -0
  166. package/dist/components/st-tree/st-tree.vue_vue_type_script_setup_true_lang.js +59 -0
  167. package/dist/components/st-tree/types.d.ts +87 -0
  168. package/dist/components/st-tree.cjs +1 -0
  169. package/dist/components/st-tree.js +6 -0
  170. package/dist/components/types.d.ts +41 -0
  171. package/dist/index.cjs +1 -0
  172. package/dist/index.css +2 -0
  173. package/dist/index.d.ts +3005 -0
  174. package/dist/index.js +47 -0
  175. package/dist/utils/cn.cjs +1 -0
  176. package/dist/utils/cn.d.ts +11 -0
  177. package/dist/utils/cn.js +8 -0
  178. package/dist/utils/cva/index.cjs +1 -0
  179. package/dist/utils/cva/index.d.ts +9 -0
  180. package/dist/utils/cva/index.js +25 -0
  181. package/dist/utils/cva/types.d.ts +45 -0
  182. package/dist/utils/directive/index.cjs +1 -0
  183. package/dist/utils/directive/index.d.ts +4 -0
  184. package/dist/utils/directive/index.js +10 -0
  185. package/dist/utils/directive/intersection.cjs +1 -0
  186. package/dist/utils/directive/intersection.d.ts +6 -0
  187. package/dist/utils/directive/intersection.js +20 -0
  188. package/dist/utils/directive/interval.cjs +1 -0
  189. package/dist/utils/directive/interval.d.ts +6 -0
  190. package/dist/utils/directive/interval.js +14 -0
  191. package/dist/utils/directive/move.cjs +1 -0
  192. package/dist/utils/directive/move.d.ts +6 -0
  193. package/dist/utils/directive/move.js +42 -0
  194. package/dist/utils/directive/resize.cjs +1 -0
  195. package/dist/utils/directive/resize.d.ts +6 -0
  196. package/dist/utils/directive/resize.js +17 -0
  197. package/dist/utils/with-install.cjs +1 -0
  198. package/dist/utils/with-install.d.ts +4 -0
  199. package/dist/utils/with-install.js +10 -0
  200. package/package.json +87 -0
package/dist/index.js ADDED
@@ -0,0 +1,47 @@
1
+ import e from "./utils/directive/index.js";
2
+ import { cn as t } from "./utils/cn.js";
3
+ import { cva as n } from "./utils/cva/index.js";
4
+ import { StButton as r } from "./components/st-button.js";
5
+ import { StCheckbox as i } from "./components/st-checkbox.js";
6
+ import { StCheckboxGroup as a } from "./components/st-checkbox-group.js";
7
+ import { StRadio as o } from "./components/st-radio.js";
8
+ import { StRadioGroup as s } from "./components/st-radio-group.js";
9
+ import { StInput as c } from "./components/st-input.js";
10
+ import { StPopover as l } from "./components/st-popover.js";
11
+ import { StTooltip as u } from "./components/st-tooltip.js";
12
+ import { StSelect as d } from "./components/st-select.js";
13
+ import { StDialog as f } from "./components/st-dialog.js";
14
+ import { StMenu as p, StMenuNode as m } from "./components/st-menu.js";
15
+ import { StSidebar as h } from "./components/st-sidebar.js";
16
+ import { StSidebarItem as g } from "./components/st-sidebar-item.js";
17
+ import { StSplitter as _ } from "./components/st-splitter.js";
18
+ import { StSplitterPanel as v } from "./components/st-splitter-panel.js";
19
+ import { StTree as y } from "./components/st-tree.js";
20
+ import { StToggle as b } from "./components/st-toggle.js";
21
+ //#region src/index.ts
22
+ var x = {
23
+ install(t) {
24
+ t.use(e), t.use(r), t.use(i), t.use(a), t.use(o), t.use(s), t.use(c), t.use(l), t.use(u), t.use(d), t.use(f), t.use(p), t.use(m), t.use(h), t.use(g), t.use(_), t.use(v), t.use(y), t.use(b);
25
+ },
26
+ Directive: e,
27
+ StButton: r,
28
+ StCheckbox: i,
29
+ StCheckboxGroup: a,
30
+ StRadio: o,
31
+ StRadioGroup: s,
32
+ StInput: c,
33
+ StPopover: l,
34
+ StTooltip: u,
35
+ StSelect: d,
36
+ StDialog: f,
37
+ StMenu: p,
38
+ StMenuNode: m,
39
+ StSidebar: h,
40
+ StSidebarItem: g,
41
+ StSplitter: _,
42
+ StSplitterPanel: v,
43
+ StTree: y,
44
+ StToggle: b
45
+ };
46
+ //#endregion
47
+ export { e as Directive, r as StButton, i as StCheckbox, a as StCheckboxGroup, f as StDialog, c as StInput, p as StMenu, m as StMenuNode, l as StPopover, o as StRadio, s as StRadioGroup, d as StSelect, h as StSidebar, g as StSidebarItem, _ as StSplitter, v as StSplitterPanel, b as StToggle, u as StTooltip, y as StTree, t as cn, n as cva, x as default };
@@ -0,0 +1 @@
1
+ let e=require("clsx");var t=(0,require("tailwind-merge").extendTailwindMerge)({extend:{classGroups:{"font-size":[{text:[e=>/^\d+(\.\d+)?$/.test(e)]}]}}});function n(...n){return t((0,e.clsx)(n))}exports.cn=n;
@@ -0,0 +1,11 @@
1
+ import type { ClassValue } from 'clsx';
2
+ /**
3
+ * 合并类名工具函数
4
+ * 结合 clsx 和自定义的 tailwind-merge,智能合并多个类名
5
+ * clsx 负责处理条件类名和过滤空值
6
+ * customTwMerge 负责解决 Tailwind CSS 类名冲突,并正确区分尺寸和颜色类
7
+ * @param inputs 类名参数,可以是字符串、对象、数组等
8
+ * @returns 合并后的类名字符串
9
+ */
10
+ declare function cn(...inputs: ClassValue[]): string;
11
+ export { cn };
@@ -0,0 +1,8 @@
1
+ import { clsx as e } from "clsx";
2
+ import { extendTailwindMerge as t } from "tailwind-merge";
3
+ var n = t({ extend: { classGroups: { "font-size": [{ text: [(e) => /^\d+(\.\d+)?$/.test(e)] }] } } });
4
+ function r(...t) {
5
+ return n(e(t));
6
+ }
7
+ //#endregion
8
+ export { r as cn };
@@ -0,0 +1 @@
1
+ const e=require("../cn.cjs");function t(t){let{base:n,variants:r,defaultVariants:i,compoundVariants:a}=t;return t=>{let o={...i,...t},s=[];if(n&&s.push(n),r)for(let e of Object.keys(r)){let t=r[e];if(t){let n=o[e];if(n!=null){let e=String(n);t[e]&&s.push(t[e])}}}if(a)for(let e of a)Object.entries(e.variants).every(([e,t])=>o[e]===t)&&s.push(e.className);return e.cn(...s)}}exports.cva=t;
@@ -0,0 +1,9 @@
1
+ import type { CVAConfig, CVAReturnFunction, VariantValues } from './types';
2
+ /**
3
+ * 创建一个类变体权威函数
4
+ * 用于声明式管理组件变体类名
5
+ * @param config CVA 配置对象
6
+ * @returns 返回一个函数,该函数接收变体属性并返回合并后的类名
7
+ */
8
+ declare function cva<Variants extends VariantValues>(config: CVAConfig<Variants>): CVAReturnFunction<Variants>;
9
+ export { cva };
@@ -0,0 +1,25 @@
1
+ import { cn as e } from "../cn.js";
2
+ //#region src/utils/cva/index.ts
3
+ function t(t) {
4
+ let { base: n, variants: r, defaultVariants: i, compoundVariants: a } = t;
5
+ return (t) => {
6
+ let o = {
7
+ ...i,
8
+ ...t
9
+ }, s = [];
10
+ if (n && s.push(n), r) for (let e of Object.keys(r)) {
11
+ let t = r[e];
12
+ if (t) {
13
+ let n = o[e];
14
+ if (n != null) {
15
+ let e = String(n);
16
+ t[e] && s.push(t[e]);
17
+ }
18
+ }
19
+ }
20
+ if (a) for (let e of a) Object.entries(e.variants).every(([e, t]) => o[e] === t) && s.push(e.className);
21
+ return e(...s);
22
+ };
23
+ }
24
+ //#endregion
25
+ export { t as cva };
@@ -0,0 +1,45 @@
1
+ /**
2
+ * CVA 变体值映射类型
3
+ * 用于定义每个变体属性的可能值
4
+ */
5
+ type VariantValues = Record<string, string | boolean | number | undefined>;
6
+
7
+ /**
8
+ * CVA 变体配置类型
9
+ * 用于定义每个变体属性对应值的类名映射
10
+ */
11
+ type VariantConfig<Variants extends VariantValues> = {
12
+ [VariantKey in keyof Variants]?: {
13
+ [Value in Variants[VariantKey] as string]: string;
14
+ };
15
+ };
16
+
17
+ /**
18
+ * CVA 复合变体配置类型
19
+ * 用于定义当多个变体条件同时满足时应用的类名
20
+ */
21
+ type CompoundVariant<Variants extends VariantValues> = {
22
+ variants: Partial<Variants>;
23
+ className: string;
24
+ };
25
+
26
+ /**
27
+ * CVA 配置接口
28
+ * 用于定义组件变体的完整配置
29
+ */
30
+ interface CVAConfig<Variants extends VariantValues> {
31
+ base?: string;
32
+ variants?: VariantConfig<Variants>;
33
+ defaultVariants?: Partial<Variants>;
34
+ compoundVariants?: Array<CompoundVariant<Variants>>;
35
+ }
36
+
37
+ /**
38
+ * CVA 返回函数类型
39
+ * 接收变体属性并返回合并后的类名字符串
40
+ */
41
+ type CVAReturnFunction<Variants extends VariantValues> = (props?: Partial<Variants>) => string;
42
+
43
+ export type { VariantValues, VariantConfig, CompoundVariant, CVAConfig, CVAReturnFunction };
44
+
45
+ export {};
@@ -0,0 +1 @@
1
+ const e=require("./intersection.cjs"),t=require("./interval.cjs"),n=require("./move.cjs"),r=require("./resize.cjs");var i={install(i){i.directive(`intersection`,e.default),i.directive(`interval`,t.default),i.directive(`move`,n.default),i.directive(`resize`,r.default)}};exports.default=i;
@@ -0,0 +1,4 @@
1
+ declare const _default: {
2
+ install(Vue: any): void;
3
+ };
4
+ export default _default;
@@ -0,0 +1,10 @@
1
+ import e from "./intersection.js";
2
+ import t from "./interval.js";
3
+ import n from "./move.js";
4
+ import r from "./resize.js";
5
+ //#region src/utils/directive/index.ts
6
+ var i = { install(i) {
7
+ i.directive("intersection", e), i.directive("interval", t), i.directive("move", n), i.directive("resize", r);
8
+ } };
9
+ //#endregion
10
+ export { i as default };
@@ -0,0 +1 @@
1
+ var e=new WeakMap,t=new IntersectionObserver(t=>{for(let n of t){let t=e.get(n.target),r=t?.handler,i=t?.params;r&&r({...n.boundingClientRect,isIntersecting:n.isIntersecting},n,i)}}),n={mounted(n,r){let i=r.value&&typeof r.value==`object`?r.value:{handler:r.value};(i.enabled??!0)&&(e.set(n,i),t.observe(n))},unmounted(e,n){t.unobserve(e)}};exports.default=n;
@@ -0,0 +1,6 @@
1
+ import type { DirectiveBinding } from 'vue';
2
+ declare const _default: {
3
+ mounted(el: HTMLElement, binding: DirectiveBinding): void;
4
+ unmounted(el: HTMLElement, binding: DirectiveBinding): void;
5
+ };
6
+ export default _default;
@@ -0,0 +1,20 @@
1
+ //#region src/utils/directive/intersection.ts
2
+ var e = /* @__PURE__ */ new WeakMap(), t = new IntersectionObserver((t) => {
3
+ for (let n of t) {
4
+ let t = e.get(n.target), r = t?.handler, i = t?.params;
5
+ r && r({
6
+ ...n.boundingClientRect,
7
+ isIntersecting: n.isIntersecting
8
+ }, n, i);
9
+ }
10
+ }), n = {
11
+ mounted(n, r) {
12
+ let i = r.value && typeof r.value == "object" ? r.value : { handler: r.value };
13
+ (i.enabled ?? !0) && (e.set(n, i), t.observe(n));
14
+ },
15
+ unmounted(e, n) {
16
+ t.unobserve(e);
17
+ }
18
+ };
19
+ //#endregion
20
+ export { n as default };
@@ -0,0 +1 @@
1
+ var e=new Map,t={mounted(t,n){let r=n.value&&typeof n.value==`object`?n.value:{handler:n.value},i=r.enabled??!0,a=r.timeout??1e3,o=r.params;i&&e.set(t,setInterval(()=>{n.value(t,o)},a))},unmounted(t,n){e.has(t)&&(clearInterval(e.get(t)),e.delete(t))}};exports.default=t;
@@ -0,0 +1,6 @@
1
+ import type { DirectiveBinding } from 'vue';
2
+ declare const _default: {
3
+ mounted(el: HTMLElement, binding: DirectiveBinding): void;
4
+ unmounted(el: HTMLElement, binding: DirectiveBinding): void;
5
+ };
6
+ export default _default;
@@ -0,0 +1,14 @@
1
+ //#region src/utils/directive/interval.ts
2
+ var e = /* @__PURE__ */ new Map(), t = {
3
+ mounted(t, n) {
4
+ let r = n.value && typeof n.value == "object" ? n.value : { handler: n.value }, i = r.enabled ?? !0, a = r.timeout ?? 1e3, o = r.params;
5
+ i && e.set(t, setInterval(() => {
6
+ n.value(t, o);
7
+ }, a));
8
+ },
9
+ unmounted(t, n) {
10
+ e.has(t) && (clearInterval(e.get(t)), e.delete(t));
11
+ }
12
+ };
13
+ //#endregion
14
+ export { t as default };
@@ -0,0 +1 @@
1
+ var e=null,t=new Map;function n(e){return t.get(e)||e===document.body?e:n(e.parentNode)}function r(r){r.stopPropagation(),r.preventDefault(),e=n(r.target);let o=t.get(e),s=o?.cb?.mousedown,c=o?.move??!0,l=o?.params;if(c){o.position||={};let t=o.position;e.classList.replace(`cursor-grab`,`cursor-grabbing`),t.ol=r.pageX,t.ot=r.pageY,t.l=t.l??0,t.t=t.t??0}s&&s(r,l),document.addEventListener(`mousemove`,i),document.addEventListener(`mouseup`,a,{once:!0})}function i(n){let r=t.get(e),i=r?.handler??r?.cb?.mousemove,a=r?.target,o=r?.move??!0,s=r?.params;if(o){let e=r.position,t=n.pageX-e.ol+e.l,i=n.pageY-e.ot+e.t;a.style.transform=`translate(${t}px, ${i}px)`}i&&i(n,s)}function a(n){let r=t.get(e),a=r?.cb?.mousedown,o=r?.move??!0,s=r?.params;if(o){let t=r.position;t.l=n.pageX-t.ol+t.l,t.t=n.pageY-t.ot+t.t,e.classList.replace(`cursor-grabbing`,`cursor-grab`)}a&&a(n,s),document.removeEventListener(`mousemove`,i)}var o={mounted(e,n){let i=n.value&&typeof n.value==`object`?n.value:{handler:n.value},a=i.enabled??!0,o=i?.move??!0;i.target=typeof i.target==`string`?document.querySelector(`.${i.target}`):e,a&&(o&&e.classList.add(`cursor-grab`),t.set(e,i),e.addEventListener(`mousedown`,r))},unmounted(e,n){t.delete(e),e.removeEventListener(`mousedown`,r)}};exports.default=o;
@@ -0,0 +1,6 @@
1
+ import type { DirectiveBinding } from 'vue';
2
+ declare const _default: {
3
+ mounted(el: HTMLElement, binding: DirectiveBinding): void;
4
+ unmounted(el: HTMLElement, binding: DirectiveBinding): void;
5
+ };
6
+ export default _default;
@@ -0,0 +1,42 @@
1
+ //#region src/utils/directive/move.ts
2
+ var e = null, t = /* @__PURE__ */ new Map();
3
+ function n(e) {
4
+ return t.get(e) || e === document.body ? e : n(e.parentNode);
5
+ }
6
+ function r(r) {
7
+ r.stopPropagation(), r.preventDefault(), e = n(r.target);
8
+ let o = t.get(e), s = o?.cb?.mousedown, c = o?.move ?? !0, l = o?.params;
9
+ if (c) {
10
+ o.position ||= {};
11
+ let t = o.position;
12
+ e.classList.replace("cursor-grab", "cursor-grabbing"), t.ol = r.pageX, t.ot = r.pageY, t.l = t.l ?? 0, t.t = t.t ?? 0;
13
+ }
14
+ s && s(r, l), document.addEventListener("mousemove", i), document.addEventListener("mouseup", a, { once: !0 });
15
+ }
16
+ function i(n) {
17
+ let r = t.get(e), i = r?.handler ?? r?.cb?.mousemove, a = r?.target, o = r?.move ?? !0, s = r?.params;
18
+ if (o) {
19
+ let e = r.position, t = n.pageX - e.ol + e.l, i = n.pageY - e.ot + e.t;
20
+ a.style.transform = `translate(${t}px, ${i}px)`;
21
+ }
22
+ i && i(n, s);
23
+ }
24
+ function a(n) {
25
+ let r = t.get(e), a = r?.cb?.mousedown, o = r?.move ?? !0, s = r?.params;
26
+ if (o) {
27
+ let t = r.position;
28
+ t.l = n.pageX - t.ol + t.l, t.t = n.pageY - t.ot + t.t, e.classList.replace("cursor-grabbing", "cursor-grab");
29
+ }
30
+ a && a(n, s), document.removeEventListener("mousemove", i);
31
+ }
32
+ var o = {
33
+ mounted(e, n) {
34
+ let i = n.value && typeof n.value == "object" ? n.value : { handler: n.value }, a = i.enabled ?? !0, o = i?.move ?? !0;
35
+ i.target = typeof i.target == "string" ? document.querySelector(`.${i.target}`) : e, a && (o && e.classList.add("cursor-grab"), t.set(e, i), e.addEventListener("mousedown", r));
36
+ },
37
+ unmounted(e, n) {
38
+ t.delete(e), e.removeEventListener("mousedown", r);
39
+ }
40
+ };
41
+ //#endregion
42
+ export { o as default };
@@ -0,0 +1 @@
1
+ var e=new WeakMap,t=new ResizeObserver(t=>{for(let n of t){let t=e.get(n.target),r=t?.handler,i=t?.params;r&&r(n.contentRect,n,i)}}),n={mounted(n,r){let i=r.value&&typeof r.value==`object`?r.value:{handler:r.value};(i.enabled??!0)&&(e.set(n,i),t.observe(n))},unmounted(e,n){t.unobserve(e)}};exports.default=n;
@@ -0,0 +1,6 @@
1
+ import type { DirectiveBinding } from 'vue';
2
+ declare const _default: {
3
+ mounted(el: HTMLElement, binding: DirectiveBinding): void;
4
+ unmounted(el: HTMLElement, binding: DirectiveBinding): void;
5
+ };
6
+ export default _default;
@@ -0,0 +1,17 @@
1
+ //#region src/utils/directive/resize.ts
2
+ var e = /* @__PURE__ */ new WeakMap(), t = new ResizeObserver((t) => {
3
+ for (let n of t) {
4
+ let t = e.get(n.target), r = t?.handler, i = t?.params;
5
+ r && r(n.contentRect, n, i);
6
+ }
7
+ }), n = {
8
+ mounted(n, r) {
9
+ let i = r.value && typeof r.value == "object" ? r.value : { handler: r.value };
10
+ (i.enabled ?? !0) && (e.set(n, i), t.observe(n));
11
+ },
12
+ unmounted(e, n) {
13
+ t.unobserve(e);
14
+ }
15
+ };
16
+ //#endregion
17
+ export { n as default };
@@ -0,0 +1 @@
1
+ function e(e){let t=e;return t.install=t=>{let n=e.name||e.__name;n&&t.component(n,e)},t}exports.withInstall=e;
@@ -0,0 +1,4 @@
1
+ import type { DefineComponent, Plugin } from 'vue';
2
+ type SFCWithInstall<T> = DefineComponent<T> & Plugin;
3
+ export declare function withInstall<T>(comp: T): SFCWithInstall<T>;
4
+ export {};
@@ -0,0 +1,10 @@
1
+ //#region src/utils/with-install.ts
2
+ function e(e) {
3
+ let t = e;
4
+ return t.install = (t) => {
5
+ let n = e.name || e.__name;
6
+ n && t.component(n, e);
7
+ }, t;
8
+ }
9
+ //#endregion
10
+ export { e as withInstall };
package/package.json ADDED
@@ -0,0 +1,87 @@
1
+ {
2
+ "name": "straw-ui-vue",
3
+ "version": "0.1.0",
4
+ "description": "A Vue 3 directive library",
5
+ "type": "module",
6
+ "main": "./dist/index.cjs",
7
+ "module": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "author": {
10
+ "name": "叶落ぃ无尘"
11
+ },
12
+ "exports": {
13
+ ".": {
14
+ "types": "./dist/index.d.ts",
15
+ "import": "./dist/index.js",
16
+ "require": "./dist/index.cjs"
17
+ },
18
+ "./components/*": {
19
+ "types": "./dist/components/*/index.d.ts",
20
+ "import": "./dist/components/*.js",
21
+ "require": "./dist/components/*.cjs"
22
+ },
23
+ "./style.css": "./dist/index.css"
24
+ },
25
+ "files": [
26
+ "dist",
27
+ "README.md"
28
+ ],
29
+ "sideEffects": [
30
+ "**/*.css",
31
+ "**/*.less"
32
+ ],
33
+ "scripts": {
34
+ "dev": "vite",
35
+ "build": "vite build",
36
+ "copy-types": "node scripts/copy-types.mjs",
37
+ "build:lib": "vite build && vue-tsc -p tsconfig.app.json --emitDeclarationOnly && npm run copy-types",
38
+ "type-check": "vue-tsc -p tsconfig.app.json --noEmit",
39
+ "preview": "vite preview",
40
+ "format": "prettier --write --experimental-cli src/",
41
+ "docs:dev": "vitepress dev docs",
42
+ "docs:build": "vitepress build docs",
43
+ "prepublishOnly": "npm run build:lib"
44
+ },
45
+ "keywords": [
46
+ "vue3",
47
+ "vue",
48
+ "directives",
49
+ "component-library"
50
+ ],
51
+ "license": "MIT",
52
+ "repository": {
53
+ "type": "git",
54
+ "url": ""
55
+ },
56
+ "peerDependencies": {
57
+ "vue": "^3.3.0",
58
+ "clsx": "^2.1.0",
59
+ "tailwind-merge": "^3.6.0"
60
+ },
61
+ "dependencies": {},
62
+ "devDependencies": {
63
+ "@iconify/json": "2.2.483",
64
+ "@tsconfig/node24": "24.0.4",
65
+ "@types/node": "25.9.2",
66
+ "@unocss/preset-wind4": "66.7.0",
67
+ "@vitejs/plugin-vue": "6.0.7",
68
+ "@vitejs/plugin-vue-jsx": "5.1.5",
69
+ "@vue/tsconfig": "0.9.1",
70
+ "clsx": "2.1.1",
71
+ "less": "4.6.4",
72
+ "npm-run-all2": "9.0.1",
73
+ "pinia": "3.0.4",
74
+ "prettier": "3.8.3",
75
+ "tailwind-merge": "3.6.0",
76
+ "typescript": "6.0.3",
77
+ "unocss": "66.7.0",
78
+ "vite": "8.0.16",
79
+ "vite-plugin-vue-devtools": "8.1.2",
80
+ "vue": "3.5.35",
81
+ "vue-router": "5.1.0",
82
+ "vue-tsc": "3.3.3"
83
+ },
84
+ "engines": {
85
+ "node": "^20.19.0 || >=22.12.0"
86
+ }
87
+ }