@e280/shiny 0.1.0-12 → 0.1.0-13

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 (33) hide show
  1. package/package.json +1 -1
  2. package/s/components/tabs/showcase.ts +95 -2
  3. package/s/components/tabs/style.css.ts +7 -4
  4. package/s/demo/views/exhibit/style.css.ts +1 -1
  5. package/s/demo/views/exhibit/view.ts +3 -1
  6. package/s/demo/views/showcase/style.css.ts +3 -0
  7. package/s/demo/views/showcase/view.ts +21 -21
  8. package/x/components/tabs/showcase.js +95 -2
  9. package/x/components/tabs/showcase.js.map +1 -1
  10. package/x/components/tabs/style.css.js +7 -4
  11. package/x/components/tabs/style.css.js.map +1 -1
  12. package/x/demo/demo.bundle.min.js +135 -68
  13. package/x/demo/demo.bundle.min.js.map +2 -2
  14. package/x/demo/views/exhibit/style.css.js +1 -1
  15. package/x/demo/views/exhibit/view.js +3 -1
  16. package/x/demo/views/exhibit/view.js.map +1 -1
  17. package/x/demo/views/showcase/style.css.js +3 -0
  18. package/x/demo/views/showcase/style.css.js.map +1 -1
  19. package/x/demo/views/showcase/view.js +4 -4
  20. package/x/demo/views/showcase/view.js.map +1 -1
  21. package/x/index.html +2 -2
  22. package/x/install/aura.bundle.min.js +7 -4
  23. package/x/install/aura.bundle.min.js.map +2 -2
  24. package/x/install/plain.bundle.min.js +7 -4
  25. package/x/install/plain.bundle.min.js.map +2 -2
  26. package/s/demo/views/demonstration/style.css.ts +0 -124
  27. package/s/demo/views/demonstration/view.ts +0 -57
  28. package/x/demo/views/demonstration/style.css.d.ts +0 -2
  29. package/x/demo/views/demonstration/style.css.js +0 -123
  30. package/x/demo/views/demonstration/style.css.js.map +0 -1
  31. package/x/demo/views/demonstration/view.d.ts +0 -12
  32. package/x/demo/views/demonstration/view.js +0 -44
  33. package/x/demo/views/demonstration/view.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@e280/shiny",
