@scouterna/ui-webc 2.2.1 → 2.2.3

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.
Files changed (200) hide show
  1. package/dist/cjs/{index-CtwQwhfH.js → index-B3fXatmo.js} +9 -3
  2. package/dist/cjs/index-B3fXatmo.js.map +1 -0
  3. package/dist/cjs/inputMixin-CkYXihTB.js +67 -0
  4. package/dist/cjs/inputMixin-CkYXihTB.js.map +1 -0
  5. package/dist/cjs/loader.cjs.js +2 -2
  6. package/dist/cjs/scout-app-bar.cjs.entry.js +1 -1
  7. package/dist/cjs/scout-bottom-bar-item.cjs.entry.js +1 -1
  8. package/dist/cjs/scout-bottom-bar.cjs.entry.js +1 -1
  9. package/dist/cjs/scout-button.cjs.entry.js +5 -4
  10. package/dist/cjs/scout-button.entry.cjs.js.map +1 -1
  11. package/dist/cjs/scout-card.cjs.entry.js +3 -3
  12. package/dist/cjs/scout-card.entry.cjs.js.map +1 -1
  13. package/dist/cjs/scout-checkbox.scout-radio-button.entry.cjs.js.map +1 -1
  14. package/dist/cjs/scout-checkbox_2.cjs.entry.js +24 -25
  15. package/dist/cjs/scout-divider.cjs.entry.js +2 -2
  16. package/dist/cjs/scout-field.cjs.entry.js +4 -4
  17. package/dist/cjs/scout-field.entry.cjs.js.map +1 -1
  18. package/dist/cjs/scout-input.cjs.entry.js +8 -32
  19. package/dist/cjs/scout-input.entry.cjs.js.map +1 -1
  20. package/dist/cjs/scout-link.cjs.entry.js +1 -1
  21. package/dist/cjs/scout-list-view-item.cjs.entry.js +2 -2
  22. package/dist/cjs/scout-list-view-subheader.cjs.entry.js +2 -2
  23. package/dist/cjs/scout-list-view.cjs.entry.js +2 -2
  24. package/dist/cjs/scout-loader.cjs.entry.js +2 -2
  25. package/dist/cjs/scout-select.cjs.entry.js +8 -32
  26. package/dist/cjs/scout-select.entry.cjs.js.map +1 -1
  27. package/dist/cjs/scout-stack.cjs.entry.js +3 -3
  28. package/dist/cjs/scout-switch.cjs.entry.js +21 -21
  29. package/dist/cjs/scout-switch.entry.cjs.js.map +1 -1
  30. package/dist/cjs/ui-webc.cjs.js +2 -2
  31. package/dist/collection/components/button/button.css +3 -2
  32. package/dist/collection/components/button/button.js +24 -3
  33. package/dist/collection/components/button/button.js.map +1 -1
  34. package/dist/collection/components/card/card.css +4 -0
  35. package/dist/collection/components/card/card.js +1 -1
  36. package/dist/collection/components/card/card.js.map +1 -1
  37. package/dist/collection/components/checkbox/checkbox.js +10 -32
  38. package/dist/collection/components/checkbox/checkbox.js.map +1 -1
  39. package/dist/collection/components/divider/divider.js +1 -1
  40. package/dist/collection/components/field/field.js +13 -7
  41. package/dist/collection/components/field/field.js.map +1 -1
  42. package/dist/collection/components/input/input.js +7 -106
  43. package/dist/collection/components/input/input.js.map +1 -1
  44. package/dist/collection/components/list-view/list-view.js +1 -1
  45. package/dist/collection/components/list-view-item/list-view-item.js +1 -1
  46. package/dist/collection/components/list-view-subheader/list-view-subheader.js +1 -1
  47. package/dist/collection/components/loader/loader.js +1 -1
  48. package/dist/collection/components/radio-button/radio-button.js +10 -32
  49. package/dist/collection/components/radio-button/radio-button.js.map +1 -1
  50. package/dist/collection/components/select/select.js +7 -106
  51. package/dist/collection/components/select/select.js.map +1 -1
  52. package/dist/collection/components/stack/stack.js +2 -2
  53. package/dist/collection/components/switch/switch.css +8 -7
  54. package/dist/collection/components/switch/switch.js +20 -42
  55. package/dist/collection/components/switch/switch.js.map +1 -1
  56. package/dist/collection/mixins/inputMixin.js +172 -0
  57. package/dist/collection/mixins/inputMixin.js.map +1 -0
  58. package/dist/components/index.js +1 -1
  59. package/dist/components/{p-Jt6ZXtWI.js → p-BkrRT31y.js} +16 -16
  60. package/dist/components/p-BkrRT31y.js.map +1 -0
  61. package/dist/components/{p-C2uc7k4n.js → p-C2_wl40t.js} +16 -16
  62. package/dist/components/p-C2_wl40t.js.map +1 -0
  63. package/dist/components/p-DaGMxK4K.js +62 -0
  64. package/dist/components/p-DaGMxK4K.js.map +1 -0
  65. package/dist/components/{p-DNlelzlE.js → p-fr5CaUFu.js} +9 -4
  66. package/dist/components/p-fr5CaUFu.js.map +1 -0
  67. package/dist/components/scout-app-bar.js +1 -1
  68. package/dist/components/scout-bottom-bar-item.js +1 -1
  69. package/dist/components/scout-bottom-bar.js +1 -1
  70. package/dist/components/scout-button.js +7 -6
  71. package/dist/components/scout-button.js.map +1 -1
  72. package/dist/components/scout-card.js +3 -3
  73. package/dist/components/scout-card.js.map +1 -1
  74. package/dist/components/scout-checkbox.js +1 -1
  75. package/dist/components/scout-divider.js +2 -2
  76. package/dist/components/scout-field.js +5 -5
  77. package/dist/components/scout-field.js.map +1 -1
  78. package/dist/components/scout-input.js +9 -34
  79. package/dist/components/scout-input.js.map +1 -1
  80. package/dist/components/scout-link.js +1 -1
  81. package/dist/components/scout-list-view-item.js +4 -4
  82. package/dist/components/scout-list-view-subheader.js +2 -2
  83. package/dist/components/scout-list-view.js +2 -2
  84. package/dist/components/scout-loader.js +2 -2
  85. package/dist/components/scout-radio-button.js +1 -1
  86. package/dist/components/scout-select.js +9 -34
  87. package/dist/components/scout-select.js.map +1 -1
  88. package/dist/components/scout-stack.js +3 -3
  89. package/dist/components/scout-switch.js +22 -22
  90. package/dist/components/scout-switch.js.map +1 -1
  91. package/dist/custom-elements.json +393 -24
  92. package/dist/esm/{index-Cp4mWtfs.js → index-ksA_9NPe.js} +9 -4
  93. package/dist/esm/index-ksA_9NPe.js.map +1 -0
  94. package/dist/esm/inputMixin-mAf9ZFOg.js +65 -0
  95. package/dist/esm/inputMixin-mAf9ZFOg.js.map +1 -0
  96. package/dist/esm/loader.js +3 -3
  97. package/dist/esm/scout-app-bar.entry.js +1 -1
  98. package/dist/esm/scout-bottom-bar-item.entry.js +1 -1
  99. package/dist/esm/scout-bottom-bar.entry.js +1 -1
  100. package/dist/esm/scout-button.entry.js +5 -4
  101. package/dist/esm/scout-button.entry.js.map +1 -1
  102. package/dist/esm/scout-card.entry.js +3 -3
  103. package/dist/esm/scout-card.entry.js.map +1 -1
  104. package/dist/esm/scout-checkbox.scout-radio-button.entry.js.map +1 -1
  105. package/dist/esm/scout-checkbox_2.entry.js +24 -25
  106. package/dist/esm/scout-divider.entry.js +2 -2
  107. package/dist/esm/scout-field.entry.js +4 -4
  108. package/dist/esm/scout-field.entry.js.map +1 -1
  109. package/dist/esm/scout-input.entry.js +8 -32
  110. package/dist/esm/scout-input.entry.js.map +1 -1
  111. package/dist/esm/scout-link.entry.js +1 -1
  112. package/dist/esm/scout-list-view-item.entry.js +2 -2
  113. package/dist/esm/scout-list-view-subheader.entry.js +2 -2
  114. package/dist/esm/scout-list-view.entry.js +2 -2
  115. package/dist/esm/scout-loader.entry.js +2 -2
  116. package/dist/esm/scout-select.entry.js +8 -32
  117. package/dist/esm/scout-select.entry.js.map +1 -1
  118. package/dist/esm/scout-stack.entry.js +3 -3
  119. package/dist/esm/scout-switch.entry.js +21 -21
  120. package/dist/esm/scout-switch.entry.js.map +1 -1
  121. package/dist/esm/ui-webc.js +3 -3
  122. package/dist/types/components/button/button.d.ts +1 -0
  123. package/dist/types/components/field/field.d.ts +3 -6
  124. package/dist/types/components.d.ts +140 -28
  125. package/dist/ui-webc/p-02c211ea.entry.js +2 -0
  126. package/dist/ui-webc/p-059921bb.entry.js +2 -0
  127. package/dist/ui-webc/p-059921bb.entry.js.map +1 -0
  128. package/dist/ui-webc/p-1a701759.entry.js +2 -0
  129. package/dist/ui-webc/p-1a701759.entry.js.map +1 -0
  130. package/dist/ui-webc/{p-5d73566e.entry.js → p-1efd7b9a.entry.js} +2 -2
  131. package/dist/ui-webc/{p-85e7b20f.entry.js → p-3018f46f.entry.js} +2 -2
  132. package/dist/ui-webc/p-4616484e.entry.js +2 -0
  133. package/dist/ui-webc/p-4616484e.entry.js.map +1 -0
  134. package/dist/ui-webc/p-479ae616.entry.js +2 -0
  135. package/dist/ui-webc/p-479ae616.entry.js.map +1 -0
  136. package/dist/ui-webc/{p-9f80fed6.entry.js → p-50112773.entry.js} +2 -2
  137. package/dist/ui-webc/p-974e8415.entry.js +2 -0
  138. package/dist/ui-webc/{p-29689fe2.entry.js → p-97956c4f.entry.js} +2 -2
  139. package/dist/ui-webc/p-97f9cf0a.entry.js +2 -0
  140. package/dist/ui-webc/p-97f9cf0a.entry.js.map +1 -0
  141. package/dist/ui-webc/p-BzgciO7w.js +2 -0
  142. package/dist/ui-webc/p-BzgciO7w.js.map +1 -0
  143. package/dist/ui-webc/p-ac65f104.entry.js +2 -0
  144. package/dist/ui-webc/{p-efab02f0.entry.js → p-c2c5857d.entry.js} +2 -2
  145. package/dist/ui-webc/p-d8084e5c.entry.js +2 -0
  146. package/dist/ui-webc/p-d8084e5c.entry.js.map +1 -0
  147. package/dist/ui-webc/p-d999b8d6.entry.js +2 -0
  148. package/dist/ui-webc/p-d999b8d6.entry.js.map +1 -0
  149. package/dist/ui-webc/{p-e4070682.entry.js → p-e2288570.entry.js} +2 -2
  150. package/dist/ui-webc/{p-b8715dc5.entry.js → p-e4f5dad7.entry.js} +2 -2
  151. package/dist/ui-webc/p-ksA_9NPe.js +3 -0
  152. package/dist/{esm/index-Cp4mWtfs.js.map → ui-webc/p-ksA_9NPe.js.map} +1 -1
  153. package/dist/ui-webc/scout-button.entry.esm.js.map +1 -1
  154. package/dist/ui-webc/scout-card.entry.esm.js.map +1 -1
  155. package/dist/ui-webc/scout-checkbox.scout-radio-button.entry.esm.js.map +1 -1
  156. package/dist/ui-webc/scout-field.entry.esm.js.map +1 -1
  157. package/dist/ui-webc/scout-input.entry.esm.js.map +1 -1
  158. package/dist/ui-webc/scout-select.entry.esm.js.map +1 -1
  159. package/dist/ui-webc/scout-switch.entry.esm.js.map +1 -1
  160. package/dist/ui-webc/ui-webc.css +2 -2
  161. package/dist/ui-webc/ui-webc.esm.js +1 -1
  162. package/package.json +4 -3
  163. package/dist/cjs/index-CtwQwhfH.js.map +0 -1
  164. package/dist/components/p-C2uc7k4n.js.map +0 -1
  165. package/dist/components/p-DNlelzlE.js.map +0 -1
  166. package/dist/components/p-Jt6ZXtWI.js.map +0 -1
  167. package/dist/types/components/checkbox/checkbox.d.ts +0 -24
  168. package/dist/types/components/input/input.d.ts +0 -48
  169. package/dist/types/components/radio-button/radio-button.d.ts +0 -24
  170. package/dist/types/components/select/select.d.ts +0 -32
  171. package/dist/types/components/switch/switch.d.ts +0 -25
  172. package/dist/ui-webc/p-0b42e59f.entry.js +0 -2
  173. package/dist/ui-webc/p-0b42e59f.entry.js.map +0 -1
  174. package/dist/ui-webc/p-33010b09.entry.js +0 -2
  175. package/dist/ui-webc/p-3b426423.entry.js +0 -2
  176. package/dist/ui-webc/p-3b426423.entry.js.map +0 -1
  177. package/dist/ui-webc/p-3e34c267.entry.js +0 -2
  178. package/dist/ui-webc/p-4c70c251.entry.js +0 -2
  179. package/dist/ui-webc/p-4c70c251.entry.js.map +0 -1
  180. package/dist/ui-webc/p-6ef8c777.entry.js +0 -2
  181. package/dist/ui-webc/p-6ef8c777.entry.js.map +0 -1
  182. package/dist/ui-webc/p-714363c8.entry.js +0 -2
  183. package/dist/ui-webc/p-714363c8.entry.js.map +0 -1
  184. package/dist/ui-webc/p-7f8dc0da.entry.js +0 -2
  185. package/dist/ui-webc/p-7f8dc0da.entry.js.map +0 -1
  186. package/dist/ui-webc/p-93ee0d2c.entry.js +0 -2
  187. package/dist/ui-webc/p-Cp4mWtfs.js +0 -3
  188. package/dist/ui-webc/p-Cp4mWtfs.js.map +0 -1
  189. package/dist/ui-webc/p-afa38195.entry.js +0 -2
  190. package/dist/ui-webc/p-afa38195.entry.js.map +0 -1
  191. /package/dist/ui-webc/{p-93ee0d2c.entry.js.map → p-02c211ea.entry.js.map} +0 -0
  192. /package/dist/ui-webc/{p-5d73566e.entry.js.map → p-1efd7b9a.entry.js.map} +0 -0
  193. /package/dist/ui-webc/{p-85e7b20f.entry.js.map → p-3018f46f.entry.js.map} +0 -0
  194. /package/dist/ui-webc/{p-9f80fed6.entry.js.map → p-50112773.entry.js.map} +0 -0
  195. /package/dist/ui-webc/{p-33010b09.entry.js.map → p-974e8415.entry.js.map} +0 -0
  196. /package/dist/ui-webc/{p-29689fe2.entry.js.map → p-97956c4f.entry.js.map} +0 -0
  197. /package/dist/ui-webc/{p-3e34c267.entry.js.map → p-ac65f104.entry.js.map} +0 -0
  198. /package/dist/ui-webc/{p-efab02f0.entry.js.map → p-c2c5857d.entry.js.map} +0 -0
  199. /package/dist/ui-webc/{p-e4070682.entry.js.map → p-e2288570.entry.js.map} +0 -0
  200. /package/dist/ui-webc/{p-b8715dc5.entry.js.map → p-e4f5dad7.entry.js.map} +0 -0
