@valbuild/ui 0.19.0 → 0.20.2
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/valbuild-ui.cjs.d.ts +3 -3
- package/dist/valbuild-ui.cjs.js +141 -106
- package/dist/valbuild-ui.esm.js +141 -106
- package/package.json +2 -2
- package/src/components/Button.tsx +0 -9
- package/src/components/Dropdown.tsx +32 -25
- package/src/components/RichTextEditor/RichTextEditor.tsx +18 -4
- package/src/components/RichTextEditor/conversion.ts +1 -1
- package/src/components/ValOverlay.tsx +16 -4
- package/src/components/ValOverlayContext.tsx +17 -0
- package/src/components/ValWindow.stories.tsx +5 -2
- package/src/components/ValWindow.tsx +27 -12
- package/src/components/forms/Form.tsx +2 -2
- package/src/stories/RichTextEditor.stories.tsx +2 -2
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { LexicalEditor } from 'lexical';
|
|
2
2
|
import { FC } from 'react';
|
|
3
|
-
import {
|
|
3
|
+
import { RichTextSource, AnyRichTextOptions, ValApi } from '@valbuild/core';
|
|
4
4
|
|
|
5
5
|
interface RichTextEditorProps {
|
|
6
|
-
richtext:
|
|
6
|
+
richtext: RichTextSource<AnyRichTextOptions>;
|
|
7
7
|
onEditor?: (editor: LexicalEditor) => void;
|
|
8
8
|
}
|
|
9
9
|
declare const RichTextEditor: FC<RichTextEditorProps>;
|
|
@@ -47,7 +47,7 @@ type Inputs = {
|
|
|
47
47
|
} | {
|
|
48
48
|
status: "completed";
|
|
49
49
|
type: "richtext";
|
|
50
|
-
data:
|
|
50
|
+
data: RichTextSource<AnyRichTextOptions>;
|
|
51
51
|
};
|
|
52
52
|
};
|
|
53
53
|
|
package/dist/valbuild-ui.cjs.js
CHANGED
|
@@ -48680,10 +48680,9 @@ const Button = ({
|
|
|
48680
48680
|
children,
|
|
48681
48681
|
icon,
|
|
48682
48682
|
// active = false,
|
|
48683
|
-
disabled = false
|
|
48684
|
-
tooltip
|
|
48683
|
+
disabled = false
|
|
48685
48684
|
}) => {
|
|
48686
|
-
return /* @__PURE__ */ jsxRuntime.
|
|
48685
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
48687
48686
|
"button",
|
|
48688
48687
|
{
|
|
48689
48688
|
disabled,
|
|
@@ -48696,19 +48695,10 @@ const Button = ({
|
|
|
48696
48695
|
}
|
|
48697
48696
|
),
|
|
48698
48697
|
onClick,
|
|
48699
|
-
children: [
|
|
48700
|
-
|
|
48701
|
-
|
|
48702
|
-
|
|
48703
|
-
className: `absolute bottom-[-75%] left-0 z-20 bg-black w-fit h-fit text-primary hidden group-hover:block`,
|
|
48704
|
-
children: /* @__PURE__ */ jsxRuntime.jsx("div", { children: tooltip })
|
|
48705
|
-
}
|
|
48706
|
-
),
|
|
48707
|
-
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex flex-row items-center justify-center gap-2", children: [
|
|
48708
|
-
icon && icon,
|
|
48709
|
-
children
|
|
48710
|
-
] })
|
|
48711
|
-
]
|
|
48698
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex flex-row items-center justify-center gap-2", children: [
|
|
48699
|
+
icon && icon,
|
|
48700
|
+
children
|
|
48701
|
+
] })
|
|
48712
48702
|
}
|
|
48713
48703
|
);
|
|
48714
48704
|
};
|
|
@@ -48746,16 +48736,71 @@ const Chevron = ({ className }) => {
|
|
|
48746
48736
|
);
|
|
48747
48737
|
};
|
|
48748
48738
|
const Chevron$1 = Chevron;
|
|
48739
|
+
const ValOverlayContext = React$3.createContext({
|
|
48740
|
+
get api() {
|
|
48741
|
+
throw Error(
|
|
48742
|
+
"ValOverlayContext not found. Ensure components are wrapped by ValOverlayProvider!"
|
|
48743
|
+
);
|
|
48744
|
+
},
|
|
48745
|
+
get session() {
|
|
48746
|
+
throw Error(
|
|
48747
|
+
"ValOverlayContext not found. Ensure components are wrapped by ValOverlayProvider!"
|
|
48748
|
+
);
|
|
48749
|
+
},
|
|
48750
|
+
get theme() {
|
|
48751
|
+
throw Error(
|
|
48752
|
+
"ValOverlayContext not found. Ensure components are wrapped by ValOverlayProvider!"
|
|
48753
|
+
);
|
|
48754
|
+
},
|
|
48755
|
+
get setTheme() {
|
|
48756
|
+
throw Error(
|
|
48757
|
+
"ValOverlayContext not found. Ensure components are wrapped by ValOverlayProvider!"
|
|
48758
|
+
);
|
|
48759
|
+
},
|
|
48760
|
+
get editMode() {
|
|
48761
|
+
throw Error(
|
|
48762
|
+
"ValOverlayContext not found. Ensure components are wrapped by ValOverlayProvider!"
|
|
48763
|
+
);
|
|
48764
|
+
},
|
|
48765
|
+
get setEditMode() {
|
|
48766
|
+
throw Error(
|
|
48767
|
+
"ValOverlayContext not found. Ensure components are wrapped by ValOverlayProvider!"
|
|
48768
|
+
);
|
|
48769
|
+
},
|
|
48770
|
+
get highlight() {
|
|
48771
|
+
throw Error(
|
|
48772
|
+
"ValOverlayContext not found. Ensure components are wrapped by ValOverlayProvider!"
|
|
48773
|
+
);
|
|
48774
|
+
},
|
|
48775
|
+
get setHighlight() {
|
|
48776
|
+
throw Error(
|
|
48777
|
+
"ValOverlayContext not found. Ensure components are wrapped by ValOverlayProvider!"
|
|
48778
|
+
);
|
|
48779
|
+
},
|
|
48780
|
+
get setWindowSize() {
|
|
48781
|
+
throw Error(
|
|
48782
|
+
"ValOverlayContext not found. Ensure components are wrapped by ValOverlayProvider!"
|
|
48783
|
+
);
|
|
48784
|
+
},
|
|
48785
|
+
get windowSize() {
|
|
48786
|
+
throw Error(
|
|
48787
|
+
"ValOverlayContext not found. Ensure components are wrapped by ValOverlayProvider!"
|
|
48788
|
+
);
|
|
48789
|
+
}
|
|
48790
|
+
});
|
|
48791
|
+
function useValOverlayContext() {
|
|
48792
|
+
return React$3.useContext(ValOverlayContext);
|
|
48793
|
+
}
|
|
48749
48794
|
const Dropdown$1 = ({
|
|
48750
48795
|
options,
|
|
48751
48796
|
onChange,
|
|
48752
48797
|
label,
|
|
48753
48798
|
icon
|
|
48754
|
-
// variant = "primary",
|
|
48755
48799
|
}) => {
|
|
48756
48800
|
const [isOpen, setIsOpen] = React$3.useState(false);
|
|
48757
48801
|
const dropdownRef = React$3.useRef(null);
|
|
48758
48802
|
const [selectedOption, setSelectedOption] = React$3.useState(0);
|
|
48803
|
+
const { windowSize } = useValOverlayContext();
|
|
48759
48804
|
const handleToggle = () => {
|
|
48760
48805
|
setIsOpen(!isOpen);
|
|
48761
48806
|
};
|
|
@@ -48775,39 +48820,46 @@ const Dropdown$1 = ({
|
|
|
48775
48820
|
document.removeEventListener("click", handleOutsideClick);
|
|
48776
48821
|
};
|
|
48777
48822
|
}, []);
|
|
48778
|
-
return /* @__PURE__ */ jsxRuntime.
|
|
48779
|
-
|
|
48780
|
-
|
|
48781
|
-
{
|
|
48782
|
-
|
|
48783
|
-
|
|
48784
|
-
|
|
48785
|
-
|
|
48786
|
-
|
|
48787
|
-
|
|
48788
|
-
{
|
|
48789
|
-
|
|
48790
|
-
|
|
48791
|
-
|
|
48792
|
-
|
|
48823
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-[12px]", ref: dropdownRef, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
48824
|
+
Button$1,
|
|
48825
|
+
{
|
|
48826
|
+
onClick: (ev) => {
|
|
48827
|
+
ev.preventDefault();
|
|
48828
|
+
handleToggle();
|
|
48829
|
+
},
|
|
48830
|
+
icon: /* @__PURE__ */ jsxRuntime.jsx(
|
|
48831
|
+
Chevron$1,
|
|
48832
|
+
{
|
|
48833
|
+
className: `rotate-[-90deg] transition-transform duration-150 ease-in-out ${isOpen ? "" : "rotate-[90deg]"}`
|
|
48834
|
+
}
|
|
48835
|
+
),
|
|
48836
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
|
|
48837
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex flex-row items-center justify-center gap-1", children: [
|
|
48793
48838
|
label,
|
|
48794
48839
|
icon && icon
|
|
48795
|
-
] })
|
|
48796
|
-
|
|
48797
|
-
|
|
48798
|
-
|
|
48799
|
-
|
|
48800
|
-
|
|
48801
|
-
|
|
48802
|
-
|
|
48803
|
-
|
|
48804
|
-
|
|
48805
|
-
|
|
48806
|
-
|
|
48807
|
-
|
|
48808
|
-
|
|
48809
|
-
|
|
48810
|
-
|
|
48840
|
+
] }),
|
|
48841
|
+
isOpen && /* @__PURE__ */ jsxRuntime.jsx(
|
|
48842
|
+
"div",
|
|
48843
|
+
{
|
|
48844
|
+
className: "absolute -top-[4px] overflow-scroll shadow-lg -left-2 text-primary bg-border w-fit z-overlay",
|
|
48845
|
+
style: { maxHeight: windowSize == null ? void 0 : windowSize.innerHeight },
|
|
48846
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col ", children: options == null ? void 0 : options.map((option, idx) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
48847
|
+
"button",
|
|
48848
|
+
{
|
|
48849
|
+
onClick: (ev) => {
|
|
48850
|
+
ev.preventDefault();
|
|
48851
|
+
handleSelect(option, idx);
|
|
48852
|
+
},
|
|
48853
|
+
className: `text-left px-2 py-1 hover:bg-base hover:text-highlight ${idx === selectedOption && "font-bold bg-base hover:bg-base truncate"}`,
|
|
48854
|
+
children: option
|
|
48855
|
+
},
|
|
48856
|
+
option
|
|
48857
|
+
)) })
|
|
48858
|
+
}
|
|
48859
|
+
)
|
|
48860
|
+
] })
|
|
48861
|
+
}
|
|
48862
|
+
) });
|
|
48811
48863
|
};
|
|
48812
48864
|
const Dropdown$2 = Dropdown$1;
|
|
48813
48865
|
function _arrayLikeToArray(arr, len) {
|
|
@@ -53129,10 +53181,12 @@ function fromLexicalListItemNode(listItemNode, files) {
|
|
|
53129
53181
|
function onError(error) {
|
|
53130
53182
|
console.error(error);
|
|
53131
53183
|
}
|
|
53184
|
+
const TOOLBAR_HEIGHT = 28;
|
|
53132
53185
|
const RichTextEditor = ({
|
|
53133
53186
|
richtext,
|
|
53134
53187
|
onEditor
|
|
53135
53188
|
}) => {
|
|
53189
|
+
const { windowSize } = useValOverlayContext();
|
|
53136
53190
|
const prePopulatedState = (editor) => {
|
|
53137
53191
|
editor.setEditorState(
|
|
53138
53192
|
editor.parseEditorState({ root: toLexical(richtext) })
|
|
@@ -53143,7 +53197,6 @@ const RichTextEditor = ({
|
|
|
53143
53197
|
editorState: prePopulatedState,
|
|
53144
53198
|
nodes: [LexicalRichText_1.HeadingNode, ImageNode, LexicalList_1.ListNode, LexicalList_1.ListItemNode],
|
|
53145
53199
|
theme: {
|
|
53146
|
-
root: "p-4 bg-fill text-white font-roboto border-b border-highlight",
|
|
53147
53200
|
text: {
|
|
53148
53201
|
bold: "font-semibold",
|
|
53149
53202
|
underline: "underline",
|
|
@@ -53173,7 +53226,16 @@ const RichTextEditor = ({
|
|
|
53173
53226
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
53174
53227
|
LexicalRichTextPlugin_1.RichTextPlugin,
|
|
53175
53228
|
{
|
|
53176
|
-
contentEditable: /* @__PURE__ */ jsxRuntime.jsx(
|
|
53229
|
+
contentEditable: /* @__PURE__ */ jsxRuntime.jsx(
|
|
53230
|
+
"div",
|
|
53231
|
+
{
|
|
53232
|
+
className: "text-white border-b border-highlight font-roboto",
|
|
53233
|
+
style: {
|
|
53234
|
+
minHeight: (windowSize == null ? void 0 : windowSize.innerHeight) ? (windowSize == null ? void 0 : windowSize.innerHeight) - TOOLBAR_HEIGHT : void 0
|
|
53235
|
+
},
|
|
53236
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(LexicalContentEditable, { className: "p-4 outline-none bg-fill" })
|
|
53237
|
+
}
|
|
53238
|
+
),
|
|
53177
53239
|
placeholder: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "", children: "Enter some text..." }),
|
|
53178
53240
|
ErrorBoundary: LexicalErrorBoundary$1
|
|
53179
53241
|
}
|
|
@@ -58413,51 +58475,6 @@ X.propTypes = {
|
|
|
58413
58475
|
};
|
|
58414
58476
|
X.displayName = "X";
|
|
58415
58477
|
const X$1 = X;
|
|
58416
|
-
const ValOverlayContext = React$3.createContext({
|
|
58417
|
-
get api() {
|
|
58418
|
-
throw Error(
|
|
58419
|
-
"ValOverlayContext not found. Ensure components are wrapped by ValOverlayProvider!"
|
|
58420
|
-
);
|
|
58421
|
-
},
|
|
58422
|
-
get session() {
|
|
58423
|
-
throw Error(
|
|
58424
|
-
"ValOverlayContext not found. Ensure components are wrapped by ValOverlayProvider!"
|
|
58425
|
-
);
|
|
58426
|
-
},
|
|
58427
|
-
get theme() {
|
|
58428
|
-
throw Error(
|
|
58429
|
-
"ValOverlayContext not found. Ensure components are wrapped by ValOverlayProvider!"
|
|
58430
|
-
);
|
|
58431
|
-
},
|
|
58432
|
-
get setTheme() {
|
|
58433
|
-
throw Error(
|
|
58434
|
-
"ValOverlayContext not found. Ensure components are wrapped by ValOverlayProvider!"
|
|
58435
|
-
);
|
|
58436
|
-
},
|
|
58437
|
-
get editMode() {
|
|
58438
|
-
throw Error(
|
|
58439
|
-
"ValOverlayContext not found. Ensure components are wrapped by ValOverlayProvider!"
|
|
58440
|
-
);
|
|
58441
|
-
},
|
|
58442
|
-
get setEditMode() {
|
|
58443
|
-
throw Error(
|
|
58444
|
-
"ValOverlayContext not found. Ensure components are wrapped by ValOverlayProvider!"
|
|
58445
|
-
);
|
|
58446
|
-
},
|
|
58447
|
-
get highlight() {
|
|
58448
|
-
throw Error(
|
|
58449
|
-
"ValOverlayContext not found. Ensure components are wrapped by ValOverlayProvider!"
|
|
58450
|
-
);
|
|
58451
|
-
},
|
|
58452
|
-
get setHighlight() {
|
|
58453
|
-
throw Error(
|
|
58454
|
-
"ValOverlayContext not found. Ensure components are wrapped by ValOverlayProvider!"
|
|
58455
|
-
);
|
|
58456
|
-
}
|
|
58457
|
-
});
|
|
58458
|
-
function useValOverlayContext() {
|
|
58459
|
-
return React$3.useContext(ValOverlayContext);
|
|
58460
|
-
}
|
|
58461
58478
|
function ValMenu({ api }) {
|
|
58462
58479
|
const { theme, setTheme, editMode, setEditMode } = useValOverlayContext();
|
|
58463
58480
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-row items-center justify-center w-full h-full space-x-4 text-primary", children: [
|
|
@@ -60479,7 +60496,6 @@ function ValWindow({
|
|
|
60479
60496
|
onClose,
|
|
60480
60497
|
children
|
|
60481
60498
|
}) {
|
|
60482
|
-
var _a, _b;
|
|
60483
60499
|
const [draggedPosition, isInitialized, dragRef, onMouseDownDrag] = useDrag({
|
|
60484
60500
|
position
|
|
60485
60501
|
});
|
|
@@ -60494,14 +60510,30 @@ function ValWindow({
|
|
|
60494
60510
|
document.removeEventListener("keyup", closeOnEscape);
|
|
60495
60511
|
};
|
|
60496
60512
|
}, []);
|
|
60497
|
-
const
|
|
60513
|
+
const { windowSize, setWindowSize } = useValOverlayContext();
|
|
60514
|
+
React$3.useEffect(() => {
|
|
60515
|
+
var _a, _b;
|
|
60516
|
+
if (!windowSize) {
|
|
60517
|
+
setWindowSize({
|
|
60518
|
+
height: MIN_HEIGHT,
|
|
60519
|
+
width: MIN_WIDTH,
|
|
60520
|
+
innerHeight: MIN_HEIGHT - (64 + (((_b = (_a = bottomRef.current) == null ? void 0 : _a.getBoundingClientRect()) == null ? void 0 : _b.height) || 0))
|
|
60521
|
+
});
|
|
60522
|
+
}
|
|
60523
|
+
}, [windowSize]);
|
|
60498
60524
|
const bottomRef = React$3.useRef(null);
|
|
60499
60525
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
60500
60526
|
Resizable,
|
|
60501
60527
|
{
|
|
60502
|
-
width: (
|
|
60503
|
-
height: (
|
|
60504
|
-
onResize: (_, { size
|
|
60528
|
+
width: (windowSize == null ? void 0 : windowSize.width) || MIN_WIDTH,
|
|
60529
|
+
height: (windowSize == null ? void 0 : windowSize.height) || MIN_HEIGHT,
|
|
60530
|
+
onResize: (_, { size }) => {
|
|
60531
|
+
var _a, _b;
|
|
60532
|
+
return setWindowSize({
|
|
60533
|
+
...size,
|
|
60534
|
+
innerHeight: ((windowSize == null ? void 0 : windowSize.height) || MIN_HEIGHT) - (64 + (((_b = (_a = bottomRef.current) == null ? void 0 : _a.getBoundingClientRect()) == null ? void 0 : _b.height) || 0))
|
|
60535
|
+
});
|
|
60536
|
+
},
|
|
60505
60537
|
handle: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "fixed bottom-0 right-0 cursor-se-resize", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
60506
60538
|
"svg",
|
|
60507
60539
|
{
|
|
@@ -60520,7 +60552,7 @@ function ValWindow({
|
|
|
60520
60552
|
) }),
|
|
60521
60553
|
draggableOpts: {},
|
|
60522
60554
|
className: classNames(
|
|
60523
|
-
"absolute inset-0
|
|
60555
|
+
"absolute inset-0 tablet:w-auto tablet:h-auto tablet:min-h-fit tablet:rounded bg-base text-primary drop-shadow-2xl min-w-[320px] transition-opacity duration-300 delay-75",
|
|
60524
60556
|
{
|
|
60525
60557
|
"opacity-0": !isInitialized,
|
|
60526
60558
|
"opacity-100": isInitialized
|
|
@@ -60530,8 +60562,8 @@ function ValWindow({
|
|
|
60530
60562
|
"div",
|
|
60531
60563
|
{
|
|
60532
60564
|
style: {
|
|
60533
|
-
width: (
|
|
60534
|
-
height: (
|
|
60565
|
+
width: (windowSize == null ? void 0 : windowSize.width) || MIN_WIDTH,
|
|
60566
|
+
height: (windowSize == null ? void 0 : windowSize.height) || MIN_HEIGHT,
|
|
60535
60567
|
left: draggedPosition.left,
|
|
60536
60568
|
top: draggedPosition.top
|
|
60537
60569
|
},
|
|
@@ -60579,7 +60611,7 @@ function ValWindow({
|
|
|
60579
60611
|
{
|
|
60580
60612
|
className: "relative overflow-scroll",
|
|
60581
60613
|
style: {
|
|
60582
|
-
height:
|
|
60614
|
+
height: windowSize == null ? void 0 : windowSize.innerHeight
|
|
60583
60615
|
},
|
|
60584
60616
|
children: Array.isArray(children) ? children.slice(1, -1) : children
|
|
60585
60617
|
}
|
|
@@ -60715,6 +60747,7 @@ function ValOverlay({ defaultTheme, api }) {
|
|
|
60715
60747
|
);
|
|
60716
60748
|
});
|
|
60717
60749
|
}, [windowTarget == null ? void 0 : windowTarget.path]);
|
|
60750
|
+
const [windowSize, setWindowSize] = React$3.useState();
|
|
60718
60751
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
60719
60752
|
ValOverlayContext.Provider,
|
|
60720
60753
|
{
|
|
@@ -60726,7 +60759,9 @@ function ValOverlay({ defaultTheme, api }) {
|
|
|
60726
60759
|
setEditMode,
|
|
60727
60760
|
highlight,
|
|
60728
60761
|
setHighlight,
|
|
60729
|
-
setTheme
|
|
60762
|
+
setTheme,
|
|
60763
|
+
windowSize,
|
|
60764
|
+
setWindowSize
|
|
60730
60765
|
},
|
|
60731
60766
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-mode": theme, children: [
|
|
60732
60767
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "fixed -translate-x-1/2 z-overlay left-1/2 bottom-4", children: /* @__PURE__ */ jsxRuntime.jsx(ValMenu, { api }) }),
|
|
@@ -61630,7 +61665,7 @@ const ValDashboard = ({
|
|
|
61630
61665
|
/* @__PURE__ */ jsxRuntime.jsx("div", { children: "content" })
|
|
61631
61666
|
] }) }) });
|
|
61632
61667
|
};
|
|
61633
|
-
const styleCss = '/*\n Need to explicitly set config path, otherwise it may fail to resolve when\n built from outside packages/ui.\n*/\n\n/*\n ! tailwindcss v3.3.2 | MIT License | https://tailwindcss.com\n*/\n\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: currentColor; /* 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.\n*/\n\nhtml {\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: \'Roboto\', sans-serif; /* 4 */\n font-feature-settings: normal; /* 5 */\n font-variation-settings: normal; /* 6 */\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. 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-size: 1em; /* 2 */\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-size: 100%; /* 1 */\n font-weight: inherit; /* 1 */\n line-height: 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,\n[type=\'button\'],\n[type=\'reset\'],\n[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/*\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\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\n[hidden] {\n display: none;\n}\n\n/* For use with Shadow DOM, copied from the TailwindCSS prelude */\n\n:host {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n font-family: Roboto, system-ui, -apple-system, BlinkMacSystemFont,\n "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans",\n "Helvetica Neue", sans-serif;\n font-feature-settings: normal;\n margin: 0;\n\n /* theme properties - if updated remember to update the .storybook/theme.css file as well */\n --val-theme-white: #fcfcfc;\n --val-theme-light-gray: #d6d6d6;\n --val-theme-dark-gray: #575757;\n --val-theme-medium-black: #303030;\n --val-theme-warm-black: #1a1a1a;\n --val-theme-yellow: #ffff00;\n --val-theme-red: #f02929;\n --val-theme-green: #1ced1c;\n\n /* light theme */\n --val-theme-base: var(--val-theme-white);\n --val-theme-highlight: var(--val-theme-yellow);\n --val-theme-border: var(--val-theme-light-gray);\n --val-theme-fill: var(--val-theme-light-gray);\n --val-theme-primary: var(--val-theme-warm-black);\n }\n\n/* dark theme */\n\n*[data-mode="dark"] {\n --val-theme-base: var(--val-theme-warm-black);\n --val-theme-highlight: var(--val-theme-yellow);\n --val-theme-border: var(--val-theme-dark-gray);\n --val-theme-fill: var(--val-theme-medium-black);\n --val-theme-primary: var(--val-theme-white);\n }\n\n/* text area auto-grow */\n\n.grow-wrap {\n /* easy way to plop the elements on top of each other and have them both sized based on the tallest one\'s height */\n display: grid;\n }\n\n.grow-wrap::after {\n /* Note the weird space! Needed to preventy jumpy behavior */\n content: attr(data-replicated-value) " ";\n\n /* This is how textarea text behaves */\n white-space: pre-wrap;\n\n /* Hidden from view, clicks, and screen readers */\n visibility: hidden;\n }\n\n.grow-wrap > textarea {\n /* Firefox shows scrollbar on growth, you can hide like this. */\n overflow: hidden;\n }\n\n.grow-wrap > textarea,\n .grow-wrap::after {\n /* Identical styling required!! */\n border: 1px solid black;\n padding: 0.5rem;\n font: inherit;\n\n /* Place on top of each other */\n grid-area: 1 / 1 / 2 / 2;\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}\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}\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.sticky {\n position: sticky;\n}\n.inset-0 {\n inset: 0px;\n}\n.inset-y-0 {\n top: 0px;\n bottom: 0px;\n}\n.bottom-0 {\n bottom: 0px;\n}\n.bottom-4 {\n bottom: 16px;\n}\n.bottom-\\[-75\\%\\] {\n bottom: -75%;\n}\n.left-0 {\n left: 0px;\n}\n.left-1\\/2 {\n left: 50%;\n}\n.left-\\[50\\%\\] {\n left: 50%;\n}\n.right-0 {\n right: 0px;\n}\n.right-\\[16px\\] {\n right: 16px;\n}\n.top-0 {\n top: 0px;\n}\n.top-\\[50\\%\\] {\n top: 50%;\n}\n.top-\\[68\\.54px\\] {\n top: 68.54px;\n}\n.z-overlay {\n z-index: 4;\n}\n.-my-2 {\n margin-top: -8px;\n margin-bottom: -8px;\n}\n.-my-\\[100px\\] {\n margin-top: -100px;\n margin-bottom: -100px;\n}\n.mx-2 {\n margin-left: 8px;\n margin-right: 8px;\n}\n.mb-4 {\n margin-bottom: 16px;\n}\n.ml-2 {\n margin-left: 8px;\n}\n.ml-4 {\n margin-left: 16px;\n}\n.ml-\\[20px\\] {\n margin-left: 20px;\n}\n.ml-auto {\n margin-left: auto;\n}\n.mt-2 {\n margin-top: 8px;\n}\n.block {\n display: 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-3 {\n height: 12px;\n}\n.h-\\[14px\\] {\n height: 14px;\n}\n.h-\\[1px\\] {\n height: 1px;\n}\n.h-\\[20px\\] {\n height: 20px;\n}\n.h-\\[24px\\] {\n height: 24px;\n}\n.h-\\[32px\\] {\n height: 32px;\n}\n.h-\\[50px\\] {\n height: 50px;\n}\n.h-\\[75px\\] {\n height: 75px;\n}\n.h-\\[9px\\] {\n height: 9px;\n}\n.h-fit {\n height: -moz-fit-content;\n height: fit-content;\n}\n.h-full {\n height: 100%;\n}\n.h-screen {\n height: 100vh;\n}\n.max-h-\\[300px\\] {\n max-height: 300px;\n}\n.min-h-\\[200px\\] {\n min-height: 200px;\n}\n.min-h-\\[300px\\] {\n min-height: 300px;\n}\n.min-h-screen {\n min-height: 100vh;\n}\n.w-3 {\n width: 12px;\n}\n.w-\\[14px\\] {\n width: 14px;\n}\n.w-\\[1px\\] {\n width: 1px;\n}\n.w-\\[20px\\] {\n width: 20px;\n}\n.w-\\[24px\\] {\n width: 24px;\n}\n.w-\\[32px\\] {\n width: 32px;\n}\n.w-\\[9px\\] {\n width: 9px;\n}\n.w-fit {\n width: -moz-fit-content;\n width: fit-content;\n}\n.w-full {\n width: 100%;\n}\n.w-screen {\n width: 100vw;\n}\n.min-w-0 {\n min-width: 0px;\n}\n.min-w-\\[320px\\] {\n min-width: 320px;\n}\n.min-w-\\[500px\\] {\n min-width: 500px;\n}\n.max-w-\\[1000px\\] {\n max-width: 1000px;\n}\n.max-w-\\[300px\\] {\n max-width: 300px;\n}\n.max-w-\\[90vw\\] {\n max-width: 90vw;\n}\n.max-w-full {\n max-width: 100%;\n}\n.flex-auto {\n flex: 1 1 auto;\n}\n.flex-shrink-0 {\n flex-shrink: 0;\n}\n.shrink-0 {\n flex-shrink: 0;\n}\n.flex-grow {\n flex-grow: 1;\n}\n.-translate-x-1\\/2 {\n --tw-translate-x: -50%;\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.-rotate-90 {\n --tw-rotate: -90deg;\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.rotate-90 {\n --tw-rotate: 90deg;\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.rotate-\\[-90deg\\] {\n --tw-rotate: -90deg;\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.rotate-\\[90deg\\] {\n --tw-rotate: 90deg;\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.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-col-resize {\n cursor: col-resize;\n}\n.cursor-grab {\n cursor: grab;\n}\n.cursor-pointer {\n cursor: pointer;\n}\n.cursor-se-resize {\n cursor: se-resize;\n}\n.resize-none {\n resize: none;\n}\n.resize {\n resize: both;\n}\n.list-decimal {\n list-style-type: decimal;\n}\n.list-disc {\n list-style-type: disc;\n}\n.grid-rows-\\[1fr\\2c _min-content\\] {\n grid-template-rows: 1fr min-content;\n}\n.flex-row {\n flex-direction: row;\n}\n.flex-col {\n flex-direction: column;\n}\n.items-start {\n align-items: flex-start;\n}\n.items-end {\n align-items: flex-end;\n}\n.items-center {\n align-items: center;\n}\n.justify-start {\n justify-content: flex-start;\n}\n.justify-end {\n justify-content: flex-end;\n}\n.justify-center {\n justify-content: center;\n}\n.justify-between {\n justify-content: space-between;\n}\n.gap-1 {\n gap: 4px;\n}\n.gap-2 {\n gap: 8px;\n}\n.gap-3 {\n gap: 12px;\n}\n.gap-4 {\n gap: 16px;\n}\n.gap-\\[36px\\] {\n gap: 36px;\n}\n.space-x-4 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(16px * var(--tw-space-x-reverse));\n margin-left: calc(16px * calc(1 - var(--tw-space-x-reverse)));\n}\n.overflow-auto {\n overflow: auto;\n}\n.overflow-hidden {\n overflow: hidden;\n}\n.overflow-clip {\n overflow: clip;\n}\n.overflow-scroll {\n overflow: scroll;\n}\n.overflow-y-scroll {\n overflow-y: scroll;\n}\n.whitespace-nowrap {\n white-space: nowrap;\n}\n.rounded {\n border-radius: 0.25rem;\n}\n.rounded-full {\n border-radius: 9999px;\n}\n.rounded-lg {\n border-radius: 0.5rem;\n}\n.rounded-md {\n border-radius: 0.375rem;\n}\n.rounded-sm {\n border-radius: 0.125rem;\n}\n.border {\n border-width: 1px;\n}\n.border-2 {\n border-width: 2px;\n}\n.border-\\[2px\\] {\n border-width: 2px;\n}\n.border-b {\n border-bottom-width: 1px;\n}\n.border-l {\n border-left-width: 1px;\n}\n.border-r {\n border-right-width: 1px;\n}\n.border-base {\n border-color: var(--val-theme-base);\n}\n.border-border {\n border-color: var(--val-theme-border);\n}\n.border-dark-gray {\n --tw-border-opacity: 1;\n border-color: rgb(87 87 87 / var(--tw-border-opacity));\n}\n.border-highlight {\n border-color: var(--val-theme-highlight);\n}\n.border-primary {\n border-color: var(--val-theme-primary);\n}\n.border-warm-black {\n --tw-border-opacity: 1;\n border-color: rgb(26 26 26 / var(--tw-border-opacity));\n}\n.border-yellow {\n --tw-border-opacity: 1;\n border-color: rgb(255 255 0 / var(--tw-border-opacity));\n}\n.bg-base {\n background-color: var(--val-theme-base);\n}\n.bg-border {\n background-color: var(--val-theme-border);\n}\n.bg-dark-gray {\n --tw-bg-opacity: 1;\n background-color: rgb(87 87 87 / var(--tw-bg-opacity));\n}\n.bg-fill {\n background-color: var(--val-theme-fill);\n}\n.bg-highlight {\n background-color: var(--val-theme-highlight);\n}\n.bg-light-gray {\n --tw-bg-opacity: 1;\n background-color: rgb(214 214 214 / var(--tw-bg-opacity));\n}\n.bg-medium-black {\n --tw-bg-opacity: 1;\n background-color: rgb(48 48 48 / var(--tw-bg-opacity));\n}\n.bg-red {\n --tw-bg-opacity: 1;\n background-color: rgb(240 41 41 / var(--tw-bg-opacity));\n}\n.bg-warm-black {\n --tw-bg-opacity: 1;\n background-color: rgb(26 26 26 / var(--tw-bg-opacity));\n}\n.bg-white {\n --tw-bg-opacity: 1;\n background-color: rgb(252 252 252 / var(--tw-bg-opacity));\n}\n.bg-yellow {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 0 / var(--tw-bg-opacity));\n}\n.fill-white {\n fill: #FCFCFC;\n}\n.stroke-\\[2px\\] {\n stroke-width: 2px;\n}\n.stroke-\\[3px\\] {\n stroke-width: 3px;\n}\n.object-contain {\n -o-object-fit: contain;\n object-fit: contain;\n}\n.p-1 {\n padding: 4px;\n}\n.p-2 {\n padding: 8px;\n}\n.p-4 {\n padding: 16px;\n}\n.px-1 {\n padding-left: 4px;\n padding-right: 4px;\n}\n.px-2 {\n padding-left: 8px;\n padding-right: 8px;\n}\n.px-3 {\n padding-left: 12px;\n padding-right: 12px;\n}\n.px-4 {\n padding-left: 16px;\n padding-right: 16px;\n}\n.px-\\[24px\\] {\n padding-left: 24px;\n padding-right: 24px;\n}\n.py-1 {\n padding-top: 4px;\n padding-bottom: 4px;\n}\n.py-2 {\n padding-top: 8px;\n padding-bottom: 8px;\n}\n.py-3 {\n padding-top: 12px;\n padding-bottom: 12px;\n}\n.py-4 {\n padding-top: 16px;\n padding-bottom: 16px;\n}\n.py-\\[2px\\] {\n padding-top: 2px;\n padding-bottom: 2px;\n}\n.pb-0 {\n padding-bottom: 0px;\n}\n.pr-1 {\n padding-right: 4px;\n}\n.pt-2 {\n padding-top: 8px;\n}\n.pt-4 {\n padding-top: 16px;\n}\n.text-left {\n text-align: left;\n}\n.text-center {\n text-align: center;\n}\n.text-start {\n text-align: start;\n}\n.font-sans {\n font-family: \'Roboto\', sans-serif;\n}\n.font-serif {\n font-family: \'JetBrains Mono\', monospace;\n}\n.text-2xl {\n font-size: 1.5rem;\n line-height: 2rem;\n}\n.text-3xl {\n font-size: 1.875rem;\n line-height: 2.25rem;\n}\n.text-4xl {\n font-size: 2.25rem;\n line-height: 2.5rem;\n}\n.text-\\[12px\\] {\n font-size: 12px;\n}\n.text-\\[14px\\] {\n font-size: 14px;\n}\n.text-base {\n font-size: 1rem;\n line-height: 1.5rem;\n}\n.text-lg {\n font-size: 1.125rem;\n line-height: 1.75rem;\n}\n.text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.text-xl {\n font-size: 1.25rem;\n line-height: 1.75rem;\n}\n.text-xs {\n font-size: 0.75rem;\n line-height: 1rem;\n}\n.font-\\[12px\\] {\n font-weight: 12px;\n}\n.font-\\[400\\] {\n font-weight: 400;\n}\n.font-\\[500\\] {\n font-weight: 500;\n}\n.font-\\[550\\] {\n font-weight: 550;\n}\n.font-bold {\n font-weight: 700;\n}\n.font-extrabold {\n font-weight: 800;\n}\n.font-normal {\n font-weight: 400;\n}\n.font-semibold {\n font-weight: 600;\n}\n.italic {\n font-style: italic;\n}\n.leading-4 {\n line-height: 1rem;\n}\n.tracking-\\[0\\.04em\\] {\n letter-spacing: 0.04em;\n}\n.tracking-wider {\n letter-spacing: 0.05em;\n}\n.text-base {\n color: var(--val-theme-base);\n}\n.text-fill {\n color: var(--val-theme-fill);\n}\n.text-highlight {\n color: var(--val-theme-highlight);\n}\n.text-primary {\n color: var(--val-theme-primary);\n}\n.text-red {\n --tw-text-opacity: 1;\n color: rgb(240 41 41 / var(--tw-text-opacity));\n}\n.text-warm-black {\n --tw-text-opacity: 1;\n color: rgb(26 26 26 / var(--tw-text-opacity));\n}\n.text-white {\n --tw-text-opacity: 1;\n color: rgb(252 252 252 / var(--tw-text-opacity));\n}\n.underline {\n text-decoration-line: underline;\n}\n.line-through {\n text-decoration-line: line-through;\n}\n.opacity-0 {\n opacity: 0;\n}\n.opacity-100 {\n opacity: 1;\n}\n.opacity-50 {\n opacity: 0.5;\n}\n.opacity-75 {\n opacity: 0.75;\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-lg {\n --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px 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.outline-none {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.drop-shadow-2xl {\n --tw-drop-shadow: drop-shadow(0 25px 25px rgb(0 0 0 / 0.15));\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.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-opacity {\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.delay-75 {\n transition-delay: 75ms;\n}\n.duration-150 {\n transition-duration: 150ms;\n}\n.duration-300 {\n transition-duration: 300ms;\n}\n.ease-in-out {\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n}\n.hover\\:w-\\[2px\\]:hover {\n width: 2px;\n}\n.hover\\:cursor-pointer:hover {\n cursor: pointer;\n}\n.hover\\:rounded-lg:hover {\n border-radius: 0.5rem;\n}\n.hover\\:border-highlight:hover {\n border-color: var(--val-theme-highlight);\n}\n.hover\\:border-light-gray:hover {\n --tw-border-opacity: 1;\n border-color: rgb(214 214 214 / var(--tw-border-opacity));\n}\n.hover\\:bg-base:hover {\n background-color: var(--val-theme-base);\n}\n.hover\\:bg-dark-gray:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(87 87 87 / var(--tw-bg-opacity));\n}\n.hover\\:bg-light-gray:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(214 214 214 / var(--tw-bg-opacity));\n}\n.hover\\:bg-light-gray\\/20:hover {\n background-color: rgb(214 214 214 / 0.2);\n}\n.hover\\:bg-warm-black:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(26 26 26 / var(--tw-bg-opacity));\n}\n.hover\\:text-highlight:hover {\n color: var(--val-theme-highlight);\n}\n.hover\\:text-warm-black:hover {\n --tw-text-opacity: 1;\n color: rgb(26 26 26 / var(--tw-text-opacity));\n}\n.hover\\:text-white:hover {\n --tw-text-opacity: 1;\n color: rgb(252 252 252 / var(--tw-text-opacity));\n}\n.focus\\:outline-none:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.focus-visible\\:border-highlight:focus-visible {\n border-color: var(--val-theme-highlight);\n}\n.focus-visible\\:outline-highlight:focus-visible {\n outline-color: var(--val-theme-highlight);\n}\n.disabled\\:border-border:disabled {\n border-color: var(--val-theme-border);\n}\n.disabled\\:bg-fill:disabled {\n background-color: var(--val-theme-fill);\n}\n.disabled\\:text-base:disabled {\n font-size: 1rem;\n line-height: 1.5rem;\n color: var(--val-theme-base);\n}\n.disabled\\:text-dark-gray:disabled {\n --tw-text-opacity: 1;\n color: rgb(87 87 87 / var(--tw-text-opacity));\n}\n.group:hover .group-hover\\:block {\n display: block;\n}\n.group:hover .group-hover\\:bg-dark-gray {\n --tw-bg-opacity: 1;\n background-color: rgb(87 87 87 / var(--tw-bg-opacity));\n}\n.group:hover .group-hover\\:fill-highlight {\n fill: var(--val-theme-highlight);\n}\n:is([data-mode="dark"] .dark\\:border-white) {\n --tw-border-opacity: 1;\n border-color: rgb(252 252 252 / var(--tw-border-opacity));\n}\n:is([data-mode="dark"] .dark\\:hover\\:border-highlight:hover) {\n border-color: var(--val-theme-highlight);\n}\n:is([data-mode="dark"] .hover\\:dark\\:bg-yellow):hover {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 0 / var(--tw-bg-opacity));\n}\n:is([data-mode="dark"] .hover\\:dark\\:text-dark-gray):hover {\n --tw-text-opacity: 1;\n color: rgb(87 87 87 / var(--tw-text-opacity));\n}\n@media (min-width: 640px) {\n\n .tablet\\:block {\n display: block;\n }\n\n .tablet\\:h-auto {\n height: auto;\n }\n\n .tablet\\:min-h-fit {\n min-height: -moz-fit-content;\n min-height: fit-content;\n }\n\n .tablet\\:w-auto {\n width: auto;\n }\n\n .tablet\\:rounded {\n border-radius: 0.25rem;\n }\n}\n';
|
|
61668
|
+
const styleCss = '/*\n Need to explicitly set config path, otherwise it may fail to resolve when\n built from outside packages/ui.\n*/\n\n/*\n ! tailwindcss v3.3.2 | MIT License | https://tailwindcss.com\n*/\n\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: currentColor; /* 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.\n*/\n\nhtml {\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: \'Roboto\', sans-serif; /* 4 */\n font-feature-settings: normal; /* 5 */\n font-variation-settings: normal; /* 6 */\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. 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-size: 1em; /* 2 */\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-size: 100%; /* 1 */\n font-weight: inherit; /* 1 */\n line-height: 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,\n[type=\'button\'],\n[type=\'reset\'],\n[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/*\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\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\n[hidden] {\n display: none;\n}\n\n/* For use with Shadow DOM, copied from the TailwindCSS prelude */\n\n:host {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n font-family: Roboto, system-ui, -apple-system, BlinkMacSystemFont,\n "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans",\n "Helvetica Neue", sans-serif;\n font-feature-settings: normal;\n margin: 0;\n\n /* theme properties - if updated remember to update the .storybook/theme.css file as well */\n --val-theme-white: #fcfcfc;\n --val-theme-light-gray: #d6d6d6;\n --val-theme-dark-gray: #575757;\n --val-theme-medium-black: #303030;\n --val-theme-warm-black: #1a1a1a;\n --val-theme-yellow: #ffff00;\n --val-theme-red: #f02929;\n --val-theme-green: #1ced1c;\n\n /* light theme */\n --val-theme-base: var(--val-theme-white);\n --val-theme-highlight: var(--val-theme-yellow);\n --val-theme-border: var(--val-theme-light-gray);\n --val-theme-fill: var(--val-theme-light-gray);\n --val-theme-primary: var(--val-theme-warm-black);\n }\n\n/* dark theme */\n\n*[data-mode="dark"] {\n --val-theme-base: var(--val-theme-warm-black);\n --val-theme-highlight: var(--val-theme-yellow);\n --val-theme-border: var(--val-theme-dark-gray);\n --val-theme-fill: var(--val-theme-medium-black);\n --val-theme-primary: var(--val-theme-white);\n }\n\n/* text area auto-grow */\n\n.grow-wrap {\n /* easy way to plop the elements on top of each other and have them both sized based on the tallest one\'s height */\n display: grid;\n }\n\n.grow-wrap::after {\n /* Note the weird space! Needed to preventy jumpy behavior */\n content: attr(data-replicated-value) " ";\n\n /* This is how textarea text behaves */\n white-space: pre-wrap;\n\n /* Hidden from view, clicks, and screen readers */\n visibility: hidden;\n }\n\n.grow-wrap > textarea {\n /* Firefox shows scrollbar on growth, you can hide like this. */\n overflow: hidden;\n }\n\n.grow-wrap > textarea,\n .grow-wrap::after {\n /* Identical styling required!! */\n border: 1px solid black;\n padding: 0.5rem;\n font: inherit;\n\n /* Place on top of each other */\n grid-area: 1 / 1 / 2 / 2;\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}\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}\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.sticky {\n position: sticky;\n}\n.inset-0 {\n inset: 0px;\n}\n.inset-y-0 {\n top: 0px;\n bottom: 0px;\n}\n.-left-2 {\n left: -8px;\n}\n.-top-\\[4px\\] {\n top: -4px;\n}\n.bottom-0 {\n bottom: 0px;\n}\n.bottom-4 {\n bottom: 16px;\n}\n.left-0 {\n left: 0px;\n}\n.left-1\\/2 {\n left: 50%;\n}\n.left-\\[50\\%\\] {\n left: 50%;\n}\n.right-0 {\n right: 0px;\n}\n.right-\\[16px\\] {\n right: 16px;\n}\n.top-0 {\n top: 0px;\n}\n.top-\\[50\\%\\] {\n top: 50%;\n}\n.top-\\[68\\.54px\\] {\n top: 68.54px;\n}\n.z-overlay {\n z-index: 4;\n}\n.-my-2 {\n margin-top: -8px;\n margin-bottom: -8px;\n}\n.-my-\\[100px\\] {\n margin-top: -100px;\n margin-bottom: -100px;\n}\n.mx-2 {\n margin-left: 8px;\n margin-right: 8px;\n}\n.mb-4 {\n margin-bottom: 16px;\n}\n.ml-2 {\n margin-left: 8px;\n}\n.ml-4 {\n margin-left: 16px;\n}\n.ml-\\[20px\\] {\n margin-left: 20px;\n}\n.ml-auto {\n margin-left: auto;\n}\n.block {\n display: 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-3 {\n height: 12px;\n}\n.h-\\[14px\\] {\n height: 14px;\n}\n.h-\\[1px\\] {\n height: 1px;\n}\n.h-\\[20px\\] {\n height: 20px;\n}\n.h-\\[24px\\] {\n height: 24px;\n}\n.h-\\[32px\\] {\n height: 32px;\n}\n.h-\\[50px\\] {\n height: 50px;\n}\n.h-\\[75px\\] {\n height: 75px;\n}\n.h-\\[9px\\] {\n height: 9px;\n}\n.h-full {\n height: 100%;\n}\n.h-screen {\n height: 100vh;\n}\n.max-h-\\[300px\\] {\n max-height: 300px;\n}\n.min-h-\\[200px\\] {\n min-height: 200px;\n}\n.min-h-\\[300px\\] {\n min-height: 300px;\n}\n.min-h-screen {\n min-height: 100vh;\n}\n.w-3 {\n width: 12px;\n}\n.w-\\[14px\\] {\n width: 14px;\n}\n.w-\\[1px\\] {\n width: 1px;\n}\n.w-\\[20px\\] {\n width: 20px;\n}\n.w-\\[24px\\] {\n width: 24px;\n}\n.w-\\[32px\\] {\n width: 32px;\n}\n.w-\\[9px\\] {\n width: 9px;\n}\n.w-fit {\n width: -moz-fit-content;\n width: fit-content;\n}\n.w-full {\n width: 100%;\n}\n.w-screen {\n width: 100vw;\n}\n.min-w-0 {\n min-width: 0px;\n}\n.min-w-\\[320px\\] {\n min-width: 320px;\n}\n.min-w-\\[500px\\] {\n min-width: 500px;\n}\n.max-w-\\[1000px\\] {\n max-width: 1000px;\n}\n.max-w-\\[300px\\] {\n max-width: 300px;\n}\n.max-w-\\[90vw\\] {\n max-width: 90vw;\n}\n.flex-auto {\n flex: 1 1 auto;\n}\n.flex-shrink-0 {\n flex-shrink: 0;\n}\n.shrink-0 {\n flex-shrink: 0;\n}\n.flex-grow {\n flex-grow: 1;\n}\n.-translate-x-1\\/2 {\n --tw-translate-x: -50%;\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.-rotate-90 {\n --tw-rotate: -90deg;\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.rotate-90 {\n --tw-rotate: 90deg;\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.rotate-\\[-90deg\\] {\n --tw-rotate: -90deg;\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.rotate-\\[90deg\\] {\n --tw-rotate: 90deg;\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.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-col-resize {\n cursor: col-resize;\n}\n.cursor-grab {\n cursor: grab;\n}\n.cursor-pointer {\n cursor: pointer;\n}\n.cursor-se-resize {\n cursor: se-resize;\n}\n.resize-none {\n resize: none;\n}\n.resize {\n resize: both;\n}\n.list-decimal {\n list-style-type: decimal;\n}\n.list-disc {\n list-style-type: disc;\n}\n.grid-rows-\\[1fr\\2c _min-content\\] {\n grid-template-rows: 1fr min-content;\n}\n.flex-row {\n flex-direction: row;\n}\n.flex-col {\n flex-direction: column;\n}\n.items-start {\n align-items: flex-start;\n}\n.items-end {\n align-items: flex-end;\n}\n.items-center {\n align-items: center;\n}\n.justify-start {\n justify-content: flex-start;\n}\n.justify-end {\n justify-content: flex-end;\n}\n.justify-center {\n justify-content: center;\n}\n.justify-between {\n justify-content: space-between;\n}\n.gap-1 {\n gap: 4px;\n}\n.gap-2 {\n gap: 8px;\n}\n.gap-3 {\n gap: 12px;\n}\n.gap-4 {\n gap: 16px;\n}\n.gap-\\[36px\\] {\n gap: 36px;\n}\n.space-x-4 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(16px * var(--tw-space-x-reverse));\n margin-left: calc(16px * calc(1 - var(--tw-space-x-reverse)));\n}\n.overflow-auto {\n overflow: auto;\n}\n.overflow-hidden {\n overflow: hidden;\n}\n.overflow-clip {\n overflow: clip;\n}\n.overflow-scroll {\n overflow: scroll;\n}\n.overflow-y-scroll {\n overflow-y: scroll;\n}\n.truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.whitespace-nowrap {\n white-space: nowrap;\n}\n.rounded {\n border-radius: 0.25rem;\n}\n.rounded-full {\n border-radius: 9999px;\n}\n.rounded-lg {\n border-radius: 0.5rem;\n}\n.rounded-md {\n border-radius: 0.375rem;\n}\n.rounded-sm {\n border-radius: 0.125rem;\n}\n.border {\n border-width: 1px;\n}\n.border-2 {\n border-width: 2px;\n}\n.border-\\[2px\\] {\n border-width: 2px;\n}\n.border-b {\n border-bottom-width: 1px;\n}\n.border-l {\n border-left-width: 1px;\n}\n.border-r {\n border-right-width: 1px;\n}\n.border-base {\n border-color: var(--val-theme-base);\n}\n.border-border {\n border-color: var(--val-theme-border);\n}\n.border-dark-gray {\n --tw-border-opacity: 1;\n border-color: rgb(87 87 87 / var(--tw-border-opacity));\n}\n.border-highlight {\n border-color: var(--val-theme-highlight);\n}\n.border-primary {\n border-color: var(--val-theme-primary);\n}\n.border-warm-black {\n --tw-border-opacity: 1;\n border-color: rgb(26 26 26 / var(--tw-border-opacity));\n}\n.border-yellow {\n --tw-border-opacity: 1;\n border-color: rgb(255 255 0 / var(--tw-border-opacity));\n}\n.bg-base {\n background-color: var(--val-theme-base);\n}\n.bg-border {\n background-color: var(--val-theme-border);\n}\n.bg-dark-gray {\n --tw-bg-opacity: 1;\n background-color: rgb(87 87 87 / var(--tw-bg-opacity));\n}\n.bg-fill {\n background-color: var(--val-theme-fill);\n}\n.bg-highlight {\n background-color: var(--val-theme-highlight);\n}\n.bg-light-gray {\n --tw-bg-opacity: 1;\n background-color: rgb(214 214 214 / var(--tw-bg-opacity));\n}\n.bg-medium-black {\n --tw-bg-opacity: 1;\n background-color: rgb(48 48 48 / var(--tw-bg-opacity));\n}\n.bg-red {\n --tw-bg-opacity: 1;\n background-color: rgb(240 41 41 / var(--tw-bg-opacity));\n}\n.bg-warm-black {\n --tw-bg-opacity: 1;\n background-color: rgb(26 26 26 / var(--tw-bg-opacity));\n}\n.bg-white {\n --tw-bg-opacity: 1;\n background-color: rgb(252 252 252 / var(--tw-bg-opacity));\n}\n.bg-yellow {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 0 / var(--tw-bg-opacity));\n}\n.fill-white {\n fill: #FCFCFC;\n}\n.stroke-\\[2px\\] {\n stroke-width: 2px;\n}\n.stroke-\\[3px\\] {\n stroke-width: 3px;\n}\n.object-contain {\n -o-object-fit: contain;\n object-fit: contain;\n}\n.p-1 {\n padding: 4px;\n}\n.p-2 {\n padding: 8px;\n}\n.p-4 {\n padding: 16px;\n}\n.px-1 {\n padding-left: 4px;\n padding-right: 4px;\n}\n.px-2 {\n padding-left: 8px;\n padding-right: 8px;\n}\n.px-3 {\n padding-left: 12px;\n padding-right: 12px;\n}\n.px-4 {\n padding-left: 16px;\n padding-right: 16px;\n}\n.px-\\[24px\\] {\n padding-left: 24px;\n padding-right: 24px;\n}\n.py-1 {\n padding-top: 4px;\n padding-bottom: 4px;\n}\n.py-2 {\n padding-top: 8px;\n padding-bottom: 8px;\n}\n.py-3 {\n padding-top: 12px;\n padding-bottom: 12px;\n}\n.py-4 {\n padding-top: 16px;\n padding-bottom: 16px;\n}\n.py-\\[2px\\] {\n padding-top: 2px;\n padding-bottom: 2px;\n}\n.pb-0 {\n padding-bottom: 0px;\n}\n.pr-1 {\n padding-right: 4px;\n}\n.pt-2 {\n padding-top: 8px;\n}\n.pt-4 {\n padding-top: 16px;\n}\n.text-left {\n text-align: left;\n}\n.text-center {\n text-align: center;\n}\n.text-start {\n text-align: start;\n}\n.font-sans {\n font-family: \'Roboto\', sans-serif;\n}\n.font-serif {\n font-family: \'JetBrains Mono\', monospace;\n}\n.text-2xl {\n font-size: 1.5rem;\n line-height: 2rem;\n}\n.text-3xl {\n font-size: 1.875rem;\n line-height: 2.25rem;\n}\n.text-4xl {\n font-size: 2.25rem;\n line-height: 2.5rem;\n}\n.text-\\[12px\\] {\n font-size: 12px;\n}\n.text-base {\n font-size: 1rem;\n line-height: 1.5rem;\n}\n.text-lg {\n font-size: 1.125rem;\n line-height: 1.75rem;\n}\n.text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.text-xl {\n font-size: 1.25rem;\n line-height: 1.75rem;\n}\n.text-xs {\n font-size: 0.75rem;\n line-height: 1rem;\n}\n.font-\\[12px\\] {\n font-weight: 12px;\n}\n.font-\\[400\\] {\n font-weight: 400;\n}\n.font-\\[500\\] {\n font-weight: 500;\n}\n.font-\\[550\\] {\n font-weight: 550;\n}\n.font-bold {\n font-weight: 700;\n}\n.font-extrabold {\n font-weight: 800;\n}\n.font-normal {\n font-weight: 400;\n}\n.font-semibold {\n font-weight: 600;\n}\n.italic {\n font-style: italic;\n}\n.leading-4 {\n line-height: 1rem;\n}\n.tracking-\\[0\\.04em\\] {\n letter-spacing: 0.04em;\n}\n.tracking-wider {\n letter-spacing: 0.05em;\n}\n.text-base {\n color: var(--val-theme-base);\n}\n.text-fill {\n color: var(--val-theme-fill);\n}\n.text-highlight {\n color: var(--val-theme-highlight);\n}\n.text-primary {\n color: var(--val-theme-primary);\n}\n.text-red {\n --tw-text-opacity: 1;\n color: rgb(240 41 41 / var(--tw-text-opacity));\n}\n.text-warm-black {\n --tw-text-opacity: 1;\n color: rgb(26 26 26 / var(--tw-text-opacity));\n}\n.text-white {\n --tw-text-opacity: 1;\n color: rgb(252 252 252 / var(--tw-text-opacity));\n}\n.underline {\n text-decoration-line: underline;\n}\n.line-through {\n text-decoration-line: line-through;\n}\n.opacity-0 {\n opacity: 0;\n}\n.opacity-100 {\n opacity: 1;\n}\n.opacity-50 {\n opacity: 0.5;\n}\n.opacity-75 {\n opacity: 0.75;\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-lg {\n --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px 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.outline-none {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.drop-shadow-2xl {\n --tw-drop-shadow: drop-shadow(0 25px 25px rgb(0 0 0 / 0.15));\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.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-opacity {\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.delay-75 {\n transition-delay: 75ms;\n}\n.duration-150 {\n transition-duration: 150ms;\n}\n.duration-300 {\n transition-duration: 300ms;\n}\n.ease-in-out {\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n}\n.hover\\:w-\\[2px\\]:hover {\n width: 2px;\n}\n.hover\\:cursor-pointer:hover {\n cursor: pointer;\n}\n.hover\\:rounded-lg:hover {\n border-radius: 0.5rem;\n}\n.hover\\:border-highlight:hover {\n border-color: var(--val-theme-highlight);\n}\n.hover\\:border-light-gray:hover {\n --tw-border-opacity: 1;\n border-color: rgb(214 214 214 / var(--tw-border-opacity));\n}\n.hover\\:bg-base:hover {\n background-color: var(--val-theme-base);\n}\n.hover\\:bg-dark-gray:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(87 87 87 / var(--tw-bg-opacity));\n}\n.hover\\:bg-light-gray:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(214 214 214 / var(--tw-bg-opacity));\n}\n.hover\\:bg-light-gray\\/20:hover {\n background-color: rgb(214 214 214 / 0.2);\n}\n.hover\\:bg-warm-black:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(26 26 26 / var(--tw-bg-opacity));\n}\n.hover\\:text-highlight:hover {\n color: var(--val-theme-highlight);\n}\n.hover\\:text-warm-black:hover {\n --tw-text-opacity: 1;\n color: rgb(26 26 26 / var(--tw-text-opacity));\n}\n.hover\\:text-white:hover {\n --tw-text-opacity: 1;\n color: rgb(252 252 252 / var(--tw-text-opacity));\n}\n.focus\\:outline-none:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.focus-visible\\:border-highlight:focus-visible {\n border-color: var(--val-theme-highlight);\n}\n.focus-visible\\:outline-highlight:focus-visible {\n outline-color: var(--val-theme-highlight);\n}\n.disabled\\:border-border:disabled {\n border-color: var(--val-theme-border);\n}\n.disabled\\:bg-fill:disabled {\n background-color: var(--val-theme-fill);\n}\n.disabled\\:text-base:disabled {\n font-size: 1rem;\n line-height: 1.5rem;\n color: var(--val-theme-base);\n}\n.disabled\\:text-dark-gray:disabled {\n --tw-text-opacity: 1;\n color: rgb(87 87 87 / var(--tw-text-opacity));\n}\n.group:hover .group-hover\\:bg-dark-gray {\n --tw-bg-opacity: 1;\n background-color: rgb(87 87 87 / var(--tw-bg-opacity));\n}\n.group:hover .group-hover\\:fill-highlight {\n fill: var(--val-theme-highlight);\n}\n:is([data-mode="dark"] .dark\\:border-white) {\n --tw-border-opacity: 1;\n border-color: rgb(252 252 252 / var(--tw-border-opacity));\n}\n:is([data-mode="dark"] .dark\\:hover\\:border-highlight:hover) {\n border-color: var(--val-theme-highlight);\n}\n:is([data-mode="dark"] .hover\\:dark\\:bg-yellow):hover {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 0 / var(--tw-bg-opacity));\n}\n:is([data-mode="dark"] .hover\\:dark\\:text-dark-gray):hover {\n --tw-text-opacity: 1;\n color: rgb(87 87 87 / var(--tw-text-opacity));\n}\n@media (min-width: 640px) {\n\n .tablet\\:block {\n display: block;\n }\n\n .tablet\\:h-auto {\n height: auto;\n }\n\n .tablet\\:min-h-fit {\n min-height: -moz-fit-content;\n min-height: fit-content;\n }\n\n .tablet\\:w-auto {\n width: auto;\n }\n\n .tablet\\:rounded {\n border-radius: 0.25rem;\n }\n}\n';
|
|
61634
61669
|
function Style() {
|
|
61635
61670
|
return /* @__PURE__ */ jsxRuntime.jsx("style", { children: styleCss });
|
|
61636
61671
|
}
|