@valbuild/ui 0.48.1 → 0.49.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -46795,27 +46795,32 @@ function requireReactDom_production_min() {
46795
46795
  reactDom_production_min.version = "18.2.0-next-9e3b772b8-20220608";
46796
46796
  return reactDom_production_min;
46797
46797
  }
46798
- function checkDCE() {
46799
- if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === "undefined" || typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== "function") {
46800
- return;
46801
- }
46802
- if (process.env.NODE_ENV !== "production") {
46803
- throw new Error("^_^");
46798
+ var hasRequiredReactDom;
46799
+ function requireReactDom() {
46800
+ if (hasRequiredReactDom)
46801
+ return reactDom.exports;
46802
+ hasRequiredReactDom = 1;
46803
+ function checkDCE() {
46804
+ if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === "undefined" || typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== "function") {
46805
+ return;
46806
+ }
46807
+ if (process.env.NODE_ENV !== "production") {
46808
+ throw new Error("^_^");
46809
+ }
46810
+ try {
46811
+ __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);
46812
+ } catch (err2) {
46813
+ console.error(err2);
46814
+ }
46804
46815
  }
46805
- try {
46806
- __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);
46807
- } catch (err2) {
46808
- console.error(err2);
46816
+ if (process.env.NODE_ENV === "production") {
46817
+ checkDCE();
46818
+ reactDom.exports = requireReactDom_production_min();
46819
+ } else {
46820
+ reactDom.exports = requireReactDom_development();
46809
46821
  }
46822
+ return reactDom.exports;
46810
46823
  }
46811
- if (process.env.NODE_ENV === "production") {
46812
- checkDCE();
46813
- reactDom.exports = requireReactDom_production_min();
46814
- } else {
46815
- reactDom.exports = requireReactDom_development();
46816
- }
46817
- var reactDomExports = reactDom.exports;
46818
- const $7SXl2$reactdom = /* @__PURE__ */ getDefaultExportFromCjs(reactDomExports);
46819
46824
  var LexicalDragon_prod = {};
46820
46825
  var hasRequiredLexicalDragon_prod;
