@spectrum-web-components/action-button 0.10.15 → 0.10.17-overlay.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.
package/README.md CHANGED
@@ -468,9 +468,7 @@ The use of the `hold-affordance` attribute signifies that the `<sp-action-button
468
468
  <sp-icon-edit slot="icon"></sp-icon-edit>
469
469
  </sp-action-button>
470
470
  <sp-popover slot="longpress-content" dialog tip>
471
- <p
472
- style="color: var(--spectrum-body-m-text-color,var(--spectrum-alias-text-color));"
473
- >
471
+ <p style="color: var(--spectrum-neutral-content-color-default);">
474
472
  This content is triggered by the "longpress" interaction.
475
473
  </p>
476
474
  </sp-popover>
@@ -481,9 +479,7 @@ The use of the `hold-affordance` attribute signifies that the `<sp-action-button
481
479
  Show Longpress Content
482
480
  </sp-action-button>
483
481
  <sp-popover slot="longpress-content" dialog tip>
484
- <p
485
- style="color: var(--spectrum-body-m-text-color,var(--spectrum-alias-text-color));"
486
- >
482
+ <p style="color: var(--spectrum-neutral-content-color-default);">
487
483
  This content is triggered by the "longpress" interaction.
488
484
  </p>
489
485
  </sp-popover>
