@vielzeug/refine 26.10.5 → 26.10.6

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.
Files changed (44) hide show
  1. package/dist/core/aria-reflection.cjs +1 -1
  2. package/dist/core/aria-reflection.cjs.map +1 -1
  3. package/dist/core/aria-reflection.d.ts +8 -8
  4. package/dist/core/aria-reflection.d.ts.map +1 -1
  5. package/dist/core/aria-reflection.js +1 -1
  6. package/dist/core/aria-reflection.js.map +1 -1
  7. package/dist/custom-elements.json +4857 -4564
  8. package/dist/frameworks/elements.d.ts +1 -1
  9. package/dist/inputs/index.d.ts +2 -0
  10. package/dist/inputs/index.d.ts.map +1 -1
  11. package/dist/inputs/query-bar/query-bar-grammar.cjs +2 -0
  12. package/dist/inputs/query-bar/query-bar-grammar.cjs.map +1 -0
  13. package/dist/inputs/query-bar/query-bar-grammar.d.ts +85 -0
  14. package/dist/inputs/query-bar/query-bar-grammar.d.ts.map +1 -0
  15. package/dist/inputs/query-bar/query-bar-grammar.js +2 -0
  16. package/dist/inputs/query-bar/query-bar-grammar.js.map +1 -0
  17. package/dist/inputs/query-bar/query-bar.css.cjs +2 -0
  18. package/dist/inputs/query-bar/query-bar.css.cjs.map +1 -0
  19. package/dist/inputs/query-bar/query-bar.css.js +2 -0
  20. package/dist/inputs/query-bar/query-bar.css.js.map +1 -0
  21. package/dist/inputs/query-bar/query-bar.d.ts +68 -0
  22. package/dist/inputs/query-bar/query-bar.d.ts.map +1 -0
  23. package/dist/inputs/query-bar/query-bar.types.d.ts +42 -0
  24. package/dist/inputs/query-bar/query-bar.types.d.ts.map +1 -0
  25. package/dist/navbar.cjs +2 -2
  26. package/dist/navbar.cjs.map +1 -1
  27. package/dist/navbar.js +2 -2
  28. package/dist/navbar.js.map +1 -1
  29. package/dist/query-bar.cjs +77 -0
  30. package/dist/query-bar.cjs.map +1 -0
  31. package/dist/query-bar.js +77 -0
  32. package/dist/query-bar.js.map +1 -0
  33. package/dist/refine.cjs +104 -29
  34. package/dist/refine.cjs.map +1 -1
  35. package/dist/refine.iife.js +104 -29
  36. package/dist/refine.iife.js.map +1 -1
  37. package/dist/refine.js +104 -29
  38. package/dist/refine.js.map +1 -1
  39. package/dist/tabs.cjs +1 -1
  40. package/dist/tabs.cjs.map +1 -1
  41. package/dist/tabs.js +1 -1
  42. package/dist/tabs.js.map +1 -1
  43. package/dist/types/elements.d.ts +2 -0
  44. package/package.json +25 -18