3
- "version": "0.1.0-12",
3
+ "version": "0.1.0-13",
4
4
  "description": "✨ web ui components",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -21,15 +21,16 @@ export const tabsShowcase = () => Showcase({
21
21
  .box {
22
22
  place-content: start start;
23
23
  p { margin-top: 0.5em; }
24
+ button { padding: 1em; }
24
25
  }
25
26
  `,
26
27
  exhibits: [
27
28
  {
28
- label: "tabs",
29
+ label: "shiny snug",
29
30
  explain: html`<p>button bar. panels optional.</p>`,
30
31
  snippets: [
31
32
  {label: "html", code: `
32
- <shiny-tabs>
33
+ <shiny-tabs snug>
33
34
  <shiny-button>tab1</shiny-button>
34
35
  <shiny-button>tab2</shiny-button>
35
36
  <shiny-button>tab3</shiny-button>
@@ -41,6 +42,7 @@ export const tabsShowcase = () => Showcase({
41
42
  {label: "view", code: `
42
43
  ShinyTabs
43
44
  .props()
45
+ .attr("snug")
44
46
  .children(html\`
45
47
  \${ShinyButton.props().children("tab1").render()}
46
48
  \${ShinyButton.props().children("tab2").render()}
@@ -57,6 +59,7 @@ export const tabsShowcase = () => Showcase({
57
59
  presentation: views => html`
58
60
  ${views.ShinyTabs
59
61
  .props()
62
+ .attr("snug")
60
63
  .children(html`
61
64
  ${views.ShinyButton.props().children("tab1").render()}
62
65
  ${views.ShinyButton.props().children("tab2").render()}
@@ -68,6 +71,96 @@ export const tabsShowcase = () => Showcase({
68
71
  .render()}
69
72
  `,
70
73
  },
74
+ {
75
+ label: "regular",
76
+ explain: html`<p>button bar. panels optional.</p>`,
77
+ snippets: [
78
+ {label: "html", code: `
79
+ <shiny-tabs>
80
+ <button>tab1</button>
81
+ <button>tab2</button>
82
+ <button>tab3</button>
83
+ <div slot=panel>panel1</div>
84
+ <div slot=panel>panel2</div>
85
+ <div slot=panel>panel3</div>
86
+ </shiny-tabs>
87
+ `},
88
+ {label: "view", code: `
89
+ ShinyTabs
90
+ .props()
91
+ .children(html\`
92
+ <button>tab1</button>
93
+ <button>tab2</button>
94
+ <button>tab3</button>
95
+ <div slot=panel>panel1</div>
96
+ <div slot=panel>panel2</div>
97
+ <div slot=panel>panel3</div>
98
+ \`)
99
+ .render()
100
+ `},
101
+ {label: "css", code: cssSnippet},
102
+ ],
103
+ style: css``,
104
+ presentation: views => html`
105
+ ${views.ShinyTabs
106
+ .props()
107
+ .children(html`
108
+ <button>tab1</button>
109
+ <button>tab2</button>
110
+ <button>tab3</button>
111
+ <p slot=panel class=lipsum>${lip1}</p>
112
+ <p slot=panel class=lipsum>${lip2}</p>
113
+ <p slot=panel class=lipsum>${lip3}</p>
114
+ `)
115
+ .render()}
116
+ `,
117
+ },
118
+ {
119
+ label: "regular snug",
120
+ explain: html`<p>button bar. panels optional.</p>`,
121
+ snippets: [
122
+ {label: "html", code: `
123
+ <shiny-tabs snug>
124
+ <button>tab1</button>
125
+ <button>tab2</button>
126
+ <button>tab3</button>
127
+ <div slot=panel>panel1</div>
128
+ <div slot=panel>panel2</div>
129
+ <div slot=panel>panel3</div>
130
+ </shiny-tabs>
131
+ `},
132
+ {label: "view", code: `
133
+ ShinyTabs
134
+ .props()
135
+ .attr("snug")
136
+ .children(html\`
137
+ <button>tab1</button>
138
+ <button>tab2</button>
139
+ <button>tab3</button>
140
+ <div slot=panel>panel1</div>
141
+ <div slot=panel>panel2</div>
142
+ <div slot=panel>panel3</div>
143
+ \`)
144
+ .render()
145
+ `},
146
+ {label: "css", code: cssSnippet},
147
+ ],
148
+ style: css``,
149
+ presentation: views => html`
150
+ ${views.ShinyTabs
151
+ .props()
152
+ .attr("snug")
153
+ .children(html`
154
+ <button>tab1</button>
155
+ <button>tab2</button>
156
+ <button>tab3</button>
157
+ <p slot=panel class=lipsum>${lip1}</p>
158
+ <p slot=panel class=lipsum>${lip2}</p>
159
+ <p slot=panel class=lipsum>${lip3}</p>
160
+ `)
161
+ .render()}
162
+ `,
163
+ },
71
164
  ],
72
165
  })
73
166
 
@@ -9,16 +9,19 @@ export default css`@layer view {
9
9
 
10
10
  slot[part="tabs"] {
11
11
  display: flex;
12
-
13
- &::slotted(*) {
14
- border-radius: 0.3em;
15
- }
12
+ flex-wrap: wrap;
16
13
 
17
14
  &::slotted([data-active]) {
18
15
  opacity: 1;
19
16
  color: currentColor;
20
17
  text-decoration: underline;
21
18
  }
19
+ }
20
+
21
+ :host([snug]) slot[part="tabs"] {
22
+ &::slotted(*) {
23
+ border-radius: 0.3em;
24
+ }
22
25
 
23
26
  &::slotted(:not([data-last], [data-next-is-active])) {
24
27
  border-right: none;
@@ -8,7 +8,7 @@ export default css`@layer view {
8
8
  gap: 0.5em;
9
9
 
10
10
  > * {
11
- flex: 1 1 0;
11
+ flex: 1 1 10em;
12
12
  min-width: 0;
13
13
  }
14
14
  }
@@ -36,7 +36,9 @@ export const Exhibit = view(use => (
36
36
 
37
37
  <div class=snippet>
38
38
  <header>
39
- ${auraViews.ShinyTabs.props(snippetControl)
39
+ ${auraViews.ShinyTabs
40
+ .props(snippetControl)
41
+ .attr("snug")
40
42
  .children(exhibit.snippets.map(s =>
41
43
  auraViews.ShinyButton
42
44
  .props()
@@ -39,6 +39,9 @@ export default css`@layer view {
39
39
 
40
40
  header {
41
41
  display: flex;
42
+ flex-wrap: wrap;
43
+ place-content: center center;
44
+ gap: 0.5em;
42
45
 
43
46
  h2 {
44
47
  flex: 1 1 auto;
@@ -25,27 +25,27 @@ export const Showcase = view(use => (options: {
25
25
  return html`
26
26
  <header>
27
27
  <h2>✨shiny-${options.name}✨</h2>
28
- <nav>
29
- ${auraViews.ShinyTabs
30
- .props(exhibitTabControl)
31
- .children(options.exhibits.map(p =>
32
- auraViews.ShinyButton
33
- .props()
34
- .attr("sad")
35
- .children(p.label)
36
- .render()
37
- ))
38
- .render()}
39
- ${auraViews.ShinyTabs
40
- .props(themeTabControl)
41
- .children(viewsets.map(([theme]) =>
42
- auraViews.ShinyButton
43
- .props()
44
- .children(theme)
45
- .render()
46
- ))
47
- .render()}
48
- </nav>
28
+ ${auraViews.ShinyTabs
29
+ .props(exhibitTabControl)
30
+ .attr("snug")
31
+ .children(options.exhibits.map(p =>
32
+ auraViews.ShinyButton
33
+ .props()
34
+ .attr("sad")
35
+ .children(p.label)
36
+ .render()
37
+ ))
38
+ .render()}
39
+ ${auraViews.ShinyTabs
40
+ .props(themeTabControl)
41
+ .attr("snug")
42
+ .children(viewsets.map(([theme]) =>
43
+ auraViews.ShinyButton
44
+ .props()
45
+ .children(theme)
46
+ .render()
47
+ ))
48
+ .render()}
49
49
  </header>
50
50
 
51
51
  ${Exhibit(exhibit, exhibitViews, options.style)}
@@ -17,15 +17,16 @@ export const tabsShowcase = () => Showcase({
17
17
  .box {
18
18
  place-content: start start;
19
19
  p { margin-top: 0.5em; }
20
+ button { padding: 1em; }
20
21
  }
21
22
  `,
22
23
  exhibits: [
23
24
  {
24
- label: "tabs",
25
+ label: "shiny snug",
25
26
  explain: html `<p>button bar. panels optional.</p>`,
26
27
  snippets: [
27
28
  { label: "html", code: `
28
- <shiny-tabs>
29
+ <shiny-tabs snug>
29
30
  <shiny-button>tab1</shiny-button>
30
31
  <shiny-button>tab2</shiny-button>
31
32
  <shiny-button>tab3</shiny-button>
@@ -37,6 +38,7 @@ export const tabsShowcase = () => Showcase({
37
38
  { label: "view", code: `
38
39
  ShinyTabs
39
40
  .props()
41
+ .attr("snug")
40
42
  .children(html\`
41
43
  \${ShinyButton.props().children("tab1").render()}
42
44
  \${ShinyButton.props().children("tab2").render()}
@@ -53,6 +55,7 @@ export const tabsShowcase = () => Showcase({
53
55
  presentation: views => html `
54
56
  ${views.ShinyTabs
55
57
  .props()
58
+ .attr("snug")
56
59
  .children(html `
57
60
  ${views.ShinyButton.props().children("tab1").render()}
58
61
  ${views.ShinyButton.props().children("tab2").render()}
@@ -64,6 +67,96 @@ export const tabsShowcase = () => Showcase({
64
67
  .render()}
65
68
  `,
66
69
  },
70
+ {
71
+ label: "regular",
72
+ explain: html `<p>button bar. panels optional.</p>`,
73
+ snippets: [
74
+ { label: "html", code: `
75
+ <shiny-tabs>
76
+ <button>tab1</button>
77
+ <button>tab2</button>
78
+ <button>tab3</button>
79
+ <div slot=panel>panel1</div>
80
+ <div slot=panel>panel2</div>
81
+ <div slot=panel>panel3</div>
82
+ </shiny-tabs>
83
+ ` },
84
+ { label: "view", code: `
85
+ ShinyTabs
86
+ .props()
87
+ .children(html\`
88
+ <button>tab1</button>
89
+ <button>tab2</button>
90
+ <button>tab3</button>
91
+ <div slot=panel>panel1</div>
92
+ <div slot=panel>panel2</div>
93
+ <div slot=panel>panel3</div>
94
+ \`)
95
+ .render()
96
+ ` },
97
+ { label: "css", code: cssSnippet },
98
+ ],
99
+ style: css ``,
100
+ presentation: views => html `
101
+ ${views.ShinyTabs
102
+ .props()
103
+ .children(html `
104
+ <button>tab1</button>
105
+ <button>tab2</button>
106
+ <button>tab3</button>
107
+ <p slot=panel class=lipsum>${lip1}</p>
108
+ <p slot=panel class=lipsum>${lip2}</p>
109
+ <p slot=panel class=lipsum>${lip3}</p>
110
+ `)
111
+ .render()}
112
+ `,
113
+ },
114
+ {
115
+ label: "regular snug",
116
+ explain: html `<p>button bar. panels optional.</p>`,
117
+ snippets: [
118
+ { label: "html", code: `
119
+ <shiny-tabs snug>
120
+ <button>tab1</button>
121
+ <button>tab2</button>
122
+ <button>tab3</button>
123
+ <div slot=panel>panel1</div>
124
+ <div slot=panel>panel2</div>
125
+ <div slot=panel>panel3</div>
126
+ </shiny-tabs>
127
+ ` },
128
+ { label: "view", code: `
129
+ ShinyTabs
130
+ .props()
131
+ .attr("snug")
132
+ .children(html\`
133
+ <button>tab1</button>
134
+ <button>tab2</button>
135
+ <button>tab3</button>
136
+ <div slot=panel>panel1</div>
137
+ <div slot=panel>panel2</div>
138
+ <div slot=panel>panel3</div>
139
+ \`)
140
+ .render()
141
+ ` },
142
+ { label: "css", code: cssSnippet },
143
+ ],
144
+ style: css ``,
145
+ presentation: views => html `
146
+ ${views.ShinyTabs
147
+ .props()
148
+ .attr("snug")
149
+ .children(html `
150
+ <button>tab1</button>
151
+ <button>tab2</button>
152
+ <button>tab3</button>
153
+ <p slot=panel class=lipsum>${lip1}</p>
154
+ <p slot=panel class=lipsum>${lip2}</p>
155
+ <p slot=panel class=lipsum>${lip3}</p>
156
+ `)
157
+ .render()}
158
+ `,
159
+ },
67
160
  ],
68
161
  });
69
162
  //# sourceMappingURL=showcase.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"showcase.js","sourceRoot":"","sources":["../../../s/components/tabs/showcase.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,GAAG,EAAE,IAAI,EAAC,MAAM,KAAK,CAAA;AAC7B,OAAO,EAAC,MAAM,EAAC,MAAM,sBAAsB,CAAA;AAC3C,OAAO,EAAC,QAAQ,EAAC,MAAM,mCAAmC,CAAA;AAE1D,MAAM,IAAI,GAAG,MAAM,EAAE,CAAA;AACrB,MAAM,IAAI,GAAG,MAAM,EAAE,CAAA;AACrB,MAAM,IAAI,GAAG,MAAM,EAAE,CAAA;AAErB,MAAM,UAAU,GAAG;;;;;;CAMlB,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC;IAC1C,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,GAAG,CAAA;;;;;EAKT;IACD,QAAQ,EAAE;QACT;YACC,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,IAAI,CAAA,qCAAqC;YAClD,QAAQ,EAAE;gBACT,EAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;KASrB,EAAC;gBACF,EAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;KAYrB,EAAC;gBACF,EAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAC;aAChC;YACD,KAAK,EAAE,GAAG,CAAA,EAAE;YACZ,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAA;MACxB,KAAK,CAAC,SAAS;iBACf,KAAK,EAAE;iBACP,QAAQ,CAAC,IAAI,CAAA;QACX,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE;QACnD,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE;QACnD,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE;mCACxB,IAAI;mCACJ,IAAI;mCACJ,IAAI;MACjC,CAAC;iBACD,MAAM,EAAE;IACV;SACD;KACD;CACD,CAAC,CAAA"}
1
+ {"version":3,"file":"showcase.js","sourceRoot":"","sources":["../../../s/components/tabs/showcase.ts"],"names":[],"mappings":"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"}
@@ -8,16 +8,19 @@ export default css `@layer view {
8
8
 
9
9
  slot[part="tabs"] {
10
10
  display: flex;
11
-
12
- &::slotted(*) {
13
- border-radius: 0.3em;
14
- }
11
+ flex-wrap: wrap;
15
12
 
16
13
  &::slotted([data-active]) {
17
14
  opacity: 1;
18
15
  color: currentColor;
19
16
  text-decoration: underline;
20
17
  }
18
+ }
19
+
20
+ :host([snug]) slot[part="tabs"] {
21
+ &::slotted(*) {
22
+ border-radius: 0.3em;
23
+ }
21
24
 
22
25
  &::slotted(:not([data-last], [data-next-is-active])) {
23
26
  border-right: none;
@@ -1 +1 @@
1
- {"version":3,"file":"style.css.js","sourceRoot":"","sources":["../../../s/components/tabs/style.css.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAA;AACvB,eAAe,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCf,CAAA"}
1
+ {"version":3,"file":"style.css.js","sourceRoot":"","sources":["../../../s/components/tabs/style.css.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAA;AACvB,eAAe,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0Cf,CAAA"}