@nadicodeai/ui 12.1.67 → 12.1.69

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.
@@ -0,0 +1,63 @@
1
+ import * as React from "react";
2
+ /**
3
+ * Alveare's entry scene, the hive, which Alveare's desktop and Alveare Server
4
+ * both stand their entry screens on (apps/alveare/docs/design-doctrine.md,
5
+ * "Screens"): the app's picture on black, Alveare's logo at the upper left,
6
+ * six Agent orbs on the corners of a hexagon around the words, and the work
7
+ * flowing between them and the people in the picture as particles in the
8
+ * sending orb's colour. The orbs are artwork, so they take ambient motion and
9
+ * claim no activity (DESIGN.md, "Agent orbs"). Only the orbs and the particles
10
+ * move; reduced motion stops both, an ambient orb holding still.
11
+ *
12
+ * - `join`: the words stand in the middle of the hexagon.
13
+ * - `loading`: the orbs draw in and there are no words.
14
+ * - `still`: no Agent and no work, for a failure (no orb turns on one) or a
15
+ * screen read at length.
16
+ *
17
+ * The scene is black in every theme, so it scopes `dark`. The app owns its
18
+ * picture and where it stands, through its own stylesheet.
19
+ */
20
+ export type HivePoint = {
21
+ x: number;
22
+ y: number;
23
+ };
24
+ /** Where the work comes from and goes to in the picture, in the scene's pixels. */
25
+ export type HiveWork = {
26
+ senders: readonly HivePoint[];
27
+ receivers: readonly HivePoint[];
28
+ };
29
+ export type HiveSceneMode = "join" | "loading" | "still";
30
+ export type HiveSceneProps = Omit<React.ComponentProps<"div">, "children"> & {
31
+ mode: HiveSceneMode;
32
+ /** Alveare's logo, its app icon without the construction guides, and its name. */
33
+ logo: {
34
+ src: string;
35
+ label: string;
36
+ };
37
+ /** The app's picture, placed by the app's own stylesheet. */
38
+ picture?: React.ReactNode;
39
+ /** The picture's people for the scene's current size, so the work reaches them. */
40
+ work?: (size: {
41
+ width: number;
42
+ height: number;
43
+ }) => HiveWork;
44
+ /** Window chrome the scene must carry, such as a drag region. */
45
+ chrome?: React.ReactNode;
46
+ /** What `loading` is waiting for, read by assistive technology. */
47
+ label?: string;
48
+ children?: React.ReactNode;
49
+ };
50
+ declare function HiveScene({ mode, logo, picture, work, chrome, label, className, children, ...props }: HiveSceneProps): React.JSX.Element;
51
+ /** The screen's one heading, in the middle of the hive. */
52
+ declare function HiveTitle({ children, id }: {
53
+ children: React.ReactNode;
54
+ id?: string;
55
+ }): React.JSX.Element;
56
+ /** A line under the title saying what happened or what to do. */
57
+ declare function HiveLine({ children, id, tone, }: {
58
+ children: React.ReactNode;
59
+ id?: string;
60
+ tone?: "body" | "error";
61
+ }): React.JSX.Element;
62
+ export { HiveLine, HiveScene, HiveTitle };
63
+ //# sourceMappingURL=hive-scene.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hive-scene.d.ts","sourceRoot":"","sources":["../../src/components/hive-scene.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,MAAM,SAAS,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjD,mFAAmF;AACnF,MAAM,MAAM,QAAQ,GAAG;IACrB,OAAO,EAAE,SAAS,SAAS,EAAE,CAAC;IAC9B,SAAS,EAAE,SAAS,SAAS,EAAE,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;AAEzD,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,GAAG;IAC3E,IAAI,EAAE,aAAa,CAAC;IACpB,kFAAkF;IAClF,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACrC,6DAA6D;IAC7D,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,mFAAmF;IACnF,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,QAAQ,CAAC;IAC7D,iEAAiE;IACjE,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,CAAC;AAmLF,iBAAS,SAAS,CAAC,EACjB,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,MAAM,EACN,KAAK,EACL,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,cAAc,qBAiNhB;AAED,2DAA2D;AAC3D,iBAAS,SAAS,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,qBAM9E;AAED,iEAAiE;AACjE,iBAAS,QAAQ,CAAC,EAChB,QAAQ,EACR,EAAE,EACF,IAAa,GACd,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACzB,qBAMA;AAED,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC"}
@@ -0,0 +1,337 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import * as React from "react";
4
+ import { mountAgentOrb } from "../internal/agent-orb.js";
5
+ import { cn } from "../lib/utils.js";
6
+ const COBALTO = "var(--nc-identity-cobalto)";
7
+ const VERDE = "var(--nc-identity-verde)";
8
+ const ARANCIO = "var(--nc-identity-arancio)";
9
+ const AGENTS = [
10
+ { form: "orbit", colour: COBALTO, size: 96 },
11
+ { form: "network", colour: VERDE, size: 64 },
12
+ { form: "globe", colour: ARANCIO, size: 96 },
13
+ { form: "lattice", colour: null, size: 64 },
14
+ { form: "braid", colour: COBALTO, size: 96 },
15
+ { form: "morph", colour: VERDE, size: 64 },
16
+ ];
17
+ function cellRadius(width, height) {
18
+ return Math.min(width, height) * 0.3;
19
+ }
20
+ function corner(index, centre, radius) {
21
+ const angle = -Math.PI / 2 + (index * Math.PI) / 3;
22
+ return {
23
+ x: centre.x + Math.cos(angle) * radius,
24
+ y: centre.y + Math.sin(angle) * radius,
25
+ };
26
+ }
27
+ /** The room an orb keeps from the words, so text never sits on an Agent. */
28
+ const WORDS_GAP = 16;
29
+ /**
30
+ * An orb's seat moved clear of the words: a seat at the side steps out
31
+ * sideways, the top and bottom ones up and down. An orb with no room left
32
+ * inside the scene is not drawn.
33
+ */
34
+ function clearOfWords(seat, size, words, scene) {
35
+ const half = size / 2 + WORDS_GAP;
36
+ let { x, y } = seat;
37
+ const covers = words &&
38
+ x + half > words.left &&
39
+ x - half < words.right &&
40
+ y + half > words.top &&
41
+ y - half < words.bottom;
42
+ if (words && covers) {
43
+ const centre = (words.left + words.right) / 2;
44
+ if (Math.abs(x - centre) > 1)
45
+ x = x > centre ? words.right + half : words.left - half;
46
+ else
47
+ y = y > (words.top + words.bottom) / 2 ? words.bottom + half : words.top - half;
48
+ }
49
+ const inside = x - size / 2 >= 0 &&
50
+ x + size / 2 <= scene.width &&
51
+ y - size / 2 >= 0 &&
52
+ y + size / 2 <= scene.height;
53
+ return inside ? { x, y } : null;
54
+ }
55
+ function sizeCanvas(canvas, width, height) {
56
+ const ratio = Math.min(window.devicePixelRatio || 1, 2);
57
+ canvas.width = width * ratio;
58
+ canvas.height = height * ratio;
59
+ const context = canvas.getContext("2d");
60
+ context?.setTransform(ratio, 0, 0, ratio, 0, 0);
61
+ return context;
62
+ }
63
+ /**
64
+ * Small groups of touching honeycomb cells in faint white lines, three
65
+ * clusters at the edges, clear of the people and the centre: the hive seen in
66
+ * passing, never a pattern. Each cluster is its centre (a share of the window)
67
+ * and its cells in axial hex coordinates, so the comb never moves.
68
+ */
69
+ const COMB_RADIUS = 15;
70
+ const COMB_CLUSTERS = [
71
+ {
72
+ x: 0.1,
73
+ y: 0.13,
74
+ alpha: 0.2,
75
+ cells: [
76
+ [0, 0],
77
+ [1, 0],
78
+ [0, 1],
79
+ [-1, 1],
80
+ [1, -1],
81
+ [2, -1],
82
+ ],
83
+ },
84
+ {
85
+ x: 0.83,
86
+ y: 0.16,
87
+ alpha: 0.2,
88
+ cells: [
89
+ [0, 0],
90
+ [1, 0],
91
+ [0, 1],
92
+ [1, 1],
93
+ [-1, 1],
94
+ [2, -1],
95
+ [1, -1],
96
+ ],
97
+ },
98
+ {
99
+ x: 0.22,
100
+ y: 0.3,
101
+ alpha: 0.13,
102
+ cells: [
103
+ [0, 0],
104
+ [1, 0],
105
+ [0, 1],
106
+ [1, -1],
107
+ [-1, 1],
108
+ [0, 2],
109
+ [-1, 2],
110
+ [1, 1],
111
+ ],
112
+ },
113
+ ];
114
+ function drawComb(canvas, width, height) {
115
+ const context = sizeCanvas(canvas, width, height);
116
+ if (!context)
117
+ return;
118
+ context.strokeStyle = getComputedStyle(canvas).color;
119
+ context.lineWidth = 1;
120
+ // Pointy-top cells in axial coordinates: q along the row, r down the rows.
121
+ // One path per cluster, stroked once, so an edge two cells share is one line.
122
+ const across = Math.sqrt(3) * COMB_RADIUS;
123
+ for (const cluster of COMB_CLUSTERS) {
124
+ context.globalAlpha = cluster.alpha;
125
+ context.beginPath();
126
+ for (const [q, r] of cluster.cells) {
127
+ const centre = {
128
+ x: cluster.x * width + across * (q + r / 2),
129
+ y: cluster.y * height + 1.5 * COMB_RADIUS * r,
130
+ };
131
+ for (let k = 0; k <= 6; k += 1) {
132
+ const { x, y } = corner(k % 6, centre, COMB_RADIUS);
133
+ if (k === 0)
134
+ context.moveTo(x, y);
135
+ else
136
+ context.lineTo(x, y);
137
+ }
138
+ }
139
+ context.stroke();
140
+ }
141
+ context.globalAlpha = 1;
142
+ }
143
+ function along(particle, t) {
144
+ const u = 1 - t;
145
+ return {
146
+ x: u * u * particle.from.x + 2 * u * t * particle.bend.x + t * t * particle.to.x,
147
+ y: u * u * particle.from.y + 2 * u * t * particle.bend.y + t * t * particle.to.y,
148
+ };
149
+ }
150
+ function pick(items) {
151
+ return items[Math.floor(Math.random() * items.length)];
152
+ }
153
+ function HiveScene({ mode, logo, picture, work, chrome, label, className, children, ...props }) {
154
+ const sceneRef = React.useRef(null);
155
+ const combRef = React.useRef(null);
156
+ const flowRef = React.useRef(null);
157
+ const orbRefs = React.useRef([]);
158
+ const holderRefs = React.useRef([]);
159
+ // The words' box, kept as state so the scene places the orbs again when it appears.
160
+ const [column, setColumn] = React.useState(null);
161
+ const workRef = React.useRef(work);
162
+ workRef.current = work;
163
+ const still = mode === "still";
164
+ React.useEffect(() => {
165
+ if (still)
166
+ return;
167
+ const mounted = orbRefs.current.flatMap((canvas, index) => {
168
+ const agent = AGENTS[index];
169
+ return canvas && agent
170
+ ? [
171
+ mountAgentOrb(canvas, {
172
+ form: agent.form,
173
+ size: agent.size,
174
+ // Artwork, not Agents at work: each form moves at its own pace and claims no activity.
175
+ motion: "ambient",
176
+ presence: "over-picture",
177
+ }),
178
+ ]
179
+ : [];
180
+ });
181
+ return () => {
182
+ for (const orb of mounted)
183
+ orb.destroy();
184
+ };
185
+ }, [still]);
186
+ React.useEffect(() => {
187
+ const scene = sceneRef.current;
188
+ const comb = combRef.current;
189
+ const flow = flowRef.current;
190
+ if (!scene || !comb || !flow)
191
+ return;
192
+ const reduced = window.matchMedia("(prefers-reduced-motion: reduce)");
193
+ let width = 0;
194
+ let height = 0;
195
+ let context = null;
196
+ let seats = [];
197
+ const place = () => {
198
+ width = scene.clientWidth;
199
+ height = scene.clientHeight;
200
+ const centre = { x: width / 2, y: height / 2 };
201
+ const radius = cellRadius(width, height) * (mode === "loading" ? 0.62 : 1);
202
+ const bounds = scene.getBoundingClientRect();
203
+ const box = column?.getBoundingClientRect();
204
+ const words = box?.width
205
+ ? {
206
+ left: box.left - bounds.left,
207
+ top: box.top - bounds.top,
208
+ right: box.right - bounds.left,
209
+ bottom: box.bottom - bounds.top,
210
+ }
211
+ : null;
212
+ seats = still
213
+ ? []
214
+ : AGENTS.map((agent, index) => clearOfWords(corner(index, centre, radius), agent.size, words, { width, height }));
215
+ holderRefs.current.forEach((holder, index) => {
216
+ if (!holder)
217
+ return;
218
+ const seat = seats[index];
219
+ holder.hidden = !seat;
220
+ if (!seat)
221
+ return;
222
+ holder.style.left = `${seat.x}px`;
223
+ holder.style.top = `${seat.y}px`;
224
+ });
225
+ drawComb(comb, width, height);
226
+ context = sizeCanvas(flow, width, height);
227
+ };
228
+ place();
229
+ const resize = new ResizeObserver(place);
230
+ resize.observe(scene);
231
+ if (column)
232
+ resize.observe(column);
233
+ if (still)
234
+ return () => resize.disconnect();
235
+ const colours = orbRefs.current.map((canvas) => canvas ? getComputedStyle(canvas).color : "white");
236
+ const particles = [];
237
+ let frame = 0;
238
+ let last = performance.now();
239
+ let nextSpawn = 0;
240
+ const spawn = () => {
241
+ const source = Math.floor(Math.random() * AGENTS.length);
242
+ const seat = seats[source];
243
+ if (!seat)
244
+ return;
245
+ const others = seats.filter((other) => other !== null && other !== seat);
246
+ const neighbour = (source + 1 + (Math.random() < 0.5 ? 0 : 4)) % AGENTS.length;
247
+ const next = seats[neighbour] ?? pick(others);
248
+ const people = workRef.current?.({ width, height });
249
+ const sender = people ? pick(people.senders) : undefined;
250
+ const receiver = people ? pick(people.receivers) : undefined;
251
+ const roll = Math.random();
252
+ const [from, to] = roll < 0.3 && sender
253
+ ? [sender, seat]
254
+ : roll < 0.6 && receiver
255
+ ? [seat, receiver]
256
+ : next
257
+ ? [seat, next]
258
+ : [];
259
+ if (!from || !to)
260
+ return;
261
+ const bend = (Math.random() - 0.5) * 120;
262
+ particles.push({
263
+ from,
264
+ to,
265
+ bend: {
266
+ x: (from.x + to.x) / 2 + bend,
267
+ y: (from.y + to.y) / 2 - Math.abs(bend),
268
+ },
269
+ t: 0,
270
+ speed: 0.07 + Math.random() * 0.06,
271
+ colour: colours[source] ?? "white",
272
+ size: 1.2 + Math.random() * 1.8,
273
+ trail: [],
274
+ });
275
+ };
276
+ const tick = (now) => {
277
+ const dt = Math.min(0.05, (now - last) / 1000);
278
+ last = now;
279
+ nextSpawn -= dt;
280
+ const paint = context;
281
+ if (paint) {
282
+ paint.clearRect(0, 0, width, height);
283
+ if (!reduced.matches && nextSpawn <= 0 && seats.length === AGENTS.length) {
284
+ nextSpawn = 0.3;
285
+ spawn();
286
+ }
287
+ for (let k = particles.length - 1; k >= 0; k -= 1) {
288
+ const particle = particles[k];
289
+ if (!particle)
290
+ continue;
291
+ particle.t += particle.speed * dt;
292
+ if (particle.t >= 1 || reduced.matches) {
293
+ particles.splice(k, 1);
294
+ continue;
295
+ }
296
+ const fade = Math.sin(particle.t * Math.PI);
297
+ particle.trail.push(along(particle, particle.t));
298
+ if (particle.trail.length > 10)
299
+ particle.trail.shift();
300
+ paint.fillStyle = particle.colour;
301
+ particle.trail.forEach((point, j) => {
302
+ const share = (j + 1) / particle.trail.length;
303
+ paint.globalAlpha = 0.9 * fade * share ** 2;
304
+ paint.beginPath();
305
+ paint.arc(point.x, point.y, particle.size * (0.4 + 0.6 * share), 0, Math.PI * 2);
306
+ paint.fill();
307
+ });
308
+ }
309
+ paint.globalAlpha = 1;
310
+ }
311
+ frame = requestAnimationFrame(tick);
312
+ };
313
+ frame = requestAnimationFrame(tick);
314
+ return () => {
315
+ cancelAnimationFrame(frame);
316
+ resize.disconnect();
317
+ };
318
+ }, [mode, still, column]);
319
+ return (_jsxs("div", { ...props, className: cn("nc-hive dark", className), "data-mode": mode, "data-slot": "hive-scene", ref: sceneRef, ...(mode === "loading" ? { "aria-label": label, role: "status" } : {}), children: [chrome, _jsx("img", { alt: logo.label, className: "nc-hive-logo", "data-slot": "hive-logo", src: logo.src }), picture, _jsx("canvas", { "aria-hidden": "true", className: "nc-hive-comb", ref: combRef }), _jsx("canvas", { "aria-hidden": "true", className: "nc-hive-flow", ref: flowRef }), still
320
+ ? null
321
+ : AGENTS.map((agent, index) => (_jsx("div", { "aria-hidden": "true", className: "nc-hive-agent", "data-slot": "hive-agent", "data-size": agent.size, ref: (holder) => {
322
+ holderRefs.current[index] = holder;
323
+ }, children: _jsx("canvas", { ref: (canvas) => {
324
+ orbRefs.current[index] = canvas;
325
+ if (canvas && agent.colour)
326
+ canvas.style.color = agent.colour;
327
+ } }) }, agent.form))), children ? (_jsx("div", { className: "nc-hive-column", "data-slot": "hive-column", ref: setColumn, children: children })) : null] }));
328
+ }
329
+ /** The screen's one heading, in the middle of the hive. */
330
+ function HiveTitle({ children, id }) {
331
+ return (_jsx("h1", { className: "nc-hive-title", id: id, children: children }));
332
+ }
333
+ /** A line under the title saying what happened or what to do. */
334
+ function HiveLine({ children, id, tone = "body", }) {
335
+ return (_jsx("p", { className: "nc-hive-line", "data-tone": tone, id: id, children: children }));
336
+ }
337
+ export { HiveLine, HiveScene, HiveTitle };
@@ -0,0 +1,14 @@
1
+ /**
2
+ * A link drawn as a QR code another device can scan: square dark modules on a
3
+ * white tile in every theme, because readers expect dark on light. `label`
4
+ * names what the code opens; the code itself is the image.
5
+ */
6
+ declare function QrCode({ value, label, size, className, }: {
7
+ value: string;
8
+ label: string;
9
+ /** The drawn width and height, in CSS pixels. */
10
+ size: number;
11
+ className?: string;
12
+ }): import("react").JSX.Element;
13
+ export { QrCode };
14
+ //# sourceMappingURL=qr-code.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qr-code.d.ts","sourceRoot":"","sources":["../../src/components/qr-code.tsx"],"names":[],"mappings":"AAQA;;;;GAIG;AACH,iBAAS,MAAM,CAAC,EACd,KAAK,EACL,KAAK,EACL,IAAI,EACJ,SAAS,GACV,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,+BA0BA;AAED,OAAO,EAAE,MAAM,EAAE,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useMemo } from "react";
3
+ import { create } from "qrcode";
4
+ import { cn } from "../lib/utils.js";
5
+ /** The blank border a reader needs around the code, in modules. */
6
+ const QUIET_ZONE = 4;
7
+ /**
8
+ * A link drawn as a QR code another device can scan: square dark modules on a
9
+ * white tile in every theme, because readers expect dark on light. `label`
10
+ * names what the code opens; the code itself is the image.
11
+ */
12
+ function QrCode({ value, label, size, className, }) {
13
+ const { box, path } = useMemo(() => {
14
+ const { modules } = create(value, { errorCorrectionLevel: "M" });
15
+ let d = "";
16
+ for (let row = 0; row < modules.size; row += 1) {
17
+ for (let column = 0; column < modules.size; column += 1) {
18
+ if (modules.get(row, column))
19
+ d += `M${column + QUIET_ZONE} ${row + QUIET_ZONE}h1v1h-1z`;
20
+ }
21
+ }
22
+ return { box: modules.size + QUIET_ZONE * 2, path: d };
23
+ }, [value]);
24
+ return (_jsx("svg", { "aria-label": label, className: cn("block rounded-md bg-nc-identity-white text-nc-identity-ink", className), "data-slot": "qr-code", height: size, role: "img", shapeRendering: "crispEdges", viewBox: `0 0 ${box} ${box}`, width: size, children: _jsx("path", { d: path, fill: "currentColor" }) }));
25
+ }
26
+ export { QrCode };
package/dist/index.d.ts CHANGED
@@ -68,6 +68,7 @@ export * from "./components/footer.js";
68
68
  export * from "./components/form-drawer.js";