@@ -1,16 +1,21 @@
1
- import { p as proxyCustomElement, H, c as createEvent, h } from './p-DNlelzlE.js';
1
+ import { p as proxyCustomElement, M as Mixin, c as createEvent, h } from './p-fr5CaUFu.js';
2
+ import { i as inputMixin } from './p-DaGMxK4K.js';
2
3
 
3
- const switchCss = ".switch{width:var(--spacing-12);height:var(--spacing-6);-moz-appearance:none;appearance:none;-webkit-appearance:none;border-radius:var(--spacing-8);background-color:var(--color-text-brand-inverse);border:1px solid var(--color-gray-300);position:relative;display:flex;align-content:center;justify-content:center;transition-property:border-color;transition-duration:0.3s;transition-timing-function:ease-in-out;cursor:pointer;--switch-ball-size:calc((var(--spacing-6) - var(--spacing-1) / 2) + 1px)}.switch:hover{transition-property:none;border-color:var(--color-gray-400);background-color:var(--color-background-brand-subtle-hovered)}.switch:active{background-color:var(--color-background-brand-subtle-pressed)}.switch:checked{border-color:var(--color-background-brand-base)}.switch:hover::before{background-color:var(--color-gray-400)}.switch::before{content:\"\";background-color:var(--color-gray-300);width:var(--switch-ball-size);height:var(--switch-ball-size);border-radius:50%;position:absolute;left:-1px;right:0;transition-duration:0.3s;transition-property:left, right}.switch:checked::before{content:\"\";background-color:var(--color-background-brand-base);left:calc(100% - (var(--spacing-6) - var(--spacing-1) / 2) + 1px);left:calc(100% - calc(var(--spacing-6) - var(--spacing-1) / 2) + 1px)}.switch:disabled{pointer-events:none;background-color:var(--color-gray-100);border-color:var(--color-gray-100)}.switch:disabled::before{background-color:var(--color-gray-300)}label{display:flex;flex-direction:row-reverse;align-items:center;font:var(--type-label-base);color:var(--color-text-base)}.inlineDivider{width:var(--spacing-2)}";
4
+ const switchCss = ".switch{width:var(--spacing-10);height:var(--spacing-6);-moz-appearance:none;appearance:none;-webkit-appearance:none;border-radius:var(--spacing-8);background-color:var(--color-text-brand-inverse);border:2px solid var(--color-gray-300);position:relative;display:flex;align-content:center;justify-content:center;transition-property:border-color;transition-duration:0.3s;transition-timing-function:ease-in-out;cursor:pointer;--switch-ball-padding:calc(var(--spacing-1) / 4);--switch-ball-size:calc(var(--spacing-5) - var(--switch-ball-padding) * 2)}.switch:hover{transition-property:none;border-color:var(--color-gray-400);background-color:var(--color-background-brand-subtle-hovered)}.switch:active{background-color:var(--color-background-brand-subtle-pressed)}.switch:checked{border-color:var(--color-background-brand-base)}.switch:hover::before{background-color:var(--color-gray-400)}.switch::before{content:\"\";background-color:var(--color-gray-300);width:var(--switch-ball-size);height:var(--switch-ball-size);border-radius:50%;position:absolute;top:var(--switch-ball-padding);left:var(--switch-ball-padding);transition-duration:0.3s;transition-property:left, right}.switch:checked::before{content:\"\";background-color:var(--color-background-brand-base);left:calc(100% - (var(--switch-ball-size) + var(--switch-ball-padding)));left:calc(100% - calc(var(--switch-ball-size) + var(--switch-ball-padding)))}.switch:disabled{pointer-events:none;background-color:var(--color-gray-100);border-color:var(--color-gray-100)}.switch:disabled::before{background-color:var(--color-gray-300)}label{display:flex;flex-direction:row-reverse;align-items:center;font:var(--type-label-base);color:var(--color-text-base)}.inlineDivider{width:var(--spacing-2)}";
4
5
 
