@scouterna/ui-webc 1.0.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (214) hide show
  1. package/dist/cjs/{index-D42maJcS.js → index-5z4HClQY.js} +7 -8
  2. package/dist/cjs/index-5z4HClQY.js.map +1 -0
  3. package/dist/cjs/loader.cjs.js +2 -2
  4. package/dist/cjs/scout-bottom-bar-item.cjs.entry.js +8 -2
  5. package/dist/cjs/scout-bottom-bar-item.entry.cjs.js.map +1 -1
  6. package/dist/cjs/scout-bottom-bar.cjs.entry.js +2 -2
  7. package/dist/cjs/scout-button.cjs.entry.js +18 -3
  8. package/dist/cjs/scout-button.entry.cjs.js.map +1 -1
  9. package/dist/cjs/scout-card.cjs.entry.js +2 -2
  10. package/dist/cjs/scout-checkbox.cjs.entry.js +53 -0
  11. package/dist/cjs/scout-checkbox.entry.cjs.js.map +1 -0
  12. package/dist/cjs/scout-divider.cjs.entry.js +19 -0
  13. package/dist/cjs/scout-divider.entry.cjs.js.map +1 -0
  14. package/dist/cjs/scout-field.cjs.entry.js +2 -2
  15. package/dist/cjs/scout-input.cjs.entry.js +1 -1
  16. package/dist/cjs/scout-link.cjs.entry.js +64 -0
  17. package/dist/cjs/scout-link.entry.cjs.js.map +1 -0
  18. package/dist/cjs/scout-list-view-item.cjs.entry.js +64 -0
  19. package/dist/cjs/scout-list-view-item.entry.cjs.js.map +1 -0
  20. package/dist/cjs/scout-list-view.cjs.entry.js +21 -0
  21. package/dist/cjs/scout-list-view.entry.cjs.js.map +1 -0
  22. package/dist/cjs/scout-loader.cjs.entry.js +73 -0
  23. package/dist/cjs/scout-loader.entry.cjs.js.map +1 -0
  24. package/dist/cjs/scout-select.cjs.entry.js +60 -0
  25. package/dist/cjs/scout-select.entry.cjs.js.map +1 -0
  26. package/dist/cjs/scout-stack.cjs.entry.js +39 -0
  27. package/dist/cjs/scout-stack.entry.cjs.js.map +1 -0
  28. package/dist/cjs/scout-switch.cjs.entry.js +49 -0
  29. package/dist/cjs/scout-switch.entry.cjs.js.map +1 -0
  30. package/dist/cjs/ui-webc.cjs.js +3 -3
  31. package/dist/cjs/ui-webc.cjs.js.map +1 -1
  32. package/dist/collection/collection-manifest.json +11 -2
  33. package/dist/collection/components/bottom-bar/bottom-bar.js +1 -1
  34. package/dist/collection/components/bottom-bar-item/bottom-bar-item.js +46 -2
  35. package/dist/collection/components/bottom-bar-item/bottom-bar-item.js.map +1 -1
  36. package/dist/collection/components/button/button.css +19 -17
  37. package/dist/collection/components/button/button.js +76 -4
  38. package/dist/collection/components/button/button.js.map +1 -1
  39. package/dist/collection/components/card/card.js +1 -1
  40. package/dist/collection/components/checkbox/checkbox.css +81 -0
  41. package/dist/collection/components/checkbox/checkbox.js +176 -0
  42. package/dist/collection/components/checkbox/checkbox.js.map +1 -0
  43. package/dist/collection/components/divider/divider.css +5 -0
  44. package/dist/collection/components/divider/divider.js +20 -0
  45. package/dist/collection/components/divider/divider.js.map +1 -0
  46. package/dist/collection/components/field/field.js +1 -1
  47. package/dist/collection/components/input/input.js +2 -2
  48. package/dist/collection/components/link/link.css +30 -0
  49. package/dist/collection/components/link/link.js +207 -0
  50. package/dist/collection/components/link/link.js.map +1 -0
  51. package/dist/collection/components/list-view/list-view.css +5 -0
  52. package/dist/collection/components/list-view/list-view.js +22 -0
  53. package/dist/collection/components/list-view/list-view.js.map +1 -0
  54. package/dist/collection/components/list-view-item/list-view-item.css +72 -0
  55. package/dist/collection/components/list-view-item/list-view-item.js +226 -0
  56. package/dist/collection/components/list-view-item/list-view-item.js.map +1 -0
  57. package/dist/collection/components/loader/loader.css +121 -0
  58. package/dist/collection/components/loader/loader.js +111 -0
  59. package/dist/collection/components/loader/loader.js.map +1 -0
  60. package/dist/collection/components/loader/symbols/adventurer.svg +22 -0
  61. package/dist/collection/components/loader/symbols/challenger.svg +22 -0
  62. package/dist/collection/components/loader/symbols/discoverer.svg +22 -0
  63. package/dist/collection/components/loader/symbols/family-scout.svg +22 -0
  64. package/dist/collection/components/loader/symbols/rover.svg +22 -0
  65. package/dist/collection/components/loader/symbols/tracker.svg +22 -0
  66. package/dist/collection/components/select/select.css +60 -0
  67. package/dist/collection/components/select/select.js +176 -0
  68. package/dist/collection/components/select/select.js.map +1 -0
  69. package/dist/collection/components/stack/stack.css +6 -0
  70. package/dist/collection/components/stack/stack.js +96 -0
  71. package/dist/collection/components/stack/stack.js.map +1 -0
  72. package/dist/collection/components/switch/switch.css +79 -0
  73. package/dist/collection/components/switch/switch.js +173 -0
  74. package/dist/collection/components/switch/switch.js.map +1 -0
  75. package/dist/components/index.js +1 -1
  76. package/dist/components/{p-MfRr-Vl1.js → p-S6Ssep7K.js} +7 -9
  77. package/dist/components/p-S6Ssep7K.js.map +1 -0
  78. package/dist/components/scout-bottom-bar-item.js +11 -3
  79. package/dist/components/scout-bottom-bar-item.js.map +1 -1
  80. package/dist/components/scout-bottom-bar.js +2 -2
  81. package/dist/components/scout-button.js +22 -4
  82. package/dist/components/scout-button.js.map +1 -1
  83. package/dist/components/scout-card.js +2 -2
  84. package/dist/components/scout-checkbox.d.ts +11 -0
  85. package/dist/components/scout-checkbox.js +78 -0
  86. package/dist/components/scout-checkbox.js.map +1 -0
  87. package/dist/components/scout-divider.d.ts +11 -0
  88. package/dist/components/scout-divider.js +39 -0
  89. package/dist/components/scout-divider.js.map +1 -0
  90. package/dist/components/scout-field.js +3 -3
  91. package/dist/components/scout-input.js +2 -2
  92. package/dist/components/scout-link.d.ts +11 -0
  93. package/dist/components/scout-link.js +91 -0
  94. package/dist/components/scout-link.js.map +1 -0
  95. package/dist/components/scout-list-view-item.d.ts +11 -0
  96. package/dist/components/scout-list-view-item.js +92 -0
  97. package/dist/components/scout-list-view-item.js.map +1 -0
  98. package/dist/components/scout-list-view.d.ts +11 -0
  99. package/dist/components/scout-list-view.js +41 -0
  100. package/dist/components/scout-list-view.js.map +1 -0
  101. package/dist/components/scout-loader.d.ts +11 -0
  102. package/dist/components/scout-loader.js +96 -0
  103. package/dist/components/scout-loader.js.map +1 -0
  104. package/dist/components/scout-select.d.ts +11 -0
  105. package/dist/components/scout-select.js +84 -0
  106. package/dist/components/scout-select.js.map +1 -0
  107. package/dist/components/scout-stack.d.ts +11 -0
  108. package/dist/components/scout-stack.js +62 -0
  109. package/dist/components/scout-stack.js.map +1 -0
  110. package/dist/components/scout-switch.d.ts +11 -0
  111. package/dist/components/scout-switch.js +75 -0
  112. package/dist/components/scout-switch.js.map +1 -0
  113. package/dist/custom-elements.json +1399 -133
  114. package/dist/esm/{index-DByXnE9g.js → index-BI7oh__S.js} +7 -9
  115. package/dist/esm/index-BI7oh__S.js.map +1 -0
  116. package/dist/esm/loader.js +3 -3
  117. package/dist/esm/scout-bottom-bar-item.entry.js +8 -2
  118. package/dist/esm/scout-bottom-bar-item.entry.js.map +1 -1
  119. package/dist/esm/scout-bottom-bar.entry.js +2 -2
  120. package/dist/esm/scout-button.entry.js +18 -3
  121. package/dist/esm/scout-button.entry.js.map +1 -1
  122. package/dist/esm/scout-card.entry.js +2 -2
  123. package/dist/esm/scout-checkbox.entry.js +51 -0
  124. package/dist/esm/scout-checkbox.entry.js.map +1 -0
  125. package/dist/esm/scout-divider.entry.js +17 -0
  126. package/dist/esm/scout-divider.entry.js.map +1 -0
  127. package/dist/esm/scout-field.entry.js +2 -2
  128. package/dist/esm/scout-input.entry.js +1 -1
  129. package/dist/esm/scout-link.entry.js +62 -0
  130. package/dist/esm/scout-link.entry.js.map +1 -0
  131. package/dist/esm/scout-list-view-item.entry.js +62 -0
  132. package/dist/esm/scout-list-view-item.entry.js.map +1 -0
  133. package/dist/esm/scout-list-view.entry.js +19 -0
  134. package/dist/esm/scout-list-view.entry.js.map +1 -0
  135. package/dist/esm/scout-loader.entry.js +71 -0
  136. package/dist/esm/scout-loader.entry.js.map +1 -0
  137. package/dist/esm/scout-select.entry.js +58 -0
  138. package/dist/esm/scout-select.entry.js.map +1 -0
  139. package/dist/esm/scout-stack.entry.js +37 -0
  140. package/dist/esm/scout-stack.entry.js.map +1 -0
  141. package/dist/esm/scout-switch.entry.js +47 -0
  142. package/dist/esm/scout-switch.entry.js.map +1 -0
  143. package/dist/esm/ui-webc.js +4 -4
  144. package/dist/esm/ui-webc.js.map +1 -1
  145. package/dist/types/components/bottom-bar-item/bottom-bar-item.d.ts +2 -0
  146. package/dist/types/components/button/button.d.ts +4 -1
  147. package/dist/types/components/checkbox/checkbox.d.ts +22 -0
  148. package/dist/types/components/divider/divider.d.ts +3 -0
  149. package/dist/types/components/link/link.d.ts +39 -0
  150. package/dist/types/components/list-view/list-view.d.ts +3 -0
  151. package/dist/types/components/list-view-item/list-view-item.d.ts +16 -0
  152. package/dist/types/components/loader/loader.d.ts +15 -0
  153. package/dist/types/components/select/select.d.ts +31 -0
  154. package/dist/types/components/stack/stack.d.ts +22 -0
  155. package/dist/types/components/switch/switch.d.ts +25 -0
  156. package/dist/types/components.d.ts +429 -2
  157. package/dist/types/stencil-public-runtime.d.ts +20 -11
  158. package/dist/ui-webc/p-15634492.entry.js +2 -0
  159. package/dist/ui-webc/p-15634492.entry.js.map +1 -0
  160. package/dist/ui-webc/{p-383736c1.entry.js → p-316eed06.entry.js} +2 -2
  161. package/dist/ui-webc/p-4064b941.entry.js +2 -0
  162. package/dist/ui-webc/p-4064b941.entry.js.map +1 -0
  163. package/dist/ui-webc/p-5e2c0abc.entry.js +2 -0
  164. package/dist/ui-webc/p-5e2c0abc.entry.js.map +1 -0
  165. package/dist/ui-webc/{p-9b7c270d.entry.js → p-662554f2.entry.js} +2 -2
  166. package/dist/ui-webc/p-72e5904f.entry.js +2 -0
  167. package/dist/ui-webc/p-72e5904f.entry.js.map +1 -0
  168. package/dist/ui-webc/p-939fb179.entry.js +2 -0
  169. package/dist/ui-webc/p-939fb179.entry.js.map +1 -0
  170. package/dist/ui-webc/p-93c5edd1.entry.js +2 -0
  171. package/dist/ui-webc/p-93c5edd1.entry.js.map +1 -0
  172. package/dist/ui-webc/p-9c2bb8d7.entry.js +2 -0
  173. package/dist/ui-webc/p-9c2bb8d7.entry.js.map +1 -0
  174. package/dist/ui-webc/p-BI7oh__S.js +3 -0
  175. package/dist/ui-webc/p-BI7oh__S.js.map +1 -0
  176. package/dist/ui-webc/{p-fb926c68.entry.js → p-b24cd5e8.entry.js} +2 -2
  177. package/dist/ui-webc/p-b7e542b2.entry.js +2 -0
  178. package/dist/ui-webc/p-b7e542b2.entry.js.map +1 -0
  179. package/dist/ui-webc/p-d0b4b8c4.entry.js +2 -0
  180. package/dist/ui-webc/p-df4ec2af.entry.js +2 -0
  181. package/dist/ui-webc/p-df4ec2af.entry.js.map +1 -0
  182. package/dist/ui-webc/p-eb235f73.entry.js +2 -0
  183. package/dist/ui-webc/p-eb235f73.entry.js.map +1 -0
  184. package/dist/ui-webc/p-f164c4f7.entry.js +2 -0
  185. package/dist/ui-webc/p-f164c4f7.entry.js.map +1 -0
  186. package/dist/ui-webc/scout-bottom-bar-item.entry.esm.js.map +1 -1
  187. package/dist/ui-webc/scout-button.entry.esm.js.map +1 -1
  188. package/dist/ui-webc/scout-checkbox.entry.esm.js.map +1 -0
  189. package/dist/ui-webc/scout-divider.entry.esm.js.map +1 -0
  190. package/dist/ui-webc/scout-link.entry.esm.js.map +1 -0
  191. package/dist/ui-webc/scout-list-view-item.entry.esm.js.map +1 -0
  192. package/dist/ui-webc/scout-list-view.entry.esm.js.map +1 -0
  193. package/dist/ui-webc/scout-loader.entry.esm.js.map +1 -0
  194. package/dist/ui-webc/scout-select.entry.esm.js.map +1 -0
  195. package/dist/ui-webc/scout-stack.entry.esm.js.map +1 -0
  196. package/dist/ui-webc/scout-switch.entry.esm.js.map +1 -0
  197. package/dist/ui-webc/ui-webc.css +2 -2
  198. package/dist/ui-webc/ui-webc.esm.js +1 -1
  199. package/dist/ui-webc/ui-webc.esm.js.map +1 -1
  200. package/package.json +10 -9
  201. package/dist/cjs/index-D42maJcS.js.map +0 -1
  202. package/dist/components/p-MfRr-Vl1.js.map +0 -1
  203. package/dist/esm/index-DByXnE9g.js.map +0 -1
  204. package/dist/ui-webc/p-99329c64.entry.js +0 -2
  205. package/dist/ui-webc/p-99329c64.entry.js.map +0 -1
  206. package/dist/ui-webc/p-DByXnE9g.js +0 -3
  207. package/dist/ui-webc/p-DByXnE9g.js.map +0 -1
  208. package/dist/ui-webc/p-c0c3a4af.entry.js +0 -2
  209. package/dist/ui-webc/p-e7602729.entry.js +0 -2
  210. package/dist/ui-webc/p-e7602729.entry.js.map +0 -1
  211. /package/dist/ui-webc/{p-383736c1.entry.js.map → p-316eed06.entry.js.map} +0 -0
  212. /package/dist/ui-webc/{p-9b7c270d.entry.js.map → p-662554f2.entry.js.map} +0 -0
  213. /package/dist/ui-webc/{p-fb926c68.entry.js.map → p-b24cd5e8.entry.js.map} +0 -0
  214. /package/dist/ui-webc/{p-c0c3a4af.entry.js.map → p-d0b4b8c4.entry.js.map} +0 -0
