@spectrum-web-components/checkbox 0.0.0-20241209155954
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 +164 -0
- package/package.json +83 -0
- package/sp-checkbox.d.ts +6 -0
- package/sp-checkbox.dev.js +5 -0
- package/sp-checkbox.dev.js.map +7 -0
- package/sp-checkbox.js +2 -0
- package/sp-checkbox.js.map +7 -0
- package/src/Checkbox.d.ts +43 -0
- package/src/Checkbox.dev.js +192 -0
- package/src/Checkbox.dev.js.map +7 -0
- package/src/Checkbox.js +49 -0
- package/src/Checkbox.js.map +7 -0
- package/src/CheckboxBase.d.ts +9 -0
- package/src/CheckboxBase.dev.js +9 -0
- package/src/CheckboxBase.dev.js.map +7 -0
- package/src/CheckboxBase.js +2 -0
- package/src/CheckboxBase.js.map +7 -0
- package/src/CheckboxMixin.d.ts +14 -0
- package/src/CheckboxMixin.dev.js +71 -0
- package/src/CheckboxMixin.dev.js.map +7 -0
- package/src/CheckboxMixin.js +11 -0
- package/src/CheckboxMixin.js.map +7 -0
- package/src/checkbox-overrides.css.d.ts +2 -0
- package/src/checkbox-overrides.css.dev.js +7 -0
- package/src/checkbox-overrides.css.dev.js.map +7 -0
- package/src/checkbox-overrides.css.js +4 -0
- package/src/checkbox-overrides.css.js.map +7 -0
- package/src/checkbox.css.d.ts +2 -0
- package/src/checkbox.css.dev.js +7 -0
- package/src/checkbox.css.dev.js.map +7 -0
- package/src/checkbox.css.js +4 -0
- package/src/checkbox.css.js.map +7 -0
- package/src/index.d.ts +1 -0
- package/src/index.dev.js +3 -0
- package/src/index.dev.js.map +7 -0
- package/src/index.js +2 -0
- package/src/index.js.map +7 -0
- package/src/spectrum-checkbox.css.d.ts +2 -0
- package/src/spectrum-checkbox.css.dev.js +7 -0
- package/src/spectrum-checkbox.css.dev.js.map +7 -0
- package/src/spectrum-checkbox.css.js +4 -0
- package/src/spectrum-checkbox.css.js.map +7 -0
- package/src/spectrum-config.js +111 -0
package/README.md
ADDED
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
## Description
|
|
2
|
+
|
|
3
|
+
`<sp-checkbox>` allow users to select multiple items from a list of independent
|
|
4
|
+
options, or to mark an individual option as selected.
|
|
5
|
+
|
|
6
|
+
Should I use a checkbox or a switch? Use a switch when activating something
|
|
7
|
+
instead of selecting.
|
|
8
|
+
|
|
9
|
+
### Usage
|
|
10
|
+
|
|
11
|
+
[](https://www.npmjs.com/package/@spectrum-web-components/checkbox)
|
|
12
|
+
[](https://bundlephobia.com/result?p=@spectrum-web-components/checkbox)
|
|
13
|
+
[](https://webcomponents.dev/edit/collection/fO75441E1Q5ZlI0e9pgq/jeIGAXHMUrTp6hGMquoD/src/index.ts)
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
yarn add @spectrum-web-components/checkbox
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Import the side effectful registration of `<sp-checkbox>` via:
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
import '@spectrum-web-components/checkbox/sp-checkbox.js';
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
When looking to leverage the `Checkbox` base class as a type and/or for extension purposes, do so via:
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
import { Checkbox } from '@spectrum-web-components/checkbox';
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Sizes
|
|
32
|
+
|
|
33
|
+
<sp-tabs selected="m" auto label="Size Attribute Options">
|
|
34
|
+
<sp-tab value="s">Small</sp-tab>
|
|
35
|
+
<sp-tab-panel value="s">
|
|
36
|
+
|
|
37
|
+
```html demo
|
|
38
|
+
<sp-field-group>
|
|
39
|
+
<sp-checkbox size="s">Small</sp-checkbox>
|
|
40
|
+
<sp-checkbox size="s" checked>Small Checked</sp-checkbox>
|
|
41
|
+
<sp-checkbox size="s" indeterminate>Small Indeterminate</sp-checkbox>
|
|
42
|
+
</sp-field-group>
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
</sp-tab-panel>
|
|
46
|
+
<sp-tab value="m">Medium</sp-tab>
|
|
47
|
+
<sp-tab-panel value="m">
|
|
48
|
+
|
|
49
|
+
```html demo
|
|
50
|
+
<sp-field-group>
|
|
51
|
+
<sp-checkbox size="m">Medium</sp-checkbox>
|
|
52
|
+
<sp-checkbox size="m" checked>Medium Checked</sp-checkbox>
|
|
53
|
+
<sp-checkbox size="m" indeterminate>Medium Indeterminate</sp-checkbox>
|
|
54
|
+
</sp-field-group>
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
</sp-tab-panel>
|
|
58
|
+
<sp-tab value="l">Large</sp-tab>
|
|
59
|
+
<sp-tab-panel value="l">
|
|
60
|
+
|
|
61
|
+
```html demo
|
|
62
|
+
<sp-field-group>
|
|
63
|
+
<sp-checkbox size="l">Large</sp-checkbox>
|
|
64
|
+
<sp-checkbox size="l" checked>Large Checked</sp-checkbox>
|
|
65
|
+
<sp-checkbox size="l" indeterminate>Large Indeterminate</sp-checkbox>
|
|
66
|
+
</sp-field-group>
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
</sp-tab-panel>
|
|
70
|
+
<sp-tab value="xl">Extra Large</sp-tab>
|
|
71
|
+
<sp-tab-panel value="xl">
|
|
72
|
+
|
|
73
|
+
```html demo
|
|
74
|
+
<sp-field-group>
|
|
75
|
+
<sp-checkbox size="xl">Extra Large</sp-checkbox>
|
|
76
|
+
<sp-checkbox size="xl" checked>Extra Large Checked</sp-checkbox>
|
|
77
|
+
<sp-checkbox size="xl" indeterminate>Extra Large Indeterminate</sp-checkbox>
|
|
78
|
+
</sp-field-group>
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
</sp-tab-panel>
|
|
82
|
+
</sp-tabs>
|
|
83
|
+
|
|
84
|
+
## Variants
|
|
85
|
+
|
|
86
|
+
### Standard checkboxes
|
|
87
|
+
|
|
88
|
+
Standard checkboxes are the default style for checkboxes. They are optimal for
|
|
89
|
+
application panels where all visual elements are monochrome in order to direct
|
|
90
|
+
focus to the content.
|
|
91
|
+
|
|
92
|
+
```html-live
|
|
93
|
+
<div style="display: flex; justify-content: space-between;">
|
|
94
|
+
<div style="display: flex; flex-direction: column;">
|
|
95
|
+
<h4 class="spectrum-Heading--subtitle1">Default</h4>
|
|
96
|
+
<sp-checkbox>Web component</sp-checkbox>
|
|
97
|
+
<sp-checkbox checked>Web component</sp-checkbox>
|
|
98
|
+
<sp-checkbox indeterminate>Web component</sp-checkbox>
|
|
99
|
+
</div>
|
|
100
|
+
|
|
101
|
+
<div style="display: flex; flex-direction: column;">
|
|
102
|
+
<h4 class="spectrum-Heading--subtitle1">Invalid</h4>
|
|
103
|
+
<sp-checkbox invalid>Web component</sp-checkbox>
|
|
104
|
+
<sp-checkbox checked invalid>Web component</sp-checkbox>
|
|
105
|
+
<sp-checkbox indeterminate invalid>Web component</sp-checkbox>
|
|
106
|
+
</div>
|
|
107
|
+
|
|
108
|
+
<div style="display: flex; flex-direction: column;">
|
|
109
|
+
<h4 class="spectrum-Heading--subtitle1">Disabled</h4>
|
|
110
|
+
<sp-checkbox disabled>Web component</sp-checkbox>
|
|
111
|
+
<sp-checkbox checked disabled>Web component</sp-checkbox>
|
|
112
|
+
<sp-checkbox indeterminate disabled>Web component</sp-checkbox>
|
|
113
|
+
</div>
|
|
114
|
+
</div>
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### Emphasized checkboxes
|
|
118
|
+
|
|
119
|
+
Emphasized checkboxes are a secondary style for checkboxes. The blue color
|
|
120
|
+
provides a visual prominence that is optimal for forms, settings, lists or grids
|
|
121
|
+
of assets, etc. where the checkboxes need to be noticed.
|
|
122
|
+
|
|
123
|
+
```html-live
|
|
124
|
+
<div style="display: flex; justify-content: space-between;">
|
|
125
|
+
<div style="display: flex; flex-direction: column; justify-content: space-between;">
|
|
126
|
+
<h4 class="spectrum-Heading--subtitle1">Default</h4>
|
|
127
|
+
<sp-checkbox emphasized>Web component</sp-checkbox>
|
|
128
|
+
<sp-checkbox emphasized checked>Web component</sp-checkbox>
|
|
129
|
+
<sp-checkbox emphasized indeterminate>Web component</sp-checkbox>
|
|
130
|
+
</div>
|
|
131
|
+
|
|
132
|
+
<div style="display: flex; flex-direction: column;">
|
|
133
|
+
<h4 class="spectrum-Heading--subtitle1">Invalid</h4>
|
|
134
|
+
<sp-checkbox emphasized invalid>Web component</sp-checkbox>
|
|
135
|
+
<sp-checkbox emphasized checked invalid>Web component</sp-checkbox>
|
|
136
|
+
<sp-checkbox emphasized indeterminate invalid>Web component</sp-checkbox>
|
|
137
|
+
</div>
|
|
138
|
+
|
|
139
|
+
<div style="display: flex; flex-direction: column;">
|
|
140
|
+
<h4 class="spectrum-Heading--subtitle1">Disabled</h4>
|
|
141
|
+
<sp-checkbox emphasized disabled>Web component</sp-checkbox>
|
|
142
|
+
<sp-checkbox emphasized checked disabled>Web component</sp-checkbox>
|
|
143
|
+
<sp-checkbox emphasized indeterminate disabled>Web component</sp-checkbox>
|
|
144
|
+
</div>
|
|
145
|
+
</div>
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### Handling events
|
|
149
|
+
|
|
150
|
+
Event handlers for clicks and other user actions can be registered on an `<sp-checkbox>` as they would a standard `<input type="checkbox">` element.
|
|
151
|
+
|
|
152
|
+
```html
|
|
153
|
+
<sp-checkbox
|
|
154
|
+
id="checkbox-example"
|
|
155
|
+
onclick="spAlert(this, '<sp-radio> clicked!')"
|
|
156
|
+
>
|
|
157
|
+
Web component
|
|
158
|
+
</sp-checkbox>
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
## Accessibility
|
|
162
|
+
|
|
163
|
+
Checkboxes are accessible by default, rendered in HTML using the `<input type="checkbox">` element. When the checkbox is set as `indeterminate` or
|
|
164
|
+
`invalid`, the appropriate ARIA state attribute will automatically be applied.
|
package/package.json
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@spectrum-web-components/checkbox",
|
|
3
|
+
"version": "0.0.0-20241209155954",
|
|
4
|
+
"publishConfig": {
|
|
5
|
+
"access": "public"
|
|
6
|
+
},
|
|
7
|
+
"description": "",
|
|
8
|
+
"license": "Apache-2.0",
|
|
9
|
+
"repository": {
|
|
10
|
+
"type": "git",
|
|
11
|
+
"url": "https://github.com/adobe/spectrum-web-components.git",
|
|
12
|
+
"directory": "packages/checkbox"
|
|
13
|
+
},
|
|
14
|
+
"author": "",
|
|
15
|
+
"homepage": "https://opensource.adobe.com/spectrum-web-components/components/checkbox",
|
|
16
|
+
"bugs": {
|
|
17
|
+
"url": "https://github.com/adobe/spectrum-web-components/issues"
|
|
18
|
+
},
|
|
19
|
+
"main": "./src/index.js",
|
|
20
|
+
"module": "./src/index.js",
|
|
21
|
+
"type": "module",
|
|
22
|
+
"exports": {
|
|
23
|
+
".": {
|
|
24
|
+
"development": "./src/index.dev.js",
|
|
25
|
+
"default": "./src/index.js"
|
|
26
|
+
},
|
|
27
|
+
"./package.json": "./package.json",
|
|
28
|
+
"./src/Checkbox.js": {
|
|
29
|
+
"development": "./src/Checkbox.dev.js",
|
|
30
|
+
"default": "./src/Checkbox.js"
|
|
31
|
+
},
|
|
32
|
+
"./src/CheckboxBase.js": {
|
|
33
|
+
"development": "./src/CheckboxBase.dev.js",
|
|
34
|
+
"default": "./src/CheckboxBase.js"
|
|
35
|
+
},
|
|
36
|
+
"./src/CheckboxMixin.js": {
|
|
37
|
+
"development": "./src/CheckboxMixin.dev.js",
|
|
38
|
+
"default": "./src/CheckboxMixin.js"
|
|
39
|
+
},
|
|
40
|
+
"./src/checkbox-overrides.css.js": "./src/checkbox-overrides.css.js",
|
|
41
|
+
"./src/checkbox.css.js": "./src/checkbox.css.js",
|
|
42
|
+
"./src/index.js": {
|
|
43
|
+
"development": "./src/index.dev.js",
|
|
44
|
+
"default": "./src/index.js"
|
|
45
|
+
},
|
|
46
|
+
"./sp-checkbox.js": {
|
|
47
|
+
"development": "./sp-checkbox.dev.js",
|
|
48
|
+
"default": "./sp-checkbox.js"
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
"scripts": {
|
|
52
|
+
"test": "echo \"Error: run tests from mono-repo root.\" && exit 1"
|
|
53
|
+
},
|
|
54
|
+
"files": [
|
|
55
|
+
"**/*.d.ts",
|
|
56
|
+
"**/*.js",
|
|
57
|
+
"**/*.js.map",
|
|
58
|
+
"custom-elements.json",
|
|
59
|
+
"!stories/",
|
|
60
|
+
"!test/"
|
|
61
|
+
],
|
|
62
|
+
"keywords": [
|
|
63
|
+
"spectrum css",
|
|
64
|
+
"web components",
|
|
65
|
+
"lit-element",
|
|
66
|
+
"lit-html"
|
|
67
|
+
],
|
|
68
|
+
"dependencies": {
|
|
69
|
+
"@spectrum-web-components/base": "0.0.0-20241209155954",
|
|
70
|
+
"@spectrum-web-components/icon": "0.0.0-20241209155954",
|
|
71
|
+
"@spectrum-web-components/icons-ui": "0.0.0-20241209155954",
|
|
72
|
+
"@spectrum-web-components/shared": "0.0.0-20241209155954"
|
|
73
|
+
},
|
|
74
|
+
"devDependencies": {
|
|
75
|
+
"@spectrum-css/checkbox": "^10.0.0-s2-foundations.18"
|
|
76
|
+
},
|
|
77
|
+
"types": "./src/index.d.ts",
|
|
78
|
+
"customElements": "custom-elements.json",
|
|
79
|
+
"sideEffects": [
|
|
80
|
+
"./sp-*.js",
|
|
81
|
+
"./**/*.dev.js"
|
|
82
|
+
]
|
|
83
|
+
}
|
package/sp-checkbox.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["sp-checkbox.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*/\nimport { Checkbox } from './src/Checkbox.dev.js'\nimport { defineElement } from '@spectrum-web-components/base/src/define-element.js';\n\ndefineElement('sp-checkbox', Checkbox);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'sp-checkbox': Checkbox;\n }\n}\n"],
|
|
5
|
+
"mappings": ";AAWA,SAAS,gBAAgB;AACzB,SAAS,qBAAqB;AAE9B,cAAc,eAAe,QAAQ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/sp-checkbox.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["sp-checkbox.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*/\nimport { Checkbox } from './src/Checkbox.js';\nimport { defineElement } from '@spectrum-web-components/base/src/define-element.js';\n\ndefineElement('sp-checkbox', Checkbox);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'sp-checkbox': Checkbox;\n }\n}\n"],
|
|
5
|
+
"mappings": "aAWA,OAAS,YAAAA,MAAgB,oBACzB,OAAS,iBAAAC,MAAqB,sDAE9BA,EAAc,cAAeD,CAAQ",
|
|
6
|
+
"names": ["Checkbox", "defineElement"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { CSSResultArray, PropertyValues, SpectrumElement, TemplateResult } from '@spectrum-web-components/base';
|
|
2
|
+
import '@spectrum-web-components/icons-ui/icons/sp-icon-checkmark75.js';
|
|
3
|
+
import '@spectrum-web-components/icons-ui/icons/sp-icon-checkmark100.js';
|
|
4
|
+
import '@spectrum-web-components/icons-ui/icons/sp-icon-checkmark200.js';
|
|
5
|
+
import '@spectrum-web-components/icons-ui/icons/sp-icon-checkmark300.js';
|
|
6
|
+
import '@spectrum-web-components/icons-ui/icons/sp-icon-dash75.js';
|
|
7
|
+
import '@spectrum-web-components/icons-ui/icons/sp-icon-dash100.js';
|
|
8
|
+
import '@spectrum-web-components/icons-ui/icons/sp-icon-dash200.js';
|
|
9
|
+
import '@spectrum-web-components/icons-ui/icons/sp-icon-dash300.js';
|
|
10
|
+
declare const Checkbox_base: typeof SpectrumElement & {
|
|
11
|
+
new (...args: any[]): import("./CheckboxMixin.js").CheckboxElement;
|
|
12
|
+
prototype: import("./CheckboxMixin.js").CheckboxElement;
|
|
13
|
+
} & {
|
|
14
|
+
new (...args: any[]): import("@spectrum-web-components/base").SizedElementInterface;
|
|
15
|
+
prototype: import("@spectrum-web-components/base").SizedElementInterface;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* @element sp-checkbox
|
|
19
|
+
* @slot - content to display as the label for the Checkbox
|
|
20
|
+
* @fires change - Announces a change in the `checked` property of a Checkbox
|
|
21
|
+
*/
|
|
22
|
+
export declare class Checkbox extends Checkbox_base {
|
|
23
|
+
static shadowRootOptions: {
|
|
24
|
+
delegatesFocus: boolean;
|
|
25
|
+
mode: ShadowRootMode;
|
|
26
|
+
slotAssignment?: SlotAssignmentMode | undefined;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Disable this control. It will not receive focus or events
|
|
30
|
+
*/
|
|
31
|
+
disabled: boolean;
|
|
32
|
+
indeterminate: boolean;
|
|
33
|
+
invalid: boolean;
|
|
34
|
+
emphasized: boolean;
|
|
35
|
+
tabIndex: number;
|
|
36
|
+
connectedCallback(): void;
|
|
37
|
+
static get styles(): CSSResultArray;
|
|
38
|
+
click(): void;
|
|
39
|
+
handleChange(): void;
|
|
40
|
+
protected render(): TemplateResult;
|
|
41
|
+
protected updated(changes: PropertyValues): void;
|
|
42
|
+
}
|
|
43
|
+
export {};
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __decorateClass = (decorators, target, key, kind) => {
|
|
5
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
6
|
+
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
7
|
+
if (decorator = decorators[i])
|
|
8
|
+
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
9
|
+
if (kind && result) __defProp(target, key, result);
|
|
10
|
+
return result;
|
|
11
|
+
};
|
|
12
|
+
import {
|
|
13
|
+
html,
|
|
14
|
+
SizedMixin,
|
|
15
|
+
SpectrumElement
|
|
16
|
+
} from "@spectrum-web-components/base";
|
|
17
|
+
import { property } from "@spectrum-web-components/base/src/decorators.js";
|
|
18
|
+
import { CheckboxMixin } from "./CheckboxMixin.dev.js";
|
|
19
|
+
import checkboxStyles from "./checkbox.css.js";
|
|
20
|
+
import "@spectrum-web-components/icons-ui/icons/sp-icon-checkmark75.js";
|
|
21
|
+
import "@spectrum-web-components/icons-ui/icons/sp-icon-checkmark100.js";
|
|
22
|
+
import "@spectrum-web-components/icons-ui/icons/sp-icon-checkmark200.js";
|
|
23
|
+
import "@spectrum-web-components/icons-ui/icons/sp-icon-checkmark300.js";
|
|
24
|
+
import "@spectrum-web-components/icons-ui/icons/sp-icon-dash75.js";
|
|
25
|
+
import "@spectrum-web-components/icons-ui/icons/sp-icon-dash100.js";
|
|
26
|
+
import "@spectrum-web-components/icons-ui/icons/sp-icon-dash200.js";
|
|
27
|
+
import "@spectrum-web-components/icons-ui/icons/sp-icon-dash300.js";
|
|
28
|
+
import checkmarkSmallStyles from "@spectrum-web-components/icon/src/spectrum-icon-checkmark.css.js";
|
|
29
|
+
import checkmarkSmallOverrides from "@spectrum-web-components/icon/src/icon-checkmark-overrides.css.js";
|
|
30
|
+
import dashSmallStyles from "@spectrum-web-components/icon/src/spectrum-icon-dash.css.js";
|
|
31
|
+
import dashSmallOverrides from "@spectrum-web-components/icon/src/icon-dash-overrides.css.js";
|
|
32
|
+
const checkmarkIcon = {
|
|
33
|
+
s: () => {
|
|
34
|
+
return html`
|
|
35
|
+
<sp-icon-checkmark75
|
|
36
|
+
id="checkmark"
|
|
37
|
+
class="spectrum-Icon spectrum-UIIcon-Checkmark75"
|
|
38
|
+
></sp-icon-checkmark75>
|
|
39
|
+
`;
|
|
40
|
+
},
|
|
41
|
+
m: () => {
|
|
42
|
+
return html`
|
|
43
|
+
<sp-icon-checkmark100
|
|
44
|
+
id="checkmark"
|
|
45
|
+
class="spectrum-Icon spectrum-UIIcon-Checkmark100"
|
|
46
|
+
></sp-icon-checkmark100>
|
|
47
|
+
`;
|
|
48
|
+
},
|
|
49
|
+
l: () => {
|
|
50
|
+
return html`
|
|
51
|
+
<sp-icon-checkmark200
|
|
52
|
+
id="checkmark"
|
|
53
|
+
class="spectrum-Icon spectrum-UIIcon-Checkmark200"
|
|
54
|
+
></sp-icon-checkmark200>
|
|
55
|
+
`;
|
|
56
|
+
},
|
|
57
|
+
xl: () => {
|
|
58
|
+
return html`
|
|
59
|
+
<sp-icon-checkmark300
|
|
60
|
+
id="checkmark"
|
|
61
|
+
class="spectrum-Icon spectrum-UIIcon-Checkmark300"
|
|
62
|
+
></sp-icon-checkmark300>
|
|
63
|
+
`;
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
const dashIcon = {
|
|
67
|
+
s: () => {
|
|
68
|
+
return html`
|
|
69
|
+
<sp-icon-dash75
|
|
70
|
+
id="partialCheckmark"
|
|
71
|
+
class="spectrum-Icon spectrum-UIIcon-Dash75"
|
|
72
|
+
></sp-icon-dash75>
|
|
73
|
+
`;
|
|
74
|
+
},
|
|
75
|
+
m: () => {
|
|
76
|
+
return html`
|
|
77
|
+
<sp-icon-dash100
|
|
78
|
+
id="partialCheckmark"
|
|
79
|
+
class="spectrum-Icon spectrum-UIIcon-Dash100"
|
|
80
|
+
></sp-icon-dash100>
|
|
81
|
+
`;
|
|
82
|
+
},
|
|
83
|
+
l: () => {
|
|
84
|
+
return html`
|
|
85
|
+
<sp-icon-dash200
|
|
86
|
+
id="partialCheckmark"
|
|
87
|
+
class="spectrum-Icon spectrum-UIIcon-Dash200"
|
|
88
|
+
></sp-icon-dash200>
|
|
89
|
+
`;
|
|
90
|
+
},
|
|
91
|
+
xl: () => {
|
|
92
|
+
return html`
|
|
93
|
+
<sp-icon-dash300
|
|
94
|
+
id="partialCheckmark"
|
|
95
|
+
class="spectrum-Icon spectrum-UIIcon-Dash300"
|
|
96
|
+
></sp-icon-dash300>
|
|
97
|
+
`;
|
|
98
|
+
}
|
|
99
|
+
};
|
|
100
|
+
export class Checkbox extends SizedMixin(CheckboxMixin(SpectrumElement), {
|
|
101
|
+
noDefaultSize: true
|
|
102
|
+
}) {
|
|
103
|
+
constructor() {
|
|
104
|
+
super(...arguments);
|
|
105
|
+
this.disabled = false;
|
|
106
|
+
this.indeterminate = false;
|
|
107
|
+
this.invalid = false;
|
|
108
|
+
this.emphasized = false;
|
|
109
|
+
this.tabIndex = 0;
|
|
110
|
+
}
|
|
111
|
+
connectedCallback() {
|
|
112
|
+
super.connectedCallback();
|
|
113
|
+
if (this.hasAttribute("autofocus")) {
|
|
114
|
+
this.updateComplete.then(() => {
|
|
115
|
+
this.focus();
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
static get styles() {
|
|
120
|
+
return [
|
|
121
|
+
checkboxStyles,
|
|
122
|
+
checkmarkSmallStyles,
|
|
123
|
+
dashSmallStyles,
|
|
124
|
+
checkmarkSmallOverrides,
|
|
125
|
+
dashSmallOverrides
|
|
126
|
+
];
|
|
127
|
+
}
|
|
128
|
+
click() {
|
|
129
|
+
var _a;
|
|
130
|
+
if (this.disabled) {
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
(_a = this.inputElement) == null ? void 0 : _a.click();
|
|
134
|
+
}
|
|
135
|
+
handleChange() {
|
|
136
|
+
this.indeterminate = false;
|
|
137
|
+
super.handleChange();
|
|
138
|
+
}
|
|
139
|
+
render() {
|
|
140
|
+
return html`
|
|
141
|
+
${super.render()}
|
|
142
|
+
<span id="box">
|
|
143
|
+
${this.checked ? checkmarkIcon[this.size]() : html``}
|
|
144
|
+
${this.indeterminate ? dashIcon[this.size]() : html``}
|
|
145
|
+
</span>
|
|
146
|
+
<label id="label" for="input"><slot></slot></label>
|
|
147
|
+
`;
|
|
148
|
+
}
|
|
149
|
+
updated(changes) {
|
|
150
|
+
super.updated(changes);
|
|
151
|
+
if (changes.has("disabled") && (typeof changes.get("disabled") !== "undefined" || this.disabled)) {
|
|
152
|
+
if (this.disabled) {
|
|
153
|
+
this.inputElement.tabIndex = this.tabIndex;
|
|
154
|
+
this.tabIndex = -1;
|
|
155
|
+
} else {
|
|
156
|
+
this.tabIndex = this.inputElement.tabIndex;
|
|
157
|
+
this.inputElement.removeAttribute("tabindex");
|
|
158
|
+
}
|
|
159
|
+
this.inputElement.disabled = this.disabled;
|
|
160
|
+
}
|
|
161
|
+
if (changes.has("indeterminate")) {
|
|
162
|
+
this.inputElement.indeterminate = this.indeterminate;
|
|
163
|
+
}
|
|
164
|
+
if (changes.has("invalid")) {
|
|
165
|
+
if (this.invalid) {
|
|
166
|
+
this.inputElement.setAttribute("aria-invalid", "true");
|
|
167
|
+
} else {
|
|
168
|
+
this.inputElement.removeAttribute("aria-invalid");
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
Checkbox.shadowRootOptions = {
|
|
174
|
+
...SpectrumElement.shadowRootOptions,
|
|
175
|
+
delegatesFocus: true
|
|
176
|
+
};
|
|
177
|
+
__decorateClass([
|
|
178
|
+
property({ type: Boolean, reflect: true })
|
|
179
|
+
], Checkbox.prototype, "disabled", 2);
|
|
180
|
+
__decorateClass([
|
|
181
|
+
property({ type: Boolean, reflect: true })
|
|
182
|
+
], Checkbox.prototype, "indeterminate", 2);
|
|
183
|
+
__decorateClass([
|
|
184
|
+
property({ type: Boolean, reflect: true })
|
|
185
|
+
], Checkbox.prototype, "invalid", 2);
|
|
186
|
+
__decorateClass([
|
|
187
|
+
property({ type: Boolean, reflect: true })
|
|
188
|
+
], Checkbox.prototype, "emphasized", 2);
|
|
189
|
+
__decorateClass([
|
|
190
|
+
property({ reflect: true, type: Number, attribute: "tabindex" })
|
|
191
|
+
], Checkbox.prototype, "tabIndex", 2);
|
|
192
|
+
//# sourceMappingURL=Checkbox.dev.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["Checkbox.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 {\n CSSResultArray,\n DefaultElementSize,\n html,\n PropertyValues,\n SizedMixin,\n SpectrumElement,\n TemplateResult,\n} from '@spectrum-web-components/base';\nimport { property } from '@spectrum-web-components/base/src/decorators.js';\nimport { CheckboxMixin } from './CheckboxMixin.dev.js'\nimport checkboxStyles from './checkbox.css.js';\nimport '@spectrum-web-components/icons-ui/icons/sp-icon-checkmark75.js';\nimport '@spectrum-web-components/icons-ui/icons/sp-icon-checkmark100.js';\nimport '@spectrum-web-components/icons-ui/icons/sp-icon-checkmark200.js';\nimport '@spectrum-web-components/icons-ui/icons/sp-icon-checkmark300.js';\nimport '@spectrum-web-components/icons-ui/icons/sp-icon-dash75.js';\nimport '@spectrum-web-components/icons-ui/icons/sp-icon-dash100.js';\nimport '@spectrum-web-components/icons-ui/icons/sp-icon-dash200.js';\nimport '@spectrum-web-components/icons-ui/icons/sp-icon-dash300.js';\nimport checkmarkSmallStyles from '@spectrum-web-components/icon/src/spectrum-icon-checkmark.css.js';\nimport checkmarkSmallOverrides from '@spectrum-web-components/icon/src/icon-checkmark-overrides.css.js';\nimport dashSmallStyles from '@spectrum-web-components/icon/src/spectrum-icon-dash.css.js';\nimport dashSmallOverrides from '@spectrum-web-components/icon/src/icon-dash-overrides.css.js';\n\nconst checkmarkIcon = {\n s: () => {\n return html`\n <sp-icon-checkmark75\n id=\"checkmark\"\n class=\"spectrum-Icon spectrum-UIIcon-Checkmark75\"\n ></sp-icon-checkmark75>\n `;\n },\n m: () => {\n return html`\n <sp-icon-checkmark100\n id=\"checkmark\"\n class=\"spectrum-Icon spectrum-UIIcon-Checkmark100\"\n ></sp-icon-checkmark100>\n `;\n },\n l: () => {\n return html`\n <sp-icon-checkmark200\n id=\"checkmark\"\n class=\"spectrum-Icon spectrum-UIIcon-Checkmark200\"\n ></sp-icon-checkmark200>\n `;\n },\n xl: () => {\n return html`\n <sp-icon-checkmark300\n id=\"checkmark\"\n class=\"spectrum-Icon spectrum-UIIcon-Checkmark300\"\n ></sp-icon-checkmark300>\n `;\n },\n};\n\nconst dashIcon = {\n s: () => {\n return html`\n <sp-icon-dash75\n id=\"partialCheckmark\"\n class=\"spectrum-Icon spectrum-UIIcon-Dash75\"\n ></sp-icon-dash75>\n `;\n },\n m: () => {\n return html`\n <sp-icon-dash100\n id=\"partialCheckmark\"\n class=\"spectrum-Icon spectrum-UIIcon-Dash100\"\n ></sp-icon-dash100>\n `;\n },\n l: () => {\n return html`\n <sp-icon-dash200\n id=\"partialCheckmark\"\n class=\"spectrum-Icon spectrum-UIIcon-Dash200\"\n ></sp-icon-dash200>\n `;\n },\n xl: () => {\n return html`\n <sp-icon-dash300\n id=\"partialCheckmark\"\n class=\"spectrum-Icon spectrum-UIIcon-Dash300\"\n ></sp-icon-dash300>\n `;\n },\n};\n\n/**\n * @element sp-checkbox\n * @slot - content to display as the label for the Checkbox\n * @fires change - Announces a change in the `checked` property of a Checkbox\n */\nexport class Checkbox extends SizedMixin(CheckboxMixin(SpectrumElement), {\n noDefaultSize: true,\n}) {\n static override shadowRootOptions = {\n ...SpectrumElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n /**\n * Disable this control. It will not receive focus or events\n */\n @property({ type: Boolean, reflect: true })\n public disabled = false;\n\n @property({ type: Boolean, reflect: true })\n public indeterminate = false;\n\n @property({ type: Boolean, reflect: true })\n public invalid = false;\n\n @property({ type: Boolean, reflect: true })\n public emphasized = false;\n\n @property({ reflect: true, type: Number, attribute: 'tabindex' })\n public override tabIndex = 0;\n\n public override connectedCallback(): void {\n super.connectedCallback();\n if (this.hasAttribute('autofocus')) {\n this.updateComplete.then(() => {\n this.focus();\n });\n }\n }\n\n public static override get styles(): CSSResultArray {\n return [\n checkboxStyles,\n checkmarkSmallStyles,\n dashSmallStyles,\n checkmarkSmallOverrides,\n dashSmallOverrides,\n ];\n }\n\n public override click(): void {\n if (this.disabled) {\n return;\n }\n\n this.inputElement?.click();\n }\n\n public override handleChange(): void {\n this.indeterminate = false;\n super.handleChange();\n }\n\n protected override render(): TemplateResult {\n return html`\n ${super.render()}\n <span id=\"box\">\n ${this.checked\n ? checkmarkIcon[this.size as DefaultElementSize]()\n : html``}\n ${this.indeterminate\n ? dashIcon[this.size as DefaultElementSize]()\n : html``}\n </span>\n <label id=\"label\" for=\"input\"><slot></slot></label>\n `;\n }\n\n protected override updated(changes: PropertyValues): void {\n super.updated(changes);\n if (\n changes.has('disabled') &&\n (typeof changes.get('disabled') !== 'undefined' || this.disabled)\n ) {\n if (this.disabled) {\n this.inputElement.tabIndex = this.tabIndex;\n this.tabIndex = -1;\n } else {\n this.tabIndex = this.inputElement.tabIndex;\n this.inputElement.removeAttribute('tabindex');\n }\n this.inputElement.disabled = this.disabled;\n }\n if (changes.has('indeterminate')) {\n this.inputElement.indeterminate = this.indeterminate;\n }\n if (changes.has('invalid')) {\n if (this.invalid) {\n this.inputElement.setAttribute('aria-invalid', 'true');\n } else {\n this.inputElement.removeAttribute('aria-invalid');\n }\n }\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/src/Checkbox.js
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";var m=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var r=(n,s,e,c)=>{for(var i=c>1?void 0:c?d(s,e):s,l=n.length-1,o;l>=0;l--)(o=n[l])&&(i=(c?o(s,e,i):o(i))||i);return c&&i&&m(s,e,i),i};import{html as t,SizedMixin as u,SpectrumElement as p}from"@spectrum-web-components/base";import{property as a}from"@spectrum-web-components/base/src/decorators.js";import{CheckboxMixin as h}from"./CheckboxMixin.js";import k from"./checkbox.css.js";import"@spectrum-web-components/icons-ui/icons/sp-icon-checkmark75.js";import"@spectrum-web-components/icons-ui/icons/sp-icon-checkmark100.js";import"@spectrum-web-components/icons-ui/icons/sp-icon-checkmark200.js";import"@spectrum-web-components/icons-ui/icons/sp-icon-checkmark300.js";import"@spectrum-web-components/icons-ui/icons/sp-icon-dash75.js";import"@spectrum-web-components/icons-ui/icons/sp-icon-dash100.js";import"@spectrum-web-components/icons-ui/icons/sp-icon-dash200.js";import"@spectrum-web-components/icons-ui/icons/sp-icon-dash300.js";import b from"@spectrum-web-components/icon/src/spectrum-icon-checkmark.css.js";import f from"@spectrum-web-components/icon/src/icon-checkmark-overrides.css.js";import I from"@spectrum-web-components/icon/src/spectrum-icon-dash.css.js";import v from"@spectrum-web-components/icon/src/icon-dash-overrides.css.js";const S={s:()=>t`
|
|
2
|
+
<sp-icon-checkmark75
|
|
3
|
+
id="checkmark"
|
|
4
|
+
class="spectrum-Icon spectrum-UIIcon-Checkmark75"
|
|
5
|
+
></sp-icon-checkmark75>
|
|
6
|
+
`,m:()=>t`
|
|
7
|
+
<sp-icon-checkmark100
|
|
8
|
+
id="checkmark"
|
|
9
|
+
class="spectrum-Icon spectrum-UIIcon-Checkmark100"
|
|
10
|
+
></sp-icon-checkmark100>
|
|
11
|
+
`,l:()=>t`
|
|
12
|
+
<sp-icon-checkmark200
|
|
13
|
+
id="checkmark"
|
|
14
|
+
class="spectrum-Icon spectrum-UIIcon-Checkmark200"
|
|
15
|
+
></sp-icon-checkmark200>
|
|
16
|
+
`,xl:()=>t`
|
|
17
|
+
<sp-icon-checkmark300
|
|
18
|
+
id="checkmark"
|
|
19
|
+
class="spectrum-Icon spectrum-UIIcon-Checkmark300"
|
|
20
|
+
></sp-icon-checkmark300>
|
|
21
|
+
`},y={s:()=>t`
|
|
22
|
+
<sp-icon-dash75
|
|
23
|
+
id="partialCheckmark"
|
|
24
|
+
class="spectrum-Icon spectrum-UIIcon-Dash75"
|
|
25
|
+
></sp-icon-dash75>
|
|
26
|
+
`,m:()=>t`
|
|
27
|
+
<sp-icon-dash100
|
|
28
|
+
id="partialCheckmark"
|
|
29
|
+
class="spectrum-Icon spectrum-UIIcon-Dash100"
|
|
30
|
+
></sp-icon-dash100>
|
|
31
|
+
`,l:()=>t`
|
|
32
|
+
<sp-icon-dash200
|
|
33
|
+
id="partialCheckmark"
|
|
34
|
+
class="spectrum-Icon spectrum-UIIcon-Dash200"
|
|
35
|
+
></sp-icon-dash200>
|
|
36
|
+
`,xl:()=>t`
|
|
37
|
+
<sp-icon-dash300
|
|
38
|
+
id="partialCheckmark"
|
|
39
|
+
class="spectrum-Icon spectrum-UIIcon-Dash300"
|
|
40
|
+
></sp-icon-dash300>
|
|
41
|
+
`};export class Checkbox extends u(h(p),{noDefaultSize:!0}){constructor(){super(...arguments);this.disabled=!1;this.indeterminate=!1;this.invalid=!1;this.emphasized=!1;this.tabIndex=0}connectedCallback(){super.connectedCallback(),this.hasAttribute("autofocus")&&this.updateComplete.then(()=>{this.focus()})}static get styles(){return[k,b,I,f,v]}click(){var e;this.disabled||(e=this.inputElement)==null||e.click()}handleChange(){this.indeterminate=!1,super.handleChange()}render(){return t`
|
|
42
|
+
${super.render()}
|
|
43
|
+
<span id="box">
|
|
44
|
+
${this.checked?S[this.size]():t``}
|
|
45
|
+
${this.indeterminate?y[this.size]():t``}
|
|
46
|
+
</span>
|
|
47
|
+
<label id="label" for="input"><slot></slot></label>
|
|
48
|
+
`}updated(e){super.updated(e),e.has("disabled")&&(typeof e.get("disabled")!="undefined"||this.disabled)&&(this.disabled?(this.inputElement.tabIndex=this.tabIndex,this.tabIndex=-1):(this.tabIndex=this.inputElement.tabIndex,this.inputElement.removeAttribute("tabindex")),this.inputElement.disabled=this.disabled),e.has("indeterminate")&&(this.inputElement.indeterminate=this.indeterminate),e.has("invalid")&&(this.invalid?this.inputElement.setAttribute("aria-invalid","true"):this.inputElement.removeAttribute("aria-invalid"))}}Checkbox.shadowRootOptions={...p.shadowRootOptions,delegatesFocus:!0},r([a({type:Boolean,reflect:!0})],Checkbox.prototype,"disabled",2),r([a({type:Boolean,reflect:!0})],Checkbox.prototype,"indeterminate",2),r([a({type:Boolean,reflect:!0})],Checkbox.prototype,"invalid",2),r([a({type:Boolean,reflect:!0})],Checkbox.prototype,"emphasized",2),r([a({reflect:!0,type:Number,attribute:"tabindex"})],Checkbox.prototype,"tabIndex",2);
|
|
49
|
+
//# sourceMappingURL=Checkbox.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["Checkbox.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 {\n CSSResultArray,\n DefaultElementSize,\n html,\n PropertyValues,\n SizedMixin,\n SpectrumElement,\n TemplateResult,\n} from '@spectrum-web-components/base';\nimport { property } from '@spectrum-web-components/base/src/decorators.js';\nimport { CheckboxMixin } from './CheckboxMixin.js';\nimport checkboxStyles from './checkbox.css.js';\nimport '@spectrum-web-components/icons-ui/icons/sp-icon-checkmark75.js';\nimport '@spectrum-web-components/icons-ui/icons/sp-icon-checkmark100.js';\nimport '@spectrum-web-components/icons-ui/icons/sp-icon-checkmark200.js';\nimport '@spectrum-web-components/icons-ui/icons/sp-icon-checkmark300.js';\nimport '@spectrum-web-components/icons-ui/icons/sp-icon-dash75.js';\nimport '@spectrum-web-components/icons-ui/icons/sp-icon-dash100.js';\nimport '@spectrum-web-components/icons-ui/icons/sp-icon-dash200.js';\nimport '@spectrum-web-components/icons-ui/icons/sp-icon-dash300.js';\nimport checkmarkSmallStyles from '@spectrum-web-components/icon/src/spectrum-icon-checkmark.css.js';\nimport checkmarkSmallOverrides from '@spectrum-web-components/icon/src/icon-checkmark-overrides.css.js';\nimport dashSmallStyles from '@spectrum-web-components/icon/src/spectrum-icon-dash.css.js';\nimport dashSmallOverrides from '@spectrum-web-components/icon/src/icon-dash-overrides.css.js';\n\nconst checkmarkIcon = {\n s: () => {\n return html`\n <sp-icon-checkmark75\n id=\"checkmark\"\n class=\"spectrum-Icon spectrum-UIIcon-Checkmark75\"\n ></sp-icon-checkmark75>\n `;\n },\n m: () => {\n return html`\n <sp-icon-checkmark100\n id=\"checkmark\"\n class=\"spectrum-Icon spectrum-UIIcon-Checkmark100\"\n ></sp-icon-checkmark100>\n `;\n },\n l: () => {\n return html`\n <sp-icon-checkmark200\n id=\"checkmark\"\n class=\"spectrum-Icon spectrum-UIIcon-Checkmark200\"\n ></sp-icon-checkmark200>\n `;\n },\n xl: () => {\n return html`\n <sp-icon-checkmark300\n id=\"checkmark\"\n class=\"spectrum-Icon spectrum-UIIcon-Checkmark300\"\n ></sp-icon-checkmark300>\n `;\n },\n};\n\nconst dashIcon = {\n s: () => {\n return html`\n <sp-icon-dash75\n id=\"partialCheckmark\"\n class=\"spectrum-Icon spectrum-UIIcon-Dash75\"\n ></sp-icon-dash75>\n `;\n },\n m: () => {\n return html`\n <sp-icon-dash100\n id=\"partialCheckmark\"\n class=\"spectrum-Icon spectrum-UIIcon-Dash100\"\n ></sp-icon-dash100>\n `;\n },\n l: () => {\n return html`\n <sp-icon-dash200\n id=\"partialCheckmark\"\n class=\"spectrum-Icon spectrum-UIIcon-Dash200\"\n ></sp-icon-dash200>\n `;\n },\n xl: () => {\n return html`\n <sp-icon-dash300\n id=\"partialCheckmark\"\n class=\"spectrum-Icon spectrum-UIIcon-Dash300\"\n ></sp-icon-dash300>\n `;\n },\n};\n\n/**\n * @element sp-checkbox\n * @slot - content to display as the label for the Checkbox\n * @fires change - Announces a change in the `checked` property of a Checkbox\n */\nexport class Checkbox extends SizedMixin(CheckboxMixin(SpectrumElement), {\n noDefaultSize: true,\n}) {\n static override shadowRootOptions = {\n ...SpectrumElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n /**\n * Disable this control. It will not receive focus or events\n */\n @property({ type: Boolean, reflect: true })\n public disabled = false;\n\n @property({ type: Boolean, reflect: true })\n public indeterminate = false;\n\n @property({ type: Boolean, reflect: true })\n public invalid = false;\n\n @property({ type: Boolean, reflect: true })\n public emphasized = false;\n\n @property({ reflect: true, type: Number, attribute: 'tabindex' })\n public override tabIndex = 0;\n\n public override connectedCallback(): void {\n super.connectedCallback();\n if (this.hasAttribute('autofocus')) {\n this.updateComplete.then(() => {\n this.focus();\n });\n }\n }\n\n public static override get styles(): CSSResultArray {\n return [\n checkboxStyles,\n checkmarkSmallStyles,\n dashSmallStyles,\n checkmarkSmallOverrides,\n dashSmallOverrides,\n ];\n }\n\n public override click(): void {\n if (this.disabled) {\n return;\n }\n\n this.inputElement?.click();\n }\n\n public override handleChange(): void {\n this.indeterminate = false;\n super.handleChange();\n }\n\n protected override render(): TemplateResult {\n return html`\n ${super.render()}\n <span id=\"box\">\n ${this.checked\n ? checkmarkIcon[this.size as DefaultElementSize]()\n : html``}\n ${this.indeterminate\n ? dashIcon[this.size as DefaultElementSize]()\n : html``}\n </span>\n <label id=\"label\" for=\"input\"><slot></slot></label>\n `;\n }\n\n protected override updated(changes: PropertyValues): void {\n super.updated(changes);\n if (\n changes.has('disabled') &&\n (typeof changes.get('disabled') !== 'undefined' || this.disabled)\n ) {\n if (this.disabled) {\n this.inputElement.tabIndex = this.tabIndex;\n this.tabIndex = -1;\n } else {\n this.tabIndex = this.inputElement.tabIndex;\n this.inputElement.removeAttribute('tabindex');\n }\n this.inputElement.disabled = this.disabled;\n }\n if (changes.has('indeterminate')) {\n this.inputElement.indeterminate = this.indeterminate;\n }\n if (changes.has('invalid')) {\n if (this.invalid) {\n this.inputElement.setAttribute('aria-invalid', 'true');\n } else {\n this.inputElement.removeAttribute('aria-invalid');\n }\n }\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["html", "SizedMixin", "SpectrumElement", "property", "CheckboxMixin", "checkboxStyles", "checkmarkSmallStyles", "checkmarkSmallOverrides", "dashSmallStyles", "dashSmallOverrides", "checkmarkIcon", "dashIcon", "_a", "changes", "__decorateClass"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Focusable } from '@spectrum-web-components/shared/src/focusable.js';
|
|
2
|
+
declare const CheckboxBase_base: typeof Focusable & {
|
|
3
|
+
new (...args: any[]): import("./CheckboxMixin.js").CheckboxElement;
|
|
4
|
+
prototype: import("./CheckboxMixin.js").CheckboxElement;
|
|
5
|
+
};
|
|
6
|
+
export declare class CheckboxBase extends CheckboxBase_base {
|
|
7
|
+
get focusElement(): HTMLElement;
|
|
8
|
+
}
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
import { Focusable } from "@spectrum-web-components/shared/src/focusable.js";
|
|
3
|
+
import { CheckboxMixin } from "./CheckboxMixin.dev.js";
|
|
4
|
+
export class CheckboxBase extends CheckboxMixin(Focusable) {
|
|
5
|
+
get focusElement() {
|
|
6
|
+
return this.inputElement;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=CheckboxBase.dev.js.map
|