div-deck 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Browser-based editor for HTML slide decks. Edit slides visually with click-to-select, inline text editing, drag-to-reorder, and full-screen presentation mode.
|
|
4
4
|
|
|
5
|
-
Built for editing slide decks generated by
|
|
5
|
+
Built for editing slide decks generated by the [visual-explainer](https://github.com/nicobailon/visual-explainer) skill. Expects decks using the `<section class="slide slide--{type}">` structure that skill produces.
|
|
6
6
|
|
|
7
7
|
## Quick Start
|
|
8
8
|
|
|
@@ -39,7 +39,7 @@ npx div-deck ./path/to/slides
|
|
|
39
39
|
|
|
40
40
|
## Usage with Claude Code
|
|
41
41
|
|
|
42
|
-
After running `div-deck init`, you get a `/presentations` command in Claude Code. This starts the editor and opens your browser — handy when you're generating slide decks with
|
|
42
|
+
After running `div-deck init`, you get a `/presentations` command in Claude Code. This starts the editor and opens your browser — handy when you're generating slide decks with [visual-explainer](https://github.com/nicobailon/visual-explainer) and want to preview or tweak them.
|
|
43
43
|
|
|
44
44
|
## Options
|
|
45
45
|
|
|
@@ -21,15 +21,31 @@ Error generating stack: `+e.message+`
|
|
|
21
21
|
var selectedAt = 0;
|
|
22
22
|
var EDIT_DELAY = 400;
|
|
23
23
|
|
|
24
|
-
var TEXT_SELECTOR =
|
|
24
|
+
var TEXT_SELECTOR = [
|
|
25
|
+
'h1','h2','h3','h4','h5','h6',
|
|
26
|
+
'p','li','span','a',
|
|
27
|
+
'blockquote','cite','figcaption','caption','label',
|
|
28
|
+
'dt','dd',
|
|
29
|
+
'td','th',
|
|
30
|
+
'pre','code',
|
|
31
|
+
'div.ve-card',
|
|
32
|
+
'div.slide__kpi-val','div.slide__kpi-label','div.slide__kpi-trend',
|
|
33
|
+
'div.slide__code-filename','div.slide__body','div.slide__aside'
|
|
34
|
+
].join(',');
|
|
25
35
|
|
|
26
36
|
var REORDERABLE_SELECTOR = [
|
|
27
|
-
|
|
28
|
-
'
|
|
29
|
-
'
|
|
30
|
-
'
|
|
31
|
-
'
|
|
32
|
-
|
|
37
|
+
// Semantic text elements — reorderable anywhere they have siblings
|
|
38
|
+
'h1','h2','h3','h4','h5','h6',
|
|
39
|
+
'p','ul','ol','li',
|
|
40
|
+
'blockquote','cite','pre',
|
|
41
|
+
'dl','dt','dd',
|
|
42
|
+
// Direct slide children — catches wrapper divs for walk-up
|
|
43
|
+
'section.slide > *',
|
|
44
|
+
// Atomic units — dragged as a whole
|
|
45
|
+
'div.ve-card',
|
|
46
|
+
'div.slide__kpi',
|
|
47
|
+
'div.slide__panel',
|
|
48
|
+
'tbody > tr'
|
|
33
49
|
].join(',');
|
|
34
50
|
|
|
35
51
|
// ===== Create UI elements =====
|
|
@@ -157,18 +173,54 @@ Error generating stack: `+e.message+`
|
|
|
157
173
|
|
|
158
174
|
function isTextElement(el) {
|
|
159
175
|
if (!el || el.closest('svg') || el.closest('script')) return false;
|
|
176
|
+
// Opaque blocks: selectable/movable but not text-editable
|
|
177
|
+
if (el.closest('.mermaid-wrap') || el.closest('.slide__decor')) return false;
|
|
160
178
|
return el.closest(TEXT_SELECTOR) !== null;
|
|
161
179
|
}
|
|
162
180
|
|
|
181
|
+
// Atomic containers — always dragged as a unit, children don't get
|
|
182
|
+
// independent handles. Matched by class name pattern: any element
|
|
183
|
+
// with a class ending in "card" (ve-card, turtle-card, etc.) or
|
|
184
|
+
// specific component classes. This is generic enough to work across
|
|
185
|
+
// any presentation without listing every card class name.
|
|
186
|
+
function isAtomicContainer(el) {
|
|
187
|
+
var cur = el;
|
|
188
|
+
while (cur && cur.tagName !== 'SECTION') {
|
|
189
|
+
if (cur.classList) {
|
|
190
|
+
for (var i = 0; i < cur.classList.length; i++) {
|
|
191
|
+
var cls = cur.classList[i];
|
|
192
|
+
if (/card$/.test(cls) || cls === 'slide__kpi' || cls === 'slide__panel'
|
|
193
|
+
|| cls === 'status' || cls === 'tag') {
|
|
194
|
+
return cur;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
cur = cur.parentElement;
|
|
199
|
+
}
|
|
200
|
+
return null;
|
|
201
|
+
}
|
|
202
|
+
|
|
163
203
|
// ===== Handle: find target, position, show/hide =====
|
|
164
204
|
function findHandleTarget(el) {
|
|
165
205
|
if (!el || el.tagName === 'HTML' || el.tagName === 'BODY') return null;
|
|
166
206
|
if (el.classList && (el.classList.contains('deck') || el.classList.contains('slide'))) return null;
|
|
167
207
|
if (el.closest('.se-handle') || el.closest('.se-menu')) return null;
|
|
208
|
+
// If inside an atomic container (explicit class or grid child),
|
|
209
|
+
// the container is always the drag target
|
|
210
|
+
var atomic = isAtomicContainer(el);
|
|
211
|
+
if (atomic) {
|
|
212
|
+
if (atomic.previousElementSibling || atomic.nextElementSibling) return atomic;
|
|
213
|
+
return null;
|
|
214
|
+
}
|
|
215
|
+
// Walk up through matching ancestors — if the innermost match has no
|
|
216
|
+
// siblings (nothing to reorder with), try its parent instead
|
|
168
217
|
var target = el.closest(REORDERABLE_SELECTOR);
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
218
|
+
while (target) {
|
|
219
|
+
if (target.previousElementSibling || target.nextElementSibling) return target;
|
|
220
|
+
// No siblings — try the next ancestor
|
|
221
|
+
target = target.parentElement ? target.parentElement.closest(REORDERABLE_SELECTOR) : null;
|
|
222
|
+
}
|
|
223
|
+
return null;
|
|
172
224
|
}
|
|
173
225
|
|
|
174
226
|
function positionHandle(el) {
|
|
@@ -176,7 +228,15 @@ Error generating stack: `+e.message+`
|
|
|
176
228
|
handleTarget = el;
|
|
177
229
|
var rect = el.getBoundingClientRect();
|
|
178
230
|
handle.style.display = 'flex';
|
|
179
|
-
|
|
231
|
+
// Vertically: clamp to visible area, anchored to top of element for tall elements
|
|
232
|
+
var handleH = 28;
|
|
233
|
+
var centerY = rect.top + rect.height / 2 - handleH / 2;
|
|
234
|
+
var topY = rect.top + 4;
|
|
235
|
+
// For elements taller than 100px, anchor near the top instead of centering
|
|
236
|
+
var y = rect.height > 100 ? topY : centerY;
|
|
237
|
+
// Clamp to viewport
|
|
238
|
+
y = Math.max(4, Math.min(y, window.innerHeight - handleH - 4));
|
|
239
|
+
handle.style.top = y + 'px';
|
|
180
240
|
var idealLeft = rect.left - 30;
|
|
181
241
|
if (idealLeft < 4) idealLeft = rect.left + 4;
|
|
182
242
|
handle.style.left = idealLeft + 'px';
|
|
@@ -337,7 +397,7 @@ Error generating stack: `+e.message+`
|
|
|
337
397
|
dropIndicator.style.display = 'none';
|
|
338
398
|
var target = document.elementFromPoint(e.clientX, e.clientY);
|
|
339
399
|
if (!target) return;
|
|
340
|
-
var siblingTarget = target.closest(REORDERABLE_SELECTOR);
|
|
400
|
+
var siblingTarget = isAtomicContainer(target) || target.closest(REORDERABLE_SELECTOR);
|
|
341
401
|
if (!siblingTarget || siblingTarget === dragEl || siblingTarget.parentElement !== dragEl.parentElement) {
|
|
342
402
|
dropIndicator.style.display = 'none';
|
|
343
403
|
dropTarget = null;
|
|
@@ -401,29 +461,30 @@ Error generating stack: `+e.message+`
|
|
|
401
461
|
return;
|
|
402
462
|
}
|
|
403
463
|
|
|
464
|
+
// Check handle zone FIRST — if mouse is near the current handle, keep it
|
|
465
|
+
// regardless of what element is underneath (handles sit outside the element)
|
|
466
|
+
if (handleTarget) {
|
|
467
|
+
var hRect = handleTarget.getBoundingClientRect();
|
|
468
|
+
var inZone = e.clientX >= hRect.left - 36
|
|
469
|
+
&& e.clientX <= hRect.left + 8
|
|
470
|
+
&& e.clientY >= hRect.top - 4
|
|
471
|
+
&& e.clientY <= hRect.bottom + 4;
|
|
472
|
+
if (inZone) {
|
|
473
|
+
if (hideTimeout) { clearTimeout(hideTimeout); hideTimeout = null; }
|
|
474
|
+
return;
|
|
475
|
+
}
|
|
476
|
+
}
|
|
477
|
+
|
|
404
478
|
var target = findHandleTarget(e.target);
|
|
405
479
|
|
|
406
480
|
if (target && target !== handleTarget) {
|
|
407
|
-
// New target — show handle
|
|
481
|
+
// New target — show handle
|
|
408
482
|
if (hideTimeout) { clearTimeout(hideTimeout); hideTimeout = null; }
|
|
409
483
|
positionHandle(target);
|
|
410
484
|
} else if (target && target === handleTarget) {
|
|
411
485
|
// Same target — cancel hide
|
|
412
486
|
if (hideTimeout) { clearTimeout(hideTimeout); hideTimeout = null; }
|
|
413
487
|
} else if (!target) {
|
|
414
|
-
// No target — check if mouse is in the handle zone
|
|
415
|
-
if (handleTarget) {
|
|
416
|
-
var rect = handleTarget.getBoundingClientRect();
|
|
417
|
-
// Zone only covers the handle area (left of the element), not the full card
|
|
418
|
-
var inZone = e.clientX >= rect.left - 36
|
|
419
|
-
&& e.clientX <= rect.left + 8
|
|
420
|
-
&& e.clientY >= rect.top - 4
|
|
421
|
-
&& e.clientY <= rect.bottom + 4;
|
|
422
|
-
if (inZone) {
|
|
423
|
-
if (hideTimeout) { clearTimeout(hideTimeout); hideTimeout = null; }
|
|
424
|
-
return;
|
|
425
|
-
}
|
|
426
|
-
}
|
|
427
488
|
// Outside — debounced hide
|
|
428
489
|
if (!hideTimeout) {
|
|
429
490
|
hideTimeout = setTimeout(function() {
|
|
@@ -476,9 +537,10 @@ Error generating stack: `+e.message+`
|
|
|
476
537
|
return;
|
|
477
538
|
}
|
|
478
539
|
|
|
479
|
-
// Case 3: New element
|
|
540
|
+
// Case 3: New element — prefer text element, fall back to reorderable parent
|
|
480
541
|
e.preventDefault();
|
|
481
|
-
|
|
542
|
+
var selectTarget = textEl || clickedEl.closest(REORDERABLE_SELECTOR) || clickedEl;
|
|
543
|
+
selectElement(selectTarget);
|
|
482
544
|
}, true);
|
|
483
545
|
|
|
484
546
|
// Prevent double-click word selection
|
|
@@ -556,11 +618,16 @@ Error generating stack: `+e.message+`
|
|
|
556
618
|
.deck-progress, .deck-dots, .deck-counter, .deck-hints { display: none !important; }
|
|
557
619
|
body { overflow: hidden !important; }
|
|
558
620
|
|
|
559
|
-
/* Targeted hover highlights —
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
621
|
+
/* Targeted hover highlights — on editable/reorderable elements */
|
|
622
|
+
h1:hover, h2:hover, h3:hover, h4:hover, h5:hover, h6:hover,
|
|
623
|
+
p:hover, li:hover, a:hover,
|
|
624
|
+
blockquote:hover, cite:hover, figcaption:hover, caption:hover,
|
|
625
|
+
dt:hover, dd:hover, td:hover, th:hover,
|
|
626
|
+
pre:hover, code:hover,
|
|
627
|
+
div.ve-card:hover, div.slide__kpi:hover,
|
|
628
|
+
div.slide__panel:hover, tr:hover,
|
|
629
|
+
div.slide__kpi-val:hover, div.slide__kpi-label:hover,
|
|
630
|
+
div.slide__code-filename:hover, div.slide__body:hover {
|
|
564
631
|
outline: 1px dashed rgba(59, 130, 246, 0.25);
|
|
565
632
|
outline-offset: 1px;
|
|
566
633
|
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */
|
|
2
|
+
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-700:oklch(50.5% .213 27.518);--color-red-900:oklch(39.6% .141 25.723);--color-amber-500:oklch(76.9% .188 70.08);--color-yellow-300:oklch(90.5% .182 98.111);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-500:oklch(79.5% .184 86.047);--color-yellow-700:oklch(55.4% .135 66.442);--color-yellow-800:oklch(47.6% .114 61.907);--color-yellow-900:oklch(42.1% .095 57.708);--color-green-300:oklch(87.1% .15 154.449);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-700:oklch(52.7% .154 150.069);--color-green-900:oklch(39.3% .095 152.535);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-800:oklch(42.4% .199 265.638);--color-blue-900:oklch(37.9% .146 265.522);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-900:oklch(21% .034 264.665);--color-neutral-100:oklch(97% 0 0);--color-neutral-200:oklch(92.2% 0 0);--color-neutral-300:oklch(87% 0 0);--color-neutral-400:oklch(70.8% 0 0);--color-neutral-500:oklch(55.6% 0 0);--color-neutral-600:oklch(43.9% 0 0);--color-neutral-700:oklch(37.1% 0 0);--color-neutral-800:oklch(26.9% 0 0);--color-neutral-900:oklch(20.5% 0 0);--color-neutral-950:oklch(14.5% 0 0);--color-white:#fff;--spacing:.25rem;--default-transition-duration:.1s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--text-color-kumo-placeholder:var(--lightningcss-light,var(--color-neutral-400,oklch(70.8% 0 0)))var(--lightningcss-dark,var(--color-neutral-500,oklch(55.6% 0 0)));--color-kumo-neutral-25:oklch(99% 0 0);--color-kumo-neutral-50:oklch(97.5% 0 0);--color-kumo-neutral-75:oklch(96.7% 0 0);--color-kumo-neutral-150:oklch(93.5% 0 0);--color-kumo-neutral-850:oklch(22.4% 0 0);--color-kumo-neutral-925:oklch(18% 0 0);--color-kumo-neutral-975:oklch(8.5% 0 0)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:root,[data-theme=kumo]{--text-color-kumo-default:var(--color-neutral-900,oklch(21% .006 285.885));--text-color-kumo-inverse:var(--color-neutral-100,oklch(97% 0 0));--text-color-kumo-strong:var(--color-neutral-600,oklch(43.9% 0 0));--text-color-kumo-subtle:var(--color-neutral-500,oklch(55.6% 0 0));--text-color-kumo-inactive:var(--color-neutral-400,oklch(70.8% 0 0));--text-color-kumo-placeholder:var(--color-neutral-400,oklch(70.8% 0 0));--text-color-kumo-brand:#f6821f;--text-color-kumo-link:var(--color-blue-800,oklch(42.4% .199 265.638));--text-color-kumo-success:var(--color-green-500,oklch(72.3% .219 149.579));--text-color-kumo-danger:var(--color-red-500,oklch(63.7% .237 25.331));--text-color-kumo-warning:var(--color-yellow-800,oklch(47.6% .114 61.907));--color-kumo-surface:var(--color-kumo-neutral-25,oklch(99% 0 0));--color-kumo-recessed:var(--color-kumo-neutral-50,oklch(97.5% 0 0));--color-kumo-base:var(--color-white,#fff);--color-kumo-tint:var(--color-kumo-neutral-75,oklch(96.7% 0 0));--color-kumo-contrast:var(--color-kumo-neutral-975,oklch(8.5% 0 0));--color-kumo-elevated:var(--color-kumo-neutral-25,oklch(98.5% 0 0));--color-kumo-overlay:var(--color-kumo-neutral-50,oklch(97.5% 0 0));--color-kumo-control:var(--color-white,#fff);--color-kumo-interact:var(--color-neutral-300,oklch(87% 0 0));--color-kumo-fill:var(--color-neutral-200,oklch(92.2% 0 0));--color-kumo-fill-hover:var(--color-neutral-200,oklch(92.2% 0 0));--color-kumo-brand:oklch(57.72% .2324 260);--color-kumo-brand-hover:var(--color-blue-700,oklch(48.8% .243 264.376));--color-kumo-line:oklch(14.5% 0 0/.1);--color-kumo-ring:var(--color-kumo-neutral-150,oklch(93.5% 0 0));--color-kumo-tip-shadow:var(--color-gray-200,oklch(92.8% .006 264.531));--color-kumo-tip-stroke:transparent;--color-kumo-info:var(--color-blue-500,oklch(62.3% .214 259.815));--color-kumo-info-tint:var(--color-blue-300,oklch(80.9% .105 251.813));--color-kumo-warning:var(--color-yellow-500,oklch(79.5% .184 86.047));--color-kumo-warning-tint:var(--color-yellow-300,oklch(90.5% .182 98.111));--color-kumo-danger:var(--color-red-500,oklch(63.7% .237 25.331));--color-kumo-danger-tint:var(--color-red-300,oklch(80.8% .114 19.571));--color-kumo-success:var(--color-green-500,oklch(72.3% .219 149.579));--color-kumo-success-tint:var(--color-green-300,oklch(87.1% .15 154.449))}:root[data-mode=dark],[data-mode=dark]:not([data-theme]),[data-mode=dark] [data-theme=kumo],[data-theme=kumo][data-mode=dark],[data-theme=kumo] [data-mode=dark]{--text-color-kumo-default:var(--color-neutral-100,oklch(97% 0 0));--text-color-kumo-inverse:var(--color-neutral-900,oklch(20.5% 0 0));--text-color-kumo-strong:var(--color-neutral-400,oklch(70.8% 0 0));--text-color-kumo-subtle:var(--color-kumo-neutral-50,oklch(97.5% 0 0));--text-color-kumo-inactive:var(--color-neutral-600,oklch(70.8% 0 0));--text-color-kumo-placeholder:var(--color-neutral-500,oklch(55.6% 0 0));--text-color-kumo-brand:#f6821f;--text-color-kumo-link:var(--color-blue-400,oklch(70.7% .165 254.624));--text-color-kumo-success:var(--color-green-400,oklch(79.2% .209 151.711));--text-color-kumo-danger:var(--color-red-400,oklch(70.4% .191 22.216));--text-color-kumo-warning:var(--color-yellow-400,oklch(85.2% .199 91.936));--color-kumo-surface:var(--color-kumo-neutral-975,oklch(8.5% 0 0));--color-kumo-recessed:var(--color-kumo-neutral-925,oklch(18% 0 0));--color-kumo-base:var(--color-kumo-neutral-850,oklch(22.4% 0 0));--color-kumo-tint:var(--color-kumo-neutral-800,oklch(26.9% 0 0));--color-kumo-contrast:var(--color-kumo-neutral-25,oklch(99% 0 0));--color-kumo-elevated:var(--color-neutral-950,oklch(14.5% 0 0));--color-kumo-overlay:var(--color-neutral-800,oklch(26.9% 0 0));--color-kumo-control:var(--color-neutral-900,oklch(21% .006 285.885));--color-kumo-interact:var(--color-neutral-700,oklch(37.1% 0 0));--color-kumo-fill:var(--color-neutral-800,oklch(26.9% 0 0));--color-kumo-fill-hover:var(--color-neutral-700,oklch(37.1% 0 0));--color-kumo-brand:oklch(57.72% .2324 260);--color-kumo-brand-hover:var(--color-blue-700,oklch(48.8% .243 264.376));--color-kumo-line:var(--color-neutral-800,oklch(26.9% 0 0));--color-kumo-ring:var(--color-neutral-700,oklch(37.1% 0 0));--color-kumo-tip-shadow:transparent;--color-kumo-tip-stroke:var(--color-neutral-800,oklch(26.9% 0 0));--color-kumo-info:var(--color-blue-400,oklch(70.7% .165 254.624));--color-kumo-info-tint:var(--color-blue-900,oklch(37.9% .146 265.522));--color-kumo-warning:var(--color-yellow-700,oklch(55.4% .135 66.442));--color-kumo-warning-tint:var(--color-yellow-900,oklch(42.1% .095 57.708));--color-kumo-danger:var(--color-red-700,oklch(50.5% .213 27.518));--color-kumo-danger-tint:var(--color-red-900,oklch(39.6% .141 25.723));--color-kumo-success:var(--color-green-700,oklch(52.7% .154 150.069));--color-kumo-success-tint:var(--color-green-900,oklch(39.3% .095 152.535))}[data-theme=fedramp],[data-mode=dark] [data-theme=fedramp],[data-theme=fedramp][data-mode=dark],[data-theme=fedramp] [data-mode=dark]{--color-kumo-surface:#5b697c;--color-kumo-base:#5b697c;--color-kumo-ring:#c8d4e5}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-mode=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}@layer components;@layer utilities{.visible{visibility:visible}.fixed{position:fixed}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-grid{display:inline-grid}.table{display:table}.flex-shrink{flex-shrink:1}.border-collapse{border-collapse:collapse}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.flex-wrap{flex-wrap:wrap}.border{border-style:var(--tw-border-style);border-width:1px}.text-wrap{text-wrap:wrap}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.no-input-spinner{appearance:textfield}.no-input-spinner ::-webkit-outer-spin-button{appearance:none}.no-input-spinner ::-webkit-inner-spin-button{appearance:none}.link-current{text-decoration-color:currentColor}@supports (color:color-mix(in lab, red, red)){.link-current{-webkit-text-decoration-color:color-mix(in oklch, currentColor 35%, transparent);-webkit-text-decoration-color:color-mix(in oklch, currentColor 35%, transparent);-webkit-text-decoration-color:color-mix(in oklch, currentColor 35%, transparent);text-decoration-color:color-mix(in oklch, currentColor 35%, transparent)}}[data-mode=dark] .link-current{text-decoration-color:currentColor}@supports (color:color-mix(in lab, red, red)){[data-mode=dark] .link-current{-webkit-text-decoration-color:color-mix(in oklch, currentColor 65%, transparent);-webkit-text-decoration-color:color-mix(in oklch, currentColor 65%, transparent);-webkit-text-decoration-color:color-mix(in oklch, currentColor 65%, transparent);text-decoration-color:color-mix(in oklch, currentColor 65%, transparent)}}.link-current:hover{text-decoration-color:currentColor}.link-external-icon{stroke-width:1.75px}[data-mode=dark] .link-external-icon{stroke-width:2px}}@keyframes right{to{transform:translate(100%)}}.float{animation:5s linear infinite alternate float}@keyframes float{to{transform:translate(5px,15px)}}@keyframes refresh{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes bounce-in{0%{opacity:0;transform:scale(.6)}50%{opacity:1;transform:scale(1.2)}to{transform:scale(1)}}.animate-bounce-in{animation:.4s ease-out bounce-in}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes kumo-chart-wave{0%{transform:translate(0)}to{transform:translate(-400px)}}@keyframes toast-bump{0%{transform:scale(1)}20%{transform:scale(1.02)}to{transform:scale(1)}}.animate-toast-bump{transform-origin:50%;animation:.4s cubic-bezier(.34,1.56,.64,1) toast-bump}.skeleton-line{height:var(--skeleton-height,.5rem);width:var(--skeleton-width);background-color:#f3f4f6;border-radius:2px;position:relative;overflow:hidden}.skeleton-line:after{animation:shimmer var(--shimmer-duration,1.5s) var(--shimmer-delay,0s) infinite ease-in-out;content:"";background:linear-gradient(90deg,#0000 0%,#00000014 50%,#0000 100%);position:absolute;inset:0}[data-mode=dark] .skeleton-line{background-color:#ffffff0f}[data-mode=dark] .skeleton-line:after{background:linear-gradient(90deg,#fff0 0%,#ffffff0d 50%,#fff0 100%)}[data-mode=dark] .kumo-tooltip-popup,[data-mode=dark] .kumo-popover-popup{outline-offset:-1px}.kumo-input-placeholder::placeholder{color:var(--text-color-kumo-placeholder)}@keyframes skeleton{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton{background:linear-gradient(90deg,#0000 0%,#0000000d 50%,#0000 100%) 0 0/200% 100%;animation:1.5s ease-in-out infinite skeleton}[data-mode=dark] .skeleton{background:linear-gradient(90deg,#0000 0%,#ffffff0d 50%,#0000 100%)}.animate-refresh{animation:1s linear infinite refresh}.rdp-root{font-variant-numeric:tabular-nums;--rdp-cell-padding:2px;--rdp-day-height:calc(2rem + var(--rdp-cell-padding) * 2);--rdp-day-width:calc(2rem + var(--rdp-cell-padding) * 2);--rdp-day_button-border-radius:.375rem;--rdp-day_button-border:none;--rdp-day_button-height:2rem;--rdp-day_button-width:2rem;--rdp-selected-border:none;--rdp-disabled-opacity:.4;--rdp-outside-opacity:.4;--rdp-dropdown-gap:.5rem;--rdp-months-gap:1rem;--rdp-nav_button-disabled-opacity:.5;--rdp-nav_button-height:2rem;--rdp-nav_button-width:2rem;--rdp-nav-height:2.5rem;--rdp-week_number-border-radius:.375rem;--rdp-week_number-border:none;--rdp-week_number-height:var(--rdp-day-height);--rdp-week_number-opacity:.75;--rdp-week_number-width:var(--rdp-day-width);--rdp-weekday-opacity:1;--rdp-weekday-padding:.5rem 0;--rdp-gradient-direction:90deg;--rdp-animation_duration:.2s;--rdp-animation_timing:ease-out;--rdp-accent-color:oklch(20.5% 0 0);--rdp-accent-background-color:oklch(92.2% 0 0);--rdp-range_middle-background-color:oklch(92.2% 0 0);--rdp-range_middle-color:oklch(21% .006 285.885);--rdp-range_start-color:oklch(97% 0 0);--rdp-range_start-date-background-color:oklch(20.5% 0 0);--rdp-range_end-color:oklch(97% 0 0);--rdp-range_end-date-background-color:oklch(20.5% 0 0);--rdp-today-color:oklch(54.6% .215 262.881);--rdp-day-color:oklch(21% .006 285.885);--rdp-day-color-subtle:oklch(55.6% 0 0);--rdp-nav-bg:transparent;--rdp-nav-border:oklch(14.5% 0 0/.1);--rdp-hover-bg:oklch(90% 0 0);--rdp-fill-hover-bg:oklch(87% 0 0);--rdp-focus-ring:oklch(75% 0 0);box-sizing:border-box;position:relative}[data-mode=dark] .rdp-root{--rdp-accent-color:oklch(97% 0 0);--rdp-accent-background-color:oklch(35% 0 0);--rdp-range_middle-background-color:oklch(28% 0 0);--rdp-range_middle-color:oklch(97% 0 0);--rdp-range_start-color:oklch(20.5% 0 0);--rdp-range_start-date-background-color:oklch(97% 0 0);--rdp-range_end-color:oklch(20.5% 0 0);--rdp-range_end-date-background-color:oklch(97% 0 0);--rdp-today-color:oklch(62.3% .214 259.815);--rdp-day-color:oklch(97% 0 0);--rdp-day-color-subtle:oklch(70% 0 0);--rdp-nav-bg:transparent;--rdp-nav-border:oklch(26.9% 0 0);--rdp-hover-bg:oklch(20% 0 0);--rdp-fill-hover-bg:oklch(25% 0 0);--rdp-focus-ring:oklch(45% 0 0)}.rdp-root[dir=rtl]{--rdp-gradient-direction:-90deg}.rdp-root *{box-sizing:border-box}.rdp-root thead{background:0 0}.rdp-day{width:var(--rdp-day-width);height:var(--rdp-day-height);text-align:center;padding:var(--rdp-cell-padding)}.rdp-day_button{cursor:pointer;font:inherit;color:var(--rdp-day-color);width:var(--rdp-day_button-width);height:var(--rdp-day_button-height);border:var(--rdp-day_button-border);border-radius:var(--rdp-day_button-border-radius);background:0 0;outline:none;justify-content:center;align-items:center;margin:0;padding:0;font-size:.8125rem;transition:background-color .15s,color .15s;display:flex}.rdp-day_button:focus-visible{box-shadow:inset 0 0 0 2px var(--rdp-focus-ring)}.rdp-day_button:hover{background-color:var(--rdp-hover-bg)}.rdp-day_button:disabled{cursor:not-allowed}.rdp-caption_label{z-index:1;white-space:nowrap;color:var(--rdp-day-color);border:0;align-items:center;font-weight:600;display:inline-flex;position:relative}.rdp-button_next,.rdp-button_previous{cursor:pointer;font:inherit;color:var(--rdp-day-color);appearance:none;box-shadow:inset 0 0 0 1px var(--rdp-nav-border);border:none;border-radius:.375rem;outline:none;justify-content:center;align-items:center;margin:0;padding:0;transition:background-color .15s,box-shadow .15s;display:inline-flex;position:relative;background:0 0!important;width:1.5rem!important;height:1.5rem!important}.rdp-button_next:hover,.rdp-button_previous:hover{background:var(--rdp-hover-bg)!important}.rdp-button_next:focus-visible,.rdp-button_previous:focus-visible{box-shadow:inset 0 0 0 2px var(--rdp-focus-ring)}.rdp-button_next:disabled,.rdp-button_next[aria-disabled=true],.rdp-button_previous:disabled,.rdp-button_previous[aria-disabled=true]{cursor:not-allowed;opacity:var(--rdp-nav_button-disabled-opacity)}.rdp-chevron{fill:var(--rdp-day-color);display:inline-block}.rdp-root[dir=rtl] .rdp-nav .rdp-chevron{transform-origin:50%;transform:rotate(180deg)}.rdp-dropdowns{align-items:center;gap:var(--rdp-dropdown-gap);display:inline-flex;position:relative}.rdp-dropdown{z-index:2;opacity:0;appearance:none;width:100%;cursor:inherit;line-height:inherit;border:none;margin:0;padding:0;position:absolute;inset-block:0;inset-inline-start:0}.rdp-dropdown_root{align-items:center;display:inline-flex;position:relative}.rdp-dropdown_root[data-disabled=true] .rdp-chevron{opacity:var(--rdp-disabled-opacity)}.rdp-month_caption{height:var(--rdp-nav-height);align-content:center;font-weight:600;display:flex}.rdp-root[data-nav-layout=around] .rdp-month,.rdp-root[data-nav-layout=after] .rdp-month{position:relative}.rdp-root[data-nav-layout=around] .rdp-month_caption{justify-content:center;margin-inline-start:var(--rdp-nav_button-width);margin-inline-end:var(--rdp-nav_button-width);position:relative}.rdp-root[data-nav-layout=around] .rdp-button_previous{height:var(--rdp-nav-height);inset-inline-start:0;display:inline-flex;position:absolute;top:0}.rdp-root[data-nav-layout=around] .rdp-button_next{height:var(--rdp-nav-height);inset-inline-end:0;justify-content:center;display:inline-flex;position:absolute;top:0}.rdp-months{gap:var(--rdp-months-gap);flex-wrap:wrap;max-width:fit-content;display:flex;position:relative}.rdp-month_grid{border-collapse:collapse;border-spacing:0}.rdp-nav{height:var(--rdp-nav-height);align-items:center;gap:.25rem;display:flex;position:absolute;inset-block-start:0;inset-inline-end:0}.rdp-weekday{opacity:var(--rdp-weekday-opacity);padding:var(--rdp-weekday-padding);text-align:center;color:var(--rdp-day-color-subtle);font-size:smaller;font-weight:500}.rdp-week_number{opacity:var(--rdp-week_number-opacity);height:var(--rdp-week_number-height);width:var(--rdp-week_number-width);border:var(--rdp-week_number-border);border-radius:var(--rdp-week_number-border-radius);text-align:center;color:var(--rdp-day-color-subtle);font-size:small;font-weight:400}.rdp-today:not(.rdp-outside):not(.rdp-selected) .rdp-day_button{color:var(--rdp-today-color);font-weight:600}.rdp-selected .rdp-day_button{background-color:var(--rdp-accent-color);color:var(--rdp-range_start-color);border-radius:var(--rdp-day_button-border-radius)}.rdp-selected .rdp-day_button:hover{background-color:var(--rdp-accent-color)}.rdp-outside .rdp-day_button{opacity:var(--rdp-outside-opacity);color:var(--rdp-day-color-subtle)}.rdp-disabled:not(.rdp-selected) .rdp-day_button{opacity:var(--rdp-disabled-opacity);cursor:not-allowed}.rdp-disabled .rdp-day_button:hover{background-color:#0000}.rdp-hidden{visibility:hidden}.rdp-day.rdp-range_start:not(.rdp-range_end){background-color:var(--rdp-range_start-date-background-color);border-radius:var(--rdp-day_button-border-radius) 0 0 var(--rdp-day_button-border-radius)}.rdp-day.rdp-range_start .rdp-day_button{color:var(--rdp-range_start-color);background-color:#0000}.rdp-day.rdp-range_start .rdp-day_button:hover{background-color:#0000}.rdp-day.rdp-range_middle{background-color:var(--rdp-range_middle-background-color)}.rdp-day.rdp-range_middle .rdp-day_button{color:var(--rdp-range_middle-color);background-color:#0000}.rdp-day.rdp-range_middle .rdp-day_button:hover{background-color:var(--rdp-fill-hover-bg);border-radius:var(--rdp-day_button-border-radius)}.rdp-day.rdp-range_end:not(.rdp-range_start){background-color:var(--rdp-range_end-date-background-color);border-radius:0 var(--rdp-day_button-border-radius) var(--rdp-day_button-border-radius) 0}.rdp-day.rdp-range_end .rdp-day_button{color:var(--rdp-range_end-color);background-color:#0000}.rdp-day.rdp-range_end .rdp-day_button:hover{background-color:#0000}.rdp-day.rdp-range_start.rdp-range_end{background-color:var(--rdp-range_start-date-background-color);border-radius:var(--rdp-day_button-border-radius)}.rdp-day.rdp-range_start.rdp-range_end .rdp-day_button{color:var(--rdp-range_start-color);background-color:#0000}.rdp-focusable{cursor:pointer}.rdp-footer{width:0;min-width:100%;padding-top:.5rem}@keyframes rdp-slide_in_left{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes rdp-slide_in_right{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes rdp-slide_out_left{0%{transform:translate(0)}to{transform:translate(-100%)}}@keyframes rdp-slide_out_right{0%{transform:translate(0)}to{transform:translate(100%)}}.rdp-weeks_before_enter{animation:rdp-slide_in_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-weeks_before_exit{animation:rdp-slide_out_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-weeks_after_enter{animation:rdp-slide_in_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-weeks_after_exit{animation:rdp-slide_out_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_after_enter{animation:rdp-slide_in_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_before_exit{animation:rdp-slide_out_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_before_enter{animation:rdp-slide_in_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_after_exit{animation:rdp-slide_out_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}@keyframes rdp-fade_in{0%{opacity:0}to{opacity:1}}@keyframes rdp-fade_out{0%{opacity:1}to{opacity:0}}.rdp-caption_after_enter{animation:rdp-fade_in var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-caption_after_exit{animation:rdp-fade_out var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-caption_before_enter{animation:rdp-fade_in var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-caption_before_exit{animation:rdp-fade_out var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.kumo-shiki pre{background-color:#0000!important}[data-mode=dark] .kumo-shiki span:not(.line-highlighted){color:var(--shiki-dark)!important;background-color:#0000!important}[data-mode=dark] .kumo-shiki .line-highlighted{color:var(--shiki-dark)!important}.kumo-shiki code{width:fit-content;min-width:100%;padding-right:1rem;display:block}.kumo-shiki{--kumo-code-highlight-bg:#0000000d}[data-mode=dark] .kumo-shiki{--kumo-code-highlight-bg:#ffffff14}.kumo-shiki .line.line-highlighted{background-color:var(--kumo-code-highlight-bg);width:calc(100% + 2rem);margin:0 -1rem;padding:0 1rem;display:inline-block}.kumo-line-numbers{padding-left:.75rem;line-height:1.625}:root{--editor-sidebar-width:320px;--editor-toolbar-height:48px;--editor-statusbar-height:32px}html,body,#root{height:100%;margin:0;overflow:hidden}.app-shell{grid-template-rows:var(--editor-toolbar-height) 1fr var(--editor-statusbar-height);grid-template-columns:var(--editor-sidebar-width) 1fr;background:var(--color-gray-50);height:100vh;display:grid}.app-toolbar{border-bottom:1px solid var(--color-gray-200);z-index:10;background:#fff;grid-column:1/-1;align-items:center;gap:8px;padding:0 16px;display:flex}.app-sidebar{border-right:1px solid var(--color-gray-200);background:#fff;flex-direction:column;grid-area:2/1;display:flex;overflow:hidden}.app-main{background:var(--color-gray-100);grid-area:2/2;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.app-statusbar{border-top:1px solid var(--color-gray-200);color:var(--color-gray-500);background:#fff;grid-column:1/-1;align-items:center;gap:12px;padding:0 16px;font-size:12px;display:flex}.sidebar-tabs{flex-direction:column;flex:1;display:flex;overflow:hidden}.sidebar-tab-content{flex:1;padding:8px;overflow-y:auto}.file-item{cursor:pointer;border:1px solid #0000;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;transition:background .15s;display:flex}.file-item:hover{background:var(--color-gray-50)}.file-item--active{background:var(--color-blue-50);border-color:var(--color-blue-200)}.file-item__name{color:var(--color-gray-900);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:500;overflow:hidden}.file-item__meta{color:var(--color-gray-400);font-size:11px}.file-item:hover .file-item__delete{opacity:1}.file-item__delete:hover{color:var(--color-red-500)!important}.slide-thumbnail{cursor:pointer;background:#fff;border:2px solid #0000;border-radius:6px;transition:border-color .15s,box-shadow .15s;position:relative;overflow:hidden}.slide-thumbnail:hover{border-color:var(--color-gray-300)}.slide-thumbnail--active{border-color:var(--color-blue-500);box-shadow:0 0 0 2px var(--color-blue-100)}.slide-thumbnail__iframe-container{aspect-ratio:16/9;pointer-events:none;width:100%;position:relative;overflow:hidden}.slide-thumbnail__iframe{transform-origin:0 0;width:1280px;height:720px;transform:scale(var(--thumb-scale,.22));border:none;position:absolute;top:0;left:0}.slide-thumbnail__label{color:var(--color-gray-500);background:var(--color-gray-50);border-top:1px solid var(--color-gray-100);justify-content:space-between;align-items:center;padding:4px 8px;font-size:11px;display:flex}.slide-thumbnail__drag-bar{color:var(--color-gray-500);background:var(--color-gray-50);border-bottom:1px solid var(--color-gray-100);cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;align-items:center;gap:6px;padding:6px 8px;font-size:11px;display:flex}.slide-thumbnail__drag-bar:active{cursor:grabbing;background:var(--color-gray-100)}.slide-thumbnail__drag-bar .slide-thumbnail__type{margin-left:auto}.slide-thumbnail__number{font-variant-numeric:tabular-nums;font-weight:600}.slide-thumbnail__type{text-transform:uppercase;letter-spacing:.5px;background:var(--color-gray-100);border-radius:4px;padding:1px 6px;font-size:10px}.editor-canvas{justify-content:center;align-items:center;width:100%;height:100%;padding:24px;display:flex}.editor-canvas__frame{aspect-ratio:16/9;background:#fff;border-radius:8px;width:100%;max-width:1280px;position:relative;overflow:hidden;box-shadow:0 4px 24px #0000001f,0 1px 4px #00000014}.editor-canvas__iframe{border:none;width:100%;height:100%}.empty-state{color:var(--color-gray-400);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:48px;display:flex}.empty-state__icon{opacity:.5;font-size:48px}.empty-state__title{color:var(--color-gray-600);font-size:18px;font-weight:600}.empty-state__desc{max-width:300px;font-size:14px}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}
|
package/dist/index.html
CHANGED
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
7
|
<title>div.deck</title>
|
|
8
|
-
<script type="module" crossorigin src="/assets/index-
|
|
9
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
8
|
+
<script type="module" crossorigin src="/assets/index-C0X9O7Jj.js"></script>
|
|
9
|
+
<link rel="stylesheet" crossorigin href="/assets/index-hxF-AAC2.css">
|
|
10
10
|
</head>
|
|
11
11
|
<body>
|
|
12
12
|
<div id="root"></div>
|
package/package.json
CHANGED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */
|
|
2
|
-
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-700:oklch(50.5% .213 27.518);--color-red-900:oklch(39.6% .141 25.723);--color-amber-500:oklch(76.9% .188 70.08);--color-yellow-300:oklch(90.5% .182 98.111);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-500:oklch(79.5% .184 86.047);--color-yellow-700:oklch(55.4% .135 66.442);--color-yellow-800:oklch(47.6% .114 61.907);--color-yellow-900:oklch(42.1% .095 57.708);--color-green-300:oklch(87.1% .15 154.449);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-700:oklch(52.7% .154 150.069);--color-green-900:oklch(39.3% .095 152.535);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-800:oklch(42.4% .199 265.638);--color-blue-900:oklch(37.9% .146 265.522);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-900:oklch(21% .034 264.665);--color-neutral-100:oklch(97% 0 0);--color-neutral-200:oklch(92.2% 0 0);--color-neutral-300:oklch(87% 0 0);--color-neutral-400:oklch(70.8% 0 0);--color-neutral-500:oklch(55.6% 0 0);--color-neutral-600:oklch(43.9% 0 0);--color-neutral-700:oklch(37.1% 0 0);--color-neutral-800:oklch(26.9% 0 0);--color-neutral-900:oklch(20.5% 0 0);--color-neutral-950:oklch(14.5% 0 0);--color-white:#fff;--spacing:.25rem;--default-transition-duration:.1s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--text-color-kumo-placeholder:var(--lightningcss-light,var(--color-neutral-400,oklch(70.8% 0 0)))var(--lightningcss-dark,var(--color-neutral-500,oklch(55.6% 0 0)));--color-kumo-neutral-25:oklch(99% 0 0);--color-kumo-neutral-50:oklch(97.5% 0 0);--color-kumo-neutral-75:oklch(96.7% 0 0);--color-kumo-neutral-150:oklch(93.5% 0 0);--color-kumo-neutral-850:oklch(22.4% 0 0);--color-kumo-neutral-925:oklch(18% 0 0);--color-kumo-neutral-975:oklch(8.5% 0 0)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:root,[data-theme=kumo]{--text-color-kumo-default:var(--color-neutral-900,oklch(21% .006 285.885));--text-color-kumo-inverse:var(--color-neutral-100,oklch(97% 0 0));--text-color-kumo-strong:var(--color-neutral-600,oklch(43.9% 0 0));--text-color-kumo-subtle:var(--color-neutral-500,oklch(55.6% 0 0));--text-color-kumo-inactive:var(--color-neutral-400,oklch(70.8% 0 0));--text-color-kumo-placeholder:var(--color-neutral-400,oklch(70.8% 0 0));--text-color-kumo-brand:#f6821f;--text-color-kumo-link:var(--color-blue-800,oklch(42.4% .199 265.638));--text-color-kumo-success:var(--color-green-500,oklch(72.3% .219 149.579));--text-color-kumo-danger:var(--color-red-500,oklch(63.7% .237 25.331));--text-color-kumo-warning:var(--color-yellow-800,oklch(47.6% .114 61.907));--color-kumo-surface:var(--color-kumo-neutral-25,oklch(99% 0 0));--color-kumo-recessed:var(--color-kumo-neutral-50,oklch(97.5% 0 0));--color-kumo-base:var(--color-white,#fff);--color-kumo-tint:var(--color-kumo-neutral-75,oklch(96.7% 0 0));--color-kumo-contrast:var(--color-kumo-neutral-975,oklch(8.5% 0 0));--color-kumo-elevated:var(--color-kumo-neutral-25,oklch(98.5% 0 0));--color-kumo-overlay:var(--color-kumo-neutral-50,oklch(97.5% 0 0));--color-kumo-control:var(--color-white,#fff);--color-kumo-interact:var(--color-neutral-300,oklch(87% 0 0));--color-kumo-fill:var(--color-neutral-200,oklch(92.2% 0 0));--color-kumo-fill-hover:var(--color-neutral-200,oklch(92.2% 0 0));--color-kumo-brand:oklch(57.72% .2324 260);--color-kumo-brand-hover:var(--color-blue-700,oklch(48.8% .243 264.376));--color-kumo-line:oklch(14.5% 0 0/.1);--color-kumo-ring:var(--color-kumo-neutral-150,oklch(93.5% 0 0));--color-kumo-tip-shadow:var(--color-gray-200,oklch(92.8% .006 264.531));--color-kumo-tip-stroke:transparent;--color-kumo-info:var(--color-blue-500,oklch(62.3% .214 259.815));--color-kumo-info-tint:var(--color-blue-300,oklch(80.9% .105 251.813));--color-kumo-warning:var(--color-yellow-500,oklch(79.5% .184 86.047));--color-kumo-warning-tint:var(--color-yellow-300,oklch(90.5% .182 98.111));--color-kumo-danger:var(--color-red-500,oklch(63.7% .237 25.331));--color-kumo-danger-tint:var(--color-red-300,oklch(80.8% .114 19.571));--color-kumo-success:var(--color-green-500,oklch(72.3% .219 149.579));--color-kumo-success-tint:var(--color-green-300,oklch(87.1% .15 154.449))}:root[data-mode=dark],[data-mode=dark]:not([data-theme]),[data-mode=dark] [data-theme=kumo],[data-theme=kumo][data-mode=dark],[data-theme=kumo] [data-mode=dark]{--text-color-kumo-default:var(--color-neutral-100,oklch(97% 0 0));--text-color-kumo-inverse:var(--color-neutral-900,oklch(20.5% 0 0));--text-color-kumo-strong:var(--color-neutral-400,oklch(70.8% 0 0));--text-color-kumo-subtle:var(--color-kumo-neutral-50,oklch(97.5% 0 0));--text-color-kumo-inactive:var(--color-neutral-600,oklch(70.8% 0 0));--text-color-kumo-placeholder:var(--color-neutral-500,oklch(55.6% 0 0));--text-color-kumo-brand:#f6821f;--text-color-kumo-link:var(--color-blue-400,oklch(70.7% .165 254.624));--text-color-kumo-success:var(--color-green-400,oklch(79.2% .209 151.711));--text-color-kumo-danger:var(--color-red-400,oklch(70.4% .191 22.216));--text-color-kumo-warning:var(--color-yellow-400,oklch(85.2% .199 91.936));--color-kumo-surface:var(--color-kumo-neutral-975,oklch(8.5% 0 0));--color-kumo-recessed:var(--color-kumo-neutral-925,oklch(18% 0 0));--color-kumo-base:var(--color-kumo-neutral-850,oklch(22.4% 0 0));--color-kumo-tint:var(--color-kumo-neutral-800,oklch(26.9% 0 0));--color-kumo-contrast:var(--color-kumo-neutral-25,oklch(99% 0 0));--color-kumo-elevated:var(--color-neutral-950,oklch(14.5% 0 0));--color-kumo-overlay:var(--color-neutral-800,oklch(26.9% 0 0));--color-kumo-control:var(--color-neutral-900,oklch(21% .006 285.885));--color-kumo-interact:var(--color-neutral-700,oklch(37.1% 0 0));--color-kumo-fill:var(--color-neutral-800,oklch(26.9% 0 0));--color-kumo-fill-hover:var(--color-neutral-700,oklch(37.1% 0 0));--color-kumo-brand:oklch(57.72% .2324 260);--color-kumo-brand-hover:var(--color-blue-700,oklch(48.8% .243 264.376));--color-kumo-line:var(--color-neutral-800,oklch(26.9% 0 0));--color-kumo-ring:var(--color-neutral-700,oklch(37.1% 0 0));--color-kumo-tip-shadow:transparent;--color-kumo-tip-stroke:var(--color-neutral-800,oklch(26.9% 0 0));--color-kumo-info:var(--color-blue-400,oklch(70.7% .165 254.624));--color-kumo-info-tint:var(--color-blue-900,oklch(37.9% .146 265.522));--color-kumo-warning:var(--color-yellow-700,oklch(55.4% .135 66.442));--color-kumo-warning-tint:var(--color-yellow-900,oklch(42.1% .095 57.708));--color-kumo-danger:var(--color-red-700,oklch(50.5% .213 27.518));--color-kumo-danger-tint:var(--color-red-900,oklch(39.6% .141 25.723));--color-kumo-success:var(--color-green-700,oklch(52.7% .154 150.069));--color-kumo-success-tint:var(--color-green-900,oklch(39.3% .095 152.535))}[data-theme=fedramp],[data-mode=dark] [data-theme=fedramp],[data-theme=fedramp][data-mode=dark],[data-theme=fedramp] [data-mode=dark]{--color-kumo-surface:#5b697c;--color-kumo-base:#5b697c;--color-kumo-ring:#c8d4e5}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-mode=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}@layer components;@layer utilities{.visible{visibility:visible}.fixed{position:fixed}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-grid{display:inline-grid}.table{display:table}.flex-shrink{flex-shrink:1}.border-collapse{border-collapse:collapse}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.border{border-style:var(--tw-border-style);border-width:1px}.text-wrap{text-wrap:wrap}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.no-input-spinner{appearance:textfield}.no-input-spinner ::-webkit-outer-spin-button{appearance:none}.no-input-spinner ::-webkit-inner-spin-button{appearance:none}.link-current{text-decoration-color:currentColor}@supports (color:color-mix(in lab, red, red)){.link-current{-webkit-text-decoration-color:color-mix(in oklch, currentColor 35%, transparent);-webkit-text-decoration-color:color-mix(in oklch, currentColor 35%, transparent);-webkit-text-decoration-color:color-mix(in oklch, currentColor 35%, transparent);text-decoration-color:color-mix(in oklch, currentColor 35%, transparent)}}[data-mode=dark] .link-current{text-decoration-color:currentColor}@supports (color:color-mix(in lab, red, red)){[data-mode=dark] .link-current{-webkit-text-decoration-color:color-mix(in oklch, currentColor 65%, transparent);-webkit-text-decoration-color:color-mix(in oklch, currentColor 65%, transparent);-webkit-text-decoration-color:color-mix(in oklch, currentColor 65%, transparent);text-decoration-color:color-mix(in oklch, currentColor 65%, transparent)}}.link-current:hover{text-decoration-color:currentColor}.link-external-icon{stroke-width:1.75px}[data-mode=dark] .link-external-icon{stroke-width:2px}}@keyframes right{to{transform:translate(100%)}}.float{animation:5s linear infinite alternate float}@keyframes float{to{transform:translate(5px,15px)}}@keyframes refresh{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes bounce-in{0%{opacity:0;transform:scale(.6)}50%{opacity:1;transform:scale(1.2)}to{transform:scale(1)}}.animate-bounce-in{animation:.4s ease-out bounce-in}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes kumo-chart-wave{0%{transform:translate(0)}to{transform:translate(-400px)}}@keyframes toast-bump{0%{transform:scale(1)}20%{transform:scale(1.02)}to{transform:scale(1)}}.animate-toast-bump{transform-origin:50%;animation:.4s cubic-bezier(.34,1.56,.64,1) toast-bump}.skeleton-line{height:var(--skeleton-height,.5rem);width:var(--skeleton-width);background-color:#f3f4f6;border-radius:2px;position:relative;overflow:hidden}.skeleton-line:after{animation:shimmer var(--shimmer-duration,1.5s) var(--shimmer-delay,0s) infinite ease-in-out;content:"";background:linear-gradient(90deg,#0000 0%,#00000014 50%,#0000 100%);position:absolute;inset:0}[data-mode=dark] .skeleton-line{background-color:#ffffff0f}[data-mode=dark] .skeleton-line:after{background:linear-gradient(90deg,#fff0 0%,#ffffff0d 50%,#fff0 100%)}[data-mode=dark] .kumo-tooltip-popup,[data-mode=dark] .kumo-popover-popup{outline-offset:-1px}.kumo-input-placeholder::placeholder{color:var(--text-color-kumo-placeholder)}@keyframes skeleton{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton{background:linear-gradient(90deg,#0000 0%,#0000000d 50%,#0000 100%) 0 0/200% 100%;animation:1.5s ease-in-out infinite skeleton}[data-mode=dark] .skeleton{background:linear-gradient(90deg,#0000 0%,#ffffff0d 50%,#0000 100%)}.animate-refresh{animation:1s linear infinite refresh}.rdp-root{font-variant-numeric:tabular-nums;--rdp-cell-padding:2px;--rdp-day-height:calc(2rem + var(--rdp-cell-padding) * 2);--rdp-day-width:calc(2rem + var(--rdp-cell-padding) * 2);--rdp-day_button-border-radius:.375rem;--rdp-day_button-border:none;--rdp-day_button-height:2rem;--rdp-day_button-width:2rem;--rdp-selected-border:none;--rdp-disabled-opacity:.4;--rdp-outside-opacity:.4;--rdp-dropdown-gap:.5rem;--rdp-months-gap:1rem;--rdp-nav_button-disabled-opacity:.5;--rdp-nav_button-height:2rem;--rdp-nav_button-width:2rem;--rdp-nav-height:2.5rem;--rdp-week_number-border-radius:.375rem;--rdp-week_number-border:none;--rdp-week_number-height:var(--rdp-day-height);--rdp-week_number-opacity:.75;--rdp-week_number-width:var(--rdp-day-width);--rdp-weekday-opacity:1;--rdp-weekday-padding:.5rem 0;--rdp-gradient-direction:90deg;--rdp-animation_duration:.2s;--rdp-animation_timing:ease-out;--rdp-accent-color:oklch(20.5% 0 0);--rdp-accent-background-color:oklch(92.2% 0 0);--rdp-range_middle-background-color:oklch(92.2% 0 0);--rdp-range_middle-color:oklch(21% .006 285.885);--rdp-range_start-color:oklch(97% 0 0);--rdp-range_start-date-background-color:oklch(20.5% 0 0);--rdp-range_end-color:oklch(97% 0 0);--rdp-range_end-date-background-color:oklch(20.5% 0 0);--rdp-today-color:oklch(54.6% .215 262.881);--rdp-day-color:oklch(21% .006 285.885);--rdp-day-color-subtle:oklch(55.6% 0 0);--rdp-nav-bg:transparent;--rdp-nav-border:oklch(14.5% 0 0/.1);--rdp-hover-bg:oklch(90% 0 0);--rdp-fill-hover-bg:oklch(87% 0 0);--rdp-focus-ring:oklch(75% 0 0);box-sizing:border-box;position:relative}[data-mode=dark] .rdp-root{--rdp-accent-color:oklch(97% 0 0);--rdp-accent-background-color:oklch(35% 0 0);--rdp-range_middle-background-color:oklch(28% 0 0);--rdp-range_middle-color:oklch(97% 0 0);--rdp-range_start-color:oklch(20.5% 0 0);--rdp-range_start-date-background-color:oklch(97% 0 0);--rdp-range_end-color:oklch(20.5% 0 0);--rdp-range_end-date-background-color:oklch(97% 0 0);--rdp-today-color:oklch(62.3% .214 259.815);--rdp-day-color:oklch(97% 0 0);--rdp-day-color-subtle:oklch(70% 0 0);--rdp-nav-bg:transparent;--rdp-nav-border:oklch(26.9% 0 0);--rdp-hover-bg:oklch(20% 0 0);--rdp-fill-hover-bg:oklch(25% 0 0);--rdp-focus-ring:oklch(45% 0 0)}.rdp-root[dir=rtl]{--rdp-gradient-direction:-90deg}.rdp-root *{box-sizing:border-box}.rdp-root thead{background:0 0}.rdp-day{width:var(--rdp-day-width);height:var(--rdp-day-height);text-align:center;padding:var(--rdp-cell-padding)}.rdp-day_button{cursor:pointer;font:inherit;color:var(--rdp-day-color);width:var(--rdp-day_button-width);height:var(--rdp-day_button-height);border:var(--rdp-day_button-border);border-radius:var(--rdp-day_button-border-radius);background:0 0;outline:none;justify-content:center;align-items:center;margin:0;padding:0;font-size:.8125rem;transition:background-color .15s,color .15s;display:flex}.rdp-day_button:focus-visible{box-shadow:inset 0 0 0 2px var(--rdp-focus-ring)}.rdp-day_button:hover{background-color:var(--rdp-hover-bg)}.rdp-day_button:disabled{cursor:not-allowed}.rdp-caption_label{z-index:1;white-space:nowrap;color:var(--rdp-day-color);border:0;align-items:center;font-weight:600;display:inline-flex;position:relative}.rdp-button_next,.rdp-button_previous{cursor:pointer;font:inherit;color:var(--rdp-day-color);appearance:none;box-shadow:inset 0 0 0 1px var(--rdp-nav-border);border:none;border-radius:.375rem;outline:none;justify-content:center;align-items:center;margin:0;padding:0;transition:background-color .15s,box-shadow .15s;display:inline-flex;position:relative;background:0 0!important;width:1.5rem!important;height:1.5rem!important}.rdp-button_next:hover,.rdp-button_previous:hover{background:var(--rdp-hover-bg)!important}.rdp-button_next:focus-visible,.rdp-button_previous:focus-visible{box-shadow:inset 0 0 0 2px var(--rdp-focus-ring)}.rdp-button_next:disabled,.rdp-button_next[aria-disabled=true],.rdp-button_previous:disabled,.rdp-button_previous[aria-disabled=true]{cursor:not-allowed;opacity:var(--rdp-nav_button-disabled-opacity)}.rdp-chevron{fill:var(--rdp-day-color);display:inline-block}.rdp-root[dir=rtl] .rdp-nav .rdp-chevron{transform-origin:50%;transform:rotate(180deg)}.rdp-dropdowns{align-items:center;gap:var(--rdp-dropdown-gap);display:inline-flex;position:relative}.rdp-dropdown{z-index:2;opacity:0;appearance:none;width:100%;cursor:inherit;line-height:inherit;border:none;margin:0;padding:0;position:absolute;inset-block:0;inset-inline-start:0}.rdp-dropdown_root{align-items:center;display:inline-flex;position:relative}.rdp-dropdown_root[data-disabled=true] .rdp-chevron{opacity:var(--rdp-disabled-opacity)}.rdp-month_caption{height:var(--rdp-nav-height);align-content:center;font-weight:600;display:flex}.rdp-root[data-nav-layout=around] .rdp-month,.rdp-root[data-nav-layout=after] .rdp-month{position:relative}.rdp-root[data-nav-layout=around] .rdp-month_caption{justify-content:center;margin-inline-start:var(--rdp-nav_button-width);margin-inline-end:var(--rdp-nav_button-width);position:relative}.rdp-root[data-nav-layout=around] .rdp-button_previous{height:var(--rdp-nav-height);inset-inline-start:0;display:inline-flex;position:absolute;top:0}.rdp-root[data-nav-layout=around] .rdp-button_next{height:var(--rdp-nav-height);inset-inline-end:0;justify-content:center;display:inline-flex;position:absolute;top:0}.rdp-months{gap:var(--rdp-months-gap);flex-wrap:wrap;max-width:fit-content;display:flex;position:relative}.rdp-month_grid{border-collapse:collapse;border-spacing:0}.rdp-nav{height:var(--rdp-nav-height);align-items:center;gap:.25rem;display:flex;position:absolute;inset-block-start:0;inset-inline-end:0}.rdp-weekday{opacity:var(--rdp-weekday-opacity);padding:var(--rdp-weekday-padding);text-align:center;color:var(--rdp-day-color-subtle);font-size:smaller;font-weight:500}.rdp-week_number{opacity:var(--rdp-week_number-opacity);height:var(--rdp-week_number-height);width:var(--rdp-week_number-width);border:var(--rdp-week_number-border);border-radius:var(--rdp-week_number-border-radius);text-align:center;color:var(--rdp-day-color-subtle);font-size:small;font-weight:400}.rdp-today:not(.rdp-outside):not(.rdp-selected) .rdp-day_button{color:var(--rdp-today-color);font-weight:600}.rdp-selected .rdp-day_button{background-color:var(--rdp-accent-color);color:var(--rdp-range_start-color);border-radius:var(--rdp-day_button-border-radius)}.rdp-selected .rdp-day_button:hover{background-color:var(--rdp-accent-color)}.rdp-outside .rdp-day_button{opacity:var(--rdp-outside-opacity);color:var(--rdp-day-color-subtle)}.rdp-disabled:not(.rdp-selected) .rdp-day_button{opacity:var(--rdp-disabled-opacity);cursor:not-allowed}.rdp-disabled .rdp-day_button:hover{background-color:#0000}.rdp-hidden{visibility:hidden}.rdp-day.rdp-range_start:not(.rdp-range_end){background-color:var(--rdp-range_start-date-background-color);border-radius:var(--rdp-day_button-border-radius) 0 0 var(--rdp-day_button-border-radius)}.rdp-day.rdp-range_start .rdp-day_button{color:var(--rdp-range_start-color);background-color:#0000}.rdp-day.rdp-range_start .rdp-day_button:hover{background-color:#0000}.rdp-day.rdp-range_middle{background-color:var(--rdp-range_middle-background-color)}.rdp-day.rdp-range_middle .rdp-day_button{color:var(--rdp-range_middle-color);background-color:#0000}.rdp-day.rdp-range_middle .rdp-day_button:hover{background-color:var(--rdp-fill-hover-bg);border-radius:var(--rdp-day_button-border-radius)}.rdp-day.rdp-range_end:not(.rdp-range_start){background-color:var(--rdp-range_end-date-background-color);border-radius:0 var(--rdp-day_button-border-radius) var(--rdp-day_button-border-radius) 0}.rdp-day.rdp-range_end .rdp-day_button{color:var(--rdp-range_end-color);background-color:#0000}.rdp-day.rdp-range_end .rdp-day_button:hover{background-color:#0000}.rdp-day.rdp-range_start.rdp-range_end{background-color:var(--rdp-range_start-date-background-color);border-radius:var(--rdp-day_button-border-radius)}.rdp-day.rdp-range_start.rdp-range_end .rdp-day_button{color:var(--rdp-range_start-color);background-color:#0000}.rdp-focusable{cursor:pointer}.rdp-footer{width:0;min-width:100%;padding-top:.5rem}@keyframes rdp-slide_in_left{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes rdp-slide_in_right{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes rdp-slide_out_left{0%{transform:translate(0)}to{transform:translate(-100%)}}@keyframes rdp-slide_out_right{0%{transform:translate(0)}to{transform:translate(100%)}}.rdp-weeks_before_enter{animation:rdp-slide_in_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-weeks_before_exit{animation:rdp-slide_out_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-weeks_after_enter{animation:rdp-slide_in_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-weeks_after_exit{animation:rdp-slide_out_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_after_enter{animation:rdp-slide_in_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_before_exit{animation:rdp-slide_out_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_before_enter{animation:rdp-slide_in_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_after_exit{animation:rdp-slide_out_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}@keyframes rdp-fade_in{0%{opacity:0}to{opacity:1}}@keyframes rdp-fade_out{0%{opacity:1}to{opacity:0}}.rdp-caption_after_enter{animation:rdp-fade_in var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-caption_after_exit{animation:rdp-fade_out var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-caption_before_enter{animation:rdp-fade_in var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-caption_before_exit{animation:rdp-fade_out var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.kumo-shiki pre{background-color:#0000!important}[data-mode=dark] .kumo-shiki span:not(.line-highlighted){color:var(--shiki-dark)!important;background-color:#0000!important}[data-mode=dark] .kumo-shiki .line-highlighted{color:var(--shiki-dark)!important}.kumo-shiki code{width:fit-content;min-width:100%;padding-right:1rem;display:block}.kumo-shiki{--kumo-code-highlight-bg:#0000000d}[data-mode=dark] .kumo-shiki{--kumo-code-highlight-bg:#ffffff14}.kumo-shiki .line.line-highlighted{background-color:var(--kumo-code-highlight-bg);width:calc(100% + 2rem);margin:0 -1rem;padding:0 1rem;display:inline-block}.kumo-line-numbers{padding-left:.75rem;line-height:1.625}:root{--editor-sidebar-width:320px;--editor-toolbar-height:48px;--editor-statusbar-height:32px}html,body,#root{height:100%;margin:0;overflow:hidden}.app-shell{grid-template-rows:var(--editor-toolbar-height) 1fr var(--editor-statusbar-height);grid-template-columns:var(--editor-sidebar-width) 1fr;background:var(--color-gray-50);height:100vh;display:grid}.app-toolbar{border-bottom:1px solid var(--color-gray-200);z-index:10;background:#fff;grid-column:1/-1;align-items:center;gap:8px;padding:0 16px;display:flex}.app-sidebar{border-right:1px solid var(--color-gray-200);background:#fff;flex-direction:column;grid-area:2/1;display:flex;overflow:hidden}.app-main{background:var(--color-gray-100);grid-area:2/2;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.app-statusbar{border-top:1px solid var(--color-gray-200);color:var(--color-gray-500);background:#fff;grid-column:1/-1;align-items:center;gap:12px;padding:0 16px;font-size:12px;display:flex}.sidebar-tabs{flex-direction:column;flex:1;display:flex;overflow:hidden}.sidebar-tab-content{flex:1;padding:8px;overflow-y:auto}.file-item{cursor:pointer;border:1px solid #0000;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;transition:background .15s;display:flex}.file-item:hover{background:var(--color-gray-50)}.file-item--active{background:var(--color-blue-50);border-color:var(--color-blue-200)}.file-item__name{color:var(--color-gray-900);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:500;overflow:hidden}.file-item__meta{color:var(--color-gray-400);font-size:11px}.file-item:hover .file-item__delete{opacity:1}.file-item__delete:hover{color:var(--color-red-500)!important}.slide-thumbnail{cursor:pointer;background:#fff;border:2px solid #0000;border-radius:6px;transition:border-color .15s,box-shadow .15s;position:relative;overflow:hidden}.slide-thumbnail:hover{border-color:var(--color-gray-300)}.slide-thumbnail--active{border-color:var(--color-blue-500);box-shadow:0 0 0 2px var(--color-blue-100)}.slide-thumbnail__iframe-container{aspect-ratio:16/9;pointer-events:none;width:100%;position:relative;overflow:hidden}.slide-thumbnail__iframe{transform-origin:0 0;width:1280px;height:720px;transform:scale(var(--thumb-scale,.22));border:none;position:absolute;top:0;left:0}.slide-thumbnail__label{color:var(--color-gray-500);background:var(--color-gray-50);border-top:1px solid var(--color-gray-100);justify-content:space-between;align-items:center;padding:4px 8px;font-size:11px;display:flex}.slide-thumbnail__drag-bar{color:var(--color-gray-500);background:var(--color-gray-50);border-bottom:1px solid var(--color-gray-100);cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;align-items:center;gap:6px;padding:6px 8px;font-size:11px;display:flex}.slide-thumbnail__drag-bar:active{cursor:grabbing;background:var(--color-gray-100)}.slide-thumbnail__drag-bar .slide-thumbnail__type{margin-left:auto}.slide-thumbnail__number{font-variant-numeric:tabular-nums;font-weight:600}.slide-thumbnail__type{text-transform:uppercase;letter-spacing:.5px;background:var(--color-gray-100);border-radius:4px;padding:1px 6px;font-size:10px}.editor-canvas{justify-content:center;align-items:center;width:100%;height:100%;padding:24px;display:flex}.editor-canvas__frame{aspect-ratio:16/9;background:#fff;border-radius:8px;width:100%;max-width:1280px;position:relative;overflow:hidden;box-shadow:0 4px 24px #0000001f,0 1px 4px #00000014}.editor-canvas__iframe{border:none;width:100%;height:100%}.empty-state{color:var(--color-gray-400);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:48px;display:flex}.empty-state__icon{opacity:.5;font-size:48px}.empty-state__title{color:var(--color-gray-600);font-size:18px;font-weight:600}.empty-state__desc{max-width:300px;font-size:14px}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}
|