@playfast/reform-better-hub-ui-primitives 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 (106) hide show
  1. package/package.json +2 -2
  2. package/src/components/agent-icon.tsx +21 -0
  3. package/src/components/badge.tsx +54 -0
  4. package/src/components/button.tsx +72 -0
  5. package/src/components/combobox.tsx +290 -0
  6. package/src/components/command.tsx +170 -0
  7. package/src/components/dialog.tsx +129 -0
  8. package/src/components/dropdown-menu.tsx +149 -0
  9. package/src/components/github-background.tsx +280 -0
  10. package/src/components/halftone-background.tsx +289 -0
  11. package/src/components/input-group.tsx +175 -0
  12. package/src/components/input.tsx +25 -0
  13. package/src/components/live-duration.tsx +70 -0
  14. package/src/components/logo.tsx +20 -0
  15. package/src/components/popover.tsx +82 -0
  16. package/src/components/resize-handle.tsx +86 -0
  17. package/src/components/sheet.tsx +147 -0
  18. package/src/components/textarea.tsx +21 -0
  19. package/src/components/time-ago.tsx +57 -0
  20. package/src/components/tooltip.tsx +64 -0
  21. package/src/foundation/cn.ts +8 -0
  22. package/src/foundation/styles.css +156 -0
  23. package/{dist/index.js → src/index.tsx} +2 -1
  24. package/dist/components/agent-icon.d.ts +0 -5
  25. package/dist/components/agent-icon.d.ts.map +0 -1
  26. package/dist/components/agent-icon.js +0 -5
  27. package/dist/components/agent-icon.js.map +0 -1
  28. package/dist/components/badge.d.ts +0 -11
  29. package/dist/components/badge.d.ts.map +0 -1
  30. package/dist/components/badge.js +0 -28
  31. package/dist/components/badge.js.map +0 -1
  32. package/dist/components/button.d.ts +0 -12
  33. package/dist/components/button.d.ts.map +0 -1
  34. package/dist/components/button.js +0 -34
  35. package/dist/components/button.js.map +0 -1
  36. package/dist/components/combobox.d.ts +0 -25
  37. package/dist/components/combobox.d.ts.map +0 -1
  38. package/dist/components/combobox.js +0 -60
  39. package/dist/components/combobox.js.map +0 -1
  40. package/dist/components/command.d.ts +0 -19
  41. package/dist/components/command.d.ts.map +0 -1
  42. package/dist/components/command.js +0 -36
  43. package/dist/components/command.js.map +0 -1
  44. package/dist/components/dialog.d.ts +0 -16
  45. package/dist/components/dialog.d.ts.map +0 -1
  46. package/dist/components/dialog.js +0 -38
  47. package/dist/components/dialog.js.map +0 -1
  48. package/dist/components/dropdown-menu.d.ts +0 -17
  49. package/dist/components/dropdown-menu.d.ts.map +0 -1
  50. package/dist/components/dropdown-menu.js +0 -35
  51. package/dist/components/dropdown-menu.js.map +0 -1
  52. package/dist/components/github-background.d.ts +0 -3
  53. package/dist/components/github-background.d.ts.map +0 -1
  54. package/dist/components/github-background.js +0 -51
  55. package/dist/components/github-background.js.map +0 -1
  56. package/dist/components/halftone-background.d.ts +0 -3
  57. package/dist/components/halftone-background.d.ts.map +0 -1
  58. package/dist/components/halftone-background.js +0 -248
  59. package/dist/components/halftone-background.js.map +0 -1
  60. package/dist/components/input-group.d.ts +0 -19
  61. package/dist/components/input-group.d.ts.map +0 -1
  62. package/dist/components/input-group.js +0 -63
  63. package/dist/components/input-group.js.map +0 -1
  64. package/dist/components/input.d.ts +0 -5
  65. package/dist/components/input.d.ts.map +0 -1
  66. package/dist/components/input.js +0 -7
  67. package/dist/components/input.js.map +0 -1
  68. package/dist/components/live-duration.d.ts +0 -9
  69. package/dist/components/live-duration.d.ts.map +0 -1
  70. package/dist/components/live-duration.js +0 -55
  71. package/dist/components/live-duration.js.map +0 -1
  72. package/dist/components/logo.d.ts +0 -8
  73. package/dist/components/logo.d.ts.map +0 -1
  74. package/dist/components/logo.js +0 -9
  75. package/dist/components/logo.js.map +0 -1
  76. package/dist/components/popover.d.ts +0 -12
  77. package/dist/components/popover.d.ts.map +0 -1
  78. package/dist/components/popover.js +0 -26
  79. package/dist/components/popover.js.map +0 -1
  80. package/dist/components/resize-handle.d.ts +0 -15
  81. package/dist/components/resize-handle.d.ts.map +0 -1
  82. package/dist/components/resize-handle.js +0 -36
  83. package/dist/components/resize-handle.js.map +0 -1
  84. package/dist/components/sheet.d.ts +0 -18
  85. package/dist/components/sheet.d.ts.map +0 -1
  86. package/dist/components/sheet.js +0 -44
  87. package/dist/components/sheet.js.map +0 -1
  88. package/dist/components/textarea.d.ts +0 -5
  89. package/dist/components/textarea.d.ts.map +0 -1
  90. package/dist/components/textarea.js +0 -7
  91. package/dist/components/textarea.js.map +0 -1
  92. package/dist/components/time-ago.d.ts +0 -8
  93. package/dist/components/time-ago.d.ts.map +0 -1
  94. package/dist/components/time-ago.js +0 -40
  95. package/dist/components/time-ago.js.map +0 -1
  96. package/dist/components/tooltip.d.ts +0 -10
  97. package/dist/components/tooltip.d.ts.map +0 -1
  98. package/dist/components/tooltip.js +0 -25
  99. package/dist/components/tooltip.js.map +0 -1
  100. package/dist/foundation/cn.d.ts +0 -7
  101. package/dist/foundation/cn.d.ts.map +0 -1
  102. package/dist/foundation/cn.js +0 -8
  103. package/dist/foundation/cn.js.map +0 -1
  104. package/dist/index.d.ts +0 -21
  105. package/dist/index.d.ts.map +0 -1
  106. package/dist/index.js.map +0 -1
