@e280/shiny 0.1.0-2 → 0.1.0-21

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 (247) hide show
  1. package/README.md +51 -63
  2. package/package.json +19 -26
  3. package/s/_archive/components/button/component.ts +30 -0
  4. package/s/_archive/components/button/showcase.ts +119 -0
  5. package/s/_archive/components/button/style.css.ts +63 -0
  6. package/s/{ui → _archive/components}/copy/component.ts +12 -5
  7. package/s/_archive/components/copy/showcase.ts +51 -0
  8. package/s/{ui → _archive/components}/copy/style.css.ts +6 -6
  9. package/s/_archive/components/drawer/component.ts +90 -0
  10. package/s/_archive/components/drawer/control.ts +31 -0
  11. package/s/_archive/components/drawer/showcase.ts +111 -0
  12. package/s/_archive/components/drawer/style.css.ts +127 -0
  13. package/s/{ui → _archive/components}/example/component.ts +6 -4
  14. package/s/_archive/components/example/showcase.ts +32 -0
  15. package/s/{ui → _archive/components}/example/style.css.ts +2 -2
  16. package/s/_archive/components/foundation.css.ts +15 -0
  17. package/s/{ui → _archive/components}/framework.ts +1 -2
  18. package/s/_archive/components/raw-components.ts +15 -0
  19. package/s/_archive/components/tabs/component.ts +70 -0
  20. package/s/_archive/components/tabs/control.ts +31 -0
  21. package/s/_archive/components/tabs/showcase.ts +171 -0
  22. package/s/_archive/components/tabs/style.css.ts +46 -0
  23. package/s/_archive/demo/demo.bundle.ts +47 -0
  24. package/s/{demo → _archive/demo}/demo.css +1 -0
  25. package/s/_archive/demo/lipsum.ts +6 -0
  26. package/s/_archive/demo/utils/lipsum.ts +19 -0
  27. package/s/_archive/demo/views/exhibit/style.css.ts +85 -0
  28. package/s/_archive/demo/views/exhibit/view.ts +61 -0
  29. package/s/_archive/demo/views/showcase/style.css.ts +53 -0
  30. package/s/_archive/demo/views/showcase/view.ts +54 -0
  31. package/s/_archive/demo/viewsets.ts +12 -0
  32. package/s/_archive/index.html.ts +34 -0
  33. package/s/_archive/index.ts +19 -0
  34. package/s/_archive/install/aura.bundle.ts +9 -0
  35. package/s/_archive/install/plain.bundle.ts +9 -0
  36. package/s/{shiny.ts → _archive/shiny.ts} +2 -2
  37. package/s/_archive/themes/aura.css.ts +86 -0
  38. package/s/_archive/themes/index.barrel.ts +4 -0
  39. package/s/{themes → _archive/themes}/index.ts +1 -0
  40. package/s/_archive/themes/infra/css-vars.ts +46 -0
  41. package/s/_archive/themes/plain.css.ts +11 -0
  42. package/s/_archive/utils/states.ts +15 -0
  43. package/s/demo/globals.d.ts +3 -0
  44. package/s/demo/main.bundle.ts +16 -0
  45. package/s/demo/main.css +71 -0
  46. package/s/demo/parts/exhibit.ts +15 -0
  47. package/s/demo/utils/lipsum.ts +19 -0
  48. package/s/demo/views/codebox/style.css.ts +45 -0
  49. package/s/demo/views/codebox/use-prism-styles.ts +13 -0
  50. package/s/demo/views/codebox/view.ts +39 -0
  51. package/s/demo/views/showcase/style.css.ts +80 -0
  52. package/s/demo/views/showcase/view.ts +50 -0
  53. package/s/demo/views/stylebox/view.ts +21 -0
  54. package/s/icons/tabler/menu-2.svg.ts +4 -0
  55. package/s/icons/tabler/x.svg.ts +4 -0
  56. package/s/index.html.ts +42 -32
  57. package/s/index.ts +6 -7
  58. package/s/test.ts +5 -0
  59. package/s/theme/parts/core.ts +34 -0
  60. package/s/theme/parts/reset.ts +20 -0
  61. package/s/theme/parts/vars.ts +41 -0
  62. package/s/theme/theme-string.ts +15 -0
  63. package/s/theme/theme.css.ts +7 -0
  64. package/s/utils/states.ts +15 -0
  65. package/s/views/button/showcase.ts +43 -0
  66. package/s/views/button/style.css.ts +110 -0
  67. package/s/views/button/view.ts +32 -0
  68. package/s/views/copy/parts/copy-status.ts +3 -0
  69. package/s/views/copy/parts/determine-base-status.ts +7 -0
  70. package/s/views/copy/parts/use-copier.ts +20 -0
  71. package/s/views/copy/showcase.ts +54 -0
  72. package/s/views/copy/style.css.ts +51 -0
  73. package/s/views/copy/view.ts +60 -0
  74. package/s/views/drawer/control.ts +31 -0
  75. package/s/views/drawer/showcase.ts +83 -0
  76. package/s/views/drawer/style.css.ts +128 -0
  77. package/s/views/drawer/view.ts +76 -0
  78. package/s/views/tabs/control.ts +31 -0
  79. package/s/views/tabs/showcase.ts +89 -0
  80. package/s/views/tabs/style.css.ts +46 -0
  81. package/s/views/tabs/view.ts +66 -0
  82. package/x/{demo → _archive/demo}/demo.css +1 -0
  83. package/x/demo/main.bundle.js +13 -0
  84. package/x/demo/main.bundle.js.map +1 -0
  85. package/x/demo/main.bundle.min.js +811 -0
  86. package/x/demo/main.bundle.min.js.map +7 -0
  87. package/x/demo/main.css +71 -0
  88. package/x/demo/parts/exhibit.d.ts +11 -0
  89. package/x/demo/parts/exhibit.js +2 -0
  90. package/x/demo/parts/exhibit.js.map +1 -0
  91. package/x/demo/utils/lipsum.d.ts +2 -0
  92. package/x/demo/utils/lipsum.js +11 -0
  93. package/x/demo/utils/lipsum.js.map +1 -0
  94. package/x/demo/views/codebox/style.css.js +44 -0
  95. package/x/demo/views/codebox/style.css.js.map +1 -0
  96. package/x/demo/views/codebox/use-prism-styles.d.ts +1 -0
  97. package/x/demo/views/codebox/use-prism-styles.js +12 -0
  98. package/x/demo/views/codebox/use-prism-styles.js.map +1 -0
  99. package/x/demo/views/codebox/view.d.ts +2 -0
  100. package/x/demo/views/codebox/view.js +29 -0
  101. package/x/demo/views/codebox/view.js.map +1 -0
  102. package/x/demo/views/showcase/style.css.js +79 -0
  103. package/x/demo/views/showcase/style.css.js.map +1 -0
  104. package/x/demo/views/showcase/view.d.ts +2 -0
  105. package/x/demo/views/showcase/view.js +44 -0
  106. package/x/demo/views/showcase/view.js.map +1 -0
  107. package/x/demo/views/stylebox/view.d.ts +3 -0
  108. package/x/demo/views/stylebox/view.js +13 -0
  109. package/x/demo/views/stylebox/view.js.map +1 -0
  110. package/x/icons/tabler/menu-2.svg.d.ts +2 -0
  111. package/x/icons/tabler/menu-2.svg.js +3 -0
  112. package/x/icons/tabler/menu-2.svg.js.map +1 -0
  113. package/x/icons/tabler/x.svg.d.ts +2 -0
  114. package/x/icons/tabler/x.svg.js +3 -0
  115. package/x/icons/tabler/x.svg.js.map +1 -0
  116. package/x/index.d.ts +6 -5
  117. package/x/index.html +212 -61
  118. package/x/index.html.js +40 -29
  119. package/x/index.html.js.map +1 -1
  120. package/x/index.js +6 -5
  121. package/x/index.js.map +1 -1
  122. package/x/test.js +3 -0
  123. package/x/test.js.map +1 -0
  124. package/x/theme/parts/core.d.ts +1 -0
  125. package/x/theme/parts/core.js +33 -0
  126. package/x/theme/parts/core.js.map +1 -0
  127. package/x/theme/parts/reset.d.ts +1 -0
  128. package/x/theme/parts/reset.js +19 -0
  129. package/x/theme/parts/reset.js.map +1 -0
  130. package/x/theme/parts/vars.d.ts +1 -0
  131. package/x/theme/parts/vars.js +34 -0
  132. package/x/theme/parts/vars.js.map +1 -0
  133. package/x/theme/theme-string.d.ts +1 -0
  134. package/x/theme/theme-string.js +14 -0
  135. package/x/theme/theme-string.js.map +1 -0
  136. package/x/theme/theme.css.d.ts +1 -0
  137. package/x/theme/theme.css.js +4 -0
  138. package/x/theme/theme.css.js.map +1 -0
  139. package/x/utils/states.d.ts +5 -0
  140. package/x/utils/states.js +13 -0
  141. package/x/utils/states.js.map +1 -0
  142. package/x/views/button/showcase.d.ts +1 -0
  143. package/x/views/button/showcase.js +41 -0
  144. package/x/views/button/showcase.js.map +1 -0
  145. package/x/views/button/style.css.js +109 -0
  146. package/x/views/button/style.css.js.map +1 -0
  147. package/x/views/button/view.d.ts +5 -0
  148. package/x/views/button/view.js +23 -0
  149. package/x/views/button/view.js.map +1 -0
  150. package/x/views/copy/parts/copy-status.d.ts +1 -0
  151. package/x/views/copy/parts/copy-status.js +2 -0
  152. package/x/views/copy/parts/copy-status.js.map +1 -0
  153. package/x/views/copy/parts/determine-base-status.d.ts +1 -0
  154. package/x/views/copy/parts/determine-base-status.js +6 -0
  155. package/x/views/copy/parts/determine-base-status.js.map +1 -0
  156. package/x/views/copy/parts/use-copier.d.ts +6 -0
  157. package/x/views/copy/parts/use-copier.js +13 -0
  158. package/x/views/copy/parts/use-copier.js.map +1 -0
  159. package/x/views/copy/showcase.d.ts +1 -0
  160. package/x/views/copy/showcase.js +51 -0
  161. package/x/views/copy/showcase.js.map +1 -0
  162. package/x/views/copy/style.css.d.ts +2 -0
  163. package/x/{ui → views}/copy/style.css.js +14 -9
  164. package/x/views/copy/style.css.js.map +1 -0
  165. package/x/views/copy/view.d.ts +4 -0
  166. package/x/views/copy/view.js +49 -0
  167. package/x/views/copy/view.js.map +1 -0
  168. package/x/views/drawer/control.d.ts +9 -0
  169. package/x/views/drawer/control.js +24 -0
  170. package/x/views/drawer/control.js.map +1 -0
  171. package/x/views/drawer/showcase.d.ts +1 -0
  172. package/x/views/drawer/showcase.js +75 -0
  173. package/x/views/drawer/showcase.js.map +1 -0
  174. package/x/views/drawer/style.css.d.ts +2 -0
  175. package/x/views/drawer/style.css.js +127 -0
  176. package/x/views/drawer/style.css.js.map +1 -0
  177. package/x/views/drawer/view.d.ts +6 -0
  178. package/x/views/drawer/view.js +60 -0
  179. package/x/views/drawer/view.js.map +1 -0
  180. package/x/views/tabs/control.d.ts +9 -0
  181. package/x/views/tabs/control.js +24 -0
  182. package/x/views/tabs/control.js.map +1 -0
  183. package/x/views/tabs/showcase.d.ts +1 -0
  184. package/x/views/tabs/showcase.js +86 -0
  185. package/x/views/tabs/showcase.js.map +1 -0
  186. package/x/views/tabs/style.css.d.ts +2 -0
  187. package/x/views/tabs/style.css.js +45 -0
  188. package/x/views/tabs/style.css.js.map +1 -0
  189. package/x/views/tabs/view.d.ts +5 -0
  190. package/x/views/tabs/view.js +52 -0
  191. package/x/views/tabs/view.js.map +1 -0
  192. package/s/demo/demo.bundle.ts +0 -42
  193. package/s/demo/views/demonstration/style.css.ts +0 -108
  194. package/s/demo/views/demonstration/view.ts +0 -49
  195. package/s/install.bundle.ts +0 -9
  196. package/s/themes/basic.css.ts +0 -18
  197. package/s/themes/index.barrel.ts +0 -3
  198. package/s/ui/raw-components.ts +0 -9
  199. package/x/demo/demo.bundle.js +0 -37
  200. package/x/demo/demo.bundle.js.map +0 -1
  201. package/x/demo/demo.bundle.min.js +0 -277
  202. package/x/demo/demo.bundle.min.js.map +0 -7
  203. package/x/demo/views/demonstration/style.css.js +0 -107
  204. package/x/demo/views/demonstration/style.css.js.map +0 -1
  205. package/x/demo/views/demonstration/view.d.ts +0 -10
  206. package/x/demo/views/demonstration/view.js +0 -36
  207. package/x/demo/views/demonstration/view.js.map +0 -1
  208. package/x/install.bundle.js +0 -5
  209. package/x/install.bundle.js.map +0 -1
  210. package/x/install.bundle.min.js +0 -135
  211. package/x/install.bundle.min.js.map +0 -7
  212. package/x/shiny.d.ts +0 -14
  213. package/x/shiny.js +0 -8
  214. package/x/shiny.js.map +0 -1
  215. package/x/tests.test.d.ts +0 -1
  216. package/x/tests.test.js +0 -3
  217. package/x/tests.test.js.map +0 -1
  218. package/x/themes/basic.css.d.ts +0 -1
  219. package/x/themes/basic.css.js +0 -17
  220. package/x/themes/basic.css.js.map +0 -1
  221. package/x/themes/index.barrel.d.ts +0 -1
  222. package/x/themes/index.barrel.js +0 -2
  223. package/x/themes/index.barrel.js.map +0 -1
  224. package/x/themes/index.d.ts +0 -1
  225. package/x/themes/index.js +0 -2
  226. package/x/themes/index.js.map +0 -1
  227. package/x/ui/copy/component.d.ts +0 -372
  228. package/x/ui/copy/component.js +0 -56
  229. package/x/ui/copy/component.js.map +0 -1
  230. package/x/ui/copy/style.css.js.map +0 -1
  231. package/x/ui/example/component.d.ts +0 -371
  232. package/x/ui/example/component.js +0 -20
  233. package/x/ui/example/component.js.map +0 -1
  234. package/x/ui/example/style.css.js +0 -10
  235. package/x/ui/example/style.css.js.map +0 -1
  236. package/x/ui/framework.d.ts +0 -8
  237. package/x/ui/framework.js +0 -6
  238. package/x/ui/framework.js.map +0 -1
  239. package/x/ui/raw-components.d.ts +0 -6
  240. package/x/ui/raw-components.js +0 -7
  241. package/x/ui/raw-components.js.map +0 -1
  242. /package/s/{tests.test.ts → _archive/tests.test.ts} +0 -0
  243. /package/x/demo/{demo.bundle.d.ts → main.bundle.d.ts} +0 -0
  244. /package/x/demo/views/{demonstration → codebox}/style.css.d.ts +0 -0
  245. /package/x/{ui/copy → demo/views/showcase}/style.css.d.ts +0 -0
  246. /package/x/{install.bundle.d.ts → test.d.ts} +0 -0
  247. /package/x/{ui/example → views/button}/style.css.d.ts +0 -0