@@ -1,4 +1,4 @@
1
- import { p as proxyCustomElement, H, c as createEvent, h } from './p-MfRr-Vl1.js';
1
+ import { p as proxyCustomElement, H, c as createEvent, h } from './p-S6Ssep7K.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
 
@@ -22,6 +22,8 @@ const ScoutBottomBarItem$1 = /*@__PURE__*/ proxyCustomElement(class ScoutBottomB
22
22
  * `type` is set to "link".
23
23
  */
24
24
  href;
25
+ target;
26
+ rel;
25
27
  /**
26
28
  * An icon to display above the label. Must be an SVG string.
27
29
  */
@@ -41,15 +43,21 @@ const ScoutBottomBarItem$1 = /*@__PURE__*/ proxyCustomElement(class ScoutBottomB
41
43
  const props = this.type === "link"
42
44
  ? {
43
45
  href: this.href,
46
+ target: this.target,
47
+ // This might not be our job, but better safe than sorry.
48
+ rel: this.rel ??
49
+ (this.target === "_blank" ? "noopener noreferrer" : undefined),
44
50
  }
45
51
  : {};
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)));
52
+ return (h(Tag, { key: 'd6accb2a7bb0af55f33dba3299749b7ec5ba68a4', class: clsx("button", this.active && "active"), onClick: () => this.scoutClick.emit(), ...props }, h("span", { key: '419edd0be8ff7a4f91aeb1641afffb9d949efba2', class: "icon", innerHTML: this.icon }), h("span", { key: 'e1e40f9a192ffe8a0152a1d0333fbedf174e7bea', class: "label" }, this.label)));
47
53
  }