69
69
  export * from "./components/form.js";
70
70
  export * from "./components/glass-control.js";
71
+ export * from "./components/hive-scene.js";
71
72
  export * from "./components/house-icons.js";
72
73
  export * from "./components/hover-card.js";
73
74
  export * from "./components/input.js";
@@ -100,6 +101,7 @@ export * from "./components/plugin-slot-boundary.js";
100
101
  export * from "./components/popover.js";
101
102
  export * from "./components/portal-sidebar-frame.js";
102
103
  export * from "./components/progress.js";
104
+ export * from "./components/qr-code.js";
103
105
  export * from "./components/radio-group.js";
104
106
  export * from "./components/reading-column.js";
105
107
  export * from "./components/resizable.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -68,6 +68,7 @@ export * from "./components/footer.js";
68
68
  export * from "./components/form-drawer.js";
69
69
  export * from "./components/form.js";
70
70
  export * from "./components/glass-control.js";
71
+ export * from "./components/hive-scene.js";
71
72
  export * from "./components/house-icons.js";
72
73
  export * from "./components/hover-card.js";
73
74
  export * from "./components/input.js";
@@ -100,6 +101,7 @@ export * from "./components/plugin-slot-boundary.js";
100
101
  export * from "./components/popover.js";
101
102
  export * from "./components/portal-sidebar-frame.js";
102
103
  export * from "./components/progress.js";
104
+ export * from "./components/qr-code.js";
103
105
  export * from "./components/radio-group.js";
104
106
  export * from "./components/reading-column.js";
105
107
  export * from "./components/resizable.js";