@@ -0,0 +1,89 @@
1
+
2
+ import {css, html} from "lit"
3
+ import {ShinyTabs} from "./view.js"
4
+ import {ShinyButton} from "../button/view.js"
5
+ import {lipsum} from "../../demo/utils/lipsum.js"
6
+ import {exhibit} from "../../demo/parts/exhibit.js"
7
+ import {Showcase} from "../../demo/views/showcase/view.js"
8
+
9
+ export const tabsShowcase = () => Showcase("ShinyTabs", [
10
+ exhibit({
11
+ name: "shiny",
12
+ explain: "a button-bar of mutually-exclusive tabs. panels are optional.",
13
+ render: () => ShinyTabs.with({
14
+ props: [{snug: true}],
15
+ children: html`
16
+ ${ShinyButton("alpha")}
17
+ ${ShinyButton("bravo")}
18
+ ${ShinyButton("charlie")}
19
+ <p slot=panel>${lipsum.takeFirst()}</p>
20
+ <p slot=panel>${lipsum.takeFirst()}</p>
21
+ <p slot=panel>${lipsum.takeFirst()}</p>
22
+ `,
23
+ }),
24
+ styleboxCss: css`
25
+ [view="shiny-button"] { font-size: 1.2em; }
26
+ p { margin-top: var(--padding); }
27
+ `,
28
+ js: `
29
+ ShinyTabs.with({
30
+ props: [{snug: true}],
31
+ children: html\`
32
+ \${ShinyButton("alpha")}
33
+ \${ShinyButton("bravo")}
34
+ \${ShinyButton("charlie")}
35
+ <p slot=panel>lorem kettlebell..</p>
36
+ <p slot=panel>lorem protein..</p>
37
+ <p slot=panel>lorem caffeine..</p>
38
+ \`,
39
+ })
40
+ `,
41
+ css: css`
42
+ [view="shiny-tabs"] {
43
+ --shiny-rounded: 0.5em;
44
+ }
45
+ `,
46
+ }),
47
+
48
+ exhibit({
49
+ name: "plain",
50
+ explain: "a button-bar of mutually-exclusive tabs. panels are optional.",
51
+ render: () => ShinyTabs.with({
52
+ props: [{snug: true}],
53
+ children: html`
54
+ <button>alpha</button>
55
+ <button>bravo</button>
56
+ <button>charlie</button>
57
+ <p slot=panel>${lipsum.takeFirst()}</p>
58
+ <p slot=panel>${lipsum.takeFirst()}</p>
59
+ <p slot=panel>${lipsum.takeFirst()}</p>
60
+ `,
61
+ }),
62
+ styleboxCss: css`
63
+ p { margin-top: var(--padding); }
64
+ button {
65
+ font-size: 1.5em;
66
+ padding: calc(var(--padding) / 2);
67
+ }
68
+ `,
69
+ js: `
70
+ ShinyTabs.with({
71
+ props: [{snug: true}],
72
+ children: html\`
73
+ <button>alpha</button>
74
+ <button>bravo</button>
75
+ <button>charlie</button>
76
+ <p slot=panel>lorem kettlebell..</p>
77
+ <p slot=panel>lorem protein..</p>
78
+ <p slot=panel>lorem caffeine..</p>
79
+ \`,
80
+ })
81
+ `,
82
+ css: css`
83
+ [view="shiny-tabs"] {
84
+ --shiny-rounded: 0.5em;
85
+ }
86
+ `,
87
+ }),
88
+ ])
89
+
@@ -0,0 +1,46 @@
1
+
2
+ import {css} from "lit"
3
+ export default css`@layer view {
4
+
5
+ :host {
6
+ display: inline-flex;
7
+ flex-direction: column;
8
+ }
9
+
10
+ slot[part="tabs"] {
11
+ display: flex;
12
+ flex-wrap: wrap;
13
+
14
+ &::slotted([data-tabbed]) {
15
+ opacity: 1;
16
+ color: currentColor;
17
+ text-decoration: underline;
18
+ }
19
+ }
20
+
21
+ slot[part="tabs"][data-snug] {
22
+ &::slotted(*) {
23
+ border-radius: var(--rounded);
24
+ }
25
+
26
+ &::slotted(:not([data-last], [data-next-is-tabbed])) {
27
+ border-right: none;
28
+ }
29
+
30
+ &::slotted([data-tabbed]:not([data-first])) {
31
+ border-left: none;
32
+ }
33
+
34
+ &::slotted(:not([data-last])) {
35
+ border-top-right-radius: 0;
36
+ border-bottom-right-radius: 0;
37
+ }
38
+
39
+ &::slotted(:not([data-first])) {
40
+ border-top-left-radius: 0;
41
+ border-bottom-left-radius: 0;
42
+ }
43
+ }
44
+
45
+ } `
46
+
@@ -0,0 +1,66 @@
1
+
2
+ import {html} from "lit"
3
+ import {dom, shadow, useHost, useName, useOnce, useSignal, useStyles} from "@e280/sly"
4
+ import styleCss from "./style.css.js"
5
+ import {TabsControl} from "./control.js"
6
+ import {themeCss} from "../../theme/theme.css.js"
7
+
8
+ export const ShinyTabs = shadow((options: {
9
+ snug?: boolean
10
+ control?: TabsControl
11
+ } = {}) => {
12
+
13
+ useName("shiny-tabs")
14
+ useStyles(themeCss, styleCss)
15
+
16
+ const host = useHost()
17
+ const attrs = useOnce(() => dom.attrs(host).spec({index: Number}))
18
+ const control = useOnce(() => options.control ?? new TabsControl(attrs.index ?? 0))
19
+
20
+ const $tabs = useSignal<HTMLElement[]>([])
21
+ const $panels = useSignal<HTMLElement[]>([])
22
+
23
+ async function tabchange(event: Event) {
24
+ const slot = event.currentTarget! as HTMLSlotElement
25
+ await $tabs.set(slot.assignedElements() as HTMLElement[])
26
+ }
27
+
28
+ async function panelchange(event: Event) {
29
+ const slot = event.currentTarget! as HTMLSlotElement
30
+ await $panels.set(slot.assignedElements() as HTMLElement[])
31
+ }
32
+
33
+ attrs.index = control.$index()
34
+ control.length = $tabs().length
35
+
36
+ function isNeighborActive(index: number, delta: number) {
37
+ const nextIndex = control.clamp(index + delta)
38
+ if (nextIndex === index) return false
39
+ return (nextIndex === control.index)
40
+ }
41
+
42
+ for (const [index, tab] of $tabs().entries()) {
43
+ const tabbed = (index === control.index)
44
+ const tabAttrs = dom.attrs(tab)
45
+ tabAttrs.booleans.disabled = tabbed
46
+ tabAttrs.booleans["data-snug"] = options.snug
47
+ tabAttrs.booleans["data-tabbed"] = tabbed
48
+ tabAttrs.booleans["data-first"] = (index === 0)
49
+ tabAttrs.booleans["data-last"] = (index === (control.length - 1))
50
+ tabAttrs.booleans["data-next-is-tabbed"] = isNeighborActive(index, 1)
51
+ tabAttrs.booleans["data-previous-is-tabbed"] = isNeighborActive(index, -1)
52
+ tab.onclick = () => control.setIndex(index)
53
+ }
54
+
55
+ for (const [index, panel] of $panels().entries()) {
56
+ const tabbed = (index === control.index)
57
+ dom.attrs(panel).booleans["data-tabbed"] = tabbed
58
+ dom.attrs(panel).booleans["hidden"] = !tabbed
59
+ }
60
+
61
+ return html`
62
+ <slot part=tabs ?data-snug="${options.snug}" @slotchange="${tabchange}"></slot>
63
+ <slot part=panels name=panel @slotchange="${panelchange}"></slot>
64
+ `
65
+ })
66
+
@@ -6,6 +6,7 @@
6
6
  --bg: #333;
