@excom/content-tabs 0.1.0
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/.rush/temp/chunked-rush-logs/content-tabs.apply-exports.chunks.jsonl +1 -0
- package/.rush/temp/chunked-rush-logs/content-tabs.build_docs.chunks.jsonl +1 -0
- package/.rush/temp/chunked-rush-logs/content-tabs.build_package-metas.chunks.jsonl +1 -0
- package/.rush/temp/operation/apply-exports/all.log +1 -0
- package/.rush/temp/operation/apply-exports/log-chunks.jsonl +1 -0
- package/.rush/temp/operation/apply-exports/state.json +3 -0
- package/.rush/temp/operation/build_docs/all.log +1 -0
- package/.rush/temp/operation/build_docs/log-chunks.jsonl +1 -0
- package/.rush/temp/operation/build_docs/state.json +3 -0
- package/.rush/temp/operation/build_package-metas/all.log +1 -0
- package/.rush/temp/operation/build_package-metas/log-chunks.jsonl +1 -0
- package/.rush/temp/operation/build_package-metas/state.json +3 -0
- package/.rush/temp/shrinkwrap-deps.json +3 -0
- package/config/rig.json +5 -0
- package/content-tabs-body.ts +26 -0
- package/content-tabs-header.ts +64 -0
- package/content-tabs.ts +174 -0
- package/index.css +5 -0
- package/index.ts +33 -0
- package/package.json +43 -0
- package/rush-logs/content-tabs.apply-exports.cache.log +1 -0
- package/rush-logs/content-tabs.apply-exports.log +1 -0
- package/rush-logs/content-tabs.build_docs.cache.log +1 -0
- package/rush-logs/content-tabs.build_docs.log +1 -0
- package/rush-logs/content-tabs.build_package-metas.cache.log +1 -0
- package/rush-logs/content-tabs.build_package-metas.log +1 -0
- package/src/content-tabs.css +137 -0
- package/support/custom-elements.json +376 -0
- package/support/demos/file-tabs.html +6 -0
- package/support/demos/multi.html +6 -0
- package/support/demos/named.html +6 -0
- package/support/demos/simple.html +8 -0
- package/support/dist-docs/content-tabs-body.md +20 -0
- package/support/dist-docs/content-tabs-header.md +26 -0
- package/support/dist-docs/content-tabs.md +183 -0
- package/support/docs/README.md +74 -0
- package/support/package-meta.json +252 -0
- package/support/tests/content-tabs.test.ts +426 -0
- package/support/tests/file-tabs.view.test.ts +26 -0
- package/support/tests/multi.view.test.ts +29 -0
- package/support/tests/named.view.test.ts +27 -0
- package/support/tests/simple.view.test.ts +29 -0
- package/tsconfig.json +5 -0
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# content-tabs
|
|
2
|
+
|
|
3
|
+
Tabs and accordions — single, multi, or toggle selection, paired by name
|
|
4
|
+
or position.
|
|
5
|
+
|
|
6
|
+
<include-content data-demo="simple"></include-content>
|
|
7
|
+
|
|
8
|
+
## Features
|
|
9
|
+
|
|
10
|
+
- **Single / multi / toggle** Radio-like tabs, an accordion, or re-click
|
|
11
|
+
to close
|
|
12
|
+
- **Pair by name or position** Match headers to bodies with `tab-name`,
|
|
13
|
+
or by index when unnamed
|
|
14
|
+
- **Isolated nesting** Nested `<content-tabs>` groups never cross-wire
|
|
15
|
+
- **Bindable state** `.provision` is `{ tabType, openTabs, activeTab }` —
|
|
16
|
+
read the active tab from Quark with `prop("provision")`
|
|
17
|
+
- **Included looks** `.underline` and `.file-tabs` styles ship built in
|
|
18
|
+
|
|
19
|
+
## Installation
|
|
20
|
+
|
|
21
|
+
<include-content is-active template-ref="/views/install-section/install-section.html"></include-content>
|
|
22
|
+
|
|
23
|
+
## Usage
|
|
24
|
+
|
|
25
|
+
Put `<content-tabs-header>` and `<content-tabs-body>` elements inside
|
|
26
|
+
`<content-tabs>`. A header pairs with the body sharing its `tab-name`,
|
|
27
|
+
or by position when both are unnamed.
|
|
28
|
+
|
|
29
|
+
```html
|
|
30
|
+
<content-tabs class="underline">
|
|
31
|
+
<content-tabs-header is-open>Overview</content-tabs-header>
|
|
32
|
+
<content-tabs-header>Details</content-tabs-header>
|
|
33
|
+
<content-tabs-body is-open><p>Overview copy.</p></content-tabs-body>
|
|
34
|
+
<content-tabs-body><p>Details copy.</p></content-tabs-body>
|
|
35
|
+
</content-tabs>
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
The open state is a fact, not just an event: `.provision` holds
|
|
39
|
+
`{ tabType, openTabs, activeTab }`, where a tab is its header's `tab-name`
|
|
40
|
+
(or its index when unnamed) and `activeTab` is the first open one. Quark
|
|
41
|
+
reads it on the group and binds it anywhere below:
|
|
42
|
+
|
|
43
|
+
```quark
|
|
44
|
+
content-tabs {
|
|
45
|
+
$tab: prop("provision").activeTab;
|
|
46
|
+
h2 { content: $tab; }
|
|
47
|
+
}
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### API Reference
|
|
51
|
+
|
|
52
|
+
<include-content is-active template-ref="/views/api-reference/api-reference.html"></include-content>
|
|
53
|
+
|
|
54
|
+
### Examples
|
|
55
|
+
|
|
56
|
+
#### File tabs
|
|
57
|
+
|
|
58
|
+
`.file-tabs` renders each header like a folder tab, joined to its body.
|
|
59
|
+
|
|
60
|
+
<include-content data-demo="file-tabs"></include-content>
|
|
61
|
+
|
|
62
|
+
#### Multi-select accordion
|
|
63
|
+
|
|
64
|
+
`tab-type="multi"` lets any number of headers stay open — clicking one does not close the others. Also displayed are the tab headers as buttons, if using Valence.css.
|
|
65
|
+
|
|
66
|
+
Useful for building your own UI toggle systems.
|
|
67
|
+
|
|
68
|
+
<include-content data-demo="multi"></include-content>
|
|
69
|
+
|
|
70
|
+
#### Pair by tab-name
|
|
71
|
+
|
|
72
|
+
Give a header and body matching `tab-name` values to pair them regardless of their order in the DOM.
|
|
73
|
+
|
|
74
|
+
<include-content data-demo="named"></include-content>
|
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
{
|
|
2
|
+
"shortName": "content-tabs",
|
|
3
|
+
"package": {
|
|
4
|
+
"name": "@excom/content-tabs",
|
|
5
|
+
"version": "0.1.0",
|
|
6
|
+
"description": "<content-tabs> custom element",
|
|
7
|
+
"peerDependencies": {},
|
|
8
|
+
"excom": {
|
|
9
|
+
"packageType": "kit-element"
|
|
10
|
+
}
|
|
11
|
+
},
|
|
12
|
+
"demos": {
|
|
13
|
+
"file-tabs": "<content-tabs class=\"file-tabs\">\n <content-tabs-header is-open>index.ts</content-tabs-header>\n <content-tabs-header>utils.ts</content-tabs-header>\n <content-tabs-body is-open><pre>export const value = 1;</pre></content-tabs-body>\n <content-tabs-body><pre>export const double = (n) => n * 2;</pre></content-tabs-body>\n</content-tabs>\n",
|
|
14
|
+
"multi": "<content-tabs tab-type=\"multi\">\n <content-tabs-header is-open role=\"button\">Shipping</content-tabs-header>\n <content-tabs-header role=\"button\">Billing</content-tabs-header>\n <content-tabs-body is-open><p>Ships in 3-5 business days.</p></content-tabs-body>\n <content-tabs-body><p>Charged on shipment, not on order.</p></content-tabs-body>\n</content-tabs>\n",
|
|
15
|
+
"named": "<content-tabs class=\"underline\">\n <content-tabs-body tab-name=\"b\"><p>Body B — paired by name, not position.</p></content-tabs-body>\n <content-tabs-body tab-name=\"a\" is-open><p>Body A — paired by name, not position.</p></content-tabs-body>\n <content-tabs-header tab-name=\"a\" is-open>A</content-tabs-header>\n <content-tabs-header tab-name=\"b\">B</content-tabs-header>\n</content-tabs>\n",
|
|
16
|
+
"simple": "<content-tabs class=\"underline\">\n <content-tabs-header is-open>Overview</content-tabs-header>\n <content-tabs-header>Details</content-tabs-header>\n <content-tabs-header>Settings</content-tabs-header>\n <content-tabs-body is-open><p>Overview copy goes here.</p></content-tabs-body>\n <content-tabs-body><p>Details copy goes here.</p></content-tabs-body>\n <content-tabs-body><p>Settings copy goes here.</p></content-tabs-body>\n</content-tabs>\n"
|
|
17
|
+
},
|
|
18
|
+
"readme": "<h1 id=\"md-content-tabs\">content-tabs</h1>\n<p>Tabs and accordions — single, multi, or toggle selection, paired by name\nor position.</p>\n<p><include-content data-demo=\"simple\"></include-content></p>\n<h2 id=\"md-features\">Features</h2>\n<ul>\n<li><strong>Single / multi / toggle</strong> Radio-like tabs, an accordion, or re-click\nto close</li>\n<li><strong>Pair by name or position</strong> Match headers to bodies with <code>tab-name</code>,\nor by index when unnamed</li>\n<li><strong>Isolated nesting</strong> Nested <code><content-tabs></code> groups never cross-wire</li>\n<li><strong>Bindable state</strong> <code>.provision</code> is <code>{ tabType, openTabs, activeTab }</code> —\nread the active tab from Quark with <code>prop("provision")</code></li>\n<li><strong>Included looks</strong> <code>.underline</code> and <code>.file-tabs</code> styles ship built in</li>\n</ul>\n<h2 id=\"md-installation\">Installation</h2>\n<p><include-content is-active template-ref=\"/views/install-section/install-section.html\"></include-content></p>\n<h2 id=\"md-usage\">Usage</h2>\n<p>Put <code><content-tabs-header></code> and <code><content-tabs-body></code> elements inside\n<code><content-tabs></code>. A header pairs with the body sharing its <code>tab-name</code>,\nor by position when both are unnamed.</p>\n<include-content data-language=\"html\"><template><content-tabs class=\"underline\">\n <content-tabs-header is-open>Overview</content-tabs-header>\n <content-tabs-header>Details</content-tabs-header>\n <content-tabs-body is-open><p>Overview copy.</p></content-tabs-body>\n <content-tabs-body><p>Details copy.</p></content-tabs-body>\n</content-tabs></template></include-content>\n<p>The open state is a fact, not just an event: <code>.provision</code> holds\n<code>{ tabType, openTabs, activeTab }</code>, where a tab is its header's <code>tab-name</code>\n(or its index when unnamed) and <code>activeTab</code> is the first open one. Quark\nreads it on the group and binds it anywhere below:</p>\n<include-content data-language=\"quark\"><template>content-tabs {\n $tab: prop(\"provision\").activeTab;\n h2 { content: $tab; }\n}</template></include-content>\n<h3 id=\"md-api-reference\">API Reference</h3>\n<p><include-content is-active template-ref=\"/views/api-reference/api-reference.html\"></include-content></p>\n<h3 id=\"md-examples\">Examples</h3>\n<h4 id=\"md-file-tabs\">File tabs</h4>\n<p><code>.file-tabs</code> renders each header like a folder tab, joined to its body.</p>\n<p><include-content data-demo=\"file-tabs\"></include-content></p>\n<h4 id=\"md-multi-select-accordion\">Multi-select accordion</h4>\n<p><code>tab-type="multi"</code> lets any number of headers stay open — clicking one does not close the others. Also displayed are the tab headers as buttons, if using Valence.css.</p>\n<p>Useful for building your own UI toggle systems.</p>\n<p><include-content data-demo=\"multi\"></include-content></p>\n<h4 id=\"md-pair-by-tab-name\">Pair by tab-name</h4>\n<p>Give a header and body matching <code>tab-name</code> values to pair them regardless of their order in the DOM.</p>\n<p><include-content data-demo=\"named\"></include-content></p>\n",
|
|
19
|
+
"docs": {
|
|
20
|
+
"readme": "<h1 id=\"md-content-tabs\">content-tabs</h1>\n<p>Tabs and accordions — single, multi, or toggle selection, paired by name\nor position.</p>\n<p><include-content data-demo=\"simple\"></include-content></p>\n<h2 id=\"md-features\">Features</h2>\n<ul>\n<li><strong>Single / multi / toggle</strong> Radio-like tabs, an accordion, or re-click\nto close</li>\n<li><strong>Pair by name or position</strong> Match headers to bodies with <code>tab-name</code>,\nor by index when unnamed</li>\n<li><strong>Isolated nesting</strong> Nested <code><content-tabs></code> groups never cross-wire</li>\n<li><strong>Bindable state</strong> <code>.provision</code> is <code>{ tabType, openTabs, activeTab }</code> —\nread the active tab from Quark with <code>prop("provision")</code></li>\n<li><strong>Included looks</strong> <code>.underline</code> and <code>.file-tabs</code> styles ship built in</li>\n</ul>\n<h2 id=\"md-installation\">Installation</h2>\n<p><include-content is-active template-ref=\"/views/install-section/install-section.html\"></include-content></p>\n<h2 id=\"md-usage\">Usage</h2>\n<p>Put <code><content-tabs-header></code> and <code><content-tabs-body></code> elements inside\n<code><content-tabs></code>. A header pairs with the body sharing its <code>tab-name</code>,\nor by position when both are unnamed.</p>\n<include-content data-language=\"html\"><template><content-tabs class=\"underline\">\n <content-tabs-header is-open>Overview</content-tabs-header>\n <content-tabs-header>Details</content-tabs-header>\n <content-tabs-body is-open><p>Overview copy.</p></content-tabs-body>\n <content-tabs-body><p>Details copy.</p></content-tabs-body>\n</content-tabs></template></include-content>\n<p>The open state is a fact, not just an event: <code>.provision</code> holds\n<code>{ tabType, openTabs, activeTab }</code>, where a tab is its header's <code>tab-name</code>\n(or its index when unnamed) and <code>activeTab</code> is the first open one. Quark\nreads it on the group and binds it anywhere below:</p>\n<include-content data-language=\"quark\"><template>content-tabs {\n $tab: prop(\"provision\").activeTab;\n h2 { content: $tab; }\n}</template></include-content>\n<h3 id=\"md-api-reference\">API Reference</h3>\n<p><include-content is-active template-ref=\"/views/api-reference/api-reference.html\"></include-content></p>\n<h3 id=\"md-examples\">Examples</h3>\n<h4 id=\"md-file-tabs\">File tabs</h4>\n<p><code>.file-tabs</code> renders each header like a folder tab, joined to its body.</p>\n<p><include-content data-demo=\"file-tabs\"></include-content></p>\n<h4 id=\"md-multi-select-accordion\">Multi-select accordion</h4>\n<p><code>tab-type="multi"</code> lets any number of headers stay open — clicking one does not close the others. Also displayed are the tab headers as buttons, if using Valence.css.</p>\n<p>Useful for building your own UI toggle systems.</p>\n<p><include-content data-demo=\"multi\"></include-content></p>\n<h4 id=\"md-pair-by-tab-name\">Pair by tab-name</h4>\n<p>Give a header and body matching <code>tab-name</code> values to pair them regardless of their order in the DOM.</p>\n<p><include-content data-demo=\"named\"></include-content></p>\n"
|
|
21
|
+
},
|
|
22
|
+
"installation": {
|
|
23
|
+
"name": "@excom/content-tabs",
|
|
24
|
+
"shortName": "content-tabs",
|
|
25
|
+
"version": "0.1.0",
|
|
26
|
+
"description": "<content-tabs> custom element",
|
|
27
|
+
"packageType": "kit-element",
|
|
28
|
+
"cdn": "<script src=\"https://unpkg.com/@excom/kit-utils/dist/index.umd.min.js\"></script>\n<script src=\"https://unpkg.com/@excom/neutron/dist/index.umd.min.js\"></script>\n<script src=\"https://unpkg.com/@excom/content-tabs@0.1.0/dist/index.umd.min.js\"></script>\n<link rel=\"stylesheet\" href=\"https://unpkg.com/@excom/content-tabs@0.1.0/dist/index.css\">",
|
|
29
|
+
"install": {
|
|
30
|
+
"npm": "npm install @excom/content-tabs"
|
|
31
|
+
},
|
|
32
|
+
"imports": {
|
|
33
|
+
"js": "import \"@excom/content-tabs\";",
|
|
34
|
+
"css": "@import \"@excom/content-tabs\";",
|
|
35
|
+
"html": "<!-- import path to `node_modules` will depend on your build setup -->\n<script type=\"module\" src=\"/node_modules/@excom/content-tabs\"></script>\n<link rel=\"stylesheet\" href=\"/node_modules/@excom/content-tabs\">"
|
|
36
|
+
},
|
|
37
|
+
"peerDependencies": []
|
|
38
|
+
},
|
|
39
|
+
"elementApis": [
|
|
40
|
+
{
|
|
41
|
+
"tag": "content-tabs",
|
|
42
|
+
"summary": "Tabs / accordion — single, multi, or toggle selection.",
|
|
43
|
+
"kind": "class",
|
|
44
|
+
"attributes": [
|
|
45
|
+
{
|
|
46
|
+
"name": "tab-type",
|
|
47
|
+
"type": "string",
|
|
48
|
+
"description": "Selection mode. <code>single</code> opens one header at a time (radio-like); <code>multi</code> allows any number open at once (accordion); <code>toggle</code> is like <code>single</code>, but re-clicking the open header closes it.",
|
|
49
|
+
"fieldName": "tabType",
|
|
50
|
+
"surface": "option",
|
|
51
|
+
"default": "\"single\"",
|
|
52
|
+
"values": "\"single\" | \"multi\" | \"toggle\""
|
|
53
|
+
}
|
|
54
|
+
],
|
|
55
|
+
"events": [],
|
|
56
|
+
"slots": [],
|
|
57
|
+
"cssProperties": [
|
|
58
|
+
{
|
|
59
|
+
"name": "--content-tabs-active-indicator-height",
|
|
60
|
+
"description": "Height of the <code>.file-tabs</code> active-tab accent bar.",
|
|
61
|
+
"syntax": "<length>",
|
|
62
|
+
"default": "2px"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"name": "--content-tabs-body-padding",
|
|
66
|
+
"description": "Padding for each body in <code>.file-tabs</code>.",
|
|
67
|
+
"syntax": "<length>{1,4}",
|
|
68
|
+
"default": "var(--v-spacing, 15px)"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"name": "--content-tabs-border-color",
|
|
72
|
+
"description": "Border color for <code>.file-tabs</code> headers / bodies.",
|
|
73
|
+
"syntax": "<color>",
|
|
74
|
+
"default": "var(--v-muted-border-color, currentColor)"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"name": "--content-tabs-border-width",
|
|
78
|
+
"description": "Border width for <code>.file-tabs</code> headers / bodies.",
|
|
79
|
+
"syntax": "<length>",
|
|
80
|
+
"default": "var(--v-border-width, 2px)"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"name": "--content-tabs-color-active",
|
|
84
|
+
"description": "Text color for the active header in <code>.underline</code>.",
|
|
85
|
+
"syntax": "<color>",
|
|
86
|
+
"default": "var(--v-color-primary, inherit)"
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"name": "--content-tabs-header-padding",
|
|
90
|
+
"description": "Padding for each header.",
|
|
91
|
+
"syntax": "<length>{1,4}",
|
|
92
|
+
"default": "10px 15px"
|
|
93
|
+
}
|
|
94
|
+
],
|
|
95
|
+
"cssClasses": [
|
|
96
|
+
{
|
|
97
|
+
"name": "file-tabs",
|
|
98
|
+
"description": "File-explorer look — headers render as bordered folder tabs joined to the active body."
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"name": "underline",
|
|
102
|
+
"description": "Paper / underline look — the active header gets a bottom accent border instead of a bordered card."
|
|
103
|
+
}
|
|
104
|
+
],
|
|
105
|
+
"cssAliases": [
|
|
106
|
+
{
|
|
107
|
+
"name": ":--content-tab--is-open",
|
|
108
|
+
"selectors": [
|
|
109
|
+
"[is-open]",
|
|
110
|
+
"[aria-selected=\"true\"]"
|
|
111
|
+
],
|
|
112
|
+
"kind": "state",
|
|
113
|
+
"description": ""
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"name": ":--content-tabs",
|
|
117
|
+
"selectors": [
|
|
118
|
+
"content-tabs",
|
|
119
|
+
".tag-content-tabs"
|
|
120
|
+
],
|
|
121
|
+
"kind": "element",
|
|
122
|
+
"description": ""
|
|
123
|
+
}
|
|
124
|
+
],
|
|
125
|
+
"listens": [
|
|
126
|
+
{
|
|
127
|
+
"name": "content-tabs-header-opened",
|
|
128
|
+
"description": "Closes sibling headers when <code>tab-type</code> is <code>single</code> (default) or <code>toggle</code>.",
|
|
129
|
+
"type": "ContentTabsHeaderOpenedEvent",
|
|
130
|
+
"typeExpanded": "CustomEvent & { type: \"content-tabs-header-opened\"; detail: void; bubbles: true; cancelable: true; composed: true }"
|
|
131
|
+
}
|
|
132
|
+
],
|
|
133
|
+
"commands": [],
|
|
134
|
+
"defaultActions": [],
|
|
135
|
+
"expectedChildren": [
|
|
136
|
+
{
|
|
137
|
+
"name": "child:content-tabs-body",
|
|
138
|
+
"relationship": "child",
|
|
139
|
+
"selector": "content-tabs-body",
|
|
140
|
+
"required": true,
|
|
141
|
+
"description": "Panels shown / hidden to match their header."
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"name": "child:content-tabs-header",
|
|
145
|
+
"relationship": "child",
|
|
146
|
+
"selector": "content-tabs-header",
|
|
147
|
+
"required": true,
|
|
148
|
+
"description": "Clickable tab headers."
|
|
149
|
+
}
|
|
150
|
+
],
|
|
151
|
+
"provisions": [
|
|
152
|
+
{
|
|
153
|
+
"name": "provision",
|
|
154
|
+
"type": "ContentTabsProvision",
|
|
155
|
+
"typeExpanded": "{ tabType: string | null; openTabs: Array<string | number>; activeTab: string | number | null; }",
|
|
156
|
+
"description": "Open state: <code>{ tabType, openTabs, activeTab }</code>. A tab is its header's <code>tab-name</code>, or its index among this group's own headers when unnamed; <code>activeTab</code> is the first open one (<code>null</code> when none). Set after mount and after every header change (batched with the body sync). Not reflected as an attribute.",
|
|
157
|
+
"fieldName": "provision"
|
|
158
|
+
}
|
|
159
|
+
]
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
"tag": "content-tabs-body",
|
|
163
|
+
"summary": "Tab panel — visible when its paired header is open.",
|
|
164
|
+
"kind": "class",
|
|
165
|
+
"attributes": [
|
|
166
|
+
{
|
|
167
|
+
"name": "tab-name",
|
|
168
|
+
"type": "string",
|
|
169
|
+
"description": "Pairs this body with the <code><content-tabs-header></code> sharing the same <code>tab-name</code>. Unset headers / bodies pair by position instead.",
|
|
170
|
+
"fieldName": "tabName",
|
|
171
|
+
"surface": "option"
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
"name": "is-open",
|
|
175
|
+
"type": "boolean",
|
|
176
|
+
"description": "Visibility, kept in sync with the paired header's <code>is-open</code>. Set directly only if this body is not paired with a header.",
|
|
177
|
+
"fieldName": "isOpen",
|
|
178
|
+
"surface": "hybrid"
|
|
179
|
+
}
|
|
180
|
+
],
|
|
181
|
+
"events": [],
|
|
182
|
+
"slots": [],
|
|
183
|
+
"cssProperties": [],
|
|
184
|
+
"cssClasses": [],
|
|
185
|
+
"cssAliases": [
|
|
186
|
+
{
|
|
187
|
+
"name": ":--content-tabs-body",
|
|
188
|
+
"selectors": [
|
|
189
|
+
"content-tabs-body",
|
|
190
|
+
".tag-content-tabs-body"
|
|
191
|
+
],
|
|
192
|
+
"kind": "element",
|
|
193
|
+
"description": ""
|
|
194
|
+
}
|
|
195
|
+
],
|
|
196
|
+
"listens": [],
|
|
197
|
+
"commands": [],
|
|
198
|
+
"defaultActions": [],
|
|
199
|
+
"expectedChildren": [],
|
|
200
|
+
"provisions": []
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
"tag": "content-tabs-header",
|
|
204
|
+
"summary": "Tab header — opens its paired body on click.",
|
|
205
|
+
"kind": "class",
|
|
206
|
+
"attributes": [
|
|
207
|
+
{
|
|
208
|
+
"name": "tab-name",
|
|
209
|
+
"type": "string",
|
|
210
|
+
"description": "Pairs this header with the <code><content-tabs-body></code> sharing the same <code>tab-name</code>. Unset headers / bodies pair by position instead.",
|
|
211
|
+
"fieldName": "tabName",
|
|
212
|
+
"surface": "option"
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
"name": "is-open",
|
|
216
|
+
"type": "boolean",
|
|
217
|
+
"description": "Open state. Click sets or toggles this depending on the parent's <code>tab-type</code>; set it directly to drive the tab programmatically.",
|
|
218
|
+
"fieldName": "isOpen",
|
|
219
|
+
"surface": "hybrid"
|
|
220
|
+
}
|
|
221
|
+
],
|
|
222
|
+
"events": [
|
|
223
|
+
{
|
|
224
|
+
"name": "content-tabs-header-opened",
|
|
225
|
+
"description": "Whenever <code>is-open</code> is set. The parent <code><content-tabs></code> listens for this to close sibling headers.",
|
|
226
|
+
"type": "ContentTabsHeaderOpenedEvent",
|
|
227
|
+
"typeExpanded": "CustomEvent & { type: \"content-tabs-header-opened\"; detail: void; bubbles: true; cancelable: true; composed: true }"
|
|
228
|
+
}
|
|
229
|
+
],
|
|
230
|
+
"slots": [],
|
|
231
|
+
"cssProperties": [],
|
|
232
|
+
"cssClasses": [],
|
|
233
|
+
"cssAliases": [
|
|
234
|
+
{
|
|
235
|
+
"name": ":--content-tabs-header",
|
|
236
|
+
"selectors": [
|
|
237
|
+
"content-tabs-header",
|
|
238
|
+
".tag-content-tabs-header"
|
|
239
|
+
],
|
|
240
|
+
"kind": "element",
|
|
241
|
+
"description": ""
|
|
242
|
+
}
|
|
243
|
+
],
|
|
244
|
+
"listens": [],
|
|
245
|
+
"commands": [],
|
|
246
|
+
"defaultActions": [],
|
|
247
|
+
"expectedChildren": [],
|
|
248
|
+
"provisions": []
|
|
249
|
+
}
|
|
250
|
+
],
|
|
251
|
+
"exportedFiles": {}
|
|
252
|
+
}
|