@spectrum-web-components/tabs 0.9.0-devmode.0 → 0.9.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.
- package/README.md +154 -36
- package/custom-elements.json +41 -13
- package/package.json +6 -5
- package/sp-tab-panel.dev.js +1 -0
- package/sp-tab-panel.dev.js.map +1 -1
- package/sp-tab-panel.js +1 -2
- package/sp-tab-panel.js.map +2 -2
- package/sp-tab.dev.js +1 -0
- package/sp-tab.dev.js.map +1 -1
- package/sp-tab.js +1 -2
- package/sp-tab.js.map +2 -2
- package/sp-tabs.dev.js +1 -0
- package/sp-tabs.dev.js.map +1 -1
- package/sp-tabs.js +1 -2
- package/sp-tabs.js.map +2 -2
- package/src/Tab.dev.js +18 -7
- package/src/Tab.dev.js.map +1 -1
- package/src/Tab.js +5 -96
- package/src/Tab.js.map +2 -2
- package/src/TabPanel.dev.js +1 -0
- package/src/TabPanel.dev.js.map +1 -1
- package/src/TabPanel.js +2 -56
- package/src/TabPanel.js.map +2 -2
- package/src/Tabs.d.ts +9 -2
- package/src/Tabs.dev.js +52 -12
- package/src/Tabs.dev.js.map +2 -2
- package/src/Tabs.js +4 -287
- package/src/Tabs.js.map +3 -3
- package/src/index.dev.js +1 -0
- package/src/index.dev.js.map +1 -1
- package/src/index.js +1 -3
- package/src/index.js.map +1 -1
- package/src/spectrum-tab.css.dev.js +1 -0
- package/src/spectrum-tab.css.dev.js.map +1 -1
- package/src/spectrum-tab.css.js +2 -4
- package/src/spectrum-tab.css.js.map +2 -2
- package/src/spectrum-tabs.css.dev.js +1 -0
- package/src/spectrum-tabs.css.dev.js.map +1 -1
- package/src/spectrum-tabs.css.js +2 -4
- package/src/spectrum-tabs.css.js.map +2 -2
- package/src/tab-panel.css.dev.js +1 -0
- package/src/tab-panel.css.dev.js.map +1 -1
- package/src/tab-panel.css.js +2 -4
- package/src/tab-panel.css.js.map +2 -2
- package/src/tab.css.dev.js +1 -0
- package/src/tab.css.dev.js.map +1 -1
- package/src/tab.css.js +2 -4
- package/src/tab.css.js.map +2 -2
- package/src/tabs.css.dev.js +2 -1
- package/src/tabs.css.dev.js.map +2 -2
- package/src/tabs.css.js +3 -5
- package/src/tabs.css.js.map +3 -3
- package/stories/tabs-horizontal-sizes.stories.js +1 -0
- package/stories/tabs-horizontal-sizes.stories.js.map +1 -1
- package/stories/tabs-vertical-right-sizes.stories.js +1 -0
- package/stories/tabs-vertical-right-sizes.stories.js.map +1 -1
- package/stories/tabs-vertical-sizes.stories.js +1 -0
- package/stories/tabs-vertical-sizes.stories.js.map +1 -1
- package/stories/tabs.stories.js +83 -0
- package/stories/tabs.stories.js.map +2 -2
- package/test/benchmark/basic-test.js +1 -0
- package/test/benchmark/basic-test.js.map +1 -1
- package/test/tab.test.js +18 -7
- package/test/tab.test.js.map +1 -1
- package/test/tabs-horizontal-sizes.test-vrt.js +1 -0
- package/test/tabs-horizontal-sizes.test-vrt.js.map +1 -1
- package/test/tabs-vertical-right-sizes.test-vrt.js +1 -0
- package/test/tabs-vertical-right-sizes.test-vrt.js.map +1 -1
- package/test/tabs-vertical-sizes.test-vrt.js +1 -0
- package/test/tabs-vertical-sizes.test-vrt.js.map +1 -1
- package/test/tabs.test-vrt.js +1 -0
- package/test/tabs.test-vrt.js.map +1 -1
- package/test/tabs.test.js +54 -22
- package/test/tabs.test.js.map +1 -1
package/README.md
CHANGED
|
@@ -103,11 +103,36 @@ import {
|
|
|
103
103
|
</sp-tab-panel>
|
|
104
104
|
</sp-tabs>
|
|
105
105
|
|
|
106
|
-
|
|
106
|
+
## Horizontal Tabs
|
|
107
|
+
|
|
108
|
+
An `<sp-tabs>` element will display horizontally by default. It can be modified with states like `compact`, `disabled`, and `quiet`, or with content like icons, etc.
|
|
109
|
+
|
|
110
|
+
<sp-tabs selected="compact" auto label="Horizontal Tabs variants">
|
|
111
|
+
<sp-tab value="compact">Compact</sp-tab>
|
|
112
|
+
<sp-tab-panel value="compact">
|
|
113
|
+
|
|
114
|
+
Compact tabs should never be used without the quiet variation. Please use Quiet + Compact Tabs instead.
|
|
115
|
+
|
|
116
|
+
```html demo
|
|
117
|
+
<sp-tabs selected="1" compact>
|
|
118
|
+
<sp-tab label="Tab 1" value="1"></sp-tab>
|
|
119
|
+
<sp-tab label="Tab 2" value="2"></sp-tab>
|
|
120
|
+
<sp-tab label="Tab 3" value="3"></sp-tab>
|
|
121
|
+
<sp-tab label="Tab 4" value="4"></sp-tab>
|
|
122
|
+
<sp-tab-panel value="1">Content for Tab 1</sp-tab-panel>
|
|
123
|
+
<sp-tab-panel value="2">Content for Tab 2</sp-tab-panel>
|
|
124
|
+
<sp-tab-panel value="3">Content for Tab 3</sp-tab-panel>
|
|
125
|
+
<sp-tab-panel value="4">Content for Tab 4</sp-tab-panel>
|
|
126
|
+
</sp-tabs>
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
</sp-tab-panel>
|
|
130
|
+
<sp-tab value="disabled">Disabled</sp-tab>
|
|
131
|
+
<sp-tab-panel value="disabled">
|
|
107
132
|
|
|
108
133
|
When an `<sp-tabs>` element is given the `disabled` attribute its `<sp-tab>` children will be disabled as well, preventing a visitor from changing the selected tab. By default, `<sp-tab-panel>` children will not be addressed and the available content of the currently selected tab will be fully visible.
|
|
109
134
|
|
|
110
|
-
```html
|
|
135
|
+
```html demo
|
|
111
136
|
<sp-tabs selected="2" disabled>
|
|
112
137
|
<sp-tab label="Tab 1" value="1"></sp-tab>
|
|
113
138
|
<sp-tab label="Tab 2" value="2"></sp-tab>
|
|
@@ -120,10 +145,37 @@ When an `<sp-tabs>` element is given the `disabled` attribute its `<sp-tab>` chi
|
|
|
120
145
|
</sp-tabs>
|
|
121
146
|
```
|
|
122
147
|
|
|
123
|
-
|
|
148
|
+
</sp-tab-panel>
|
|
149
|
+
<sp-tab value="icons">Icons</sp-tab>
|
|
150
|
+
<sp-tab-panel value="icons">
|
|
124
151
|
|
|
125
|
-
```html
|
|
126
|
-
<sp-tabs selected="1"
|
|
152
|
+
```html demo
|
|
153
|
+
<sp-tabs selected="1">
|
|
154
|
+
<sp-tab label="Tab 1" value="1">
|
|
155
|
+
<sp-icon-checkmark slot="icon"></sp-icon-checkmark>
|
|
156
|
+
</sp-tab>
|
|
157
|
+
<sp-tab label="Tab 2" value="2">
|
|
158
|
+
<sp-icon-close slot="icon"></sp-icon-close>
|
|
159
|
+
</sp-tab>
|
|
160
|
+
<sp-tab label="Tab 3" value="3">
|
|
161
|
+
<sp-icon-chevron-down slot="icon"></sp-icon-chevron-down>
|
|
162
|
+
</sp-tab>
|
|
163
|
+
<sp-tab label="Tab 4" value="4">
|
|
164
|
+
<sp-icon-help slot="icon"></sp-icon-help>
|
|
165
|
+
</sp-tab>
|
|
166
|
+
<sp-tab-panel value="1">Content for Tab 1</sp-tab-panel>
|
|
167
|
+
<sp-tab-panel value="2">Content for Tab 2</sp-tab-panel>
|
|
168
|
+
<sp-tab-panel value="3">Content for Tab 3</sp-tab-panel>
|
|
169
|
+
<sp-tab-panel value="4">Content for Tab 4</sp-tab-panel>
|
|
170
|
+
</sp-tabs>
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
</sp-tab-panel>
|
|
174
|
+
<sp-tab value="quiet">Quiet</sp-tab>
|
|
175
|
+
<sp-tab-panel value="quiet">
|
|
176
|
+
|
|
177
|
+
```html demo
|
|
178
|
+
<sp-tabs selected="1" quiet>
|
|
127
179
|
<sp-tab label="Tab 1" value="1"></sp-tab>
|
|
128
180
|
<sp-tab label="Tab 2" value="2"></sp-tab>
|
|
129
181
|
<sp-tab label="Tab 3" value="3"></sp-tab>
|
|
@@ -135,12 +187,38 @@ When an `<sp-tabs>` element is given the `disabled` attribute its `<sp-tab>` chi
|
|
|
135
187
|
</sp-tabs>
|
|
136
188
|
```
|
|
137
189
|
|
|
138
|
-
|
|
190
|
+
</sp-tab-panel>
|
|
191
|
+
<sp-tab value="quiet+compact">Quiet + Compact</sp-tab>
|
|
192
|
+
<sp-tab-panel value="quiet+compact">
|
|
139
193
|
|
|
140
|
-
|
|
194
|
+
```html demo
|
|
195
|
+
<sp-tabs selected="1" quiet compact>
|
|
196
|
+
<sp-tab label="Tab 1" value="1"></sp-tab>
|
|
197
|
+
<sp-tab label="Tab 2" value="2"></sp-tab>
|
|
198
|
+
<sp-tab label="Tab 3" value="3"></sp-tab>
|
|
199
|
+
<sp-tab label="Tab 4" value="4"></sp-tab>
|
|
200
|
+
<sp-tab-panel value="1">Content for Tab 1</sp-tab-panel>
|
|
201
|
+
<sp-tab-panel value="2">Content for Tab 2</sp-tab-panel>
|
|
202
|
+
<sp-tab-panel value="3">Content for Tab 3</sp-tab-panel>
|
|
203
|
+
<sp-tab-panel value="4">Content for Tab 4</sp-tab-panel>
|
|
204
|
+
</sp-tabs>
|
|
205
|
+
```
|
|
141
206
|
|
|
142
|
-
|
|
143
|
-
|
|
207
|
+
</sp-tab-panel>
|
|
208
|
+
</sp-tabs>
|
|
209
|
+
|
|
210
|
+
## Vertical Tabs
|
|
211
|
+
|
|
212
|
+
An `<sp-tabs>` element will display horizontally by default. It can be modified with states like `compact`, `disabled`, and `quiet`, or with content like icons, etc.
|
|
213
|
+
|
|
214
|
+
<sp-tabs selected="compact" auto label="Horizontal Tabs variants">
|
|
215
|
+
<sp-tab value="compact">Compact</sp-tab>
|
|
216
|
+
<sp-tab-panel value="compact">
|
|
217
|
+
|
|
218
|
+
Compact tabs should never be used without the quiet variation. Please use Quiet + Compact Tabs instead.
|
|
219
|
+
|
|
220
|
+
```html demo
|
|
221
|
+
<sp-tabs selected="1" compact direction="vertical">
|
|
144
222
|
<sp-tab label="Tab 1" value="1"></sp-tab>
|
|
145
223
|
<sp-tab label="Tab 2" value="2"></sp-tab>
|
|
146
224
|
<sp-tab label="Tab 3" value="3"></sp-tab>
|
|
@@ -152,14 +230,43 @@ When an `<sp-tabs>` element is given the `disabled` attribute its `<sp-tab>` chi
|
|
|
152
230
|
</sp-tabs>
|
|
153
231
|
```
|
|
154
232
|
|
|
155
|
-
|
|
233
|
+
</sp-tab-panel>
|
|
234
|
+
<sp-tab value="disabled">Disabled</sp-tab>
|
|
235
|
+
<sp-tab-panel value="disabled">
|
|
156
236
|
|
|
157
|
-
|
|
158
|
-
|
|
237
|
+
When an `<sp-tabs>` element is given the `disabled` attribute its `<sp-tab>` children will be disabled as well, preventing a visitor from changing the selected tab. By default, `<sp-tab-panel>` children will not be addressed and the available content of the currently selected tab will be fully visible.
|
|
238
|
+
|
|
239
|
+
```html demo
|
|
240
|
+
<sp-tabs selected="2" disabled direction="vertical">
|
|
159
241
|
<sp-tab label="Tab 1" value="1"></sp-tab>
|
|
160
242
|
<sp-tab label="Tab 2" value="2"></sp-tab>
|
|
161
243
|
<sp-tab label="Tab 3" value="3"></sp-tab>
|
|
162
244
|
<sp-tab label="Tab 4" value="4"></sp-tab>
|
|
245
|
+
<sp-tab-panel value="1">Content for Tab 1 is not selectable</sp-tab-panel>
|
|
246
|
+
<sp-tab-panel value="2">Content for Tab 2 is selected</sp-tab-panel>
|
|
247
|
+
<sp-tab-panel value="3">Content for Tab 3 is not selectable</sp-tab-panel>
|
|
248
|
+
<sp-tab-panel value="4">Content for Tab 4 is not selectable</sp-tab-panel>
|
|
249
|
+
</sp-tabs>
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
</sp-tab-panel>
|
|
253
|
+
<sp-tab value="icons">Icons</sp-tab>
|
|
254
|
+
<sp-tab-panel value="icons">
|
|
255
|
+
|
|
256
|
+
```html demo
|
|
257
|
+
<sp-tabs selected="1" direction="vertical">
|
|
258
|
+
<sp-tab label="Tab 1" value="1">
|
|
259
|
+
<sp-icon-checkmark slot="icon"></sp-icon-checkmark>
|
|
260
|
+
</sp-tab>
|
|
261
|
+
<sp-tab label="Tab 2" value="2">
|
|
262
|
+
<sp-icon-close slot="icon"></sp-icon-close>
|
|
263
|
+
</sp-tab>
|
|
264
|
+
<sp-tab label="Tab 3" value="3">
|
|
265
|
+
<sp-icon-chevron-down slot="icon"></sp-icon-chevron-down>
|
|
266
|
+
</sp-tab>
|
|
267
|
+
<sp-tab label="Tab 4" value="4">
|
|
268
|
+
<sp-icon-help slot="icon"></sp-icon-help>
|
|
269
|
+
</sp-tab>
|
|
163
270
|
<sp-tab-panel value="1">Content for Tab 1</sp-tab-panel>
|
|
164
271
|
<sp-tab-panel value="2">Content for Tab 2</sp-tab-panel>
|
|
165
272
|
<sp-tab-panel value="3">Content for Tab 3</sp-tab-panel>
|
|
@@ -167,32 +274,43 @@ When an `<sp-tabs>` element is given the `disabled` attribute its `<sp-tab>` chi
|
|
|
167
274
|
</sp-tabs>
|
|
168
275
|
```
|
|
169
276
|
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
277
|
+
</sp-tab-panel>
|
|
278
|
+
<sp-tab value="quiet">Quiet</sp-tab>
|
|
279
|
+
<sp-tab-panel value="quiet">
|
|
280
|
+
|
|
281
|
+
```html demo
|
|
282
|
+
<sp-tabs selected="1" quiet direction="vertical">
|
|
283
|
+
<sp-tab label="Tab 1" value="1"></sp-tab>
|
|
284
|
+
<sp-tab label="Tab 2" value="2"></sp-tab>
|
|
285
|
+
<sp-tab label="Tab 3" value="3"></sp-tab>
|
|
286
|
+
<sp-tab label="Tab 4" value="4"></sp-tab>
|
|
287
|
+
<sp-tab-panel value="1">Content for Tab 1</sp-tab-panel>
|
|
288
|
+
<sp-tab-panel value="2">Content for Tab 2</sp-tab-panel>
|
|
289
|
+
<sp-tab-panel value="3">Content for Tab 3</sp-tab-panel>
|
|
290
|
+
<sp-tab-panel value="4">Content for Tab 4</sp-tab-panel>
|
|
291
|
+
</sp-tabs>
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
</sp-tab-panel>
|
|
295
|
+
<sp-tab value="quiet+compact">Quiet + Compact</sp-tab>
|
|
296
|
+
<sp-tab-panel value="quiet+compact">
|
|
297
|
+
|
|
298
|
+
```html demo
|
|
299
|
+
<sp-tabs selected="1" quiet compact direction="vertical">
|
|
300
|
+
<sp-tab label="Tab 1" value="1"></sp-tab>
|
|
301
|
+
<sp-tab label="Tab 2" value="2"></sp-tab>
|
|
302
|
+
<sp-tab label="Tab 3" value="3"></sp-tab>
|
|
303
|
+
<sp-tab label="Tab 4" value="4"></sp-tab>
|
|
304
|
+
<sp-tab-panel value="1">Content for Tab 1</sp-tab-panel>
|
|
305
|
+
<sp-tab-panel value="2">Content for Tab 2</sp-tab-panel>
|
|
306
|
+
<sp-tab-panel value="3">Content for Tab 3</sp-tab-panel>
|
|
307
|
+
<sp-tab-panel value="4">Content for Tab 4</sp-tab-panel>
|
|
308
|
+
</sp-tabs>
|
|
194
309
|
```
|
|
195
310
|
|
|
311
|
+
</sp-tab-panel>
|
|
312
|
+
</sp-tabs>
|
|
313
|
+
|
|
196
314
|
## Accessibility
|
|
197
315
|
|
|
198
316
|
When an `<sp-tabs>` has a `selected` value, the `<sp-tab>` child of that `value` will be given `[tabindex="0"]` and will receive initial focus when tabbing into the `<sp-tabs>` element. When no `selected` value is present, the first `<sp-tab>` child will be treated in this way. When focus is currently within the `<sp-tabs>` element, the left and right arrows will move that focus back and forth through the available `<sp-tab>` children.
|
package/custom-elements.json
CHANGED
|
@@ -363,6 +363,18 @@
|
|
|
363
363
|
"description": "Whether to activate a tab on keyboard focus or not.\n\nBy default a tab is activated via a \"click\" interaction. This is specifically intended for when\ntab content cannot be displayed instantly, e.g. not all of the DOM content is available, etc.\nTo learn more about \"Deciding When to Make Selection Automatically Follow Focus\", visit:\nhttps://w3c.github.io/aria-practices/#kbd_selection_follows_focus",
|
|
364
364
|
"attribute": "auto"
|
|
365
365
|
},
|
|
366
|
+
{
|
|
367
|
+
"kind": "field",
|
|
368
|
+
"name": "compact",
|
|
369
|
+
"type": {
|
|
370
|
+
"text": "boolean"
|
|
371
|
+
},
|
|
372
|
+
"privacy": "public",
|
|
373
|
+
"default": "false",
|
|
374
|
+
"description": "The tab items are displayed closer together.",
|
|
375
|
+
"attribute": "compact",
|
|
376
|
+
"reflects": true
|
|
377
|
+
},
|
|
366
378
|
{
|
|
367
379
|
"kind": "field",
|
|
368
380
|
"name": "direction",
|
|
@@ -395,6 +407,18 @@
|
|
|
395
407
|
"default": "''",
|
|
396
408
|
"attribute": "label"
|
|
397
409
|
},
|
|
410
|
+
{
|
|
411
|
+
"kind": "field",
|
|
412
|
+
"name": "quiet",
|
|
413
|
+
"type": {
|
|
414
|
+
"text": "boolean"
|
|
415
|
+
},
|
|
416
|
+
"privacy": "public",
|
|
417
|
+
"default": "false",
|
|
418
|
+
"description": "The tab list is displayed without a border.",
|
|
419
|
+
"attribute": "quiet",
|
|
420
|
+
"reflects": true
|
|
421
|
+
},
|
|
398
422
|
{
|
|
399
423
|
"kind": "field",
|
|
400
424
|
"name": "selectionIndicatorStyle",
|
|
@@ -592,27 +616,22 @@
|
|
|
592
616
|
],
|
|
593
617
|
"attributes": [
|
|
594
618
|
{
|
|
619
|
+
"name": "auto",
|
|
595
620
|
"type": {
|
|
596
|
-
"text": "
|
|
597
|
-
},
|
|
598
|
-
"description": "The tabs border is a lot smaller",
|
|
599
|
-
"name": "quiet"
|
|
600
|
-
},
|
|
601
|
-
{
|
|
602
|
-
"type": {
|
|
603
|
-
"text": "Boolean"
|
|
621
|
+
"text": "boolean"
|
|
604
622
|
},
|
|
605
|
-
"
|
|
606
|
-
"
|
|
623
|
+
"default": "false",
|
|
624
|
+
"description": "Whether to activate a tab on keyboard focus or not.\n\nBy default a tab is activated via a \"click\" interaction. This is specifically intended for when\ntab content cannot be displayed instantly, e.g. not all of the DOM content is available, etc.\nTo learn more about \"Deciding When to Make Selection Automatically Follow Focus\", visit:\nhttps://w3c.github.io/aria-practices/#kbd_selection_follows_focus",
|
|
625
|
+
"fieldName": "auto"
|
|
607
626
|
},
|
|
608
627
|
{
|
|
609
|
-
"name": "
|
|
628
|
+
"name": "compact",
|
|
610
629
|
"type": {
|
|
611
630
|
"text": "boolean"
|
|
612
631
|
},
|
|
613
632
|
"default": "false",
|
|
614
|
-
"description": "
|
|
615
|
-
"fieldName": "
|
|
633
|
+
"description": "The tab items are displayed closer together.",
|
|
634
|
+
"fieldName": "compact"
|
|
616
635
|
},
|
|
617
636
|
{
|
|
618
637
|
"name": "direction",
|
|
@@ -638,6 +657,15 @@
|
|
|
638
657
|
"default": "''",
|
|
639
658
|
"fieldName": "label"
|
|
640
659
|
},
|
|
660
|
+
{
|
|
661
|
+
"name": "quiet",
|
|
662
|
+
"type": {
|
|
663
|
+
"text": "boolean"
|
|
664
|
+
},
|
|
665
|
+
"default": "false",
|
|
666
|
+
"description": "The tab list is displayed without a border.",
|
|
667
|
+
"fieldName": "quiet"
|
|
668
|
+
},
|
|
641
669
|
{
|
|
642
670
|
"name": "selected",
|
|
643
671
|
"type": {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@spectrum-web-components/tabs",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.1",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -75,9 +75,10 @@
|
|
|
75
75
|
"lit-html"
|
|
76
76
|
],
|
|
77
77
|
"dependencies": {
|
|
78
|
-
"@
|
|
79
|
-
"@spectrum-web-components/
|
|
80
|
-
"@spectrum-web-components/
|
|
78
|
+
"@lit-labs/observers": "^1.0.1",
|
|
79
|
+
"@spectrum-web-components/base": "^0.7.0",
|
|
80
|
+
"@spectrum-web-components/reactive-controllers": "^0.3.0",
|
|
81
|
+
"@spectrum-web-components/shared": "^0.15.0",
|
|
81
82
|
"tslib": "^2.0.0"
|
|
82
83
|
},
|
|
83
84
|
"devDependencies": {
|
|
@@ -89,5 +90,5 @@
|
|
|
89
90
|
"./sp-*.js",
|
|
90
91
|
"./**/*.dev.js"
|
|
91
92
|
],
|
|
92
|
-
"gitHead": "
|
|
93
|
+
"gitHead": "60b2d3b7d9020d72f9ae930568670321a1918e6f"
|
|
93
94
|
}
|
package/sp-tab-panel.dev.js
CHANGED
package/sp-tab-panel.dev.js.map
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["sp-tab-panel.ts"],
|
|
4
4
|
"sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport { TabPanel } from './src/TabPanel.dev.js'\n\ncustomElements.define('sp-tab-panel', TabPanel);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'sp-tab-panel': TabPanel;\n }\n}\n"],
|
|
5
|
-
"mappings": "AAYA;
|
|
5
|
+
"mappings": ";AAYA,SAAS,gBAAgB;AAEzB,eAAe,OAAO,gBAAgB,QAAQ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/sp-tab-panel.js
CHANGED
package/sp-tab-panel.js.map
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["sp-tab-panel.ts"],
|
|
4
4
|
"sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport { TabPanel } from './src/TabPanel.js';\n\ncustomElements.define('sp-tab-panel', TabPanel);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'sp-tab-panel': TabPanel;\n }\n}\n"],
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": []
|
|
5
|
+
"mappings": "aAYA,OAAS,YAAAA,MAAgB,oBAEzB,eAAe,OAAO,eAAgBA,CAAQ",
|
|
6
|
+
"names": ["TabPanel"]
|
|
7
7
|
}
|
package/sp-tab.dev.js
CHANGED
package/sp-tab.dev.js.map
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["sp-tab.ts"],
|
|
4
4
|
"sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport { Tab } from './src/Tab.dev.js'\n\ncustomElements.define('sp-tab', Tab);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'sp-tab': Tab;\n }\n}\n"],
|
|
5
|
-
"mappings": "AAYA;
|
|
5
|
+
"mappings": ";AAYA,SAAS,WAAW;AAEpB,eAAe,OAAO,UAAU,GAAG;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/sp-tab.js
CHANGED
package/sp-tab.js.map
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["sp-tab.ts"],
|
|
4
4
|
"sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport { Tab } from './src/Tab.js';\n\ncustomElements.define('sp-tab', Tab);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'sp-tab': Tab;\n }\n}\n"],
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": []
|
|
5
|
+
"mappings": "aAYA,OAAS,OAAAA,MAAW,eAEpB,eAAe,OAAO,SAAUA,CAAG",
|
|
6
|
+
"names": ["Tab"]
|
|
7
7
|
}
|
package/sp-tabs.dev.js
CHANGED
package/sp-tabs.dev.js.map
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["sp-tabs.ts"],
|
|
4
4
|
"sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport { Tabs } from './src/Tabs.dev.js'\n\ncustomElements.define('sp-tabs', Tabs);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'sp-tabs': Tabs;\n }\n}\n"],
|
|
5
|
-
"mappings": "AAYA;
|
|
5
|
+
"mappings": ";AAYA,SAAS,YAAY;AAErB,eAAe,OAAO,WAAW,IAAI;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/sp-tabs.js
CHANGED
package/sp-tabs.js.map
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["sp-tabs.ts"],
|
|
4
4
|
"sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport { Tabs } from './src/Tabs.js';\n\ncustomElements.define('sp-tabs', Tabs);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'sp-tabs': Tabs;\n }\n}\n"],
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": []
|
|
5
|
+
"mappings": "aAYA,OAAS,QAAAA,MAAY,gBAErB,eAAe,OAAO,UAAWA,CAAI",
|
|
6
|
+
"names": ["Tabs"]
|
|
7
7
|
}
|
package/src/Tab.dev.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
var __defProp = Object.defineProperty;
|
|
2
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
4
|
var __decorateClass = (decorators, target, key, kind) => {
|
|
@@ -20,7 +21,9 @@ import {
|
|
|
20
21
|
ObserveSlotText
|
|
21
22
|
} from "@spectrum-web-components/shared";
|
|
22
23
|
import tabItemStyles from "./tab.css.js";
|
|
23
|
-
const _Tab = class extends FocusVisiblePolyfillMixin(
|
|
24
|
+
const _Tab = class extends FocusVisiblePolyfillMixin(
|
|
25
|
+
ObserveSlotText(ObserveSlotPresence(SpectrumElement, '[slot="icon"]'), "")
|
|
26
|
+
) {
|
|
24
27
|
constructor() {
|
|
25
28
|
super(...arguments);
|
|
26
29
|
this.disabled = false;
|
|
@@ -39,10 +42,12 @@ const _Tab = class extends FocusVisiblePolyfillMixin(ObserveSlotText(ObserveSlot
|
|
|
39
42
|
return !!this.label || this.slotHasContent;
|
|
40
43
|
}
|
|
41
44
|
handleContentChange() {
|
|
42
|
-
this.dispatchEvent(
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
45
|
+
this.dispatchEvent(
|
|
46
|
+
new Event("sp-tab-contentchange", {
|
|
47
|
+
bubbles: true,
|
|
48
|
+
composed: true
|
|
49
|
+
})
|
|
50
|
+
);
|
|
46
51
|
}
|
|
47
52
|
render() {
|
|
48
53
|
return html`
|
|
@@ -61,7 +66,10 @@ const _Tab = class extends FocusVisiblePolyfillMixin(ObserveSlotText(ObserveSlot
|
|
|
61
66
|
if (!this.hasAttribute("id")) {
|
|
62
67
|
this.id = `sp-tab-${_Tab.instanceCount++}`;
|
|
63
68
|
}
|
|
64
|
-
this.shadowRoot.addEventListener(
|
|
69
|
+
this.shadowRoot.addEventListener(
|
|
70
|
+
"slotchange",
|
|
71
|
+
this.handleContentChange
|
|
72
|
+
);
|
|
65
73
|
}
|
|
66
74
|
updated(changes) {
|
|
67
75
|
super.updated(changes);
|
|
@@ -69,7 +77,10 @@ const _Tab = class extends FocusVisiblePolyfillMixin(ObserveSlotText(ObserveSlot
|
|
|
69
77
|
this.handleContentChange();
|
|
70
78
|
}
|
|
71
79
|
if (changes.has("selected")) {
|
|
72
|
-
this.setAttribute(
|
|
80
|
+
this.setAttribute(
|
|
81
|
+
"aria-selected",
|
|
82
|
+
this.selected ? "true" : "false"
|
|
83
|
+
);
|
|
73
84
|
this.setAttribute("tabindex", this.selected ? "0" : "-1");
|
|
74
85
|
}
|
|
75
86
|
if (changes.has("disabled")) {
|
package/src/Tab.dev.js.map
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["Tab.ts"],
|
|
4
4
|
"sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport {\n CSSResultArray,\n html,\n PropertyValues,\n SpectrumElement,\n TemplateResult,\n} from '@spectrum-web-components/base';\nimport { property } from '@spectrum-web-components/base/src/decorators.js';\nimport {\n FocusVisiblePolyfillMixin,\n ObserveSlotPresence,\n ObserveSlotText,\n} from '@spectrum-web-components/shared';\n\nimport tabItemStyles from './tab.css.js';\n\n/**\n * @element sp-tab\n *\n * @slot - text label of the Tab\n * @slot icon - The icon that appears on the left of the label\n */\nexport class Tab extends FocusVisiblePolyfillMixin(\n ObserveSlotText(ObserveSlotPresence(SpectrumElement, '[slot=\"icon\"]'), '')\n) {\n public static override get styles(): CSSResultArray {\n return [tabItemStyles];\n }\n\n /**\n * @private\n */\n static instanceCount = 0;\n\n protected get hasIcon(): boolean {\n return this.slotContentIsPresent;\n }\n\n protected get hasLabel(): boolean {\n return !!this.label || this.slotHasContent;\n }\n\n @property({ type: Boolean, reflect: true })\n public disabled = false;\n\n @property({ reflect: true })\n public label = '';\n\n @property({ type: Boolean, reflect: true })\n public selected = false;\n\n @property({ type: Boolean, reflect: true })\n public vertical = false;\n\n @property({ type: String, reflect: true })\n public value = '';\n\n protected handleContentChange(): void {\n /**\n * When the content in a tab has changed, JS powered layout related to that content may also need to be changed.\n */\n this.dispatchEvent(\n new Event('sp-tab-contentchange', {\n bubbles: true,\n composed: true,\n })\n );\n }\n\n protected override render(): TemplateResult {\n return html`\n ${this.hasIcon\n ? html`\n <slot name=\"icon\"></slot>\n `\n : html``}\n <label id=\"item-label\" ?hidden=${!this.hasLabel}>\n ${this.slotHasContent ? html`` : this.label}\n <slot>${this.label}</slot>\n </label>\n `;\n }\n\n protected override firstUpdated(changes: PropertyValues): void {\n super.firstUpdated(changes);\n this.setAttribute('role', 'tab');\n if (!this.hasAttribute('id')) {\n this.id = `sp-tab-${Tab.instanceCount++}`;\n }\n // @TODO - refactor this as a ResizeObserver up to `sp-tabs` so that it can be more\n // resiliant to Tab content changes, as well as other content slotted into the \"tablist\".\n this.shadowRoot.addEventListener(\n 'slotchange',\n this.handleContentChange\n );\n }\n\n protected override updated(changes: PropertyValues): void {\n super.updated(changes);\n if (\n changes.has('label') &&\n typeof changes.get('label') !== 'undefined'\n ) {\n this.handleContentChange();\n }\n if (changes.has('selected')) {\n this.setAttribute(\n 'aria-selected',\n this.selected ? 'true' : 'false'\n );\n this.setAttribute('tabindex', this.selected ? '0' : '-1');\n }\n if (changes.has('disabled')) {\n if (this.disabled) {\n this.setAttribute('aria-disabled', 'true');\n } else {\n this.removeAttribute('aria-disabled');\n }\n }\n }\n}\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": ";;;;;;;;;;;;AAYA;AAAA,EAEI;AAAA,EAEA;AAAA,OAEG;AACP,SAAS,gBAAgB;AACzB;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,OACG;AAEP,OAAO,mBAAmB;AAQnB,MAAM,OAAN,cAAkB;AAAA,EACrB,gBAAgB,oBAAoB,iBAAiB,eAAe,GAAG,EAAE;AAC7E,EAAE;AAAA,EAFK;AAAA;AAqBH,SAAO,WAAW;AAGlB,SAAO,QAAQ;AAGf,SAAO,WAAW;AAGlB,SAAO,WAAW;AAGlB,SAAO,QAAQ;AAAA;AAAA,EA9Bf,WAA2B,SAAyB;AAChD,WAAO,CAAC,aAAa;AAAA,EACzB;AAAA,EAOA,IAAc,UAAmB;AAC7B,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAc,WAAoB;AAC9B,WAAO,CAAC,CAAC,KAAK,SAAS,KAAK;AAAA,EAChC;AAAA,EAiBU,sBAA4B;AAIlC,SAAK;AAAA,MACD,IAAI,MAAM,wBAAwB;AAAA,QAC9B,SAAS;AAAA,QACT,UAAU;AAAA,MACd,CAAC;AAAA,IACL;AAAA,EACJ;AAAA,EAEmB,SAAyB;AACxC,WAAO;AAAA,cACD,KAAK,UACD;AAAA;AAAA,sBAGA;AAAA,6CAC2B,CAAC,KAAK;AAAA,kBACjC,KAAK,iBAAiB,SAAS,KAAK;AAAA,wBAC9B,KAAK;AAAA;AAAA;AAAA,EAGzB;AAAA,EAEmB,aAAa,SAA+B;AAC3D,UAAM,aAAa,OAAO;AAC1B,SAAK,aAAa,QAAQ,KAAK;AAC/B,QAAI,CAAC,KAAK,aAAa,IAAI,GAAG;AAC1B,WAAK,KAAK,UAAU,KAAI;AAAA,IAC5B;AAGA,SAAK,WAAW;AAAA,MACZ;AAAA,MACA,KAAK;AAAA,IACT;AAAA,EACJ;AAAA,EAEmB,QAAQ,SAA+B;AACtD,UAAM,QAAQ,OAAO;AACrB,QACI,QAAQ,IAAI,OAAO,KACnB,OAAO,QAAQ,IAAI,OAAO,MAAM,aAClC;AACE,WAAK,oBAAoB;AAAA,IAC7B;AACA,QAAI,QAAQ,IAAI,UAAU,GAAG;AACzB,WAAK;AAAA,QACD;AAAA,QACA,KAAK,WAAW,SAAS;AAAA,MAC7B;AACA,WAAK,aAAa,YAAY,KAAK,WAAW,MAAM,IAAI;AAAA,IAC5D;AACA,QAAI,QAAQ,IAAI,UAAU,GAAG;AACzB,UAAI,KAAK,UAAU;AACf,aAAK,aAAa,iBAAiB,MAAM;AAAA,MAC7C,OAAO;AACH,aAAK,gBAAgB,eAAe;AAAA,MACxC;AAAA,IACJ;AAAA,EACJ;AACJ;AAlGO,WAAM,MAAN;AAAM,IAUF,gBAAgB;AAWhB;AAAA,EADN,SAAS,EAAE,MAAM,SAAS,SAAS,KAAK,CAAC;AAAA,GApBjC,IAqBF;AAGA;AAAA,EADN,SAAS,EAAE,SAAS,KAAK,CAAC;AAAA,GAvBlB,IAwBF;AAGA;AAAA,EADN,SAAS,EAAE,MAAM,SAAS,SAAS,KAAK,CAAC;AAAA,GA1BjC,IA2BF;AAGA;AAAA,EADN,SAAS,EAAE,MAAM,SAAS,SAAS,KAAK,CAAC;AAAA,GA7BjC,IA8BF;AAGA;AAAA,EADN,SAAS,EAAE,MAAM,QAAQ,SAAS,KAAK,CAAC;AAAA,GAhChC,IAiCF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|