7
7
  --color: #fff;
8
8
  --prime: #d068ff;
9
+ --code: #3f1;
9
10
  --link: cyan;
10
11
 
11
12
  --selection: white;
@@ -0,0 +1,13 @@
1
+ import { dom } from "@e280/sly";
2
+ import { copyShowcase } from "../views/copy/showcase.js";
3
+ import { tabsShowcase } from "../views/tabs/showcase.js";
4
+ import { buttonShowcase } from "../views/button/showcase.js";
5
+ import { drawerShowcase } from "../views/drawer/showcase.js";
6
+ dom.render(dom(".gallery"), [
7
+ buttonShowcase(),
8
+ copyShowcase(),
9
+ tabsShowcase(),
10
+ drawerShowcase(),
11
+ ]);
12
+ console.log("✨shiny✨");
13
+ //# sourceMappingURL=main.bundle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.bundle.js","sourceRoot":"","sources":["../../s/demo/main.bundle.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,GAAG,EAAC,MAAM,WAAW,CAAA;AAC7B,OAAO,EAAC,YAAY,EAAC,MAAM,2BAA2B,CAAA;AACtD,OAAO,EAAC,YAAY,EAAC,MAAM,2BAA2B,CAAA;AACtD,OAAO,EAAC,cAAc,EAAC,MAAM,6BAA6B,CAAA;AAC1D,OAAO,EAAC,cAAc,EAAC,MAAM,6BAA6B,CAAA;AAE1D,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;IAC3B,cAAc,EAAE;IAChB,YAAY,EAAE;IACd,YAAY,EAAE;IACd,cAAc,EAAE;CAChB,CAAC,CAAA;AAEF,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA"}