@@ -1,248 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { useEffect, useRef } from "react";
3
- const VERTEX_SHADER = `
4
- attribute vec2 a_position;
5
- void main() {
6
- gl_Position = vec4(a_position, 0.0, 1.0);
7
- }`;
8
- const FRAGMENT_SHADER = `
9
- precision highp float;
10
-
11
- uniform float u_time;
12
- uniform vec2 u_resolution;
13
- uniform vec2 u_mouse;
14
- uniform float u_click;
15
- uniform vec2 u_clickPos;
16
-
17
- vec3 mod289(vec3 x) { return x - floor(x * (1.0/289.0)) * 289.0; }
18
- vec2 mod289(vec2 x) { return x - floor(x * (1.0/289.0)) * 289.0; }
19
- vec3 permute(vec3 x) { return mod289(((x*34.0)+1.0)*x); }
20
-
21
- float snoise(vec2 v) {
22
- const vec4 C = vec4(
23
- 0.211324865405187,
24
- 0.366025403784439,
25
- -0.577350269189626,
26
- 0.024390243902439
27
- );
28
- vec2 i = floor(v + dot(v, C.yy));
29
- vec2 x0 = v - i + dot(i, C.xx);
30
- vec2 i1 = (x0.x > x0.y) ? vec2(1.0, 0.0) : vec2(0.0, 1.0);
31
- vec4 x12 = x0.xyxy + C.xxzz;
32
- x12.xy -= i1;
33
- i = mod289(i);
34
- vec3 p = permute(permute(i.y + vec3(0.0, i1.y, 1.0)) + i.x + vec3(0.0, i1.x, 1.0));
35
- vec3 m = max(0.5 - vec3(dot(x0,x0), dot(x12.xy,x12.xy), dot(x12.zw,x12.zw)), 0.0);
36
- m = m*m;
37
- m = m*m;
38
- vec3 x = 2.0 * fract(p * C.www) - 1.0;
39
- vec3 h = abs(x) - 0.5;
40
- vec3 ox = floor(x + 0.5);
41
- vec3 a0 = x - ox;
42
- m *= 1.79284291400159 - 0.85373472095314 * (a0*a0 + h*h);
43
- vec3 g;
44
- g.x = a0.x * x0.x + h.x * x0.y;
45
- g.yz = a0.yz * x12.xz + h.yz * x12.yw;
46
- return 130.0 * dot(m, g);
47
- }
48
-
49
- float fbm(vec2 p) {
50
- float value = 0.0;
51
- float amp = 0.5;
52
- float freq = 1.0;
53
- for (int i = 0; i < 6; i++) {
54
- value += amp * snoise(p * freq);
55
- freq *= 2.0;
56
- amp *= 0.5;
57
- }
58
- return value;
59
- }
60
-
61
- float hash21(vec2 p) {
62
- p = fract(p * vec2(233.34, 851.73));
63
- p += dot(p, p + 23.45);
64
- return fract(p.x * p.y);
65
- }
66
-
67
- void main() {
68
- vec2 uv = gl_FragCoord.xy / u_resolution.xy;
69
- float aspect = u_resolution.x / u_resolution.y;
70
- float time = u_time;
71
- float t = time * 0.04;
72
-
73
- vec2 ap = vec2(uv.x * aspect, uv.y);
74
-
75
- // ═══ SHARED MOUSE WARP ═══
76
- vec2 scaledP = ap * 2.5;
77
- vec2 mUV = u_mouse;
78
- mUV.x *= aspect;
79
- mUV *= 2.5;
80
- vec2 mDiff = scaledP - mUV;
81
- float mDist = length(mDiff);
82
- vec2 warp = vec2(0.0);
83
- if (u_mouse.x > 0.0 && mDist < 0.5) {
84
- warp = normalize(mDiff) * smoothstep(0.5, 0.0, mDist) * 0.2;
85
- }
86
- if (u_click > 0.01) {
87
- vec2 cUV = u_clickPos;
88
- cUV.x *= aspect;
89
- cUV *= 2.5;
90
- vec2 cD = scaledP - cUV;
91
- float cDist = length(cD);
92
- warp += normalize(cD + 0.001) * sin(cDist * 12.0 - time * 8.0) * u_click * 0.4 * exp(-cDist * 2.0);
93
- }
94
-
95
- // ═══ NOISE LAYER ═══
96
- vec2 np = scaledP + warp;
97
- vec2 q = vec2(fbm(np + t * 0.3), fbm(np + vec2(5.2, 1.3) + t * 0.2));
98
- vec2 r = vec2(
99
- fbm(np + 4.0 * q + vec2(1.7, 9.2) + t * 0.15),
100
- fbm(np + 4.0 * q + vec2(8.3, 2.8) + t * 0.12)
101
- );
102
- float f = fbm(np + 4.0 * r);
103
- float noise = clamp(f*f*f + 0.6*f*f + 0.5*f, 0.0, 1.0) * 0.15;
104
-
105
- // ═══ CONTRIBUTION GRID ═══
106
- vec2 gp = ap;
107
- gp += vec2(snoise(ap * 3.0 + t), snoise(ap * 3.0 + t + 50.0)) * 0.004;
108
- gp += warp * 0.04;
109
- gp += vec2(t * 0.2, t * 0.12);
110
-
111
- float cellTotal = 0.025;
112
- vec2 cellId = floor(gp / cellTotal);
113
- vec2 cellUV = fract(gp / cellTotal);
114
-
115
- float pad = 0.10;
116
- float edge = 0.04;
117
- float inX = smoothstep(pad - edge, pad + edge, cellUV.x)
118
- * (1.0 - smoothstep(1.0 - pad - edge, 1.0 - pad + edge, cellUV.x));
119
- float inY = smoothstep(pad - edge, pad + edge, cellUV.y)
120
- * (1.0 - smoothstep(1.0 - pad - edge, 1.0 - pad + edge, cellUV.y));
121
- float inSquare = inX * inY;
122
-
123
- float hVal = hash21(cellId);
124
- float level = hVal < 0.35 ? 0.0 : (hVal - 0.35) / 0.65;
125
- level *= level;
126
-
127
- vec2 fp = uv - vec2(0.45, 0.55);
128
- float gFade = max(1.0 - smoothstep(0.15, 0.45, length(fp * vec2(1.3, 1.6))), 0.0);
129
-
130
- float gridReveal = smoothstep(0.5, 3.0, time);
131
- float grid = inSquare * level * gFade * gridReveal * 0.10;
132
-
133
- // ═══ COMPOSE ═══
134
- vec2 vc = uv - 0.5;
135
- float vignette = 1.0 - dot(vc, vc) * 0.3;
136
-
137
- float col = noise * vignette + grid;
138
- gl_FragColor = vec4(vec3(col), 1.0);
139
- }`;
140
- export function HalftoneBackground() {
141
- const canvasRef = useRef(null);
142
- const wrapperRef = useRef(null);
143
- const frameRef = useRef(0);
144
- const mouseRef = useRef({ x: -1, y: -1 });
145
- const smoothMouseRef = useRef({ x: -1, y: -1 });
146
- const clickRef = useRef({ strength: 0, x: 0, y: 0 });
147
- useEffect(() => {
148
- const canvas = canvasRef.current;
149
- const wrapper = wrapperRef.current;
150
- if (!canvas || !wrapper)
151
- return;
152
- const gl = canvas.getContext("webgl", {
153
- alpha: false,
154
- antialias: false,
155
- preserveDrawingBuffer: false,
156
- });
157
- if (!gl)
158
- return;
159
- function createShader(type, source) {
160
- const shader = gl.createShader(type);
161
- gl.shaderSource(shader, source);
162
- gl.compileShader(shader);
163
- return shader;
164
- }
165
- const vs = createShader(gl.VERTEX_SHADER, VERTEX_SHADER);
166
- const fs = createShader(gl.FRAGMENT_SHADER, FRAGMENT_SHADER);
167
- const program = gl.createProgram();
168
- gl.attachShader(program, vs);
169
- gl.attachShader(program, fs);
170
- gl.linkProgram(program);
171
- gl.useProgram(program);
172
- const buffer = gl.createBuffer();
173
- gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
174
- gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([-1, -1, 1, -1, -1, 1, -1, 1, 1, -1, 1, 1]), gl.STATIC_DRAW);
175
- const aPosition = gl.getAttribLocation(program, "a_position");
176
- gl.enableVertexAttribArray(aPosition);
177
- gl.vertexAttribPointer(aPosition, 2, gl.FLOAT, false, 0, 0);
178
- const uTime = gl.getUniformLocation(program, "u_time");
179
- const uResolution = gl.getUniformLocation(program, "u_resolution");
180
- const uMouse = gl.getUniformLocation(program, "u_mouse");
181
- const uClick = gl.getUniformLocation(program, "u_click");
182
- const uClickPos = gl.getUniformLocation(program, "u_clickPos");
183
- const startTime = performance.now();
184
- const resize = () => {
185
- const dpr = Math.min(window.devicePixelRatio || 1, 2);
186
- const scale = 0.5 * dpr;
187
- canvas.width = canvas.offsetWidth * scale;
188
- canvas.height = canvas.offsetHeight * scale;
189
- gl.viewport(0, 0, canvas.width, canvas.height);
190
- };
191
- resize();
192
- window.addEventListener("resize", resize);
193
- const onMouseMove = (e) => {
194
- const rect = wrapper.getBoundingClientRect();
195
- mouseRef.current.x = (e.clientX - rect.left) / rect.width;
196
- mouseRef.current.y = 1.0 - (e.clientY - rect.top) / rect.height;
197
- };
198
- const onMouseLeave = () => {
199
- mouseRef.current.x = -1;
200
- mouseRef.current.y = -1;
201
- };
202
- const onClick = (e) => {
203
- const rect = wrapper.getBoundingClientRect();
204
- clickRef.current.x = (e.clientX - rect.left) / rect.width;
205
- clickRef.current.y = 1.0 - (e.clientY - rect.top) / rect.height;
206
- clickRef.current.strength = 1.0;
207
- };
208
- window.addEventListener("mousemove", onMouseMove, { passive: true });
209
- wrapper.addEventListener("mouseleave", onMouseLeave);
210
- wrapper.addEventListener("click", onClick);
211
- const draw = () => {
212
- const elapsed = (performance.now() - startTime) / 1000;
213
- const lerp = 0.08;
214
- const target = mouseRef.current;
215
- const smooth = smoothMouseRef.current;
216
- if (target.x < 0) {
217
- smooth.x += (target.x - smooth.x) * 0.02;
218
- smooth.y += (target.y - smooth.y) * 0.02;
219
- }
220
- else {
221
- smooth.x += (target.x - smooth.x) * lerp;
222
- smooth.y += (target.y - smooth.y) * lerp;
223
- }
224
- clickRef.current.strength *= 0.96;
225
- gl.uniform1f(uTime, elapsed);
226
- gl.uniform2f(uResolution, canvas.width, canvas.height);
227
- gl.uniform2f(uMouse, smooth.x, smooth.y);
228
- gl.uniform1f(uClick, clickRef.current.strength);
229
- gl.uniform2f(uClickPos, clickRef.current.x, clickRef.current.y);
230
- gl.drawArrays(gl.TRIANGLES, 0, 6);
231
- frameRef.current = requestAnimationFrame(draw);
232
- };
233
- frameRef.current = requestAnimationFrame(draw);
234
- return () => {
235
- cancelAnimationFrame(frameRef.current);
236
- window.removeEventListener("resize", resize);
237
- window.removeEventListener("mousemove", onMouseMove);
238
- wrapper.removeEventListener("mouseleave", onMouseLeave);
239
- wrapper.removeEventListener("click", onClick);
240
- gl.deleteProgram(program);
241
- gl.deleteShader(vs);
242
- gl.deleteShader(fs);
243
- gl.deleteBuffer(buffer);
244
- };
245
- }, []);
246
- return (_jsx("div", { ref: wrapperRef, className: "absolute inset-0 overflow-hidden", style: { background: "var(--shader-bg)" }, "aria-hidden": "true", children: _jsx("canvas", { ref: canvasRef, className: "w-full h-full", style: { filter: "var(--shader-filter)" } }) }));
247
- }
248
- //# sourceMappingURL=halftone-background.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"halftone-background.js","sourceRoot":"","sources":["../../src/components/halftone-background.tsx"],"names":[],"mappings":"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"}
@@ -1,19 +0,0 @@
1
- import type * as React from "react";
2
- import type { ComponentProps } from "react";
3
- import { type VariantProps } from "class-variance-authority";
4
- import type { ClassProp } from "class-variance-authority/types";
5
- import { Button } from "./button";
6
- declare function InputGroup({ className, ...props }: ComponentProps<"div">): React.JSX.Element;
7
- declare const inputGroupAddonVariants: (props?: ({
8
- align?: "inline-start" | "inline-end" | "block-start" | "block-end" | null | undefined;
9
- } & ClassProp) | undefined) => string;
10
- declare function InputGroupAddon({ className, align, ...props }: ComponentProps<"div"> & VariantProps<typeof inputGroupAddonVariants>): React.JSX.Element;
11
- declare const inputGroupButtonVariants: (props?: ({
12
- size?: "xs" | "sm" | "icon-xs" | "icon-sm" | null | undefined;
13
- } & ClassProp) | undefined) => string;
14
- declare function InputGroupButton({ className, type, variant, size, ...props }: Omit<ComponentProps<typeof Button>, "size"> & VariantProps<typeof inputGroupButtonVariants>): React.JSX.Element;
15
- declare function InputGroupText({ className, ...props }: ComponentProps<"span">): React.JSX.Element;
16
- declare function InputGroupInput({ className, ...props }: ComponentProps<"input">): React.JSX.Element;
17
- declare function InputGroupTextarea({ className, ...props }: ComponentProps<"textarea">): React.JSX.Element;
18
- export { InputGroup, InputGroupAddon, InputGroupButton, InputGroupText, InputGroupInput, InputGroupTextarea, };
19
- //# sourceMappingURL=input-group.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"input-group.d.ts","sourceRoot":"","sources":["../../src/components/input-group.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAGhE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAIlC,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA0BrF;AAED,QAAA,MAAM,uBAAuB,EAAE,CAC9B,KAAK,CAAC,EACH,CAAC;IACD,KAAK,CAAC,EAAE,cAAc,GAAG,YAAY,GAAG,aAAa,GAAG,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC;CACtF,GAAG,SAAS,CAAC,GACd,SAAS,KACR,MAmBJ,CAAC;AAEF,iBAAS,eAAe,CAAC,EACxB,SAAS,EACT,KAAsB,EACtB,GAAG,KAAK,EACR,EAAE,cAAc,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,OAAO,uBAAuB,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAgB1F;AAED,QAAA,MAAM,wBAAwB,EAAE,CAC/B,KAAK,CAAC,EACH,CAAC;IACD,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,GAAG,SAAS,GAAG,IAAI,GAAG,SAAS,CAAC;CAC7D,GAAG,SAAS,CAAC,GACd,SAAS,KACR,MAYH,CAAC;AAEH,iBAAS,gBAAgB,CAAC,EACzB,SAAS,EACT,IAAe,EACf,OAAiB,EACjB,IAAW,EACX,GAAG,KAAK,EACR,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,EAAE,MAAM,CAAC,GAC7C,YAAY,CAAC,OAAO,wBAAwB,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAUjE;AAED,iBAAS,cAAc,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAU1F;AAED,iBAAS,eAAe,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAW5F;AAED,iBAAS,kBAAkB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAWlG;AAED,OAAO,EACN,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,kBAAkB,GAClB,CAAC"}
@@ -1,63 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { cva } from "class-variance-authority";
3
- import { cn } from "../foundation/cn";
4
- import { Button } from "./button";
5
- import { Input } from "./input";
6
- import { Textarea } from "./textarea";
7
- function InputGroup({ className, ...props }) {
8
- return (_jsx("div", { "data-slot": "input-group", role: "group", className: cn("group/input-group relative flex w-full items-center rounded-md border border-input shadow-xs transition-[color,box-shadow] outline-none dark:bg-input/30", "h-9 min-w-0 has-[>textarea]:h-auto",
9
- // Variants based on alignment.
10
- "has-[>[data-align=inline-start]]:[&>input]:pl-2", "has-[>[data-align=inline-end]]:[&>input]:pr-2", "has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-start]]:[&>input]:pb-3", "has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3",
11
- // Focus state.
12
- "has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-[3px] has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50",
13
- // Error state.
14
- "has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-destructive/20 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40", className), ...props }));
15
- }
16
- const inputGroupAddonVariants = cva("flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4", {
17
- variants: {
18
- align: {
19
- "inline-start": "order-first pl-3 has-[>button]:ml-[-0.45rem] has-[>kbd]:ml-[-0.35rem]",
20
- "inline-end": "order-last pr-3 has-[>button]:mr-[-0.45rem] has-[>kbd]:mr-[-0.35rem]",
21
- "block-start": "order-first w-full justify-start px-3 pt-3 group-has-[>input]/input-group:pt-2.5 [.border-b]:pb-3",
22
- "block-end": "order-last w-full justify-start px-3 pb-3 group-has-[>input]/input-group:pb-2.5 [.border-t]:pt-3",
23
- },
24
- },
25
- defaultVariants: {
26
- align: "inline-start",
27
- },
28
- });
29
- function InputGroupAddon({ className, align = "inline-start", ...props }) {
30
- return (_jsx("div", { role: "group", "data-slot": "input-group-addon", "data-align": align, className: cn(inputGroupAddonVariants({ align }), className), onClick: (e) => {
31
- if (e.target.closest("button")) {
32
- return;
33
- }
34
- e.currentTarget.parentElement?.querySelector("input")?.focus();
35
- }, ...props }));
36
- }
37
- const inputGroupButtonVariants = cva("flex items-center gap-2 text-sm shadow-none", {
38
- variants: {
39
- size: {
40
- xs: "h-6 gap-1 rounded-[calc(var(--radius)-5px)] px-2 has-[>svg]:px-2 [&>svg:not([class*='size-'])]:size-3.5",
41
- sm: "h-8 gap-1.5 rounded-md px-2.5 has-[>svg]:px-2.5",
42
- "icon-xs": "size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0",
43
- "icon-sm": "size-8 p-0 has-[>svg]:p-0",
44
- },
45
- },
46
- defaultVariants: {
47
- size: "xs",
48
- },
49
- });
50
- function InputGroupButton({ className, type = "button", variant = "ghost", size = "xs", ...props }) {
51
- return (_jsx(Button, { type: type, "data-size": size, variant: variant, className: cn(inputGroupButtonVariants({ size }), className), ...props }));
52
- }
53
- function InputGroupText({ className, ...props }) {
54
- return (_jsx("span", { className: cn("flex items-center gap-2 text-sm text-muted-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4", className), ...props }));
55
- }
56
- function InputGroupInput({ className, ...props }) {
57
- return (_jsx(Input, { "data-slot": "input-group-control", className: cn("flex-1 rounded-none border-0 bg-transparent shadow-none focus-visible:ring-0 dark:bg-transparent", className), ...props }));
58
- }
59
- function InputGroupTextarea({ className, ...props }) {
60
- return (_jsx(Textarea, { "data-slot": "input-group-control", className: cn("flex-1 resize-none rounded-none border-0 bg-transparent py-3 shadow-none focus-visible:ring-0 dark:bg-transparent", className), ...props }));
61
- }
62
- export { InputGroup, InputGroupAddon, InputGroupButton, InputGroupText, InputGroupInput, InputGroupTextarea, };
63
- //# sourceMappingURL=input-group.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"input-group.js","sourceRoot":"","sources":["../../src/components/input-group.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import type * as React from "react";
2
- import type { ComponentProps } from 'react';
3
- declare function Input({ className, type, ...props }: ComponentProps<'input'>): React.JSX.Element;
4
- export { Input };
5
- //# sourceMappingURL=input.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../src/components/input.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAI5C,iBAAS,KAAK,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAcxF;AAED,OAAO,EAAE,KAAK,EAAE,CAAC"}
@@ -1,7 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { cn } from '../foundation/cn';
3
- function Input({ className, type, ...props }) {
4
- return (_jsx("input", { type: type, "data-slot": "input", className: cn("h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30", "focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50", "aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40", className), ...props }));
5
- }
6
- export { Input };
7
- //# sourceMappingURL=input.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"input.js","sourceRoot":"","sources":["../../src/components/input.tsx"],"names":[],"mappings":";AAMA,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAEtC,SAAS,KAAK,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,KAAK,EAA2B;IACpE,OAAO,CACN,gBACC,IAAI,EAAE,IAAI,eACA,OAAO,EACjB,SAAS,EAAE,EAAE,CACZ,4bAA4b,EAC5b,+EAA+E,EAC/E,wGAAwG,EACxG,SAAS,CACT,KACG,KAAK,GACR,CACF,CAAC;AACH,CAAC;AAED,OAAO,EAAE,KAAK,EAAE,CAAC"}
@@ -1,9 +0,0 @@
1
- import type * as React from "react";
2
- interface LiveDurationProps {
3
- startedAt: string | null;
4
- completedAt?: string | null;
5
- className?: string;
6
- }
7
- export declare function LiveDuration({ startedAt, completedAt, className }: LiveDurationProps): React.ReactNode;
8
- export {};
9
- //# sourceMappingURL=live-duration.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"live-duration.d.ts","sourceRoot":"","sources":["../../src/components/live-duration.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAyCpC,UAAU,iBAAiB;IAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,YAAY,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,iBAAiB,GAAG,KAAK,CAAC,SAAS,CAmBtG"}
@@ -1,55 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { useState, useEffect } from "react";
3
- // Inlined from "@/lib/utils" (formatDuration) — only this helper is used here.
4
- function formatDuration(startedAt, completedAt) {
5
- if (!startedAt)
6
- return "";
7
- const start = new Date(startedAt);
8
- const end = completedAt ? new Date(completedAt) : new Date();
9
- const totalSeconds = Math.max(0, Math.floor((end.getTime() - start.getTime()) / 1000));
10
- const hours = Math.floor(totalSeconds / 3600);
11
- const minutes = Math.floor((totalSeconds % 3600) / 60);
12
- const seconds = totalSeconds % 60;
13
- if (hours > 0)
14
- return `${hours}h ${minutes}m`;
15
- if (minutes > 0)
16
- return `${minutes}m ${seconds}s`;
17
- return `${seconds}s`;
18
- }
19
- // Inlined from "@/lib/live-tick".
20
- // Shared tick for LiveDuration components. One interval drives all subscribers
21
- // instead of each component running its own 1s interval.
22
- const callbacks = new Set();
23
- const tickState = {
24
- intervalId: null,
25
- };
26
- function subscribeLiveTick(callback) {
27
- callbacks.add(callback);
28
- if (tickState.intervalId === null) {
29
- tickState.intervalId = setInterval(() => {
30
- callbacks.forEach((cb) => cb());
31
- }, 1000);
32
- }
33
- return () => {
34
- callbacks.delete(callback);
35
- if (callbacks.size === 0 && tickState.intervalId !== null) {
36
- clearInterval(tickState.intervalId);
37
- tickState.intervalId = null;
38
- }
39
- };
40
- }
41
- export function LiveDuration({ startedAt, completedAt, className }) {
42
- // tick forces re-renders when subscribeLiveTick fires; value is unused in render
43
- const [, setTick] = useState(0);
44
- useEffect(() => {
45
- if (!startedAt || completedAt != null)
46
- return;
47
- setTick(0);
48
- return subscribeLiveTick(() => setTick((t) => t + 1));
49
- }, [startedAt, completedAt]);
50
- if (!startedAt)
51
- return null;
52
- const formatted = formatDuration(startedAt, completedAt ?? null);
53
- return (_jsx("span", { className: className, suppressHydrationWarning: true, children: formatted }));
54
- }
55
- //# sourceMappingURL=live-duration.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"live-duration.js","sourceRoot":"","sources":["../../src/components/live-duration.tsx"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import type * as React from "react";
2
- export declare function Logo({ className }: {
3
- className?: string;
4
- }): React.JSX.Element;
5
- export declare function LogoMark({ className }: {
6
- className?: string;
7
- }): React.JSX.Element;
8
- //# sourceMappingURL=logo.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logo.d.ts","sourceRoot":"","sources":["../../src/components/logo.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAGpC,wBAAgB,IAAI,CAAC,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAM7E;AAED,wBAAgB,QAAQ,CAAC,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAMjF"}
@@ -1,9 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { cn } from '../foundation/cn';
3
- export function Logo({ className }) {
4
- return (_jsx("span", { className: cn("font-mono text-sm font-medium tracking-tight", className), children: "BETTER-HUB." }));
5
- }
6
- export function LogoMark({ className }) {
7
- return (_jsx("span", { className: cn("font-mono text-sm font-bold tracking-tight", className), children: "b." }));
8
- }
9
- //# sourceMappingURL=logo.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logo.js","sourceRoot":"","sources":["../../src/components/logo.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAEtC,MAAM,UAAU,IAAI,CAAC,EAAE,SAAS,EAA0B;IACzD,OAAO,CACN,eAAM,SAAS,EAAE,EAAE,CAAC,8CAA8C,EAAE,SAAS,CAAC,4BAEvE,CACP,CAAC;AACH,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,EAAE,SAAS,EAA0B;IAC7D,OAAO,CACN,eAAM,SAAS,EAAE,EAAE,CAAC,4CAA4C,EAAE,SAAS,CAAC,mBAErE,CACP,CAAC;AACH,CAAC"}
@@ -1,12 +0,0 @@
1
- import type * as React from "react";
2
- import type { ComponentProps } from "react";
3
- import { Popover as PopoverPrimitive } from "radix-ui";
4
- declare function Popover({ ...props }: ComponentProps<typeof PopoverPrimitive.Root>): React.JSX.Element;
5
- declare function PopoverTrigger({ ...props }: ComponentProps<typeof PopoverPrimitive.Trigger>): React.JSX.Element;
6
- declare function PopoverContent({ className, align, sideOffset, ...props }: ComponentProps<typeof PopoverPrimitive.Content>): React.JSX.Element;
7
- declare function PopoverAnchor({ ...props }: ComponentProps<typeof PopoverPrimitive.Anchor>): React.JSX.Element;
8
- declare function PopoverHeader({ className, ...props }: ComponentProps<"div">): React.JSX.Element;
9
- declare function PopoverTitle({ className, ...props }: ComponentProps<"h2">): React.JSX.Element;
10
- declare function PopoverDescription({ className, ...props }: ComponentProps<"p">): React.JSX.Element;
11
- export { Popover, PopoverTrigger, PopoverContent, PopoverAnchor, PopoverHeader, PopoverTitle, PopoverDescription, };
12
- //# sourceMappingURL=popover.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"popover.d.ts","sourceRoot":"","sources":["../../src/components/popover.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAIvD,iBAAS,OAAO,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,CAAC,OAAO,gBAAgB,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAE9F;AAED,iBAAS,cAAc,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,CAAC,OAAO,gBAAgB,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAExG;AAED,iBAAS,cAAc,CAAC,EACvB,SAAS,EACT,KAAgB,EAChB,UAAc,EACd,GAAG,KAAK,EACR,EAAE,cAAc,CAAC,OAAO,gBAAgB,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAerE;AAED,iBAAS,aAAa,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,CAAC,OAAO,gBAAgB,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAEtG;AAED,iBAAS,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAQxF;AAED,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAQtF;AAED,iBAAS,kBAAkB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAQ3F;AAED,OAAO,EACN,OAAO,EACP,cAAc,EACd,cAAc,EACd,aAAa,EACb,aAAa,EACb,YAAY,EACZ,kBAAkB,GAClB,CAAC"}
@@ -1,26 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { Popover as PopoverPrimitive } from "radix-ui";
3
- import { cn } from "../foundation/cn";
4
- function Popover({ ...props }) {
5
- return _jsx(PopoverPrimitive.Root, { "data-slot": "popover", ...props });
6
- }
7
- function PopoverTrigger({ ...props }) {
8
- return _jsx(PopoverPrimitive.Trigger, { "data-slot": "popover-trigger", ...props });
9
- }
10
- function PopoverContent({ className, align = "center", sideOffset = 4, ...props }) {
11
- return (_jsx(PopoverPrimitive.Portal, { children: _jsx(PopoverPrimitive.Content, { "data-slot": "popover-content", align: align, sideOffset: sideOffset, className: cn("z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-hidden data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95", className), ...props }) }));
12
- }
13
- function PopoverAnchor({ ...props }) {
14
- return _jsx(PopoverPrimitive.Anchor, { "data-slot": "popover-anchor", ...props });
15
- }
16
- function PopoverHeader({ className, ...props }) {
17
- return (_jsx("div", { "data-slot": "popover-header", className: cn("flex flex-col gap-1 text-sm", className), ...props }));
18
- }
19
- function PopoverTitle({ className, ...props }) {
20
- return (_jsx("div", { "data-slot": "popover-title", className: cn("font-medium", className), ...props }));
21
- }
22
- function PopoverDescription({ className, ...props }) {
23
- return (_jsx("p", { "data-slot": "popover-description", className: cn("text-muted-foreground", className), ...props }));
24
- }
25
- export { Popover, PopoverTrigger, PopoverContent, PopoverAnchor, PopoverHeader, PopoverTitle, PopoverDescription, };
26
- //# sourceMappingURL=popover.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"popover.js","sourceRoot":"","sources":["../../src/components/popover.tsx"],"names":[],"mappings":";AAKA,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEvD,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAEtC,SAAS,OAAO,CAAC,EAAE,GAAG,KAAK,EAAgD;IAC1E,OAAO,KAAC,gBAAgB,CAAC,IAAI,iBAAW,SAAS,KAAK,KAAK,GAAI,CAAC;AACjE,CAAC;AAED,SAAS,cAAc,CAAC,EAAE,GAAG,KAAK,EAAmD;IACpF,OAAO,KAAC,gBAAgB,CAAC,OAAO,iBAAW,iBAAiB,KAAK,KAAK,GAAI,CAAC;AAC5E,CAAC;AAED,SAAS,cAAc,CAAC,EACvB,SAAS,EACT,KAAK,GAAG,QAAQ,EAChB,UAAU,GAAG,CAAC,EACd,GAAG,KAAK,EACyC;IACjD,OAAO,CACN,KAAC,gBAAgB,CAAC,MAAM,cACvB,KAAC,gBAAgB,CAAC,OAAO,iBACd,iBAAiB,EAC3B,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,EAAE,CACZ,geAAge,EAChe,SAAS,CACT,KACG,KAAK,GACR,GACuB,CAC1B,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,EAAE,GAAG,KAAK,EAAkD;IAClF,OAAO,KAAC,gBAAgB,CAAC,MAAM,iBAAW,gBAAgB,KAAK,KAAK,GAAI,CAAC;AAC1E,CAAC;AAED,SAAS,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAyB;IACpE,OAAO,CACN,2BACW,gBAAgB,EAC1B,SAAS,EAAE,EAAE,CAAC,6BAA6B,EAAE,SAAS,CAAC,KACnD,KAAK,GACR,CACF,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAwB;IAClE,OAAO,CACN,2BACW,eAAe,EACzB,SAAS,EAAE,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC,KACnC,KAAK,GACR,CACF,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAuB;IACvE,OAAO,CACN,yBACW,qBAAqB,EAC/B,SAAS,EAAE,EAAE,CAAC,uBAAuB,EAAE,SAAS,CAAC,KAC7C,KAAK,GACR,CACF,CAAC;AACH,CAAC;AAED,OAAO,EACN,OAAO,EACP,cAAc,EACd,cAAc,EACd,aAAa,EACb,aAAa,EACb,YAAY,EACZ,kBAAkB,GAClB,CAAC"}
@@ -1,15 +0,0 @@
1
- import type * as React from "react";
2
- interface ResizeHandleProps {
3
- /** Called continuously during drag with clientX pixel position */
4
- onResize: (clientX: number) => void;
5
- /** Called when drag starts */
6
- onDragStart?: () => void;
7
- /** Called when drag ends */
8
- onDragEnd?: () => void;
9
- /** Double click handler (e.g. reset to default) */
10
- onDoubleClick?: () => void;
11
- className?: string;
12
- }
13
- export declare function ResizeHandle({ onResize, onDragStart, onDragEnd, onDoubleClick, className, }: ResizeHandleProps): React.JSX.Element;
14
- export {};
15
- //# sourceMappingURL=resize-handle.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resize-handle.d.ts","sourceRoot":"","sources":["../../src/components/resize-handle.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAKpC,UAAU,iBAAiB;IAC1B,kEAAkE;IAClE,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,8BAA8B;IAC9B,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,mDAAmD;IACnD,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,YAAY,CAAC,EAC5B,QAAQ,EACR,WAAW,EACX,SAAS,EACT,aAAa,EACb,SAAS,GACT,EAAE,iBAAiB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA2DvC"}
@@ -1,36 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useCallback, useEffect, useState } from "react";
3
- import { cn } from "../foundation/cn";
4
- export function ResizeHandle({ onResize, onDragStart, onDragEnd, onDoubleClick, className, }) {
5
- const [isDragging, setIsDragging] = useState(false);
6
- const handleMouseDown = useCallback((e) => {
7
- e.preventDefault();
8
- setIsDragging(true);
9
- onDragStart?.();
10
- }, [onDragStart]);
11
- useEffect(() => {
12
- if (!isDragging)
13
- return;
14
- const handleMouseMove = (e) => {
15
- onResize(e.clientX);
16
- };
17
- const handleMouseUp = () => {
18
- setIsDragging(false);
19
- onDragEnd?.();
20
- };
21
- document.addEventListener("mousemove", handleMouseMove);
22
- document.addEventListener("mouseup", handleMouseUp);
23
- document.body.style.userSelect = "none";
24
- document.body.style.cursor = "col-resize";
25
- return () => {
26
- document.removeEventListener("mousemove", handleMouseMove);
27
- document.removeEventListener("mouseup", handleMouseUp);
28
- document.body.style.userSelect = "";
29
- document.body.style.cursor = "";
30
- };
31
- }, [isDragging, onResize, onDragEnd]);
32
- return (_jsxs("div", { onMouseDown: handleMouseDown, onDoubleClick: onDoubleClick, className: cn("relative shrink-0 w-0 group/resize cursor-col-resize z-10", className), children: [_jsx("div", { className: "absolute inset-y-0 -left-[5px] w-[11px]" }), _jsx("div", { className: cn("absolute inset-y-0 -left-px w-[2px] transition-all duration-150", isDragging
33
- ? "bg-foreground/25"
34
- : "bg-transparent group-hover/resize:bg-foreground/15") })] }));
35
- }
36
- //# sourceMappingURL=resize-handle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resize-handle.js","sourceRoot":"","sources":["../../src/components/resize-handle.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEzD,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AActC,MAAM,UAAU,YAAY,CAAC,EAC5B,QAAQ,EACR,WAAW,EACX,SAAS,EACT,aAAa,EACb,SAAS,GACU;IACnB,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEpD,MAAM,eAAe,GAAG,WAAW,CAClC,CAAC,CAAkB,EAAE,EAAE;QACtB,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,aAAa,CAAC,IAAI,CAAC,CAAC;QACpB,WAAW,EAAE,EAAE,CAAC;IACjB,CAAC,EACD,CAAC,WAAW,CAAC,CACb,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,UAAU;YAAE,OAAO;QAExB,MAAM,eAAe,GAAG,CAAC,CAAa,EAAE,EAAE;YACzC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACrB,CAAC,CAAC;QAEF,MAAM,aAAa,GAAG,GAAG,EAAE;YAC1B,aAAa,CAAC,KAAK,CAAC,CAAC;YACrB,SAAS,EAAE,EAAE,CAAC;QACf,CAAC,CAAC;QAEF,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;QACxD,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACpD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC;QACxC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,YAAY,CAAC;QAE1C,OAAO,GAAG,EAAE;YACX,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;YAC3D,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;YACvD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC;YACpC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC;QACjC,CAAC,CAAC;IACH,CAAC,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;IAEtC,OAAO,CACN,eACC,WAAW,EAAE,eAAe,EAC5B,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,EAAE,CACZ,2DAA2D,EAC3D,SAAS,CACT,aAGD,cAAK,SAAS,EAAC,yCAAyC,GAAG,EAE3D,cACC,SAAS,EAAE,EAAE,CACZ,iEAAiE,EACjE,UAAU;oBACT,CAAC,CAAC,kBAAkB;oBACpB,CAAC,CAAC,oDAAoD,CACvD,GACA,IACG,CACN,CAAC;AACH,CAAC"}
@@ -1,18 +0,0 @@
1
- import * as DialogPrimitive from "@radix-ui/react-dialog";
2
- import type * as React from "react";
3
- declare function Sheet({ ...props }: React.ComponentProps<typeof DialogPrimitive.Root>): React.JSX.Element;
4
- declare function SheetTrigger({ ...props }: React.ComponentProps<typeof DialogPrimitive.Trigger>): React.JSX.Element;
5
- declare function SheetPortal({ ...props }: React.ComponentProps<typeof DialogPrimitive.Portal>): React.JSX.Element;
6
- declare function SheetClose({ ...props }: React.ComponentProps<typeof DialogPrimitive.Close>): React.JSX.Element;
7
- declare function SheetOverlay({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Overlay>): React.JSX.Element;
8
- interface SheetContentProps extends React.ComponentProps<typeof DialogPrimitive.Content> {
9
- side?: "left" | "right" | "top" | "bottom";
10
- showCloseButton?: boolean;
11
- }
12
- declare function SheetContent({ className, children, side, showCloseButton, ...props }: SheetContentProps): React.JSX.Element;
13
- declare function SheetHeader({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
14
- declare function SheetFooter({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
15
- declare function SheetTitle({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Title>): React.JSX.Element;
16
- declare function SheetDescription({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Description>): React.JSX.Element;
17
- export { Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, };
18
- //# sourceMappingURL=sheet.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sheet.d.ts","sourceRoot":"","sources":["../../src/components/sheet.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAE1D,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAGpC,iBAAS,KAAK,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAEjG;AAED,iBAAS,YAAY,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAE3G;AAED,iBAAS,WAAW,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAEzG;AAED,iBAAS,UAAU,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAEvG;AAED,iBAAS,YAAY,CAAC,EACrB,SAAS,EACT,GAAG,KAAK,EACR,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAW1E;AAED,UAAU,iBAAkB,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC;IACvF,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC3C,eAAe,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,iBAAS,YAAY,CAAC,EACrB,SAAS,EACT,QAAQ,EACR,IAAc,EACd,eAAsB,EACtB,GAAG,KAAK,EACR,EAAE,iBAAiB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAiCvC;AAED,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAW5F;AAED,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAW5F;AAED,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAQlH;AAED,iBAAS,gBAAgB,CAAC,EACzB,SAAS,EACT,GAAG,KAAK,EACR,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAQ9E;AAED,OAAO,EACN,KAAK,EACL,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,YAAY,EACZ,WAAW,EACX,UAAU,EACV,YAAY,GACZ,CAAC"}