@vuer-ai/vuer-uikit 0.0.2 → 0.0.3

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 (212) hide show
  1. package/README.md +80 -0
  2. package/dist/chunk-263CMARJ.mjs +155 -0
  3. package/dist/chunk-277NQUJD.js +99 -0
  4. package/dist/chunk-3FR3WKI4.mjs +24 -0
  5. package/dist/chunk-3HXPIWL3.js +51 -0
  6. package/dist/chunk-3Q75Z2CT.mjs +76 -0
  7. package/dist/chunk-5BIQ3IN7.js +93 -0
  8. package/dist/chunk-5JP4AZ4C.js +302 -0
  9. package/dist/chunk-5U4NWZMT.mjs +78 -0
  10. package/dist/chunk-75QDQ67T.js +56 -0
  11. package/dist/chunk-7IYL2AR4.js +375 -0
  12. package/dist/chunk-ATDHGFVI.mjs +82 -0
  13. package/dist/chunk-CFXL2XYO.mjs +339 -0
  14. package/dist/chunk-CLTLT5XW.js +27 -0
  15. package/dist/chunk-CN6ISLZA.js +102 -0
  16. package/dist/chunk-CP7QYV4N.mjs +110 -0
  17. package/dist/chunk-CZSRIDXN.mjs +165 -0
  18. package/dist/chunk-D4C5V4EN.mjs +53 -0
  19. package/dist/chunk-DQGTWUID.js +186 -0
  20. package/dist/chunk-DWIK2CUV.mjs +45 -0
  21. package/dist/chunk-FXIL4NQZ.js +58 -0
  22. package/dist/chunk-FYEZTS4S.mjs +90 -0
  23. package/dist/chunk-GA2JCN3F.mjs +111 -0
  24. package/dist/chunk-HW6SLBO3.mjs +9 -0
  25. package/dist/chunk-I6VKLSAJ.js +163 -0
  26. package/dist/chunk-J4RFFBDJ.mjs +94 -0
  27. package/dist/chunk-JIXJTLEO.js +93 -0
  28. package/dist/chunk-JOBQTBEM.mjs +49 -0
  29. package/dist/chunk-JZ7V43ZL.js +136 -0
  30. package/dist/chunk-KAPV3EZO.mjs +271 -0
  31. package/dist/chunk-KJ42IGH6.js +2 -0
  32. package/dist/chunk-KO7BQ6RR.js +83 -0
  33. package/dist/chunk-KVDEBKWR.mjs +106 -0
  34. package/dist/chunk-KVFK3YC7.js +187 -0
  35. package/dist/chunk-KYKEJFJT.js +110 -0
  36. package/dist/chunk-LBFO3QAA.js +202 -0
  37. package/dist/chunk-MASRZTZC.mjs +34 -0
  38. package/dist/chunk-NA7TVYOP.js +21 -0
  39. package/dist/chunk-OE56M4MX.js +93 -0
  40. package/dist/chunk-PKGNHHWG.mjs +60 -0
  41. package/dist/chunk-Q3APPCB2.mjs +91 -0
  42. package/dist/chunk-QNTUEKYQ.mjs +19 -0
  43. package/dist/chunk-QS7WS6DD.mjs +1 -0
  44. package/dist/chunk-RPXWKB6F.js +103 -0
  45. package/dist/chunk-SDN2OTHS.js +78 -0
  46. package/dist/chunk-SKWTWHB7.mjs +53 -0
  47. package/dist/chunk-ST4P6AN6.js +2 -0
  48. package/dist/chunk-SUU4Z6E5.mjs +200 -0
  49. package/dist/chunk-SZU2TX5H.js +24 -0
  50. package/dist/chunk-TOZYLDAL.mjs +72 -0
  51. package/dist/chunk-UFR656UY.mjs +87 -0
  52. package/dist/chunk-UWO6RBCE.js +11 -0
  53. package/dist/chunk-VGCVIHBR.mjs +1 -0
  54. package/dist/chunk-WI2J7NIV.mjs +161 -0
  55. package/dist/chunk-WK3M4X72.js +2 -0
  56. package/dist/chunk-WOG6UIG5.mjs +71 -0
  57. package/dist/chunk-XACRGXGF.js +75 -0
  58. package/dist/chunk-YQORMF34.js +110 -0
  59. package/dist/chunk-Z37VNICQ.js +67 -0
  60. package/dist/chunk-ZCYBA6YN.mjs +1 -0
  61. package/dist/chunk-ZJXBC33M.js +112 -0
  62. package/dist/chunk-ZKYQYCKN.mjs +15 -0
  63. package/dist/chunk-ZYBSCTBR.js +109 -0
  64. package/dist/highlight-cursor/cursor-context.d.mts +7 -0
  65. package/dist/highlight-cursor/cursor-context.d.ts +7 -0
  66. package/dist/highlight-cursor/cursor-context.js +14 -0
  67. package/dist/highlight-cursor/cursor-context.mjs +1 -0
  68. package/dist/highlight-cursor/cursor-provider.d.mts +7 -0
  69. package/dist/highlight-cursor/cursor-provider.d.ts +7 -0
  70. package/dist/highlight-cursor/cursor-provider.js +12 -0
  71. package/dist/highlight-cursor/cursor-provider.mjs +3 -0
  72. package/dist/highlight-cursor/enhanced-components.d.mts +20 -0
  73. package/dist/highlight-cursor/enhanced-components.d.ts +20 -0
  74. package/dist/highlight-cursor/enhanced-components.js +36 -0
  75. package/dist/highlight-cursor/enhanced-components.mjs +11 -0
  76. package/dist/highlight-cursor/index.d.mts +16 -0
  77. package/dist/highlight-cursor/index.d.ts +16 -0
  78. package/dist/highlight-cursor/index.js +50 -0
  79. package/dist/highlight-cursor/index.mjs +13 -0
  80. package/dist/highlight-cursor/tabs-cursor-context.d.mts +14 -0
  81. package/dist/highlight-cursor/tabs-cursor-context.d.ts +14 -0
  82. package/dist/highlight-cursor/tabs-cursor-context.js +14 -0
  83. package/dist/highlight-cursor/tabs-cursor-context.mjs +1 -0
  84. package/dist/highlight-cursor/types.d.mts +39 -0
  85. package/dist/highlight-cursor/types.d.ts +39 -0
  86. package/dist/highlight-cursor/types.js +2 -0
  87. package/dist/highlight-cursor/types.mjs +1 -0
  88. package/dist/highlight-cursor/with-cursor.d.mts +7 -0
  89. package/dist/highlight-cursor/with-cursor.d.ts +7 -0
  90. package/dist/highlight-cursor/with-cursor.js +11 -0
  91. package/dist/highlight-cursor/with-cursor.mjs +2 -0
  92. package/dist/index.css +294 -0
  93. package/dist/index.d.mts +48 -0
  94. package/dist/index.d.ts +48 -0
  95. package/dist/index.js +382 -6744
  96. package/dist/index.mjs +31 -0
  97. package/dist/styles/theme.css +185 -0
  98. package/dist/styles/theme.d.mts +2 -0
  99. package/dist/styles/theme.d.ts +2 -0
  100. package/dist/styles/toast.css +44 -0
  101. package/dist/styles/toast.d.mts +2 -0
  102. package/dist/styles/toast.d.ts +2 -0
  103. package/dist/styles/variables.css +184 -0
  104. package/dist/styles/variables.d.mts +2 -0
  105. package/dist/styles/variables.d.ts +2 -0
  106. package/dist/ui/avatar.d.mts +16 -0
  107. package/dist/ui/avatar.d.ts +16 -0
  108. package/dist/ui/avatar.js +23 -0
  109. package/dist/ui/avatar.mjs +2 -0
  110. package/dist/ui/badge.d.mts +14 -0
  111. package/dist/ui/badge.d.ts +14 -0
  112. package/dist/ui/badge.js +16 -0
  113. package/dist/ui/badge.mjs +3 -0
  114. package/dist/ui/button.d.mts +16 -0
  115. package/dist/ui/button.d.ts +16 -0
  116. package/dist/ui/button.js +12 -0
  117. package/dist/ui/button.mjs +3 -0
  118. package/dist/ui/card.d.mts +12 -0
  119. package/dist/ui/card.d.ts +12 -0
  120. package/dist/ui/card.js +36 -0
  121. package/dist/ui/card.mjs +3 -0
  122. package/dist/ui/checkbox.d.mts +11 -0
  123. package/dist/ui/checkbox.d.ts +11 -0
  124. package/dist/ui/checkbox.js +12 -0
  125. package/dist/ui/checkbox.mjs +3 -0
  126. package/dist/ui/collapsible.d.mts +9 -0
  127. package/dist/ui/collapsible.d.ts +9 -0
  128. package/dist/ui/collapsible.js +20 -0
  129. package/dist/ui/collapsible.mjs +3 -0
  130. package/dist/ui/dropdown.d.mts +28 -0
  131. package/dist/ui/dropdown.d.ts +28 -0
  132. package/dist/ui/dropdown.js +68 -0
  133. package/dist/ui/dropdown.mjs +3 -0
  134. package/dist/ui/index.d.mts +41 -0
  135. package/dist/ui/index.d.ts +41 -0
  136. package/dist/ui/index.js +355 -0
  137. package/dist/ui/index.mjs +26 -0
  138. package/dist/ui/input-numbers.d.mts +15 -0
  139. package/dist/ui/input-numbers.d.ts +15 -0
  140. package/dist/ui/input-numbers.js +13 -0
  141. package/dist/ui/input-numbers.mjs +4 -0
  142. package/dist/ui/input.d.mts +22 -0
  143. package/dist/ui/input.d.ts +22 -0
  144. package/dist/ui/input.js +16 -0
  145. package/dist/ui/input.mjs +3 -0
  146. package/dist/ui/modal.d.mts +28 -0
  147. package/dist/ui/modal.d.ts +28 -0
  148. package/dist/ui/modal.js +48 -0
  149. package/dist/ui/modal.mjs +3 -0
  150. package/dist/ui/popover.d.mts +10 -0
  151. package/dist/ui/popover.d.ts +10 -0
  152. package/dist/ui/popover.js +23 -0
  153. package/dist/ui/popover.mjs +2 -0
  154. package/dist/ui/radio-group.d.mts +8 -0
  155. package/dist/ui/radio-group.d.ts +8 -0
  156. package/dist/ui/radio-group.js +16 -0
  157. package/dist/ui/radio-group.mjs +3 -0
  158. package/dist/ui/select.d.mts +28 -0
  159. package/dist/{types/ui → ui}/select.d.ts +18 -14
  160. package/dist/ui/select.js +48 -0
  161. package/dist/ui/select.mjs +3 -0
  162. package/dist/ui/slider.d.mts +10 -0
  163. package/dist/ui/slider.d.ts +10 -0
  164. package/dist/ui/slider.js +12 -0
  165. package/dist/ui/slider.mjs +3 -0
  166. package/dist/ui/switch.d.mts +7 -0
  167. package/dist/ui/switch.d.ts +7 -0
  168. package/dist/ui/switch.js +12 -0
  169. package/dist/ui/switch.mjs +3 -0
  170. package/dist/ui/tabs.d.mts +16 -0
  171. package/dist/ui/tabs.d.ts +16 -0
  172. package/dist/ui/tabs.js +25 -0
  173. package/dist/ui/tabs.mjs +4 -0
  174. package/dist/ui/textarea.d.mts +16 -0
  175. package/dist/ui/textarea.d.ts +16 -0
  176. package/dist/ui/textarea.js +12 -0
  177. package/dist/ui/textarea.mjs +3 -0
  178. package/dist/ui/theme-context.d.mts +17 -0
  179. package/dist/{types/ui → ui}/theme-context.d.ts +5 -3
  180. package/dist/ui/theme-context.js +14 -0
  181. package/dist/ui/theme-context.mjs +1 -0
  182. package/dist/ui/toast.d.mts +7 -0
  183. package/dist/ui/toast.d.ts +7 -0
  184. package/dist/ui/toast.js +14 -0
  185. package/dist/ui/toast.mjs +1 -0
  186. package/dist/ui/toggle-group.d.mts +12 -0
  187. package/dist/ui/toggle-group.d.ts +12 -0
  188. package/dist/ui/toggle-group.js +17 -0
  189. package/dist/ui/toggle-group.mjs +4 -0
  190. package/dist/ui/toggle.d.mts +13 -0
  191. package/dist/ui/toggle.d.ts +13 -0
  192. package/dist/ui/toggle.js +16 -0
  193. package/dist/ui/toggle.mjs +3 -0
  194. package/dist/ui/tooltip.d.mts +10 -0
  195. package/dist/ui/tooltip.d.ts +10 -0
  196. package/dist/ui/tooltip.js +23 -0
  197. package/dist/ui/tooltip.mjs +2 -0
  198. package/dist/utils/cn.d.mts +5 -0
  199. package/dist/utils/cn.d.ts +5 -0
  200. package/dist/utils/cn.js +10 -0
  201. package/dist/utils/cn.mjs +1 -0
  202. package/dist/utils/index.d.mts +2 -0
  203. package/dist/utils/index.d.ts +2 -0
  204. package/dist/utils/index.js +11 -0
  205. package/dist/utils/index.mjs +2 -0
  206. package/package.json +48 -27
  207. package/dist/index.umd.js +0 -74
  208. package/dist/types/index.d.ts +0 -4
  209. package/dist/types/lib/utils.d.ts +0 -2
  210. package/dist/types/ui/button.d.ts +0 -13
  211. package/dist/types/ui/input.d.ts +0 -19
  212. package/dist/vuer-uikit.css +0 -1