48
54
  static get delegatesFocus() { return true; }
49
55
  static get style() { return bottomBarItemCss; }
50
- }, [273, "scout-bottom-bar-item", {
56
+ }, [785, "scout-bottom-bar-item", {
51
57
  "type": [1],
52
58
  "href": [1],
59
+ "target": [1],
60
+ "rel": [1],
53
61
  "icon": [1],
54
62
  "label": [1],
55
63
  "active": [4]
@@ -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;;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
+ {"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;AACJ,IAAA,MAAM;AACN,IAAA,GAAG;AAEX;;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;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,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 @Prop() target?: string;\n @Prop() rel?: 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 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 <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-MfRr-Vl1.js';
1
+ import { p as proxyCustomElement, H, h } from './p-S6Ssep7K.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,7 +11,7 @@ const ScoutBottomBar$1 = /*@__PURE__*/ proxyCustomElement(class ScoutBottomBar e
11
11
  this.__attachShadow();
12
12
  }
13
13
  render() {
14
- return (h("nav", { key: '0904c3ec8b60ca5fe9a2ed4d68ea2b6fcb55f0dc', class: "container" }, h("slot", { key: '18223004272416c7ced4ff31a160adbb451a7367' })));
14
+ return (h("nav", { key: '9bee87231edda78b5d5b52cbba60c4686f98307b', class: "container" }, h("slot", { key: 'f6d625aa11702ee7382384aa32f8a8d8e5bf55f8' })));
15
15
  }
16
16
  static get delegatesFocus() { return true; }
17
17
  static get style() { return bottomBarCss; }
@@ -1,6 +1,6 @@
1
- import { p as proxyCustomElement, H, c as createEvent, h } from './p-MfRr-Vl1.js';
1
+ import { p as proxyCustomElement, H, c as createEvent, h } from './p-S6Ssep7K.js';
2
2
 
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)}";
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;-webkit-text-decoration:none;text-decoration:none}.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
 