@@ -1,2 +1,2 @@
1
- var e={ariaControlsElements:`aria-controls`,ariaDescribedByElements:`aria-describedby`,ariaLabelledByElements:`aria-labelledby`};function setAriaReflection(t,n,r){if(n in t){t[n]=r.length>0?r:null;return}let i=e[n],a=r.map(e=>e.id).filter(Boolean);a.length===0?t.removeAttribute(i):t.setAttribute(i,a.join(` `))}exports.setAriaReflection=setAriaReflection;
1
+ var e={ariaActiveDescendantElement:`aria-activedescendant`,ariaControlsElements:`aria-controls`,ariaDescribedByElements:`aria-describedby`,ariaLabelledByElements:`aria-labelledby`};function setAriaReflection(t,n,r){if(n in t){if(n===`ariaActiveDescendantElement`){let e=t,n=r[0]??null;if(e.ariaActiveDescendantElement=n,e.ariaActiveDescendantElement===n)return}else{let e=t;e[n]=r.length>0?r:null;let i=e[n];if(r.length===0?!i||i.length===0:i?.length===r.length&&r.every((e,t)=>i[t]===e))return}}let i=e[n],a=r.map(e=>e.id).filter(Boolean);a.length===0?t.removeAttribute(i):t.setAttribute(i,a.join(` `))}exports.setAriaReflection=setAriaReflection;
2
2
  //# sourceMappingURL=aria-reflection.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"aria-reflection.cjs","names":[],"sources":["../../src/core/aria-reflection.ts"],"sourcesContent":["/**\n * Cross-shadow-root ARIA relationship helper.\n *\n * Plain IDREF attributes (`aria-controls`, `aria-describedby`, `aria-labelledby`, …) cannot\n * resolve across shadow-tree boundaries: the browser only looks up an `id` within the same\n * root as the referencing element, so `<div id=\"x\">` inside one component's shadow root is\n * invisible to `aria-controls=\"x\"` set inside another component's shadow root, even when both\n * custom elements are siblings in the light DOM. This is a platform limitation, not a bug :\n * see the WICG \"reference target\" explainer for the full rationale.\n *\n * Modern browsers instead expose element-reflection IDL properties\n * (`ariaControlsElements`, `ariaDescribedByElements`, `ariaLabelledByElements`, …) that accept\n * live `Element` references directly, sidestepping ID lookup entirely: these work across\n * shadow roots by design. Where unsupported, this falls back to the plain IDREF attribute,\n * which is still correct for same-root pairings and degrades gracefully (no relationship)\n * for cross-root ones instead of throwing.\n */\n\nexport type AriaReflectionProperty = 'ariaControlsElements' | 'ariaDescribedByElements' | 'ariaLabelledByElements';\n\nconst ATTR_BY_PROPERTY: Record<AriaReflectionProperty, string> = {\n ariaControlsElements: 'aria-controls',\n ariaDescribedByElements: 'aria-describedby',\n ariaLabelledByElements: 'aria-labelledby',\n};\n\n/**\n * Associates `el` with `targets` via the given ARIA relationship. Prefers the\n * cross-shadow-root-safe element-reflection property; falls back to a plain IDREF attribute\n * built from `targets`' own `id`s when the browser doesn't support element reflection yet.\n *\n * Pass an empty array to clear the relationship.\n */\nexport function setAriaReflection(el: Element, property: AriaReflectionProperty, targets: readonly Element[]): void {\n if (property in el) {\n (el as unknown as Record<AriaReflectionProperty, readonly Element[] | null>)[property] =\n targets.length > 0 ? targets : null;\n\n return;\n }\n\n const attr = ATTR_BY_PROPERTY[property];\n const ids = targets.map((target) => target.id).filter(Boolean);\n\n if (ids.length === 0) el.removeAttribute(attr);\n else el.setAttribute(attr, ids.join(' '));\n}\n"],"mappings":"AAoBA,IAAM,EAA2D,CAC/D,qBAAsB,gBACtB,wBAAyB,mBACzB,uBAAwB,iBAC1B,EASA,SAAgB,kBAAkB,EAAa,EAAkC,EAAmC,CAClH,GAAI,KAAY,EAAI,CAClB,EAA6E,GAC3E,EAAQ,OAAS,EAAI,EAAU,KAEjC,MACF,CAEA,IAAM,EAAO,EAAiB,GACxB,EAAM,EAAQ,IAAK,GAAW,EAAO,EAAE,CAAC,CAAC,OAAO,OAAO,EAEzD,EAAI,SAAW,EAAG,EAAG,gBAAgB,CAAI,EACxC,EAAG,aAAa,EAAM,EAAI,KAAK,GAAG,CAAC,CAC1C"}