5
- const ScoutSwitch$1 = /*@__PURE__*/ proxyCustomElement(class ScoutSwitch extends H {
6
+ const ScoutSwitch$1 = /*@__PURE__*/ proxyCustomElement(class ScoutSwitch extends Mixin(inputMixin) {
6
7
  constructor(registerHost) {
7
- super();
8
+ super(false);
8
9
  if (registerHost !== false) {
9
10
  this.__registerHost();
10
11
  }
11
12
  this.__attachShadow();
12
- this.scoutSwitchToggled = createEvent(this, "scoutSwitchToggled");
13
- this._fieldId = createEvent(this, "_fieldId");
13
+ this.scoutInputChange = createEvent(this, "scoutInputChange");
14
+ this.scoutBlur = createEvent(this, "scoutBlur");
15
+ this._scoutValidate = createEvent(this, "_scoutValidate");
16
+ this._scoutInvalid = createEvent(this, "_scoutInvalid");
17
+ this._scoutFieldId = createEvent(this, "_scoutFieldId");
18
+ this.scoutChecked = createEvent(this, "scoutChecked");
14
19
  }
15
20
  /**
16
21
  * Indicates whether the switch is toggled on or off.
@@ -22,30 +27,25 @@ const ScoutSwitch$1 = /*@__PURE__*/ proxyCustomElement(class ScoutSwitch extends
22
27
  */
23
28
  ariaLabelledby;
24
29
  label;
25
- ariaId;
26
- scoutSwitchToggled;
27
- /**
28
- * Internal event used for form field association.
29
- */
30
- _fieldId;
31
- componentWillLoad() {
32
- this.ariaId = `_${Math.random().toString(36).substring(2, 9)}`;
33
- this._fieldId.emit(this.ariaId);
34
- }
35
- onClick(event) {
36
- const switchElement = event.target;
37
- this.scoutSwitchToggled.emit({
38
- toggled: switchElement.checked,
39
- element: switchElement,
30
+ scoutChecked;
31
+ onChange(event) {
32
+ const checkbox = event.target;
33
+ this.scoutChecked.emit({
34
+ checked: checkbox.checked,
35
+ element: checkbox,
40
36
  });
41
37
  }
42
38
  render() {
43
39
  const Tag = this.label?.length ? "label" : "div";
44
- return (h(Tag, { key: 'faa6584a6fc9fb985a8c638dd6ea367e0d12b07e' }, this.label, h("span", { key: 'be4cef9603df7b632368d1ac916b4feb62cb4ab0', class: "inlineDivider" }), h("input", { key: '56ab1692bdf10e8767d8de3cd70949d2d55b8fe9', class: "switch", onChange: (event) => this.onClick(event), type: "checkbox", id: this.ariaId, "aria-labelledby": this.ariaLabelledby, "aria-disabled": this.disabled, disabled: this.disabled, checked: this.toggled })));
40
+ return (h(Tag, { key: '3df6f0be2cbb14fa4ad4ce777324960365ea5d68' }, this.label, h("span", { key: 'bbf999533051b967807f18f6d165a9b916a87252', class: "inlineDivider" }), h("input", { key: '8280933ed1b9038edcd8fb9bad39bef5745d4403', ref: (el) => this.setInputRef(el), id: this.ariaId, type: "checkbox", class: "switch", "aria-labelledby": this.ariaLabelledby, "aria-disabled": this.disabled, disabled: this.disabled, checked: this.toggled, onChange: (event) => {
41
+ this.onInput();
42
+ this.onChange(event);
43
+ }, onBlur: () => this.onBlur(), onInvalid: () => this.onInvalid() })));
45
44
  }
46
45
  static get delegatesFocus() { return true; }
47
46
  static get style() { return switchCss; }
48
47
  }, [785, "scout-switch", {
48
+ "validate": [16],
49
49
  "toggled": [4],
50
50
  "disabled": [4],
51
51
  "ariaLabelledby": [1, "aria-labelledby"],
@@ -1 +1 @@
1
- {"file":"scout-switch.js","mappings":";;AAAA,MAAM,SAAS,GAAG,omDAAomD;;MCgBzmDA,aAAW,iBAAAC,kBAAA,CAAA,MAAA,WAAA,SAAAC,CAAA,CAAA;;;;;;;;;;AACtB;;AAEG;IACK,OAAO,GAAY,KAAK;IAExB,QAAQ,GAAY,KAAK;AAEjC;;AAEG;AACK,IAAA,cAAc;AAEd,IAAA,KAAK;AAEJ,IAAA,MAAM;AAEN,IAAA,kBAAkB;AAI3B;;AAEG;AACM,IAAA,QAAQ;IAEjB,iBAAiB,GAAA;QACf,IAAI,CAAC,MAAM,GAAG,CAAA,CAAA,EAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA,CAAE;QAC9D,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;;AAGjC,IAAA,OAAO,CAAC,KAAY,EAAA;AAClB,QAAA,MAAM,aAAa,GAAG,KAAK,CAAC,MAA0B;AAEtD,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;YAC3B,OAAO,EAAE,aAAa,CAAC,OAAO;AAC9B,YAAA,OAAO,EAAE,aAAa;AACvB,SAAA,CAAC;;IAGJ,MAAM,GAAA;AACJ,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK;QAChD,QACE,EAAC,GAAG,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACD,IAAI,CAAC,KAAK,EACX,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,eAAe,EAAQ,CAAA,EACnC,CACE,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,QAAQ,EACd,QAAQ,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EACxC,IAAI,EAAC,UAAU,EACf,EAAE,EAAE,IAAI,CAAC,MAAM,EAAA,iBAAA,EACE,IAAI,CAAC,cAAc,mBACrB,IAAI,CAAC,QAAQ,EAC5B,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,OAAO,EAAE,IAAI,CAAC,OAAO,EAAA,CACrB,CACE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["ScoutSwitch","__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/switch/switch.css?tag=scout-switch&encapsulation=shadow","src/components/switch/switch.tsx"],"sourcesContent":[".switch {\n width: var(--spacing-12);\n height: var(--spacing-6);\n appearance: none;\n -webkit-appearance: none;\n border-radius: var(--spacing-8);\n background-color: var(--color-text-brand-inverse);\n border: 1px solid var(--color-gray-300);\n position: relative;\n display: flex;\n align-content: center;\n justify-content: center;\n transition-property: border-color;\n transition-duration: 0.3s;\n transition-timing-function: ease-in-out;\n cursor: pointer;\n --switch-ball-size: calc((var(--spacing-6) - var(--spacing-1) / 2) + 1px);\n}\n\n.switch:hover {\n transition-property: none;\n border-color: var(--color-gray-400);\n background-color: var(--color-background-brand-subtle-hovered);\n}\n\n.switch:active {\n background-color: var(--color-background-brand-subtle-pressed);\n}\n\n.switch:checked {\n border-color: var(--color-background-brand-base);\n}\n\n.switch:hover::before {\n background-color: var(--color-gray-400);\n}\n\n.switch::before {\n content: \"\";\n background-color: var(--color-gray-300);\n width: var(--switch-ball-size);\n height: var(--switch-ball-size);\n border-radius: 50%;\n position: absolute;\n left: -1px;\n right: 0;\n transition-duration: 0.3s;\n transition-property: left, right;\n}\n.switch:checked::before {\n content: \"\";\n background-color: var(--color-background-brand-base);\n left: calc(100% - calc(var(--spacing-6) - var(--spacing-1) / 2) + 1px);\n}\n\n.switch:disabled {\n pointer-events: none;\n background-color: var(--color-gray-100);\n border-color: var(--color-gray-100);\n}\n\n.switch:disabled::before {\n background-color: var(--color-gray-300);\n}\n\nlabel {\n display: flex;\n flex-direction: row-reverse;\n align-items: center;\n font: var(--type-label-base);\n color: var(--color-text-base);\n}\n\n.inlineDivider {\n width: var(--spacing-2);\n}\n","import {\n Component,\n Event,\n type EventEmitter,\n h,\n Prop,\n State,\n} from \"@stencil/core\";\n\n@Component({\n tag: \"scout-switch\",\n styleUrl: \"switch.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class ScoutSwitch {\n /**\n * Indicates whether the switch is toggled on or off.\n */\n @Prop() toggled: boolean = false;\n\n @Prop() disabled: boolean = false;\n\n /**\n * Use this prop if you need to connect your switch with another element describing its use, other than the property label.\n */\n @Prop() ariaLabelledby: string;\n\n @Prop() label: string;\n\n @State() ariaId: string;\n\n @Event() scoutSwitchToggled: EventEmitter<{\n toggled: boolean;\n element: HTMLInputElement;\n }>;\n /**\n * Internal event used for form field association.\n */\n @Event() _fieldId: EventEmitter<string>;\n\n componentWillLoad(): Promise<void> | void {\n this.ariaId = `_${Math.random().toString(36).substring(2, 9)}`;\n this._fieldId.emit(this.ariaId);\n }\n\n onClick(event: Event) {\n const switchElement = event.target as HTMLInputElement;\n\n this.scoutSwitchToggled.emit({\n toggled: switchElement.checked,\n element: switchElement,\n });\n }\n\n render() {\n const Tag = this.label?.length ? \"label\" : \"div\";\n return (\n <Tag>\n {this.label}\n <span class=\"inlineDivider\"></span>\n <input\n class=\"switch\"\n onChange={(event) => this.onClick(event)}\n type=\"checkbox\"\n id={this.ariaId}\n aria-labelledby={this.ariaLabelledby}\n aria-disabled={this.disabled}\n disabled={this.disabled}\n checked={this.toggled}\n />\n </Tag>\n );\n }\n}\n"],"version":3}
1
+ {"file":"scout-switch.js","mappings":";;;AAAA,MAAM,SAAS,GAAG,ktDAAktD;;ACkBvtD,MAAAA,aACX,iBAAAC,kBAAA,CAAA,MAAA,WAAA,SAAQ,KAAK,CAAC,UAAU,CAAC,CAAA;;;;;;;;;;;;;;AAGzB;;AAEG;IACK,OAAO,GAAY,KAAK;IAExB,QAAQ,GAAY,KAAK;AAEjC;;AAEG;AACK,IAAA,cAAc;AAEd,IAAA,KAAK;AAEJ,IAAA,YAAY;AAKrB,IAAA,QAAQ,CAAC,KAAY,EAAA;AACnB,QAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,MAA0B;AAEjD,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YACrB,OAAO,EAAE,QAAQ,CAAC,OAAO;AACzB,YAAA,OAAO,EAAE,QAAQ;AAClB,SAAA,CAAC;;IAGJ,MAAM,GAAA;AACJ,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK;QAChD,QACE,EAAC,GAAG,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACD,IAAI,CAAC,KAAK,EACX,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,eAAe,EAAQ,CAAA,EACnC,CACE,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,GAAG,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,EACjC,EAAE,EAAE,IAAI,CAAC,MAAM,EACf,IAAI,EAAC,UAAU,EACf,KAAK,EAAC,QAAQ,EACG,iBAAA,EAAA,IAAI,CAAC,cAAc,EACrB,eAAA,EAAA,IAAI,CAAC,QAAQ,EAC5B,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,QAAQ,EAAE,CAAC,KAAK,KAAI;gBAClB,IAAI,CAAC,OAAO,EAAE;AACd,gBAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;aACrB,EACD,MAAM,EAAE,MAAM,IAAI,CAAC,MAAM,EAAE,EAC3B,SAAS,EAAE,MAAM,IAAI,CAAC,SAAS,EAAE,EAAA,CACjC,CACE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["ScoutSwitch","__stencil_proxyCustomElement"],"sources":["src/components/switch/switch.css?tag=scout-switch&encapsulation=shadow","src/components/switch/switch.tsx"],"sourcesContent":[".switch {\n width: var(--spacing-10);\n height: var(--spacing-6);\n appearance: none;\n -webkit-appearance: none;\n border-radius: var(--spacing-8);\n background-color: var(--color-text-brand-inverse);\n border: 2px solid var(--color-gray-300);\n position: relative;\n display: flex;\n align-content: center;\n justify-content: center;\n transition-property: border-color;\n transition-duration: 0.3s;\n transition-timing-function: ease-in-out;\n cursor: pointer;\n --switch-ball-padding: calc(var(--spacing-1) / 4);\n --switch-ball-size: calc(var(--spacing-5) - var(--switch-ball-padding) * 2);\n}\n\n.switch:hover {\n transition-property: none;\n border-color: var(--color-gray-400);\n background-color: var(--color-background-brand-subtle-hovered);\n}\n\n.switch:active {\n background-color: var(--color-background-brand-subtle-pressed);\n}\n\n.switch:checked {\n border-color: var(--color-background-brand-base);\n}\n\n.switch:hover::before {\n background-color: var(--color-gray-400);\n}\n\n.switch::before {\n content: \"\";\n background-color: var(--color-gray-300);\n width: var(--switch-ball-size);\n height: var(--switch-ball-size);\n border-radius: 50%;\n position: absolute;\n top: var(--switch-ball-padding);\n left: var(--switch-ball-padding);\n transition-duration: 0.3s;\n transition-property: left, right;\n}\n.switch:checked::before {\n content: \"\";\n background-color: var(--color-background-brand-base);\n left: calc(100% - calc(var(--switch-ball-size) + var(--switch-ball-padding)));\n}\n\n.switch:disabled {\n pointer-events: none;\n background-color: var(--color-gray-100);\n border-color: var(--color-gray-100);\n}\n\n.switch:disabled::before {\n background-color: var(--color-gray-300);\n}\n\nlabel {\n display: flex;\n flex-direction: row-reverse;\n align-items: center;\n font: var(--type-label-base);\n color: var(--color-text-base);\n}\n\n.inlineDivider {\n width: var(--spacing-2);\n}\n","import {\n Component,\n type ComponentInterface,\n Event,\n type EventEmitter,\n h,\n Mixin,\n Prop,\n} from \"@stencil/core\";\nimport { inputMixin } from \"../../mixins/inputMixin\";\n\n@Component({\n tag: \"scout-switch\",\n styleUrl: \"switch.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class ScoutSwitch\n extends Mixin(inputMixin)\n implements ComponentInterface\n{\n /**\n * Indicates whether the switch is toggled on or off.\n */\n @Prop() toggled: boolean = false;\n\n @Prop() disabled: boolean = false;\n\n /**\n * Use this prop if you need to connect your switch with another element describing its use, other than the property label.\n */\n @Prop() ariaLabelledby: string;\n\n @Prop() label: string;\n\n @Event() scoutChecked: EventEmitter<{\n checked: boolean;\n element: HTMLInputElement;\n }>;\n\n onChange(event: Event) {\n const checkbox = event.target as HTMLInputElement;\n\n this.scoutChecked.emit({\n checked: checkbox.checked,\n element: checkbox,\n });\n }\n\n render() {\n const Tag = this.label?.length ? \"label\" : \"div\";\n return (\n <Tag>\n {this.label}\n <span class=\"inlineDivider\"></span>\n <input\n ref={(el) => this.setInputRef(el)}\n id={this.ariaId}\n type=\"checkbox\"\n class=\"switch\"\n aria-labelledby={this.ariaLabelledby}\n aria-disabled={this.disabled}\n disabled={this.disabled}\n checked={this.toggled}\n onChange={(event) => {\n this.onInput();\n this.onChange(event);\n }}\n onBlur={() => this.onBlur()}\n onInvalid={() => this.onInvalid()}\n />\n </Tag>\n );\n }\n}\n"],"version":3}