5
5
  const ScoutButton$1 = /*@__PURE__*/ proxyCustomElement(class ScoutButton extends H {
6
6
  constructor(registerHost) {
@@ -12,6 +12,9 @@ const ScoutButton$1 = /*@__PURE__*/ proxyCustomElement(class ScoutButton extends
12
12
  this.scoutClick = createEvent(this, "scoutClick");
13
13
  }
14
14
  type = "button";
15
+ href;
16
+ target;
17
+ rel;
15
18
  /**
16
19
  * The variant primarily affects the color of the button.
17
20
  */
@@ -22,12 +25,27 @@ const ScoutButton$1 = /*@__PURE__*/ proxyCustomElement(class ScoutButton extends
22
25
  icon;
23
26
  scoutClick;
24
27
  render() {
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 })));
28
+ const Tag = this.type === "link" ? "a" : "button";
29
+ const props = this.type === "link"
30
+ ? {
31
+ href: this.href,
32
+ target: this.target,
33
+ // This might not be our job, but better safe than sorry.
34
+ rel: this.rel ??
35
+ (this.target === "_blank" ? "noopener noreferrer" : undefined),
36
+ }
37
+ : {
38
+ type: this.type,
39
+ };
40
+ return (h(Tag, { key: 'fc7b2867c649782e166b7a363c5e3b43955a8011', class: `button ${this.variant}`, onClick: () => this.scoutClick.emit(), ...props }, h("slot", { key: '60d6e548ddf0da4bca40f1daea0fb656da8fb733' }), this.icon && h("span", { key: 'aef054b5de8cc20f5f26a9e2e82b76f43a9d3f32', class: "icon", innerHTML: this.icon })));
26
41
  }
27
42
  static get delegatesFocus() { return true; }
28
43
  static get style() { return buttonCss; }
29
- }, [273, "scout-button", {
44
+ }, [785, "scout-button", {
30
45
  "type": [1],
46
+ "href": [1],
47
+ "target": [1],
48
+ "rel": [1],
31
49
  "variant": [1],
32
50
  "icon": [1]
33
51
  }]);