1
+ {"version":3,"file":"aria-reflection.cjs","names":[],"sources":["../../src/core/aria-reflection.ts"],"sourcesContent":["/**\n * Cross-shadow-root ARIA relationship helper.\n *\n * Plain IDREF attributes (`aria-controls`, `aria-activedescendant`, `aria-describedby`,\n * `aria-labelledby`, …) cannot resolve across shadow-tree boundaries: the browser only looks\n * up an `id` within the same root as the referencing element, so a target inside one\n * component's shadow root is invisible to an attribute set inside another component's root.\n * This is a platform limitation, not a bug; see the WICG \"reference target\" explainer.\n *\n * Modern browsers instead expose element-reflection IDL properties\n * (`ariaControlsElements`, `ariaActiveDescendantElement`, `ariaDescribedByElements`,\n * `ariaLabelledByElements`, …) that accept\n * live `Element` references directly, sidestepping ID lookup entirely: these work across\n * shadow roots by design. Where unsupported, this falls back to the plain IDREF attribute,\n * which is still correct for same-root pairings and degrades gracefully (no relationship)\n * for cross-root ones instead of throwing.\n */\n\nexport type AriaReflectionProperty =\n | 'ariaActiveDescendantElement'\n | 'ariaControlsElements'\n | 'ariaDescribedByElements'\n | 'ariaLabelledByElements';\n\nconst ATTR_BY_PROPERTY: Record<AriaReflectionProperty, string> = {\n ariaActiveDescendantElement: 'aria-activedescendant',\n ariaControlsElements: 'aria-controls',\n ariaDescribedByElements: 'aria-describedby',\n ariaLabelledByElements: 'aria-labelledby',\n};\n\n/**\n * Associates `el` with `targets` via the given ARIA relationship. Prefers the\n * cross-shadow-root-safe element-reflection property; falls back to a plain IDREF attribute\n * built from `targets`' own `id`s when the browser doesn't support element reflection yet.\n *\n * Pass an empty array to clear the relationship.\n */\nexport function setAriaReflection(el: Element, property: AriaReflectionProperty, targets: readonly Element[]): void {\n if (property in el) {\n if (property === 'ariaActiveDescendantElement') {\n const reflection = el as unknown as { ariaActiveDescendantElement: Element | null };\n const target = targets[0] ?? null;\n reflection.ariaActiveDescendantElement = target;\n if (reflection.ariaActiveDescendantElement === target) return;\n } else {\n const reflection = el as unknown as Record<\n Exclude<AriaReflectionProperty, 'ariaActiveDescendantElement'>,\n readonly Element[] | null\n >;\n const targetList = targets.length > 0 ? targets : null;\n reflection[property] = targetList;\n\n const current = reflection[property];\n if (\n targets.length === 0\n ? !current || current.length === 0\n : current?.length === targets.length && targets.every((target, index) => current[index] === target)\n ) {\n return;\n }\n }\n }\n\n const attr = ATTR_BY_PROPERTY[property];\n const ids = targets.map((target) => target.id).filter(Boolean);\n\n if (ids.length === 0) el.removeAttribute(attr);\n else el.setAttribute(attr, ids.join(' '));\n}\n"],"mappings":"AAwBA,IAAM,EAA2D,CAC/D,4BAA6B,wBAC7B,qBAAsB,gBACtB,wBAAyB,mBACzB,uBAAwB,iBAC1B,EASA,SAAgB,kBAAkB,EAAa,EAAkC,EAAmC,CAClH,GAAI,KAAY,EAAI,CAClB,GAAI,IAAa,8BAA+B,CAC9C,IAAM,EAAa,EACb,EAAS,EAAQ,IAAM,KAE7B,GADA,EAAW,4BAA8B,EACrC,EAAW,8BAAgC,EAAQ,MACzD,KAAO,CACL,IAAM,EAAa,EAKnB,EAAW,GADQ,EAAQ,OAAS,EAAI,EAAU,KAGlD,IAAM,EAAU,EAAW,GAC3B,GACE,EAAQ,SAAW,EACf,CAAC,GAAW,EAAQ,SAAW,EAC/B,GAAS,SAAW,EAAQ,QAAU,EAAQ,OAAO,EAAQ,IAAU,EAAQ,KAAW,CAAM,EAEpG,MAEJ,CACF,CAEA,IAAM,EAAO,EAAiB,GACxB,EAAM,EAAQ,IAAK,GAAW,EAAO,EAAE,CAAC,CAAC,OAAO,OAAO,EAEzD,EAAI,SAAW,EAAG,EAAG,gBAAgB,CAAI,EACxC,EAAG,aAAa,EAAM,EAAI,KAAK,GAAG,CAAC,CAC1C"}
@@ -1,21 +1,21 @@
1
1
  /**
2
2
  * Cross-shadow-root ARIA relationship helper.
3
3
  *
4
- * Plain IDREF attributes (`aria-controls`, `aria-describedby`, `aria-labelledby`, …) cannot
5
- * resolve across shadow-tree boundaries: the browser only looks up an `id` within the same
6
- * root as the referencing element, so `<div id="x">` inside one component's shadow root is
7
- * invisible to `aria-controls="x"` set inside another component's shadow root, even when both
8
- * custom elements are siblings in the light DOM. This is a platform limitation, not a bug :
9
- * see the WICG "reference target" explainer for the full rationale.
4
+ * Plain IDREF attributes (`aria-controls`, `aria-activedescendant`, `aria-describedby`,
5
+ * `aria-labelledby`, …) cannot resolve across shadow-tree boundaries: the browser only looks
6
+ * up an `id` within the same root as the referencing element, so a target inside one
7
+ * component's shadow root is invisible to an attribute set inside another component's root.
8
+ * This is a platform limitation, not a bug; see the WICG "reference target" explainer.
10
9
  *
11
10
  * Modern browsers instead expose element-reflection IDL properties
12
- * (`ariaControlsElements`, `ariaDescribedByElements`, `ariaLabelledByElements`, …) that accept
11
+ * (`ariaControlsElements`, `ariaActiveDescendantElement`, `ariaDescribedByElements`,
12
+ * `ariaLabelledByElements`, …) that accept
13
13
  * live `Element` references directly, sidestepping ID lookup entirely: these work across
14
14
  * shadow roots by design. Where unsupported, this falls back to the plain IDREF attribute,
15
15
  * which is still correct for same-root pairings and degrades gracefully (no relationship)
16
16
  * for cross-root ones instead of throwing.
17
17
  */
