@lion/ui 0.15.0 → 0.15.1

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 (208) hide show
  1. package/README.md +38 -12
  2. package/components/combobox/test/lion-combobox.test.js +50 -2
  3. package/components/core/src/SlotMixin.js +52 -0
  4. package/components/core/test/SlotMixin.test.js +85 -0
  5. package/components/listbox/src/ListboxMixin.js +3 -35
  6. package/components/overlays/src/ArrowMixin.js +10 -4
  7. package/components/overlays/test/OverlayController.test.js +4 -1
  8. package/custom-elements.json +2959 -207
  9. package/dist-types/components/core/src/ScopedElementsMixin.d.ts.map +1 -1
  10. package/dist-types/components/core/src/SlotMixin.d.ts +35 -0
  11. package/dist-types/components/core/src/SlotMixin.d.ts.map +1 -1
  12. package/dist-types/components/core/test/SlotMixin.test.d.ts.map +1 -1
  13. package/dist-types/components/listbox/src/ListboxMixin.d.ts.map +1 -1
  14. package/dist-types/components/overlays/src/ArrowMixin.d.ts.map +1 -1
  15. package/dist-types/tsconfig.tsbuildinfo +1 -1
  16. package/docs/components/accordion/index.md +1 -1
  17. package/docs/components/accordion/overview.md +1 -1
  18. package/docs/components/accordion/reference.md +1 -1
  19. package/docs/components/accordion/use-cases.md +1 -1
  20. package/docs/components/button/{extensions/bootstrap-button.mjs → assets/bootstrap-button.js} +10 -5
  21. package/docs/components/button/examples.md +1 -1
  22. package/docs/components/button/extensions.md +2 -2
  23. package/docs/components/button/index.md +2 -2
  24. package/docs/components/button/overview.md +4 -4
  25. package/docs/components/button/use-cases.md +6 -6
  26. package/docs/components/calendar/index.md +1 -1
  27. package/docs/components/calendar/overview.md +1 -1
  28. package/docs/components/calendar/use-cases.md +2 -2
  29. package/docs/components/checkbox-group/index.md +1 -1
  30. package/docs/components/checkbox-group/overview.md +3 -3
  31. package/docs/components/checkbox-group/use-cases.md +1 -1
  32. package/docs/components/collapsible/examples.md +1 -1
  33. package/docs/components/collapsible/index.md +1 -1
  34. package/docs/components/collapsible/overview.md +2 -2
  35. package/docs/components/collapsible/use-cases.md +1 -1
  36. package/docs/components/combobox/extensions.md +2 -1
  37. package/docs/components/combobox/index.md +1 -1
  38. package/docs/components/combobox/overview.md +2 -2
  39. package/docs/components/combobox/use-cases.md +2 -2
  40. package/docs/components/dialog/index.md +1 -1
  41. package/docs/components/dialog/overview.md +2 -2
  42. package/docs/components/dialog/use-cases.md +1 -1
  43. package/docs/components/drawer/index.md +1 -1
  44. package/docs/components/drawer/overview.md +1 -1
  45. package/docs/components/drawer/use-cases.md +1 -1
  46. package/docs/components/fieldset/index.md +1 -1
  47. package/docs/components/fieldset/overview.md +6 -6
  48. package/docs/components/fieldset/use-cases.md +1 -1
  49. package/docs/components/form/index.md +1 -1
  50. package/docs/components/form/overview.md +4 -4
  51. package/docs/components/form/use-cases.md +3 -3
  52. package/docs/components/icon/index.md +1 -1
  53. package/docs/components/icon/overview.md +1 -1
  54. package/docs/components/icon/use-cases.md +2 -15
  55. package/docs/components/index.md +1 -1
  56. package/docs/components/input/index.md +1 -1
  57. package/docs/components/input/overview.md +2 -2
  58. package/docs/components/input/use-cases.md +1 -1
  59. package/docs/components/input-amount/index.md +1 -1
  60. package/docs/components/input-amount/overview.md +4 -4
  61. package/docs/components/input-amount/use-cases.md +1 -1
  62. package/docs/components/input-amount-dropdown/index.md +1 -1
  63. package/docs/components/input-amount-dropdown/use-cases.md +1 -1
  64. package/docs/components/input-date/index.md +1 -1
  65. package/docs/components/input-date/overview.md +4 -4
  66. package/docs/components/input-date/use-cases.md +1 -1
  67. package/docs/components/input-datepicker/index.md +1 -1
  68. package/docs/components/input-datepicker/overview.md +6 -6
  69. package/docs/components/input-datepicker/use-cases.md +1 -1
  70. package/docs/components/input-email/index.md +1 -1
  71. package/docs/components/input-email/overview.md +3 -3
  72. package/docs/components/input-email/use-cases.md +1 -1
  73. package/docs/components/input-file/index.md +1 -1
  74. package/docs/components/input-file/overview.md +2 -2
  75. package/docs/components/input-file/use-cases.md +1 -1
  76. package/docs/components/input-iban/index.md +1 -1
  77. package/docs/components/input-iban/overview.md +3 -3
  78. package/docs/components/input-iban/use-cases.md +1 -1
  79. package/docs/components/input-range/index.md +1 -1
  80. package/docs/components/input-range/overview.md +3 -3
  81. package/docs/components/input-range/use-cases.md +1 -1
  82. package/docs/components/input-stepper/index.md +1 -1
  83. package/docs/components/input-stepper/overview.md +2 -2
  84. package/docs/components/input-stepper/use-cases.md +1 -1
  85. package/docs/components/input-tel/index.md +1 -1
  86. package/docs/components/input-tel/overview.md +2 -2
  87. package/docs/components/input-tel/use-cases.md +7 -7
  88. package/docs/components/input-tel-dropdown/extensions.md +1 -1
  89. package/docs/components/input-tel-dropdown/index.md +1 -1
  90. package/docs/components/input-tel-dropdown/overview.md +2 -2
  91. package/docs/components/input-tel-dropdown/use-cases.md +1 -1
  92. package/docs/components/listbox/index.md +1 -1
  93. package/docs/components/listbox/overview.md +1 -1
  94. package/docs/components/listbox/use-cases.md +2 -2
  95. package/docs/components/pagination/index.md +1 -1
  96. package/docs/components/pagination/overview.md +1 -1
  97. package/docs/components/pagination/use-cases.md +1 -1
  98. package/docs/components/progress-indicator/examples.md +1 -1
  99. package/docs/components/progress-indicator/index.md +1 -1
  100. package/docs/components/progress-indicator/overview.md +1 -1
  101. package/docs/components/radio-group/index.md +1 -1
  102. package/docs/components/radio-group/overview.md +4 -4
  103. package/docs/components/radio-group/use-cases.md +1 -1
  104. package/docs/components/select/index.md +1 -1
  105. package/docs/components/select/overview.md +1 -1
  106. package/docs/components/select/use-cases.md +2 -2
  107. package/docs/components/select-rich/examples.md +1 -1
  108. package/docs/components/select-rich/index.md +1 -1
  109. package/docs/components/select-rich/overview.md +1 -1
  110. package/docs/components/select-rich/use-cases.md +3 -3
  111. package/docs/components/steps/index.md +1 -1
  112. package/docs/components/steps/overview.md +1 -1
  113. package/docs/components/steps/use-cases.md +1 -1
  114. package/docs/components/switch/index.md +1 -1
  115. package/docs/components/switch/overview.md +1 -1
  116. package/docs/components/switch/reference.md +1 -1
  117. package/docs/components/switch/use-cases.md +1 -1
  118. package/docs/components/tabs/examples.md +2 -2
  119. package/docs/components/tabs/index.md +1 -1
  120. package/docs/components/tabs/overview.md +1 -1
  121. package/docs/components/tabs/use-cases.md +1 -1
  122. package/docs/components/textarea/index.md +1 -1
  123. package/docs/components/textarea/overview.md +1 -1
  124. package/docs/components/textarea/use-cases.md +1 -1
  125. package/docs/components/tooltip/examples.md +1 -1
  126. package/docs/components/tooltip/index.md +1 -1
  127. package/docs/components/tooltip/overview.md +1 -1
  128. package/docs/components/tooltip/use-cases.md +1 -1
  129. package/docs/fundamentals/index.md +4 -4
  130. package/docs/fundamentals/node-tools/babel-plugin-extend-docs/index.md +1 -1
  131. package/docs/fundamentals/node-tools/babel-plugin-extend-docs/overview.md +1 -1
  132. package/docs/fundamentals/node-tools/index.md +1 -1
  133. package/docs/fundamentals/node-tools/providence-analytics/index.md +1 -1
  134. package/docs/fundamentals/node-tools/providence-analytics/overview.md +1 -1
  135. package/docs/fundamentals/node-tools/publish-docs/index.md +1 -1
  136. package/docs/fundamentals/node-tools/publish-docs/overview.md +4 -4
  137. package/docs/fundamentals/node-tools/remark-extend/index.md +1 -1
  138. package/docs/fundamentals/node-tools/remark-extend/overview.md +1 -1
  139. package/docs/fundamentals/node-tools/rocket-preset-extend-lion-docs/index.md +1 -1
  140. package/docs/fundamentals/node-tools/rocket-preset-extend-lion-docs/overview.md +3 -3
  141. package/docs/fundamentals/rationales/TypeScript.md +1 -1
  142. package/docs/fundamentals/rationales/accessibility.md +2 -2
  143. package/docs/fundamentals/rationales/index.md +1 -1
  144. package/docs/fundamentals/rationales/side-effects.md +1 -1
  145. package/docs/fundamentals/rationales/versioning.md +1 -1
  146. package/docs/fundamentals/systems/core/SlotMixin.md +2 -2
  147. package/docs/fundamentals/systems/core/index.md +1 -1
  148. package/docs/fundamentals/systems/core/overview.md +2 -2
  149. package/docs/fundamentals/systems/form/formatting-and-parsing.md +5 -5
  150. package/docs/fundamentals/systems/form/index.md +1 -1
  151. package/docs/fundamentals/systems/form/interaction-states.md +1 -1
  152. package/docs/fundamentals/systems/form/model-value.md +2 -2
  153. package/docs/fundamentals/systems/form/overview.md +29 -29
  154. package/docs/fundamentals/systems/form/styling.md +1 -1
  155. package/docs/fundamentals/systems/form/use-cases.md +1 -1
  156. package/docs/fundamentals/systems/form/validate.md +3 -3
  157. package/docs/fundamentals/systems/icon/index.md +1 -1
  158. package/docs/fundamentals/systems/icon/overview.md +1 -1
  159. package/docs/fundamentals/systems/index.md +1 -1
  160. package/docs/fundamentals/systems/localize/api-table.md +3 -0
  161. package/docs/fundamentals/systems/localize/dates.md +1 -1
  162. package/docs/fundamentals/systems/localize/index.md +1 -1
  163. package/docs/fundamentals/systems/localize/numbers.md +1 -1
  164. package/docs/fundamentals/systems/localize/overview.md +5 -5
  165. package/docs/fundamentals/systems/localize/rationale.md +1 -1
  166. package/docs/fundamentals/systems/localize/text.md +5 -4
  167. package/docs/fundamentals/systems/localize/use-cases.md +1 -1
  168. package/docs/fundamentals/systems/overlays/_configuration-positioning.md +3 -3
  169. package/docs/fundamentals/systems/overlays/_edge-cases.md +3 -3
  170. package/docs/fundamentals/systems/overlays/api-table.md +3 -0
  171. package/docs/fundamentals/systems/overlays/assets/demo-overlay-positioning.mjs +1 -1
  172. package/docs/fundamentals/systems/overlays/configuration.md +5 -5
  173. package/docs/fundamentals/systems/overlays/index.md +1 -1
  174. package/docs/fundamentals/systems/overlays/overview.md +6 -6
  175. package/docs/fundamentals/systems/overlays/rationale.md +1 -1
  176. package/docs/fundamentals/systems/overlays/use-cases.md +6 -6
  177. package/docs/fundamentals/tools/ajax/index.md +1 -1
  178. package/docs/fundamentals/tools/ajax/overview.md +2 -2
  179. package/docs/fundamentals/tools/ajax/use-cases.md +3 -3
  180. package/docs/fundamentals/tools/helpers/action-logger.md +1 -1
  181. package/docs/fundamentals/tools/helpers/index.md +2 -2
  182. package/docs/fundamentals/tools/helpers/overview.md +2 -2
  183. package/docs/fundamentals/tools/index.md +1 -1
  184. package/docs/fundamentals/tools/singleton-manager/example-complex/index.md +1 -1
  185. package/docs/fundamentals/tools/singleton-manager/example-fail/demo-app.js +4 -4
  186. package/docs/fundamentals/tools/singleton-manager/example-fail/index.md +2 -2
  187. package/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/{page-a/page-a.js → page-c/page-c.js} +2 -2
  188. package/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/{page-b/page-b.js → page-d/page-d.js} +2 -2
  189. package/docs/fundamentals/tools/singleton-manager/example-success/demo-app.js +4 -4
  190. package/docs/fundamentals/tools/singleton-manager/example-success/index.md +2 -2
  191. package/docs/fundamentals/tools/singleton-manager/example-success/node_modules/{page-a/page-a.js → page-e/page-e.js} +2 -3
  192. package/docs/fundamentals/tools/singleton-manager/example-success/node_modules/{page-b/page-b.js → page-f/page-f.js} +2 -2
  193. package/docs/fundamentals/tools/singleton-manager/index.md +2 -2
  194. package/docs/fundamentals/tools/singleton-manager/overview.md +5 -5
  195. package/docs/guides/how-to/create-a-custom-field.md +5 -5
  196. package/docs/guides/how-to/create-a-form.md +4 -4
  197. package/docs/guides/how-to/extend-a-native-input.md +2 -2
  198. package/docs/guides/index.md +8 -8
  199. package/docs/guides/principles/index.md +5 -5
  200. package/docs/guides/principles/styling.md +1 -1
  201. package/package.json +1 -1
  202. /package/docs/fundamentals/systems/overlays/assets/{applyDemoOverlayStyles.mjs → applyDemoOverlayStyles.js} +0 -0
  203. /package/docs/fundamentals/systems/overlays/assets/{demo-el-using-overlaymixin.mjs → demo-el-using-overlaymixin.js} +0 -0
  204. /package/docs/fundamentals/systems/overlays/assets/{demo-overlay-backdrop.mjs → demo-overlay-backdrop.js} +0 -0
  205. /package/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/{page-b → page-d}/node_modules/overlays/index.js +0 -0
  206. /package/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/{page-b → page-d}/node_modules/overlays/instance.js +0 -0
  207. /package/docs/fundamentals/tools/singleton-manager/example-success/node_modules/{page-b → page-f}/node_modules/overlays/index.js +0 -0
  208. /package/docs/fundamentals/tools/singleton-manager/example-success/node_modules/{page-b → page-f}/node_modules/overlays/instance.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"ScopedElementsMixin.d.ts","sourceRoot":"","sources":["../../../../components/core/src/ScopedElementsMixin.js"],"names":[],"mappings":"AAIA;;;;;;;;;GASG;AAEH,kDAKC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,kUAiHG;gCAjKU,OAAO,sDAAsD,EAAE,iBAAiB;4CAChF,OAAO,uBAAuB,EAAE,WAAW,CAAC,kBAAkB,CAAC;iCAC/D,OAAO,yCAAyC,EAAE,kBAAkB;8CACpE,OAAO,YAAY,EAAE,+BAA+B;oCACpD,OAAO,uBAAuB,EAAE,WAAW,CAAC,UAAU,CAAC;gCACvD,OAAO,KAAK,EAAE,iBAAiB;+BAC/B,cAAc,KAAK,EAAE,UAAU;yBAC/B,OAAO,KAAK,EAAE,UAAU"}