@@ -1,3 +1,3 @@
1
1
  export const agentOrbScript = "\"use strict\";(()=>{function U(n,e,t){return n+(e-n)*t}function at(n){return n-Math.floor(n)}function V(n,e){let t=Math.floor(n),a=Math.floor(e),o=n-t,s=e-a;o=o*o*(3-2*o),s=s*s*(3-2*s);let r=_(t,a),p=_(t+1,a),c=_(t,a+1),M=_(t+1,a+1);return r+(p-r)*o+(c-r)*s+(r-p-c+M)*o*s}function _(n,e){let t=Math.sin(n*12.9898+e*78.233)*43758.5453;return t-Math.floor(t)}function J(n,e){let t=Math.PI*(3-Math.sqrt(5)),a=1-2*(n+.5)/e,o=Math.sqrt(1-a*a),s=n*t;return[o*Math.cos(s),a,o*Math.sin(s)]}function Pt(n,e){return Math.atan2(Math.sin(n-e),Math.cos(n-e))}function j(n,e,t,a,o){let s=Math.sin(e),r=Math.cos(e),p=Math.sin(n),c=Math.cos(n);return(M,x,u)=>{let i=M*c+u*p,d=-M*p+u*c,m=x*r-d*s,f=x*s+d*r;return[t+i*o,a-m*o,f]}}function rt(n,e,t,a){if(!a){let s=Math.round((t?1-n:n)*255);return`rgba(${s},${s},${s},${e})`}let o=s=>Math.round(t?s*(1-n):s+(255-s)*n);return`rgba(${o(a.r)},${o(a.g)},${o(a.b)},${e})`}function it(n,e,t,a=.3,o){for(let s of e){let r=s.a??1,p=Math.min(1,Math.max(0,s.white));n.fillStyle=rt(p,r,t,o),n.beginPath(),n.arc(s.x,s.y,s.r,0,Math.PI*2),n.fill()}}function ct(n,e,t,a){for(let o of e){let s=o.a??1,r=Math.min(1,Math.max(0,o.white));n.strokeStyle=rt(r,s,t,a),n.lineWidth=o.w,n.beginPath(),n.moveTo(o.x1,o.y1),n.lineTo(o.x2,o.y2),n.stroke()}}function q(n,e,t=.3){let a=[];for(let o of n)(o.a??1)<.02||(o.r=Math.max(t,o.r),a.push(o));return a.sort((o,s)=>o.z-s.z),{dots:a,lines:e.filter(o=>(o.a??1)>=.02)}}function ht(n,e,t,a){e.lines.length&&ct(n,e.lines,t,a),it(n,e.dots,t,.3,a)}function $(n,e){return(n/300)**e}var St=[[\"latRings\",\"lonDensity\"],[\"rings\",\"lonDensity\"],[\"lanes\",\"segs\"]],At=[\"orbitN\",\"ghostN\",\"nodeN\",\"strandN\",\"signals\"],vt=[\"iconD\"],kt=[\"rBase\",\"rDepth\",\"rActive\",\"rDot\",\"ghostR\",\"partR\",\"partRDepth\",\"nodeR\",\"nodeRDepth\"];function Rt(n,e){let t={...n},a=new Set,o=Math.sqrt(e);for(let[s,r]of St){let p=t[s],c=t[r];p!=null&&c!=null&&!a.has(s)&&!a.has(r)&&(t[s]=Math.max(2,Math.round(p*o)),t[r]=Math.max(2,Math.round(c*o)),a.add(s),a.add(r))}for(let s of At){let r=t[s];r!=null&&r!==0&&!a.has(s)&&(t[s]=Math.max(1,Math.round(r*e)))}for(let s of vt){let r=t[s];r!=null&&(t[s]=Math.max(.02,r*e))}return t}function Dt(n,e){let t={...n};for(let a of kt){let o=t[a];o!=null&&(t[a]=o*e)}return t.rSizeMul=(t.rSizeMul??1)*e,t}var zt={globe:{latRings:17,lonDensity:44,rBase:.6,rDepth:1.7,rBoost:1,inkFar:.62,inkSpan:.54,rsPow:.6,rMin:.3},orbits:{orbitN:12,ghostN:40,ghostR:.9,ghostA:.5,particles:3,partR:1.2,partRDepth:1.6,rsPow:.6,rMin:.3},rubik:{latRings:15,lonDensity:40,moveCount:14,rBase:.6,rDepth:1.7,rActive:.3,inkFar:.62,inkSpan:.54,rsPow:.6,rMin:.3},wave:{rings:15,lonDensity:40,rBase:.6,rDepth:1.7,rsPow:.6,rMin:.3},web:{nodeN:30,thr:.72,signals:5,nodeR:1.4,nodeRDepth:1.8,lineW:.8,rsPow:.6,rMin:.3},braid:{strandN:52,turns:3,ghostN:150,rBase:1.2,rDepth:1.8,rsPow:.6,rMin:.3},ribbon:{lanes:5,segs:88,ghostN:150,rBase:1.1,rDepth:1.7,rsPow:.6,rMin:.3},ring:{lanes:5,segs:88,ghostN:0,faceOn:1,rBase:1.1,rDepth:1.7,rsPow:.6,rMin:.3},morph:{rDot:.021,iconD:1,rMin:.25}},It=(n,e,t)=>{let a=n/2,o=n/2,s=n/2*.76,r=j(e*.4,.3,a,o,1),p=$(n,t.rsPow??.6),c=[],M=t.ghostN??150;for(let i=0;i<M;i++){let d=J(i,M),[m,f,h]=r(d[0]*s,d[1]*s,d[2]*s),b=(h/s+1)/2;c.push({x:m,y:f,z:h,r:.8*p,white:.78,a:.1+.22*b})}let x=t.strandN??52,u=t.turns??3;for(let i=0;i<3;i++){let d=i/3*2*Math.PI;for(let m=0;m<x;m++){let f=(at(m/x+e*.045)*2-1)*.96,h=Math.sqrt(Math.max(0,1-f*f)),b=Math.min(1,(1-Math.abs(f))/.1),y=f*Math.PI*u+d,l=1+.075*Math.sin(f*Math.PI*u*2+d*2+e*.8),w=h*s*l,[g,S,O]=r(Math.cos(y)*w,f*s*l,Math.sin(y)*w),P=(O/s+1)/2;c.push({x:g,y:S,z:O,r:((t.rBase??1.2)+(t.rDepth??1.8)*P)*p,white:.55-.45*P,a:b*(.45+.55*P)})}}return q(c,[],t.rMin)};function Ct(n,e,t,a){let o=2*e*t+a,s=n%o,r=new Array(e).fill(0),p=-1;if(s<2*e*t){let c=Math.floor(s/t),M=(s-c*t)/t,u=1-(1-Math.min(1,M/.7))**3;if(c<e){for(let i=0;i<c;i++)r[i]=1;r[c]=u,p=c}else{let i=2*e-1-c;for(let d=0;d<i;d++)r[d]=1;r[i]=1-u,p=i}}return{amount:r,active:p}}function Et(n,e,t){let[a,o,s]=n,r=!1;for(let p=0;p<e.length;p++){if(t.amount[p]<=0)continue;let c=e[p],M=c.axis===0?a:c.axis===1?o:s;if(M<c.lo||M>=c.hi)continue;p===t.active&&(r=!0);let x=c.ang*t.amount[p],u=Math.cos(x),i=Math.sin(x);if(c.axis===0){let d=o*u-s*i;s=o*i+s*u,o=d}else if(c.axis===1){let d=a*u+s*i;s=-a*i+s*u,a=d}else{let d=a*u-o*i;o=a*i+o*u,a=d}}return[a,o,s,r]}function Ft(n){let e=[];for(let t=0;t<n;t++){let a=Math.min(2,Math.floor(_(t,2.3)*3)),o=-1+.5*Math.min(3,Math.floor(_(t,5.9)*4)),s=_(t,7.7)<.5?1:-1;e.push({axis:a,lo:o,hi:o+.5,ang:s*Math.PI/2})}return e}var Nt=(n,e,t)=>{let o=n/2,s=n/2,r=n/2*.82,p=.4+.06*Math.sin(e*.35),c=j(e*.5,p,o,s,r),M=e*(.5+(1.7-.5)*(t.scanMul??1)),x=$(n,t.rsPow??.6),u=t.dimBase??1,i=[],d=t.latRings??17,m=t.lonDensity??44;for(let f=0;f<=d;f++){let h=-Math.PI/2+f/d*Math.PI,b=Math.cos(h),y=Math.sin(h),l=Math.max(1,Math.round(Math.abs(b)*m));for(let w=0;w<l;w++){let g=w/l*2*Math.PI,[S,O,P]=c(b*Math.cos(g),y,b*Math.sin(g)),v=(P+1)/2,R=Pt(g+e*.5,M),k=Math.exp(-(R*R)/.18)*Math.max(0,P);i.push({x:S,y:O,z:P,r:((t.rBase??.6)+(t.rDepth??1.7)*v+(t.rBoost??1)*k)*x,white:(t.inkFar??.62)-(t.inkSpan??.54)*v,a:u+(1-u)*Math.min(1,k)})}}return q(i,[],t.rMin)},Bt=(n,e,t)=>{let a=n/2,o=n/2,s=n/2*.82,r=j(e*.55,.35+.1*Math.sin(e*.9),a,o,s),p=$(n,t.rsPow??.6),c=t.moveCount??14,M=Ft(c),x=Ct(e,c,.42,1.2),u=[],i=t.latRings??15,d=t.lonDensity??40;for(let m=0;m<=i;m++){let f=-Math.PI/2+m/i*Math.PI,h=Math.cos(f),b=Math.sin(f),y=Math.max(1,Math.round(Math.abs(h)*d));for(let l=0;l<y;l++){let w=l/y*2*Math.PI,[g,S,O,P]=Et([h*Math.cos(w),b,h*Math.sin(w)],M,x),[v,R,k]=r(g,S,O),D=(k+1)/2;u.push({x:v,y:R,z:k,r:((t.rBase??.6)+(t.rDepth??1.7)*D+(P?t.rActive??.3:0))*p,white:(t.inkFar??.62)-(t.inkSpan??.54)*D-(P?.14:0)})}}return q(u,[],t.rMin)},Lt=(n,e,t)=>{let a=n/2,o=n/2,s=n/2*.874,r=j(e*.18,.38,a,o,1),p=$(n,t.rsPow??.6),c=[],M=t.rings??15,x=t.lonDensity??40;for(let u=0;u<=M;u++){let i=-Math.PI/2+u/M*Math.PI,d=Math.cos(i),m=Math.sin(i),f=.62*Math.sin(e*2.1-u*.52)+.38*Math.sin(e*1.27+u*.83),h=s*(.88+.105*f),b=Math.max(1,Math.round(Math.abs(d)*x));for(let y=0;y<b;y++){let l=y/b*2*Math.PI,[w,g,S]=r(d*Math.cos(l)*h,m*h,d*Math.sin(l)*h),O=(S/s+1)/2,P=Math.max(0,f);c.push({x:w,y:g,z:S,r:((t.rBase??.6)+(t.rDepth??1.7)*O)*(1+.4*P)*p,white:.66-.56*O-.1*P})}}return q(c,[],t.rMin)};function Tt(n){return n*n*(3-2*n)}function lt(n){let e=n.length,t=[],a=0;for(let o=0;o<e;o++){let s=n[o],r=n[(o+1)%e],p=Math.hypot(r[0]-s[0],r[1]-s[1]);t.push(p),a+=p}return o=>{let s=o*a,r=0;for(;s>t[r]&&r<e-1;)s-=t[r],r++;let p=n[r],c=n[(r+1)%e],M=t[r]?Math.min(1,s/t[r]):0;return[p[0]+(c[0]-p[0])*M,p[1]+(c[1]-p[1])*M]}}var _t=n=>{let e=-Math.PI/2+n*2*Math.PI;return[Math.cos(e)*.24,Math.sin(e)*.24]},qt=lt([[0,-.26],[.24,.16],[-.24,.16]]),jt=lt([[0,-.2],[.2,-.2],[.2,.2],[-.2,.2],[-.2,-.2]]),Q=[_t,qt,jt];function $t(n){return Math.max(6,Math.round(34*n))}var X=1.4,ut=.9,Y=X+ut,Wt=(n,e,t)=>{let a=Q.length,o=e%(Y*a),s=t.shape!=null&&t.shape>=0&&t.shape<a?Math.floor(t.shape):-1,r=s>=0?s:Math.floor(o/Y),p=s>=0?e%Y:o-r*Y,c=s>=0?0:p>X?Tt((p-X)/ut):0,M=t.spread??1,x=Q[r],u=s>=0?x:Q[(r+1)%a],i=160,d=[];for(let O=0;O<i;O++){let P=O/i,v=x(P),R=u(P);d.push([(v[0]+(R[0]-v[0])*c)*M,(v[1]+(R[1]-v[1])*c)*M])}let m=[],f=0;for(let O=0;O<i;O++){let P=d[O],v=d[(O+1)%i],R=Math.hypot(v[0]-P[0],v[1]-P[1]);m.push(R),f+=R}let h=$t(t.iconD??1),b=(t.rDot??.021)*1.35*M,y=1+.02*Math.sin(p*3.1),l=[],w=n/2,g=0,S=0;for(let O=0;O<h;O++){let P=O/h*f;for(;S+m[g]<P&&g<i-1;)S+=m[g],g++;let v=d[g],R=d[(g+1)%i],k=m[g]?Math.min(1,(P-S)/m[g]):0,D=(v[0]+(R[0]-v[0])*k)*y,C=(v[1]+(R[1]-v[1])*k)*y;l.push({x:w+D*n,y:w+C*n,z:0,r:Math.max(.35,b*n),white:.1})}return q(l,[],t.rMin)},Kt=(n,e,t)=>{let a=n/2,o=n/2,s=n/2*.82,r=j(e*.12,.3,a,o,1),p=$(n,t.rsPow??.6),c=[],M=t.orbitN??12,x=t.ghostN??40,u=t.particles??3;for(let i=0;i<M;i++){let d=_(i,1.7),m=_(i,5.2),f=_(i,8.9),h=s*(.45+.52*d),b=d*2*Math.PI,y=Math.acos(2*m-1),l=Math.sin(y)*Math.cos(b),w=Math.cos(y),g=Math.sin(y)*Math.sin(b),S=-w,O=l,P=0,v=Math.max(1e-6,Math.sqrt(S*S+O*O));S/=v,O/=v;let R=w*P-g*O,k=g*S-l*P,D=l*O-w*S,C=(.25+.55*f)*(f>.5?1:-1);for(let E=0;E<x;E++){let z=E/x*2*Math.PI,[F,N,L]=r((S*Math.cos(z)+R*Math.sin(z))*h,(O*Math.cos(z)+k*Math.sin(z))*h,(P*Math.cos(z)+D*Math.sin(z))*h),B=(L/h+1)/2;c.push({x:F,y:N,z:L,r:(t.ghostR??.9)*p,white:.72,a:(t.ghostA??.5)*(.4+.6*B)})}for(let E=0;E<u;E++){let z=e*C+E/u*2*Math.PI+m*6,[F,N,L]=r((S*Math.cos(z)+R*Math.sin(z))*h,(O*Math.cos(z)+k*Math.sin(z))*h,(P*Math.cos(z)+D*Math.sin(z))*h),B=(L/h+1)/2;c.push({x:F,y:N,z:L,r:((t.partR??1.2)+(t.partRDepth??1.6)*B)*p,white:.3-.22*B})}}return q(c,[],t.rMin)},st=(n,e,t)=>{let a=n/2,o=n/2,s=n/2*.78,r=t.spin??1,p=.3,c=j(e*.1*r,p,a,o,1),M=$(n,t.rsPow??.6),x=[],u=t.ghostN??150;for(let D=0;D<u;D++){let C=J(D,u),[E,z,F]=c(C[0]*s,C[1]*s,C[2]*s),N=(F/s+1)/2;x.push({x:E,y:z,z:F,r:.8*M,white:.78,a:.1+.22*N})}let i=e*.24*r,d=t.faceOn?-p:.55+.3*Math.sin(e*.18)*r,m=Math.cos(i),f=0,h=Math.sin(i),b=-h*Math.sin(d),y=Math.cos(d),l=m*Math.sin(d),w=f*l-h*y,g=h*b-m*l,S=m*y-f*b,O=.23*(t.wobMul??1),P=t.faceOn?s/(1+.85*O):s,v=t.lanes??5,R=t.segs??88,k=Math.max(1,Math.round(v*(t.bandMul??1)));for(let D=0;D<k;D++){let C=(D-(k-1)/2)*.075,E=Math.abs(D-(k-1)/2)/Math.max(1,(k-1)/2);for(let z=0;z<R;z++){let F=z/R*2*Math.PI,N=(.16*Math.sin(F*3-e*1.7+D*.22)+.07*Math.sin(F*5+e*1.1))*(t.wobMul??1),L=t.faceOn?1+N:1,B=t.faceOn?C:C+N,A=m*Math.cos(F)+b*Math.sin(F)+w*B,I=f*Math.cos(F)+y*Math.sin(F)+g*B,T=h*Math.cos(F)+l*Math.sin(F)+S*B,W=Math.sqrt(A*A+I*I+T*T),K=P*L,[wt,Ot,et]=c(A/W*K,I/W*K,T/W*K),G=(et/s+1)/2;x.push({x:wt,y:Ot,z:et,r:((t.rBase??1.1)+(t.rDepth??1.7)*G)*(1-.25*E)*M,white:.52-.44*G+.18*E,a:.4+.6*G})}}return q(x,[],t.rMin)},Yt=(n,e,t)=>{let a=n/2,o=n/2,s=n/2*.8*(t.spread??1),r=j(e*.12,.32,a,o,s),p=$(n,t.rsPow??.6),c=t.nodeN??30,M=t.thr??.72,x=t.nodeR??1.4,u=t.nodeRDepth??1.8,i=[];for(let h=0;h<c;h++){let b=J(h,c),y=b[0]+.3*(V(h*.31+9,e*.24)-.5)*2,l=b[1]+.3*(V(h*.53+27,e*.21)-.5)*2,w=b[2]+.3*(V(h*.77+55,e*.27)-.5)*2,g=Math.sqrt(y*y+l*l+w*w);i.push([y/g,l/g,w/g])}let d=[],m=[];for(let h=0;h<c;h++)for(let b=h+1;b<c;b++){let y=i[h][0]-i[b][0],l=i[h][1]-i[b][1],w=i[h][2]-i[b][2],g=Math.sqrt(y*y+l*l+w*w);if(g>=M)continue;let[S,O,P]=r(i[h][0],i[h][1],i[h][2]),[v,R,k]=r(i[b][0],i[b][1],i[b][2]),D=((P+k)/2+1)/2;d.push({x1:S,y1:O,x2:v,y2:R,white:.42,a:(1-g/M)*(.3+.55*D),w:Math.max(.6,(t.lineW??.8)*p)})}for(let h=0;h<c;h++){let[b,y,l]=r(i[h][0],i[h][1],i[h][2]),w=(l+1)/2,g=1+.25*Math.sin(e*1.4+h*2.7);m.push({x:b,y,z:l,r:(x+u*w)*g*p,white:.55-.45*w})}let f=t.signals??5;for(let h=0;h<f;h++){let b=Math.floor(e*.55+h*7.31),y=Math.floor(_(b,h*3.1+1.7)*c),l=Math.floor(_(b,h*5.7+4.2)*c);if(y===l)continue;let w=at(e*.55+h*7.31),g=U(i[y][0],i[l][0],w),S=U(i[y][1],i[l][1],w),O=U(i[y][2],i[l][2],w),P=Math.max(1e-6,Math.sqrt(g*g+S*S+O*O)),[v,R,k]=r(g/P,S/P,O/P),D=(k+1)/2;m.push({x:v,y:R,z:k,r:(x*1.5+u*D)*p,white:.05,a:.5+.5*D})}return q(m,d,t.rMin)},H={orbits:Kt,globe:Nt,rubik:Bt,wave:Lt,web:Yt,braid:It,ribbon:st,ring:st,morph:Wt},Ht=Object.fromEntries(Object.entries(H).map(([n,e])=>[n,(t,a,o,s,r)=>ht(t,e(a,o,r),s)])),pt={working:\"orbits\",searching:\"globe\",solving:\"rubik\",listening:\"wave\",connecting:\"web\",weaving:\"braid\",composing:\"ribbon\",breathing:\"ring\",shaping:\"morph\"},Gt={orbits:{64:{speed:1.885,count:1,size:1},32:{speed:2.9072,count:.4251,size:1.6849},20:{speed:3.9,count:.238,size:2.4}},globe:{64:{speed:2.015,count:.42,size:1.15,extra:{scanMul:4.08,dimBase:.45}},32:{speed:2.3803,count:.1839,size:1.4769,extra:{scanMul:4.2301,dimBase:.45}},20:{speed:2.665,count:.105,size:1.75,extra:{scanMul:4.335,dimBase:.45}}},rubik:{64:{speed:1.82,count:.35,size:1.05},32:{speed:1.8964,count:.1537,size:1.4951},20:{speed:1.95,count:.088,size:1.9}},wave:{64:{speed:4.388,count:.341,size:1},32:{speed:4.1512,count:.169,size:1.3232},20:{speed:3.998,count:.105,size:1.6}},web:{64:{speed:3.315,count:1.35,size:.95},32:{speed:5.0104,count:.4942,size:1.2571},20:{speed:6.63,count:.25,size:1.52}},braid:{64:{speed:1.625,count:.5,size:1},32:{speed:2.2234,count:.2056,size:1.2011},20:{speed:2.75,count:.1125,size:1.36}},ribbon:{64:{speed:2.34,count:.25,size:.85,extra:{spin:0,bandMul:3.9,wobMul:1}},32:{speed:2.7776,count:.0969,size:.9766,extra:{spin:0,bandMul:4.49,wobMul:1}},20:{speed:3.12,count:.051,size:1.073,extra:{spin:0,bandMul:4.94,wobMul:1}}},ring:{64:{speed:3.24,count:.25,size:.956,extra:{spin:0,bandMul:3.627,wobMul:.368}},32:{speed:3.5517,count:.0678,size:1.31,extra:{spin:0,bandMul:3.8265,wobMul:.4751}},20:{speed:3.78,count:.028,size:1.622,extra:{spin:0,bandMul:3.968,wobMul:.565}}},morph:{64:{speed:2.405,count:.702,size:.395,extra:{spread:1.45}},32:{speed:2.2057,count:.5937,size:.6916,extra:{spread:1.45}},20:{speed:2.08,count:.53,size:1.011,extra:{spread:1.45}}}},ot=new Map;function Z(n,e){let t=`${n}-${e}`,a=ot.get(t);if(a)return a;let o=pt[n],s=Gt[o][e],r={...zt[o]};s.count!==1&&(r=Rt(r,s.count)),s.size!==1&&(r=Dt(r,s.size)),s.extra&&(r={...r,...s.extra});let p={mode:o,speed:s.speed,opts:r};return ot.set(t,p),p}var dt={ribbon:{speed:.55,tilt:.15},nadia:{speed:.55,tilt:.15},sofia:{speed:.55,tilt:-.15},lattice:{speed:.28,tilt:-.12},orbit:{speed:.7,tilt:.2},globe:{speed:.35,tilt:-.16},network:{speed:.55,tilt:.1},braid:{speed:.65,tilt:-.2},morph:{speed:.9,tilt:.12}};function tt(n){return dt[n].speed}function Mt(n,e){return{idle:1,working:1,thinking:1,waiting:0,blocked:0,done:.65}[n]*tt(e)}var Ut=1.6;function ft(n,e){return n!==\"thinking\"&&n!==\"working\"?1:1-.55*((1-Math.cos(e*Math.PI*2/Ut))/2)}function bt(n,e,t){let a=dt[n],o=.82,s=.82,r=0,p=0,c=0,M=0,x=1;if(e===\"idle\"){let u=Math.sin(t*Math.PI/2);o+=u*.01,s+=u*.01,r=-u*.004}else if(e===\"waiting\")o=.8,s=.84,r=-.015,x=.75;else if(e===\"blocked\"){let u=Math.min(1,t/.25),i=Math.sin(u*Math.PI);o=.8+i*.015,s=.82-u*.08,r=u*.025-i*.018,c=a.tilt*u*.4,x=1-u*.4}else if(e===\"done\"){if(t<.18){let u=Math.sin(Math.PI*t/.18);o+=.03*u,s-=.04*u,r=.012*u}else if(t<1.3){let u=(t-.18)/1.12;r=-.07*Math.sin(Math.PI*u),o+=.025*Math.sin(Math.PI*u),s+=.035*Math.sin(Math.PI*u),c=Math.sin(u*Math.PI*2)*.07}}return{sx:o,sy:s,x:p,y:r,rotation:c,split:M,opacity:x}}function nt(n,e,t,a,o,s,r,p=1){if(!(e!==\"working\"&&e!==\"thinking\"&&e!==\"done\")){if(n.save(),e===\"thinking\"){if(r===\"front\")for(let c=0;c<3;c++){let M=o?.5:(1+Math.cos(a*Math.PI*2/3.6-c*Math.PI*2/3))/2,x=s[c%s.length];x!==void 0&&(n.fillStyle=x),n.globalAlpha=(.65+M*.35)*p,n.beginPath(),n.arc(t*(.5+(c-1)*.09),t*.08,Math.max(1,t*(.022+M*.005)),0,Math.PI*2),n.fill()}}else if(e===\"working\"||!o&&a<3.1){let c=e===\"done\"?3:1;for(let M=0;M<c;M++){let x=e===\"done\"?(a-M*.38)/2.2:0;if(x<0||x>1)continue;let u=e===\"done\"?Math.sin(x*Math.PI):1,i=(o?.8:a*Math.PI*2/7.2)+M*2.1,d=Math.PI*1.4,m=-.38+M*.4,f=t*(.44+x*.03),h=t*(.19+x*.11),b=l=>{let w=Math.cos(l)*f,g=Math.sin(l)*h;return[t/2+w*Math.cos(m)-g*Math.sin(m),t/2+w*Math.sin(m)+g*Math.cos(m)]},y=n.createLinearGradient(t*.1,t*.7,t*.9,t*.3);s.forEach((l,w)=>y.addColorStop(w/Math.max(1,s.length-1),l)),n.strokeStyle=y,n.lineCap=\"butt\";for(let l=0;l<100;l++){let w=l/100,g=i-d+d*w,S=Math.sin(g)>=0;if(S!==(r===\"front\"))continue;let O=Math.sin(Math.PI*(.04+w*.92));n.globalAlpha=u*(S?.92:.55)*(.25+O*.75)*p,n.lineWidth=Math.max(.65,t*.027*O),n.beginPath(),n.moveTo(...b(g)),n.lineTo(...b(g+d/100)),n.stroke()}}}n.restore()}}var Vt={orbit:\"working\",globe:\"searching\",lattice:\"solving\",network:\"connecting\",braid:\"weaving\",ribbon:\"composing\",morph:\"shaping\"},Qt={plain:{alpha:1,radius:1},\"over-picture\":{alpha:2.3,radius:1.9}},mt=[\"--nc-identity-azzurro\",\"--nc-identity-verde\",null,\"--nc-identity-rosso\"],yt=[\"--nc-chart-5\",\"--nc-chart-6\",\"--nc-warning\",\"--nc-chart-4\"],Xt=[...yt,...mt.filter(n=>n!==null)],Jt=[\"--nc-identity-cobalto\",\"--nc-identity-giallo\",null,\"--nc-identity-arancio\"],Zt={nadia:mt,sofia:Jt};function tn(n,e){let t=1-2*(n+.5)/e,a=Math.sqrt(1-t*t),o=n*Math.PI*(3-Math.sqrt(5));return[a*Math.cos(o),t,a*Math.sin(o)]}function gt(n,e,t){let a=n/2,o=n/2*.78,s=t.spin??1,r=j(e*.1*s,.3,a,a,1),p=$(n,t.rsPow??.6),c=[],M=t.ghostN??150;for(let v=0;v<M;v++){let[R,k,D]=tn(v,M),[C,E,z]=r(R*o,k*o,D*o);c.push({x:C,y:E,z,r:.8*p,white:.78,a:.1+.22*((z/o+1)/2)})}let x=e*.24*s,u=t.faceOn?-.3:.55+.3*Math.sin(e*.18)*s,[i,d,m]=[Math.cos(x),0,Math.sin(x)],[f,h,b]=[-m*Math.sin(u),Math.cos(u),i*Math.sin(u)],[y,l,w]=[d*b-m*h,m*f-i*b,i*h-d*f],g=t.wobMul??1,S=t.faceOn?o/(1+.85*.23*g):o,O=t.segs??88,P=Math.max(1,Math.round((t.lanes??5)*(t.bandMul??1)));for(let v=0;v<P;v++){let R=(v-(P-1)/2)*.075,k=Math.abs(v-(P-1)/2)/Math.max(1,(P-1)/2);for(let D=0;D<O;D++){let C=D/O*2*Math.PI,E=(.16*Math.sin(C*3-e*1.7+v*.22)+.07*Math.sin(C*5+e*1.1))*g,z=t.faceOn?1+E:1,F=t.faceOn?R:R+E,N=i*Math.cos(C)+f*Math.sin(C)+y*F,L=d*Math.cos(C)+h*Math.sin(C)+l*F,B=m*Math.cos(C)+b*Math.sin(C)+w*F,A=Math.sqrt(N*N+L*L+B*B),[I,T,W]=r(N/A*S*z,L/A*S*z,B/A*S*z),K=(W/o+1)/2;c.push({x:I,y:T,z:W,r:((t.rBase??1.1)+(t.rDepth??1.7)*K)*(1-.25*k)*p,white:.08+.1*k,a:.55+.45*K,stripe:Math.min(3,Math.floor(v/P*4))})}}return q(c,[],t.rMin)}function nn(n,e){for(let t of n.dots)t.x=e-t.x;return n}function en(n,e){let{form:t,size:a,seconds:o,color:s,state:r,age:p,reduced:c,breath:M,celebrationColors:x,stripeColors:u}=e,i=Qt[e.presence],d=Z(Vt[t===\"nadia\"||t===\"sofia\"?\"ribbon\":t],a<=32?20:64),m=t===\"nadia\"?gt(a,o,d.opts):t===\"sofia\"?nn(gt(a,o,d.opts),a):H[d.mode](a,o,d.opts);n.clearRect(0,0,a,a);let f=bt(t,e.motion===\"ambient\"?\"idle\":r,c?r===\"done\"?2:.6:p),h=c?.8:p/(r===\"done\"?.575:.2875),b=(l,w)=>{let g=(l-a/2)*f.sx,S=(w-a/2)*f.sy;return[a/2+g*Math.cos(f.rotation)-S*Math.sin(f.rotation)+(f.x+Math.sign(g)*f.split)*a,a/2+g*Math.sin(f.rotation)+S*Math.cos(f.rotation)+f.y*a]},y=f.opacity*M;e.motion===\"status\"&&nt(n,r,a,h,c,x,\"back\",M),n.fillStyle=s,n.strokeStyle=s;for(let l of m.lines)n.globalAlpha=Math.min(1,Math.max(0,(1-l.white)*(l.a??1)*y*i.alpha)),n.lineWidth=l.w*i.radius,n.beginPath(),n.moveTo(...b(l.x1,l.y1)),n.lineTo(...b(l.x2,l.y2)),n.stroke();for(let l of m.dots)n.fillStyle=l.stripe===void 0?s:u[l.stripe]??s,n.globalAlpha=Math.min(1,Math.max(0,(1-l.white)*(l.a??1)*y*i.alpha)),n.beginPath(),n.arc(...b(l.x,l.y),l.r*i.radius,0,Math.PI*2),n.fill();n.globalAlpha=1,e.motion===\"status\"&&nt(n,r,a,h,c,x,\"front\",M)}function xt(n,e){let{form:t,presence:a=\"plain\"}=e,o=n.getContext(\"2d\");if(!o)return{destroy(){},setPaused(A){},setState(A){}};let s=window.matchMedia(\"(prefers-reduced-motion: reduce)\"),r=e.paused??!1,p=!0,c=!1,M=0,x=.6,u=0,i=0,d=e.state??\"idle\",m=e.motion??\"status\",f=null,h=0,b=1,y=e.size,l=getComputedStyle(n).color,w=[l],g=[l],S=\"\";function O(){let A=n.getBoundingClientRect(),I=Math.min(A.width,A.height);return I>0?I:e.size}function P(){!o||c||!n.isConnected||(o.setTransform(b,0,0,b,0,0),en(o,{form:t,size:y,seconds:x,color:l,state:d,age:u,reduced:s.matches,breath:s.matches?ft(d,i):1,presence:a,motion:m,celebrationColors:w,stripeColors:g}))}function v(){return c||!n.isConnected||!p||document.hidden||r?!1:s.matches?m===\"status\"&&(d===\"thinking\"||d===\"working\"):m===\"ambient\"?!0:d!==\"waiting\"&&!(d===\"blocked\"&&u>=.3)}function R(A){if(M=0,!!v()){if(f!==null){let I=Math.min((A-f)/1e3,.1);s.matches?i+=I:(x+=I*(m===\"ambient\"?tt(t):Mt(d,t)),m===\"status\"&&(u+=I*(d===\"done\"?.575:.2875)),d===\"done\"&&u>=1.8&&(d=\"idle\",u=0))}f=A,A-h>=1e3/30&&(P(),h=A),M=requestAnimationFrame(R)}}function k(){cancelAnimationFrame(M),M=0,f=null,P(),v()&&(M=requestAnimationFrame(R))}function D(A){let I=document.createElement(\"span\");I.hidden=!0,I.style.color=A,(n.parentElement??document.body).append(I);let T=getComputedStyle(I).color;return I.remove(),T||l}function C(A,I){return[I,window.devicePixelRatio||1,A.color,...Xt.map(T=>A.getPropertyValue(T))].join(\"|\")}function E(){C(getComputedStyle(n),O())!==S&&z()}function z(){if(c||!n.isConnected)return;y=O();let A=Math.max(1,Math.round(y*Math.min(window.devicePixelRatio||1,2)));n.width=A,n.height=A,b=A/y;let I=getComputedStyle(n);S=C(I,y),l=I.color,w=yt.map(T=>D(`color-mix(in oklch, ${I.getPropertyValue(T).trim()||l} 75%, white)`)),g=(Zt[t]??[]).map(T=>T&&I.getPropertyValue(T).trim()||l),k()}let F=new IntersectionObserver(([A])=>{p=A?.isIntersecting??!1,k()});F.observe(n);let N=new MutationObserver(E);for(let A=n;A;A=A.parentElement)N.observe(A,{attributes:!0,attributeFilter:[\"class\",\"style\",\"data-theme\"]});let L=new ResizeObserver(()=>{Math.abs(O()-y)>=.5&&z()});L.observe(n);function B(A){A.propertyName===\"color\"&&A.target instanceof Node&&A.target.contains(n)&&E()}return document.addEventListener(\"transitionend\",B,!0),s.addEventListener(\"change\",k),document.addEventListener(\"visibilitychange\",k),window.addEventListener(\"resize\",E),z(),{setState(A){d=A,u=0,i=0,k()},setPaused(A){r=A,k()},destroy(){c=!0,cancelAnimationFrame(M),F.disconnect(),N.disconnect(),L.disconnect(),document.removeEventListener(\"transitionend\",B,!0),s.removeEventListener(\"change\",k),document.removeEventListener(\"visibilitychange\",k),window.removeEventListener(\"resize\",E)}}}for(let n of document.querySelectorAll(\"canvas[data-agent-orb]\"))xt(n,{form:n.dataset.agentOrb,size:Number(n.dataset.size),state:n.dataset.state??\"idle\"});})();\n";