18
- export type AriaReflectionProperty = 'ariaControlsElements' | 'ariaDescribedByElements' | 'ariaLabelledByElements';
18
+ export type AriaReflectionProperty = 'ariaActiveDescendantElement' | 'ariaControlsElements' | 'ariaDescribedByElements' | 'ariaLabelledByElements';
19
19
  /**
20
20
  * Associates `el` with `targets` via the given ARIA relationship. Prefers the
21
21
  * cross-shadow-root-safe element-reflection property; falls back to a plain IDREF attribute
@@ -1 +1 @@
1
- {"version":3,"file":"aria-reflection.d.ts","sourceRoot":"","sources":["../../src/core/aria-reflection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,MAAM,sBAAsB,GAAG,sBAAsB,GAAG,yBAAyB,GAAG,wBAAwB,CAAC;AAQnH;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,sBAAsB,EAAE,OAAO,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,CAalH"}
1
+ {"version":3,"file":"aria-reflection.d.ts","sourceRoot":"","sources":["../../src/core/aria-reflection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,MAAM,sBAAsB,GAC9B,6BAA6B,GAC7B,sBAAsB,GACtB,yBAAyB,GACzB,wBAAwB,CAAC;AAS7B;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,sBAAsB,EAAE,OAAO,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,CA+BlH"}
@@ -1,2 +1,2 @@
1
- var e={ariaControlsElements:`aria-controls`,ariaDescribedByElements:`aria-describedby`,ariaLabelledByElements:`aria-labelledby`};function setAriaReflection(t,n,r){if(n in t){t[n]=r.length>0?r:null;return}let i=e[n],a=r.map(e=>e.id).filter(Boolean);a.length===0?t.removeAttribute(i):t.setAttribute(i,a.join(` `))}export{setAriaReflection};
1
+ var e={ariaActiveDescendantElement:`aria-activedescendant`,ariaControlsElements:`aria-controls`,ariaDescribedByElements:`aria-describedby`,ariaLabelledByElements:`aria-labelledby`};function setAriaReflection(t,n,r){if(n in t){if(n===`ariaActiveDescendantElement`){let e=t,n=r[0]??null;if(e.ariaActiveDescendantElement=n,e.ariaActiveDescendantElement===n)return}else{let e=t;e[n]=r.length>0?r:null;let i=e[n];if(r.length===0?!i||i.length===0:i?.length===r.length&&r.every((e,t)=>i[t]===e))return}}let i=e[n],a=r.map(e=>e.id).filter(Boolean);a.length===0?t.removeAttribute(i):t.setAttribute(i,a.join(` `))}export{setAriaReflection};
2
2
  //# sourceMappingURL=aria-reflection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"aria-reflection.js","names":[],"sources":["../../src/core/aria-reflection.ts"],"sourcesContent":["/**\n * Cross-shadow-root ARIA relationship helper.\n *\n * Plain IDREF attributes (`aria-controls`, `aria-describedby`, `aria-labelledby`, …) cannot\n * resolve across shadow-tree boundaries: the browser only looks up an `id` within the same\n * root as the referencing element, so `<div id=\"x\">` inside one component's shadow root is\n * invisible to `aria-controls=\"x\"` set inside another component's shadow root, even when both\n * custom elements are siblings in the light DOM. This is a platform limitation, not a bug :\n * see the WICG \"reference target\" explainer for the full rationale.\n *\n * Modern browsers instead expose element-reflection IDL properties\n * (`ariaControlsElements`, `ariaDescribedByElements`, `ariaLabelledByElements`, …) that accept\n * live `Element` references directly, sidestepping ID lookup entirely: these work across\n * shadow roots by design. Where unsupported, this falls back to the plain IDREF attribute,\n * which is still correct for same-root pairings and degrades gracefully (no relationship)\n * for cross-root ones instead of throwing.\n */\n\nexport type AriaReflectionProperty = 'ariaControlsElements' | 'ariaDescribedByElements' | 'ariaLabelledByElements';\n\nconst ATTR_BY_PROPERTY: Record<AriaReflectionProperty, string> = {\n ariaControlsElements: 'aria-controls',\n ariaDescribedByElements: 'aria-describedby',\n ariaLabelledByElements: 'aria-labelledby',\n};\n\n/**\n * Associates `el` with `targets` via the given ARIA relationship. Prefers the\n * cross-shadow-root-safe element-reflection property; falls back to a plain IDREF attribute\n * built from `targets`' own `id`s when the browser doesn't support element reflection yet.\n *\n * Pass an empty array to clear the relationship.\n */\nexport function setAriaReflection(el: Element, property: AriaReflectionProperty, targets: readonly Element[]): void {\n if (property in el) {\n (el as unknown as Record<AriaReflectionProperty, readonly Element[] | null>)[property] =\n targets.length > 0 ? targets : null;\n\n return;\n }\n\n const attr = ATTR_BY_PROPERTY[property];\n const ids = targets.map((target) => target.id).filter(Boolean);\n\n if (ids.length === 0) el.removeAttribute(attr);\n else el.setAttribute(attr, ids.join(' '));\n}\n"],"mappings":"AAoBA,IAAM,EAA2D,CAC/D,qBAAsB,gBACtB,wBAAyB,mBACzB,uBAAwB,iBAC1B,EASA,SAAgB,kBAAkB,EAAa,EAAkC,EAAmC,CAClH,GAAI,KAAY,EAAI,CAClB,EAA6E,GAC3E,EAAQ,OAAS,EAAI,EAAU,KAEjC,MACF,CAEA,IAAM,EAAO,EAAiB,GACxB,EAAM,EAAQ,IAAK,GAAW,EAAO,EAAE,CAAC,CAAC,OAAO,OAAO,EAEzD,EAAI,SAAW,EAAG,EAAG,gBAAgB,CAAI,EACxC,EAAG,aAAa,EAAM,EAAI,KAAK,GAAG,CAAC,CAC1C"}
