@scouterna/ui-webc 0.2.10 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{index-M8pbc2b8.js → index-D42maJcS.js} +455 -9
- package/dist/cjs/index-D42maJcS.js.map +1 -0
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/scout-bottom-bar-item.cjs.entry.js +3 -2
- package/dist/cjs/scout-bottom-bar-item.entry.cjs.js.map +1 -1
- package/dist/cjs/scout-bottom-bar.cjs.entry.js +3 -2
- package/dist/cjs/scout-bottom-bar.entry.cjs.js.map +1 -1
- package/dist/cjs/scout-button.cjs.entry.js +3 -2
- package/dist/cjs/scout-button.entry.cjs.js.map +1 -1
- package/dist/cjs/scout-card.cjs.entry.js +19 -0
- package/dist/cjs/scout-card.entry.cjs.js.map +1 -0
- package/dist/cjs/scout-checkbox.cjs.entry.js +53 -0
- package/dist/cjs/scout-checkbox.entry.cjs.js.map +1 -0
- package/dist/cjs/scout-field.cjs.entry.js +47 -0
- package/dist/cjs/scout-field.entry.cjs.js.map +1 -0
- package/dist/cjs/scout-input.cjs.entry.js +72 -0
- package/dist/cjs/scout-input.entry.cjs.js.map +1 -0
- package/dist/cjs/scout-switch.cjs.entry.js +49 -0
- package/dist/cjs/scout-switch.entry.cjs.js.map +1 -0
- package/dist/cjs/ui-webc.cjs.js +2 -2
- package/dist/collection/collection-manifest.json +6 -1
- package/dist/collection/components/bottom-bar/bottom-bar.js +2 -1
- package/dist/collection/components/bottom-bar/bottom-bar.js.map +1 -1
- package/dist/collection/components/bottom-bar-item/bottom-bar-item.js +2 -1
- package/dist/collection/components/bottom-bar-item/bottom-bar-item.js.map +1 -1
- package/dist/collection/components/button/button.js +2 -1
- package/dist/collection/components/button/button.js.map +1 -1
- package/dist/collection/components/card/card.css +8 -0
- package/dist/collection/components/card/card.js +23 -0
- package/dist/collection/components/card/card.js.map +1 -0
- package/dist/collection/components/checkbox/checkbox.css +81 -0
- package/dist/collection/components/checkbox/checkbox.js +176 -0
- package/dist/collection/components/checkbox/checkbox.js.map +1 -0
- package/dist/collection/components/field/field.css +26 -0
- package/dist/collection/components/field/field.js +119 -0
- package/dist/collection/components/field/field.js.map +1 -0
- package/dist/collection/components/input/input.css +15 -0
- package/dist/collection/components/input/input.js +259 -0
- package/dist/collection/components/input/input.js.map +1 -0
- package/dist/collection/components/switch/switch.css +79 -0
- package/dist/collection/components/switch/switch.js +173 -0
- package/dist/collection/components/switch/switch.js.map +1 -0
- package/dist/components/index.js +1 -1
- package/dist/components/{p-CMd0pUms.js → p-MfRr-Vl1.js} +448 -10
- package/dist/components/p-MfRr-Vl1.js.map +1 -0
- package/dist/components/scout-bottom-bar-item.js +4 -3
- package/dist/components/scout-bottom-bar-item.js.map +1 -1
- package/dist/components/scout-bottom-bar.js +4 -3
- package/dist/components/scout-bottom-bar.js.map +1 -1
- package/dist/components/scout-button.js +4 -3
- package/dist/components/scout-button.js.map +1 -1
- package/dist/components/scout-card.d.ts +11 -0
- package/dist/components/scout-card.js +39 -0
- package/dist/components/scout-card.js.map +1 -0
- package/dist/components/scout-checkbox.d.ts +11 -0
- package/dist/components/scout-checkbox.js +78 -0
- package/dist/components/scout-checkbox.js.map +1 -0
- package/dist/components/scout-field.d.ts +11 -0
- package/dist/components/scout-field.js +72 -0
- package/dist/components/scout-field.js.map +1 -0
- package/dist/components/scout-input.d.ts +11 -0
- package/dist/components/scout-input.js +99 -0
- package/dist/components/scout-input.js.map +1 -0
- package/dist/components/scout-switch.d.ts +11 -0
- package/dist/components/scout-switch.js +75 -0
- package/dist/components/scout-switch.js.map +1 -0
- package/dist/custom-elements.json +732 -14
- package/dist/esm/{index-BKWL7m90.js → index-DByXnE9g.js} +455 -10
- package/dist/esm/index-DByXnE9g.js.map +1 -0
- package/dist/esm/loader.js +3 -3
- package/dist/esm/scout-bottom-bar-item.entry.js +3 -2
- package/dist/esm/scout-bottom-bar-item.entry.js.map +1 -1
- package/dist/esm/scout-bottom-bar.entry.js +3 -2
- package/dist/esm/scout-bottom-bar.entry.js.map +1 -1
- package/dist/esm/scout-button.entry.js +3 -2
- package/dist/esm/scout-button.entry.js.map +1 -1
- package/dist/esm/scout-card.entry.js +17 -0
- package/dist/esm/scout-card.entry.js.map +1 -0
- package/dist/esm/scout-checkbox.entry.js +51 -0
- package/dist/esm/scout-checkbox.entry.js.map +1 -0
- package/dist/esm/scout-field.entry.js +45 -0
- package/dist/esm/scout-field.entry.js.map +1 -0
- package/dist/esm/scout-input.entry.js +70 -0
- package/dist/esm/scout-input.entry.js.map +1 -0
- package/dist/esm/scout-switch.entry.js +47 -0
- package/dist/esm/scout-switch.entry.js.map +1 -0
- package/dist/esm/ui-webc.js +3 -3
- package/dist/types/components/card/card.d.ts +6 -0
- package/dist/types/components/checkbox/checkbox.d.ts +22 -0
- package/dist/types/components/field/field.d.ts +23 -0
- package/dist/types/components/input/input.d.ts +47 -0
- package/dist/types/components/switch/switch.d.ts +25 -0
- package/dist/types/components.d.ts +286 -0
- package/dist/ui-webc/p-24632b65.entry.js +2 -0
- package/dist/ui-webc/p-24632b65.entry.js.map +1 -0
- package/dist/ui-webc/p-2b434594.entry.js +2 -0
- package/dist/ui-webc/p-2b434594.entry.js.map +1 -0
- package/dist/ui-webc/p-383736c1.entry.js +2 -0
- package/dist/ui-webc/p-383736c1.entry.js.map +1 -0
- package/dist/ui-webc/p-7245a55a.entry.js +2 -0
- package/dist/ui-webc/p-7245a55a.entry.js.map +1 -0
- package/dist/ui-webc/{p-5a234307.entry.js → p-99329c64.entry.js} +2 -2
- package/dist/ui-webc/p-99329c64.entry.js.map +1 -0
- package/dist/ui-webc/p-9b7c270d.entry.js +2 -0
- package/dist/ui-webc/p-9b7c270d.entry.js.map +1 -0
- package/dist/ui-webc/p-DByXnE9g.js +3 -0
- package/dist/ui-webc/p-DByXnE9g.js.map +1 -0
- package/dist/ui-webc/p-c0c3a4af.entry.js +2 -0
- package/dist/ui-webc/p-c0c3a4af.entry.js.map +1 -0
- package/dist/ui-webc/p-e7602729.entry.js +2 -0
- package/dist/ui-webc/p-e7602729.entry.js.map +1 -0
- package/dist/ui-webc/scout-bottom-bar-item.entry.esm.js.map +1 -1
- package/dist/ui-webc/scout-bottom-bar.entry.esm.js.map +1 -1
- package/dist/ui-webc/scout-button.entry.esm.js.map +1 -1
- package/dist/ui-webc/scout-card.entry.esm.js.map +1 -0
- package/dist/ui-webc/scout-checkbox.entry.esm.js.map +1 -0
- package/dist/ui-webc/scout-field.entry.esm.js.map +1 -0
- package/dist/ui-webc/scout-input.entry.esm.js.map +1 -0
- package/dist/ui-webc/scout-switch.entry.esm.js.map +1 -0
- package/dist/ui-webc/ui-webc.css +13 -1
- package/dist/ui-webc/ui-webc.esm.js +1 -1
- package/package.json +3 -5
- package/dist/cjs/index-M8pbc2b8.js.map +0 -1
- package/dist/components/p-CMd0pUms.js.map +0 -1
- package/dist/esm/index-BKWL7m90.js.map +0 -1
- package/dist/ui-webc/p-2b13b5cd.entry.js +0 -2
- package/dist/ui-webc/p-2b13b5cd.entry.js.map +0 -1
- package/dist/ui-webc/p-5a234307.entry.js.map +0 -1
- package/dist/ui-webc/p-BKWL7m90.js +0 -3
- package/dist/ui-webc/p-BKWL7m90.js.map +0 -1
- package/dist/ui-webc/p-d1aadf34.entry.js +0 -2
- package/dist/ui-webc/p-d1aadf34.entry.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { p as proxyCustomElement, H, c as createEvent, h } from './p-
|
|
1
|
+
import { p as proxyCustomElement, H, c as createEvent, h } from './p-MfRr-Vl1.js';
|
|
2
2
|
|
|
3
3
|
function r(e){var t,f,n="";if("string"==typeof e||"number"==typeof e)n+=e;else if("object"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=" "),n+=f);}else for(f in e)e[f]&&(n&&(n+=" "),n+=f);return n}function clsx(){for(var e,t,f=0,n="",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=" "),n+=t);return n}
|
|
4
4
|
|
|
@@ -43,10 +43,11 @@ const ScoutBottomBarItem$1 = /*@__PURE__*/ proxyCustomElement(class ScoutBottomB
|
|
|
43
43
|
href: this.href,
|
|
44
44
|
}
|
|
45
45
|
: {};
|
|
46
|
-
return (h(Tag, { key: '
|
|
46
|
+
return (h(Tag, { key: 'da439bd71733883dd610eb24b9ffffb9bb2369e1', class: clsx("button", this.active && "active"), onClick: () => this.scoutClick.emit(), ...props }, h("span", { key: 'e3267d4487d643265984555155760cbdb242ef81', class: "icon", innerHTML: this.icon }), h("span", { key: '02ade513642f237b24ef25856bf4b56e386b7b2a', class: "label" }, this.label)));
|
|
47
47
|
}
|
|
48
|
+
static get delegatesFocus() { return true; }
|
|
48
49
|
static get style() { return bottomBarItemCss; }
|
|
49
|
-
}, [
|
|
50
|
+
}, [273, "scout-bottom-bar-item", {
|
|
50
51
|
"type": [1],
|
|
51
52
|
"href": [1],
|
|
52
53
|
"icon": [1],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"scout-bottom-bar-item.js","mappings":";;AAAA,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,QAAQ,EAAE,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAQ,SAAS,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;;ACA/W,MAAM,gBAAgB,GAAG,+eAA+e;;
|
|
1
|
+
{"file":"scout-bottom-bar-item.js","mappings":";;AAAA,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,QAAQ,EAAE,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAQ,SAAS,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;;ACA/W,MAAM,gBAAgB,GAAG,+eAA+e;;MCgB3fA,oBAAkB,iBAAAC,kBAAA,CAAA,MAAA,kBAAA,SAAAC,CAAA,CAAA;;;;;;;;;AAC7B;;AAEG;IACK,IAAI,GAAa,QAAQ;AAEjC;;;AAGG;AACK,IAAA,IAAI;AAEZ;;AAEG;AACK,IAAA,IAAI;AAEZ;;AAEG;AACK,IAAA,KAAK;AAEb;;;AAGG;AACK,IAAA,MAAM;AAEL,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;AAChB;cACD,EAAE;AAER,QAAA,QACE,CAAA,CAAC,GAAG,EAAA,EAAA,GAAA,EAAA,0CAAA,EACF,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,IAAI,QAAQ,CAAC,EAC9C,OAAO,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KACjC,KAAK,EAAA,EAET,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,MAAM,EAAC,SAAS,EAAE,IAAI,CAAC,IAAI,EAAI,CAAA,EAC3C,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,OAAO,EAAE,EAAA,IAAI,CAAC,KAAK,CAAQ,CACnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["ScoutBottomBarItem","__stencil_proxyCustomElement","HTMLElement"],"sources":["../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs","src/components/bottom-bar-item/bottom-bar-item.css?tag=scout-bottom-bar-item&encapsulation=shadow","src/components/bottom-bar-item/bottom-bar-item.tsx"],"sourcesContent":["function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;",":host {\n display: flex;\n flex: 1;\n}\n\n.button {\n display: flex;\n flex-direction: column;\n flex: 1;\n justify-content: center;\n align-items: center;\n background-color: transparent;\n border: none;\n color: var(--color-text-base);\n cursor: pointer;\n}\n\n.button:hover {\n background-color: var(--color-neutral-50);\n}\n\n.button.active {\n background-color: var(--color-blue-50);\n color: var(--color-blue-500);\n}\n\n.button .icon {\n width: var(--spacing-6);\n height: var(--spacing-6);\n}\n\n.button .label {\n font: var(--type-label-sm);\n}\n\na {\n text-decoration: none;\n}","import { Component, Event, type EventEmitter, h, Prop } from \"@stencil/core\";\nimport clsx from \"clsx\";\n\nexport type ItemType = \"button\" | \"link\";\n\n/**\n * A bottom bar item used within the bottom bar for navigation. Should not be\n * used outside of a bottom bar.\n */\n@Component({\n tag: \"scout-bottom-bar-item\",\n styleUrl: \"bottom-bar-item.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class ScoutBottomBarItem {\n /**\n * The type of the bottom bar item, either a button or a link.\n */\n @Prop() type: ItemType = \"button\";\n\n /**\n * An optional link to navigate to when the item is clicked. Only used when\n * `type` is set to \"link\".\n */\n @Prop() href?: string;\n\n /**\n * An icon to display above the label. Must be an SVG string.\n */\n @Prop() icon!: string;\n\n /**\n * The label to display below the icon.\n */\n @Prop() label!: string;\n\n /**\n * Whether the item is currently active. Should be set to true when the item\n * represents the current page.\n */\n @Prop() active?: boolean;\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 }\n : {};\n\n return (\n <Tag\n class={clsx(\"button\", this.active && \"active\")}\n onClick={() => this.scoutClick.emit()}\n {...props}\n >\n <span class=\"icon\" innerHTML={this.icon} />\n <span class=\"label\">{this.label}</span>\n </Tag>\n );\n }\n}\n"],"version":3}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { p as proxyCustomElement, H, h } from './p-
|
|
1
|
+
import { p as proxyCustomElement, H, h } from './p-MfRr-Vl1.js';
|
|
2
2
|
|
|
3
3
|
const bottomBarCss = ":host{display:flex;width:100%}.container{display:flex;flex:1;height:var(--spacing-14);border-top:1px solid var(--color-neutral-100)}";
|
|
4
4
|
|
|
@@ -11,10 +11,11 @@ const ScoutBottomBar$1 = /*@__PURE__*/ proxyCustomElement(class ScoutBottomBar e
|
|
|
11
11
|
this.__attachShadow();
|
|
12
12
|
}
|
|
13
13
|
render() {
|
|
14
|
-
return (h("nav", { key: '
|
|
14
|
+
return (h("nav", { key: '0904c3ec8b60ca5fe9a2ed4d68ea2b6fcb55f0dc', class: "container" }, h("slot", { key: '18223004272416c7ced4ff31a160adbb451a7367' })));
|
|
15
15
|
}
|
|
16
|
+
static get delegatesFocus() { return true; }
|
|
16
17
|
static get style() { return bottomBarCss; }
|
|
17
|
-
}, [
|
|
18
|
+
}, [273, "scout-bottom-bar"]);
|
|
18
19
|
function defineCustomElement$1() {
|
|
19
20
|
if (typeof customElements === "undefined") {
|
|
20
21
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"scout-bottom-bar.js","mappings":";;AAAA,MAAM,YAAY,GAAG,sIAAsI;;
|
|
1
|
+
{"file":"scout-bottom-bar.js","mappings":";;AAAA,MAAM,YAAY,GAAG,sIAAsI;;MCa9IA,gBAAc,iBAAAC,kBAAA,CAAA,MAAA,cAAA,SAAAC,CAAA,CAAA;;;;;;;;IACzB,MAAM,GAAA;QACJ,QACE,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,WAAW,EAAA,EACpB,CAAQ,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACJ;;;;;;;;;;;;;;;;;;;;;;;;","names":["ScoutBottomBar","__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/bottom-bar/bottom-bar.css?tag=scout-bottom-bar&encapsulation=shadow","src/components/bottom-bar/bottom-bar.tsx"],"sourcesContent":[":host {\n display: flex;\n width: 100%;\n}\n\n.container {\n display: flex;\n flex: 1;\n height: var(--spacing-14);\n border-top: 1px solid var(--color-neutral-100);\n}","import { Component, h } from \"@stencil/core\";\n\n/**\n * The bottom bar component is used in the Jamboree26 app to provide\n * navigation at the bottom of the screen.\n */\n@Component({\n tag: \"scout-bottom-bar\",\n styleUrl: \"bottom-bar.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class ScoutBottomBar {\n render() {\n return (\n <nav class=\"container\">\n <slot />\n </nav>\n );\n }\n}\n"],"version":3}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { p as proxyCustomElement, H, c as createEvent, h } from './p-
|
|
1
|
+
import { p as proxyCustomElement, H, c as createEvent, h } from './p-MfRr-Vl1.js';
|
|
2
2
|
|
|
3
3
|
const buttonCss = ":host{display:inline-flex}button{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-3);height:var(--spacing-10);padding:0 var(--spacing-4);font:var(--type-body-base);border-radius:var(--spacing-2);border:1px solid transparent;cursor:pointer}.icon{width:var(--spacing-5);height:var(--spacing-5);margin:0 calc(var(--spacing-1) * -1)}.icon svg{width:100%;height:100%}button.primary{background-color:var(--color-background-brand-base);color:var(--color-text-brand-inverse)}button.primary:hover{background-color:var(--color-background-brand-hovered)}button.primary:active{background-color:var(--color-background-brand-pressed)}button.outlined{background-color:transparent;border-color:var(--color-background-brand-subtle-base);color:var(--color-text-brand-base)}button.outlined:hover{background-color:var(--color-background-brand-subtle-hovered)}button.outlined:active{background-color:var(--color-background-brand-subtle-pressed)}button.text{background-color:transparent;border-color:transparent;color:var(--color-text-brand-base)}button.text:hover{background-color:var(--color-background-brand-subtle-hovered)}button.text:active{background-color:var(--color-background-brand-subtle-pressed)}button.caution{background-color:var(--color-background-caution-bold-base);color:var(--color-text-caution-bold-base)}button.caution:hover{background-color:var(--color-background-caution-bold-hovered)}button.caution:active{background-color:var(--color-background-caution-bold-pressed)}button.danger{background-color:var(--color-background-danger-bold-base);color:var(--color-text-danger-bold-base)}button.danger:hover{background-color:var(--color-background-danger-bold-hovered)}button.danger:active{background-color:var(--color-background-danger-bold-pressed)}";
|
|
4
4
|
|
|
@@ -22,10 +22,11 @@ const ScoutButton$1 = /*@__PURE__*/ proxyCustomElement(class ScoutButton extends
|
|
|
22
22
|
icon;
|
|
23
23
|
scoutClick;
|
|
24
24
|
render() {
|
|
25
|
-
return (h("button", { key: '
|
|
25
|
+
return (h("button", { key: '7c5b9b8b4dbb40537b923585af17c81dc6ee1644', type: this.type, class: this.variant, onClick: () => this.scoutClick.emit() }, h("slot", { key: 'a89b795dbbd004cd8d9123bacf338cb87cca4953' }), this.icon && h("span", { key: '12ac9a0668ebd4d84fd02e5065f1c9802d188171', class: "icon", innerHTML: this.icon })));
|
|
26
26
|
}
|
|
27
|
+
static get delegatesFocus() { return true; }
|
|
27
28
|
static get style() { return buttonCss; }
|
|
28
|
-
}, [
|
|
29
|
+
}, [273, "scout-button", {
|
|
29
30
|
"type": [1],
|
|
30
31
|
"variant": [1],
|
|
31
32
|
"icon": [1]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"scout-button.js","mappings":";;AAAA,MAAM,SAAS,GAAG,kvDAAkvD;;
|
|
1
|
+
{"file":"scout-button.js","mappings":";;AAAA,MAAM,SAAS,GAAG,kvDAAkvD;;MCcvvDA,aAAW,iBAAAC,kBAAA,CAAA,MAAA,WAAA,SAAAC,CAAA,CAAA;;;;;;;;;IACd,IAAI,GAAkC,QAAQ;AAEtD;;AAEG;IACK,OAAO,GAAY,UAAU;AAErC;;AAEG;AACK,IAAA,IAAI;AAEH,IAAA,UAAU;IAEnB,MAAM,GAAA;AACJ,QAAA,QACE,CACE,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,KAAK,EAAE,IAAI,CAAC,OAAO,EACnB,OAAO,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,EAAA,EAErC,CAAQ,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,EACP,IAAI,CAAC,IAAI,IAAI,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,MAAM,EAAC,SAAS,EAAE,IAAI,CAAC,IAAI,EAAI,CAAA,CAClD;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["ScoutButton","__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/button/button.css?tag=scout-button&encapsulation=shadow","src/components/button/button.tsx"],"sourcesContent":[":host {\n display: inline-flex;\n}\n\nbutton {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacing-3);\n height: var(--spacing-10);\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}\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\nbutton.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 &:active {\n background-color: var(--color-background-brand-pressed);\n }\n}\n\nbutton.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 &:active {\n background-color: var(--color-background-brand-subtle-pressed);\n }\n}\n\nbutton.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 &:active {\n background-color: var(--color-background-brand-subtle-pressed);\n }\n}\n\nbutton.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 &:active {\n background-color: var(--color-background-caution-bold-pressed);\n }\n}\n\nbutton.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 &:active {\n background-color: var(--color-background-danger-bold-pressed);\n }\n}\n","import { Component, Event, type EventEmitter, h, Prop } from \"@stencil/core\";\n\nexport type Variant = \"primary\" | \"outlined\" | \"text\" | \"caution\" | \"danger\";\n\n/**\n * A simple button component.\n */\n@Component({\n tag: \"scout-button\",\n styleUrl: \"button.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class ScoutButton {\n @Prop() type: \"button\" | \"submit\" | \"reset\" = \"button\";\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\n @Event() scoutClick: EventEmitter<void>;\n\n render() {\n return (\n <button\n type={this.type}\n class={this.variant}\n onClick={() => this.scoutClick.emit()}\n >\n <slot />\n {this.icon && <span class=\"icon\" innerHTML={this.icon} />}\n </button>\n );\n }\n}\n"],"version":3}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Components, JSX } from "../types/components";
|
|
2
|
+
|
|
3
|
+
interface ScoutCard extends Components.ScoutCard, HTMLElement {}
|
|
4
|
+
export const ScoutCard: {
|
|
5
|
+
prototype: ScoutCard;
|
|
6
|
+
new (): ScoutCard;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Used to define this component and all nested components recursively.
|
|
10
|
+
*/
|
|
11
|
+
export const defineCustomElement: () => void;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { p as proxyCustomElement, H, h } from './p-MfRr-Vl1.js';
|
|
2
|
+
|
|
3
|
+
const cardCss = ":host{display:block;border-radius:var(--spacing-2);border:1px solid var(--color-gray-100);padding:var(--spacing-2);box-shadow:0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1)}";
|
|
4
|
+
|
|
5
|
+
const ScoutCard$1 = /*@__PURE__*/ proxyCustomElement(class ScoutCard extends H {
|
|
6
|
+
constructor(registerHost) {
|
|
7
|
+
super();
|
|
8
|
+
if (registerHost !== false) {
|
|
9
|
+
this.__registerHost();
|
|
10
|
+
}
|
|
11
|
+
this.__attachShadow();
|
|
12
|
+
}
|
|
13
|
+
render() {
|
|
14
|
+
return h("slot", { key: 'bde708b7482da31d53fbc29581bed3f068e26279' });
|
|
15
|
+
}
|
|
16
|
+
static get delegatesFocus() { return true; }
|
|
17
|
+
static get style() { return cardCss; }
|
|
18
|
+
}, [273, "scout-card"]);
|
|
19
|
+
function defineCustomElement$1() {
|
|
20
|
+
if (typeof customElements === "undefined") {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
const components = ["scout-card"];
|
|
24
|
+
components.forEach(tagName => { switch (tagName) {
|
|
25
|
+
case "scout-card":
|
|
26
|
+
if (!customElements.get(tagName)) {
|
|
27
|
+
customElements.define(tagName, ScoutCard$1);
|
|
28
|
+
}
|
|
29
|
+
break;
|
|
30
|
+
} });
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
const ScoutCard = ScoutCard$1;
|
|
34
|
+
const defineCustomElement = defineCustomElement$1;
|
|
35
|
+
|
|
36
|
+
export { ScoutCard, defineCustomElement };
|
|
37
|
+
//# sourceMappingURL=scout-card.js.map
|
|
38
|
+
|
|
39
|
+
//# sourceMappingURL=scout-card.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"scout-card.js","mappings":";;AAAA,MAAM,OAAO,GAAG,kMAAkM;;MCYrMA,WAAS,iBAAAC,kBAAA,CAAA,MAAA,SAAA,SAAAC,CAAA,CAAA;;;;;;;;IACpB,MAAM,GAAA;QACJ,OAAO,8DAAQ;;;;;;;;;;;;;;;;;;;;;;;;","names":["ScoutCard","__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/card/card.css?tag=scout-card&encapsulation=shadow","src/components/card/card.tsx"],"sourcesContent":[":host {\n display: block;\n border-radius: var(--spacing-2);\n border: 1px solid var(--color-gray-100);\n padding: var(--spacing-2);\n /* TODO: We don't have tokens for shadows yet */\n box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\n}","import { Component, h } from \"@stencil/core\";\n\n/**\n * A general surface to hold various types of content.\n */\n@Component({\n tag: \"scout-card\",\n styleUrl: \"card.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class ScoutCard {\n render() {\n return <slot />;\n }\n}\n"],"version":3}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Components, JSX } from "../types/components";
|
|
2
|
+
|
|
3
|
+
interface ScoutCheckbox extends Components.ScoutCheckbox, HTMLElement {}
|
|
4
|
+
export const ScoutCheckbox: {
|
|
5
|
+
prototype: ScoutCheckbox;
|
|
6
|
+
new (): ScoutCheckbox;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Used to define this component and all nested components recursively.
|
|
10
|
+
*/
|
|
11
|
+
export const defineCustomElement: () => void;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { p as proxyCustomElement, H, c as createEvent, h } from './p-MfRr-Vl1.js';
|
|
2
|
+
|
|
3
|
+
const checkSvg = 'data:image/svg+xml;base64,PHN2ZwogIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICB3aWR0aD0iMjQiCiAgaGVpZ2h0PSIyNCIKICB2aWV3Qm94PSIwIDAgMjQgMjQiCiAgZmlsbD0ibm9uZSIKICBzdHJva2U9ImN1cnJlbnRDb2xvciIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCiAgY2xhc3M9Imljb24gaWNvbi10YWJsZXIgaWNvbnMtdGFibGVyLW91dGxpbmUgaWNvbi10YWJsZXItY2hlY2siCj4KICA8cGF0aCBzdHJva2U9Im5vbmUiIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz4KICA8cGF0aCBkPSJNNSAxMmw1IDVsMTAgLTEwIiAvPgo8L3N2Zz4=';
|
|
4
|
+
|
|
5
|
+
const checkboxCss = ".checkbox.sc-scout-checkbox{width:var(--spacing-6);height:var(--spacing-6);-moz-appearance:none;appearance:none;-webkit-appearance:none;display:flex;align-content:center;justify-content:center;border-radius:3px;background-color:var(--color-text-brand-inverse);border:2px solid var(--color-gray-300);position:relative}.checkbox.sc-scout-checkbox:hover{border:2px solid var(--color-gray-400);box-shadow:inset 0px 0px 5px 5px var(--color-background-brand-subtle-hovered);cursor:pointer}.checkbox.sc-scout-checkbox:active{background-color:var(--color-background-brand-subtle-pressed)}.checkbox.sc-scout-checkbox:checked:hover{background-color:var(--color-background-brand-hovered);border:2px solid var(--color-background-brand-hovered);box-shadow:none}.checkbox.sc-scout-checkbox:checked{background-color:var(--color-background-brand-base);border-color:var(--color-background-brand-base)}.checkbox.sc-scout-checkbox::after{content:\"\";position:absolute;width:var(--spacing-10);height:var(--spacing-10);top:50%;left:50%;transform:translate(-50%, -50%)}.checkbox.sc-scout-checkbox:checked::before{content:\"\";background-color:var(--color-text-brand-inverse);width:var(--spacing-6);height:var(--spacing-6);position:absolute;top:50%;left:50%;right:0;bottom:0;transform:translate(-50%, -50%);-webkit-mask-image:var(--icon-checkbox);mask-image:var(--icon-checkbox);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.checkbox.sc-scout-checkbox:disabled{pointer-events:none;background-color:var(--color-gray-100);border-color:var(--color-gray-100)}label.sc-scout-checkbox{display:flex;flex-direction:row-reverse;align-items:center;font:var(--type-label-base);color:var(--color-text-base)}.inlineDivider.sc-scout-checkbox{width:var(--spacing-2)}";
|
|
6
|
+
|
|
7
|
+
const ScoutCheckbox$1 = /*@__PURE__*/ proxyCustomElement(class ScoutCheckbox extends H {
|
|
8
|
+
constructor(registerHost) {
|
|
9
|
+
super();
|
|
10
|
+
if (registerHost !== false) {
|
|
11
|
+
this.__registerHost();
|
|
12
|
+
}
|
|
13
|
+
this.scoutCheckboxChecked = createEvent(this, "scoutCheckboxChecked");
|
|
14
|
+
this._fieldId = createEvent(this, "_fieldId");
|
|
15
|
+
}
|
|
16
|
+
checked = false;
|
|
17
|
+
disabled = false;
|
|
18
|
+
/**
|
|
19
|
+
* Use this prop if you need to connect your checkbox with another element describing its use, other than the property label.
|
|
20
|
+
*/
|
|
21
|
+
ariaLabelledby;
|
|
22
|
+
label;
|
|
23
|
+
ariaId;
|
|
24
|
+
scoutCheckboxChecked;
|
|
25
|
+
/**
|
|
26
|
+
* Internal event used for form field association.
|
|
27
|
+
*/
|
|
28
|
+
_fieldId;
|
|
29
|
+
componentWillLoad() {
|
|
30
|
+
this.ariaId = `_${Math.random().toString(36).substring(2, 9)}`;
|
|
31
|
+
this._fieldId.emit(this.ariaId);
|
|
32
|
+
}
|
|
33
|
+
onClick(event) {
|
|
34
|
+
const checkbox = event.target;
|
|
35
|
+
console.log("checkbox", checkbox.checked);
|
|
36
|
+
this.scoutCheckboxChecked.emit({
|
|
37
|
+
checked: checkbox.checked,
|
|
38
|
+
element: checkbox,
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
/*
|
|
42
|
+
todo:
|
|
43
|
+
- Wrap checkbox with label if used.
|
|
44
|
+
- make sure it works with field nicely with label.
|
|
45
|
+
*/
|
|
46
|
+
render() {
|
|
47
|
+
const Tag = this.label && this.label.length ? "label" : "div";
|
|
48
|
+
return (h(Tag, { key: '2d97627d29b09521936eeef81419673d70fc75f1' }, this.label, h("span", { key: 'f62b4e360f03b4b6fb6e8fee326756552a5a631d', class: "inlineDivider" }), h("input", { key: '7ca6b74e12c369fc937d1b8c85e70c52fd9aa25c', class: "checkbox", onChange: (event) => this.onClick(event), style: { "--icon-checkbox": `url(${checkSvg})` }, type: "checkbox", id: this.ariaId, "aria-labelledby": this.ariaLabelledby, "aria-disabled": this.disabled, disabled: this.disabled, checked: this.checked })));
|
|
49
|
+
}
|
|
50
|
+
static get style() { return checkboxCss; }
|
|
51
|
+
}, [258, "scout-checkbox", {
|
|
52
|
+
"checked": [4],
|
|
53
|
+
"disabled": [4],
|
|
54
|
+
"ariaLabelledby": [1, "aria-labelledby"],
|
|
55
|
+
"label": [1],
|
|
56
|
+
"ariaId": [32]
|
|
57
|
+
}]);
|
|
58
|
+
function defineCustomElement$1() {
|
|
59
|
+
if (typeof customElements === "undefined") {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
const components = ["scout-checkbox"];
|
|
63
|
+
components.forEach(tagName => { switch (tagName) {
|
|
64
|
+
case "scout-checkbox":
|
|
65
|
+
if (!customElements.get(tagName)) {
|
|
66
|
+
customElements.define(tagName, ScoutCheckbox$1);
|
|
67
|
+
}
|
|
68
|
+
break;
|
|
69
|
+
} });
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
const ScoutCheckbox = ScoutCheckbox$1;
|
|
73
|
+
const defineCustomElement = defineCustomElement$1;
|
|
74
|
+
|
|
75
|
+
export { ScoutCheckbox, defineCustomElement };
|
|
76
|
+
//# sourceMappingURL=scout-checkbox.js.map
|
|
77
|
+
|
|
78
|
+
//# sourceMappingURL=scout-checkbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"scout-checkbox.js","mappings":";;AAAA,MAAM,QAAQ,GAAG,4fAA4f;;ACA7gB,MAAM,WAAW,GAAG,0sDAA0sD;;MCejtDA,eAAa,iBAAAC,kBAAA,CAAA,MAAA,aAAA,SAAAC,CAAA,CAAA;;;;;;;;;IAChB,OAAO,GAAY,KAAK;IAExB,QAAQ,GAAY,KAAK;AAEjC;;AAEG;AACK,IAAA,cAAc;AAEd,IAAA,KAAK;AAEJ,IAAA,MAAM;AAEN,IAAA,oBAAoB;AAI7B;;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,QAAQ,GAAG,KAAK,CAAC,MAA0B;QACjD,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC;AAEzC,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;YAC7B,OAAO,EAAE,QAAQ,CAAC,OAAO;AACzB,YAAA,OAAO,EAAE,QAAQ;AAClB,SAAA,CAAC;;AAEJ;;;;AAIE;IAEF,MAAM,GAAA;AACJ,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,OAAO,GAAG,KAAK;QAC7D,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,CAAA,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAC,UAAU,EAChB,QAAQ,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EACxC,KAAK,EAAE,EAAE,iBAAiB,EAAE,CAAA,IAAA,EAAOC,QAAS,CAAA,CAAA,CAAG,EAAE,EACjD,IAAI,EAAC,UAAU,EACf,EAAE,EAAE,IAAI,CAAC,MAAM,EAAA,iBAAA,EACE,IAAI,CAAC,cAAc,EAAA,eAAA,EACrB,IAAI,CAAC,QAAQ,EAC5B,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,OAAO,EAAE,IAAI,CAAC,OAAO,EAAA,CACrB,CACE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["ScoutCheckbox","__stencil_proxyCustomElement","HTMLElement","checkIcon"],"sources":["../../node_modules/.pnpm/@tabler+icons@3.35.0/node_modules/@tabler/icons/icons/outline/check.svg","src/components/checkbox/checkbox.css?tag=scout-checkbox&encapsulation=scoped","src/components/checkbox/checkbox.tsx"],"sourcesContent":["<svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n class=\"icon icon-tabler icons-tabler-outline icon-tabler-check\"\n>\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path d=\"M5 12l5 5l10 -10\" />\n</svg>",".checkbox {\n width: var(--spacing-6);\n height: var(--spacing-6);\n appearance: none;\n -webkit-appearance: none;\n display: flex;\n align-content: center;\n justify-content: center;\n border-radius: 3px;\n background-color: var(--color-text-brand-inverse);\n border: 2px solid var(--color-gray-300);\n position: relative;\n}\n\n.checkbox:hover {\n border: 2px solid var(--color-gray-400);\n box-shadow: inset 0px 0px 5px 5px var(--color-background-brand-subtle-hovered);\n cursor: pointer;\n}\n\n.checkbox:active {\n background-color: var(--color-background-brand-subtle-pressed);\n}\n\n.checkbox:checked:hover {\n background-color: var(--color-background-brand-hovered);\n border: 2px solid var(--color-background-brand-hovered);\n box-shadow: none;\n}\n\n.checkbox:checked {\n background-color: var(--color-background-brand-base);\n border-color: var(--color-background-brand-base);\n}\n\n.checkbox::after {\n content: \"\";\n position: absolute;\n width: var(--spacing-10);\n height: var(--spacing-10);\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n}\n\n.checkbox:checked::before {\n content: \"\";\n background-color: var(--color-text-brand-inverse);\n width: var(--spacing-6);\n height: var(--spacing-6);\n position: absolute;\n /* Needed because of the border */\n top: 50%;\n left: 50%;\n right: 0;\n bottom: 0;\n transform: translate(-50%, -50%);\n mask-image: var(--icon-checkbox);\n mask-repeat: no-repeat;\n}\n\n.checkbox:disabled {\n pointer-events: none;\n background-color: var(--color-gray-100);\n border-color: var(--color-gray-100);\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\";\nimport checkIcon from \"@tabler/icons/outline/check.svg\";\n\n@Component({\n tag: \"scout-checkbox\",\n styleUrl: \"checkbox.css\",\n scoped: true,\n})\nexport class ScoutCheckbox {\n @Prop() checked: boolean = false;\n\n @Prop() disabled: boolean = false;\n\n /**\n * Use this prop if you need to connect your checkbox 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() scoutCheckboxChecked: EventEmitter<{\n checked: 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 checkbox = event.target as HTMLInputElement;\n console.log(\"checkbox\", checkbox.checked);\n\n this.scoutCheckboxChecked.emit({\n checked: checkbox.checked,\n element: checkbox,\n });\n }\n /*\n todo:\n - Wrap checkbox with label if used.\n - make sure it works with field nicely with label.\n */\n\n render() {\n const Tag = this.label && this.label.length ? \"label\" : \"div\";\n return (\n <Tag>\n {this.label}\n <span class=\"inlineDivider\"></span>\n <input\n class=\"checkbox\"\n onChange={(event) => this.onClick(event)}\n style={{ \"--icon-checkbox\": `url(${checkIcon})` }}\n type=\"checkbox\"\n id={this.ariaId}\n aria-labelledby={this.ariaLabelledby}\n aria-disabled={this.disabled}\n disabled={this.disabled}\n checked={this.checked}\n />\n </Tag>\n );\n }\n}\n"],"version":3}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Components, JSX } from "../types/components";
|
|
2
|
+
|
|
3
|
+
interface ScoutField extends Components.ScoutField, HTMLElement {}
|
|
4
|
+
export const ScoutField: {
|
|
5
|
+
prototype: ScoutField;
|
|
6
|
+
new (): ScoutField;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Used to define this component and all nested components recursively.
|
|
10
|
+
*/
|
|
11
|
+
export const defineCustomElement: () => void;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { p as proxyCustomElement, H, h } from './p-MfRr-Vl1.js';
|
|
2
|
+
|
|
3
|
+
const fieldCss = ".field.sc-scout-field{display:flex;flex-direction:column}.label.sc-scout-field{font:var(--type-label-sm);font-weight:600;color:var(--color-text-base)}.error-text.sc-scout-field{font:var(--type-label-sm);color:var(--color-text-danger-base);margin:var(--spacing-1) 0 0 0}.error-text.sc-scout-field:empty{margin:0}.help-text.sc-scout-field{font:var(--type-label-sm);color:var(--color-gray-600);margin:var(--spacing-1) 0 0 0}";
|
|
4
|
+
|
|
5
|
+
const ScoutField$1 = /*@__PURE__*/ proxyCustomElement(class ScoutField extends H {
|
|
6
|
+
constructor(registerHost) {
|
|
7
|
+
super();
|
|
8
|
+
if (registerHost !== false) {
|
|
9
|
+
this.__registerHost();
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Label shown above the field.
|
|
14
|
+
*/
|
|
15
|
+
label;
|
|
16
|
+
/**
|
|
17
|
+
* Help text shown below the field.
|
|
18
|
+
*/
|
|
19
|
+
helpText;
|
|
20
|
+
inputId;
|
|
21
|
+
errorText = null;
|
|
22
|
+
errorHidden = false;
|
|
23
|
+
get hostElement() { return this; }
|
|
24
|
+
catchFieldId(event) {
|
|
25
|
+
event.stopPropagation();
|
|
26
|
+
this.inputId = event.detail;
|
|
27
|
+
}
|
|
28
|
+
handleInputChange(event) {
|
|
29
|
+
const { element } = event.detail;
|
|
30
|
+
this.errorHidden = true;
|
|
31
|
+
if (element.validity.valid) {
|
|
32
|
+
this.errorText = null;
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
this.errorText = element.validationMessage;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
handleValidationBlur() {
|
|
39
|
+
this.errorHidden = false;
|
|
40
|
+
}
|
|
41
|
+
render() {
|
|
42
|
+
return (h("div", { key: '0ba5919cf10618bf4617e1ced85485a6d136f668', class: "field" }, h("label", { key: '55cac1b4eb9c0d58ea1e4045b9c85c30a384d99b', htmlFor: this.inputId, class: "label" }, this.label), h("slot", { key: 'b5931e88ad82e693ff1dc24acd99db393f048fab' }), h("p", { key: '6354b6187ba63158bdd5c784787f1612eb641db4', class: "error-text", "aria-live": "polite" }, !this.errorHidden && this.errorText), this.helpText && h("p", { key: 'ba9e47977b682fbe28afd61c6a00832506860e56', class: "help-text" }, this.helpText)));
|
|
43
|
+
}
|
|
44
|
+
static get style() { return fieldCss; }
|
|
45
|
+
}, [262, "scout-field", {
|
|
46
|
+
"label": [1],
|
|
47
|
+
"helpText": [1, "help-text"],
|
|
48
|
+
"inputId": [32],
|
|
49
|
+
"errorText": [32],
|
|
50
|
+
"errorHidden": [32]
|
|
51
|
+
}, [[0, "_fieldId", "catchFieldId"], [0, "scoutInputChange", "handleInputChange"], [0, "scoutBlur", "handleValidationBlur"]]]);
|
|
52
|
+
function defineCustomElement$1() {
|
|
53
|
+
if (typeof customElements === "undefined") {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
const components = ["scout-field"];
|
|
57
|
+
components.forEach(tagName => { switch (tagName) {
|
|
58
|
+
case "scout-field":
|
|
59
|
+
if (!customElements.get(tagName)) {
|
|
60
|
+
customElements.define(tagName, ScoutField$1);
|
|
61
|
+
}
|
|
62
|
+
break;
|
|
63
|
+
} });
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
const ScoutField = ScoutField$1;
|
|
67
|
+
const defineCustomElement = defineCustomElement$1;
|
|
68
|
+
|
|
69
|
+
export { ScoutField, defineCustomElement };
|
|
70
|
+
//# sourceMappingURL=scout-field.js.map
|
|
71
|
+
|
|
72
|
+
//# sourceMappingURL=scout-field.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"scout-field.js","mappings":";;AAAA,MAAM,QAAQ,GAAG,uaAAua;;MCe3aA,YAAU,iBAAAC,kBAAA,CAAA,MAAA,UAAA,SAAAC,CAAA,CAAA;;;;;;;AACrB;;AAEG;AACK,IAAA,KAAK;AAEb;;AAEG;AACK,IAAA,QAAQ;AAEP,IAAA,OAAO;IACP,SAAS,GAAkB,IAAI;IAC/B,WAAW,GAAY,KAAK;;AAKrC,IAAA,YAAY,CAAC,KAA0B,EAAA;QACrC,KAAK,CAAC,eAAe,EAAE;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM;;AAI7B,IAAA,iBAAiB,CACf,KAGE,EAAA;AAEF,QAAA,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,MAAM;AAEhC,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI;AACvB,QAAA,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE;AAC1B,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;;aAChB;AACL,YAAA,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,iBAAiB;;;IAK9C,oBAAoB,GAAA;AAClB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;;IAG1B,MAAM,GAAA;QACJ,QACE,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,OAAO,EAAA,EAChB,CAAA,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAO,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,EAAC,OAAO,EAAA,EACxC,IAAI,CAAC,KAAK,CACL,EACR,CAAQ,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,EACR,CAAA,CAAA,GAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAG,KAAK,EAAC,YAAY,EAAA,WAAA,EAAW,QAAQ,EACrC,EAAA,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,CAClC,EACH,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAA,GAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAG,KAAK,EAAC,WAAW,EAAE,EAAA,IAAI,CAAC,QAAQ,CAAK,CACtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["ScoutField","__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/field/field.css?tag=scout-field&encapsulation=scoped","src/components/field/field.tsx"],"sourcesContent":[".field {\n display: flex;\n flex-direction: column;\n}\n\n.label {\n font: var(--type-label-sm);\n font-weight: 600;\n color: var(--color-text-base);\n}\n\n.error-text {\n font: var(--type-label-sm);\n color: var(--color-text-danger-base);\n margin: var(--spacing-1) 0 0 0;\n}\n\n.error-text:empty {\n margin: 0;\n}\n\n.help-text {\n font: var(--type-label-sm);\n color: var(--color-gray-600);\n margin: var(--spacing-1) 0 0 0;\n}","import { Component, Element, h, Listen, Prop, State } from \"@stencil/core\";\n\ntype ValidatableElement =\n | HTMLButtonElement\n | HTMLFieldSetElement\n | HTMLInputElement\n | HTMLOutputElement\n | HTMLSelectElement\n | HTMLTextAreaElement;\n\n@Component({\n tag: \"scout-field\",\n styleUrl: \"field.css\",\n scoped: true,\n})\nexport class ScoutField {\n /**\n * Label shown above the field.\n */\n @Prop() label!: string;\n\n /**\n * Help text shown below the field.\n */\n @Prop() helpText?: string;\n\n @State() inputId: string;\n @State() errorText: string | null = null;\n @State() errorHidden: boolean = false;\n\n @Element() hostElement!: HTMLElement;\n\n @Listen(\"_fieldId\")\n catchFieldId(event: CustomEvent<string>) {\n event.stopPropagation();\n this.inputId = event.detail;\n }\n\n @Listen(\"scoutInputChange\")\n handleInputChange(\n event: CustomEvent<{\n value: string;\n element: ValidatableElement;\n }>,\n ) {\n const { element } = event.detail;\n\n this.errorHidden = true;\n if (element.validity.valid) {\n this.errorText = null;\n } else {\n this.errorText = element.validationMessage;\n }\n }\n\n @Listen(\"scoutBlur\")\n handleValidationBlur() {\n this.errorHidden = false;\n }\n\n render() {\n return (\n <div class=\"field\">\n <label htmlFor={this.inputId} class=\"label\">\n {this.label}\n </label>\n <slot />\n <p class=\"error-text\" aria-live=\"polite\">\n {!this.errorHidden && this.errorText}\n </p>\n {this.helpText && <p class=\"help-text\">{this.helpText}</p>}\n </div>\n );\n }\n}\n"],"version":3}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Components, JSX } from "../types/components";
|
|
2
|
+
|
|
3
|
+
interface ScoutInput extends Components.ScoutInput, HTMLElement {}
|
|
4
|
+
export const ScoutInput: {
|
|
5
|
+
prototype: ScoutInput;
|
|
6
|
+
new (): ScoutInput;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Used to define this component and all nested components recursively.
|
|
10
|
+
*/
|
|
11
|
+
export const defineCustomElement: () => void;
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { p as proxyCustomElement, H, c as createEvent, h } from './p-MfRr-Vl1.js';
|
|
2
|
+
|
|
3
|
+
const inputCss = ".input.sc-scout-input{height:var(--spacing-10);padding:var(--spacing-2);font:var(--type-body-base);border:1px solid var(--color-gray-300);border-radius:var(--spacing-2);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}";
|
|
4
|
+
|
|
5
|
+
const ScoutInput$1 = /*@__PURE__*/ proxyCustomElement(class ScoutInput extends H {
|
|
6
|
+
constructor(registerHost) {
|
|
7
|
+
super();
|
|
8
|
+
if (registerHost !== false) {
|
|
9
|
+
this.__registerHost();
|
|
10
|
+
}
|
|
11
|
+
this.scoutInputChange = createEvent(this, "scoutInputChange");
|
|
12
|
+
this.scoutBlur = createEvent(this, "scoutBlur");
|
|
13
|
+
this._fieldId = createEvent(this, "_fieldId");
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Type of input element. If you need a number input, read the accessibility
|
|
17
|
+
* section of this MDN article first:
|
|
18
|
+
* https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/input/number#accessibility
|
|
19
|
+
*/
|
|
20
|
+
type = "text";
|
|
21
|
+
/**
|
|
22
|
+
* Input mode hints for devices with dynamic keyboards.
|
|
23
|
+
*/
|
|
24
|
+
inputmode;
|
|
25
|
+
/**
|
|
26
|
+
* Regex pattern for input validation.
|
|
27
|
+
*/
|
|
28
|
+
pattern;
|
|
29
|
+
/**
|
|
30
|
+
* Value of the input element, in case you want to control it yourself.
|
|
31
|
+
*/
|
|
32
|
+
value = "";
|
|
33
|
+
/**
|
|
34
|
+
* Whether the input is disabled. Disabled inputs are not editable, excluded
|
|
35
|
+
* from tab order and are not validated.
|
|
36
|
+
*/
|
|
37
|
+
disabled = false;
|
|
38
|
+
/**
|
|
39
|
+
* Custom validation function run on top of the implicit validation performed
|
|
40
|
+
* by the browser. Return a string with the validation message to mark the
|
|
41
|
+
* input as invalid, or null to mark it as valid.
|
|
42
|
+
*/
|
|
43
|
+
validate;
|
|
44
|
+
scoutInputChange;
|
|
45
|
+
scoutBlur;
|
|
46
|
+
/**
|
|
47
|
+
* Internal event used for form field association.
|
|
48
|
+
*/
|
|
49
|
+
_fieldId;
|
|
50
|
+
ariaId;
|
|
51
|
+
componentWillLoad() {
|
|
52
|
+
this.ariaId = `_${Math.random().toString(36).substring(2, 9)}`;
|
|
53
|
+
this._fieldId.emit(this.ariaId);
|
|
54
|
+
}
|
|
55
|
+
onInput(event) {
|
|
56
|
+
const input = event.target;
|
|
57
|
+
if (this.validate) {
|
|
58
|
+
const validationMessage = this.validate(input.value);
|
|
59
|
+
input.setCustomValidity(validationMessage ?? "");
|
|
60
|
+
}
|
|
61
|
+
this.scoutInputChange.emit({
|
|
62
|
+
value: input.value,
|
|
63
|
+
element: input,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
render() {
|
|
67
|
+
return (h("input", { key: '7bc05d32826cd3173b6a6e4620acfb501fae4edc', id: this.ariaId, type: this.type, inputMode: this.inputmode, pattern: this.pattern, class: "input", value: this.value, disabled: this.disabled, onInput: (e) => this.onInput(e), onBlur: () => this.scoutBlur.emit() }));
|
|
68
|
+
}
|
|
69
|
+
static get style() { return inputCss; }
|
|
70
|
+
}, [258, "scout-input", {
|
|
71
|
+
"type": [1],
|
|
72
|
+
"inputmode": [1],
|
|
73
|
+
"pattern": [1],
|
|
74
|
+
"value": [1],
|
|
75
|
+
"disabled": [4],
|
|
76
|
+
"validate": [16],
|
|
77
|
+
"ariaId": [32]
|
|
78
|
+
}]);
|
|
79
|
+
function defineCustomElement$1() {
|
|
80
|
+
if (typeof customElements === "undefined") {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
const components = ["scout-input"];
|
|
84
|
+
components.forEach(tagName => { switch (tagName) {
|
|
85
|
+
case "scout-input":
|
|
86
|
+
if (!customElements.get(tagName)) {
|
|
87
|
+
customElements.define(tagName, ScoutInput$1);
|
|
88
|
+
}
|
|
89
|
+
break;
|
|
90
|
+
} });
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
const ScoutInput = ScoutInput$1;
|
|
94
|
+
const defineCustomElement = defineCustomElement$1;
|
|
95
|
+
|
|
96
|
+
export { ScoutInput, defineCustomElement };
|
|
97
|
+
//# sourceMappingURL=scout-input.js.map
|
|
98
|
+
|
|
99
|
+
//# sourceMappingURL=scout-input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"scout-input.js","mappings":";;AAAA,MAAM,QAAQ,GAAG,iWAAiW;;MCqCrWA,YAAU,iBAAAC,kBAAA,CAAA,MAAA,UAAA,SAAAC,CAAA,CAAA;;;;;;;;;;AACrB;;;;AAIG;IACK,IAAI,GAAc,MAAM;AAEhC;;AAEG;AACK,IAAA,SAAS;AAEjB;;AAEG;AACK,IAAA,OAAO;AAEf;;AAEG;IACK,KAAK,GAAW,EAAE;AAE1B;;;AAGG;IACK,QAAQ,GAAY,KAAK;AAEjC;;;;AAIG;AACK,IAAA,QAAQ;AAEP,IAAA,gBAAgB;AAIhB,IAAA,SAAS;AAElB;;AAEG;AACM,IAAA,QAAQ;AAER,IAAA,MAAM;IAEf,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,KAAiB,EAAA;AACvB,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,MAA0B;AAE9C,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,MAAM,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;AACpD,YAAA,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,IAAI,EAAE,CAAC;;AAGlD,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;YACzB,KAAK,EAAE,KAAK,CAAC,KAAK;AAClB,YAAA,OAAO,EAAE,KAAK;AACf,SAAA,CAAC;;IAGJ,MAAM,GAAA;AACJ,QAAA,QACE,CAAA,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,EAAE,EAAE,IAAI,CAAC,MAAM,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,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAC/B,MAAM,EAAE,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAA,CACnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["ScoutInput","__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/input/input.css?tag=scout-input&encapsulation=scoped","src/components/input/input.tsx"],"sourcesContent":[".input {\n height: var(--spacing-10);\n padding: var(--spacing-2);\n font: var(--type-body-base);\n border: 1px solid var(--color-gray-300);\n border-radius: var(--spacing-2);\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}","import {\n Component,\n type ComponentInterface,\n Event,\n type EventEmitter,\n h,\n Prop,\n State,\n} from \"@stencil/core\";\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@Component({\n tag: \"scout-input\",\n styleUrl: \"input.css\",\n scoped: true,\n})\nexport class ScoutInput implements ComponentInterface {\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 /**\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 * 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: HTMLInputElement;\n }>;\n @Event() scoutBlur: EventEmitter<void>;\n\n /**\n * Internal event used for form field association.\n */\n @Event() _fieldId: EventEmitter<string>;\n\n @State() ariaId: 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 onInput(event: InputEvent) {\n const input = event.target as HTMLInputElement;\n\n if (this.validate) {\n const validationMessage = this.validate(input.value);\n input.setCustomValidity(validationMessage ?? \"\");\n }\n\n this.scoutInputChange.emit({\n value: input.value,\n element: input,\n });\n }\n\n render() {\n return (\n <input\n id={this.ariaId}\n type={this.type}\n inputMode={this.inputmode}\n pattern={this.pattern}\n class=\"input\"\n value={this.value}\n disabled={this.disabled}\n onInput={(e) => this.onInput(e)}\n onBlur={() => this.scoutBlur.emit()}\n />\n );\n }\n}\n"],"version":3}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Components, JSX } from "../types/components";
|
|
2
|
+
|
|
3
|
+
interface ScoutSwitch extends Components.ScoutSwitch, HTMLElement {}
|
|
4
|
+
export const ScoutSwitch: {
|
|
5
|
+
prototype: ScoutSwitch;
|
|
6
|
+
new (): ScoutSwitch;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Used to define this component and all nested components recursively.
|
|
10
|
+
*/
|
|
11
|
+
export const defineCustomElement: () => void;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { p as proxyCustomElement, H, c as createEvent, h } from './p-MfRr-Vl1.js';
|
|
2
|
+
|
|
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
|
+
|
|
5
|
+
const ScoutSwitch$1 = /*@__PURE__*/ proxyCustomElement(class ScoutSwitch extends H {
|
|
6
|
+
constructor(registerHost) {
|
|
7
|
+
super();
|
|
8
|
+
if (registerHost !== false) {
|
|
9
|
+
this.__registerHost();
|
|
10
|
+
}
|
|
11
|
+
this.__attachShadow();
|
|
12
|
+
this.scoutSwitchToggled = createEvent(this, "scoutSwitchToggled");
|
|
13
|
+
this._fieldId = createEvent(this, "_fieldId");
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Indicates whether the switch is toggled on or off.
|
|
17
|
+
*/
|
|
18
|
+
toggled = false;
|
|
19
|
+
disabled = false;
|
|
20
|
+
/**
|
|
21
|
+
* Use this prop if you need to connect your switch with another element describing its use, other than the property label.
|
|
22
|
+
*/
|
|
23
|
+
ariaLabelledby;
|
|
24
|
+
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,
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
render() {
|
|
43
|
+
const Tag = this.label && this.label.length ? "label" : "div";
|
|
44
|
+
return (h(Tag, { key: '06f33e80dedee05abc34f15fbd8453f3df50d760' }, this.label, h("span", { key: '3061c223b64f313d4ebcd4b068ca84d83c5bb9c2', class: "inlineDivider" }), h("input", { key: '66a3a848ce3aa484af9bb13eda6cc30e46e74c1d', 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 })));
|
|
45
|
+
}
|
|
46
|
+
static get delegatesFocus() { return true; }
|
|
47
|
+
static get style() { return switchCss; }
|
|
48
|
+
}, [273, "scout-switch", {
|
|
49
|
+
"toggled": [4],
|
|
50
|
+
"disabled": [4],
|
|
51
|
+
"ariaLabelledby": [1, "aria-labelledby"],
|
|
52
|
+
"label": [1],
|
|
53
|
+
"ariaId": [32]
|
|
54
|
+
}]);
|
|
55
|
+
function defineCustomElement$1() {
|
|
56
|
+
if (typeof customElements === "undefined") {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
const components = ["scout-switch"];
|
|
60
|
+
components.forEach(tagName => { switch (tagName) {
|
|
61
|
+
case "scout-switch":
|
|
62
|
+
if (!customElements.get(tagName)) {
|
|
63
|
+
customElements.define(tagName, ScoutSwitch$1);
|
|
64
|
+
}
|
|
65
|
+
break;
|
|
66
|
+
} });
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
const ScoutSwitch = ScoutSwitch$1;
|
|
70
|
+
const defineCustomElement = defineCustomElement$1;
|
|
71
|
+
|
|
72
|
+
export { ScoutSwitch, defineCustomElement };
|
|
73
|
+
//# sourceMappingURL=scout-switch.js.map
|
|
74
|
+
|
|
75
|
+
//# sourceMappingURL=scout-switch.js.map
|
|
@@ -0,0 +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,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,OAAO,GAAG,KAAK;QAC7D,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 && 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}
|