@e280/shiny 0.1.0-1 → 0.1.0-10

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 (154) hide show
  1. package/README.md +110 -3
  2. package/package.json +3 -3
  3. package/s/{ui → components}/copy/component.ts +11 -6
  4. package/s/{ui → components}/copy/style.css.ts +6 -6
  5. package/s/components/drawer/component.ts +92 -0
  6. package/s/components/drawer/control.ts +31 -0
  7. package/s/components/drawer/style.css.ts +120 -0
  8. package/s/{ui → components}/example/component.ts +7 -5
  9. package/s/{ui → components}/example/style.css.ts +2 -2
  10. package/s/components/foundation.css.ts +15 -0
  11. package/s/components/framework.ts +10 -0
  12. package/s/components/raw-components.ts +13 -0
  13. package/s/components/tabs/component.ts +59 -0
  14. package/s/components/tabs/control.ts +31 -0
  15. package/s/components/tabs/style.css.ts +6 -0
  16. package/s/demo/aura-views.ts +6 -0
  17. package/s/demo/demo.bundle.ts +204 -14
  18. package/s/demo/demo.css +3 -1
  19. package/s/demo/utils/lipsum.ts +19 -0
  20. package/s/demo/views/demonstration/style.css.ts +10 -2
  21. package/s/demo/views/demonstration/view.ts +18 -14
  22. package/s/icons/tabler/menu-2.svg.ts +4 -0
  23. package/s/icons/tabler/x.svg.ts +4 -0
  24. package/s/index.html.ts +2 -2
  25. package/s/index.ts +16 -4
  26. package/s/install/aura.bundle.ts +9 -0
  27. package/s/install/plain.bundle.ts +9 -0
  28. package/s/shiny.ts +15 -0
  29. package/s/themes/aura.css.ts +48 -0
  30. package/s/themes/index.barrel.ts +2 -1
  31. package/s/themes/index.ts +1 -0
  32. package/s/themes/infra/css-vars.ts +33 -0
  33. package/s/themes/plain.css.ts +12 -0
  34. package/s/utils/states.ts +15 -0
  35. package/x/{ui → components}/copy/component.d.ts +8 -4
  36. package/x/{ui → components}/copy/component.js +10 -5
  37. package/x/components/copy/component.js.map +1 -0
  38. package/x/{ui → components}/copy/style.css.js +6 -6
  39. package/x/components/copy/style.css.js.map +1 -0
  40. package/x/components/drawer/component.d.ts +387 -0
  41. package/x/components/drawer/component.js +76 -0
  42. package/x/components/drawer/component.js.map +1 -0
  43. package/x/components/drawer/control.d.ts +9 -0
  44. package/x/components/drawer/control.js +24 -0
  45. package/x/components/drawer/control.js.map +1 -0
  46. package/x/components/drawer/style.css.js +119 -0
  47. package/x/components/drawer/style.css.js.map +1 -0
  48. package/x/{ui → components}/example/component.d.ts +3 -3
  49. package/x/{ui → components}/example/component.js +6 -4
  50. package/x/components/example/component.js.map +1 -0
  51. package/x/components/example/style.css.d.ts +2 -0
  52. package/x/components/example/style.css.js +10 -0
  53. package/x/components/example/style.css.js.map +1 -0
  54. package/x/components/foundation.css.d.ts +1 -0
  55. package/x/components/foundation.css.js +14 -0
  56. package/x/components/foundation.css.js.map +1 -0
  57. package/x/components/framework.d.ts +8 -0
  58. package/x/components/framework.js +5 -0
  59. package/x/components/framework.js.map +1 -0
  60. package/x/components/raw-components.d.ts +10 -0
  61. package/x/components/raw-components.js +11 -0
  62. package/x/components/raw-components.js.map +1 -0
  63. package/x/components/tabs/component.d.ts +374 -0
  64. package/x/components/tabs/component.js +49 -0
  65. package/x/components/tabs/component.js.map +1 -0
  66. package/x/components/tabs/control.d.ts +9 -0
  67. package/x/components/tabs/control.js +24 -0
  68. package/x/components/tabs/control.js.map +1 -0
  69. package/x/components/tabs/style.css.d.ts +2 -0
  70. package/x/components/tabs/style.css.js +5 -0
  71. package/x/components/tabs/style.css.js.map +1 -0
  72. package/x/demo/aura-views.d.ts +14 -0
  73. package/x/demo/aura-views.js +4 -0
  74. package/x/demo/aura-views.js.map +1 -0
  75. package/x/demo/demo.bundle.js +198 -14
  76. package/x/demo/demo.bundle.js.map +1 -1
  77. package/x/demo/demo.bundle.min.js +383 -48
  78. package/x/demo/demo.bundle.min.js.map +4 -4
  79. package/x/demo/demo.css +3 -1
  80. package/x/demo/utils/lipsum.d.ts +2 -0
  81. package/x/demo/utils/lipsum.js +11 -0
  82. package/x/demo/utils/lipsum.js.map +1 -0
  83. package/x/demo/views/demonstration/style.css.js +10 -2
  84. package/x/demo/views/demonstration/style.css.js.map +1 -1
  85. package/x/demo/views/demonstration/view.d.ts +6 -4
  86. package/x/demo/views/demonstration/view.js +16 -10
  87. package/x/demo/views/demonstration/view.js.map +1 -1
  88. package/x/icons/tabler/menu-2.svg.d.ts +2 -0
  89. package/x/icons/tabler/menu-2.svg.js +3 -0
  90. package/x/icons/tabler/menu-2.svg.js.map +1 -0
  91. package/x/icons/tabler/x.svg.d.ts +2 -0
  92. package/x/icons/tabler/x.svg.js +3 -0
  93. package/x/icons/tabler/x.svg.js.map +1 -0
  94. package/x/index.d.ts +10 -4
  95. package/x/index.html +7 -5
  96. package/x/index.html.js +2 -2
  97. package/x/index.js +10 -4
  98. package/x/index.js.map +1 -1
  99. package/x/install/aura.bundle.d.ts +1 -0
  100. package/x/install/aura.bundle.js +5 -0
  101. package/x/install/aura.bundle.js.map +1 -0
  102. package/x/install/aura.bundle.min.js +321 -0
  103. package/x/install/aura.bundle.min.js.map +7 -0
  104. package/x/install/plain.bundle.d.ts +1 -0
  105. package/x/install/plain.bundle.js +5 -0
  106. package/x/install/plain.bundle.js.map +1 -0
  107. package/x/install/plain.bundle.min.js +287 -0
  108. package/x/install/plain.bundle.min.js.map +7 -0
  109. package/x/shiny.d.ts +42 -0
  110. package/x/shiny.js +8 -0
  111. package/x/shiny.js.map +1 -0
  112. package/x/themes/aura.css.d.ts +1 -0
  113. package/x/themes/aura.css.js +47 -0
  114. package/x/themes/aura.css.js.map +1 -0
  115. package/x/themes/index.barrel.d.ts +2 -1
  116. package/x/themes/index.barrel.js +2 -1
  117. package/x/themes/index.barrel.js.map +1 -1
  118. package/x/themes/index.d.ts +1 -0
  119. package/x/themes/infra/css-vars.d.ts +11 -0
  120. package/x/themes/infra/css-vars.js +18 -0
  121. package/x/themes/infra/css-vars.js.map +1 -0
  122. package/x/themes/plain.css.d.ts +1 -0
  123. package/x/themes/plain.css.js +11 -0
  124. package/x/themes/plain.css.js.map +1 -0
  125. package/x/utils/states.d.ts +5 -0
  126. package/x/utils/states.js +13 -0
  127. package/x/utils/states.js.map +1 -0
  128. package/s/themes/basic.css.ts +0 -18
  129. package/s/tools/untab.ts +0 -30
  130. package/s/ui/components.ts +0 -9
  131. package/s/ui/framework.ts +0 -8
  132. package/s/ui/themers.ts +0 -28
  133. package/x/themes/basic.css.d.ts +0 -1
  134. package/x/themes/basic.css.js +0 -17
  135. package/x/themes/basic.css.js.map +0 -1
  136. package/x/tools/untab.d.ts +0 -1
  137. package/x/tools/untab.js +0 -26
  138. package/x/tools/untab.js.map +0 -1
  139. package/x/ui/components.d.ts +0 -6
  140. package/x/ui/components.js +0 -7
  141. package/x/ui/components.js.map +0 -1
  142. package/x/ui/copy/component.js.map +0 -1
  143. package/x/ui/copy/style.css.js.map +0 -1
  144. package/x/ui/example/component.js.map +0 -1
  145. package/x/ui/example/style.css.js +0 -10
  146. package/x/ui/example/style.css.js.map +0 -1
  147. package/x/ui/framework.d.ts +0 -4
  148. package/x/ui/framework.js +0 -6
  149. package/x/ui/framework.js.map +0 -1
  150. package/x/ui/themers.d.ts +0 -8
  151. package/x/ui/themers.js +0 -12
  152. package/x/ui/themers.js.map +0 -1
  153. /package/x/{ui → components}/copy/style.css.d.ts +0 -0
  154. /package/x/{ui/example → components/drawer}/style.css.d.ts +0 -0