@@ -1 +1 @@
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}
1
+ {"file":"scout-button.js","mappings":";;AAAA,MAAM,SAAS,GAAG,ozDAAozD;;MCczzDA,aAAW,iBAAAC,kBAAA,CAAA,MAAA,WAAA,SAAAC,CAAA,CAAA;;;;;;;;;IACd,IAAI,GAA2C,QAAQ;AAEvD,IAAA,IAAI;AACJ,IAAA,MAAM;AACN,IAAA,GAAG;AAEX;;AAEG;IACK,OAAO,GAAY,UAAU;AAErC;;AAEG;AACK,IAAA,IAAI;AAEH,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;AAEP,QAAA,QACE,CAAC,CAAA,GAAG,EACF,EAAA,GAAA,EAAA,0CAAA,EAAA,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,EAET,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,CACrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","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\n.button {\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 text-decoration: none;\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.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}","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\" | \"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\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 return (\n <Tag\n class={`button ${this.variant}`}\n onClick={() => this.scoutClick.emit()}\n {...props}\n >\n <slot />\n {this.icon && <span class=\"icon\" innerHTML={this.icon} />}\n </Tag>\n );\n }\n}\n"],"version":3}
@@ -1,4 +1,4 @@
1
- import { p as proxyCustomElement, H, h } from './p-MfRr-Vl1.js';
1
+ import { p as proxyCustomElement, H, h } from './p-S6Ssep7K.js';
2
2
 
3
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
4
 