@@ -495,9 +491,7 @@ The use of the `hold-affordance` attribute signifies that the `<sp-action-button
495
491
  Extended Content with Longpress
496
492
  </sp-action-button>
497
493
  <sp-popover slot="longpress-content" dialog tip>
498
- <p
499
- style="color: var(--spectrum-body-m-text-color,var(--spectrum-alias-text-color));"
500
- >
494
+ <p style="color: var(--spectrum-neutral-content-color-default);">
501
495
  This content is triggered by the "longpress" interaction.
502
496
  </p>
503
497
  </sp-popover>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spectrum-web-components/action-button",
3
- "version": "0.10.15",
3
+ "version": "0.10.17-overlay.10+7a73c9eee",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -57,14 +57,14 @@
57
57
  "lit-html"
58
58
  ],
59
59
  "dependencies": {
60
- "@spectrum-web-components/base": "^0.7.5",
61
- "@spectrum-web-components/button": "^0.20.4",
62
- "@spectrum-web-components/icon": "^0.12.10",
63
- "@spectrum-web-components/icons-ui": "^0.9.11",
64
- "@spectrum-web-components/shared": "^0.15.6"
60
+ "@spectrum-web-components/base": "^0.7.6-overlay.54+7a73c9eee",
61
+ "@spectrum-web-components/button": "^0.20.6-overlay.10+7a73c9eee",
62
+ "@spectrum-web-components/icon": "^0.12.12-overlay.10+7a73c9eee",
63
+ "@spectrum-web-components/icons-ui": "^0.9.13-overlay.10+7a73c9eee",
64
+ "@spectrum-web-components/shared": "^0.15.8-overlay.10+7a73c9eee"
65
65
  },
66
66
  "devDependencies": {
67
- "@spectrum-css/actionbutton": "^3.0.20"
67
+ "@spectrum-css/actionbutton": "^3.0.31"
68
68
  },
69
69
  "types": "./src/index.d.ts",
70
70
  "customElements": "custom-elements.json",
@@ -72,5 +72,5 @@
72
72
  "./sp-*.js",
73
73
  "./**/*.dev.js"
74
74
  ],
75
- "gitHead": "fe316a3ee9fc753f0de98aece11e04227df73ab7"
75
+ "gitHead": "7a73c9eeec7dffb9c968f7f30586139b8e5ee348"
76
76
  }
@@ -43,6 +43,27 @@ describe("ActionButton", () => {
43
43
  expect(el.textContent).to.include("Button");
44
44
  await expect(el).to.be.accessible();
45
45
  });
46
+ it("manages a `tabindex`", async () => {
47
+ const el = await fixture(
48
+ html`
49
+ <sp-action-button>Button</sp-action-button>
50
+ `
51
+ );
52
+ expect(el.tabIndex).to.equal(0);
53
+ expect(el.disabled).to.be.false;
54
+ el.setAttribute("tabindex", "-1");
55
+ await elementUpdated(el);
56
+ expect(el.tabIndex).to.equal(-1);
57
+ expect(el.disabled).to.be.false;
58
+ el.disabled = true;
59
+ await elementUpdated(el);
60
+ expect(el.tabIndex).to.equal(-1);
61
+ expect(el.disabled).to.be.true;
62
+ el.disabled = false;
63
+ await elementUpdated(el);
64
+ expect(el.tabIndex).to.equal(-1);
65
+ expect(el.disabled).to.be.false;
66
+ });
46
67
  it("maintains a `size` attribute", async () => {
47
68
  const el = await fixture(
48
69
  html`
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["action-button.test.ts"],
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 '@spectrum-web-components/action-button/sp-action-button.js';\nimport {\n ActionButton,\n LONGPRESS_DURATION,\n} from '@spectrum-web-components/action-button';\nimport {\n aTimeout,\n elementUpdated,\n expect,\n fixture,\n html,\n waitUntil,\n} from '@open-wc/testing';\nimport { sendKeys } from '@web/test-runner-commands';\nimport { spy } from 'sinon';\nimport { testForLitDevWarnings } from '../../../test/testing-helpers.js';\nimport { m as BlackActionButton } from '../stories/action-button-black.stories.js';\n\ndescribe('ActionButton', () => {\n testForLitDevWarnings(\n async () =>\n await fixture<ActionButton>(\n BlackActionButton(BlackActionButton.args)\n )\n );\n it('loads default', async () => {\n const el = await fixture<ActionButton>(\n html`\n <sp-action-button>Button</sp-action-button>\n `\n );\n\n await elementUpdated(el);\n expect(el).to.not.be.undefined;\n expect(el.textContent).to.include('Button');\n await expect(el).to.be.accessible();\n });\n it('loads [hold-affordance]', async () => {\n const el = await fixture<ActionButton>(\n html`\n <sp-action-button hold-affordance>Button</sp-action-button>\n `\n );\n\n await elementUpdated(el);\n expect(el).to.not.be.undefined;\n expect(el.textContent).to.include('Button');\n await expect(el).to.be.accessible();\n });\n it('maintains a `size` attribute', async () => {\n const el = await fixture<ActionButton>(\n html`\n <sp-action-button>Button</sp-action-button>\n `\n );\n\n await elementUpdated(el);\n expect(el.size).to.equal('m');\n expect(el.getAttribute('size')).to.equal('m');\n el.removeAttribute('size');\n await elementUpdated(el);\n expect(el.size).to.equal('m');\n expect(el.getAttribute('size')).to.equal('m');\n });\n it('dispatches `longpress` events when [hold-affordance]', async () => {\n const longpressSpy = spy();\n const el = await fixture<ActionButton>(\n html`\n <sp-action-button\n hold-affordance\n @longpress=${() => longpressSpy()}\n >\n Button\n </sp-action-button>\n `\n );\n\n await elementUpdated(el);\n\n el.focus();\n await sendKeys({\n press: 'Space',\n });\n\n expect(longpressSpy.callCount).to.equal(1);\n await sendKeys({\n press: 'Alt+ArrowDown',\n });\n\n expect(longpressSpy.callCount).to.equal(2);\n el.dispatchEvent(new PointerEvent('pointerdown', { button: 0 }));\n el.dispatchEvent(new PointerEvent('pointerup'));\n el.dispatchEvent(new PointerEvent('pointerdown', { button: 0 }));\n await waitUntil(() => longpressSpy.callCount === 3);\n });\n it('does not dispatch `longpress` events when \"right click\"ed', async () => {\n const longpressSpy = spy();\n const el = await fixture<ActionButton>(\n html`\n <sp-action-button\n hold-affordance\n @longpress=${() => longpressSpy()}\n >\n Button\n </sp-action-button>\n `\n );\n\n await elementUpdated(el);\n expect(longpressSpy.callCount).to.equal(0);\n\n el.focus();\n el.dispatchEvent(new PointerEvent('pointerdown', { button: 1 }));\n await aTimeout(2 * LONGPRESS_DURATION);\n expect(longpressSpy.callCount).to.equal(0);\n });\n it(':not([toggles])', async () => {\n const el = await fixture<ActionButton>(\n html`\n <sp-action-button>Button</sp-action-button>\n `\n );\n\n await elementUpdated(el);\n const button = el.focusElement;\n\n expect(el.toggles).to.be.false;\n expect(el.selected).to.be.false;\n expect(button.hasAttribute('aria-pressed')).to.be.false;\n\n el.click();\n await elementUpdated(el);\n\n expect(el.toggles).to.be.false;\n expect(el.selected).to.be.false;\n expect(button.hasAttribute('aria-pressed')).to.be.false;\n });\n it('responds to [selected]', async () => {\n const el = await fixture<ActionButton>(\n html`\n <sp-action-button>Button</sp-action-button>\n `\n );\n\n await elementUpdated(el);\n const button = el.focusElement;\n\n expect(el.toggles).to.be.false;\n expect(el.selected).to.be.false;\n expect(button.hasAttribute('aria-pressed')).to.be.false;\n\n el.selected = true;\n await elementUpdated(el);\n\n expect(el.toggles).to.be.false;\n expect(el.selected).to.be.true;\n expect(button.getAttribute('aria-pressed')).to.equal('true');\n\n el.selected = false;\n await elementUpdated(el);\n\n expect(el.toggles).to.be.false;\n expect(el.selected).to.be.false;\n expect(button.hasAttribute('aria-pressed')).to.be.false;\n });\n it('toggles', async () => {\n const el = await fixture<ActionButton>(\n html`\n <sp-action-button toggles>Button</sp-action-button>\n `\n );\n\n await elementUpdated(el);\n const button = el.focusElement;\n\n expect(el.toggles).to.be.true;\n expect(el.selected).to.be.false;\n expect(button.getAttribute('aria-pressed')).to.equal('false');\n\n el.focus();\n await sendKeys({\n press: 'Space',\n });\n await elementUpdated(el);\n\n expect(el.toggles).to.be.true;\n expect(el.selected).to.be.true;\n expect(button.getAttribute('aria-pressed')).to.equal('true');\n\n el.addEventListener('change', (event: Event) => event.preventDefault());\n el.click();\n await elementUpdated(el);\n\n expect(el.toggles).to.be.true;\n expect(el.selected).to.be.true;\n expect(button.getAttribute('aria-pressed')).to.equal('true');\n });\n});\n"],
5
- "mappings": "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",
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 '@spectrum-web-components/action-button/sp-action-button.js';\nimport {\n ActionButton,\n LONGPRESS_DURATION,\n} from '@spectrum-web-components/action-button';\nimport {\n aTimeout,\n elementUpdated,\n expect,\n fixture,\n html,\n waitUntil,\n} from '@open-wc/testing';\nimport { sendKeys } from '@web/test-runner-commands';\nimport { spy } from 'sinon';\nimport { testForLitDevWarnings } from '../../../test/testing-helpers.js';\nimport { m as BlackActionButton } from '../stories/action-button-black.stories.js';\n\ndescribe('ActionButton', () => {\n testForLitDevWarnings(\n async () =>\n await fixture<ActionButton>(\n BlackActionButton(BlackActionButton.args)\n )\n );\n it('loads default', async () => {\n const el = await fixture<ActionButton>(\n html`\n <sp-action-button>Button</sp-action-button>\n `\n );\n\n await elementUpdated(el);\n expect(el).to.not.be.undefined;\n expect(el.textContent).to.include('Button');\n await expect(el).to.be.accessible();\n });\n it('loads [hold-affordance]', async () => {\n const el = await fixture<ActionButton>(\n html`\n <sp-action-button hold-affordance>Button</sp-action-button>\n `\n );\n\n await elementUpdated(el);\n expect(el).to.not.be.undefined;\n expect(el.textContent).to.include('Button');\n await expect(el).to.be.accessible();\n });\n it('manages a `tabindex`', async () => {\n const el = await fixture<ActionButton>(\n html`\n <sp-action-button>Button</sp-action-button>\n `\n );\n\n expect(el.tabIndex).to.equal(0);\n expect(el.disabled).to.be.false;\n\n el.setAttribute('tabindex', '-1');\n await elementUpdated(el);\n\n expect(el.tabIndex).to.equal(-1);\n expect(el.disabled).to.be.false;\n\n el.disabled = true;\n await elementUpdated(el);\n\n expect(el.tabIndex).to.equal(-1);\n expect(el.disabled).to.be.true;\n\n el.disabled = false;\n await elementUpdated(el);\n\n expect(el.tabIndex).to.equal(-1);\n expect(el.disabled).to.be.false;\n });\n it('maintains a `size` attribute', async () => {\n const el = await fixture<ActionButton>(\n html`\n <sp-action-button>Button</sp-action-button>\n `\n );\n\n await elementUpdated(el);\n expect(el.size).to.equal('m');\n expect(el.getAttribute('size')).to.equal('m');\n el.removeAttribute('size');\n await elementUpdated(el);\n expect(el.size).to.equal('m');\n expect(el.getAttribute('size')).to.equal('m');\n });\n it('dispatches `longpress` events when [hold-affordance]', async () => {\n const longpressSpy = spy();\n const el = await fixture<ActionButton>(\n html`\n <sp-action-button\n hold-affordance\n @longpress=${() => longpressSpy()}\n >\n Button\n </sp-action-button>\n `\n );\n\n await elementUpdated(el);\n\n el.focus();\n await sendKeys({\n press: 'Space',\n });\n\n expect(longpressSpy.callCount).to.equal(1);\n await sendKeys({\n press: 'Alt+ArrowDown',\n });\n\n expect(longpressSpy.callCount).to.equal(2);\n el.dispatchEvent(new PointerEvent('pointerdown', { button: 0 }));\n el.dispatchEvent(new PointerEvent('pointerup'));\n el.dispatchEvent(new PointerEvent('pointerdown', { button: 0 }));\n await waitUntil(() => longpressSpy.callCount === 3);\n });\n it('does not dispatch `longpress` events when \"right click\"ed', async () => {\n const longpressSpy = spy();\n const el = await fixture<ActionButton>(\n html`\n <sp-action-button\n hold-affordance\n @longpress=${() => longpressSpy()}\n >\n Button\n </sp-action-button>\n `\n );\n\n await elementUpdated(el);\n expect(longpressSpy.callCount).to.equal(0);\n\n el.focus();\n el.dispatchEvent(new PointerEvent('pointerdown', { button: 1 }));\n await aTimeout(2 * LONGPRESS_DURATION);\n expect(longpressSpy.callCount).to.equal(0);\n });\n it(':not([toggles])', async () => {\n const el = await fixture<ActionButton>(\n html`\n <sp-action-button>Button</sp-action-button>\n `\n );\n\n await elementUpdated(el);\n const button = el.focusElement;\n\n expect(el.toggles).to.be.false;\n expect(el.selected).to.be.false;\n expect(button.hasAttribute('aria-pressed')).to.be.false;\n\n el.click();\n await elementUpdated(el);\n\n expect(el.toggles).to.be.false;\n expect(el.selected).to.be.false;\n expect(button.hasAttribute('aria-pressed')).to.be.false;\n });\n it('responds to [selected]', async () => {\n const el = await fixture<ActionButton>(\n html`\n <sp-action-button>Button</sp-action-button>\n `\n );\n\n await elementUpdated(el);\n const button = el.focusElement;\n\n expect(el.toggles).to.be.false;\n expect(el.selected).to.be.false;\n expect(button.hasAttribute('aria-pressed')).to.be.false;\n\n el.selected = true;\n await elementUpdated(el);\n\n expect(el.toggles).to.be.false;\n expect(el.selected).to.be.true;\n expect(button.getAttribute('aria-pressed')).to.equal('true');\n\n el.selected = false;\n await elementUpdated(el);\n\n expect(el.toggles).to.be.false;\n expect(el.selected).to.be.false;\n expect(button.hasAttribute('aria-pressed')).to.be.false;\n });\n it('toggles', async () => {\n const el = await fixture<ActionButton>(\n html`\n <sp-action-button toggles>Button</sp-action-button>\n `\n );\n\n await elementUpdated(el);\n const button = el.focusElement;\n\n expect(el.toggles).to.be.true;\n expect(el.selected).to.be.false;\n expect(button.getAttribute('aria-pressed')).to.equal('false');\n\n el.focus();\n await sendKeys({\n press: 'Space',\n });\n await elementUpdated(el);\n\n expect(el.toggles).to.be.true;\n expect(el.selected).to.be.true;\n expect(button.getAttribute('aria-pressed')).to.equal('true');\n\n el.addEventListener('change', (event: Event) => event.preventDefault());\n el.click();\n await elementUpdated(el);\n\n expect(el.toggles).to.be.true;\n expect(el.selected).to.be.true;\n expect(button.getAttribute('aria-pressed')).to.equal('true');\n });\n});\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,342 +0,0 @@
1
- {
2
- "schemaVersion": "1.0.0",
3
- "readme": "",
4
- "modules": [
5
- {
6
- "kind": "javascript-module",
7
- "path": "sp-action-button.js",
8
- "declarations": [],
9
- "exports": [
10
- {
11
- "kind": "custom-element-definition",
12
- "name": "sp-action-button",
13
- "declaration": {
14
- "name": "ActionButton",
15
- "module": "/src/ActionButton.js"
16
- }
17
- }
18
- ]
19
- },
20
- {
21
- "kind": "javascript-module",
22
- "path": "src/ActionButton.js",
23
- "declarations": [
24
- {
25
- "kind": "variable",
26
- "name": "LONGPRESS_DURATION",
27
- "type": {
28
- "text": "number"
29
- },
30
- "default": "300"
31
- },
32
- {
33
- "kind": "class",
34
- "description": "",
35
- "name": "ActionButton",
36
- "slots": [
37
- {
38
- "description": "text label of the Action Button",
39
- "name": ""
40
- },
41
- {
42
- "description": "The icon to use for Action Button",
43
- "name": "icon"
44
- }
45
- ],
46
- "members": [
47
- {
48
- "kind": "field",
49
- "name": "emphasized",
50
- "type": {
51
- "text": "boolean"
52
- },
53
- "privacy": "public",
54
- "default": "false",
55
- "attribute": "emphasized",
56
- "reflects": true
57
- },
58
- {
59
- "kind": "field",
60
- "name": "holdAffordance",
61
- "type": {
62
- "text": "boolean"
63
- },
64
- "privacy": "public",
65
- "default": "false",
66
- "attribute": "hold-affordance",
67
- "reflects": true
68
- },
69
- {
70
- "kind": "field",
71
- "name": "quiet",
72
- "type": {
73
- "text": "boolean"
74
- },
75
- "privacy": "public",
76
- "default": "false",
77
- "attribute": "quiet",
78
- "reflects": true
79
- },
80
- {
81
- "kind": "field",
82
- "name": "role",
83
- "type": {
84
- "text": "string"
85
- },
86
- "privacy": "public",
87
- "default": "'button'",
88
- "attribute": "role",
89
- "reflects": true
90
- },
91
- {
92
- "kind": "field",
93
- "name": "selected",
94
- "type": {
95
- "text": "boolean"
96
- },
97
- "privacy": "public",
98
- "default": "false",
99
- "description": "Whether an Action Button with `role='button'`\nshould also be `aria-pressed='true'`",
100
- "attribute": "selected",
101
- "reflects": true
102
- },
103
- {
104
- "kind": "field",
105
- "name": "toggles",
106
- "type": {
107
- "text": "boolean"
108
- },
109
- "privacy": "public",
110
- "default": "false",
111
- "description": "Whether to automatically manage the `selected`\nattribute on interaction and whether `aria-pressed=\"false\"`\nshould be used when `selected === false`",
112
- "attribute": "toggles",
113
- "reflects": true
114
- },
115
- {
116
- "kind": "field",
117
- "name": "variant",
118
- "type": {
119
- "text": "'white' | 'black' | undefined"
120
- },
121
- "privacy": "public",
122
- "attribute": "variant",
123
- "reflects": true
124
- },
125
- {
126
- "kind": "field",
127
- "name": "value",
128
- "type": {
129
- "text": "string"
130
- },
131
- "privacy": "public",
132
- "attribute": "value"
133
- },
134
- {
135
- "kind": "field",
136
- "name": "_value",
137
- "type": {
138
- "text": "string"
139
- },
140
- "privacy": "private",
141
- "default": "''"
142
- },
143
- {
144
- "kind": "field",
145
- "name": "itemText",
146
- "type": {
147
- "text": "string"
148
- },
149
- "privacy": "private"
150
- },
151
- {
152
- "kind": "field",
153
- "name": "onClick",
154
- "privacy": "private"
155
- },
156
- {
157
- "kind": "method",
158
- "name": "onPointerdown",
159
- "privacy": "private",
160
- "return": {
161
- "type": {
162
- "text": "void"
163
- }
164
- },
165
- "parameters": [
166
- {
167
- "name": "event",
168
- "type": {
169
- "text": "PointerEvent"
170
- }
171
- }
172
- ]
173
- },
174
- {
175
- "kind": "method",
176
- "name": "onPointerup",
177
- "privacy": "private",
178
- "return": {
179
- "type": {
180
- "text": "void"
181
- }
182
- }
183
- },
184
- {
185
- "kind": "method",
186
- "name": "handleKeydown",
187
- "privacy": "private",
188
- "return": {
189
- "type": {
190
- "text": "void"
191
- }
192
- },
193
- "parameters": [
194
- {
195
- "name": "event",
196
- "type": {
197
- "text": "KeyboardEvent"
198
- }
199
- }
200
- ]
201
- },
202
- {
203
- "kind": "method",
204
- "name": "handleKeyup",
205
- "privacy": "protected",
206
- "return": {
207
- "type": {
208
- "text": "void"
209
- }
210
- },
211
- "parameters": [
212
- {
213
- "name": "event",
214
- "type": {
215
- "text": "KeyboardEvent"
216
- }
217
- }
218
- ]
219
- },
220
- {
221
- "kind": "field",
222
- "name": "buttonContent",
223
- "type": {
224
- "text": "TemplateResult[]"
225
- },
226
- "privacy": "protected"
227
- }
228
- ],
229
- "events": [
230
- {
231
- "name": "longpress",
232
- "type": {
233
- "text": "CustomEvent"
234
- },
235
- "description": "Synthesizes a \"longpress\" interaction that signifies a `pointerdown` event that is >=300ms or a keyboard event wher code is `Space` or code is `ArrowDown` while `altKey===true`."
236
- },
237
- {
238
- "description": "Announces a change in the `selected` property of an action button",
239
- "name": "change"
240
- }
241
- ],
242
- "attributes": [
243
- {
244
- "name": "emphasized",
245
- "type": {
246
- "text": "boolean"
247
- },
248
- "default": "false",
249
- "fieldName": "emphasized"
250
- },
251
- {
252
- "name": "hold-affordance",
253
- "type": {
254
- "text": "boolean"
255
- },
256
- "default": "false",
257
- "fieldName": "holdAffordance"
258
- },
259
- {
260
- "name": "quiet",
261
- "type": {
262
- "text": "boolean"
263
- },
264
- "default": "false",
265
- "fieldName": "quiet"
266
- },
267
- {
268
- "name": "role",
269
- "type": {
270
- "text": "string"
271
- },
272
- "default": "'button'",
273
- "fieldName": "role"
274
- },
275
- {
276
- "name": "selected",
277
- "type": {
278
- "text": "boolean"
279
- },
280
- "default": "false",
281
- "description": "Whether an Action Button with `role='button'`\nshould also be `aria-pressed='true'`",
282
- "fieldName": "selected"
283
- },
284
- {
285
- "name": "toggles",
286
- "type": {
287
- "text": "boolean"
288
- },
289
- "default": "false",
290
- "description": "Whether to automatically manage the `selected`\nattribute on interaction and whether `aria-pressed=\"false\"`\nshould be used when `selected === false`",
291
- "fieldName": "toggles"
292
- },
293
- {
294
- "name": "variant",
295
- "type": {
296
- "text": "'white' | 'black' | undefined"
297
- },
298
- "fieldName": "variant"
299
- },
300
- {
301
- "name": "value",
302
- "type": {
303
- "text": "string"
304
- },
305
- "fieldName": "value"
306
- }
307
- ],
308
- "mixins": [
309
- {
310
- "name": "SizedMixin",
311
- "package": "@spectrum-web-components/base"
312
- }
313
- ],
314
- "superclass": {
315
- "name": "ButtonBase",
316
- "package": "@spectrum-web-components/button"
317
- },
318
- "tagName": "sp-action-button",
319
- "customElement": true
320
- }
321
- ],
322
- "exports": [
323
- {
324
- "kind": "js",
325
- "name": "LONGPRESS_DURATION",
326
- "declaration": {
327
- "name": "LONGPRESS_DURATION",
328
- "module": "src/ActionButton.js"
329
- }
330
- },
331
- {
332
- "kind": "js",
333
- "name": "ActionButton",
334
- "declaration": {
335
- "name": "ActionButton",
336
- "module": "src/ActionButton.js"
337
- }
338
- }
339
- ]
340
- }
341
- ]
342
- }