@@ -0,0 +1,4 @@
1
+ import { shiny } from "../shiny.js";
2
+ import { aura } from "../themes/aura.css.js";
3
+ export const auraViews = shiny({ theme: aura }).views;
4
+ //# sourceMappingURL=aura-views.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aura-views.js","sourceRoot":"","sources":["../../s/demo/aura-views.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,KAAK,EAAC,MAAM,aAAa,CAAA;AACjC,OAAO,EAAC,IAAI,EAAC,MAAM,uBAAuB,CAAA;AAE1C,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC,KAAK,CAAA"}
@@ -1,9 +1,22 @@
1
1
  import { css, html } from "lit";
2
2
  import { dom, view } from "@e280/sly";
3
- import { themes } from "../themes/index.js";
4
- import { themeViews } from "../ui/themers.js";
3
+ import { shiny } from "../shiny.js";
4
+ import { auraViews } from "./aura-views.js";
5
+ import { plain } from "../themes/plain.css.js";
6
+ import { makeLipsumDispenser } from "./utils/lipsum.js";
7
+ import { TabControl } from "../components/tabs/control.js";
5
8
  import { Demonstration } from "./views/demonstration/view.js";
6
- const views = themeViews(themes.basic);
9
+ const viewsets = [
10
+ { label: "aura", views: auraViews },
11
+ { label: "plain", views: shiny({ theme: plain }).views },
12
+ ];
13
+ const labels = {
14
+ html: { button: "html", text: "html web component" },
15
+ view: { button: "view", text: "sly view" },
16
+ css: { button: "css", text: "custom css" },
17
+ };
18
+ const dispenser = makeLipsumDispenser();
19
+ const lipsum = () => dispenser.takeFirst();
7
20
  dom.register({ ShinyDemo: view.component(use => {
8
21
  use.styles(css `
9
22
  :host {
@@ -12,26 +25,197 @@ dom.register({ ShinyDemo: view.component(use => {
12
25
  gap: 1em;
13
26
  }
14
27
 
15
- [view="shiny-copy"]::part(content) {
16
- font-size: 4em;
28
+ .themes {
29
+ display: flex;
30
+ justify-content: end;
31
+ gap: 0.5em;
32
+
33
+ span {
34
+ font-size: 1.2em;
35
+ opacity: 0.5;
36
+ font-family: serif;
37
+ font-style: italic;
38
+ }
39
+
40
+ [view="shiny-tabs"] {
41
+ display: flex;
42
+ }
17
43
  }
18
44
  `);
19
- return [
45
+ const tabControl = use.once(() => new TabControl(0));
46
+ const $viewset = use.derived(() => viewsets.at(tabControl.$index()));
47
+ const views = $viewset().views;
48
+ dispenser.takeAll();
49
+ const demonstrations = [
20
50
  Demonstration({
21
- views,
22
51
  name: "shiny-copy",
23
52
  explain: html `
24
- <p>button for click-to-copy text</p>
53
+ <p>click-to-copy text button.</p>
25
54
  `,
26
- exampleView: `
27
- ShinyCopy("hello world")
55
+ snippets: [
56
+ [labels.html, `
57
+ <shiny-copy text="hello world"></shiny-copy>
58
+ `],
59
+ [labels.view, `
60
+ ShinyCopy("hello world")
61
+ `],
62
+ [labels.css, `
63
+ shiny-copy {
64
+ font-size: 1em;
65
+ --happy: #0fa;
66
+ --angry: #f50;
67
+ --lame: #8888;
68
+ --inactive-opacity: 0.5;
69
+ }
70
+ `],
71
+ ],
72
+ content: views.ShinyCopy("hello world"),
73
+ style: css `
74
+ .content sly-view {
75
+ font-size: 4em;
76
+ }
28
77
  `,
29
- exampleComponent: `
30
- <shiny-copy text="hello world"></shiny-copy>
78
+ }),
79
+ Demonstration({
80
+ name: "shiny-drawer",
81
+ explain: html `
82
+ <p>slide-out panel. button optional.</p>
83
+ `,
84
+ snippets: [
85
+ [labels.html, `
86
+ <shiny-drawer button side=left>
87
+ <header>example</header>
88
+ <section slot=plate>
89
+ lorem kettlebell..
90
+ </section>
91
+ </shiny-drawer>
92
+ `],
93
+ [labels.view, `
94
+ ShinyDrawer
95
+ .props({button: true, side: "left"})
96
+ .children(html\`
97
+ <header>example</header>
98
+ <section slot=plate>
99
+ lorem kettlebell..
100
+ </section>
101
+ \`)
102
+ .render()
103
+ `],
104
+ [labels.css, `
105
+ shiny-drawer {
106
+ --button-size: 2em;
107
+ --anim-duration: 200ms;
108
+ --blanket-backdrop-filter: blur(0.5em);
109
+ --blanket-bg: color-mix(
110
+ in oklab,
111
+ transparent,
112
+ var(--bg)
113
+ );
114
+ }
115
+ `],
116
+ ],
117
+ content: views.ShinyDrawer
118
+ .props({ button: true })
119
+ .children(html `
120
+ <header>
121
+ <h2>example drawer</h2>
122
+ <p>you can put any content in here.</p>
123
+ <p class=lipsum>${lipsum()}</p>
124
+ </header>
125
+ <section slot=plate>
126
+ <p class=lipsum>${lipsum()}</p>
127
+ <p class=lipsum>${lipsum()}</p>
128
+ </section>
129
+ `)
130
+ .render(),
131
+ style: css `
132
+ .content sly-view {
133
+ border-radius: 0.5em;
134
+ overflow: hidden;
135
+ --button-size: 3em;
136
+
137
+ header {
138
+ > * + * { margin-top: 0.5em; }
139
+ }
140
+
141
+ section {
142
+ display: flex;
143
+ flex-direction: column;
144
+ justify-content: center;
145
+ min-height: 100%;
146
+ padding: 1em;
147
+ padding-top: 3em;
148
+ > * + * { margin-top: 0.5em; }
149
+ }
150
+ }
151
+ `,
152
+ }),
153
+ Demonstration({
154
+ name: "shiny-tabs",
155
+ explain: html `
156
+ <p>button bar. panels optional.</p>
157
+ `,
158
+ snippets: [
159
+ [labels.html, `
160
+ <shiny-tabs>
161
+ <button>tab1</button>
162
+ <button>tab2</button>
163
+ <button>tab3</button>
164
+ <div slot=panel>panel1</div>
165
+ <div slot=panel>panel2</div>
166
+ <div slot=panel>panel3</div>
167
+ </shiny-tabs>
168
+ `],
169
+ [labels.view, `
170
+ ShinyTabs
171
+ .props()
172
+ .children(html\`
173
+ <button>tab1</button>
174
+ <button>tab2</button>
175
+ <button>tab3</button>
176
+ <div slot=panel>panel1</div>
177
+ <div slot=panel>panel2</div>
178
+ <div slot=panel>panel3</div>
179
+ \`)
180
+ .render()
181
+ `],
182
+ [labels.css, `
183
+ shiny-tabs::part(tabs) {}
184
+ shiny-tabs::part(panels) {}
185
+ `],
186
+ ],
187
+ content: views.ShinyTabs
188
+ .props()
189
+ .children(html `
190
+ <button>tab1</button>
191
+ <button>tab2</button>
192
+ <button>tab3</button>
193
+ <p slot=panel class=lipsum>${lipsum()}</p>
194
+ <p slot=panel class=lipsum>${lipsum()}</p>
195
+ <p slot=panel class=lipsum>${lipsum()}</p>
196
+ `)
197
+ .render(),
198
+ style: css `
199
+ .content {
200
+ justify-content: start;
201
+ p { margin-top: 0.5em; }
202
+ }
31
203
  `,
32
- content: views.ShinyCopy("hello world"),
33
204
  }),
34
205
  ];
206
+ return html `
207
+ <div class=themes>
208
+ <span>theme</span>
209
+ ${auraViews.ShinyTabs
210
+ .props(tabControl)
211
+ .children(viewsets.map(viewset => html `
212
+ <button>${viewset.label}</button>
213
+ `))
214
+ .render()}
215
+ </div>
216
+
217
+ ${demonstrations}
218
+ `;
35
219
  }) });
36
- console.log("✨ shiny");
220
+ console.log("✨shiny");
37
221
  //# sourceMappingURL=demo.bundle.js.map
@@ -1 +1 @@
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,MAAM,EAAC,MAAM,oBAAoB,CAAA;AACzC,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAC,aAAa,EAAC,MAAM,+BAA+B,CAAA;AAE3D,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAEtC,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,WAAW,EAAE;;IAEZ;gBACD,gBAAgB,EAAE;;IAEjB;gBACD,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC;aACvC,CAAC;SACF,CAAA;IACF,CAAC,CAAC,EAAC,CAAC,CAAA;AAEJ,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA"}
1
+ {"version":3,"file":"demo.bundle.js","sourceRoot":"","sources":["../../s/demo/demo.bundle.ts"],"names":[],"mappings":"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"}