@c2n/details 0.0.11 → 0.0.13

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.
@@ -0,0 +1 @@
1
+ {"schemaVersion":"1.0.0","readme":"","modules":[{"kind":"javascript-module","path":"src/details.ts","declarations":[{"kind":"class","description":"Collapsible disclosure built on native `<details>` / `<summary>`, so keyboard access, screen-reader semantics and\nfind-in-page auto-expand come from the browser. Panels that share a `name` form an exclusive accordion. Open and\nclose animate the content height (plus a fade) with the Web Animations API, so the motion is identical in every\nbrowser; the native `open` attribute is only removed once the close animation has finished.","name":"Details","cssProperties":[{"type":{"text":"border"},"name":"--c2-details--border-top","default":"1px solid rgb(213, 213, 213)"},{"type":{"text":"border"},"name":"--c2-details--border-right","default":"1px solid rgb(213, 213, 213)"},{"type":{"text":"border"},"name":"--c2-details--border-bottom","default":"1px solid rgb(213, 213, 213)"},{"type":{"text":"border"},"name":"--c2-details--border-left","default":"1px solid rgb(213, 213, 213)"},{"type":{"text":"border-radius"},"name":"--c2-details--border-top-left-radius","default":"8px"},{"type":{"text":"border-radius"},"name":"--c2-details--border-top-right-radius","default":"8px"},{"type":{"text":"border-radius"},"name":"--c2-details--border-bottom-left-radius","default":"8px"},{"type":{"text":"border-radius"},"name":"--c2-details--border-bottom-right-radius","default":"8px"},{"type":{"text":"background"},"name":"--c2-details--background","default":"rgb(255, 255, 255)"},{"type":{"text":"box-shadow"},"name":"--c2-details--box-shadow"},{"type":{"text":"time"},"description":"Open and close animation length; `0ms` disables it. Respects `prefers-reduced-motion`.","name":"--c2-details--transition-duration","default":"250ms"},{"type":{"text":"padding"},"name":"--c2-details__header--padding-top","default":"12px"},{"type":{"text":"padding"},"name":"--c2-details__header--padding-right","default":"16px"},{"type":{"text":"padding"},"name":"--c2-details__header--padding-bottom","default":"12px"},{"type":{"text":"padding"},"name":"--c2-details__header--padding-left","default":"16px"},{"type":{"text":"background"},"name":"--c2-details__header--background"},{"type":{"text":"color"},"name":"--c2-details__header--color"},{"type":{"text":"font-weight"},"name":"--c2-details__header--font-weight","default":"500"},{"type":{"text":"font-size"},"name":"--c2-details__header--font-size"},{"type":{"text":"pixel"},"name":"--c2-details__header--gap","default":"12px"},{"type":{"text":"flex-direction-row"},"description":"`row-reverse` puts the icon first.","name":"--c2-details__header--flex-direction","default":"row"},{"type":{"text":"pixel"},"name":"--c2-details__header__icon--width","default":"20px"},{"type":{"text":"pixel"},"name":"--c2-details__header__icon--height","default":"20px"},{"type":{"text":"pixel"},"description":"Icon angle while open.","name":"--c2-details__header__icon--rotate","default":"180deg"},{"type":{"text":"pixel"},"description":"Icon angle while closed. `-90deg` with the default chevron gives the nav idiom: right when closed, down when open.","name":"--c2-details__header__icon--rotate-collapsed","default":"0deg"},{"type":{"text":"color"},"name":"--c2-details__header__icon--color","default":"rgb(109, 109, 109)"},{"type":{"text":"pixel"},"name":"--c2-details__header__content--margin-top","default":"4px"},{"type":{"text":"color"},"name":"--c2-details__header__content--color","default":"rgb(109, 109, 109)"},{"type":{"text":"font-size"},"name":"--c2-details__header__content--font-size","default":"13px"},{"type":{"text":"font-weight"},"name":"--c2-details__header__content--font-weight","default":"400"},{"type":{"text":"background"},"name":"--c2-details__header__hover--background","default":"rgb(248, 248, 248)"},{"type":{"text":"color"},"name":"--c2-details__header__hover--color"},{"type":{"text":"background"},"name":"--c2-details__header__open--background"},{"type":{"text":"color"},"name":"--c2-details__header__open--color"},{"type":{"text":"outline"},"name":"--c2-details__header__focus--outline","default":"2px solid rgba(2, 101, 220, 0.4)"},{"type":{"text":"pixel"},"name":"--c2-details__header__focus--outline-offset","default":"-2px"},{"type":{"text":"opacity"},"name":"--c2-details__header__disabled--opacity","default":"0.38"},{"type":{"text":"padding"},"name":"--c2-details__content--padding-top","default":"4px"},{"type":{"text":"padding"},"description":"Falls back to the header padding.","name":"--c2-details__content--padding-right"},{"type":{"text":"padding"},"description":"Falls back to the header padding.","name":"--c2-details__content--padding-bottom"},{"type":{"text":"padding"},"description":"Falls back to the header padding.","name":"--c2-details__content--padding-left"},{"type":{"text":"color"},"name":"--c2-details__content--color"},{"type":{"text":"border"},"description":"Divider between header and content.","name":"--c2-details__content--border-top"}],"slots":[{"description":"Header label. Falls back to the `label` attribute.","name":"title"},{"description":"Second header row under the title (description, badges, actions). Stays visible when collapsed; clicks inside it do not toggle the panel, so buttons and links work there.","name":"header-content"},{"description":"Chevron shown in the header; rotates when open. Defaults to an inline SVG.","name":"icon"},{"description":"Alternative icon shown only while open (replaces the rotation).","name":"expanded-icon"},{"description":"Collapsible content.","name":""}],"members":[{"kind":"field","name":"detailsElement","type":{"text":"HTMLDetailsElement"},"privacy":"protected"},{"kind":"field","name":"contentElement","type":{"text":"HTMLElement"},"privacy":"private"},{"kind":"field","name":"bodyElement","type":{"text":"HTMLElement"},"privacy":"private"},{"kind":"field","name":"expanded","type":{"text":"boolean"},"default":"false","description":"Open state, kept in sync with the native `open` attribute.","attribute":"expanded","reflects":true},{"kind":"field","name":"label","type":{"text":"string"},"default":"''","description":"Header text when the `title` slot is empty.","attribute":"label"},{"kind":"field","name":"name","type":{"text":"string | undefined"},"default":"undefined","description":"Accordion group: opening a panel closes every other `c2-details` with the same name in the same document or shadow\nroot. (The native `name` attribute cannot be used: each panel's `<details>` sits in its own shadow tree.)","attribute":"name"},{"kind":"field","name":"titleNotClickable","type":{"text":"boolean"},"default":"false","description":"Only the icon toggles the panel; clicking the title does nothing.","attribute":"title-not-clickable","reflects":true},{"kind":"field","name":"disabled","type":{"text":"boolean"},"default":"false","description":"Dims the header and blocks toggling (pointer and keyboard).","attribute":"disabled","reflects":true},{"kind":"field","name":"hasHeaderContent","type":{"text":"boolean"},"privacy":"private","default":"false"},{"kind":"field","name":"hasExpandedIcon","type":{"text":"boolean"},"privacy":"private","default":"false"},{"kind":"field","name":"closing","type":{"text":"boolean"},"privacy":"private","default":"false","description":"Keeps the native `open` attribute while the close animation plays; the content is hidden by the browser otherwise."},{"kind":"field","name":"contentAnimations","type":{"text":"Animation[]"},"privacy":"private","default":"[]"},{"kind":"field","name":"accordion","type":{"text":"AccordionContext | undefined"},"privacy":"private"},{"kind":"method","name":"cancelContentAnimations","privacy":"private"},{"kind":"method","name":"animateContent","privacy":"private","parameters":[{"name":"open","type":{"text":"boolean"}}],"description":"Slides the content between collapsed and its natural height, fading the body along the way. Duration and easing\ncome from the `transition-*` values the stylesheet puts on the content element, so `--c2-details--transition-duration`\nand `prefers-reduced-motion` both apply. Reversing mid-flight starts from the current rendered height."},{"kind":"method","name":"handleSlotChange","privacy":"private","parameters":[{"name":"event","type":{"text":"Event"}}]},{"kind":"method","name":"updateSlot","privacy":"private","parameters":[{"name":"slot","type":{"text":"HTMLSlotElement"}}]},{"kind":"method","name":"handleSummaryClick","privacy":"private","parameters":[{"name":"event","type":{"text":"MouseEvent"}}]},{"kind":"method","name":"handleSummaryKeydown","privacy":"private","parameters":[{"name":"event","type":{"text":"KeyboardEvent"}}]},{"kind":"method","name":"handleDetailsToggle","privacy":"private","parameters":[{"name":"event","type":{"text":"Event"}}]},{"kind":"method","name":"toggle","parameters":[{"name":"force","optional":true,"type":{"text":"boolean"}}],"description":"Opens or closes the panel."},{"kind":"method","name":"renderIcon","privacy":"protected"}],"events":[{"type":{"text":"ToggleEvent"},"description":"Re-dispatched from the native details after it opens or closes (`newState` is `open` or `closed`).","name":"toggle"}],"attributes":[{"name":"expanded","type":{"text":"boolean"},"default":"false","description":"Open state, kept in sync with the native `open` attribute.","fieldName":"expanded"},{"name":"label","type":{"text":"string"},"default":"''","description":"Header text when the `title` slot is empty.","fieldName":"label"},{"name":"name","type":{"text":"string | undefined"},"default":"undefined","description":"Accordion group: opening a panel closes every other `c2-details` with the same name in the same document or shadow\nroot. (The native `name` attribute cannot be used: each panel's `<details>` sits in its own shadow tree.)","fieldName":"name"},{"name":"title-not-clickable","type":{"text":"boolean"},"default":"false","description":"Only the icon toggles the panel; clicking the title does nothing.","fieldName":"titleNotClickable"},{"name":"disabled","type":{"text":"boolean"},"default":"false","description":"Dims the header and blocks toggling (pointer and keyboard).","fieldName":"disabled"}],"superclass":{"name":"LitElement","package":"lit"},"tagName":"c2-details","customElement":true}],"exports":[{"kind":"js","name":"Details","declaration":{"name":"Details","module":"src/details.ts"}},{"kind":"custom-element-definition","name":"c2-details","declaration":{"name":"Details","module":"src/details.ts"}}]}]}
package/dist/details.js CHANGED
@@ -4,7 +4,7 @@ import { consume } from "@lit/context";
4
4
  import { property, query, state } from "lit/decorators.js";
