uidex 0.6.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dist/cli/cli.cjs +2502 -2253
- package/dist/cli/cli.cjs.map +1 -1
- package/dist/headless/index.cjs +86 -703
- package/dist/headless/index.cjs.map +1 -1
- package/dist/headless/index.d.cts +46 -22
- package/dist/headless/index.d.ts +46 -22
- package/dist/headless/index.js +86 -707
- package/dist/headless/index.js.map +1 -1
- package/dist/index.cjs +712 -4149
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +82 -366
- package/dist/index.d.ts +82 -366
- package/dist/index.js +708 -4156
- package/dist/index.js.map +1 -1
- package/dist/playwright/index.cjs +175 -0
- package/dist/playwright/index.cjs.map +1 -1
- package/dist/playwright/index.d.cts +2 -0
- package/dist/playwright/index.d.ts +2 -0
- package/dist/playwright/index.js +167 -0
- package/dist/playwright/index.js.map +1 -1
- package/dist/playwright/states-reporter.cjs +123 -0
- package/dist/playwright/states-reporter.cjs.map +1 -0
- package/dist/playwright/states-reporter.d.cts +46 -0
- package/dist/playwright/states-reporter.d.ts +46 -0
- package/dist/playwright/states-reporter.js +88 -0
- package/dist/playwright/states-reporter.js.map +1 -0
- package/dist/playwright/states.cjs +118 -0
- package/dist/playwright/states.cjs.map +1 -0
- package/dist/playwright/states.d.cts +120 -0
- package/dist/playwright/states.d.ts +120 -0
- package/dist/playwright/states.js +88 -0
- package/dist/playwright/states.js.map +1 -0
- package/dist/react/index.cjs +750 -4113
- package/dist/react/index.cjs.map +1 -1
- package/dist/react/index.d.cts +78 -278
- package/dist/react/index.d.ts +78 -278
- package/dist/react/index.js +748 -4135
- package/dist/react/index.js.map +1 -1
- package/dist/scan/index.cjs +2694 -1541
- package/dist/scan/index.cjs.map +1 -1
- package/dist/scan/index.d.cts +482 -19
- package/dist/scan/index.d.ts +482 -19
- package/dist/scan/index.js +2682 -1540
- package/dist/scan/index.js.map +1 -1
- package/package.json +14 -17
- package/templates/claude/SKILL.md +71 -0
- package/templates/claude/references/audit.md +43 -0
- package/templates/claude/{rules.md → references/conventions.md} +25 -28
- package/dist/cloud/index.cjs +0 -472
- package/dist/cloud/index.cjs.map +0 -1
- package/dist/cloud/index.d.cts +0 -82
- package/dist/cloud/index.d.ts +0 -82
- package/dist/cloud/index.js +0 -445
- package/dist/cloud/index.js.map +0 -1
- package/templates/claude/audit.md +0 -43
- /package/templates/claude/{api.md → references/api.md} +0 -0
package/dist/headless/index.cjs
CHANGED
|
@@ -44,11 +44,6 @@ function isMetaEntity(entity) {
|
|
|
44
44
|
function entityKey(entity) {
|
|
45
45
|
return entity.kind === "route" ? entity.path : entity.id;
|
|
46
46
|
}
|
|
47
|
-
function sameRef(a, b) {
|
|
48
|
-
if (a === b) return true;
|
|
49
|
-
if (a === null || b === null) return false;
|
|
50
|
-
return a.kind === b.kind && a.id === b.id;
|
|
51
|
-
}
|
|
52
47
|
var UnknownEntityKindError = class extends Error {
|
|
53
48
|
kind;
|
|
54
49
|
constructor(kind) {
|
|
@@ -113,13 +108,14 @@ function createRegistry() {
|
|
|
113
108
|
};
|
|
114
109
|
const getPatternsForKind = (kind) => {
|
|
115
110
|
const cached = patternCache.get(kind);
|
|
116
|
-
if (cached !== void 0)
|
|
117
|
-
return cached;
|
|
111
|
+
if (cached !== void 0) return cached;
|
|
118
112
|
const patterns = [];
|
|
119
113
|
for (const [key, entity] of store[kind]) {
|
|
120
|
-
if (key.
|
|
114
|
+
if (key.includes("*")) {
|
|
115
|
+
const segments = key.split("*");
|
|
121
116
|
patterns.push({
|
|
122
|
-
|
|
117
|
+
segments,
|
|
118
|
+
staticLength: segments.reduce((n, s) => n + s.length, 0),
|
|
123
119
|
entity
|
|
124
120
|
});
|
|
125
121
|
}
|
|
@@ -130,13 +126,25 @@ function createRegistry() {
|
|
|
130
126
|
);
|
|
131
127
|
return patterns;
|
|
132
128
|
};
|
|
129
|
+
const matchesSegments = (segments, id) => {
|
|
130
|
+
const first = segments[0];
|
|
131
|
+
const last = segments[segments.length - 1];
|
|
132
|
+
if (!id.startsWith(first)) return false;
|
|
133
|
+
let pos = first.length;
|
|
134
|
+
for (let i = 1; i < segments.length - 1; i++) {
|
|
135
|
+
const idx = id.indexOf(segments[i], pos);
|
|
136
|
+
if (idx === -1) return false;
|
|
137
|
+
pos = idx + segments[i].length;
|
|
138
|
+
}
|
|
139
|
+
return id.endsWith(last) && id.length - last.length >= pos;
|
|
140
|
+
};
|
|
133
141
|
const matchPattern = (kind, id) => {
|
|
134
142
|
assertEntityKind(kind);
|
|
135
143
|
const patterns = getPatternsForKind(kind);
|
|
136
144
|
if (patterns.length === 0) return void 0;
|
|
137
145
|
let best;
|
|
138
146
|
for (const entry of patterns) {
|
|
139
|
-
if (
|
|
147
|
+
if (matchesSegments(entry.segments, id) && (best === void 0 || entry.staticLength > best.staticLength)) {
|
|
140
148
|
best = entry;
|
|
141
149
|
}
|
|
142
150
|
}
|
|
@@ -318,8 +326,7 @@ var COMMAND_PALETTE_ENTRY = {
|
|
|
318
326
|
function createModeStore(options) {
|
|
319
327
|
const { nav, bindings } = options;
|
|
320
328
|
const store = (0, import_vanilla.createStore)(() => ({
|
|
321
|
-
mode: "idle"
|
|
322
|
-
inspectorActive: false
|
|
329
|
+
mode: "idle"
|
|
323
330
|
}));
|
|
324
331
|
const transition = {
|
|
325
332
|
openPalette() {
|
|
@@ -328,17 +335,17 @@ function createModeStore(options) {
|
|
|
328
335
|
bindings?.destroyInspector?.();
|
|
329
336
|
}
|
|
330
337
|
nav.nav.reset([COMMAND_PALETTE_ENTRY]);
|
|
331
|
-
store.setState({ mode: "palette"
|
|
338
|
+
store.setState({ mode: "palette" });
|
|
332
339
|
},
|
|
333
340
|
openInspector() {
|
|
334
341
|
bindings?.mountInspector?.();
|
|
335
342
|
nav.nav.clear();
|
|
336
|
-
store.setState({ mode: "inspecting"
|
|
343
|
+
store.setState({ mode: "inspecting" });
|
|
337
344
|
},
|
|
338
345
|
closeInspector() {
|
|
339
346
|
bindings?.destroyInspector?.();
|
|
340
347
|
nav.nav.clear();
|
|
341
|
-
store.setState({ mode: "idle"
|
|
348
|
+
store.setState({ mode: "idle" });
|
|
342
349
|
},
|
|
343
350
|
toggleInspector() {
|
|
344
351
|
if (store.getState().mode === "inspecting") {
|
|
@@ -353,7 +360,7 @@ function createModeStore(options) {
|
|
|
353
360
|
bindings?.destroyInspector?.();
|
|
354
361
|
}
|
|
355
362
|
nav.nav.reset(initialStack);
|
|
356
|
-
store.setState({ mode: "viewing"
|
|
363
|
+
store.setState({ mode: "viewing" });
|
|
357
364
|
},
|
|
358
365
|
dismiss() {
|
|
359
366
|
const prev = store.getState();
|
|
@@ -361,7 +368,7 @@ function createModeStore(options) {
|
|
|
361
368
|
bindings?.destroyInspector?.();
|
|
362
369
|
}
|
|
363
370
|
nav.nav.clear();
|
|
364
|
-
store.setState({ mode: "idle"
|
|
371
|
+
store.setState({ mode: "idle" });
|
|
365
372
|
},
|
|
366
373
|
popOrTransition() {
|
|
367
374
|
const { stack } = nav.getState();
|
|
@@ -369,12 +376,12 @@ function createModeStore(options) {
|
|
|
369
376
|
nav.nav.pop();
|
|
370
377
|
} else if (stack.length === 2 && stack[0]?.id === "command-palette") {
|
|
371
378
|
nav.nav.reset([COMMAND_PALETTE_ENTRY]);
|
|
372
|
-
store.setState({ mode: "palette"
|
|
379
|
+
store.setState({ mode: "palette" });
|
|
373
380
|
} else if (stack.length === 2) {
|
|
374
381
|
nav.nav.pop();
|
|
375
382
|
} else {
|
|
376
383
|
nav.nav.clear();
|
|
377
|
-
store.setState({ mode: "idle"
|
|
384
|
+
store.setState({ mode: "idle" });
|
|
378
385
|
}
|
|
379
386
|
},
|
|
380
387
|
pushView(entry) {
|
|
@@ -391,7 +398,7 @@ function createModeStore(options) {
|
|
|
391
398
|
case "inspecting":
|
|
392
399
|
bindings?.destroyInspector?.();
|
|
393
400
|
nav.nav.reset([entry]);
|
|
394
|
-
store.setState({ mode: "viewing"
|
|
401
|
+
store.setState({ mode: "viewing" });
|
|
395
402
|
break;
|
|
396
403
|
case "palette":
|
|
397
404
|
case "viewing":
|
|
@@ -426,14 +433,6 @@ function createNavigationStore() {
|
|
|
426
433
|
store.setState({ stack: s.slice(0, -1) });
|
|
427
434
|
}
|
|
428
435
|
},
|
|
429
|
-
replace(entry) {
|
|
430
|
-
const s = store.getState().stack;
|
|
431
|
-
if (s.length === 0) {
|
|
432
|
-
store.setState({ stack: [entry] });
|
|
433
|
-
} else {
|
|
434
|
-
store.setState({ stack: [...s.slice(0, -1), entry] });
|
|
435
|
-
}
|
|
436
|
-
},
|
|
437
436
|
clear() {
|
|
438
437
|
store.setState({ stack: [] });
|
|
439
438
|
},
|
|
@@ -448,15 +447,11 @@ function createNavigationStore() {
|
|
|
448
447
|
|
|
449
448
|
// src/browser/session/store.ts
|
|
450
449
|
var defaultSnapshot = {
|
|
451
|
-
hover: null,
|
|
452
|
-
selection: null,
|
|
453
450
|
stack: [],
|
|
454
451
|
pinnedHighlight: null,
|
|
455
|
-
|
|
452
|
+
mode: "idle",
|
|
456
453
|
theme: "auto",
|
|
457
|
-
resolvedTheme: "light"
|
|
458
|
-
ingestActive: false,
|
|
459
|
-
user: null
|
|
454
|
+
resolvedTheme: "light"
|
|
460
455
|
};
|
|
461
456
|
function resolveTheme(preference, detect) {
|
|
462
457
|
if (preference !== "auto") return preference;
|
|
@@ -506,7 +501,6 @@ function createSession(options = {}) {
|
|
|
506
501
|
} else if (highlightMode === "transient") {
|
|
507
502
|
onUpdateOverlay?.(hlCtx);
|
|
508
503
|
}
|
|
509
|
-
store.setState({ hover: ref });
|
|
510
504
|
},
|
|
511
505
|
unhover() {
|
|
512
506
|
if (highlightMode === "transient") {
|
|
@@ -516,7 +510,6 @@ function createSession(options = {}) {
|
|
|
516
510
|
hlCtx.color = null;
|
|
517
511
|
onHideOverlay?.();
|
|
518
512
|
}
|
|
519
|
-
store.setState({ hover: null });
|
|
520
513
|
},
|
|
521
514
|
pin(ref) {
|
|
522
515
|
const pinRef = ref ?? hlCtx.ref;
|
|
@@ -544,15 +537,11 @@ function createSession(options = {}) {
|
|
|
544
537
|
};
|
|
545
538
|
const store = (0, import_vanilla3.createStore)(() => ({
|
|
546
539
|
...defaultSnapshot,
|
|
547
|
-
hover: overrides.hover ?? null,
|
|
548
|
-
selection: overrides.selection ?? null,
|
|
549
540
|
stack: [],
|
|
550
541
|
pinnedHighlight: null,
|
|
551
|
-
|
|
542
|
+
mode: "idle",
|
|
552
543
|
theme: initialPref,
|
|
553
|
-
resolvedTheme: initialResolved
|
|
554
|
-
ingestActive: overrides.ingestActive ?? false,
|
|
555
|
-
user: overrides.user ?? null
|
|
544
|
+
resolvedTheme: initialResolved
|
|
556
545
|
}));
|
|
557
546
|
nav.subscribe(() => {
|
|
558
547
|
const { stack } = nav.getState();
|
|
@@ -561,29 +550,21 @@ function createSession(options = {}) {
|
|
|
561
550
|
}
|
|
562
551
|
});
|
|
563
552
|
modeStore.subscribe(() => {
|
|
564
|
-
const {
|
|
565
|
-
if (store.getState().
|
|
566
|
-
store.setState({
|
|
553
|
+
const { mode } = modeStore.getState();
|
|
554
|
+
if (store.getState().mode !== mode) {
|
|
555
|
+
store.setState({ mode });
|
|
567
556
|
}
|
|
568
557
|
});
|
|
569
558
|
const session = store;
|
|
570
559
|
session.nav = nav;
|
|
571
560
|
session.mode = modeStore;
|
|
572
561
|
session.highlight = highlightActions;
|
|
573
|
-
session.select = (ref) => {
|
|
574
|
-
if (sameRef(store.getState().selection, ref)) return;
|
|
575
|
-
store.setState({ selection: ref });
|
|
576
|
-
};
|
|
577
562
|
session.setTheme = (theme, resolved) => {
|
|
578
563
|
const state = store.getState();
|
|
579
564
|
const nextResolved = resolved ?? resolveTheme(theme, detectTheme);
|
|
580
565
|
if (state.theme === theme && state.resolvedTheme === nextResolved) return;
|
|
581
566
|
store.setState({ theme, resolvedTheme: nextResolved });
|
|
582
567
|
};
|
|
583
|
-
session.setIngest = (active) => {
|
|
584
|
-
if (store.getState().ingestActive === active) return;
|
|
585
|
-
store.setState({ ingestActive: active });
|
|
586
|
-
};
|
|
587
568
|
if (initialStack.length > 0) {
|
|
588
569
|
modeStore.transition.openPalette();
|
|
589
570
|
for (let i = 1; i < initialStack.length; i++) {
|
|
@@ -604,8 +585,6 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
|
|
|
604
585
|
@layer theme, base, components, utilities;
|
|
605
586
|
@layer theme {
|
|
606
587
|
:root, :host {
|
|
607
|
-
--font-sans: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI",
|
|
608
|
-
Roboto, sans-serif;
|
|
609
588
|
--color-red-400: oklch(70.4% 0.191 22.216);
|
|
610
589
|
--color-red-500: oklch(63.7% 0.237 25.331);
|
|
611
590
|
--color-red-700: oklch(50.5% 0.213 27.518);
|
|
@@ -658,7 +637,6 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
|
|
|
658
637
|
--color-black: #000;
|
|
659
638
|
--color-white: #fff;
|
|
660
639
|
--spacing: 0.25rem;
|
|
661
|
-
--container-sm: 24rem;
|
|
662
640
|
--container-xl: 36rem;
|
|
663
641
|
--text-xs: 0.75rem;
|
|
664
642
|
--text-xs--line-height: calc(1 / 0.75);
|
|
@@ -666,28 +644,22 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
|
|
|
666
644
|
--text-sm--line-height: calc(1.25 / 0.875);
|
|
667
645
|
--text-base: 1rem;
|
|
668
646
|
--text-base--line-height: calc(1.5 / 1);
|
|
669
|
-
--text-xl: 1.25rem;
|
|
670
|
-
--text-xl--line-height: calc(1.75 / 1.25);
|
|
671
647
|
--font-weight-normal: 400;
|
|
672
648
|
--font-weight-medium: 500;
|
|
673
649
|
--font-weight-semibold: 600;
|
|
674
|
-
--font-weight-bold: 700;
|
|
675
650
|
--tracking-tight: -0.025em;
|
|
676
651
|
--tracking-widest: 0.1em;
|
|
677
652
|
--leading-relaxed: 1.625;
|
|
678
|
-
--radius-md: calc(var(--radius) * 0.8);
|
|
679
653
|
--radius-lg: var(--radius);
|
|
680
654
|
--radius-xl: calc(var(--radius) * 1.4);
|
|
681
655
|
--radius-2xl: calc(var(--radius) * 1.8);
|
|
682
656
|
--ease-out: cubic-bezier(0, 0, 0.2, 1);
|
|
683
|
-
--animate-spin: spin 1s linear infinite;
|
|
684
657
|
--blur-sm: 8px;
|
|
685
658
|
--default-transition-duration: 150ms;
|
|
686
659
|
--default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
|
|
687
660
|
--default-font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI",
|
|
688
661
|
Roboto, sans-serif;
|
|
689
662
|
--default-mono-font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
|
|
690
|
-
--color-muted: var(--muted);
|
|
691
663
|
--color-border: var(--border);
|
|
692
664
|
}
|
|
693
665
|
}
|
|
@@ -855,17 +827,6 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
|
|
|
855
827
|
.visible {
|
|
856
828
|
visibility: visible;
|
|
857
829
|
}
|
|
858
|
-
.sr-only {
|
|
859
|
-
position: absolute;
|
|
860
|
-
width: 1px;
|
|
861
|
-
height: 1px;
|
|
862
|
-
padding: 0;
|
|
863
|
-
margin: -1px;
|
|
864
|
-
overflow: hidden;
|
|
865
|
-
clip-path: inset(50%);
|
|
866
|
-
white-space: nowrap;
|
|
867
|
-
border-width: 0;
|
|
868
|
-
}
|
|
869
830
|
.absolute {
|
|
870
831
|
position: absolute;
|
|
871
832
|
}
|
|
@@ -887,33 +848,12 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
|
|
|
887
848
|
.end {
|
|
888
849
|
inset-inline-end: var(--spacing);
|
|
889
850
|
}
|
|
890
|
-
.-top-1 {
|
|
891
|
-
top: calc(var(--spacing) * -1);
|
|
892
|
-
}
|
|
893
|
-
.-right-1 {
|
|
894
|
-
right: calc(var(--spacing) * -1);
|
|
895
|
-
}
|
|
896
|
-
.right-0 {
|
|
897
|
-
right: calc(var(--spacing) * 0);
|
|
898
|
-
}
|
|
899
|
-
.right-2 {
|
|
900
|
-
right: calc(var(--spacing) * 2);
|
|
901
|
-
}
|
|
902
|
-
.bottom-full {
|
|
903
|
-
bottom: 100%;
|
|
904
|
-
}
|
|
905
|
-
.bottom-px {
|
|
906
|
-
bottom: 1px;
|
|
907
|
-
}
|
|
908
851
|
.z-1 {
|
|
909
852
|
z-index: 1;
|
|
910
853
|
}
|
|
911
854
|
.z-10 {
|
|
912
855
|
z-index: 10;
|
|
913
856
|
}
|
|
914
|
-
.z-\\[2147483647\\] {
|
|
915
|
-
z-index: 2147483647;
|
|
916
|
-
}
|
|
917
857
|
.container {
|
|
918
858
|
width: 100%;
|
|
919
859
|
@media (width >= 40rem) {
|
|
@@ -941,21 +881,12 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
|
|
|
941
881
|
.mx-2 {
|
|
942
882
|
margin-inline: calc(var(--spacing) * 2);
|
|
943
883
|
}
|
|
944
|
-
.my-1 {
|
|
945
|
-
margin-block: calc(var(--spacing) * 1);
|
|
946
|
-
}
|
|
947
884
|
.ms-auto {
|
|
948
885
|
margin-inline-start: auto;
|
|
949
886
|
}
|
|
950
887
|
.mt-1 {
|
|
951
888
|
margin-top: calc(var(--spacing) * 1);
|
|
952
889
|
}
|
|
953
|
-
.mb-2 {
|
|
954
|
-
margin-bottom: calc(var(--spacing) * 2);
|
|
955
|
-
}
|
|
956
|
-
.mb-6 {
|
|
957
|
-
margin-bottom: calc(var(--spacing) * 6);
|
|
958
|
-
}
|
|
959
890
|
.ml-auto {
|
|
960
891
|
margin-left: auto;
|
|
961
892
|
}
|
|
@@ -974,26 +905,12 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
|
|
|
974
905
|
.inline {
|
|
975
906
|
display: inline;
|
|
976
907
|
}
|
|
977
|
-
.inline-block {
|
|
978
|
-
display: inline-block;
|
|
979
|
-
}
|
|
980
908
|
.inline-flex {
|
|
981
909
|
display: inline-flex;
|
|
982
910
|
}
|
|
983
|
-
.list-item {
|
|
984
|
-
display: list-item;
|
|
985
|
-
}
|
|
986
911
|
.table {
|
|
987
912
|
display: table;
|
|
988
913
|
}
|
|
989
|
-
.size-2 {
|
|
990
|
-
width: calc(var(--spacing) * 2);
|
|
991
|
-
height: calc(var(--spacing) * 2);
|
|
992
|
-
}
|
|
993
|
-
.size-3 {
|
|
994
|
-
width: calc(var(--spacing) * 3);
|
|
995
|
-
height: calc(var(--spacing) * 3);
|
|
996
|
-
}
|
|
997
914
|
.size-3\\.5 {
|
|
998
915
|
width: calc(var(--spacing) * 3.5);
|
|
999
916
|
height: calc(var(--spacing) * 3.5);
|
|
@@ -1051,33 +968,15 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
|
|
|
1051
968
|
.h-\\[26rem\\] {
|
|
1052
969
|
height: 26rem;
|
|
1053
970
|
}
|
|
1054
|
-
.h-auto {
|
|
1055
|
-
height: auto;
|
|
1056
|
-
}
|
|
1057
971
|
.h-full {
|
|
1058
972
|
height: 100%;
|
|
1059
973
|
}
|
|
1060
|
-
.h-px {
|
|
1061
|
-
height: 1px;
|
|
1062
|
-
}
|
|
1063
|
-
.max-h-32 {
|
|
1064
|
-
max-height: calc(var(--spacing) * 32);
|
|
1065
|
-
}
|
|
1066
|
-
.max-h-full {
|
|
1067
|
-
max-height: 100%;
|
|
1068
|
-
}
|
|
1069
974
|
.min-h-0 {
|
|
1070
975
|
min-height: calc(var(--spacing) * 0);
|
|
1071
976
|
}
|
|
1072
|
-
.min-h-7 {
|
|
1073
|
-
min-height: calc(var(--spacing) * 7);
|
|
1074
|
-
}
|
|
1075
977
|
.min-h-8 {
|
|
1076
978
|
min-height: calc(var(--spacing) * 8);
|
|
1077
979
|
}
|
|
1078
|
-
.min-h-20 {
|
|
1079
|
-
min-height: calc(var(--spacing) * 20);
|
|
1080
|
-
}
|
|
1081
980
|
.w-3\\.5 {
|
|
1082
981
|
width: calc(var(--spacing) * 3.5);
|
|
1083
982
|
}
|
|
@@ -1087,30 +986,15 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
|
|
|
1087
986
|
.w-12 {
|
|
1088
987
|
width: calc(var(--spacing) * 12);
|
|
1089
988
|
}
|
|
1090
|
-
.w-20 {
|
|
1091
|
-
width: calc(var(--spacing) * 20);
|
|
1092
|
-
}
|
|
1093
|
-
.w-36 {
|
|
1094
|
-
width: calc(var(--spacing) * 36);
|
|
1095
|
-
}
|
|
1096
989
|
.w-56 {
|
|
1097
990
|
width: calc(var(--spacing) * 56);
|
|
1098
991
|
}
|
|
1099
|
-
.w-auto {
|
|
1100
|
-
width: auto;
|
|
1101
|
-
}
|
|
1102
992
|
.w-full {
|
|
1103
993
|
width: 100%;
|
|
1104
994
|
}
|
|
1105
995
|
.w-px {
|
|
1106
996
|
width: 1px;
|
|
1107
997
|
}
|
|
1108
|
-
.max-w-full {
|
|
1109
|
-
max-width: 100%;
|
|
1110
|
-
}
|
|
1111
|
-
.max-w-sm {
|
|
1112
|
-
max-width: var(--container-sm);
|
|
1113
|
-
}
|
|
1114
998
|
.max-w-xl {
|
|
1115
999
|
max-width: var(--container-xl);
|
|
1116
1000
|
}
|
|
@@ -1138,44 +1022,9 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
|
|
|
1138
1022
|
.shrink-0 {
|
|
1139
1023
|
flex-shrink: 0;
|
|
1140
1024
|
}
|
|
1141
|
-
.origin-bottom-left {
|
|
1142
|
-
transform-origin: 0 100%;
|
|
1143
|
-
}
|
|
1144
|
-
.origin-bottom-right {
|
|
1145
|
-
transform-origin: 100% 100%;
|
|
1146
|
-
}
|
|
1147
|
-
.-translate-x-0\\.5 {
|
|
1148
|
-
--tw-translate-x: calc(var(--spacing) * -0.5);
|
|
1149
|
-
translate: var(--tw-translate-x) var(--tw-translate-y);
|
|
1150
|
-
}
|
|
1151
|
-
.translate-x-0\\.5 {
|
|
1152
|
-
--tw-translate-x: calc(var(--spacing) * 0.5);
|
|
1153
|
-
translate: var(--tw-translate-x) var(--tw-translate-y);
|
|
1154
|
-
}
|
|
1155
|
-
.scale-84 {
|
|
1156
|
-
--tw-scale-x: 84%;
|
|
1157
|
-
--tw-scale-y: 84%;
|
|
1158
|
-
--tw-scale-z: 84%;
|
|
1159
|
-
scale: var(--tw-scale-x) var(--tw-scale-y);
|
|
1160
|
-
}
|
|
1161
|
-
.-rotate-10 {
|
|
1162
|
-
rotate: calc(10deg * -1);
|
|
1163
|
-
}
|
|
1164
|
-
.rotate-10 {
|
|
1165
|
-
rotate: 10deg;
|
|
1166
|
-
}
|
|
1167
1025
|
.transform {
|
|
1168
1026
|
transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);
|
|
1169
1027
|
}
|
|
1170
|
-
.animate-skeleton {
|
|
1171
|
-
animation: skeleton 2s -1s infinite linear;
|
|
1172
|
-
}
|
|
1173
|
-
.animate-spin {
|
|
1174
|
-
animation: var(--animate-spin);
|
|
1175
|
-
}
|
|
1176
|
-
.cursor-default {
|
|
1177
|
-
cursor: default;
|
|
1178
|
-
}
|
|
1179
1028
|
.cursor-pointer {
|
|
1180
1029
|
cursor: pointer;
|
|
1181
1030
|
}
|
|
@@ -1185,18 +1034,9 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
|
|
|
1185
1034
|
.scroll-py-2 {
|
|
1186
1035
|
scroll-padding-block: calc(var(--spacing) * 2);
|
|
1187
1036
|
}
|
|
1188
|
-
.list-none {
|
|
1189
|
-
list-style-type: none;
|
|
1190
|
-
}
|
|
1191
|
-
.appearance-none {
|
|
1192
|
-
appearance: none;
|
|
1193
|
-
}
|
|
1194
1037
|
.flex-col {
|
|
1195
1038
|
flex-direction: column;
|
|
1196
1039
|
}
|
|
1197
|
-
.flex-row {
|
|
1198
|
-
flex-direction: row;
|
|
1199
|
-
}
|
|
1200
1040
|
.items-center {
|
|
1201
1041
|
align-items: center;
|
|
1202
1042
|
}
|
|
@@ -1209,15 +1049,9 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
|
|
|
1209
1049
|
.justify-center {
|
|
1210
1050
|
justify-content: center;
|
|
1211
1051
|
}
|
|
1212
|
-
.justify-start {
|
|
1213
|
-
justify-content: flex-start;
|
|
1214
|
-
}
|
|
1215
1052
|
.gap-0 {
|
|
1216
1053
|
gap: calc(var(--spacing) * 0);
|
|
1217
1054
|
}
|
|
1218
|
-
.gap-0\\.5 {
|
|
1219
|
-
gap: calc(var(--spacing) * 0.5);
|
|
1220
|
-
}
|
|
1221
1055
|
.gap-1 {
|
|
1222
1056
|
gap: calc(var(--spacing) * 1);
|
|
1223
1057
|
}
|
|
@@ -1230,15 +1064,6 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
|
|
|
1230
1064
|
.gap-3 {
|
|
1231
1065
|
gap: calc(var(--spacing) * 3);
|
|
1232
1066
|
}
|
|
1233
|
-
.gap-4 {
|
|
1234
|
-
gap: calc(var(--spacing) * 4);
|
|
1235
|
-
}
|
|
1236
|
-
.gap-6 {
|
|
1237
|
-
gap: calc(var(--spacing) * 6);
|
|
1238
|
-
}
|
|
1239
|
-
.self-start {
|
|
1240
|
-
align-self: flex-start;
|
|
1241
|
-
}
|
|
1242
1067
|
.truncate {
|
|
1243
1068
|
overflow: hidden;
|
|
1244
1069
|
text-overflow: ellipsis;
|
|
@@ -1336,21 +1161,12 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
|
|
|
1336
1161
|
background-color: color-mix(in oklab, var(--color-black) 32%, transparent);
|
|
1337
1162
|
}
|
|
1338
1163
|
}
|
|
1339
|
-
.bg-black\\/80 {
|
|
1340
|
-
background-color: color-mix(in srgb, #000 80%, transparent);
|
|
1341
|
-
@supports (color: color-mix(in lab, red, red)) {
|
|
1342
|
-
background-color: color-mix(in oklab, var(--color-black) 80%, transparent);
|
|
1343
|
-
}
|
|
1344
|
-
}
|
|
1345
1164
|
.bg-blue-50 {
|
|
1346
1165
|
background-color: var(--color-blue-50);
|
|
1347
1166
|
}
|
|
1348
1167
|
.bg-border {
|
|
1349
1168
|
background-color: var(--border);
|
|
1350
1169
|
}
|
|
1351
|
-
.bg-card {
|
|
1352
|
-
background-color: var(--card);
|
|
1353
|
-
}
|
|
1354
1170
|
.bg-cyan-50 {
|
|
1355
1171
|
background-color: var(--color-cyan-50);
|
|
1356
1172
|
}
|
|
@@ -1366,15 +1182,9 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
|
|
|
1366
1182
|
.bg-emerald-50 {
|
|
1367
1183
|
background-color: var(--color-emerald-50);
|
|
1368
1184
|
}
|
|
1369
|
-
.bg-emerald-500 {
|
|
1370
|
-
background-color: var(--color-emerald-500);
|
|
1371
|
-
}
|
|
1372
1185
|
.bg-fuchsia-50 {
|
|
1373
1186
|
background-color: var(--color-fuchsia-50);
|
|
1374
1187
|
}
|
|
1375
|
-
.bg-info {
|
|
1376
|
-
background-color: var(--info);
|
|
1377
|
-
}
|
|
1378
1188
|
.bg-info\\/10 {
|
|
1379
1189
|
background-color: var(--info);
|
|
1380
1190
|
@supports (color: color-mix(in lab, red, red)) {
|
|
@@ -1426,18 +1236,6 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
|
|
|
1426
1236
|
.bg-clip-padding {
|
|
1427
1237
|
background-clip: padding-box;
|
|
1428
1238
|
}
|
|
1429
|
-
.bg-\\[right_0\\.5rem_center\\] {
|
|
1430
|
-
background-position: right 0.5rem center;
|
|
1431
|
-
}
|
|
1432
|
-
.bg-no-repeat {
|
|
1433
|
-
background-repeat: no-repeat;
|
|
1434
|
-
}
|
|
1435
|
-
.object-cover {
|
|
1436
|
-
object-fit: cover;
|
|
1437
|
-
}
|
|
1438
|
-
.object-top {
|
|
1439
|
-
object-position: top;
|
|
1440
|
-
}
|
|
1441
1239
|
.p-1 {
|
|
1442
1240
|
padding: calc(var(--spacing) * 1);
|
|
1443
1241
|
}
|
|
@@ -1450,12 +1248,6 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
|
|
|
1450
1248
|
.p-4 {
|
|
1451
1249
|
padding: calc(var(--spacing) * 4);
|
|
1452
1250
|
}
|
|
1453
|
-
.p-6 {
|
|
1454
|
-
padding: calc(var(--spacing) * 6);
|
|
1455
|
-
}
|
|
1456
|
-
.px-0 {
|
|
1457
|
-
padding-inline: calc(var(--spacing) * 0);
|
|
1458
|
-
}
|
|
1459
1251
|
.px-1 {
|
|
1460
1252
|
padding-inline: calc(var(--spacing) * 1);
|
|
1461
1253
|
}
|
|
@@ -1477,27 +1269,15 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
|
|
|
1477
1269
|
.px-4 {
|
|
1478
1270
|
padding-inline: calc(var(--spacing) * 4);
|
|
1479
1271
|
}
|
|
1480
|
-
.px-6 {
|
|
1481
|
-
padding-inline: calc(var(--spacing) * 6);
|
|
1482
|
-
}
|
|
1483
|
-
.py-0 {
|
|
1484
|
-
padding-block: calc(var(--spacing) * 0);
|
|
1485
|
-
}
|
|
1486
1272
|
.py-1 {
|
|
1487
1273
|
padding-block: calc(var(--spacing) * 1);
|
|
1488
1274
|
}
|
|
1489
1275
|
.py-1\\.5 {
|
|
1490
1276
|
padding-block: calc(var(--spacing) * 1.5);
|
|
1491
1277
|
}
|
|
1492
|
-
.py-2 {
|
|
1493
|
-
padding-block: calc(var(--spacing) * 2);
|
|
1494
|
-
}
|
|
1495
1278
|
.py-4 {
|
|
1496
1279
|
padding-block: calc(var(--spacing) * 4);
|
|
1497
1280
|
}
|
|
1498
|
-
.py-12 {
|
|
1499
|
-
padding-block: calc(var(--spacing) * 12);
|
|
1500
|
-
}
|
|
1501
1281
|
.py-\\[max\\(1rem\\,4vh\\)\\] {
|
|
1502
1282
|
padding-block: max(1rem, 4vh);
|
|
1503
1283
|
}
|
|
@@ -1510,12 +1290,6 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
|
|
|
1510
1290
|
.pt-2 {
|
|
1511
1291
|
padding-top: calc(var(--spacing) * 2);
|
|
1512
1292
|
}
|
|
1513
|
-
.pr-8 {
|
|
1514
|
-
padding-right: calc(var(--spacing) * 8);
|
|
1515
|
-
}
|
|
1516
|
-
.pl-3 {
|
|
1517
|
-
padding-left: calc(var(--spacing) * 3);
|
|
1518
|
-
}
|
|
1519
1293
|
.text-center {
|
|
1520
1294
|
text-align: center;
|
|
1521
1295
|
}
|
|
@@ -1533,18 +1307,10 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
|
|
|
1533
1307
|
font-size: var(--text-base);
|
|
1534
1308
|
line-height: var(--tw-leading, var(--text-base--line-height));
|
|
1535
1309
|
}
|
|
1536
|
-
.text-base\\/4\\.5 {
|
|
1537
|
-
font-size: var(--text-base);
|
|
1538
|
-
line-height: calc(var(--spacing) * 4.5);
|
|
1539
|
-
}
|
|
1540
1310
|
.text-sm {
|
|
1541
1311
|
font-size: var(--text-sm);
|
|
1542
1312
|
line-height: var(--tw-leading, var(--text-sm--line-height));
|
|
1543
1313
|
}
|
|
1544
|
-
.text-xl {
|
|
1545
|
-
font-size: var(--text-xl);
|
|
1546
|
-
line-height: var(--tw-leading, var(--text-xl--line-height));
|
|
1547
|
-
}
|
|
1548
1314
|
.text-xs {
|
|
1549
1315
|
font-size: var(--text-xs);
|
|
1550
1316
|
line-height: var(--tw-leading, var(--text-xs--line-height));
|
|
@@ -1552,27 +1318,13 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
|
|
|
1552
1318
|
.text-\\[0\\.625rem\\] {
|
|
1553
1319
|
font-size: 0.625rem;
|
|
1554
1320
|
}
|
|
1555
|
-
.text-\\[9px\\] {
|
|
1556
|
-
font-size: 9px;
|
|
1557
|
-
}
|
|
1558
|
-
.text-\\[10px\\] {
|
|
1559
|
-
font-size: 10px;
|
|
1560
|
-
}
|
|
1561
1321
|
.text-\\[11px\\] {
|
|
1562
1322
|
font-size: 11px;
|
|
1563
1323
|
}
|
|
1564
|
-
.leading-none {
|
|
1565
|
-
--tw-leading: 1;
|
|
1566
|
-
line-height: 1;
|
|
1567
|
-
}
|
|
1568
1324
|
.leading-relaxed {
|
|
1569
1325
|
--tw-leading: var(--leading-relaxed);
|
|
1570
1326
|
line-height: var(--leading-relaxed);
|
|
1571
1327
|
}
|
|
1572
|
-
.font-bold {
|
|
1573
|
-
--tw-font-weight: var(--font-weight-bold);
|
|
1574
|
-
font-weight: var(--font-weight-bold);
|
|
1575
|
-
}
|
|
1576
1328
|
.font-medium {
|
|
1577
1329
|
--tw-font-weight: var(--font-weight-medium);
|
|
1578
1330
|
font-weight: var(--font-weight-medium);
|
|
@@ -1593,9 +1345,6 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
|
|
|
1593
1345
|
--tw-tracking: var(--tracking-widest);
|
|
1594
1346
|
letter-spacing: var(--tracking-widest);
|
|
1595
1347
|
}
|
|
1596
|
-
.text-balance {
|
|
1597
|
-
text-wrap: balance;
|
|
1598
|
-
}
|
|
1599
1348
|
.break-words {
|
|
1600
1349
|
overflow-wrap: break-word;
|
|
1601
1350
|
}
|
|
@@ -1620,9 +1369,6 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
|
|
|
1620
1369
|
.text-cyan-700 {
|
|
1621
1370
|
color: var(--color-cyan-700);
|
|
1622
1371
|
}
|
|
1623
|
-
.text-destructive {
|
|
1624
|
-
color: var(--destructive);
|
|
1625
|
-
}
|
|
1626
1372
|
.text-destructive-foreground {
|
|
1627
1373
|
color: var(--destructive-foreground);
|
|
1628
1374
|
}
|
|
@@ -1688,18 +1434,12 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
|
|
|
1688
1434
|
.line-through {
|
|
1689
1435
|
text-decoration-line: line-through;
|
|
1690
1436
|
}
|
|
1691
|
-
.underline {
|
|
1692
|
-
text-decoration-line: underline;
|
|
1693
|
-
}
|
|
1694
1437
|
.underline-offset-4 {
|
|
1695
1438
|
text-underline-offset: 4px;
|
|
1696
1439
|
}
|
|
1697
1440
|
.accent-accent {
|
|
1698
1441
|
accent-color: var(--accent);
|
|
1699
1442
|
}
|
|
1700
|
-
.accent-primary {
|
|
1701
|
-
accent-color: var(--primary);
|
|
1702
|
-
}
|
|
1703
1443
|
.opacity-50 {
|
|
1704
1444
|
opacity: 50%;
|
|
1705
1445
|
}
|
|
@@ -1711,11 +1451,6 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
|
|
|
1711
1451
|
--tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, oklab(from rgb(0 0 0 / 0.1) l a b / 5%)), 0 4px 6px -4px var(--tw-shadow-color, oklab(from rgb(0 0 0 / 0.1) l a b / 5%));
|
|
1712
1452
|
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
1713
1453
|
}
|
|
1714
|
-
.shadow-sm\\/5 {
|
|
1715
|
-
--tw-shadow-alpha: 5%;
|
|
1716
|
-
--tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, oklab(from rgb(0 0 0 / 0.1) l a b / 5%)), 0 1px 2px -1px var(--tw-shadow-color, oklab(from rgb(0 0 0 / 0.1) l a b / 5%));
|
|
1717
|
-
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
1718
|
-
}
|
|
1719
1454
|
.shadow-xs\\/5 {
|
|
1720
1455
|
--tw-shadow-alpha: 5%;
|
|
1721
1456
|
--tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, oklab(from rgb(0 0 0 / 0.05) l a b / 5%));
|
|
@@ -1725,14 +1460,6 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
|
|
|
1725
1460
|
--tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
|
|
1726
1461
|
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
1727
1462
|
}
|
|
1728
|
-
.shadow-lg {
|
|
1729
|
-
--tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
|
|
1730
|
-
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
1731
|
-
}
|
|
1732
|
-
.shadow-none {
|
|
1733
|
-
--tw-shadow: 0 0 #0000;
|
|
1734
|
-
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
1735
|
-
}
|
|
1736
1463
|
.shadow-xs {
|
|
1737
1464
|
--tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));
|
|
1738
1465
|
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
@@ -1797,10 +1524,6 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
|
|
|
1797
1524
|
outline-style: var(--tw-outline-style);
|
|
1798
1525
|
outline-width: 1px;
|
|
1799
1526
|
}
|
|
1800
|
-
.blur {
|
|
1801
|
-
--tw-blur: blur(8px);
|
|
1802
|
-
filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
|
|
1803
|
-
}
|
|
1804
1527
|
.filter {
|
|
1805
1528
|
filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
|
|
1806
1529
|
}
|
|
@@ -1836,15 +1559,6 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
|
|
|
1836
1559
|
-webkit-user-select: none;
|
|
1837
1560
|
user-select: none;
|
|
1838
1561
|
}
|
|
1839
|
-
.\\[--skeleton-highlight\\:--alpha\\(var\\(--color-white\\)\\/64\\%\\)\\] {
|
|
1840
|
-
--skeleton-highlight: color-mix(in srgb, #fff 64%, transparent);
|
|
1841
|
-
@supports (color: color-mix(in lab, red, red)) {
|
|
1842
|
-
--skeleton-highlight: color-mix(in oklab, var(--color-white) 64%, transparent);
|
|
1843
|
-
}
|
|
1844
|
-
}
|
|
1845
|
-
.\\[background\\:linear-gradient\\(120deg\\,transparent_40\\%\\,var\\(--skeleton-highlight\\)\\,transparent_60\\%\\)_var\\(--color-muted\\)_0_0\\/200\\%_100\\%_fixed\\] {
|
|
1846
|
-
background: linear-gradient(120deg,transparent 40%,var(--skeleton-highlight),transparent 60%) var(--color-muted) 0 0/200% 100% fixed;
|
|
1847
|
-
}
|
|
1848
1562
|
.\\[clip-path\\:inset\\(0_1px\\)\\] {
|
|
1849
1563
|
clip-path: inset(0 1px);
|
|
1850
1564
|
}
|
|
@@ -1928,12 +1642,6 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
|
|
|
1928
1642
|
border-radius: calc(var(--radius-lg) - 1px);
|
|
1929
1643
|
}
|
|
1930
1644
|
}
|
|
1931
|
-
.before\\:rounded-\\[calc\\(var\\(--radius-md\\)-1px\\)\\] {
|
|
1932
|
-
&::before {
|
|
1933
|
-
content: var(--tw-content);
|
|
1934
|
-
border-radius: calc(var(--radius-md) - 1px);
|
|
1935
|
-
}
|
|
1936
|
-
}
|
|
1937
1645
|
.before\\:rounded-\\[calc\\(var\\(--radius-xl\\)-1px\\)\\] {
|
|
1938
1646
|
&::before {
|
|
1939
1647
|
content: var(--tw-content);
|
|
@@ -1966,25 +1674,6 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
|
|
|
1966
1674
|
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
1967
1675
|
}
|
|
1968
1676
|
}
|
|
1969
|
-
.focus-within\\:border-ring {
|
|
1970
|
-
&:focus-within {
|
|
1971
|
-
border-color: var(--ring);
|
|
1972
|
-
}
|
|
1973
|
-
}
|
|
1974
|
-
.focus-within\\:ring-\\[3px\\] {
|
|
1975
|
-
&:focus-within {
|
|
1976
|
-
--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
|
|
1977
|
-
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
1978
|
-
}
|
|
1979
|
-
}
|
|
1980
|
-
.focus-within\\:ring-ring\\/30 {
|
|
1981
|
-
&:focus-within {
|
|
1982
|
-
--tw-ring-color: var(--ring);
|
|
1983
|
-
@supports (color: color-mix(in lab, red, red)) {
|
|
1984
|
-
--tw-ring-color: color-mix(in oklab, var(--ring) 30%, transparent);
|
|
1985
|
-
}
|
|
1986
|
-
}
|
|
1987
|
-
}
|
|
1988
1677
|
.hover\\:border-destructive\\/30 {
|
|
1989
1678
|
&:hover {
|
|
1990
1679
|
@media (hover: hover) {
|
|
@@ -2082,36 +1771,17 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
|
|
|
2082
1771
|
outline-style: none;
|
|
2083
1772
|
}
|
|
2084
1773
|
}
|
|
2085
|
-
.focus-visible\\:border-ring {
|
|
2086
|
-
&:focus-visible {
|
|
2087
|
-
border-color: var(--ring);
|
|
2088
|
-
}
|
|
2089
|
-
}
|
|
2090
1774
|
.focus-visible\\:ring-2 {
|
|
2091
1775
|
&:focus-visible {
|
|
2092
1776
|
--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
|
|
2093
1777
|
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
2094
1778
|
}
|
|
2095
1779
|
}
|
|
2096
|
-
.focus-visible\\:ring-\\[3px\\] {
|
|
2097
|
-
&:focus-visible {
|
|
2098
|
-
--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
|
|
2099
|
-
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
2100
|
-
}
|
|
2101
|
-
}
|
|
2102
1780
|
.focus-visible\\:ring-ring {
|
|
2103
1781
|
&:focus-visible {
|
|
2104
1782
|
--tw-ring-color: var(--ring);
|
|
2105
1783
|
}
|
|
2106
1784
|
}
|
|
2107
|
-
.focus-visible\\:ring-ring\\/30 {
|
|
2108
|
-
&:focus-visible {
|
|
2109
|
-
--tw-ring-color: var(--ring);
|
|
2110
|
-
@supports (color: color-mix(in lab, red, red)) {
|
|
2111
|
-
--tw-ring-color: color-mix(in oklab, var(--ring) 30%, transparent);
|
|
2112
|
-
}
|
|
2113
|
-
}
|
|
2114
|
-
}
|
|
2115
1785
|
.focus-visible\\:ring-offset-1 {
|
|
2116
1786
|
&:focus-visible {
|
|
2117
1787
|
--tw-ring-offset-width: 1px;
|
|
@@ -2128,11 +1798,6 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
|
|
|
2128
1798
|
pointer-events: none;
|
|
2129
1799
|
}
|
|
2130
1800
|
}
|
|
2131
|
-
.disabled\\:cursor-not-allowed {
|
|
2132
|
-
&:disabled {
|
|
2133
|
-
cursor: not-allowed;
|
|
2134
|
-
}
|
|
2135
|
-
}
|
|
2136
1801
|
.disabled\\:opacity-50 {
|
|
2137
1802
|
&:disabled {
|
|
2138
1803
|
opacity: 50%;
|
|
@@ -2143,29 +1808,6 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
|
|
|
2143
1808
|
opacity: 60%;
|
|
2144
1809
|
}
|
|
2145
1810
|
}
|
|
2146
|
-
.has-disabled\\:opacity-60 {
|
|
2147
|
-
&:has(*:disabled) {
|
|
2148
|
-
opacity: 60%;
|
|
2149
|
-
}
|
|
2150
|
-
}
|
|
2151
|
-
.aria-invalid\\:border-destructive\\/40 {
|
|
2152
|
-
&[aria-invalid="true"] {
|
|
2153
|
-
border-color: var(--destructive);
|
|
2154
|
-
@supports (color: color-mix(in lab, red, red)) {
|
|
2155
|
-
border-color: color-mix(in oklab, var(--destructive) 40%, transparent);
|
|
2156
|
-
}
|
|
2157
|
-
}
|
|
2158
|
-
}
|
|
2159
|
-
.aria-invalid\\:focus-visible\\:ring-destructive\\/20 {
|
|
2160
|
-
&[aria-invalid="true"] {
|
|
2161
|
-
&:focus-visible {
|
|
2162
|
-
--tw-ring-color: var(--destructive);
|
|
2163
|
-
@supports (color: color-mix(in lab, red, red)) {
|
|
2164
|
-
--tw-ring-color: color-mix(in oklab, var(--destructive) 20%, transparent);
|
|
2165
|
-
}
|
|
2166
|
-
}
|
|
2167
|
-
}
|
|
2168
|
-
}
|
|
2169
1811
|
.data-\\[disabled\\]\\:pointer-events-none {
|
|
2170
1812
|
&[data-disabled] {
|
|
2171
1813
|
pointer-events: none;
|
|
@@ -2202,12 +1844,6 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
|
|
|
2202
1844
|
line-height: var(--tw-leading, var(--text-sm--line-height));
|
|
2203
1845
|
}
|
|
2204
1846
|
}
|
|
2205
|
-
.sm\\:text-sm\\/4 {
|
|
2206
|
-
@media (width >= 40rem) {
|
|
2207
|
-
font-size: var(--text-sm);
|
|
2208
|
-
line-height: calc(var(--spacing) * 4);
|
|
2209
|
-
}
|
|
2210
|
-
}
|
|
2211
1847
|
.dark\\:bg-amber-400\\/10 {
|
|
2212
1848
|
&:is(.dark *, :host(.dark) *) {
|
|
2213
1849
|
background-color: color-mix(in srgb, oklch(82.8% 0.189 84.429) 10%, transparent);
|
|
@@ -2421,14 +2057,6 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
|
|
|
2421
2057
|
}
|
|
2422
2058
|
}
|
|
2423
2059
|
}
|
|
2424
|
-
.dark\\:\\[--skeleton-highlight\\:--alpha\\(var\\(--color-white\\)\\/4\\%\\)\\] {
|
|
2425
|
-
&:is(.dark *, :host(.dark) *) {
|
|
2426
|
-
--skeleton-highlight: color-mix(in srgb, #fff 4%, transparent);
|
|
2427
|
-
@supports (color: color-mix(in lab, red, red)) {
|
|
2428
|
-
--skeleton-highlight: color-mix(in oklab, var(--color-white) 4%, transparent);
|
|
2429
|
-
}
|
|
2430
|
-
}
|
|
2431
|
-
}
|
|
2432
2060
|
.dark\\:group-data-hover\\:bg-amber-400\\/20 {
|
|
2433
2061
|
&:is(.dark *, :host(.dark) *) {
|
|
2434
2062
|
&:is(:where(.group)[data-hover] *) {
|
|
@@ -2548,38 +2176,6 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
|
|
|
2548
2176
|
height: calc(var(--spacing) * 4);
|
|
2549
2177
|
}
|
|
2550
2178
|
}
|
|
2551
|
-
.\\[\\&_svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-4\\.5 {
|
|
2552
|
-
& svg:not([class*='size-']) {
|
|
2553
|
-
width: calc(var(--spacing) * 4.5);
|
|
2554
|
-
height: calc(var(--spacing) * 4.5);
|
|
2555
|
-
}
|
|
2556
|
-
}
|
|
2557
|
-
.\\[\\&\\>svg\\]\\:pointer-events-none {
|
|
2558
|
-
&>svg {
|
|
2559
|
-
pointer-events: none;
|
|
2560
|
-
}
|
|
2561
|
-
}
|
|
2562
|
-
.\\[\\&\\>svg\\]\\:-mx-0\\.5 {
|
|
2563
|
-
&>svg {
|
|
2564
|
-
margin-inline: calc(var(--spacing) * -0.5);
|
|
2565
|
-
}
|
|
2566
|
-
}
|
|
2567
|
-
.\\[\\&\\>svg\\]\\:shrink-0 {
|
|
2568
|
-
&>svg {
|
|
2569
|
-
flex-shrink: 0;
|
|
2570
|
-
}
|
|
2571
|
-
}
|
|
2572
|
-
.\\[\\&\\>svg\\:not\\(\\[class\\*\\=\\'opacity-\\'\\]\\)\\]\\:opacity-80 {
|
|
2573
|
-
&>svg:not([class*='opacity-']) {
|
|
2574
|
-
opacity: 80%;
|
|
2575
|
-
}
|
|
2576
|
-
}
|
|
2577
|
-
.\\[\\&\\>svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-4 {
|
|
2578
|
-
&>svg:not([class*='size-']) {
|
|
2579
|
-
width: calc(var(--spacing) * 4);
|
|
2580
|
-
height: calc(var(--spacing) * 4);
|
|
2581
|
-
}
|
|
2582
|
-
}
|
|
2583
2179
|
.\\[\\[data-kbd-nav\\]_\\&\\]\\:focus-within\\:bg-accent {
|
|
2584
2180
|
[data-kbd-nav] & {
|
|
2585
2181
|
&:focus-within {
|
|
@@ -2812,36 +2408,6 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
|
|
|
2812
2408
|
--warning: var(--color-amber-500);
|
|
2813
2409
|
--warning-foreground: var(--color-amber-700);
|
|
2814
2410
|
}
|
|
2815
|
-
@property --tw-translate-x {
|
|
2816
|
-
syntax: "*";
|
|
2817
|
-
inherits: false;
|
|
2818
|
-
initial-value: 0;
|
|
2819
|
-
}
|
|
2820
|
-
@property --tw-translate-y {
|
|
2821
|
-
syntax: "*";
|
|
2822
|
-
inherits: false;
|
|
2823
|
-
initial-value: 0;
|
|
2824
|
-
}
|
|
2825
|
-
@property --tw-translate-z {
|
|
2826
|
-
syntax: "*";
|
|
2827
|
-
inherits: false;
|
|
2828
|
-
initial-value: 0;
|
|
2829
|
-
}
|
|
2830
|
-
@property --tw-scale-x {
|
|
2831
|
-
syntax: "*";
|
|
2832
|
-
inherits: false;
|
|
2833
|
-
initial-value: 1;
|
|
2834
|
-
}
|
|
2835
|
-
@property --tw-scale-y {
|
|
2836
|
-
syntax: "*";
|
|
2837
|
-
inherits: false;
|
|
2838
|
-
initial-value: 1;
|
|
2839
|
-
}
|
|
2840
|
-
@property --tw-scale-z {
|
|
2841
|
-
syntax: "*";
|
|
2842
|
-
inherits: false;
|
|
2843
|
-
initial-value: 1;
|
|
2844
|
-
}
|
|
2845
2411
|
@property --tw-rotate-x {
|
|
2846
2412
|
syntax: "*";
|
|
2847
2413
|
inherits: false;
|
|
@@ -3067,20 +2633,9 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
|
|
|
3067
2633
|
initial-value: "";
|
|
3068
2634
|
inherits: false;
|
|
3069
2635
|
}
|
|
3070
|
-
@keyframes spin {
|
|
3071
|
-
to {
|
|
3072
|
-
transform: rotate(360deg);
|
|
3073
|
-
}
|
|
3074
|
-
}
|
|
3075
2636
|
@layer properties {
|
|
3076
2637
|
@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
|
|
3077
2638
|
*, ::before, ::after, ::backdrop {
|
|
3078
|
-
--tw-translate-x: 0;
|
|
3079
|
-
--tw-translate-y: 0;
|
|
3080
|
-
--tw-translate-z: 0;
|
|
3081
|
-
--tw-scale-x: 1;
|
|
3082
|
-
--tw-scale-y: 1;
|
|
3083
|
-
--tw-scale-z: 1;
|
|
3084
2639
|
--tw-rotate-x: initial;
|
|
3085
2640
|
--tw-rotate-y: initial;
|
|
3086
2641
|
--tw-rotate-z: initial;
|
|
@@ -3141,11 +2696,10 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
|
|
|
3141
2696
|
|
|
3142
2697
|
// src/browser/surface/constants.ts
|
|
3143
2698
|
var SURFACE_HOST_CLASS = "uidex-surface-host";
|
|
3144
|
-
var SURFACE_CONTAINER_CLASS = "uidex-container";
|
|
3145
2699
|
var Z_BASE = 2147483630;
|
|
3146
2700
|
var Z_OVERLAY = 2147483635;
|
|
3147
2701
|
var Z_CHROME = 2147483645;
|
|
3148
|
-
var SURFACE_IGNORE_SELECTOR = `.${SURFACE_HOST_CLASS}
|
|
2702
|
+
var SURFACE_IGNORE_SELECTOR = `.${SURFACE_HOST_CLASS}`;
|
|
3149
2703
|
var UIDEX_ATTR_TO_KIND = [
|
|
3150
2704
|
["data-uidex", "element"],
|
|
3151
2705
|
["data-uidex-region", "region"],
|
|
@@ -3432,7 +2986,6 @@ function createInspector(options) {
|
|
|
3432
2986
|
e.preventDefault();
|
|
3433
2987
|
e.stopPropagation();
|
|
3434
2988
|
const match = stack[layerIndex];
|
|
3435
|
-
session.select(match.ref);
|
|
3436
2989
|
onSelect?.(match, { x: e.clientX, y: e.clientY });
|
|
3437
2990
|
};
|
|
3438
2991
|
const onContextMenu = (e) => {
|
|
@@ -3545,11 +3098,8 @@ function createMenuBar(options) {
|
|
|
3545
3098
|
container,
|
|
3546
3099
|
session,
|
|
3547
3100
|
initialCorner = "bottom-right",
|
|
3548
|
-
appTitle
|
|
3549
|
-
channel = null,
|
|
3550
|
-
pinLayer: initialPinLayer = null
|
|
3101
|
+
appTitle
|
|
3551
3102
|
} = options;
|
|
3552
|
-
let activePinLayer = initialPinLayer;
|
|
3553
3103
|
const root = el("div", {
|
|
3554
3104
|
class: ROOT_CLASS,
|
|
3555
3105
|
attrs: {
|
|
@@ -3614,162 +3164,6 @@ function createMenuBar(options) {
|
|
|
3614
3164
|
inspectBtn.blur();
|
|
3615
3165
|
});
|
|
3616
3166
|
root.appendChild(inspectBtn);
|
|
3617
|
-
const pinIcon = (0, import_lucide3.createElement)(import_lucide3.MapPin);
|
|
3618
|
-
pinIcon.setAttribute("class", "size-3.5");
|
|
3619
|
-
pinIcon.setAttribute("aria-hidden", "true");
|
|
3620
|
-
const pinBtn = el(
|
|
3621
|
-
"button",
|
|
3622
|
-
{
|
|
3623
|
-
class: BUTTON_CLASS,
|
|
3624
|
-
attrs: {
|
|
3625
|
-
type: "button",
|
|
3626
|
-
"data-uidex-menubar-pins": "",
|
|
3627
|
-
"aria-label": "Report pins"
|
|
3628
|
-
}
|
|
3629
|
-
},
|
|
3630
|
-
pinIcon
|
|
3631
|
-
);
|
|
3632
|
-
const commitCycler = el("div", {
|
|
3633
|
-
class: "relative z-1 inline-flex items-center gap-0.5",
|
|
3634
|
-
attrs: { "data-uidex-menubar-commit-cycler": "" }
|
|
3635
|
-
});
|
|
3636
|
-
commitCycler.hidden = true;
|
|
3637
|
-
const prevIcon = (0, import_lucide3.createElement)(import_lucide3.ChevronLeft);
|
|
3638
|
-
prevIcon.setAttribute("class", "size-3");
|
|
3639
|
-
prevIcon.setAttribute("aria-hidden", "true");
|
|
3640
|
-
const prevBtn = el(
|
|
3641
|
-
"button",
|
|
3642
|
-
{
|
|
3643
|
-
class: BUTTON_CLASS,
|
|
3644
|
-
attrs: { type: "button", "aria-label": "Previous commit" },
|
|
3645
|
-
style: { width: "18px", height: "18px" }
|
|
3646
|
-
},
|
|
3647
|
-
prevIcon
|
|
3648
|
-
);
|
|
3649
|
-
const commitLabel = el("span", {
|
|
3650
|
-
class: "relative z-1 whitespace-nowrap px-1 text-[10px] font-mono text-muted-foreground",
|
|
3651
|
-
attrs: { "data-uidex-menubar-commit-label": "" }
|
|
3652
|
-
});
|
|
3653
|
-
const nextIcon = (0, import_lucide3.createElement)(import_lucide3.ChevronRight);
|
|
3654
|
-
nextIcon.setAttribute("class", "size-3");
|
|
3655
|
-
nextIcon.setAttribute("aria-hidden", "true");
|
|
3656
|
-
const nextBtn = el(
|
|
3657
|
-
"button",
|
|
3658
|
-
{
|
|
3659
|
-
class: BUTTON_CLASS,
|
|
3660
|
-
attrs: { type: "button", "aria-label": "Next commit" },
|
|
3661
|
-
style: { width: "18px", height: "18px" }
|
|
3662
|
-
},
|
|
3663
|
-
nextIcon
|
|
3664
|
-
);
|
|
3665
|
-
commitCycler.appendChild(prevBtn);
|
|
3666
|
-
commitCycler.appendChild(commitLabel);
|
|
3667
|
-
commitCycler.appendChild(nextBtn);
|
|
3668
|
-
const pinWrapper = el("div", {
|
|
3669
|
-
class: "relative z-1 inline-flex items-center gap-0.5",
|
|
3670
|
-
attrs: { "data-uidex-menubar-pin-wrapper": "" }
|
|
3671
|
-
});
|
|
3672
|
-
pinWrapper.hidden = true;
|
|
3673
|
-
pinWrapper.appendChild(pinBtn);
|
|
3674
|
-
pinWrapper.appendChild(commitCycler);
|
|
3675
|
-
root.appendChild(pinWrapper);
|
|
3676
|
-
const updatePinUI = () => {
|
|
3677
|
-
if (!activePinLayer) {
|
|
3678
|
-
pinWrapper.hidden = true;
|
|
3679
|
-
return;
|
|
3680
|
-
}
|
|
3681
|
-
const pinsVisible = activePinLayer.visible;
|
|
3682
|
-
const state = activePinLayer.filterState;
|
|
3683
|
-
const hasCommits = state.commits.length > 0;
|
|
3684
|
-
pinWrapper.hidden = false;
|
|
3685
|
-
commitCycler.hidden = !pinsVisible || !hasCommits;
|
|
3686
|
-
if (state.commitIndex === -1 || !state.commits[state.commitIndex]) {
|
|
3687
|
-
commitLabel.textContent = `all (${state.commits.length})`;
|
|
3688
|
-
} else {
|
|
3689
|
-
const sha = state.commits[state.commitIndex] ?? "";
|
|
3690
|
-
commitLabel.textContent = sha.slice(0, 7);
|
|
3691
|
-
}
|
|
3692
|
-
pinBtn.className = cn(BUTTON_CLASS, pinsVisible && BUTTON_ACTIVE_CLASS);
|
|
3693
|
-
};
|
|
3694
|
-
pinBtn.addEventListener("click", (e) => {
|
|
3695
|
-
e.stopPropagation();
|
|
3696
|
-
if (activePinLayer) {
|
|
3697
|
-
activePinLayer.setVisible(!activePinLayer.visible);
|
|
3698
|
-
}
|
|
3699
|
-
});
|
|
3700
|
-
prevBtn.addEventListener("click", (e) => {
|
|
3701
|
-
e.stopPropagation();
|
|
3702
|
-
activePinLayer?.prevCommit();
|
|
3703
|
-
});
|
|
3704
|
-
nextBtn.addEventListener("click", (e) => {
|
|
3705
|
-
e.stopPropagation();
|
|
3706
|
-
activePinLayer?.nextCommit();
|
|
3707
|
-
});
|
|
3708
|
-
let unsubscribePinFilter = activePinLayer?.onFilterChange(() => updatePinUI());
|
|
3709
|
-
const presenceIcon = (0, import_lucide3.createElement)(import_lucide3.Users);
|
|
3710
|
-
presenceIcon.setAttribute("class", "size-3.5");
|
|
3711
|
-
presenceIcon.setAttribute("aria-hidden", "true");
|
|
3712
|
-
const presenceBtn = el(
|
|
3713
|
-
"button",
|
|
3714
|
-
{
|
|
3715
|
-
class: BUTTON_CLASS,
|
|
3716
|
-
attrs: {
|
|
3717
|
-
type: "button",
|
|
3718
|
-
"data-uidex-menubar-presence": "",
|
|
3719
|
-
"aria-label": "Online users"
|
|
3720
|
-
}
|
|
3721
|
-
},
|
|
3722
|
-
presenceIcon
|
|
3723
|
-
);
|
|
3724
|
-
presenceBtn.hidden = true;
|
|
3725
|
-
const presenceBadge = el("span", {
|
|
3726
|
-
class: "absolute -top-1 -right-1 z-1 inline-flex size-3.5 items-center justify-center rounded-full bg-info text-[9px] font-bold leading-none text-info-foreground"
|
|
3727
|
-
});
|
|
3728
|
-
presenceBtn.appendChild(presenceBadge);
|
|
3729
|
-
const presencePopover = el("div", {
|
|
3730
|
-
class: "absolute bottom-full mb-2 right-0 min-w-32 rounded-lg border border-border bg-popover p-2 text-xs text-popover-foreground shadow-lg"
|
|
3731
|
-
});
|
|
3732
|
-
presencePopover.hidden = true;
|
|
3733
|
-
let presencePopoverVisible = false;
|
|
3734
|
-
presenceBtn.addEventListener("click", (e) => {
|
|
3735
|
-
e.stopPropagation();
|
|
3736
|
-
presencePopoverVisible = !presencePopoverVisible;
|
|
3737
|
-
presencePopover.hidden = !presencePopoverVisible;
|
|
3738
|
-
});
|
|
3739
|
-
const presenceWrapper = el("div", { class: "relative z-1 inline-flex" }, [
|
|
3740
|
-
presenceBtn,
|
|
3741
|
-
presencePopover
|
|
3742
|
-
]);
|
|
3743
|
-
presenceWrapper.hidden = true;
|
|
3744
|
-
root.appendChild(presenceWrapper);
|
|
3745
|
-
let presenceUsers = [];
|
|
3746
|
-
const updatePresenceUI = () => {
|
|
3747
|
-
const localUserId = session.getState().user?.id ?? null;
|
|
3748
|
-
const peers = localUserId ? presenceUsers.filter((u) => u.userId !== localUserId) : presenceUsers;
|
|
3749
|
-
const count = peers.length;
|
|
3750
|
-
presenceWrapper.hidden = count === 0;
|
|
3751
|
-
presenceBadge.textContent = String(count);
|
|
3752
|
-
presenceBtn.setAttribute(
|
|
3753
|
-
"aria-label",
|
|
3754
|
-
count === 1 ? "1 other user online" : `${count} other users online`
|
|
3755
|
-
);
|
|
3756
|
-
presencePopover.innerHTML = "";
|
|
3757
|
-
for (const user of peers) {
|
|
3758
|
-
const row = el("div", {
|
|
3759
|
-
class: "flex items-center gap-2 rounded px-1.5 py-1"
|
|
3760
|
-
});
|
|
3761
|
-
const dot = el("span", {
|
|
3762
|
-
class: "inline-block size-2 shrink-0 rounded-full bg-emerald-500"
|
|
3763
|
-
});
|
|
3764
|
-
const name = el("span", {
|
|
3765
|
-
class: "truncate",
|
|
3766
|
-
text: user.name || "Anonymous"
|
|
3767
|
-
});
|
|
3768
|
-
row.appendChild(dot);
|
|
3769
|
-
row.appendChild(name);
|
|
3770
|
-
presencePopover.appendChild(row);
|
|
3771
|
-
}
|
|
3772
|
-
};
|
|
3773
3167
|
const paletteIcon = (0, import_lucide3.createElement)(import_lucide3.Command);
|
|
3774
3168
|
paletteIcon.setAttribute("class", "size-3.5");
|
|
3775
3169
|
paletteIcon.setAttribute("aria-hidden", "true");
|
|
@@ -3798,7 +3192,7 @@ function createMenuBar(options) {
|
|
|
3798
3192
|
container.appendChild(root);
|
|
3799
3193
|
const syncButtonStates = () => {
|
|
3800
3194
|
const state = session.getState();
|
|
3801
|
-
const inspectActive = state.
|
|
3195
|
+
const inspectActive = state.mode === "inspecting";
|
|
3802
3196
|
inspectBtn.setAttribute(
|
|
3803
3197
|
"data-uidex-menubar-inspect-active",
|
|
3804
3198
|
inspectActive ? "true" : "false"
|
|
@@ -3884,28 +3278,14 @@ function createMenuBar(options) {
|
|
|
3884
3278
|
const vertical = y / (window.innerHeight || 1) < 0.5 ? "top" : "bottom";
|
|
3885
3279
|
snapTo(`${vertical}-${horizontal}`);
|
|
3886
3280
|
}
|
|
3887
|
-
const unsubscribePresence = channel?.onPresence(
|
|
3888
|
-
(users) => {
|
|
3889
|
-
presenceUsers = users;
|
|
3890
|
-
updatePresenceUI();
|
|
3891
|
-
}
|
|
3892
|
-
);
|
|
3893
3281
|
return {
|
|
3894
3282
|
destroy() {
|
|
3895
|
-
unsubscribePinFilter?.();
|
|
3896
|
-
unsubscribePresence?.();
|
|
3897
3283
|
unsubscribeSession();
|
|
3898
3284
|
root.removeEventListener("mousedown", onMouseDown);
|
|
3899
3285
|
document.removeEventListener("mousemove", onMouseMove);
|
|
3900
3286
|
document.removeEventListener("mouseup", onMouseUp);
|
|
3901
3287
|
root.remove();
|
|
3902
3288
|
},
|
|
3903
|
-
setPinLayer(layer) {
|
|
3904
|
-
unsubscribePinFilter?.();
|
|
3905
|
-
activePinLayer = layer;
|
|
3906
|
-
unsubscribePinFilter = layer.onFilterChange(() => updatePinUI());
|
|
3907
|
-
updatePinUI();
|
|
3908
|
-
},
|
|
3909
3289
|
snapTo,
|
|
3910
3290
|
snapToNearest,
|
|
3911
3291
|
get corner() {
|
|
@@ -3917,6 +3297,49 @@ function createMenuBar(options) {
|
|
|
3917
3297
|
};
|
|
3918
3298
|
}
|
|
3919
3299
|
|
|
3300
|
+
// src/browser/internal/repositioner.ts
|
|
3301
|
+
function createRepositioner(onReflow) {
|
|
3302
|
+
let rafId = null;
|
|
3303
|
+
let attached = false;
|
|
3304
|
+
const schedule = () => {
|
|
3305
|
+
if (rafId !== null) return;
|
|
3306
|
+
rafId = typeof requestAnimationFrame === "function" ? requestAnimationFrame(() => {
|
|
3307
|
+
rafId = null;
|
|
3308
|
+
onReflow();
|
|
3309
|
+
}) : setTimeout(() => {
|
|
3310
|
+
rafId = null;
|
|
3311
|
+
onReflow();
|
|
3312
|
+
}, 0);
|
|
3313
|
+
};
|
|
3314
|
+
const cancel = () => {
|
|
3315
|
+
if (rafId === null) return;
|
|
3316
|
+
if (typeof cancelAnimationFrame === "function") cancelAnimationFrame(rafId);
|
|
3317
|
+
else clearTimeout(rafId);
|
|
3318
|
+
rafId = null;
|
|
3319
|
+
};
|
|
3320
|
+
const onScroll = () => schedule();
|
|
3321
|
+
const onResize = () => schedule();
|
|
3322
|
+
const attach = () => {
|
|
3323
|
+
if (attached) return;
|
|
3324
|
+
attached = true;
|
|
3325
|
+
window.addEventListener("resize", onResize);
|
|
3326
|
+
window.addEventListener("scroll", onScroll, {
|
|
3327
|
+
capture: true,
|
|
3328
|
+
passive: true
|
|
3329
|
+
});
|
|
3330
|
+
};
|
|
3331
|
+
const detach = () => {
|
|
3332
|
+
if (!attached) return;
|
|
3333
|
+
attached = false;
|
|
3334
|
+
window.removeEventListener("resize", onResize);
|
|
3335
|
+
window.removeEventListener("scroll", onScroll, {
|
|
3336
|
+
capture: true
|
|
3337
|
+
});
|
|
3338
|
+
cancel();
|
|
3339
|
+
};
|
|
3340
|
+
return { schedule, cancel, attach, detach };
|
|
3341
|
+
}
|
|
3342
|
+
|
|
3920
3343
|
// src/browser/surface/overlay.ts
|
|
3921
3344
|
var DEFAULT_COLOR = "#34d399";
|
|
3922
3345
|
var DEFAULT_BORDER_WIDTH = 2;
|
|
@@ -3984,44 +3407,7 @@ function createOverlay(deps) {
|
|
|
3984
3407
|
fillOpacity: DEFAULT_FILL_OPACITY,
|
|
3985
3408
|
backdrop: false
|
|
3986
3409
|
};
|
|
3987
|
-
|
|
3988
|
-
let attached = false;
|
|
3989
|
-
const schedule = () => {
|
|
3990
|
-
if (rafId !== null) return;
|
|
3991
|
-
rafId = typeof requestAnimationFrame === "function" ? requestAnimationFrame(() => {
|
|
3992
|
-
rafId = null;
|
|
3993
|
-
updatePosition();
|
|
3994
|
-
}) : setTimeout(() => {
|
|
3995
|
-
rafId = null;
|
|
3996
|
-
updatePosition();
|
|
3997
|
-
}, 0);
|
|
3998
|
-
};
|
|
3999
|
-
const cancelSchedule = () => {
|
|
4000
|
-
if (rafId === null) return;
|
|
4001
|
-
if (typeof cancelAnimationFrame === "function") cancelAnimationFrame(rafId);
|
|
4002
|
-
else clearTimeout(rafId);
|
|
4003
|
-
rafId = null;
|
|
4004
|
-
};
|
|
4005
|
-
const onScroll = () => schedule();
|
|
4006
|
-
const onResize = () => schedule();
|
|
4007
|
-
const attach = () => {
|
|
4008
|
-
if (attached) return;
|
|
4009
|
-
attached = true;
|
|
4010
|
-
window.addEventListener("resize", onResize);
|
|
4011
|
-
window.addEventListener("scroll", onScroll, {
|
|
4012
|
-
capture: true,
|
|
4013
|
-
passive: true
|
|
4014
|
-
});
|
|
4015
|
-
};
|
|
4016
|
-
const detach = () => {
|
|
4017
|
-
if (!attached) return;
|
|
4018
|
-
attached = false;
|
|
4019
|
-
window.removeEventListener("resize", onResize);
|
|
4020
|
-
window.removeEventListener("scroll", onScroll, {
|
|
4021
|
-
capture: true
|
|
4022
|
-
});
|
|
4023
|
-
cancelSchedule();
|
|
4024
|
-
};
|
|
3410
|
+
const repositioner = createRepositioner(() => updatePosition());
|
|
4025
3411
|
function updatePosition() {
|
|
4026
3412
|
if (!target) return;
|
|
4027
3413
|
const rect = target.getBoundingClientRect();
|
|
@@ -4085,16 +3471,16 @@ function createOverlay(deps) {
|
|
|
4085
3471
|
box.offsetHeight;
|
|
4086
3472
|
}
|
|
4087
3473
|
box.style.opacity = "1";
|
|
4088
|
-
attach();
|
|
3474
|
+
repositioner.attach();
|
|
4089
3475
|
},
|
|
4090
3476
|
hide() {
|
|
4091
3477
|
target = null;
|
|
4092
3478
|
box.style.opacity = "0";
|
|
4093
3479
|
backdrop.style.opacity = "0";
|
|
4094
|
-
detach();
|
|
3480
|
+
repositioner.detach();
|
|
4095
3481
|
},
|
|
4096
3482
|
destroy() {
|
|
4097
|
-
detach();
|
|
3483
|
+
repositioner.detach();
|
|
4098
3484
|
box.remove();
|
|
4099
3485
|
backdrop.remove();
|
|
4100
3486
|
target = null;
|
|
@@ -4211,8 +3597,7 @@ function createSurfaceShell(options) {
|
|
|
4211
3597
|
const overlay = createOverlay({ container: host.shadowRoot });
|
|
4212
3598
|
cleanup.add(overlay);
|
|
4213
3599
|
const tooltip = createCursorTooltip({
|
|
4214
|
-
container: host.chromeEl
|
|
4215
|
-
session: options.session
|
|
3600
|
+
container: host.chromeEl
|
|
4216
3601
|
});
|
|
4217
3602
|
cleanup.add(tooltip);
|
|
4218
3603
|
const afterHover = options.inspector?.onAfterHover;
|
|
@@ -4258,9 +3643,7 @@ function createSurfaceShell(options) {
|
|
|
4258
3643
|
container: host.chromeEl,
|
|
4259
3644
|
session: options.session,
|
|
4260
3645
|
initialCorner: options.initialCorner,
|
|
4261
|
-
appTitle: options.appTitle
|
|
4262
|
-
channel: options.channel ?? null,
|
|
4263
|
-
pinLayer: options.pinLayer ?? null
|
|
3646
|
+
appTitle: options.appTitle
|
|
4264
3647
|
});
|
|
4265
3648
|
cleanup.add(menuBar);
|
|
4266
3649
|
return {
|