2
- export const designTokensCss = "@layer tokens, theme;\n\n\n\n\n\n\n\n\n\n@layer tokens {\n :root {\n --nc-action: oklch(0.1776 0.0000 0.00);\n --nc-action-foreground: oklch(1.0000 0.0000 0.00);\n --nc-action-hover: oklch(0.3012 0.0000 0.00);\n --nc-action-active: oklch(0.0000 0.0000 0.00);\n --nc-ink: oklch(0.1776 0.0000 0.00);\n --nc-body: oklch(0.3867 0.0000 0.00);\n --nc-muted: oklch(0.5278 0.0000 0.00);\n --nc-canvas: oklch(1.0000 0.0000 0.00);\n --nc-canvas-soft: oklch(0.9851 0.0000 0.00);\n --nc-canvas-soft-2: oklch(0.9702 0.0000 0.00);\n --nc-material-workspace: oklch(0.9761 0.0000 0.00);\n --nc-material-solid: oklch(1.0000 0.0000 0.00);\n --nc-material-resting: oklch(1.0000 0.0000 0.00);\n --nc-material-raised: oklch(1.0000 0.0000 0.00);\n --nc-material-floating: oklch(1.0000 0.0000 0.00);\n --nc-material-modal: oklch(1.0000 0.0000 0.00);\n --nc-line: oklch(0.9219 0.0000 0.00);\n --nc-input: oklch(0.5624 0.0000 0.00);\n --nc-focus-ring: oklch(0.1776 0.0000 0.00);\n --nc-scrim: oklch(0.0000 0.0000 0.00);\n --nc-link: oklch(0.4815 0.1209 154.24);\n --nc-link-deep: oklch(0.3852 0.0953 154.99);\n --nc-link-bg-soft: oklch(0.9170 0.0519 161.77);\n --nc-info: oklch(0.5005 0.2804 266.17);\n --nc-info-soft: oklch(0.9457 0.0259 276.40);\n --nc-info-deep: oklch(0.3197 0.1758 266.79);\n --nc-success: oklch(0.6415 0.1644 153.23);\n --nc-success-soft: oklch(0.9170 0.0519 161.77);\n --nc-success-deep: oklch(0.3852 0.0953 154.99);\n --nc-error: oklch(0.5688 0.1995 26.59);\n --nc-error-soft: oklch(0.9522 0.0207 17.52);\n --nc-error-deep: oklch(0.4235 0.1525 27.08);\n --nc-warning: oklch(0.8466 0.1678 84.63);\n --nc-warning-soft: oklch(0.9649 0.0461 90.87);\n --nc-warning-deep: oklch(0.4834 0.0995 82.44);\n --nc-navigation-selection-bg: oklch(0.9461 0.0000 0.00);\n --nc-navigation-selection-fg: oklch(0.1776 0.0000 0.00);\n --nc-navigation-selection-hover: oklch(0.9219 0.0000 0.00);\n --nc-state-ready: oklch(0.5278 0.0000 0.00);\n --nc-state-running: oklch(0.5005 0.2804 266.17);\n --nc-state-review: oklch(0.8466 0.1678 84.63);\n --nc-state-blocked: oklch(0.5688 0.1995 26.59);\n --nc-state-complete: oklch(0.6415 0.1644 153.23);\n --nc-identity-verde: oklch(0.6415 0.1644 153.23);\n --nc-identity-rosso: oklch(0.5688 0.1995 26.59);\n --nc-identity-arancio: oklch(0.6824 0.2108 37.70);\n --nc-identity-giallo: oklch(0.8466 0.1678 84.63);\n --nc-identity-cobalto: oklch(0.5005 0.2804 266.17);\n --nc-identity-azzurro: oklch(0.5618 0.2019 258.24);\n --nc-identity-ink: oklch(0.0000 0.0000 0.00);\n --nc-identity-white: oklch(1.0000 0.0000 0.00);\n --nc-logo-dot: oklch(0.5005 0.2804 266.17);\n --nc-chart-1: oklch(0.5005 0.2804 266.17);\n --nc-chart-2: oklch(0.6415 0.1644 153.23);\n --nc-chart-3: oklch(0.7638 0.1562 86.86);\n --nc-chart-4: oklch(0.5688 0.1995 26.59);\n --nc-chart-5: oklch(0.6161 0.1062 208.85);\n --nc-chart-6: oklch(0.5015 0.1883 294.99);\n --nc-dark-canvas: oklch(0.0000 0.0000 0.00);\n --nc-dark-canvas-soft: oklch(0.1776 0.0000 0.00);\n --nc-dark-canvas-soft-2: oklch(0.2178 0.0000 0.00);\n --nc-dark-material-workspace: oklch(0.0000 0.0000 0.00);\n --nc-dark-material-solid: oklch(0.0000 0.0000 0.00);\n --nc-dark-material-resting: oklch(0.2264 0.0000 0.00);\n --nc-dark-material-raised: oklch(0.2520 0.0000 0.00);\n --nc-dark-material-floating: oklch(0.2686 0.0000 0.00);\n --nc-dark-material-modal: oklch(0.2686 0.0000 0.00);\n --nc-dark-ink: oklch(0.9461 0.0000 0.00);\n --nc-dark-body: oklch(0.8297 0.0000 0.00);\n --nc-dark-muted: oklch(0.6993 0.0000 0.00);\n --nc-dark-line: oklch(0.2686 0.0000 0.00);\n --nc-dark-input: oklch(0.5590 0.0000 0.00);\n --nc-dark-on-primary: oklch(0.1448 0.0000 0.00);\n --nc-dark-action: oklch(0.9461 0.0000 0.00);\n --nc-dark-action-foreground: oklch(0.1448 0.0000 0.00);\n --nc-dark-action-hover: oklch(0.8761 0.0000 0.00);\n --nc-dark-action-active: oklch(0.8297 0.0000 0.00);\n --nc-dark-link: oklch(0.7661 0.1498 157.10);\n --nc-dark-link-deep: oklch(0.8524 0.0996 159.83);\n --nc-dark-link-bg-soft: oklch(0.2893 0.0697 156.32);\n --nc-dark-focus-ring: oklch(0.9461 0.0000 0.00);\n --nc-dark-scrim: oklch(0.0000 0.0000 0.00);\n --nc-dark-error: oklch(0.7955 0.0980 21.02);\n --nc-dark-error-soft: oklch(0.2296 0.0728 26.06);\n --nc-dark-error-deep: oklch(0.8856 0.0534 19.64);\n --nc-dark-warning: oklch(0.8939 0.1387 90.47);\n --nc-dark-warning-soft: oklch(0.3135 0.0643 85.04);\n --nc-dark-warning-deep: oklch(0.9320 0.0896 90.86);\n --nc-dark-info: oklch(0.7067 0.1528 272.08);\n --nc-dark-info-soft: oklch(0.2118 0.1033 268.28);\n --nc-dark-info-deep: oklch(0.8222 0.0888 274.44);\n --nc-dark-success: oklch(0.7019 0.1753 153.20);\n --nc-dark-success-soft: oklch(0.2893 0.0697 156.32);\n --nc-dark-success-deep: oklch(0.8524 0.0996 159.83);\n --nc-dark-state-ready: oklch(0.5624 0.0000 0.00);\n --nc-dark-state-running: oklch(0.5923 0.2215 269.61);\n --nc-dark-state-review: oklch(0.8466 0.1678 84.63);\n --nc-dark-state-blocked: oklch(0.5688 0.1995 26.59);\n --nc-dark-state-complete: oklch(0.6415 0.1644 153.23);\n --nc-dark-logo-dot: oklch(0.5923 0.2215 269.61);\n --nc-dark-navigation-selection-bg: oklch(0.2393 0.0000 0.00);\n --nc-dark-navigation-selection-fg: oklch(0.9461 0.0000 0.00);\n --nc-dark-navigation-selection-hover: oklch(0.2686 0.0000 0.00);\n --nc-dark-chart-1: oklch(0.5923 0.2215 269.61);\n --nc-dark-chart-2: oklch(0.6415 0.1644 153.23);\n --nc-dark-chart-3: oklch(0.8939 0.1387 90.47);\n --nc-dark-chart-4: oklch(0.6627 0.1685 23.66);\n --nc-dark-chart-5: oklch(0.7820 0.1247 190.99);\n --nc-dark-chart-6: oklch(0.6297 0.1321 299.36);\n --nc-xxs: 4px;\n --nc-xs: 8px;\n --nc-sm: 12px;\n --nc-md: 16px;\n --nc-lg: 24px;\n --nc-xl: 32px;\n --nc-2xl: 40px;\n --nc-3xl: 48px;\n --nc-4xl: 64px;\n --nc-5xl: 96px;\n --nc-6xl: 128px;\n --nc-guide: 1px;\n --nc-icon-stroke: 1.5px;\n --nc-icon-stroke-sm: 1.25px;\n --nc-focus-outline-width: 2px;\n --nc-focus-outline-offset: 2px;\n --nc-control-height: 32px;\n --nc-control-padding-inline: 10px;\n --nc-touch-target: 44px;\n --nc-rounded-none: 0px;\n --nc-rounded-xs: 2px;\n --nc-rounded-sm: 6px;\n --nc-rounded-md: 8px;\n --nc-rounded-lg: 12px;\n --nc-rounded-xl: 16px;\n --nc-rounded-2xl: 20px;\n --nc-rounded-3xl: 24px;\n --nc-rounded-full: 9999px;\n --nc-type-display-xl-font-family:\n Geist,\n Inter,\n system-ui,\n -apple-system,\n sans-serif;\n --nc-type-display-xl-font-size: 72px;\n --nc-type-display-xl-font-weight: 500;\n --nc-type-display-xl-line-height: 74px;\n --nc-type-display-xl-letter-spacing: -2.52px;\n --nc-type-display-lg-font-family:\n Geist,\n Inter,\n system-ui,\n -apple-system,\n sans-serif;\n --nc-type-display-lg-font-size: 52px;\n --nc-type-display-lg-font-weight: 500;\n --nc-type-display-lg-line-height: 54px;\n --nc-type-display-lg-letter-spacing: -1.5px;\n --nc-type-display-md-font-family:\n Geist,\n Inter,\n system-ui,\n -apple-system,\n sans-serif;\n --nc-type-display-md-font-size: 40px;\n --nc-type-display-md-font-weight: 500;\n --nc-type-display-md-line-height: 42px;\n --nc-type-display-md-letter-spacing: -1px;\n --nc-type-heading-lg-font-family:\n Geist,\n Inter,\n system-ui,\n -apple-system,\n sans-serif;\n --nc-type-heading-lg-font-size: 30px;\n --nc-type-heading-lg-font-weight: 600;\n --nc-type-heading-lg-line-height: 32px;\n --nc-type-heading-lg-letter-spacing: 0px;\n --nc-type-heading-md-font-family:\n Geist,\n Inter,\n system-ui,\n -apple-system,\n sans-serif;\n --nc-type-heading-md-font-size: 24px;\n --nc-type-heading-md-font-weight: 600;\n --nc-type-heading-md-line-height: 32px;\n --nc-type-heading-md-letter-spacing: 0px;\n --nc-type-heading-sm-font-family:\n Geist,\n Inter,\n system-ui,\n -apple-system,\n sans-serif;\n --nc-type-heading-sm-font-size: 20px;\n --nc-type-heading-sm-font-weight: 600;\n --nc-type-heading-sm-line-height: 28px;\n --nc-type-heading-sm-letter-spacing: 0px;\n --nc-type-body-lg-font-family:\n Geist,\n Inter,\n system-ui,\n -apple-system,\n sans-serif;\n --nc-type-body-lg-font-size: 18px;\n --nc-type-body-lg-font-weight: 400;\n --nc-type-body-lg-line-height: 27px;\n --nc-type-body-lg-letter-spacing: 0px;\n --nc-type-body-md-font-family:\n Geist,\n Inter,\n system-ui,\n -apple-system,\n sans-serif;\n --nc-type-body-md-font-size: 16px;\n --nc-type-body-md-font-weight: 400;\n --nc-type-body-md-line-height: 25px;\n --nc-type-body-md-letter-spacing: 0px;\n --nc-type-body-sm-font-family:\n Geist,\n Inter,\n system-ui,\n -apple-system,\n sans-serif;\n --nc-type-body-sm-font-size: 14px;\n --nc-type-body-sm-font-weight: 400;\n --nc-type-body-sm-line-height: 20px;\n --nc-type-body-sm-letter-spacing: 0px;\n --nc-type-caption-font-family:\n Geist,\n Inter,\n system-ui,\n -apple-system,\n sans-serif;\n --nc-type-caption-font-size: 12px;\n --nc-type-caption-font-weight: 400;\n --nc-type-caption-line-height: 16px;\n --nc-type-caption-letter-spacing: 0px;\n --nc-type-code-font-family:\n Geist Mono,\n ui-monospace,\n SFMono-Regular,\n Menlo,\n Monaco,\n monospace;\n --nc-type-code-font-size: 13px;\n --nc-type-code-font-weight: 400;\n --nc-type-code-line-height: 20px;\n --nc-type-code-letter-spacing: 0px;\n --nc-type-label-mono-font-family:\n Geist Mono,\n ui-monospace,\n SFMono-Regular,\n Menlo,\n Monaco,\n monospace;\n --nc-type-label-mono-font-size: 12px;\n --nc-type-label-mono-font-weight: 500;\n --nc-type-label-mono-line-height: 16px;\n --nc-type-label-mono-letter-spacing: 0px;\n --nc-material-scrim-opacity: 50%;\n --nc-material-glass-opacity: 60%;\n --nc-material-glass-saturation: 180%;\n --nc-material-glass-blur: 20px;\n --nc-elevation-resting:\n 0px 1px 2px 0px rgb(0% 0% 0% / 0.1),\n 0px 12px 24px -6px rgb(3.9% 7.8% 35.3% / 0.3),\n 0px 0px 0px 1px rgb(0% 0% 0% / 0.08);\n --nc-elevation-raised:\n 0px 2px 4px 0px rgb(0% 0% 0% / 0.1),\n 0px 24px 48px -12px rgb(3.9% 7.8% 35.3% / 0.35),\n 0px 64px 128px -32px rgb(3.9% 7.8% 35.3% / 0.45),\n 0px 0px 0px 1px rgb(0% 0% 0% / 0.08);\n --nc-elevation-floating:\n inset 0px 1px 0px 0px rgb(100% 100% 100% / 0.75),\n inset 0px 0px 0px 1px rgb(100% 100% 100% / 0.35),\n 0px 2px 4px 0px rgb(0% 0% 0% / 0.1),\n 0px 32px 64px -16px rgb(3.9% 7.8% 35.3% / 0.4),\n 0px 80px 160px -40px rgb(3.9% 7.8% 35.3% / 0.5),\n 0px 0px 0px 1px rgb(0% 0% 0% / 0.08);\n --nc-elevation-modal:\n 0px 2px 4px 0px rgb(0% 0% 0% / 0.1),\n 0px 40px 80px -20px rgb(3.9% 7.8% 35.3% / 0.45),\n 0px 96px 192px -48px rgb(3.9% 7.8% 35.3% / 0.55),\n 0px 0px 0px 1px rgb(0% 0% 0% / 0.08);\n --nc-duration-control: 100ms;\n --nc-duration-close: 140ms;\n --nc-duration-confirm: 180ms;\n --nc-duration-open: 220ms;\n --nc-duration-msg-in: 240ms;\n --nc-duration-transition: 240ms;\n --nc-duration-drawer-swipe: 400ms;\n --nc-duration-drawer: 450ms;\n --nc-duration-wait: 1.6s;\n --nc-ease-emphasized: cubic-bezier(0.3, 0.7, 0.2, 1);\n --nc-ease-out-strong: cubic-bezier(0.23, 1, 0.32, 1);\n --nc-ease-in-out-strong: cubic-bezier(0.77, 0, 0.175, 1);\n --nc-ease-drawer: cubic-bezier(0.32, 0.72, 0, 1);\n --nc-content-max: 1200px;\n --nc-gutter-mobile: 20px;\n --nc-gutter-tablet: 40px;\n --nc-gutter-desktop: 64px;\n --nc-section-step-mobile: 64px;\n --nc-section-step-desktop: 96px;\n }\n}\n\n\n@layer theme {\n .dark {\n --nc-canvas: var(--nc-dark-canvas);\n --nc-canvas-soft: var(--nc-dark-canvas-soft);\n --nc-canvas-soft-2: var(--nc-dark-canvas-soft-2);\n --nc-material-workspace: var(--nc-dark-material-workspace);\n --nc-material-solid: var(--nc-dark-material-solid);\n --nc-material-resting: var(--nc-dark-material-resting);\n --nc-material-raised: var(--nc-dark-material-raised);\n --nc-material-floating: var(--nc-dark-material-floating);\n --nc-material-modal: var(--nc-dark-material-modal);\n --nc-ink: var(--nc-dark-ink);\n --nc-body: var(--nc-dark-body);\n --nc-muted: var(--nc-dark-muted);\n --nc-line: var(--nc-dark-line);\n --nc-input: var(--nc-dark-input);\n --nc-action: var(--nc-dark-action);\n --nc-action-foreground: var(--nc-dark-action-foreground);\n --nc-action-hover: var(--nc-dark-action-hover);\n --nc-action-active: var(--nc-dark-action-active);\n --nc-link: var(--nc-dark-link);\n --nc-link-deep: var(--nc-dark-link-deep);\n --nc-link-bg-soft: var(--nc-dark-link-bg-soft);\n --nc-focus-ring: var(--nc-dark-focus-ring);\n --nc-scrim: var(--nc-dark-scrim);\n --nc-error: var(--nc-dark-error);\n --nc-error-soft: var(--nc-dark-error-soft);\n --nc-error-deep: var(--nc-dark-error-deep);\n --nc-warning: var(--nc-dark-warning);\n --nc-warning-soft: var(--nc-dark-warning-soft);\n --nc-warning-deep: var(--nc-dark-warning-deep);\n --nc-info: var(--nc-dark-info);\n --nc-info-soft: var(--nc-dark-info-soft);\n --nc-info-deep: var(--nc-dark-info-deep);\n --nc-success: var(--nc-dark-success);\n --nc-success-soft: var(--nc-dark-success-soft);\n --nc-success-deep: var(--nc-dark-success-deep);\n --nc-state-ready: var(--nc-dark-state-ready);\n --nc-state-running: var(--nc-dark-state-running);\n --nc-state-review: var(--nc-dark-state-review);\n --nc-state-blocked: var(--nc-dark-state-blocked);\n --nc-state-complete: var(--nc-dark-state-complete);\n --nc-logo-dot: var(--nc-dark-logo-dot);\n --nc-navigation-selection-bg: var(--nc-dark-navigation-selection-bg);\n --nc-navigation-selection-fg: var(--nc-dark-navigation-selection-fg);\n --nc-navigation-selection-hover: var(--nc-dark-navigation-selection-hover);\n --nc-chart-1: var(--nc-dark-chart-1);\n --nc-chart-2: var(--nc-dark-chart-2);\n --nc-chart-3: var(--nc-dark-chart-3);\n --nc-chart-4: var(--nc-dark-chart-4);\n --nc-chart-5: var(--nc-dark-chart-5);\n --nc-chart-6: var(--nc-dark-chart-6);\n --nc-elevation-resting:\n inset 0px 1px 0px 0px rgb(100% 100% 100% / 0.08),\n inset 0px 0px 0px 1px rgb(100% 100% 100% / 0.11),\n 0px 1px 2px 0px rgb(0% 0% 0% / 0.6),\n 0px 0px 0px 1px rgb(0% 0% 0% / 0.8);\n --nc-elevation-raised:\n inset 0px 1px 0px 0px rgb(100% 100% 100% / 0.11),\n inset 0px 0px 0px 1px rgb(100% 100% 100% / 0.14),\n 0px 16px 32px -8px rgb(0% 0% 0% / 0.6),\n 0px 0px 0px 1px rgb(0% 0% 0% / 0.8);\n --nc-elevation-floating:\n inset 0px 1px 0px 0px rgb(100% 100% 100% / 0.14),\n inset 0px 0px 0px 1px rgb(100% 100% 100% / 0.17),\n 0px 12px 24px -6px rgb(0% 0% 0% / 0.6),\n 0px 32px 64px -16px rgb(0% 0% 0% / 0.7),\n 0px 0px 0px 1px rgb(0% 0% 0% / 0.8);\n --nc-elevation-modal:\n inset 0px 1px 0px 0px rgb(100% 100% 100% / 0.17),\n inset 0px 0px 0px 1px rgb(100% 100% 100% / 0.2),\n 0px 64px 128px -32px rgb(0% 0% 0% / 0.8),\n 0px 0px 0px 1px rgb(0% 0% 0% / 0.8);\n }\n}";
2
+ export const designTokensCss = "@layer tokens, theme;\n\n\n\n\n\n\n\n\n\n@layer tokens {\n :root {\n --nc-action: oklch(0.1776 0.0000 0.00);\n --nc-action-foreground: oklch(1.0000 0.0000 0.00);\n --nc-action-hover: oklch(0.3012 0.0000 0.00);\n --nc-action-active: oklch(0.0000 0.0000 0.00);\n --nc-ink: oklch(0.1776 0.0000 0.00);\n --nc-body: oklch(0.3867 0.0000 0.00);\n --nc-muted: oklch(0.5278 0.0000 0.00);\n --nc-canvas: oklch(1.0000 0.0000 0.00);\n --nc-canvas-soft: oklch(0.9851 0.0000 0.00);\n --nc-canvas-soft-2: oklch(0.9702 0.0000 0.00);\n --nc-material-workspace: oklch(0.9761 0.0000 0.00);\n --nc-material-solid: oklch(1.0000 0.0000 0.00);\n --nc-material-resting: oklch(1.0000 0.0000 0.00);\n --nc-material-raised: oklch(1.0000 0.0000 0.00);\n --nc-material-floating: oklch(1.0000 0.0000 0.00);\n --nc-material-modal: oklch(1.0000 0.0000 0.00);\n --nc-line: oklch(0.9219 0.0000 0.00);\n --nc-input: oklch(0.5624 0.0000 0.00);\n --nc-focus-ring: oklch(0.1776 0.0000 0.00);\n --nc-scrim: oklch(0.0000 0.0000 0.00);\n --nc-link: oklch(0.4815 0.1209 154.24);\n --nc-link-deep: oklch(0.3852 0.0953 154.99);\n --nc-link-bg-soft: oklch(0.9170 0.0519 161.77);\n --nc-info: oklch(0.5005 0.2804 266.17);\n --nc-info-soft: oklch(0.9457 0.0259 276.40);\n --nc-info-deep: oklch(0.3197 0.1758 266.79);\n --nc-success: oklch(0.6415 0.1644 153.23);\n --nc-success-soft: oklch(0.9170 0.0519 161.77);\n --nc-success-deep: oklch(0.3852 0.0953 154.99);\n --nc-error: oklch(0.5688 0.1995 26.59);\n --nc-error-soft: oklch(0.9522 0.0207 17.52);\n --nc-error-deep: oklch(0.4235 0.1525 27.08);\n --nc-warning: oklch(0.8466 0.1678 84.63);\n --nc-warning-soft: oklch(0.9649 0.0461 90.87);\n --nc-warning-deep: oklch(0.4834 0.0995 82.44);\n --nc-navigation-selection-bg: oklch(0.9461 0.0000 0.00);\n --nc-navigation-selection-fg: oklch(0.1776 0.0000 0.00);\n --nc-navigation-selection-hover: oklch(0.9219 0.0000 0.00);\n --nc-state-ready: oklch(0.5278 0.0000 0.00);\n --nc-state-running: oklch(0.5005 0.2804 266.17);\n --nc-state-review: oklch(0.8466 0.1678 84.63);\n --nc-state-blocked: oklch(0.5688 0.1995 26.59);\n --nc-state-complete: oklch(0.6415 0.1644 153.23);\n --nc-identity-verde: oklch(0.6415 0.1644 153.23);\n --nc-identity-rosso: oklch(0.5688 0.1995 26.59);\n --nc-identity-arancio: oklch(0.6824 0.2108 37.70);\n --nc-identity-giallo: oklch(0.8466 0.1678 84.63);\n --nc-identity-cobalto: oklch(0.5005 0.2804 266.17);\n --nc-identity-azzurro: oklch(0.5618 0.2019 258.24);\n --nc-identity-ink: oklch(0.0000 0.0000 0.00);\n --nc-identity-white: oklch(1.0000 0.0000 0.00);\n --nc-logo-dot: oklch(0.5005 0.2804 266.17);\n --nc-chart-1: oklch(0.5005 0.2804 266.17);\n --nc-chart-2: oklch(0.6415 0.1644 153.23);\n --nc-chart-3: oklch(0.7638 0.1562 86.86);\n --nc-chart-4: oklch(0.5688 0.1995 26.59);\n --nc-chart-5: oklch(0.6161 0.1062 208.85);\n --nc-chart-6: oklch(0.5015 0.1883 294.99);\n --nc-dark-canvas: oklch(0.0000 0.0000 0.00);\n --nc-dark-canvas-soft: oklch(0.1776 0.0000 0.00);\n --nc-dark-canvas-soft-2: oklch(0.2178 0.0000 0.00);\n --nc-dark-material-workspace: oklch(0.0000 0.0000 0.00);\n --nc-dark-material-solid: oklch(0.0000 0.0000 0.00);\n --nc-dark-material-resting: oklch(0.1448 0.0000 0.00);\n --nc-dark-material-raised: oklch(0.1684 0.0000 0.00);\n --nc-dark-material-floating: oklch(0.1776 0.0000 0.00);\n --nc-dark-material-modal: oklch(0.1776 0.0000 0.00);\n --nc-dark-ink: oklch(0.9461 0.0000 0.00);\n --nc-dark-body: oklch(0.8297 0.0000 0.00);\n --nc-dark-muted: oklch(0.6993 0.0000 0.00);\n --nc-dark-line: oklch(0.2686 0.0000 0.00);\n --nc-dark-input: oklch(0.5590 0.0000 0.00);\n --nc-dark-on-primary: oklch(0.1448 0.0000 0.00);\n --nc-dark-action: oklch(0.9461 0.0000 0.00);\n --nc-dark-action-foreground: oklch(0.1448 0.0000 0.00);\n --nc-dark-action-hover: oklch(0.8761 0.0000 0.00);\n --nc-dark-action-active: oklch(0.8297 0.0000 0.00);\n --nc-dark-link: oklch(0.7661 0.1498 157.10);\n --nc-dark-link-deep: oklch(0.8524 0.0996 159.83);\n --nc-dark-link-bg-soft: oklch(0.2893 0.0697 156.32);\n --nc-dark-focus-ring: oklch(0.9461 0.0000 0.00);\n --nc-dark-scrim: oklch(0.0000 0.0000 0.00);\n --nc-dark-error: oklch(0.7955 0.0980 21.02);\n --nc-dark-error-soft: oklch(0.2296 0.0728 26.06);\n --nc-dark-error-deep: oklch(0.8856 0.0534 19.64);\n --nc-dark-warning: oklch(0.8939 0.1387 90.47);\n --nc-dark-warning-soft: oklch(0.3135 0.0643 85.04);\n --nc-dark-warning-deep: oklch(0.9320 0.0896 90.86);\n --nc-dark-info: oklch(0.7067 0.1528 272.08);\n --nc-dark-info-soft: oklch(0.2118 0.1033 268.28);\n --nc-dark-info-deep: oklch(0.8222 0.0888 274.44);\n --nc-dark-success: oklch(0.7019 0.1753 153.20);\n --nc-dark-success-soft: oklch(0.2893 0.0697 156.32);\n --nc-dark-success-deep: oklch(0.8524 0.0996 159.83);\n --nc-dark-state-ready: oklch(0.5624 0.0000 0.00);\n --nc-dark-state-running: oklch(0.5923 0.2215 269.61);\n --nc-dark-state-review: oklch(0.8466 0.1678 84.63);\n --nc-dark-state-blocked: oklch(0.5688 0.1995 26.59);\n --nc-dark-state-complete: oklch(0.6415 0.1644 153.23);\n --nc-dark-logo-dot: oklch(0.5923 0.2215 269.61);\n --nc-dark-navigation-selection-bg: oklch(0.2393 0.0000 0.00);\n --nc-dark-navigation-selection-fg: oklch(0.9461 0.0000 0.00);\n --nc-dark-navigation-selection-hover: oklch(0.2686 0.0000 0.00);\n --nc-dark-chart-1: oklch(0.5923 0.2215 269.61);\n --nc-dark-chart-2: oklch(0.6415 0.1644 153.23);\n --nc-dark-chart-3: oklch(0.8939 0.1387 90.47);\n --nc-dark-chart-4: oklch(0.6627 0.1685 23.66);\n --nc-dark-chart-5: oklch(0.7820 0.1247 190.99);\n --nc-dark-chart-6: oklch(0.6297 0.1321 299.36);\n --nc-xxs: 4px;\n --nc-xs: 8px;\n --nc-sm: 12px;\n --nc-md: 16px;\n --nc-lg: 24px;\n --nc-xl: 32px;\n --nc-2xl: 40px;\n --nc-3xl: 48px;\n --nc-4xl: 64px;\n --nc-5xl: 96px;\n --nc-6xl: 128px;\n --nc-guide: 1px;\n --nc-icon-stroke: 1.5px;\n --nc-icon-stroke-sm: 1.25px;\n --nc-focus-outline-width: 2px;\n --nc-focus-outline-offset: 2px;\n --nc-control-height: 32px;\n --nc-control-padding-inline: 10px;\n --nc-touch-target: 44px;\n --nc-rounded-none: 0px;\n --nc-rounded-xs: 2px;\n --nc-rounded-sm: 6px;\n --nc-rounded-md: 8px;\n --nc-rounded-lg: 12px;\n --nc-rounded-xl: 16px;\n --nc-rounded-2xl: 20px;\n --nc-rounded-3xl: 24px;\n --nc-rounded-full: 9999px;\n --nc-type-display-xl-font-family:\n Geist,\n Inter,\n system-ui,\n -apple-system,\n sans-serif;\n --nc-type-display-xl-font-size: 72px;\n --nc-type-display-xl-font-weight: 500;\n --nc-type-display-xl-line-height: 74px;\n --nc-type-display-xl-letter-spacing: -2.52px;\n --nc-type-display-lg-font-family:\n Geist,\n Inter,\n system-ui,\n -apple-system,\n sans-serif;\n --nc-type-display-lg-font-size: 52px;\n --nc-type-display-lg-font-weight: 500;\n --nc-type-display-lg-line-height: 54px;\n --nc-type-display-lg-letter-spacing: -1.5px;\n --nc-type-display-md-font-family:\n Geist,\n Inter,\n system-ui,\n -apple-system,\n sans-serif;\n --nc-type-display-md-font-size: 40px;\n --nc-type-display-md-font-weight: 500;\n --nc-type-display-md-line-height: 42px;\n --nc-type-display-md-letter-spacing: -1px;\n --nc-type-heading-lg-font-family:\n Geist,\n Inter,\n system-ui,\n -apple-system,\n sans-serif;\n --nc-type-heading-lg-font-size: 30px;\n --nc-type-heading-lg-font-weight: 600;\n --nc-type-heading-lg-line-height: 32px;\n --nc-type-heading-lg-letter-spacing: 0px;\n --nc-type-heading-md-font-family:\n Geist,\n Inter,\n system-ui,\n -apple-system,\n sans-serif;\n --nc-type-heading-md-font-size: 24px;\n --nc-type-heading-md-font-weight: 600;\n --nc-type-heading-md-line-height: 32px;\n --nc-type-heading-md-letter-spacing: 0px;\n --nc-type-heading-sm-font-family:\n Geist,\n Inter,\n system-ui,\n -apple-system,\n sans-serif;\n --nc-type-heading-sm-font-size: 20px;\n --nc-type-heading-sm-font-weight: 600;\n --nc-type-heading-sm-line-height: 28px;\n --nc-type-heading-sm-letter-spacing: 0px;\n --nc-type-body-lg-font-family:\n Geist,\n Inter,\n system-ui,\n -apple-system,\n sans-serif;\n --nc-type-body-lg-font-size: 18px;\n --nc-type-body-lg-font-weight: 400;\n --nc-type-body-lg-line-height: 27px;\n --nc-type-body-lg-letter-spacing: 0px;\n --nc-type-body-md-font-family:\n Geist,\n Inter,\n system-ui,\n -apple-system,\n sans-serif;\n --nc-type-body-md-font-size: 16px;\n --nc-type-body-md-font-weight: 400;\n --nc-type-body-md-line-height: 25px;\n --nc-type-body-md-letter-spacing: 0px;\n --nc-type-body-sm-font-family:\n Geist,\n Inter,\n system-ui,\n -apple-system,\n sans-serif;\n --nc-type-body-sm-font-size: 14px;\n --nc-type-body-sm-font-weight: 400;\n --nc-type-body-sm-line-height: 20px;\n --nc-type-body-sm-letter-spacing: 0px;\n --nc-type-caption-font-family:\n Geist,\n Inter,\n system-ui,\n -apple-system,\n sans-serif;\n --nc-type-caption-font-size: 12px;\n --nc-type-caption-font-weight: 400;\n --nc-type-caption-line-height: 16px;\n --nc-type-caption-letter-spacing: 0px;\n --nc-type-code-font-family:\n Geist Mono,\n ui-monospace,\n SFMono-Regular,\n Menlo,\n Monaco,\n monospace;\n --nc-type-code-font-size: 13px;\n --nc-type-code-font-weight: 400;\n --nc-type-code-line-height: 20px;\n --nc-type-code-letter-spacing: 0px;\n --nc-type-label-mono-font-family:\n Geist Mono,\n ui-monospace,\n SFMono-Regular,\n Menlo,\n Monaco,\n monospace;\n --nc-type-label-mono-font-size: 12px;\n --nc-type-label-mono-font-weight: 500;\n --nc-type-label-mono-line-height: 16px;\n --nc-type-label-mono-letter-spacing: 0px;\n --nc-material-scrim-opacity: 50%;\n --nc-material-glass-opacity: 60%;\n --nc-material-glass-saturation: 180%;\n --nc-material-glass-blur: 20px;\n --nc-elevation-resting: 0px 2px 2px 0px rgb(0% 0% 0% / 0.04), 0px 0px 0px 1px rgb(0% 0% 0% / 0.08);\n --nc-elevation-raised:\n 0px 2px 2px 0px rgb(0% 0% 0% / 0.04),\n 0px 8px 8px -8px rgb(0% 0% 0% / 0.04),\n 0px 0px 0px 1px rgb(0% 0% 0% / 0.08);\n --nc-elevation-floating:\n 0px 1px 1px 0px rgb(0% 0% 0% / 0.02),\n 0px 4px 8px -4px rgb(0% 0% 0% / 0.04),\n 0px 16px 24px -8px rgb(0% 0% 0% / 0.06),\n 0px 0px 0px 1px rgb(0% 0% 0% / 0.08);\n --nc-elevation-modal:\n 0px 1px 1px 0px rgb(0% 0% 0% / 0.02),\n 0px 8px 16px -4px rgb(0% 0% 0% / 0.04),\n 0px 24px 32px -8px rgb(0% 0% 0% / 0.06),\n 0px 0px 0px 1px rgb(0% 0% 0% / 0.08);\n --nc-duration-control: 100ms;\n --nc-duration-close: 140ms;\n --nc-duration-confirm: 180ms;\n --nc-duration-open: 220ms;\n --nc-duration-msg-in: 240ms;\n --nc-duration-transition: 240ms;\n --nc-duration-drawer-swipe: 400ms;\n --nc-duration-drawer: 450ms;\n --nc-duration-wait: 1.6s;\n --nc-ease-emphasized: cubic-bezier(0.3, 0.7, 0.2, 1);\n --nc-ease-out-strong: cubic-bezier(0.23, 1, 0.32, 1);\n --nc-ease-in-out-strong: cubic-bezier(0.77, 0, 0.175, 1);\n --nc-ease-drawer: cubic-bezier(0.32, 0.72, 0, 1);\n --nc-content-max: 1200px;\n --nc-gutter-mobile: 20px;\n --nc-gutter-tablet: 40px;\n --nc-gutter-desktop: 64px;\n --nc-section-step-mobile: 64px;\n --nc-section-step-desktop: 96px;\n }\n}\n\n\n@layer theme {\n .dark {\n --nc-canvas: var(--nc-dark-canvas);\n --nc-canvas-soft: var(--nc-dark-canvas-soft);\n --nc-canvas-soft-2: var(--nc-dark-canvas-soft-2);\n --nc-material-workspace: var(--nc-dark-material-workspace);\n --nc-material-solid: var(--nc-dark-material-solid);\n --nc-material-resting: var(--nc-dark-material-resting);\n --nc-material-raised: var(--nc-dark-material-raised);\n --nc-material-floating: var(--nc-dark-material-floating);\n --nc-material-modal: var(--nc-dark-material-modal);\n --nc-ink: var(--nc-dark-ink);\n --nc-body: var(--nc-dark-body);\n --nc-muted: var(--nc-dark-muted);\n --nc-line: var(--nc-dark-line);\n --nc-input: var(--nc-dark-input);\n --nc-action: var(--nc-dark-action);\n --nc-action-foreground: var(--nc-dark-action-foreground);\n --nc-action-hover: var(--nc-dark-action-hover);\n --nc-action-active: var(--nc-dark-action-active);\n --nc-link: var(--nc-dark-link);\n --nc-link-deep: var(--nc-dark-link-deep);\n --nc-link-bg-soft: var(--nc-dark-link-bg-soft);\n --nc-focus-ring: var(--nc-dark-focus-ring);\n --nc-scrim: var(--nc-dark-scrim);\n --nc-error: var(--nc-dark-error);\n --nc-error-soft: var(--nc-dark-error-soft);\n --nc-error-deep: var(--nc-dark-error-deep);\n --nc-warning: var(--nc-dark-warning);\n --nc-warning-soft: var(--nc-dark-warning-soft);\n --nc-warning-deep: var(--nc-dark-warning-deep);\n --nc-info: var(--nc-dark-info);\n --nc-info-soft: var(--nc-dark-info-soft);\n --nc-info-deep: var(--nc-dark-info-deep);\n --nc-success: var(--nc-dark-success);\n --nc-success-soft: var(--nc-dark-success-soft);\n --nc-success-deep: var(--nc-dark-success-deep);\n --nc-state-ready: var(--nc-dark-state-ready);\n --nc-state-running: var(--nc-dark-state-running);\n --nc-state-review: var(--nc-dark-state-review);\n --nc-state-blocked: var(--nc-dark-state-blocked);\n --nc-state-complete: var(--nc-dark-state-complete);\n --nc-logo-dot: var(--nc-dark-logo-dot);\n --nc-navigation-selection-bg: var(--nc-dark-navigation-selection-bg);\n --nc-navigation-selection-fg: var(--nc-dark-navigation-selection-fg);\n --nc-navigation-selection-hover: var(--nc-dark-navigation-selection-hover);\n --nc-chart-1: var(--nc-dark-chart-1);\n --nc-chart-2: var(--nc-dark-chart-2);\n --nc-chart-3: var(--nc-dark-chart-3);\n --nc-chart-4: var(--nc-dark-chart-4);\n --nc-chart-5: var(--nc-dark-chart-5);\n --nc-chart-6: var(--nc-dark-chart-6);\n --nc-elevation-resting: 0px 1px 2px 0px rgb(0% 0% 0% / 0.16), 0px 0px 0px 1px rgb(100% 100% 100% / 0.145);\n --nc-elevation-raised:\n 0px 2px 2px 0px rgb(0% 0% 0% / 0.2),\n 0px 8px 8px -8px rgb(0% 0% 0% / 0.3),\n 0px 0px 0px 1px rgb(100% 100% 100% / 0.145);\n --nc-elevation-floating:\n 0px 4px 8px -4px rgb(0% 0% 0% / 0.4),\n 0px 16px 24px -8px rgb(0% 0% 0% / 0.5),\n 0px 0px 0px 1px rgb(100% 100% 100% / 0.145);\n --nc-elevation-modal:\n 0px 8px 16px -4px rgb(0% 0% 0% / 0.4),\n 0px 24px 32px -8px rgb(0% 0% 0% / 0.55),\n 0px 0px 0px 1px rgb(100% 100% 100% / 0.145);\n }\n}";
3
3
  export const brandWordmarkSvg = "<svg data-slot=\"brand-wordmark\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 858 150\" width=\"137\" height=\"24\" class=\"block h-6 w-auto\" role=\"img\" aria-label=\"nadicode\"><g fill=\"none\" stroke=\"currentColor\" stroke-width=\"18\"><path d=\"M9 150V100A41 41 0 0 1 91 100V150\"></path><circle cx=\"172\" cy=\"100\" r=\"41\"></circle><path d=\"M213 50V150\"></path><circle cx=\"294\" cy=\"100\" r=\"41\"></circle><path d=\"M335 0V150\"></path><path d=\"M375 50V150\"></path><path d=\"M484.99 71.01A41 41 0 1 0 484.99 128.99\"></path><circle cx=\"564\" cy=\"100\" r=\"41\"></circle><circle cx=\"686\" cy=\"100\" r=\"41\"></circle><path d=\"M727 0V150\"></path><path d=\"M767 100H849A41 41 0 1 0 839.41 126.35\"></path></g><circle cx=\"375\" cy=\"21\" r=\"14\" fill=\"var(--nc-logo-dot)\"></circle></svg>";
