@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.
- package/package.json +2 -2
- package/src/components/agent-icon.tsx +21 -0
- package/src/components/badge.tsx +54 -0
- package/src/components/button.tsx +72 -0
- package/src/components/combobox.tsx +290 -0
- package/src/components/command.tsx +170 -0
- package/src/components/dialog.tsx +129 -0
- package/src/components/dropdown-menu.tsx +149 -0
- package/src/components/github-background.tsx +280 -0
- package/src/components/halftone-background.tsx +289 -0
- package/src/components/input-group.tsx +175 -0
- package/src/components/input.tsx +25 -0
- package/src/components/live-duration.tsx +70 -0
- package/src/components/logo.tsx +20 -0
- package/src/components/popover.tsx +82 -0
- package/src/components/resize-handle.tsx +86 -0
- package/src/components/sheet.tsx +147 -0
- package/src/components/textarea.tsx +21 -0
- package/src/components/time-ago.tsx +57 -0
- package/src/components/tooltip.tsx +64 -0
- package/src/foundation/cn.ts +8 -0
- package/src/foundation/styles.css +156 -0
- package/{dist/index.js → src/index.tsx} +2 -1
- package/dist/components/agent-icon.d.ts +0 -5
- package/dist/components/agent-icon.d.ts.map +0 -1
- package/dist/components/agent-icon.js +0 -5
- package/dist/components/agent-icon.js.map +0 -1
- package/dist/components/badge.d.ts +0 -11
- package/dist/components/badge.d.ts.map +0 -1
- package/dist/components/badge.js +0 -28
- package/dist/components/badge.js.map +0 -1
- package/dist/components/button.d.ts +0 -12
- package/dist/components/button.d.ts.map +0 -1
- package/dist/components/button.js +0 -34
- package/dist/components/button.js.map +0 -1
- package/dist/components/combobox.d.ts +0 -25
- package/dist/components/combobox.d.ts.map +0 -1
- package/dist/components/combobox.js +0 -60
- package/dist/components/combobox.js.map +0 -1
- package/dist/components/command.d.ts +0 -19
- package/dist/components/command.d.ts.map +0 -1
- package/dist/components/command.js +0 -36
- package/dist/components/command.js.map +0 -1
- package/dist/components/dialog.d.ts +0 -16
- package/dist/components/dialog.d.ts.map +0 -1
- package/dist/components/dialog.js +0 -38
- package/dist/components/dialog.js.map +0 -1
- package/dist/components/dropdown-menu.d.ts +0 -17
- package/dist/components/dropdown-menu.d.ts.map +0 -1
- package/dist/components/dropdown-menu.js +0 -35
- package/dist/components/dropdown-menu.js.map +0 -1
- package/dist/components/github-background.d.ts +0 -3
- package/dist/components/github-background.d.ts.map +0 -1
- package/dist/components/github-background.js +0 -51
- package/dist/components/github-background.js.map +0 -1
- package/dist/components/halftone-background.d.ts +0 -3
- package/dist/components/halftone-background.d.ts.map +0 -1
- package/dist/components/halftone-background.js +0 -248
- package/dist/components/halftone-background.js.map +0 -1
- package/dist/components/input-group.d.ts +0 -19
- package/dist/components/input-group.d.ts.map +0 -1
- package/dist/components/input-group.js +0 -63
- package/dist/components/input-group.js.map +0 -1
- package/dist/components/input.d.ts +0 -5
- package/dist/components/input.d.ts.map +0 -1
- package/dist/components/input.js +0 -7
- package/dist/components/input.js.map +0 -1
- package/dist/components/live-duration.d.ts +0 -9
- package/dist/components/live-duration.d.ts.map +0 -1
- package/dist/components/live-duration.js +0 -55
- package/dist/components/live-duration.js.map +0 -1
- package/dist/components/logo.d.ts +0 -8
- package/dist/components/logo.d.ts.map +0 -1
- package/dist/components/logo.js +0 -9
- package/dist/components/logo.js.map +0 -1
- package/dist/components/popover.d.ts +0 -12
- package/dist/components/popover.d.ts.map +0 -1
- package/dist/components/popover.js +0 -26
- package/dist/components/popover.js.map +0 -1
- package/dist/components/resize-handle.d.ts +0 -15
- package/dist/components/resize-handle.d.ts.map +0 -1
- package/dist/components/resize-handle.js +0 -36
- package/dist/components/resize-handle.js.map +0 -1
- package/dist/components/sheet.d.ts +0 -18
- package/dist/components/sheet.d.ts.map +0 -1
- package/dist/components/sheet.js +0 -44
- package/dist/components/sheet.js.map +0 -1
- package/dist/components/textarea.d.ts +0 -5
- package/dist/components/textarea.d.ts.map +0 -1
- package/dist/components/textarea.js +0 -7
- package/dist/components/textarea.js.map +0 -1
- package/dist/components/time-ago.d.ts +0 -8
- package/dist/components/time-ago.d.ts.map +0 -1
- package/dist/components/time-ago.js +0 -40
- package/dist/components/time-ago.js.map +0 -1
- package/dist/components/tooltip.d.ts +0 -10
- package/dist/components/tooltip.d.ts.map +0 -1
- package/dist/components/tooltip.js +0 -25
- package/dist/components/tooltip.js.map +0 -1
- package/dist/foundation/cn.d.ts +0 -7
- package/dist/foundation/cn.d.ts.map +0 -1
- package/dist/foundation/cn.js +0 -8
- package/dist/foundation/cn.js.map +0 -1
- package/dist/index.d.ts +0 -21
- package/dist/index.d.ts.map +0 -1
- 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 +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"}
|
package/dist/components/input.js
DELETED
|
@@ -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"}
|
package/dist/components/logo.js
DELETED
|
@@ -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"}
|