@quartzds/core 1.0.0-beta.5 → 1.0.0-beta.51
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 +5 -5
- package/components/checkbox.js +208 -0
- package/components/checkbox.js.map +1 -0
- package/components/controls.js +27 -0
- package/components/controls.js.map +1 -0
- package/components/floating-ui.dom.esm.js +467 -415
- package/components/floating-ui.dom.esm.js.map +1 -1
- package/components/helpers.js +114 -126
- package/components/helpers.js.map +1 -1
- package/components/icon.js +153 -122
- package/components/icon.js.map +1 -1
- package/components/index.d.ts +38 -0
- package/components/index.js +42 -26
- package/components/index.js.map +1 -1
- package/components/label.js +53 -40
- package/components/label.js.map +1 -1
- package/components/qds-breadcrumb-item.d.ts +11 -0
- package/components/qds-breadcrumb-item.js +55 -0
- package/components/qds-breadcrumb-item.js.map +1 -0
- package/components/qds-button.d.ts +2 -2
- package/components/qds-button.js +187 -128
- package/components/qds-button.js.map +1 -1
- package/components/qds-checkbox.d.ts +2 -2
- package/components/qds-checkbox.js +3 -146
- package/components/qds-checkbox.js.map +1 -1
- package/components/qds-chip.d.ts +11 -0
- package/components/qds-chip.js +224 -0
- package/components/qds-chip.js.map +1 -0
- package/components/qds-dialog.d.ts +11 -0
- package/components/qds-dialog.js +111 -0
- package/components/qds-dialog.js.map +1 -0
- package/components/qds-divider.d.ts +11 -0
- package/components/qds-divider.js +65 -0
- package/components/qds-divider.js.map +1 -0
- package/components/qds-dropdown.d.ts +2 -2
- package/components/qds-dropdown.js +248 -237
- package/components/qds-dropdown.js.map +1 -1
- package/components/qds-form-message.d.ts +11 -0
- package/components/qds-form-message.js +80 -0
- package/components/qds-form-message.js.map +1 -0
- package/components/qds-icon.d.ts +2 -2
- package/components/qds-icon.js +2 -2
- package/components/qds-inline-link.d.ts +2 -2
- package/components/qds-inline-link.js +90 -70
- package/components/qds-inline-link.js.map +1 -1
- package/components/qds-input.d.ts +2 -2
- package/components/qds-input.js +320 -228
- package/components/qds-input.js.map +1 -1
- package/components/qds-label.d.ts +2 -2
- package/components/qds-label.js +2 -2
- package/components/qds-list-item.d.ts +11 -0
- package/components/qds-list-item.js +201 -0
- package/components/qds-list-item.js.map +1 -0
- package/components/qds-nav-list-item.d.ts +11 -0
- package/components/qds-nav-list-item.js +135 -0
- package/components/qds-nav-list-item.js.map +1 -0
- package/components/qds-radio.d.ts +2 -2
- package/components/qds-radio.js +117 -90
- package/components/qds-radio.js.map +1 -1
- package/components/qds-select.d.ts +11 -0
- package/components/qds-select.js +259 -0
- package/components/qds-select.js.map +1 -0
- package/components/qds-standalone-link.d.ts +11 -0
- package/components/qds-standalone-link.js +127 -0
- package/components/qds-standalone-link.js.map +1 -0
- package/components/qds-switch.d.ts +2 -2
- package/components/qds-switch.js +123 -99
- package/components/qds-switch.js.map +1 -1
- package/components/qds-table-body.d.ts +11 -0
- package/components/qds-table-body.js +47 -0
- package/components/qds-table-body.js.map +1 -0
- package/components/qds-table-cell.d.ts +11 -0
- package/components/qds-table-cell.js +52 -0
- package/components/qds-table-cell.js.map +1 -0
- package/components/qds-table-head-cell.d.ts +11 -0
- package/components/qds-table-head-cell.js +56 -0
- package/components/qds-table-head-cell.js.map +1 -0
- package/components/qds-table-head.d.ts +11 -0
- package/components/qds-table-head.js +47 -0
- package/components/qds-table-head.js.map +1 -0
- package/components/qds-table-row.d.ts +11 -0
- package/components/qds-table-row.js +47 -0
- package/components/qds-table-row.js.map +1 -0
- package/components/qds-table.d.ts +11 -0
- package/components/qds-table.js +47 -0
- package/components/qds-table.js.map +1 -0
- package/components/qds-textarea.d.ts +11 -0
- package/components/qds-textarea.js +274 -0
- package/components/qds-textarea.js.map +1 -0
- package/components/qds-title.d.ts +2 -2
- package/components/qds-title.js +67 -75
- package/components/qds-title.js.map +1 -1
- package/components/qds-tooltip.d.ts +2 -2
- package/components/qds-tooltip.js +3 -315
- package/components/qds-tooltip.js.map +1 -1
- package/components/tooltip.js +336 -0
- package/components/tooltip.js.map +1 -0
- package/dist/cjs/app-globals-b1b0cc3c.js +12 -0
- package/dist/cjs/app-globals-b1b0cc3c.js.map +1 -0
- package/dist/cjs/controls-41400abc.js +31 -0
- package/dist/cjs/controls-41400abc.js.map +1 -0
- package/dist/cjs/{floating-ui.dom.esm-71fa96af.js → floating-ui.dom.esm-13b47220.js} +468 -416
- package/dist/cjs/floating-ui.dom.esm-13b47220.js.map +1 -0
- package/dist/cjs/helpers-fd48f777.js +171 -0
- package/dist/cjs/helpers-fd48f777.js.map +1 -0
- package/dist/cjs/index-78cd005d.js +1942 -0
- package/dist/cjs/index-78cd005d.js.map +1 -0
- package/dist/cjs/index.cjs.js +27 -27
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/library-6ef24d67.js +88 -0
- package/dist/cjs/library-6ef24d67.js.map +1 -0
- package/dist/cjs/loader.cjs.js +8 -15
- package/dist/cjs/loader.cjs.js.map +1 -1
- package/dist/cjs/qds-breadcrumb-item.cjs.entry.js +34 -0
- package/dist/cjs/qds-breadcrumb-item.cjs.entry.js.map +1 -0
- package/dist/cjs/qds-button.cjs.entry.js +147 -94
- package/dist/cjs/qds-button.cjs.entry.js.map +1 -1
- package/dist/cjs/qds-checkbox.cjs.entry.js +155 -101
- package/dist/cjs/qds-checkbox.cjs.entry.js.map +1 -1
- package/dist/cjs/qds-chip.cjs.entry.js +191 -0
- package/dist/cjs/qds-chip.cjs.entry.js.map +1 -0
- package/dist/cjs/qds-dialog.cjs.entry.js +91 -0
- package/dist/cjs/qds-dialog.cjs.entry.js.map +1 -0
- package/dist/cjs/qds-divider.cjs.entry.js +48 -0
- package/dist/cjs/qds-divider.cjs.entry.js.map +1 -0
- package/dist/cjs/qds-dropdown.cjs.entry.js +212 -211
- package/dist/cjs/qds-dropdown.cjs.entry.js.map +1 -1
- package/dist/cjs/qds-form-message.cjs.entry.js +55 -0
- package/dist/cjs/qds-form-message.cjs.entry.js.map +1 -0
- package/dist/cjs/qds-icon.cjs.entry.js +89 -87
- package/dist/cjs/qds-icon.cjs.entry.js.map +1 -1
- package/dist/cjs/qds-inline-link.cjs.entry.js +61 -45
- package/dist/cjs/qds-inline-link.cjs.entry.js.map +1 -1
- package/dist/cjs/qds-input.cjs.entry.js +267 -185
- package/dist/cjs/qds-input.cjs.entry.js.map +1 -1
- package/dist/cjs/qds-label.cjs.entry.js +37 -24
- package/dist/cjs/qds-label.cjs.entry.js.map +1 -1
- package/dist/cjs/qds-list-item.cjs.entry.js +152 -0
- package/dist/cjs/qds-list-item.cjs.entry.js.map +1 -0
- package/dist/cjs/qds-nav-list-item.cjs.entry.js +97 -0
- package/dist/cjs/qds-nav-list-item.cjs.entry.js.map +1 -0
- package/dist/cjs/qds-radio.cjs.entry.js +83 -59
- package/dist/cjs/qds-radio.cjs.entry.js.map +1 -1
- package/dist/cjs/qds-select.cjs.entry.js +220 -0
- package/dist/cjs/qds-select.cjs.entry.js.map +1 -0
- package/dist/cjs/qds-standalone-link.cjs.entry.js +92 -0
- package/dist/cjs/qds-standalone-link.cjs.entry.js.map +1 -0
- package/dist/cjs/qds-switch.cjs.entry.js +84 -63
- package/dist/cjs/qds-switch.cjs.entry.js.map +1 -1
- package/dist/cjs/qds-table-body.cjs.entry.js +33 -0
- package/dist/cjs/qds-table-body.cjs.entry.js.map +1 -0
- package/dist/cjs/qds-table-cell.cjs.entry.js +35 -0
- package/dist/cjs/qds-table-cell.cjs.entry.js.map +1 -0
- package/dist/cjs/qds-table-head-cell.cjs.entry.js +37 -0
- package/dist/cjs/qds-table-head-cell.cjs.entry.js.map +1 -0
- package/dist/cjs/qds-table-head.cjs.entry.js +33 -0
- package/dist/cjs/qds-table-head.cjs.entry.js.map +1 -0
- package/dist/cjs/qds-table-row.cjs.entry.js +33 -0
- package/dist/cjs/qds-table-row.cjs.entry.js.map +1 -0
- package/dist/cjs/qds-table.cjs.entry.js +33 -0
- package/dist/cjs/qds-table.cjs.entry.js.map +1 -0
- package/dist/cjs/qds-textarea.cjs.entry.js +229 -0
- package/dist/cjs/qds-textarea.cjs.entry.js.map +1 -0
- package/dist/cjs/qds-title.cjs.entry.js +42 -51
- package/dist/cjs/qds-title.cjs.entry.js.map +1 -1
- package/dist/cjs/qds-tooltip.cjs.entry.js +267 -266
- package/dist/cjs/qds-tooltip.cjs.entry.js.map +1 -1
- package/dist/cjs/qds.cjs.js +15 -16
- package/dist/cjs/qds.cjs.js.map +1 -1
- package/dist/custom-elements.json +5911 -1232
- package/dist/docs.d.ts +375 -88
- package/dist/docs.json +7737 -1705
- package/dist/esm/app-globals-1f206619.js +10 -0
- package/dist/esm/app-globals-1f206619.js.map +1 -0
- package/dist/esm/controls-07c4a794.js +27 -0
- package/dist/esm/controls-07c4a794.js.map +1 -0
- package/dist/esm/{floating-ui.dom.esm-f96ac766.js → floating-ui.dom.esm-0866be8d.js} +468 -416
- package/dist/esm/floating-ui.dom.esm-0866be8d.js.map +1 -0
- package/dist/esm/helpers-988f0260.js +162 -0
- package/dist/esm/helpers-988f0260.js.map +1 -0
- package/dist/esm/index-1261248b.js +1911 -0
- package/dist/esm/index-1261248b.js.map +1 -0
- package/dist/esm/index.js +27 -27
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/library-5db214cb.js +84 -0
- package/dist/esm/library-5db214cb.js.map +1 -0
- package/dist/esm/loader.js +9 -16
- package/dist/esm/loader.js.map +1 -1
- package/dist/esm/qds-breadcrumb-item.entry.js +30 -0
- package/dist/esm/qds-breadcrumb-item.entry.js.map +1 -0
- package/dist/esm/qds-button.entry.js +147 -94
- package/dist/esm/qds-button.entry.js.map +1 -1
- package/dist/esm/qds-checkbox.entry.js +155 -101
- package/dist/esm/qds-checkbox.entry.js.map +1 -1
- package/dist/esm/qds-chip.entry.js +187 -0
- package/dist/esm/qds-chip.entry.js.map +1 -0
- package/dist/esm/qds-dialog.entry.js +87 -0
- package/dist/esm/qds-dialog.entry.js.map +1 -0
- package/dist/esm/qds-divider.entry.js +44 -0
- package/dist/esm/qds-divider.entry.js.map +1 -0
- package/dist/esm/qds-dropdown.entry.js +212 -211
- package/dist/esm/qds-dropdown.entry.js.map +1 -1
- package/dist/esm/qds-form-message.entry.js +51 -0
- package/dist/esm/qds-form-message.entry.js.map +1 -0
- package/dist/esm/qds-icon.entry.js +89 -87
- package/dist/esm/qds-icon.entry.js.map +1 -1
- package/dist/esm/qds-inline-link.entry.js +61 -45
- package/dist/esm/qds-inline-link.entry.js.map +1 -1
- package/dist/esm/qds-input.entry.js +267 -185
- package/dist/esm/qds-input.entry.js.map +1 -1
- package/dist/esm/qds-label.entry.js +37 -24
- package/dist/esm/qds-label.entry.js.map +1 -1
- package/dist/esm/qds-list-item.entry.js +148 -0
- package/dist/esm/qds-list-item.entry.js.map +1 -0
- package/dist/esm/qds-nav-list-item.entry.js +93 -0
- package/dist/esm/qds-nav-list-item.entry.js.map +1 -0
- package/dist/esm/qds-radio.entry.js +83 -59
- package/dist/esm/qds-radio.entry.js.map +1 -1
- package/dist/esm/qds-select.entry.js +216 -0
- package/dist/esm/qds-select.entry.js.map +1 -0
- package/dist/esm/qds-standalone-link.entry.js +88 -0
- package/dist/esm/qds-standalone-link.entry.js.map +1 -0
- package/dist/esm/qds-switch.entry.js +84 -63
- package/dist/esm/qds-switch.entry.js.map +1 -1
- package/dist/esm/qds-table-body.entry.js +29 -0
- package/dist/esm/qds-table-body.entry.js.map +1 -0
- package/dist/esm/qds-table-cell.entry.js +31 -0
- package/dist/esm/qds-table-cell.entry.js.map +1 -0
- package/dist/esm/qds-table-head-cell.entry.js +33 -0
- package/dist/esm/qds-table-head-cell.entry.js.map +1 -0
- package/dist/esm/qds-table-head.entry.js +29 -0
- package/dist/esm/qds-table-head.entry.js.map +1 -0
- package/dist/esm/qds-table-row.entry.js +29 -0
- package/dist/esm/qds-table-row.entry.js.map +1 -0
- package/dist/esm/qds-table.entry.js +29 -0
- package/dist/esm/qds-table.entry.js.map +1 -0
- package/dist/esm/qds-textarea.entry.js +225 -0
- package/dist/esm/qds-textarea.entry.js.map +1 -0
- package/dist/esm/qds-title.entry.js +42 -51
- package/dist/esm/qds-title.entry.js.map +1 -1
- package/dist/esm/qds-tooltip.entry.js +267 -266
- package/dist/esm/qds-tooltip.entry.js.map +1 -1
- package/dist/esm/qds.js +16 -17
- package/dist/esm/qds.js.map +1 -1
- package/dist/types/components/breadcrumb-item/breadcrumb-item.d.ts +144 -0
- package/dist/types/components/button/button.d.ts +216 -194
- package/dist/types/components/checkbox/checkbox.d.ts +147 -124
- package/dist/types/components/chip/chip.d.ts +121 -0
- package/dist/types/components/controls.d.ts +9 -0
- package/dist/types/components/dialog/dialog.d.ts +51 -0
- package/dist/types/components/divider/divider.d.ts +27 -0
- package/dist/types/components/dropdown/dropdown.d.ts +124 -124
- package/dist/types/components/form-message/form-message.d.ts +37 -0
- package/dist/types/components/icon/icon.d.ts +24 -24
- package/dist/types/components/icon/library.d.ts +2 -2
- package/dist/types/components/icon/request.d.ts +4 -4
- package/dist/types/components/inline-link/inline-link.d.ts +197 -191
- package/dist/types/components/input/input.d.ts +393 -372
- package/dist/types/components/label/label.d.ts +25 -24
- package/dist/types/components/list-item/list-item.d.ts +108 -0
- package/dist/types/components/nav-list-item/nav-list-item.d.ts +72 -0
- package/dist/types/components/radio/radio.d.ts +99 -96
- package/dist/types/components/select/select.d.ts +221 -0
- package/dist/types/components/shared.d.ts +4 -0
- package/dist/types/components/standalone-link/standalone-link.d.ts +229 -0
- package/dist/types/components/switch/switch.d.ts +111 -108
- package/dist/types/components/table/table.d.ts +15 -0
- package/dist/types/components/table-body/table-body.d.ts +15 -0
- package/dist/types/components/table-cell/table-cell.d.ts +32 -0
- package/dist/types/components/table-head/table-head.d.ts +15 -0
- package/dist/types/components/table-head-cell/table-head-cell.d.ts +56 -0
- package/dist/types/components/table-row/table-row.d.ts +15 -0
- package/dist/types/components/textarea/textarea.d.ts +338 -0
- package/dist/types/components/title/title.d.ts +36 -32
- package/dist/types/components/tooltip/tooltip.d.ts +136 -137
- package/dist/types/components.d.ts +2602 -654
- package/dist/types/helpers.d.ts +5 -15
- package/dist/types/index.d.ts +1 -0
- package/dist/types/interface-overrides.d.ts +179 -0
- package/dist/types/qds-test.d.ts +20 -9
- package/dist/types/stencil-public-runtime.d.ts +51 -13
- package/dist/types/utils.d.ts +4 -4
- package/dist/vscode.html-custom-data.json +1062 -97
- package/hydrate/index.d.ts +7 -7
- package/hydrate/index.js +21920 -8801
- package/loader/cdn.js +3 -4
- package/loader/index.cjs.js +3 -4
- package/loader/index.d.ts +1 -1
- package/loader/index.es2017.js +3 -4
- package/loader/index.js +3 -4
- package/package.json +48 -81
- package/styles/core.css +137 -14
- package/dist/cjs/floating-ui.dom.esm-71fa96af.js.map +0 -1
- package/dist/cjs/helpers-0b23af3f.js +0 -184
- package/dist/cjs/helpers-0b23af3f.js.map +0 -1
- package/dist/cjs/index-f19b2823.js +0 -2030
- package/dist/cjs/index-f19b2823.js.map +0 -1
- package/dist/cjs/library-4ab80928.js +0 -62
- package/dist/cjs/library-4ab80928.js.map +0 -1
- package/dist/esm/floating-ui.dom.esm-f96ac766.js.map +0 -1
- package/dist/esm/helpers-5c189a19.js +0 -174
- package/dist/esm/helpers-5c189a19.js.map +0 -1
- package/dist/esm/index-1bc8e218.js +0 -2000
- package/dist/esm/index-1bc8e218.js.map +0 -1
- package/dist/esm/library-eaf6fb3d.js +0 -58
- package/dist/esm/library-eaf6fb3d.js.map +0 -1
- package/dist/esm/polyfills/core-js.js +0 -11
- package/dist/esm/polyfills/css-shim.js +0 -1
- package/dist/esm/polyfills/dom.js +0 -79
- package/dist/esm/polyfills/es5-html-element.js +0 -1
- package/dist/esm/polyfills/index.js +0 -34
- package/dist/esm/polyfills/system.js +0 -6
- package/dist/types/components/create-story.d.ts +0 -5
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<!--
|
|
2
|
-
SPDX-FileCopyrightText: ©
|
|
2
|
+
SPDX-FileCopyrightText: © 2024 Schneider Electric
|
|
3
3
|
|
|
4
|
-
SPDX-License-Identifier:
|
|
4
|
+
SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
-->
|
|
6
6
|
|
|
7
7
|
# `@quartzds/core`
|
|
@@ -40,11 +40,11 @@ Next, the platform and theme CSS custom properties:
|
|
|
40
40
|
```html
|
|
41
41
|
<link
|
|
42
42
|
rel="stylesheet"
|
|
43
|
-
href="https://unpkg.com/@quartzds/generic-tokens
|
|
43
|
+
href="https://unpkg.com/@quartzds/generic-tokens/core/dist/platform/desktop.css"
|
|
44
44
|
/>
|
|
45
45
|
<link
|
|
46
46
|
rel="stylesheet"
|
|
47
|
-
href="https://unpkg.com/@quartzds/generic-tokens
|
|
47
|
+
href="https://unpkg.com/@quartzds/generic-tokens/core/dist/theme/light.css"
|
|
48
48
|
/>
|
|
49
49
|
```
|
|
50
50
|
|
|
@@ -53,7 +53,7 @@ Optionally, the dark theme:
|
|
|
53
53
|
```html
|
|
54
54
|
<link
|
|
55
55
|
rel="stylesheet"
|
|
56
|
-
href="https://unpkg.com/@quartzds/generic-tokens
|
|
56
|
+
href="https://unpkg.com/@quartzds/generic-tokens/core/dist/theme/dark.css"
|
|
57
57
|
/>
|
|
58
58
|
```
|
|
59
59
|
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* SPDX-FileCopyrightText: © 2024 Schneider Electric
|
|
3
|
+
*
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { proxyCustomElement, HTMLElement, createEvent, h } from '@stencil/core/internal/client';
|
|
7
|
+
import { p as pickFocusEventAttributes, i as inheritAriaAttributes } from './helpers.js';
|
|
8
|
+
import { C as CUSTOM_ERROR_FLAGS, N as NO_ERROR_FLAGS, V as VALID_STATE } from './controls.js';
|
|
9
|
+
import { d as defineCustomElement$2 } from './icon.js';
|
|
10
|
+
import { d as defineCustomElement$1 } from './label.js';
|
|
11
|
+
|
|
12
|
+
const checkboxCss = ":host([hidden]){display:none !important}:host{display:inline-block;line-height:0}.qds-checkbox,.qds-box,.qds-icon{grid-area:checkbox;place-self:center}.qds-icon,.qds-box{display:none;pointer-events:none}.qds-box{border-radius:var(--qds-control-toggle-indicator-border-radius)}.qds-container{display:grid;align-self:flex-start;grid-template-areas:'checkbox'}.qds-icon{color:var(--qds-theme-signature-color-contrast)}.qds-label{cursor:pointer;display:inline-flex}.qds-checkbox{-webkit-appearance:none;appearance:none;background-color:var(--qds-theme-control-input-background);border-radius:var(--qds-control-border-radius);border:var(--qds-control-border-width) solid var(--qds-theme-control-border);cursor:pointer;margin:0;-webkit-print-color-adjust:exact;print-color-adjust:exact}.qds-checkbox:focus-visible{outline:var(--qds-theme-focus-border) solid var(--qds-focus-border-width);outline-offset:var(--qds-focus-border-offset)}.qds-checkbox:hover~.qds-box,.qds-checkbox:active~.qds-box{display:block}.qds-checkbox:hover~.qds-box{background-color:var(--qds-theme-signature-color-hover)}.qds-checkbox:active~.qds-box{background-color:var(--qds-theme-signature-color-pressed)}.qds-checkbox:checked~.qds-checked,.qds-checkbox:indeterminate~.qds-indeterminate{display:block}.qds-checkbox:checked,.qds-checkbox:indeterminate{background-color:var(--qds-theme-signature-color-default);border-color:transparent}.qds-checkbox:checked:hover,.qds-checkbox:indeterminate:hover{background-color:var(--qds-theme-signature-color-hover)}.qds-checkbox:checked:active,.qds-checkbox:indeterminate:active{background-color:var(--qds-theme-signature-color-pressed)}[aria-disabled='true']{opacity:var(--qds-theme-disabled);pointer-events:none}.qds-checkbox[data-size='small']{width:var(--qds-control-toggle-box-small-size);height:var(--qds-control-toggle-box-small-size)}.qds-icon[data-size='small']{font-size:var(--qds-control-small-icon-size)}.qds-box[data-size='small']{width:var(--qds-control-toggle-indicator-small-size);height:var(--qds-control-toggle-indicator-small-size)}.qds-inline[data-size='small']{margin-block:var(--qds-control-small-padding-auto-height)}.qds-label[data-size='small']{gap:var(--qds-control-small-gap-siblings-related)}.qds-checkbox[data-size='standard']{width:var(--qds-control-toggle-box-standard-size);height:var(--qds-control-toggle-box-standard-size)}.qds-icon[data-size='standard']{font-size:var(--qds-control-standard-icon-size)}.qds-box[data-size='standard']{width:var(--qds-control-toggle-indicator-standard-size);height:var(--qds-control-toggle-indicator-standard-size)}.qds-inline[data-size='standard']{margin-block:var(--qds-control-standard-padding-auto-height)}.qds-label[data-size='standard']{gap:var(--qds-control-standard-gap-siblings-related)}.qds-checkbox[data-size='large']{width:var(--qds-control-toggle-box-large-size);height:var(--qds-control-toggle-box-large-size)}.qds-icon[data-size='large']{font-size:var(--qds-control-large-icon-size)}.qds-box[data-size='large']{width:var(--qds-control-toggle-indicator-large-size);height:var(--qds-control-toggle-indicator-large-size)}.qds-inline[data-size='large']{margin-block:var(--qds-control-large-padding-auto-height)}.qds-label[data-size='large']{gap:var(--qds-control-large-gap-siblings-related)}";
|
|
13
|
+
const QdsCheckboxStyle0 = checkboxCss;
|
|
14
|
+
|
|
15
|
+
const Checkbox = /*@__PURE__*/ proxyCustomElement(class Checkbox extends HTMLElement {
|
|
16
|
+
constructor() {
|
|
17
|
+
super();
|
|
18
|
+
this.__registerHost();
|
|
19
|
+
this.__attachShadow();
|
|
20
|
+
this.blurEmitter = createEvent(this, "qdsBlur", 2);
|
|
21
|
+
this.changeEmitter = createEvent(this, "qdsChange", 6);
|
|
22
|
+
this.focusEmitter = createEvent(this, "qdsFocus", 2);
|
|
23
|
+
this.internals = this.attachInternals();
|
|
24
|
+
this.inheritedAttributes = {};
|
|
25
|
+
this.ref = (checkbox) => {
|
|
26
|
+
this.input = checkbox;
|
|
27
|
+
};
|
|
28
|
+
this.onBlur = (event) => {
|
|
29
|
+
this.blurEmitter.emit(pickFocusEventAttributes(event));
|
|
30
|
+
};
|
|
31
|
+
this.onFocus = (event) => {
|
|
32
|
+
this.focusEmitter.emit(pickFocusEventAttributes(event));
|
|
33
|
+
};
|
|
34
|
+
this.checkValidity = () => this.internals.checkValidity();
|
|
35
|
+
this.reportValidity = () => this.internals.reportValidity();
|
|
36
|
+
this.setCustomValidity = (error) => {
|
|
37
|
+
if (error)
|
|
38
|
+
this.internals.setValidity(CUSTOM_ERROR_FLAGS, error, this.input);
|
|
39
|
+
else
|
|
40
|
+
this.internals.setValidity(NO_ERROR_FLAGS);
|
|
41
|
+
};
|
|
42
|
+
this.inline = false;
|
|
43
|
+
this.size = 'standard';
|
|
44
|
+
this.text = undefined;
|
|
45
|
+
this.autoFocus = undefined;
|
|
46
|
+
this.checked = undefined;
|
|
47
|
+
this.disabled = undefined;
|
|
48
|
+
this.form = null;
|
|
49
|
+
this.indeterminate = undefined;
|
|
50
|
+
this.name = undefined;
|
|
51
|
+
this.required = undefined;
|
|
52
|
+
this.validationMessage = '';
|
|
53
|
+
this.validity = VALID_STATE;
|
|
54
|
+
this.value = 'on';
|
|
55
|
+
this.willValidate = false;
|
|
56
|
+
this.tabIndex = undefined;
|
|
57
|
+
}
|
|
58
|
+
get computedChecked() {
|
|
59
|
+
return this.checked ?? false;
|
|
60
|
+
}
|
|
61
|
+
get computedDisabled() {
|
|
62
|
+
return ((this.element.matches(':disabled') || (this.disabled ?? false)) &&
|
|
63
|
+
this.element.getAttribute('disabled') !== 'false');
|
|
64
|
+
}
|
|
65
|
+
get computedIndeterminate() {
|
|
66
|
+
return this.indeterminate ?? false;
|
|
67
|
+
}
|
|
68
|
+
get computedSize() {
|
|
69
|
+
switch (this.size) {
|
|
70
|
+
case 'standard':
|
|
71
|
+
case 'small':
|
|
72
|
+
case 'large': {
|
|
73
|
+
return this.size;
|
|
74
|
+
}
|
|
75
|
+
default: {
|
|
76
|
+
return 'standard';
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
get computedValue() {
|
|
81
|
+
// eslint-disable-next-line unicorn/no-null
|
|
82
|
+
return this.value == null ? null : this.value.toString();
|
|
83
|
+
}
|
|
84
|
+
get hasText() {
|
|
85
|
+
return ((this.text !== undefined && this.text !== '') || this.required === true);
|
|
86
|
+
}
|
|
87
|
+
onClick(event) {
|
|
88
|
+
if (this.computedDisabled) {
|
|
89
|
+
event.stopImmediatePropagation();
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
event.preventDefault();
|
|
93
|
+
this.checked = this.computedIndeterminate ? true : !this.computedChecked;
|
|
94
|
+
this.changeEmitter.emit();
|
|
95
|
+
this.indeterminate = false;
|
|
96
|
+
}
|
|
97
|
+
checkedChanged() {
|
|
98
|
+
this.internals.setFormValue(this.computedChecked && !this.computedDisabled
|
|
99
|
+
? this.computedValue
|
|
100
|
+
: // eslint-disable-next-line unicorn/no-null
|
|
101
|
+
null);
|
|
102
|
+
}
|
|
103
|
+
disabledChanged() {
|
|
104
|
+
if (this.computedChecked && !this.computedDisabled)
|
|
105
|
+
this.internals.setFormValue(this.computedValue);
|
|
106
|
+
// eslint-disable-next-line unicorn/no-null
|
|
107
|
+
else
|
|
108
|
+
this.internals.setFormValue(null);
|
|
109
|
+
}
|
|
110
|
+
tabindexChanged(newValue) {
|
|
111
|
+
const parsedValue = Number.parseInt(newValue, 10);
|
|
112
|
+
this.tabIndex =
|
|
113
|
+
parsedValue === 0 || Number.isNaN(parsedValue) ? undefined : parsedValue;
|
|
114
|
+
}
|
|
115
|
+
valueChanged() {
|
|
116
|
+
if (this.computedChecked && !this.computedDisabled)
|
|
117
|
+
this.internals.setFormValue(this.computedValue);
|
|
118
|
+
}
|
|
119
|
+
componentWillLoad() {
|
|
120
|
+
this.valueChanged();
|
|
121
|
+
this.defineGetter('form', () => this.internals.form);
|
|
122
|
+
this.defineGetter('willValidate', () => this.internals.willValidate);
|
|
123
|
+
this.defineGetter('validity', () => this.internals.validity);
|
|
124
|
+
this.defineGetter('validationMessage', () => this.internals.validationMessage);
|
|
125
|
+
this.defineGetter('checkValidity', () => this.checkValidity);
|
|
126
|
+
this.defineGetter('reportValidity', () => this.reportValidity);
|
|
127
|
+
this.defineGetter('setCustomValidity', () => this.setCustomValidity);
|
|
128
|
+
this.inheritedAttributes = inheritAriaAttributes(this.element);
|
|
129
|
+
this.tabindexChanged(this.element.getAttribute('tabindex') ?? '0');
|
|
130
|
+
}
|
|
131
|
+
render() {
|
|
132
|
+
return (
|
|
133
|
+
// eslint-disable-next-line jsx-a11y/label-has-associated-control
|
|
134
|
+
h("label", { key: 'cd4689a54ca17ef1544e56cd5cd0e82f3efd84b8', "aria-disabled": this.computedDisabled ? 'true' : undefined, class: {
|
|
135
|
+
'qds-inline': this.inline,
|
|
136
|
+
'qds-label': true,
|
|
137
|
+
}, "data-size": this.computedSize }, h("div", { key: '58e279291650ed3f8257f32f1e226062db326c51', class: "qds-container" }, h("input", { key: '470c04f8e97e5b63224f86114940389574171c7b',
|
|
138
|
+
// eslint-disable-next-line jsx-a11y/no-autofocus
|
|
139
|
+
autoFocus: this.autoFocus, checked: this.computedIndeterminate ? false : this.checked, class: "qds-checkbox", "data-size": this.computedSize, disabled: this.computedDisabled, indeterminate: this.indeterminate, onBlur: this.onBlur, onFocus: this.onFocus, ref: this.ref, required: this.required, tabIndex: this.computedDisabled ? undefined : this.tabIndex, type: "checkbox", ...this.inheritedAttributes }), h("qds-icon", { key: 'e44208a9d7fd03be8653cf1c02a4ee11f9cffd63', "aria-hidden": "true", class: {
|
|
140
|
+
'qds-icon': true,
|
|
141
|
+
'qds-checked': true,
|
|
142
|
+
}, "data-size": this.computedSize, library: "core", name: "checked" }), h("div", { key: 'd36bf69de5e032cc2d764834292fcc481745d163', class: "qds-box", "data-size": this.computedSize }), h("qds-icon", { key: '3404a948a2ebda3364b0e7b9302437c54ae1e3d3', "aria-hidden": "true", class: {
|
|
143
|
+
'qds-icon': true,
|
|
144
|
+
'qds-indeterminate': true,
|
|
145
|
+
}, "data-size": this.computedSize, library: "core", name: "indeterminate" })), this.hasText && (h("qds-label", { key: '636810006f8fd9664e201ee2f5f4d7f9b19a289c', required: this.required, size: this.size, text: this.text }))));
|
|
146
|
+
}
|
|
147
|
+
defineGetter(p, get) {
|
|
148
|
+
Object.defineProperty(this.element, p, { enumerable: true, get });
|
|
149
|
+
}
|
|
150
|
+
static get delegatesFocus() { return true; }
|
|
151
|
+
static get formAssociated() { return true; }
|
|
152
|
+
get element() { return this; }
|
|
153
|
+
static get watchers() { return {
|
|
154
|
+
"checked": ["checkedChanged"],
|
|
155
|
+
"disabled": ["disabledChanged"],
|
|
156
|
+
"tabindex": ["tabindexChanged"],
|
|
157
|
+
"value": ["valueChanged"]
|
|
158
|
+
}; }
|
|
159
|
+
static get style() { return QdsCheckboxStyle0; }
|
|
160
|
+
}, [81, "qds-checkbox", {
|
|
161
|
+
"inline": [4],
|
|
162
|
+
"size": [1],
|
|
163
|
+
"text": [1],
|
|
164
|
+
"autoFocus": [4, "autofocus"],
|
|
165
|
+
"checked": [1028],
|
|
166
|
+
"disabled": [4],
|
|
167
|
+
"form": [1],
|
|
168
|
+
"indeterminate": [1028],
|
|
169
|
+
"name": [1],
|
|
170
|
+
"required": [4],
|
|
171
|
+
"validationMessage": [1, "validation-message"],
|
|
172
|
+
"validity": [16],
|
|
173
|
+
"value": [8],
|
|
174
|
+
"willValidate": [4, "will-validate"],
|
|
175
|
+
"tabIndex": [32]
|
|
176
|
+
}, [[0, "click", "onClick"]], {
|
|
177
|
+
"checked": ["checkedChanged"],
|
|
178
|
+
"disabled": ["disabledChanged"],
|
|
179
|
+
"tabindex": ["tabindexChanged"],
|
|
180
|
+
"value": ["valueChanged"]
|
|
181
|
+
}]);
|
|
182
|
+
function defineCustomElement() {
|
|
183
|
+
if (typeof customElements === "undefined") {
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
const components = ["qds-checkbox", "qds-icon", "qds-label"];
|
|
187
|
+
components.forEach(tagName => { switch (tagName) {
|
|
188
|
+
case "qds-checkbox":
|
|
189
|
+
if (!customElements.get(tagName)) {
|
|
190
|
+
customElements.define(tagName, Checkbox);
|
|
191
|
+
}
|
|
192
|
+
break;
|
|
193
|
+
case "qds-icon":
|
|
194
|
+
if (!customElements.get(tagName)) {
|
|
195
|
+
defineCustomElement$2();
|
|
196
|
+
}
|
|
197
|
+
break;
|
|
198
|
+
case "qds-label":
|
|
199
|
+
if (!customElements.get(tagName)) {
|
|
200
|
+
defineCustomElement$1();
|
|
201
|
+
}
|
|
202
|
+
break;
|
|
203
|
+
} });
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
export { Checkbox as C, defineCustomElement as d };
|
|
207
|
+
|
|
208
|
+
//# sourceMappingURL=checkbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"checkbox.js","mappings":"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","names":[],"sources":["src/components/checkbox/checkbox.css?tag=qds-checkbox&encapsulation=shadow","src/components/checkbox/checkbox.tsx"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: © 2024 Schneider Electric\n *\n * SPDX-License-Identifier: Apache-2.0\n */\n\n@import url('../shared.css');\n\n:host {\n display: inline-block;\n line-height: 0;\n}\n\n.qds-checkbox,\n.qds-box,\n.qds-icon {\n grid-area: checkbox;\n place-self: center;\n}\n\n.qds-icon,\n.qds-box {\n display: none;\n pointer-events: none;\n}\n\n.qds-box {\n border-radius: var(--qds-control-toggle-indicator-border-radius);\n}\n\n.qds-container {\n display: grid;\n align-self: flex-start;\n grid-template-areas: 'checkbox';\n}\n\n.qds-icon {\n color: var(--qds-theme-signature-color-contrast);\n}\n\n.qds-label {\n cursor: pointer;\n display: inline-flex;\n}\n\n.qds-checkbox {\n appearance: none;\n background-color: var(--qds-theme-control-input-background);\n border-radius: var(--qds-control-border-radius);\n border: var(--qds-control-border-width) solid var(--qds-theme-control-border);\n cursor: pointer;\n margin: 0;\n print-color-adjust: exact;\n\n &:focus-visible {\n outline: var(--qds-theme-focus-border) solid var(--qds-focus-border-width);\n outline-offset: var(--qds-focus-border-offset);\n }\n\n &:hover ~ .qds-box,\n &:active ~ .qds-box {\n display: block;\n }\n\n &:hover ~ .qds-box {\n background-color: var(--qds-theme-signature-color-hover);\n }\n\n &:active ~ .qds-box {\n background-color: var(--qds-theme-signature-color-pressed);\n }\n\n &:checked ~ .qds-checked,\n &:indeterminate ~ .qds-indeterminate {\n display: block;\n }\n\n &:checked,\n &:indeterminate {\n background-color: var(--qds-theme-signature-color-default);\n border-color: transparent;\n\n &:hover {\n background-color: var(--qds-theme-signature-color-hover);\n }\n\n &:active {\n background-color: var(--qds-theme-signature-color-pressed);\n }\n }\n}\n\n[aria-disabled='true'] {\n opacity: var(--qds-theme-disabled);\n pointer-events: none;\n}\n\n[data-size='small'] {\n &.qds-checkbox {\n width: var(--qds-control-toggle-box-small-size);\n height: var(--qds-control-toggle-box-small-size);\n }\n\n &.qds-icon {\n font-size: var(--qds-control-small-icon-size);\n }\n\n &.qds-box {\n width: var(--qds-control-toggle-indicator-small-size);\n height: var(--qds-control-toggle-indicator-small-size);\n }\n\n &.qds-inline {\n margin-block: var(--qds-control-small-padding-auto-height);\n }\n\n &.qds-label {\n gap: var(--qds-control-small-gap-siblings-related);\n }\n}\n\n[data-size='standard'] {\n &.qds-checkbox {\n width: var(--qds-control-toggle-box-standard-size);\n height: var(--qds-control-toggle-box-standard-size);\n }\n\n &.qds-icon {\n font-size: var(--qds-control-standard-icon-size);\n }\n\n &.qds-box {\n width: var(--qds-control-toggle-indicator-standard-size);\n height: var(--qds-control-toggle-indicator-standard-size);\n }\n\n &.qds-inline {\n margin-block: var(--qds-control-standard-padding-auto-height);\n }\n\n &.qds-label {\n gap: var(--qds-control-standard-gap-siblings-related);\n }\n}\n\n[data-size='large'] {\n &.qds-checkbox {\n width: var(--qds-control-toggle-box-large-size);\n height: var(--qds-control-toggle-box-large-size);\n }\n\n &.qds-icon {\n font-size: var(--qds-control-large-icon-size);\n }\n\n &.qds-box {\n width: var(--qds-control-toggle-indicator-large-size);\n height: var(--qds-control-toggle-indicator-large-size);\n }\n\n &.qds-inline {\n margin-block: var(--qds-control-large-padding-auto-height);\n }\n\n &.qds-label {\n gap: var(--qds-control-large-gap-siblings-related);\n }\n}\n","// SPDX-FileCopyrightText: © 2024 Schneider Electric\n//\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ComponentInterface, EventEmitter } from '@stencil/core'\nimport {\n AttachInternals,\n Component,\n Element,\n Event,\n h,\n Listen,\n Prop,\n State,\n Watch,\n} from '@stencil/core'\n\nimport type { Attributes, QdsFocusEventDetail } from '../../helpers'\nimport { inheritAriaAttributes, pickFocusEventAttributes } from '../../helpers'\nimport { CUSTOM_ERROR_FLAGS, NO_ERROR_FLAGS, VALID_STATE } from '../controls'\nimport type { Size } from '../shared'\n\nexport type CheckboxValue = number | string | null\n\n/**\n * `<qds-checkbox>` elements are rendered as boxes that are checked (ticked)\n * when activated, like you might see in an official government paper form. A\n * checkbox allows you to select single values for submission in a form (or not).\n *\n * @see https://quartz.se.com/build/components/checkbox\n */\n@Component({\n tag: 'qds-checkbox',\n formAssociated: true,\n shadow: { delegatesFocus: true },\n styleUrl: 'checkbox.css',\n})\nexport class Checkbox implements ComponentInterface {\n /**\n * Adds vertical margin to the checkbox for alignment.\n *\n * This is useful when creating inline layouts so that the first lines have\n * the correct vertical centering.\n */\n @Prop() public readonly inline: boolean = false\n\n /**\n * The checkbox's size.\n */\n @Prop() public readonly size?: Size = 'standard'\n\n /**\n * The checkbox's text.\n */\n @Prop() public readonly text?: string\n\n /**\n * Specify whether the checkbox should have focus when the page loads.\n *\n * @webnative\n */\n @Prop({ attribute: 'autofocus' }) public readonly autoFocus?: boolean\n\n /**\n * Sets the checkbox's state.\n *\n * @webnative\n */\n @Prop({ mutable: true }) public checked?: boolean\n\n /**\n * Prevents the checkbox from being interacted with: it cannot be pressed or\n * focused.\n *\n * @webnative\n */\n @Prop() public readonly disabled?: boolean\n\n /**\n * The [`<form>`][] element to associate the checkbox with (its form owner).\n *\n * The value of this attribute must be the id of a `<form>` in the same\n * document. If this attribute is not set, the `<qds-checkbox>` is associated\n * with its ancestor `<form>` element, if any.\n *\n * This attribute lets you associate `<qds-checkbox>` elements to `<form>`s\n * anywhere in the document, not just inside a `<form>`. It can also override\n * an ancestor `<form>` element.\n *\n * [`<form>`]: https://developer.mozilla.org/docs/Web/HTML/Element/form\n *\n * @readonly\n * @webnative\n */\n // eslint-disable-next-line unicorn/no-null\n @Prop() public readonly form: ElementInternals['form'] | string = null\n\n /**\n * Sets the checkbox to an indeterminate state. This is usually applied to\n * checkboxes that represent a \"select all/none\" behavior when associated\n * checkboxes have a mix of checked and unchecked states.\n *\n * @webnative\n */\n @Prop({ mutable: true }) public indeterminate?: boolean\n\n /**\n * The name of the checkbox, which is submitted with the form data.\n *\n * @webnative\n */\n @Prop() public readonly name?: string\n\n /**\n * A value must be specified for the checkbox before the owning form can be\n * submitted.\n *\n * See\n * [Client-side validation](https://developer.mozilla.org/docs/Web/HTML/Element/input#client-side_validation)\n * and the\n * [HTML attribute: `required`](https://developer.mozilla.org/docs/Web/HTML/Attributes/required)\n * for more information.\n *\n * @webnative\n */\n @Prop() public readonly required?: boolean\n\n /**\n * The error message that would be shown to the user if the `<qds-checkbox>`\n * was to be checked for validity.\n *\n * @readonly\n * @webnative\n */\n @Prop()\n public readonly validationMessage: ElementInternals['validationMessage'] = ''\n\n /**\n * The [`ValidityState`][] object for this `<qds-checkbox>`.\n *\n * [`ValidityState`]: https://developer.mozilla.org/docs/Web/API/ValidityState\n *\n * @readonly\n * @webnative\n */\n @Prop() public readonly validity: ElementInternals['validity'] = VALID_STATE\n\n /**\n * The value of the checkbox, submitted as a name/value pair with form data.\n *\n * @webnative\n */\n @Prop() public readonly value?: CheckboxValue = 'on'\n\n /**\n * True if `<qds-checkbox>` will be validated when the form is submitted;\n * false otherwise.\n *\n * @readonly\n * @webnative\n */\n @Prop() public readonly willValidate: ElementInternals['willValidate'] = false\n\n @AttachInternals() private readonly internals!: ElementInternals\n\n /**\n * Emitted when the checkbox loses focus.\n */\n @Event({ eventName: 'qdsBlur', bubbles: false, cancelable: false })\n private readonly blurEmitter!: EventEmitter<QdsFocusEventDetail>\n\n /**\n * Emitted when a change to the checkbox's state is committed by the user.\n */\n @Event({ eventName: 'qdsChange', cancelable: false })\n private readonly changeEmitter!: EventEmitter<void>\n\n /**\n * Emitted when the checkbox gains focus.\n */\n @Event({ eventName: 'qdsFocus', bubbles: false, cancelable: false })\n private readonly focusEmitter!: EventEmitter<QdsFocusEventDetail>\n\n @Element() private readonly element!: HTMLQdsCheckboxElement\n\n @State() private tabIndex?: number\n\n private inheritedAttributes: Attributes = {}\n\n private input?: HTMLInputElement\n\n private get computedChecked(): boolean {\n return this.checked ?? false\n }\n\n private get computedDisabled(): boolean {\n return (\n (this.element.matches(':disabled') || (this.disabled ?? false)) &&\n this.element.getAttribute('disabled') !== 'false'\n )\n }\n\n private get computedIndeterminate(): boolean {\n return this.indeterminate ?? false\n }\n\n private get computedSize(): Size {\n switch (this.size) {\n case 'standard':\n case 'small':\n case 'large': {\n return this.size\n }\n default: {\n return 'standard'\n }\n }\n }\n\n private get computedValue(): string | null {\n // eslint-disable-next-line unicorn/no-null\n return this.value == null ? null : this.value.toString()\n }\n\n private get hasText(): boolean {\n return (\n (this.text !== undefined && this.text !== '') || this.required === true\n )\n }\n\n @Listen('click')\n protected onClick(event: MouseEvent): void {\n if (this.computedDisabled) {\n event.stopImmediatePropagation()\n return\n }\n\n event.preventDefault()\n\n this.checked = this.computedIndeterminate ? true : !this.computedChecked\n this.changeEmitter.emit()\n this.indeterminate = false\n }\n\n @Watch('checked')\n protected checkedChanged(): void {\n this.internals.setFormValue(\n this.computedChecked && !this.computedDisabled\n ? this.computedValue\n : // eslint-disable-next-line unicorn/no-null\n null,\n )\n }\n\n @Watch('disabled')\n protected disabledChanged(): void {\n if (this.computedChecked && !this.computedDisabled)\n this.internals.setFormValue(this.computedValue)\n // eslint-disable-next-line unicorn/no-null\n else this.internals.setFormValue(null)\n }\n\n @Watch('tabindex')\n protected tabindexChanged(newValue: string): void {\n const parsedValue = Number.parseInt(newValue, 10)\n this.tabIndex =\n parsedValue === 0 || Number.isNaN(parsedValue) ? undefined : parsedValue\n }\n\n @Watch('value')\n protected valueChanged(): void {\n if (this.computedChecked && !this.computedDisabled)\n this.internals.setFormValue(this.computedValue)\n }\n\n public componentWillLoad(): void {\n this.valueChanged()\n\n this.defineGetter('form', () => this.internals.form)\n this.defineGetter('willValidate', () => this.internals.willValidate)\n this.defineGetter('validity', () => this.internals.validity)\n this.defineGetter(\n 'validationMessage',\n () => this.internals.validationMessage,\n )\n this.defineGetter('checkValidity', () => this.checkValidity)\n this.defineGetter('reportValidity', () => this.reportValidity)\n this.defineGetter('setCustomValidity', () => this.setCustomValidity)\n\n this.inheritedAttributes = inheritAriaAttributes(this.element)\n this.tabindexChanged(this.element.getAttribute('tabindex') ?? '0')\n }\n\n public render() {\n return (\n // eslint-disable-next-line jsx-a11y/label-has-associated-control\n <label\n aria-disabled={this.computedDisabled ? 'true' : undefined}\n class={{\n 'qds-inline': this.inline,\n 'qds-label': true,\n }}\n data-size={this.computedSize}\n >\n <div class=\"qds-container\">\n <input\n // eslint-disable-next-line jsx-a11y/no-autofocus\n autoFocus={this.autoFocus}\n checked={this.computedIndeterminate ? false : this.checked}\n class=\"qds-checkbox\"\n data-size={this.computedSize}\n disabled={this.computedDisabled}\n indeterminate={this.indeterminate}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n ref={this.ref}\n required={this.required}\n tabIndex={this.computedDisabled ? undefined : this.tabIndex}\n type=\"checkbox\"\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...this.inheritedAttributes}\n />\n <qds-icon\n aria-hidden=\"true\"\n class={{\n 'qds-icon': true,\n 'qds-checked': true,\n }}\n data-size={this.computedSize}\n library=\"core\"\n name=\"checked\"\n />\n <div class=\"qds-box\" data-size={this.computedSize} />\n <qds-icon\n aria-hidden=\"true\"\n class={{\n 'qds-icon': true,\n 'qds-indeterminate': true,\n }}\n data-size={this.computedSize}\n library=\"core\"\n name=\"indeterminate\"\n />\n </div>\n {this.hasText && (\n <qds-label\n required={this.required}\n size={this.size}\n text={this.text}\n />\n )}\n </label>\n )\n }\n\n private readonly ref = (checkbox?: HTMLInputElement): void => {\n this.input = checkbox\n }\n\n private readonly onBlur = (event: FocusEvent): void => {\n this.blurEmitter.emit(pickFocusEventAttributes(event))\n }\n\n private readonly onFocus = (event: FocusEvent): void => {\n this.focusEmitter.emit(pickFocusEventAttributes(event))\n }\n\n private defineGetter(p: PropertyKey, get: () => unknown): void {\n Object.defineProperty(this.element, p, { enumerable: true, get })\n }\n\n private readonly checkValidity: ElementInternals['checkValidity'] = () =>\n this.internals.checkValidity()\n\n private readonly reportValidity: ElementInternals['reportValidity'] = () =>\n this.internals.reportValidity()\n\n private readonly setCustomValidity: HTMLInputElement['setCustomValidity'] = (\n error,\n ) => {\n if (error) this.internals.setValidity(CUSTOM_ERROR_FLAGS, error, this.input)\n else this.internals.setValidity(NO_ERROR_FLAGS)\n }\n}\n"],"version":3}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* SPDX-FileCopyrightText: © 2024 Schneider Electric
|
|
3
|
+
*
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
// SPDX-FileCopyrightText: © 2024 Schneider Electric
|
|
7
|
+
//
|
|
8
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
9
|
+
const CUSTOM_ERROR_FLAGS = { customError: true };
|
|
10
|
+
const NO_ERROR_FLAGS = {};
|
|
11
|
+
const VALID_STATE = {
|
|
12
|
+
badInput: false,
|
|
13
|
+
customError: false,
|
|
14
|
+
patternMismatch: false,
|
|
15
|
+
rangeOverflow: false,
|
|
16
|
+
rangeUnderflow: false,
|
|
17
|
+
stepMismatch: false,
|
|
18
|
+
tooLong: false,
|
|
19
|
+
tooShort: false,
|
|
20
|
+
typeMismatch: false,
|
|
21
|
+
valid: true,
|
|
22
|
+
valueMissing: false,
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
export { CUSTOM_ERROR_FLAGS as C, NO_ERROR_FLAGS as N, VALID_STATE as V };
|
|
26
|
+
|
|
27
|
+
//# sourceMappingURL=controls.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"controls.js","mappings":";;;;;AAAA;AACA;AACA;MAmFa,kBAAkB,GAAuB,EAAE,WAAW,EAAE,IAAI,GAAE;MAC9D,cAAc,GAAuB,GAAE;MACvC,WAAW,GAAkB;IACxC,QAAQ,EAAE,KAAK;IACf,WAAW,EAAE,KAAK;IAClB,eAAe,EAAE,KAAK;IACtB,aAAa,EAAE,KAAK;IACpB,cAAc,EAAE,KAAK;IACrB,YAAY,EAAE,KAAK;IACnB,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,KAAK;IACf,YAAY,EAAE,KAAK;IACnB,KAAK,EAAE,IAAI;IACX,YAAY,EAAE,KAAK;;;;;","names":[],"sources":["src/components/controls.ts"],"sourcesContent":["// SPDX-FileCopyrightText: © 2024 Schneider Electric\n//\n// SPDX-License-Identifier: Apache-2.0\n\nexport type AutoComplete =\n | 'additional-name'\n | 'address-level1'\n | 'address-level2'\n | 'address-level3'\n | 'address-level4'\n | 'address-line1'\n | 'address-line2'\n | 'address-line3'\n | 'bday-day'\n | 'bday-month'\n | 'bday-year'\n | 'bday'\n | 'cc-additional-name'\n | 'cc-csc'\n | 'cc-exp-month'\n | 'cc-exp-year'\n | 'cc-exp'\n | 'cc-family-name'\n | 'cc-given-name'\n | 'cc-name'\n | 'cc-number'\n | 'cc-type'\n | 'country-name'\n | 'country'\n | 'current-password'\n | 'email'\n | 'family-name'\n | 'given-name'\n | 'honorific-prefix'\n | 'honorific-suffix'\n | 'impp'\n | 'language'\n | 'name'\n | 'new-password'\n | 'nickname'\n | 'off'\n | 'on'\n | 'one-time-code'\n | 'organization-title'\n | 'organization'\n | 'photo'\n | 'postal-code'\n | 'sex'\n | 'street-address'\n | 'tel-area-code'\n | 'tel-country-code'\n | 'tel-extension'\n | 'tel-local'\n | 'tel-national'\n | 'tel'\n | 'transaction-amount'\n | 'transaction-currency'\n | 'url'\n | 'username'\nexport type AutoCapitalize =\n | 'characters'\n | 'none'\n | 'off'\n | 'on'\n | 'sentences'\n | 'words'\nexport type EnterKeyHint =\n | 'done'\n | 'enter'\n | 'go'\n | 'next'\n | 'previous'\n | 'search'\n | 'send'\nexport type InputMode =\n | 'decimal'\n | 'email'\n | 'none'\n | 'numeric'\n | 'search'\n | 'tel'\n | 'text'\n | 'url'\nexport type Value = number | string | null\n\nexport const CUSTOM_ERROR_FLAGS: ValidityStateFlags = { customError: true }\nexport const NO_ERROR_FLAGS: ValidityStateFlags = {}\nexport const VALID_STATE: ValidityState = {\n badInput: false,\n customError: false,\n patternMismatch: false,\n rangeOverflow: false,\n rangeUnderflow: false,\n stepMismatch: false,\n tooLong: false,\n tooShort: false,\n typeMismatch: false,\n valid: true,\n valueMissing: false,\n}\n"],"version":3}
|