5
5
  import { customElement } from "@c2n/core/element-helper.js";
6
6
  import { classMap } from "lit/directives/class-map.js";
7
- import { redispatchEvent } from "@c2n/core/dom-helper.js";
7
+ import { hasSlottedContent, redispatchEvent } from "@c2n/core/dom-helper.js";
8
8
  //#region src/details.scss?inline
9
9
  var details_default = "/* ex : var((width: 24px), width, c2-checkbox) returns var(--c2-checkbox-width, 24px) */\n:host {\n display: flex;\n}\n\n.c2-details {\n flex: 1;\n align-self: stretch;\n display: flex;\n flex-direction: column;\n min-width: 0;\n overflow: clip;\n background: var(--c2-details--background,rgb(255, 255, 255));\n box-shadow: var(--c2-details--box-shadow);\n border-top: var(--c2-details--border-top,1px solid rgb(213, 213, 213));\n border-right: var(--c2-details--border-right,1px solid rgb(213, 213, 213));\n border-bottom: var(--c2-details--border-bottom,1px solid rgb(213, 213, 213));\n border-left: var(--c2-details--border-left,1px solid rgb(213, 213, 213));\n border-top-left-radius: var(--c2-details--border-top-left-radius,8px);\n border-top-right-radius: var(--c2-details--border-top-right-radius,8px);\n border-bottom-left-radius: var(--c2-details--border-bottom-left-radius,8px);\n border-bottom-right-radius: var(--c2-details--border-bottom-right-radius,8px);\n}\n\nsummary {\n list-style: none;\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n cursor: pointer;\n user-select: none;\n padding-top: var(--c2-details__header--padding-top,12px);\n padding-right: var(--c2-details__header--padding-right,16px);\n padding-bottom: var(--c2-details__header--padding-bottom,12px);\n padding-left: var(--c2-details__header--padding-left,16px);\n background: var(--c2-details__header--background);\n color: var(--c2-details__header--color);\n font-weight: var(--c2-details__header--font-weight,500);\n font-size: var(--c2-details__header--font-size);\n transition: background var(--c2-details--transition-duration,250ms) cubic-bezier(0.2, 0, 0, 1), color var(--c2-details--transition-duration,250ms) cubic-bezier(0.2, 0, 0, 1);\n}\nsummary::-webkit-details-marker, summary::marker {\n display: none;\n content: \"\";\n}\nsummary:hover {\n background: var(--c2-details__header__hover--background,var(--c2-details__header--background,rgb(248, 248, 248)));\n color: var(--c2-details__header__hover--color,var(--c2-details__header--color));\n}\nsummary:focus-visible {\n outline: var(--c2-details__header__focus--outline,2px solid rgba(2, 101, 220, 0.4));\n outline-offset: var(--c2-details__header__focus--outline-offset,-2px);\n}\n\n.c2-details-summary-row {\n display: flex;\n align-items: center;\n gap: var(--c2-details__header--gap,12px);\n flex-direction: var(--c2-details__header--flex-direction,row);\n}\n\n.c2-details-summary-content {\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: center;\n}\n\n.c2-details-icons {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex: none;\n color: var(--c2-details__header__icon--color,rgb(109, 109, 109));\n}\n.c2-details-icons .default-icon,\n.c2-details-icons ::slotted(*) {\n display: block;\n width: var(--c2-details__header__icon--width,20px);\n height: var(--c2-details__header__icon--height,20px);\n transform: rotate(var(--c2-details__header__icon--rotate-collapsed,0deg));\n transition: transform var(--c2-details--transition-duration,250ms) cubic-bezier(0.2, 0, 0, 1);\n}\n.c2-details-icons slot[name=expanded-icon] {\n display: none;\n}\n\n.c2-details-header-content {\n margin-top: var(--c2-details__header__content--margin-top,4px);\n color: var(--c2-details__header__content--color,rgb(109, 109, 109));\n font-size: var(--c2-details__header__content--font-size,13px);\n font-weight: var(--c2-details__header__content--font-weight,400);\n cursor: auto;\n}\n.c2-details-header-content[hidden] {\n display: none;\n}\n\n.c2-details-content {\n flex: none;\n min-height: 0;\n transition-property: none;\n transition-duration: var(--c2-details--transition-duration,250ms);\n transition-timing-function: cubic-bezier(0.2, 0, 0, 1);\n}\n\n.c2-details:not([open]) > .c2-details-content {\n display: none;\n}\n\n.c2-details-body {\n padding-top: var(--c2-details__content--padding-top,4px);\n padding-right: var(--c2-details__content--padding-right,var(--c2-details__header--padding-right,16px));\n padding-bottom: var(--c2-details__content--padding-bottom,var(--c2-details__header--padding-bottom,12px));\n padding-left: var(--c2-details__content--padding-left,var(--c2-details__header--padding-left,16px));\n color: var(--c2-details__content--color);\n border-top: var(--c2-details__content--border-top);\n}\n\n.c2-details[open] summary {\n background: var(--c2-details__header__open--background,var(--c2-details__header--background));\n color: var(--c2-details__header__open--color,var(--c2-details__header--color));\n}\n.c2-details[open] summary:hover {\n background: var(--c2-details__header__hover--background,var(--c2-details__header__open--background,var(--c2-details__header--background,rgb(248, 248, 248))));\n}\n.c2-details[open] .c2-details-icons .default-icon,\n.c2-details[open] .c2-details-icons slot[name=icon]::slotted(*) {\n transform: rotate(var(--c2-details__header__icon--rotate,180deg));\n}\n.c2-details[open] .c2-details-icons.has-expanded-icon slot[name=icon] {\n display: none;\n}\n.c2-details[open] .c2-details-icons.has-expanded-icon slot[name=expanded-icon] {\n display: contents;\n}\n\n:host([disabled]) summary {\n cursor: default;\n opacity: var(--c2-details__header__disabled--opacity,0.38);\n}\n\n@media (prefers-reduced-motion: reduce) {\n summary,\n .c2-details-icons .default-icon,\n .c2-details-icons ::slotted(*) {\n transition: none;\n }\n .c2-details-content {\n transition-duration: 0s;\n }\n}";
