@editframe/elements 0.6.0-beta.12 → 0.6.0-beta.14
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/dist/lib/av/EncodedAsset.cjs +7 -1
- package/dist/lib/av/EncodedAsset.js +7 -1
- package/dist/lib/util/awaitMicrotask.cjs +1 -5
- package/dist/lib/util/awaitMicrotask.js +1 -5
- package/dist/packages/elements/src/EF_FRAMEGEN.cjs +3 -0
- package/dist/packages/elements/src/EF_FRAMEGEN.js +3 -0
- package/dist/packages/elements/src/elements/EFCaptions.cjs +6 -13
- package/dist/packages/elements/src/elements/EFCaptions.d.ts +1 -2
- package/dist/packages/elements/src/elements/EFCaptions.js +6 -13
- package/dist/packages/elements/src/elements/EFMedia.cjs +1 -1
- package/dist/packages/elements/src/elements/EFMedia.js +1 -1
- package/dist/packages/elements/src/elements/EFTemporal.d.ts +3 -3
- package/dist/packages/elements/src/elements/EFVideo.cjs +0 -1
- package/dist/packages/elements/src/elements/EFVideo.js +0 -1
- package/dist/packages/elements/src/gui/EFFilmstrip.cjs +57 -13
- package/dist/packages/elements/src/gui/EFFilmstrip.d.ts +5 -0
- package/dist/packages/elements/src/gui/EFFilmstrip.js +57 -13
- package/dist/packages/elements/src/gui/EFWorkbench.cjs +23 -9
- package/dist/packages/elements/src/gui/EFWorkbench.d.ts +2 -1
- package/dist/packages/elements/src/gui/EFWorkbench.js +24 -10
- package/dist/packages/elements/src/gui/TWMixin.css.cjs +1 -1
- package/dist/packages/elements/src/gui/TWMixin.css.js +1 -1
- package/dist/style.css +3 -0
- package/package.json +2 -2
|
@@ -79,7 +79,7 @@ const _VideoAsset = class _VideoAsset2 extends ISOFileAsset {
|
|
|
79
79
|
this.latestSeekCts = 0;
|
|
80
80
|
this.videoDecoder = new VideoDecoder({
|
|
81
81
|
error: (e) => {
|
|
82
|
-
console.error(e);
|
|
82
|
+
console.error("Video Decoder Error", e);
|
|
83
83
|
},
|
|
84
84
|
// eslint-disable-next-line @typescript-eslint/no-misused-promises
|
|
85
85
|
output: async (decodedFrame) => {
|
|
@@ -397,6 +397,9 @@ const _VideoAsset = class _VideoAsset2 extends ISOFileAsset {
|
|
|
397
397
|
let syncSampleNumber = sample.number;
|
|
398
398
|
while (!this.getSample(syncSampleNumber).is_sync) {
|
|
399
399
|
syncSampleNumber--;
|
|
400
|
+
if (syncSampleNumber < 0) {
|
|
401
|
+
throw new Error("No sync sample found when traversing backwards");
|
|
402
|
+
}
|
|
400
403
|
}
|
|
401
404
|
this.sampleCursor = syncSampleNumber;
|
|
402
405
|
}
|
|
@@ -410,6 +413,9 @@ const _VideoAsset = class _VideoAsset2 extends ISOFileAsset {
|
|
|
410
413
|
let syncSampleNumber = sample.number;
|
|
411
414
|
while (!this.getSample(syncSampleNumber).is_sync) {
|
|
412
415
|
syncSampleNumber--;
|
|
416
|
+
if (syncSampleNumber < 0) {
|
|
417
|
+
throw new Error("No sync sample found when traversing backwards");
|
|
418
|
+
}
|
|
413
419
|
}
|
|
414
420
|
this.sampleCursor = syncSampleNumber;
|
|
415
421
|
}
|
|
@@ -60,7 +60,7 @@ const _VideoAsset = class _VideoAsset2 extends ISOFileAsset {
|
|
|
60
60
|
this.latestSeekCts = 0;
|
|
61
61
|
this.videoDecoder = new VideoDecoder({
|
|
62
62
|
error: (e) => {
|
|
63
|
-
console.error(e);
|
|
63
|
+
console.error("Video Decoder Error", e);
|
|
64
64
|
},
|
|
65
65
|
// eslint-disable-next-line @typescript-eslint/no-misused-promises
|
|
66
66
|
output: async (decodedFrame) => {
|
|
@@ -378,6 +378,9 @@ const _VideoAsset = class _VideoAsset2 extends ISOFileAsset {
|
|
|
378
378
|
let syncSampleNumber = sample.number;
|
|
379
379
|
while (!this.getSample(syncSampleNumber).is_sync) {
|
|
380
380
|
syncSampleNumber--;
|
|
381
|
+
if (syncSampleNumber < 0) {
|
|
382
|
+
throw new Error("No sync sample found when traversing backwards");
|
|
383
|
+
}
|
|
381
384
|
}
|
|
382
385
|
this.sampleCursor = syncSampleNumber;
|
|
383
386
|
}
|
|
@@ -391,6 +394,9 @@ const _VideoAsset = class _VideoAsset2 extends ISOFileAsset {
|
|
|
391
394
|
let syncSampleNumber = sample.number;
|
|
392
395
|
while (!this.getSample(syncSampleNumber).is_sync) {
|
|
393
396
|
syncSampleNumber--;
|
|
397
|
+
if (syncSampleNumber < 0) {
|
|
398
|
+
throw new Error("No sync sample found when traversing backwards");
|
|
399
|
+
}
|
|
394
400
|
}
|
|
395
401
|
this.sampleCursor = syncSampleNumber;
|
|
396
402
|
}
|
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const awaitMicrotask =
|
|
4
|
-
await new Promise((resolve) => {
|
|
5
|
-
queueMicrotask(resolve);
|
|
6
|
-
});
|
|
7
|
-
};
|
|
3
|
+
const awaitMicrotask = () => new Promise(queueMicrotask);
|
|
8
4
|
exports.awaitMicrotask = awaitMicrotask;
|
|
@@ -136,8 +136,11 @@ class EfFramegen {
|
|
|
136
136
|
}
|
|
137
137
|
this.time = this.renderOptions.encoderOptions.fromMs + frameNumber * this.frameDurationMs;
|
|
138
138
|
firstGroup.currentTimeMs = this.time;
|
|
139
|
+
console.log("Awaiting initialBusyTasks");
|
|
139
140
|
await this.initialBusyTasks;
|
|
141
|
+
console.log("Awaiting microtask");
|
|
140
142
|
await awaitMicrotask.awaitMicrotask();
|
|
143
|
+
console.log("Awaiting frame tasks");
|
|
141
144
|
const now = performance.now();
|
|
142
145
|
await Promise.all(
|
|
143
146
|
temporals.filter((temporal) => temporal.frameTask.status < task.TaskStatus.COMPLETE).map((temporal) => {
|
|
@@ -134,8 +134,11 @@ class EfFramegen {
|
|
|
134
134
|
}
|
|
135
135
|
this.time = this.renderOptions.encoderOptions.fromMs + frameNumber * this.frameDurationMs;
|
|
136
136
|
firstGroup.currentTimeMs = this.time;
|
|
137
|
+
console.log("Awaiting initialBusyTasks");
|
|
137
138
|
await this.initialBusyTasks;
|
|
139
|
+
console.log("Awaiting microtask");
|
|
138
140
|
await awaitMicrotask();
|
|
141
|
+
console.log("Awaiting frame tasks");
|
|
139
142
|
const now = performance.now();
|
|
140
143
|
await Promise.all(
|
|
141
144
|
temporals.filter((temporal) => temporal.frameTask.status < TaskStatus.COMPLETE).map((temporal) => {
|
|
@@ -91,18 +91,11 @@ exports.EFCaptions = class EFCaptions extends EFSourceMixin.EFSourceMixin(
|
|
|
91
91
|
});
|
|
92
92
|
}
|
|
93
93
|
captionsPath() {
|
|
94
|
-
|
|
95
|
-
|
|
94
|
+
const targetSrc = this.targetElement.src;
|
|
95
|
+
if (targetSrc.startsWith("editframe://") || targetSrc.startsWith("http")) {
|
|
96
|
+
return targetSrc.replace("isobmff", "caption");
|
|
96
97
|
}
|
|
97
|
-
return `/@ef-captions/${
|
|
98
|
-
}
|
|
99
|
-
productionSrc() {
|
|
100
|
-
if (!this.md5SumLoader.value) {
|
|
101
|
-
throw new Error(
|
|
102
|
-
`MD5 sum not available for ${this}. Cannot generate production URL`
|
|
103
|
-
);
|
|
104
|
-
}
|
|
105
|
-
return `http://localhost:3000/api/video2/caption_files/${this.md5SumLoader.value}`;
|
|
98
|
+
return `/@ef-captions/${targetSrc}`;
|
|
106
99
|
}
|
|
107
100
|
connectedCallback() {
|
|
108
101
|
super.connectedCallback();
|
|
@@ -130,13 +123,13 @@ exports.EFCaptions = class EFCaptions extends EFSourceMixin.EFSourceMixin(
|
|
|
130
123
|
let endMs = 0;
|
|
131
124
|
for (const segment of caption.segments) {
|
|
132
125
|
if (this.targetElement.ownCurrentTimeMs >= segment.start * 1e3 && this.targetElement.ownCurrentTimeMs <= segment.end * 1e3) {
|
|
133
|
-
|
|
126
|
+
for (const word of segment.words) {
|
|
134
127
|
if (this.targetElement.ownCurrentTimeMs >= word.start * 1e3 && this.targetElement.ownCurrentTimeMs <= word.end * 1e3) {
|
|
135
128
|
words.push(word.text);
|
|
136
129
|
startMs = word.start * 1e3;
|
|
137
130
|
endMs = word.end * 1e3;
|
|
138
131
|
}
|
|
139
|
-
}
|
|
132
|
+
}
|
|
140
133
|
}
|
|
141
134
|
}
|
|
142
135
|
for (const container of Array.from(this.activeWordContainers)) {
|
|
@@ -21,13 +21,12 @@ export declare class EFCaptions extends EFCaptions_base {
|
|
|
21
21
|
activeWordContainers: HTMLCollectionOf<EFCaptionsActiveWord>;
|
|
22
22
|
captionsPath(): string;
|
|
23
23
|
protected md5SumLoader: Task<readonly [null], string | undefined>;
|
|
24
|
-
productionSrc(): string;
|
|
25
24
|
private captionsDataTask;
|
|
26
25
|
frameTask: Task<import('@lit/task').TaskStatus[], void>;
|
|
27
26
|
connectedCallback(): void;
|
|
28
27
|
render(): import('lit-html').TemplateResult<1> | undefined;
|
|
29
28
|
protected updated(_changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void;
|
|
30
|
-
updateActiveWord(): void
|
|
29
|
+
updateActiveWord(): void;
|
|
31
30
|
get targetElement(): EFAudio | EFVideo;
|
|
32
31
|
}
|
|
33
32
|
declare global {
|
|
@@ -89,18 +89,11 @@ let EFCaptions = class extends EFSourceMixin(
|
|
|
89
89
|
});
|
|
90
90
|
}
|
|
91
91
|
captionsPath() {
|
|
92
|
-
|
|
93
|
-
|
|
92
|
+
const targetSrc = this.targetElement.src;
|
|
93
|
+
if (targetSrc.startsWith("editframe://") || targetSrc.startsWith("http")) {
|
|
94
|
+
return targetSrc.replace("isobmff", "caption");
|
|
94
95
|
}
|
|
95
|
-
return `/@ef-captions/${
|
|
96
|
-
}
|
|
97
|
-
productionSrc() {
|
|
98
|
-
if (!this.md5SumLoader.value) {
|
|
99
|
-
throw new Error(
|
|
100
|
-
`MD5 sum not available for ${this}. Cannot generate production URL`
|
|
101
|
-
);
|
|
102
|
-
}
|
|
103
|
-
return `http://localhost:3000/api/video2/caption_files/${this.md5SumLoader.value}`;
|
|
96
|
+
return `/@ef-captions/${targetSrc}`;
|
|
104
97
|
}
|
|
105
98
|
connectedCallback() {
|
|
106
99
|
super.connectedCallback();
|
|
@@ -128,13 +121,13 @@ let EFCaptions = class extends EFSourceMixin(
|
|
|
128
121
|
let endMs = 0;
|
|
129
122
|
for (const segment of caption.segments) {
|
|
130
123
|
if (this.targetElement.ownCurrentTimeMs >= segment.start * 1e3 && this.targetElement.ownCurrentTimeMs <= segment.end * 1e3) {
|
|
131
|
-
|
|
124
|
+
for (const word of segment.words) {
|
|
132
125
|
if (this.targetElement.ownCurrentTimeMs >= word.start * 1e3 && this.targetElement.ownCurrentTimeMs <= word.end * 1e3) {
|
|
133
126
|
words.push(word.text);
|
|
134
127
|
startMs = word.start * 1e3;
|
|
135
128
|
endMs = word.end * 1e3;
|
|
136
129
|
}
|
|
137
|
-
}
|
|
130
|
+
}
|
|
138
131
|
}
|
|
139
132
|
}
|
|
140
133
|
for (const container of Array.from(this.activeWordContainers)) {
|
|
@@ -46,7 +46,7 @@ class EFMedia extends EFSourceMixin.EFSourceMixin(EFTemporal.EFTemporal(FetchMix
|
|
|
46
46
|
},
|
|
47
47
|
onComplete: () => {
|
|
48
48
|
this.requestUpdate("ownCurrentTimeMs");
|
|
49
|
-
this.
|
|
49
|
+
this.rootTimegroup?.requestUpdate("ownCurrentTimeMs");
|
|
50
50
|
}
|
|
51
51
|
});
|
|
52
52
|
this.initSegmentsLoader = new task.Task(this, {
|
|
@@ -44,7 +44,7 @@ class EFMedia extends EFSourceMixin(EFTemporal(FetchMixin(LitElement)), {
|
|
|
44
44
|
},
|
|
45
45
|
onComplete: () => {
|
|
46
46
|
this.requestUpdate("ownCurrentTimeMs");
|
|
47
|
-
this.
|
|
47
|
+
this.rootTimegroup?.requestUpdate("ownCurrentTimeMs");
|
|
48
48
|
}
|
|
49
49
|
});
|
|
50
50
|
this.initSegmentsLoader = new Task(this, {
|
|
@@ -18,11 +18,11 @@ export declare class TemporalMixinInterface {
|
|
|
18
18
|
}
|
|
19
19
|
export declare const isEFTemporal: (obj: any) => obj is TemporalMixinInterface;
|
|
20
20
|
export declare const deepGetTemporalElements: (element: Element, temporals?: TemporalMixinInterface[]) => TemporalMixinInterface[];
|
|
21
|
-
export declare const deepGetElementsWithFrameTasks: (element: Element, elements?: {
|
|
21
|
+
export declare const deepGetElementsWithFrameTasks: (element: Element, elements?: Array<HTMLElement & {
|
|
22
22
|
frameTask: Task;
|
|
23
|
-
}
|
|
23
|
+
}>) => (HTMLElement & {
|
|
24
24
|
frameTask: Task;
|
|
25
|
-
}[];
|
|
25
|
+
})[];
|
|
26
26
|
export declare const shallowGetTemporalElements: (element: Element, temporals?: TemporalMixinInterface[]) => TemporalMixinInterface[];
|
|
27
27
|
export declare class OwnCurrentTimeController implements ReactiveController {
|
|
28
28
|
private host;
|
|
@@ -45,7 +45,6 @@ exports.EFVideo = class EFVideo extends TWMixin.TWMixin(EFMedia.EFMedia) {
|
|
|
45
45
|
await this.fetchSeekTask.taskComplete;
|
|
46
46
|
await this.videoAssetTask.taskComplete;
|
|
47
47
|
await this.paintTask.taskComplete;
|
|
48
|
-
this.rootTimegroup?.requestUpdate();
|
|
49
48
|
}
|
|
50
49
|
});
|
|
51
50
|
this.paintTask = new task.Task(this, {
|
|
@@ -421,8 +421,8 @@ const renderHierarchyChildren = (children) => {
|
|
|
421
421
|
></ef-waveform-hierarchy-item>`;
|
|
422
422
|
}
|
|
423
423
|
return lit.html`<ef-html-hierarchy-item
|
|
424
|
-
|
|
425
|
-
|
|
424
|
+
.element=${child}
|
|
425
|
+
></ef-html-hierarchy-item>`;
|
|
426
426
|
});
|
|
427
427
|
};
|
|
428
428
|
const renderFilmStripChildren = (children, pixelsPerMs) => {
|
|
@@ -465,9 +465,9 @@ const renderFilmStripChildren = (children, pixelsPerMs) => {
|
|
|
465
465
|
></ef-waveform-filmstrip>`;
|
|
466
466
|
}
|
|
467
467
|
return lit.html`<ef-html-filmstrip
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
468
|
+
.element=${child}
|
|
469
|
+
.pixelsPerMs=${pixelsPerMs}
|
|
470
|
+
></ef-html-filmstrip>`;
|
|
471
471
|
});
|
|
472
472
|
};
|
|
473
473
|
exports.EFFilmStrip = class EFFilmStrip extends TWMixin.TWMixin(lit.LitElement) {
|
|
@@ -478,6 +478,7 @@ exports.EFFilmStrip = class EFFilmStrip extends TWMixin.TWMixin(lit.LitElement)
|
|
|
478
478
|
this.targetSelector = "";
|
|
479
479
|
this.scrubbing = false;
|
|
480
480
|
this.playing = false;
|
|
481
|
+
this.timelineScrolltop = 0;
|
|
481
482
|
__privateAdd(this, _lastTick);
|
|
482
483
|
this.advancePlayhead = (tick) => {
|
|
483
484
|
if (__privateGet(this, _lastTick) && tick && this.target) {
|
|
@@ -492,6 +493,8 @@ exports.EFFilmStrip = class EFFilmStrip extends TWMixin.TWMixin(lit.LitElement)
|
|
|
492
493
|
}
|
|
493
494
|
};
|
|
494
495
|
this.gutterRef = ref_js.createRef();
|
|
496
|
+
this.hierarchyRef = ref_js.createRef();
|
|
497
|
+
this.playheadRef = ref_js.createRef();
|
|
495
498
|
}
|
|
496
499
|
connectedCallback() {
|
|
497
500
|
super.connectedCallback();
|
|
@@ -501,6 +504,18 @@ exports.EFFilmStrip = class EFFilmStrip extends TWMixin.TWMixin(lit.LitElement)
|
|
|
501
504
|
this.currentTimeMs = target.currentTimeMs;
|
|
502
505
|
}
|
|
503
506
|
}
|
|
507
|
+
syncGutterScroll() {
|
|
508
|
+
if (this.gutter && this.hierarchyRef.value) {
|
|
509
|
+
this.hierarchyRef.value.scrollTop = this.gutter.scrollTop;
|
|
510
|
+
this.timelineScrolltop = this.gutter.scrollTop;
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
syncHierarchyScroll() {
|
|
514
|
+
if (this.gutter && this.hierarchyRef.value) {
|
|
515
|
+
this.gutter.scrollTop = this.hierarchyRef.value.scrollTop;
|
|
516
|
+
this.timelineScrolltop = this.hierarchyRef.value.scrollTop;
|
|
517
|
+
}
|
|
518
|
+
}
|
|
504
519
|
scrub(e) {
|
|
505
520
|
if (this.playing) {
|
|
506
521
|
return;
|
|
@@ -563,8 +578,11 @@ exports.EFFilmStrip = class EFFilmStrip extends TWMixin.TWMixin(lit.LitElement)
|
|
|
563
578
|
render() {
|
|
564
579
|
const target = this.target;
|
|
565
580
|
return lit.html` <div
|
|
566
|
-
class="grid h-full bg-slate-100
|
|
567
|
-
style
|
|
581
|
+
class="grid h-full bg-slate-100"
|
|
582
|
+
style=${styleMap_js.styleMap({
|
|
583
|
+
gridTemplateColumns: "200px 1fr",
|
|
584
|
+
gridTemplateRows: "1.5rem 1fr"
|
|
585
|
+
})}
|
|
568
586
|
>
|
|
569
587
|
<div
|
|
570
588
|
class="z-20 col-span-2 border-b-slate-600 bg-slate-100 shadow shadow-slate-300"
|
|
@@ -582,19 +600,32 @@ exports.EFFilmStrip = class EFFilmStrip extends TWMixin.TWMixin(lit.LitElement)
|
|
|
582
600
|
/>
|
|
583
601
|
<code>${msToTimeCode.msToTimeCode(this.currentTimeMs, true)} </code> /
|
|
584
602
|
<code>${msToTimeCode.msToTimeCode(target?.durationMs ?? 0, true)}</code>
|
|
585
|
-
${this.playing ? lit.html`<button
|
|
603
|
+
${this.playing ? lit.html`<button
|
|
604
|
+
@click=${() => {
|
|
586
605
|
this.playing = false;
|
|
587
|
-
}}
|
|
606
|
+
}}
|
|
607
|
+
>
|
|
608
|
+
⏸️
|
|
609
|
+
</button>` : lit.html`<button
|
|
610
|
+
@click=${() => {
|
|
588
611
|
this.playing = true;
|
|
589
|
-
}}
|
|
612
|
+
}}
|
|
613
|
+
>
|
|
614
|
+
▶️
|
|
615
|
+
</button>`}
|
|
590
616
|
</div>
|
|
591
|
-
<div
|
|
617
|
+
<div
|
|
618
|
+
class="z-10 pl-1 pr-1 pt-2 shadow shadow-slate-600 overflow-auto"
|
|
619
|
+
${ref_js.ref(this.hierarchyRef)}
|
|
620
|
+
@scroll=${this.syncHierarchyScroll}
|
|
621
|
+
>
|
|
592
622
|
${renderHierarchyChildren(Array.from(target?.children ?? []))}
|
|
593
623
|
</div>
|
|
594
624
|
<div
|
|
595
625
|
class="h-full w-full cursor-crosshair overflow-auto bg-slate-200 pt-2"
|
|
596
626
|
id="gutter"
|
|
597
627
|
${ref_js.ref(this.gutterRef)}
|
|
628
|
+
@scroll=${this.syncGutterScroll}
|
|
598
629
|
@wheel=${this.scrollScrub}
|
|
599
630
|
>
|
|
600
631
|
<div
|
|
@@ -604,8 +635,12 @@ exports.EFFilmStrip = class EFFilmStrip extends TWMixin.TWMixin(lit.LitElement)
|
|
|
604
635
|
@mousedown=${this.startScrub}
|
|
605
636
|
>
|
|
606
637
|
<div
|
|
607
|
-
class="border-red pointer-events-none absolute
|
|
608
|
-
style
|
|
638
|
+
class="border-red pointer-events-none absolute z-10 h-full w-[2px] border-r-2 border-red-700"
|
|
639
|
+
style=${styleMap_js.styleMap({
|
|
640
|
+
left: `${this.pixelsPerMs * this.currentTimeMs}px`,
|
|
641
|
+
top: `${this.timelineScrolltop}px`
|
|
642
|
+
})}
|
|
643
|
+
${ref_js.ref(this.playheadRef)}
|
|
609
644
|
></div>
|
|
610
645
|
|
|
611
646
|
${renderFilmStripChildren(
|
|
@@ -661,6 +696,15 @@ __decorateClass([
|
|
|
661
696
|
__decorateClass([
|
|
662
697
|
decorators_js.state()
|
|
663
698
|
], exports.EFFilmStrip.prototype, "playing", 2);
|
|
699
|
+
__decorateClass([
|
|
700
|
+
decorators_js.state()
|
|
701
|
+
], exports.EFFilmStrip.prototype, "timelineScrolltop", 2);
|
|
702
|
+
__decorateClass([
|
|
703
|
+
decorators_js.eventOptions({ passive: false })
|
|
704
|
+
], exports.EFFilmStrip.prototype, "syncGutterScroll", 1);
|
|
705
|
+
__decorateClass([
|
|
706
|
+
decorators_js.eventOptions({ passive: false })
|
|
707
|
+
], exports.EFFilmStrip.prototype, "syncHierarchyScroll", 1);
|
|
664
708
|
__decorateClass([
|
|
665
709
|
decorators_js.eventOptions({ capture: false })
|
|
666
710
|
], exports.EFFilmStrip.prototype, "scrub", 1);
|
|
@@ -102,13 +102,18 @@ export declare class EFFilmStrip extends EFFilmStrip_base {
|
|
|
102
102
|
targetSelector: string;
|
|
103
103
|
scrubbing: boolean;
|
|
104
104
|
playing: boolean;
|
|
105
|
+
timelineScrolltop: number;
|
|
105
106
|
timegroupController?: TimegroupController;
|
|
106
107
|
connectedCallback(): void;
|
|
108
|
+
syncGutterScroll(): void;
|
|
109
|
+
syncHierarchyScroll(): void;
|
|
107
110
|
advancePlayhead: (tick?: DOMHighResTimeStamp) => void;
|
|
108
111
|
scrub(e: MouseEvent): void;
|
|
109
112
|
startScrub(e: MouseEvent): void;
|
|
110
113
|
scrollScrub(e: WheelEvent): void;
|
|
111
114
|
gutterRef: import('lit-html/directives/ref').Ref<HTMLDivElement>;
|
|
115
|
+
hierarchyRef: import('lit-html/directives/ref').Ref<HTMLDivElement>;
|
|
116
|
+
playheadRef: import('lit-html/directives/ref').Ref<HTMLDivElement>;
|
|
112
117
|
get gutter(): HTMLDivElement | undefined;
|
|
113
118
|
render(): TemplateResult<1>;
|
|
114
119
|
update(changedProperties: Map<string | number | symbol, unknown>): void;
|
|
@@ -419,8 +419,8 @@ const renderHierarchyChildren = (children) => {
|
|
|
419
419
|
></ef-waveform-hierarchy-item>`;
|
|
420
420
|
}
|
|
421
421
|
return html`<ef-html-hierarchy-item
|
|
422
|
-
|
|
423
|
-
|
|
422
|
+
.element=${child}
|
|
423
|
+
></ef-html-hierarchy-item>`;
|
|
424
424
|
});
|
|
425
425
|
};
|
|
426
426
|
const renderFilmStripChildren = (children, pixelsPerMs) => {
|
|
@@ -463,9 +463,9 @@ const renderFilmStripChildren = (children, pixelsPerMs) => {
|
|
|
463
463
|
></ef-waveform-filmstrip>`;
|
|
464
464
|
}
|
|
465
465
|
return html`<ef-html-filmstrip
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
466
|
+
.element=${child}
|
|
467
|
+
.pixelsPerMs=${pixelsPerMs}
|
|
468
|
+
></ef-html-filmstrip>`;
|
|
469
469
|
});
|
|
470
470
|
};
|
|
471
471
|
let EFFilmStrip = class extends TWMixin(LitElement) {
|
|
@@ -476,6 +476,7 @@ let EFFilmStrip = class extends TWMixin(LitElement) {
|
|
|
476
476
|
this.targetSelector = "";
|
|
477
477
|
this.scrubbing = false;
|
|
478
478
|
this.playing = false;
|
|
479
|
+
this.timelineScrolltop = 0;
|
|
479
480
|
__privateAdd(this, _lastTick);
|
|
480
481
|
this.advancePlayhead = (tick) => {
|
|
481
482
|
if (__privateGet(this, _lastTick) && tick && this.target) {
|
|
@@ -490,6 +491,8 @@ let EFFilmStrip = class extends TWMixin(LitElement) {
|
|
|
490
491
|
}
|
|
491
492
|
};
|
|
492
493
|
this.gutterRef = createRef();
|
|
494
|
+
this.hierarchyRef = createRef();
|
|
495
|
+
this.playheadRef = createRef();
|
|
493
496
|
}
|
|
494
497
|
connectedCallback() {
|
|
495
498
|
super.connectedCallback();
|
|
@@ -499,6 +502,18 @@ let EFFilmStrip = class extends TWMixin(LitElement) {
|
|
|
499
502
|
this.currentTimeMs = target.currentTimeMs;
|
|
500
503
|
}
|
|
501
504
|
}
|
|
505
|
+
syncGutterScroll() {
|
|
506
|
+
if (this.gutter && this.hierarchyRef.value) {
|
|
507
|
+
this.hierarchyRef.value.scrollTop = this.gutter.scrollTop;
|
|
508
|
+
this.timelineScrolltop = this.gutter.scrollTop;
|
|
509
|
+
}
|
|
510
|
+
}
|
|
511
|
+
syncHierarchyScroll() {
|
|
512
|
+
if (this.gutter && this.hierarchyRef.value) {
|
|
513
|
+
this.gutter.scrollTop = this.hierarchyRef.value.scrollTop;
|
|
514
|
+
this.timelineScrolltop = this.hierarchyRef.value.scrollTop;
|
|
515
|
+
}
|
|
516
|
+
}
|
|
502
517
|
scrub(e) {
|
|
503
518
|
if (this.playing) {
|
|
504
519
|
return;
|
|
@@ -561,8 +576,11 @@ let EFFilmStrip = class extends TWMixin(LitElement) {
|
|
|
561
576
|
render() {
|
|
562
577
|
const target = this.target;
|
|
563
578
|
return html` <div
|
|
564
|
-
class="grid h-full bg-slate-100
|
|
565
|
-
style
|
|
579
|
+
class="grid h-full bg-slate-100"
|
|
580
|
+
style=${styleMap({
|
|
581
|
+
gridTemplateColumns: "200px 1fr",
|
|
582
|
+
gridTemplateRows: "1.5rem 1fr"
|
|
583
|
+
})}
|
|
566
584
|
>
|
|
567
585
|
<div
|
|
568
586
|
class="z-20 col-span-2 border-b-slate-600 bg-slate-100 shadow shadow-slate-300"
|
|
@@ -580,19 +598,32 @@ let EFFilmStrip = class extends TWMixin(LitElement) {
|
|
|
580
598
|
/>
|
|
581
599
|
<code>${msToTimeCode(this.currentTimeMs, true)} </code> /
|
|
582
600
|
<code>${msToTimeCode(target?.durationMs ?? 0, true)}</code>
|
|
583
|
-
${this.playing ? html`<button
|
|
601
|
+
${this.playing ? html`<button
|
|
602
|
+
@click=${() => {
|
|
584
603
|
this.playing = false;
|
|
585
|
-
}}
|
|
604
|
+
}}
|
|
605
|
+
>
|
|
606
|
+
⏸️
|
|
607
|
+
</button>` : html`<button
|
|
608
|
+
@click=${() => {
|
|
586
609
|
this.playing = true;
|
|
587
|
-
}}
|
|
610
|
+
}}
|
|
611
|
+
>
|
|
612
|
+
▶️
|
|
613
|
+
</button>`}
|
|
588
614
|
</div>
|
|
589
|
-
<div
|
|
615
|
+
<div
|
|
616
|
+
class="z-10 pl-1 pr-1 pt-2 shadow shadow-slate-600 overflow-auto"
|
|
617
|
+
${ref(this.hierarchyRef)}
|
|
618
|
+
@scroll=${this.syncHierarchyScroll}
|
|
619
|
+
>
|
|
590
620
|
${renderHierarchyChildren(Array.from(target?.children ?? []))}
|
|
591
621
|
</div>
|
|
592
622
|
<div
|
|
593
623
|
class="h-full w-full cursor-crosshair overflow-auto bg-slate-200 pt-2"
|
|
594
624
|
id="gutter"
|
|
595
625
|
${ref(this.gutterRef)}
|
|
626
|
+
@scroll=${this.syncGutterScroll}
|
|
596
627
|
@wheel=${this.scrollScrub}
|
|
597
628
|
>
|
|
598
629
|
<div
|
|
@@ -602,8 +633,12 @@ let EFFilmStrip = class extends TWMixin(LitElement) {
|
|
|
602
633
|
@mousedown=${this.startScrub}
|
|
603
634
|
>
|
|
604
635
|
<div
|
|
605
|
-
class="border-red pointer-events-none absolute
|
|
606
|
-
style
|
|
636
|
+
class="border-red pointer-events-none absolute z-10 h-full w-[2px] border-r-2 border-red-700"
|
|
637
|
+
style=${styleMap({
|
|
638
|
+
left: `${this.pixelsPerMs * this.currentTimeMs}px`,
|
|
639
|
+
top: `${this.timelineScrolltop}px`
|
|
640
|
+
})}
|
|
641
|
+
${ref(this.playheadRef)}
|
|
607
642
|
></div>
|
|
608
643
|
|
|
609
644
|
${renderFilmStripChildren(
|
|
@@ -659,6 +694,15 @@ __decorateClass([
|
|
|
659
694
|
__decorateClass([
|
|
660
695
|
state()
|
|
661
696
|
], EFFilmStrip.prototype, "playing", 2);
|
|
697
|
+
__decorateClass([
|
|
698
|
+
state()
|
|
699
|
+
], EFFilmStrip.prototype, "timelineScrolltop", 2);
|
|
700
|
+
__decorateClass([
|
|
701
|
+
eventOptions({ passive: false })
|
|
702
|
+
], EFFilmStrip.prototype, "syncGutterScroll", 1);
|
|
703
|
+
__decorateClass([
|
|
704
|
+
eventOptions({ passive: false })
|
|
705
|
+
], EFFilmStrip.prototype, "syncHierarchyScroll", 1);
|
|
662
706
|
__decorateClass([
|
|
663
707
|
eventOptions({ capture: false })
|
|
664
708
|
], EFFilmStrip.prototype, "scrub", 1);
|
|
@@ -28,7 +28,8 @@ exports.EFWorkbench = class EFWorkbench extends TWMixin.TWMixin(lit.LitElement)
|
|
|
28
28
|
super(...arguments);
|
|
29
29
|
this.stageRef = ref_js.createRef();
|
|
30
30
|
this.canvasRef = ref_js.createRef();
|
|
31
|
-
this.
|
|
31
|
+
this.stageScale = 1;
|
|
32
|
+
this.setStageScale = () => {
|
|
32
33
|
if (this.isConnected && !this.rendering) {
|
|
33
34
|
const canvasElement = this.canvasRef.value;
|
|
34
35
|
const stageElement = this.stageRef.value;
|
|
@@ -41,14 +42,23 @@ exports.EFWorkbench = class EFWorkbench extends TWMixin.TWMixin(lit.LitElement)
|
|
|
41
42
|
const canvasRatio = canvasWidth / canvasHeight;
|
|
42
43
|
if (stageRatio > canvasRatio) {
|
|
43
44
|
const scale = stageHeight / canvasHeight;
|
|
44
|
-
|
|
45
|
+
if (this.stageScale !== scale) {
|
|
46
|
+
canvasElement.style.transform = `scale(${scale})`;
|
|
47
|
+
}
|
|
48
|
+
this.stageScale = scale;
|
|
45
49
|
} else {
|
|
46
50
|
const scale = stageWidth / canvasWidth;
|
|
47
|
-
|
|
51
|
+
if (this.stageScale !== scale) {
|
|
52
|
+
canvasElement.style.transform = `scale(${scale})`;
|
|
53
|
+
}
|
|
54
|
+
this.stageScale = scale;
|
|
48
55
|
}
|
|
49
56
|
}
|
|
50
57
|
}
|
|
51
|
-
|
|
58
|
+
if (this.isConnected) {
|
|
59
|
+
requestAnimationFrame(this.setStageScale);
|
|
60
|
+
}
|
|
61
|
+
};
|
|
52
62
|
this.focusContext = this;
|
|
53
63
|
this.focusedElement = null;
|
|
54
64
|
this.fetch = (path, init = {}) => {
|
|
@@ -89,11 +99,10 @@ exports.EFWorkbench = class EFWorkbench extends TWMixin.TWMixin(lit.LitElement)
|
|
|
89
99
|
}
|
|
90
100
|
connectedCallback() {
|
|
91
101
|
super.connectedCallback();
|
|
92
|
-
this.
|
|
102
|
+
requestAnimationFrame(this.setStageScale);
|
|
93
103
|
}
|
|
94
104
|
disconnectedCallback() {
|
|
95
105
|
super.disconnectedCallback();
|
|
96
|
-
this.resizeObserver.unobserve(this);
|
|
97
106
|
}
|
|
98
107
|
handleStageWheel(event) {
|
|
99
108
|
event.preventDefault();
|
|
@@ -117,7 +126,7 @@ exports.EFWorkbench = class EFWorkbench extends TWMixin.TWMixin(lit.LitElement)
|
|
|
117
126
|
return lit.html`
|
|
118
127
|
<div
|
|
119
128
|
class="grid h-full w-full"
|
|
120
|
-
style="
|
|
129
|
+
style="grid-template-rows: 1fr 300px; grid-template-columns: 100%;"
|
|
121
130
|
>
|
|
122
131
|
<div
|
|
123
132
|
${ref_js.ref(this.stageRef)}
|
|
@@ -148,13 +157,15 @@ exports.EFWorkbench = class EFWorkbench extends TWMixin.TWMixin(lit.LitElement)
|
|
|
148
157
|
}
|
|
149
158
|
firstGroup.currentTimeMs = 0;
|
|
150
159
|
const temporals = EFTemporal.deepGetTemporalElements(this);
|
|
160
|
+
const frameCount = Math.ceil(firstGroup.durationMs / stepDurationMs);
|
|
151
161
|
const busyTasks = temporals.filter((temporal) => temporal.frameTask.status < task.TaskStatus.COMPLETE).map((temporal) => temporal.frameTask);
|
|
152
162
|
await Promise.all(busyTasks.map((task2) => task2.taskComplete));
|
|
153
|
-
|
|
154
|
-
firstGroup.currentTimeMs
|
|
163
|
+
for (let i = 0; i < frameCount; i++) {
|
|
164
|
+
firstGroup.currentTimeMs = i * stepDurationMs;
|
|
155
165
|
await awaitMicrotask.awaitMicrotask();
|
|
156
166
|
const busyTasks2 = temporals.filter((temporal) => temporal.frameTask.status < task.TaskStatus.COMPLETE).map((temporal) => temporal.frameTask);
|
|
157
167
|
await Promise.all(busyTasks2.map((task2) => task2.taskComplete));
|
|
168
|
+
await new Promise((resolve) => requestAnimationFrame(resolve));
|
|
158
169
|
}
|
|
159
170
|
}
|
|
160
171
|
};
|
|
@@ -167,6 +178,9 @@ exports.EFWorkbench.styles = [
|
|
|
167
178
|
}
|
|
168
179
|
`
|
|
169
180
|
];
|
|
181
|
+
__decorateClass([
|
|
182
|
+
decorators_js.state()
|
|
183
|
+
], exports.EFWorkbench.prototype, "stageScale", 2);
|
|
170
184
|
__decorateClass([
|
|
171
185
|
decorators_js.eventOptions({ passive: false, capture: true })
|
|
172
186
|
], exports.EFWorkbench.prototype, "handleStageWheel", 1);
|
|
@@ -20,7 +20,8 @@ export declare class EFWorkbench extends EFWorkbench_base {
|
|
|
20
20
|
static styles: import('lit').CSSResult[];
|
|
21
21
|
stageRef: import('lit-html/directives/ref').Ref<HTMLDivElement>;
|
|
22
22
|
canvasRef: import('lit-html/directives/ref').Ref<HTMLSlotElement>;
|
|
23
|
-
|
|
23
|
+
stageScale: number;
|
|
24
|
+
setStageScale: () => void;
|
|
24
25
|
connectedCallback(): void;
|
|
25
26
|
disconnectedCallback(): void;
|
|
26
27
|
handleStageWheel(event: WheelEvent): void;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createContext, provide } from "@lit/context";
|
|
2
2
|
import { css, html, LitElement } from "lit";
|
|
3
3
|
import { TaskStatus } from "@lit/task";
|
|
4
|
-
import {
|
|
4
|
+
import { state, eventOptions, property, customElement } from "lit/decorators.js";
|
|
5
5
|
import { createRef, ref } from "lit/directives/ref.js";
|
|
6
6
|
import { awaitMicrotask } from "../../../../lib/util/awaitMicrotask.js";
|
|
7
7
|
import { deepGetTemporalElements } from "../elements/EFTemporal.js";
|
|
@@ -26,7 +26,8 @@ let EFWorkbench = class extends TWMixin(LitElement) {
|
|
|
26
26
|
super(...arguments);
|
|
27
27
|
this.stageRef = createRef();
|
|
28
28
|
this.canvasRef = createRef();
|
|
29
|
-
this.
|
|
29
|
+
this.stageScale = 1;
|
|
30
|
+
this.setStageScale = () => {
|
|
30
31
|
if (this.isConnected && !this.rendering) {
|
|
31
32
|
const canvasElement = this.canvasRef.value;
|
|
32
33
|
const stageElement = this.stageRef.value;
|
|
@@ -39,14 +40,23 @@ let EFWorkbench = class extends TWMixin(LitElement) {
|
|
|
39
40
|
const canvasRatio = canvasWidth / canvasHeight;
|
|
40
41
|
if (stageRatio > canvasRatio) {
|
|
41
42
|
const scale = stageHeight / canvasHeight;
|
|
42
|
-
|
|
43
|
+
if (this.stageScale !== scale) {
|
|
44
|
+
canvasElement.style.transform = `scale(${scale})`;
|
|
45
|
+
}
|
|
46
|
+
this.stageScale = scale;
|
|
43
47
|
} else {
|
|
44
48
|
const scale = stageWidth / canvasWidth;
|
|
45
|
-
|
|
49
|
+
if (this.stageScale !== scale) {
|
|
50
|
+
canvasElement.style.transform = `scale(${scale})`;
|
|
51
|
+
}
|
|
52
|
+
this.stageScale = scale;
|
|
46
53
|
}
|
|
47
54
|
}
|
|
48
55
|
}
|
|
49
|
-
|
|
56
|
+
if (this.isConnected) {
|
|
57
|
+
requestAnimationFrame(this.setStageScale);
|
|
58
|
+
}
|
|
59
|
+
};
|
|
50
60
|
this.focusContext = this;
|
|
51
61
|
this.focusedElement = null;
|
|
52
62
|
this.fetch = (path, init = {}) => {
|
|
@@ -87,11 +97,10 @@ let EFWorkbench = class extends TWMixin(LitElement) {
|
|
|
87
97
|
}
|
|
88
98
|
connectedCallback() {
|
|
89
99
|
super.connectedCallback();
|
|
90
|
-
this.
|
|
100
|
+
requestAnimationFrame(this.setStageScale);
|
|
91
101
|
}
|
|
92
102
|
disconnectedCallback() {
|
|
93
103
|
super.disconnectedCallback();
|
|
94
|
-
this.resizeObserver.unobserve(this);
|
|
95
104
|
}
|
|
96
105
|
handleStageWheel(event) {
|
|
97
106
|
event.preventDefault();
|
|
@@ -115,7 +124,7 @@ let EFWorkbench = class extends TWMixin(LitElement) {
|
|
|
115
124
|
return html`
|
|
116
125
|
<div
|
|
117
126
|
class="grid h-full w-full"
|
|
118
|
-
style="
|
|
127
|
+
style="grid-template-rows: 1fr 300px; grid-template-columns: 100%;"
|
|
119
128
|
>
|
|
120
129
|
<div
|
|
121
130
|
${ref(this.stageRef)}
|
|
@@ -146,13 +155,15 @@ let EFWorkbench = class extends TWMixin(LitElement) {
|
|
|
146
155
|
}
|
|
147
156
|
firstGroup.currentTimeMs = 0;
|
|
148
157
|
const temporals = deepGetTemporalElements(this);
|
|
158
|
+
const frameCount = Math.ceil(firstGroup.durationMs / stepDurationMs);
|
|
149
159
|
const busyTasks = temporals.filter((temporal) => temporal.frameTask.status < TaskStatus.COMPLETE).map((temporal) => temporal.frameTask);
|
|
150
160
|
await Promise.all(busyTasks.map((task) => task.taskComplete));
|
|
151
|
-
|
|
152
|
-
firstGroup.currentTimeMs
|
|
161
|
+
for (let i = 0; i < frameCount; i++) {
|
|
162
|
+
firstGroup.currentTimeMs = i * stepDurationMs;
|
|
153
163
|
await awaitMicrotask();
|
|
154
164
|
const busyTasks2 = temporals.filter((temporal) => temporal.frameTask.status < TaskStatus.COMPLETE).map((temporal) => temporal.frameTask);
|
|
155
165
|
await Promise.all(busyTasks2.map((task) => task.taskComplete));
|
|
166
|
+
await new Promise((resolve) => requestAnimationFrame(resolve));
|
|
156
167
|
}
|
|
157
168
|
}
|
|
158
169
|
};
|
|
@@ -165,6 +176,9 @@ EFWorkbench.styles = [
|
|
|
165
176
|
}
|
|
166
177
|
`
|
|
167
178
|
];
|
|
179
|
+
__decorateClass([
|
|
180
|
+
state()
|
|
181
|
+
], EFWorkbench.prototype, "stageScale", 2);
|
|
168
182
|
__decorateClass([
|
|
169
183
|
eventOptions({ passive: false, capture: true })
|
|
170
184
|
], EFWorkbench.prototype, "handleStageWheel", 1);
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
const twStyle = "/*\n! tailwindcss v3.4.4 | MIT License | https://tailwindcss.com\n*//*\n1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)\n2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)\n*/\n\n*,\n::before,\n::after {\n box-sizing: border-box; /* 1 */\n border-width: 0; /* 2 */\n border-style: solid; /* 2 */\n border-color: #e5e7eb; /* 2 */\n}\n\n::before,\n::after {\n --tw-content: '';\n}\n\n/*\n1. Use a consistent sensible line-height in all browsers.\n2. Prevent adjustments of font size after orientation changes in iOS.\n3. Use a more readable tab size.\n4. Use the user's configured `sans` font-family by default.\n5. Use the user's configured `sans` font-feature-settings by default.\n6. Use the user's configured `sans` font-variation-settings by default.\n7. Disable tap highlights on iOS\n*/\n\nhtml,\n:host {\n line-height: 1.5; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n -moz-tab-size: 4; /* 3 */\n -o-tab-size: 4;\n tab-size: 4; /* 3 */\n font-family: ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"; /* 4 */\n font-feature-settings: normal; /* 5 */\n font-variation-settings: normal; /* 6 */\n -webkit-tap-highlight-color: transparent; /* 7 */\n}\n\n/*\n1. Remove the margin in all browsers.\n2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.\n*/\n\nbody {\n margin: 0; /* 1 */\n line-height: inherit; /* 2 */\n}\n\n/*\n1. Add the correct height in Firefox.\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\n3. Ensure horizontal rules are visible by default.\n*/\n\nhr {\n height: 0; /* 1 */\n color: inherit; /* 2 */\n border-top-width: 1px; /* 3 */\n}\n\n/*\nAdd the correct text decoration in Chrome, Edge, and Safari.\n*/\n\nabbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n}\n\n/*\nRemove the default font size and weight for headings.\n*/\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-size: inherit;\n font-weight: inherit;\n}\n\n/*\nReset links to optimize for opt-in styling instead of opt-out.\n*/\n\na {\n color: inherit;\n text-decoration: inherit;\n}\n\n/*\nAdd the correct font weight in Edge and Safari.\n*/\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/*\n1. Use the user's configured `mono` font-family by default.\n2. Use the user's configured `mono` font-feature-settings by default.\n3. Use the user's configured `mono` font-variation-settings by default.\n4. Correct the odd `em` font sizing in all browsers.\n*/\n\ncode,\nkbd,\nsamp,\npre {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace; /* 1 */\n font-feature-settings: normal; /* 2 */\n font-variation-settings: normal; /* 3 */\n font-size: 1em; /* 4 */\n}\n\n/*\nAdd the correct font size in all browsers.\n*/\n\nsmall {\n font-size: 80%;\n}\n\n/*\nPrevent `sub` and `sup` elements from affecting the line height in all browsers.\n*/\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/*\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\n3. Remove gaps between table borders by default.\n*/\n\ntable {\n text-indent: 0; /* 1 */\n border-color: inherit; /* 2 */\n border-collapse: collapse; /* 3 */\n}\n\n/*\n1. Change the font styles in all browsers.\n2. Remove the margin in Firefox and Safari.\n3. Remove default padding in all browsers.\n*/\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-feature-settings: inherit; /* 1 */\n font-variation-settings: inherit; /* 1 */\n font-size: 100%; /* 1 */\n font-weight: inherit; /* 1 */\n line-height: inherit; /* 1 */\n letter-spacing: inherit; /* 1 */\n color: inherit; /* 1 */\n margin: 0; /* 2 */\n padding: 0; /* 3 */\n}\n\n/*\nRemove the inheritance of text transform in Edge and Firefox.\n*/\n\nbutton,\nselect {\n text-transform: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Remove default button styles.\n*/\n\nbutton,\ninput:where([type='button']),\ninput:where([type='reset']),\ninput:where([type='submit']) {\n -webkit-appearance: button; /* 1 */\n background-color: transparent; /* 2 */\n background-image: none; /* 2 */\n}\n\n/*\nUse the modern Firefox focus style for all focusable elements.\n*/\n\n:-moz-focusring {\n outline: auto;\n}\n\n/*\nRemove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)\n*/\n\n:-moz-ui-invalid {\n box-shadow: none;\n}\n\n/*\nAdd the correct vertical alignment in Chrome and Firefox.\n*/\n\nprogress {\n vertical-align: baseline;\n}\n\n/*\nCorrect the cursor style of increment and decrement buttons in Safari.\n*/\n\n::-webkit-inner-spin-button,\n::-webkit-outer-spin-button {\n height: auto;\n}\n\n/*\n1. Correct the odd appearance in Chrome and Safari.\n2. Correct the outline style in Safari.\n*/\n\n[type='search'] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/*\nRemove the inner padding in Chrome and Safari on macOS.\n*/\n\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Change font properties to `inherit` in Safari.\n*/\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/*\nAdd the correct display in Chrome and Safari.\n*/\n\nsummary {\n display: list-item;\n}\n\n/*\nRemoves the default spacing and border for appropriate elements.\n*/\n\nblockquote,\ndl,\ndd,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\nhr,\nfigure,\np,\npre {\n margin: 0;\n}\n\nfieldset {\n margin: 0;\n padding: 0;\n}\n\nlegend {\n padding: 0;\n}\n\nol,\nul,\nmenu {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n/*\nReset default styling for dialogs.\n*/\ndialog {\n padding: 0;\n}\n\n/*\nPrevent resizing textareas horizontally by default.\n*/\n\ntextarea {\n resize: vertical;\n}\n\n/*\n1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)\n2. Set the default placeholder color to the user's configured gray 400 color.\n*/\n\ninput::-moz-placeholder, textarea::-moz-placeholder {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\ninput::placeholder,\ntextarea::placeholder {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\n/*\nSet the default cursor for buttons.\n*/\n\nbutton,\n[role=\"button\"] {\n cursor: pointer;\n}\n\n/*\nMake sure disabled buttons don't get the pointer cursor.\n*/\n:disabled {\n cursor: default;\n}\n\n/*\n1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)\n2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)\n This can trigger a poorly considered lint error in some tools but is included by design.\n*/\n\nimg,\nsvg,\nvideo,\ncanvas,\naudio,\niframe,\nembed,\nobject {\n display: block; /* 1 */\n vertical-align: middle; /* 2 */\n}\n\n/*\nConstrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)\n*/\n\nimg,\nvideo {\n max-width: 100%;\n height: auto;\n}\n\n/* Make elements with the HTML hidden attribute stay hidden by default */\n[hidden] {\n display: none;\n}\n\n*, ::before, ::after {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n\n::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n.container {\n width: 100%;\n}\n@media (min-width: 640px) {\n\n .container {\n max-width: 640px;\n }\n}\n@media (min-width: 768px) {\n\n .container {\n max-width: 768px;\n }\n}\n@media (min-width: 1024px) {\n\n .container {\n max-width: 1024px;\n }\n}\n@media (min-width: 1280px) {\n\n .container {\n max-width: 1280px;\n }\n}\n@media (min-width: 1536px) {\n\n .container {\n max-width: 1536px;\n }\n}\n.pointer-events-none {\n pointer-events: none;\n}\n.static {\n position: static;\n}\n.fixed {\n position: fixed;\n}\n.absolute {\n position: absolute;\n}\n.relative {\n position: relative;\n}\n.inset-0 {\n inset: 0px;\n}\n.top-0 {\n top: 0px;\n}\n.z-10 {\n z-index: 10;\n}\n.z-20 {\n z-index: 20;\n}\n.col-span-2 {\n grid-column: span 2 / span 2;\n}\n.mb-\\[1px\\] {\n margin-bottom: 1px;\n}\n.block {\n display: block;\n}\n.inline-block {\n display: inline-block;\n}\n.inline {\n display: inline;\n}\n.flex {\n display: flex;\n}\n.grid {\n display: grid;\n}\n.contents {\n display: contents;\n}\n.hidden {\n display: none;\n}\n.h-\\[1\\.25rem\\] {\n height: 1.25rem;\n}\n.h-\\[5px\\] {\n height: 5px;\n}\n.h-full {\n height: 100%;\n}\n.w-1 {\n width: 0.25rem;\n}\n.w-\\[2px\\] {\n width: 2px;\n}\n.w-full {\n width: 100%;\n}\n.transform {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.cursor-crosshair {\n cursor: crosshair;\n}\n.place-content-center {\n place-content: center;\n}\n.place-items-center {\n place-items: center;\n}\n.items-center {\n align-items: center;\n}\n.overflow-auto {\n overflow: auto;\n}\n.overflow-hidden {\n overflow: hidden;\n}\n.text-nowrap {\n text-wrap: nowrap;\n}\n.border {\n border-width: 1px;\n}\n.border-r-2 {\n border-right-width: 2px;\n}\n.border-blue-500 {\n --tw-border-opacity: 1;\n border-color: rgb(59 130 246 / var(--tw-border-opacity));\n}\n.border-red-700 {\n --tw-border-opacity: 1;\n border-color: rgb(185 28 28 / var(--tw-border-opacity));\n}\n.border-slate-500 {\n --tw-border-opacity: 1;\n border-color: rgb(100 116 139 / var(--tw-border-opacity));\n}\n.border-b-slate-600 {\n --tw-border-opacity: 1;\n border-bottom-color: rgb(71 85 105 / var(--tw-border-opacity));\n}\n.bg-blue-200 {\n --tw-bg-opacity: 1;\n background-color: rgb(191 219 254 / var(--tw-bg-opacity));\n}\n.bg-blue-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(59 130 246 / var(--tw-bg-opacity));\n}\n.bg-red-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(239 68 68 / var(--tw-bg-opacity));\n}\n.bg-slate-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(241 245 249 / var(--tw-bg-opacity));\n}\n.bg-slate-200 {\n --tw-bg-opacity: 1;\n background-color: rgb(226 232 240 / var(--tw-bg-opacity));\n}\n.bg-opacity-20 {\n --tw-bg-opacity: 0.2;\n}\n.object-fill {\n -o-object-fit: fill;\n object-fit: fill;\n}\n.p-\\[1px\\] {\n padding: 1px;\n}\n.pb-0 {\n padding-bottom: 0px;\n}\n.pl-1 {\n padding-left: 0.25rem;\n}\n.pl-2 {\n padding-left: 0.5rem;\n}\n.pr-0 {\n padding-right: 0px;\n}\n.pr-1 {\n padding-right: 0.25rem;\n}\n.pt-2 {\n padding-top: 0.5rem;\n}\n.text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.opacity-50 {\n opacity: 0.5;\n}\n.shadow {\n --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.shadow-slate-300 {\n --tw-shadow-color: #cbd5e1;\n --tw-shadow: var(--tw-shadow-colored);\n}\n.shadow-slate-600 {\n --tw-shadow-color: #475569;\n --tw-shadow: var(--tw-shadow-colored);\n}\n.filter {\n 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);\n}\n.transition {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.hover\\:bg-slate-400:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(148 163 184 / var(--tw-bg-opacity));\n}\n.peer:hover ~ .peer-hover\\:border-slate-400 {\n --tw-border-opacity: 1;\n border-color: rgb(148 163 184 / var(--tw-border-opacity));\n}\n.peer:hover ~ .peer-hover\\:bg-slate-300 {\n --tw-bg-opacity: 1;\n background-color: rgb(203 213 225 / var(--tw-bg-opacity));\n}\n.data-\\[focused\\]\\:bg-slate-400[data-focused] {\n --tw-bg-opacity: 1;\n background-color: rgb(148 163 184 / var(--tw-bg-opacity));\n}\n.peer[data-focused] ~ .peer-data-\\[focused\\]\\:border-slate-400 {\n --tw-border-opacity: 1;\n border-color: rgb(148 163 184 / var(--tw-border-opacity));\n}\n.peer[data-focused] ~ .peer-data-\\[focused\\]\\:bg-slate-300 {\n --tw-bg-opacity: 1;\n background-color: rgb(203 213 225 / var(--tw-bg-opacity));\n}\n";
|
|
2
|
+
const twStyle = "/*\n! tailwindcss v3.4.4 | MIT License | https://tailwindcss.com\n*//*\n1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)\n2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)\n*/\n\n*,\n::before,\n::after {\n box-sizing: border-box; /* 1 */\n border-width: 0; /* 2 */\n border-style: solid; /* 2 */\n border-color: #e5e7eb; /* 2 */\n}\n\n::before,\n::after {\n --tw-content: '';\n}\n\n/*\n1. Use a consistent sensible line-height in all browsers.\n2. Prevent adjustments of font size after orientation changes in iOS.\n3. Use a more readable tab size.\n4. Use the user's configured `sans` font-family by default.\n5. Use the user's configured `sans` font-feature-settings by default.\n6. Use the user's configured `sans` font-variation-settings by default.\n7. Disable tap highlights on iOS\n*/\n\nhtml,\n:host {\n line-height: 1.5; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n -moz-tab-size: 4; /* 3 */\n -o-tab-size: 4;\n tab-size: 4; /* 3 */\n font-family: ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"; /* 4 */\n font-feature-settings: normal; /* 5 */\n font-variation-settings: normal; /* 6 */\n -webkit-tap-highlight-color: transparent; /* 7 */\n}\n\n/*\n1. Remove the margin in all browsers.\n2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.\n*/\n\nbody {\n margin: 0; /* 1 */\n line-height: inherit; /* 2 */\n}\n\n/*\n1. Add the correct height in Firefox.\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\n3. Ensure horizontal rules are visible by default.\n*/\n\nhr {\n height: 0; /* 1 */\n color: inherit; /* 2 */\n border-top-width: 1px; /* 3 */\n}\n\n/*\nAdd the correct text decoration in Chrome, Edge, and Safari.\n*/\n\nabbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n}\n\n/*\nRemove the default font size and weight for headings.\n*/\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-size: inherit;\n font-weight: inherit;\n}\n\n/*\nReset links to optimize for opt-in styling instead of opt-out.\n*/\n\na {\n color: inherit;\n text-decoration: inherit;\n}\n\n/*\nAdd the correct font weight in Edge and Safari.\n*/\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/*\n1. Use the user's configured `mono` font-family by default.\n2. Use the user's configured `mono` font-feature-settings by default.\n3. Use the user's configured `mono` font-variation-settings by default.\n4. Correct the odd `em` font sizing in all browsers.\n*/\n\ncode,\nkbd,\nsamp,\npre {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace; /* 1 */\n font-feature-settings: normal; /* 2 */\n font-variation-settings: normal; /* 3 */\n font-size: 1em; /* 4 */\n}\n\n/*\nAdd the correct font size in all browsers.\n*/\n\nsmall {\n font-size: 80%;\n}\n\n/*\nPrevent `sub` and `sup` elements from affecting the line height in all browsers.\n*/\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/*\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\n3. Remove gaps between table borders by default.\n*/\n\ntable {\n text-indent: 0; /* 1 */\n border-color: inherit; /* 2 */\n border-collapse: collapse; /* 3 */\n}\n\n/*\n1. Change the font styles in all browsers.\n2. Remove the margin in Firefox and Safari.\n3. Remove default padding in all browsers.\n*/\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-feature-settings: inherit; /* 1 */\n font-variation-settings: inherit; /* 1 */\n font-size: 100%; /* 1 */\n font-weight: inherit; /* 1 */\n line-height: inherit; /* 1 */\n letter-spacing: inherit; /* 1 */\n color: inherit; /* 1 */\n margin: 0; /* 2 */\n padding: 0; /* 3 */\n}\n\n/*\nRemove the inheritance of text transform in Edge and Firefox.\n*/\n\nbutton,\nselect {\n text-transform: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Remove default button styles.\n*/\n\nbutton,\ninput:where([type='button']),\ninput:where([type='reset']),\ninput:where([type='submit']) {\n -webkit-appearance: button; /* 1 */\n background-color: transparent; /* 2 */\n background-image: none; /* 2 */\n}\n\n/*\nUse the modern Firefox focus style for all focusable elements.\n*/\n\n:-moz-focusring {\n outline: auto;\n}\n\n/*\nRemove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)\n*/\n\n:-moz-ui-invalid {\n box-shadow: none;\n}\n\n/*\nAdd the correct vertical alignment in Chrome and Firefox.\n*/\n\nprogress {\n vertical-align: baseline;\n}\n\n/*\nCorrect the cursor style of increment and decrement buttons in Safari.\n*/\n\n::-webkit-inner-spin-button,\n::-webkit-outer-spin-button {\n height: auto;\n}\n\n/*\n1. Correct the odd appearance in Chrome and Safari.\n2. Correct the outline style in Safari.\n*/\n\n[type='search'] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/*\nRemove the inner padding in Chrome and Safari on macOS.\n*/\n\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Change font properties to `inherit` in Safari.\n*/\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/*\nAdd the correct display in Chrome and Safari.\n*/\n\nsummary {\n display: list-item;\n}\n\n/*\nRemoves the default spacing and border for appropriate elements.\n*/\n\nblockquote,\ndl,\ndd,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\nhr,\nfigure,\np,\npre {\n margin: 0;\n}\n\nfieldset {\n margin: 0;\n padding: 0;\n}\n\nlegend {\n padding: 0;\n}\n\nol,\nul,\nmenu {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n/*\nReset default styling for dialogs.\n*/\ndialog {\n padding: 0;\n}\n\n/*\nPrevent resizing textareas horizontally by default.\n*/\n\ntextarea {\n resize: vertical;\n}\n\n/*\n1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)\n2. Set the default placeholder color to the user's configured gray 400 color.\n*/\n\ninput::-moz-placeholder, textarea::-moz-placeholder {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\ninput::placeholder,\ntextarea::placeholder {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\n/*\nSet the default cursor for buttons.\n*/\n\nbutton,\n[role=\"button\"] {\n cursor: pointer;\n}\n\n/*\nMake sure disabled buttons don't get the pointer cursor.\n*/\n:disabled {\n cursor: default;\n}\n\n/*\n1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)\n2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)\n This can trigger a poorly considered lint error in some tools but is included by design.\n*/\n\nimg,\nsvg,\nvideo,\ncanvas,\naudio,\niframe,\nembed,\nobject {\n display: block; /* 1 */\n vertical-align: middle; /* 2 */\n}\n\n/*\nConstrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)\n*/\n\nimg,\nvideo {\n max-width: 100%;\n height: auto;\n}\n\n/* Make elements with the HTML hidden attribute stay hidden by default */\n[hidden] {\n display: none;\n}\n\n*, ::before, ::after {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n\n::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n.container {\n width: 100%;\n}\n@media (min-width: 640px) {\n\n .container {\n max-width: 640px;\n }\n}\n@media (min-width: 768px) {\n\n .container {\n max-width: 768px;\n }\n}\n@media (min-width: 1024px) {\n\n .container {\n max-width: 1024px;\n }\n}\n@media (min-width: 1280px) {\n\n .container {\n max-width: 1280px;\n }\n}\n@media (min-width: 1536px) {\n\n .container {\n max-width: 1536px;\n }\n}\n.pointer-events-none {\n pointer-events: none;\n}\n.static {\n position: static;\n}\n.fixed {\n position: fixed;\n}\n.absolute {\n position: absolute;\n}\n.relative {\n position: relative;\n}\n.inset-0 {\n inset: 0px;\n}\n.top-0 {\n top: 0px;\n}\n.z-10 {\n z-index: 10;\n}\n.z-20 {\n z-index: 20;\n}\n.col-span-2 {\n grid-column: span 2 / span 2;\n}\n.mb-\\[1px\\] {\n margin-bottom: 1px;\n}\n.block {\n display: block;\n}\n.inline-block {\n display: inline-block;\n}\n.inline {\n display: inline;\n}\n.flex {\n display: flex;\n}\n.grid {\n display: grid;\n}\n.contents {\n display: contents;\n}\n.hidden {\n display: none;\n}\n.h-\\[1\\.25rem\\] {\n height: 1.25rem;\n}\n.h-\\[5px\\] {\n height: 5px;\n}\n.h-full {\n height: 100%;\n}\n.w-1 {\n width: 0.25rem;\n}\n.w-\\[2px\\] {\n width: 2px;\n}\n.w-full {\n width: 100%;\n}\n.transform {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.cursor-crosshair {\n cursor: crosshair;\n}\n.resize {\n resize: both;\n}\n.place-content-center {\n place-content: center;\n}\n.place-items-center {\n place-items: center;\n}\n.items-center {\n align-items: center;\n}\n.overflow-auto {\n overflow: auto;\n}\n.overflow-hidden {\n overflow: hidden;\n}\n.text-nowrap {\n text-wrap: nowrap;\n}\n.border {\n border-width: 1px;\n}\n.border-r-2 {\n border-right-width: 2px;\n}\n.border-blue-500 {\n --tw-border-opacity: 1;\n border-color: rgb(59 130 246 / var(--tw-border-opacity));\n}\n.border-red-700 {\n --tw-border-opacity: 1;\n border-color: rgb(185 28 28 / var(--tw-border-opacity));\n}\n.border-slate-500 {\n --tw-border-opacity: 1;\n border-color: rgb(100 116 139 / var(--tw-border-opacity));\n}\n.border-b-slate-600 {\n --tw-border-opacity: 1;\n border-bottom-color: rgb(71 85 105 / var(--tw-border-opacity));\n}\n.bg-blue-200 {\n --tw-bg-opacity: 1;\n background-color: rgb(191 219 254 / var(--tw-bg-opacity));\n}\n.bg-blue-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(59 130 246 / var(--tw-bg-opacity));\n}\n.bg-red-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(239 68 68 / var(--tw-bg-opacity));\n}\n.bg-slate-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(241 245 249 / var(--tw-bg-opacity));\n}\n.bg-slate-200 {\n --tw-bg-opacity: 1;\n background-color: rgb(226 232 240 / var(--tw-bg-opacity));\n}\n.bg-opacity-20 {\n --tw-bg-opacity: 0.2;\n}\n.object-fill {\n -o-object-fit: fill;\n object-fit: fill;\n}\n.p-\\[1px\\] {\n padding: 1px;\n}\n.pb-0 {\n padding-bottom: 0px;\n}\n.pl-1 {\n padding-left: 0.25rem;\n}\n.pl-2 {\n padding-left: 0.5rem;\n}\n.pr-0 {\n padding-right: 0px;\n}\n.pr-1 {\n padding-right: 0.25rem;\n}\n.pt-2 {\n padding-top: 0.5rem;\n}\n.text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.opacity-50 {\n opacity: 0.5;\n}\n.shadow {\n --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.shadow-slate-300 {\n --tw-shadow-color: #cbd5e1;\n --tw-shadow: var(--tw-shadow-colored);\n}\n.shadow-slate-600 {\n --tw-shadow-color: #475569;\n --tw-shadow: var(--tw-shadow-colored);\n}\n.filter {\n 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);\n}\n.transition {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.hover\\:bg-slate-400:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(148 163 184 / var(--tw-bg-opacity));\n}\n.peer:hover ~ .peer-hover\\:border-slate-400 {\n --tw-border-opacity: 1;\n border-color: rgb(148 163 184 / var(--tw-border-opacity));\n}\n.peer:hover ~ .peer-hover\\:bg-slate-300 {\n --tw-bg-opacity: 1;\n background-color: rgb(203 213 225 / var(--tw-bg-opacity));\n}\n.data-\\[focused\\]\\:bg-slate-400[data-focused] {\n --tw-bg-opacity: 1;\n background-color: rgb(148 163 184 / var(--tw-bg-opacity));\n}\n.peer[data-focused] ~ .peer-data-\\[focused\\]\\:border-slate-400 {\n --tw-border-opacity: 1;\n border-color: rgb(148 163 184 / var(--tw-border-opacity));\n}\n.peer[data-focused] ~ .peer-data-\\[focused\\]\\:bg-slate-300 {\n --tw-bg-opacity: 1;\n background-color: rgb(203 213 225 / var(--tw-bg-opacity));\n}\n";
|
|
3
3
|
module.exports = twStyle;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const twStyle = "/*\n! tailwindcss v3.4.4 | MIT License | https://tailwindcss.com\n*//*\n1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)\n2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)\n*/\n\n*,\n::before,\n::after {\n box-sizing: border-box; /* 1 */\n border-width: 0; /* 2 */\n border-style: solid; /* 2 */\n border-color: #e5e7eb; /* 2 */\n}\n\n::before,\n::after {\n --tw-content: '';\n}\n\n/*\n1. Use a consistent sensible line-height in all browsers.\n2. Prevent adjustments of font size after orientation changes in iOS.\n3. Use a more readable tab size.\n4. Use the user's configured `sans` font-family by default.\n5. Use the user's configured `sans` font-feature-settings by default.\n6. Use the user's configured `sans` font-variation-settings by default.\n7. Disable tap highlights on iOS\n*/\n\nhtml,\n:host {\n line-height: 1.5; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n -moz-tab-size: 4; /* 3 */\n -o-tab-size: 4;\n tab-size: 4; /* 3 */\n font-family: ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"; /* 4 */\n font-feature-settings: normal; /* 5 */\n font-variation-settings: normal; /* 6 */\n -webkit-tap-highlight-color: transparent; /* 7 */\n}\n\n/*\n1. Remove the margin in all browsers.\n2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.\n*/\n\nbody {\n margin: 0; /* 1 */\n line-height: inherit; /* 2 */\n}\n\n/*\n1. Add the correct height in Firefox.\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\n3. Ensure horizontal rules are visible by default.\n*/\n\nhr {\n height: 0; /* 1 */\n color: inherit; /* 2 */\n border-top-width: 1px; /* 3 */\n}\n\n/*\nAdd the correct text decoration in Chrome, Edge, and Safari.\n*/\n\nabbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n}\n\n/*\nRemove the default font size and weight for headings.\n*/\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-size: inherit;\n font-weight: inherit;\n}\n\n/*\nReset links to optimize for opt-in styling instead of opt-out.\n*/\n\na {\n color: inherit;\n text-decoration: inherit;\n}\n\n/*\nAdd the correct font weight in Edge and Safari.\n*/\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/*\n1. Use the user's configured `mono` font-family by default.\n2. Use the user's configured `mono` font-feature-settings by default.\n3. Use the user's configured `mono` font-variation-settings by default.\n4. Correct the odd `em` font sizing in all browsers.\n*/\n\ncode,\nkbd,\nsamp,\npre {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace; /* 1 */\n font-feature-settings: normal; /* 2 */\n font-variation-settings: normal; /* 3 */\n font-size: 1em; /* 4 */\n}\n\n/*\nAdd the correct font size in all browsers.\n*/\n\nsmall {\n font-size: 80%;\n}\n\n/*\nPrevent `sub` and `sup` elements from affecting the line height in all browsers.\n*/\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/*\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\n3. Remove gaps between table borders by default.\n*/\n\ntable {\n text-indent: 0; /* 1 */\n border-color: inherit; /* 2 */\n border-collapse: collapse; /* 3 */\n}\n\n/*\n1. Change the font styles in all browsers.\n2. Remove the margin in Firefox and Safari.\n3. Remove default padding in all browsers.\n*/\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-feature-settings: inherit; /* 1 */\n font-variation-settings: inherit; /* 1 */\n font-size: 100%; /* 1 */\n font-weight: inherit; /* 1 */\n line-height: inherit; /* 1 */\n letter-spacing: inherit; /* 1 */\n color: inherit; /* 1 */\n margin: 0; /* 2 */\n padding: 0; /* 3 */\n}\n\n/*\nRemove the inheritance of text transform in Edge and Firefox.\n*/\n\nbutton,\nselect {\n text-transform: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Remove default button styles.\n*/\n\nbutton,\ninput:where([type='button']),\ninput:where([type='reset']),\ninput:where([type='submit']) {\n -webkit-appearance: button; /* 1 */\n background-color: transparent; /* 2 */\n background-image: none; /* 2 */\n}\n\n/*\nUse the modern Firefox focus style for all focusable elements.\n*/\n\n:-moz-focusring {\n outline: auto;\n}\n\n/*\nRemove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)\n*/\n\n:-moz-ui-invalid {\n box-shadow: none;\n}\n\n/*\nAdd the correct vertical alignment in Chrome and Firefox.\n*/\n\nprogress {\n vertical-align: baseline;\n}\n\n/*\nCorrect the cursor style of increment and decrement buttons in Safari.\n*/\n\n::-webkit-inner-spin-button,\n::-webkit-outer-spin-button {\n height: auto;\n}\n\n/*\n1. Correct the odd appearance in Chrome and Safari.\n2. Correct the outline style in Safari.\n*/\n\n[type='search'] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/*\nRemove the inner padding in Chrome and Safari on macOS.\n*/\n\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Change font properties to `inherit` in Safari.\n*/\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/*\nAdd the correct display in Chrome and Safari.\n*/\n\nsummary {\n display: list-item;\n}\n\n/*\nRemoves the default spacing and border for appropriate elements.\n*/\n\nblockquote,\ndl,\ndd,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\nhr,\nfigure,\np,\npre {\n margin: 0;\n}\n\nfieldset {\n margin: 0;\n padding: 0;\n}\n\nlegend {\n padding: 0;\n}\n\nol,\nul,\nmenu {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n/*\nReset default styling for dialogs.\n*/\ndialog {\n padding: 0;\n}\n\n/*\nPrevent resizing textareas horizontally by default.\n*/\n\ntextarea {\n resize: vertical;\n}\n\n/*\n1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)\n2. Set the default placeholder color to the user's configured gray 400 color.\n*/\n\ninput::-moz-placeholder, textarea::-moz-placeholder {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\ninput::placeholder,\ntextarea::placeholder {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\n/*\nSet the default cursor for buttons.\n*/\n\nbutton,\n[role=\"button\"] {\n cursor: pointer;\n}\n\n/*\nMake sure disabled buttons don't get the pointer cursor.\n*/\n:disabled {\n cursor: default;\n}\n\n/*\n1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)\n2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)\n This can trigger a poorly considered lint error in some tools but is included by design.\n*/\n\nimg,\nsvg,\nvideo,\ncanvas,\naudio,\niframe,\nembed,\nobject {\n display: block; /* 1 */\n vertical-align: middle; /* 2 */\n}\n\n/*\nConstrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)\n*/\n\nimg,\nvideo {\n max-width: 100%;\n height: auto;\n}\n\n/* Make elements with the HTML hidden attribute stay hidden by default */\n[hidden] {\n display: none;\n}\n\n*, ::before, ::after {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n\n::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n.container {\n width: 100%;\n}\n@media (min-width: 640px) {\n\n .container {\n max-width: 640px;\n }\n}\n@media (min-width: 768px) {\n\n .container {\n max-width: 768px;\n }\n}\n@media (min-width: 1024px) {\n\n .container {\n max-width: 1024px;\n }\n}\n@media (min-width: 1280px) {\n\n .container {\n max-width: 1280px;\n }\n}\n@media (min-width: 1536px) {\n\n .container {\n max-width: 1536px;\n }\n}\n.pointer-events-none {\n pointer-events: none;\n}\n.static {\n position: static;\n}\n.fixed {\n position: fixed;\n}\n.absolute {\n position: absolute;\n}\n.relative {\n position: relative;\n}\n.inset-0 {\n inset: 0px;\n}\n.top-0 {\n top: 0px;\n}\n.z-10 {\n z-index: 10;\n}\n.z-20 {\n z-index: 20;\n}\n.col-span-2 {\n grid-column: span 2 / span 2;\n}\n.mb-\\[1px\\] {\n margin-bottom: 1px;\n}\n.block {\n display: block;\n}\n.inline-block {\n display: inline-block;\n}\n.inline {\n display: inline;\n}\n.flex {\n display: flex;\n}\n.grid {\n display: grid;\n}\n.contents {\n display: contents;\n}\n.hidden {\n display: none;\n}\n.h-\\[1\\.25rem\\] {\n height: 1.25rem;\n}\n.h-\\[5px\\] {\n height: 5px;\n}\n.h-full {\n height: 100%;\n}\n.w-1 {\n width: 0.25rem;\n}\n.w-\\[2px\\] {\n width: 2px;\n}\n.w-full {\n width: 100%;\n}\n.transform {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.cursor-crosshair {\n cursor: crosshair;\n}\n.place-content-center {\n place-content: center;\n}\n.place-items-center {\n place-items: center;\n}\n.items-center {\n align-items: center;\n}\n.overflow-auto {\n overflow: auto;\n}\n.overflow-hidden {\n overflow: hidden;\n}\n.text-nowrap {\n text-wrap: nowrap;\n}\n.border {\n border-width: 1px;\n}\n.border-r-2 {\n border-right-width: 2px;\n}\n.border-blue-500 {\n --tw-border-opacity: 1;\n border-color: rgb(59 130 246 / var(--tw-border-opacity));\n}\n.border-red-700 {\n --tw-border-opacity: 1;\n border-color: rgb(185 28 28 / var(--tw-border-opacity));\n}\n.border-slate-500 {\n --tw-border-opacity: 1;\n border-color: rgb(100 116 139 / var(--tw-border-opacity));\n}\n.border-b-slate-600 {\n --tw-border-opacity: 1;\n border-bottom-color: rgb(71 85 105 / var(--tw-border-opacity));\n}\n.bg-blue-200 {\n --tw-bg-opacity: 1;\n background-color: rgb(191 219 254 / var(--tw-bg-opacity));\n}\n.bg-blue-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(59 130 246 / var(--tw-bg-opacity));\n}\n.bg-red-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(239 68 68 / var(--tw-bg-opacity));\n}\n.bg-slate-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(241 245 249 / var(--tw-bg-opacity));\n}\n.bg-slate-200 {\n --tw-bg-opacity: 1;\n background-color: rgb(226 232 240 / var(--tw-bg-opacity));\n}\n.bg-opacity-20 {\n --tw-bg-opacity: 0.2;\n}\n.object-fill {\n -o-object-fit: fill;\n object-fit: fill;\n}\n.p-\\[1px\\] {\n padding: 1px;\n}\n.pb-0 {\n padding-bottom: 0px;\n}\n.pl-1 {\n padding-left: 0.25rem;\n}\n.pl-2 {\n padding-left: 0.5rem;\n}\n.pr-0 {\n padding-right: 0px;\n}\n.pr-1 {\n padding-right: 0.25rem;\n}\n.pt-2 {\n padding-top: 0.5rem;\n}\n.text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.opacity-50 {\n opacity: 0.5;\n}\n.shadow {\n --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.shadow-slate-300 {\n --tw-shadow-color: #cbd5e1;\n --tw-shadow: var(--tw-shadow-colored);\n}\n.shadow-slate-600 {\n --tw-shadow-color: #475569;\n --tw-shadow: var(--tw-shadow-colored);\n}\n.filter {\n 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);\n}\n.transition {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.hover\\:bg-slate-400:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(148 163 184 / var(--tw-bg-opacity));\n}\n.peer:hover ~ .peer-hover\\:border-slate-400 {\n --tw-border-opacity: 1;\n border-color: rgb(148 163 184 / var(--tw-border-opacity));\n}\n.peer:hover ~ .peer-hover\\:bg-slate-300 {\n --tw-bg-opacity: 1;\n background-color: rgb(203 213 225 / var(--tw-bg-opacity));\n}\n.data-\\[focused\\]\\:bg-slate-400[data-focused] {\n --tw-bg-opacity: 1;\n background-color: rgb(148 163 184 / var(--tw-bg-opacity));\n}\n.peer[data-focused] ~ .peer-data-\\[focused\\]\\:border-slate-400 {\n --tw-border-opacity: 1;\n border-color: rgb(148 163 184 / var(--tw-border-opacity));\n}\n.peer[data-focused] ~ .peer-data-\\[focused\\]\\:bg-slate-300 {\n --tw-bg-opacity: 1;\n background-color: rgb(203 213 225 / var(--tw-bg-opacity));\n}\n";
|
|
1
|
+
const twStyle = "/*\n! tailwindcss v3.4.4 | MIT License | https://tailwindcss.com\n*//*\n1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)\n2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)\n*/\n\n*,\n::before,\n::after {\n box-sizing: border-box; /* 1 */\n border-width: 0; /* 2 */\n border-style: solid; /* 2 */\n border-color: #e5e7eb; /* 2 */\n}\n\n::before,\n::after {\n --tw-content: '';\n}\n\n/*\n1. Use a consistent sensible line-height in all browsers.\n2. Prevent adjustments of font size after orientation changes in iOS.\n3. Use a more readable tab size.\n4. Use the user's configured `sans` font-family by default.\n5. Use the user's configured `sans` font-feature-settings by default.\n6. Use the user's configured `sans` font-variation-settings by default.\n7. Disable tap highlights on iOS\n*/\n\nhtml,\n:host {\n line-height: 1.5; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n -moz-tab-size: 4; /* 3 */\n -o-tab-size: 4;\n tab-size: 4; /* 3 */\n font-family: ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"; /* 4 */\n font-feature-settings: normal; /* 5 */\n font-variation-settings: normal; /* 6 */\n -webkit-tap-highlight-color: transparent; /* 7 */\n}\n\n/*\n1. Remove the margin in all browsers.\n2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.\n*/\n\nbody {\n margin: 0; /* 1 */\n line-height: inherit; /* 2 */\n}\n\n/*\n1. Add the correct height in Firefox.\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\n3. Ensure horizontal rules are visible by default.\n*/\n\nhr {\n height: 0; /* 1 */\n color: inherit; /* 2 */\n border-top-width: 1px; /* 3 */\n}\n\n/*\nAdd the correct text decoration in Chrome, Edge, and Safari.\n*/\n\nabbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n}\n\n/*\nRemove the default font size and weight for headings.\n*/\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-size: inherit;\n font-weight: inherit;\n}\n\n/*\nReset links to optimize for opt-in styling instead of opt-out.\n*/\n\na {\n color: inherit;\n text-decoration: inherit;\n}\n\n/*\nAdd the correct font weight in Edge and Safari.\n*/\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/*\n1. Use the user's configured `mono` font-family by default.\n2. Use the user's configured `mono` font-feature-settings by default.\n3. Use the user's configured `mono` font-variation-settings by default.\n4. Correct the odd `em` font sizing in all browsers.\n*/\n\ncode,\nkbd,\nsamp,\npre {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace; /* 1 */\n font-feature-settings: normal; /* 2 */\n font-variation-settings: normal; /* 3 */\n font-size: 1em; /* 4 */\n}\n\n/*\nAdd the correct font size in all browsers.\n*/\n\nsmall {\n font-size: 80%;\n}\n\n/*\nPrevent `sub` and `sup` elements from affecting the line height in all browsers.\n*/\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/*\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\n3. Remove gaps between table borders by default.\n*/\n\ntable {\n text-indent: 0; /* 1 */\n border-color: inherit; /* 2 */\n border-collapse: collapse; /* 3 */\n}\n\n/*\n1. Change the font styles in all browsers.\n2. Remove the margin in Firefox and Safari.\n3. Remove default padding in all browsers.\n*/\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-feature-settings: inherit; /* 1 */\n font-variation-settings: inherit; /* 1 */\n font-size: 100%; /* 1 */\n font-weight: inherit; /* 1 */\n line-height: inherit; /* 1 */\n letter-spacing: inherit; /* 1 */\n color: inherit; /* 1 */\n margin: 0; /* 2 */\n padding: 0; /* 3 */\n}\n\n/*\nRemove the inheritance of text transform in Edge and Firefox.\n*/\n\nbutton,\nselect {\n text-transform: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Remove default button styles.\n*/\n\nbutton,\ninput:where([type='button']),\ninput:where([type='reset']),\ninput:where([type='submit']) {\n -webkit-appearance: button; /* 1 */\n background-color: transparent; /* 2 */\n background-image: none; /* 2 */\n}\n\n/*\nUse the modern Firefox focus style for all focusable elements.\n*/\n\n:-moz-focusring {\n outline: auto;\n}\n\n/*\nRemove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)\n*/\n\n:-moz-ui-invalid {\n box-shadow: none;\n}\n\n/*\nAdd the correct vertical alignment in Chrome and Firefox.\n*/\n\nprogress {\n vertical-align: baseline;\n}\n\n/*\nCorrect the cursor style of increment and decrement buttons in Safari.\n*/\n\n::-webkit-inner-spin-button,\n::-webkit-outer-spin-button {\n height: auto;\n}\n\n/*\n1. Correct the odd appearance in Chrome and Safari.\n2. Correct the outline style in Safari.\n*/\n\n[type='search'] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/*\nRemove the inner padding in Chrome and Safari on macOS.\n*/\n\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Change font properties to `inherit` in Safari.\n*/\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/*\nAdd the correct display in Chrome and Safari.\n*/\n\nsummary {\n display: list-item;\n}\n\n/*\nRemoves the default spacing and border for appropriate elements.\n*/\n\nblockquote,\ndl,\ndd,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\nhr,\nfigure,\np,\npre {\n margin: 0;\n}\n\nfieldset {\n margin: 0;\n padding: 0;\n}\n\nlegend {\n padding: 0;\n}\n\nol,\nul,\nmenu {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n/*\nReset default styling for dialogs.\n*/\ndialog {\n padding: 0;\n}\n\n/*\nPrevent resizing textareas horizontally by default.\n*/\n\ntextarea {\n resize: vertical;\n}\n\n/*\n1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)\n2. Set the default placeholder color to the user's configured gray 400 color.\n*/\n\ninput::-moz-placeholder, textarea::-moz-placeholder {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\ninput::placeholder,\ntextarea::placeholder {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\n/*\nSet the default cursor for buttons.\n*/\n\nbutton,\n[role=\"button\"] {\n cursor: pointer;\n}\n\n/*\nMake sure disabled buttons don't get the pointer cursor.\n*/\n:disabled {\n cursor: default;\n}\n\n/*\n1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)\n2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)\n This can trigger a poorly considered lint error in some tools but is included by design.\n*/\n\nimg,\nsvg,\nvideo,\ncanvas,\naudio,\niframe,\nembed,\nobject {\n display: block; /* 1 */\n vertical-align: middle; /* 2 */\n}\n\n/*\nConstrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)\n*/\n\nimg,\nvideo {\n max-width: 100%;\n height: auto;\n}\n\n/* Make elements with the HTML hidden attribute stay hidden by default */\n[hidden] {\n display: none;\n}\n\n*, ::before, ::after {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n\n::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n.container {\n width: 100%;\n}\n@media (min-width: 640px) {\n\n .container {\n max-width: 640px;\n }\n}\n@media (min-width: 768px) {\n\n .container {\n max-width: 768px;\n }\n}\n@media (min-width: 1024px) {\n\n .container {\n max-width: 1024px;\n }\n}\n@media (min-width: 1280px) {\n\n .container {\n max-width: 1280px;\n }\n}\n@media (min-width: 1536px) {\n\n .container {\n max-width: 1536px;\n }\n}\n.pointer-events-none {\n pointer-events: none;\n}\n.static {\n position: static;\n}\n.fixed {\n position: fixed;\n}\n.absolute {\n position: absolute;\n}\n.relative {\n position: relative;\n}\n.inset-0 {\n inset: 0px;\n}\n.top-0 {\n top: 0px;\n}\n.z-10 {\n z-index: 10;\n}\n.z-20 {\n z-index: 20;\n}\n.col-span-2 {\n grid-column: span 2 / span 2;\n}\n.mb-\\[1px\\] {\n margin-bottom: 1px;\n}\n.block {\n display: block;\n}\n.inline-block {\n display: inline-block;\n}\n.inline {\n display: inline;\n}\n.flex {\n display: flex;\n}\n.grid {\n display: grid;\n}\n.contents {\n display: contents;\n}\n.hidden {\n display: none;\n}\n.h-\\[1\\.25rem\\] {\n height: 1.25rem;\n}\n.h-\\[5px\\] {\n height: 5px;\n}\n.h-full {\n height: 100%;\n}\n.w-1 {\n width: 0.25rem;\n}\n.w-\\[2px\\] {\n width: 2px;\n}\n.w-full {\n width: 100%;\n}\n.transform {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.cursor-crosshair {\n cursor: crosshair;\n}\n.resize {\n resize: both;\n}\n.place-content-center {\n place-content: center;\n}\n.place-items-center {\n place-items: center;\n}\n.items-center {\n align-items: center;\n}\n.overflow-auto {\n overflow: auto;\n}\n.overflow-hidden {\n overflow: hidden;\n}\n.text-nowrap {\n text-wrap: nowrap;\n}\n.border {\n border-width: 1px;\n}\n.border-r-2 {\n border-right-width: 2px;\n}\n.border-blue-500 {\n --tw-border-opacity: 1;\n border-color: rgb(59 130 246 / var(--tw-border-opacity));\n}\n.border-red-700 {\n --tw-border-opacity: 1;\n border-color: rgb(185 28 28 / var(--tw-border-opacity));\n}\n.border-slate-500 {\n --tw-border-opacity: 1;\n border-color: rgb(100 116 139 / var(--tw-border-opacity));\n}\n.border-b-slate-600 {\n --tw-border-opacity: 1;\n border-bottom-color: rgb(71 85 105 / var(--tw-border-opacity));\n}\n.bg-blue-200 {\n --tw-bg-opacity: 1;\n background-color: rgb(191 219 254 / var(--tw-bg-opacity));\n}\n.bg-blue-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(59 130 246 / var(--tw-bg-opacity));\n}\n.bg-red-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(239 68 68 / var(--tw-bg-opacity));\n}\n.bg-slate-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(241 245 249 / var(--tw-bg-opacity));\n}\n.bg-slate-200 {\n --tw-bg-opacity: 1;\n background-color: rgb(226 232 240 / var(--tw-bg-opacity));\n}\n.bg-opacity-20 {\n --tw-bg-opacity: 0.2;\n}\n.object-fill {\n -o-object-fit: fill;\n object-fit: fill;\n}\n.p-\\[1px\\] {\n padding: 1px;\n}\n.pb-0 {\n padding-bottom: 0px;\n}\n.pl-1 {\n padding-left: 0.25rem;\n}\n.pl-2 {\n padding-left: 0.5rem;\n}\n.pr-0 {\n padding-right: 0px;\n}\n.pr-1 {\n padding-right: 0.25rem;\n}\n.pt-2 {\n padding-top: 0.5rem;\n}\n.text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.opacity-50 {\n opacity: 0.5;\n}\n.shadow {\n --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.shadow-slate-300 {\n --tw-shadow-color: #cbd5e1;\n --tw-shadow: var(--tw-shadow-colored);\n}\n.shadow-slate-600 {\n --tw-shadow-color: #475569;\n --tw-shadow: var(--tw-shadow-colored);\n}\n.filter {\n 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);\n}\n.transition {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.hover\\:bg-slate-400:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(148 163 184 / var(--tw-bg-opacity));\n}\n.peer:hover ~ .peer-hover\\:border-slate-400 {\n --tw-border-opacity: 1;\n border-color: rgb(148 163 184 / var(--tw-border-opacity));\n}\n.peer:hover ~ .peer-hover\\:bg-slate-300 {\n --tw-bg-opacity: 1;\n background-color: rgb(203 213 225 / var(--tw-bg-opacity));\n}\n.data-\\[focused\\]\\:bg-slate-400[data-focused] {\n --tw-bg-opacity: 1;\n background-color: rgb(148 163 184 / var(--tw-bg-opacity));\n}\n.peer[data-focused] ~ .peer-data-\\[focused\\]\\:border-slate-400 {\n --tw-border-opacity: 1;\n border-color: rgb(148 163 184 / var(--tw-border-opacity));\n}\n.peer[data-focused] ~ .peer-data-\\[focused\\]\\:bg-slate-300 {\n --tw-bg-opacity: 1;\n background-color: rgb(203 213 225 / var(--tw-bg-opacity));\n}\n";
|
|
2
2
|
export {
|
|
3
3
|
twStyle as default
|
|
4
4
|
};
|
package/dist/style.css
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@editframe/elements",
|
|
3
|
-
"version": "0.6.0-beta.
|
|
3
|
+
"version": "0.6.0-beta.14",
|
|
4
4
|
"description": "",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"author": "",
|
|
20
20
|
"license": "UNLICENSED",
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@editframe/assets": "0.6.0-beta.
|
|
22
|
+
"@editframe/assets": "0.6.0-beta.14",
|
|
23
23
|
"@lit/context": "^1.1.1",
|
|
24
24
|
"@lit/task": "^1.0.0",
|
|
25
25
|
"d3": "^7.9.0",
|