@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.
- package/dist/valbuild-ui.cjs.js +1526 -102
- package/dist/valbuild-ui.esm.js +1526 -102
- package/package.json +3 -3
- package/server/.tmp/assets/index-2l1Jwds9.css +1 -0
- package/server/.tmp/assets/index-URUxEXUs.js +201 -0
- package/server/.tmp/index.html +2 -2
- package/server/dist/valbuild-ui-main.cjs.js +1512 -578
- package/server/dist/valbuild-ui-main.esm.js +1512 -578
- package/server/dist/valbuild-ui-server.cjs.js +1 -1
- package/server/dist/valbuild-ui-server.esm.js +1 -1
- package/server/.tmp/assets/index-7FeUbHhm.css +0 -1
- package/server/.tmp/assets/index-P3ucL9Mc.js +0 -201
package/dist/valbuild-ui.cjs.js
CHANGED
|
@@ -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
|
-
|
|
46799
|
-
|
|
46800
|
-
|
|
46801
|
-
|
|
46802
|
-
|
|
46803
|
-
|
|
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
|
-
|
|
46806
|
-
|
|
46807
|
-
|
|
46808
|
-
|
|
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 =
|
|
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 =
|
|
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$
|
|
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$
|
|
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$
|
|
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
|
|
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
|
-
|
|
54494
|
-
|
|
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$
|
|
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$
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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(
|
|
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(
|
|
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,
|
|
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(
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
}
|