10
10
  //#endregion
@@ -40,6 +40,10 @@ var Details = class Details extends LitElement {
40
40
  this.closing = false;
41
41
  }
42
42
  willUpdate(changed) {
43
+ if (!this.hasUpdated) {
44
+ this.hasHeaderContent = hasSlottedContent(this, "header-content");
45
+ this.hasExpandedIcon = hasSlottedContent(this, "expanded-icon");
46
+ }
43
47
  if (changed.has("expanded") && this.hasUpdated) {
44
48
  if (this.expanded) this.closing = false;
45
49
  else if (changed.get("expanded")) this.closing = true;
@@ -92,10 +96,6 @@ var Details = class Details extends LitElement {
92
96
  if (!open) this.closing = false;
93
97
  }).catch(() => {});
94
98
  }
95
- /** `slotchange` does not fire for server-rendered slots, so read them once after the first render. */
96
- firstUpdated() {
97
- for (const slot of this.renderRoot.querySelectorAll("slot")) this.updateSlot(slot);
98
- }
99
99
  handleSlotChange(event) {
100
100
  this.updateSlot(event.target);
101
101
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@c2n/details",
3
- "version": "0.0.11",
3
+ "version": "0.0.13",
4
4
  "type": "module",
5
5
  "main": "dist/details.js",
6
6
  "exports": {
@@ -25,6 +25,7 @@
25
25
  "files": [
26
26
  "dist",
27
27
  "types",
28
+ "custom-elements.json",
28
29
  "react.d.ts",
29
30
  "react.js",
30
31
  "vue.d.ts",
@@ -64,7 +65,7 @@
64
65
  }
65
66
  },
66
67
  "dependencies": {
67
- "@c2n/core": "0.0.11",
68
+ "@c2n/core": "0.0.13",
68
69
  "@lit/context": "1.1.6",
69
70
  "lit": "3.3.3"
70
71
  },
@@ -72,5 +73,5 @@
72
73
  "@c2n/config": "*"
73
74
  },
