@scouterna/ui-webc 2.2.4 → 2.2.5
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/cjs/{inputMixin-CkYXihTB.js → inputMixin-D1D-VFiT.js} +6 -2
- package/dist/cjs/inputMixin-D1D-VFiT.js.map +1 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/scout-app-bar.cjs.entry.js +1 -1
- package/dist/cjs/scout-app-bar.entry.cjs.js.map +1 -1
- package/dist/cjs/scout-button.cjs.entry.js +3 -3
- package/dist/cjs/scout-button.entry.cjs.js.map +1 -1
- package/dist/cjs/scout-card.cjs.entry.js +1 -1
- package/dist/cjs/scout-checkbox_2.cjs.entry.js +3 -3
- package/dist/cjs/scout-divider.cjs.entry.js +1 -1
- package/dist/cjs/scout-field.cjs.entry.js +1 -1
- package/dist/cjs/scout-input.cjs.entry.js +22 -3
- package/dist/cjs/scout-input.entry.cjs.js.map +1 -1
- package/dist/cjs/scout-list-view-item.cjs.entry.js +4 -3
- package/dist/cjs/scout-list-view-item.entry.cjs.js.map +1 -1
- package/dist/cjs/scout-list-view-subheader.cjs.entry.js +2 -2
- package/dist/cjs/scout-list-view-subheader.entry.cjs.js.map +1 -1
- package/dist/cjs/scout-list-view.cjs.entry.js +1 -1
- package/dist/cjs/scout-loader.cjs.entry.js +1 -1
- package/dist/cjs/scout-select.cjs.entry.js +2 -2
- package/dist/cjs/scout-stack.cjs.entry.js +2 -2
- package/dist/cjs/scout-switch.cjs.entry.js +2 -2
- package/dist/cjs/ui-webc.cjs.js +1 -1
- package/dist/collection/components/app-bar/app-bar.css +2 -1
- package/dist/collection/components/button/button.css +86 -105
- package/dist/collection/components/button/button.js +3 -4
- package/dist/collection/components/button/button.js.map +1 -1
- package/dist/collection/components/card/card.js +1 -1
- package/dist/collection/components/checkbox/checkbox.js +1 -1
- package/dist/collection/components/divider/divider.js +1 -1
- package/dist/collection/components/field/field.js +1 -1
- package/dist/collection/components/input/input.css +26 -4
- package/dist/collection/components/input/input.js +80 -2
- package/dist/collection/components/input/input.js.map +1 -1
- package/dist/collection/components/list-view/list-view.js +1 -1
- package/dist/collection/components/list-view-item/list-view-item.js +23 -3
- package/dist/collection/components/list-view-item/list-view-item.js.map +1 -1
- package/dist/collection/components/list-view-subheader/list-view-subheader.css +3 -2
- package/dist/collection/components/list-view-subheader/list-view-subheader.js +1 -1
- package/dist/collection/components/loader/loader.js +1 -1
- package/dist/collection/components/radio-button/radio-button.js +1 -1
- package/dist/collection/components/select/select.js +1 -1
- package/dist/collection/components/stack/stack.js +2 -2
- package/dist/collection/components/switch/switch.js +1 -1
- package/dist/collection/mixins/inputMixin.js +4 -0
- package/dist/collection/mixins/inputMixin.js.map +1 -1
- package/dist/components/{p-B_lll43e.js → p-4RT-nIeK.js} +4 -4
- package/dist/components/{p-B_lll43e.js.map → p-4RT-nIeK.js.map} +1 -1
- package/dist/components/{p-DaGMxK4K.js → p-B-kEl-ny.js} +8 -2
- package/dist/components/p-B-kEl-ny.js.map +1 -0
- package/dist/components/{p-CwrP_ZZM.js → p-CLzh39Ll.js} +4 -4
- package/dist/components/{p-CwrP_ZZM.js.map → p-CLzh39Ll.js.map} +1 -1
- package/dist/components/scout-app-bar.js +1 -1
- package/dist/components/scout-app-bar.js.map +1 -1
- package/dist/components/scout-button.js +5 -5
- package/dist/components/scout-button.js.map +1 -1
- package/dist/components/scout-card.js +1 -1
- package/dist/components/scout-checkbox.js +1 -1
- package/dist/components/scout-divider.js +1 -1
- package/dist/components/scout-field.js +1 -1
- package/dist/components/scout-input.js +26 -4
- package/dist/components/scout-input.js.map +1 -1
- package/dist/components/scout-list-view-item.js +8 -6
- package/dist/components/scout-list-view-item.js.map +1 -1
- package/dist/components/scout-list-view-subheader.js +2 -2
- package/dist/components/scout-list-view-subheader.js.map +1 -1
- package/dist/components/scout-list-view.js +1 -1
- package/dist/components/scout-loader.js +1 -1
- package/dist/components/scout-radio-button.js +1 -1
- package/dist/components/scout-select.js +2 -2
- package/dist/components/scout-stack.js +2 -2
- package/dist/components/scout-switch.js +2 -2
- package/dist/custom-elements.json +116 -2
- package/dist/esm/{inputMixin-mAf9ZFOg.js → inputMixin-C9OB0DNj.js} +6 -2
- package/dist/esm/inputMixin-C9OB0DNj.js.map +1 -0
- package/dist/esm/loader.js +1 -1
- package/dist/esm/scout-app-bar.entry.js +1 -1
- package/dist/esm/scout-app-bar.entry.js.map +1 -1
- package/dist/esm/scout-button.entry.js +4 -4
- package/dist/esm/scout-button.entry.js.map +1 -1
- package/dist/esm/scout-card.entry.js +1 -1
- package/dist/esm/scout-checkbox_2.entry.js +3 -3
- package/dist/esm/scout-divider.entry.js +1 -1
- package/dist/esm/scout-field.entry.js +1 -1
- package/dist/esm/scout-input.entry.js +23 -4
- package/dist/esm/scout-input.entry.js.map +1 -1
- package/dist/esm/scout-list-view-item.entry.js +4 -3
- package/dist/esm/scout-list-view-item.entry.js.map +1 -1
- package/dist/esm/scout-list-view-subheader.entry.js +2 -2
- package/dist/esm/scout-list-view-subheader.entry.js.map +1 -1
- package/dist/esm/scout-list-view.entry.js +1 -1
- package/dist/esm/scout-loader.entry.js +1 -1
- package/dist/esm/scout-select.entry.js +2 -2
- package/dist/esm/scout-stack.entry.js +2 -2
- package/dist/esm/scout-switch.entry.js +2 -2
- package/dist/esm/ui-webc.js +1 -1
- package/dist/types/components/list-view-item/list-view-item.d.ts +1 -0
- package/dist/types/components.d.ts +30 -0
- package/dist/ui-webc/p-08499152.entry.js +2 -0
- package/dist/ui-webc/{p-97f9cf0a.entry.js.map → p-08499152.entry.js.map} +1 -1
- package/dist/ui-webc/{p-ee497882.entry.js → p-0b8a7cc9.entry.js} +2 -2
- package/dist/ui-webc/p-2a842a24.entry.js +2 -0
- package/dist/ui-webc/p-2a842a24.entry.js.map +1 -0
- package/dist/ui-webc/{p-3018f46f.entry.js → p-30b75968.entry.js} +2 -2
- package/dist/ui-webc/p-30b75968.entry.js.map +1 -0
- package/dist/ui-webc/p-3ac00412.entry.js +2 -0
- package/dist/ui-webc/p-3ac00412.entry.js.map +1 -0
- package/dist/ui-webc/p-4f28520e.entry.js +2 -0
- package/dist/ui-webc/{p-97956c4f.entry.js → p-6de2edd1.entry.js} +2 -2
- package/dist/ui-webc/p-6e9afb25.entry.js +2 -0
- package/dist/ui-webc/p-8a942414.entry.js +2 -0
- package/dist/ui-webc/{p-531dc32a.entry.js.map → p-8a942414.entry.js.map} +1 -1
- package/dist/ui-webc/p-8f3e4290.entry.js +2 -0
- package/dist/ui-webc/p-BsG0XL4c.js +2 -0
- package/dist/ui-webc/p-BsG0XL4c.js.map +1 -0
- package/dist/ui-webc/{p-e4ba9bd7.entry.js → p-b0a70cb6.entry.js} +2 -2
- package/dist/ui-webc/p-cbf489b1.entry.js +2 -0
- package/dist/ui-webc/{p-45b65a28.entry.js.map → p-cbf489b1.entry.js.map} +1 -1
- package/dist/ui-webc/p-d68b8b37.entry.js +2 -0
- package/dist/ui-webc/{p-02c211ea.entry.js.map → p-d68b8b37.entry.js.map} +1 -1
- package/dist/ui-webc/{p-ac65f104.entry.js → p-dcc4dafa.entry.js} +2 -2
- package/dist/ui-webc/scout-app-bar.entry.esm.js.map +1 -1
- package/dist/ui-webc/scout-button.entry.esm.js.map +1 -1
- package/dist/ui-webc/scout-input.entry.esm.js.map +1 -1
- package/dist/ui-webc/scout-list-view-item.entry.esm.js.map +1 -1
- package/dist/ui-webc/scout-list-view-subheader.entry.esm.js.map +1 -1
- package/dist/ui-webc/ui-webc.esm.js +1 -1
- package/package.json +1 -1
- package/dist/cjs/inputMixin-CkYXihTB.js.map +0 -1
- package/dist/components/p-DaGMxK4K.js.map +0 -1
- package/dist/esm/inputMixin-mAf9ZFOg.js.map +0 -1
- package/dist/ui-webc/p-02c211ea.entry.js +0 -2
- package/dist/ui-webc/p-3018f46f.entry.js.map +0 -1
- package/dist/ui-webc/p-45b65a28.entry.js +0 -2
- package/dist/ui-webc/p-531dc32a.entry.js +0 -2
- package/dist/ui-webc/p-78b6c86b.entry.js +0 -2
- package/dist/ui-webc/p-78b6c86b.entry.js.map +0 -1
- package/dist/ui-webc/p-974e8415.entry.js +0 -2
- package/dist/ui-webc/p-97f9cf0a.entry.js +0 -2
- package/dist/ui-webc/p-BzgciO7w.js +0 -2
- package/dist/ui-webc/p-BzgciO7w.js.map +0 -1
- package/dist/ui-webc/p-e2288570.entry.js +0 -2
- package/dist/ui-webc/p-f01605ca.entry.js +0 -2
- package/dist/ui-webc/p-f01605ca.entry.js.map +0 -1
- package/dist/ui-webc/p-faaf9da5.entry.js +0 -2
- /package/dist/ui-webc/{p-ee497882.entry.js.map → p-0b8a7cc9.entry.js.map} +0 -0
- /package/dist/ui-webc/{p-e2288570.entry.js.map → p-4f28520e.entry.js.map} +0 -0
- /package/dist/ui-webc/{p-97956c4f.entry.js.map → p-6de2edd1.entry.js.map} +0 -0
- /package/dist/ui-webc/{p-faaf9da5.entry.js.map → p-6e9afb25.entry.js.map} +0 -0
- /package/dist/ui-webc/{p-974e8415.entry.js.map → p-8f3e4290.entry.js.map} +0 -0
- /package/dist/ui-webc/{p-e4ba9bd7.entry.js.map → p-b0a70cb6.entry.js.map} +0 -0
- /package/dist/ui-webc/{p-ac65f104.entry.js.map → p-dcc4dafa.entry.js.map} +0 -0
|
@@ -28,10 +28,10 @@ const ScoutStack$1 = /*@__PURE__*/ proxyCustomElement(class ScoutStack extends H
|
|
|
28
28
|
*/
|
|
29
29
|
gapSize = "m";
|
|
30
30
|
render() {
|
|
31
|
-
return (h(Host, { key: '
|
|
31
|
+
return (h(Host, { key: '768d68ecb7184d322a181d5917f2eaee3d270c52', style: {
|
|
32
32
|
"--stack-flex-direction": `${this.direction}`,
|
|
33
33
|
"--stack-gap-spacing": `var(--spacing-${GapSizeValues[this.gapSize]})`,
|
|
34
|
-
} }, h("slot", { key: '
|
|
34
|
+
} }, h("slot", { key: '01a68b251dcbc2b46a2902f922fe56c57daf840c' })));
|
|
35
35
|
}
|
|
36
36
|
static get delegatesFocus() { return true; }
|
|
37
37
|
static get style() { return stackCss; }
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { p as proxyCustomElement, M as Mixin, c as createEvent, h } from './p-fr5CaUFu.js';
|
|
2
|
-
import { i as inputMixin } from './p-
|
|
2
|
+
import { i as inputMixin } from './p-B-kEl-ny.js';
|
|
3
3
|
|
|
4
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)}";
|
|
5
5
|
|
|
@@ -37,7 +37,7 @@ const ScoutSwitch$1 = /*@__PURE__*/ proxyCustomElement(class ScoutSwitch extends
|
|
|
37
37
|
}
|
|
38
38
|
render() {
|
|
39
39
|
const Tag = this.label?.length ? "label" : "div";
|
|
40
|
-
return (h(Tag, { key: '
|
|
40
|
+
return (h(Tag, { key: 'b577bb6c1a4bde37ea76ae1c14bbdad4e3c11200' }, this.label, h("span", { key: 'b93dc86e4fa270efb3e8983c957731015d9709b4', class: "inlineDivider" }), h("input", { key: 'ca377aea983a9702fe9f292908048746c31433b9', 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
41
|
this.onInput();
|
|
42
42
|
this.onChange(event);
|
|
43
43
|
}, onBlur: () => this.onBlur(), onInvalid: () => this.onInvalid() })));
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"timestamp": "2026-01-
|
|
2
|
+
"timestamp": "2026-01-09T20:42:14",
|
|
3
3
|
"compiler": {
|
|
4
4
|
"name": "@stencil/core",
|
|
5
5
|
"version": "4.38.3",
|
|
@@ -283,7 +283,7 @@
|
|
|
283
283
|
},
|
|
284
284
|
{
|
|
285
285
|
"filePath": "src/components/button/button.tsx",
|
|
286
|
-
"encapsulation": "
|
|
286
|
+
"encapsulation": "none",
|
|
287
287
|
"tag": "scout-button",
|
|
288
288
|
"readme": "# scout-button\n\n\n",
|
|
289
289
|
"docs": "A button component that can be used either as a normal button or as a link.\nWill render a `<button>` element when the `type` is set to \"button\",\n\"submit\", or \"reset\", and an `<a>` element when the `type` is set to \"link\".",
|
|
@@ -1133,6 +1133,63 @@
|
|
|
1133
1133
|
"getter": false,
|
|
1134
1134
|
"setter": false
|
|
1135
1135
|
},
|
|
1136
|
+
{
|
|
1137
|
+
"name": "placeholder",
|
|
1138
|
+
"type": "string",
|
|
1139
|
+
"complexType": {
|
|
1140
|
+
"original": "string",
|
|
1141
|
+
"resolved": "string",
|
|
1142
|
+
"references": {}
|
|
1143
|
+
},
|
|
1144
|
+
"mutable": false,
|
|
1145
|
+
"attr": "placeholder",
|
|
1146
|
+
"reflectToAttr": false,
|
|
1147
|
+
"docs": "Placeholder text should rarely be used as it poses a lot of accessibility\nissues.",
|
|
1148
|
+
"docsTags": [],
|
|
1149
|
+
"values": [
|
|
1150
|
+
{
|
|
1151
|
+
"type": "string"
|
|
1152
|
+
}
|
|
1153
|
+
],
|
|
1154
|
+
"optional": true,
|
|
1155
|
+
"required": false,
|
|
1156
|
+
"getter": false,
|
|
1157
|
+
"setter": false
|
|
1158
|
+
},
|
|
1159
|
+
{
|
|
1160
|
+
"name": "size",
|
|
1161
|
+
"type": "\"large\" | \"medium\"",
|
|
1162
|
+
"complexType": {
|
|
1163
|
+
"original": "\"medium\" | \"large\"",
|
|
1164
|
+
"resolved": "\"large\" | \"medium\"",
|
|
1165
|
+
"references": {}
|
|
1166
|
+
},
|
|
1167
|
+
"mutable": false,
|
|
1168
|
+
"attr": "size",
|
|
1169
|
+
"reflectToAttr": false,
|
|
1170
|
+
"docs": "Size of the input element. Large fields are typically used for prominent\ninputs, such as a top search field on a page, while medium fields are used\nfor regular form inputs.",
|
|
1171
|
+
"docsTags": [
|
|
1172
|
+
{
|
|
1173
|
+
"name": "default",
|
|
1174
|
+
"text": "\"medium\""
|
|
1175
|
+
}
|
|
1176
|
+
],
|
|
1177
|
+
"default": "\"medium\"",
|
|
1178
|
+
"values": [
|
|
1179
|
+
{
|
|
1180
|
+
"value": "large",
|
|
1181
|
+
"type": "string"
|
|
1182
|
+
},
|
|
1183
|
+
{
|
|
1184
|
+
"value": "medium",
|
|
1185
|
+
"type": "string"
|
|
1186
|
+
}
|
|
1187
|
+
],
|
|
1188
|
+
"optional": false,
|
|
1189
|
+
"required": false,
|
|
1190
|
+
"getter": false,
|
|
1191
|
+
"setter": false
|
|
1192
|
+
},
|
|
1136
1193
|
{
|
|
1137
1194
|
"name": "type",
|
|
1138
1195
|
"type": "\"email\" | \"number\" | \"password\" | \"tel\" | \"text\" | \"url\" | string & {}",
|
|
@@ -1242,6 +1299,40 @@
|
|
|
1242
1299
|
"required": false,
|
|
1243
1300
|
"getter": false,
|
|
1244
1301
|
"setter": false
|
|
1302
|
+
},
|
|
1303
|
+
{
|
|
1304
|
+
"name": "variant",
|
|
1305
|
+
"type": "\"default\" | \"elevated\"",
|
|
1306
|
+
"complexType": {
|
|
1307
|
+
"original": "\"default\" | \"elevated\"",
|
|
1308
|
+
"resolved": "\"default\" | \"elevated\"",
|
|
1309
|
+
"references": {}
|
|
1310
|
+
},
|
|
1311
|
+
"mutable": false,
|
|
1312
|
+
"attr": "variant",
|
|
1313
|
+
"reflectToAttr": false,
|
|
1314
|
+
"docs": "Visual variant of the input element. Elevated inputs have a shadow to help\nthem stand out from the background and should only be used when absolutely\npositioned above other content.",
|
|
1315
|
+
"docsTags": [
|
|
1316
|
+
{
|
|
1317
|
+
"name": "default",
|
|
1318
|
+
"text": "\"default\""
|
|
1319
|
+
}
|
|
1320
|
+
],
|
|
1321
|
+
"default": "\"default\"",
|
|
1322
|
+
"values": [
|
|
1323
|
+
{
|
|
1324
|
+
"value": "default",
|
|
1325
|
+
"type": "string"
|
|
1326
|
+
},
|
|
1327
|
+
{
|
|
1328
|
+
"value": "elevated",
|
|
1329
|
+
"type": "string"
|
|
1330
|
+
}
|
|
1331
|
+
],
|
|
1332
|
+
"optional": false,
|
|
1333
|
+
"required": false,
|
|
1334
|
+
"getter": false,
|
|
1335
|
+
"setter": false
|
|
1245
1336
|
}
|
|
1246
1337
|
],
|
|
1247
1338
|
"methods": [],
|
|
@@ -1604,6 +1695,29 @@
|
|
|
1604
1695
|
"getter": false,
|
|
1605
1696
|
"setter": false
|
|
1606
1697
|
},
|
|
1698
|
+
{
|
|
1699
|
+
"name": "disabled",
|
|
1700
|
+
"type": "boolean",
|
|
1701
|
+
"complexType": {
|
|
1702
|
+
"original": "boolean",
|
|
1703
|
+
"resolved": "boolean",
|
|
1704
|
+
"references": {}
|
|
1705
|
+
},
|
|
1706
|
+
"mutable": false,
|
|
1707
|
+
"attr": "disabled",
|
|
1708
|
+
"reflectToAttr": false,
|
|
1709
|
+
"docs": "",
|
|
1710
|
+
"docsTags": [],
|
|
1711
|
+
"values": [
|
|
1712
|
+
{
|
|
1713
|
+
"type": "boolean"
|
|
1714
|
+
}
|
|
1715
|
+
],
|
|
1716
|
+
"optional": true,
|
|
1717
|
+
"required": false,
|
|
1718
|
+
"getter": false,
|
|
1719
|
+
"setter": false
|
|
1720
|
+
},
|
|
1607
1721
|
{
|
|
1608
1722
|
"name": "href",
|
|
1609
1723
|
"type": "string",
|
|
@@ -37,6 +37,10 @@ const inputMixin = (Base) => {
|
|
|
37
37
|
}
|
|
38
38
|
onInput() {
|
|
39
39
|
this.runValidation();
|
|
40
|
+
this.scoutInputChange.emit({
|
|
41
|
+
value: this.inputElement.value,
|
|
42
|
+
element: this.inputElement,
|
|
43
|
+
});
|
|
40
44
|
}
|
|
41
45
|
onBlur() {
|
|
42
46
|
this.scoutBlur.emit();
|
|
@@ -60,6 +64,6 @@ const inputMixin = (Base) => {
|
|
|
60
64
|
};
|
|
61
65
|
|
|
62
66
|
export { inputMixin as i };
|
|
63
|
-
//# sourceMappingURL=inputMixin-
|
|
67
|
+
//# sourceMappingURL=inputMixin-C9OB0DNj.js.map
|
|
64
68
|
|
|
65
|
-
//# sourceMappingURL=inputMixin-
|
|
69
|
+
//# sourceMappingURL=inputMixin-C9OB0DNj.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inputMixin-C9OB0DNj.js","sources":["src/mixins/inputMixin.ts"],"sourcesContent":["import {\n Event,\n type EventEmitter,\n type MixedInCtor,\n Prop,\n State,\n} from \"@stencil/core\";\n\nexport const inputMixin = <B extends MixedInCtor>(Base: B) => {\n class InputMixin extends Base {\n /**\n * Custom validation function run on top of the implicit validation performed\n * by the browser. Return a string with the validation message to mark the\n * input as invalid, or null to mark it as valid.\n */\n @Prop() validate?: (value: string) => string | null;\n\n @Event() scoutInputChange: EventEmitter<{\n value: string;\n element: HTMLElement;\n }>;\n @Event() scoutBlur: EventEmitter<void>;\n\n /**\n * Internal event used for form field validation.\n */\n @Event() _scoutValidate: EventEmitter<{ element: HTMLElement }>;\n\n /**\n * Internal event used for form field validation.\n */\n @Event() _scoutInvalid: EventEmitter<void>;\n\n /**\n * Internal event used for form field association.\n */\n @Event() _scoutFieldId: EventEmitter<string>;\n\n @State() ariaId: string;\n\n private inputElement:\n | HTMLButtonElement\n | HTMLInputElement\n | HTMLOutputElement\n | HTMLSelectElement\n | HTMLTextAreaElement;\n\n componentWillLoad() {\n this.ariaId = `_${Math.random().toString(36).substring(2, 9)}`;\n this._scoutFieldId.emit(this.ariaId);\n }\n\n componentDidLoad() {\n this.runValidation();\n }\n\n onInput() {\n this.runValidation();\n this.scoutInputChange.emit({\n value: this.inputElement.value,\n element: this.inputElement,\n });\n }\n\n onBlur() {\n this.scoutBlur.emit();\n }\n\n onInvalid() {\n this._scoutInvalid.emit();\n }\n\n runValidation() {\n if (!this.validate) {\n return;\n }\n\n const validationMessage = this.validate(this.inputElement.value);\n this.inputElement.setCustomValidity(validationMessage ?? \"\");\n\n this._scoutValidate.emit({ element: this.inputElement });\n }\n\n setInputRef(\n el:\n | HTMLButtonElement\n | HTMLInputElement\n | HTMLOutputElement\n | HTMLSelectElement\n | HTMLTextAreaElement,\n ) {\n this.inputElement = el;\n }\n }\n return InputMixin;\n};\n"],"names":[],"mappings":";;AAQa,MAAA,UAAU,GAAG,CAAwB,IAAO,KAAI;UACrD,UAAW,GAAA,cAAQ,IAAI,CAAA;;;;;AAC3B;;;;AAIG;AACK,QAAA,QAAQ;AAEP,QAAA,gBAAgB;AAIhB,QAAA,SAAS;AAElB;;AAEG;AACM,QAAA,cAAc;AAEvB;;AAEG;AACM,QAAA,aAAa;AAEtB;;AAEG;AACM,QAAA,aAAa;AAEb,QAAA,MAAM;AAEP,QAAA,YAAY;QAOpB,iBAAiB,GAAA;YACf,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;YAC9D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;;QAGtC,gBAAgB,GAAA;YACd,IAAI,CAAC,aAAa,EAAE;;QAGtB,OAAO,GAAA;YACL,IAAI,CAAC,aAAa,EAAE;AACpB,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;AACzB,gBAAA,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK;gBAC9B,OAAO,EAAE,IAAI,CAAC,YAAY;AAC3B,aAAA,CAAC;;QAGJ,MAAM,GAAA;AACJ,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;;QAGvB,SAAS,GAAA;AACP,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;;QAG3B,aAAa,GAAA;AACX,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAClB;;AAGF,YAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;YAChE,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,iBAAiB,IAAI,EAAE,CAAC;AAE5D,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;;AAG1D,QAAA,WAAW,CACT,EAKuB,EAAA;AAEvB,YAAA,IAAI,CAAC,YAAY,GAAG,EAAE;;;AAG1B,IAAA,OAAO,UAAU;AACnB;;;;"}
|
package/dist/esm/loader.js
CHANGED
|
@@ -4,7 +4,7 @@ export { s as setNonce } from './index-ksA_9NPe.js';
|
|
|
4
4
|
const defineCustomElements = async (win, options) => {
|
|
5
5
|
if (typeof window === 'undefined') return undefined;
|
|
6
6
|
await globalScripts();
|
|
7
|
-
return bootstrapLazy([["scout-list-view-item",[[785,"scout-list-view-item",{"icon":[1],"primary":[1],"secondary":[1],"type":[1],"href":[1],"target":[1],"rel":[1],"name":[1],"value":[1],"checked":[4]}]]],["scout-app-bar",[[785,"scout-app-bar",{"titleText":[1,"title-text"]}]]],["scout-bottom-bar",[[273,"scout-bottom-bar"]]],["scout-bottom-bar-item",[[785,"scout-bottom-bar-item",{"type":[1],"href":[1],"target":[1],"rel":[1],"icon":[1],"label":[1],"active":[4]}]]],["scout-button",[[
|
|
7
|
+
return bootstrapLazy([["scout-list-view-item",[[785,"scout-list-view-item",{"icon":[1],"primary":[1],"secondary":[1],"type":[1],"href":[1],"target":[1],"rel":[1],"name":[1],"value":[1],"checked":[4],"disabled":[4]}]]],["scout-app-bar",[[785,"scout-app-bar",{"titleText":[1,"title-text"]}]]],["scout-bottom-bar",[[273,"scout-bottom-bar"]]],["scout-bottom-bar-item",[[785,"scout-bottom-bar-item",{"type":[1],"href":[1],"target":[1],"rel":[1],"icon":[1],"label":[1],"active":[4]}]]],["scout-button",[[772,"scout-button",{"type":[1],"href":[1],"target":[1],"rel":[1],"variant":[1],"icon":[1],"iconPosition":[1,"icon-position"],"iconOnly":[4,"icon-only"]}]]],["scout-card",[[273,"scout-card"]]],["scout-divider",[[273,"scout-divider"]]],["scout-field",[[774,"scout-field",{"label":[1],"helpText":[1,"help-text"],"inputId":[32],"errorText":[32],"errorHidden":[32]},[[0,"_scoutFieldId","catchFieldId"],[0,"_scoutValidate","handleValidation"],[0,"scoutBlur","showError"],[0,"_scoutInvalid","showError"]]]]],["scout-input",[[770,"scout-input",{"validate":[16],"size":[1],"variant":[1],"type":[1],"inputmode":[1],"pattern":[1],"value":[1],"name":[1],"disabled":[4],"placeholder":[1],"ariaId":[32]}]]],["scout-link",[[785,"scout-link",{"href":[1],"label":[1],"rel":[1],"linkAriaLabel":[1,"link-aria-label"],"type":[1],"target":[1]}]]],["scout-list-view",[[273,"scout-list-view",null,[[0,"scoutChecked","onScoutChecked"]]]]],["scout-list-view-subheader",[[785,"scout-list-view-subheader",{"text":[1],"headingLevel":[1,"heading-level"]}]]],["scout-loader",[[769,"scout-loader",{"text":[1],"size":[1]}]]],["scout-select",[[774,"scout-select",{"validate":[16],"value":[1],"disabled":[4],"name":[1],"ariaId":[32]}]]],["scout-stack",[[785,"scout-stack",{"direction":[1],"gapSize":[1,"gap-size"]}]]],["scout-switch",[[785,"scout-switch",{"validate":[16],"toggled":[4],"disabled":[4],"ariaLabelledby":[1,"aria-labelledby"],"label":[1],"ariaId":[32]}]]],["scout-checkbox_2",[[770,"scout-checkbox",{"validate":[16],"checked":[4],"disabled":[4],"ariaLabelledby":[1,"aria-labelledby"],"label":[1],"value":[1],"name":[1],"ariaId":[32]}],[770,"scout-radio-button",{"validate":[16],"checked":[4],"disabled":[4],"ariaLabelledby":[1,"aria-labelledby"],"label":[1],"value":[1],"name":[1],"ariaId":[32]}]]]], options);
|
|
8
8
|
};
|
|
9
9
|
|
|
10
10
|
export { defineCustomElements };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as registerInstance, h } from './index-ksA_9NPe.js';
|
|
2
2
|
|
|
3
|
-
const appBarCss = ":host{display:flex;width:100%}::slotted(scout-button){height:100%}.container{display:flex;flex:1;height:var(--spacing-14);background-color:var(--color-white);border-bottom:1px solid var(--color-neutral-100);color:var(--color-text-brand-base);padding:var(--spacing-1)}.title{flex:1;display:flex;align-items:center;font:var(--type-body-lg);font-weight:500;padding:0 var(--spacing-2)}";
|
|
3
|
+
const appBarCss = ":host{display:flex;width:100%}::slotted(scout-button){height:100% !important}.container{display:flex;flex:1;height:var(--spacing-14);background-color:var(--color-white);border-bottom:1px solid var(--color-neutral-100);color:var(--color-text-brand-base);padding:var(--spacing-1)}.title{flex:1;display:flex;align-items:center;font:var(--type-body-lg);font-weight:500;padding:0 var(--spacing-2)}";
|
|
4
4
|
|
|
5
5
|
const ScoutAppBar = class {
|
|
6
6
|
constructor(hostRef) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scout-app-bar.entry.js","sources":["src/components/app-bar/app-bar.css?tag=scout-app-bar&encapsulation=shadow","src/components/app-bar/app-bar.tsx"],"sourcesContent":[":host {\n display: flex;\n width: 100%;\n}\n\n::slotted(scout-button) {\n height: 100
|
|
1
|
+
{"version":3,"file":"scout-app-bar.entry.js","sources":["src/components/app-bar/app-bar.css?tag=scout-app-bar&encapsulation=shadow","src/components/app-bar/app-bar.tsx"],"sourcesContent":[":host {\n display: flex;\n width: 100%;\n}\n\n::slotted(scout-button) {\n /* biome-ignore lint/complexity/noImportantStyles: This is a cheeky override, so we're good with it */\n height: 100% !important;\n}\n\n.container {\n display: flex;\n flex: 1;\n height: var(--spacing-14);\n background-color: var(--color-white);\n border-bottom: 1px solid var(--color-neutral-100);\n color: var(--color-text-brand-base);\n padding: var(--spacing-1);\n}\n\n.title {\n flex: 1;\n display: flex;\n align-items: center;\n font: var(--type-body-lg);\n font-weight: 500;\n padding: 0 var(--spacing-2);\n}\n","import { Component, h, Prop } from \"@stencil/core\";\n\n/**\n * The App Bar component is used at the top of a page to display a title and\n * optional prefix and suffix actions. It's typically used to provide a\n * native-like navigation experience.\n */\n@Component({\n tag: \"scout-app-bar\",\n styleUrl: \"app-bar.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class ScoutAppBar {\n @Prop() titleText?: string;\n\n render() {\n return (\n <header class=\"container\">\n <slot name=\"prefix\" />\n <div class=\"title\">{this.titleText}</div>\n <slot name=\"suffix\" />\n </header>\n );\n }\n}\n"],"names":[],"mappings":";;AAAA,MAAM,SAAS,GAAG,0YAA0Y;;MCc/Y,WAAW,GAAA,MAAA;;;;AACd,IAAA,SAAS;IAEjB,MAAM,GAAA;AACJ,QAAA,QACE,CAAA,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAQ,KAAK,EAAC,WAAW,EAAA,EACvB,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,QAAQ,EAAG,CAAA,EACtB,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,OAAO,IAAE,IAAI,CAAC,SAAS,CAAO,EACzC,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,IAAI,EAAC,QAAQ,EAAG,CAAA,CACf;;;;;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { r as registerInstance, c as createEvent, h } from './index-ksA_9NPe.js';
|
|
1
|
+
import { r as registerInstance, c as createEvent, h, H as Host } from './index-ksA_9NPe.js';
|
|
2
2
|
|
|
3
|
-
const buttonCss = "
|
|
3
|
+
const buttonCss = "scout-button{display:inline-block;height:var(--spacing-10)}scout-button .button{flex:1;display:inline-flex;height:100%;align-items:center;justify-content:center;gap:var(--spacing-3);padding:0 var(--spacing-4);font:var(--type-body-base);border-radius:var(--spacing-2);border:1px solid transparent;cursor:pointer;-webkit-text-decoration:none;text-decoration:none;box-sizing:border-box}scout-button .icon{width:var(--spacing-5);height:var(--spacing-5);margin:0 calc(var(--spacing-1) * -1)}scout-button .icon svg{width:100%;height:100%}scout-button.icon-only .button{aspect-ratio:1 / 1;justify-content:center;padding:0}scout-button.icon-only .icon{margin:0}scout-button.icon-only .content{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}scout-button .button.primary{background-color:var(--color-background-brand-base);color:var(--color-text-brand-inverse)}scout-button .button.primary:hover{background-color:var(--color-background-brand-hovered)}scout-button .button.primary:active{background-color:var(--color-background-brand-pressed)}scout-button .button.outlined{background-color:transparent;border-color:var(--color-background-brand-subtle-base);color:var(--color-text-brand-base)}scout-button .button.outlined:hover{background-color:var(--color-background-brand-subtle-hovered)}scout-button .button.outlined:active{background-color:var(--color-background-brand-subtle-pressed)}scout-button .button.text{background-color:transparent;border-color:transparent;color:var(--color-text-brand-base)}scout-button .button.text:hover{background-color:var(--color-background-brand-subtle-hovered)}scout-button .button.text:active{background-color:var(--color-background-brand-subtle-pressed)}scout-button .button.caution{background-color:var(--color-background-caution-bold-base);color:var(--color-text-caution-bold-base)}scout-button .button.caution:hover{background-color:var(--color-background-caution-bold-hovered)}scout-button .button.caution:active{background-color:var(--color-background-caution-bold-pressed)}scout-button .button.danger{background-color:var(--color-background-danger-bold-base);color:var(--color-text-danger-bold-base)}scout-button .button.danger:hover{background-color:var(--color-background-danger-bold-hovered)}scout-button .button.danger:active{background-color:var(--color-background-danger-bold-pressed)}";
|
|
4
4
|
|
|
5
5
|
const ScoutButton = class {
|
|
6
6
|
constructor(hostRef) {
|
|
@@ -35,8 +35,8 @@ const ScoutButton = class {
|
|
|
35
35
|
: {
|
|
36
36
|
type: this.type,
|
|
37
37
|
};
|
|
38
|
-
const icon = this.icon && h("span", { key: '
|
|
39
|
-
return (h(
|
|
38
|
+
const icon = this.icon && h("span", { key: '0f03bad87dbcaf10cc387fd20121bd6b3ecdf42d', class: "icon", innerHTML: this.icon });
|
|
39
|
+
return (h(Host, { key: '7a2f998327c5e3dc7139c11f3fcbbe827346c0ee', class: this.iconOnly ? "icon-only" : "" }, h(Tag, { key: 'cabe4acf010df2880a83d5b27f2e885bf326673c', class: `button ${this.variant}`, onClick: () => this.scoutClick.emit(), ...props }, this.iconPosition === "before" && icon, h("span", { key: '7388a6a872149b4cff84256017ee251196612e1a', class: "content" }, h("slot", { key: '0002a40443d7da3b386a708543185cbc572bb461' })), this.iconPosition === "after" && icon)));
|
|
40
40
|
}
|
|
41
41
|
};
|
|
42
42
|
ScoutButton.style = buttonCss;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scout-button.entry.js","sources":["src/components/button/button.css?tag=scout-button
|
|
1
|
+
{"version":3,"file":"scout-button.entry.js","sources":["src/components/button/button.css?tag=scout-button","src/components/button/button.tsx"],"sourcesContent":["scout-button {\n display: inline-block;\n height: var(--spacing-10);\n\n .button {\n flex: 1;\n display: inline-flex;\n height: 100%;\n align-items: center;\n justify-content: center;\n gap: var(--spacing-3);\n padding: 0 var(--spacing-4);\n font: var(--type-body-base);\n border-radius: var(--spacing-2);\n border: 1px solid transparent;\n cursor: pointer;\n text-decoration: none;\n box-sizing: border-box;\n }\n\n .icon {\n width: var(--spacing-5);\n height: var(--spacing-5);\n margin: 0 calc(var(--spacing-1) * -1);\n }\n\n .icon svg {\n width: 100%;\n height: 100%;\n }\n\n &.icon-only .button {\n aspect-ratio: 1 / 1;\n justify-content: center;\n padding: 0;\n }\n\n &.icon-only .icon {\n margin: 0;\n }\n\n &.icon-only .content {\n /* Visually hidden: https://www.a11yproject.com/posts/how-to-hide-content/ */\n clip: rect(0 0 0 0);\n clip-path: inset(50%);\n height: 1px;\n overflow: hidden;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n }\n\n .button.primary {\n background-color: var(--color-background-brand-base);\n color: var(--color-text-brand-inverse);\n\n &:hover {\n background-color: var(--color-background-brand-hovered);\n }\n\n &:active {\n background-color: var(--color-background-brand-pressed);\n }\n }\n\n .button.outlined {\n background-color: transparent;\n border-color: var(--color-background-brand-subtle-base);\n color: var(--color-text-brand-base);\n\n &:hover {\n background-color: var(--color-background-brand-subtle-hovered);\n }\n\n &:active {\n background-color: var(--color-background-brand-subtle-pressed);\n }\n }\n\n .button.text {\n background-color: transparent;\n border-color: transparent;\n color: var(--color-text-brand-base);\n\n &:hover {\n background-color: var(--color-background-brand-subtle-hovered);\n }\n\n &:active {\n background-color: var(--color-background-brand-subtle-pressed);\n }\n }\n\n .button.caution {\n background-color: var(--color-background-caution-bold-base);\n color: var(--color-text-caution-bold-base);\n\n &:hover {\n background-color: var(--color-background-caution-bold-hovered);\n }\n\n &:active {\n background-color: var(--color-background-caution-bold-pressed);\n }\n }\n\n .button.danger {\n background-color: var(--color-background-danger-bold-base);\n color: var(--color-text-danger-bold-base);\n\n &:hover {\n background-color: var(--color-background-danger-bold-hovered);\n }\n\n &:active {\n background-color: var(--color-background-danger-bold-pressed);\n }\n }\n}\n","import {\n Component,\n Event,\n type EventEmitter,\n h,\n Host,\n Prop,\n} from \"@stencil/core\";\n\nexport type Variant = \"primary\" | \"outlined\" | \"text\" | \"caution\" | \"danger\";\n\n/**\n * A button component that can be used either as a normal button or as a link.\n * Will render a `<button>` element when the `type` is set to \"button\",\n * \"submit\", or \"reset\", and an `<a>` element when the `type` is set to \"link\".\n */\n@Component({\n tag: \"scout-button\",\n styleUrl: \"button.css\",\n})\nexport class ScoutButton {\n @Prop() type: \"button\" | \"submit\" | \"reset\" | \"link\" = \"button\";\n\n @Prop() href?: string;\n @Prop() target?: string;\n @Prop() rel?: string;\n\n /**\n * The variant primarily affects the color of the button.\n */\n @Prop() variant: Variant = \"outlined\";\n\n /**\n * An optional icon to display alongside the button text. Must be an SVG string.\n */\n @Prop() icon?: string;\n @Prop() iconPosition: \"before\" | \"after\" = \"after\";\n @Prop() iconOnly: boolean = false;\n\n @Event() scoutClick: EventEmitter<void>;\n\n render() {\n const Tag = this.type === \"link\" ? \"a\" : \"button\";\n\n const props =\n this.type === \"link\"\n ? {\n href: this.href,\n target: this.target,\n // This might not be our job, but better safe than sorry.\n rel:\n this.rel ??\n (this.target === \"_blank\" ? \"noopener noreferrer\" : undefined),\n }\n : {\n type: this.type,\n };\n\n const icon = this.icon && <span class=\"icon\" innerHTML={this.icon} />;\n\n return (\n <Host class={this.iconOnly ? \"icon-only\" : \"\"}>\n <Tag\n class={`button ${this.variant}`}\n onClick={() => this.scoutClick.emit()}\n {...props}\n >\n {this.iconPosition === \"before\" && icon}\n <span class=\"content\">\n <slot />\n </span>\n {this.iconPosition === \"after\" && icon}\n </Tag>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":";;AAAA,MAAM,SAAS,GAAG,01EAA01E;;MCoB/1E,WAAW,GAAA,MAAA;;;;;IACd,IAAI,GAA2C,QAAQ;AAEvD,IAAA,IAAI;AACJ,IAAA,MAAM;AACN,IAAA,GAAG;AAEX;;AAEG;IACK,OAAO,GAAY,UAAU;AAErC;;AAEG;AACK,IAAA,IAAI;IACJ,YAAY,GAAuB,OAAO;IAC1C,QAAQ,GAAY,KAAK;AAExB,IAAA,UAAU;IAEnB,MAAM,GAAA;AACJ,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,KAAK,MAAM,GAAG,GAAG,GAAG,QAAQ;AAEjD,QAAA,MAAM,KAAK,GACT,IAAI,CAAC,IAAI,KAAK;AACZ,cAAE;gBACE,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,MAAM,EAAE,IAAI,CAAC,MAAM;;gBAEnB,GAAG,EACD,IAAI,CAAC,GAAG;AACR,qBAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,GAAG,qBAAqB,GAAG,SAAS,CAAC;AACjE;AACH,cAAE;gBACE,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB;QAEP,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,MAAM,EAAC,SAAS,EAAE,IAAI,CAAC,IAAI,GAAI;QAErE,QACE,CAAC,CAAA,IAAI,EAAC,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,IAAI,CAAC,QAAQ,GAAG,WAAW,GAAG,EAAE,EAAA,EAC3C,CAAC,CAAA,GAAG,qDACF,KAAK,EAAE,CAAA,OAAA,EAAU,IAAI,CAAC,OAAO,CAAE,CAAA,EAC/B,OAAO,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,EAAA,GACjC,KAAK,EAAA,EAER,IAAI,CAAC,YAAY,KAAK,QAAQ,IAAI,IAAI,EACvC,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,SAAS,EAAA,EACnB,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAQ,CACH,EACN,IAAI,CAAC,YAAY,KAAK,OAAO,IAAI,IAAI,CAClC,CACD;;;;;;;"}
|
|
@@ -7,7 +7,7 @@ const ScoutCard = class {
|
|
|
7
7
|
registerInstance(this, hostRef);
|
|
8
8
|
}
|
|
9
9
|
render() {
|
|
10
|
-
return (h("div", { key: '
|
|
10
|
+
return (h("div", { key: '1ea5b0a2ea2a8f342e0153d9e90565cc69e2f336', class: "card" }, h("slot", { key: '328519393a7ad17aa158dea8835f16ebdc0cc7bc' })));
|
|
11
11
|
}
|
|
12
12
|
static get delegatesFocus() { return true; }
|
|
13
13
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { M as Mixin, r as registerInstance, c as createEvent, h } from './index-ksA_9NPe.js';
|
|
2
|
-
import { i as inputMixin } from './inputMixin-
|
|
2
|
+
import { i as inputMixin } from './inputMixin-C9OB0DNj.js';
|
|
3
3
|
|
|
4
4
|
const checkSvg = 'data:image/svg+xml;base64,PHN2ZwogIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICB3aWR0aD0iMjQiCiAgaGVpZ2h0PSIyNCIKICB2aWV3Qm94PSIwIDAgMjQgMjQiCiAgZmlsbD0ibm9uZSIKICBzdHJva2U9ImN1cnJlbnRDb2xvciIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCiAgY2xhc3M9Imljb24gaWNvbi10YWJsZXIgaWNvbnMtdGFibGVyLW91dGxpbmUgaWNvbi10YWJsZXItY2hlY2siCj4KICA8cGF0aCBzdHJva2U9Im5vbmUiIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz4KICA8cGF0aCBkPSJNNSAxMmw1IDVsMTAgLTEwIiAvPgo8L3N2Zz4=';
|
|
5
5
|
|
|
@@ -35,7 +35,7 @@ const ScoutCheckbox = class extends Mixin(inputMixin) {
|
|
|
35
35
|
}
|
|
36
36
|
render() {
|
|
37
37
|
const Tag = this.label?.length ? "label" : "div";
|
|
38
|
-
return (h(Tag, { key: '
|
|
38
|
+
return (h(Tag, { key: '67b42b2b686fffecf891da832236fde663b740dc' }, h("input", { key: '81821918d102e1ca809915c14a20aa0847f46e30', ref: (el) => this.setInputRef(el), id: this.ariaId, type: "checkbox", value: this.value, name: this.name, class: "checkbox", style: { "--icon-checkbox": `url(${checkSvg})` }, "aria-labelledby": this.ariaLabelledby, "aria-disabled": this.disabled, disabled: this.disabled, checked: this.checked, onChange: (event) => {
|
|
39
39
|
this.onInput();
|
|
40
40
|
this.onChange(event);
|
|
41
41
|
}, onBlur: () => this.onBlur(), onInvalid: () => this.onInvalid() }), this.label));
|
|
@@ -75,7 +75,7 @@ const ScoutRadioButton = class extends Mixin(inputMixin) {
|
|
|
75
75
|
}
|
|
76
76
|
render() {
|
|
77
77
|
const Tag = this.label?.length ? "label" : "div";
|
|
78
|
-
return (h(Tag, { key: '
|
|
78
|
+
return (h(Tag, { key: '22df090dcbf2f2b4b14b7cad8d34500295045f70' }, h("input", { key: '3bcc5022fa6202fd1fe733c1a8430f7ed1a54cf4', ref: (el) => this.setInputRef(el), id: this.ariaId, type: "radio", value: this.value, name: this.name, class: "radio", "aria-labelledby": this.ariaLabelledby, "aria-disabled": this.disabled, disabled: this.disabled, checked: this.checked, onChange: (event) => {
|
|
79
79
|
this.onInput();
|
|
80
80
|
this.onChange(event);
|
|
81
81
|
}, onBlur: () => this.onBlur(), onInvalid: () => this.onInvalid() }), this.label));
|
|
@@ -7,7 +7,7 @@ const ScoutDivider = class {
|
|
|
7
7
|
registerInstance(this, hostRef);
|
|
8
8
|
}
|
|
9
9
|
render() {
|
|
10
|
-
return h(Host, { key: '
|
|
10
|
+
return h(Host, { key: '6a4d3d0bed1689875ec867b16f0c77f391662fc8' });
|
|
11
11
|
}
|
|
12
12
|
static get delegatesFocus() { return true; }
|
|
13
13
|
};
|
|
@@ -36,7 +36,7 @@ const ScoutField = class {
|
|
|
36
36
|
this.errorHidden = false;
|
|
37
37
|
}
|
|
38
38
|
render() {
|
|
39
|
-
return (h("div", { key: '
|
|
39
|
+
return (h("div", { key: 'e7539abfb11fac14a5ffd87cfb1a70dd9c41cca7', class: "field" }, h("label", { key: 'c4501be15aafbb2d6e3c447c5893aa2510e20b89', htmlFor: this.inputId, class: "label" }, this.label), h("slot", { key: '5806c8d41926245074fb395b08226272a2432d96' }), h("p", { key: 'f1a36881c2ce2f8485d31e8faac452c9c2423d74', class: "error-text", "aria-live": "polite" }, !this.errorHidden && this.errorText), this.helpText && h("p", { key: '0d9ea374551b527d085ef33595fdee27e80d08fb', class: "help-text" }, this.helpText)));
|
|
40
40
|
}
|
|
41
41
|
};
|
|
42
42
|
ScoutField.style = fieldCss;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { M as Mixin, r as registerInstance, c as createEvent, h } from './index-ksA_9NPe.js';
|
|
2
|
-
import { i as inputMixin } from './inputMixin-
|
|
1
|
+
import { M as Mixin, r as registerInstance, c as createEvent, h, H as Host } from './index-ksA_9NPe.js';
|
|
2
|
+
import { i as inputMixin } from './inputMixin-C9OB0DNj.js';
|
|
3
3
|
|
|
4
|
-
const inputCss = ".
|
|
4
|
+
const inputCss = ".sc-scout-input-h{display:flex;height:var(--spacing-10);--scout-input-padding:var(--spacing-2);--scout-input-border-radius:var(--spacing-2);--scout-input-type:var(--type-body-base)}.large.sc-scout-input-h{height:var(--spacing-14);--scout-input-padding:var(--spacing-3);--scout-input-border-radius:var(--spacing-3);--scout-input-type:var(--type-body-lg)}.input.sc-scout-input{flex:1;padding:var(--scout-input-padding);font:var(--scout-input-type);border:1px solid var(--color-gray-300);border-radius:var(--scout-input-border-radius);background-color:var(--color-white);color:var(--color-text-base)}.input.sc-scout-input:disabled{background-color:var(--color-gray-100);color:var(--color-gray-700);cursor:not-allowed}.elevated.sc-scout-input-h .input.sc-scout-input{box-shadow:0 4px 6px -1px rgba(0, 0, 0, 0.1),\n 0 2px 4px -2px rgba(0, 0, 0, 0.1);border-color:transparent}";
|
|
5
5
|
|
|
6
6
|
const ScoutInput = class extends Mixin(inputMixin) {
|
|
7
7
|
constructor(hostRef) {
|
|
@@ -13,6 +13,18 @@ const ScoutInput = class extends Mixin(inputMixin) {
|
|
|
13
13
|
this._scoutInvalid = createEvent(this, "_scoutInvalid");
|
|
14
14
|
this._scoutFieldId = createEvent(this, "_scoutFieldId");
|
|
15
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* Size of the input element. Large fields are typically used for prominent
|
|
18
|
+
* inputs, such as a top search field on a page, while medium fields are used
|
|
19
|
+
* for regular form inputs.
|
|
20
|
+
*/
|
|
21
|
+
size = "medium";
|
|
22
|
+
/**
|
|
23
|
+
* Visual variant of the input element. Elevated inputs have a shadow to help
|
|
24
|
+
* them stand out from the background and should only be used when absolutely
|
|
25
|
+
* positioned above other content.
|
|
26
|
+
*/
|
|
27
|
+
variant = "default";
|
|
16
28
|
/**
|
|
17
29
|
* Type of input element. If you need a number input, read the accessibility
|
|
18
30
|
* section of this MDN article first:
|
|
@@ -37,8 +49,15 @@ const ScoutInput = class extends Mixin(inputMixin) {
|
|
|
37
49
|
* from tab order and are not validated.
|
|
38
50
|
*/
|
|
39
51
|
disabled = false;
|
|
52
|
+
/**
|
|
53
|
+
* Placeholder text should rarely be used as it poses a lot of accessibility
|
|
54
|
+
* issues.
|
|
55
|
+
*/
|
|
56
|
+
placeholder;
|
|
40
57
|
render() {
|
|
41
|
-
|
|
58
|
+
const sizeClass = this.size === "large" ? "large" : "";
|
|
59
|
+
const variantClass = this.variant === "elevated" ? "elevated" : "";
|
|
60
|
+
return (h(Host, { key: '769603f718f511a0a2202814a7621d60a2a9f34c', class: `${sizeClass} ${variantClass}` }, h("input", { key: '6a4e1ad8173dfe37ce5facf8627990fd797dfc60', ref: (el) => this.setInputRef(el), id: this.ariaId, type: this.type, name: this.name, inputMode: this.inputmode, pattern: this.pattern, class: "input", value: this.value, disabled: this.disabled, placeholder: this.placeholder, onInput: () => this.onInput(), onBlur: () => this.onBlur(), onInvalid: () => this.onInvalid() })));
|
|
42
61
|
}
|
|
43
62
|
};
|
|
44
63
|
ScoutInput.style = inputCss;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scout-input.entry.js","sources":["src/components/input/input.css?tag=scout-input&encapsulation=scoped","src/components/input/input.tsx"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"scout-input.entry.js","sources":["src/components/input/input.css?tag=scout-input&encapsulation=scoped","src/components/input/input.tsx"],"sourcesContent":[":host {\n display: flex;\n height: var(--spacing-10);\n --scout-input-padding: var(--spacing-2);\n --scout-input-border-radius: var(--spacing-2);\n --scout-input-type: var(--type-body-base);\n}\n\n:host(.large) {\n height: var(--spacing-14);\n --scout-input-padding: var(--spacing-3);\n --scout-input-border-radius: var(--spacing-3);\n --scout-input-type: var(--type-body-lg);\n}\n\n.input {\n flex: 1;\n padding: var(--scout-input-padding);\n font: var(--scout-input-type);\n border: 1px solid var(--color-gray-300);\n border-radius: var(--scout-input-border-radius);\n background-color: var(--color-white);\n color: var(--color-text-base);\n}\n\n.input:disabled {\n background-color: var(--color-gray-100);\n color: var(--color-gray-700);\n cursor: not-allowed;\n}\n\n:host(.elevated) .input {\n box-shadow:\n 0 4px 6px -1px rgb(0 0 0 / 0.1),\n 0 2px 4px -2px rgb(0 0 0 / 0.1);\n border-color: transparent;\n}\n","import {\n Component,\n type ComponentInterface,\n Host,\n h,\n Mixin,\n Prop,\n} from \"@stencil/core\";\nimport { inputMixin } from \"../../mixins/inputMixin\";\n\nexport type InputType =\n | \"text\"\n | \"password\"\n | \"email\"\n | \"number\"\n | \"tel\"\n | \"url\"\n // Hack to suggest above value but still allow any other string value\n | (string & {});\n\nexport type InputMode =\n | \"none\"\n | \"text\"\n | \"decimal\"\n | \"numeric\"\n | \"tel\"\n | \"search\"\n | \"email\"\n | \"url\"\n // Hack to suggest above value but still allow any other string value\n | (string & {});\n\n/**\n * The input component is a basic text input field that can be used to capture\n * user input. It supports various types and input modes for different use\n * cases. When used in a form, make sure to wrap it in a Field component to\n * display a label, help text, and error messages.\n */\n@Component({\n tag: \"scout-input\",\n styleUrl: \"input.css\",\n scoped: true,\n})\nexport class ScoutInput\n extends Mixin(inputMixin)\n implements ComponentInterface\n{\n /**\n * Size of the input element. Large fields are typically used for prominent\n * inputs, such as a top search field on a page, while medium fields are used\n * for regular form inputs.\n */\n @Prop() size: \"medium\" | \"large\" = \"medium\";\n\n /**\n * Visual variant of the input element. Elevated inputs have a shadow to help\n * them stand out from the background and should only be used when absolutely\n * positioned above other content.\n */\n @Prop() variant: \"default\" | \"elevated\" = \"default\";\n\n /**\n * Type of input element. If you need a number input, read the accessibility\n * section of this MDN article first:\n * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/input/number#accessibility\n */\n @Prop() type: InputType = \"text\";\n\n /**\n * Input mode hints for devices with dynamic keyboards.\n */\n @Prop() inputmode?: InputMode;\n\n /**\n * Regex pattern for input validation.\n */\n @Prop() pattern?: string;\n\n /**\n * Value of the input element, in case you want to control it yourself.\n */\n @Prop() value: string = \"\";\n\n @Prop() name: string;\n\n /**\n * Whether the input is disabled. Disabled inputs are not editable, excluded\n * from tab order and are not validated.\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Placeholder text should rarely be used as it poses a lot of accessibility\n * issues.\n */\n @Prop() placeholder?: string;\n\n render() {\n const sizeClass = this.size === \"large\" ? \"large\" : \"\";\n const variantClass = this.variant === \"elevated\" ? \"elevated\" : \"\";\n\n return (\n <Host class={`${sizeClass} ${variantClass}`}>\n <input\n ref={(el) => this.setInputRef(el)}\n id={this.ariaId}\n type={this.type}\n name={this.name}\n inputMode={this.inputmode}\n pattern={this.pattern}\n class=\"input\"\n value={this.value}\n disabled={this.disabled}\n placeholder={this.placeholder}\n onInput={() => this.onInput()}\n onBlur={() => this.onBlur()}\n onInvalid={() => this.onInvalid()}\n />\n </Host>\n );\n }\n}\n"],"names":[],"mappings":";;;AAAA,MAAM,QAAQ,GAAG,22BAA22B;;AC2C/2B,MAAA,UACX,GAAA,cAAQ,KAAK,CAAC,UAAU,CAAC,CAAA;;;;;;;;;;AAGzB;;;;AAIG;IACK,IAAI,GAAuB,QAAQ;AAE3C;;;;AAIG;IACK,OAAO,GAA2B,SAAS;AAEnD;;;;AAIG;IACK,IAAI,GAAc,MAAM;AAEhC;;AAEG;AACK,IAAA,SAAS;AAEjB;;AAEG;AACK,IAAA,OAAO;AAEf;;AAEG;IACK,KAAK,GAAW,EAAE;AAElB,IAAA,IAAI;AAEZ;;;AAGG;IACK,QAAQ,GAAY,KAAK;AAEjC;;;AAGG;AACK,IAAA,WAAW;IAEnB,MAAM,GAAA;AACJ,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,KAAK,OAAO,GAAG,OAAO,GAAG,EAAE;AACtD,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,KAAK,UAAU,GAAG,UAAU,GAAG,EAAE;AAElE,QAAA,QACE,CAAC,CAAA,IAAI,EAAC,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,CAAG,EAAA,SAAS,CAAI,CAAA,EAAA,YAAY,CAAE,CAAA,EAAA,EACzC,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,EAAE,IAAI,CAAC,IAAI,EACf,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,KAAK,EAAC,OAAO,EACb,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,OAAO,EAAE,MAAM,IAAI,CAAC,OAAO,EAAE,EAC7B,MAAM,EAAE,MAAM,IAAI,CAAC,MAAM,EAAE,EAC3B,SAAS,EAAE,MAAM,IAAI,CAAC,SAAS,EAAE,EAAA,CACjC,CACG;;;;;;;"}
|
|
@@ -17,6 +17,7 @@ const ScoutListViewItem = class {
|
|
|
17
17
|
name;
|
|
18
18
|
value;
|
|
19
19
|
checked;
|
|
20
|
+
disabled;
|
|
20
21
|
scoutClick;
|
|
21
22
|
render() {
|
|
22
23
|
const Tag = this.type === "link"
|
|
@@ -33,7 +34,7 @@ const ScoutListViewItem = class {
|
|
|
33
34
|
(this.target === "_blank" ? "noopener noreferrer" : undefined),
|
|
34
35
|
}
|
|
35
36
|
: {};
|
|
36
|
-
return (h(Host, { key: '
|
|
37
|
+
return (h(Host, { key: '329bcf60c9b9df6af329d833500b673f3de7e0ff', role: "listitem" }, h(Tag, { key: '864c0c388e72a544afac7b73dc715fc992f913aa', class: "button", ...linkProps, onClick: () => this.scoutClick.emit() }, this.getPrefix(), this.getContent(), this.getSuffix())));
|
|
37
38
|
}
|
|
38
39
|
getPrefix() {
|
|
39
40
|
if (!this.icon) {
|
|
@@ -46,10 +47,10 @@ const ScoutListViewItem = class {
|
|
|
46
47
|
}
|
|
47
48
|
getSuffix() {
|
|
48
49
|
if (this.type === "radio") {
|
|
49
|
-
return (h("scout-radio-button", { name: this.name, value: this.value, checked: this.checked }));
|
|
50
|
+
return (h("scout-radio-button", { name: this.name, value: this.value, checked: this.checked, disabled: this.disabled }));
|
|
50
51
|
}
|
|
51
52
|
if (this.type === "checkbox") {
|
|
52
|
-
return (h("scout-checkbox", { name: this.name, value: this.value, checked: this.checked }));
|
|
53
|
+
return (h("scout-checkbox", { name: this.name, value: this.value, checked: this.checked, disabled: this.disabled }));
|
|
53
54
|
}
|
|
54
55
|
return null;
|
|
55
56
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scout-list-view-item.entry.js","sources":["src/components/list-view-item/list-view-item.css?tag=scout-list-view-item&encapsulation=shadow","src/components/list-view-item/list-view-item.tsx"],"sourcesContent":[":host {\n display: flex;\n}\n\n.button {\n flex: 1;\n display: flex;\n align-items: center;\n text-align: unset;\n min-height: var(--spacing-12);\n color: var(--color-text-base);\n padding: var(--spacing-2) var(--spacing-4);\n cursor: pointer;\n border: none;\n background-color: transparent;\n text-decoration: none;\n}\n\n.button:hover {\n background-color: var(--color-background-brand-subtle-hovered);\n}\n\n.prefix-icon,\n.suffix-icon {\n display: flex;\n align-items: center;\n height: var(--spacing-6);\n color: var(--color-neutral-700);\n\n svg,\n .icon {\n width: var(--spacing-6);\n height: var(--spacing-6);\n }\n}\n\n.prefix-icon {\n justify-content: flex-start;\n width: var(--spacing-14);\n}\n\n.suffix-icon {\n justify-content: flex-end;\n width: var(--spacing-8);\n\n .icon {\n background-color: currentColor;\n mask-image: var(--icon);\n mask-repeat: no-repeat;\n mask-size: 100% 100%;\n }\n}\n\n.content {\n flex: 1;\n display: flex;\n flex-direction: column;\n justify-content: center;\n}\n\n.primary {\n font: var(--type-body-base);\n}\n\n.secondary {\n font: var(--type-body-sm);\n color: var(--color-neutral-700);\n}\n","import {\n Component,\n Event,\n type EventEmitter,\n Host,\n h,\n Prop,\n} from \"@stencil/core\";\n\nexport type ItemType = \"button\" | \"link\" | \"radio\" | \"checkbox\";\n\n@Component({\n tag: \"scout-list-view-item\",\n styleUrl: \"list-view-item.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class ScoutListViewItem {\n @Prop() icon?: string;\n @Prop() primary?: string;\n @Prop() secondary?: string;\n @Prop() type: ItemType = \"button\";\n\n @Prop() href?: string;\n @Prop() target?: string;\n @Prop() rel?: string;\n\n @Prop() name?: string;\n @Prop() value?: string;\n @Prop() checked?: boolean;\n\n @Event() scoutClick: EventEmitter<void>;\n\n render() {\n const Tag =\n this.type === \"link\"\n ? \"a\"\n : this.type === \"radio\" || this.type === \"checkbox\"\n ? \"label\"\n : \"button\";\n\n const linkProps =\n this.type === \"link\"\n ? {\n href: this.href,\n target: this.target,\n // This might not be our job, but better safe than sorry.\n rel:\n this.rel ??\n (this.target === \"_blank\" ? \"noopener noreferrer\" : undefined),\n }\n : {};\n\n return (\n <Host role=\"listitem\">\n <Tag\n class=\"button\"\n {...linkProps}\n onClick={() => this.scoutClick.emit()}\n >\n {this.getPrefix()}\n {this.getContent()}\n {this.getSuffix()}\n </Tag>\n </Host>\n );\n }\n\n private getPrefix() {\n if (!this.icon) {\n return null;\n }\n\n return <div class=\"prefix-icon\" innerHTML={this.icon} />;\n }\n\n private getContent() {\n return (\n <div class=\"content\">\n {this.primary && <div class=\"primary\">{this.primary}</div>}\n {this.secondary && <div class=\"secondary\">{this.secondary}</div>}\n </div>\n );\n }\n\n private getSuffix() {\n if (this.type === \"radio\") {\n return (\n <scout-radio-button\n name={this.name}\n value={this.value}\n checked={this.checked}\n />\n );\n }\n\n if (this.type === \"checkbox\") {\n return (\n <scout-checkbox\n name={this.name}\n value={this.value}\n checked={this.checked}\n />\n );\n }\n\n return null;\n }\n}\n"],"names":[],"mappings":";;AAAA,MAAM,eAAe,GAAG,klCAAklC;;MCkB7lC,iBAAiB,GAAA,MAAA;;;;;AACpB,IAAA,IAAI;AACJ,IAAA,OAAO;AACP,IAAA,SAAS;IACT,IAAI,GAAa,QAAQ;AAEzB,IAAA,IAAI;AACJ,IAAA,MAAM;AACN,IAAA,GAAG;AAEH,IAAA,IAAI;AACJ,IAAA,KAAK;AACL,IAAA,OAAO;
|
|
1
|
+
{"version":3,"file":"scout-list-view-item.entry.js","sources":["src/components/list-view-item/list-view-item.css?tag=scout-list-view-item&encapsulation=shadow","src/components/list-view-item/list-view-item.tsx"],"sourcesContent":[":host {\n display: flex;\n}\n\n.button {\n flex: 1;\n display: flex;\n align-items: center;\n text-align: unset;\n min-height: var(--spacing-12);\n color: var(--color-text-base);\n padding: var(--spacing-2) var(--spacing-4);\n cursor: pointer;\n border: none;\n background-color: transparent;\n text-decoration: none;\n}\n\n.button:hover {\n background-color: var(--color-background-brand-subtle-hovered);\n}\n\n.prefix-icon,\n.suffix-icon {\n display: flex;\n align-items: center;\n height: var(--spacing-6);\n color: var(--color-neutral-700);\n\n svg,\n .icon {\n width: var(--spacing-6);\n height: var(--spacing-6);\n }\n}\n\n.prefix-icon {\n justify-content: flex-start;\n width: var(--spacing-14);\n}\n\n.suffix-icon {\n justify-content: flex-end;\n width: var(--spacing-8);\n\n .icon {\n background-color: currentColor;\n mask-image: var(--icon);\n mask-repeat: no-repeat;\n mask-size: 100% 100%;\n }\n}\n\n.content {\n flex: 1;\n display: flex;\n flex-direction: column;\n justify-content: center;\n}\n\n.primary {\n font: var(--type-body-base);\n}\n\n.secondary {\n font: var(--type-body-sm);\n color: var(--color-neutral-700);\n}\n","import {\n Component,\n Event,\n type EventEmitter,\n Host,\n h,\n Prop,\n} from \"@stencil/core\";\n\nexport type ItemType = \"button\" | \"link\" | \"radio\" | \"checkbox\";\n\n@Component({\n tag: \"scout-list-view-item\",\n styleUrl: \"list-view-item.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class ScoutListViewItem {\n @Prop() icon?: string;\n @Prop() primary?: string;\n @Prop() secondary?: string;\n @Prop() type: ItemType = \"button\";\n\n @Prop() href?: string;\n @Prop() target?: string;\n @Prop() rel?: string;\n\n @Prop() name?: string;\n @Prop() value?: string;\n @Prop() checked?: boolean;\n\n @Prop() disabled?: boolean;\n\n @Event() scoutClick: EventEmitter<void>;\n\n render() {\n const Tag =\n this.type === \"link\"\n ? \"a\"\n : this.type === \"radio\" || this.type === \"checkbox\"\n ? \"label\"\n : \"button\";\n\n const linkProps =\n this.type === \"link\"\n ? {\n href: this.href,\n target: this.target,\n // This might not be our job, but better safe than sorry.\n rel:\n this.rel ??\n (this.target === \"_blank\" ? \"noopener noreferrer\" : undefined),\n }\n : {};\n\n return (\n <Host role=\"listitem\">\n <Tag\n class=\"button\"\n {...linkProps}\n onClick={() => this.scoutClick.emit()}\n >\n {this.getPrefix()}\n {this.getContent()}\n {this.getSuffix()}\n </Tag>\n </Host>\n );\n }\n\n private getPrefix() {\n if (!this.icon) {\n return null;\n }\n\n return <div class=\"prefix-icon\" innerHTML={this.icon} />;\n }\n\n private getContent() {\n return (\n <div class=\"content\">\n {this.primary && <div class=\"primary\">{this.primary}</div>}\n {this.secondary && <div class=\"secondary\">{this.secondary}</div>}\n </div>\n );\n }\n\n private getSuffix() {\n if (this.type === \"radio\") {\n return (\n <scout-radio-button\n name={this.name}\n value={this.value}\n checked={this.checked}\n disabled={this.disabled}\n />\n );\n }\n\n if (this.type === \"checkbox\") {\n return (\n <scout-checkbox\n name={this.name}\n value={this.value}\n checked={this.checked}\n disabled={this.disabled}\n />\n );\n }\n\n return null;\n }\n}\n"],"names":[],"mappings":";;AAAA,MAAM,eAAe,GAAG,klCAAklC;;MCkB7lC,iBAAiB,GAAA,MAAA;;;;;AACpB,IAAA,IAAI;AACJ,IAAA,OAAO;AACP,IAAA,SAAS;IACT,IAAI,GAAa,QAAQ;AAEzB,IAAA,IAAI;AACJ,IAAA,MAAM;AACN,IAAA,GAAG;AAEH,IAAA,IAAI;AACJ,IAAA,KAAK;AACL,IAAA,OAAO;AAEP,IAAA,QAAQ;AAEP,IAAA,UAAU;IAEnB,MAAM,GAAA;AACJ,QAAA,MAAM,GAAG,GACP,IAAI,CAAC,IAAI,KAAK;AACZ,cAAE;cACA,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK;AACvC,kBAAE;kBACA,QAAQ;AAEhB,QAAA,MAAM,SAAS,GACb,IAAI,CAAC,IAAI,KAAK;AACZ,cAAE;gBACE,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,MAAM,EAAE,IAAI,CAAC,MAAM;;gBAEnB,GAAG,EACD,IAAI,CAAC,GAAG;AACR,qBAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,GAAG,qBAAqB,GAAG,SAAS,CAAC;AACjE;cACD,EAAE;AAER,QAAA,QACE,CAAC,CAAA,IAAI,EAAC,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,UAAU,EAAA,EACnB,CAAA,CAAC,GAAG,EACF,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,QAAQ,EAAA,GACV,SAAS,EACb,OAAO,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,EAAA,EAEpC,IAAI,CAAC,SAAS,EAAE,EAChB,IAAI,CAAC,UAAU,EAAE,EACjB,IAAI,CAAC,SAAS,EAAE,CACb,CACD;;IAIH,SAAS,GAAA;AACf,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AACd,YAAA,OAAO,IAAI;;AAGb,QAAA,OAAO,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,aAAa,EAAC,SAAS,EAAE,IAAI,CAAC,IAAI,EAAA,CAAI;;IAGlD,UAAU,GAAA;QAChB,QACE,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,SAAS,EAAA,EACjB,IAAI,CAAC,OAAO,IAAI,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,SAAS,EAAE,EAAA,IAAI,CAAC,OAAO,CAAO,EACzD,IAAI,CAAC,SAAS,IAAI,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,WAAW,EAAE,EAAA,IAAI,CAAC,SAAS,CAAO,CAC5D;;IAIF,SAAS,GAAA;AACf,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;AACzB,YAAA,QACE,CACE,CAAA,oBAAA,EAAA,EAAA,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,CAAA;;AAIN,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE;AAC5B,YAAA,QACE,CACE,CAAA,gBAAA,EAAA,EAAA,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,CAAA;;AAIN,QAAA,OAAO,IAAI;;;;;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as registerInstance, h, H as Host } from './index-ksA_9NPe.js';
|
|
2
2
|
|
|
3
|
-
const listViewSubheaderCss = ":host{display:flex;align-items:center;justify-content:flex-start;padding:
|
|
3
|
+
const listViewSubheaderCss = ":host{display:flex;align-items:center;justify-content:flex-start;padding:0 var(--spacing-4) !important;height:var(--spacing-12);border:none !important;background-color:transparent}.heading{margin:0;padding:0;font:var(--type-body-sm);color:var(--color-gray-800);font-weight:500}";
|
|
4
4
|
|
|
5
5
|
const ScoutListViewSubheader = class {
|
|
6
6
|
constructor(hostRef) {
|
|
@@ -9,7 +9,7 @@ const ScoutListViewSubheader = class {
|
|
|
9
9
|
text;
|
|
10
10
|
headingLevel = "h2";
|
|
11
11
|
render() {
|
|
12
|
-
return (h(Host, { key: '
|
|
12
|
+
return (h(Host, { key: 'b93e8553a3b335f456e7bcbd32c3c635da58da00', role: "listitem" }, h(this.headingLevel, { key: 'e82ea8203aef696156a211c6aac9415fe488a56b', class: "heading" }, this.text)));
|
|
13
13
|
}
|
|
14
14
|
static get delegatesFocus() { return true; }
|
|
15
15
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scout-list-view-subheader.entry.js","sources":["src/components/list-view-subheader/list-view-subheader.css?tag=scout-list-view-subheader&encapsulation=shadow","src/components/list-view-subheader/list-view-subheader.tsx"],"sourcesContent":["/** biome-ignore-all lint/complexity/noImportantStyles: https://github.com/tailwindlabs/tailwindcss/discussions/18628#discussioncomment-13915195 */\n\n:host {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n padding:
|
|
1
|
+
{"version":3,"file":"scout-list-view-subheader.entry.js","sources":["src/components/list-view-subheader/list-view-subheader.css?tag=scout-list-view-subheader&encapsulation=shadow","src/components/list-view-subheader/list-view-subheader.tsx"],"sourcesContent":["/** biome-ignore-all lint/complexity/noImportantStyles: https://github.com/tailwindlabs/tailwindcss/discussions/18628#discussioncomment-13915195 */\n\n:host {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n padding: 0 var(--spacing-4) !important;\n height: var(--spacing-12);\n border: none !important;\n background-color: transparent;\n}\n\n.heading {\n margin: 0;\n padding: 0;\n font: var(--type-body-sm);\n color: var(--color-gray-800);\n font-weight: 500;\n}\n","import { Component, Host, h, Prop } from \"@stencil/core\";\n\n@Component({\n tag: \"scout-list-view-subheader\",\n styleUrl: \"list-view-subheader.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class ScoutListViewSubheader {\n @Prop() text: string;\n @Prop() headingLevel: \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" = \"h2\";\n\n render() {\n return (\n <Host role=\"listitem\">\n <this.headingLevel class=\"heading\">{this.text}</this.headingLevel>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":";;AAAA,MAAM,oBAAoB,GAAG,uRAAuR;;MCSvS,sBAAsB,GAAA,MAAA;;;;AACzB,IAAA,IAAI;IACJ,YAAY,GAA4C,IAAI;IAEpE,MAAM,GAAA;AACJ,QAAA,QACE,CAAC,CAAA,IAAI,EAAC,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,UAAU,EAAA,EACnB,CAAA,CAAC,IAAI,CAAC,YAAY,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAC,KAAK,EAAC,SAAS,EAAE,EAAA,IAAI,CAAC,IAAI,CAAqB,CAC7D;;;;;;;;"}
|
|
@@ -27,7 +27,7 @@ const ScoutListView = class {
|
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
render() {
|
|
30
|
-
return (h(Host, { key: '
|
|
30
|
+
return (h(Host, { key: '68c7e8924c60ba15c6c8a64724eebeea1731909f', role: "list" }, h("slot", { key: '7b686b0f83c138ab0d497f9b6a0d7d5927bce63c' })));
|
|
31
31
|
}
|
|
32
32
|
static get delegatesFocus() { return true; }
|
|
33
33
|
};
|
|
@@ -34,7 +34,7 @@ const ScoutLoader = class {
|
|
|
34
34
|
this.showElement(this.symbolElements[0]);
|
|
35
35
|
}
|
|
36
36
|
render() {
|
|
37
|
-
return (h(Host, { key: '
|
|
37
|
+
return (h(Host, { key: '4262ae621bb24ef73641363fff67a1587ea2c644', class: this.size === "base" ? "" : this.size }, h("div", { key: '54ff8ba284a22ab683a9403c803bff7999acce3f', class: "frame" }, this.getSymbols()), this.text && h("div", { key: '83368c83c87bf6e171b996c05dc6a5e4da91e26e', class: "text" }, this.text)));
|
|
38
38
|
}
|
|
39
39
|
showElement(el) {
|
|
40
40
|
el.classList.remove("animate-out");
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { M as Mixin, r as registerInstance, c as createEvent, h } from './index-ksA_9NPe.js';
|
|
2
|
-
import { i as inputMixin } from './inputMixin-
|
|
2
|
+
import { i as inputMixin } from './inputMixin-C9OB0DNj.js';
|
|
3
3
|
|
|
4
4
|
const chevronDownSvg = 'data:image/svg+xml;base64,PHN2ZwogIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICB3aWR0aD0iMjQiCiAgaGVpZ2h0PSIyNCIKICB2aWV3Qm94PSIwIDAgMjQgMjQiCiAgZmlsbD0ibm9uZSIKICBzdHJva2U9ImN1cnJlbnRDb2xvciIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCiAgY2xhc3M9Imljb24gaWNvbi10YWJsZXIgaWNvbnMtdGFibGVyLW91dGxpbmUgaWNvbi10YWJsZXItY2hldnJvbi1kb3duIgo+CiAgPHBhdGggc3Ryb2tlPSJub25lIiBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+CiAgPHBhdGggZD0iTTYgOWw2IDZsNiAtNiIgLz4KPC9zdmc+';
|
|
5
5
|
|
|
@@ -26,7 +26,7 @@ const ScoutSelect = class extends Mixin(inputMixin) {
|
|
|
26
26
|
disabled = false;
|
|
27
27
|
name;
|
|
28
28
|
render() {
|
|
29
|
-
return (h("div", { key: '
|
|
29
|
+
return (h("div", { key: '12bf95188935ab6b11101c829970800199b53e9a', class: "select-wrapper" }, h("select", { key: '1c373cc25f6de17b7139baab0af69fd23adf3b85', id: this.ariaId, name: this.name, class: "select", disabled: this.disabled, onChange: () => this.onInput(), onBlur: () => this.onBlur(), onInvalid: () => this.onInvalid() }, h("slot", { key: '99f4430d6433e96c95651acba4ff0068235d1cb8' })), h("span", { key: '4f36424bd7395db03ea9caf10751cd570fc06853', class: "select-icon", style: { "--icon-chevron": `url(${chevronDownSvg})` }, "aria-hidden": "true" })));
|
|
30
30
|
}
|
|
31
31
|
};
|
|
32
32
|
ScoutSelect.style = selectCss;
|