46821
46826
  function requireLexicalDragon_prod() {
@@ -48948,7 +48953,7 @@ function requireLexicalRichTextPlugin_prod() {
48948
48953
  if (hasRequiredLexicalRichTextPlugin_prod)
48949
48954
  return LexicalRichTextPlugin_prod;
48950
48955
  hasRequiredLexicalRichTextPlugin_prod = 1;
48951
- var b = requireLexicalComposerContext(), g = requireUseLexicalEditable(), l = React$3, m = requireLexicalText(), n = requireLexicalUtils(), p = reactDomExports, t = requireLexicalDragon(), u = LexicalRichText_1, v = "undefined" !== typeof window && "undefined" !== typeof window.document && "undefined" !== typeof window.document.createElement ? l.useLayoutEffect : l.useEffect;
48956
+ var b = requireLexicalComposerContext(), g = requireUseLexicalEditable(), l = React$3, m = requireLexicalText(), n = requireLexicalUtils(), p = requireReactDom(), t = requireLexicalDragon(), u = LexicalRichText_1, v = "undefined" !== typeof window && "undefined" !== typeof window.document && "undefined" !== typeof window.document.createElement ? l.useLayoutEffect : l.useEffect;
48952
48957
  function w(a) {
48953
48958
  return a.getEditorState().read(m.$canShowPlaceholderCurry(a.isComposing()));
48954
48959
  }
@@ -49015,7 +49020,7 @@ function requireLexicalRichTextPlugin_dev() {
49015
49020
  var React2 = React$3;
49016
49021
  var text = requireLexicalText();
49017
49022
  var utils2 = requireLexicalUtils();
49018
- var reactDom2 = reactDomExports;
49023
+ var reactDom2 = requireReactDom();
49019
49024
  var dragon = requireLexicalDragon();
49020
49025
  var richText = LexicalRichText_1;
49021
49026
  const CAN_USE_DOM = typeof window !== "undefined" && typeof window.document !== "undefined" && typeof window.document.createElement !== "undefined";
@@ -50881,16 +50886,16 @@ new Sym("()");
50881
50886
  var VAL_EXTENSION = "_type";
50882
50887
  var FILE_REF_PROP = "_ref";
50883
50888
  function convertFileSource(src) {
50884
- var _src$metadata2;
50889
+ var _src$metadata3, _src$metadata4;
50885
50890
  if (!src[FILE_REF_PROP].startsWith("/public")) {
50886
- var _src$metadata;
50891
+ var _src$metadata, _src$metadata2;
50887
50892
  return {
50888
- url: src[FILE_REF_PROP] + "?sha256=".concat((_src$metadata = src.metadata) === null || _src$metadata === void 0 ? void 0 : _src$metadata.sha256),
50893
+ url: src[FILE_REF_PROP] + ((_src$metadata = src.metadata) !== null && _src$metadata !== void 0 && _src$metadata.sha256 ? "?sha256=".concat((_src$metadata2 = src.metadata) === null || _src$metadata2 === void 0 ? void 0 : _src$metadata2.sha256) : ""),
50889
50894
  metadata: src.metadata
50890
50895
  };
50891
50896
  }
50892
50897
  return {
50893
- url: src[FILE_REF_PROP].slice("/public".length) + "?sha256=".concat((_src$metadata2 = src.metadata) === null || _src$metadata2 === void 0 ? void 0 : _src$metadata2.sha256),
50898
+ url: src[FILE_REF_PROP].slice("/public".length) + ((_src$metadata3 = src.metadata) !== null && _src$metadata3 !== void 0 && _src$metadata3.sha256 ? "?sha256=".concat((_src$metadata4 = src.metadata) === null || _src$metadata4 === void 0 ? void 0 : _src$metadata4.sha256) : ""),
50894
50899
  metadata: src.metadata
50895
50900
  };
50896
50901
  }
@@ -54481,7 +54486,701 @@ function _nonIterableSpread() {
54481
54486
  function _toConsumableArray(arr) {
54482
54487
  return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
54483
54488
  }
54484
- var MIME_TYPE_REGEX = /^data:(image\/(png|jpeg|jpg|gif|webp|bmp|tiff|ico|svg\+xml));base64,/;
54489
+ var EXT_TO_MIME_TYPES = {
54490
+ x3d: "application/vnd.hzn-3d-crossword",
54491
+ "3gp": "video/3gpp",
54492
+ "3g2": "video/3gpp2",
54493
+ mseq: "application/vnd.mseq",
54494
+ pwn: "application/vnd.3m.post-it-notes",
54495
+ plb: "application/vnd.3gpp.pic-bw-large",
54496
+ psb: "application/vnd.3gpp.pic-bw-small",
54497
+ pvb: "application/vnd.3gpp.pic-bw-var",
54498
+ tcap: "application/vnd.3gpp2.tcap",
54499
+ "7z": "application/x-7z-compressed",
54500
+ abw: "application/x-abiword",
54501
+ ace: "application/x-ace-compressed",
54502
+ acc: "application/vnd.americandynamics.acc",
54503
+ acu: "application/vnd.acucobol",
54504
+ atc: "application/vnd.acucorp",
54505
+ adp: "audio/adpcm",
54506
+ aab: "application/x-authorware-bin",
54507
+ aam: "application/x-authorware-map",
54508
+ aas: "application/x-authorware-seg",
54509
+ air: "application/vnd.adobe.air-application-installer-package+zip",
54510
+ swf: "application/x-shockwave-flash",
54511
+ fxp: "application/vnd.adobe.fxp",
54512
+ pdf: "application/pdf",
54513
+ ppd: "application/vnd.cups-ppd",
54514
+ dir: "application/x-director",
54515
+ xdp: "application/vnd.adobe.xdp+xml",
54516
+ xfdf: "application/vnd.adobe.xfdf",
54517
+ aac: "audio/x-aac",
54518
+ ahead: "application/vnd.ahead.space",
54519
+ azf: "application/vnd.airzip.filesecure.azf",
54520
+ azs: "application/vnd.airzip.filesecure.azs",
54521
+ azw: "application/vnd.amazon.ebook",
54522
+ ami: "application/vnd.amiga.ami",
54523
+ "N/A": "application/andrew-inset",
54524
+ apk: "application/vnd.android.package-archive",
54525
+ cii: "application/vnd.anser-web-certificate-issue-initiation",
54526
+ fti: "application/vnd.anser-web-funds-transfer-initiation",
54527
+ atx: "application/vnd.antix.game-component",
54528
+ dmg: "application/x-apple-diskimage",
54529
+ mpkg: "application/vnd.apple.installer+xml",
54530
+ aw: "application/applixware",
54531
+ mp3: "audio/mpeg",
54532
+ les: "application/vnd.hhe.lesson-player",
54533
+ swi: "application/vnd.aristanetworks.swi",
54534
+ s: "text/x-asm",
54535
+ atomcat: "application/atomcat+xml",
54536
+ atomsvc: "application/atomsvc+xml",
54537
+ atom: "application/atom+xml",
54538
+ ac: "application/pkix-attr-cert",
54539
+ aif: "audio/x-aiff",
54540
+ avi: "video/x-msvideo",
54541
+ aep: "application/vnd.audiograph",
54542
+ dxf: "image/vnd.dxf",
54543
+ dwf: "model/vnd.dwf",
54544
+ par: "text/plain-bas",
54545
+ bcpio: "application/x-bcpio",
54546
+ bin: "application/octet-stream",
54547
+ bmp: "image/bmp",
54548
+ torrent: "application/x-bittorrent",
54549
+ cod: "application/vnd.rim.cod",
54550
+ mpm: "application/vnd.blueice.multipass",
54551
+ bmi: "application/vnd.bmi",
54552
+ sh: "application/x-sh",
54553
+ btif: "image/prs.btif",
54554
+ rep: "application/vnd.businessobjects",
54555
+ bz: "application/x-bzip",
54556
+ bz2: "application/x-bzip2",
54557
+ csh: "application/x-csh",
54558
+ c: "text/x-c",
54559
+ cdxml: "application/vnd.chemdraw+xml",
54560
+ css: "text/css",
54561
+ cdx: "chemical/x-cdx",
54562
+ cml: "chemical/x-cml",
54563
+ csml: "chemical/x-csml",
54564
+ cdbcmsg: "application/vnd.contact.cmsg",
54565
+ cla: "application/vnd.claymore",
54566
+ c4g: "application/vnd.clonk.c4group",
54567
+ sub: "image/vnd.dvb.subtitle",
54568
+ cdmia: "application/cdmi-capability",
54569
+ cdmic: "application/cdmi-container",
54570
+ cdmid: "application/cdmi-domain",
54571
+ cdmio: "application/cdmi-object",
54572
+ cdmiq: "application/cdmi-queue",
54573
+ c11amc: "application/vnd.cluetrust.cartomobile-config",
54574
+ c11amz: "application/vnd.cluetrust.cartomobile-config-pkg",
54575
+ ras: "image/x-cmu-raster",
54576
+ dae: "model/vnd.collada+xml",
54577
+ csv: "text/csv",
54578
+ cpt: "application/mac-compactpro",
54579
+ wmlc: "application/vnd.wap.wmlc",
54580
+ cgm: "image/cgm",
54581
+ ice: "x-conference/x-cooltalk",
54582
+ cmx: "image/x-cmx",
54583
+ xar: "application/vnd.xara",
54584
+ cmc: "application/vnd.cosmocaller",
54585
+ cpio: "application/x-cpio",
54586
+ clkx: "application/vnd.crick.clicker",
54587
+ clkk: "application/vnd.crick.clicker.keyboard",
54588
+ clkp: "application/vnd.crick.clicker.palette",
54589
+ clkt: "application/vnd.crick.clicker.template",
54590
+ clkw: "application/vnd.crick.clicker.wordbank",
54591
+ wbs: "application/vnd.criticaltools.wbs+xml",
54592
+ cryptonote: "application/vnd.rig.cryptonote",
54593
+ cif: "chemical/x-cif",
54594
+ cmdf: "chemical/x-cmdf",
54595
+ cu: "application/cu-seeme",
54596
+ cww: "application/prs.cww",
54597
+ curl: "text/vnd.curl",
54598
+ dcurl: "text/vnd.curl.dcurl",
54599
+ mcurl: "text/vnd.curl.mcurl",
54600
+ scurl: "text/vnd.curl.scurl",
54601
+ car: "application/vnd.curl.car",
54602
+ pcurl: "application/vnd.curl.pcurl",
54603
+ cmp: "application/vnd.yellowriver-custom-menu",
54604
+ dssc: "application/dssc+der",
54605
+ xdssc: "application/dssc+xml",
54606
+ deb: "application/x-debian-package",
54607
+ uva: "audio/vnd.dece.audio",
54608
+ uvi: "image/vnd.dece.graphic",
54609
+ uvh: "video/vnd.dece.hd",
54610
+ uvm: "video/vnd.dece.mobile",
54611
+ uvu: "video/vnd.uvvu.mp4",
54612
+ uvp: "video/vnd.dece.pd",
54613
+ uvs: "video/vnd.dece.sd",
54614
+ uvv: "video/vnd.dece.video",
54615
+ dvi: "application/x-dvi",
54616
+ seed: "application/vnd.fdsn.seed",
54617
+ dtb: "application/x-dtbook+xml",
54618
+ res: "application/x-dtbresource+xml",
54619
+ ait: "application/vnd.dvb.ait",
54620
+ svc: "application/vnd.dvb.service",
54621
+ eol: "audio/vnd.digital-winds",
54622
+ djvu: "image/vnd.djvu",
54623
+ dtd: "application/xml-dtd",
54624
+ mlp: "application/vnd.dolby.mlp",
54625
+ wad: "application/x-doom",
54626
+ dpg: "application/vnd.dpgraph",
54627
+ dra: "audio/vnd.dra",
54628
+ dfac: "application/vnd.dreamfactory",
54629
+ dts: "audio/vnd.dts",
54630
+ dtshd: "audio/vnd.dts.hd",
54631
+ dwg: "image/vnd.dwg",
54632
+ geo: "application/vnd.dynageo",
54633
+ es: "application/ecmascript",
54634
+ mag: "application/vnd.ecowin.chart",
54635
+ mmr: "image/vnd.fujixerox.edmics-mmr",
54636
+ rlc: "image/vnd.fujixerox.edmics-rlc",
54637
+ exi: "application/exi",
54638
+ mgz: "application/vnd.proteus.magazine",
54639
+ epub: "application/epub+zip",
54640
+ eml: "message/rfc822",
54641
+ nml: "application/vnd.enliven",
54642
+ xpr: "application/vnd.is-xpr",
54643
+ xif: "image/vnd.xiff",
54644
+ xfdl: "application/vnd.xfdl",
54645
+ emma: "application/emma+xml",
54646
+ ez2: "application/vnd.ezpix-album",
54647
+ ez3: "application/vnd.ezpix-package",
54648
+ fst: "image/vnd.fst",
54649
+ fvt: "video/vnd.fvt",
54650
+ fbs: "image/vnd.fastbidsheet",
54651
+ fe_launch: "application/vnd.denovo.fcselayout-link",
54652
+ f4v: "video/x-f4v",
54653
+ flv: "video/x-flv",
54654
+ fpx: "image/vnd.fpx",
54655
+ npx: "image/vnd.net-fpx",
54656
+ flx: "text/vnd.fmi.flexstor",
54657
+ fli: "video/x-fli",
54658
+ ftc: "application/vnd.fluxtime.clip",
54659
+ fdf: "application/vnd.fdf",
54660
+ f: "text/x-fortran",
54661
+ mif: "application/vnd.mif",
54662
+ fm: "application/vnd.framemaker",
54663
+ fh: "image/x-freehand",
54664
+ fsc: "application/vnd.fsc.weblaunch",
54665
+ fnc: "application/vnd.frogans.fnc",
54666
+ ltf: "application/vnd.frogans.ltf",
54667
+ ddd: "application/vnd.fujixerox.ddd",
54668
+ xdw: "application/vnd.fujixerox.docuworks",
54669
+ xbd: "application/vnd.fujixerox.docuworks.binder",
54670
+ oas: "application/vnd.fujitsu.oasys",
54671
+ oa2: "application/vnd.fujitsu.oasys2",
54672
+ oa3: "application/vnd.fujitsu.oasys3",
54673
+ fg5: "application/vnd.fujitsu.oasysgp",
54674
+ bh2: "application/vnd.fujitsu.oasysprs",
54675
+ spl: "application/x-futuresplash",
54676
+ fzs: "application/vnd.fuzzysheet",
54677
+ g3: "image/g3fax",
54678
+ gmx: "application/vnd.gmx",
54679
+ gtw: "model/vnd.gtw",
54680
+ txd: "application/vnd.genomatix.tuxedo",
54681
+ ggb: "application/vnd.geogebra.file",
54682
+ ggt: "application/vnd.geogebra.tool",
54683
+ gdl: "model/vnd.gdl",
54684
+ gex: "application/vnd.geometry-explorer",
54685
+ gxt: "application/vnd.geonext",
54686
+ g2w: "application/vnd.geoplan",
54687
+ g3w: "application/vnd.geospace",
54688
+ gsf: "application/x-font-ghostscript",
54689
+ bdf: "application/x-font-bdf",
54690
+ gtar: "application/x-gtar",
54691
+ texinfo: "application/x-texinfo",
54692
+ gnumeric: "application/x-gnumeric",
54693
+ kml: "application/vnd.google-earth.kml+xml",
54694
+ kmz: "application/vnd.google-earth.kmz",
54695
+ gqf: "application/vnd.grafeq",
54696
+ gif: "image/gif",
54697
+ gv: "text/vnd.graphviz",
54698
+ gac: "application/vnd.groove-account",
54699
+ ghf: "application/vnd.groove-help",
54700
+ gim: "application/vnd.groove-identity-message",
54701
+ grv: "application/vnd.groove-injector",
54702
+ gtm: "application/vnd.groove-tool-message",
54703
+ tpl: "application/vnd.groove-tool-template",
54704
+ vcg: "application/vnd.groove-vcard",
54705
+ h261: "video/h261",
54706
+ h263: "video/h263",
54707
+ h264: "video/h264",
54708
+ hpid: "application/vnd.hp-hpid",
54709
+ hps: "application/vnd.hp-hps",
54710
+ hdf: "application/x-hdf",
54711
+ rip: "audio/vnd.rip",
54712
+ hbci: "application/vnd.hbci",
54713
+ jlt: "application/vnd.hp-jlyt",
54714
+ pcl: "application/vnd.hp-pcl",
54715
+ hpgl: "application/vnd.hp-hpgl",
54716
+ hvs: "application/vnd.yamaha.hv-script",
54717
+ hvd: "application/vnd.yamaha.hv-dic",
54718
+ hvp: "application/vnd.yamaha.hv-voice",
54719
+ "sfd-hdstx": "application/vnd.hydrostatix.sof-data",
54720
+ stk: "application/hyperstudio",
54721
+ hal: "application/vnd.hal+xml",
54722
+ html: "text/html",
54723
+ irm: "application/vnd.ibm.rights-management",
54724
+ sc: "application/vnd.ibm.secure-container",
54725
+ ics: "text/calendar",
54726
+ icc: "application/vnd.iccprofile",
54727
+ ico: "image/x-icon",
54728
+ igl: "application/vnd.igloader",
54729
+ ief: "image/ief",
54730
+ ivp: "application/vnd.immervision-ivp",
54731
+ ivu: "application/vnd.immervision-ivu",
54732
+ rif: "application/reginfo+xml",
54733
+ "3dml": "text/vnd.in3d.3dml",
54734
+ spot: "text/vnd.in3d.spot",
54735
+ igs: "model/iges",
54736
+ i2g: "application/vnd.intergeo",
54737
+ cdy: "application/vnd.cinderella",
54738
+ xpw: "application/vnd.intercon.formnet",
54739
+ fcs: "application/vnd.isac.fcs",
54740
+ ipfix: "application/ipfix",
54741
+ cer: "application/pkix-cert",
54742
+ pki: "application/pkixcmp",
54743
+ crl: "application/pkix-crl",
54744
+ pkipath: "application/pkix-pkipath",
54745
+ igm: "application/vnd.insors.igm",
54746
+ rcprofile: "application/vnd.ipunplugged.rcprofile",
54747
+ irp: "application/vnd.irepository.package+xml",
54748
+ jad: "text/vnd.sun.j2me.app-descriptor",
54749
+ jar: "application/java-archive",
54750
+ "class": "application/java-vm",
54751
+ jnlp: "application/x-java-jnlp-file",
54752
+ ser: "application/java-serialized-object",
54753
+ java: "text/x-java-source,java",
54754
+ js: "application/javascript",
54755
+ json: "application/json",
54756
+ joda: "application/vnd.joost.joda-archive",
54757
+ jpm: "video/jpm",
54758
+ jpeg: "image/jpeg",
54759
+ jpg: "image/jpeg",
54760
+ pjpeg: "image/pjpeg",
54761
+ jpgv: "video/jpeg",
54762
+ ktz: "application/vnd.kahootz",
54763
+ mmd: "application/vnd.chipnuts.karaoke-mmd",
54764
+ karbon: "application/vnd.kde.karbon",
54765
+ chrt: "application/vnd.kde.kchart",
54766
+ kfo: "application/vnd.kde.kformula",
54767
+ flw: "application/vnd.kde.kivio",
54768
+ kon: "application/vnd.kde.kontour",
54769
+ kpr: "application/vnd.kde.kpresenter",
54770
+ ksp: "application/vnd.kde.kspread",
54771
+ kwd: "application/vnd.kde.kword",
54772
+ htke: "application/vnd.kenameaapp",
54773
+ kia: "application/vnd.kidspiration",
54774
+ kne: "application/vnd.kinar",
54775
+ sse: "application/vnd.kodak-descriptor",
54776
+ lasxml: "application/vnd.las.las+xml",
54777
+ latex: "application/x-latex",
54778
+ lbd: "application/vnd.llamagraphics.life-balance.desktop",
54779
+ lbe: "application/vnd.llamagraphics.life-balance.exchange+xml",
54780
+ jam: "application/vnd.jam",
54781
+ "123": "application/vnd.lotus-1-2-3",
54782
+ apr: "application/vnd.lotus-approach",
54783
+ pre: "application/vnd.lotus-freelance",
54784
+ nsf: "application/vnd.lotus-notes",
54785
+ org: "application/vnd.lotus-organizer",
54786
+ scm: "application/vnd.lotus-screencam",
54787
+ lwp: "application/vnd.lotus-wordpro",
54788
+ lvp: "audio/vnd.lucent.voice",
54789
+ m3u: "audio/x-mpegurl",
54790
+ m4v: "video/x-m4v",
54791
+ hqx: "application/mac-binhex40",
54792
+ portpkg: "application/vnd.macports.portpkg",
54793
+ mgp: "application/vnd.osgeo.mapguide.package",
54794
+ mrc: "application/marc",
54795
+ mrcx: "application/marcxml+xml",
54796
+ mxf: "application/mxf",
54797
+ nbp: "application/vnd.wolfram.player",
54798
+ ma: "application/mathematica",
54799
+ mathml: "application/mathml+xml",
54800
+ mbox: "application/mbox",
54801
+ mc1: "application/vnd.medcalcdata",
54802
+ mscml: "application/mediaservercontrol+xml",
54803
+ cdkey: "application/vnd.mediastation.cdkey",
54804
+ mwf: "application/vnd.mfer",
54805
+ mfm: "application/vnd.mfmp",
54806
+ msh: "model/mesh",
54807
+ mads: "application/mads+xml",
54808
+ mets: "application/mets+xml",
54809
+ mods: "application/mods+xml",
54810
+ meta4: "application/metalink4+xml",
54811
+ mcd: "application/vnd.mcd",
54812
+ flo: "application/vnd.micrografx.flo",
54813
+ igx: "application/vnd.micrografx.igx",
54814
+ es3: "application/vnd.eszigno3+xml",
54815
+ mdb: "application/x-msaccess",
54816
+ asf: "video/x-ms-asf",
54817
+ exe: "application/x-msdownload",
54818
+ cil: "application/vnd.ms-artgalry",
54819
+ cab: "application/vnd.ms-cab-compressed",
54820
+ ims: "application/vnd.ms-ims",
54821
+ application: "application/x-ms-application",
54822
+ clp: "application/x-msclip",
54823
+ mdi: "image/vnd.ms-modi",
54824
+ eot: "application/vnd.ms-fontobject",
54825
+ xls: "application/vnd.ms-excel",
54826
+ xlam: "application/vnd.ms-excel.addin.macroenabled.12",
54827
+ xlsb: "application/vnd.ms-excel.sheet.binary.macroenabled.12",
54828
+ xltm: "application/vnd.ms-excel.template.macroenabled.12",
54829
+ xlsm: "application/vnd.ms-excel.sheet.macroenabled.12",
54830
+ chm: "application/vnd.ms-htmlhelp",
54831
+ crd: "application/x-mscardfile",
54832
+ lrm: "application/vnd.ms-lrm",
54833
+ mvb: "application/x-msmediaview",
54834
+ mny: "application/x-msmoney",
54835
+ pptx: "application/vnd.openxmlformats-officedocument.presentationml.presentation",
54836
+ sldx: "application/vnd.openxmlformats-officedocument.presentationml.slide",
54837
+ ppsx: "application/vnd.openxmlformats-officedocument.presentationml.slideshow",
54838
+ potx: "application/vnd.openxmlformats-officedocument.presentationml.template",
54839
+ xlsx: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
54840
+ xltx: "application/vnd.openxmlformats-officedocument.spreadsheetml.template",
54841
+ docx: "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
54842
+ dotx: "application/vnd.openxmlformats-officedocument.wordprocessingml.template",
54843
+ obd: "application/x-msbinder",
54844
+ thmx: "application/vnd.ms-officetheme",
54845
+ onetoc: "application/onenote",
54846
+ pya: "audio/vnd.ms-playready.media.pya",
54847
+ pyv: "video/vnd.ms-playready.media.pyv",
54848
+ ppt: "application/vnd.ms-powerpoint",
54849
+ ppam: "application/vnd.ms-powerpoint.addin.macroenabled.12",
54850
+ sldm: "application/vnd.ms-powerpoint.slide.macroenabled.12",
54851
+ pptm: "application/vnd.ms-powerpoint.presentation.macroenabled.12",
54852
+ ppsm: "application/vnd.ms-powerpoint.slideshow.macroenabled.12",
54853
+ potm: "application/vnd.ms-powerpoint.template.macroenabled.12",
54854
+ mpp: "application/vnd.ms-project",
54855
+ pub: "application/x-mspublisher",
54856
+ scd: "application/x-msschedule",
54857
+ xap: "application/x-silverlight-app",
54858
+ stl: "application/vnd.ms-pki.stl",
54859
+ cat: "application/vnd.ms-pki.seccat",
54860
+ vsd: "application/vnd.visio",
54861
+ vsdx: "application/vnd.visio2013",
54862
+ wm: "video/x-ms-wm",
54863
+ wma: "audio/x-ms-wma",
54864
+ wax: "audio/x-ms-wax",
54865
+ wmx: "video/x-ms-wmx",
54866
+ wmd: "application/x-ms-wmd",
54867
+ wpl: "application/vnd.ms-wpl",
54868
+ wmz: "application/x-ms-wmz",
54869
+ wmv: "video/x-ms-wmv",
54870
+ wvx: "video/x-ms-wvx",
54871
+ wmf: "application/x-msmetafile",
54872
+ trm: "application/x-msterminal",
54873
+ doc: "application/msword",
54874
+ docm: "application/vnd.ms-word.document.macroenabled.12",
54875
+ dotm: "application/vnd.ms-word.template.macroenabled.12",
54876
+ wri: "application/x-mswrite",
54877
+ wps: "application/vnd.ms-works",
54878
+ xbap: "application/x-ms-xbap",
54879
+ xps: "application/vnd.ms-xpsdocument",
54880
+ mid: "audio/midi",
54881
+ mpy: "application/vnd.ibm.minipay",
54882
+ afp: "application/vnd.ibm.modcap",
54883
+ rms: "application/vnd.jcp.javame.midlet-rms",
54884
+ tmo: "application/vnd.tmobile-livetv",
54885
+ prc: "application/x-mobipocket-ebook",
54886
+ mbk: "application/vnd.mobius.mbk",
54887
+ dis: "application/vnd.mobius.dis",
54888
+ plc: "application/vnd.mobius.plc",
54889
+ mqy: "application/vnd.mobius.mqy",
54890
+ msl: "application/vnd.mobius.msl",
54891
+ txf: "application/vnd.mobius.txf",
54892
+ daf: "application/vnd.mobius.daf",
54893
+ fly: "text/vnd.fly",
54894
+ mpc: "application/vnd.mophun.certificate",
54895
+ mpn: "application/vnd.mophun.application",
54896
+ mj2: "video/mj2",
54897
+ mpga: "audio/mpeg",
54898
+ mxu: "video/vnd.mpegurl",
54899
+ mpeg: "video/mpeg",
54900
+ m21: "application/mp21",
54901
+ mp4a: "audio/mp4",
54902
+ mp4: "video/mp4",
54903
+ m3u8: "application/vnd.apple.mpegurl",
54904
+ mus: "application/vnd.musician",
54905
+ msty: "application/vnd.muvee.style",
54906
+ mxml: "application/xv+xml",
54907
+ ngdat: "application/vnd.nokia.n-gage.data",
54908
+ "n-gage": "application/vnd.nokia.n-gage.symbian.install",
54909
+ ncx: "application/x-dtbncx+xml",
54910
+ nc: "application/x-netcdf",
54911
+ nlu: "application/vnd.neurolanguage.nlu",
54912
+ dna: "application/vnd.dna",
54913
+ nnd: "application/vnd.noblenet-directory",
54914
+ nns: "application/vnd.noblenet-sealer",
54915
+ nnw: "application/vnd.noblenet-web",
54916
+ rpst: "application/vnd.nokia.radio-preset",
54917
+ rpss: "application/vnd.nokia.radio-presets",
54918
+ n3: "text/n3",
54919
+ edm: "application/vnd.novadigm.edm",
54920
+ edx: "application/vnd.novadigm.edx",
54921
+ ext: "application/vnd.novadigm.ext",
54922
+ gph: "application/vnd.flographit",
54923
+ ecelp4800: "audio/vnd.nuera.ecelp4800",
54924
+ ecelp7470: "audio/vnd.nuera.ecelp7470",
54925
+ ecelp9600: "audio/vnd.nuera.ecelp9600",
54926
+ oda: "application/oda",
54927
+ ogx: "application/ogg",
54928
+ oga: "audio/ogg",
54929
+ ogv: "video/ogg",
54930
+ dd2: "application/vnd.oma.dd2+xml",
54931
+ oth: "application/vnd.oasis.opendocument.text-web",
54932
+ opf: "application/oebps-package+xml",
54933
+ qbo: "application/vnd.intu.qbo",
54934
+ oxt: "application/vnd.openofficeorg.extension",
54935
+ osf: "application/vnd.yamaha.openscoreformat",
54936
+ weba: "audio/webm",
54937
+ webm: "video/webm",
54938
+ odc: "application/vnd.oasis.opendocument.chart",
54939
+ otc: "application/vnd.oasis.opendocument.chart-template",
54940
+ odb: "application/vnd.oasis.opendocument.database",
54941
+ odf: "application/vnd.oasis.opendocument.formula",
54942
+ odft: "application/vnd.oasis.opendocument.formula-template",
54943
+ odg: "application/vnd.oasis.opendocument.graphics",
54944
+ otg: "application/vnd.oasis.opendocument.graphics-template",
54945
+ odi: "application/vnd.oasis.opendocument.image",
54946
+ oti: "application/vnd.oasis.opendocument.image-template",
54947
+ odp: "application/vnd.oasis.opendocument.presentation",
54948
+ otp: "application/vnd.oasis.opendocument.presentation-template",
54949
+ ods: "application/vnd.oasis.opendocument.spreadsheet",
54950
+ ots: "application/vnd.oasis.opendocument.spreadsheet-template",
54951
+ odt: "application/vnd.oasis.opendocument.text",
54952
+ odm: "application/vnd.oasis.opendocument.text-master",
54953
+ ott: "application/vnd.oasis.opendocument.text-template",
54954
+ ktx: "image/ktx",
54955
+ sxc: "application/vnd.sun.xml.calc",
54956
+ stc: "application/vnd.sun.xml.calc.template",
54957
+ sxd: "application/vnd.sun.xml.draw",
54958
+ std: "application/vnd.sun.xml.draw.template",
54959
+ sxi: "application/vnd.sun.xml.impress",
54960
+ sti: "application/vnd.sun.xml.impress.template",
54961
+ sxm: "application/vnd.sun.xml.math",
54962
+ sxw: "application/vnd.sun.xml.writer",
54963
+ sxg: "application/vnd.sun.xml.writer.global",
54964
+ stw: "application/vnd.sun.xml.writer.template",
54965
+ otf: "application/x-font-otf",
54966
+ osfpvg: "application/vnd.yamaha.openscoreformat.osfpvg+xml",
54967
+ dp: "application/vnd.osgi.dp",
54968
+ pdb: "application/vnd.palm",
54969
+ p: "text/x-pascal",
54970
+ paw: "application/vnd.pawaafile",
54971
+ pclxl: "application/vnd.hp-pclxl",
54972
+ efif: "application/vnd.picsel",
54973
+ pcx: "image/x-pcx",
54974
+ psd: "image/vnd.adobe.photoshop",
54975
+ prf: "application/pics-rules",
54976
+ pic: "image/x-pict",
54977
+ chat: "application/x-chat",
54978
+ p10: "application/pkcs10",
54979
+ p12: "application/x-pkcs12",
54980
+ p7m: "application/pkcs7-mime",
54981
+ p7s: "application/pkcs7-signature",
54982
+ p7r: "application/x-pkcs7-certreqresp",
54983
+ p7b: "application/x-pkcs7-certificates",
54984
+ p8: "application/pkcs8",
54985
+ plf: "application/vnd.pocketlearn",
54986
+ pnm: "image/x-portable-anymap",
54987
+ pbm: "image/x-portable-bitmap",
54988
+ pcf: "application/x-font-pcf",
54989
+ pfr: "application/font-tdpfr",
54990
+ pgn: "application/x-chess-pgn",
54991
+ pgm: "image/x-portable-graymap",
54992
+ png: "image/png",
54993
+ ppm: "image/x-portable-pixmap",
54994
+ pskcxml: "application/pskc+xml",
54995
+ pml: "application/vnd.ctc-posml",
54996
+ ai: "application/postscript",
54997
+ pfa: "application/x-font-type1",
54998
+ pbd: "application/vnd.powerbuilder6",
54999
+ pgp: "application/pgp-signature",
55000
+ box: "application/vnd.previewsystems.box",
55001
+ ptid: "application/vnd.pvi.ptid1",
55002
+ pls: "application/pls+xml",
55003
+ str: "application/vnd.pg.format",
55004
+ ei6: "application/vnd.pg.osasli",
55005
+ dsc: "text/prs.lines.tag",
55006
+ psf: "application/x-font-linux-psf",
55007
+ qps: "application/vnd.publishare-delta-tree",
55008
+ wg: "application/vnd.pmi.widget",
55009
+ qxd: "application/vnd.quark.quarkxpress",
55010
+ esf: "application/vnd.epson.esf",
55011
+ msf: "application/vnd.epson.msf",
55012
+ ssf: "application/vnd.epson.ssf",
55013
+ qam: "application/vnd.epson.quickanime",
55014
+ qfx: "application/vnd.intu.qfx",
55015
+ qt: "video/quicktime",
55016
+ rar: "application/x-rar-compressed",
55017
+ ram: "audio/x-pn-realaudio",
55018
+ rmp: "audio/x-pn-realaudio-plugin",
55019
+ rsd: "application/rsd+xml",
55020
+ rm: "application/vnd.rn-realmedia",
55021
+ bed: "application/vnd.realvnc.bed",
55022
+ mxl: "application/vnd.recordare.musicxml",
55023
+ musicxml: "application/vnd.recordare.musicxml+xml",
55024
+ rnc: "application/relax-ng-compact-syntax",
55025
+ rdz: "application/vnd.data-vision.rdz",
55026
+ rdf: "application/rdf+xml",
55027
+ rp9: "application/vnd.cloanto.rp9",
55028
+ jisp: "application/vnd.jisp",
55029
+ rtf: "application/rtf",
55030
+ rtx: "text/richtext",
55031
+ link66: "application/vnd.route66.link66+xml",
55032
+ rss: "application/rss+xml",
55033
+ shf: "application/shf+xml",
55034
+ st: "application/vnd.sailingtracker.track",
55035
+ svg: "image/svg+xml",
55036
+ sus: "application/vnd.sus-calendar",
55037
+ sru: "application/sru+xml",
55038
+ setpay: "application/set-payment-initiation",
55039
+ setreg: "application/set-registration-initiation",
55040
+ sema: "application/vnd.sema",
55041
+ semd: "application/vnd.semd",
55042
+ semf: "application/vnd.semf",
55043
+ see: "application/vnd.seemail",
55044
+ snf: "application/x-font-snf",
55045
+ spq: "application/scvp-vp-request",
55046
+ spp: "application/scvp-vp-response",
55047
+ scq: "application/scvp-cv-request",
55048
+ scs: "application/scvp-cv-response",
55049
+ sdp: "application/sdp",
55050
+ etx: "text/x-setext",
55051
+ movie: "video/x-sgi-movie",
55052
+ ifm: "application/vnd.shana.informed.formdata",
55053
+ itp: "application/vnd.shana.informed.formtemplate",
55054
+ iif: "application/vnd.shana.informed.interchange",
55055
+ ipk: "application/vnd.shana.informed.package",
55056
+ tfi: "application/thraud+xml",
55057
+ shar: "application/x-shar",
55058
+ rgb: "image/x-rgb",
55059
+ slt: "application/vnd.epson.salt",
55060
+ aso: "application/vnd.accpac.simply.aso",
55061
+ imp: "application/vnd.accpac.simply.imp",
55062
+ twd: "application/vnd.simtech-mindmapper",
55063
+ csp: "application/vnd.commonspace",
55064
+ saf: "application/vnd.yamaha.smaf-audio",
55065
+ mmf: "application/vnd.smaf",
55066
+ spf: "application/vnd.yamaha.smaf-phrase",
55067
+ teacher: "application/vnd.smart.teacher",
55068
+ svd: "application/vnd.svd",
55069
+ rq: "application/sparql-query",
55070
+ srx: "application/sparql-results+xml",
55071
+ gram: "application/srgs",
55072
+ grxml: "application/srgs+xml",
55073
+ ssml: "application/ssml+xml",
55074
+ skp: "application/vnd.koan",
55075
+ sgml: "text/sgml",
55076
+ sdc: "application/vnd.stardivision.calc",
55077
+ sda: "application/vnd.stardivision.draw",
55078
+ sdd: "application/vnd.stardivision.impress",
55079
+ smf: "application/vnd.stardivision.math",
55080
+ sdw: "application/vnd.stardivision.writer",
55081
+ sgl: "application/vnd.stardivision.writer-global",
55082
+ sm: "application/vnd.stepmania.stepchart",
55083
+ sit: "application/x-stuffit",
55084
+ sitx: "application/x-stuffitx",
55085
+ sdkm: "application/vnd.solent.sdkm+xml",
55086
+ xo: "application/vnd.olpc-sugar",
55087
+ au: "audio/basic",
55088
+ wqd: "application/vnd.wqd",
55089
+ sis: "application/vnd.symbian.install",
55090
+ smi: "application/smil+xml",
55091
+ xsm: "application/vnd.syncml+xml",
55092
+ bdm: "application/vnd.syncml.dm+wbxml",
55093
+ xdm: "application/vnd.syncml.dm+xml",
55094
+ sv4cpio: "application/x-sv4cpio",
55095
+ sv4crc: "application/x-sv4crc",
55096
+ sbml: "application/sbml+xml",
55097
+ tsv: "text/tab-separated-values",
55098
+ tiff: "image/tiff",
55099
+ tao: "application/vnd.tao.intent-module-archive",
55100
+ tar: "application/x-tar",
55101
+ tcl: "application/x-tcl",
55102
+ tex: "application/x-tex",
55103
+ tfm: "application/x-tex-tfm",
55104
+ tei: "application/tei+xml",
55105
+ txt: "text/plain",
55106
+ dxp: "application/vnd.spotfire.dxp",
55107
+ sfs: "application/vnd.spotfire.sfs",
55108
+ tsd: "application/timestamped-data",
55109
+ tpt: "application/vnd.trid.tpt",
55110
+ mxs: "application/vnd.triscape.mxs",
55111
+ t: "text/troff",
55112
+ tra: "application/vnd.trueapp",
55113
+ ttf: "application/x-font-ttf",
55114
+ ttl: "text/turtle",
55115
+ umj: "application/vnd.umajin",
55116
+ uoml: "application/vnd.uoml+xml",
55117
+ unityweb: "application/vnd.unity",
55118
+ ufd: "application/vnd.ufdl",
55119
+ uri: "text/uri-list",
55120
+ utz: "application/vnd.uiq.theme",
55121
+ ustar: "application/x-ustar",
55122
+ uu: "text/x-uuencode",
55123
+ vcs: "text/x-vcalendar",
55124
+ vcf: "text/x-vcard",
55125
+ vcd: "application/x-cdlink",
55126
+ vsf: "application/vnd.vsf",
55127
+ wrl: "model/vrml",
55128
+ vcx: "application/vnd.vcx",
55129
+ mts: "model/vnd.mts",
55130
+ vtu: "model/vnd.vtu",
55131
+ vis: "application/vnd.visionary",
55132
+ viv: "video/vnd.vivo",
55133
+ ccxml: "application/ccxml+xml,",
55134
+ vxml: "application/voicexml+xml",
55135
+ src: "application/x-wais-source",
55136
+ wbxml: "application/vnd.wap.wbxml",
55137
+ wbmp: "image/vnd.wap.wbmp",
55138
+ wav: "audio/x-wav",
55139
+ davmount: "application/davmount+xml",
55140
+ woff: "application/x-font-woff",
55141
+ wspolicy: "application/wspolicy+xml",
55142
+ webp: "image/webp",
55143
+ wtb: "application/vnd.webturbo",
55144
+ wgt: "application/widget",
55145
+ hlp: "application/winhlp",
55146
+ wml: "text/vnd.wap.wml",
55147
+ wmls: "text/vnd.wap.wmlscript",
55148
+ wmlsc: "application/vnd.wap.wmlscriptc",
55149
+ wpd: "application/vnd.wordperfect",
55150
+ stf: "application/vnd.wt.stf",
55151
+ wsdl: "application/wsdl+xml",
55152
+ xbm: "image/x-xbitmap",
55153
+ xpm: "image/x-xpixmap",
55154
+ xwd: "image/x-xwindowdump",
55155
+ der: "application/x-x509-ca-cert",
55156
+ fig: "application/x-xfig",
55157
+ xhtml: "application/xhtml+xml",
55158
+ xml: "application/xml",
55159
+ xdf: "application/xcap-diff+xml",
55160
+ xenc: "application/xenc+xml",
55161
+ xer: "application/patch-ops-error+xml",
55162
+ rl: "application/resource-lists+xml",
55163
+ rs: "application/rls-services+xml",
55164
+ rld: "application/resource-lists-diff+xml",
55165
+ xslt: "application/xslt+xml",
55166
+ xop: "application/xop+xml",
55167
+ xpi: "application/x-xpinstall",
55168
+ xspf: "application/xspf+xml",
55169
+ xul: "application/vnd.mozilla.xul+xml",
55170
+ xyz: "chemical/x-xyz",
55171
+ yaml: "text/yaml",
55172
+ yang: "application/yang",
55173
+ yin: "application/yin+xml",
55174
+ zir: "application/vnd.zul",
55175
+ zip: "application/zip",
55176
+ zmm: "application/vnd.handheld-entertainment+xml",
55177
+ zaz: "application/vnd.zzazz.deck+xml"
55178
+ };
55179
+ var MIME_TYPES_TO_EXT = Object.fromEntries(Object.entries(EXT_TO_MIME_TYPES).map(function(_ref) {
55180
+ var _ref2 = _slicedToArray(_ref, 2), k = _ref2[0], v = _ref2[1];
55181
+ return [v, k];
55182
+ }));
55183
+ var MIME_TYPE_REGEX = /^data:(.*?);base64,/;
54485
55184
  function getMimeType(base64Url) {
54486
55185
  var match = MIME_TYPE_REGEX.exec(base64Url);
54487
55186
  if (match && match[1]) {
@@ -54490,16 +55189,11 @@ function getMimeType(base64Url) {
54490
55189
  return;
54491
55190
  }
54492
55191
  function mimeTypeToFileExt(mimeType) {
54493
- if (mimeType === "image/svg+xml") {
54494
- return "svg";
54495
- }
54496
- if (mimeType === "image/vnd.microsoft.icon") {
54497
- return "ico";
54498
- }
54499
- if (mimeType.startsWith("image/")) {
54500
- return mimeType.slice("image/".length);
55192
+ var recognizedMimeType = MIME_TYPES_TO_EXT[mimeType];
55193
+ if (recognizedMimeType) {
55194
+ return recognizedMimeType;
54501
55195
  }
54502
- return mimeType;
55196
+ return mimeType.split("/")[1];
54503
55197
  }
54504
55198
  var HeaderRegEx = /^h([\d+])$/;
54505
55199
  function lexicalToRichTextSource(node) {
@@ -54657,10 +55351,10 @@ function fromLexicalFormat(format) {
54657
55351
  return [];
54658
55352
  });
54659
55353
  }
54660
- var textEncoder$1 = new TextEncoder();
55354
+ var textEncoder$2 = new TextEncoder();
54661
55355
  function fromLexicalImageNode(node, files) {
54662
55356
  if (node.src.startsWith("data:")) {
54663
- var sha256 = Internal.getSHA256Hash(textEncoder$1.encode(node.src));
55357
+ var sha256 = Internal.getSHA256Hash(textEncoder$2.encode(node.src));
54664
55358
  var mimeType = getMimeType(node.src);
54665
55359
  if (mimeType === void 0) {
54666
55360
  throw new Error("Could not detect Mime Type for image: ".concat(node.src));
@@ -55050,7 +55744,7 @@ function parseRichTextSource(_ref) {
55050
55744
  }
55051
55745
  return _defineProperty$4(_defineProperty$4({}, VAL_EXTENSION, "richtext"), "children", children);
55052
55746
  }
55053
- const textEncoder = new TextEncoder();
55747
+ const textEncoder$1 = new TextEncoder();
55054
55748
  function readImage(ev) {
55055
55749
  return new Promise((resolve, reject) => {
55056
55750
  var _a;
@@ -55061,7 +55755,7 @@ function readImage(ev) {
55061
55755
  if (typeof result2 === "string") {
55062
55756
  const image = new Image();
55063
55757
  image.addEventListener("load", () => {
55064
- const sha256 = Internal.getSHA256Hash(textEncoder.encode(result2));
55758
+ const sha256 = Internal.getSHA256Hash(textEncoder$1.encode(result2));
55065
55759
  if (image.naturalWidth && image.naturalHeight) {
55066
55760
  const mimeType = getMimeType(result2);
55067
55761
  resolve({
@@ -56707,6 +57401,21 @@ const ChevronDown = createLucideIcon("ChevronDown", [
56707
57401
  const ChevronLeft = createLucideIcon("ChevronLeft", [
56708
57402
  ["path", { d: "m15 18-6-6 6-6", key: "1wnfg3" }]
56709
57403
  ]);
57404
+ const Diff = createLucideIcon("Diff", [
57405
+ ["path", { d: "M12 3v14", key: "7cf3v8" }],
57406
+ ["path", { d: "M5 10h14", key: "elsbfy" }],
57407
+ ["path", { d: "M5 21h14", key: "11awu3" }]
57408
+ ]);
57409
+ const File = createLucideIcon("File", [
57410
+ [
57411
+ "path",
57412
+ {
57413
+ d: "M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z",
57414
+ key: "1nnpy2"
57415
+ }
57416
+ ],
57417
+ ["polyline", { points: "14 2 14 8 20 8", key: "1ew0cm" }]
57418
+ ]);
56710
57419
  const LogIn = createLucideIcon("LogIn", [
56711
57420
  ["path", { d: "M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4", key: "u53s6r" }],
56712
57421
  ["polyline", { points: "10 17 15 12 10 7", key: "1ail0h" }],
@@ -56768,7 +57477,7 @@ function ValMenu({
56768
57477
  api,
56769
57478
  patches,
56770
57479
  direction,
56771
- onCommit
57480
+ onClickPatches
56772
57481
  }) {
56773
57482
  const { theme: theme2, setTheme, editMode, setEditMode, session } = useValOverlayContext();
56774
57483
  if (session.status === "success" && session.data.mode === "unauthorized") {
@@ -56851,17 +57560,7 @@ function ValMenu({
56851
57560
  {
56852
57561
  onClick: () => {
56853
57562
  if (patchCount > 0) {
56854
- api.postCommit({ patches }).then((res) => {
56855
- if (result.isErr(res)) {
56856
- console.error(res.error);
56857
- alert("Could not commit patches: " + res.error.message);
56858
- } else {
56859
- console.log("Committed patches: ", res.value);
56860
- onCommit();
56861
- }
56862
- });
56863
- } else {
56864
- alert("No patches to commit");
57563
+ onClickPatches();
56865
57564
  }
56866
57565
  },
56867
57566
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative h-[24px] w-[24px] flex justify-center items-center", children: [
@@ -56878,32 +57577,24 @@ function SingleItemMenu({
56878
57577
  direction,
56879
57578
  children
56880
57579
  }) {
56881
- return /* @__PURE__ */ jsxRuntime.jsx(
56882
- "div",
56883
- {
56884
- className: classNames(
56885
- "flex items-start justify-center w-full h-full font-sans border rounded-full gap-3 text-primary border-fill bg-gradient-to-br from-background/90 from-40% to-background backdrop-blur-lg drop-shadow-2xl",
56886
- {
56887
- "flex-col items-start": direction === "vertical",
56888
- "flex-row items-center": direction === "horizontal"
56889
- }
56890
- ),
56891
- children: /* @__PURE__ */ jsxRuntime.jsx("a", { className, href, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-center px-2 gap-y-2", children }) })
56892
- }
56893
- );
57580
+ return /* @__PURE__ */ jsxRuntime.jsx(MenuContainer, { direction, border: false, children: /* @__PURE__ */ jsxRuntime.jsx("a", { className, href, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-center px-2 gap-y-2", children }) }) });
56894
57581
  }
56895
57582
  function MenuContainer({
56896
57583
  children,
56897
- direction
57584
+ direction,
57585
+ border = true
56898
57586
  }) {
56899
57587
  return /* @__PURE__ */ jsxRuntime.jsx(
56900
57588
  "div",
56901
57589
  {
56902
57590
  className: classNames(
56903
- "flex justify-center w-full h-full px-2 py-2 font-sans border rounded-full gap-3 text-primary border-fill bg-gradient-to-br from-background/90 from-40% to-background backdrop-blur-lg drop-shadow-2xl",
57591
+ "flex justify-center w-full h-full px-2 py-2 font-sans rounded-full gap-3 text-primary border-fill bg-gradient-to-br from-background/90 from-40% to-background backdrop-blur-lg drop-shadow-2xl",
56904
57592
  {
56905
57593
  "flex-col items-start": direction === "vertical",
56906
57594
  "flex-row items-center": direction === "horizontal"
57595
+ },
57596
+ {
57597
+ border
56907
57598
  }
56908
57599
  ),
56909
57600
  children
@@ -57405,7 +58096,7 @@ Object.defineProperty(DraggableCore$2, "__esModule", {
57405
58096
  DraggableCore$2.default = void 0;
57406
58097
  var React$2 = _interopRequireWildcard$2(React$3);
57407
58098
  var _propTypes$3 = _interopRequireDefault$3(propTypesExports);
57408
- var _reactDom = _interopRequireDefault$3(reactDomExports);
58099
+ var _reactDom = _interopRequireDefault$3(requireReactDom());
57409
58100
  var _domFns = domFns;
57410
58101
  var _positionFns = positionFns;
57411
58102
  var _shims = shims;
@@ -57819,7 +58510,7 @@ _defineProperty$3(DraggableCore$1, "defaultProps", {
57819
58510
  exports2.default = void 0;
57820
58511
  var React2 = _interopRequireWildcard2(React$3);
57821
58512
  var _propTypes3 = _interopRequireDefault2(propTypesExports);
57822
- var _reactDom2 = _interopRequireDefault2(reactDomExports);
58513
+ var _reactDom2 = _interopRequireDefault2(requireReactDom());
57823
58514
  var _clsx = _interopRequireDefault2(require$$3);
57824
58515
  var _domFns2 = domFns;
57825
58516
  var _positionFns2 = positionFns;
@@ -58918,6 +59609,8 @@ function _extends$2() {
58918
59609
  };
58919
59610
  return _extends$2.apply(this, arguments);
58920
59611
  }
59612
+ var reactDomExports = requireReactDom();
59613
+ const $7SXl2$reactdom = /* @__PURE__ */ getDefaultExportFromCjs(reactDomExports);
58921
59614
  function $6ed0406888f73fc4$var$setRef(ref, value) {
58922
59615
  if (typeof ref === "function")
58923
59616
  ref(value);
@@ -66075,7 +66768,7 @@ var RemoveScroll = React__namespace.forwardRef(function(props, parentRef) {
66075
66768
  onWheelCapture: nothing,
66076
66769
  onTouchMoveCapture: nothing
66077
66770
  }), callbacks = _a[0], setCallbacks = _a[1];
66078
- var forwardProps = props.forwardProps, children = props.children, className2 = props.className, removeScrollBar = props.removeScrollBar, enabled = props.enabled, shards = props.shards, sideCar = props.sideCar, noIsolation = props.noIsolation, inert = props.inert, allowPinchZoom = props.allowPinchZoom, _b = props.as, Container = _b === void 0 ? "div" : _b, rest = __rest(props, ["forwardProps", "children", "className", "removeScrollBar", "enabled", "shards", "sideCar", "noIsolation", "inert", "allowPinchZoom", "as"]);
66771
+ var forwardProps = props.forwardProps, children = props.children, className2 = props.className, removeScrollBar = props.removeScrollBar, enabled = props.enabled, shards = props.shards, sideCar = props.sideCar, noIsolation = props.noIsolation, inert = props.inert, allowPinchZoom = props.allowPinchZoom, _b = props.as, Container2 = _b === void 0 ? "div" : _b, rest = __rest(props, ["forwardProps", "children", "className", "removeScrollBar", "enabled", "shards", "sideCar", "noIsolation", "inert", "allowPinchZoom", "as"]);
66079
66772
  var SideCar2 = sideCar;
66080
66773
  var containerRef = useMergeRefs([ref, parentRef]);
66081
66774
  var containerProps = __assign(__assign({}, rest), callbacks);
@@ -66083,7 +66776,7 @@ var RemoveScroll = React__namespace.forwardRef(function(props, parentRef) {
66083
66776
  React__namespace.Fragment,
66084
66777
  null,
66085
66778
  enabled && React__namespace.createElement(SideCar2, { sideCar: effectCar, removeScrollBar, shards, noIsolation, inert, setCallbacks, allowPinchZoom: !!allowPinchZoom, lockRef: ref }),
66086
- forwardProps ? React__namespace.cloneElement(React__namespace.Children.only(children), __assign(__assign({}, containerProps), { ref: containerRef })) : React__namespace.createElement(Container, __assign({}, containerProps, { className: className2, ref: containerRef }), children)
66779
+ forwardProps ? React__namespace.cloneElement(React__namespace.Children.only(children), __assign(__assign({}, containerProps), { ref: containerRef })) : React__namespace.createElement(Container2, __assign({}, containerProps, { className: className2, ref: containerRef }), children)
66087
66780
  );
66088
66781
  });
66089
66782
  RemoveScroll.defaultProps = {
@@ -67624,6 +68317,17 @@ function ValFormField({
67624
68317
  }
67625
68318
  );
67626
68319
  }
68320
+ if ((typeof source === "object" || source === null) && (schema == null ? void 0 : schema.type) === "file") {
68321
+ return /* @__PURE__ */ jsxRuntime.jsx(
68322
+ FileField,
68323
+ {
68324
+ path,
68325
+ registerPatchCallback,
68326
+ onSubmit,
68327
+ defaultValue: source
68328
+ }
68329
+ );
68330
+ }
67627
68331
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
67628
68332
  "Unsupported schema: ",
67629
68333
  schema.type,
@@ -67635,14 +68339,14 @@ function ValFormField({
67635
68339
  ")"
67636
68340
  ] });
67637
68341
  }
67638
- function createImagePatch(path, data, filename, metadata) {
68342
+ function createFilePatch(path, data, filename, metadata) {
67639
68343
  if (!data || !metadata) {
67640
68344
  return [];
67641
68345
  }
67642
68346
  const shaSuffix = metadata.sha256.slice(0, 5);
67643
68347
  const newFilePath = function() {
67644
68348
  const mimeType = getMimeType(data) ?? "unknown";
67645
- const newExt = mimeTypeToFileExt(mimeType);
68349
+ const newExt = mimeTypeToFileExt(mimeType) ?? "unknown";
67646
68350
  if (filename) {
67647
68351
  let cleanFilename = filename.split(".").slice(0, -1).join(".") || filename;
67648
68352
  const maybeShaSuffixPos = cleanFilename.lastIndexOf("_");
@@ -67675,7 +68379,7 @@ function createImagePatch(path, data, filename, metadata) {
67675
68379
  }
67676
68380
  ];
67677
68381
  }
67678
- function createImageMetadataPatch(path, metadata) {
68382
+ function createFileMetadataPatch(path, metadata) {
67679
68383
  const metadataPath = path + "/metadata";
67680
68384
  return [
67681
68385
  {
@@ -67685,6 +68389,150 @@ function createImageMetadataPatch(path, metadata) {
67685
68389
  }
67686
68390
  ];
67687
68391
  }
68392
+ const textEncoder = new TextEncoder();
68393
+ function readFile(ev) {
68394
+ return new Promise((resolve, reject) => {
68395
+ var _a;
68396
+ const file = (_a = ev.currentTarget.files) == null ? void 0 : _a[0];
68397
+ const reader = new FileReader();
68398
+ reader.addEventListener("load", () => {
68399
+ const result2 = reader.result;
68400
+ if (typeof result2 === "string") {
68401
+ const sha256 = Internal.getSHA256Hash(textEncoder.encode(result2));
68402
+ const mimeType = getMimeType(result2);
68403
+ resolve({
68404
+ src: result2,
68405
+ filename: file == null ? void 0 : file.name,
68406
+ sha256,
68407
+ mimeType,
68408
+ fileExt: mimeType && mimeTypeToFileExt(mimeType)
68409
+ });
68410
+ } else if (!result2) {
68411
+ reject({ message: "Empty result" });
68412
+ } else {
68413
+ reject({ message: "Unexpected file result type", result: result2 });
68414
+ }
68415
+ });
68416
+ if (file) {
68417
+ reader.readAsDataURL(file);
68418
+ }
68419
+ });
68420
+ }
68421
+ function FileField({
68422
+ path,
68423
+ defaultValue,
68424
+ onSubmit,
68425
+ registerPatchCallback
68426
+ }) {
68427
+ var _a, _b;
68428
+ const [data, setData] = React$3.useState(
68429
+ null
68430
+ );
68431
+ const [loading, setLoading] = React$3.useState(false);
68432
+ const [metadata, setMetadata] = React$3.useState();
68433
+ const [url, setUrl] = React$3.useState();
68434
+ React$3.useEffect(() => {
68435
+ const url2 = defaultValue && Internal.convertFileSource(defaultValue).url;
68436
+ setUrl(url2);
68437
+ }, [defaultValue]);
68438
+ React$3.useEffect(() => {
68439
+ if (registerPatchCallback) {
68440
+ registerPatchCallback(async (path2) => {
68441
+ return createFilePatch(
68442
+ path2,
68443
+ (data == null ? void 0 : data.src) ?? null,
68444
+ (data == null ? void 0 : data.filename) ?? null,
68445
+ metadata
68446
+ );
68447
+ });
68448
+ }
68449
+ }, [data, defaultValue]);
68450
+ return /* @__PURE__ */ jsxRuntime.jsxs(FieldContainer, { children: [
68451
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "w-fit", children: [
68452
+ /* @__PURE__ */ jsxRuntime.jsx(
68453
+ "div",
68454
+ {
68455
+ className: "flex flex-col justify-start p-2 border border-b-0 rounded-sm rounded-b-none gap-y-4 bg-background text-foreground border-input",
68456
+ children: data || url ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative flex flex-col justify-center items-center min-h-[100px] min-w-[200px]", children: [
68457
+ /* @__PURE__ */ jsxRuntime.jsx("div", { children: /* @__PURE__ */ jsxRuntime.jsx(File, {}) }),
68458
+ /* @__PURE__ */ jsxRuntime.jsx("div", { children: data == null ? void 0 : data.filename })
68459
+ ] }) : /* @__PURE__ */ jsxRuntime.jsx("div", { children: "Select file below" })
68460
+ },
68461
+ path
68462
+ ),
68463
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "p-4 border border-t-0 rounded-b-sm bg-background border-input", children: [
68464
+ /* @__PURE__ */ jsxRuntime.jsx(
68465
+ "label",
68466
+ {
68467
+ htmlFor: `img_input:${path}`,
68468
+ className: "block px-1 py-2 text-sm text-center rounded-md cursor-pointer bg-primary text-background",
68469
+ children: "Update"
68470
+ }
68471
+ ),
68472
+ /* @__PURE__ */ jsxRuntime.jsx(
68473
+ "input",
68474
+ {
68475
+ hidden: true,
68476
+ id: `img_input:${path}`,
68477
+ type: "file",
68478
+ onChange: (ev) => {
68479
+ readFile(ev).then((res) => {
68480
+ setData({ src: res.src, filename: res.filename });
68481
+ if (res.mimeType) {
68482
+ setMetadata({
68483
+ sha256: res.sha256,
68484
+ mimeType: res.mimeType
68485
+ });
68486
+ } else {
68487
+ setMetadata(void 0);
68488
+ }
68489
+ }).catch((err2) => {
68490
+ console.error(err2.message);
68491
+ setData(null);
68492
+ setMetadata(void 0);
68493
+ });
68494
+ }
68495
+ }
68496
+ )
68497
+ ] })
68498
+ ] }),
68499
+ onSubmit && /* @__PURE__ */ jsxRuntime.jsx(
68500
+ SubmitButton,
68501
+ {
68502
+ loading,
68503
+ enabled: !!data || ((_a = defaultValue == null ? void 0 : defaultValue.metadata) == null ? void 0 : _a.mimeType) !== (metadata == null ? void 0 : metadata.mimeType) || ((_b = defaultValue == null ? void 0 : defaultValue.metadata) == null ? void 0 : _b.sha256) !== (metadata == null ? void 0 : metadata.sha256),
68504
+ onClick: () => {
68505
+ if (data) {
68506
+ setLoading(true);
68507
+ onSubmit(
68508
+ (path2) => Promise.resolve(
68509
+ createFilePatch(
68510
+ path2,
68511
+ data.src,
68512
+ data.filename ?? null,
68513
+ metadata
68514
+ )
68515
+ )
68516
+ ).finally(() => {
68517
+ setLoading(false);
68518
+ setData(null);
68519
+ setMetadata(void 0);
68520
+ });
68521
+ } else if (metadata) {
68522
+ setLoading(true);
68523
+ onSubmit(
68524
+ (path2) => Promise.resolve(createFileMetadataPatch(path2, metadata))
68525
+ ).finally(() => {
68526
+ setLoading(false);
68527
+ setData(null);
68528
+ setMetadata(void 0);
68529
+ });
68530
+ }
68531
+ }
68532
+ }
68533
+ )
68534
+ ] });
68535
+ }
67688
68536
  function ImageField({
67689
68537
  path,
67690
68538
  defaultValue,
@@ -67705,7 +68553,7 @@ function ImageField({
67705
68553
  React$3.useEffect(() => {
67706
68554
  if (registerPatchCallback) {
67707
68555
  registerPatchCallback(async (path2) => {
67708
- return createImagePatch(
68556
+ return createFilePatch(
67709
68557
  path2,
67710
68558
  (data == null ? void 0 : data.src) ?? null,
67711
68559
  (data == null ? void 0 : data.filename) ?? null,
@@ -67831,7 +68679,7 @@ function ImageField({
67831
68679
  setLoading(true);
67832
68680
  onSubmit(
67833
68681
  (path2) => Promise.resolve(
67834
- createImagePatch(
68682
+ createFilePatch(
67835
68683
  path2,
67836
68684
  data.src,
67837
68685
  data.filename ?? null,
@@ -67846,7 +68694,7 @@ function ImageField({
67846
68694
  } else if (metadata) {
67847
68695
  setLoading(true);
67848
68696
  onSubmit(
67849
- (path2) => Promise.resolve(createImageMetadataPatch(path2, metadata))
68697
+ (path2) => Promise.resolve(createFileMetadataPatch(path2, metadata))
67850
68698
  ).finally(() => {
67851
68699
  setLoading(false);
67852
68700
  setData(null);
@@ -72641,6 +73489,7 @@ function useSession(api) {
72641
73489
  setSession({ status: "success", data: Session.parse(session2) });
72642
73490
  } else {
72643
73491
  if (res.error.statusCode === 401) {
73492
+ console.error("Unauthorized", res.error);
72644
73493
  setSession({
72645
73494
  status: "success",
72646
73495
  data: {
@@ -72693,6 +73542,532 @@ function Seg({ children }) {
72693
73542
  }
72694
73543
  return /* @__PURE__ */ jsxRuntime.jsx("span", { children });
72695
73544
  }
73545
+ const $409067139f391064$var$COLLAPSIBLE_NAME = "Collapsible";
73546
+ const [$409067139f391064$var$createCollapsibleContext, $409067139f391064$export$952b32dcbe73087a] = $c512c27ab02ef895$export$50c7b4e9d9f19c1($409067139f391064$var$COLLAPSIBLE_NAME);
73547
+ const [$409067139f391064$var$CollapsibleProvider, $409067139f391064$var$useCollapsibleContext] = $409067139f391064$var$createCollapsibleContext($409067139f391064$var$COLLAPSIBLE_NAME);
73548
+ const $409067139f391064$export$6eb0f7ddcda6131f = /* @__PURE__ */ React$3.forwardRef((props, forwardedRef) => {
73549
+ const { __scopeCollapsible, open: openProp, defaultOpen, disabled, onOpenChange, ...collapsibleProps } = props;
73550
+ const [open = false, setOpen] = $71cd76cc60e0454e$export$6f32135080cb4c3({
73551
+ prop: openProp,
73552
+ defaultProp: defaultOpen,
73553
+ onChange: onOpenChange
73554
+ });
73555
+ return /* @__PURE__ */ React$3.createElement($409067139f391064$var$CollapsibleProvider, {
73556
+ scope: __scopeCollapsible,
73557
+ disabled,
73558
+ contentId: $1746a345f3d73bb7$export$f680877a34711e37(),
73559
+ open,
73560
+ onOpenToggle: React$3.useCallback(
73561
+ () => setOpen(
73562
+ (prevOpen) => !prevOpen
73563
+ ),
73564
+ [
73565
+ setOpen
73566
+ ]
73567
+ )
73568
+ }, /* @__PURE__ */ React$3.createElement($8927f6f2acc4f386$export$250ffa63cdc0d034.div, _extends$2({
73569
+ "data-state": $409067139f391064$var$getState(open),
73570
+ "data-disabled": disabled ? "" : void 0
73571
+ }, collapsibleProps, {
73572
+ ref: forwardedRef
73573
+ })));
73574
+ });
73575
+ const $409067139f391064$var$TRIGGER_NAME = "CollapsibleTrigger";
73576
+ const $409067139f391064$export$c135dce7b15bbbdc = /* @__PURE__ */ React$3.forwardRef((props, forwardedRef) => {
73577
+ const { __scopeCollapsible, ...triggerProps } = props;
73578
+ const context = $409067139f391064$var$useCollapsibleContext($409067139f391064$var$TRIGGER_NAME, __scopeCollapsible);
73579
+ return /* @__PURE__ */ React$3.createElement($8927f6f2acc4f386$export$250ffa63cdc0d034.button, _extends$2({
73580
+ type: "button",
73581
+ "aria-controls": context.contentId,
73582
+ "aria-expanded": context.open || false,
73583
+ "data-state": $409067139f391064$var$getState(context.open),
73584
+ "data-disabled": context.disabled ? "" : void 0,
73585
+ disabled: context.disabled
73586
+ }, triggerProps, {
73587
+ ref: forwardedRef,
73588
+ onClick: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onClick, context.onOpenToggle)
73589
+ }));
73590
+ });
73591
+ const $409067139f391064$var$CONTENT_NAME = "CollapsibleContent";
73592
+ const $409067139f391064$export$aadde00976f34151 = /* @__PURE__ */ React$3.forwardRef((props, forwardedRef) => {
73593
+ const { forceMount, ...contentProps } = props;
73594
+ const context = $409067139f391064$var$useCollapsibleContext($409067139f391064$var$CONTENT_NAME, props.__scopeCollapsible);
73595
+ return /* @__PURE__ */ React$3.createElement(
73596
+ $921a889cee6df7e8$export$99c2b779aa4e8b8b,
73597
+ {
73598
+ present: forceMount || context.open
73599
+ },
73600
+ ({ present }) => /* @__PURE__ */ React$3.createElement($409067139f391064$var$CollapsibleContentImpl, _extends$2({}, contentProps, {
73601
+ ref: forwardedRef,
73602
+ present
73603
+ }))
73604
+ );
73605
+ });
73606
+ const $409067139f391064$var$CollapsibleContentImpl = /* @__PURE__ */ React$3.forwardRef((props, forwardedRef) => {
73607
+ const { __scopeCollapsible, present, children, ...contentProps } = props;
73608
+ const context = $409067139f391064$var$useCollapsibleContext($409067139f391064$var$CONTENT_NAME, __scopeCollapsible);
73609
+ const [isPresent, setIsPresent] = React$3.useState(present);
73610
+ const ref = React$3.useRef(null);
73611
+ const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, ref);
73612
+ const heightRef = React$3.useRef(0);
73613
+ const height2 = heightRef.current;
73614
+ const widthRef = React$3.useRef(0);
73615
+ const width2 = widthRef.current;
73616
+ const isOpen = context.open || isPresent;
73617
+ const isMountAnimationPreventedRef = React$3.useRef(isOpen);
73618
+ const originalStylesRef = React$3.useRef();
73619
+ React$3.useEffect(() => {
73620
+ const rAF = requestAnimationFrame(
73621
+ () => isMountAnimationPreventedRef.current = false
73622
+ );
73623
+ return () => cancelAnimationFrame(rAF);
73624
+ }, []);
73625
+ $9f79659886946c16$export$e5c5a5f917a5871c(() => {
73626
+ const node = ref.current;
73627
+ if (node) {
73628
+ originalStylesRef.current = originalStylesRef.current || {
73629
+ transitionDuration: node.style.transitionDuration,
73630
+ animationName: node.style.animationName
73631
+ };
73632
+ node.style.transitionDuration = "0s";
73633
+ node.style.animationName = "none";
73634
+ const rect = node.getBoundingClientRect();
73635
+ heightRef.current = rect.height;
73636
+ widthRef.current = rect.width;
73637
+ if (!isMountAnimationPreventedRef.current) {
73638
+ node.style.transitionDuration = originalStylesRef.current.transitionDuration;
73639
+ node.style.animationName = originalStylesRef.current.animationName;
73640
+ }
73641
+ setIsPresent(present);
73642
+ }
73643
+ }, [
73644
+ context.open,
73645
+ present
73646
+ ]);
73647
+ return /* @__PURE__ */ React$3.createElement($8927f6f2acc4f386$export$250ffa63cdc0d034.div, _extends$2({
73648
+ "data-state": $409067139f391064$var$getState(context.open),
73649
+ "data-disabled": context.disabled ? "" : void 0,
73650
+ id: context.contentId,
73651
+ hidden: !isOpen
73652
+ }, contentProps, {
73653
+ ref: composedRefs,
73654
+ style: {
73655
+ [`--radix-collapsible-content-height`]: height2 ? `${height2}px` : void 0,
73656
+ [`--radix-collapsible-content-width`]: width2 ? `${width2}px` : void 0,
73657
+ ...props.style
73658
+ }
73659
+ }), isOpen && children);
73660
+ });
73661
+ function $409067139f391064$var$getState(open) {
73662
+ return open ? "open" : "closed";
73663
+ }
73664
+ const $409067139f391064$export$be92b6f5f03c0fe9 = $409067139f391064$export$6eb0f7ddcda6131f;
73665
+ const $409067139f391064$export$41fb9f06171c75f4 = $409067139f391064$export$c135dce7b15bbbdc;
73666
+ const $409067139f391064$export$7c6e2c02157bb7d2 = $409067139f391064$export$aadde00976f34151;
73667
+ const $1bf158f521e1b1b4$var$ACCORDION_NAME = "Accordion";
73668
+ const $1bf158f521e1b1b4$var$ACCORDION_KEYS = [
73669
+ "Home",
73670
+ "End",
73671
+ "ArrowDown",
73672
+ "ArrowUp",
73673
+ "ArrowLeft",
73674
+ "ArrowRight"
73675
+ ];
73676
+ const [$1bf158f521e1b1b4$var$Collection, $1bf158f521e1b1b4$var$useCollection, $1bf158f521e1b1b4$var$createCollectionScope] = $e02a7d9cb1dc128c$export$c74125a8e3af6bb2($1bf158f521e1b1b4$var$ACCORDION_NAME);
73677
+ const [$1bf158f521e1b1b4$var$createAccordionContext, $1bf158f521e1b1b4$export$9748edc328a73be1] = $c512c27ab02ef895$export$50c7b4e9d9f19c1($1bf158f521e1b1b4$var$ACCORDION_NAME, [
73678
+ $1bf158f521e1b1b4$var$createCollectionScope,
73679
+ $409067139f391064$export$952b32dcbe73087a
73680
+ ]);
73681
+ const $1bf158f521e1b1b4$var$useCollapsibleScope = $409067139f391064$export$952b32dcbe73087a();
73682
+ const $1bf158f521e1b1b4$export$a766cd26d0d69044 = /* @__PURE__ */ React$3.forwardRef((props, forwardedRef) => {
73683
+ const { type, ...accordionProps } = props;
73684
+ const singleProps = accordionProps;
73685
+ const multipleProps = accordionProps;
73686
+ return /* @__PURE__ */ React$3.createElement($1bf158f521e1b1b4$var$Collection.Provider, {
73687
+ scope: props.__scopeAccordion
73688
+ }, type === "multiple" ? /* @__PURE__ */ React$3.createElement($1bf158f521e1b1b4$var$AccordionImplMultiple, _extends$2({}, multipleProps, {
73689
+ ref: forwardedRef
73690
+ })) : /* @__PURE__ */ React$3.createElement($1bf158f521e1b1b4$var$AccordionImplSingle, _extends$2({}, singleProps, {
73691
+ ref: forwardedRef
73692
+ })));
73693
+ });
73694
+ $1bf158f521e1b1b4$export$a766cd26d0d69044.propTypes = {
73695
+ type(props) {
73696
+ const value = props.value || props.defaultValue;
73697
+ if (props.type && ![
73698
+ "single",
73699
+ "multiple"
73700
+ ].includes(props.type))
73701
+ return new Error("Invalid prop `type` supplied to `Accordion`. Expected one of `single | multiple`.");
73702
+ if (props.type === "multiple" && typeof value === "string")
73703
+ return new Error("Invalid prop `type` supplied to `Accordion`. Expected `single` when `defaultValue` or `value` is type `string`.");
73704
+ if (props.type === "single" && Array.isArray(value))
73705
+ return new Error("Invalid prop `type` supplied to `Accordion`. Expected `multiple` when `defaultValue` or `value` is type `string[]`.");
73706
+ return null;
73707
+ }
73708
+ };
73709
+ const [$1bf158f521e1b1b4$var$AccordionValueProvider, $1bf158f521e1b1b4$var$useAccordionValueContext] = $1bf158f521e1b1b4$var$createAccordionContext($1bf158f521e1b1b4$var$ACCORDION_NAME);
73710
+ const [$1bf158f521e1b1b4$var$AccordionCollapsibleProvider, $1bf158f521e1b1b4$var$useAccordionCollapsibleContext] = $1bf158f521e1b1b4$var$createAccordionContext($1bf158f521e1b1b4$var$ACCORDION_NAME, {
73711
+ collapsible: false
73712
+ });
73713
+ const $1bf158f521e1b1b4$var$AccordionImplSingle = /* @__PURE__ */ React$3.forwardRef((props, forwardedRef) => {
73714
+ const { value: valueProp, defaultValue, onValueChange = () => {
73715
+ }, collapsible = false, ...accordionSingleProps } = props;
73716
+ const [value, setValue] = $71cd76cc60e0454e$export$6f32135080cb4c3({
73717
+ prop: valueProp,
73718
+ defaultProp: defaultValue,
73719
+ onChange: onValueChange
73720
+ });
73721
+ return /* @__PURE__ */ React$3.createElement($1bf158f521e1b1b4$var$AccordionValueProvider, {
73722
+ scope: props.__scopeAccordion,
73723
+ value: value ? [
73724
+ value
73725
+ ] : [],
73726
+ onItemOpen: setValue,
73727
+ onItemClose: React$3.useCallback(
73728
+ () => collapsible && setValue(""),
73729
+ [
73730
+ collapsible,
73731
+ setValue
73732
+ ]
73733
+ )
73734
+ }, /* @__PURE__ */ React$3.createElement($1bf158f521e1b1b4$var$AccordionCollapsibleProvider, {
73735
+ scope: props.__scopeAccordion,
73736
+ collapsible
73737
+ }, /* @__PURE__ */ React$3.createElement($1bf158f521e1b1b4$var$AccordionImpl, _extends$2({}, accordionSingleProps, {
73738
+ ref: forwardedRef
73739
+ }))));
73740
+ });
73741
+ const $1bf158f521e1b1b4$var$AccordionImplMultiple = /* @__PURE__ */ React$3.forwardRef((props, forwardedRef) => {
73742
+ const { value: valueProp, defaultValue, onValueChange = () => {
73743
+ }, ...accordionMultipleProps } = props;
73744
+ const [value1 = [], setValue] = $71cd76cc60e0454e$export$6f32135080cb4c3({
73745
+ prop: valueProp,
73746
+ defaultProp: defaultValue,
73747
+ onChange: onValueChange
73748
+ });
73749
+ const handleItemOpen = React$3.useCallback(
73750
+ (itemValue) => setValue(
73751
+ (prevValue = []) => [
73752
+ ...prevValue,
73753
+ itemValue
73754
+ ]
73755
+ ),
73756
+ [
73757
+ setValue
73758
+ ]
73759
+ );
73760
+ const handleItemClose = React$3.useCallback(
73761
+ (itemValue) => setValue(
73762
+ (prevValue = []) => prevValue.filter(
73763
+ (value) => value !== itemValue
73764
+ )
73765
+ ),
73766
+ [
73767
+ setValue
73768
+ ]
73769
+ );
73770
+ return /* @__PURE__ */ React$3.createElement($1bf158f521e1b1b4$var$AccordionValueProvider, {
73771
+ scope: props.__scopeAccordion,
73772
+ value: value1,
73773
+ onItemOpen: handleItemOpen,
73774
+ onItemClose: handleItemClose
73775
+ }, /* @__PURE__ */ React$3.createElement($1bf158f521e1b1b4$var$AccordionCollapsibleProvider, {
73776
+ scope: props.__scopeAccordion,
73777
+ collapsible: true
73778
+ }, /* @__PURE__ */ React$3.createElement($1bf158f521e1b1b4$var$AccordionImpl, _extends$2({}, accordionMultipleProps, {
73779
+ ref: forwardedRef
73780
+ }))));
73781
+ });
73782
+ const [$1bf158f521e1b1b4$var$AccordionImplProvider, $1bf158f521e1b1b4$var$useAccordionContext] = $1bf158f521e1b1b4$var$createAccordionContext($1bf158f521e1b1b4$var$ACCORDION_NAME);
73783
+ const $1bf158f521e1b1b4$var$AccordionImpl = /* @__PURE__ */ React$3.forwardRef((props, forwardedRef) => {
73784
+ const { __scopeAccordion, disabled, dir, orientation = "vertical", ...accordionProps } = props;
73785
+ const accordionRef = React$3.useRef(null);
73786
+ const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(accordionRef, forwardedRef);
73787
+ const getItems = $1bf158f521e1b1b4$var$useCollection(__scopeAccordion);
73788
+ const direction = $f631663db3294ace$export$b39126d51d94e6f3(dir);
73789
+ const isDirectionLTR = direction === "ltr";
73790
+ const handleKeyDown = $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onKeyDown, (event) => {
73791
+ var _triggerCollection$cl;
73792
+ if (!$1bf158f521e1b1b4$var$ACCORDION_KEYS.includes(event.key))
73793
+ return;
73794
+ const target = event.target;
73795
+ const triggerCollection = getItems().filter((item) => {
73796
+ var _item$ref$current;
73797
+ return !((_item$ref$current = item.ref.current) !== null && _item$ref$current !== void 0 && _item$ref$current.disabled);
73798
+ });
73799
+ const triggerIndex = triggerCollection.findIndex(
73800
+ (item) => item.ref.current === target
73801
+ );
73802
+ const triggerCount = triggerCollection.length;
73803
+ if (triggerIndex === -1)
73804
+ return;
73805
+ event.preventDefault();
73806
+ let nextIndex = triggerIndex;
73807
+ const homeIndex = 0;
73808
+ const endIndex = triggerCount - 1;
73809
+ const moveNext = () => {
73810
+ nextIndex = triggerIndex + 1;
73811
+ if (nextIndex > endIndex)
73812
+ nextIndex = homeIndex;
73813
+ };
73814
+ const movePrev = () => {
73815
+ nextIndex = triggerIndex - 1;
73816
+ if (nextIndex < homeIndex)
73817
+ nextIndex = endIndex;
73818
+ };
73819
+ switch (event.key) {
73820
+ case "Home":
73821
+ nextIndex = homeIndex;
73822
+ break;
73823
+ case "End":
73824
+ nextIndex = endIndex;
73825
+ break;
73826
+ case "ArrowRight":
73827
+ if (orientation === "horizontal") {
73828
+ if (isDirectionLTR)
73829
+ moveNext();
73830
+ else
73831
+ movePrev();
73832
+ }
73833
+ break;
73834
+ case "ArrowDown":
73835
+ if (orientation === "vertical")
73836
+ moveNext();
73837
+ break;
73838
+ case "ArrowLeft":
73839
+ if (orientation === "horizontal") {
73840
+ if (isDirectionLTR)
73841
+ movePrev();
73842
+ else
73843
+ moveNext();
73844
+ }
73845
+ break;
73846
+ case "ArrowUp":
73847
+ if (orientation === "vertical")
73848
+ movePrev();
73849
+ break;
73850
+ }
73851
+ const clampedIndex = nextIndex % triggerCount;
73852
+ (_triggerCollection$cl = triggerCollection[clampedIndex].ref.current) === null || _triggerCollection$cl === void 0 || _triggerCollection$cl.focus();
73853
+ });
73854
+ return /* @__PURE__ */ React$3.createElement($1bf158f521e1b1b4$var$AccordionImplProvider, {
73855
+ scope: __scopeAccordion,
73856
+ disabled,
73857
+ direction: dir,
73858
+ orientation
73859
+ }, /* @__PURE__ */ React$3.createElement($1bf158f521e1b1b4$var$Collection.Slot, {
73860
+ scope: __scopeAccordion
73861
+ }, /* @__PURE__ */ React$3.createElement($8927f6f2acc4f386$export$250ffa63cdc0d034.div, _extends$2({}, accordionProps, {
73862
+ "data-orientation": orientation,
73863
+ ref: composedRefs,
73864
+ onKeyDown: disabled ? void 0 : handleKeyDown
73865
+ }))));
73866
+ });
73867
+ const $1bf158f521e1b1b4$var$ITEM_NAME = "AccordionItem";
73868
+ const [$1bf158f521e1b1b4$var$AccordionItemProvider, $1bf158f521e1b1b4$var$useAccordionItemContext] = $1bf158f521e1b1b4$var$createAccordionContext($1bf158f521e1b1b4$var$ITEM_NAME);
73869
+ const $1bf158f521e1b1b4$export$d99097c13d4dac9f = /* @__PURE__ */ React$3.forwardRef((props, forwardedRef) => {
73870
+ const { __scopeAccordion, value, ...accordionItemProps } = props;
73871
+ const accordionContext = $1bf158f521e1b1b4$var$useAccordionContext($1bf158f521e1b1b4$var$ITEM_NAME, __scopeAccordion);
73872
+ const valueContext = $1bf158f521e1b1b4$var$useAccordionValueContext($1bf158f521e1b1b4$var$ITEM_NAME, __scopeAccordion);
73873
+ const collapsibleScope = $1bf158f521e1b1b4$var$useCollapsibleScope(__scopeAccordion);
73874
+ const triggerId = $1746a345f3d73bb7$export$f680877a34711e37();
73875
+ const open1 = value && valueContext.value.includes(value) || false;
73876
+ const disabled = accordionContext.disabled || props.disabled;
73877
+ return /* @__PURE__ */ React$3.createElement($1bf158f521e1b1b4$var$AccordionItemProvider, {
73878
+ scope: __scopeAccordion,
73879
+ open: open1,
73880
+ disabled,
73881
+ triggerId
73882
+ }, /* @__PURE__ */ React$3.createElement($409067139f391064$export$be92b6f5f03c0fe9, _extends$2({
73883
+ "data-orientation": accordionContext.orientation,
73884
+ "data-state": $1bf158f521e1b1b4$var$getState(open1)
73885
+ }, collapsibleScope, accordionItemProps, {
73886
+ ref: forwardedRef,
73887
+ disabled,
73888
+ open: open1,
73889
+ onOpenChange: (open) => {
73890
+ if (open)
73891
+ valueContext.onItemOpen(value);
73892
+ else
73893
+ valueContext.onItemClose(value);
73894
+ }
73895
+ })));
73896
+ });
73897
+ const $1bf158f521e1b1b4$var$HEADER_NAME = "AccordionHeader";
73898
+ const $1bf158f521e1b1b4$export$5e3e5deaaf81ee41 = /* @__PURE__ */ React$3.forwardRef((props, forwardedRef) => {
73899
+ const { __scopeAccordion, ...headerProps } = props;
73900
+ const accordionContext = $1bf158f521e1b1b4$var$useAccordionContext($1bf158f521e1b1b4$var$ACCORDION_NAME, __scopeAccordion);
73901
+ const itemContext = $1bf158f521e1b1b4$var$useAccordionItemContext($1bf158f521e1b1b4$var$HEADER_NAME, __scopeAccordion);
73902
+ return /* @__PURE__ */ React$3.createElement($8927f6f2acc4f386$export$250ffa63cdc0d034.h3, _extends$2({
73903
+ "data-orientation": accordionContext.orientation,
73904
+ "data-state": $1bf158f521e1b1b4$var$getState(itemContext.open),
73905
+ "data-disabled": itemContext.disabled ? "" : void 0
73906
+ }, headerProps, {
73907
+ ref: forwardedRef
73908
+ }));
73909
+ });
73910
+ const $1bf158f521e1b1b4$var$TRIGGER_NAME = "AccordionTrigger";
73911
+ const $1bf158f521e1b1b4$export$94e939b1f85bdd73 = /* @__PURE__ */ React$3.forwardRef((props, forwardedRef) => {
73912
+ const { __scopeAccordion, ...triggerProps } = props;
73913
+ const accordionContext = $1bf158f521e1b1b4$var$useAccordionContext($1bf158f521e1b1b4$var$ACCORDION_NAME, __scopeAccordion);
73914
+ const itemContext = $1bf158f521e1b1b4$var$useAccordionItemContext($1bf158f521e1b1b4$var$TRIGGER_NAME, __scopeAccordion);
73915
+ const collapsibleContext = $1bf158f521e1b1b4$var$useAccordionCollapsibleContext($1bf158f521e1b1b4$var$TRIGGER_NAME, __scopeAccordion);
73916
+ const collapsibleScope = $1bf158f521e1b1b4$var$useCollapsibleScope(__scopeAccordion);
73917
+ return /* @__PURE__ */ React$3.createElement($1bf158f521e1b1b4$var$Collection.ItemSlot, {
73918
+ scope: __scopeAccordion
73919
+ }, /* @__PURE__ */ React$3.createElement($409067139f391064$export$41fb9f06171c75f4, _extends$2({
73920
+ "aria-disabled": itemContext.open && !collapsibleContext.collapsible || void 0,
73921
+ "data-orientation": accordionContext.orientation,
73922
+ id: itemContext.triggerId
73923
+ }, collapsibleScope, triggerProps, {
73924
+ ref: forwardedRef
73925
+ })));
73926
+ });
73927
+ const $1bf158f521e1b1b4$var$CONTENT_NAME = "AccordionContent";
73928
+ const $1bf158f521e1b1b4$export$985b9a77379b54a0 = /* @__PURE__ */ React$3.forwardRef((props, forwardedRef) => {
73929
+ const { __scopeAccordion, ...contentProps } = props;
73930
+ const accordionContext = $1bf158f521e1b1b4$var$useAccordionContext($1bf158f521e1b1b4$var$ACCORDION_NAME, __scopeAccordion);
73931
+ const itemContext = $1bf158f521e1b1b4$var$useAccordionItemContext($1bf158f521e1b1b4$var$CONTENT_NAME, __scopeAccordion);
73932
+ const collapsibleScope = $1bf158f521e1b1b4$var$useCollapsibleScope(__scopeAccordion);
73933
+ return /* @__PURE__ */ React$3.createElement($409067139f391064$export$7c6e2c02157bb7d2, _extends$2({
73934
+ role: "region",
73935
+ "aria-labelledby": itemContext.triggerId,
73936
+ "data-orientation": accordionContext.orientation
73937
+ }, collapsibleScope, contentProps, {
73938
+ ref: forwardedRef,
73939
+ style: {
73940
+ ["--radix-accordion-content-height"]: "var(--radix-collapsible-content-height)",
73941
+ ["--radix-accordion-content-width"]: "var(--radix-collapsible-content-width)",
73942
+ ...props.style
73943
+ }
73944
+ }));
73945
+ });
73946
+ function $1bf158f521e1b1b4$var$getState(open) {
73947
+ return open ? "open" : "closed";
73948
+ }
73949
+ const $1bf158f521e1b1b4$export$be92b6f5f03c0fe9 = $1bf158f521e1b1b4$export$a766cd26d0d69044;
73950
+ const $1bf158f521e1b1b4$export$6d08773d2e66f8f2 = $1bf158f521e1b1b4$export$d99097c13d4dac9f;
73951
+ const $1bf158f521e1b1b4$export$8b251419efc915eb = $1bf158f521e1b1b4$export$5e3e5deaaf81ee41;
73952
+ const $1bf158f521e1b1b4$export$41fb9f06171c75f4 = $1bf158f521e1b1b4$export$94e939b1f85bdd73;
73953
+ const $1bf158f521e1b1b4$export$7c6e2c02157bb7d2 = $1bf158f521e1b1b4$export$985b9a77379b54a0;
73954
+ const Accordion = $1bf158f521e1b1b4$export$be92b6f5f03c0fe9;
73955
+ const AccordionItem = React__namespace.forwardRef(({ className: className2, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
73956
+ $1bf158f521e1b1b4$export$6d08773d2e66f8f2,
73957
+ {
73958
+ ref,
73959
+ className: cn("border-b", className2),
73960
+ ...props
73961
+ }
73962
+ ));
73963
+ AccordionItem.displayName = "AccordionItem";
73964
+ const AccordionTrigger = React__namespace.forwardRef(({ className: className2, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx($1bf158f521e1b1b4$export$8b251419efc915eb, { className: "flex", children: /* @__PURE__ */ jsxRuntime.jsxs(
73965
+ $1bf158f521e1b1b4$export$41fb9f06171c75f4,
73966
+ {
73967
+ ref,
73968
+ className: cn(
73969
+ "flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180",
73970
+ className2
73971
+ ),
73972
+ ...props,
73973
+ children: [
73974
+ children,
73975
+ /* @__PURE__ */ jsxRuntime.jsx(ChevronDown, { className: "w-4 h-4 transition-transform duration-200 shrink-0" })
73976
+ ]
73977
+ }
73978
+ ) }));
73979
+ AccordionTrigger.displayName = $1bf158f521e1b1b4$export$41fb9f06171c75f4.displayName;
73980
+ const AccordionContent = React__namespace.forwardRef(({ className: className2, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
73981
+ $1bf158f521e1b1b4$export$7c6e2c02157bb7d2,
73982
+ {
73983
+ ref,
73984
+ className: cn(
73985
+ "overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",
73986
+ className2
73987
+ ),
73988
+ ...props,
73989
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "pt-0 pb-4", children })
73990
+ }
73991
+ ));
73992
+ AccordionContent.displayName = $1bf158f521e1b1b4$export$7c6e2c02157bb7d2.displayName;
73993
+ function ValPatches({
73994
+ api,
73995
+ patches: patchIdsByModule,
73996
+ onCommit,
73997
+ onCancel
73998
+ }) {
73999
+ const [loading, setLoading] = React$3.useState(false);
74000
+ React$3.useEffect(() => {
74001
+ const handler = (e) => {
74002
+ if (e.key === "Escape") {
74003
+ onCancel();
74004
+ }
74005
+ };
74006
+ window.addEventListener("keydown", handler);
74007
+ return () => window.removeEventListener("keydown", handler);
74008
+ }, []);
74009
+ return /* @__PURE__ */ jsxRuntime.jsxs(Container, { children: [
74010
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex justify-end p-2", children: /* @__PURE__ */ jsxRuntime.jsx("button", { onClick: onCancel, children: /* @__PURE__ */ jsxRuntime.jsx(X, {}) }) }),
74011
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center justify-center h-full p-8 gap-y-5", children: [
74012
+ /* @__PURE__ */ jsxRuntime.jsx("h1", { className: "block font-sans text-xl font-bold", children: "Review changes" }),
74013
+ /* @__PURE__ */ jsxRuntime.jsx("ul", { children: Object.entries(patchIdsByModule).map(([moduleId, patchIds]) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(Accordion, { type: "single", collapsible: true, children: /* @__PURE__ */ jsxRuntime.jsxs($1bf158f521e1b1b4$export$d99097c13d4dac9f, { value: moduleId, children: [
74014
+ /* @__PURE__ */ jsxRuntime.jsxs($1bf158f521e1b1b4$export$94e939b1f85bdd73, { className: "grid grid-cols-[1fr_min-content] gap-x-2", children: [
74015
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: moduleId }),
74016
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex", children: [
74017
+ /* @__PURE__ */ jsxRuntime.jsx(Diff, { size: 14 }),
74018
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: patchIds.length }),
74019
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: /* @__PURE__ */ jsxRuntime.jsx(ChevronDown, { size: 14 }) })
74020
+ ] })
74021
+ ] }),
74022
+ /* @__PURE__ */ jsxRuntime.jsx(AccordionContent, { children: /* @__PURE__ */ jsxRuntime.jsx(Accordion, { type: "multiple", children: patchIds.map((patchId) => /* @__PURE__ */ jsxRuntime.jsxs($1bf158f521e1b1b4$export$d99097c13d4dac9f, { value: patchId, children: [
74023
+ /* @__PURE__ */ jsxRuntime.jsx($1bf158f521e1b1b4$export$94e939b1f85bdd73, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-x-5", children: [
74024
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: "Changed by: John Smith" }),
74025
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: "Changed at: 2024-01-04 13:25:00" }),
74026
+ /* @__PURE__ */ jsxRuntime.jsx(
74027
+ "img",
74028
+ {
74029
+ className: "h-[14px] w-[14px]",
74030
+ src: "https://randomuser.me/api/portraits/men/3.jpg"
74031
+ }
74032
+ ),
74033
+ /* @__PURE__ */ jsxRuntime.jsx(X, { size: 14 }),
74034
+ /* @__PURE__ */ jsxRuntime.jsx(ChevronDown, { size: 14 })
74035
+ ] }) }),
74036
+ /* @__PURE__ */ jsxRuntime.jsx(AccordionContent, { children: /* @__PURE__ */ jsxRuntime.jsx("div", { children: 'Changed to: "Foo bar"' }) })
74037
+ ] })) }) })
74038
+ ] }) }) }, moduleId)) }),
74039
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-x-4", children: [
74040
+ /* @__PURE__ */ jsxRuntime.jsx(Button, { variant: "secondary", onClick: onCancel, children: "Cancel" }),
74041
+ /* @__PURE__ */ jsxRuntime.jsx(
74042
+ Button,
74043
+ {
74044
+ disabled: Object.keys(patchIdsByModule).length === 0 || loading,
74045
+ onClick: () => {
74046
+ setLoading(true);
74047
+ api.postCommit({ patches: patchIdsByModule }).then((res) => {
74048
+ if (result.isErr(res)) {
74049
+ console.error(res.error);
74050
+ alert("Could not commit patches: " + res.error.message);
74051
+ } else {
74052
+ console.log("Committed patches: ", res.value);
74053
+ onCommit();
74054
+ }
74055
+ }).finally(() => {
74056
+ setLoading(false);
74057
+ });
74058
+ },
74059
+ children: loading ? "Committing..." : "Commit"
74060
+ }
74061
+ )
74062
+ ] })
74063
+ ] })
74064
+ ] });
74065
+ }
74066
+ function Container({
74067
+ children
74068
+ }) {
74069
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-full w-full rounded-lg bg-gradient-to-br from-background/90 from-40% to-background backdrop-blur-lg text-primary drop-shadow-2xl", children });
74070
+ }
72696
74071
  const ValModulesContext = React$3.createContext(null);
72697
74072
  const useValModuleFromPath = (sourcePath) => {
72698
74073
  var _a, _b;
@@ -72822,6 +74197,7 @@ Showing stack trace of: 1. ${fatalErrors[0].message}`;
72822
74197
  },
72823
74198
  []
72824
74199
  );
74200
+ const [patchModalOpen, setPatchModalOpen] = React$3.useState(false);
72825
74201
  const allModuleIds = Object.entries(modules || {}).flatMap(
72826
74202
  ([moduleId, valModule]) => {
72827
74203
  if ((valModule == null ? void 0 : valModule.schema) && (valModule == null ? void 0 : valModule.source)) {
@@ -72856,13 +74232,26 @@ Showing stack trace of: 1. ${fatalErrors[0].message}`;
72856
74232
  className: "relative w-full h-[100] overflow-hidden font-serif antialiased bg-background text-primary",
72857
74233
  "data-mode": theme2,
72858
74234
  children: [
74235
+ patchModalOpen && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "fixed z-5 top-[16px] left-[16px] w-[calc(100%-32px-50px-16px)] h-[calc(100svh-32px)]", children: /* @__PURE__ */ jsxRuntime.jsx(
74236
+ ValPatches,
74237
+ {
74238
+ patches,
74239
+ api,
74240
+ onCancel: () => {
74241
+ setPatchModalOpen(false);
74242
+ },
74243
+ onCommit: () => {
74244
+ setPatchResetId((patchResetId) => patchResetId + 1);
74245
+ }
74246
+ }
74247
+ ) }),
72859
74248
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "fixed -translate-y-1/2 right-4 top-1/2 z-overlay", children: /* @__PURE__ */ jsxRuntime.jsx(
72860
74249
  ValMenu,
72861
74250
  {
72862
74251
  direction: "vertical",
72863
74252
  api,
72864
74253
  patches,
72865
- onCommit: () => setPatchResetId((prev) => prev + 1)
74254
+ onClickPatches: () => setPatchModalOpen((prev) => !prev)
72866
74255
  }
72867
74256
  ) }),
72868
74257
  /* @__PURE__ */ jsxRuntime.jsx("div", { id: "val-fullscreen-hover", ref: hoverElemRef }),
@@ -73905,6 +75294,7 @@ function ValOverlay({
73905
75294
  },
73906
75295
  []
73907
75296
  );
75297
+ const [patchModalOpen, setPatchModalOpen] = React$3.useState(false);
73908
75298
  return /* @__PURE__ */ jsxRuntime.jsx(
73909
75299
  ValOverlayContext.Provider,
73910
75300
  {
@@ -73933,15 +75323,26 @@ function ValOverlay({
73933
75323
  // 1 less than the NextJS error z-index: 9000
73934
75324
  },
73935
75325
  children: [
75326
+ patchModalOpen && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "fixed z-5 top-[16px] left-[16px] w-[calc(100%-32px-50px-16px)] h-[calc(100svh-32px)]", children: /* @__PURE__ */ jsxRuntime.jsx(
75327
+ ValPatches,
75328
+ {
75329
+ patches,
75330
+ api,
75331
+ onCancel: () => {
75332
+ setPatchModalOpen(false);
75333
+ },
75334
+ onCommit: () => {
75335
+ setPatchResetId((patchResetId) => patchResetId + 1);
75336
+ }
75337
+ }
75338
+ ) }),
73936
75339
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "fixed -translate-y-1/2 right-4 top-1/2 z-overlay", children: /* @__PURE__ */ jsxRuntime.jsx(
73937
75340
  ValMenu,
73938
75341
  {
73939
75342
  direction: "vertical",
73940
75343
  api,
73941
75344
  patches,
73942
- onCommit: () => {
73943
- setPatchResetId((patchResetId) => patchResetId + 1);
73944
- }
75345
+ onClickPatches: () => setPatchModalOpen((prev) => !prev)
73945
75346
  }
73946
75347
  ) }),
73947
75348
  session.status === "success" && session.data.enabled && (editMode === "hover" || editMode === "window") && hoverTarget.path && /* @__PURE__ */ jsxRuntime.jsx(
@@ -74067,28 +75468,40 @@ function ValHover({
74067
75468
  }) {
74068
75469
  var _a;
74069
75470
  const rect = (_a = hoverTarget.element) == null ? void 0 : _a.getBoundingClientRect();
75471
+ React$3.useEffect(() => {
75472
+ if (hoverTarget.path) {
75473
+ const clickListener = (ev) => {
75474
+ if (ev.target && ev.target instanceof HTMLElement && ev.target.id !== "val-ui")
75475
+ setWindowTarget({
75476
+ ...hoverTarget,
75477
+ path: hoverTarget.path,
75478
+ mouse: { x: ev.pageX, y: ev.pageY }
75479
+ });
75480
+ setEditMode("window");
75481
+ setHoverTarget(null);
75482
+ ev.stopPropagation();
75483
+ };
75484
+ const prevCursor = document.body.style.cursor;
75485
+ document.body.style.cursor = "pointer";
75486
+ document.body.addEventListener("click", clickListener);
75487
+ return () => {
75488
+ document.body.style.cursor = prevCursor;
75489
+ document.body.removeEventListener("click", clickListener);
75490
+ };
75491
+ }
75492
+ }, [hoverTarget]);
74070
75493
  return /* @__PURE__ */ jsxRuntime.jsx(
74071
75494
  "div",
74072
75495
  {
74073
75496
  id: "val-hover",
74074
75497
  className: "fixed border-2 cursor-pointer z-overlay-hover border-accent",
74075
75498
  style: {
75499
+ pointerEvents: "none",
74076
75500
  top: rect == null ? void 0 : rect.top,
74077
75501
  left: rect == null ? void 0 : rect.left,
74078
75502
  width: rect == null ? void 0 : rect.width,
74079
75503
  height: rect == null ? void 0 : rect.height
74080
75504
  },
74081
- onClick: (ev) => {
74082
- if (hoverTarget.path) {
74083
- setWindowTarget({
74084
- ...hoverTarget,
74085
- path: hoverTarget.path,
74086
- mouse: { x: ev.pageX, y: ev.pageY }
74087
- });
74088
- setEditMode("window");
74089
- setHoverTarget(null);
74090
- }
74091
- },
74092
75505
  children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-end w-full text-xs", children: /* @__PURE__ */ jsxRuntime.jsx(
74093
75506
  "div",
74094
75507
  {
@@ -74107,20 +75520,31 @@ function useHoverTarget(editMode) {
74107
75520
  const [targetElement, setTargetElement] = React$3.useState();
74108
75521
  const [targetPath, setTargetPath] = React$3.useState();
74109
75522
  const [targetRect, setTargetRect] = React$3.useState();
75523
+ function tagElements(target) {
75524
+ if (target) {
75525
+ const sourcePaths = [];
75526
+ if (target.dataset.valPath) {
75527
+ sourcePaths.push(target.dataset.valPath);
75528
+ }
75529
+ for (const element of Array.from(target.querySelectorAll("*"))) {
75530
+ if (element instanceof HTMLElement) {
75531
+ const sourcePath = element.dataset.valPath;
75532
+ if (sourcePath) {
75533
+ sourcePaths.push(sourcePath);
75534
+ }
75535
+ }
75536
+ }
75537
+ if (sourcePaths.length > 0) {
75538
+ setTargetElement(target);
75539
+ setTargetPath(sourcePaths.join(","));
75540
+ setTargetRect(target.getBoundingClientRect());
75541
+ }
75542
+ }
75543
+ }
74110
75544
  React$3.useEffect(() => {
74111
75545
  if (editMode === "hover" || editMode === "window") {
74112
- let curr = null;
74113
75546
  const mouseOverListener = (e) => {
74114
- const target = e.target;
74115
- curr = target;
74116
- do {
74117
- if (curr == null ? void 0 : curr.dataset.valPath) {
74118
- setTargetElement(curr);
74119
- setTargetPath(curr.dataset.valPath);
74120
- setTargetRect(curr.getBoundingClientRect());
74121
- break;
74122
- }
74123
- } while (curr = (curr == null ? void 0 : curr.parentElement) || null);
75547
+ tagElements(e.target);
74124
75548
  };
74125
75549
  document.addEventListener("mouseover", mouseOverListener);
74126
75550
  return () => {
@@ -74195,7 +75619,7 @@ function useInitEditMode() {
74195
75619
  }, []);
74196
75620
  return [editMode, setEditMode];
74197
75621
  }
74198
- 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.5 | 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: #e5e7eb; /* 2 */\n}\n\n::before,\n::after {\n --tw-content: '';\n}\n\n/*\n1. Use a consistent sensible line-height in all browsers.\n2. Prevent adjustments of font size after orientation changes in iOS.\n3. Use a more readable tab size.\n4. Use the user's configured `sans` font-family by default.\n5. Use the user's configured `sans` font-feature-settings by default.\n6. Use the user's configured `sans` font-variation-settings by default.\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-feature-settings: inherit; /* 1 */\n font-variation-settings: inherit; /* 1 */\n font-size: 100%; /* 1 */\n font-weight: inherit; /* 1 */\n line-height: inherit; /* 1 */\n 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/*\nReset default styling for dialogs.\n*/\n\ndialog {\n padding: 0;\n}\n\n/*\nPrevent resizing textareas horizontally by default.\n*/\n\ntextarea {\n resize: vertical;\n}\n\n/*\n1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)\n2. Set the default placeholder color to the user's configured gray 400 color.\n*/\n\ninput::-moz-placeholder, textarea::-moz-placeholder {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\ninput::placeholder,\ntextarea::placeholder {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\n/*\nSet the default cursor for buttons.\n*/\n\nbutton,\n[role=\"button\"] {\n cursor: pointer;\n}\n\n/*\nMake sure disabled buttons don't get the pointer cursor.\n*/\n\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/* :host for use with Shadow DOM, copied from the TailwindCSS prelude */\n\n:host {\n --background: 0 0% 100%;\n --foreground: 222.2 84% 4.9%;\n\n --card: 0 0% 100%;\n --card-foreground: 222.2 84% 4.9%;\n\n --popover: 0 0% 100%;\n --popover-foreground: 222.2 84% 4.9%;\n\n --primary: 222.2 47.4% 11.2%;\n --primary-foreground: 210 40% 98%;\n\n --secondary: 210 40% 96.1%;\n --secondary-foreground: 222.2 47.4% 11.2%;\n\n --muted: 0 0% 57.3%;\n --muted-foreground: 215.4 16.3% 46.9%;\n\n --accent: 273 60% 51%;\n --accent-foreground: 110 10% 94%;\n\n --destructive: 0 84.2% 60.2%;\n --destructive-foreground: 210 40% 98%;\n\n --border: 214.3 31.8% 91.4%;\n --input: 214.3 31.8% 91.4%;\n --ring: 222.2 84% 4.9%;\n\n --radius: 0.5rem;\n }\n\n:root {\n --background: 110 10% 94%;\n --foreground: 222.2 84% 4.9%;\n\n --card: 0 0% 100%;\n --card-foreground: 222.2 84% 4.9%;\n\n --popover: 0 0% 100%;\n --popover-foreground: 222.2 84% 4.9%;\n\n --primary: 222.2 47.4% 11.2%;\n --primary-foreground: 210 40% 98%;\n\n --secondary: 210 40% 96.1%;\n --secondary-foreground: 222.2 47.4% 11.2%;\n\n --muted: 0 0% 57.3%;\n --muted-foreground: 215.4 16.3% 46.9%;\n\n --accent: 273 60% 51%;\n --accent-foreground: 110 10% 94%;\n\n --destructive: 0 84.2% 60.2%;\n --destructive-foreground: 210 40% 98%;\n\n --border: 214.3 31.8% 91.4%;\n --input: 212.7 9.1% 76.3%;\n --ring: 222.2 84% 4.9%;\n\n --radius: 0.5rem;\n }\n\n/* dark theme */\n\n*[data-mode=\"dark\"] {\n --background: 0 0% 4%;\n --foreground: 210 40% 98%;\n\n --card: 222.2 84% 4.9%;\n --card-foreground: 210 40% 98%;\n\n --popover: 222.2 84% 4.9%;\n --popover-foreground: 210 40% 98%;\n\n --primary: 210 40% 98%;\n --primary-foreground: 222.2 47.4% 11.2%;\n\n --secondary: 217.2 32.6% 17.5%;\n --secondary-foreground: 210 40% 98%;\n\n --muted: 178 23% 76%;\n --muted-foreground: 215 20.2% 65.1%;\n\n --accent: 159 60% 51%;\n --accent-foreground: 210 40% 98%;\n\n --destructive: 0 62.8% 30.6%;\n --destructive-foreground: 210 40% 98%;\n\n --border: 217.2 32.6% 17.5%;\n --input: 217.2 32.6% 17.5%;\n --ring: 212.7 26.8% 83.9%;\n }\n\n* {\n border-color: hsl(var(--border));\n}\n\nbody {\n background-color: hsl(var(--background));\n color: hsl(var(--foreground));\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.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n.pointer-events-none {\n pointer-events: none;\n}\n.invisible {\n visibility: hidden;\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: -0.5rem;\n}\n.-right-\\[10px\\] {\n right: -10px;\n}\n.-top-\\[10px\\] {\n top: -10px;\n}\n.-top-\\[4px\\] {\n top: -4px;\n}\n.bottom-0 {\n bottom: 0px;\n}\n.left-0 {\n left: 0px;\n}\n.left-1 {\n left: 0.25rem;\n}\n.left-2 {\n left: 0.5rem;\n}\n.left-\\[50\\%\\] {\n left: 50%;\n}\n.right-0 {\n right: 0px;\n}\n.right-1 {\n right: 0.25rem;\n}\n.right-4 {\n right: 1rem;\n}\n.right-\\[16px\\] {\n right: 16px;\n}\n.top-0 {\n top: 0px;\n}\n.top-1\\/2 {\n top: 50%;\n}\n.top-4 {\n top: 1rem;\n}\n.top-\\[50\\%\\] {\n top: 50%;\n}\n.z-50 {\n z-index: 50;\n}\n.z-\\[1\\] {\n z-index: 1;\n}\n.z-\\[5\\] {\n z-index: 5;\n}\n.z-overlay {\n z-index: 4;\n}\n.m-4 {\n margin: 1rem;\n}\n.-mx-1 {\n margin-left: -0.25rem;\n margin-right: -0.25rem;\n}\n.-my-2 {\n margin-top: -0.5rem;\n margin-bottom: -0.5rem;\n}\n.-my-\\[100px\\] {\n margin-top: -100px;\n margin-bottom: -100px;\n}\n.mx-2 {\n margin-left: 0.5rem;\n margin-right: 0.5rem;\n}\n.my-1 {\n margin-top: 0.25rem;\n margin-bottom: 0.25rem;\n}\n.mb-4 {\n margin-bottom: 1rem;\n}\n.ml-0 {\n margin-left: 0px;\n}\n.ml-2 {\n margin-left: 0.5rem;\n}\n.ml-\\[20px\\] {\n margin-left: 20px;\n}\n.ml-auto {\n margin-left: auto;\n}\n.mr-2 {\n margin-right: 0.5rem;\n}\n.mt-2 {\n margin-top: 0.5rem;\n}\n.block {\n display: block;\n}\n.inline {\n display: inline;\n}\n.flex {\n display: flex;\n}\n.inline-flex {\n display: inline-flex;\n}\n.table {\n display: table;\n}\n.grid {\n display: grid;\n}\n.hidden {\n display: none;\n}\n.aspect-square {\n aspect-ratio: 1 / 1;\n}\n.h-10 {\n height: 2.5rem;\n}\n.h-11 {\n height: 2.75rem;\n}\n.h-2 {\n height: 0.5rem;\n}\n.h-2\\.5 {\n height: 0.625rem;\n}\n.h-3 {\n height: 0.75rem;\n}\n.h-3\\.5 {\n height: 0.875rem;\n}\n.h-4 {\n height: 1rem;\n}\n.h-7 {\n height: 1.75rem;\n}\n.h-9 {\n height: 2.25rem;\n}\n.h-\\[100\\] {\n height: 100;\n}\n.h-\\[12px\\] {\n height: 12px;\n}\n.h-\\[14px\\] {\n height: 14px;\n}\n.h-\\[18px\\] {\n height: 18px;\n}\n.h-\\[1px\\] {\n height: 1px;\n}\n.h-\\[20px\\] {\n height: 20px;\n}\n.h-\\[22px\\] {\n height: 22px;\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-\\[var\\(--radix-select-trigger-height\\)\\] {\n height: var(--radix-select-trigger-height);\n}\n.h-full {\n height: 100%;\n}\n.h-px {\n height: 1px;\n}\n.h-screen {\n height: 100vh;\n}\n.max-h-\\[300px\\] {\n max-height: 300px;\n}\n.max-h-\\[500px\\] {\n max-height: 500px;\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-0 {\n width: 0px;\n}\n.w-1\\/3 {\n width: 33.333333%;\n}\n.w-10 {\n width: 2.5rem;\n}\n.w-2 {\n width: 0.5rem;\n}\n.w-2\\.5 {\n width: 0.625rem;\n}\n.w-3 {\n width: 0.75rem;\n}\n.w-3\\.5 {\n width: 0.875rem;\n}\n.w-4 {\n width: 1rem;\n}\n.w-5 {\n width: 1.25rem;\n}\n.w-7 {\n width: 1.75rem;\n}\n.w-72 {\n width: 18rem;\n}\n.w-9 {\n width: 2.25rem;\n}\n.w-\\[12px\\] {\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-\\[300px\\] {\n width: 300px;\n}\n.w-\\[32px\\] {\n width: 32px;\n}\n.w-\\[44px\\] {\n width: 44px;\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.min-w-\\[8rem\\] {\n min-width: 8rem;\n}\n.min-w-\\[var\\(--radix-select-trigger-width\\)\\] {\n min-width: var(--radix-select-trigger-width);\n}\n.max-w-\\[1000px\\] {\n max-width: 1000px;\n}\n.max-w-\\[10vw\\] {\n max-width: 10vw;\n}\n.max-w-\\[300px\\] {\n max-width: 300px;\n}\n.max-w-\\[90vw\\] {\n max-width: 90vw;\n}\n.max-w-lg {\n max-width: 32rem;\n}\n.max-w-xl {\n max-width: 36rem;\n}\n.flex-1 {\n flex: 1 1 0%;\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.border-collapse {\n border-collapse: collapse;\n}\n.-translate-y-1\\/2 {\n --tw-translate-y: -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.translate-x-\\[-50\\%\\] {\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.translate-y-\\[-50\\%\\] {\n --tw-translate-y: -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-default {\n cursor: default;\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.touch-none {\n touch-action: none;\n}\n.select-none {\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\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-cols-\\[min-content_1fr\\] {\n grid-template-columns: min-content 1fr;\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.flex-col-reverse {\n flex-direction: column-reverse;\n}\n.items-start {\n align-items: flex-start;\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: 0.25rem;\n}\n.gap-2 {\n gap: 0.5rem;\n}\n.gap-3 {\n gap: 0.75rem;\n}\n.gap-4 {\n gap: 1rem;\n}\n.gap-5 {\n gap: 1.25rem;\n}\n.gap-\\[0\\.5em\\] {\n gap: 0.5em;\n}\n.gap-\\[36px\\] {\n gap: 36px;\n}\n.gap-x-4 {\n -moz-column-gap: 1rem;\n column-gap: 1rem;\n}\n.gap-y-1 {\n row-gap: 0.25rem;\n}\n.gap-y-2 {\n row-gap: 0.5rem;\n}\n.gap-y-4 {\n row-gap: 1rem;\n}\n.space-x-1 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(0.25rem * var(--tw-space-x-reverse));\n margin-left: calc(0.25rem * calc(1 - var(--tw-space-x-reverse)));\n}\n.space-y-1 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));\n}\n.space-y-1\\.5 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.375rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.375rem * var(--tw-space-y-reverse));\n}\n.space-y-2 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));\n}\n.space-y-4 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(1rem * var(--tw-space-y-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-auto {\n overflow-y: auto;\n}\n.overflow-x-hidden {\n overflow-x: hidden;\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-\\[inherit\\] {\n border-radius: inherit;\n}\n.rounded-full {\n border-radius: 9999px;\n}\n.rounded-lg {\n border-radius: var(--radius);\n}\n.rounded-md {\n border-radius: calc(var(--radius) - 2px);\n}\n.rounded-sm {\n border-radius: calc(var(--radius) - 4px);\n}\n.rounded-b-none {\n border-bottom-right-radius: 0px;\n border-bottom-left-radius: 0px;\n}\n.rounded-b-sm {\n border-bottom-right-radius: calc(var(--radius) - 4px);\n border-bottom-left-radius: calc(var(--radius) - 4px);\n}\n.rounded-t-none {\n border-top-left-radius: 0px;\n border-top-right-radius: 0px;\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-x {\n border-left-width: 1px;\n border-right-width: 1px;\n}\n.border-y {\n border-top-width: 1px;\n border-bottom-width: 1px;\n}\n.border-b {\n border-bottom-width: 1px;\n}\n.border-b-0 {\n border-bottom-width: 0px;\n}\n.border-b-2 {\n border-bottom-width: 2px;\n}\n.border-l {\n border-left-width: 1px;\n}\n.border-l-2 {\n border-left-width: 2px;\n}\n.border-r {\n border-right-width: 1px;\n}\n.border-t {\n border-top-width: 1px;\n}\n.border-t-0 {\n border-top-width: 0px;\n}\n.border-accent {\n border-color: hsl(var(--accent));\n}\n.border-border {\n border-color: hsl(var(--border));\n}\n.border-gray-400 {\n --tw-border-opacity: 1;\n border-color: rgb(156 163 175 / var(--tw-border-opacity));\n}\n.border-input {\n border-color: hsl(var(--input));\n}\n.border-primary {\n border-color: hsl(var(--primary));\n}\n.border-transparent {\n border-color: transparent;\n}\n.border-l-transparent {\n border-left-color: transparent;\n}\n.border-t-transparent {\n border-top-color: transparent;\n}\n.bg-accent {\n background-color: hsl(var(--accent));\n}\n.bg-background {\n background-color: hsl(var(--background));\n}\n.bg-background\\/80 {\n background-color: hsl(var(--background) / 0.8);\n}\n.bg-border {\n background-color: hsl(var(--border));\n}\n.bg-card {\n background-color: hsl(var(--card));\n}\n.bg-card-foreground {\n background-color: hsl(var(--card-foreground));\n}\n.bg-destructive {\n background-color: hsl(var(--destructive));\n}\n.bg-gray-300 {\n --tw-bg-opacity: 1;\n background-color: rgb(209 213 219 / var(--tw-bg-opacity));\n}\n.bg-gray-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(107 114 128 / var(--tw-bg-opacity));\n}\n.bg-muted {\n background-color: hsl(var(--muted));\n}\n.bg-popover {\n background-color: hsl(var(--popover));\n}\n.bg-primary {\n background-color: hsl(var(--primary));\n}\n.bg-red-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(239 68 68 / var(--tw-bg-opacity));\n}\n.bg-secondary {\n background-color: hsl(var(--secondary));\n}\n.bg-transparent {\n background-color: transparent;\n}\n.bg-white {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n}\n.bg-gradient-to-b {\n background-image: linear-gradient(to bottom, var(--tw-gradient-stops));\n}\n.bg-gradient-to-br {\n background-image: linear-gradient(to bottom right, var(--tw-gradient-stops));\n}\n.from-background\\/90 {\n --tw-gradient-from: hsl(var(--background) / 0.9) var(--tw-gradient-from-position);\n --tw-gradient-to: hsl(var(--background) / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-card {\n --tw-gradient-from: hsl(var(--card)) var(--tw-gradient-from-position);\n --tw-gradient-to: hsl(var(--card) / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-transparent {\n --tw-gradient-from: transparent var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-40\\% {\n --tw-gradient-from-position: 40%;\n}\n.from-50\\% {\n --tw-gradient-from-position: 50%;\n}\n.to-background {\n --tw-gradient-to: hsl(var(--background)) var(--tw-gradient-to-position);\n}\n.fill-current {\n fill: currentColor;\n}\n.fill-white {\n fill: #fff;\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-0 {\n padding: 0px;\n}\n.p-1 {\n padding: 0.25rem;\n}\n.p-10 {\n padding: 2.5rem;\n}\n.p-2 {\n padding: 0.5rem;\n}\n.p-3 {\n padding: 0.75rem;\n}\n.p-4 {\n padding: 1rem;\n}\n.p-6 {\n padding: 1.5rem;\n}\n.p-\\[1px\\] {\n padding: 1px;\n}\n.px-1 {\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n}\n.px-2 {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n}\n.px-2\\.5 {\n padding-left: 0.625rem;\n padding-right: 0.625rem;\n}\n.px-3 {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n}\n.px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n.px-5 {\n padding-left: 1.25rem;\n padding-right: 1.25rem;\n}\n.px-8 {\n padding-left: 2rem;\n padding-right: 2rem;\n}\n.px-\\[24px\\] {\n padding-left: 24px;\n padding-right: 24px;\n}\n.px-\\[2px\\] {\n padding-left: 2px;\n padding-right: 2px;\n}\n.py-1 {\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n}\n.py-1\\.5 {\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n}\n.py-2 {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n.py-3 {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n}\n.py-4 {\n padding-top: 1rem;\n padding-bottom: 1rem;\n}\n.py-6 {\n padding-top: 1.5rem;\n padding-bottom: 1.5rem;\n}\n.py-7 {\n padding-top: 1.75rem;\n padding-bottom: 1.75rem;\n}\n.py-\\[2px\\] {\n padding-top: 2px;\n padding-bottom: 2px;\n}\n.pb-0 {\n padding-bottom: 0px;\n}\n.pb-20 {\n padding-bottom: 5rem;\n}\n.pb-4 {\n padding-bottom: 1rem;\n}\n.pb-8 {\n padding-bottom: 2rem;\n}\n.pl-0 {\n padding-left: 0px;\n}\n.pl-6 {\n padding-left: 1.5rem;\n}\n.pl-8 {\n padding-left: 2rem;\n}\n.pl-\\[300px\\] {\n padding-left: 300px;\n}\n.pr-2 {\n padding-right: 0.5rem;\n}\n.pt-0 {\n padding-top: 0px;\n}\n.pt-1 {\n padding-top: 0.25rem;\n}\n.pt-2 {\n padding-top: 0.5rem;\n}\n.pt-4 {\n padding-top: 1rem;\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: 'Space 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-\\[0\\.8rem\\] {\n font-size: 0.8rem;\n}\n.text-\\[12px\\] {\n font-size: 12px;\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-medium {\n font-weight: 500;\n}\n.font-normal {\n font-weight: 400;\n}\n.font-semibold {\n font-weight: 600;\n}\n.uppercase {\n text-transform: uppercase;\n}\n.italic {\n font-style: italic;\n}\n.leading-4 {\n line-height: 1rem;\n}\n.leading-none {\n line-height: 1;\n}\n.tracking-\\[0\\.04em\\] {\n letter-spacing: 0.04em;\n}\n.tracking-tight {\n letter-spacing: -0.025em;\n}\n.tracking-wider {\n letter-spacing: 0.05em;\n}\n.tracking-widest {\n letter-spacing: 0.1em;\n}\n.text-accent {\n color: hsl(var(--accent));\n}\n.text-accent-foreground {\n color: hsl(var(--accent-foreground));\n}\n.text-background {\n color: hsl(var(--background));\n}\n.text-card-foreground {\n color: hsl(var(--card-foreground));\n}\n.text-current {\n color: currentColor;\n}\n.text-destructive {\n color: hsl(var(--destructive));\n}\n.text-destructive-foreground {\n color: hsl(var(--destructive-foreground));\n}\n.text-foreground {\n color: hsl(var(--foreground));\n}\n.text-muted {\n color: hsl(var(--muted));\n}\n.text-muted-foreground {\n color: hsl(var(--muted-foreground));\n}\n.text-popover-foreground {\n color: hsl(var(--popover-foreground));\n}\n.text-primary {\n color: hsl(var(--primary));\n}\n.text-primary-foreground {\n color: hsl(var(--primary-foreground));\n}\n.text-secondary-foreground {\n color: hsl(var(--secondary-foreground));\n}\n.text-white {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity));\n}\n.underline {\n text-decoration-line: underline;\n}\n.line-through {\n text-decoration-line: line-through;\n}\n.underline-offset-4 {\n text-underline-offset: 4px;\n}\n.antialiased {\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\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-60 {\n opacity: 0.6;\n}\n.opacity-70 {\n opacity: 0.7;\n}\n.opacity-75 {\n opacity: 0.75;\n}\n.mix-blend-difference {\n mix-blend-mode: difference;\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.shadow-md {\n --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px 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-sm {\n --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n --tw-shadow-colored: 0 1px 2px 0 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.outline {\n outline-style: solid;\n}\n.ring-0 {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n.ring-offset-background {\n --tw-ring-offset-color: hsl(var(--background));\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.drop-shadow-\\[0px_0px_12px_hsl\\(var\\(--accent\\)\\)\\] {\n --tw-drop-shadow: drop-shadow(0px 0px 12px hsl(var(--accent)));\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.backdrop-blur-lg {\n --tw-backdrop-blur: blur(16px);\n -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\n backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\n}\n.backdrop-blur-sm {\n --tw-backdrop-blur: blur(4px);\n -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\n backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\n}\n.transition-all {\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-colors {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\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.transition-transform {\n transition-property: transform;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.duration-150 {\n transition-duration: 150ms;\n}\n.duration-200 {\n transition-duration: 200ms;\n}\n.ease-in-out {\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n}\n@keyframes enter {\n\n from {\n opacity: var(--tw-enter-opacity, 1);\n transform: translate3d(var(--tw-enter-translate-x, 0), var(--tw-enter-translate-y, 0), 0) scale3d(var(--tw-enter-scale, 1), var(--tw-enter-scale, 1), var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0));\n }\n}\n@keyframes exit {\n\n to {\n opacity: var(--tw-exit-opacity, 1);\n transform: translate3d(var(--tw-exit-translate-x, 0), var(--tw-exit-translate-y, 0), 0) scale3d(var(--tw-exit-scale, 1), var(--tw-exit-scale, 1), var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0));\n }\n}\n.animate-in {\n animation-name: enter;\n animation-duration: 150ms;\n --tw-enter-opacity: initial;\n --tw-enter-scale: initial;\n --tw-enter-rotate: initial;\n --tw-enter-translate-x: initial;\n --tw-enter-translate-y: initial;\n}\n.fade-in-0 {\n --tw-enter-opacity: 0;\n}\n.zoom-in-95 {\n --tw-enter-scale: .95;\n}\n.duration-150 {\n animation-duration: 150ms;\n}\n.duration-200 {\n animation-duration: 200ms;\n}\n.ease-in-out {\n animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n}\n.file\\:border-0::file-selector-button {\n border-width: 0px;\n}\n.file\\:bg-transparent::file-selector-button {\n background-color: transparent;\n}\n.file\\:text-sm::file-selector-button {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.file\\:font-medium::file-selector-button {\n font-weight: 500;\n}\n.placeholder\\:text-muted-foreground::-moz-placeholder {\n color: hsl(var(--muted-foreground));\n}\n.placeholder\\:text-muted-foreground::placeholder {\n color: hsl(var(--muted-foreground));\n}\n.focus-within\\:relative:focus-within {\n position: relative;\n}\n.hover\\:w-\\[2px\\]:hover {\n width: 2px;\n}\n.hover\\:w-\\[3px\\]:hover {\n width: 3px;\n}\n.hover\\:cursor-pointer:hover {\n cursor: pointer;\n}\n.hover\\:rounded-lg:hover {\n border-radius: var(--radius);\n}\n.hover\\:bg-accent:hover {\n background-color: hsl(var(--accent));\n}\n.hover\\:bg-border:hover {\n background-color: hsl(var(--border));\n}\n.hover\\:bg-destructive\\/90:hover {\n background-color: hsl(var(--destructive) / 0.9);\n}\n.hover\\:bg-muted:hover {\n background-color: hsl(var(--muted));\n}\n.hover\\:bg-primary:hover {\n background-color: hsl(var(--primary));\n}\n.hover\\:bg-primary\\/90:hover {\n background-color: hsl(var(--primary) / 0.9);\n}\n.hover\\:bg-red-700:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(185 28 28 / var(--tw-bg-opacity));\n}\n.hover\\:bg-secondary\\/80:hover {\n background-color: hsl(var(--secondary) / 0.8);\n}\n.hover\\:text-accent-foreground:hover {\n color: hsl(var(--accent-foreground));\n}\n.hover\\:text-muted-foreground:hover {\n color: hsl(var(--muted-foreground));\n}\n.hover\\:text-primary-foreground:hover {\n color: hsl(var(--primary-foreground));\n}\n.hover\\:text-white:hover {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity));\n}\n.hover\\:underline:hover {\n text-decoration-line: underline;\n}\n.hover\\:opacity-100:hover {\n opacity: 1;\n}\n.focus\\:bg-accent:focus {\n background-color: hsl(var(--accent));\n}\n.focus\\:bg-primary:focus {\n background-color: hsl(var(--primary));\n}\n.focus\\:text-accent-foreground:focus {\n color: hsl(var(--accent-foreground));\n}\n.focus\\:text-primary-foreground:focus {\n color: hsl(var(--primary-foreground));\n}\n.focus\\:outline-none:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.focus\\:ring-2:focus {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n.focus\\:ring-ring:focus {\n --tw-ring-color: hsl(var(--ring));\n}\n.focus\\:ring-offset-2:focus {\n --tw-ring-offset-width: 2px;\n}\n.focus-visible\\:outline-none:focus-visible {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.focus-visible\\:outline-accent:focus-visible {\n outline-color: hsl(var(--accent));\n}\n.focus-visible\\:ring-2:focus-visible {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n.focus-visible\\:ring-ring:focus-visible {\n --tw-ring-color: hsl(var(--ring));\n}\n.focus-visible\\:ring-offset-2:focus-visible {\n --tw-ring-offset-width: 2px;\n}\n.focus-visible\\:ring-offset-background:focus-visible {\n --tw-ring-offset-color: hsl(var(--background));\n}\n.disabled\\:pointer-events-none:disabled {\n pointer-events: none;\n}\n.disabled\\:cursor-not-allowed:disabled {\n cursor: not-allowed;\n}\n.disabled\\:text-background:disabled {\n color: hsl(var(--background));\n}\n.disabled\\:opacity-50:disabled {\n opacity: 0.5;\n}\n.peer:disabled ~ .peer-disabled\\:cursor-not-allowed {\n cursor: not-allowed;\n}\n.peer:disabled ~ .peer-disabled\\:opacity-70 {\n opacity: 0.7;\n}\n.aria-selected\\:bg-accent[aria-selected=\"true\"] {\n background-color: hsl(var(--accent));\n}\n.aria-selected\\:text-accent-foreground[aria-selected=\"true\"] {\n color: hsl(var(--accent-foreground));\n}\n.aria-selected\\:opacity-100[aria-selected=\"true\"] {\n opacity: 1;\n}\n.data-\\[disabled\\]\\:pointer-events-none[data-disabled] {\n pointer-events: none;\n}\n.data-\\[side\\=bottom\\]\\:translate-y-1[data-side=bottom] {\n --tw-translate-y: 0.25rem;\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.data-\\[side\\=left\\]\\:-translate-x-1[data-side=left] {\n --tw-translate-x: -0.25rem;\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.data-\\[side\\=right\\]\\:translate-x-1[data-side=right] {\n --tw-translate-x: 0.25rem;\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.data-\\[side\\=top\\]\\:-translate-y-1[data-side=top] {\n --tw-translate-y: -0.25rem;\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.data-\\[state\\=checked\\]\\:translate-x-5[data-state=checked] {\n --tw-translate-x: 1.25rem;\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.data-\\[state\\=unchecked\\]\\:translate-x-0[data-state=unchecked] {\n --tw-translate-x: 0px;\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@keyframes accordion-up {\n\n from {\n height: var(--radix-accordion-content-height);\n }\n\n to {\n height: 0;\n }\n}\n.data-\\[state\\=closed\\]\\:animate-accordion-up[data-state=closed] {\n animation: accordion-up 0.2s ease-out;\n}\n@keyframes accordion-down {\n\n from {\n height: 0;\n }\n\n to {\n height: var(--radix-accordion-content-height);\n }\n}\n.data-\\[state\\=open\\]\\:animate-accordion-down[data-state=open] {\n animation: accordion-down 0.2s ease-out;\n}\n.data-\\[state\\=active\\]\\:bg-background[data-state=active] {\n background-color: hsl(var(--background));\n}\n.data-\\[state\\=checked\\]\\:bg-accent[data-state=checked] {\n background-color: hsl(var(--accent));\n}\n.data-\\[state\\=checked\\]\\:bg-primary[data-state=checked] {\n background-color: hsl(var(--primary));\n}\n.data-\\[state\\=on\\]\\:bg-accent[data-state=on] {\n background-color: hsl(var(--accent));\n}\n.data-\\[state\\=open\\]\\:bg-accent[data-state=open] {\n background-color: hsl(var(--accent));\n}\n.data-\\[state\\=unchecked\\]\\:bg-primary[data-state=unchecked] {\n background-color: hsl(var(--primary));\n}\n.data-\\[state\\=active\\]\\:text-foreground[data-state=active] {\n color: hsl(var(--foreground));\n}\n.data-\\[state\\=checked\\]\\:text-primary-foreground[data-state=checked] {\n color: hsl(var(--primary-foreground));\n}\n.data-\\[state\\=on\\]\\:text-accent-foreground[data-state=on] {\n color: hsl(var(--accent-foreground));\n}\n.data-\\[state\\=open\\]\\:text-muted-foreground[data-state=open] {\n color: hsl(var(--muted-foreground));\n}\n.data-\\[disabled\\]\\:opacity-50[data-disabled] {\n opacity: 0.5;\n}\n.data-\\[state\\=active\\]\\:shadow-sm[data-state=active] {\n --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n --tw-shadow-colored: 0 1px 2px 0 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.data-\\[state\\=open\\]\\:animate-in[data-state=open] {\n animation-name: enter;\n animation-duration: 150ms;\n --tw-enter-opacity: initial;\n --tw-enter-scale: initial;\n --tw-enter-rotate: initial;\n --tw-enter-translate-x: initial;\n --tw-enter-translate-y: initial;\n}\n.data-\\[state\\=closed\\]\\:animate-out[data-state=closed] {\n animation-name: exit;\n animation-duration: 150ms;\n --tw-exit-opacity: initial;\n --tw-exit-scale: initial;\n --tw-exit-rotate: initial;\n --tw-exit-translate-x: initial;\n --tw-exit-translate-y: initial;\n}\n.data-\\[state\\=closed\\]\\:fade-out-0[data-state=closed] {\n --tw-exit-opacity: 0;\n}\n.data-\\[state\\=open\\]\\:fade-in-0[data-state=open] {\n --tw-enter-opacity: 0;\n}\n.data-\\[state\\=closed\\]\\:zoom-out-95[data-state=closed] {\n --tw-exit-scale: .95;\n}\n.data-\\[state\\=open\\]\\:zoom-in-95[data-state=open] {\n --tw-enter-scale: .95;\n}\n.data-\\[side\\=bottom\\]\\:slide-in-from-top-2[data-side=bottom] {\n --tw-enter-translate-y: -0.5rem;\n}\n.data-\\[side\\=left\\]\\:slide-in-from-right-2[data-side=left] {\n --tw-enter-translate-x: 0.5rem;\n}\n.data-\\[side\\=right\\]\\:slide-in-from-left-2[data-side=right] {\n --tw-enter-translate-x: -0.5rem;\n}\n.data-\\[side\\=top\\]\\:slide-in-from-bottom-2[data-side=top] {\n --tw-enter-translate-y: 0.5rem;\n}\n.data-\\[state\\=closed\\]\\:slide-out-to-left-1\\/2[data-state=closed] {\n --tw-exit-translate-x: -50%;\n}\n.data-\\[state\\=closed\\]\\:slide-out-to-top-\\[48\\%\\][data-state=closed] {\n --tw-exit-translate-y: -48%;\n}\n.data-\\[state\\=open\\]\\:slide-in-from-left-1\\/2[data-state=open] {\n --tw-enter-translate-x: -50%;\n}\n.data-\\[state\\=open\\]\\:slide-in-from-top-\\[48\\%\\][data-state=open] {\n --tw-enter-translate-y: -48%;\n}\n:is([data-mode=\"dark\"] .dark\\:border-white) {\n --tw-border-opacity: 1;\n border-color: rgb(255 255 255 / var(--tw-border-opacity));\n}\n@media (min-width: 640px) {\n\n .sm\\:mt-0 {\n margin-top: 0px;\n }\n\n .sm\\:block {\n display: block;\n }\n\n .sm\\:flex-row {\n flex-direction: row;\n }\n\n .sm\\:justify-end {\n justify-content: flex-end;\n }\n\n .sm\\:space-x-2 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(0.5rem * var(--tw-space-x-reverse));\n margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));\n }\n\n .sm\\:space-x-4 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(1rem * var(--tw-space-x-reverse));\n margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse)));\n }\n\n .sm\\:space-y-0 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0px * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0px * var(--tw-space-y-reverse));\n }\n\n .sm\\:rounded-lg {\n border-radius: var(--radius);\n }\n\n .sm\\:p-0 {\n padding: 0px;\n }\n\n .sm\\:text-left {\n text-align: left;\n }\n}\n@media (min-width: 768px) {\n\n .md\\:relative {\n position: relative;\n }\n\n .md\\:flex {\n display: flex;\n }\n\n .md\\:hidden {\n display: none;\n }\n\n .md\\:w-\\[300px\\] {\n width: 300px;\n }\n\n .md\\:w-full {\n width: 100%;\n }\n\n .md\\:px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n }\n\n .md\\:pl-0 {\n padding-left: 0px;\n }\n}\n.\\[\\&\\:has\\(\\[aria-selected\\]\\)\\]\\:bg-accent:has([aria-selected]) {\n background-color: hsl(var(--accent));\n}\n.first\\:\\[\\&\\:has\\(\\[aria-selected\\]\\)\\]\\:rounded-l-md:has([aria-selected]):first-child {\n border-top-left-radius: calc(var(--radius) - 2px);\n border-bottom-left-radius: calc(var(--radius) - 2px);\n}\n.last\\:\\[\\&\\:has\\(\\[aria-selected\\]\\)\\]\\:rounded-r-md:has([aria-selected]):last-child {\n border-top-right-radius: calc(var(--radius) - 2px);\n border-bottom-right-radius: calc(var(--radius) - 2px);\n}\n.\\[\\&\\[data-state\\=open\\]\\>svg\\]\\:rotate-180[data-state=open]>svg {\n --tw-rotate: 180deg;\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.\\[\\&_\\[cmdk-group-heading\\]\\]\\:px-2 [cmdk-group-heading] {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n}\n.\\[\\&_\\[cmdk-group-heading\\]\\]\\:py-1\\.5 [cmdk-group-heading] {\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n}\n.\\[\\&_\\[cmdk-group-heading\\]\\]\\:text-xs [cmdk-group-heading] {\n font-size: 0.75rem;\n line-height: 1rem;\n}\n.\\[\\&_\\[cmdk-group-heading\\]\\]\\:font-medium [cmdk-group-heading] {\n font-weight: 500;\n}\n.\\[\\&_\\[cmdk-group-heading\\]\\]\\:text-muted-foreground [cmdk-group-heading] {\n color: hsl(var(--muted-foreground));\n}\n.\\[\\&_\\[cmdk-group\\]\\:not\\(\\[hidden\\]\\)_\\~\\[cmdk-group\\]\\]\\:pt-0 [cmdk-group]:not([hidden]) ~[cmdk-group] {\n padding-top: 0px;\n}\n.\\[\\&_\\[cmdk-group\\]\\]\\:px-2 [cmdk-group] {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n}\n.\\[\\&_\\[cmdk-input-wrapper\\]_svg\\]\\:h-5 [cmdk-input-wrapper] svg {\n height: 1.25rem;\n}\n.\\[\\&_\\[cmdk-input-wrapper\\]_svg\\]\\:w-5 [cmdk-input-wrapper] svg {\n width: 1.25rem;\n}\n.\\[\\&_\\[cmdk-input\\]\\]\\:h-12 [cmdk-input] {\n height: 3rem;\n}\n.\\[\\&_\\[cmdk-item\\]\\]\\:px-2 [cmdk-item] {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n}\n.\\[\\&_\\[cmdk-item\\]\\]\\:py-3 [cmdk-item] {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n}\n.\\[\\&_\\[cmdk-item\\]_svg\\]\\:h-5 [cmdk-item] svg {\n height: 1.25rem;\n}\n.\\[\\&_\\[cmdk-item\\]_svg\\]\\:w-5 [cmdk-item] svg {\n width: 1.25rem;\n}\n";
75622
+ 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.5 | 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: #e5e7eb; /* 2 */\n}\n\n::before,\n::after {\n --tw-content: '';\n}\n\n/*\n1. Use a consistent sensible line-height in all browsers.\n2. Prevent adjustments of font size after orientation changes in iOS.\n3. Use a more readable tab size.\n4. Use the user's configured `sans` font-family by default.\n5. Use the user's configured `sans` font-feature-settings by default.\n6. Use the user's configured `sans` font-variation-settings by default.\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-feature-settings: inherit; /* 1 */\n font-variation-settings: inherit; /* 1 */\n font-size: 100%; /* 1 */\n font-weight: inherit; /* 1 */\n line-height: inherit; /* 1 */\n 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/*\nReset default styling for dialogs.\n*/\n\ndialog {\n padding: 0;\n}\n\n/*\nPrevent resizing textareas horizontally by default.\n*/\n\ntextarea {\n resize: vertical;\n}\n\n/*\n1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)\n2. Set the default placeholder color to the user's configured gray 400 color.\n*/\n\ninput::-moz-placeholder, textarea::-moz-placeholder {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\ninput::placeholder,\ntextarea::placeholder {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\n/*\nSet the default cursor for buttons.\n*/\n\nbutton,\n[role=\"button\"] {\n cursor: pointer;\n}\n\n/*\nMake sure disabled buttons don't get the pointer cursor.\n*/\n\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/* :host for use with Shadow DOM, copied from the TailwindCSS prelude */\n\n:host {\n --background: 0 0% 100%;\n --foreground: 222.2 84% 4.9%;\n\n --card: 0 0% 100%;\n --card-foreground: 222.2 84% 4.9%;\n\n --popover: 0 0% 100%;\n --popover-foreground: 222.2 84% 4.9%;\n\n --primary: 222.2 47.4% 11.2%;\n --primary-foreground: 210 40% 98%;\n\n --secondary: 210 40% 96.1%;\n --secondary-foreground: 222.2 47.4% 11.2%;\n\n --muted: 0 0% 57.3%;\n --muted-foreground: 215.4 16.3% 46.9%;\n\n --accent: 273 60% 51%;\n --accent-foreground: 110 10% 94%;\n\n --destructive: 0 84.2% 60.2%;\n --destructive-foreground: 210 40% 98%;\n\n --border: 214.3 31.8% 91.4%;\n --input: 214.3 31.8% 91.4%;\n --ring: 222.2 84% 4.9%;\n\n --radius: 0.5rem;\n }\n\n:root {\n --background: 110 10% 94%;\n --foreground: 222.2 84% 4.9%;\n\n --card: 0 0% 100%;\n --card-foreground: 222.2 84% 4.9%;\n\n --popover: 0 0% 100%;\n --popover-foreground: 222.2 84% 4.9%;\n\n --primary: 222.2 47.4% 11.2%;\n --primary-foreground: 210 40% 98%;\n\n --secondary: 210 40% 96.1%;\n --secondary-foreground: 222.2 47.4% 11.2%;\n\n --muted: 0 0% 57.3%;\n --muted-foreground: 215.4 16.3% 46.9%;\n\n --accent: 273 60% 51%;\n --accent-foreground: 110 10% 94%;\n\n --destructive: 0 84.2% 60.2%;\n --destructive-foreground: 210 40% 98%;\n\n --border: 214.3 31.8% 91.4%;\n --input: 212.7 9.1% 76.3%;\n --ring: 222.2 84% 4.9%;\n\n --radius: 0.5rem;\n }\n\n/* dark theme */\n\n*[data-mode=\"dark\"] {\n --background: 0 0% 4%;\n --foreground: 210 40% 98%;\n\n --card: 222.2 84% 4.9%;\n --card-foreground: 210 40% 98%;\n\n --popover: 222.2 84% 4.9%;\n --popover-foreground: 210 40% 98%;\n\n --primary: 210 40% 98%;\n --primary-foreground: 222.2 47.4% 11.2%;\n\n --secondary: 217.2 32.6% 17.5%;\n --secondary-foreground: 210 40% 98%;\n\n --muted: 178 23% 76%;\n --muted-foreground: 215 20.2% 65.1%;\n\n --accent: 159 60% 51%;\n --accent-foreground: 210 40% 98%;\n\n --destructive: 0 62.8% 30.6%;\n --destructive-foreground: 210 40% 98%;\n\n --border: 217.2 32.6% 17.5%;\n --input: 217.2 32.6% 17.5%;\n --ring: 212.7 26.8% 83.9%;\n }\n\n* {\n border-color: hsl(var(--border));\n}\n\nbody {\n background-color: hsl(var(--background));\n color: hsl(var(--foreground));\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.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n.pointer-events-none {\n pointer-events: none;\n}\n.invisible {\n visibility: hidden;\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: -0.5rem;\n}\n.-right-\\[10px\\] {\n right: -10px;\n}\n.-top-\\[10px\\] {\n top: -10px;\n}\n.-top-\\[4px\\] {\n top: -4px;\n}\n.bottom-0 {\n bottom: 0px;\n}\n.left-0 {\n left: 0px;\n}\n.left-1 {\n left: 0.25rem;\n}\n.left-2 {\n left: 0.5rem;\n}\n.left-\\[16px\\] {\n left: 16px;\n}\n.left-\\[50\\%\\] {\n left: 50%;\n}\n.right-0 {\n right: 0px;\n}\n.right-1 {\n right: 0.25rem;\n}\n.right-4 {\n right: 1rem;\n}\n.right-\\[16px\\] {\n right: 16px;\n}\n.top-0 {\n top: 0px;\n}\n.top-1\\/2 {\n top: 50%;\n}\n.top-4 {\n top: 1rem;\n}\n.top-\\[16px\\] {\n top: 16px;\n}\n.top-\\[50\\%\\] {\n top: 50%;\n}\n.z-5 {\n z-index: 5;\n}\n.z-50 {\n z-index: 50;\n}\n.z-\\[1\\] {\n z-index: 1;\n}\n.z-\\[5\\] {\n z-index: 5;\n}\n.z-overlay {\n z-index: 4;\n}\n.m-4 {\n margin: 1rem;\n}\n.-mx-1 {\n margin-left: -0.25rem;\n margin-right: -0.25rem;\n}\n.-my-2 {\n margin-top: -0.5rem;\n margin-bottom: -0.5rem;\n}\n.-my-\\[100px\\] {\n margin-top: -100px;\n margin-bottom: -100px;\n}\n.mx-2 {\n margin-left: 0.5rem;\n margin-right: 0.5rem;\n}\n.my-1 {\n margin-top: 0.25rem;\n margin-bottom: 0.25rem;\n}\n.mb-4 {\n margin-bottom: 1rem;\n}\n.ml-0 {\n margin-left: 0px;\n}\n.ml-2 {\n margin-left: 0.5rem;\n}\n.ml-\\[20px\\] {\n margin-left: 20px;\n}\n.ml-auto {\n margin-left: auto;\n}\n.mr-2 {\n margin-right: 0.5rem;\n}\n.mt-2 {\n margin-top: 0.5rem;\n}\n.block {\n display: block;\n}\n.inline {\n display: inline;\n}\n.flex {\n display: flex;\n}\n.inline-flex {\n display: inline-flex;\n}\n.table {\n display: table;\n}\n.grid {\n display: grid;\n}\n.hidden {\n display: none;\n}\n.aspect-square {\n aspect-ratio: 1 / 1;\n}\n.h-10 {\n height: 2.5rem;\n}\n.h-11 {\n height: 2.75rem;\n}\n.h-2 {\n height: 0.5rem;\n}\n.h-2\\.5 {\n height: 0.625rem;\n}\n.h-3 {\n height: 0.75rem;\n}\n.h-3\\.5 {\n height: 0.875rem;\n}\n.h-4 {\n height: 1rem;\n}\n.h-7 {\n height: 1.75rem;\n}\n.h-9 {\n height: 2.25rem;\n}\n.h-\\[100\\] {\n height: 100;\n}\n.h-\\[12px\\] {\n height: 12px;\n}\n.h-\\[14px\\] {\n height: 14px;\n}\n.h-\\[18px\\] {\n height: 18px;\n}\n.h-\\[1px\\] {\n height: 1px;\n}\n.h-\\[20px\\] {\n height: 20px;\n}\n.h-\\[22px\\] {\n height: 22px;\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-\\[calc\\(100svh-32px\\)\\] {\n height: calc(100svh - 32px);\n}\n.h-\\[var\\(--radix-select-trigger-height\\)\\] {\n height: var(--radix-select-trigger-height);\n}\n.h-full {\n height: 100%;\n}\n.h-px {\n height: 1px;\n}\n.h-screen {\n height: 100vh;\n}\n.max-h-\\[300px\\] {\n max-height: 300px;\n}\n.max-h-\\[500px\\] {\n max-height: 500px;\n}\n.min-h-\\[100px\\] {\n min-height: 100px;\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-0 {\n width: 0px;\n}\n.w-1\\/3 {\n width: 33.333333%;\n}\n.w-10 {\n width: 2.5rem;\n}\n.w-2 {\n width: 0.5rem;\n}\n.w-2\\.5 {\n width: 0.625rem;\n}\n.w-3 {\n width: 0.75rem;\n}\n.w-3\\.5 {\n width: 0.875rem;\n}\n.w-4 {\n width: 1rem;\n}\n.w-5 {\n width: 1.25rem;\n}\n.w-7 {\n width: 1.75rem;\n}\n.w-72 {\n width: 18rem;\n}\n.w-9 {\n width: 2.25rem;\n}\n.w-\\[12px\\] {\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-\\[300px\\] {\n width: 300px;\n}\n.w-\\[32px\\] {\n width: 32px;\n}\n.w-\\[44px\\] {\n width: 44px;\n}\n.w-\\[9px\\] {\n width: 9px;\n}\n.w-\\[calc\\(100\\%-32px-50px-16px\\)\\] {\n width: calc(100% - 32px - 50px - 16px);\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-\\[200px\\] {\n min-width: 200px;\n}\n.min-w-\\[320px\\] {\n min-width: 320px;\n}\n.min-w-\\[500px\\] {\n min-width: 500px;\n}\n.min-w-\\[8rem\\] {\n min-width: 8rem;\n}\n.min-w-\\[var\\(--radix-select-trigger-width\\)\\] {\n min-width: var(--radix-select-trigger-width);\n}\n.max-w-\\[1000px\\] {\n max-width: 1000px;\n}\n.max-w-\\[10vw\\] {\n max-width: 10vw;\n}\n.max-w-\\[300px\\] {\n max-width: 300px;\n}\n.max-w-\\[90vw\\] {\n max-width: 90vw;\n}\n.max-w-lg {\n max-width: 32rem;\n}\n.max-w-xl {\n max-width: 36rem;\n}\n.flex-1 {\n flex: 1 1 0%;\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.border-collapse {\n border-collapse: collapse;\n}\n.-translate-y-1\\/2 {\n --tw-translate-y: -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.translate-x-\\[-50\\%\\] {\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.translate-y-\\[-50\\%\\] {\n --tw-translate-y: -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-default {\n cursor: default;\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.touch-none {\n touch-action: none;\n}\n.select-none {\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\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-cols-\\[1fr_min-content\\] {\n grid-template-columns: 1fr min-content;\n}\n.grid-cols-\\[min-content_1fr\\] {\n grid-template-columns: min-content 1fr;\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.flex-col-reverse {\n flex-direction: column-reverse;\n}\n.items-start {\n align-items: flex-start;\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: 0.25rem;\n}\n.gap-2 {\n gap: 0.5rem;\n}\n.gap-3 {\n gap: 0.75rem;\n}\n.gap-4 {\n gap: 1rem;\n}\n.gap-5 {\n gap: 1.25rem;\n}\n.gap-\\[0\\.5em\\] {\n gap: 0.5em;\n}\n.gap-\\[36px\\] {\n gap: 36px;\n}\n.gap-x-2 {\n -moz-column-gap: 0.5rem;\n column-gap: 0.5rem;\n}\n.gap-x-4 {\n -moz-column-gap: 1rem;\n column-gap: 1rem;\n}\n.gap-x-5 {\n -moz-column-gap: 1.25rem;\n column-gap: 1.25rem;\n}\n.gap-y-1 {\n row-gap: 0.25rem;\n}\n.gap-y-2 {\n row-gap: 0.5rem;\n}\n.gap-y-4 {\n row-gap: 1rem;\n}\n.gap-y-5 {\n row-gap: 1.25rem;\n}\n.space-x-1 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(0.25rem * var(--tw-space-x-reverse));\n margin-left: calc(0.25rem * calc(1 - var(--tw-space-x-reverse)));\n}\n.space-y-1 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));\n}\n.space-y-1\\.5 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.375rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.375rem * var(--tw-space-y-reverse));\n}\n.space-y-2 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));\n}\n.space-y-4 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(1rem * var(--tw-space-y-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-auto {\n overflow-y: auto;\n}\n.overflow-x-hidden {\n overflow-x: hidden;\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-\\[inherit\\] {\n border-radius: inherit;\n}\n.rounded-full {\n border-radius: 9999px;\n}\n.rounded-lg {\n border-radius: var(--radius);\n}\n.rounded-md {\n border-radius: calc(var(--radius) - 2px);\n}\n.rounded-sm {\n border-radius: calc(var(--radius) - 4px);\n}\n.rounded-b-none {\n border-bottom-right-radius: 0px;\n border-bottom-left-radius: 0px;\n}\n.rounded-b-sm {\n border-bottom-right-radius: calc(var(--radius) - 4px);\n border-bottom-left-radius: calc(var(--radius) - 4px);\n}\n.rounded-t-none {\n border-top-left-radius: 0px;\n border-top-right-radius: 0px;\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-x {\n border-left-width: 1px;\n border-right-width: 1px;\n}\n.border-y {\n border-top-width: 1px;\n border-bottom-width: 1px;\n}\n.border-b {\n border-bottom-width: 1px;\n}\n.border-b-0 {\n border-bottom-width: 0px;\n}\n.border-b-2 {\n border-bottom-width: 2px;\n}\n.border-l {\n border-left-width: 1px;\n}\n.border-l-2 {\n border-left-width: 2px;\n}\n.border-r {\n border-right-width: 1px;\n}\n.border-t {\n border-top-width: 1px;\n}\n.border-t-0 {\n border-top-width: 0px;\n}\n.border-accent {\n border-color: hsl(var(--accent));\n}\n.border-border {\n border-color: hsl(var(--border));\n}\n.border-gray-400 {\n --tw-border-opacity: 1;\n border-color: rgb(156 163 175 / var(--tw-border-opacity));\n}\n.border-input {\n border-color: hsl(var(--input));\n}\n.border-primary {\n border-color: hsl(var(--primary));\n}\n.border-transparent {\n border-color: transparent;\n}\n.border-l-transparent {\n border-left-color: transparent;\n}\n.border-t-transparent {\n border-top-color: transparent;\n}\n.bg-accent {\n background-color: hsl(var(--accent));\n}\n.bg-background {\n background-color: hsl(var(--background));\n}\n.bg-background\\/80 {\n background-color: hsl(var(--background) / 0.8);\n}\n.bg-border {\n background-color: hsl(var(--border));\n}\n.bg-card {\n background-color: hsl(var(--card));\n}\n.bg-card-foreground {\n background-color: hsl(var(--card-foreground));\n}\n.bg-destructive {\n background-color: hsl(var(--destructive));\n}\n.bg-gray-300 {\n --tw-bg-opacity: 1;\n background-color: rgb(209 213 219 / var(--tw-bg-opacity));\n}\n.bg-gray-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(107 114 128 / var(--tw-bg-opacity));\n}\n.bg-muted {\n background-color: hsl(var(--muted));\n}\n.bg-popover {\n background-color: hsl(var(--popover));\n}\n.bg-primary {\n background-color: hsl(var(--primary));\n}\n.bg-red-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(239 68 68 / var(--tw-bg-opacity));\n}\n.bg-secondary {\n background-color: hsl(var(--secondary));\n}\n.bg-transparent {\n background-color: transparent;\n}\n.bg-white {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n}\n.bg-gradient-to-b {\n background-image: linear-gradient(to bottom, var(--tw-gradient-stops));\n}\n.bg-gradient-to-br {\n background-image: linear-gradient(to bottom right, var(--tw-gradient-stops));\n}\n.from-background\\/90 {\n --tw-gradient-from: hsl(var(--background) / 0.9) var(--tw-gradient-from-position);\n --tw-gradient-to: hsl(var(--background) / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-card {\n --tw-gradient-from: hsl(var(--card)) var(--tw-gradient-from-position);\n --tw-gradient-to: hsl(var(--card) / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-transparent {\n --tw-gradient-from: transparent var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-40\\% {\n --tw-gradient-from-position: 40%;\n}\n.from-50\\% {\n --tw-gradient-from-position: 50%;\n}\n.to-background {\n --tw-gradient-to: hsl(var(--background)) var(--tw-gradient-to-position);\n}\n.fill-current {\n fill: currentColor;\n}\n.fill-white {\n fill: #fff;\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-0 {\n padding: 0px;\n}\n.p-1 {\n padding: 0.25rem;\n}\n.p-10 {\n padding: 2.5rem;\n}\n.p-2 {\n padding: 0.5rem;\n}\n.p-3 {\n padding: 0.75rem;\n}\n.p-4 {\n padding: 1rem;\n}\n.p-6 {\n padding: 1.5rem;\n}\n.p-8 {\n padding: 2rem;\n}\n.p-\\[1px\\] {\n padding: 1px;\n}\n.px-1 {\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n}\n.px-2 {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n}\n.px-2\\.5 {\n padding-left: 0.625rem;\n padding-right: 0.625rem;\n}\n.px-3 {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n}\n.px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n.px-5 {\n padding-left: 1.25rem;\n padding-right: 1.25rem;\n}\n.px-8 {\n padding-left: 2rem;\n padding-right: 2rem;\n}\n.px-\\[24px\\] {\n padding-left: 24px;\n padding-right: 24px;\n}\n.px-\\[2px\\] {\n padding-left: 2px;\n padding-right: 2px;\n}\n.py-1 {\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n}\n.py-1\\.5 {\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n}\n.py-2 {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n.py-3 {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n}\n.py-4 {\n padding-top: 1rem;\n padding-bottom: 1rem;\n}\n.py-6 {\n padding-top: 1.5rem;\n padding-bottom: 1.5rem;\n}\n.py-7 {\n padding-top: 1.75rem;\n padding-bottom: 1.75rem;\n}\n.py-\\[2px\\] {\n padding-top: 2px;\n padding-bottom: 2px;\n}\n.pb-0 {\n padding-bottom: 0px;\n}\n.pb-20 {\n padding-bottom: 5rem;\n}\n.pb-4 {\n padding-bottom: 1rem;\n}\n.pb-8 {\n padding-bottom: 2rem;\n}\n.pl-0 {\n padding-left: 0px;\n}\n.pl-6 {\n padding-left: 1.5rem;\n}\n.pl-8 {\n padding-left: 2rem;\n}\n.pl-\\[300px\\] {\n padding-left: 300px;\n}\n.pr-2 {\n padding-right: 0.5rem;\n}\n.pt-0 {\n padding-top: 0px;\n}\n.pt-1 {\n padding-top: 0.25rem;\n}\n.pt-2 {\n padding-top: 0.5rem;\n}\n.pt-4 {\n padding-top: 1rem;\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: 'Space 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-\\[0\\.8rem\\] {\n font-size: 0.8rem;\n}\n.text-\\[12px\\] {\n font-size: 12px;\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-medium {\n font-weight: 500;\n}\n.font-normal {\n font-weight: 400;\n}\n.font-semibold {\n font-weight: 600;\n}\n.uppercase {\n text-transform: uppercase;\n}\n.italic {\n font-style: italic;\n}\n.leading-4 {\n line-height: 1rem;\n}\n.leading-none {\n line-height: 1;\n}\n.tracking-\\[0\\.04em\\] {\n letter-spacing: 0.04em;\n}\n.tracking-tight {\n letter-spacing: -0.025em;\n}\n.tracking-wider {\n letter-spacing: 0.05em;\n}\n.tracking-widest {\n letter-spacing: 0.1em;\n}\n.text-accent {\n color: hsl(var(--accent));\n}\n.text-accent-foreground {\n color: hsl(var(--accent-foreground));\n}\n.text-background {\n color: hsl(var(--background));\n}\n.text-card-foreground {\n color: hsl(var(--card-foreground));\n}\n.text-current {\n color: currentColor;\n}\n.text-destructive {\n color: hsl(var(--destructive));\n}\n.text-destructive-foreground {\n color: hsl(var(--destructive-foreground));\n}\n.text-foreground {\n color: hsl(var(--foreground));\n}\n.text-muted {\n color: hsl(var(--muted));\n}\n.text-muted-foreground {\n color: hsl(var(--muted-foreground));\n}\n.text-popover-foreground {\n color: hsl(var(--popover-foreground));\n}\n.text-primary {\n color: hsl(var(--primary));\n}\n.text-primary-foreground {\n color: hsl(var(--primary-foreground));\n}\n.text-secondary-foreground {\n color: hsl(var(--secondary-foreground));\n}\n.text-white {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity));\n}\n.underline {\n text-decoration-line: underline;\n}\n.line-through {\n text-decoration-line: line-through;\n}\n.underline-offset-4 {\n text-underline-offset: 4px;\n}\n.antialiased {\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\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-60 {\n opacity: 0.6;\n}\n.opacity-70 {\n opacity: 0.7;\n}\n.opacity-75 {\n opacity: 0.75;\n}\n.mix-blend-difference {\n mix-blend-mode: difference;\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.shadow-md {\n --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px 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-sm {\n --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n --tw-shadow-colored: 0 1px 2px 0 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.outline {\n outline-style: solid;\n}\n.ring-0 {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n.ring-offset-background {\n --tw-ring-offset-color: hsl(var(--background));\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.drop-shadow-\\[0px_0px_12px_hsl\\(var\\(--accent\\)\\)\\] {\n --tw-drop-shadow: drop-shadow(0px 0px 12px hsl(var(--accent)));\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.backdrop-blur-lg {\n --tw-backdrop-blur: blur(16px);\n -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\n backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\n}\n.backdrop-blur-sm {\n --tw-backdrop-blur: blur(4px);\n -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\n backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\n}\n.transition-all {\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-colors {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\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.transition-transform {\n transition-property: transform;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.duration-150 {\n transition-duration: 150ms;\n}\n.duration-200 {\n transition-duration: 200ms;\n}\n.ease-in-out {\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n}\n@keyframes enter {\n\n from {\n opacity: var(--tw-enter-opacity, 1);\n transform: translate3d(var(--tw-enter-translate-x, 0), var(--tw-enter-translate-y, 0), 0) scale3d(var(--tw-enter-scale, 1), var(--tw-enter-scale, 1), var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0));\n }\n}\n@keyframes exit {\n\n to {\n opacity: var(--tw-exit-opacity, 1);\n transform: translate3d(var(--tw-exit-translate-x, 0), var(--tw-exit-translate-y, 0), 0) scale3d(var(--tw-exit-scale, 1), var(--tw-exit-scale, 1), var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0));\n }\n}\n.animate-in {\n animation-name: enter;\n animation-duration: 150ms;\n --tw-enter-opacity: initial;\n --tw-enter-scale: initial;\n --tw-enter-rotate: initial;\n --tw-enter-translate-x: initial;\n --tw-enter-translate-y: initial;\n}\n.fade-in-0 {\n --tw-enter-opacity: 0;\n}\n.zoom-in-95 {\n --tw-enter-scale: .95;\n}\n.duration-150 {\n animation-duration: 150ms;\n}\n.duration-200 {\n animation-duration: 200ms;\n}\n.ease-in-out {\n animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n}\n.file\\:border-0::file-selector-button {\n border-width: 0px;\n}\n.file\\:bg-transparent::file-selector-button {\n background-color: transparent;\n}\n.file\\:text-sm::file-selector-button {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.file\\:font-medium::file-selector-button {\n font-weight: 500;\n}\n.placeholder\\:text-muted-foreground::-moz-placeholder {\n color: hsl(var(--muted-foreground));\n}\n.placeholder\\:text-muted-foreground::placeholder {\n color: hsl(var(--muted-foreground));\n}\n.focus-within\\:relative:focus-within {\n position: relative;\n}\n.hover\\:w-\\[2px\\]:hover {\n width: 2px;\n}\n.hover\\:w-\\[3px\\]:hover {\n width: 3px;\n}\n.hover\\:cursor-pointer:hover {\n cursor: pointer;\n}\n.hover\\:rounded-lg:hover {\n border-radius: var(--radius);\n}\n.hover\\:bg-accent:hover {\n background-color: hsl(var(--accent));\n}\n.hover\\:bg-border:hover {\n background-color: hsl(var(--border));\n}\n.hover\\:bg-destructive\\/90:hover {\n background-color: hsl(var(--destructive) / 0.9);\n}\n.hover\\:bg-muted:hover {\n background-color: hsl(var(--muted));\n}\n.hover\\:bg-primary:hover {\n background-color: hsl(var(--primary));\n}\n.hover\\:bg-primary\\/90:hover {\n background-color: hsl(var(--primary) / 0.9);\n}\n.hover\\:bg-red-700:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(185 28 28 / var(--tw-bg-opacity));\n}\n.hover\\:bg-secondary\\/80:hover {\n background-color: hsl(var(--secondary) / 0.8);\n}\n.hover\\:text-accent-foreground:hover {\n color: hsl(var(--accent-foreground));\n}\n.hover\\:text-muted-foreground:hover {\n color: hsl(var(--muted-foreground));\n}\n.hover\\:text-primary-foreground:hover {\n color: hsl(var(--primary-foreground));\n}\n.hover\\:text-white:hover {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity));\n}\n.hover\\:underline:hover {\n text-decoration-line: underline;\n}\n.hover\\:opacity-100:hover {\n opacity: 1;\n}\n.focus\\:bg-accent:focus {\n background-color: hsl(var(--accent));\n}\n.focus\\:bg-primary:focus {\n background-color: hsl(var(--primary));\n}\n.focus\\:text-accent-foreground:focus {\n color: hsl(var(--accent-foreground));\n}\n.focus\\:text-primary-foreground:focus {\n color: hsl(var(--primary-foreground));\n}\n.focus\\:outline-none:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.focus\\:ring-2:focus {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n.focus\\:ring-ring:focus {\n --tw-ring-color: hsl(var(--ring));\n}\n.focus\\:ring-offset-2:focus {\n --tw-ring-offset-width: 2px;\n}\n.focus-visible\\:outline-none:focus-visible {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.focus-visible\\:outline-accent:focus-visible {\n outline-color: hsl(var(--accent));\n}\n.focus-visible\\:ring-2:focus-visible {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n.focus-visible\\:ring-ring:focus-visible {\n --tw-ring-color: hsl(var(--ring));\n}\n.focus-visible\\:ring-offset-2:focus-visible {\n --tw-ring-offset-width: 2px;\n}\n.focus-visible\\:ring-offset-background:focus-visible {\n --tw-ring-offset-color: hsl(var(--background));\n}\n.disabled\\:pointer-events-none:disabled {\n pointer-events: none;\n}\n.disabled\\:cursor-not-allowed:disabled {\n cursor: not-allowed;\n}\n.disabled\\:text-background:disabled {\n color: hsl(var(--background));\n}\n.disabled\\:opacity-50:disabled {\n opacity: 0.5;\n}\n.peer:disabled ~ .peer-disabled\\:cursor-not-allowed {\n cursor: not-allowed;\n}\n.peer:disabled ~ .peer-disabled\\:opacity-70 {\n opacity: 0.7;\n}\n.aria-selected\\:bg-accent[aria-selected=\"true\"] {\n background-color: hsl(var(--accent));\n}\n.aria-selected\\:text-accent-foreground[aria-selected=\"true\"] {\n color: hsl(var(--accent-foreground));\n}\n.aria-selected\\:opacity-100[aria-selected=\"true\"] {\n opacity: 1;\n}\n.data-\\[disabled\\]\\:pointer-events-none[data-disabled] {\n pointer-events: none;\n}\n.data-\\[side\\=bottom\\]\\:translate-y-1[data-side=bottom] {\n --tw-translate-y: 0.25rem;\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.data-\\[side\\=left\\]\\:-translate-x-1[data-side=left] {\n --tw-translate-x: -0.25rem;\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.data-\\[side\\=right\\]\\:translate-x-1[data-side=right] {\n --tw-translate-x: 0.25rem;\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.data-\\[side\\=top\\]\\:-translate-y-1[data-side=top] {\n --tw-translate-y: -0.25rem;\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.data-\\[state\\=checked\\]\\:translate-x-5[data-state=checked] {\n --tw-translate-x: 1.25rem;\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.data-\\[state\\=unchecked\\]\\:translate-x-0[data-state=unchecked] {\n --tw-translate-x: 0px;\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@keyframes accordion-up {\n\n from {\n height: var(--radix-accordion-content-height);\n }\n\n to {\n height: 0;\n }\n}\n.data-\\[state\\=closed\\]\\:animate-accordion-up[data-state=closed] {\n animation: accordion-up 0.2s ease-out;\n}\n@keyframes accordion-down {\n\n from {\n height: 0;\n }\n\n to {\n height: var(--radix-accordion-content-height);\n }\n}\n.data-\\[state\\=open\\]\\:animate-accordion-down[data-state=open] {\n animation: accordion-down 0.2s ease-out;\n}\n.data-\\[state\\=active\\]\\:bg-background[data-state=active] {\n background-color: hsl(var(--background));\n}\n.data-\\[state\\=checked\\]\\:bg-accent[data-state=checked] {\n background-color: hsl(var(--accent));\n}\n.data-\\[state\\=checked\\]\\:bg-primary[data-state=checked] {\n background-color: hsl(var(--primary));\n}\n.data-\\[state\\=on\\]\\:bg-accent[data-state=on] {\n background-color: hsl(var(--accent));\n}\n.data-\\[state\\=open\\]\\:bg-accent[data-state=open] {\n background-color: hsl(var(--accent));\n}\n.data-\\[state\\=unchecked\\]\\:bg-primary[data-state=unchecked] {\n background-color: hsl(var(--primary));\n}\n.data-\\[state\\=active\\]\\:text-foreground[data-state=active] {\n color: hsl(var(--foreground));\n}\n.data-\\[state\\=checked\\]\\:text-primary-foreground[data-state=checked] {\n color: hsl(var(--primary-foreground));\n}\n.data-\\[state\\=on\\]\\:text-accent-foreground[data-state=on] {\n color: hsl(var(--accent-foreground));\n}\n.data-\\[state\\=open\\]\\:text-muted-foreground[data-state=open] {\n color: hsl(var(--muted-foreground));\n}\n.data-\\[disabled\\]\\:opacity-50[data-disabled] {\n opacity: 0.5;\n}\n.data-\\[state\\=active\\]\\:shadow-sm[data-state=active] {\n --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n --tw-shadow-colored: 0 1px 2px 0 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.data-\\[state\\=open\\]\\:animate-in[data-state=open] {\n animation-name: enter;\n animation-duration: 150ms;\n --tw-enter-opacity: initial;\n --tw-enter-scale: initial;\n --tw-enter-rotate: initial;\n --tw-enter-translate-x: initial;\n --tw-enter-translate-y: initial;\n}\n.data-\\[state\\=closed\\]\\:animate-out[data-state=closed] {\n animation-name: exit;\n animation-duration: 150ms;\n --tw-exit-opacity: initial;\n --tw-exit-scale: initial;\n --tw-exit-rotate: initial;\n --tw-exit-translate-x: initial;\n --tw-exit-translate-y: initial;\n}\n.data-\\[state\\=closed\\]\\:fade-out-0[data-state=closed] {\n --tw-exit-opacity: 0;\n}\n.data-\\[state\\=open\\]\\:fade-in-0[data-state=open] {\n --tw-enter-opacity: 0;\n}\n.data-\\[state\\=closed\\]\\:zoom-out-95[data-state=closed] {\n --tw-exit-scale: .95;\n}\n.data-\\[state\\=open\\]\\:zoom-in-95[data-state=open] {\n --tw-enter-scale: .95;\n}\n.data-\\[side\\=bottom\\]\\:slide-in-from-top-2[data-side=bottom] {\n --tw-enter-translate-y: -0.5rem;\n}\n.data-\\[side\\=left\\]\\:slide-in-from-right-2[data-side=left] {\n --tw-enter-translate-x: 0.5rem;\n}\n.data-\\[side\\=right\\]\\:slide-in-from-left-2[data-side=right] {\n --tw-enter-translate-x: -0.5rem;\n}\n.data-\\[side\\=top\\]\\:slide-in-from-bottom-2[data-side=top] {\n --tw-enter-translate-y: 0.5rem;\n}\n.data-\\[state\\=closed\\]\\:slide-out-to-left-1\\/2[data-state=closed] {\n --tw-exit-translate-x: -50%;\n}\n.data-\\[state\\=closed\\]\\:slide-out-to-top-\\[48\\%\\][data-state=closed] {\n --tw-exit-translate-y: -48%;\n}\n.data-\\[state\\=open\\]\\:slide-in-from-left-1\\/2[data-state=open] {\n --tw-enter-translate-x: -50%;\n}\n.data-\\[state\\=open\\]\\:slide-in-from-top-\\[48\\%\\][data-state=open] {\n --tw-enter-translate-y: -48%;\n}\n:is([data-mode=\"dark\"] .dark\\:border-white) {\n --tw-border-opacity: 1;\n border-color: rgb(255 255 255 / var(--tw-border-opacity));\n}\n@media (min-width: 640px) {\n\n .sm\\:mt-0 {\n margin-top: 0px;\n }\n\n .sm\\:block {\n display: block;\n }\n\n .sm\\:flex-row {\n flex-direction: row;\n }\n\n .sm\\:justify-end {\n justify-content: flex-end;\n }\n\n .sm\\:space-x-2 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(0.5rem * var(--tw-space-x-reverse));\n margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));\n }\n\n .sm\\:space-x-4 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(1rem * var(--tw-space-x-reverse));\n margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse)));\n }\n\n .sm\\:space-y-0 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0px * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0px * var(--tw-space-y-reverse));\n }\n\n .sm\\:rounded-lg {\n border-radius: var(--radius);\n }\n\n .sm\\:p-0 {\n padding: 0px;\n }\n\n .sm\\:text-left {\n text-align: left;\n }\n}\n@media (min-width: 768px) {\n\n .md\\:relative {\n position: relative;\n }\n\n .md\\:flex {\n display: flex;\n }\n\n .md\\:hidden {\n display: none;\n }\n\n .md\\:w-\\[300px\\] {\n width: 300px;\n }\n\n .md\\:w-full {\n width: 100%;\n }\n\n .md\\:px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n }\n\n .md\\:pl-0 {\n padding-left: 0px;\n }\n}\n.\\[\\&\\:has\\(\\[aria-selected\\]\\)\\]\\:bg-accent:has([aria-selected]) {\n background-color: hsl(var(--accent));\n}\n.first\\:\\[\\&\\:has\\(\\[aria-selected\\]\\)\\]\\:rounded-l-md:has([aria-selected]):first-child {\n border-top-left-radius: calc(var(--radius) - 2px);\n border-bottom-left-radius: calc(var(--radius) - 2px);\n}\n.last\\:\\[\\&\\:has\\(\\[aria-selected\\]\\)\\]\\:rounded-r-md:has([aria-selected]):last-child {\n border-top-right-radius: calc(var(--radius) - 2px);\n border-bottom-right-radius: calc(var(--radius) - 2px);\n}\n.\\[\\&\\[data-state\\=open\\]\\>svg\\]\\:rotate-180[data-state=open]>svg {\n --tw-rotate: 180deg;\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.\\[\\&_\\[cmdk-group-heading\\]\\]\\:px-2 [cmdk-group-heading] {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n}\n.\\[\\&_\\[cmdk-group-heading\\]\\]\\:py-1\\.5 [cmdk-group-heading] {\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n}\n.\\[\\&_\\[cmdk-group-heading\\]\\]\\:text-xs [cmdk-group-heading] {\n font-size: 0.75rem;\n line-height: 1rem;\n}\n.\\[\\&_\\[cmdk-group-heading\\]\\]\\:font-medium [cmdk-group-heading] {\n font-weight: 500;\n}\n.\\[\\&_\\[cmdk-group-heading\\]\\]\\:text-muted-foreground [cmdk-group-heading] {\n color: hsl(var(--muted-foreground));\n}\n.\\[\\&_\\[cmdk-group\\]\\:not\\(\\[hidden\\]\\)_\\~\\[cmdk-group\\]\\]\\:pt-0 [cmdk-group]:not([hidden]) ~[cmdk-group] {\n padding-top: 0px;\n}\n.\\[\\&_\\[cmdk-group\\]\\]\\:px-2 [cmdk-group] {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n}\n.\\[\\&_\\[cmdk-input-wrapper\\]_svg\\]\\:h-5 [cmdk-input-wrapper] svg {\n height: 1.25rem;\n}\n.\\[\\&_\\[cmdk-input-wrapper\\]_svg\\]\\:w-5 [cmdk-input-wrapper] svg {\n width: 1.25rem;\n}\n.\\[\\&_\\[cmdk-input\\]\\]\\:h-12 [cmdk-input] {\n height: 3rem;\n}\n.\\[\\&_\\[cmdk-item\\]\\]\\:px-2 [cmdk-item] {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n}\n.\\[\\&_\\[cmdk-item\\]\\]\\:py-3 [cmdk-item] {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n}\n.\\[\\&_\\[cmdk-item\\]_svg\\]\\:h-5 [cmdk-item] svg {\n height: 1.25rem;\n}\n.\\[\\&_\\[cmdk-item\\]_svg\\]\\:w-5 [cmdk-item] svg {\n width: 1.25rem;\n}\n";
74199
75623
  function Style() {
74200
75624
  return /* @__PURE__ */ jsxRuntime.jsx("style", { children: styleCss });
74201
75625
  }