74
75
  "customElements": "custom-elements.json",
75
- "gitHead": "bf962fba5e49a0ac7555a082584e262949d323a5"
76
+ "gitHead": "aa19b641f64fbc54c36b7649a8171d7a686abbdd"
76
77
  }
package/react.d.ts CHANGED
@@ -6,17 +6,25 @@
6
6
  //
7
7
  // Register the elements at module scope before React renders, or React writes an object prop as an
8
8
  // attribute and it stringifies.
9
+ //
10
+ // On a server-rendered page (Next.js, React Router SSR) write a camelCase property by its kebab-case attribute
11
+ // name ('row-key', not rowKey): the server emits props verbatim, HTML lowercases them, and hydration does not
12
+ // set properties. Those names are listed next to the properties below.
9
13
 
10
14
  import type { DetailedHTMLProps, HTMLAttributes } from 'react'
11
15
  import type { Details } from '@c2n/details'
12
16
 
13
17
  /** Standard React host-element attributes plus the element's own public properties. */
14
18
  type C2Props<T> = DetailedHTMLProps<HTMLAttributes<T>, T> & Partial<Omit<T, keyof HTMLElement>>
19
+ /** What React writes to a custom element's attribute: true becomes the empty string, false removes it. */
20
+ type Attribute = string | number | boolean
15
21
 