@@ -0,0 +1,111 @@
1
+ import { cn } from './chunk-HW6SLBO3.mjs';
2
+ import { TabsCursorProvider, useTabsCursor } from './chunk-FYEZTS4S.mjs';
3
+ import * as TabsPrimitive from '@radix-ui/react-tabs';
4
+ import { cva } from 'class-variance-authority';
5
+ import { createContext, useContext } from 'react';
6
+ import { jsx } from 'react/jsx-runtime';
7
+
8
+ var TabsContext = createContext(void 0);
9
+ var useTabsContext = () => {
10
+ const context = useContext(TabsContext);
11
+ if (!context) {
12
+ throw new Error("Tabs components must be used within a Tabs component");
13
+ }
14
+ return context;
15
+ };
16
+ function Tabs({ className, size = "base", ...props }) {
17
+ return /* @__PURE__ */ jsx(TabsCursorProvider, { children: /* @__PURE__ */ jsx(TabsContext.Provider, { value: { size }, children: /* @__PURE__ */ jsx(
18
+ TabsPrimitive.Root,
19
+ {
20
+ "data-slot": "tabs",
21
+ className: cn("flex w-full flex-col gap-2", className),
22
+ ...props
23
+ }
24
+ ) }) });
25
+ }
26
+ var tabsListVariants = cva(["inline-flex", "items-center", "justify-center"], {
27
+ variants: {
28
+ size: {
29
+ sm: "p-0.5 gap-0.5",
30
+ base: "p-1 gap-1",
31
+ lg: "p-1.5 gap-1.5"
32
+ }
33
+ },
34
+ defaultVariants: {
35
+ size: "base"
36
+ }
37
+ });
38
+ function TabsList({ className, ...props }) {
39
+ const { setCursorTarget } = useTabsCursor();
40
+ const { size } = useTabsContext();
41
+ return /* @__PURE__ */ jsx(
42
+ TabsPrimitive.List,
43
+ {
44
+ onMouseLeave: () => setCursorTarget(null),
45
+ "data-slot": "tabs-list",
46
+ className: cn(tabsListVariants({ size }), "justify-start", className),
47
+ ...props
48
+ }
49
+ );
50
+ }
51
+ var tabsTriggerVariants = cva(
52
+ [
53
+ "inline-flex",
54
+ "items-center",
55
+ "justify-center",
56
+ "whitespace-nowrap",
57
+ "text-sm",
58
+ "font-medium",
59
+ "transition-all",
60
+ "disabled:pointer-events-none",
61
+ "disabled:bg-bg-tertiary",
62
+ "[&_svg]:pointer-events-none",
63
+ "[&_svg:not([class*='size-'])]:size-xl",
64
+ "shrink-0",
65
+ "[&_svg]:shrink-0",
66
+ "outline-none",
67
+ "focus-visible:border-ring",
68
+ "focus-visible:ring-ring/50",
69
+ "focus-visible:ring-[3px]",
70
+ "text-text-secondary",
71
+ "data-[state=active]:text-text-highlight",
72
+ "data-[state=active]:bg-bg-secondary"
73
+ ],
74
+ {
75
+ variants: {
76
+ size: {
77
+ sm: "text-[11px] h-[22px] gap-xs px-md py-xs rounded-sm",
78
+ base: "text-[12px] h-[28px] gap-sm px-lg py-sm rounded-md",
79
+ lg: "text-[14px] h-[32px] gap-md px-xl py-sm rounded-md"
80
+ }
81
+ },
82
+ defaultVariants: {
83
+ size: "base"
84
+ }
85
+ }
86
+ );
87
+ function TabsTrigger({ className, ...props }) {
88
+ const { setCursorTarget } = useTabsCursor();
89
+ const { size } = useTabsContext();
90
+ return /* @__PURE__ */ jsx(
91
+ TabsPrimitive.Trigger,
92
+ {
93
+ onMouseEnter: (e) => setCursorTarget(e.currentTarget),
94
+ "data-slot": "tabs-trigger",
95
+ className: cn(tabsTriggerVariants({ size }), className),
96
+ ...props
97
+ }
98
+ );
99
+ }
100
+ function TabsContent({ className, ...props }) {
101
+ return /* @__PURE__ */ jsx(
102
+ TabsPrimitive.Content,
103
+ {
104
+ "data-slot": "tabs-content",
105
+ className: cn("mt-2 flex-1 outline-none", className),
106
+ ...props
107
+ }
108
+ );
109
+ }
110
+
111
+ export { Tabs, TabsContent, TabsList, TabsTrigger };
@@ -0,0 +1,9 @@
1
+ import { clsx } from 'clsx';
2
+ import { twMerge } from 'tailwind-merge';
3
+
4
+ // src/utils/cn.ts
5
+ function cn(...inputs) {
6
+ return twMerge(clsx(inputs));
7
+ }
8
+
9
+ export { cn };
@@ -0,0 +1,163 @@
1
+ 'use strict';
2
+
3
+ var chunkZYBSCTBR_js = require('./chunk-ZYBSCTBR.js');
4
+ var chunkUWO6RBCE_js = require('./chunk-UWO6RBCE.js');
5
+ var react$1 = require('@use-gesture/react');
6
+ var react = require('react');
7
+ var jsxRuntime = require('react/jsx-runtime');
8
+
9
+ var getHoverElementAndIndex = (element, inputs) => {
10
+ if (!element) return null;
11
+ const container = element == null ? void 0 : element.closest("[data-input]");
12
+ const currentInput = container == null ? void 0 : container.querySelector("input");
13
+ if (!currentInput) return null;
14
+ return Array.from(inputs.values()).indexOf(currentInput);
15
+ };
16
+ var changeElementsHoverState = (inputs, range, changed) => {
17
+ const [first, last] = range;
18
+ Array.from(inputs.values()).forEach((input, i) => {
19
+ const container = input == null ? void 0 : input.closest("[data-input]");
20
+ if (first === null || last === null) {
21
+ container == null ? void 0 : container.setAttribute("data-hover", "none");
22
+ } else if (i >= Math.min(first, last) && i <= Math.max(first, last)) {
23
+ container == null ? void 0 : container.setAttribute("data-hover", changed !== "none" ? changed : "down");
24
+ } else {
25
+ container == null ? void 0 : container.setAttribute("data-hover", "none");
26
+ }
27
+ });
28
+ };
29
+ var InputNumbers = react.forwardRef(function InputNumbers2({ size, value, onValuesChange, prefix, step = 0.1 }, ref) {
30
+ const inputs = react.useRef(/* @__PURE__ */ new Map());
31
+ const selectRange = react.useRef([null, null]);
32
+ const inputChange = react.useRef(false);
33
+ const stopClick = react.useCallback(() => {
34
+ const stopClick2 = (e) => {
35
+ e.stopPropagation();
36
+ e.preventDefault();
37
+ document.removeEventListener("click", stopClick2, true);
38
+ };
39
+ document.addEventListener("click", stopClick2, true);
40
+ }, []);
41
+ const bind = react$1.useGesture({
42
+ onDrag: ({ delta: [dx], event, initial, distance: [, oy], xy, memo = 0 }) => {
43
+ event.stopPropagation();
44
+ event.preventDefault();
45
+ if (selectRange.current[0] === null) {
46
+ selectRange.current[0] = getHoverElementAndIndex(
47
+ document.elementFromPoint(...initial),
48
+ inputs.current
49
+ );
50
+ }
51
+ let newMX = memo + dx / 2;
52
+ if (Math.abs(newMX) >= (inputChange.current ? 1 : 5)) {
53
+ const multiplyStep = event.shiftKey ? 5 : event.altKey ? 1 / 5 : 1;
54
+ const newValue = value.map((v, i) => {
55
+ const [first, last] = selectRange.current;
56
+ if (first === null || last === null) {
57
+ return v;
58
+ } else if (i <= Math.max(first, last) && i >= Math.min(first, last)) {
59
+ return Number(((v || 0) + Math.floor(newMX) * step * multiplyStep).toPrecision(6));
60
+ } else {
61
+ return v;
62
+ }
63
+ });
64
+ onValuesChange == null ? void 0 : onValuesChange(newValue);
65
+ newMX = 0;
66
+ inputChange.current = true;
67
+ changeElementsHoverState(inputs.current, selectRange.current, "x");
68
+ stopClick();
69
+ }
70
+ if (!inputChange.current) {
71
+ const currentElement = document.elementFromPoint(...xy);
72
+ const currentIndex = getHoverElementAndIndex(currentElement, inputs.current);
73
+ selectRange.current[1] = currentIndex ?? selectRange.current[1];
74
+ changeElementsHoverState(inputs.current, selectRange.current, oy !== 0 ? "y" : "none");
75
+ stopClick();
76
+ }
77
+ return newMX;
78
+ },
79
+ onDragEnd: () => {
80
+ selectRange.current = [null, null];
81
+ inputChange.current = false;
82
+ changeElementsHoverState(inputs.current, selectRange.current, "none");
83
+ }
84
+ });
85
+ const valueChangeHandler = react.useCallback(
86
+ (index) => {
87
+ return (e) => {
88
+ const inputValue = e.target.value;
89
+ if (inputValue === "" || !isNaN(Number(inputValue))) {
90
+ const newValue = value.map((v, i) => {
91
+ if (inputValue === "") {
92
+ return "";
93
+ }
94
+ return i === index ? Number(inputValue) : v;
95
+ });
96
+ onValuesChange == null ? void 0 : onValuesChange(newValue);
97
+ }
98
+ };
99
+ },
100
+ [onValuesChange, value]
101
+ );
102
+ if ((value == null ? void 0 : value.length) === 0) {
103
+ throw new Error("`value` cannot be an empty array");
104
+ }
105
+ return /* @__PURE__ */ jsxRuntime.jsx(
106
+ "div",
107
+ {
108
+ ref,
109
+ ...bind(),
110
+ className: chunkUWO6RBCE_js.cn("gap-xs flex cursor-crosshair touch-none select-none flex-col"),
111
+ children: value.map((item, index) => /* @__PURE__ */ jsxRuntime.jsx(
112
+ chunkZYBSCTBR_js.InputRoot,
113
+ {
114
+ ref: (r) => {
115
+ inputs.current.set(index.toString(), r);
116
+ return () => {
117
+ inputs.current.delete(index.toString());
118
+ };
119
+ },
120
+ size,
121
+ value: item,
122
+ onClick: () => {
123
+ var _a;
124
+ (_a = inputs.current.get(index.toString())) == null ? void 0 : _a.focus();
125
+ },
126
+ onChange: valueChangeHandler(index),
127
+ "data-hover": "none",
128
+ className: chunkUWO6RBCE_js.cn([
129
+ "group/number-input",
130
+ "cursor-crosshair",
131
+ "data-[hover=down]:bg-bg-tertiary",
132
+ "data-[hover=x]:bg-bg-tertiary",
133
+ "data-[hover=y]:bg-bg-tertiary",
134
+ "data-[hover=down]:cursor-move",
135
+ "data-[hover=x]:cursor-col-resize",
136
+ "data-[hover=y]:cursor-row-resize"
137
+ ]),
138
+ inputClassName: chunkUWO6RBCE_js.cn([
139
+ "cursor-crosshair",
140
+ "group-data-[hover=down]/number-input:cursor-move",
141
+ "group-data-[hover=x]/number-input:cursor-col-resize",
142
+ "group-data-[hover=y]/number-input:cursor-row-resize"
143
+ ]),
144
+ children: /* @__PURE__ */ jsxRuntime.jsx(
145
+ chunkZYBSCTBR_js.InputSlot,
146
+ {
147
+ className: chunkUWO6RBCE_js.cn(
148
+ "cursor-crosshair",
149
+ "group-data-[hover=down]/number-input:cursor-move",
150
+ "group-data-[hover=x]/number-input:cursor-col-resize",
151
+ "group-data-[hover=y]/number-input:cursor-row-resize"
152
+ ),
153
+ children: prefix == null ? void 0 : prefix[index]
154
+ }
155
+ )
156
+ },
157
+ index
158
+ ))
159
+ }
160
+ );
161
+ });
162
+
163
+ exports.InputNumbers = InputNumbers;
@@ -0,0 +1,94 @@
1
+ import { cn } from './chunk-HW6SLBO3.mjs';
2
+ import { jsx } from 'react/jsx-runtime';
3
+
4
+ function Card({ className, ...props }) {
5
+ return /* @__PURE__ */ jsx(
6
+ "div",
7
+ {
8
+ "data-slot": "card",
9
+ className: cn(
10
+ "flex",
11
+ "flex-col",
12
+ "gap-lg",
13
+ "w-[300px]",
14
+ "m-h-[244px]",
15
+ "rounded-lg",
16
+ "p-lg",
17
+ "bg-bg-primary",
18
+ "border-text-secondary",
19
+ "shadow-[0_4px_16px_0_var(--color-shadow-secondary)]",
20
+ className
21
+ ),
22
+ ...props
23
+ }
24
+ );
25
+ }
26
+ function CardHeader({ className, ...props }) {
27
+ return /* @__PURE__ */ jsx(
28
+ "div",
29
+ {
30
+ "data-slot": "card-header",
31
+ className: cn("flex", "flex-row", "items-center", "justify-between", "gap-lg", className),
32
+ ...props
33
+ }
34
+ );
35
+ }
36
+ function CardTitle({ className, ...props }) {
37
+ return /* @__PURE__ */ jsx(
38
+ "div",
39
+ {
40
+ "data-slot": "card-title",
41
+ className: cn(
42
+ "text-text-highlight",
43
+ "text-[14px]",
44
+ "leading-[20px]",
45
+ "font-medium",
46
+ "vertical-align-middle",
47
+ className
48
+ ),
49
+ ...props
50
+ }
51
+ );
52
+ }
53
+ function CardDescription({ className, ...props }) {
54
+ return /* @__PURE__ */ jsx(
55
+ "div",
56
+ {
57
+ "data-slot": "card-description",
58
+ className: cn("text-muted-foreground text-sm", className),
59
+ ...props
60
+ }
61
+ );
62
+ }
63
+ function CardAction({ className, ...props }) {
64
+ return /* @__PURE__ */ jsx(
65
+ "div",
66
+ {
67
+ "data-slot": "card-action",
68
+ className: cn(
69
+ "text-text-secondary",
70
+ "text-[11px]",
71
+ "leading-[14px]",
72
+ "font-medium",
73
+ "vertical-align-middle",
74
+ className
75
+ ),
76
+ ...props
77
+ }
78
+ );
79
+ }
80
+ function CardContent({ className, ...props }) {
81
+ return /* @__PURE__ */ jsx("div", { "data-slot": "card-content", className: cn("", className), ...props });
82
+ }
83
+ function CardFooter({ className, ...props }) {
84
+ return /* @__PURE__ */ jsx(
85
+ "div",
86
+ {
87
+ "data-slot": "card-footer",
88
+ className: cn("[.border-t]:pt-6 flex items-center", className),
89
+ ...props
90
+ }
91
+ );
92
+ }
93
+
94
+ export { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle };
@@ -0,0 +1,93 @@
1
+ 'use strict';
2
+
3
+ var framerMotion = require('framer-motion');
4
+ var react = require('react');
5
+ var reactDom = require('react-dom');
6
+ var jsxRuntime = require('react/jsx-runtime');
7
+
8
+ // src/highlight-cursor/tabs-cursor-context.tsx
9
+ var TabsCursorContext = react.createContext(null);
10
+ var TabsCursorProvider = ({
11
+ children,
12
+ className,
13
+ ...props
14
+ }) => {
15
+ const [cursorTarget, setCursorTarget] = react.useState(null);
16
+ const [targetRect, setTargetRect] = react.useState(null);
17
+ const [mousePosition, setMousePosition] = react.useState({ x: 0, y: 0 });
18
+ const [isMouseInside, setIsMouseInside] = react.useState(false);
19
+ react.useEffect(() => {
20
+ const handleMouseMove = (e) => {
21
+ setMousePosition({ x: e.clientX, y: e.clientY });
22
+ };
23
+ document.addEventListener("mousemove", handleMouseMove);
24
+ return () => document.removeEventListener("mousemove", handleMouseMove);
25
+ }, []);
26
+ react.useEffect(() => {
27
+ if (cursorTarget) {
28
+ setTargetRect(cursorTarget.getBoundingClientRect());
29
+ } else {
30
+ setTargetRect(null);
31
+ }
32
+ }, [cursorTarget]);
33
+ const handleMouseEnter = react.useCallback(() => {
34
+ setIsMouseInside(true);
35
+ }, []);
36
+ const handleMouseLeave = react.useCallback(() => {
37
+ setIsMouseInside(false);
38
+ setCursorTarget(null);
39
+ }, []);
40
+ const contextValue = { setCursorTarget };
41
+ return /* @__PURE__ */ jsxRuntime.jsx(
42
+ "div",
43
+ {
44
+ ...props,
45
+ className,
46
+ style: {
47
+ cursor: isMouseInside && !cursorTarget ? "none" : "auto",
48
+ ...props.style
49
+ },
50
+ onMouseEnter: handleMouseEnter,
51
+ onMouseLeave: handleMouseLeave,
52
+ children: /* @__PURE__ */ jsxRuntime.jsxs(TabsCursorContext.Provider, { value: contextValue, children: [
53
+ children,
54
+ isMouseInside && reactDom.createPortal(
55
+ /* @__PURE__ */ jsxRuntime.jsx(
56
+ framerMotion.motion.div,
57
+ {
58
+ className: "pointer-events-none",
59
+ initial: false,
60
+ animate: {
61
+ x: targetRect ? targetRect.left : mousePosition.x - 8,
62
+ y: targetRect ? targetRect.top : mousePosition.y - 8,
63
+ width: targetRect ? targetRect.width : 16,
64
+ height: targetRect ? targetRect.height : 16,
65
+ borderRadius: targetRect && cursorTarget ? getComputedStyle(cursorTarget).borderRadius : "50%"
66
+ },
67
+ transition: { type: "spring", stiffness: 1e3, damping: 60, mass: 1 },
68
+ style: {
69
+ position: "fixed",
70
+ top: 0,
71
+ left: 0,
72
+ backgroundColor: "var(--bg-secondary)",
73
+ zIndex: 9999
74
+ }
75
+ }
76
+ ),
77
+ document.body
78
+ )
79
+ ] })
80
+ }
81
+ );
82
+ };
83
+ var useTabsCursor = () => {
84
+ const context = react.useContext(TabsCursorContext);
85
+ if (!context) {
86
+ return { setCursorTarget: () => {
87
+ } };
88
+ }
89
+ return context;
90
+ };
91
+
92
+ exports.TabsCursorProvider = TabsCursorProvider;
93
+ exports.useTabsCursor = useTabsCursor;
@@ -0,0 +1,49 @@
1
+ import { cn } from './chunk-HW6SLBO3.mjs';
2
+ import { cva } from 'class-variance-authority';
3
+ import { jsx } from 'react/jsx-runtime';
4
+
5
+ var textareaVariants = cva(
6
+ [
7
+ "bg-bg-secondary",
8
+ "disabled:bg-bg-tertiary",
9
+ "disabled:cursor-not-allowed",
10
+ "outline",
11
+ "outline-transparent",
12
+ "-outline-offset-1",
13
+ "placehoder:text-muted-foreground",
14
+ "flex",
15
+ "min-h-16",
16
+ "w-full",
17
+ "px-3",
18
+ "py-2"
19
+ ],
20
+ {
21
+ variants: {
22
+ state: {
23
+ default: ["hover:outline-text-tertiary", "focus:outline-brand-primary"],
24
+ error: ["outline-danger-primary"]
25
+ },
26
+ size: {
27
+ sm: ["text-sm", "rounded-uk-sm"],
28
+ base: ["text-md", "rounded-uk-md"],
29
+ lg: ["text-xl", "rounded-uk-md"]
30
+ }
31
+ },
32
+ defaultVariants: {
33
+ state: "default",
34
+ size: "base"
35
+ }
36
+ }
37
+ );
38
+ function Textarea({ className, state, size, ...props }) {
39
+ return /* @__PURE__ */ jsx(
40
+ "textarea",
41
+ {
42
+ className: cn(textareaVariants({ className, state, size })),
43
+ "data-slot": "textarea",
44
+ ...props
45
+ }
46
+ );
47
+ }
48
+
49
+ export { Textarea };
@@ -0,0 +1,136 @@
1
+ 'use strict';
2
+
3
+ var chunkUWO6RBCE_js = require('./chunk-UWO6RBCE.js');
4
+ var chunkJIXJTLEO_js = require('./chunk-JIXJTLEO.js');
5
+ var TabsPrimitive = require('@radix-ui/react-tabs');
6
+ var classVarianceAuthority = require('class-variance-authority');
7
+ var react = require('react');
8
+ var jsxRuntime = require('react/jsx-runtime');
9
+
10
+ function _interopNamespace(e) {
11
+ if (e && e.__esModule) return e;
12
+ var n = Object.create(null);
13
+ if (e) {
14
+ Object.keys(e).forEach(function (k) {
15
+ if (k !== 'default') {
16
+ var d = Object.getOwnPropertyDescriptor(e, k);
17
+ Object.defineProperty(n, k, d.get ? d : {
18
+ enumerable: true,
19
+ get: function () { return e[k]; }
20
+ });
21
+ }
22
+ });
23
+ }
24
+ n.default = e;
25
+ return Object.freeze(n);
26
+ }
27
+
28
+ var TabsPrimitive__namespace = /*#__PURE__*/_interopNamespace(TabsPrimitive);
29
+
30
+ var TabsContext = react.createContext(void 0);
31
+ var useTabsContext = () => {
32
+ const context = react.useContext(TabsContext);
33
+ if (!context) {
34
+ throw new Error("Tabs components must be used within a Tabs component");
35
+ }
36
+ return context;
37
+ };
38
+ function Tabs({ className, size = "base", ...props }) {
39
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkJIXJTLEO_js.TabsCursorProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(TabsContext.Provider, { value: { size }, children: /* @__PURE__ */ jsxRuntime.jsx(
40
+ TabsPrimitive__namespace.Root,
41
+ {
42
+ "data-slot": "tabs",
43
+ className: chunkUWO6RBCE_js.cn("flex w-full flex-col gap-2", className),
44
+ ...props
45
+ }
46
+ ) }) });
47
+ }
48
+ var tabsListVariants = classVarianceAuthority.cva(["inline-flex", "items-center", "justify-center"], {
49
+ variants: {
50
+ size: {
51
+ sm: "p-0.5 gap-0.5",
52
+ base: "p-1 gap-1",
53
+ lg: "p-1.5 gap-1.5"
54
+ }
55
+ },
56
+ defaultVariants: {
57
+ size: "base"
58
+ }
59
+ });
60
+ function TabsList({ className, ...props }) {
61
+ const { setCursorTarget } = chunkJIXJTLEO_js.useTabsCursor();
62
+ const { size } = useTabsContext();
63
+ return /* @__PURE__ */ jsxRuntime.jsx(
64
+ TabsPrimitive__namespace.List,
65
+ {
66
+ onMouseLeave: () => setCursorTarget(null),
67
+ "data-slot": "tabs-list",
68
+ className: chunkUWO6RBCE_js.cn(tabsListVariants({ size }), "justify-start", className),
69
+ ...props
70
+ }
71
+ );
72
+ }
73
+ var tabsTriggerVariants = classVarianceAuthority.cva(
74
+ [
75
+ "inline-flex",
76
+ "items-center",
77
+ "justify-center",
78
+ "whitespace-nowrap",
79
+ "text-sm",
80
+ "font-medium",
81
+ "transition-all",
82
+ "disabled:pointer-events-none",
83
+ "disabled:bg-bg-tertiary",
84
+ "[&_svg]:pointer-events-none",
85
+ "[&_svg:not([class*='size-'])]:size-xl",
86
+ "shrink-0",
87
+ "[&_svg]:shrink-0",
88
+ "outline-none",
89
+ "focus-visible:border-ring",
90
+ "focus-visible:ring-ring/50",
91
+ "focus-visible:ring-[3px]",
92
+ "text-text-secondary",
93
+ "data-[state=active]:text-text-highlight",
94
+ "data-[state=active]:bg-bg-secondary"
95
+ ],
96
+ {
97
+ variants: {
98
+ size: {
99
+ sm: "text-[11px] h-[22px] gap-xs px-md py-xs rounded-sm",
100
+ base: "text-[12px] h-[28px] gap-sm px-lg py-sm rounded-md",
101
+ lg: "text-[14px] h-[32px] gap-md px-xl py-sm rounded-md"
102
+ }
103
+ },
104
+ defaultVariants: {
105
+ size: "base"
106
+ }
107
+ }
108
+ );
109
+ function TabsTrigger({ className, ...props }) {
110
+ const { setCursorTarget } = chunkJIXJTLEO_js.useTabsCursor();
111
+ const { size } = useTabsContext();
112
+ return /* @__PURE__ */ jsxRuntime.jsx(
113
+ TabsPrimitive__namespace.Trigger,
114
+ {
115
+ onMouseEnter: (e) => setCursorTarget(e.currentTarget),
116
+ "data-slot": "tabs-trigger",
117
+ className: chunkUWO6RBCE_js.cn(tabsTriggerVariants({ size }), className),
118
+ ...props
119
+ }
120
+ );
121
+ }
122
+ function TabsContent({ className, ...props }) {
123
+ return /* @__PURE__ */ jsxRuntime.jsx(
124
+ TabsPrimitive__namespace.Content,
125
+ {
126
+ "data-slot": "tabs-content",
127
+ className: chunkUWO6RBCE_js.cn("mt-2 flex-1 outline-none", className),
128
+ ...props
129
+ }
130
+ );
131
+ }
132
+
133
+ exports.Tabs = Tabs;
134
+ exports.TabsContent = TabsContent;
135
+ exports.TabsList = TabsList;
136
+ exports.TabsTrigger = TabsTrigger;