@burojs/ui-shadcn 0.4.0 → 0.5.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/README.md +22 -5
- package/dist/bulk-summary-CwSd6Yjb.cjs +108 -0
- package/dist/bulk-summary-CwSd6Yjb.cjs.map +1 -0
- package/dist/bulk-summary-GxMDP4bw.js +108 -0
- package/dist/bulk-summary-GxMDP4bw.js.map +1 -0
- package/dist/button-BxnnE28H.cjs +55 -0
- package/dist/button-BxnnE28H.cjs.map +1 -0
- package/dist/button-MWVeZaqj.js +44 -0
- package/dist/button-MWVeZaqj.js.map +1 -0
- package/dist/candidates-gate-CX2PBu6l.js +63 -0
- package/dist/candidates-gate-CX2PBu6l.js.map +1 -0
- package/dist/candidates-gate-DiFI52r7.cjs +70 -0
- package/dist/candidates-gate-DiFI52r7.cjs.map +1 -0
- package/dist/candidates-relation-picker-CBsVcnPR.js +82 -0
- package/dist/candidates-relation-picker-CBsVcnPR.js.map +1 -0
- package/dist/candidates-relation-picker-Dd_GVLlu.cjs +84 -0
- package/dist/candidates-relation-picker-Dd_GVLlu.cjs.map +1 -0
- package/dist/check-confirm-dialog-BRByTFpg.cjs +1534 -0
- package/dist/check-confirm-dialog-BRByTFpg.cjs.map +1 -0
- package/dist/check-confirm-dialog-CkaVTPT9.js +1232 -0
- package/dist/check-confirm-dialog-CkaVTPT9.js.map +1 -0
- package/dist/dialog-B_rt9S1c.js +63 -0
- package/dist/dialog-B_rt9S1c.js.map +1 -0
- package/dist/dialog-DRNUq9EA.cjs +112 -0
- package/dist/dialog-DRNUq9EA.cjs.map +1 -0
- package/dist/filter-builder-B3mZFL-K.cjs +1761 -0
- package/dist/filter-builder-B3mZFL-K.cjs.map +1 -0
- package/dist/filter-builder-DOnaXNfP.js +1605 -0
- package/dist/filter-builder-DOnaXNfP.js.map +1 -0
- package/dist/flow-runtime-B6zOHYqI.cjs +255 -0
- package/dist/flow-runtime-B6zOHYqI.cjs.map +1 -0
- package/dist/flow-runtime-D8h99FSg.js +252 -0
- package/dist/flow-runtime-D8h99FSg.js.map +1 -0
- package/dist/flow-screen-CX05b3G9.cjs +705 -0
- package/dist/flow-screen-CX05b3G9.cjs.map +1 -0
- package/dist/flow-screen-CmbARSqg.js +701 -0
- package/dist/flow-screen-CmbARSqg.js.map +1 -0
- package/dist/index.cjs +2825 -11912
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1612 -1862
- package/dist/index.d.ts +1700 -1950
- package/dist/index.js +2498 -11605
- package/dist/index.js.map +1 -1
- package/dist/inline-flow-host-B7U1OJUe.cjs +112 -0
- package/dist/inline-flow-host-B7U1OJUe.cjs.map +1 -0
- package/dist/inline-flow-host-C3H2UpSA.js +112 -0
- package/dist/inline-flow-host-C3H2UpSA.js.map +1 -0
- package/dist/input-BI0czGyI.cjs +23 -0
- package/dist/input-BI0czGyI.cjs.map +1 -0
- package/dist/input-CUPStzZO.js +17 -0
- package/dist/input-CUPStzZO.js.map +1 -0
- package/dist/label-66W1qbke.js +29 -0
- package/dist/label-66W1qbke.js.map +1 -0
- package/dist/label-w6JYf2cF.cjs +36 -0
- package/dist/label-w6JYf2cF.cjs.map +1 -0
- package/dist/lazy-relation-picker-dialog-2oxnA6IR.js +14 -0
- package/dist/lazy-relation-picker-dialog-2oxnA6IR.js.map +1 -0
- package/dist/lazy-relation-picker-dialog-BfAGKzUG.cjs +19 -0
- package/dist/lazy-relation-picker-dialog-BfAGKzUG.cjs.map +1 -0
- package/dist/markdown/index.cjs +1 -1
- package/dist/markdown/index.js +1 -1
- package/dist/page-flow-route-CQ7HsbBm.cjs +277 -0
- package/dist/page-flow-route-CQ7HsbBm.cjs.map +1 -0
- package/dist/page-flow-route-CyXSvXSE.js +277 -0
- package/dist/page-flow-route-CyXSvXSE.js.map +1 -0
- package/dist/peek-filter-CnqHwTMU.cjs +51 -0
- package/dist/peek-filter-CnqHwTMU.cjs.map +1 -0
- package/dist/peek-filter-ErLfO153.js +28 -0
- package/dist/peek-filter-ErLfO153.js.map +1 -0
- package/dist/place-node--GdsP688.js +7315 -0
- package/dist/place-node--GdsP688.js.map +1 -0
- package/dist/place-node-SIp4XYQH.cjs +7833 -0
- package/dist/place-node-SIp4XYQH.cjs.map +1 -0
- package/dist/related-list-cards-B6x9HQQp.js +42 -0
- package/dist/related-list-cards-B6x9HQQp.js.map +1 -0
- package/dist/related-list-cards-nxuODlIA.cjs +42 -0
- package/dist/related-list-cards-nxuODlIA.cjs.map +1 -0
- package/dist/related-list-timeline-BYJKEbmA.cjs +142 -0
- package/dist/related-list-timeline-BYJKEbmA.cjs.map +1 -0
- package/dist/related-list-timeline-DEdfd-rr.js +142 -0
- package/dist/related-list-timeline-DEdfd-rr.js.map +1 -0
- package/dist/related-rows-B4levHcR.js +186 -0
- package/dist/related-rows-B4levHcR.js.map +1 -0
- package/dist/related-rows-zh5f_4QR.cjs +209 -0
- package/dist/related-rows-zh5f_4QR.cjs.map +1 -0
- package/dist/relation-create-BOaUe12G.cjs +362 -0
- package/dist/relation-create-BOaUe12G.cjs.map +1 -0
- package/dist/relation-create-Bg-eEJLs.js +337 -0
- package/dist/relation-create-Bg-eEJLs.js.map +1 -0
- package/dist/relation-many-picker-B-NCEUgX.cjs +465 -0
- package/dist/relation-many-picker-B-NCEUgX.cjs.map +1 -0
- package/dist/relation-many-picker-gdAOD-qK.js +464 -0
- package/dist/relation-many-picker-gdAOD-qK.js.map +1 -0
- package/dist/relation-picker-BAY77ivO.js +462 -0
- package/dist/relation-picker-BAY77ivO.js.map +1 -0
- package/dist/relation-picker-Da_uhFvA.cjs +479 -0
- package/dist/relation-picker-Da_uhFvA.cjs.map +1 -0
- package/dist/relation-picker-dialog-M0pQaWlp.cjs +300 -0
- package/dist/relation-picker-dialog-M0pQaWlp.cjs.map +1 -0
- package/dist/relation-picker-dialog-hA9rYrZB.js +299 -0
- package/dist/relation-picker-dialog-hA9rYrZB.js.map +1 -0
- package/dist/resource-page-router-OSQyRA5b.cjs +1779 -0
- package/dist/resource-page-router-OSQyRA5b.cjs.map +1 -0
- package/dist/resource-page-router-T4vS5gbJ.js +1582 -0
- package/dist/resource-page-router-T4vS5gbJ.js.map +1 -0
- package/dist/{rich-text-IDFvyvRE.js → rich-text-DFerywgz.js} +7 -4
- package/dist/{rich-text-IDFvyvRE.js.map → rich-text-DFerywgz.js.map} +1 -1
- package/dist/{rich-text-lndbYqzR.cjs → rich-text-vTyVjDoa.cjs} +25 -22
- package/dist/{rich-text-lndbYqzR.cjs.map → rich-text-vTyVjDoa.cjs.map} +1 -1
- package/dist/search-access-B7G5oR8n.cjs +812 -0
- package/dist/search-access-B7G5oR8n.cjs.map +1 -0
- package/dist/search-access-CURsWn-U.js +669 -0
- package/dist/search-access-CURsWn-U.js.map +1 -0
- package/dist/shell-BPlk8hEa.js +205 -0
- package/dist/shell-BPlk8hEa.js.map +1 -0
- package/dist/shell-DxhlsPwm.cjs +271 -0
- package/dist/shell-DxhlsPwm.cjs.map +1 -0
- package/dist/skeleton-U2noefj5.js +13 -0
- package/dist/skeleton-U2noefj5.js.map +1 -0
- package/dist/skeleton-_1gP7wan.cjs +18 -0
- package/dist/skeleton-_1gP7wan.cjs.map +1 -0
- package/dist/styles.css +241 -9
- package/dist/toaster-C7CiYA4Z.cjs +248 -0
- package/dist/toaster-C7CiYA4Z.cjs.map +1 -0
- package/dist/toaster-CfCRLgR-.js +164 -0
- package/dist/toaster-CfCRLgR-.js.map +1 -0
- package/dist/use-dialog-filter-state-BBCC0OEK.cjs +92 -0
- package/dist/use-dialog-filter-state-BBCC0OEK.cjs.map +1 -0
- package/dist/use-dialog-filter-state-BDcgS5Oz.js +87 -0
- package/dist/use-dialog-filter-state-BDcgS5Oz.js.map +1 -0
- package/dist/{use-theme-BwPWinB2.cjs → use-theme-DFlpXils.cjs} +12 -1
- package/dist/use-theme-DFlpXils.cjs.map +1 -0
- package/dist/{use-theme-IHmtrhEt.js → use-theme-dnE3Od3I.js} +7 -2
- package/dist/use-theme-dnE3Od3I.js.map +1 -0
- package/package.json +16 -14
- package/dist/use-theme-BwPWinB2.cjs.map +0 -1
- package/dist/use-theme-IHmtrhEt.js.map +0 -1
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
let _burojs_core = require("@burojs/core");
|
|
2
|
+
//#region src/quick/peek-filter.ts
|
|
3
|
+
function peekFieldDefinition(def, name) {
|
|
4
|
+
if (Object.hasOwn(def.fields, name)) return def.fields[name];
|
|
5
|
+
for (const type of def.types?.items ?? []) for (const field of type.fields ?? []) if (field.name === name) return field;
|
|
6
|
+
}
|
|
7
|
+
function peekLeafAllowed(def, name, capabilityFor, fieldVisible) {
|
|
8
|
+
const field = peekFieldDefinition(def, name);
|
|
9
|
+
if (field === void 0 || (0, _burojs_core.fieldSensitivity)(field) !== void 0) return false;
|
|
10
|
+
if (capabilityFor("view", {
|
|
11
|
+
kind: "column",
|
|
12
|
+
name
|
|
13
|
+
}).allowed === false) return false;
|
|
14
|
+
return fieldVisible(name);
|
|
15
|
+
}
|
|
16
|
+
function peekRow(def, row, idField, capabilityFor, fieldVisible, drawn) {
|
|
17
|
+
const out = {};
|
|
18
|
+
for (const [name, value] of Object.entries(row)) out[name] = name === idField || (drawn === void 0 || drawn.has(name)) && peekLeafAllowed(def, name, capabilityFor, fieldVisible) ? value : null;
|
|
19
|
+
return Object.freeze(out);
|
|
20
|
+
}
|
|
21
|
+
function peekRecord(def, row, idField, capabilityFor, fieldVisible) {
|
|
22
|
+
if (def === void 0) return Object.freeze({ [idField]: row[idField] });
|
|
23
|
+
return peekRow(def, row, idField, capabilityFor, fieldVisible);
|
|
24
|
+
}
|
|
25
|
+
//#endregion
|
|
26
|
+
Object.defineProperty(exports, "peekFieldDefinition", {
|
|
27
|
+
enumerable: true,
|
|
28
|
+
get: function() {
|
|
29
|
+
return peekFieldDefinition;
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
Object.defineProperty(exports, "peekLeafAllowed", {
|
|
33
|
+
enumerable: true,
|
|
34
|
+
get: function() {
|
|
35
|
+
return peekLeafAllowed;
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
Object.defineProperty(exports, "peekRecord", {
|
|
39
|
+
enumerable: true,
|
|
40
|
+
get: function() {
|
|
41
|
+
return peekRecord;
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
Object.defineProperty(exports, "peekRow", {
|
|
45
|
+
enumerable: true,
|
|
46
|
+
get: function() {
|
|
47
|
+
return peekRow;
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
//# sourceMappingURL=peek-filter-CnqHwTMU.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"peek-filter-CnqHwTMU.cjs","names":["fieldSensitivity"],"sources":["../src/quick/peek-filter.ts"],"sourcesContent":["import { fieldSensitivity } from '@burojs/core';\nimport type { CapabilityResolver } from '@burojs/react';\n\n/** What `peekFields` reads of a resource definition. */\nexport interface PeekFieldSource {\n readonly displayField?: string;\n readonly fields: Readonly<Record<string, unknown>>;\n readonly types?: {\n readonly items: readonly { readonly fields: readonly { readonly name: string }[] }[];\n };\n}\n\n/**\n * A field's definition by name: a base field, else a type's own field (Known finding 2: a field a\n * type declares lives in `types.items[].fields`, never in the base map).\n */\nexport function peekFieldDefinition(def: PeekFieldSource, name: string): unknown {\n if (Object.hasOwn(def.fields, name)) return def.fields[name];\n for (const type of def.types?.items ?? [])\n for (const field of type.fields ?? []) if (field.name === name) return field;\n return undefined;\n}\n\n/**\n * Whether a peek may show `name` (P3-38, P6-66): the field is declared, not `sensitive`, and\n * not hidden from this viewer by the target's `column` rule — \"nothing a page would hide may\n * surface on hover\". The default body and a declared peek body both apply it. The third\n * condition is P5's field view in record reach (spec 3.6.5): `fieldVisible` is true only for a\n * `visible` field, so a hidden, restricted or still undecided field is not allowed.\n */\nexport function peekLeafAllowed(\n def: PeekFieldSource,\n name: string,\n capabilityFor: CapabilityResolver,\n fieldVisible: (name: string) => boolean,\n): boolean {\n const field = peekFieldDefinition(def, name);\n if (field === undefined || fieldSensitivity(field) !== undefined) return false;\n if (capabilityFor('view', { kind: 'column', name }).allowed === false) return false;\n return fieldVisible(name);\n}\n\n/**\n * The row a declared peek body is planned over: the id field and every field\n * {@link peekLeafAllowed} admits keep their values; every other field reads `null` — its leaf\n * renders absent, and a block prop reading it reads `null` (spec 3.9). With `drawn`, the row is\n * narrowed to the fields the body draws (P5 spec 3.6.5, for a peek frame's `record` prop): every\n * field outside it reads `null`, whatever the filter allows.\n */\nexport function peekRow(\n def: PeekFieldSource,\n row: Readonly<Record<string, unknown>>,\n idField: string,\n capabilityFor: CapabilityResolver,\n fieldVisible: (name: string) => boolean,\n drawn?: ReadonlySet<string>,\n): Readonly<Record<string, unknown>> {\n const out: Record<string, unknown> = {};\n for (const [name, value] of Object.entries(row))\n out[name] =\n name === idField ||\n ((drawn === undefined || drawn.has(name)) &&\n peekLeafAllowed(def, name, capabilityFor, fieldVisible))\n ? value\n : null;\n return Object.freeze(out);\n}\n\n/**\n * The peek's `record` (the row a declared body is planned over and a peek frame's `record` starts\n * from): {@link peekRow} over the target's definition, and the id field alone when the target has\n * no registry definition — without a definition nothing can be filtered, so nothing but the id\n * leaves (fail closed).\n */\nexport function peekRecord(\n def: PeekFieldSource | undefined,\n row: Readonly<Record<string, unknown>>,\n idField: string,\n capabilityFor: CapabilityResolver,\n fieldVisible: (name: string) => boolean,\n): Readonly<Record<string, unknown>> {\n if (def === undefined) return Object.freeze({ [idField]: row[idField] });\n return peekRow(def, row, idField, capabilityFor, fieldVisible);\n}\n"],"mappings":";;AAgBA,SAAgB,oBAAoB,KAAsB,MAAuB;CAC/E,IAAI,OAAO,OAAO,IAAI,QAAQ,IAAI,GAAG,OAAO,IAAI,OAAO;CACvD,KAAK,MAAM,QAAQ,IAAI,OAAO,SAAS,CAAC,GACtC,KAAK,MAAM,SAAS,KAAK,UAAU,CAAC,GAAG,IAAI,MAAM,SAAS,MAAM,OAAO;AAE3E;AASA,SAAgB,gBACd,KACA,MACA,eACA,cACS;CACT,MAAM,QAAQ,oBAAoB,KAAK,IAAI;CAC3C,IAAI,UAAU,KAAA,MAAA,GAAaA,aAAAA,iBAAAA,CAAiB,KAAK,MAAM,KAAA,GAAW,OAAO;CACzE,IAAI,cAAc,QAAQ;EAAE,MAAM;EAAU;CAAK,CAAC,CAAC,CAAC,YAAY,OAAO,OAAO;CAC9E,OAAO,aAAa,IAAI;AAC1B;AASA,SAAgB,QACd,KACA,KACA,SACA,eACA,cACA,OACmC;CACnC,MAAM,MAA+B,CAAC;CACtC,KAAK,MAAM,CAAC,MAAM,UAAU,OAAO,QAAQ,GAAG,GAC5C,IAAI,QACF,SAAS,YACP,UAAU,KAAA,KAAa,MAAM,IAAI,IAAI,MACrC,gBAAgB,KAAK,MAAM,eAAe,YAAY,IACpD,QACA;CACR,OAAO,OAAO,OAAO,GAAG;AAC1B;AAQA,SAAgB,WACd,KACA,KACA,SACA,eACA,cACmC;CACnC,IAAI,QAAQ,KAAA,GAAW,OAAO,OAAO,OAAO,GAAG,UAAU,IAAI,SAAS,CAAC;CACvE,OAAO,QAAQ,KAAK,KAAK,SAAS,eAAe,YAAY;AAC/D"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { fieldSensitivity } from "@burojs/core";
|
|
2
|
+
//#region src/quick/peek-filter.ts
|
|
3
|
+
function peekFieldDefinition(def, name) {
|
|
4
|
+
if (Object.hasOwn(def.fields, name)) return def.fields[name];
|
|
5
|
+
for (const type of def.types?.items ?? []) for (const field of type.fields ?? []) if (field.name === name) return field;
|
|
6
|
+
}
|
|
7
|
+
function peekLeafAllowed(def, name, capabilityFor, fieldVisible) {
|
|
8
|
+
const field = peekFieldDefinition(def, name);
|
|
9
|
+
if (field === void 0 || fieldSensitivity(field) !== void 0) return false;
|
|
10
|
+
if (capabilityFor("view", {
|
|
11
|
+
kind: "column",
|
|
12
|
+
name
|
|
13
|
+
}).allowed === false) return false;
|
|
14
|
+
return fieldVisible(name);
|
|
15
|
+
}
|
|
16
|
+
function peekRow(def, row, idField, capabilityFor, fieldVisible, drawn) {
|
|
17
|
+
const out = {};
|
|
18
|
+
for (const [name, value] of Object.entries(row)) out[name] = name === idField || (drawn === void 0 || drawn.has(name)) && peekLeafAllowed(def, name, capabilityFor, fieldVisible) ? value : null;
|
|
19
|
+
return Object.freeze(out);
|
|
20
|
+
}
|
|
21
|
+
function peekRecord(def, row, idField, capabilityFor, fieldVisible) {
|
|
22
|
+
if (def === void 0) return Object.freeze({ [idField]: row[idField] });
|
|
23
|
+
return peekRow(def, row, idField, capabilityFor, fieldVisible);
|
|
24
|
+
}
|
|
25
|
+
//#endregion
|
|
26
|
+
export { peekRow as i, peekLeafAllowed as n, peekRecord as r, peekFieldDefinition as t };
|
|
27
|
+
|
|
28
|
+
//# sourceMappingURL=peek-filter-ErLfO153.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"peek-filter-ErLfO153.js","names":[],"sources":["../src/quick/peek-filter.ts"],"sourcesContent":["import { fieldSensitivity } from '@burojs/core';\nimport type { CapabilityResolver } from '@burojs/react';\n\n/** What `peekFields` reads of a resource definition. */\nexport interface PeekFieldSource {\n readonly displayField?: string;\n readonly fields: Readonly<Record<string, unknown>>;\n readonly types?: {\n readonly items: readonly { readonly fields: readonly { readonly name: string }[] }[];\n };\n}\n\n/**\n * A field's definition by name: a base field, else a type's own field (Known finding 2: a field a\n * type declares lives in `types.items[].fields`, never in the base map).\n */\nexport function peekFieldDefinition(def: PeekFieldSource, name: string): unknown {\n if (Object.hasOwn(def.fields, name)) return def.fields[name];\n for (const type of def.types?.items ?? [])\n for (const field of type.fields ?? []) if (field.name === name) return field;\n return undefined;\n}\n\n/**\n * Whether a peek may show `name` (P3-38, P6-66): the field is declared, not `sensitive`, and\n * not hidden from this viewer by the target's `column` rule — \"nothing a page would hide may\n * surface on hover\". The default body and a declared peek body both apply it. The third\n * condition is P5's field view in record reach (spec 3.6.5): `fieldVisible` is true only for a\n * `visible` field, so a hidden, restricted or still undecided field is not allowed.\n */\nexport function peekLeafAllowed(\n def: PeekFieldSource,\n name: string,\n capabilityFor: CapabilityResolver,\n fieldVisible: (name: string) => boolean,\n): boolean {\n const field = peekFieldDefinition(def, name);\n if (field === undefined || fieldSensitivity(field) !== undefined) return false;\n if (capabilityFor('view', { kind: 'column', name }).allowed === false) return false;\n return fieldVisible(name);\n}\n\n/**\n * The row a declared peek body is planned over: the id field and every field\n * {@link peekLeafAllowed} admits keep their values; every other field reads `null` — its leaf\n * renders absent, and a block prop reading it reads `null` (spec 3.9). With `drawn`, the row is\n * narrowed to the fields the body draws (P5 spec 3.6.5, for a peek frame's `record` prop): every\n * field outside it reads `null`, whatever the filter allows.\n */\nexport function peekRow(\n def: PeekFieldSource,\n row: Readonly<Record<string, unknown>>,\n idField: string,\n capabilityFor: CapabilityResolver,\n fieldVisible: (name: string) => boolean,\n drawn?: ReadonlySet<string>,\n): Readonly<Record<string, unknown>> {\n const out: Record<string, unknown> = {};\n for (const [name, value] of Object.entries(row))\n out[name] =\n name === idField ||\n ((drawn === undefined || drawn.has(name)) &&\n peekLeafAllowed(def, name, capabilityFor, fieldVisible))\n ? value\n : null;\n return Object.freeze(out);\n}\n\n/**\n * The peek's `record` (the row a declared body is planned over and a peek frame's `record` starts\n * from): {@link peekRow} over the target's definition, and the id field alone when the target has\n * no registry definition — without a definition nothing can be filtered, so nothing but the id\n * leaves (fail closed).\n */\nexport function peekRecord(\n def: PeekFieldSource | undefined,\n row: Readonly<Record<string, unknown>>,\n idField: string,\n capabilityFor: CapabilityResolver,\n fieldVisible: (name: string) => boolean,\n): Readonly<Record<string, unknown>> {\n if (def === undefined) return Object.freeze({ [idField]: row[idField] });\n return peekRow(def, row, idField, capabilityFor, fieldVisible);\n}\n"],"mappings":";;AAgBA,SAAgB,oBAAoB,KAAsB,MAAuB;CAC/E,IAAI,OAAO,OAAO,IAAI,QAAQ,IAAI,GAAG,OAAO,IAAI,OAAO;CACvD,KAAK,MAAM,QAAQ,IAAI,OAAO,SAAS,CAAC,GACtC,KAAK,MAAM,SAAS,KAAK,UAAU,CAAC,GAAG,IAAI,MAAM,SAAS,MAAM,OAAO;AAE3E;AASA,SAAgB,gBACd,KACA,MACA,eACA,cACS;CACT,MAAM,QAAQ,oBAAoB,KAAK,IAAI;CAC3C,IAAI,UAAU,KAAA,KAAa,iBAAiB,KAAK,MAAM,KAAA,GAAW,OAAO;CACzE,IAAI,cAAc,QAAQ;EAAE,MAAM;EAAU;CAAK,CAAC,CAAC,CAAC,YAAY,OAAO,OAAO;CAC9E,OAAO,aAAa,IAAI;AAC1B;AASA,SAAgB,QACd,KACA,KACA,SACA,eACA,cACA,OACmC;CACnC,MAAM,MAA+B,CAAC;CACtC,KAAK,MAAM,CAAC,MAAM,UAAU,OAAO,QAAQ,GAAG,GAC5C,IAAI,QACF,SAAS,YACP,UAAU,KAAA,KAAa,MAAM,IAAI,IAAI,MACrC,gBAAgB,KAAK,MAAM,eAAe,YAAY,IACpD,QACA;CACR,OAAO,OAAO,OAAO,GAAG;AAC1B;AAQA,SAAgB,WACd,KACA,KACA,SACA,eACA,cACmC;CACnC,IAAI,QAAQ,KAAA,GAAW,OAAO,OAAO,OAAO,GAAG,UAAU,IAAI,SAAS,CAAC;CACvE,OAAO,QAAQ,KAAK,KAAK,SAAS,eAAe,YAAY;AAC/D"}
|