@haiilo/catalyst 2.0.2 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/catalyst/catalyst.esm.js +1 -1
- package/dist/catalyst/catalyst.esm.js.map +1 -1
- package/dist/catalyst/p-50031766.entry.js +2 -0
- package/dist/catalyst/p-50031766.entry.js.map +1 -0
- package/dist/cjs/cat-alert_22.cjs.entry.js +99 -14
- package/dist/cjs/cat-alert_22.cjs.entry.js.map +1 -1
- package/dist/cjs/catalyst.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/components/cat-button/cat-button.js +51 -4
- package/dist/collection/components/cat-button/cat-button.js.map +1 -1
- package/dist/collection/components/cat-checkbox/cat-checkbox.js +50 -4
- package/dist/collection/components/cat-checkbox/cat-checkbox.js.map +1 -1
- package/dist/collection/components/cat-input/cat-input.js +50 -4
- package/dist/collection/components/cat-input/cat-input.js.map +1 -1
- package/dist/collection/components/cat-radio/cat-radio.js +50 -4
- package/dist/collection/components/cat-radio/cat-radio.js.map +1 -1
- package/dist/collection/components/cat-radio-group/cat-radio-group.js +1 -1
- package/dist/collection/components/cat-radio-group/cat-radio-group.js.map +1 -1
- package/dist/collection/components/cat-tabs/cat-tabs.js +1 -1
- package/dist/collection/components/cat-tabs/cat-tabs.js.map +1 -1
- package/dist/collection/components/cat-textarea/cat-textarea.js +50 -4
- package/dist/collection/components/cat-textarea/cat-textarea.js.map +1 -1
- package/dist/collection/components/cat-toggle/cat-toggle.js +50 -4
- package/dist/collection/components/cat-toggle/cat-toggle.js.map +1 -1
- package/dist/components/cat-button2.js +20 -3
- package/dist/components/cat-button2.js.map +1 -1
- package/dist/components/cat-checkbox2.js +19 -3
- package/dist/components/cat-checkbox2.js.map +1 -1
- package/dist/components/cat-input.js +19 -3
- package/dist/components/cat-input.js.map +1 -1
- package/dist/components/cat-radio-group.js +1 -1
- package/dist/components/cat-radio-group.js.map +1 -1
- package/dist/components/cat-radio.js +19 -3
- package/dist/components/cat-radio.js.map +1 -1
- package/dist/components/cat-tabs.js +1 -1
- package/dist/components/cat-tabs.js.map +1 -1
- package/dist/components/cat-textarea.js +19 -3
- package/dist/components/cat-textarea.js.map +1 -1
- package/dist/components/cat-toggle.js +19 -3
- package/dist/components/cat-toggle.js.map +1 -1
- package/dist/esm/cat-alert_22.entry.js +99 -14
- package/dist/esm/cat-alert_22.entry.js.map +1 -1
- package/dist/esm/catalyst.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/types/components/cat-button/cat-button.d.ts +12 -2
- package/dist/types/components/cat-checkbox/cat-checkbox.d.ts +12 -2
- package/dist/types/components/cat-input/cat-input.d.ts +12 -2
- package/dist/types/components/cat-radio/cat-radio.d.ts +12 -2
- package/dist/types/components/cat-textarea/cat-textarea.d.ts +12 -2
- package/dist/types/components/cat-toggle/cat-toggle.d.ts +12 -2
- package/dist/types/components.d.ts +78 -30
- package/package.json +2 -2
- package/dist/catalyst/p-fffa6ca0.entry.js +0 -2
- package/dist/catalyst/p-fffa6ca0.entry.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"cat-toggle.js","mappings":";;;;AAAA,MAAM,YAAY,GAAG,6pEAA6pE;;ACIlrE,IAAI,YAAY,GAAG,CAAC,CAAC;MAgBRA,WAAS;EALtB;;;;;;;IAMmB,OAAE,GAAG,cAAc,YAAY,EAAE,EAAE,CAAC;IAK5C,oBAAe,GAAG,KAAK,CAAC;;;;IAKR,YAAO,GAAG,KAAK,CAAC;;;;IAKjC,aAAQ,GAAG,KAAK,CAAC;;;;IAKjB,UAAK,GAAG,EAAE,CAAC;;;;IAKX,gBAAW,GAAG,KAAK,CAAC;;;;IAUpB,aAAQ,GAAG,KAAK,CAAC;;;;IAejB,cAAS,GAAG,KAAK,CAAC;
|
|
1
|
+
{"file":"cat-toggle.js","mappings":"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","names":["CatToggle","log"],"sources":["./src/components/cat-toggle/cat-toggle.scss?tag=cat-toggle&encapsulation=shadow","./src/components/cat-toggle/cat-toggle.tsx"],"sourcesContent":["@use 'variables' as *;\n@use 'mixins' as *;\n@use 'src/components/cat-form-hint/cat-form-hint';\n\n$toggle-width: 2rem;\n$toggle-height: 1.25rem;\n\n:host {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n margin-bottom: $cat-body-margin-bottom;\n}\n\n:host([hidden]) {\n display: none;\n}\n\nlabel {\n flex: 0 1 auto;\n display: flex;\n gap: 0.5rem;\n @include cat-body('m');\n @include cat-select(none);\n cursor: pointer;\n}\n\n.label-left {\n flex-direction: row-reverse;\n}\n\ninput {\n position: absolute;\n margin: 0;\n width: $toggle-width;\n height: $toggle-height;\n opacity: 0;\n cursor: inherit;\n}\n\n.toggle {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n width: $toggle-width;\n height: $toggle-height;\n border-radius: 10rem;\n background-color: cat-token('color.ui.border.dark');\n transition: background-color cat-token('time.transition.s') ease;\n pointer-events: none;\n\n :checked + & {\n background-color: cat-token('color.theme.primary.bg');\n }\n\n :focus-visible + & {\n outline: 2px solid cat-token('color.ui.border.focus');\n outline-offset: 1px;\n }\n\n &::after {\n content: '';\n position: absolute;\n width: 1rem;\n height: 1rem;\n background: #fff;\n border-radius: 10rem;\n transform: translateX(calc(2px - 0.5rem));\n transition: transform cat-token('time.transition.s') linear;\n @include cat-elevation(1);\n\n :checked + & {\n transform: translateX(calc(-2px + 0.5rem));\n background: cat-token('color.theme.primary.fill');\n }\n }\n\n .is-disabled & {\n background-color: cat-token('color.ui.border.dark');\n }\n}\n\n:host(.cat-error) {\n .toggle {\n background-color: cat-token('color.theme.danger.bg', 0.2);\n }\n\n :checked + .toggle {\n background-color: cat-token('color.theme.danger.bg');\n\n &::after {\n background: cat-token('color.theme.danger.fill');\n }\n }\n}\n\n.label {\n flex: 1 1 auto;\n\n .is-hidden & {\n @include cat-visually-hidden;\n }\n}\n\n.is-disabled {\n cursor: not-allowed;\n color: cat-token('color.ui.font.muted');\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Method, Prop, State } from '@stencil/core';\nimport log from 'loglevel';\nimport { CatFormHint } from '../cat-form-hint/cat-form-hint';\n\nlet nextUniqueId = 0;\n\n/**\n * Toggles are graphical interface switches that give user control over a\n * feature or option that can be turned on or off.\n *\n * @slot hint - Optional hint element to be displayed with the toggle.\n * @slot label - The slotted label. If both the label property and the label slot are present, only the label slot will be displayed.\n * @part toggle - The toggle element.\n * @part label - The label content.\n */\n@Component({\n tag: 'cat-toggle',\n styleUrls: ['cat-toggle.scss'],\n shadow: true\n})\nexport class CatToggle {\n private readonly id = `cat-toggle-${nextUniqueId++}`;\n private input!: HTMLInputElement;\n\n @Element() hostElement!: HTMLElement;\n\n @State() hasSlottedLabel = false;\n\n /**\n * Checked state of the toggle.\n */\n @Prop({ mutable: true }) checked = false;\n\n /**\n * Disabled state of the toggle.\n */\n @Prop() disabled = false;\n\n /**\n * The label of the toggle that is visible.\n */\n @Prop() label = '';\n\n /**\n * Visually hide the label, but still show it to assistive technologies like screen readers.\n */\n @Prop() labelHidden = false;\n\n /**\n * The name of the input\n */\n @Prop() name?: string;\n\n /**\n * Required state of the toggle.\n */\n @Prop() required = false;\n\n /**\n * The value of the toggle\n */\n @Prop({ mutable: true }) value?: string | boolean;\n\n /**\n * Optional hint text(s) to be displayed with the toggle.\n */\n @Prop() hint?: string | string[];\n\n /**\n * Whether the label should appear to the left of the toggle.\n */\n @Prop() labelLeft = false;\n\n /**\n * Emitted when the checked status of the toggle is changed.\n */\n @Event() catChange!: EventEmitter;\n\n /**\n * Emitted when the toggle received focus.\n */\n @Event() catFocus!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when the toggle loses focus.\n */\n @Event() catBlur!: EventEmitter<FocusEvent>;\n\n componentWillRender(): void {\n this.hasSlottedLabel = !!this.hostElement.querySelector('[slot=\"label\"]');\n if (!this.label && !this.hasSlottedLabel) {\n log.warn('[A11y] Missing ARIA label on toggle', this);\n }\n }\n\n /**\n * Programmatically move focus to the toggle. Use this method instead of\n * `input.focus()`.\n *\n * @param options An optional object providing options to control aspects of\n * the focusing process.\n */\n @Method()\n async doFocus(options?: FocusOptions): Promise<void> {\n this.input.focus(options);\n }\n\n /**\n * Programmatically remove focus from the toggle. Use this method instead of\n * `input.blur()`.\n */\n @Method()\n async doBlur(): Promise<void> {\n this.input.blur();\n }\n\n /**\n * Programmatically simulate a click on the toggle.\n */\n @Method()\n async doClick(): Promise<void> {\n this.input.click();\n }\n\n render() {\n return (\n <Host>\n <label\n htmlFor={this.id}\n class={{ 'is-hidden': this.labelHidden, 'is-disabled': this.disabled, 'label-left': this.labelLeft }}\n >\n <input\n ref={el => (this.input = el as HTMLInputElement)}\n id={this.id}\n type=\"checkbox\"\n name={this.name}\n value={this.value !== undefined ? String(this.value) : this.value}\n checked={this.checked}\n required={this.required}\n disabled={this.disabled}\n class=\"form-check-input\"\n role=\"switch\"\n onInput={this.onInput.bind(this)}\n onFocus={this.onFocus.bind(this)}\n onBlur={this.onBlur.bind(this)}\n />\n <span class=\"toggle\" part=\"toggle\"></span>\n <span class=\"label\" part=\"label\">\n {(this.hasSlottedLabel && <slot name=\"label\"></slot>) || this.label}\n </span>\n </label>\n {this.hintSection}\n </Host>\n );\n }\n\n private get hintSection() {\n const hasSlottedHint = !!this.hostElement.querySelector('[slot=\"hint\"]');\n return (\n (this.hint || hasSlottedHint) && (\n <CatFormHint hint={this.hint} slottedHint={hasSlottedHint && <slot name=\"hint\"></slot>} />\n )\n );\n }\n\n private onInput(event: Event) {\n this.checked = this.input.checked;\n\n if (!this.value || typeof this.value === 'boolean') {\n this.value = this.checked;\n }\n this.catChange.emit(event);\n }\n\n private onFocus(event: FocusEvent) {\n this.catFocus.emit(event);\n }\n\n private onBlur(event: FocusEvent) {\n this.catBlur.emit(event);\n }\n}\n"],"version":3}
|
|
@@ -380,19 +380,34 @@ const CatButton = class {
|
|
|
380
380
|
}
|
|
381
381
|
}
|
|
382
382
|
/**
|
|
383
|
-
*
|
|
383
|
+
* Programmatically move focus to the button. Use this method instead of
|
|
384
|
+
* `button.focus()`.
|
|
384
385
|
*
|
|
385
386
|
* @param options An optional object providing options to control aspects of
|
|
386
387
|
* the focusing process.
|
|
387
388
|
*/
|
|
388
|
-
async
|
|
389
|
+
async doFocus(options) {
|
|
389
390
|
this.button.focus(options);
|
|
390
391
|
}
|
|
392
|
+
/**
|
|
393
|
+
* Programmatically remove focus from the button. Use this method instead of
|
|
394
|
+
* `button.blur()`.
|
|
395
|
+
*/
|
|
396
|
+
async doBlur() {
|
|
397
|
+
this.button.blur();
|
|
398
|
+
}
|
|
399
|
+
/**
|
|
400
|
+
* Programmatically simulate a click on the button.
|
|
401
|
+
*/
|
|
402
|
+
async doClick() {
|
|
403
|
+
this.button.click();
|
|
404
|
+
}
|
|
391
405
|
render() {
|
|
392
406
|
var _a;
|
|
393
407
|
if (this.url) {
|
|
394
408
|
return (h("a", { ref: el => (this.button = el), href: this.disabled ? undefined : this.url, target: this.urlTarget, "aria-disabled": this.disabled ? 'true' : null, "aria-label": this.a11yLabel, "aria-current": this.a11yCurrent, id: this.buttonId, part: "button", class: {
|
|
395
409
|
'cat-button': true,
|
|
410
|
+
'cat-button-active': this.active,
|
|
396
411
|
'cat-button-icon': this.isIconButton,
|
|
397
412
|
'cat-button-round': this.round,
|
|
398
413
|
'cat-button-loading': this.loading,
|
|
@@ -545,14 +560,28 @@ const CatCheckbox = class {
|
|
|
545
560
|
}
|
|
546
561
|
}
|
|
547
562
|
/**
|
|
548
|
-
*
|
|
563
|
+
* Programmatically move focus to the checkbox. Use this method instead of
|
|
564
|
+
* `input.focus()`.
|
|
549
565
|
*
|
|
550
566
|
* @param options An optional object providing options to control aspects of
|
|
551
567
|
* the focusing process.
|
|
552
568
|
*/
|
|
553
|
-
async
|
|
569
|
+
async doFocus(options) {
|
|
554
570
|
this.input.focus(options);
|
|
555
571
|
}
|
|
572
|
+
/**
|
|
573
|
+
* Programmatically remove focus from the checkbox. Use this method instead of
|
|
574
|
+
* `input.blur()`.
|
|
575
|
+
*/
|
|
576
|
+
async doBlur() {
|
|
577
|
+
this.input.blur();
|
|
578
|
+
}
|
|
579
|
+
/**
|
|
580
|
+
* Programmatically simulate a click on the checkbox.
|
|
581
|
+
*/
|
|
582
|
+
async doClick() {
|
|
583
|
+
this.input.click();
|
|
584
|
+
}
|
|
556
585
|
render() {
|
|
557
586
|
return (h(Host, null, h("label", { htmlFor: this.id, class: { 'is-hidden': this.labelHidden, 'is-disabled': this.disabled, 'label-left': this.labelLeft } }, h("input", { ref: el => (this.input = el), id: this.id, type: "checkbox", name: this.name, value: this.value !== undefined ? String(this.value) : this.value, checked: this.checked, required: this.required, disabled: this.disabled, onInput: this.onInput.bind(this), onFocus: this.onFocus.bind(this), onBlur: this.onBlur.bind(this) }), h("span", { class: "box", "aria-hidden": "true", part: "checkbox" }, h("svg", { class: "check", viewBox: "0 0 12 10" }, h("polyline", { points: "1.5 6 4.5 9 10.5 1" })), h("svg", { class: "dash", viewBox: "0 0 12 10" }, h("polyline", { points: "1.5 5 10.5 5" }))), h("span", { class: "label", part: "label" }, (this.hasSlottedLabel && h("slot", { name: "label" })) || this.label)), this.hintSection));
|
|
558
587
|
}
|
|
@@ -1943,14 +1972,28 @@ const CatInput = class {
|
|
|
1943
1972
|
}
|
|
1944
1973
|
}
|
|
1945
1974
|
/**
|
|
1946
|
-
*
|
|
1975
|
+
* Programmatically move focus to the input. Use this method instead of
|
|
1976
|
+
* `input.focus()`.
|
|
1947
1977
|
*
|
|
1948
1978
|
* @param options An optional object providing options to control aspects of
|
|
1949
1979
|
* the focusing process.
|
|
1950
1980
|
*/
|
|
1951
|
-
async
|
|
1981
|
+
async doFocus(options) {
|
|
1952
1982
|
this.input.focus(options);
|
|
1953
1983
|
}
|
|
1984
|
+
/**
|
|
1985
|
+
* Programmatically remove focus from the input. Use this method instead of
|
|
1986
|
+
* `input.blur()`.
|
|
1987
|
+
*/
|
|
1988
|
+
async doBlur() {
|
|
1989
|
+
this.input.blur();
|
|
1990
|
+
}
|
|
1991
|
+
/**
|
|
1992
|
+
* Programmatically simulate a click on the input.
|
|
1993
|
+
*/
|
|
1994
|
+
async doClick() {
|
|
1995
|
+
this.input.click();
|
|
1996
|
+
}
|
|
1954
1997
|
/**
|
|
1955
1998
|
* Clear the input.
|
|
1956
1999
|
*/
|
|
@@ -2124,14 +2167,28 @@ const CatRadio = class {
|
|
|
2124
2167
|
}
|
|
2125
2168
|
}
|
|
2126
2169
|
/**
|
|
2127
|
-
*
|
|
2170
|
+
* Programmatically move focus to the radio button. Use this method instead of
|
|
2171
|
+
* `input.focus()`.
|
|
2128
2172
|
*
|
|
2129
2173
|
* @param options An optional object providing options to control aspects of
|
|
2130
2174
|
* the focusing process.
|
|
2131
2175
|
*/
|
|
2132
|
-
async
|
|
2176
|
+
async doFocus(options) {
|
|
2133
2177
|
this.input.focus(options);
|
|
2134
2178
|
}
|
|
2179
|
+
/**
|
|
2180
|
+
* Programmatically remove focus from the radio button. Use this method
|
|
2181
|
+
* instead of `input.blur()`.
|
|
2182
|
+
*/
|
|
2183
|
+
async doBlur() {
|
|
2184
|
+
this.input.blur();
|
|
2185
|
+
}
|
|
2186
|
+
/**
|
|
2187
|
+
* Programmatically simulate a click on the radio button.
|
|
2188
|
+
*/
|
|
2189
|
+
async doClick() {
|
|
2190
|
+
this.input.click();
|
|
2191
|
+
}
|
|
2135
2192
|
render() {
|
|
2136
2193
|
return (h(Host, null, h("label", { htmlFor: this.id, class: { 'is-hidden': this.labelHidden, 'is-disabled': this.disabled, 'label-left': this.labelLeft }, role: "radio", "aria-checked": this.checked ? 'true' : 'false' }, h("span", { class: "radio" }, h("input", { ref: el => (this.input = el), id: this.id, type: "radio", name: this.name, value: this.value, checked: this.checked, required: this.required, disabled: this.disabled, onInput: this.onChange.bind(this), onFocus: this.onFocus.bind(this), onBlur: this.onBlur.bind(this) }), h("span", { class: "circle" })), h("span", { class: "label", part: "label" }, (this.hasSlottedLabel && h("slot", { name: "label" })) || this.label)), this.hintSection));
|
|
2137
2194
|
}
|
|
@@ -2202,7 +2259,7 @@ const CatRadioGroup = class {
|
|
|
2202
2259
|
const activeIdx = this.catRadioGroup.findIndex(catRadio => catRadio === activeElement);
|
|
2203
2260
|
const activeOff = ['ArrowDown', 'ArrowRight'].includes(event.key) ? 1 : -1;
|
|
2204
2261
|
const targetIdx = activeIdx < 0 ? 0 : (activeIdx + activeOff + targetElements.length) % targetElements.length;
|
|
2205
|
-
targetElements[targetIdx].
|
|
2262
|
+
targetElements[targetIdx].doFocus();
|
|
2206
2263
|
(_b = (_a = targetElements[targetIdx].shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('input')) === null || _b === void 0 ? void 0 : _b.click();
|
|
2207
2264
|
this.updateTabIndex();
|
|
2208
2265
|
event.preventDefault();
|
|
@@ -6174,7 +6231,7 @@ const CatTabs = class {
|
|
|
6174
6231
|
const activeIdx = activeElement ? targetElements.indexOf(activeElement) : -1;
|
|
6175
6232
|
const activeOff = ['ArrowDown', 'ArrowRight'].includes(event.key) ? 1 : -1;
|
|
6176
6233
|
const targetIdx = activeIdx < 0 ? 0 : (activeIdx + activeOff + targetElements.length) % targetElements.length;
|
|
6177
|
-
targetElements[targetIdx].
|
|
6234
|
+
targetElements[targetIdx].doFocus();
|
|
6178
6235
|
event.preventDefault();
|
|
6179
6236
|
}
|
|
6180
6237
|
}
|
|
@@ -6257,14 +6314,28 @@ const CatTextarea = class {
|
|
|
6257
6314
|
d(this.textarea);
|
|
6258
6315
|
}
|
|
6259
6316
|
/**
|
|
6260
|
-
*
|
|
6317
|
+
* Programmatically move focus to the textarea. Use this method instead of
|
|
6318
|
+
* `textarea.focus()`.
|
|
6261
6319
|
*
|
|
6262
6320
|
* @param options An optional object providing options to control aspects of
|
|
6263
6321
|
* the focusing process.
|
|
6264
6322
|
*/
|
|
6265
|
-
async
|
|
6323
|
+
async doFocus(options) {
|
|
6266
6324
|
this.textarea.focus(options);
|
|
6267
6325
|
}
|
|
6326
|
+
/**
|
|
6327
|
+
* Programmatically remove focus from the textarea. Use this method instead of
|
|
6328
|
+
* `textarea.blur()`.
|
|
6329
|
+
*/
|
|
6330
|
+
async doBlur() {
|
|
6331
|
+
this.textarea.blur();
|
|
6332
|
+
}
|
|
6333
|
+
/**
|
|
6334
|
+
* Programmatically simulate a click on the textarea.
|
|
6335
|
+
*/
|
|
6336
|
+
async doClick() {
|
|
6337
|
+
this.textarea.click();
|
|
6338
|
+
}
|
|
6268
6339
|
render() {
|
|
6269
6340
|
return (h(Host, null, (this.hasSlottedLabel || this.label) && (h("label", { htmlFor: this.id, class: { hidden: this.labelHidden } }, h("span", { part: "label" }, (this.hasSlottedLabel && h("slot", { name: "label" })) || this.label, !this.required && (h("span", { class: "input-optional", "aria-hidden": "true" }, "(Optional)"))))), h("textarea", { ref: el => (this.textarea = el), id: this.id, disabled: this.disabled, maxlength: this.maxLength, minlength: this.minLength, name: this.name, placeholder: this.placeholder, readonly: this.readonly, required: this.required, rows: this.rows, value: this.value, onInput: this.onInput.bind(this), onFocus: this.onFocus.bind(this), onBlur: this.onBlur.bind(this) }), this.hintSection));
|
|
6270
6341
|
}
|
|
@@ -6329,14 +6400,28 @@ const CatToggle = class {
|
|
|
6329
6400
|
}
|
|
6330
6401
|
}
|
|
6331
6402
|
/**
|
|
6332
|
-
*
|
|
6403
|
+
* Programmatically move focus to the toggle. Use this method instead of
|
|
6404
|
+
* `input.focus()`.
|
|
6333
6405
|
*
|
|
6334
6406
|
* @param options An optional object providing options to control aspects of
|
|
6335
6407
|
* the focusing process.
|
|
6336
6408
|
*/
|
|
6337
|
-
async
|
|
6409
|
+
async doFocus(options) {
|
|
6338
6410
|
this.input.focus(options);
|
|
6339
6411
|
}
|
|
6412
|
+
/**
|
|
6413
|
+
* Programmatically remove focus from the toggle. Use this method instead of
|
|
6414
|
+
* `input.blur()`.
|
|
6415
|
+
*/
|
|
6416
|
+
async doBlur() {
|
|
6417
|
+
this.input.blur();
|
|
6418
|
+
}
|
|
6419
|
+
/**
|
|
6420
|
+
* Programmatically simulate a click on the toggle.
|
|
6421
|
+
*/
|
|
6422
|
+
async doClick() {
|
|
6423
|
+
this.input.click();
|
|
6424
|
+
}
|
|
6340
6425
|
render() {
|
|
6341
6426
|
return (h(Host, null, h("label", { htmlFor: this.id, class: { 'is-hidden': this.labelHidden, 'is-disabled': this.disabled, 'label-left': this.labelLeft } }, h("input", { ref: el => (this.input = el), id: this.id, type: "checkbox", name: this.name, value: this.value !== undefined ? String(this.value) : this.value, checked: this.checked, required: this.required, disabled: this.disabled, class: "form-check-input", role: "switch", onInput: this.onInput.bind(this), onFocus: this.onFocus.bind(this), onBlur: this.onBlur.bind(this) }), h("span", { class: "toggle", part: "toggle" }), h("span", { class: "label", part: "label" }, (this.hasSlottedLabel && h("slot", { name: "label" })) || this.label)), this.hintSection));
|
|
6342
6427
|
}
|