@@ -11,7 +11,7 @@ const ScoutCard$1 = /*@__PURE__*/ proxyCustomElement(class ScoutCard extends H {
11
11
  this.__attachShadow();
12
12
  }
13
13
  render() {
14
- return h("slot", { key: 'bde708b7482da31d53fbc29581bed3f068e26279' });
14
+ return h("slot", { key: '44e84e98fac4b83c20fdec40a532c752f41dffd7' });
15
15
  }
16
16
  static get delegatesFocus() { return true; }
17
17
  static get style() { return cardCss; }
@@ -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-S6Ssep7K.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: '39d7814c3af4261c7b60423464d5b3167ad96003' }, this.label, h("span", { key: '10375644d673913047c66460c2c0395f0110b644', class: "inlineDivider" }), h("input", { key: '3e5c5fa2571874e75325a7a3161a15e00332cd36', 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
+ }, [770, "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 ScoutDivider extends Components.ScoutDivider, HTMLElement {}
4
+ export const ScoutDivider: {
5
+ prototype: ScoutDivider;
6
+ new (): ScoutDivider;
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, d as Host } from './p-S6Ssep7K.js';
2
+
3
+ const dividerCss = ":host{display:block;height:1px;background-color:var(--color-gray-200)}";
4
+
5
+ const ScoutDivider$1 = /*@__PURE__*/ proxyCustomElement(class ScoutDivider extends H {
6
+ constructor(registerHost) {
7
+ super();
8
+ if (registerHost !== false) {
9
+ this.__registerHost();
10
+ }
11
+ this.__attachShadow();
12
+ }
13
+ render() {
14
+ return h(Host, { key: '78c9366fcd393e53b579481d31feafa643b63690' });
15
+ }
16
+ static get delegatesFocus() { return true; }
17
+ static get style() { return dividerCss; }
18
+ }, [273, "scout-divider"]);
19
+ function defineCustomElement$1() {
20
+ if (typeof customElements === "undefined") {
21
+ return;
22
+ }
23
+ const components = ["scout-divider"];
24
+ components.forEach(tagName => { switch (tagName) {
25
+ case "scout-divider":
26
+ if (!customElements.get(tagName)) {
27
+ customElements.define(tagName, ScoutDivider$1);
28
+ }
29
+ break;
30
+ } });
31
+ }
32
+
33
+ const ScoutDivider = ScoutDivider$1;
34
+ const defineCustomElement = defineCustomElement$1;
35
+
36
+ export { ScoutDivider, defineCustomElement };
37
+ //# sourceMappingURL=scout-divider.js.map
38
+
39
+ //# sourceMappingURL=scout-divider.js.map
@@ -0,0 +1 @@
1
+ {"file":"scout-divider.js","mappings":";;AAAA,MAAM,UAAU,GAAG,wEAAwE;;MCS9EA,cAAY,iBAAAC,kBAAA,CAAA,MAAA,YAAA,SAAAC,CAAA,CAAA;;;;;;;;IACvB,MAAM,GAAA;QACJ,OAAO,CAAA,CAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAG;;;;;;;;;;;;;;;;;;;;;;;;","names":["ScoutDivider","__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/divider/divider.css?tag=scout-divider&encapsulation=shadow","src/components/divider/divider.tsx"],"sourcesContent":[":host {\n display: block;\n height: 1px;\n background-color: var(--color-gray-200);\n}","import { Component, Host, h } from \"@stencil/core\";\n\n@Component({\n tag: \"scout-divider\",\n styleUrl: \"divider.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class ScoutDivider {\n render() {\n return <Host />;\n }\n}\n"],"version":3}
@@ -1,4 +1,4 @@
1
- import { p as proxyCustomElement, H, h } from './p-MfRr-Vl1.js';
1
+ import { p as proxyCustomElement, H, h } from './p-S6Ssep7K.js';
2
2
 
3
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
4
 
@@ -39,10 +39,10 @@ const ScoutField$1 = /*@__PURE__*/ proxyCustomElement(class ScoutField extends H
39
39
  this.errorHidden = false;
40
40
  }
41
41
  render() {
42
- return (h("div", { key: 'bcd308f7ff69063860281b7f4f48ef2baa608308', class: "field" }, h("label", { key: '756d4a97399ed94970b3d39850dd5c4d0e155a99', htmlFor: this.inputId, class: "label" }, this.label), h("slot", { key: '3700f8aba58c90b14224e0d35a147f1a11ba7f98' }), h("p", { key: '60a70a27e3b7811accc657bbe49405306d342d9d', class: "error-text", "aria-live": "polite" }, !this.errorHidden && this.errorText), this.helpText && h("p", { key: '44f8377005f43ca1a332d6c4d8aec48e5aafb3c4', class: "help-text" }, this.helpText)));
42
+ return (h("div", { key: 'e38499f35a268b15962a31a2dc45361fb803a8e3', class: "field" }, h("label", { key: '3e6ba58b91285a082964bd01336fd4c7d8260835', htmlFor: this.inputId, class: "label" }, this.label), h("slot", { key: '75de87617caef28b9d90d0e112870a5cf2b08bfc' }), h("p", { key: 'f152609ade3a840a4bfd6bfef5f5aadf8060fab2', class: "error-text", "aria-live": "polite" }, !this.errorHidden && this.errorText), this.helpText && h("p", { key: '86069ef5f19840e44e79a274152742070b51e7a8', class: "help-text" }, this.helpText)));
43
43
  }
44
44
  static get style() { return fieldCss; }
45
- }, [262, "scout-field", {
45
+ }, [774, "scout-field", {
46
46
  "label": [1],
47
47
  "helpText": [1, "help-text"],
48
48
  "inputId": [32],
@@ -1,4 +1,4 @@
1
- import { p as proxyCustomElement, H, c as createEvent, h } from './p-MfRr-Vl1.js';
1
+ import { p as proxyCustomElement, H, c as createEvent, h } from './p-S6Ssep7K.js';
2
2
 
3
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
4
 
@@ -67,7 +67,7 @@ const ScoutInput$1 = /*@__PURE__*/ proxyCustomElement(class ScoutInput extends H
67
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
68
  }
69
69
  static get style() { return inputCss; }
70
- }, [258, "scout-input", {
70
+ }, [770, "scout-input", {
71
71
  "type": [1],
72
72
  "inputmode": [1],
73
73
  "pattern": [1],
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface ScoutLink extends Components.ScoutLink, HTMLElement {}
4
+ export const ScoutLink: {
5
+ prototype: ScoutLink;
6
+ new (): ScoutLink;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,91 @@
1
+ import { p as proxyCustomElement, H, c as createEvent, h } from './p-S6Ssep7K.js';
2
+
3
+ const linkCss = ":host{display:inline}a,button{color:var(--color-text-brand-base);-webkit-text-decoration:none;text-decoration:none}a:hover,button:hover{-webkit-text-decoration:underline;text-decoration:underline;color:var(--color-background-brand-hover)}a:active,button:active{color:var(--color-background-brand-pressed)}button{display:inline;background:none;border:none;padding:0;cursor:pointer}";
4
+
5
+ const ScoutLink$1 = /*@__PURE__*/ proxyCustomElement(class ScoutLink extends H {
6
+ constructor(registerHost) {
7
+ super();
8
+ if (registerHost !== false) {
9
+ this.__registerHost();
10
+ }
11
+ this.__attachShadow();
12
+ this.scoutLinkClick = createEvent(this, "scoutLinkClick");
13
+ }
14
+ /**
15
+ * The URL that the link points to. Required when type is set to link
16
+ */
17
+ href;
18
+ /**
19
+ * Text to be displayed for the link
20
+ */
21
+ label;
22
+ rel;
23
+ /**
24
+ * If the label property is not sufficient to describe its use, add an aria-label describing what happens
25
+ * when pressing the button or where the user navigates if it is a link.
26
+ */
27
+ linkAriaLabel;
28
+ /**
29
+ * There are two types. If you intend to use it as a button with onclick, a button is rendered, however if you want to you it
30
+ * as a normal link, a link with href is rendered.
31
+ */
32
+ type = "link";
33
+ /**
34
+ * _blank Opens the linked document in a new window or tab
35
+ *
36
+ * _self Opens the linked document in the same frame as it was clicked (this is default)
37
+ *
38
+ * _parent Opens the linked document in the parent frame
39
+ *
40
+ * _top Opens the linked document in the full body of the window
41
+ *
42
+ * _framename Opens the linked document in the named iframe
43
+ */
44
+ target = "_self";
45
+ /**
46
+ * Only sent if the link is a button.
47
+ */
48
+ scoutLinkClick;
49
+ render() {
50
+ if (this.type === "button") {
51
+ return (h("button", { type: "button", "aria-label": this.linkAriaLabel || "", onClick: () => this.scoutLinkClick.emit() }, this.label));
52
+ }
53
+ if (!this.href) {
54
+ throw new Error("Href is requied when type is set to link");
55
+ }
56
+ return (h("a", { href: this.href, target: this.target, "aria-label": this.linkAriaLabel || "", rel:
57
+ // This might not be our job, but better safe than sorry.
58
+ this.rel ??
59
+ (this.target === "_blank" ? "noopener noreferrer" : undefined) }, this.label));
60
+ }
61
+ static get delegatesFocus() { return true; }
62
+ static get style() { return linkCss; }
63
+ }, [785, "scout-link", {
64
+ "href": [1],
65
+ "label": [1],
66
+ "rel": [1],
67
+ "linkAriaLabel": [1, "link-aria-label"],
68
+ "type": [1],
69
+ "target": [1]
70
+ }]);
71
+ function defineCustomElement$1() {
72
+ if (typeof customElements === "undefined") {
73
+ return;
74
+ }
75
+ const components = ["scout-link"];
76
+ components.forEach(tagName => { switch (tagName) {
77
+ case "scout-link":
78
+ if (!customElements.get(tagName)) {
79
+ customElements.define(tagName, ScoutLink$1);
80
+ }
81
+ break;
82
+ } });
83
+ }
84
+
85
+ const ScoutLink = ScoutLink$1;
86
+ const defineCustomElement = defineCustomElement$1;
87
+
88
+ export { ScoutLink, defineCustomElement };
89
+ //# sourceMappingURL=scout-link.js.map
90
+
91
+ //# sourceMappingURL=scout-link.js.map
@@ -0,0 +1 @@
1
+ {"file":"scout-link.js","mappings":";;AAAA,MAAM,OAAO,GAAG,8XAA8X;;MCSjYA,WAAS,iBAAAC,kBAAA,CAAA,MAAA,SAAA,SAAAC,CAAA,CAAA;;;;;;;;;AACpB;;AAEG;AACK,IAAA,IAAI;AAEZ;;AAEG;AACK,IAAA,KAAK;AAEL,IAAA,GAAG;AAEX;;;AAGG;AACK,IAAA,aAAa;AAErB;;;AAGG;IACK,IAAI,GAAsB,MAAM;AAExC;;;;;;;;;;AAUG;IACK,MAAM,GACZ,OAAO;AAET;;AAEG;AACM,IAAA,cAAc;IAEvB,MAAM,GAAA;AACJ,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC1B,YAAA,QACE,CAAA,CAAA,QAAA,EAAA,EACE,IAAI,EAAC,QAAQ,EAAA,YAAA,EACD,IAAI,CAAC,aAAa,IAAI,EAAE,EACpC,OAAO,EAAE,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAA,EAExC,IAAI,CAAC,KAAK,CACJ;;AAIb,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AACd,YAAA,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC;;QAG7D,QACE,SACE,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,MAAM,EAAE,IAAI,CAAC,MAAM,gBACP,IAAI,CAAC,aAAa,IAAI,EAAE,EACpC,GAAG;;AAED,YAAA,IAAI,CAAC,GAAG;iBACP,IAAI,CAAC,MAAM,KAAK,QAAQ,GAAG,qBAAqB,GAAG,SAAS,CAAC,EAG/D,EAAA,IAAI,CAAC,KAAK,CACT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["ScoutLink","__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/link/link.css?tag=scout-link&encapsulation=shadow","src/components/link/link.tsx"],"sourcesContent":[":host {\n display: inline;\n}\n\na,\nbutton {\n color: var(--color-text-brand-base);\n text-decoration: none;\n}\na:hover,\nbutton:hover {\n text-decoration: underline;\n color: var(--color-background-brand-hover);\n}\na:active,\nbutton:active {\n color: var(--color-background-brand-pressed);\n}\n\nbutton {\n display: inline;\n background: none;\n border: none;\n padding: 0;\n cursor: pointer;\n}\n","import { Component, Event, type EventEmitter, h, Prop } from \"@stencil/core\";\n\n@Component({\n tag: \"scout-link\",\n styleUrl: \"link.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class ScoutLink {\n /**\n * The URL that the link points to. Required when type is set to link\n */\n @Prop() href?: string;\n\n /**\n * Text to be displayed for the link\n */\n @Prop() label: string;\n\n @Prop() rel?: string;\n\n /**\n * If the label property is not sufficient to describe its use, add an aria-label describing what happens\n * when pressing the button or where the user navigates if it is a link.\n */\n @Prop() linkAriaLabel?: string;\n\n /**\n * There are two types. If you intend to use it as a button with onclick, a button is rendered, however if you want to you it\n * as a normal link, a link with href is rendered.\n */\n @Prop() type: \"link\" | \"button\" = \"link\";\n\n /**\n * _blank\tOpens the linked document in a new window or tab\n *\n * _self\tOpens the linked document in the same frame as it was clicked (this is default)\n *\n * _parent\tOpens the linked document in the parent frame\n *\n * _top\tOpens the linked document in the full body of the window\n *\n * _framename\tOpens the linked document in the named iframe\n */\n @Prop() target?: \"_blank\" | \"_self\" | \"_parent\" | \"_top\" | \"framename\" =\n \"_self\";\n\n /**\n * Only sent if the link is a button.\n */\n @Event() scoutLinkClick: EventEmitter<HTMLButtonElement>;\n\n render() {\n if (this.type === \"button\") {\n return (\n <button\n type=\"button\"\n aria-label={this.linkAriaLabel || \"\"}\n onClick={() => this.scoutLinkClick.emit()}\n >\n {this.label}\n </button>\n );\n }\n\n if (!this.href) {\n throw new Error(\"Href is requied when type is set to link\");\n }\n\n return (\n <a\n href={this.href}\n target={this.target}\n aria-label={this.linkAriaLabel || \"\"}\n rel={\n // This might not be our job, but better safe than sorry.\n this.rel ??\n (this.target === \"_blank\" ? \"noopener noreferrer\" : undefined)\n }\n >\n {this.label}\n </a>\n );\n }\n}\n"],"version":3}
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface ScoutListViewItem extends Components.ScoutListViewItem, HTMLElement {}
4
+ export const ScoutListViewItem: {
5
+ prototype: ScoutListViewItem;
6
+ new (): ScoutListViewItem;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,92 @@
1
+ import { p as proxyCustomElement, H, c as createEvent, h, d as Host } from './p-S6Ssep7K.js';
2
+
3
+ const listViewItemCss = ":host{display:flex}.button{flex:1;display:flex;align-items:center;text-align:inherit;min-height:var(--spacing-12);color:var(--color-text-base);padding:var(--spacing-2) var(--spacing-4);cursor:pointer;border:none;background-color:transparent;-webkit-text-decoration:none;text-decoration:none}.button:hover{background-color:var(--color-background-brand-subtle-hovered)}.prefix-icon,.suffix-icon{display:flex;align-items:center;height:var(--spacing-6);color:var(--color-neutral-700)}.prefix-icon svg,.suffix-icon svg,.prefix-icon .icon,.suffix-icon .icon{width:var(--spacing-6);height:var(--spacing-6)}.prefix-icon{justify-content:flex-start;width:var(--spacing-14)}.suffix-icon{justify-content:flex-end;width:var(--spacing-8)}.suffix-icon .icon{background-color:currentColor;-webkit-mask-image:var(--icon);mask-image:var(--icon);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%}.content{flex:1;display:flex;flex-direction:column;justify-content:center}.primary{font:var(--type-body-base)}.secondary{font:var(--type-body-sm);color:var(--color-neutral-700)}";
4
+
5
+ const ScoutListViewItem$1 = /*@__PURE__*/ proxyCustomElement(class ScoutListViewItem extends H {
6
+ constructor(registerHost) {
7
+ super();
8
+ if (registerHost !== false) {
9
+ this.__registerHost();
10
+ }
11
+ this.__attachShadow();
12
+ this.scoutClick = createEvent(this, "scoutClick");
13
+ }
14
+ icon;
15
+ primary;
16
+ secondary;
17
+ type = "button";
18
+ href;
19
+ target;
20
+ rel;
21
+ scoutClick;
22
+ render() {
23
+ const Tag = this.type === "link" ? "a" : "button";
24
+ const linkProps = this.type === "link"
25
+ ? {
26
+ href: this.href,
27
+ target: this.target,
28
+ // This might not be our job, but better safe than sorry.
29
+ rel: this.rel ??
30
+ (this.target === "_blank" ? "noopener noreferrer" : undefined),
31
+ }
32
+ : {};
33
+ return (
34
+ // biome-ignore lint/a11y/useSemanticElements: We can't use <li> because we're using shadow DOM.
35
+ h(Host, { key: '075b28cf90ce6487ba7c7212c209c2fafff80c8f', role: "listitem" }, h(Tag, { key: '30bc35454f69979ade277e4e376346ef5cc01c3b', class: "button", ...linkProps, onClick: () => this.scoutClick.emit() }, this.getPrefix(), this.getContent(), this.getSuffix())));
36
+ }
37
+ getPrefix() {
38
+ if (!this.icon) {
39
+ return null;
40
+ }
41
+ return h("div", { class: "prefix-icon", innerHTML: this.icon });
42
+ }
43
+ getContent() {
44
+ return (h("div", { class: "content" }, this.primary && h("div", { class: "primary" }, this.primary), this.secondary && h("div", { class: "secondary" }, this.secondary)));
45
+ }
46
+ getSuffix() {
47
+ // if (this.type === "link") {
48
+ // return (
49
+ // <div class="suffix-icon">
50
+ // <span
51
+ // class="icon"
52
+ // style={{
53
+ // "--icon": `url(${ChevronRightIcon})`,
54
+ // }}
55
+ // />
56
+ // </div>
57
+ // );
58
+ // }
59
+ return null;
60
+ }
61
+ static get delegatesFocus() { return true; }
62
+ static get style() { return listViewItemCss; }
63
+ }, [785, "scout-list-view-item", {
64
+ "icon": [1],
65
+ "primary": [1],
66
+ "secondary": [1],
67
+ "type": [1],
68
+ "href": [1],
69
+ "target": [1],
70
+ "rel": [1]
71
+ }]);
72
+ function defineCustomElement$1() {
73
+ if (typeof customElements === "undefined") {
74
+ return;
75
+ }
76
+ const components = ["scout-list-view-item"];
77
+ components.forEach(tagName => { switch (tagName) {
78
+ case "scout-list-view-item":
79
+ if (!customElements.get(tagName)) {
80
+ customElements.define(tagName, ScoutListViewItem$1);
81
+ }
82
+ break;
83
+ } });
84
+ }
85
+
86
+ const ScoutListViewItem = ScoutListViewItem$1;
87
+ const defineCustomElement = defineCustomElement$1;
88
+
89
+ export { ScoutListViewItem, defineCustomElement };
90
+ //# sourceMappingURL=scout-list-view-item.js.map
91
+
92
+ //# sourceMappingURL=scout-list-view-item.js.map
@@ -0,0 +1 @@
1
+ {"file":"scout-list-view-item.js","mappings":";;AAAA,MAAM,eAAe,GAAG,klCAAklC;;MCkB7lCA,mBAAiB,iBAAAC,kBAAA,CAAA,MAAA,iBAAA,SAAAC,CAAA,CAAA;;;;;;;;;AACpB,IAAA,IAAI;AACJ,IAAA,OAAO;AACP,IAAA,SAAS;IACT,IAAI,GAAa,QAAQ;AAEzB,IAAA,IAAI;AACJ,IAAA,MAAM;AACN,IAAA,GAAG;AAEF,IAAA,UAAU;IAEnB,MAAM,GAAA;AACJ,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,KAAK,MAAM,GAAG,GAAG,GAAG,QAAQ;AAEjD,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;QAER;;QAEE,CAAA,CAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAC,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,OAAO,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["ScoutListViewItem","__stencil_proxyCustomElement","HTMLElement"],"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\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}","import {\n Component,\n Event,\n type EventEmitter,\n Host,\n h,\n Prop,\n} from \"@stencil/core\";\n\nexport type ItemType = \"button\" | \"link\";\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 @Event() scoutClick: EventEmitter<void>;\n\n render() {\n const Tag = this.type === \"link\" ? \"a\" : \"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 // biome-ignore lint/a11y/useSemanticElements: We can't use <li> because we're using shadow DOM.\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 === \"link\") {\n // return (\n // <div class=\"suffix-icon\">\n // <span\n // class=\"icon\"\n // style={{\n // \"--icon\": `url(${ChevronRightIcon})`,\n // }}\n // />\n // </div>\n // );\n // }\n\n return null;\n }\n}\n"],"version":3}