@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.
@@ -1,9 +1,9 @@
1
1
  import { LexicalEditor } from 'lexical';
2
2
  import { FC } from 'react';
3
- import { RichText, AnyRichTextOptions, ValApi } from '@valbuild/core';
3
+ import { RichTextSource, AnyRichTextOptions, ValApi } from '@valbuild/core';
4
4
 
5
5
  interface RichTextEditorProps {
6
- richtext: RichText<AnyRichTextOptions>;
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: RichText<AnyRichTextOptions>;
50
+ data: RichTextSource<AnyRichTextOptions>;
51
51
  };
52
52
  };
53
53
 
@@ -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.jsxs(
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
- tooltip && /* @__PURE__ */ jsxRuntime.jsx(
48701
- "div",
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.jsxs("div", { className: "text-[12px]", ref: dropdownRef, children: [
48779
- /* @__PURE__ */ jsxRuntime.jsx(
48780
- Button$1,
48781
- {
48782
- onClick: (ev) => {
48783
- ev.preventDefault();
48784
- handleToggle();
48785
- },
48786
- icon: /* @__PURE__ */ jsxRuntime.jsx(
48787
- Chevron$1,
48788
- {
48789
- className: `rotate-[-90deg] transition-transform duration-150 ease-in-out ${isOpen ? "" : "rotate-[90deg]"}`
48790
- }
48791
- ),
48792
- children: /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex flex-row items-center justify-center gap-1", children: [
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
- isOpen && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute left-0 mt-2 w-48 shadow-lg font-mono text-[14px] text-primary bg-border z-overlay", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "py-1 rounded-md", children: options == null ? void 0 : options.map((option, idx) => /* @__PURE__ */ jsxRuntime.jsx(
48799
- "button",
48800
- {
48801
- onClick: (ev) => {
48802
- ev.preventDefault();
48803
- handleSelect(option, idx);
48804
- },
48805
- className: `w-full text-left px-4 py-2 hover:bg-base hover:text-highlight ${idx === selectedOption && "font-bold bg-base hover:bg-base"}`,
48806
- children: option
48807
- },
48808
- option
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(LexicalContentEditable, { className: "outline-none" }),
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 [size, setSize] = React$3.useState();
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: (size == null ? void 0 : size.width) || MIN_WIDTH,
60503
- height: (size == null ? void 0 : size.height) || MIN_HEIGHT,
60504
- onResize: (_, { size: size2 }) => setSize(size2),
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 w-full 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 max-w-full",
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: (size == null ? void 0 : size.width) || MIN_WIDTH,
60534
- height: (size == null ? void 0 : size.height) || MIN_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: ((size == null ? void 0 : size.height) || MIN_HEIGHT) - (64 + (((_b = (_a = bottomRef.current) == null ? void 0 : _a.getBoundingClientRect()) == null ? void 0 : _b.height) || 0))
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
  }