1
+ {"version":3,"file":"ScopedElementsMixin.d.ts","sourceRoot":"","sources":["../../../../components/core/src/ScopedElementsMixin.js"],"names":[],"mappings":"AAIA;;;;;;;;;GASG;AAEH,kDAKC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wUAiHG;gCAjKU,OAAO,sDAAsD,EAAE,iBAAiB;4CAChF,OAAO,uBAAuB,EAAE,WAAW,CAAC,kBAAkB,CAAC;iCAC/D,OAAO,yCAAyC,EAAE,kBAAkB;8CACpE,OAAO,YAAY,EAAE,+BAA+B;oCACpD,OAAO,uBAAuB,EAAE,WAAW,CAAC,UAAU,CAAC;gCACvD,OAAO,KAAK,EAAE,iBAAiB;+BAC/B,cAAc,KAAK,EAAE,UAAU;yBAC/B,OAAO,KAAK,EAAE,UAAU"}
@@ -1,3 +1,38 @@
1
+ /**
2
+ * @typedef {{renderBefore:Comment; renderTargetThatRespectsShadowRootScoping: HTMLDivElement}} RenderMetaObj
3
+ * @typedef {import('../types/SlotMixinTypes.js').SlotFunctionResult} SlotFunctionResult
4
+ * @typedef {import('../types/SlotMixinTypes.js').SlotRerenderObject} SlotRerenderObject
5
+ * @typedef {import('../types/SlotMixinTypes.js').SlotMixin} SlotMixin
6
+ * @typedef {import('../types/SlotMixinTypes.js').SlotsMap} SlotsMap
7
+ * @typedef {import('lit').LitElement} LitElement
8
+ */
9
+ /**
10
+ * Sometimes, we want to provide best DX (direct slottables) and be accessible
11
+ * at the same time.
12
+ * In the first example below, we need to wrap our options in light dom in an element with
13
+ * [role=listbox]. We could achieve this via the second example, but it would affect our
14
+ * public api negatively. not allowing us to be forward compatible with the AOM spec:
15
+ * https://wicg.github.io/aom/explainer.html
16
+ * With this method, it's possible to watch elements in the default slot and move them
17
+ * to the desired target (the element with [role=listbox]) in light dom.
18
+ *
19
+ * @example
20
+ * # desired api
21
+ * <sel-ect>
22
+ * <opt-ion></opt-ion>
23
+ * </sel-ect>
24
+ * # desired end state
25
+ * <sel-ect>
26
+ * <div role="listbox" slot="lisbox">
27
+ * <opt-ion></opt-ion>
28
+ * </div>
29
+ * </sel-ect>
30
+ *
31
+ * Note, the function does not move the nodes specified by a subclasser in the `slots` getter
32
+ * @param {HTMLElement} source host of ShadowRoot with default <slot>
33
+ * @param {HTMLElement} target the desired target in light dom
34
+ */
35
+ export function moveUserProvidedDefaultSlottablesToTarget(source: HTMLElement, target: HTMLElement): void;
1
36
  export type SlotMixin = import('../types/SlotMixinTypes.js').SlotMixin;
