@copilotkit/web-inspector 0.0.0-main-20260402184302
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/CHANGELOG.md +473 -0
- package/LICENSE +21 -0
- package/dist/assets/inspector-logo-icon.cjs +12 -0
- package/dist/assets/inspector-logo-icon.cjs.map +1 -0
- package/dist/assets/inspector-logo-icon.mjs +6 -0
- package/dist/assets/inspector-logo-icon.mjs.map +1 -0
- package/dist/assets/inspector-logo.cjs +12 -0
- package/dist/assets/inspector-logo.cjs.map +1 -0
- package/dist/assets/inspector-logo.mjs +6 -0
- package/dist/assets/inspector-logo.mjs.map +1 -0
- package/dist/index.cjs +2881 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +208 -0
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.mts +208 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +2878 -0
- package/dist/index.mjs.map +1 -0
- package/dist/index.umd.js +3049 -0
- package/dist/index.umd.js.map +1 -0
- package/dist/lib/context-helpers.cjs +82 -0
- package/dist/lib/context-helpers.cjs.map +1 -0
- package/dist/lib/context-helpers.mjs +75 -0
- package/dist/lib/context-helpers.mjs.map +1 -0
- package/dist/lib/persistence.cjs +62 -0
- package/dist/lib/persistence.cjs.map +1 -0
- package/dist/lib/persistence.mjs +56 -0
- package/dist/lib/persistence.mjs.map +1 -0
- package/dist/styles/generated.cjs +12 -0
- package/dist/styles/generated.cjs.map +1 -0
- package/dist/styles/generated.mjs +6 -0
- package/dist/styles/generated.mjs.map +1 -0
- package/package.json +51 -0
- package/src/__tests__/web-inspector.spec.ts +191 -0
- package/src/assets/inspector-logo-icon.svg +8 -0
- package/src/assets/inspector-logo.svg +40 -0
- package/src/components.d.ts +20 -0
- package/src/index.ts +4364 -0
- package/src/lib/context-helpers.ts +166 -0
- package/src/lib/persistence.ts +109 -0
- package/src/lib/types.ts +19 -0
- package/src/styles/generated.css +2 -0
- package/src/styles/tailwind.css +23 -0
- package/src/types/css.d.ts +4 -0
- package/src/types/svg.d.ts +4 -0
- package/tsconfig.json +14 -0
- package/tsdown.config.ts +45 -0
- package/vitest.config.ts +10 -0
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
|
|
2
|
+
//#region src/lib/context-helpers.ts
|
|
3
|
+
function updateSizeFromElement(state, element, fallback) {
|
|
4
|
+
const rect = element.getBoundingClientRect();
|
|
5
|
+
state.size = {
|
|
6
|
+
width: rect.width || fallback.width,
|
|
7
|
+
height: rect.height || fallback.height
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
function clampSize(size, viewport, edgeMargin, minWidth, minHeight) {
|
|
11
|
+
const maxWidth = Math.max(minWidth, viewport.width - edgeMargin * 2);
|
|
12
|
+
const maxHeight = Math.max(minHeight, viewport.height - edgeMargin * 2);
|
|
13
|
+
return {
|
|
14
|
+
width: clamp(size.width, minWidth, maxWidth),
|
|
15
|
+
height: clamp(size.height, minHeight, maxHeight)
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
function constrainToViewport(state, position, viewport, edgeMargin) {
|
|
19
|
+
const maxX = Math.max(edgeMargin, viewport.width - state.size.width - edgeMargin);
|
|
20
|
+
const maxY = Math.max(edgeMargin, viewport.height - state.size.height - edgeMargin);
|
|
21
|
+
return {
|
|
22
|
+
x: clamp(position.x, edgeMargin, maxX),
|
|
23
|
+
y: clamp(position.y, edgeMargin, maxY)
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
function keepPositionWithinViewport(state, viewport, edgeMargin) {
|
|
27
|
+
state.position = constrainToViewport(state, state.position, viewport, edgeMargin);
|
|
28
|
+
}
|
|
29
|
+
function centerContext(state, viewport, edgeMargin) {
|
|
30
|
+
state.position = constrainToViewport(state, {
|
|
31
|
+
x: Math.round((viewport.width - state.size.width) / 2),
|
|
32
|
+
y: Math.round((viewport.height - state.size.height) / 2)
|
|
33
|
+
}, viewport, edgeMargin);
|
|
34
|
+
updateAnchorFromPosition(state, viewport, edgeMargin);
|
|
35
|
+
return state.position;
|
|
36
|
+
}
|
|
37
|
+
function updateAnchorFromPosition(state, viewport, edgeMargin) {
|
|
38
|
+
const centerX = state.position.x + state.size.width / 2;
|
|
39
|
+
const centerY = state.position.y + state.size.height / 2;
|
|
40
|
+
const horizontal = centerX < viewport.width / 2 ? "left" : "right";
|
|
41
|
+
const vertical = centerY < viewport.height / 2 ? "top" : "bottom";
|
|
42
|
+
state.anchor = {
|
|
43
|
+
horizontal,
|
|
44
|
+
vertical
|
|
45
|
+
};
|
|
46
|
+
const maxHorizontalOffset = Math.max(edgeMargin, viewport.width - state.size.width - edgeMargin);
|
|
47
|
+
const maxVerticalOffset = Math.max(edgeMargin, viewport.height - state.size.height - edgeMargin);
|
|
48
|
+
state.anchorOffset = {
|
|
49
|
+
x: horizontal === "left" ? clamp(state.position.x, edgeMargin, maxHorizontalOffset) : clamp(viewport.width - state.position.x - state.size.width, edgeMargin, maxHorizontalOffset),
|
|
50
|
+
y: vertical === "top" ? clamp(state.position.y, edgeMargin, maxVerticalOffset) : clamp(viewport.height - state.position.y - state.size.height, edgeMargin, maxVerticalOffset)
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
function applyAnchorPosition(state, viewport, edgeMargin) {
|
|
54
|
+
const maxHorizontalOffset = Math.max(edgeMargin, viewport.width - state.size.width - edgeMargin);
|
|
55
|
+
const maxVerticalOffset = Math.max(edgeMargin, viewport.height - state.size.height - edgeMargin);
|
|
56
|
+
const horizontalOffset = clamp(state.anchorOffset.x, edgeMargin, maxHorizontalOffset);
|
|
57
|
+
const verticalOffset = clamp(state.anchorOffset.y, edgeMargin, maxVerticalOffset);
|
|
58
|
+
const x = state.anchor.horizontal === "left" ? horizontalOffset : viewport.width - state.size.width - horizontalOffset;
|
|
59
|
+
const y = state.anchor.vertical === "top" ? verticalOffset : viewport.height - state.size.height - verticalOffset;
|
|
60
|
+
state.anchorOffset = {
|
|
61
|
+
x: horizontalOffset,
|
|
62
|
+
y: verticalOffset
|
|
63
|
+
};
|
|
64
|
+
state.position = constrainToViewport(state, {
|
|
65
|
+
x,
|
|
66
|
+
y
|
|
67
|
+
}, viewport, edgeMargin);
|
|
68
|
+
return state.position;
|
|
69
|
+
}
|
|
70
|
+
function clamp(value, min, max) {
|
|
71
|
+
return Math.min(Math.max(min, value), max);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
//#endregion
|
|
75
|
+
exports.applyAnchorPosition = applyAnchorPosition;
|
|
76
|
+
exports.centerContext = centerContext;
|
|
77
|
+
exports.clampSize = clampSize;
|
|
78
|
+
exports.constrainToViewport = constrainToViewport;
|
|
79
|
+
exports.keepPositionWithinViewport = keepPositionWithinViewport;
|
|
80
|
+
exports.updateAnchorFromPosition = updateAnchorFromPosition;
|
|
81
|
+
exports.updateSizeFromElement = updateSizeFromElement;
|
|
82
|
+
//# sourceMappingURL=context-helpers.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-helpers.cjs","names":[],"sources":["../../src/lib/context-helpers.ts"],"sourcesContent":["import type { Anchor, ContextState, Position, Size } from \"./types\";\n\nexport function updateSizeFromElement(\n state: ContextState,\n element: HTMLElement,\n fallback: Size,\n): void {\n const rect = element.getBoundingClientRect();\n state.size = {\n width: rect.width || fallback.width,\n height: rect.height || fallback.height,\n };\n}\n\nexport function clampSize(\n size: Size,\n viewport: Size,\n edgeMargin: number,\n minWidth: number,\n minHeight: number,\n): Size {\n const maxWidth = Math.max(minWidth, viewport.width - edgeMargin * 2);\n const maxHeight = Math.max(minHeight, viewport.height - edgeMargin * 2);\n\n return {\n width: clamp(size.width, minWidth, maxWidth),\n height: clamp(size.height, minHeight, maxHeight),\n };\n}\n\nexport function constrainToViewport(\n state: ContextState,\n position: Position,\n viewport: Size,\n edgeMargin: number,\n): Position {\n const maxX = Math.max(\n edgeMargin,\n viewport.width - state.size.width - edgeMargin,\n );\n const maxY = Math.max(\n edgeMargin,\n viewport.height - state.size.height - edgeMargin,\n );\n\n return {\n x: clamp(position.x, edgeMargin, maxX),\n y: clamp(position.y, edgeMargin, maxY),\n };\n}\n\nexport function keepPositionWithinViewport(\n state: ContextState,\n viewport: Size,\n edgeMargin: number,\n): void {\n state.position = constrainToViewport(\n state,\n state.position,\n viewport,\n edgeMargin,\n );\n}\n\nexport function centerContext(\n state: ContextState,\n viewport: Size,\n edgeMargin: number,\n): Position {\n const centered: Position = {\n x: Math.round((viewport.width - state.size.width) / 2),\n y: Math.round((viewport.height - state.size.height) / 2),\n };\n\n state.position = constrainToViewport(state, centered, viewport, edgeMargin);\n updateAnchorFromPosition(state, viewport, edgeMargin);\n return state.position;\n}\n\nexport function updateAnchorFromPosition(\n state: ContextState,\n viewport: Size,\n edgeMargin: number,\n): void {\n const centerX = state.position.x + state.size.width / 2;\n const centerY = state.position.y + state.size.height / 2;\n\n const horizontal: Anchor[\"horizontal\"] =\n centerX < viewport.width / 2 ? \"left\" : \"right\";\n const vertical: Anchor[\"vertical\"] =\n centerY < viewport.height / 2 ? \"top\" : \"bottom\";\n\n state.anchor = { horizontal, vertical };\n\n const maxHorizontalOffset = Math.max(\n edgeMargin,\n viewport.width - state.size.width - edgeMargin,\n );\n const maxVerticalOffset = Math.max(\n edgeMargin,\n viewport.height - state.size.height - edgeMargin,\n );\n\n state.anchorOffset = {\n x:\n horizontal === \"left\"\n ? clamp(state.position.x, edgeMargin, maxHorizontalOffset)\n : clamp(\n viewport.width - state.position.x - state.size.width,\n edgeMargin,\n maxHorizontalOffset,\n ),\n y:\n vertical === \"top\"\n ? clamp(state.position.y, edgeMargin, maxVerticalOffset)\n : clamp(\n viewport.height - state.position.y - state.size.height,\n edgeMargin,\n maxVerticalOffset,\n ),\n };\n}\n\nexport function applyAnchorPosition(\n state: ContextState,\n viewport: Size,\n edgeMargin: number,\n): Position {\n const maxHorizontalOffset = Math.max(\n edgeMargin,\n viewport.width - state.size.width - edgeMargin,\n );\n const maxVerticalOffset = Math.max(\n edgeMargin,\n viewport.height - state.size.height - edgeMargin,\n );\n\n const horizontalOffset = clamp(\n state.anchorOffset.x,\n edgeMargin,\n maxHorizontalOffset,\n );\n const verticalOffset = clamp(\n state.anchorOffset.y,\n edgeMargin,\n maxVerticalOffset,\n );\n\n const x =\n state.anchor.horizontal === \"left\"\n ? horizontalOffset\n : viewport.width - state.size.width - horizontalOffset;\n\n const y =\n state.anchor.vertical === \"top\"\n ? verticalOffset\n : viewport.height - state.size.height - verticalOffset;\n\n state.anchorOffset = { x: horizontalOffset, y: verticalOffset };\n state.position = constrainToViewport(state, { x, y }, viewport, edgeMargin);\n return state.position;\n}\n\nfunction clamp(value: number, min: number, max: number): number {\n return Math.min(Math.max(min, value), max);\n}\n"],"mappings":";;AAEA,SAAgB,sBACd,OACA,SACA,UACM;CACN,MAAM,OAAO,QAAQ,uBAAuB;AAC5C,OAAM,OAAO;EACX,OAAO,KAAK,SAAS,SAAS;EAC9B,QAAQ,KAAK,UAAU,SAAS;EACjC;;AAGH,SAAgB,UACd,MACA,UACA,YACA,UACA,WACM;CACN,MAAM,WAAW,KAAK,IAAI,UAAU,SAAS,QAAQ,aAAa,EAAE;CACpE,MAAM,YAAY,KAAK,IAAI,WAAW,SAAS,SAAS,aAAa,EAAE;AAEvE,QAAO;EACL,OAAO,MAAM,KAAK,OAAO,UAAU,SAAS;EAC5C,QAAQ,MAAM,KAAK,QAAQ,WAAW,UAAU;EACjD;;AAGH,SAAgB,oBACd,OACA,UACA,UACA,YACU;CACV,MAAM,OAAO,KAAK,IAChB,YACA,SAAS,QAAQ,MAAM,KAAK,QAAQ,WACrC;CACD,MAAM,OAAO,KAAK,IAChB,YACA,SAAS,SAAS,MAAM,KAAK,SAAS,WACvC;AAED,QAAO;EACL,GAAG,MAAM,SAAS,GAAG,YAAY,KAAK;EACtC,GAAG,MAAM,SAAS,GAAG,YAAY,KAAK;EACvC;;AAGH,SAAgB,2BACd,OACA,UACA,YACM;AACN,OAAM,WAAW,oBACf,OACA,MAAM,UACN,UACA,WACD;;AAGH,SAAgB,cACd,OACA,UACA,YACU;AAMV,OAAM,WAAW,oBAAoB,OALV;EACzB,GAAG,KAAK,OAAO,SAAS,QAAQ,MAAM,KAAK,SAAS,EAAE;EACtD,GAAG,KAAK,OAAO,SAAS,SAAS,MAAM,KAAK,UAAU,EAAE;EACzD,EAEqD,UAAU,WAAW;AAC3E,0BAAyB,OAAO,UAAU,WAAW;AACrD,QAAO,MAAM;;AAGf,SAAgB,yBACd,OACA,UACA,YACM;CACN,MAAM,UAAU,MAAM,SAAS,IAAI,MAAM,KAAK,QAAQ;CACtD,MAAM,UAAU,MAAM,SAAS,IAAI,MAAM,KAAK,SAAS;CAEvD,MAAM,aACJ,UAAU,SAAS,QAAQ,IAAI,SAAS;CAC1C,MAAM,WACJ,UAAU,SAAS,SAAS,IAAI,QAAQ;AAE1C,OAAM,SAAS;EAAE;EAAY;EAAU;CAEvC,MAAM,sBAAsB,KAAK,IAC/B,YACA,SAAS,QAAQ,MAAM,KAAK,QAAQ,WACrC;CACD,MAAM,oBAAoB,KAAK,IAC7B,YACA,SAAS,SAAS,MAAM,KAAK,SAAS,WACvC;AAED,OAAM,eAAe;EACnB,GACE,eAAe,SACX,MAAM,MAAM,SAAS,GAAG,YAAY,oBAAoB,GACxD,MACE,SAAS,QAAQ,MAAM,SAAS,IAAI,MAAM,KAAK,OAC/C,YACA,oBACD;EACP,GACE,aAAa,QACT,MAAM,MAAM,SAAS,GAAG,YAAY,kBAAkB,GACtD,MACE,SAAS,SAAS,MAAM,SAAS,IAAI,MAAM,KAAK,QAChD,YACA,kBACD;EACR;;AAGH,SAAgB,oBACd,OACA,UACA,YACU;CACV,MAAM,sBAAsB,KAAK,IAC/B,YACA,SAAS,QAAQ,MAAM,KAAK,QAAQ,WACrC;CACD,MAAM,oBAAoB,KAAK,IAC7B,YACA,SAAS,SAAS,MAAM,KAAK,SAAS,WACvC;CAED,MAAM,mBAAmB,MACvB,MAAM,aAAa,GACnB,YACA,oBACD;CACD,MAAM,iBAAiB,MACrB,MAAM,aAAa,GACnB,YACA,kBACD;CAED,MAAM,IACJ,MAAM,OAAO,eAAe,SACxB,mBACA,SAAS,QAAQ,MAAM,KAAK,QAAQ;CAE1C,MAAM,IACJ,MAAM,OAAO,aAAa,QACtB,iBACA,SAAS,SAAS,MAAM,KAAK,SAAS;AAE5C,OAAM,eAAe;EAAE,GAAG;EAAkB,GAAG;EAAgB;AAC/D,OAAM,WAAW,oBAAoB,OAAO;EAAE;EAAG;EAAG,EAAE,UAAU,WAAW;AAC3E,QAAO,MAAM;;AAGf,SAAS,MAAM,OAAe,KAAa,KAAqB;AAC9D,QAAO,KAAK,IAAI,KAAK,IAAI,KAAK,MAAM,EAAE,IAAI"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
//#region src/lib/context-helpers.ts
|
|
2
|
+
function updateSizeFromElement(state, element, fallback) {
|
|
3
|
+
const rect = element.getBoundingClientRect();
|
|
4
|
+
state.size = {
|
|
5
|
+
width: rect.width || fallback.width,
|
|
6
|
+
height: rect.height || fallback.height
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
function clampSize(size, viewport, edgeMargin, minWidth, minHeight) {
|
|
10
|
+
const maxWidth = Math.max(minWidth, viewport.width - edgeMargin * 2);
|
|
11
|
+
const maxHeight = Math.max(minHeight, viewport.height - edgeMargin * 2);
|
|
12
|
+
return {
|
|
13
|
+
width: clamp(size.width, minWidth, maxWidth),
|
|
14
|
+
height: clamp(size.height, minHeight, maxHeight)
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
function constrainToViewport(state, position, viewport, edgeMargin) {
|
|
18
|
+
const maxX = Math.max(edgeMargin, viewport.width - state.size.width - edgeMargin);
|
|
19
|
+
const maxY = Math.max(edgeMargin, viewport.height - state.size.height - edgeMargin);
|
|
20
|
+
return {
|
|
21
|
+
x: clamp(position.x, edgeMargin, maxX),
|
|
22
|
+
y: clamp(position.y, edgeMargin, maxY)
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
function keepPositionWithinViewport(state, viewport, edgeMargin) {
|
|
26
|
+
state.position = constrainToViewport(state, state.position, viewport, edgeMargin);
|
|
27
|
+
}
|
|
28
|
+
function centerContext(state, viewport, edgeMargin) {
|
|
29
|
+
state.position = constrainToViewport(state, {
|
|
30
|
+
x: Math.round((viewport.width - state.size.width) / 2),
|
|
31
|
+
y: Math.round((viewport.height - state.size.height) / 2)
|
|
32
|
+
}, viewport, edgeMargin);
|
|
33
|
+
updateAnchorFromPosition(state, viewport, edgeMargin);
|
|
34
|
+
return state.position;
|
|
35
|
+
}
|
|
36
|
+
function updateAnchorFromPosition(state, viewport, edgeMargin) {
|
|
37
|
+
const centerX = state.position.x + state.size.width / 2;
|
|
38
|
+
const centerY = state.position.y + state.size.height / 2;
|
|
39
|
+
const horizontal = centerX < viewport.width / 2 ? "left" : "right";
|
|
40
|
+
const vertical = centerY < viewport.height / 2 ? "top" : "bottom";
|
|
41
|
+
state.anchor = {
|
|
42
|
+
horizontal,
|
|
43
|
+
vertical
|
|
44
|
+
};
|
|
45
|
+
const maxHorizontalOffset = Math.max(edgeMargin, viewport.width - state.size.width - edgeMargin);
|
|
46
|
+
const maxVerticalOffset = Math.max(edgeMargin, viewport.height - state.size.height - edgeMargin);
|
|
47
|
+
state.anchorOffset = {
|
|
48
|
+
x: horizontal === "left" ? clamp(state.position.x, edgeMargin, maxHorizontalOffset) : clamp(viewport.width - state.position.x - state.size.width, edgeMargin, maxHorizontalOffset),
|
|
49
|
+
y: vertical === "top" ? clamp(state.position.y, edgeMargin, maxVerticalOffset) : clamp(viewport.height - state.position.y - state.size.height, edgeMargin, maxVerticalOffset)
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
function applyAnchorPosition(state, viewport, edgeMargin) {
|
|
53
|
+
const maxHorizontalOffset = Math.max(edgeMargin, viewport.width - state.size.width - edgeMargin);
|
|
54
|
+
const maxVerticalOffset = Math.max(edgeMargin, viewport.height - state.size.height - edgeMargin);
|
|
55
|
+
const horizontalOffset = clamp(state.anchorOffset.x, edgeMargin, maxHorizontalOffset);
|
|
56
|
+
const verticalOffset = clamp(state.anchorOffset.y, edgeMargin, maxVerticalOffset);
|
|
57
|
+
const x = state.anchor.horizontal === "left" ? horizontalOffset : viewport.width - state.size.width - horizontalOffset;
|
|
58
|
+
const y = state.anchor.vertical === "top" ? verticalOffset : viewport.height - state.size.height - verticalOffset;
|
|
59
|
+
state.anchorOffset = {
|
|
60
|
+
x: horizontalOffset,
|
|
61
|
+
y: verticalOffset
|
|
62
|
+
};
|
|
63
|
+
state.position = constrainToViewport(state, {
|
|
64
|
+
x,
|
|
65
|
+
y
|
|
66
|
+
}, viewport, edgeMargin);
|
|
67
|
+
return state.position;
|
|
68
|
+
}
|
|
69
|
+
function clamp(value, min, max) {
|
|
70
|
+
return Math.min(Math.max(min, value), max);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
//#endregion
|
|
74
|
+
export { applyAnchorPosition, centerContext, clampSize, constrainToViewport, keepPositionWithinViewport, updateAnchorFromPosition, updateSizeFromElement };
|
|
75
|
+
//# sourceMappingURL=context-helpers.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-helpers.mjs","names":[],"sources":["../../src/lib/context-helpers.ts"],"sourcesContent":["import type { Anchor, ContextState, Position, Size } from \"./types\";\n\nexport function updateSizeFromElement(\n state: ContextState,\n element: HTMLElement,\n fallback: Size,\n): void {\n const rect = element.getBoundingClientRect();\n state.size = {\n width: rect.width || fallback.width,\n height: rect.height || fallback.height,\n };\n}\n\nexport function clampSize(\n size: Size,\n viewport: Size,\n edgeMargin: number,\n minWidth: number,\n minHeight: number,\n): Size {\n const maxWidth = Math.max(minWidth, viewport.width - edgeMargin * 2);\n const maxHeight = Math.max(minHeight, viewport.height - edgeMargin * 2);\n\n return {\n width: clamp(size.width, minWidth, maxWidth),\n height: clamp(size.height, minHeight, maxHeight),\n };\n}\n\nexport function constrainToViewport(\n state: ContextState,\n position: Position,\n viewport: Size,\n edgeMargin: number,\n): Position {\n const maxX = Math.max(\n edgeMargin,\n viewport.width - state.size.width - edgeMargin,\n );\n const maxY = Math.max(\n edgeMargin,\n viewport.height - state.size.height - edgeMargin,\n );\n\n return {\n x: clamp(position.x, edgeMargin, maxX),\n y: clamp(position.y, edgeMargin, maxY),\n };\n}\n\nexport function keepPositionWithinViewport(\n state: ContextState,\n viewport: Size,\n edgeMargin: number,\n): void {\n state.position = constrainToViewport(\n state,\n state.position,\n viewport,\n edgeMargin,\n );\n}\n\nexport function centerContext(\n state: ContextState,\n viewport: Size,\n edgeMargin: number,\n): Position {\n const centered: Position = {\n x: Math.round((viewport.width - state.size.width) / 2),\n y: Math.round((viewport.height - state.size.height) / 2),\n };\n\n state.position = constrainToViewport(state, centered, viewport, edgeMargin);\n updateAnchorFromPosition(state, viewport, edgeMargin);\n return state.position;\n}\n\nexport function updateAnchorFromPosition(\n state: ContextState,\n viewport: Size,\n edgeMargin: number,\n): void {\n const centerX = state.position.x + state.size.width / 2;\n const centerY = state.position.y + state.size.height / 2;\n\n const horizontal: Anchor[\"horizontal\"] =\n centerX < viewport.width / 2 ? \"left\" : \"right\";\n const vertical: Anchor[\"vertical\"] =\n centerY < viewport.height / 2 ? \"top\" : \"bottom\";\n\n state.anchor = { horizontal, vertical };\n\n const maxHorizontalOffset = Math.max(\n edgeMargin,\n viewport.width - state.size.width - edgeMargin,\n );\n const maxVerticalOffset = Math.max(\n edgeMargin,\n viewport.height - state.size.height - edgeMargin,\n );\n\n state.anchorOffset = {\n x:\n horizontal === \"left\"\n ? clamp(state.position.x, edgeMargin, maxHorizontalOffset)\n : clamp(\n viewport.width - state.position.x - state.size.width,\n edgeMargin,\n maxHorizontalOffset,\n ),\n y:\n vertical === \"top\"\n ? clamp(state.position.y, edgeMargin, maxVerticalOffset)\n : clamp(\n viewport.height - state.position.y - state.size.height,\n edgeMargin,\n maxVerticalOffset,\n ),\n };\n}\n\nexport function applyAnchorPosition(\n state: ContextState,\n viewport: Size,\n edgeMargin: number,\n): Position {\n const maxHorizontalOffset = Math.max(\n edgeMargin,\n viewport.width - state.size.width - edgeMargin,\n );\n const maxVerticalOffset = Math.max(\n edgeMargin,\n viewport.height - state.size.height - edgeMargin,\n );\n\n const horizontalOffset = clamp(\n state.anchorOffset.x,\n edgeMargin,\n maxHorizontalOffset,\n );\n const verticalOffset = clamp(\n state.anchorOffset.y,\n edgeMargin,\n maxVerticalOffset,\n );\n\n const x =\n state.anchor.horizontal === \"left\"\n ? horizontalOffset\n : viewport.width - state.size.width - horizontalOffset;\n\n const y =\n state.anchor.vertical === \"top\"\n ? verticalOffset\n : viewport.height - state.size.height - verticalOffset;\n\n state.anchorOffset = { x: horizontalOffset, y: verticalOffset };\n state.position = constrainToViewport(state, { x, y }, viewport, edgeMargin);\n return state.position;\n}\n\nfunction clamp(value: number, min: number, max: number): number {\n return Math.min(Math.max(min, value), max);\n}\n"],"mappings":";AAEA,SAAgB,sBACd,OACA,SACA,UACM;CACN,MAAM,OAAO,QAAQ,uBAAuB;AAC5C,OAAM,OAAO;EACX,OAAO,KAAK,SAAS,SAAS;EAC9B,QAAQ,KAAK,UAAU,SAAS;EACjC;;AAGH,SAAgB,UACd,MACA,UACA,YACA,UACA,WACM;CACN,MAAM,WAAW,KAAK,IAAI,UAAU,SAAS,QAAQ,aAAa,EAAE;CACpE,MAAM,YAAY,KAAK,IAAI,WAAW,SAAS,SAAS,aAAa,EAAE;AAEvE,QAAO;EACL,OAAO,MAAM,KAAK,OAAO,UAAU,SAAS;EAC5C,QAAQ,MAAM,KAAK,QAAQ,WAAW,UAAU;EACjD;;AAGH,SAAgB,oBACd,OACA,UACA,UACA,YACU;CACV,MAAM,OAAO,KAAK,IAChB,YACA,SAAS,QAAQ,MAAM,KAAK,QAAQ,WACrC;CACD,MAAM,OAAO,KAAK,IAChB,YACA,SAAS,SAAS,MAAM,KAAK,SAAS,WACvC;AAED,QAAO;EACL,GAAG,MAAM,SAAS,GAAG,YAAY,KAAK;EACtC,GAAG,MAAM,SAAS,GAAG,YAAY,KAAK;EACvC;;AAGH,SAAgB,2BACd,OACA,UACA,YACM;AACN,OAAM,WAAW,oBACf,OACA,MAAM,UACN,UACA,WACD;;AAGH,SAAgB,cACd,OACA,UACA,YACU;AAMV,OAAM,WAAW,oBAAoB,OALV;EACzB,GAAG,KAAK,OAAO,SAAS,QAAQ,MAAM,KAAK,SAAS,EAAE;EACtD,GAAG,KAAK,OAAO,SAAS,SAAS,MAAM,KAAK,UAAU,EAAE;EACzD,EAEqD,UAAU,WAAW;AAC3E,0BAAyB,OAAO,UAAU,WAAW;AACrD,QAAO,MAAM;;AAGf,SAAgB,yBACd,OACA,UACA,YACM;CACN,MAAM,UAAU,MAAM,SAAS,IAAI,MAAM,KAAK,QAAQ;CACtD,MAAM,UAAU,MAAM,SAAS,IAAI,MAAM,KAAK,SAAS;CAEvD,MAAM,aACJ,UAAU,SAAS,QAAQ,IAAI,SAAS;CAC1C,MAAM,WACJ,UAAU,SAAS,SAAS,IAAI,QAAQ;AAE1C,OAAM,SAAS;EAAE;EAAY;EAAU;CAEvC,MAAM,sBAAsB,KAAK,IAC/B,YACA,SAAS,QAAQ,MAAM,KAAK,QAAQ,WACrC;CACD,MAAM,oBAAoB,KAAK,IAC7B,YACA,SAAS,SAAS,MAAM,KAAK,SAAS,WACvC;AAED,OAAM,eAAe;EACnB,GACE,eAAe,SACX,MAAM,MAAM,SAAS,GAAG,YAAY,oBAAoB,GACxD,MACE,SAAS,QAAQ,MAAM,SAAS,IAAI,MAAM,KAAK,OAC/C,YACA,oBACD;EACP,GACE,aAAa,QACT,MAAM,MAAM,SAAS,GAAG,YAAY,kBAAkB,GACtD,MACE,SAAS,SAAS,MAAM,SAAS,IAAI,MAAM,KAAK,QAChD,YACA,kBACD;EACR;;AAGH,SAAgB,oBACd,OACA,UACA,YACU;CACV,MAAM,sBAAsB,KAAK,IAC/B,YACA,SAAS,QAAQ,MAAM,KAAK,QAAQ,WACrC;CACD,MAAM,oBAAoB,KAAK,IAC7B,YACA,SAAS,SAAS,MAAM,KAAK,SAAS,WACvC;CAED,MAAM,mBAAmB,MACvB,MAAM,aAAa,GACnB,YACA,oBACD;CACD,MAAM,iBAAiB,MACrB,MAAM,aAAa,GACnB,YACA,kBACD;CAED,MAAM,IACJ,MAAM,OAAO,eAAe,SACxB,mBACA,SAAS,QAAQ,MAAM,KAAK,QAAQ;CAE1C,MAAM,IACJ,MAAM,OAAO,aAAa,QACtB,iBACA,SAAS,SAAS,MAAM,KAAK,SAAS;AAE5C,OAAM,eAAe;EAAE,GAAG;EAAkB,GAAG;EAAgB;AAC/D,OAAM,WAAW,oBAAoB,OAAO;EAAE;EAAG;EAAG,EAAE,UAAU,WAAW;AAC3E,QAAO,MAAM;;AAGf,SAAS,MAAM,OAAe,KAAa,KAAqB;AAC9D,QAAO,KAAK,IAAI,KAAK,IAAI,KAAK,MAAM,EAAE,IAAI"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
|
|
2
|
+
//#region src/lib/persistence.ts
|
|
3
|
+
function loadInspectorState(storageKey) {
|
|
4
|
+
if (typeof window === "undefined") return null;
|
|
5
|
+
const raw = window.localStorage.getItem(storageKey);
|
|
6
|
+
if (raw) try {
|
|
7
|
+
const parsed = JSON.parse(raw);
|
|
8
|
+
if (parsed && typeof parsed === "object") return parsed;
|
|
9
|
+
} catch {}
|
|
10
|
+
if (typeof document !== "undefined") {
|
|
11
|
+
const prefix = `${storageKey}=`;
|
|
12
|
+
const entry = document.cookie.split("; ").find((cookie) => cookie.startsWith(prefix));
|
|
13
|
+
if (entry) {
|
|
14
|
+
const legacyRaw = entry.substring(prefix.length);
|
|
15
|
+
try {
|
|
16
|
+
const parsed = JSON.parse(decodeURIComponent(legacyRaw));
|
|
17
|
+
if (parsed && typeof parsed === "object") return parsed;
|
|
18
|
+
} catch {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
function saveInspectorState(storageKey, state) {
|
|
26
|
+
if (typeof window === "undefined") return;
|
|
27
|
+
try {
|
|
28
|
+
window.localStorage.setItem(storageKey, JSON.stringify(state));
|
|
29
|
+
} catch (error) {
|
|
30
|
+
console.warn("Failed to persist inspector state", error);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
function isValidAnchor(value) {
|
|
34
|
+
if (!value || typeof value !== "object") return false;
|
|
35
|
+
const candidate = value;
|
|
36
|
+
return (candidate.horizontal === "left" || candidate.horizontal === "right") && (candidate.vertical === "top" || candidate.vertical === "bottom");
|
|
37
|
+
}
|
|
38
|
+
function isValidPosition(value) {
|
|
39
|
+
if (!value || typeof value !== "object") return false;
|
|
40
|
+
const candidate = value;
|
|
41
|
+
return isFiniteNumber(candidate.x) && isFiniteNumber(candidate.y);
|
|
42
|
+
}
|
|
43
|
+
function isValidSize(value) {
|
|
44
|
+
if (!value || typeof value !== "object") return false;
|
|
45
|
+
const candidate = value;
|
|
46
|
+
return isFiniteNumber(candidate.width) && isFiniteNumber(candidate.height);
|
|
47
|
+
}
|
|
48
|
+
function isFiniteNumber(value) {
|
|
49
|
+
return typeof value === "number" && Number.isFinite(value);
|
|
50
|
+
}
|
|
51
|
+
function isValidDockMode(value) {
|
|
52
|
+
return value === "floating" || value === "docked-left";
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
//#endregion
|
|
56
|
+
exports.isValidAnchor = isValidAnchor;
|
|
57
|
+
exports.isValidDockMode = isValidDockMode;
|
|
58
|
+
exports.isValidPosition = isValidPosition;
|
|
59
|
+
exports.isValidSize = isValidSize;
|
|
60
|
+
exports.loadInspectorState = loadInspectorState;
|
|
61
|
+
exports.saveInspectorState = saveInspectorState;
|
|
62
|
+
//# sourceMappingURL=persistence.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"persistence.cjs","names":[],"sources":["../../src/lib/persistence.ts"],"sourcesContent":["import type { Anchor, DockMode, Position, Size } from \"./types\";\n\nexport type PersistedContextState = {\n anchor?: Anchor;\n anchorOffset?: Position;\n size?: Size;\n hasCustomPosition?: boolean;\n};\n\nexport type PersistedState = {\n button?: Omit<PersistedContextState, \"size\">;\n window?: PersistedContextState;\n isOpen?: boolean;\n dockMode?: DockMode;\n selectedMenu?: string;\n selectedContext?: string;\n};\n\nexport function loadInspectorState(storageKey: string): PersistedState | null {\n if (typeof window === \"undefined\") {\n return null;\n }\n\n const raw = window.localStorage.getItem(storageKey);\n if (raw) {\n try {\n const parsed = JSON.parse(raw);\n if (parsed && typeof parsed === \"object\") {\n return parsed as PersistedState;\n }\n } catch {\n // Fall through to cookie migration path\n }\n }\n\n // Backwards compatibility: try to read the legacy cookie and migrate it\n if (typeof document !== \"undefined\") {\n const prefix = `${storageKey}=`;\n const entry = document.cookie\n .split(\"; \")\n .find((cookie) => cookie.startsWith(prefix));\n if (entry) {\n const legacyRaw = entry.substring(prefix.length);\n try {\n const parsed = JSON.parse(decodeURIComponent(legacyRaw));\n if (parsed && typeof parsed === \"object\") {\n return parsed as PersistedState;\n }\n } catch {\n return null;\n }\n }\n }\n\n return null;\n}\n\nexport function saveInspectorState(\n storageKey: string,\n state: PersistedState,\n): void {\n if (typeof window === \"undefined\") {\n return;\n }\n\n try {\n window.localStorage.setItem(storageKey, JSON.stringify(state));\n } catch (error) {\n console.warn(\"Failed to persist inspector state\", error);\n }\n}\n\nexport function isValidAnchor(value: unknown): value is Anchor {\n if (!value || typeof value !== \"object\") {\n return false;\n }\n\n const candidate = value as Anchor;\n return (\n (candidate.horizontal === \"left\" || candidate.horizontal === \"right\") &&\n (candidate.vertical === \"top\" || candidate.vertical === \"bottom\")\n );\n}\n\nexport function isValidPosition(value: unknown): value is Position {\n if (!value || typeof value !== \"object\") {\n return false;\n }\n\n const candidate = value as Position;\n return isFiniteNumber(candidate.x) && isFiniteNumber(candidate.y);\n}\n\nexport function isValidSize(value: unknown): value is Size {\n if (!value || typeof value !== \"object\") {\n return false;\n }\n\n const candidate = value as Size;\n return isFiniteNumber(candidate.width) && isFiniteNumber(candidate.height);\n}\n\nexport function isFiniteNumber(value: unknown): value is number {\n return typeof value === \"number\" && Number.isFinite(value);\n}\n\nexport function isValidDockMode(value: unknown): value is DockMode {\n return value === \"floating\" || value === \"docked-left\";\n}\n"],"mappings":";;AAkBA,SAAgB,mBAAmB,YAA2C;AAC5E,KAAI,OAAO,WAAW,YACpB,QAAO;CAGT,MAAM,MAAM,OAAO,aAAa,QAAQ,WAAW;AACnD,KAAI,IACF,KAAI;EACF,MAAM,SAAS,KAAK,MAAM,IAAI;AAC9B,MAAI,UAAU,OAAO,WAAW,SAC9B,QAAO;SAEH;AAMV,KAAI,OAAO,aAAa,aAAa;EACnC,MAAM,SAAS,GAAG,WAAW;EAC7B,MAAM,QAAQ,SAAS,OACpB,MAAM,KAAK,CACX,MAAM,WAAW,OAAO,WAAW,OAAO,CAAC;AAC9C,MAAI,OAAO;GACT,MAAM,YAAY,MAAM,UAAU,OAAO,OAAO;AAChD,OAAI;IACF,MAAM,SAAS,KAAK,MAAM,mBAAmB,UAAU,CAAC;AACxD,QAAI,UAAU,OAAO,WAAW,SAC9B,QAAO;WAEH;AACN,WAAO;;;;AAKb,QAAO;;AAGT,SAAgB,mBACd,YACA,OACM;AACN,KAAI,OAAO,WAAW,YACpB;AAGF,KAAI;AACF,SAAO,aAAa,QAAQ,YAAY,KAAK,UAAU,MAAM,CAAC;UACvD,OAAO;AACd,UAAQ,KAAK,qCAAqC,MAAM;;;AAI5D,SAAgB,cAAc,OAAiC;AAC7D,KAAI,CAAC,SAAS,OAAO,UAAU,SAC7B,QAAO;CAGT,MAAM,YAAY;AAClB,SACG,UAAU,eAAe,UAAU,UAAU,eAAe,aAC5D,UAAU,aAAa,SAAS,UAAU,aAAa;;AAI5D,SAAgB,gBAAgB,OAAmC;AACjE,KAAI,CAAC,SAAS,OAAO,UAAU,SAC7B,QAAO;CAGT,MAAM,YAAY;AAClB,QAAO,eAAe,UAAU,EAAE,IAAI,eAAe,UAAU,EAAE;;AAGnE,SAAgB,YAAY,OAA+B;AACzD,KAAI,CAAC,SAAS,OAAO,UAAU,SAC7B,QAAO;CAGT,MAAM,YAAY;AAClB,QAAO,eAAe,UAAU,MAAM,IAAI,eAAe,UAAU,OAAO;;AAG5E,SAAgB,eAAe,OAAiC;AAC9D,QAAO,OAAO,UAAU,YAAY,OAAO,SAAS,MAAM;;AAG5D,SAAgB,gBAAgB,OAAmC;AACjE,QAAO,UAAU,cAAc,UAAU"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
//#region src/lib/persistence.ts
|
|
2
|
+
function loadInspectorState(storageKey) {
|
|
3
|
+
if (typeof window === "undefined") return null;
|
|
4
|
+
const raw = window.localStorage.getItem(storageKey);
|
|
5
|
+
if (raw) try {
|
|
6
|
+
const parsed = JSON.parse(raw);
|
|
7
|
+
if (parsed && typeof parsed === "object") return parsed;
|
|
8
|
+
} catch {}
|
|
9
|
+
if (typeof document !== "undefined") {
|
|
10
|
+
const prefix = `${storageKey}=`;
|
|
11
|
+
const entry = document.cookie.split("; ").find((cookie) => cookie.startsWith(prefix));
|
|
12
|
+
if (entry) {
|
|
13
|
+
const legacyRaw = entry.substring(prefix.length);
|
|
14
|
+
try {
|
|
15
|
+
const parsed = JSON.parse(decodeURIComponent(legacyRaw));
|
|
16
|
+
if (parsed && typeof parsed === "object") return parsed;
|
|
17
|
+
} catch {
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
function saveInspectorState(storageKey, state) {
|
|
25
|
+
if (typeof window === "undefined") return;
|
|
26
|
+
try {
|
|
27
|
+
window.localStorage.setItem(storageKey, JSON.stringify(state));
|
|
28
|
+
} catch (error) {
|
|
29
|
+
console.warn("Failed to persist inspector state", error);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
function isValidAnchor(value) {
|
|
33
|
+
if (!value || typeof value !== "object") return false;
|
|
34
|
+
const candidate = value;
|
|
35
|
+
return (candidate.horizontal === "left" || candidate.horizontal === "right") && (candidate.vertical === "top" || candidate.vertical === "bottom");
|
|
36
|
+
}
|
|
37
|
+
function isValidPosition(value) {
|
|
38
|
+
if (!value || typeof value !== "object") return false;
|
|
39
|
+
const candidate = value;
|
|
40
|
+
return isFiniteNumber(candidate.x) && isFiniteNumber(candidate.y);
|
|
41
|
+
}
|
|
42
|
+
function isValidSize(value) {
|
|
43
|
+
if (!value || typeof value !== "object") return false;
|
|
44
|
+
const candidate = value;
|
|
45
|
+
return isFiniteNumber(candidate.width) && isFiniteNumber(candidate.height);
|
|
46
|
+
}
|
|
47
|
+
function isFiniteNumber(value) {
|
|
48
|
+
return typeof value === "number" && Number.isFinite(value);
|
|
49
|
+
}
|
|
50
|
+
function isValidDockMode(value) {
|
|
51
|
+
return value === "floating" || value === "docked-left";
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
//#endregion
|
|
55
|
+
export { isValidAnchor, isValidDockMode, isValidPosition, isValidSize, loadInspectorState, saveInspectorState };
|
|
56
|
+
//# sourceMappingURL=persistence.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"persistence.mjs","names":[],"sources":["../../src/lib/persistence.ts"],"sourcesContent":["import type { Anchor, DockMode, Position, Size } from \"./types\";\n\nexport type PersistedContextState = {\n anchor?: Anchor;\n anchorOffset?: Position;\n size?: Size;\n hasCustomPosition?: boolean;\n};\n\nexport type PersistedState = {\n button?: Omit<PersistedContextState, \"size\">;\n window?: PersistedContextState;\n isOpen?: boolean;\n dockMode?: DockMode;\n selectedMenu?: string;\n selectedContext?: string;\n};\n\nexport function loadInspectorState(storageKey: string): PersistedState | null {\n if (typeof window === \"undefined\") {\n return null;\n }\n\n const raw = window.localStorage.getItem(storageKey);\n if (raw) {\n try {\n const parsed = JSON.parse(raw);\n if (parsed && typeof parsed === \"object\") {\n return parsed as PersistedState;\n }\n } catch {\n // Fall through to cookie migration path\n }\n }\n\n // Backwards compatibility: try to read the legacy cookie and migrate it\n if (typeof document !== \"undefined\") {\n const prefix = `${storageKey}=`;\n const entry = document.cookie\n .split(\"; \")\n .find((cookie) => cookie.startsWith(prefix));\n if (entry) {\n const legacyRaw = entry.substring(prefix.length);\n try {\n const parsed = JSON.parse(decodeURIComponent(legacyRaw));\n if (parsed && typeof parsed === \"object\") {\n return parsed as PersistedState;\n }\n } catch {\n return null;\n }\n }\n }\n\n return null;\n}\n\nexport function saveInspectorState(\n storageKey: string,\n state: PersistedState,\n): void {\n if (typeof window === \"undefined\") {\n return;\n }\n\n try {\n window.localStorage.setItem(storageKey, JSON.stringify(state));\n } catch (error) {\n console.warn(\"Failed to persist inspector state\", error);\n }\n}\n\nexport function isValidAnchor(value: unknown): value is Anchor {\n if (!value || typeof value !== \"object\") {\n return false;\n }\n\n const candidate = value as Anchor;\n return (\n (candidate.horizontal === \"left\" || candidate.horizontal === \"right\") &&\n (candidate.vertical === \"top\" || candidate.vertical === \"bottom\")\n );\n}\n\nexport function isValidPosition(value: unknown): value is Position {\n if (!value || typeof value !== \"object\") {\n return false;\n }\n\n const candidate = value as Position;\n return isFiniteNumber(candidate.x) && isFiniteNumber(candidate.y);\n}\n\nexport function isValidSize(value: unknown): value is Size {\n if (!value || typeof value !== \"object\") {\n return false;\n }\n\n const candidate = value as Size;\n return isFiniteNumber(candidate.width) && isFiniteNumber(candidate.height);\n}\n\nexport function isFiniteNumber(value: unknown): value is number {\n return typeof value === \"number\" && Number.isFinite(value);\n}\n\nexport function isValidDockMode(value: unknown): value is DockMode {\n return value === \"floating\" || value === \"docked-left\";\n}\n"],"mappings":";AAkBA,SAAgB,mBAAmB,YAA2C;AAC5E,KAAI,OAAO,WAAW,YACpB,QAAO;CAGT,MAAM,MAAM,OAAO,aAAa,QAAQ,WAAW;AACnD,KAAI,IACF,KAAI;EACF,MAAM,SAAS,KAAK,MAAM,IAAI;AAC9B,MAAI,UAAU,OAAO,WAAW,SAC9B,QAAO;SAEH;AAMV,KAAI,OAAO,aAAa,aAAa;EACnC,MAAM,SAAS,GAAG,WAAW;EAC7B,MAAM,QAAQ,SAAS,OACpB,MAAM,KAAK,CACX,MAAM,WAAW,OAAO,WAAW,OAAO,CAAC;AAC9C,MAAI,OAAO;GACT,MAAM,YAAY,MAAM,UAAU,OAAO,OAAO;AAChD,OAAI;IACF,MAAM,SAAS,KAAK,MAAM,mBAAmB,UAAU,CAAC;AACxD,QAAI,UAAU,OAAO,WAAW,SAC9B,QAAO;WAEH;AACN,WAAO;;;;AAKb,QAAO;;AAGT,SAAgB,mBACd,YACA,OACM;AACN,KAAI,OAAO,WAAW,YACpB;AAGF,KAAI;AACF,SAAO,aAAa,QAAQ,YAAY,KAAK,UAAU,MAAM,CAAC;UACvD,OAAO;AACd,UAAQ,KAAK,qCAAqC,MAAM;;;AAI5D,SAAgB,cAAc,OAAiC;AAC7D,KAAI,CAAC,SAAS,OAAO,UAAU,SAC7B,QAAO;CAGT,MAAM,YAAY;AAClB,SACG,UAAU,eAAe,UAAU,UAAU,eAAe,aAC5D,UAAU,aAAa,SAAS,UAAU,aAAa;;AAI5D,SAAgB,gBAAgB,OAAmC;AACjE,KAAI,CAAC,SAAS,OAAO,UAAU,SAC7B,QAAO;CAGT,MAAM,YAAY;AAClB,QAAO,eAAe,UAAU,EAAE,IAAI,eAAe,UAAU,EAAE;;AAGnE,SAAgB,YAAY,OAA+B;AACzD,KAAI,CAAC,SAAS,OAAO,UAAU,SAC7B,QAAO;CAGT,MAAM,YAAY;AAClB,QAAO,eAAe,UAAU,MAAM,IAAI,eAAe,UAAU,OAAO;;AAG5E,SAAgB,eAAe,OAAiC;AAC9D,QAAO,OAAO,UAAU,YAAY,OAAO,SAAS,MAAM;;AAG5D,SAAgB,gBAAgB,OAAmC;AACjE,QAAO,UAAU,cAAc,UAAU"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
|
|
2
|
+
//#region src/styles/generated.css
|
|
3
|
+
var generated_default = "/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */\n@layer properties {\n @supports (((-webkit-hyphens: none)) and (not (margin-trim: inline))) or\n ((-moz-orient: inline) and (not (color: rgb(from red r g b)))) {\n *,\n :before,\n :after,\n ::backdrop {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-rotate-x: initial;\n --tw-rotate-y: initial;\n --tw-rotate-z: initial;\n --tw-skew-x: initial;\n --tw-skew-y: initial;\n --tw-space-y-reverse: 0;\n --tw-divide-y-reverse: 0;\n --tw-border-style: solid;\n --tw-leading: initial;\n --tw-font-weight: initial;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 #0000;\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-backdrop-blur: initial;\n --tw-backdrop-brightness: initial;\n --tw-backdrop-contrast: initial;\n --tw-backdrop-grayscale: initial;\n --tw-backdrop-hue-rotate: initial;\n --tw-backdrop-invert: initial;\n --tw-backdrop-opacity: initial;\n --tw-backdrop-saturate: initial;\n --tw-backdrop-sepia: initial;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-scale-z: 1;\n --tw-outline-style: solid;\n }\n }\n}\n@layer theme {\n :root,\n :host {\n --font-sans:\n ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\",\n \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --font-mono:\n ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\",\n \"Courier New\", monospace;\n --color-amber-50: oklch(98.7% 0.022 95.277);\n --color-amber-100: oklch(96.2% 0.059 95.617);\n --color-amber-200: oklch(92.4% 0.12 95.746);\n --color-amber-600: oklch(66.6% 0.179 58.318);\n --color-amber-700: oklch(55.5% 0.163 48.998);\n --color-amber-800: oklch(47.3% 0.137 46.201);\n --color-amber-900: oklch(41.4% 0.112 45.904);\n --color-green-100: oklch(96.2% 0.044 156.743);\n --color-green-700: oklch(52.7% 0.154 150.069);\n --color-green-800: oklch(44.8% 0.119 151.328);\n --color-emerald-50: oklch(97.9% 0.021 166.113);\n --color-emerald-200: oklch(90.5% 0.093 164.15);\n --color-emerald-500: oklch(69.6% 0.17 162.48);\n --color-emerald-700: oklch(50.8% 0.118 165.612);\n --color-sky-50: oklch(97.7% 0.013 236.62);\n --color-sky-200: oklch(90.1% 0.058 230.902);\n --color-sky-700: oklch(50% 0.134 242.749);\n --color-blue-50: oklch(97% 0.014 254.604);\n --color-blue-100: oklch(93.2% 0.032 255.585);\n --color-blue-200: oklch(88.2% 0.059 254.128);\n --color-blue-600: oklch(54.6% 0.245 262.881);\n --color-blue-700: oklch(48.8% 0.243 264.376);\n --color-blue-800: oklch(42.4% 0.199 265.638);\n --color-violet-50: oklch(96.9% 0.016 293.756);\n --color-violet-200: oklch(89.4% 0.057 293.283);\n --color-violet-700: oklch(49.1% 0.27 292.581);\n --color-purple-50: oklch(97.7% 0.014 308.299);\n --color-purple-200: oklch(90.2% 0.063 306.703);\n --color-purple-700: oklch(49.6% 0.265 301.924);\n --color-fuchsia-50: oklch(97.7% 0.017 320.058);\n --color-fuchsia-200: oklch(90.3% 0.076 319.62);\n --color-fuchsia-700: oklch(51.8% 0.253 323.949);\n --color-rose-50: oklch(96.9% 0.015 12.422);\n --color-rose-200: oklch(89.2% 0.058 10.001);\n --color-rose-500: oklch(64.5% 0.246 16.439);\n --color-rose-600: oklch(58.6% 0.253 17.585);\n --color-rose-700: oklch(51.4% 0.222 16.935);\n --color-rose-800: oklch(45.5% 0.188 13.697);\n --color-rose-900: oklch(41% 0.159 10.272);\n --color-slate-200: oklch(92.9% 0.013 255.508);\n --color-slate-800: oklch(27.9% 0.041 260.031);\n --color-slate-900: oklch(20.8% 0.042 265.755);\n --color-slate-950: oklch(12.9% 0.042 264.695);\n --color-gray-50: oklch(98.5% 0.002 247.839);\n --color-gray-100: oklch(96.7% 0.003 264.542);\n --color-gray-200: oklch(92.8% 0.006 264.531);\n --color-gray-300: oklch(87.2% 0.01 258.338);\n --color-gray-400: oklch(70.7% 0.022 261.325);\n --color-gray-500: oklch(55.1% 0.027 264.364);\n --color-gray-600: oklch(44.6% 0.03 256.802);\n --color-gray-700: oklch(37.3% 0.034 259.733);\n --color-gray-800: oklch(27.8% 0.033 256.848);\n --color-gray-900: oklch(21% 0.034 264.665);\n --color-black: #000;\n --color-white: #fff;\n --spacing: 0.25rem;\n --container-xs: 20rem;\n --container-md: 28rem;\n --container-2xl: 42rem;\n --text-xs: 0.75rem;\n --text-xs--line-height: calc(1/0.75);\n --text-sm: 0.875rem;\n --text-sm--line-height: calc(1.25/0.875);\n --text-lg: 1.125rem;\n --text-lg--line-height: calc(1.75/1.125);\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --leading-snug: 1.375;\n --leading-relaxed: 1.625;\n --radius-sm: 0.25rem;\n --radius-md: 0.375rem;\n --radius-lg: 0.5rem;\n --radius-xl: 0.75rem;\n --animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n --blur-sm: 8px;\n --blur-md: 12px;\n --default-transition-duration: 0.15s;\n --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --default-font-family: var(--font-sans);\n --default-mono-font-family: var(--font-mono);\n }\n}\n@layer base {\n *,\n :after,\n :before,\n ::backdrop {\n box-sizing: border-box;\n border: 0 solid;\n margin: 0;\n padding: 0;\n }\n ::file-selector-button {\n box-sizing: border-box;\n border: 0 solid;\n margin: 0;\n padding: 0;\n }\n html,\n :host {\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n line-height: 1.5;\n font-family: var(\n --default-font-family,\n ui-sans-serif,\n system-ui,\n sans-serif,\n \"Apple Color Emoji\",\n \"Segoe UI Emoji\",\n \"Segoe UI Symbol\",\n \"Noto Color Emoji\"\n );\n font-feature-settings: var(--default-font-feature-settings, normal);\n font-variation-settings: var(--default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n }\n hr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n }\n abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n font-size: inherit;\n font-weight: inherit;\n }\n a {\n color: inherit;\n -webkit-text-decoration: inherit;\n -webkit-text-decoration: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n }\n b,\n strong {\n font-weight: bolder;\n }\n code,\n kbd,\n samp,\n pre {\n font-family: var(\n --default-mono-font-family,\n ui-monospace,\n SFMono-Regular,\n Menlo,\n Monaco,\n Consolas,\n \"Liberation Mono\",\n \"Courier New\",\n monospace\n );\n font-feature-settings: var(--default-mono-font-feature-settings, normal);\n font-variation-settings: var(\n --default-mono-font-variation-settings,\n normal\n );\n font-size: 1em;\n }\n small {\n font-size: 80%;\n }\n sub,\n sup {\n vertical-align: baseline;\n font-size: 75%;\n line-height: 0;\n position: relative;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n :-moz-focusring {\n outline: auto;\n }\n progress {\n vertical-align: baseline;\n }\n summary {\n display: list-item;\n }\n ol,\n ul,\n menu {\n list-style: none;\n }\n img,\n svg,\n video,\n canvas,\n audio,\n iframe,\n embed,\n object {\n vertical-align: middle;\n display: block;\n }\n img,\n video {\n max-width: 100%;\n height: auto;\n }\n button,\n input,\n select,\n optgroup,\n textarea {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n opacity: 1;\n background-color: #0000;\n border-radius: 0;\n }\n ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n opacity: 1;\n background-color: #0000;\n border-radius: 0;\n }\n :where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n }\n :where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n }\n ::file-selector-button {\n margin-inline-end: 4px;\n }\n ::placeholder {\n opacity: 1;\n }\n @supports (not ((-webkit-appearance: -apple-pay-button))) or\n (contain-intrinsic-size: 1px) {\n ::placeholder {\n color: currentColor;\n }\n @supports (color: color-mix(in lab, red, red)) {\n ::placeholder {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n }\n textarea {\n resize: vertical;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n }\n ::-webkit-datetime-edit {\n display: inline-flex;\n }\n ::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n }\n ::-webkit-datetime-edit {\n padding-block: 0;\n }\n ::-webkit-datetime-edit-year-field {\n padding-block: 0;\n }\n ::-webkit-datetime-edit-month-field {\n padding-block: 0;\n }\n ::-webkit-datetime-edit-day-field {\n padding-block: 0;\n }\n ::-webkit-datetime-edit-hour-field {\n padding-block: 0;\n }\n ::-webkit-datetime-edit-minute-field {\n padding-block: 0;\n }\n ::-webkit-datetime-edit-second-field {\n padding-block: 0;\n }\n ::-webkit-datetime-edit-millisecond-field {\n padding-block: 0;\n }\n ::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n }\n ::-webkit-calendar-picker-indicator {\n line-height: 1;\n }\n :-moz-ui-invalid {\n box-shadow: none;\n }\n button,\n input:where([type=\"button\"], [type=\"reset\"], [type=\"submit\"]) {\n appearance: button;\n }\n ::file-selector-button {\n appearance: button;\n }\n ::-webkit-inner-spin-button {\n height: auto;\n }\n ::-webkit-outer-spin-button {\n height: auto;\n }\n [hidden]:where(:not([hidden=\"until-found\"])) {\n display: none !important;\n }\n :host {\n font-family: var(--font-sans);\n color: var(--color-slate-900);\n background-color: #0000;\n display: block;\n }\n}\n@layer components;\n@layer utilities {\n .pointer-events-auto {\n pointer-events: auto;\n }\n .absolute {\n position: absolute;\n }\n .fixed {\n position: fixed;\n }\n .relative {\n position: relative;\n }\n .static {\n position: static;\n }\n .sticky {\n position: sticky;\n }\n .top-0 {\n top: calc(var(--spacing) * 0);\n }\n .right-0 {\n right: calc(var(--spacing) * 0);\n }\n .right-1 {\n right: calc(var(--spacing) * 1);\n }\n .bottom-1 {\n bottom: calc(var(--spacing) * 1);\n }\n .left-0 {\n left: calc(var(--spacing) * 0);\n }\n .z-10 {\n z-index: 10;\n }\n .z-30 {\n z-index: 30;\n }\n .z-40 {\n z-index: 40;\n }\n .z-50 {\n z-index: 50;\n }\n .m-0 {\n margin: calc(var(--spacing) * 0);\n }\n .mx-4 {\n margin-inline: calc(var(--spacing) * 4);\n }\n .my-1 {\n margin-block: calc(var(--spacing) * 1);\n }\n .my-3 {\n margin-block: calc(var(--spacing) * 3);\n }\n .mt-0\\.5 {\n margin-top: calc(var(--spacing) * 0.5);\n }\n .mt-1 {\n margin-top: calc(var(--spacing) * 1);\n }\n .mt-1\\.5 {\n margin-top: calc(var(--spacing) * 1.5);\n }\n .mt-2 {\n margin-top: calc(var(--spacing) * 2);\n }\n .mb-1 {\n margin-bottom: calc(var(--spacing) * 1);\n }\n .mb-2 {\n margin-bottom: calc(var(--spacing) * 2);\n }\n .mb-3 {\n margin-bottom: calc(var(--spacing) * 3);\n }\n .mb-4 {\n margin-bottom: calc(var(--spacing) * 4);\n }\n .ml-auto {\n margin-left: auto;\n }\n .box-border {\n box-sizing: border-box;\n }\n .block {\n display: block;\n }\n .flex {\n display: flex;\n }\n .grid {\n display: grid;\n }\n .inline-block {\n display: inline-block;\n }\n .inline-flex {\n display: inline-flex;\n }\n .h-1\\.5 {\n height: calc(var(--spacing) * 1.5);\n }\n .h-3 {\n height: calc(var(--spacing) * 3);\n }\n .h-3\\.5 {\n height: calc(var(--spacing) * 3.5);\n }\n .h-5 {\n height: calc(var(--spacing) * 5);\n }\n .h-6 {\n height: calc(var(--spacing) * 6);\n }\n .h-7 {\n height: calc(var(--spacing) * 7);\n }\n .h-8 {\n height: calc(var(--spacing) * 8);\n }\n .h-10 {\n height: calc(var(--spacing) * 10);\n }\n .h-12 {\n height: calc(var(--spacing) * 12);\n }\n .h-40 {\n height: calc(var(--spacing) * 40);\n }\n .h-full {\n height: 100%;\n }\n .max-h-64 {\n max-height: calc(var(--spacing) * 64);\n }\n .max-h-96 {\n max-height: calc(var(--spacing) * 96);\n }\n .w-1\\.5 {\n width: calc(var(--spacing) * 1.5);\n }\n .w-3 {\n width: calc(var(--spacing) * 3);\n }\n .w-3\\.5 {\n width: calc(var(--spacing) * 3.5);\n }\n .w-5 {\n width: calc(var(--spacing) * 5);\n }\n .w-6 {\n width: calc(var(--spacing) * 6);\n }\n .w-7 {\n width: calc(var(--spacing) * 7);\n }\n .w-8 {\n width: calc(var(--spacing) * 8);\n }\n .w-10 {\n width: calc(var(--spacing) * 10);\n }\n .w-12 {\n width: calc(var(--spacing) * 12);\n }\n .w-40 {\n width: calc(var(--spacing) * 40);\n }\n .w-auto {\n width: auto;\n }\n .w-full {\n width: 100%;\n }\n .max-w-2xl {\n max-width: var(--container-2xl);\n }\n .max-w-\\[240px\\] {\n max-width: 240px;\n }\n .max-w-md {\n max-width: var(--container-md);\n }\n .max-w-xs {\n max-width: var(--container-xs);\n }\n .min-w-0 {\n min-width: calc(var(--spacing) * 0);\n }\n .min-w-\\[160px\\] {\n min-width: 160px;\n }\n .min-w-\\[200px\\] {\n min-width: 200px;\n }\n .flex-1 {\n flex: 1;\n }\n .shrink-0 {\n flex-shrink: 0;\n }\n .table-fixed {\n table-layout: fixed;\n }\n .border-collapse {\n border-collapse: collapse;\n }\n .-translate-y-\\[2px\\] {\n --tw-translate-y: calc(2px * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .rotate-180 {\n rotate: 180deg;\n }\n .transform {\n transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,)\n var(--tw-skew-x,) var(--tw-skew-y,);\n }\n .animate-pulse {\n animation: var(--animate-pulse);\n }\n .cursor-grab {\n cursor: grab;\n }\n .cursor-grabbing {\n cursor: grabbing;\n }\n .cursor-nwse-resize {\n cursor: nwse-resize;\n }\n .cursor-pointer {\n cursor: pointer;\n }\n .touch-none {\n touch-action: none;\n }\n .resize {\n resize: both;\n }\n .grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n .flex-col {\n flex-direction: column;\n }\n .flex-wrap {\n flex-wrap: wrap;\n }\n .items-center {\n align-items: center;\n }\n .items-start {\n align-items: flex-start;\n }\n .justify-between {\n justify-content: space-between;\n }\n .justify-center {\n justify-content: center;\n }\n .gap-1 {\n gap: calc(var(--spacing) * 1);\n }\n .gap-1\\.5 {\n gap: calc(var(--spacing) * 1.5);\n }\n .gap-2 {\n gap: calc(var(--spacing) * 2);\n }\n .gap-3 {\n gap: calc(var(--spacing) * 3);\n }\n .gap-4 {\n gap: calc(var(--spacing) * 4);\n }\n :where(.space-y-1 > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(\n calc(var(--spacing) * 1) * var(--tw-space-y-reverse)\n );\n margin-block-end: calc(\n calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse))\n );\n }\n :where(.space-y-2 > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(\n calc(var(--spacing) * 2) * var(--tw-space-y-reverse)\n );\n margin-block-end: calc(\n calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse))\n );\n }\n :where(.space-y-3 > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(\n calc(var(--spacing) * 3) * var(--tw-space-y-reverse)\n );\n margin-block-end: calc(\n calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse))\n );\n }\n :where(.divide-y > :not(:last-child)) {\n --tw-divide-y-reverse: 0;\n border-bottom-style: var(--tw-border-style);\n border-top-style: var(--tw-border-style);\n border-top-width: calc(1px * var(--tw-divide-y-reverse));\n border-bottom-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));\n }\n :where(.divide-gray-200 > :not(:last-child)) {\n border-color: var(--color-gray-200);\n }\n .truncate {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n }\n .overflow-auto {\n overflow: auto;\n }\n .overflow-hidden {\n overflow: hidden;\n }\n .overflow-x-hidden {\n overflow-x: hidden;\n }\n .overflow-y-auto {\n overflow-y: auto;\n }\n .rounded {\n border-radius: 0.25rem;\n }\n .rounded-full {\n border-radius: 3.40282e38px;\n }\n .rounded-lg {\n border-radius: var(--radius-lg);\n }\n .rounded-md {\n border-radius: var(--radius-md);\n }\n .rounded-sm {\n border-radius: var(--radius-sm);\n }\n .rounded-xl {\n border-radius: var(--radius-xl);\n }\n .border {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n .border-t {\n border-top-style: var(--tw-border-style);\n border-top-width: 1px;\n }\n .border-r {\n border-right-style: var(--tw-border-style);\n border-right-width: 1px;\n }\n .border-b {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n .border-l {\n border-left-style: var(--tw-border-style);\n border-left-width: 1px;\n }\n .border-dashed {\n --tw-border-style: dashed;\n border-style: dashed;\n }\n .border-amber-200 {\n border-color: var(--color-amber-200);\n }\n .border-blue-200 {\n border-color: var(--color-blue-200);\n }\n .border-emerald-200 {\n border-color: var(--color-emerald-200);\n }\n .border-fuchsia-200 {\n border-color: var(--color-fuchsia-200);\n }\n .border-gray-100 {\n border-color: var(--color-gray-100);\n }\n .border-gray-200 {\n border-color: var(--color-gray-200);\n }\n .border-purple-200 {\n border-color: var(--color-purple-200);\n }\n .border-rose-200 {\n border-color: var(--color-rose-200);\n }\n .border-sky-200 {\n border-color: var(--color-sky-200);\n }\n .border-slate-200 {\n border-color: var(--color-slate-200);\n }\n .border-violet-200 {\n border-color: var(--color-violet-200);\n }\n .border-white\\/20 {\n border-color: #fff3;\n }\n @supports (color: color-mix(in lab, red, red)) {\n .border-white\\/20 {\n border-color: color-mix(in oklab, var(--color-white) 20%, transparent);\n }\n }\n .bg-amber-50 {\n background-color: var(--color-amber-50);\n }\n .bg-amber-100 {\n background-color: var(--color-amber-100);\n }\n .bg-blue-50 {\n background-color: var(--color-blue-50);\n }\n .bg-blue-100 {\n background-color: var(--color-blue-100);\n }\n .bg-emerald-50 {\n background-color: var(--color-emerald-50);\n }\n .bg-emerald-500 {\n background-color: var(--color-emerald-500);\n }\n .bg-fuchsia-50 {\n background-color: var(--color-fuchsia-50);\n }\n .bg-gray-50 {\n background-color: var(--color-gray-50);\n }\n .bg-gray-50\\/50 {\n background-color: #f9fafb80;\n }\n @supports (color: color-mix(in lab, red, red)) {\n .bg-gray-50\\/50 {\n background-color: color-mix(\n in oklab,\n var(--color-gray-50) 50%,\n transparent\n );\n }\n }\n .bg-gray-100 {\n background-color: var(--color-gray-100);\n }\n .bg-gray-400 {\n background-color: var(--color-gray-400);\n }\n .bg-gray-900 {\n background-color: var(--color-gray-900);\n }\n .bg-green-100 {\n background-color: var(--color-green-100);\n }\n .bg-purple-50 {\n background-color: var(--color-purple-50);\n }\n .bg-rose-50 {\n background-color: var(--color-rose-50);\n }\n .bg-rose-500 {\n background-color: var(--color-rose-500);\n }\n .bg-rose-600 {\n background-color: var(--color-rose-600);\n }\n .bg-sky-50 {\n background-color: var(--color-sky-50);\n }\n .bg-slate-900 {\n background-color: var(--color-slate-900);\n }\n .bg-slate-950\\/95 {\n background-color: #020618f2;\n }\n @supports (color: color-mix(in lab, red, red)) {\n .bg-slate-950\\/95 {\n background-color: color-mix(\n in oklab,\n var(--color-slate-950) 95%,\n transparent\n );\n }\n }\n .bg-violet-50 {\n background-color: var(--color-violet-50);\n }\n .bg-white {\n background-color: var(--color-white);\n }\n .bg-white\\/60 {\n background-color: #fff9;\n }\n @supports (color: color-mix(in lab, red, red)) {\n .bg-white\\/60 {\n background-color: color-mix(\n in oklab,\n var(--color-white) 60%,\n transparent\n );\n }\n }\n .bg-white\\/95 {\n background-color: #fffffff2;\n }\n @supports (color: color-mix(in lab, red, red)) {\n .bg-white\\/95 {\n background-color: color-mix(\n in oklab,\n var(--color-white) 95%,\n transparent\n );\n }\n }\n .p-2 {\n padding: calc(var(--spacing) * 2);\n }\n .p-3 {\n padding: calc(var(--spacing) * 3);\n }\n .p-4 {\n padding: calc(var(--spacing) * 4);\n }\n .px-1 {\n padding-inline: calc(var(--spacing) * 1);\n }\n .px-1\\.5 {\n padding-inline: calc(var(--spacing) * 1.5);\n }\n .px-2 {\n padding-inline: calc(var(--spacing) * 2);\n }\n .px-3 {\n padding-inline: calc(var(--spacing) * 3);\n }\n .px-4 {\n padding-inline: calc(var(--spacing) * 4);\n }\n .py-0\\.5 {\n padding-block: calc(var(--spacing) * 0.5);\n }\n .py-1 {\n padding-block: calc(var(--spacing) * 1);\n }\n .py-1\\.5 {\n padding-block: calc(var(--spacing) * 1.5);\n }\n .py-2 {\n padding-block: calc(var(--spacing) * 2);\n }\n .py-2\\.5 {\n padding-block: calc(var(--spacing) * 2.5);\n }\n .py-3 {\n padding-block: calc(var(--spacing) * 3);\n }\n .py-4 {\n padding-block: calc(var(--spacing) * 4);\n }\n .py-8 {\n padding-block: calc(var(--spacing) * 8);\n }\n .text-center {\n text-align: center;\n }\n .text-left {\n text-align: left;\n }\n .align-middle {\n vertical-align: middle;\n }\n .align-top {\n vertical-align: top;\n }\n .font-mono {\n font-family: var(--font-mono);\n }\n .text-lg {\n font-size: var(--text-lg);\n line-height: var(--tw-leading, var(--text-lg--line-height));\n }\n .text-sm {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n .text-xs {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n }\n .text-\\[9px\\] {\n font-size: 9px;\n }\n .text-\\[10px\\] {\n font-size: 10px;\n }\n .text-\\[11px\\] {\n font-size: 11px;\n }\n .leading-relaxed {\n --tw-leading: var(--leading-relaxed);\n line-height: var(--leading-relaxed);\n }\n .leading-snug {\n --tw-leading: var(--leading-snug);\n line-height: var(--leading-snug);\n }\n .font-medium {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n .font-semibold {\n --tw-font-weight: var(--font-weight-semibold);\n font-weight: var(--font-weight-semibold);\n }\n .break-words {\n overflow-wrap: break-word;\n }\n .whitespace-nowrap {\n white-space: nowrap;\n }\n .whitespace-pre-wrap {\n white-space: pre-wrap;\n }\n .text-amber-600 {\n color: var(--color-amber-600);\n }\n .text-amber-700 {\n color: var(--color-amber-700);\n }\n .text-amber-800 {\n color: var(--color-amber-800);\n }\n .text-amber-900 {\n color: var(--color-amber-900);\n }\n .text-blue-600 {\n color: var(--color-blue-600);\n }\n .text-blue-700 {\n color: var(--color-blue-700);\n }\n .text-blue-800 {\n color: var(--color-blue-800);\n }\n .text-emerald-700 {\n color: var(--color-emerald-700);\n }\n .text-fuchsia-700 {\n color: var(--color-fuchsia-700);\n }\n .text-gray-300 {\n color: var(--color-gray-300);\n }\n .text-gray-400 {\n color: var(--color-gray-400);\n }\n .text-gray-500 {\n color: var(--color-gray-500);\n }\n .text-gray-600 {\n color: var(--color-gray-600);\n }\n .text-gray-700 {\n color: var(--color-gray-700);\n }\n .text-gray-800 {\n color: var(--color-gray-800);\n }\n .text-gray-900 {\n color: var(--color-gray-900);\n }\n .text-green-700 {\n color: var(--color-green-700);\n }\n .text-green-800 {\n color: var(--color-green-800);\n }\n .text-purple-700 {\n color: var(--color-purple-700);\n }\n .text-rose-700 {\n color: var(--color-rose-700);\n }\n .text-rose-800 {\n color: var(--color-rose-800);\n }\n .text-rose-900 {\n color: var(--color-rose-900);\n }\n .text-sky-700 {\n color: var(--color-sky-700);\n }\n .text-slate-800 {\n color: var(--color-slate-800);\n }\n .text-slate-900 {\n color: var(--color-slate-900);\n }\n .text-violet-700 {\n color: var(--color-violet-700);\n }\n .text-white {\n color: var(--color-white);\n }\n .italic {\n font-style: italic;\n }\n .opacity-0 {\n opacity: 0;\n }\n .opacity-80 {\n opacity: 0.8;\n }\n .shadow-\\[0_12px_30px_rgba\\(15\\,23\\,42\\,0\\.12\\)\\] {\n --tw-shadow: 0 12px 30px var(--tw-shadow-color, #0f172a1f);\n box-shadow:\n var(--tw-inset-shadow), var(--tw-inset-ring-shadow),\n var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-lg {\n --tw-shadow:\n 0 10px 15px -3px var(--tw-shadow-color, #0000001a),\n 0 4px 6px -4px var(--tw-shadow-color, #0000001a);\n box-shadow:\n var(--tw-inset-shadow), var(--tw-inset-ring-shadow),\n var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-md {\n --tw-shadow:\n 0 4px 6px -1px var(--tw-shadow-color, #0000001a),\n 0 2px 4px -2px var(--tw-shadow-color, #0000001a);\n box-shadow:\n var(--tw-inset-shadow), var(--tw-inset-ring-shadow),\n var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-sm {\n --tw-shadow:\n 0 1px 3px 0 var(--tw-shadow-color, #0000001a),\n 0 1px 2px -1px var(--tw-shadow-color, #0000001a);\n box-shadow:\n var(--tw-inset-shadow), var(--tw-inset-ring-shadow),\n var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .ring-1 {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0\n calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow:\n var(--tw-inset-shadow), var(--tw-inset-ring-shadow),\n var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .ring-black\\/5 {\n --tw-ring-color: #0000000d;\n }\n @supports (color: color-mix(in lab, red, red)) {\n .ring-black\\/5 {\n --tw-ring-color: color-mix(in oklab, var(--color-black) 5%, transparent);\n }\n }\n .ring-transparent {\n --tw-ring-color: transparent;\n }\n .ring-white\\/10 {\n --tw-ring-color: #ffffff1a;\n }\n @supports (color: color-mix(in lab, red, red)) {\n .ring-white\\/10 {\n --tw-ring-color: color-mix(in oklab, var(--color-white) 10%, transparent);\n }\n }\n .backdrop-blur-md {\n --tw-backdrop-blur: blur(var(--blur-md));\n -webkit-backdrop-filter: var(--tw-backdrop-blur,)\n var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,)\n var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,)\n var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,)\n var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);\n backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,)\n var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,)\n var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,)\n var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,)\n var(--tw-backdrop-sepia,);\n }\n .backdrop-blur-sm {\n --tw-backdrop-blur: blur(var(--blur-sm));\n -webkit-backdrop-filter: var(--tw-backdrop-blur,)\n var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,)\n var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,)\n var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,)\n var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);\n backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,)\n var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,)\n var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,)\n var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,)\n var(--tw-backdrop-sepia,);\n }\n .transition {\n transition-property:\n color,\n background-color,\n border-color,\n outline-color,\n text-decoration-color,\n fill,\n stroke,\n --tw-gradient-from,\n --tw-gradient-via,\n --tw-gradient-to,\n opacity,\n box-shadow,\n transform,\n translate,\n scale,\n rotate,\n filter,\n -webkit-backdrop-filter,\n backdrop-filter,\n display,\n content-visibility,\n overlay,\n pointer-events;\n transition-timing-function: var(\n --tw-ease,\n var(--default-transition-timing-function)\n );\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .outline-none {\n --tw-outline-style: none;\n outline-style: none;\n }\n .select-none {\n -webkit-user-select: none;\n user-select: none;\n }\n @media (hover: hover) {\n .group-hover\\:opacity-100:is(:where(.group):hover *) {\n opacity: 1;\n }\n .hover\\:scale-105:hover {\n --tw-scale-x: 105%;\n --tw-scale-y: 105%;\n --tw-scale-z: 105%;\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n .hover\\:border-gray-300:hover {\n border-color: var(--color-gray-300);\n }\n .hover\\:border-white\\/30:hover {\n border-color: #ffffff4d;\n }\n @supports (color: color-mix(in lab, red, red)) {\n .hover\\:border-white\\/30:hover {\n border-color: color-mix(in oklab, var(--color-white) 30%, transparent);\n }\n }\n .hover\\:bg-blue-50\\/50:hover {\n background-color: #eff6ff80;\n }\n @supports (color: color-mix(in lab, red, red)) {\n .hover\\:bg-blue-50\\/50:hover {\n background-color: color-mix(\n in oklab,\n var(--color-blue-50) 50%,\n transparent\n );\n }\n }\n .hover\\:bg-gray-50:hover {\n background-color: var(--color-gray-50);\n }\n .hover\\:bg-gray-100:hover {\n background-color: var(--color-gray-100);\n }\n .hover\\:bg-gray-200:hover {\n background-color: var(--color-gray-200);\n }\n .hover\\:bg-gray-800:hover {\n background-color: var(--color-gray-800);\n }\n .hover\\:bg-slate-900\\/95:hover {\n background-color: #0f172bf2;\n }\n @supports (color: color-mix(in lab, red, red)) {\n .hover\\:bg-slate-900\\/95:hover {\n background-color: color-mix(\n in oklab,\n var(--color-slate-900) 95%,\n transparent\n );\n }\n }\n .hover\\:text-gray-600:hover {\n color: var(--color-gray-600);\n }\n .hover\\:text-gray-900:hover {\n color: var(--color-gray-900);\n }\n }\n .focus\\:border-gray-300:focus {\n border-color: var(--color-gray-300);\n }\n .focus\\:bg-gray-50:focus {\n background-color: var(--color-gray-50);\n }\n .focus\\:ring-2:focus {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0\n calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow:\n var(--tw-inset-shadow), var(--tw-inset-ring-shadow),\n var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .focus\\:ring-gray-200:focus {\n --tw-ring-color: var(--color-gray-200);\n }\n .focus\\:outline-none:focus {\n --tw-outline-style: none;\n outline-style: none;\n }\n .focus-visible\\:outline:focus-visible {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n .focus-visible\\:outline-2:focus-visible {\n outline-style: var(--tw-outline-style);\n outline-width: 2px;\n }\n .focus-visible\\:outline-offset-2:focus-visible {\n outline-offset: 2px;\n }\n .focus-visible\\:outline-gray-300:focus-visible {\n outline-color: var(--color-gray-300);\n }\n .focus-visible\\:outline-gray-400:focus-visible {\n outline-color: var(--color-gray-400);\n }\n .focus-visible\\:outline-rose-500:focus-visible {\n outline-color: var(--color-rose-500);\n }\n .disabled\\:cursor-not-allowed:disabled {\n cursor: not-allowed;\n }\n .disabled\\:opacity-50:disabled {\n opacity: 0.5;\n }\n @media (min-width: 48rem) {\n .md\\:grid-cols-4 {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n }\n }\n .\\[\\&\\>svg\\]\\:\\!h-8 > svg {\n height: calc(var(--spacing) * 8) !important;\n }\n .\\[\\&\\>svg\\]\\:\\!w-8 > svg {\n width: calc(var(--spacing) * 8) !important;\n }\n .sr-only {\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n position: absolute;\n overflow: hidden;\n }\n}\n@property --tw-translate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-rotate-x {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-rotate-y {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-rotate-z {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-skew-x {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-skew-y {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-space-y-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-divide-y-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-border-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-leading {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-font-weight {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-inset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-ring-inset {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-offset-width {\n syntax: \"<length>\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-ring-offset-color {\n syntax: \"*\";\n inherits: false;\n initial-value: #fff;\n}\n@property --tw-ring-offset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-backdrop-blur {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-brightness {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-contrast {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-grayscale {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-hue-rotate {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-invert {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-opacity {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-saturate {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-sepia {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-scale-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-scale-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-scale-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-outline-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@keyframes pulse {\n 50% {\n opacity: 0.5;\n }\n}\n";
|
|
4
|
+
|
|
5
|
+
//#endregion
|
|
6
|
+
Object.defineProperty(exports, 'default', {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return generated_default;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
//# sourceMappingURL=generated.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generated.cjs","names":[],"sources":["../../src/styles/generated.css"],"sourcesContent":["\"/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */\\n@layer properties {\\n @supports (((-webkit-hyphens: none)) and (not (margin-trim: inline))) or\\n ((-moz-orient: inline) and (not (color: rgb(from red r g b)))) {\\n *,\\n :before,\\n :after,\\n ::backdrop {\\n --tw-translate-x: 0;\\n --tw-translate-y: 0;\\n --tw-translate-z: 0;\\n --tw-rotate-x: initial;\\n --tw-rotate-y: initial;\\n --tw-rotate-z: initial;\\n --tw-skew-x: initial;\\n --tw-skew-y: initial;\\n --tw-space-y-reverse: 0;\\n --tw-divide-y-reverse: 0;\\n --tw-border-style: solid;\\n --tw-leading: initial;\\n --tw-font-weight: initial;\\n --tw-shadow: 0 0 #0000;\\n --tw-shadow-color: initial;\\n --tw-shadow-alpha: 100%;\\n --tw-inset-shadow: 0 0 #0000;\\n --tw-inset-shadow-color: initial;\\n --tw-inset-shadow-alpha: 100%;\\n --tw-ring-color: initial;\\n --tw-ring-shadow: 0 0 #0000;\\n --tw-inset-ring-color: initial;\\n --tw-inset-ring-shadow: 0 0 #0000;\\n --tw-ring-inset: initial;\\n --tw-ring-offset-width: 0px;\\n --tw-ring-offset-color: #fff;\\n --tw-ring-offset-shadow: 0 0 #0000;\\n --tw-backdrop-blur: initial;\\n --tw-backdrop-brightness: initial;\\n --tw-backdrop-contrast: initial;\\n --tw-backdrop-grayscale: initial;\\n --tw-backdrop-hue-rotate: initial;\\n --tw-backdrop-invert: initial;\\n --tw-backdrop-opacity: initial;\\n --tw-backdrop-saturate: initial;\\n --tw-backdrop-sepia: initial;\\n --tw-scale-x: 1;\\n --tw-scale-y: 1;\\n --tw-scale-z: 1;\\n --tw-outline-style: solid;\\n }\\n }\\n}\\n@layer theme {\\n :root,\\n :host {\\n --font-sans:\\n ui-sans-serif, system-ui, sans-serif, \\\"Apple Color Emoji\\\",\\n \\\"Segoe UI Emoji\\\", \\\"Segoe UI Symbol\\\", \\\"Noto Color Emoji\\\";\\n --font-mono:\\n ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\\"Liberation Mono\\\",\\n \\\"Courier New\\\", monospace;\\n --color-amber-50: oklch(98.7% 0.022 95.277);\\n --color-amber-100: oklch(96.2% 0.059 95.617);\\n --color-amber-200: oklch(92.4% 0.12 95.746);\\n --color-amber-600: oklch(66.6% 0.179 58.318);\\n --color-amber-700: oklch(55.5% 0.163 48.998);\\n --color-amber-800: oklch(47.3% 0.137 46.201);\\n --color-amber-900: oklch(41.4% 0.112 45.904);\\n --color-green-100: oklch(96.2% 0.044 156.743);\\n --color-green-700: oklch(52.7% 0.154 150.069);\\n --color-green-800: oklch(44.8% 0.119 151.328);\\n --color-emerald-50: oklch(97.9% 0.021 166.113);\\n --color-emerald-200: oklch(90.5% 0.093 164.15);\\n --color-emerald-500: oklch(69.6% 0.17 162.48);\\n --color-emerald-700: oklch(50.8% 0.118 165.612);\\n --color-sky-50: oklch(97.7% 0.013 236.62);\\n --color-sky-200: oklch(90.1% 0.058 230.902);\\n --color-sky-700: oklch(50% 0.134 242.749);\\n --color-blue-50: oklch(97% 0.014 254.604);\\n --color-blue-100: oklch(93.2% 0.032 255.585);\\n --color-blue-200: oklch(88.2% 0.059 254.128);\\n --color-blue-600: oklch(54.6% 0.245 262.881);\\n --color-blue-700: oklch(48.8% 0.243 264.376);\\n --color-blue-800: oklch(42.4% 0.199 265.638);\\n --color-violet-50: oklch(96.9% 0.016 293.756);\\n --color-violet-200: oklch(89.4% 0.057 293.283);\\n --color-violet-700: oklch(49.1% 0.27 292.581);\\n --color-purple-50: oklch(97.7% 0.014 308.299);\\n --color-purple-200: oklch(90.2% 0.063 306.703);\\n --color-purple-700: oklch(49.6% 0.265 301.924);\\n --color-fuchsia-50: oklch(97.7% 0.017 320.058);\\n --color-fuchsia-200: oklch(90.3% 0.076 319.62);\\n --color-fuchsia-700: oklch(51.8% 0.253 323.949);\\n --color-rose-50: oklch(96.9% 0.015 12.422);\\n --color-rose-200: oklch(89.2% 0.058 10.001);\\n --color-rose-500: oklch(64.5% 0.246 16.439);\\n --color-rose-600: oklch(58.6% 0.253 17.585);\\n --color-rose-700: oklch(51.4% 0.222 16.935);\\n --color-rose-800: oklch(45.5% 0.188 13.697);\\n --color-rose-900: oklch(41% 0.159 10.272);\\n --color-slate-200: oklch(92.9% 0.013 255.508);\\n --color-slate-800: oklch(27.9% 0.041 260.031);\\n --color-slate-900: oklch(20.8% 0.042 265.755);\\n --color-slate-950: oklch(12.9% 0.042 264.695);\\n --color-gray-50: oklch(98.5% 0.002 247.839);\\n --color-gray-100: oklch(96.7% 0.003 264.542);\\n --color-gray-200: oklch(92.8% 0.006 264.531);\\n --color-gray-300: oklch(87.2% 0.01 258.338);\\n --color-gray-400: oklch(70.7% 0.022 261.325);\\n --color-gray-500: oklch(55.1% 0.027 264.364);\\n --color-gray-600: oklch(44.6% 0.03 256.802);\\n --color-gray-700: oklch(37.3% 0.034 259.733);\\n --color-gray-800: oklch(27.8% 0.033 256.848);\\n --color-gray-900: oklch(21% 0.034 264.665);\\n --color-black: #000;\\n --color-white: #fff;\\n --spacing: 0.25rem;\\n --container-xs: 20rem;\\n --container-md: 28rem;\\n --container-2xl: 42rem;\\n --text-xs: 0.75rem;\\n --text-xs--line-height: calc(1/0.75);\\n --text-sm: 0.875rem;\\n --text-sm--line-height: calc(1.25/0.875);\\n --text-lg: 1.125rem;\\n --text-lg--line-height: calc(1.75/1.125);\\n --font-weight-medium: 500;\\n --font-weight-semibold: 600;\\n --leading-snug: 1.375;\\n --leading-relaxed: 1.625;\\n --radius-sm: 0.25rem;\\n --radius-md: 0.375rem;\\n --radius-lg: 0.5rem;\\n --radius-xl: 0.75rem;\\n --animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\\n --blur-sm: 8px;\\n --blur-md: 12px;\\n --default-transition-duration: 0.15s;\\n --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n --default-font-family: var(--font-sans);\\n --default-mono-font-family: var(--font-mono);\\n }\\n}\\n@layer base {\\n *,\\n :after,\\n :before,\\n ::backdrop {\\n box-sizing: border-box;\\n border: 0 solid;\\n margin: 0;\\n padding: 0;\\n }\\n ::file-selector-button {\\n box-sizing: border-box;\\n border: 0 solid;\\n margin: 0;\\n padding: 0;\\n }\\n html,\\n :host {\\n -webkit-text-size-adjust: 100%;\\n tab-size: 4;\\n line-height: 1.5;\\n font-family: var(\\n --default-font-family,\\n ui-sans-serif,\\n system-ui,\\n sans-serif,\\n \\\"Apple Color Emoji\\\",\\n \\\"Segoe UI Emoji\\\",\\n \\\"Segoe UI Symbol\\\",\\n \\\"Noto Color Emoji\\\"\\n );\\n font-feature-settings: var(--default-font-feature-settings, normal);\\n font-variation-settings: var(--default-font-variation-settings, normal);\\n -webkit-tap-highlight-color: transparent;\\n }\\n hr {\\n height: 0;\\n color: inherit;\\n border-top-width: 1px;\\n }\\n abbr:where([title]) {\\n -webkit-text-decoration: underline dotted;\\n text-decoration: underline dotted;\\n }\\n h1,\\n h2,\\n h3,\\n h4,\\n h5,\\n h6 {\\n font-size: inherit;\\n font-weight: inherit;\\n }\\n a {\\n color: inherit;\\n -webkit-text-decoration: inherit;\\n -webkit-text-decoration: inherit;\\n -webkit-text-decoration: inherit;\\n text-decoration: inherit;\\n }\\n b,\\n strong {\\n font-weight: bolder;\\n }\\n code,\\n kbd,\\n samp,\\n pre {\\n font-family: var(\\n --default-mono-font-family,\\n ui-monospace,\\n SFMono-Regular,\\n Menlo,\\n Monaco,\\n Consolas,\\n \\\"Liberation Mono\\\",\\n \\\"Courier New\\\",\\n monospace\\n );\\n font-feature-settings: var(--default-mono-font-feature-settings, normal);\\n font-variation-settings: var(\\n --default-mono-font-variation-settings,\\n normal\\n );\\n font-size: 1em;\\n }\\n small {\\n font-size: 80%;\\n }\\n sub,\\n sup {\\n vertical-align: baseline;\\n font-size: 75%;\\n line-height: 0;\\n position: relative;\\n }\\n sub {\\n bottom: -0.25em;\\n }\\n sup {\\n top: -0.5em;\\n }\\n table {\\n text-indent: 0;\\n border-color: inherit;\\n border-collapse: collapse;\\n }\\n :-moz-focusring {\\n outline: auto;\\n }\\n progress {\\n vertical-align: baseline;\\n }\\n summary {\\n display: list-item;\\n }\\n ol,\\n ul,\\n menu {\\n list-style: none;\\n }\\n img,\\n svg,\\n video,\\n canvas,\\n audio,\\n iframe,\\n embed,\\n object {\\n vertical-align: middle;\\n display: block;\\n }\\n img,\\n video {\\n max-width: 100%;\\n height: auto;\\n }\\n button,\\n input,\\n select,\\n optgroup,\\n textarea {\\n font: inherit;\\n font-feature-settings: inherit;\\n font-variation-settings: inherit;\\n letter-spacing: inherit;\\n color: inherit;\\n opacity: 1;\\n background-color: #0000;\\n border-radius: 0;\\n }\\n ::file-selector-button {\\n font: inherit;\\n font-feature-settings: inherit;\\n font-variation-settings: inherit;\\n letter-spacing: inherit;\\n color: inherit;\\n opacity: 1;\\n background-color: #0000;\\n border-radius: 0;\\n }\\n :where(select:is([multiple], [size])) optgroup {\\n font-weight: bolder;\\n }\\n :where(select:is([multiple], [size])) optgroup option {\\n padding-inline-start: 20px;\\n }\\n ::file-selector-button {\\n margin-inline-end: 4px;\\n }\\n ::placeholder {\\n opacity: 1;\\n }\\n @supports (not ((-webkit-appearance: -apple-pay-button))) or\\n (contain-intrinsic-size: 1px) {\\n ::placeholder {\\n color: currentColor;\\n }\\n @supports (color: color-mix(in lab, red, red)) {\\n ::placeholder {\\n color: color-mix(in oklab, currentcolor 50%, transparent);\\n }\\n }\\n }\\n textarea {\\n resize: vertical;\\n }\\n ::-webkit-search-decoration {\\n -webkit-appearance: none;\\n }\\n ::-webkit-date-and-time-value {\\n min-height: 1lh;\\n text-align: inherit;\\n }\\n ::-webkit-datetime-edit {\\n display: inline-flex;\\n }\\n ::-webkit-datetime-edit-fields-wrapper {\\n padding: 0;\\n }\\n ::-webkit-datetime-edit {\\n padding-block: 0;\\n }\\n ::-webkit-datetime-edit-year-field {\\n padding-block: 0;\\n }\\n ::-webkit-datetime-edit-month-field {\\n padding-block: 0;\\n }\\n ::-webkit-datetime-edit-day-field {\\n padding-block: 0;\\n }\\n ::-webkit-datetime-edit-hour-field {\\n padding-block: 0;\\n }\\n ::-webkit-datetime-edit-minute-field {\\n padding-block: 0;\\n }\\n ::-webkit-datetime-edit-second-field {\\n padding-block: 0;\\n }\\n ::-webkit-datetime-edit-millisecond-field {\\n padding-block: 0;\\n }\\n ::-webkit-datetime-edit-meridiem-field {\\n padding-block: 0;\\n }\\n ::-webkit-calendar-picker-indicator {\\n line-height: 1;\\n }\\n :-moz-ui-invalid {\\n box-shadow: none;\\n }\\n button,\\n input:where([type=\\\"button\\\"], [type=\\\"reset\\\"], [type=\\\"submit\\\"]) {\\n appearance: button;\\n }\\n ::file-selector-button {\\n appearance: button;\\n }\\n ::-webkit-inner-spin-button {\\n height: auto;\\n }\\n ::-webkit-outer-spin-button {\\n height: auto;\\n }\\n [hidden]:where(:not([hidden=\\\"until-found\\\"])) {\\n display: none !important;\\n }\\n :host {\\n font-family: var(--font-sans);\\n color: var(--color-slate-900);\\n background-color: #0000;\\n display: block;\\n }\\n}\\n@layer components;\\n@layer utilities {\\n .pointer-events-auto {\\n pointer-events: auto;\\n }\\n .absolute {\\n position: absolute;\\n }\\n .fixed {\\n position: fixed;\\n }\\n .relative {\\n position: relative;\\n }\\n .static {\\n position: static;\\n }\\n .sticky {\\n position: sticky;\\n }\\n .top-0 {\\n top: calc(var(--spacing) * 0);\\n }\\n .right-0 {\\n right: calc(var(--spacing) * 0);\\n }\\n .right-1 {\\n right: calc(var(--spacing) * 1);\\n }\\n .bottom-1 {\\n bottom: calc(var(--spacing) * 1);\\n }\\n .left-0 {\\n left: calc(var(--spacing) * 0);\\n }\\n .z-10 {\\n z-index: 10;\\n }\\n .z-30 {\\n z-index: 30;\\n }\\n .z-40 {\\n z-index: 40;\\n }\\n .z-50 {\\n z-index: 50;\\n }\\n .m-0 {\\n margin: calc(var(--spacing) * 0);\\n }\\n .mx-4 {\\n margin-inline: calc(var(--spacing) * 4);\\n }\\n .my-1 {\\n margin-block: calc(var(--spacing) * 1);\\n }\\n .my-3 {\\n margin-block: calc(var(--spacing) * 3);\\n }\\n .mt-0\\\\.5 {\\n margin-top: calc(var(--spacing) * 0.5);\\n }\\n .mt-1 {\\n margin-top: calc(var(--spacing) * 1);\\n }\\n .mt-1\\\\.5 {\\n margin-top: calc(var(--spacing) * 1.5);\\n }\\n .mt-2 {\\n margin-top: calc(var(--spacing) * 2);\\n }\\n .mb-1 {\\n margin-bottom: calc(var(--spacing) * 1);\\n }\\n .mb-2 {\\n margin-bottom: calc(var(--spacing) * 2);\\n }\\n .mb-3 {\\n margin-bottom: calc(var(--spacing) * 3);\\n }\\n .mb-4 {\\n margin-bottom: calc(var(--spacing) * 4);\\n }\\n .ml-auto {\\n margin-left: auto;\\n }\\n .box-border {\\n box-sizing: border-box;\\n }\\n .block {\\n display: block;\\n }\\n .flex {\\n display: flex;\\n }\\n .grid {\\n display: grid;\\n }\\n .inline-block {\\n display: inline-block;\\n }\\n .inline-flex {\\n display: inline-flex;\\n }\\n .h-1\\\\.5 {\\n height: calc(var(--spacing) * 1.5);\\n }\\n .h-3 {\\n height: calc(var(--spacing) * 3);\\n }\\n .h-3\\\\.5 {\\n height: calc(var(--spacing) * 3.5);\\n }\\n .h-5 {\\n height: calc(var(--spacing) * 5);\\n }\\n .h-6 {\\n height: calc(var(--spacing) * 6);\\n }\\n .h-7 {\\n height: calc(var(--spacing) * 7);\\n }\\n .h-8 {\\n height: calc(var(--spacing) * 8);\\n }\\n .h-10 {\\n height: calc(var(--spacing) * 10);\\n }\\n .h-12 {\\n height: calc(var(--spacing) * 12);\\n }\\n .h-40 {\\n height: calc(var(--spacing) * 40);\\n }\\n .h-full {\\n height: 100%;\\n }\\n .max-h-64 {\\n max-height: calc(var(--spacing) * 64);\\n }\\n .max-h-96 {\\n max-height: calc(var(--spacing) * 96);\\n }\\n .w-1\\\\.5 {\\n width: calc(var(--spacing) * 1.5);\\n }\\n .w-3 {\\n width: calc(var(--spacing) * 3);\\n }\\n .w-3\\\\.5 {\\n width: calc(var(--spacing) * 3.5);\\n }\\n .w-5 {\\n width: calc(var(--spacing) * 5);\\n }\\n .w-6 {\\n width: calc(var(--spacing) * 6);\\n }\\n .w-7 {\\n width: calc(var(--spacing) * 7);\\n }\\n .w-8 {\\n width: calc(var(--spacing) * 8);\\n }\\n .w-10 {\\n width: calc(var(--spacing) * 10);\\n }\\n .w-12 {\\n width: calc(var(--spacing) * 12);\\n }\\n .w-40 {\\n width: calc(var(--spacing) * 40);\\n }\\n .w-auto {\\n width: auto;\\n }\\n .w-full {\\n width: 100%;\\n }\\n .max-w-2xl {\\n max-width: var(--container-2xl);\\n }\\n .max-w-\\\\[240px\\\\] {\\n max-width: 240px;\\n }\\n .max-w-md {\\n max-width: var(--container-md);\\n }\\n .max-w-xs {\\n max-width: var(--container-xs);\\n }\\n .min-w-0 {\\n min-width: calc(var(--spacing) * 0);\\n }\\n .min-w-\\\\[160px\\\\] {\\n min-width: 160px;\\n }\\n .min-w-\\\\[200px\\\\] {\\n min-width: 200px;\\n }\\n .flex-1 {\\n flex: 1;\\n }\\n .shrink-0 {\\n flex-shrink: 0;\\n }\\n .table-fixed {\\n table-layout: fixed;\\n }\\n .border-collapse {\\n border-collapse: collapse;\\n }\\n .-translate-y-\\\\[2px\\\\] {\\n --tw-translate-y: calc(2px * -1);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .rotate-180 {\\n rotate: 180deg;\\n }\\n .transform {\\n transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,)\\n var(--tw-skew-x,) var(--tw-skew-y,);\\n }\\n .animate-pulse {\\n animation: var(--animate-pulse);\\n }\\n .cursor-grab {\\n cursor: grab;\\n }\\n .cursor-grabbing {\\n cursor: grabbing;\\n }\\n .cursor-nwse-resize {\\n cursor: nwse-resize;\\n }\\n .cursor-pointer {\\n cursor: pointer;\\n }\\n .touch-none {\\n touch-action: none;\\n }\\n .resize {\\n resize: both;\\n }\\n .grid-cols-2 {\\n grid-template-columns: repeat(2, minmax(0, 1fr));\\n }\\n .flex-col {\\n flex-direction: column;\\n }\\n .flex-wrap {\\n flex-wrap: wrap;\\n }\\n .items-center {\\n align-items: center;\\n }\\n .items-start {\\n align-items: flex-start;\\n }\\n .justify-between {\\n justify-content: space-between;\\n }\\n .justify-center {\\n justify-content: center;\\n }\\n .gap-1 {\\n gap: calc(var(--spacing) * 1);\\n }\\n .gap-1\\\\.5 {\\n gap: calc(var(--spacing) * 1.5);\\n }\\n .gap-2 {\\n gap: calc(var(--spacing) * 2);\\n }\\n .gap-3 {\\n gap: calc(var(--spacing) * 3);\\n }\\n .gap-4 {\\n gap: calc(var(--spacing) * 4);\\n }\\n :where(.space-y-1 > :not(:last-child)) {\\n --tw-space-y-reverse: 0;\\n margin-block-start: calc(\\n calc(var(--spacing) * 1) * var(--tw-space-y-reverse)\\n );\\n margin-block-end: calc(\\n calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse))\\n );\\n }\\n :where(.space-y-2 > :not(:last-child)) {\\n --tw-space-y-reverse: 0;\\n margin-block-start: calc(\\n calc(var(--spacing) * 2) * var(--tw-space-y-reverse)\\n );\\n margin-block-end: calc(\\n calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse))\\n );\\n }\\n :where(.space-y-3 > :not(:last-child)) {\\n --tw-space-y-reverse: 0;\\n margin-block-start: calc(\\n calc(var(--spacing) * 3) * var(--tw-space-y-reverse)\\n );\\n margin-block-end: calc(\\n calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse))\\n );\\n }\\n :where(.divide-y > :not(:last-child)) {\\n --tw-divide-y-reverse: 0;\\n border-bottom-style: var(--tw-border-style);\\n border-top-style: var(--tw-border-style);\\n border-top-width: calc(1px * var(--tw-divide-y-reverse));\\n border-bottom-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));\\n }\\n :where(.divide-gray-200 > :not(:last-child)) {\\n border-color: var(--color-gray-200);\\n }\\n .truncate {\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n overflow: hidden;\\n }\\n .overflow-auto {\\n overflow: auto;\\n }\\n .overflow-hidden {\\n overflow: hidden;\\n }\\n .overflow-x-hidden {\\n overflow-x: hidden;\\n }\\n .overflow-y-auto {\\n overflow-y: auto;\\n }\\n .rounded {\\n border-radius: 0.25rem;\\n }\\n .rounded-full {\\n border-radius: 3.40282e38px;\\n }\\n .rounded-lg {\\n border-radius: var(--radius-lg);\\n }\\n .rounded-md {\\n border-radius: var(--radius-md);\\n }\\n .rounded-sm {\\n border-radius: var(--radius-sm);\\n }\\n .rounded-xl {\\n border-radius: var(--radius-xl);\\n }\\n .border {\\n border-style: var(--tw-border-style);\\n border-width: 1px;\\n }\\n .border-t {\\n border-top-style: var(--tw-border-style);\\n border-top-width: 1px;\\n }\\n .border-r {\\n border-right-style: var(--tw-border-style);\\n border-right-width: 1px;\\n }\\n .border-b {\\n border-bottom-style: var(--tw-border-style);\\n border-bottom-width: 1px;\\n }\\n .border-l {\\n border-left-style: var(--tw-border-style);\\n border-left-width: 1px;\\n }\\n .border-dashed {\\n --tw-border-style: dashed;\\n border-style: dashed;\\n }\\n .border-amber-200 {\\n border-color: var(--color-amber-200);\\n }\\n .border-blue-200 {\\n border-color: var(--color-blue-200);\\n }\\n .border-emerald-200 {\\n border-color: var(--color-emerald-200);\\n }\\n .border-fuchsia-200 {\\n border-color: var(--color-fuchsia-200);\\n }\\n .border-gray-100 {\\n border-color: var(--color-gray-100);\\n }\\n .border-gray-200 {\\n border-color: var(--color-gray-200);\\n }\\n .border-purple-200 {\\n border-color: var(--color-purple-200);\\n }\\n .border-rose-200 {\\n border-color: var(--color-rose-200);\\n }\\n .border-sky-200 {\\n border-color: var(--color-sky-200);\\n }\\n .border-slate-200 {\\n border-color: var(--color-slate-200);\\n }\\n .border-violet-200 {\\n border-color: var(--color-violet-200);\\n }\\n .border-white\\\\/20 {\\n border-color: #fff3;\\n }\\n @supports (color: color-mix(in lab, red, red)) {\\n .border-white\\\\/20 {\\n border-color: color-mix(in oklab, var(--color-white) 20%, transparent);\\n }\\n }\\n .bg-amber-50 {\\n background-color: var(--color-amber-50);\\n }\\n .bg-amber-100 {\\n background-color: var(--color-amber-100);\\n }\\n .bg-blue-50 {\\n background-color: var(--color-blue-50);\\n }\\n .bg-blue-100 {\\n background-color: var(--color-blue-100);\\n }\\n .bg-emerald-50 {\\n background-color: var(--color-emerald-50);\\n }\\n .bg-emerald-500 {\\n background-color: var(--color-emerald-500);\\n }\\n .bg-fuchsia-50 {\\n background-color: var(--color-fuchsia-50);\\n }\\n .bg-gray-50 {\\n background-color: var(--color-gray-50);\\n }\\n .bg-gray-50\\\\/50 {\\n background-color: #f9fafb80;\\n }\\n @supports (color: color-mix(in lab, red, red)) {\\n .bg-gray-50\\\\/50 {\\n background-color: color-mix(\\n in oklab,\\n var(--color-gray-50) 50%,\\n transparent\\n );\\n }\\n }\\n .bg-gray-100 {\\n background-color: var(--color-gray-100);\\n }\\n .bg-gray-400 {\\n background-color: var(--color-gray-400);\\n }\\n .bg-gray-900 {\\n background-color: var(--color-gray-900);\\n }\\n .bg-green-100 {\\n background-color: var(--color-green-100);\\n }\\n .bg-purple-50 {\\n background-color: var(--color-purple-50);\\n }\\n .bg-rose-50 {\\n background-color: var(--color-rose-50);\\n }\\n .bg-rose-500 {\\n background-color: var(--color-rose-500);\\n }\\n .bg-rose-600 {\\n background-color: var(--color-rose-600);\\n }\\n .bg-sky-50 {\\n background-color: var(--color-sky-50);\\n }\\n .bg-slate-900 {\\n background-color: var(--color-slate-900);\\n }\\n .bg-slate-950\\\\/95 {\\n background-color: #020618f2;\\n }\\n @supports (color: color-mix(in lab, red, red)) {\\n .bg-slate-950\\\\/95 {\\n background-color: color-mix(\\n in oklab,\\n var(--color-slate-950) 95%,\\n transparent\\n );\\n }\\n }\\n .bg-violet-50 {\\n background-color: var(--color-violet-50);\\n }\\n .bg-white {\\n background-color: var(--color-white);\\n }\\n .bg-white\\\\/60 {\\n background-color: #fff9;\\n }\\n @supports (color: color-mix(in lab, red, red)) {\\n .bg-white\\\\/60 {\\n background-color: color-mix(\\n in oklab,\\n var(--color-white) 60%,\\n transparent\\n );\\n }\\n }\\n .bg-white\\\\/95 {\\n background-color: #fffffff2;\\n }\\n @supports (color: color-mix(in lab, red, red)) {\\n .bg-white\\\\/95 {\\n background-color: color-mix(\\n in oklab,\\n var(--color-white) 95%,\\n transparent\\n );\\n }\\n }\\n .p-2 {\\n padding: calc(var(--spacing) * 2);\\n }\\n .p-3 {\\n padding: calc(var(--spacing) * 3);\\n }\\n .p-4 {\\n padding: calc(var(--spacing) * 4);\\n }\\n .px-1 {\\n padding-inline: calc(var(--spacing) * 1);\\n }\\n .px-1\\\\.5 {\\n padding-inline: calc(var(--spacing) * 1.5);\\n }\\n .px-2 {\\n padding-inline: calc(var(--spacing) * 2);\\n }\\n .px-3 {\\n padding-inline: calc(var(--spacing) * 3);\\n }\\n .px-4 {\\n padding-inline: calc(var(--spacing) * 4);\\n }\\n .py-0\\\\.5 {\\n padding-block: calc(var(--spacing) * 0.5);\\n }\\n .py-1 {\\n padding-block: calc(var(--spacing) * 1);\\n }\\n .py-1\\\\.5 {\\n padding-block: calc(var(--spacing) * 1.5);\\n }\\n .py-2 {\\n padding-block: calc(var(--spacing) * 2);\\n }\\n .py-2\\\\.5 {\\n padding-block: calc(var(--spacing) * 2.5);\\n }\\n .py-3 {\\n padding-block: calc(var(--spacing) * 3);\\n }\\n .py-4 {\\n padding-block: calc(var(--spacing) * 4);\\n }\\n .py-8 {\\n padding-block: calc(var(--spacing) * 8);\\n }\\n .text-center {\\n text-align: center;\\n }\\n .text-left {\\n text-align: left;\\n }\\n .align-middle {\\n vertical-align: middle;\\n }\\n .align-top {\\n vertical-align: top;\\n }\\n .font-mono {\\n font-family: var(--font-mono);\\n }\\n .text-lg {\\n font-size: var(--text-lg);\\n line-height: var(--tw-leading, var(--text-lg--line-height));\\n }\\n .text-sm {\\n font-size: var(--text-sm);\\n line-height: var(--tw-leading, var(--text-sm--line-height));\\n }\\n .text-xs {\\n font-size: var(--text-xs);\\n line-height: var(--tw-leading, var(--text-xs--line-height));\\n }\\n .text-\\\\[9px\\\\] {\\n font-size: 9px;\\n }\\n .text-\\\\[10px\\\\] {\\n font-size: 10px;\\n }\\n .text-\\\\[11px\\\\] {\\n font-size: 11px;\\n }\\n .leading-relaxed {\\n --tw-leading: var(--leading-relaxed);\\n line-height: var(--leading-relaxed);\\n }\\n .leading-snug {\\n --tw-leading: var(--leading-snug);\\n line-height: var(--leading-snug);\\n }\\n .font-medium {\\n --tw-font-weight: var(--font-weight-medium);\\n font-weight: var(--font-weight-medium);\\n }\\n .font-semibold {\\n --tw-font-weight: var(--font-weight-semibold);\\n font-weight: var(--font-weight-semibold);\\n }\\n .break-words {\\n overflow-wrap: break-word;\\n }\\n .whitespace-nowrap {\\n white-space: nowrap;\\n }\\n .whitespace-pre-wrap {\\n white-space: pre-wrap;\\n }\\n .text-amber-600 {\\n color: var(--color-amber-600);\\n }\\n .text-amber-700 {\\n color: var(--color-amber-700);\\n }\\n .text-amber-800 {\\n color: var(--color-amber-800);\\n }\\n .text-amber-900 {\\n color: var(--color-amber-900);\\n }\\n .text-blue-600 {\\n color: var(--color-blue-600);\\n }\\n .text-blue-700 {\\n color: var(--color-blue-700);\\n }\\n .text-blue-800 {\\n color: var(--color-blue-800);\\n }\\n .text-emerald-700 {\\n color: var(--color-emerald-700);\\n }\\n .text-fuchsia-700 {\\n color: var(--color-fuchsia-700);\\n }\\n .text-gray-300 {\\n color: var(--color-gray-300);\\n }\\n .text-gray-400 {\\n color: var(--color-gray-400);\\n }\\n .text-gray-500 {\\n color: var(--color-gray-500);\\n }\\n .text-gray-600 {\\n color: var(--color-gray-600);\\n }\\n .text-gray-700 {\\n color: var(--color-gray-700);\\n }\\n .text-gray-800 {\\n color: var(--color-gray-800);\\n }\\n .text-gray-900 {\\n color: var(--color-gray-900);\\n }\\n .text-green-700 {\\n color: var(--color-green-700);\\n }\\n .text-green-800 {\\n color: var(--color-green-800);\\n }\\n .text-purple-700 {\\n color: var(--color-purple-700);\\n }\\n .text-rose-700 {\\n color: var(--color-rose-700);\\n }\\n .text-rose-800 {\\n color: var(--color-rose-800);\\n }\\n .text-rose-900 {\\n color: var(--color-rose-900);\\n }\\n .text-sky-700 {\\n color: var(--color-sky-700);\\n }\\n .text-slate-800 {\\n color: var(--color-slate-800);\\n }\\n .text-slate-900 {\\n color: var(--color-slate-900);\\n }\\n .text-violet-700 {\\n color: var(--color-violet-700);\\n }\\n .text-white {\\n color: var(--color-white);\\n }\\n .italic {\\n font-style: italic;\\n }\\n .opacity-0 {\\n opacity: 0;\\n }\\n .opacity-80 {\\n opacity: 0.8;\\n }\\n .shadow-\\\\[0_12px_30px_rgba\\\\(15\\\\,23\\\\,42\\\\,0\\\\.12\\\\)\\\\] {\\n --tw-shadow: 0 12px 30px var(--tw-shadow-color, #0f172a1f);\\n box-shadow:\\n var(--tw-inset-shadow), var(--tw-inset-ring-shadow),\\n var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\\n }\\n .shadow-lg {\\n --tw-shadow:\\n 0 10px 15px -3px var(--tw-shadow-color, #0000001a),\\n 0 4px 6px -4px var(--tw-shadow-color, #0000001a);\\n box-shadow:\\n var(--tw-inset-shadow), var(--tw-inset-ring-shadow),\\n var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\\n }\\n .shadow-md {\\n --tw-shadow:\\n 0 4px 6px -1px var(--tw-shadow-color, #0000001a),\\n 0 2px 4px -2px var(--tw-shadow-color, #0000001a);\\n box-shadow:\\n var(--tw-inset-shadow), var(--tw-inset-ring-shadow),\\n var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\\n }\\n .shadow-sm {\\n --tw-shadow:\\n 0 1px 3px 0 var(--tw-shadow-color, #0000001a),\\n 0 1px 2px -1px var(--tw-shadow-color, #0000001a);\\n box-shadow:\\n var(--tw-inset-shadow), var(--tw-inset-ring-shadow),\\n var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\\n }\\n .ring-1 {\\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0\\n calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\\n box-shadow:\\n var(--tw-inset-shadow), var(--tw-inset-ring-shadow),\\n var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\\n }\\n .ring-black\\\\/5 {\\n --tw-ring-color: #0000000d;\\n }\\n @supports (color: color-mix(in lab, red, red)) {\\n .ring-black\\\\/5 {\\n --tw-ring-color: color-mix(in oklab, var(--color-black) 5%, transparent);\\n }\\n }\\n .ring-transparent {\\n --tw-ring-color: transparent;\\n }\\n .ring-white\\\\/10 {\\n --tw-ring-color: #ffffff1a;\\n }\\n @supports (color: color-mix(in lab, red, red)) {\\n .ring-white\\\\/10 {\\n --tw-ring-color: color-mix(in oklab, var(--color-white) 10%, transparent);\\n }\\n }\\n .backdrop-blur-md {\\n --tw-backdrop-blur: blur(var(--blur-md));\\n -webkit-backdrop-filter: var(--tw-backdrop-blur,)\\n var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,)\\n var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,)\\n var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,)\\n var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);\\n backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,)\\n var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,)\\n var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,)\\n var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,)\\n var(--tw-backdrop-sepia,);\\n }\\n .backdrop-blur-sm {\\n --tw-backdrop-blur: blur(var(--blur-sm));\\n -webkit-backdrop-filter: var(--tw-backdrop-blur,)\\n var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,)\\n var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,)\\n var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,)\\n var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);\\n backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,)\\n var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,)\\n var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,)\\n var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,)\\n var(--tw-backdrop-sepia,);\\n }\\n .transition {\\n transition-property:\\n color,\\n background-color,\\n border-color,\\n outline-color,\\n text-decoration-color,\\n fill,\\n stroke,\\n --tw-gradient-from,\\n --tw-gradient-via,\\n --tw-gradient-to,\\n opacity,\\n box-shadow,\\n transform,\\n translate,\\n scale,\\n rotate,\\n filter,\\n -webkit-backdrop-filter,\\n backdrop-filter,\\n display,\\n content-visibility,\\n overlay,\\n pointer-events;\\n transition-timing-function: var(\\n --tw-ease,\\n var(--default-transition-timing-function)\\n );\\n transition-duration: var(--tw-duration, var(--default-transition-duration));\\n }\\n .outline-none {\\n --tw-outline-style: none;\\n outline-style: none;\\n }\\n .select-none {\\n -webkit-user-select: none;\\n user-select: none;\\n }\\n @media (hover: hover) {\\n .group-hover\\\\:opacity-100:is(:where(.group):hover *) {\\n opacity: 1;\\n }\\n .hover\\\\:scale-105:hover {\\n --tw-scale-x: 105%;\\n --tw-scale-y: 105%;\\n --tw-scale-z: 105%;\\n scale: var(--tw-scale-x) var(--tw-scale-y);\\n }\\n .hover\\\\:border-gray-300:hover {\\n border-color: var(--color-gray-300);\\n }\\n .hover\\\\:border-white\\\\/30:hover {\\n border-color: #ffffff4d;\\n }\\n @supports (color: color-mix(in lab, red, red)) {\\n .hover\\\\:border-white\\\\/30:hover {\\n border-color: color-mix(in oklab, var(--color-white) 30%, transparent);\\n }\\n }\\n .hover\\\\:bg-blue-50\\\\/50:hover {\\n background-color: #eff6ff80;\\n }\\n @supports (color: color-mix(in lab, red, red)) {\\n .hover\\\\:bg-blue-50\\\\/50:hover {\\n background-color: color-mix(\\n in oklab,\\n var(--color-blue-50) 50%,\\n transparent\\n );\\n }\\n }\\n .hover\\\\:bg-gray-50:hover {\\n background-color: var(--color-gray-50);\\n }\\n .hover\\\\:bg-gray-100:hover {\\n background-color: var(--color-gray-100);\\n }\\n .hover\\\\:bg-gray-200:hover {\\n background-color: var(--color-gray-200);\\n }\\n .hover\\\\:bg-gray-800:hover {\\n background-color: var(--color-gray-800);\\n }\\n .hover\\\\:bg-slate-900\\\\/95:hover {\\n background-color: #0f172bf2;\\n }\\n @supports (color: color-mix(in lab, red, red)) {\\n .hover\\\\:bg-slate-900\\\\/95:hover {\\n background-color: color-mix(\\n in oklab,\\n var(--color-slate-900) 95%,\\n transparent\\n );\\n }\\n }\\n .hover\\\\:text-gray-600:hover {\\n color: var(--color-gray-600);\\n }\\n .hover\\\\:text-gray-900:hover {\\n color: var(--color-gray-900);\\n }\\n }\\n .focus\\\\:border-gray-300:focus {\\n border-color: var(--color-gray-300);\\n }\\n .focus\\\\:bg-gray-50:focus {\\n background-color: var(--color-gray-50);\\n }\\n .focus\\\\:ring-2:focus {\\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0\\n calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\\n box-shadow:\\n var(--tw-inset-shadow), var(--tw-inset-ring-shadow),\\n var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\\n }\\n .focus\\\\:ring-gray-200:focus {\\n --tw-ring-color: var(--color-gray-200);\\n }\\n .focus\\\\:outline-none:focus {\\n --tw-outline-style: none;\\n outline-style: none;\\n }\\n .focus-visible\\\\:outline:focus-visible {\\n outline-style: var(--tw-outline-style);\\n outline-width: 1px;\\n }\\n .focus-visible\\\\:outline-2:focus-visible {\\n outline-style: var(--tw-outline-style);\\n outline-width: 2px;\\n }\\n .focus-visible\\\\:outline-offset-2:focus-visible {\\n outline-offset: 2px;\\n }\\n .focus-visible\\\\:outline-gray-300:focus-visible {\\n outline-color: var(--color-gray-300);\\n }\\n .focus-visible\\\\:outline-gray-400:focus-visible {\\n outline-color: var(--color-gray-400);\\n }\\n .focus-visible\\\\:outline-rose-500:focus-visible {\\n outline-color: var(--color-rose-500);\\n }\\n .disabled\\\\:cursor-not-allowed:disabled {\\n cursor: not-allowed;\\n }\\n .disabled\\\\:opacity-50:disabled {\\n opacity: 0.5;\\n }\\n @media (min-width: 48rem) {\\n .md\\\\:grid-cols-4 {\\n grid-template-columns: repeat(4, minmax(0, 1fr));\\n }\\n }\\n .\\\\[\\\\&\\\\>svg\\\\]\\\\:\\\\!h-8 > svg {\\n height: calc(var(--spacing) * 8) !important;\\n }\\n .\\\\[\\\\&\\\\>svg\\\\]\\\\:\\\\!w-8 > svg {\\n width: calc(var(--spacing) * 8) !important;\\n }\\n .sr-only {\\n clip: rect(0, 0, 0, 0);\\n white-space: nowrap;\\n border-width: 0;\\n width: 1px;\\n height: 1px;\\n margin: -1px;\\n padding: 0;\\n position: absolute;\\n overflow: hidden;\\n }\\n}\\n@property --tw-translate-x {\\n syntax: \\\"*\\\";\\n inherits: false;\\n initial-value: 0;\\n}\\n@property --tw-translate-y {\\n syntax: \\\"*\\\";\\n inherits: false;\\n initial-value: 0;\\n}\\n@property --tw-translate-z {\\n syntax: \\\"*\\\";\\n inherits: false;\\n initial-value: 0;\\n}\\n@property --tw-rotate-x {\\n syntax: \\\"*\\\";\\n inherits: false;\\n}\\n@property --tw-rotate-y {\\n syntax: \\\"*\\\";\\n inherits: false;\\n}\\n@property --tw-rotate-z {\\n syntax: \\\"*\\\";\\n inherits: false;\\n}\\n@property --tw-skew-x {\\n syntax: \\\"*\\\";\\n inherits: false;\\n}\\n@property --tw-skew-y {\\n syntax: \\\"*\\\";\\n inherits: false;\\n}\\n@property --tw-space-y-reverse {\\n syntax: \\\"*\\\";\\n inherits: false;\\n initial-value: 0;\\n}\\n@property --tw-divide-y-reverse {\\n syntax: \\\"*\\\";\\n inherits: false;\\n initial-value: 0;\\n}\\n@property --tw-border-style {\\n syntax: \\\"*\\\";\\n inherits: false;\\n initial-value: solid;\\n}\\n@property --tw-leading {\\n syntax: \\\"*\\\";\\n inherits: false;\\n}\\n@property --tw-font-weight {\\n syntax: \\\"*\\\";\\n inherits: false;\\n}\\n@property --tw-shadow {\\n syntax: \\\"*\\\";\\n inherits: false;\\n initial-value: 0 0 #0000;\\n}\\n@property --tw-shadow-color {\\n syntax: \\\"*\\\";\\n inherits: false;\\n}\\n@property --tw-shadow-alpha {\\n syntax: \\\"<percentage>\\\";\\n inherits: false;\\n initial-value: 100%;\\n}\\n@property --tw-inset-shadow {\\n syntax: \\\"*\\\";\\n inherits: false;\\n initial-value: 0 0 #0000;\\n}\\n@property --tw-inset-shadow-color {\\n syntax: \\\"*\\\";\\n inherits: false;\\n}\\n@property --tw-inset-shadow-alpha {\\n syntax: \\\"<percentage>\\\";\\n inherits: false;\\n initial-value: 100%;\\n}\\n@property --tw-ring-color {\\n syntax: \\\"*\\\";\\n inherits: false;\\n}\\n@property --tw-ring-shadow {\\n syntax: \\\"*\\\";\\n inherits: false;\\n initial-value: 0 0 #0000;\\n}\\n@property --tw-inset-ring-color {\\n syntax: \\\"*\\\";\\n inherits: false;\\n}\\n@property --tw-inset-ring-shadow {\\n syntax: \\\"*\\\";\\n inherits: false;\\n initial-value: 0 0 #0000;\\n}\\n@property --tw-ring-inset {\\n syntax: \\\"*\\\";\\n inherits: false;\\n}\\n@property --tw-ring-offset-width {\\n syntax: \\\"<length>\\\";\\n inherits: false;\\n initial-value: 0;\\n}\\n@property --tw-ring-offset-color {\\n syntax: \\\"*\\\";\\n inherits: false;\\n initial-value: #fff;\\n}\\n@property --tw-ring-offset-shadow {\\n syntax: \\\"*\\\";\\n inherits: false;\\n initial-value: 0 0 #0000;\\n}\\n@property --tw-backdrop-blur {\\n syntax: \\\"*\\\";\\n inherits: false;\\n}\\n@property --tw-backdrop-brightness {\\n syntax: \\\"*\\\";\\n inherits: false;\\n}\\n@property --tw-backdrop-contrast {\\n syntax: \\\"*\\\";\\n inherits: false;\\n}\\n@property --tw-backdrop-grayscale {\\n syntax: \\\"*\\\";\\n inherits: false;\\n}\\n@property --tw-backdrop-hue-rotate {\\n syntax: \\\"*\\\";\\n inherits: false;\\n}\\n@property --tw-backdrop-invert {\\n syntax: \\\"*\\\";\\n inherits: false;\\n}\\n@property --tw-backdrop-opacity {\\n syntax: \\\"*\\\";\\n inherits: false;\\n}\\n@property --tw-backdrop-saturate {\\n syntax: \\\"*\\\";\\n inherits: false;\\n}\\n@property --tw-backdrop-sepia {\\n syntax: \\\"*\\\";\\n inherits: false;\\n}\\n@property --tw-scale-x {\\n syntax: \\\"*\\\";\\n inherits: false;\\n initial-value: 1;\\n}\\n@property --tw-scale-y {\\n syntax: \\\"*\\\";\\n inherits: false;\\n initial-value: 1;\\n}\\n@property --tw-scale-z {\\n syntax: \\\"*\\\";\\n inherits: false;\\n initial-value: 1;\\n}\\n@property --tw-outline-style {\\n syntax: \\\"*\\\";\\n inherits: false;\\n initial-value: solid;\\n}\\n@keyframes pulse {\\n 50% {\\n opacity: 0.5;\\n }\\n}\\n\""],"mappings":";;wBAAA"}
|