@@ -516,6 +516,136 @@
516
516
  }
517
517
  }
518
518
 
519
+ /*
520
+ * Alveare's entry scene, the hive (`components/hive-scene.tsx`), in the
521
+ * composition of Nadia's entry screen: the app's picture on a black ground and
522
+ * the words standing on its empty centre, with no panel, card or ground behind
523
+ * them. The scene scopes `dark`, so every token inside it takes its dark value
524
+ * whatever the app's mode. Each app places its own picture.
525
+ */
526
+
527
+ .nc-hive {
528
+ position: fixed;
529
+ inset: 0;
530
+ z-index: 0;
531
+ isolation: isolate;
532
+ overflow: hidden auto;
533
+ display: grid;
534
+ place-items: safe center;
535
+ padding: var(--nc-xl) var(--nc-md);
536
+ background: var(--nc-identity-ink);
537
+ color: var(--nc-ink);
538
+ color-scheme: dark;
539
+ }
540
+
541
+ /*
542
+ * Alveare's own logo at the upper left, where Nadia's and the Portal's entry
543
+ * screens put the nadicode wordmark, at the wordmark's height and inset. The
544
+ * icon's tile is 824 of its 1024 units; the image box is sized so the tile,
545
+ * not the file's margin, takes the wordmark's height. An app with window
546
+ * controls over the scene sets `--hive-chrome-clearance` to their height, which
547
+ * the narrow inset clears.
548
+ */
549
+ .nc-hive-logo {
550
+ --hive-logo-tile: 24px;
551
+ --hive-logo-inset: var(--nc-lg);
552
+ --hive-logo-box: calc(var(--hive-logo-tile) * 1024 / 824);
553
+ --hive-logo-margin: calc(var(--hive-logo-box) * 100 / 1024);
554
+ position: absolute;
555
+ z-index: 2;
556
+ top: calc(
557
+ max(var(--hive-logo-inset), var(--hive-chrome-clearance, 0px)) -
558
+ var(--hive-logo-margin)
559
+ );
560
+ left: calc(var(--hive-logo-inset) - var(--hive-logo-margin));
561
+ width: var(--hive-logo-box);
562
+ height: var(--hive-logo-box);
563
+ pointer-events: none;
564
+ user-select: none;
565
+ }
566
+
567
+ @media (min-width: 640px) {
568
+ .nc-hive-logo {
569
+ --hive-logo-tile: 32px;
570
+ }
571
+ }
572
+
573
+ @media (min-width: 768px) {
574
+ .nc-hive-logo {
575
+ --hive-logo-inset: var(--nc-2xl);
576
+ top: calc(var(--hive-logo-inset) - var(--hive-logo-margin));
577
+ }
578
+ }
579
+
580
+ .nc-hive-comb,
581
+ .nc-hive-flow {
582
+ position: absolute;
583
+ inset: 0;
584
+ width: 100%;
585
+ height: 100%;
586
+ pointer-events: none;
587
+ }
588
+
589
+ .nc-hive-comb {
590
+ color: var(--nc-identity-white);
591
+ }
592
+
593
+ .nc-hive-agent {
594
+ position: absolute;
595
+ translate: -50% -50%;
596
+ pointer-events: none;
597
+ }
598
+
599
+ .nc-hive-agent[data-size="64"] {
600
+ width: 64px;
601
+ height: 64px;
602
+ }
603
+
604
+ .nc-hive-agent[data-size="96"] {
605
+ width: 96px;
606
+ height: 96px;
607
+ }
608
+
609
+ .nc-hive-agent canvas {
610
+ display: block;
611
+ width: 100%;
612
+ height: 100%;
613
+ }
614
+
615
+ .nc-hive-column {
616
+ position: relative;
617
+ z-index: 1;
618
+ display: grid;
619
+ justify-items: stretch;
620
+ gap: var(--nc-md);
621
+ width: min(20rem, 80vw);
622
+ text-align: center;
623
+ }
624
+
625
+ .nc-hive-title {
626
+ margin: 0;
627
+ font-family: var(--nc-type-heading-md-font-family);
628
+ font-size: var(--nc-type-heading-md-font-size);
629
+ font-weight: var(--nc-type-heading-md-font-weight);
630
+ line-height: var(--nc-type-heading-md-line-height);
631
+ letter-spacing: var(--nc-type-heading-md-letter-spacing);
632
+ text-wrap: balance;
633
+ overflow-wrap: break-word;
634
+ }
635
+
636
+ .nc-hive-line {
637
+ margin: 0;
638
+ font-family: var(--nc-type-body-sm-font-family);
639
+ font-size: var(--nc-type-body-sm-font-size);
640
+ line-height: var(--nc-type-body-sm-line-height);
641
+ overflow-wrap: break-word;
642
+ color: var(--nc-body);
643
+ }
644
+
645
+ .nc-hive-line[data-tone="error"] {
646
+ color: var(--nc-error);
647
+ }
648
+
519
649
  /*
520
650
  * The company card, contained (`components/company-card.tsx`;
521
651
  * design-system DESIGN.md, "Company card").
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nadicodeai/ui",
3
- "version": "12.1.67",
3
+ "version": "12.1.69",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -75,7 +75,7 @@
75
75
  "@base-ui/react": "^1.8.0",
76
76
  "@iconify-icons/logos": "^2.0.2",
77
77
  "@iconify/react": "^6.0.2",
78
- "@nadicodeai/design-system": "12.1.67",
78
+ "@nadicodeai/design-system": "12.1.69",
79
79
  "@tanstack/react-table": "^9.2.4",
80
80
  "class-variance-authority": "^0.7.1",
81
81
  "clsx": "^2.1.1",
@@ -86,6 +86,7 @@
86
86
  "lucide-react": "1.49.0",
87
87
  "motion": "^13.4.4",
88
88
  "next-themes": "^0.4.6",
89
+ "qrcode": "^1.5.4",
89
90
  "react-day-picker": "^10.0.1",
90
91
  "react-hook-form": "^7.89.0",
91
92
  "react-resizable-panels": "^4.13.3",