16
22
  declare module 'react' {
17
23
  namespace JSX {
18
24
  interface IntrinsicElements {
19
- 'c2-details': C2Props<Details>
25
+ 'c2-details': C2Props<Details> & {
26
+ 'title-not-clickable'?: Attribute
27
+ }
20
28
  }
21
29
  }
22
30
  }
@@ -111,8 +111,6 @@ export declare class Details extends LitElement {
111
111
  * and `prefers-reduced-motion` both apply. Reversing mid-flight starts from the current rendered height.
112
112
  */
113
113
  private animateContent;
114
- /** `slotchange` does not fire for server-rendered slots, so read them once after the first render. */
115
- firstUpdated(): void;
116
114
  private handleSlotChange;
117
115
  private updateSlot;
118
116
  private handleSummaryClick;
@@ -1 +1 @@
1
- {"version":3,"file":"details.d.ts","sourceRoot":"","sources":["../../src/details.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA4B,KAAK,cAAc,EAAE,MAAM,KAAK,CAAA;AAK/E,OAAO,KAAK,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AAKhG,qEAAqE;AACrE,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,WAAW,CAAA;CACpB;AAED,MAAM,WAAW,OAAO;IACtB,gBAAgB,EAAE,qBAAqB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAA;IACjE,mBAAmB,EAAE,wBAAwB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAA;CACxE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoEG;AACH,qBACa,OAAQ,SAAQ,UAAU;IACrC,OAAgB,MAAM,0BAAoB;IAExB,SAAS,CAAC,cAAc,EAAG,kBAAkB,CAAA;IACjC,OAAO,CAAC,cAAc,CAAc;IACvC,OAAO,CAAC,WAAW,CAAc;IAE5D,iEAAiE;IACrB,QAAQ,UAAQ;IAE5D,kDAAkD;IACtC,KAAK,SAAK;IAEtB;;;OAGG;IACS,IAAI,EAAE,MAAM,GAAG,SAAS,CAAY;IAEhD,wEAAwE;IACM,iBAAiB,UAAQ;IAEvG,kEAAkE;IACtB,QAAQ,UAAQ;IAEnD,OAAO,CAAC,gBAAgB,CAAQ;IAChC,OAAO,CAAC,eAAe,CAAQ;IACxC,yHAAyH;IAChH,OAAO,CAAC,OAAO,CAAQ;IAEhC,OAAO,CAAC,iBAAiB,CAAkB;IAG3C,OAAO,CAAC,SAAS,CAA8B;IAEtC,oBAAoB;IAOpB,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC;IAOxC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC;IAO9C,OAAO,CAAC,uBAAuB;IAM/B;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAmCtB,sGAAsG;IAC7F,YAAY;IAIrB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,mBAAmB;IAM3B,iCAAiC;IACjC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO;IAatB,SAAS,CAAC,UAAU;IAaX,MAAM;CA0BhB;AAqBD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,YAAY,EAAE,OAAO,CAAA;KACtB;CACF"}
1
+ {"version":3,"file":"details.d.ts","sourceRoot":"","sources":["../../src/details.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA4B,KAAK,cAAc,EAAE,MAAM,KAAK,CAAA;AAK/E,OAAO,KAAK,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AAKhG,qEAAqE;AACrE,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,WAAW,CAAA;CACpB;AAED,MAAM,WAAW,OAAO;IACtB,gBAAgB,EAAE,qBAAqB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAA;IACjE,mBAAmB,EAAE,wBAAwB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAA;CACxE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoEG;AACH,qBACa,OAAQ,SAAQ,UAAU;IACrC,OAAgB,MAAM,0BAAoB;IAExB,SAAS,CAAC,cAAc,EAAG,kBAAkB,CAAA;IACjC,OAAO,CAAC,cAAc,CAAc;IACvC,OAAO,CAAC,WAAW,CAAc;IAE5D,iEAAiE;IACrB,QAAQ,UAAQ;IAE5D,kDAAkD;IACtC,KAAK,SAAK;IAEtB;;;OAGG;IACS,IAAI,EAAE,MAAM,GAAG,SAAS,CAAY;IAEhD,wEAAwE;IACM,iBAAiB,UAAQ;IAEvG,kEAAkE;IACtB,QAAQ,UAAQ;IAEnD,OAAO,CAAC,gBAAgB,CAAQ;IAChC,OAAO,CAAC,eAAe,CAAQ;IACxC,yHAAyH;IAChH,OAAO,CAAC,OAAO,CAAQ;IAEhC,OAAO,CAAC,iBAAiB,CAAkB;IAG3C,OAAO,CAAC,SAAS,CAA8B;IAEtC,oBAAoB;IAOpB,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC;IAaxC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC;IAO9C,OAAO,CAAC,uBAAuB;IAM/B;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAmCtB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,mBAAmB;IAM3B,iCAAiC;IACjC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO;IAatB,SAAS,CAAC,UAAU;IAaX,MAAM;CA0BhB;AAqBD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,YAAY,EAAE,OAAO,CAAA;KACtB;CACF"}