2
37
  export const SlotMixin: <T extends import("@open-wc/dedupe-mixin").Constructor<import("lit").LitElement>>(superclass: T) => T & import("@open-wc/dedupe-mixin").Constructor<import("../types/SlotMixinTypes.js").SlotHost> & Pick<typeof import("../types/SlotMixinTypes.js").SlotHost, "prototype"> & Pick<typeof import("lit").LitElement, typeof Symbol.metadata | "prototype" | "_$litElement$" | "enabledWarnings" | "enableWarning" | "disableWarning" | "addInitializer" | "_initializers" | "elementProperties" | "properties" | "elementStyles" | "styles" | "observedAttributes" | "createProperty" | "getPropertyOptions" | "shadowRootOptions">;
3
38
  export type RenderMetaObj = {
@@ -1 +1 @@
1
- {"version":3,"file":"SlotMixin.d.ts","sourceRoot":"","sources":["../../../../components/core/src/SlotMixin.js"],"names":[],"mappings":"wBASa,OAAO,4BAA4B,EAAE,SAAS;AA+S3D,4nBAA8D;4BAlTjD;IAAC,YAAY,EAAC,OAAO,CAAC;IAAC,yCAAyC,EAAE,cAAc,CAAA;CAAC;iCACjF,OAAO,4BAA4B,EAAE,kBAAkB;iCACvD,OAAO,4BAA4B,EAAE,kBAAkB;uBAEvD,OAAO,4BAA4B,EAAE,QAAQ;yBAC7C,OAAO,KAAK,EAAE,UAAU"}
1
+ {"version":3,"file":"SlotMixin.d.ts","sourceRoot":"","sources":["../../../../components/core/src/SlotMixin.js"],"names":[],"mappings":"AAKA;;;;;;;GAOG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,kEAHW,WAAW,UACX,WAAW,QA0BrB;wBAvDY,OAAO,4BAA4B,EAAE,SAAS;AAmW3D,4nBAA8D;4BAtWjD;IAAC,YAAY,EAAC,OAAO,CAAC;IAAC,yCAAyC,EAAE,cAAc,CAAA;CAAC;iCACjF,OAAO,4BAA4B,EAAE,kBAAkB;iCACvD,OAAO,4BAA4B,EAAE,kBAAkB;uBAEvD,OAAO,4BAA4B,EAAE,QAAQ;yBAC7C,OAAO,KAAK,EAAE,UAAU"}
@@ -1 +1 @@
1
- {"version":3,"file":"SlotMixin.test.d.ts","sourceRoot":"","sources":["../../../../components/core/test/SlotMixin.test.js"],"names":[],"mappings":"uBASa,OAAO,4BAA4B,EAAE,QAAQ"}
1
+ {"version":3,"file":"SlotMixin.test.d.ts","sourceRoot":"","sources":["../../../../components/core/test/SlotMixin.test.js"],"names":[],"mappings":"uBAUa,OAAO,4BAA4B,EAAE,QAAQ"}
@@ -1 +1 @@
1
- {"version":3,"file":"ListboxMixin.d.ts","sourceRoot":"","sources":["../../../../components/listbox/src/ListboxMixin.js"],"names":[],"mappings":"2BAea,OAAO,+BAA+B,EAAE,YAAY;AAy7BjE,gGAAoE;mCA57BvD,OAAO,gDAAgD,EAAE,oBAAoB;8BAC7E,OAAO,gDAAgD,EAAE,eAAe;yBACxE,OAAO,iBAAiB,EAAE,UAAU;0BAEpC,OAAO,+BAA+B,EAAE,WAAW;sCACnD,OAAO,qEAAqE,EAAE,uBAAuB;qCACrG,OAAO,gDAAgD,EAAE,sBAAsB"}
1
+ {"version":3,"file":"ListboxMixin.d.ts","sourceRoot":"","sources":["../../../../components/listbox/src/ListboxMixin.js"],"names":[],"mappings":"2BAgBa,OAAO,+BAA+B,EAAE,YAAY;AAw5BjE,gGAAoE;mCA35BvD,OAAO,gDAAgD,EAAE,oBAAoB;8BAC7E,OAAO,gDAAgD,EAAE,eAAe;yBACxE,OAAO,iBAAiB,EAAE,UAAU;0BAEpC,OAAO,+BAA+B,EAAE,WAAW;sCACnD,OAAO,qEAAqE,EAAE,uBAAuB;qCACrG,OAAO,gDAAgD,EAAE,sBAAsB"}
@@ -1 +1 @@
1
- {"version":3,"file":"ArrowMixin.d.ts","sourceRoot":"","sources":["../../../../components/overlays/src/ArrowMixin.js"],"names":[],"mappings":"AAIA;;;;;;GAMG;AAEH;;;GAGG;AACH,uCAHU,UAAU,CA0MhB;yBAjNS,OAAO,6BAA6B,EAAE,UAAU;AAmN7D,0FAAgE;4BApNnD,OAAO,2BAA2B,EAAE,aAAa;4BAEjD,OAAO,8BAA8B,EAAE,OAAO;wBAC9C,OAAO,6BAA6B,EAAE,SAAS;6BAC/C,OAAO,KAAK,EAAE,cAAc"}
1
+ {"version":3,"file":"ArrowMixin.d.ts","sourceRoot":"","sources":["../../../../components/overlays/src/ArrowMixin.js"],"names":[],"mappings":"AAIA;;;;;;GAMG;AAEH;;;GAGG;AACH,uCAHU,UAAU,CAgNhB;yBAvNS,OAAO,6BAA6B,EAAE,UAAU;AAyN7D,0FAAgE;4BA1NnD,OAAO,2BAA2B,EAAE,aAAa;4BAEjD,OAAO,8BAA8B,EAAE,OAAO;wBAC9C,OAAO,6BAA6B,EAAE,SAAS;6BAC/C,OAAO,KAAK,EAAE,cAAc"}