@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,60 @@
1
+ import { html } from "lit";
2
+ import { dom, shadow, useAttrs, useCss, useHost, useMount, useName, useOnce } from "@e280/sly";
3
+ import styleCss from "./style.css.js";
4
+ import { themeCss } from "../../theme/theme.css.js";
5
+ import { DrawerControl } from "./control.js";
6
+ import { States } from "../../utils/states.js";
7
+ import xSvg from "../../icons/tabler/x.svg.js";
8
+ import menu2Svg from "../../icons/tabler/menu-2.svg.js";
9
+ export const ShinyDrawer = shadow((options = {}) => {
10
+ useName("shiny-drawer");
11
+ useCss(themeCss, styleCss);
12
+ const host = useHost();
13
+ const states = useOnce(() => new States(host));
14
+ const control = useOnce(() => (options.control ?? new DrawerControl()));
15
+ const attrs = useAttrs({
16
+ side: String,
17
+ button: Boolean,
18
+ open: Boolean,
19
+ });
20
+ attrs.open = control.isOpen;
21
+ const button = options.button ?? attrs.button;
22
+ const side = options.side ?? (attrs.side === "right" ? "right" : "left");
23
+ states.assign(side, control.isOpen ? "opened" : "closed");
24
+ useMount(() => dom.events(window, { keydown: (event) => {
25
+ if (event.code === "Escape")
26
+ control.close();
27
+ } }));
28
+ function renderButton() {
29
+ return html `
30
+ <button part=button @click="${control.toggle}">
31
+ ${control.isOpen
32
+ ? html `
33
+ <slot name=button-x>
34
+ ${xSvg}
35
+ </slot>
36
+ `
37
+ : html `
38
+ <slot name=button>
39
+ ${menu2Svg}
40
+ </slot>
41
+ `}
42
+ </button>
43
+ `;
44
+ }
45
+ return html `
46
+ <div class=shell ?data-open="${control.isOpen}" data-side="${side}">
47
+ <slot name=plate ?inert="${control.isOpen}"></slot>
48
+
49
+ <div class=clipper>
50
+ <div part=blanket @click="${control.close}" ?inert="${!control.isOpen}"></div>
51
+
52
+ <div part=tray>
53
+ <slot part=slate ?inert="${!control.isOpen}"></slot>
54
+ ${button ? renderButton() : null}
55
+ </div>
56
+ </div>
57
+ </div>
58
+ `;
59
+ });
60
+ //# sourceMappingURL=view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view.js","sourceRoot":"","sources":["../../../s/views/drawer/view.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,IAAI,EAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAC,MAAM,WAAW,CAAA;AAE5F,OAAO,QAAQ,MAAM,gBAAgB,CAAA;AAErC,OAAO,EAAC,QAAQ,EAAC,MAAM,0BAA0B,CAAA;AACjD,OAAO,EAAC,aAAa,EAAC,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAC,MAAM,EAAC,MAAM,uBAAuB,CAAA;AAC5C,OAAO,IAAI,MAAM,6BAA6B,CAAA;AAC9C,OAAO,QAAQ,MAAM,kCAAkC,CAAA;AAEvD,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,UAI9B,EAAE,EAAE,EAAE;IAEV,OAAO,CAAC,cAAc,CAAC,CAAA;IACvB,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAE1B,MAAM,IAAI,GAAG,OAAO,EAAE,CAAA;IACtB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;IAC9C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,aAAa,EAAE,CAAC,CAAC,CAAA;IAEvE,MAAM,KAAK,GAAG,QAAQ,CAAC;QACtB,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,OAAO;QACf,IAAI,EAAE,OAAO;KACb,CAAC,CAAA;IAEF,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAA;IAE3B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAA;IAC7C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;IACxE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;IAEzD,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,EAAC,OAAO,EAAE,CAAC,KAAoB,EAAE,EAAE;YACpE,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;gBAC1B,OAAO,CAAC,KAAK,EAAE,CAAA;QACjB,CAAC,EAAC,CAAC,CAAC,CAAA;IAEJ,SAAS,YAAY;QACpB,OAAO,IAAI,CAAA;iCACoB,OAAO,CAAC,MAAM;MACzC,OAAO,CAAC,MAAM;YACf,CAAC,CAAC,IAAI,CAAA;;SAEF,IAAI;;MAEP;YACD,CAAC,CAAC,IAAI,CAAA;;SAEF,QAAQ;;MAEX;;GAEH,CAAA;IACF,CAAC;IAED,OAAO,IAAI,CAAA;iCACqB,OAAO,CAAC,MAAM,gBAAgB,IAAI;8BACrC,OAAO,CAAC,MAAM;;;gCAGZ,OAAO,CAAC,KAAK,aAAa,CAAC,OAAO,CAAC,MAAM;;;gCAGzC,CAAC,OAAO,CAAC,MAAM;OACxC,MAAM,CAAC,CAAC,CAAA,YAAY,EAAE,CAAC,CAAC,CAAA,IAAI;;;;EAIjC,CAAA;AACF,CAAC,CAAC,CAAA"}
@@ -0,0 +1,9 @@
1
+ export declare class TabsControl {
2
+ length: number;
3
+ $index: import("@e280/strata").Signal<number>;
4
+ constructor(start?: number);
5
+ clamp(index: number): number;
6
+ get index(): number;
7
+ setIndex(index: number): Promise<number>;
8
+ shimmy(delta: number): Promise<number>;
9
+ }
@@ -0,0 +1,24 @@
1
+ import { signal } from "@e280/strata";
2
+ export class TabsControl {
3
+ length = 1;
4
+ $index = signal(0);
5
+ constructor(start = 0) {
6
+ this.$index.value = start;
7
+ }
8
+ clamp(index) {
9
+ index = Math.min(index, this.length - 1);
10
+ index = Math.max(index, 0);
11
+ return index;
12
+ }
13
+ get index() {
14
+ return this.clamp(this.$index());
15
+ }
16
+ async setIndex(index) {
17
+ return this.$index(index);
18
+ }
19
+ async shimmy(delta) {
20
+ const index = this.clamp(this.index + delta);
21
+ return this.setIndex(index);
22
+ }
23
+ }
24
+ //# sourceMappingURL=control.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"control.js","sourceRoot":"","sources":["../../../s/views/tabs/control.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAA;AAEnC,MAAM,OAAO,WAAW;IACvB,MAAM,GAAG,CAAC,CAAA;IACV,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;IAElB,YAAY,KAAK,GAAG,CAAC;QACpB,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAA;IAC1B,CAAC;IAED,KAAK,CAAC,KAAa;QAClB,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QACxC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;QAC1B,OAAO,KAAK,CAAA;IACb,CAAC;IAED,IAAI,KAAK;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;IACjC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,KAAa;QAC3B,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC1B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAa;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,CAAA;QAC5C,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC5B,CAAC;CACD"}
@@ -0,0 +1 @@
1
+ export declare const tabsShowcase: () => import("@e280/sly").Content;
@@ -0,0 +1,86 @@
1
+ import { css, html } from "lit";
2
+ import { ShinyTabs } from "./view.js";
3
+ import { ShinyButton } from "../button/view.js";
4
+ import { lipsum } from "../../demo/utils/lipsum.js";
5
+ import { exhibit } from "../../demo/parts/exhibit.js";
6
+ import { Showcase } from "../../demo/views/showcase/view.js";
7
+ export const tabsShowcase = () => Showcase("ShinyTabs", [
8
+ exhibit({
9
+ name: "shiny",
10
+ explain: "a button-bar of mutually-exclusive tabs. panels are optional.",
11
+ render: () => ShinyTabs.with({
12
+ props: [{ snug: true }],
13
+ children: html `
14
+ ${ShinyButton("alpha")}
15
+ ${ShinyButton("bravo")}
16
+ ${ShinyButton("charlie")}
17
+ <p slot=panel>${lipsum.takeFirst()}</p>
18
+ <p slot=panel>${lipsum.takeFirst()}</p>
19
+ <p slot=panel>${lipsum.takeFirst()}</p>
20
+ `,
21
+ }),
22
+ styleboxCss: css `
23
+ [view="shiny-button"] { font-size: 1.2em; }
24
+ p { margin-top: var(--padding); }
25
+ `,
26
+ js: `
27
+ ShinyTabs.with({
28
+ props: [{snug: true}],
29
+ children: html\`
30
+ \${ShinyButton("alpha")}
31
+ \${ShinyButton("bravo")}
32
+ \${ShinyButton("charlie")}
33
+ <p slot=panel>lorem kettlebell..</p>
34
+ <p slot=panel>lorem protein..</p>
35
+ <p slot=panel>lorem caffeine..</p>
36
+ \`,
37
+ })
38
+ `,
39
+ css: css `
40
+ [view="shiny-tabs"] {
41
+ --shiny-rounded: 0.5em;
42
+ }
43
+ `,
44
+ }),
45
+ exhibit({
46
+ name: "plain",
47
+ explain: "a button-bar of mutually-exclusive tabs. panels are optional.",
48
+ render: () => ShinyTabs.with({
49
+ props: [{ snug: true }],
50
+ children: html `
51
+ <button>alpha</button>
52
+ <button>bravo</button>
53
+ <button>charlie</button>
54
+ <p slot=panel>${lipsum.takeFirst()}</p>
55
+ <p slot=panel>${lipsum.takeFirst()}</p>
56
+ <p slot=panel>${lipsum.takeFirst()}</p>
57
+ `,
58
+ }),
59
+ styleboxCss: css `
60
+ p { margin-top: var(--padding); }
61
+ button {
62
+ font-size: 1.5em;
63
+ padding: calc(var(--padding) / 2);
64
+ }
65
+ `,
66
+ js: `
67
+ ShinyTabs.with({
68
+ props: [{snug: true}],
69
+ children: html\`
70
+ <button>alpha</button>
71
+ <button>bravo</button>
72
+ <button>charlie</button>
73
+ <p slot=panel>lorem kettlebell..</p>
74
+ <p slot=panel>lorem protein..</p>
75
+ <p slot=panel>lorem caffeine..</p>
76
+ \`,
77
+ })
78
+ `,
79
+ css: css `
80
+ [view="shiny-tabs"] {
81
+ --shiny-rounded: 0.5em;
82
+ }
83
+ `,
84
+ }),
85
+ ]);
86
+ //# sourceMappingURL=showcase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"showcase.js","sourceRoot":"","sources":["../../../s/views/tabs/showcase.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,GAAG,EAAE,IAAI,EAAC,MAAM,KAAK,CAAA;AAC7B,OAAO,EAAC,SAAS,EAAC,MAAM,WAAW,CAAA;AACnC,OAAO,EAAC,WAAW,EAAC,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAC,MAAM,EAAC,MAAM,4BAA4B,CAAA;AACjD,OAAO,EAAC,OAAO,EAAC,MAAM,6BAA6B,CAAA;AACnD,OAAO,EAAC,QAAQ,EAAC,MAAM,mCAAmC,CAAA;AAE1D,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE;IACvD,OAAO,CAAC;QACP,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,+DAA+D;QACxE,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC;YAC5B,KAAK,EAAE,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC;YACrB,QAAQ,EAAE,IAAI,CAAA;MACX,WAAW,CAAC,OAAO,CAAC;MACpB,WAAW,CAAC,OAAO,CAAC;MACpB,WAAW,CAAC,SAAS,CAAC;oBACR,MAAM,CAAC,SAAS,EAAE;oBAClB,MAAM,CAAC,SAAS,EAAE;oBAClB,MAAM,CAAC,SAAS,EAAE;IAClC;SACD,CAAC;QACF,WAAW,EAAE,GAAG,CAAA;;;GAGf;QACD,EAAE,EAAE;;;;;;;;;;;;GAYH;QACD,GAAG,EAAE,GAAG,CAAA;;;;GAIP;KACD,CAAC;IAEF,OAAO,CAAC;QACP,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,+DAA+D;QACxE,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC;YAC5B,KAAK,EAAE,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC;YACrB,QAAQ,EAAE,IAAI,CAAA;;;;oBAIG,MAAM,CAAC,SAAS,EAAE;oBAClB,MAAM,CAAC,SAAS,EAAE;oBAClB,MAAM,CAAC,SAAS,EAAE;IAClC;SACD,CAAC;QACF,WAAW,EAAE,GAAG,CAAA;;;;;;GAMf;QACD,EAAE,EAAE;;;;;;;;;;;;GAYH;QACD,GAAG,EAAE,GAAG,CAAA;;;;GAIP;KACD,CAAC;CACF,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ declare const _default: import("lit").CSSResult;
2
+ export default _default;
@@ -0,0 +1,45 @@
1
+ import { css } from "lit";
2
+ export default css `@layer view {
3
+
4
+ :host {
5
+ display: inline-flex;
6
+ flex-direction: column;
7
+ }
8
+
9
+ slot[part="tabs"] {
10
+ display: flex;
11
+ flex-wrap: wrap;
12
+
13
+ &::slotted([data-tabbed]) {
14
+ opacity: 1;
15
+ color: currentColor;
16
+ text-decoration: underline;
17
+ }
18
+ }
19
+
20
+ slot[part="tabs"][data-snug] {
21
+ &::slotted(*) {
22
+ border-radius: var(--rounded);
23
+ }
24
+
25
+ &::slotted(:not([data-last], [data-next-is-tabbed])) {
26
+ border-right: none;
27
+ }
28
+
29
+ &::slotted([data-tabbed]:not([data-first])) {
30
+ border-left: none;
31
+ }
32
+
33
+ &::slotted(:not([data-last])) {
34
+ border-top-right-radius: 0;
35
+ border-bottom-right-radius: 0;
36
+ }
37
+
38
+ &::slotted(:not([data-first])) {
39
+ border-top-left-radius: 0;
40
+ border-bottom-left-radius: 0;
41
+ }
42
+ }
43
+
44
+ } `;
45
+ //# sourceMappingURL=style.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"style.css.js","sourceRoot":"","sources":["../../../s/views/tabs/style.css.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAA;AACvB,eAAe,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0Cf,CAAA"}
@@ -0,0 +1,5 @@
1
+ import { TabsControl } from "./control.js";
2
+ export declare const ShinyTabs: import("@e280/sly").ShadowView<[options?: {
3
+ snug?: boolean;
4
+ control?: TabsControl;
5
+ } | undefined]>;
@@ -0,0 +1,52 @@
1
+ import { html } from "lit";
2
+ import { dom, shadow, useHost, useName, useOnce, useSignal, useStyles } from "@e280/sly";
3
+ import styleCss from "./style.css.js";
4
+ import { TabsControl } from "./control.js";
5
+ import { themeCss } from "../../theme/theme.css.js";
6
+ export const ShinyTabs = shadow((options = {}) => {
7
+ useName("shiny-tabs");
8
+ useStyles(themeCss, styleCss);
9
+ const host = useHost();
10
+ const attrs = useOnce(() => dom.attrs(host).spec({ index: Number }));
11
+ const control = useOnce(() => options.control ?? new TabsControl(attrs.index ?? 0));
12
+ const $tabs = useSignal([]);
13
+ const $panels = useSignal([]);
14
+ async function tabchange(event) {
15
+ const slot = event.currentTarget;
16
+ await $tabs.set(slot.assignedElements());
17
+ }
18
+ async function panelchange(event) {
19
+ const slot = event.currentTarget;
20
+ await $panels.set(slot.assignedElements());
21
+ }
22
+ attrs.index = control.$index();
23
+ control.length = $tabs().length;
24
+ function isNeighborActive(index, delta) {
25
+ const nextIndex = control.clamp(index + delta);
26
+ if (nextIndex === index)
27
+ return false;
28
+ return (nextIndex === control.index);
29
+ }
30
+ for (const [index, tab] of $tabs().entries()) {
31
+ const tabbed = (index === control.index);
32
+ const tabAttrs = dom.attrs(tab);
33
+ tabAttrs.booleans.disabled = tabbed;
34
+ tabAttrs.booleans["data-snug"] = options.snug;
35
+ tabAttrs.booleans["data-tabbed"] = tabbed;
36
+ tabAttrs.booleans["data-first"] = (index === 0);
37
+ tabAttrs.booleans["data-last"] = (index === (control.length - 1));
38
+ tabAttrs.booleans["data-next-is-tabbed"] = isNeighborActive(index, 1);
39
+ tabAttrs.booleans["data-previous-is-tabbed"] = isNeighborActive(index, -1);
40
+ tab.onclick = () => control.setIndex(index);
41
+ }
42
+ for (const [index, panel] of $panels().entries()) {
43
+ const tabbed = (index === control.index);
44
+ dom.attrs(panel).booleans["data-tabbed"] = tabbed;
45
+ dom.attrs(panel).booleans["hidden"] = !tabbed;
46
+ }
47
+ return html `
48
+ <slot part=tabs ?data-snug="${options.snug}" @slotchange="${tabchange}"></slot>
49
+ <slot part=panels name=panel @slotchange="${panelchange}"></slot>
50
+ `;
51
+ });
52
+ //# sourceMappingURL=view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view.js","sourceRoot":"","sources":["../../../s/views/tabs/view.ts"],"names":[],"mappings":"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"}
@@ -1,42 +0,0 @@
1
-
2
- import {css, html} from "lit"
3
- import {dom, view} from "@e280/sly"
4
- import {shiny} from "../shiny.js"
5
- import {basic} from "../themes/basic.css.js"
6
- import {Demonstration} from "./views/demonstration/view.js"
7
-
8
- const {views} = shiny({theme: basic})
9
-
10
- dom.register({ShinyDemo: view.component(use => {
11
- use.styles(css`
12
- :host {
13
- display: flex;
14
- flex-direction: column;
15
- gap: 1em;
16
- }
17
-
18
- [view="shiny-copy"]::part(content) {
19
- font-size: 4em;
20
- }
21
- `)
22
-
23
- return [
24
- Demonstration({
25
- views,
26
- name: "shiny-copy",
27
- explain: html`
28
- <p>button for click-to-copy text</p>
29
- `,
30
- exampleComponent: `
31
- <shiny-copy text="hello world"></shiny-copy>
32
- `,
33
- exampleView: `
34
- ShinyCopy("hello world")
35
- `,
36
- content: views.ShinyCopy("hello world"),
37
- }),
38
- ]
39
- })})
40
-
41
- console.log("✨shiny")
42
-
@@ -1,108 +0,0 @@
1
-
2
- import {css} from "lit"
3
- export default css`
4
-
5
- :host {
6
- position: relative;
7
-
8
- display: flex;
9
- flex-wrap: wrap;
10
-
11
- padding: 1em;
12
- border-radius: 0.5em;
13
- gap: 1em;
14
-
15
- background: linear-gradient(to right top, #252dd985, #aa6affbd);
16
- backdrop-filter: blur(0.5em);
17
-
18
- box-shadow: 0 0 5em #5d1fadaa;
19
- border-top: 2px solid #fff4;
20
-
21
- &::before {
22
- content: "";
23
- display: block;
24
- position: absolute;
25
- inset: 0;
26
- border-radius: 0.5em;
27
- background: #0007;
28
- width: calc(100% - 0.3em);
29
- height: calc(100% - 0.3em);
30
- margin: auto;
31
- z-index: 0;
32
- }
33
-
34
- > * {
35
- position: relative;
36
- z-index: 1;
37
- }
38
- }
39
-
40
- .meta {
41
- flex: 1 1 10em;
42
- display: flex;
43
- flex-direction: column;
44
- gap: 0.5em;
45
-
46
- h2 {
47
- color: var(--prime);
48
- }
49
-
50
- .codes {
51
- display: flex;
52
- flex-direction: column;
53
- gap: 0.2em;
54
- }
55
-
56
- .codeblock {
57
- display: flex;
58
- background: #0002;
59
- border-radius: 0.3em;
60
- border-bottom: 1px solid #fff2;
61
- box-shadow: inset 0.2em 0.3em 2em #0004;
62
-
63
- .zone {
64
- flex: 1 1 auto;
65
- display: flex;
66
- flex-direction: column;
67
- padding: 0.5em;
68
-
69
- h3 {
70
- opacity: 0.4;
71
- font-size: 0.7em;
72
- font-weight: normal;
73
- font-style: italic;
74
- }
75
-
76
- code {
77
- display: block;
78
- white-space: pre;
79
- text-wrap: wrap;
80
- tab-size: 2;
81
-
82
- font-size: 0.8em;
83
- font-family: monospace;
84
- color: #8f8;
85
- }
86
- }
87
-
88
- [view="shiny-copy"] {
89
- flex: 0 0 0;
90
- padding: 0.2em;
91
- }
92
- }
93
- }
94
-
95
- .content {
96
- flex: 1 1 10rem;
97
- display: flex;
98
- flex-direction: column;
99
- justify-content: center;
100
- align-items: center;
101
-
102
- padding: 1rem;
103
- border-radius: 0.5rem;
104
- border: 1px dashed #fff4;
105
- }
106
-
107
- `
108
-
@@ -1,49 +0,0 @@
1
-
2
- import {html} from "lit"
3
- import {untab} from "@e280/stz"
4
- import {Content, view} from "@e280/sly"
5
- import styleCss from "./style.css.js"
6
- import {ShinyViews} from "../../../shiny.js"
7
- import {basic} from "../../../themes/basic.css.js"
8
-
9
- export const Demonstration = view(use => (options: {
10
- name: string
11
- explain: Content
12
- views: ShinyViews
13
- exampleComponent: string
14
- exampleView: string
15
- content: Content
16
- }) => {
17
-
18
- use.name(options.name)
19
- use.styles(basic, styleCss)
20
-
21
- function codeblock(heading: string, code: string) {
22
- const cleanCode = untab(code).trim()
23
- return html`
24
- <div class=codeblock>
25
- <div class=zone>
26
- <h3>${heading}</h3>
27
- <code>${cleanCode}</code>
28
- </div>
29
- ${options.views.ShinyCopy(cleanCode)}
30
- </div>
31
- `
32
- }
33
-
34
- return html`
35
- <div class=meta>
36
- <h2>✨ ${options.name}</h2>
37
- <div class=explain>${options.explain}</div>
38
- <div class=codes>
39
- ${codeblock("html web component", options.exampleComponent)}
40
- ${codeblock("sly view", options.exampleView)}
41
- </div>
42
- </div>
43
-
44
- <div class=content part=content>
45
- ${options.content}
46
- </div>
47
- `
48
- })
49
-
@@ -1,9 +0,0 @@
1
-
2
- import {dom} from "@e280/sly"
3
- import {shiny} from "./shiny.js"
4
- import {basic} from "./themes/basic.css.js"
5
-
6
- dom.register(
7
- shiny({theme: basic}).components
8
- )
9
-
@@ -1,18 +0,0 @@
1
-
2
- import {css} from "lit"
3
- import {cssReset} from "@e280/sly"
4
- export const basic = css`
5
-
6
- ${cssReset}
7
-
8
- :host {
9
- display: block;
10
- --bg: var(--shiny-bg, #111);
11
- --alpha: var(--shiny-alpha, #afa);
12
- --good: var(--shiny-good, #0f4);
13
- --bad: var(--shiny-bad, #f40);
14
- --invalid: var(--shiny-invalid, #8888);
15
- }
16
-
17
- `
18
-
@@ -1,3 +0,0 @@
1
-
2
- export * from "./basic.css.js"
3
-
@@ -1,9 +0,0 @@
1
-
2
- import {ShinyCopy} from "./copy/component.js"
3
- import {ShinyExample} from "./example/component.js"
4
-
5
- export const rawComponents = {
6
- ShinyCopy,
7
- ShinyExample,
8
- }
9
-
@@ -1,37 +0,0 @@
1
- import { css, html } from "lit";
2
- import { dom, view } from "@e280/sly";
3
- import { shiny } from "../shiny.js";
4
- import { basic } from "../themes/basic.css.js";
5
- import { Demonstration } from "./views/demonstration/view.js";
6
- const { views } = shiny({ theme: basic });
7
- dom.register({ ShinyDemo: view.component(use => {
8
- use.styles(css `
9
- :host {
10
- display: flex;
11
- flex-direction: column;
12
- gap: 1em;
13
- }
14
-
15
- [view="shiny-copy"]::part(content) {
16
- font-size: 4em;
17
- }
18
- `);
19
- return [
20
- Demonstration({
21
- views,
22
- name: "shiny-copy",
23
- explain: html `
24
- <p>button for click-to-copy text</p>
25
- `,
26
- exampleComponent: `
27
- <shiny-copy text="hello world"></shiny-copy>
28
- `,
29
- exampleView: `
30
- ShinyCopy("hello world")
31
- `,
32
- content: views.ShinyCopy("hello world"),
33
- }),
34
- ];
35
- }) });
36
- console.log("✨shiny");
37
- //# sourceMappingURL=demo.bundle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"demo.bundle.js","sourceRoot":"","sources":["../../s/demo/demo.bundle.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,GAAG,EAAE,IAAI,EAAC,MAAM,KAAK,CAAA;AAC7B,OAAO,EAAC,GAAG,EAAE,IAAI,EAAC,MAAM,WAAW,CAAA;AACnC,OAAO,EAAC,KAAK,EAAC,MAAM,aAAa,CAAA;AACjC,OAAO,EAAC,KAAK,EAAC,MAAM,wBAAwB,CAAA;AAC5C,OAAO,EAAC,aAAa,EAAC,MAAM,+BAA+B,CAAA;AAE3D,MAAM,EAAC,KAAK,EAAC,GAAG,KAAK,CAAC,EAAC,KAAK,EAAE,KAAK,EAAC,CAAC,CAAA;AAErC,GAAG,CAAC,QAAQ,CAAC,EAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;QAC7C,GAAG,CAAC,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;EAUb,CAAC,CAAA;QAEF,OAAO;YACN,aAAa,CAAC;gBACb,KAAK;gBACL,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE,IAAI,CAAA;;IAEZ;gBACD,gBAAgB,EAAE;;IAEjB;gBACD,WAAW,EAAE;;IAEZ;gBACD,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC;aACvC,CAAC;SACF,CAAA;IACF,CAAC,CAAC,EAAC,CAAC,CAAA;AAEJ,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA"}