1
+ {"version":3,"file":"aria-reflection.js","names":[],"sources":["../../src/core/aria-reflection.ts"],"sourcesContent":["/**\n * Cross-shadow-root ARIA relationship helper.\n *\n * Plain IDREF attributes (`aria-controls`, `aria-activedescendant`, `aria-describedby`,\n * `aria-labelledby`, …) cannot resolve across shadow-tree boundaries: the browser only looks\n * up an `id` within the same root as the referencing element, so a target inside one\n * component's shadow root is invisible to an attribute set inside another component's root.\n * This is a platform limitation, not a bug; see the WICG \"reference target\" explainer.\n *\n * Modern browsers instead expose element-reflection IDL properties\n * (`ariaControlsElements`, `ariaActiveDescendantElement`, `ariaDescribedByElements`,\n * `ariaLabelledByElements`, …) that accept\n * live `Element` references directly, sidestepping ID lookup entirely: these work across\n * shadow roots by design. Where unsupported, this falls back to the plain IDREF attribute,\n * which is still correct for same-root pairings and degrades gracefully (no relationship)\n * for cross-root ones instead of throwing.\n */\n\nexport type AriaReflectionProperty =\n | 'ariaActiveDescendantElement'\n | 'ariaControlsElements'\n | 'ariaDescribedByElements'\n | 'ariaLabelledByElements';\n\nconst ATTR_BY_PROPERTY: Record<AriaReflectionProperty, string> = {\n ariaActiveDescendantElement: 'aria-activedescendant',\n ariaControlsElements: 'aria-controls',\n ariaDescribedByElements: 'aria-describedby',\n ariaLabelledByElements: 'aria-labelledby',\n};\n\n/**\n * Associates `el` with `targets` via the given ARIA relationship. Prefers the\n * cross-shadow-root-safe element-reflection property; falls back to a plain IDREF attribute\n * built from `targets`' own `id`s when the browser doesn't support element reflection yet.\n *\n * Pass an empty array to clear the relationship.\n */\nexport function setAriaReflection(el: Element, property: AriaReflectionProperty, targets: readonly Element[]): void {\n if (property in el) {\n if (property === 'ariaActiveDescendantElement') {\n const reflection = el as unknown as { ariaActiveDescendantElement: Element | null };\n const target = targets[0] ?? null;\n reflection.ariaActiveDescendantElement = target;\n if (reflection.ariaActiveDescendantElement === target) return;\n } else {\n const reflection = el as unknown as Record<\n Exclude<AriaReflectionProperty, 'ariaActiveDescendantElement'>,\n readonly Element[] | null\n >;\n const targetList = targets.length > 0 ? targets : null;\n reflection[property] = targetList;\n\n const current = reflection[property];\n if (\n targets.length === 0\n ? !current || current.length === 0\n : current?.length === targets.length && targets.every((target, index) => current[index] === target)\n ) {\n return;\n }\n }\n }\n\n const attr = ATTR_BY_PROPERTY[property];\n const ids = targets.map((target) => target.id).filter(Boolean);\n\n if (ids.length === 0) el.removeAttribute(attr);\n else el.setAttribute(attr, ids.join(' '));\n}\n"],"mappings":"AAwBA,IAAM,EAA2D,CAC/D,4BAA6B,wBAC7B,qBAAsB,gBACtB,wBAAyB,mBACzB,uBAAwB,iBAC1B,EASA,SAAgB,kBAAkB,EAAa,EAAkC,EAAmC,CAClH,GAAI,KAAY,EAAI,CAClB,GAAI,IAAa,8BAA+B,CAC9C,IAAM,EAAa,EACb,EAAS,EAAQ,IAAM,KAE7B,GADA,EAAW,4BAA8B,EACrC,EAAW,8BAAgC,EAAQ,MACzD,KAAO,CACL,IAAM,EAAa,EAKnB,EAAW,GADQ,EAAQ,OAAS,EAAI,EAAU,KAGlD,IAAM,EAAU,EAAW,GAC3B,GACE,EAAQ,SAAW,EACf,CAAC,GAAW,EAAQ,SAAW,EAC/B,GAAS,SAAW,EAAQ,QAAU,EAAQ,OAAO,EAAQ,IAAU,EAAQ,KAAW,CAAM,EAEpG,MAEJ,CACF,CAEA,IAAM,EAAO,EAAiB,GACxB,EAAM,EAAQ,IAAK,GAAW,EAAO,EAAE,CAAC,CAAC,OAAO,OAAO,EAEzD,EAAI,SAAW,EAAG,EAAG,gBAAgB,CAAI,EACxC,EAAG,aAAa,EAAM,EAAI,KAAK,GAAG,CAAC,CAC1C"}