@limetech/lime-elements 37.1.0-next.2 → 37.1.0-next.21

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 (231) hide show
  1. package/dist/cjs/{checkbox.template-5603ad4a.js → checkbox.template-df6fc114.js} +4 -4
  2. package/dist/cjs/checkbox.template-df6fc114.js.map +1 -0
  3. package/dist/cjs/lime-elements.cjs.js +1 -1
  4. package/dist/cjs/limel-action-bar-item_2.cjs.entry.js +9 -1
  5. package/dist/cjs/limel-action-bar-item_2.cjs.entry.js.map +1 -1
  6. package/dist/cjs/limel-action-bar.cjs.entry.js.map +1 -1
  7. package/dist/cjs/limel-button.cjs.entry.js +3 -52
  8. package/dist/cjs/limel-button.cjs.entry.js.map +1 -1
  9. package/dist/cjs/limel-checkbox.cjs.entry.js +3 -2
  10. package/dist/cjs/limel-checkbox.cjs.entry.js.map +1 -1
  11. package/dist/cjs/limel-circular-progress_2.cjs.entry.js +7 -1
  12. package/dist/cjs/limel-circular-progress_2.cjs.entry.js.map +1 -1
  13. package/dist/cjs/limel-collapsible-section.cjs.entry.js +10 -0
  14. package/dist/cjs/limel-collapsible-section.cjs.entry.js.map +1 -1
  15. package/dist/cjs/limel-color-picker-palette.cjs.entry.js +2 -2
  16. package/dist/cjs/limel-color-picker-palette.cjs.entry.js.map +1 -1
  17. package/dist/cjs/limel-color-picker.cjs.entry.js +2 -2
  18. package/dist/cjs/limel-color-picker.cjs.entry.js.map +1 -1
  19. package/dist/cjs/limel-dock-button.cjs.entry.js +8 -2
  20. package/dist/cjs/limel-dock-button.cjs.entry.js.map +1 -1
  21. package/dist/cjs/limel-form.cjs.entry.js +15 -2
  22. package/dist/cjs/limel-form.cjs.entry.js.map +1 -1
  23. package/dist/cjs/limel-icon-button.cjs.entry.js +7 -0
  24. package/dist/cjs/limel-icon-button.cjs.entry.js.map +1 -1
  25. package/dist/cjs/limel-icon.cjs.entry.js +90 -8
  26. package/dist/cjs/limel-icon.cjs.entry.js.map +1 -1
  27. package/dist/cjs/limel-list_2.cjs.entry.js +1 -1
  28. package/dist/cjs/limel-list_2.cjs.entry.js.map +1 -1
  29. package/dist/cjs/limel-portal.cjs.entry.js +15 -14
  30. package/dist/cjs/limel-portal.cjs.entry.js.map +1 -1
  31. package/dist/cjs/limel-slider.cjs.entry.js +136 -127
  32. package/dist/cjs/limel-slider.cjs.entry.js.map +1 -1
  33. package/dist/cjs/limel-switch.cjs.entry.js +23 -10
  34. package/dist/cjs/limel-switch.cjs.entry.js.map +1 -1
  35. package/dist/cjs/limel-table.cjs.entry.js +9 -1
  36. package/dist/cjs/limel-table.cjs.entry.js.map +1 -1
  37. package/dist/cjs/limel-tooltip_2.cjs.entry.js +16 -14
  38. package/dist/cjs/limel-tooltip_2.cjs.entry.js.map +1 -1
  39. package/dist/cjs/loader.cjs.js +1 -1
  40. package/dist/cjs/make-enter-clickable-59460fd6.js +80 -0
  41. package/dist/cjs/make-enter-clickable-59460fd6.js.map +1 -0
  42. package/dist/collection/components/action-bar/action-bar-item/action-bar-item.css +1 -7
  43. package/dist/collection/components/action-bar/action-bar-item/action-bar-item.js +11 -3
  44. package/dist/collection/components/action-bar/action-bar-item/action-bar-item.js.map +1 -1
  45. package/dist/collection/components/action-bar/action-bar-item/action-bar-overflow-menu.js +1 -1
  46. package/dist/collection/components/action-bar/action-bar.js +1 -2
  47. package/dist/collection/components/action-bar/action-bar.js.map +1 -1
  48. package/dist/collection/components/action-bar/action-bar.types.js.map +1 -1
  49. package/dist/collection/components/button/button.js +1 -1
  50. package/dist/collection/components/button/button.js.map +1 -1
  51. package/dist/collection/components/checkbox/checkbox.js +18 -1
  52. package/dist/collection/components/checkbox/checkbox.js.map +1 -1
  53. package/dist/collection/components/checkbox/checkbox.template.js +3 -3
  54. package/dist/collection/components/checkbox/checkbox.template.js.map +1 -1
  55. package/dist/collection/components/collapsible-section/collapsible-section.js +11 -1
  56. package/dist/collection/components/collapsible-section/collapsible-section.js.map +1 -1
  57. package/dist/collection/components/color-picker/color-picker-palette.css +46 -21
  58. package/dist/collection/components/color-picker/color-picker-palette.js +1 -1
  59. package/dist/collection/components/color-picker/color-picker-palette.js.map +1 -1
  60. package/dist/collection/components/color-picker/color-picker.css +29 -21
  61. package/dist/collection/components/color-picker/color-picker.js +1 -1
  62. package/dist/collection/components/color-picker/color-picker.js.map +1 -1
  63. package/dist/collection/components/dock/dock-button/dock-button.js +8 -2
  64. package/dist/collection/components/dock/dock-button/dock-button.js.map +1 -1
  65. package/dist/collection/components/form/fields/schema-field.js +13 -1
  66. package/dist/collection/components/form/fields/schema-field.js.map +1 -1
  67. package/dist/collection/components/form/form.css +4 -0
  68. package/dist/collection/components/form/widgets/select.js +1 -0
  69. package/dist/collection/components/form/widgets/select.js.map +1 -1
  70. package/dist/collection/components/icon/icon.js +1 -1
  71. package/dist/collection/components/icon/icon.js.map +1 -1
  72. package/dist/collection/components/icon-button/icon-button.js +7 -0
  73. package/dist/collection/components/icon-button/icon-button.js.map +1 -1
  74. package/dist/collection/components/linear-progress/linear-progress.js +9 -3
  75. package/dist/collection/components/linear-progress/linear-progress.js.map +1 -1
  76. package/dist/collection/components/list/list.js +1 -1
  77. package/dist/collection/components/list/list.js.map +1 -1
  78. package/dist/collection/components/portal/portal.js +41 -20
  79. package/dist/collection/components/portal/portal.js.map +1 -1
  80. package/dist/collection/components/slider/slider.js +140 -131
  81. package/dist/collection/components/slider/slider.js.map +1 -1
  82. package/dist/collection/components/switch/switch.css +22 -1
  83. package/dist/collection/components/switch/switch.js +50 -10
  84. package/dist/collection/components/switch/switch.js.map +1 -1
  85. package/dist/collection/components/table/table.css +43 -30
  86. package/dist/collection/components/table/table.js +8 -0
  87. package/dist/collection/components/table/table.js.map +1 -1
  88. package/dist/collection/components/tooltip/tooltip-content.css +1 -1
  89. package/dist/collection/components/tooltip/tooltip.css +3 -2
  90. package/dist/collection/components/tooltip/tooltip.js +41 -16
  91. package/dist/collection/components/tooltip/tooltip.js.map +1 -1
  92. package/dist/collection/global/{icon-cache.js → icon-cache/cache-storage-icon-cache.js} +4 -9
  93. package/dist/collection/global/icon-cache/cache-storage-icon-cache.js.map +1 -0
  94. package/dist/collection/global/icon-cache/factory.js +16 -0
  95. package/dist/collection/global/icon-cache/factory.js.map +1 -0
  96. package/dist/collection/global/icon-cache/in-memory-icon-cache.js +73 -0
  97. package/dist/collection/global/icon-cache/in-memory-icon-cache.js.map +1 -0
  98. package/dist/collection/util/make-enter-clickable.js +73 -0
  99. package/dist/collection/util/make-enter-clickable.js.map +1 -0
  100. package/dist/esm/{checkbox.template-a5d8a2bc.js → checkbox.template-c2d0fa10.js} +4 -4
  101. package/dist/esm/checkbox.template-c2d0fa10.js.map +1 -0
  102. package/dist/esm/lime-elements.js +1 -1
  103. package/dist/esm/limel-action-bar-item_2.entry.js +10 -2
  104. package/dist/esm/limel-action-bar-item_2.entry.js.map +1 -1
  105. package/dist/esm/limel-action-bar.entry.js.map +1 -1
  106. package/dist/esm/limel-button.entry.js +2 -51
  107. package/dist/esm/limel-button.entry.js.map +1 -1
  108. package/dist/esm/limel-checkbox.entry.js +3 -2
  109. package/dist/esm/limel-checkbox.entry.js.map +1 -1
  110. package/dist/esm/limel-circular-progress_2.entry.js +7 -1
  111. package/dist/esm/limel-circular-progress_2.entry.js.map +1 -1
  112. package/dist/esm/limel-collapsible-section.entry.js +11 -1
  113. package/dist/esm/limel-collapsible-section.entry.js.map +1 -1
  114. package/dist/esm/limel-color-picker-palette.entry.js +2 -2
  115. package/dist/esm/limel-color-picker-palette.entry.js.map +1 -1
  116. package/dist/esm/limel-color-picker.entry.js +2 -2
  117. package/dist/esm/limel-color-picker.entry.js.map +1 -1
  118. package/dist/esm/limel-dock-button.entry.js +8 -2
  119. package/dist/esm/limel-dock-button.entry.js.map +1 -1
  120. package/dist/esm/limel-form.entry.js +15 -2
  121. package/dist/esm/limel-form.entry.js.map +1 -1
  122. package/dist/esm/limel-icon-button.entry.js +7 -0
  123. package/dist/esm/limel-icon-button.entry.js.map +1 -1
  124. package/dist/esm/limel-icon.entry.js +90 -8
  125. package/dist/esm/limel-icon.entry.js.map +1 -1
  126. package/dist/esm/limel-list_2.entry.js +1 -1
  127. package/dist/esm/limel-list_2.entry.js.map +1 -1
  128. package/dist/esm/limel-portal.entry.js +15 -14
  129. package/dist/esm/limel-portal.entry.js.map +1 -1
  130. package/dist/esm/limel-slider.entry.js +136 -127
  131. package/dist/esm/limel-slider.entry.js.map +1 -1
  132. package/dist/esm/limel-switch.entry.js +24 -11
  133. package/dist/esm/limel-switch.entry.js.map +1 -1
  134. package/dist/esm/limel-table.entry.js +9 -1
  135. package/dist/esm/limel-table.entry.js.map +1 -1
  136. package/dist/esm/limel-tooltip_2.entry.js +16 -14
  137. package/dist/esm/limel-tooltip_2.entry.js.map +1 -1
  138. package/dist/esm/loader.js +1 -1
  139. package/dist/esm/make-enter-clickable-0473e94a.js +77 -0
  140. package/dist/esm/make-enter-clickable-0473e94a.js.map +1 -0
  141. package/dist/lime-elements/lime-elements.esm.js +1 -1
  142. package/dist/lime-elements/lime-elements.esm.js.map +1 -1
  143. package/dist/lime-elements/{p-c6d57502.entry.js → p-0d823554.entry.js} +2 -2
  144. package/dist/lime-elements/p-0d823554.entry.js.map +1 -0
  145. package/dist/lime-elements/p-15e3028f.entry.js +2 -0
  146. package/dist/lime-elements/p-15e3028f.entry.js.map +1 -0
  147. package/dist/lime-elements/{p-9c1db0e7.entry.js → p-3bb15bdf.entry.js} +2 -2
  148. package/dist/lime-elements/p-3bb15bdf.entry.js.map +1 -0
  149. package/dist/lime-elements/p-4607900f.entry.js +2 -0
  150. package/dist/lime-elements/p-4607900f.entry.js.map +1 -0
  151. package/dist/lime-elements/{p-71210c65.entry.js → p-55dcbc35.entry.js} +2 -2
  152. package/dist/lime-elements/{p-71210c65.entry.js.map → p-55dcbc35.entry.js.map} +1 -1
  153. package/dist/lime-elements/p-7cfc8998.js +2 -0
  154. package/dist/lime-elements/p-7cfc8998.js.map +1 -0
  155. package/dist/lime-elements/{p-bb1b12bb.entry.js → p-88e4eba7.entry.js} +8 -8
  156. package/dist/lime-elements/p-88e4eba7.entry.js.map +1 -0
  157. package/dist/lime-elements/{p-eae4f1ed.entry.js → p-8f08ca13.entry.js} +2 -2
  158. package/dist/lime-elements/p-8f08ca13.entry.js.map +1 -0
  159. package/dist/lime-elements/{p-7d159ddf.entry.js → p-95769bf5.entry.js} +2 -2
  160. package/dist/lime-elements/p-95769bf5.entry.js.map +1 -0
  161. package/dist/lime-elements/p-addb4c84.entry.js +2 -0
  162. package/dist/lime-elements/p-addb4c84.entry.js.map +1 -0
  163. package/dist/lime-elements/p-b714596f.entry.js.map +1 -1
  164. package/dist/lime-elements/p-c3e428ff.entry.js +2 -0
  165. package/dist/lime-elements/p-c3e428ff.entry.js.map +1 -0
  166. package/dist/lime-elements/{p-0f1a9472.entry.js → p-c6f8ea40.entry.js} +6 -6
  167. package/dist/lime-elements/p-c6f8ea40.entry.js.map +1 -0
  168. package/dist/lime-elements/p-d028b08d.js +2 -0
  169. package/dist/lime-elements/p-d028b08d.js.map +1 -0
  170. package/dist/lime-elements/{p-42f06b16.entry.js → p-d5298b7e.entry.js} +2 -2
  171. package/dist/lime-elements/p-d5298b7e.entry.js.map +1 -0
  172. package/dist/lime-elements/p-d8826406.entry.js +2 -0
  173. package/dist/lime-elements/p-d8826406.entry.js.map +1 -0
  174. package/dist/lime-elements/{p-be492c93.entry.js → p-d9d4b3bf.entry.js} +2 -2
  175. package/dist/lime-elements/{p-be492c93.entry.js.map → p-d9d4b3bf.entry.js.map} +1 -1
  176. package/dist/lime-elements/p-db30704e.entry.js +2 -0
  177. package/dist/lime-elements/p-db30704e.entry.js.map +1 -0
  178. package/dist/lime-elements/p-e0a0065f.entry.js +2 -0
  179. package/dist/lime-elements/p-e0a0065f.entry.js.map +1 -0
  180. package/dist/lime-elements/{p-a4c39571.entry.js → p-f1b0951f.entry.js} +5 -5
  181. package/dist/lime-elements/p-f1b0951f.entry.js.map +1 -0
  182. package/dist/types/components/action-bar/action-bar-item/action-bar-item.d.ts +3 -0
  183. package/dist/types/components/action-bar/action-bar.d.ts +0 -1
  184. package/dist/types/components/action-bar/action-bar.types.d.ts +12 -6
  185. package/dist/types/components/checkbox/checkbox.d.ts +17 -0
  186. package/dist/types/components/checkbox/checkbox.template.d.ts +1 -0
  187. package/dist/types/components/collapsible-section/collapsible-section.d.ts +3 -0
  188. package/dist/types/components/dock/dock-button/dock-button.d.ts +1 -0
  189. package/dist/types/components/icon-button/icon-button.d.ts +2 -0
  190. package/dist/types/components/linear-progress/linear-progress.d.ts +1 -0
  191. package/dist/types/components/list/list.d.ts +2 -1
  192. package/dist/types/components/portal/portal.d.ts +8 -3
  193. package/dist/types/components/slider/slider.d.ts +13 -11
  194. package/dist/types/components/switch/switch.d.ts +19 -1
  195. package/dist/types/components/tooltip/tooltip.d.ts +13 -6
  196. package/dist/types/components.d.ts +129 -29
  197. package/dist/types/global/{icon-cache.d.ts → icon-cache/cache-storage-icon-cache.d.ts} +2 -4
  198. package/dist/types/global/icon-cache/factory.d.ts +4 -0
  199. package/dist/types/global/icon-cache/in-memory-icon-cache.d.ts +15 -0
  200. package/dist/types/util/make-enter-clickable.d.ts +7 -0
  201. package/package.json +10 -10
  202. package/dist/cjs/checkbox.template-5603ad4a.js.map +0 -1
  203. package/dist/collection/global/icon-cache.js.map +0 -1
  204. package/dist/collection/util/makeEnterClickable.js +0 -51
  205. package/dist/collection/util/makeEnterClickable.js.map +0 -1
  206. package/dist/esm/checkbox.template-a5d8a2bc.js.map +0 -1
  207. package/dist/lime-elements/p-0f1a9472.entry.js.map +0 -1
  208. package/dist/lime-elements/p-149f2418.entry.js +0 -2
  209. package/dist/lime-elements/p-149f2418.entry.js.map +0 -1
  210. package/dist/lime-elements/p-42f06b16.entry.js.map +0 -1
  211. package/dist/lime-elements/p-7d159ddf.entry.js.map +0 -1
  212. package/dist/lime-elements/p-8be4072e.entry.js +0 -2
  213. package/dist/lime-elements/p-8be4072e.entry.js.map +0 -1
  214. package/dist/lime-elements/p-908640f6.entry.js +0 -2
  215. package/dist/lime-elements/p-908640f6.entry.js.map +0 -1
  216. package/dist/lime-elements/p-9c1db0e7.entry.js.map +0 -1
  217. package/dist/lime-elements/p-9ceb4364.entry.js +0 -2
  218. package/dist/lime-elements/p-9ceb4364.entry.js.map +0 -1
  219. package/dist/lime-elements/p-a4c39571.entry.js.map +0 -1
  220. package/dist/lime-elements/p-b2d4f3f0.js +0 -2
  221. package/dist/lime-elements/p-b2d4f3f0.js.map +0 -1
  222. package/dist/lime-elements/p-b3ff8fef.entry.js +0 -2
  223. package/dist/lime-elements/p-b3ff8fef.entry.js.map +0 -1
  224. package/dist/lime-elements/p-bb1b12bb.entry.js.map +0 -1
  225. package/dist/lime-elements/p-c018e82f.entry.js +0 -2
  226. package/dist/lime-elements/p-c018e82f.entry.js.map +0 -1
  227. package/dist/lime-elements/p-c6d57502.entry.js.map +0 -1
  228. package/dist/lime-elements/p-de4cb1ac.entry.js +0 -2
  229. package/dist/lime-elements/p-de4cb1ac.entry.js.map +0 -1
  230. package/dist/lime-elements/p-eae4f1ed.entry.js.map +0 -1
  231. package/dist/types/util/makeEnterClickable.d.ts +0 -2
@@ -1,2 +0,0 @@
1
- import{f as t,r as o,h as e,g as r}from"./p-3075aa67.js";const n=new WeakMap;function a(o){if(n.has(o)){return}let e=false;let r=true;const a=r=>{if(r.key==="Enter"&&!e){e=true;t(o)}};const d=n=>{if(n.key==="Enter"&&e){e=false;r=true;t(o)}};const i=t=>{if(!e){return}if(r){r=false;return}t.stopImmediatePropagation()};n.set(o,{keydownHandler:a,keyupHandler:d,clickHandler:i});o.addEventListener("keydown",a);o.addEventListener("keyup",d);o.addEventListener("click",i,true)}function d(t){const o=n.get(t);if(!o||!n.has(t)){return}t.removeEventListener("keydown",o.keydownHandler);t.removeEventListener("keyup",o.keyupHandler);t.removeEventListener("click",o.clickHandler,true);n.delete(t)}const i=':host{--mdc-theme-primary:var(\n --lime-primary-color,\n rgb(var(--color-teal-default))\n );--mdc-theme-secondary:var(\n --lime-secondary-color,\n rgb(var(--contrast-1100))\n );--mdc-theme-on-primary:var(\n --lime-on-primary-color,\n rgb(var(--contrast-100))\n );--mdc-theme-on-secondary:var(\n --lime-on-secondary-color,\n rgb(var(--contrast-100))\n );--mdc-theme-text-disabled-on-background:var(\n --lime-text-disabled-on-background-color,\n rgba(var(--contrast-1700), 0.38)\n );--mdc-theme-text-primary-on-background:var(\n --lime-text-primary-on-background-color,\n rgba(var(--contrast-1700), 0.87)\n );--mdc-theme-text-secondary-on-background:var(\n --lime-text-secondary-on-background-color,\n rgba(var(--contrast-1700), 0.54)\n );--mdc-theme-error:var(\n --lime-error-background-color,\n rgb(var(--color-red-dark))\n );--lime-error-text-color:rgb(var(--color-red-darker));--mdc-theme-surface:var(\n --lime-surface-background-color,\n rgb(var(--contrast-100))\n );--mdc-theme-on-surface:var(\n --lime-on-surface-color,\n rgb(var(--contrast-1500))\n )}.mdc-touch-target-wrapper{display:inline}.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:0;opacity:var(--mdc-elevation-overlay-opacity, 0);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1);background-color:#fff;background-color:var(--mdc-elevation-overlay-color, #fff)}.mdc-button{position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:64px;border:none;outline:none;line-height:inherit;user-select:none;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:transparent}.mdc-button .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-button::-moz-focus-inner{padding:0;border:0}.mdc-button:active{outline:none}.mdc-button:hover{cursor:pointer}.mdc-button:disabled{cursor:default;pointer-events:none}.mdc-button .mdc-button__icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top}[dir=rtl] .mdc-button .mdc-button__icon,.mdc-button .mdc-button__icon[dir=rtl]{margin-left:8px;margin-right:0;}.mdc-button .mdc-button__label{position:relative}.mdc-button .mdc-button__touch{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mdc-button__label+.mdc-button__icon{margin-left:8px;margin-right:0}[dir=rtl] .mdc-button__label+.mdc-button__icon,.mdc-button__label+.mdc-button__icon[dir=rtl]{margin-left:0;margin-right:8px;}svg.mdc-button__icon{fill:currentColor}.mdc-button--touch{margin-top:6px;margin-bottom:6px}.mdc-button{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto, sans-serif;font-family:var(--mdc-typography-button-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));text-decoration:none;text-decoration:var(--mdc-typography-button-text-decoration, none)}.mdc-button{padding:0 8px 0 8px}.mdc-button--unelevated{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--unelevated.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--unelevated.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--raised{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--raised.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--raised.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--outlined{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button--outlined .mdc-button__ripple{border-style:solid;border-color:transparent}@keyframes mdc-ripple-fg-radius-in{from{animation-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transform:translate(var(--mdc-ripple-fg-translate-start, 0)) scale(1)}to{transform:translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1))}}@keyframes mdc-ripple-fg-opacity-in{from{animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@keyframes mdc-ripple-fg-opacity-out{from{animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}.mdc-button{--mdc-ripple-fg-size:0;--mdc-ripple-left:0;--mdc-ripple-top:0;--mdc-ripple-fg-scale:1;--mdc-ripple-fg-translate-end:0;--mdc-ripple-fg-translate-start:0;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);will-change:transform, opacity}.mdc-button .mdc-button__ripple::before,.mdc-button .mdc-button__ripple::after{position:absolute;border-radius:50%;opacity:0;pointer-events:none;content:""}.mdc-button .mdc-button__ripple::before{transition:opacity 15ms linear, background-color 15ms linear;z-index:1;z-index:var(--mdc-ripple-z-index, 1)}.mdc-button .mdc-button__ripple::after{z-index:0;z-index:var(--mdc-ripple-z-index, 0)}.mdc-button.mdc-ripple-upgraded .mdc-button__ripple::before{transform:scale(var(--mdc-ripple-fg-scale, 1))}.mdc-button.mdc-ripple-upgraded .mdc-button__ripple::after{top:0;left:0;transform:scale(0);transform-origin:center center}.mdc-button.mdc-ripple-upgraded--unbounded .mdc-button__ripple::after{top:var(--mdc-ripple-top, 0);left:var(--mdc-ripple-left, 0)}.mdc-button.mdc-ripple-upgraded--foreground-activation .mdc-button__ripple::after{animation:mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards}.mdc-button.mdc-ripple-upgraded--foreground-deactivation .mdc-button__ripple::after{animation:mdc-ripple-fg-opacity-out 150ms;transform:translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1))}.mdc-button .mdc-button__ripple::before,.mdc-button .mdc-button__ripple::after{top:calc(50% - 100%);left:calc(50% - 100%);width:200%;height:200%}.mdc-button.mdc-ripple-upgraded .mdc-button__ripple::after{width:var(--mdc-ripple-fg-size, 100%);height:var(--mdc-ripple-fg-size, 100%)}.mdc-button .mdc-button__ripple{position:absolute;box-sizing:content-box;width:100%;height:100%;overflow:hidden;z-index:0}.mdc-button:not(.mdc-button--outlined) .mdc-button__ripple{top:0;left:0}.mdc-button{font-family:Roboto, sans-serif;font-family:var(--mdc-text-button-label-text-font, var(--mdc-typography-button-font-family, var(--mdc-typography-font-family, Roboto, sans-serif)));font-size:0.875rem;font-size:var(--mdc-text-button-label-text-size, var(--mdc-typography-button-font-size, 0.875rem));letter-spacing:0.0892857143em;letter-spacing:var(--mdc-text-button-label-text-tracking, var(--mdc-typography-button-letter-spacing, 0.0892857143em));font-weight:500;font-weight:var(--mdc-text-button-label-text-weight, var(--mdc-typography-button-font-weight, 500));text-transform:none;text-transform:var(--mdc-text-button-label-text-transform, var(--mdc-typography-button-text-transform, none));height:36px;height:var(--mdc-text-button-container-height, 36px);border-radius:4px;border-radius:var(--mdc-text-button-container-shape, var(--mdc-shape-small, 4px))}.mdc-button:not(:disabled){color:#26a69a;color:var(--mdc-text-button-label-text-color, var(--mdc-theme-primary, #26a69a))}.mdc-button:disabled{color:rgba(0, 0, 0, 0.38);color:var(--mdc-text-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mdc-button .mdc-button__icon{font-size:1.125rem;font-size:var(--mdc-text-button-with-icon-icon-size, 1.125rem);width:1.125rem;width:var(--mdc-text-button-with-icon-icon-size, 1.125rem);height:1.125rem;height:var(--mdc-text-button-with-icon-icon-size, 1.125rem)}.mdc-button .mdc-button__ripple::before,.mdc-button .mdc-button__ripple::after{background-color:#26a69a;background-color:var(--mdc-text-button-hover-state-layer-color, var(--mdc-theme-primary, #26a69a))}.mdc-button:hover .mdc-button__ripple::before,.mdc-button.mdc-ripple-surface--hover .mdc-button__ripple::before{opacity:0.04;opacity:var(--mdc-text-button-hover-state-layer-opacity, 0.04)}.mdc-button.mdc-ripple-upgraded--background-focused .mdc-button__ripple::before,.mdc-button:not(.mdc-ripple-upgraded):focus .mdc-button__ripple::before{transition-duration:75ms;opacity:0.12;opacity:var(--mdc-text-button-focus-state-layer-opacity, 0.12)}.mdc-button:not(.mdc-ripple-upgraded) .mdc-button__ripple::after{transition:opacity 150ms linear}.mdc-button:not(.mdc-ripple-upgraded):active .mdc-button__ripple::after{transition-duration:75ms;opacity:0.12;opacity:var(--mdc-text-button-pressed-state-layer-opacity, 0.12)}.mdc-button.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-text-button-pressed-state-layer-opacity, 0.12)}.mdc-button .mdc-button__ripple{border-radius:4px;border-radius:var(--mdc-text-button-container-shape, var(--mdc-shape-small, 4px))}.mdc-button--unelevated{font-family:Roboto, sans-serif;font-family:var(--mdc-filled-button-label-text-font, var(--mdc-typography-button-font-family, var(--mdc-typography-font-family, Roboto, sans-serif)));font-size:0.875rem;font-size:var(--mdc-filled-button-label-text-size, var(--mdc-typography-button-font-size, 0.875rem));letter-spacing:0.0892857143em;letter-spacing:var(--mdc-filled-button-label-text-tracking, var(--mdc-typography-button-letter-spacing, 0.0892857143em));font-weight:500;font-weight:var(--mdc-filled-button-label-text-weight, var(--mdc-typography-button-font-weight, 500));text-transform:none;text-transform:var(--mdc-filled-button-label-text-transform, var(--mdc-typography-button-text-transform, none));height:36px;height:var(--mdc-filled-button-container-height, 36px);border-radius:4px;border-radius:var(--mdc-filled-button-container-shape, var(--mdc-shape-small, 4px))}.mdc-button--unelevated:not(:disabled){background-color:#26a69a;background-color:var(--mdc-filled-button-container-color, var(--mdc-theme-primary, #26a69a))}.mdc-button--unelevated:disabled{background-color:rgba(0, 0, 0, 0.12);background-color:var(--mdc-filled-button-disabled-container-color, rgba(0, 0, 0, 0.12))}.mdc-button--unelevated:not(:disabled){color:#fff;color:var(--mdc-filled-button-label-text-color, var(--mdc-theme-on-primary, #fff))}.mdc-button--unelevated:disabled{color:rgba(0, 0, 0, 0.38);color:var(--mdc-filled-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mdc-button--unelevated .mdc-button__icon{font-size:1.125rem;font-size:var(--mdc-filled-button-with-icon-icon-size, 1.125rem);width:1.125rem;width:var(--mdc-filled-button-with-icon-icon-size, 1.125rem);height:1.125rem;height:var(--mdc-filled-button-with-icon-icon-size, 1.125rem)}.mdc-button--unelevated .mdc-button__ripple::before,.mdc-button--unelevated .mdc-button__ripple::after{background-color:#fff;background-color:var(--mdc-filled-button-hover-state-layer-color, var(--mdc-theme-on-primary, #fff))}.mdc-button--unelevated:hover .mdc-button__ripple::before,.mdc-button--unelevated.mdc-ripple-surface--hover .mdc-button__ripple::before{opacity:0.08;opacity:var(--mdc-filled-button-hover-state-layer-opacity, 0.08)}.mdc-button--unelevated.mdc-ripple-upgraded--background-focused .mdc-button__ripple::before,.mdc-button--unelevated:not(.mdc-ripple-upgraded):focus .mdc-button__ripple::before{transition-duration:75ms;opacity:0.24;opacity:var(--mdc-filled-button-focus-state-layer-opacity, 0.24)}.mdc-button--unelevated:not(.mdc-ripple-upgraded) .mdc-button__ripple::after{transition:opacity 150ms linear}.mdc-button--unelevated:not(.mdc-ripple-upgraded):active .mdc-button__ripple::after{transition-duration:75ms;opacity:0.24;opacity:var(--mdc-filled-button-pressed-state-layer-opacity, 0.24)}.mdc-button--unelevated.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-filled-button-pressed-state-layer-opacity, 0.24)}.mdc-button--unelevated .mdc-button__ripple{border-radius:4px;border-radius:var(--mdc-filled-button-container-shape, var(--mdc-shape-small, 4px))}.mdc-button--raised{font-family:Roboto, sans-serif;font-family:var(--mdc-protected-button-label-text-font, var(--mdc-typography-button-font-family, var(--mdc-typography-font-family, Roboto, sans-serif)));font-size:0.875rem;font-size:var(--mdc-protected-button-label-text-size, var(--mdc-typography-button-font-size, 0.875rem));letter-spacing:0.0892857143em;letter-spacing:var(--mdc-protected-button-label-text-tracking, var(--mdc-typography-button-letter-spacing, 0.0892857143em));font-weight:500;font-weight:var(--mdc-protected-button-label-text-weight, var(--mdc-typography-button-font-weight, 500));text-transform:none;text-transform:var(--mdc-protected-button-label-text-transform, var(--mdc-typography-button-text-transform, none));height:36px;height:var(--mdc-protected-button-container-height, 36px);border-radius:4px;border-radius:var(--mdc-protected-button-container-shape, var(--mdc-shape-small, 4px));box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);box-shadow:var(--mdc-protected-button-container-elevation, var(--mdc-elevation-box-shadow-for-gss));--mdc-elevation-box-shadow-for-gss:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)}.mdc-button--raised:not(:disabled){background-color:#26a69a;background-color:var(--mdc-protected-button-container-color, var(--mdc-theme-primary, #26a69a))}.mdc-button--raised:disabled{background-color:rgba(0, 0, 0, 0.12);background-color:var(--mdc-protected-button-disabled-container-color, rgba(0, 0, 0, 0.12))}.mdc-button--raised:not(:disabled){color:#fff;color:var(--mdc-protected-button-label-text-color, var(--mdc-theme-on-primary, #fff))}.mdc-button--raised:disabled{color:rgba(0, 0, 0, 0.38);color:var(--mdc-protected-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mdc-button--raised .mdc-button__icon{font-size:1.125rem;font-size:var(--mdc-protected-button-with-icon-icon-size, 1.125rem);width:1.125rem;width:var(--mdc-protected-button-with-icon-icon-size, 1.125rem);height:1.125rem;height:var(--mdc-protected-button-with-icon-icon-size, 1.125rem)}.mdc-button--raised .mdc-button__ripple::before,.mdc-button--raised .mdc-button__ripple::after{background-color:#fff;background-color:var(--mdc-protected-button-hover-state-layer-color, var(--mdc-theme-on-primary, #fff))}.mdc-button--raised:hover .mdc-button__ripple::before,.mdc-button--raised.mdc-ripple-surface--hover .mdc-button__ripple::before{opacity:0.08;opacity:var(--mdc-protected-button-hover-state-layer-opacity, 0.08)}.mdc-button--raised.mdc-ripple-upgraded--background-focused .mdc-button__ripple::before,.mdc-button--raised:not(.mdc-ripple-upgraded):focus .mdc-button__ripple::before{transition-duration:75ms;opacity:0.24;opacity:var(--mdc-protected-button-focus-state-layer-opacity, 0.24)}.mdc-button--raised:not(.mdc-ripple-upgraded) .mdc-button__ripple::after{transition:opacity 150ms linear}.mdc-button--raised:not(.mdc-ripple-upgraded):active .mdc-button__ripple::after{transition-duration:75ms;opacity:0.24;opacity:var(--mdc-protected-button-pressed-state-layer-opacity, 0.24)}.mdc-button--raised.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-protected-button-pressed-state-layer-opacity, 0.24)}.mdc-button--raised .mdc-button__ripple{border-radius:4px;border-radius:var(--mdc-protected-button-container-shape, var(--mdc-shape-small, 4px))}.mdc-button--raised.mdc-ripple-upgraded--background-focused,.mdc-button--raised:not(.mdc-ripple-upgraded):focus{box-shadow:0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);box-shadow:var(--mdc-protected-button-focus-container-elevation, var(--mdc-elevation-box-shadow-for-gss));--mdc-elevation-box-shadow-for-gss:0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12)}.mdc-button--raised:hover{box-shadow:0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);box-shadow:var(--mdc-protected-button-hover-container-elevation, var(--mdc-elevation-box-shadow-for-gss));--mdc-elevation-box-shadow-for-gss:0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12)}.mdc-button--raised:not(:disabled):active{box-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);box-shadow:var(--mdc-protected-button-pressed-container-elevation, var(--mdc-elevation-box-shadow-for-gss));--mdc-elevation-box-shadow-for-gss:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12)}.mdc-button--raised:disabled{box-shadow:0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);box-shadow:var(--mdc-protected-button-disabled-container-elevation, var(--mdc-elevation-box-shadow-for-gss));--mdc-elevation-box-shadow-for-gss:0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12)}.mdc-button--outlined{font-family:Roboto, sans-serif;font-family:var(--mdc-outlined-button-label-text-font, var(--mdc-typography-button-font-family, var(--mdc-typography-font-family, Roboto, sans-serif)));font-size:0.875rem;font-size:var(--mdc-outlined-button-label-text-size, var(--mdc-typography-button-font-size, 0.875rem));letter-spacing:0.0892857143em;letter-spacing:var(--mdc-outlined-button-label-text-tracking, var(--mdc-typography-button-letter-spacing, 0.0892857143em));font-weight:500;font-weight:var(--mdc-outlined-button-label-text-weight, var(--mdc-typography-button-font-weight, 500));text-transform:none;text-transform:var(--mdc-outlined-button-label-text-transform, var(--mdc-typography-button-text-transform, none));height:36px;height:var(--mdc-outlined-button-container-height, 36px);border-radius:4px;border-radius:var(--mdc-outlined-button-container-shape, var(--mdc-shape-small, 4px));padding:0 15px 0 15px;border-width:1px;border-width:var(--mdc-outlined-button-outline-width, 1px)}.mdc-button--outlined:not(:disabled){color:#26a69a;color:var(--mdc-outlined-button-label-text-color, var(--mdc-theme-primary, #26a69a))}.mdc-button--outlined:disabled{color:rgba(0, 0, 0, 0.38);color:var(--mdc-outlined-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mdc-button--outlined .mdc-button__icon{font-size:1.125rem;font-size:var(--mdc-outlined-button-with-icon-icon-size, 1.125rem);width:1.125rem;width:var(--mdc-outlined-button-with-icon-icon-size, 1.125rem);height:1.125rem;height:var(--mdc-outlined-button-with-icon-icon-size, 1.125rem)}.mdc-button--outlined .mdc-button__ripple::before,.mdc-button--outlined .mdc-button__ripple::after{background-color:#26a69a;background-color:var(--mdc-outlined-button-hover-state-layer-color, var(--mdc-theme-primary, #26a69a))}.mdc-button--outlined:hover .mdc-button__ripple::before,.mdc-button--outlined.mdc-ripple-surface--hover .mdc-button__ripple::before{opacity:0.04;opacity:var(--mdc-outlined-button-hover-state-layer-opacity, 0.04)}.mdc-button--outlined.mdc-ripple-upgraded--background-focused .mdc-button__ripple::before,.mdc-button--outlined:not(.mdc-ripple-upgraded):focus .mdc-button__ripple::before{transition-duration:75ms;opacity:0.12;opacity:var(--mdc-outlined-button-focus-state-layer-opacity, 0.12)}.mdc-button--outlined:not(.mdc-ripple-upgraded) .mdc-button__ripple::after{transition:opacity 150ms linear}.mdc-button--outlined:not(.mdc-ripple-upgraded):active .mdc-button__ripple::after{transition-duration:75ms;opacity:0.12;opacity:var(--mdc-outlined-button-pressed-state-layer-opacity, 0.12)}.mdc-button--outlined.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-outlined-button-pressed-state-layer-opacity, 0.12)}.mdc-button--outlined .mdc-button__ripple{border-radius:4px;border-radius:var(--mdc-outlined-button-container-shape, var(--mdc-shape-small, 4px))}.mdc-button--outlined:not(:disabled){border-color:rgba(0, 0, 0, 0.12);border-color:var(--mdc-outlined-button-outline-color, rgba(0, 0, 0, 0.12))}.mdc-button--outlined:disabled{border-color:rgba(0, 0, 0, 0.12);border-color:var(--mdc-outlined-button-disabled-outline-color, rgba(0, 0, 0, 0.12))}.mdc-button--outlined.mdc-button--icon-trailing{padding:0 11px 0 15px}.mdc-button--outlined.mdc-button--icon-leading{padding:0 15px 0 11px}.mdc-button--outlined .mdc-button__ripple{top:calc(-1 * 1px);top:calc(-1 * var(--mdc-outlined-button-outline-width, 1px));left:calc(-1 * 1px);left:calc(-1 * var(--mdc-outlined-button-outline-width, 1px));border-width:1px;border-width:var(--mdc-outlined-button-outline-width, 1px)}.mdc-button--outlined .mdc-button__touch{left:calc(-1 * 1px);left:calc(-1 * var(--mdc-outlined-button-outline-width, 1px));width:calc(100% + 2 * 1px);width:calc(100% + 2 * var(--mdc-outlined-button-outline-width, 1px))}.mdc-button--raised .mdc-button__icon,.mdc-button--unelevated .mdc-button__icon,.mdc-button--outlined .mdc-button__icon{margin-left:-4px;margin-right:8px}[dir=rtl] .mdc-button--raised .mdc-button__icon,[dir=rtl] .mdc-button--unelevated .mdc-button__icon,[dir=rtl] .mdc-button--outlined .mdc-button__icon,.mdc-button--raised .mdc-button__icon[dir=rtl],.mdc-button--unelevated .mdc-button__icon[dir=rtl],.mdc-button--outlined .mdc-button__icon[dir=rtl]{margin-left:8px;margin-right:-4px;}.mdc-button--raised .mdc-button__label+.mdc-button__icon,.mdc-button--unelevated .mdc-button__label+.mdc-button__icon,.mdc-button--outlined .mdc-button__label+.mdc-button__icon{margin-left:8px;margin-right:-4px}[dir=rtl] .mdc-button--raised .mdc-button__label+.mdc-button__icon,[dir=rtl] .mdc-button--unelevated .mdc-button__label+.mdc-button__icon,[dir=rtl] .mdc-button--outlined .mdc-button__label+.mdc-button__icon,.mdc-button--raised .mdc-button__label+.mdc-button__icon[dir=rtl],.mdc-button--unelevated .mdc-button__label+.mdc-button__icon[dir=rtl],.mdc-button--outlined .mdc-button__label+.mdc-button__icon[dir=rtl]{margin-left:-4px;margin-right:8px;}:host{display:inline-block}:host([hidden]){display:none}:host([disabled]){pointer-events:none}button.mdc-button{min-width:2.25rem;padding-top:0;padding-right:var(--button-padding-right, 0.75rem);padding-bottom:0;padding-left:var(--button-padding-left, 0.75rem);height:100%;min-height:2.25rem;width:100%}button.mdc-button:not(:disabled){transition:color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease, transform 0.1s ease-out;cursor:pointer;color:var(--mdc-theme-on-surface);background-color:var(--lime-elevated-surface-background-color);box-shadow:var(--button-shadow-normal)}button.mdc-button:not(:disabled):focus{outline:none}button.mdc-button:not(:disabled):focus-visible{outline:none;box-shadow:var(--shadow-depth-8-focused)}button.mdc-button:not(:disabled):hover{color:var(--mdc-theme-on-surface);background-color:var(--lime-elevated-surface-background-color);box-shadow:var(--button-shadow-hovered)}button.mdc-button:not(:disabled):active{box-shadow:var(--button-shadow-pressed);transform:translate3d(0, 0.08rem, 0)}:host(limel-button[primary]) button.mdc-button:not(:disabled){color:var(--mdc-theme-on-primary, rgb(var(--color-white)));background-color:var(--mdc-theme-primary, rgb(var(--color-teal-default)))}:host(limel-button[primary]) button.mdc-button:disabled{background-color:rgba(var(--contrast-1700), 0.15)}:host(limel-button:not([primary])) button.mdc-button:not(:disabled){color:var(--mdc-theme-primary, rgb(var(--color-teal-default)))}:host(limel-button:not([primary])) button.mdc-button:disabled{color:rgba(var(--contrast-1600), 0.37);background-color:rgba(var(--contrast-1600), 0.1)}button.mdc-button:disabled.mdc-button--outlined{border-color:rgba(var(--contrast-1700), 0.2)}button.mdc-button .mdc-button__icon{flex-shrink:0;margin-left:-0.25rem}button.mdc-button .mdc-button__icon.no-label{margin-right:-0.25rem}button .label{opacity:1}button limel-spinner{opacity:0;display:none;position:absolute}button limel-icon{vertical-align:top}button svg{height:1.875rem;opacity:0;pointer-events:none;position:absolute;width:1.875rem}button svg line{stroke:rgb(var(--color-white));stroke-width:2}button limel-icon,button .label,button limel-spinner,button svg{transition:opacity 300ms ease-in-out}button.loading limel-icon,button.loading .label{opacity:0}button.loading limel-spinner{opacity:1;display:block}button.just-loaded limel-icon,button.just-loaded .label,button.just-failed limel-icon,button.just-failed .label{opacity:0}button.just-loaded svg,button.just-failed svg{opacity:1}button.just-loaded limel-spinner,button.just-failed limel-spinner{display:block;animation:fade-out-spinner 0.3s ease}button.just-failed{background-color:var(--lime-error-text-color) !important;animation:shake 0.82s cubic-bezier(0.36, 0.07, 0.19, 0.97) both}.mdc-button--outlined:not(:disabled){border-color:#26a69a;border-color:var(--mdc-theme-primary, #26a69a)}@keyframes fade-out-spinner{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1.5)}}@keyframes shake{10%,90%{transform:translate3d(-0.0625rem, 0, 0)}20%,80%{transform:translate3d(0.125rem, 0, 0)}30%,50%,70%{transform:translate3d(-0.1875rem, 0, 0)}40%,60%{transform:translate3d(0.1875rem, 0, 0)}}@keyframes reduced-presence{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(0.7)}}:host(.has-reduced-presence) button[disabled]:not(.loading):not(.just-loaded){animation:reduced-presence 0.3s ease forwards;transition:padding 0.3s ease, min-width 0.3s ease;transition-delay:0.3s;padding:0;min-width:0}:host(.has-reduced-presence) button[disabled]:not(.loading):not(.just-loaded) .label{transition:font-size 0.8s ease;transition-delay:0.3s;font-size:0;opacity:0}:host(.has-reduced-presence) button[disabled]:not(.loading):not(.just-loaded) limel-icon,:host(.has-reduced-presence) button[disabled]:not(.loading):not(.just-loaded) limel-spinner,:host(.has-reduced-presence) button[disabled]:not(.loading):not(.just-loaded) svg,:host(.has-reduced-presence) button[disabled]:not(.loading):not(.just-loaded) .mdc-button__icon{transition:all 0.3s ease;transition-delay:0.3s;opacity:0;width:0;height:0}';const c=class{constructor(t){o(this,t);this.label=undefined;this.primary=false;this.outlined=false;this.icon=undefined;this.disabled=false;this.loading=false;this.loadingFailed=false;this.justLoaded=false}componentWillLoad(){a(this.host)}disconnectedCallback(){d(this.host)}render(){return e("button",{class:{"mdc-button":true,loading:this.loading,"just-loaded":this.justLoaded&&!this.loadingFailed,"just-failed":this.justLoaded&&this.loadingFailed,"mdc-button--outlined":this.outlined},disabled:this.disabled||this.loading},this.renderIcon(),e("span",{class:"label mdc-button__label"},this.label),e("limel-spinner",{limeBranded:false}),e("svg",{viewBox:"0 0 30 30"},this.renderLoadingIcons()))}loadingWatcher(t,o){if(o&&!t){this.justLoaded=true;const t=2e3;this.justLoadedTimeout=window.setTimeout((()=>{this.justLoaded=false}),t)}else if(t){this.justLoaded=false;window.clearTimeout(this.justLoadedTimeout)}}renderLoadingIcons(){if(this.loadingFailed){return[e("line",{x1:"9",y1:"9",x2:"21",y2:"21"}),e("line",{x1:"21",y1:"9",x2:"9",y2:"21"})]}return[e("line",{x1:"8",y1:"14",x2:"15",y2:"20"}),e("line",{x1:"23",y1:"9",x2:"14",y2:"20"})]}renderIcon(){if(!this.icon){return}let t="";if(!this.label){t="no-label"}return e("i",{class:`mdc-button__icon ${t}`},e("limel-icon",{name:this.icon}))}get host(){return r(this)}static get watchers(){return{loading:["loadingWatcher"]}}};c.style=i;export{c as limel_button};
2
- //# sourceMappingURL=p-c018e82f.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["eventHandlers","WeakMap","makeEnterClickable","element","has","isActive","hasJustReleasedEnter","keydownHandler","event","key","forceUpdate","keyupHandler","clickHandler","stopImmediatePropagation","set","addEventListener","removeEnterClickable","callBacks","get","removeEventListener","delete","buttonCss","Button","componentWillLoad","this","host","disconnectedCallback","render","h","class","loading","justLoaded","loadingFailed","outlined","disabled","renderIcon","label","limeBranded","viewBox","renderLoadingIcons","loadingWatcher","newValue","oldValue","TIMEOUT","justLoadedTimeout","window","setTimeout","clearTimeout","x1","y1","x2","y2","icon","withoutLabelClass","name"],"sources":["./src/util/makeEnterClickable.ts","./src/components/button/button.scss?tag=limel-button&encapsulation=shadow","./src/components/button/button.tsx"],"sourcesContent":["import { forceUpdate } from '@stencil/core';\n\nconst eventHandlers: WeakMap<HTMLElement, CallBacks> = new WeakMap();\n\nexport function makeEnterClickable(element: HTMLElement) {\n if (eventHandlers.has(element)) {\n return;\n }\n\n let isActive = false;\n let hasJustReleasedEnter = true;\n\n const keydownHandler = (event: KeyboardEvent) => {\n if (event.key === 'Enter' && !isActive) {\n isActive = true;\n\n forceUpdate(element);\n }\n };\n\n const keyupHandler = (event: KeyboardEvent) => {\n if (event.key === 'Enter' && isActive) {\n isActive = false;\n hasJustReleasedEnter = true;\n\n forceUpdate(element);\n }\n };\n\n const clickHandler = (event: MouseEvent) => {\n if (!isActive) {\n return;\n }\n\n if (hasJustReleasedEnter) {\n hasJustReleasedEnter = false;\n\n return;\n }\n\n event.stopImmediatePropagation();\n };\n\n eventHandlers.set(element, {\n keydownHandler: keydownHandler,\n keyupHandler: keyupHandler,\n clickHandler: clickHandler,\n });\n\n element.addEventListener('keydown', keydownHandler);\n element.addEventListener('keyup', keyupHandler);\n element.addEventListener('click', clickHandler, true);\n}\n\nexport function removeEnterClickable(element: HTMLElement) {\n const callBacks: CallBacks = eventHandlers.get(element);\n\n if (!callBacks || !eventHandlers.has(element)) {\n return;\n }\n\n element.removeEventListener('keydown', callBacks.keydownHandler);\n element.removeEventListener('keyup', callBacks.keyupHandler);\n element.removeEventListener('click', callBacks.clickHandler, true);\n\n eventHandlers.delete(element);\n}\n\ninterface CallBacks {\n keydownHandler: (arg: KeyboardEvent) => void;\n keyupHandler: (arg: KeyboardEvent) => void;\n clickHandler: (arg: MouseEvent) => void;\n}\n","@use '../../style/functions';\n@use '../../style/mixins';\n\n@use '../../style/internal/lime-theme';\n\n@use '@material/button/styles';\n@use '@material/button';\n\n:host {\n display: inline-block;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n:host([disabled]) {\n pointer-events: none;\n}\n\nbutton {\n &.mdc-button {\n min-width: functions.pxToRem(36);\n padding: {\n top: 0;\n right: var(--button-padding-right, #{functions.pxToRem(12)});\n bottom: 0;\n left: var(--button-padding-left, #{functions.pxToRem(12)});\n }\n height: 100%;\n min-height: functions.pxToRem(36);\n width: 100%;\n\n &:not(:disabled) {\n @include mixins.visualize-keyboard-focus;\n @include mixins.is-elevated-clickable();\n }\n\n :host(limel-button[primary]) & {\n &:not(:disabled) {\n color: var(--mdc-theme-on-primary, rgb(var(--color-white)));\n background-color: var(\n --mdc-theme-primary,\n rgb(var(--color-teal-default))\n );\n }\n &:disabled {\n background-color: rgba(var(--contrast-1700), 0.15);\n }\n }\n\n :host(limel-button:not([primary])) & {\n &:not(:disabled) {\n color: var(--mdc-theme-primary, rgb(var(--color-teal-default)));\n }\n &:disabled {\n color: rgba(var(--contrast-1600), 0.37);\n background-color: rgba(var(--contrast-1600), 0.1);\n }\n }\n\n &:disabled {\n &.mdc-button--outlined {\n border-color: rgba(var(--contrast-1700), 0.2);\n }\n }\n\n .mdc-button__icon {\n flex-shrink: 0;\n margin-left: functions.pxToRem(-4);\n\n &.no-label {\n margin-right: functions.pxToRem(-4);\n }\n }\n }\n\n .label {\n opacity: 1;\n }\n\n limel-spinner {\n opacity: 0;\n display: none;\n position: absolute;\n }\n\n limel-icon {\n vertical-align: top;\n }\n\n svg {\n height: functions.pxToRem(30);\n opacity: 0;\n pointer-events: none;\n position: absolute;\n width: functions.pxToRem(30);\n\n line {\n stroke: rgb(var(--color-white));\n stroke-width: 2;\n }\n }\n\n limel-icon,\n .label,\n limel-spinner,\n svg {\n transition: opacity 300ms ease-in-out;\n }\n\n &.loading {\n limel-icon,\n .label {\n opacity: 0;\n }\n limel-spinner {\n opacity: 1;\n display: block;\n }\n }\n\n &.just-loaded,\n &.just-failed {\n limel-icon,\n .label {\n opacity: 0;\n }\n svg {\n opacity: 1;\n }\n limel-spinner {\n display: block;\n animation: fade-out-spinner 0.3s ease;\n }\n }\n\n &.just-failed {\n background-color: var(--lime-error-text-color) !important;\n animation: shake 0.82s cubic-bezier(0.36, 0.07, 0.19, 0.97) both;\n }\n}\n\n.mdc-button--outlined {\n @include button.outline-color(primary);\n}\n\n@keyframes fade-out-spinner {\n 0% {\n opacity: 1;\n transform: scale(1);\n }\n 100% {\n opacity: 0;\n transform: scale(1.5);\n }\n}\n\n@keyframes shake {\n 10%,\n 90% {\n transform: translate3d(#{functions.pxToRem(-1)}, 0, 0);\n }\n\n 20%,\n 80% {\n transform: translate3d(#{functions.pxToRem(2)}, 0, 0);\n }\n\n 30%,\n 50%,\n 70% {\n transform: translate3d(#{functions.pxToRem(-3)}, 0, 0);\n }\n\n 40%,\n 60% {\n transform: translate3d(#{functions.pxToRem(3)}, 0, 0);\n }\n}\n\n@import './partial-styles/_has-reduced-presence';\n","import { Component, h, Prop, State, Watch, Element } from '@stencil/core';\nimport {\n makeEnterClickable,\n removeEnterClickable,\n} from '../../util/makeEnterClickable';\n\n/**\n * @exampleComponent limel-example-button-basic\n * @exampleComponent limel-example-button-primary\n * @exampleComponent limel-example-button-outlined\n * @exampleComponent limel-example-button-disabled\n * @exampleComponent limel-example-button-icon\n * @exampleComponent limel-example-button-loading\n * @exampleComponent limel-example-button-click-success\n * @exampleComponent limel-example-button-click-fail\n * @exampleComponent limel-example-button-reduce-presence\n * @exampleComponent limel-example-button-colors\n * @exampleComponent limel-example-button-composite\n */\n@Component({\n tag: 'limel-button',\n shadow: true,\n styleUrl: 'button.scss',\n})\nexport class Button {\n /**\n * The text to show on the button.\n */\n @Prop({ reflect: true })\n public label: string;\n\n /**\n * Set to `true` to make the button primary.\n */\n @Prop({ reflect: true })\n public primary = false;\n\n /**\n * Set to `true` to make the button outlined.\n */\n @Prop({ reflect: true })\n public outlined = false;\n\n /**\n * Set icon for the button\n */\n @Prop({ reflect: true })\n public icon: string;\n\n /**\n * Set to `true` to disable the button.\n */\n @Prop({ reflect: true })\n public disabled = false;\n\n /**\n * Set to `true` to put the button in the `loading` state.\n * This also disables the button.\n */\n @Prop({ reflect: true })\n public loading = false;\n\n /**\n * Set to `true` to indicate failure instead of success when the button is\n * no longer in the `loading` state.\n */\n @Prop({ reflect: true })\n public loadingFailed = false;\n\n @State()\n private justLoaded = false;\n\n @Element()\n private host: HTMLElement;\n\n private justLoadedTimeout?: number;\n\n public componentWillLoad() {\n makeEnterClickable(this.host);\n }\n\n public disconnectedCallback() {\n removeEnterClickable(this.host);\n }\n\n public render() {\n return (\n <button\n class={{\n 'mdc-button': true,\n loading: this.loading,\n 'just-loaded': this.justLoaded && !this.loadingFailed,\n 'just-failed': this.justLoaded && this.loadingFailed,\n 'mdc-button--outlined': this.outlined,\n }}\n disabled={this.disabled || this.loading}\n >\n {this.renderIcon()}\n <span class=\"label mdc-button__label\">{this.label}</span>\n <limel-spinner limeBranded={false} />\n <svg viewBox=\"0 0 30 30\">{this.renderLoadingIcons()}</svg>\n </button>\n );\n }\n\n @Watch('loading')\n protected loadingWatcher(newValue: boolean, oldValue: boolean) {\n if (oldValue && !newValue) {\n this.justLoaded = true;\n const TIMEOUT = 2000;\n this.justLoadedTimeout = window.setTimeout(() => {\n this.justLoaded = false;\n }, TIMEOUT);\n } else if (newValue) {\n this.justLoaded = false;\n window.clearTimeout(this.justLoadedTimeout);\n }\n }\n\n private renderLoadingIcons() {\n if (this.loadingFailed) {\n return [\n <line x1=\"9\" y1=\"9\" x2=\"21\" y2=\"21\"></line>,\n <line x1=\"21\" y1=\"9\" x2=\"9\" y2=\"21\"></line>,\n ];\n }\n\n return [\n <line x1=\"8\" y1=\"14\" x2=\"15\" y2=\"20\"></line>,\n <line x1=\"23\" y1=\"9\" x2=\"14\" y2=\"20\"></line>,\n ];\n }\n\n private renderIcon(): HTMLElement {\n if (!this.icon) {\n return;\n }\n\n let withoutLabelClass = '';\n if (!this.label) {\n withoutLabelClass = 'no-label';\n }\n\n return (\n <i class={`mdc-button__icon ${withoutLabelClass}`}>\n <limel-icon name={this.icon} />\n </i>\n );\n }\n}\n"],"mappings":"yDAEA,MAAMA,EAAiD,IAAIC,Q,SAE3CC,EAAmBC,GAC/B,GAAIH,EAAcI,IAAID,GAAU,CAC5B,M,CAGJ,IAAIE,EAAW,MACf,IAAIC,EAAuB,KAE3B,MAAMC,EAAkBC,IACpB,GAAIA,EAAMC,MAAQ,UAAYJ,EAAU,CACpCA,EAAW,KAEXK,EAAYP,E,GAIpB,MAAMQ,EAAgBH,IAClB,GAAIA,EAAMC,MAAQ,SAAWJ,EAAU,CACnCA,EAAW,MACXC,EAAuB,KAEvBI,EAAYP,E,GAIpB,MAAMS,EAAgBJ,IAClB,IAAKH,EAAU,CACX,M,CAGJ,GAAIC,EAAsB,CACtBA,EAAuB,MAEvB,M,CAGJE,EAAMK,0BAA0B,EAGpCb,EAAcc,IAAIX,EAAS,CACvBI,eAAgBA,EAChBI,aAAcA,EACdC,aAAcA,IAGlBT,EAAQY,iBAAiB,UAAWR,GACpCJ,EAAQY,iBAAiB,QAASJ,GAClCR,EAAQY,iBAAiB,QAASH,EAAc,KACpD,C,SAEgBI,EAAqBb,GACjC,MAAMc,EAAuBjB,EAAckB,IAAIf,GAE/C,IAAKc,IAAcjB,EAAcI,IAAID,GAAU,CAC3C,M,CAGJA,EAAQgB,oBAAoB,UAAWF,EAAUV,gBACjDJ,EAAQgB,oBAAoB,QAASF,EAAUN,cAC/CR,EAAQgB,oBAAoB,QAASF,EAAUL,aAAc,MAE7DZ,EAAcoB,OAAOjB,EACzB,CClEA,MAAMkB,EAAY,gryB,MCwBLC,EAAM,M,2DAWE,M,cAMC,M,kCAYA,M,aAOD,M,mBAOM,M,gBAGF,K,CAOdC,oBACHrB,EAAmBsB,KAAKC,K,CAGrBC,uBACHV,EAAqBQ,KAAKC,K,CAGvBE,SACH,OACIC,EAAA,UACIC,MAAO,CACH,aAAc,KACdC,QAASN,KAAKM,QACd,cAAeN,KAAKO,aAAeP,KAAKQ,cACxC,cAAeR,KAAKO,YAAcP,KAAKQ,cACvC,uBAAwBR,KAAKS,UAEjCC,SAAUV,KAAKU,UAAYV,KAAKM,SAE/BN,KAAKW,aACNP,EAAA,QAAMC,MAAM,2BAA2BL,KAAKY,OAC5CR,EAAA,iBAAeS,YAAa,QAC5BT,EAAA,OAAKU,QAAQ,aAAad,KAAKe,sB,CAMjCC,eAAeC,EAAmBC,GACxC,GAAIA,IAAaD,EAAU,CACvBjB,KAAKO,WAAa,KAClB,MAAMY,EAAU,IAChBnB,KAAKoB,kBAAoBC,OAAOC,YAAW,KACvCtB,KAAKO,WAAa,KAAK,GACxBY,E,MACA,GAAIF,EAAU,CACjBjB,KAAKO,WAAa,MAClBc,OAAOE,aAAavB,KAAKoB,kB,EAIzBL,qBACJ,GAAIf,KAAKQ,cAAe,CACpB,MAAO,CACHJ,EAAA,QAAMoB,GAAG,IAAIC,GAAG,IAAIC,GAAG,KAAKC,GAAG,OAC/BvB,EAAA,QAAMoB,GAAG,KAAKC,GAAG,IAAIC,GAAG,IAAIC,GAAG,O,CAIvC,MAAO,CACHvB,EAAA,QAAMoB,GAAG,IAAIC,GAAG,KAAKC,GAAG,KAAKC,GAAG,OAChCvB,EAAA,QAAMoB,GAAG,KAAKC,GAAG,IAAIC,GAAG,KAAKC,GAAG,O,CAIhChB,aACJ,IAAKX,KAAK4B,KAAM,CACZ,M,CAGJ,IAAIC,EAAoB,GACxB,IAAK7B,KAAKY,MAAO,CACbiB,EAAoB,U,CAGxB,OACIzB,EAAA,KAAGC,MAAO,oBAAoBwB,KAC1BzB,EAAA,cAAY0B,KAAM9B,KAAK4B,O"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["colors","brightnesses","getColorName","color","brightness","getCssColor","colorPickerPaletteCss","Palette","this","renderSwatches","map","renderSwatch","colorName","classList","swatch","value","h","class","onClick","handleClick","tabindex","handleChange","event","stopPropagation","change","emit","detail","render","background","label","helperText","onChange","required","style"],"sources":["./src/components/color-picker/swatches.ts","./src/components/color-picker/color-picker-palette.scss?tag=limel-color-picker-palette&encapsulation=shadow","./src/components/color-picker/color-picker-palette.tsx"],"sourcesContent":["export const colors = [\n 'red',\n 'pink',\n 'magenta',\n 'purple',\n 'violet',\n 'indigo',\n 'blue',\n 'sky',\n 'cyan',\n 'teal',\n 'green',\n 'lime',\n 'grass',\n 'yellow',\n 'amber',\n 'orange',\n 'coral',\n 'brown',\n 'gray',\n 'glaucous',\n];\n\nexport const brightnesses = ['lighter', 'light', 'default', 'dark', 'darker'];\n\nexport function getColorName(color: string, brightness: string): string {\n return `--color-${color}-${brightness}`;\n}\n\nexport function getCssColor(color: string, brightness: string): string {\n return `rgb(var(${getColorName(color, brightness)}))`;\n}\n","@use '../../design-guidelines/color-system/examples/extended-color-palette';\n@import './color-picker';\n\n:host {\n border-radius: 0.75rem; // is like popover's default `--popover-border-radius`\n background-color: rgb(var(--kompendium-contrast-300));\n}\n\n.color-picker-palette {\n display: grid;\n gap: 0.25rem;\n grid-auto-flow: column;\n grid-template-columns: repeat(20, 1fr);\n grid-template-rows: repeat(4, 1fr) auto;\n margin: 1rem;\n}\n\n.chosen-color-name {\n box-sizing: border-box;\n padding: 1rem;\n display: grid;\n grid-template-columns: 1fr auto;\n gap: 0.5rem;\n}\n\n.chosen-color-preview {\n border: 1px solid rgba(var(--contrast-700), 0.65); // color is the same as\n // colors in shared_input-select-picker.scss\n border-radius: 50%;\n}\n\n.swatch:not(.hue) {\n // We could use the `@include mixins.is-flat-clickable();` mixin\n // But its `background-color` arguments would interfere with the\n // styles here. So we just copy/pasted the useful parts of the mixin here\n transition: color 0.2s ease, background-color 0.2s ease,\n box-shadow 0.2s ease, transform 0.1s ease-out;\n\n &:hover {\n box-shadow: var(--button-shadow-hovered);\n }\n\n &:active {\n box-shadow: var(--button-shadow-pressed);\n\n transform: translate3d(0, 0.08rem, 0);\n }\n cursor: pointer;\n\n &:focus-visible {\n box-shadow: var(--shadow-depth-8-focused),\n 0 0 0 0.25rem rgb(var(--contrast-100)) inset;\n }\n}\n\n.swatch--selected {\n border-radius: 50%;\n}\n","import { Component, h, Prop, Event, EventEmitter } from '@stencil/core';\nimport { FormComponent } from '../form/form.types';\nimport { brightnesses, colors, getColorName, getCssColor } from './swatches';\n\n/**\n * @private\n */\n@Component({\n tag: 'limel-color-picker-palette',\n shadow: true,\n styleUrl: 'color-picker-palette.scss',\n})\nexport class Palette implements FormComponent {\n /**\n * Color value that is manually typed by the user\n */\n @Prop({ reflect: true })\n public value: string;\n\n /**\n * Label of the input field\n */\n @Prop({ reflect: true })\n public label: string;\n\n /**\n * Helper text of the input field\n */\n @Prop({ reflect: true })\n public helperText: string;\n\n /**\n * Set to `true` if a value is required\n */\n @Prop({ reflect: true })\n public required: boolean;\n\n /**\n * Emits chosen value to the parent component\n */\n @Event()\n public change: EventEmitter<string>;\n\n public render() {\n const background = this.value ? { '--background': this.value } : {};\n\n return [\n <div class=\"color-picker-palette\">{this.renderSwatches()}</div>,\n <div class=\"chosen-color-name\">\n <limel-input-field\n label={this.label}\n helperText={this.helperText}\n value={this.value}\n onChange={this.handleChange}\n required={this.required}\n />\n <div class=\"chosen-color-preview\" style={background} />\n </div>,\n ];\n }\n\n private renderSwatches = () => {\n return colors.map((color) => {\n return brightnesses.map(this.renderSwatch(color));\n });\n };\n\n private renderSwatch = (color: string) => (brightness: string) => {\n const colorName = getColorName(color, brightness);\n const classList = {\n swatch: true,\n [colorName]: true,\n 'swatch--selected': this.value === getCssColor(color, brightness),\n };\n\n return (\n <div\n class={classList}\n onClick={this.handleClick(color, brightness)}\n tabindex=\"0\"\n ></div>\n );\n };\n\n private handleChange = (event: CustomEvent<string>) => {\n event.stopPropagation();\n this.change.emit(event.detail);\n };\n\n private handleClick =\n (color: string, brightness: string) => (event: MouseEvent) => {\n const value = getCssColor(color, brightness);\n event.stopPropagation();\n this.change.emit(value);\n };\n}\n"],"mappings":"6CAAO,MAAMA,EAAS,CAClB,MACA,OACA,UACA,SACA,SACA,SACA,OACA,MACA,OACA,OACA,QACA,OACA,QACA,SACA,QACA,SACA,QACA,QACA,OACA,YAGG,MAAMC,EAAe,CAAC,UAAW,QAAS,UAAW,OAAQ,U,SAEpDC,EAAaC,EAAeC,GACxC,MAAO,WAAWD,KAASC,GAC/B,C,SAEgBC,EAAYF,EAAeC,GACvC,MAAO,WAAWF,EAAaC,EAAOC,MAC1C,CC/BA,MAAME,EAAwB,y7b,MCYjBC,EAAO,M,wDAiDRC,KAAAC,eAAiB,IACdT,EAAOU,KAAKP,GACRF,EAAaS,IAAIF,KAAKG,aAAaR,MAI1CK,KAAAG,aAAgBR,GAAmBC,IACvC,MAAMQ,EAAYV,EAAaC,EAAOC,GACtC,MAAMS,EAAY,CACdC,OAAQ,KACRF,CAACA,GAAY,KACb,mBAAoBJ,KAAKO,QAAUV,EAAYF,EAAOC,IAG1D,OACIY,EAAA,OACIC,MAAOJ,EACPK,QAASV,KAAKW,YAAYhB,EAAOC,GACjCgB,SAAS,KACN,EAIPZ,KAAAa,aAAgBC,IACpBA,EAAMC,kBACNf,KAAKgB,OAAOC,KAAKH,EAAMI,OAAO,EAG1BlB,KAAAW,YACJ,CAAChB,EAAeC,IAAwBkB,IACpC,MAAMP,EAAQV,EAAYF,EAAOC,GACjCkB,EAAMC,kBACNf,KAAKgB,OAAOC,KAAKV,EAAM,E,4FAlDxBY,SACH,MAAMC,EAAapB,KAAKO,MAAQ,CAAE,eAAgBP,KAAKO,OAAU,GAEjE,MAAO,CACHC,EAAA,OAAKC,MAAM,wBAAwBT,KAAKC,kBACxCO,EAAA,OAAKC,MAAM,qBACPD,EAAA,qBACIa,MAAOrB,KAAKqB,MACZC,WAAYtB,KAAKsB,WACjBf,MAAOP,KAAKO,MACZgB,SAAUvB,KAAKa,aACfW,SAAUxB,KAAKwB,WAEnBhB,EAAA,OAAKC,MAAM,uBAAuBgB,MAAOL,K"}
@@ -1,2 +0,0 @@
1
- import{r as t,h as e,g as i}from"./p-3075aa67.js";import{c as r}from"./p-240fda3b.js";const s="@limetech/lime-elements/icons";class n{constructor(){this.promises={};this.cache=caches.open(s)}async get(t,e=""){const i=await this.cache;const r=this.getUrl(t,e);let s=await i.match(r);if(!s){s=await this.fetchData(r,i)}return this.getIcon(s)}async fetchData(t,e){let i=this.promises[t];if(i===undefined){i=e.add(t);this.promises[t]=i}await i;return e.match(t)}async getIcon(t){let e=await t.text();e=e.replace(/#000000/g,"currentColor");if(!this.validSvg(e)){throw new Error("Invalid SVG")}return e}validSvg(t){const e=new DOMParser;const i=e.parseFromString(t,"image/svg+xml");return i.documentElement.tagName.toLowerCase()==="svg"}getUrl(t,e){let i=e||"";if(e&&!e.endsWith("/")){i=`${e}/`}return`${i}assets/icons/${t}.svg`}}const a=new n;const o=(()=>a)();const h=":host{background-color:var(--icon-background-color, transparent);border-radius:50%;display:inline-block;line-height:0;box-sizing:border-box}:host svg{fill:currentColor;height:100%;pointer-events:none;width:100%}:host([hidden]){display:none}:host([size=x-small]){height:0.9375rem !important;width:0.9375rem !important}:host([size=small]){height:1.25rem !important;width:1.25rem !important}:host([size=medium]){height:1.5625rem !important;width:1.5625rem !important}:host([size=large]){height:1.875rem !important;width:1.875rem !important}:host([badge][size=x-small]){height:1.4375rem !important;width:1.4375rem !important}:host([badge][size=x-small])>div{margin:0.25rem}:host([badge][size=small]){height:1.875rem !important;width:1.875rem !important}:host([badge][size=small])>div{margin:0.3125rem}:host([badge][size=medium]){height:2.5rem !important;width:2.5rem !important}:host([badge][size=medium])>div{margin:0.5rem}:host([badge][size=large]){height:2.875rem !important;width:2.875rem !important}:host([badge][size=large])>div{margin:0.5rem}";const m=class{constructor(e){t(this,e);this.size=undefined;this.name=undefined;this.badge=undefined}componentDidLoad(){this.loadIcon(this.name)}render(){return e("div",{class:"container"})}async loadIcon(t){if(t===undefined||t===""){return}const e=await this.loadSvg(t);this.renderSvg(e)}loadSvg(t){return o.get(t,r.iconPath)}renderSvg(t){const e=this.host.shadowRoot.querySelector("div.container");if(e){e.innerHTML=t}}get host(){return i(this)}static get watchers(){return{name:["loadIcon"]}}};m.style=h;export{m as limel_icon};
2
- //# sourceMappingURL=p-de4cb1ac.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["CACHE_NAME","IconCache","constructor","this","promises","cache","caches","open","async","name","path","url","getUrl","response","match","fetchData","getIcon","requestPromise","undefined","add","svgData","text","replace","validSvg","Error","data","parser","DOMParser","svgDoc","parseFromString","documentElement","tagName","toLowerCase","iconPath","endsWith","iconCache","iconCache$1","iconCss","Icon","componentDidLoad","loadIcon","render","h","class","loadSvg","renderSvg","get","config","container","host","shadowRoot","querySelector","innerHTML"],"sources":["./src/global/icon-cache.ts","./src/components/icon/icon.scss?tag=limel-icon&encapsulation=shadow","./src/components/icon/icon.tsx"],"sourcesContent":["const CACHE_NAME = '@limetech/lime-elements/icons';\n\nexport class IconCache {\n /*\n * Cache of all loaded SVGs\n */\n private cache: Promise<Cache>;\n\n private promises: Record<string, Promise<void>> = {};\n\n constructor() {\n this.cache = caches.open(CACHE_NAME);\n }\n\n /**\n * Get icon data from the cache\n * @param {string} name name of the icon\n * @param {string} path path on the server where the assets are located\n * @returns {Promise<string>} svg markup\n */\n public async get(name: string, path: string = ''): Promise<string> {\n const cache = await this.cache;\n const url = this.getUrl(name, path);\n\n let response = await cache.match(url);\n if (!response) {\n response = await this.fetchData(url, cache);\n }\n\n return this.getIcon(response);\n }\n\n private async fetchData(url: string, cache: Cache): Promise<Response> {\n let requestPromise = this.promises[url];\n if (requestPromise === undefined) {\n requestPromise = cache.add(url);\n this.promises[url] = requestPromise;\n }\n\n await requestPromise;\n\n return cache.match(url);\n }\n\n /*\n * Get icon data from a response\n */\n private async getIcon(response: Response): Promise<string> {\n let svgData = await response.text();\n\n // Some of the icons in the Icons8 library have hard coded black color on some of the paths.\n // In order to apply coloring with CSS, these have to be set to 'currentColor'\n svgData = svgData.replace(/#000000/g, 'currentColor');\n\n if (!this.validSvg(svgData)) {\n throw new Error('Invalid SVG');\n }\n\n return svgData;\n }\n\n /*\n * Check if the given data is a valid SVG document\n */\n private validSvg(data) {\n const parser = new DOMParser();\n const svgDoc = parser.parseFromString(data, 'image/svg+xml');\n\n return svgDoc.documentElement.tagName.toLowerCase() === 'svg';\n }\n\n private getUrl(name: string, path: string): string {\n let iconPath = path || '';\n if (path && !path.endsWith('/')) {\n iconPath = `${path}/`;\n }\n\n return `${iconPath}assets/icons/${name}.svg`;\n }\n}\n\nconst iconCache = new IconCache();\nexport default (() => {\n return iconCache;\n})();\n","@use '../../style/functions';\n\n/**\n * @prop --icon-background-color: Background color when attribute `badge` is set to `true`. Defaults to `transparent`.\n */\n\n:host {\n background-color: var(--icon-background-color, transparent);\n border-radius: 50%;\n display: inline-block;\n line-height: 0;\n box-sizing: border-box;\n\n svg {\n fill: currentColor;\n height: 100%;\n pointer-events: none;\n width: 100%;\n }\n}\n\n:host([hidden]) {\n display: none;\n}\n\n:host([size='x-small']) {\n height: functions.pxToRem(15) !important;\n width: functions.pxToRem(15) !important;\n}\n:host([size='small']) {\n height: functions.pxToRem(20) !important;\n width: functions.pxToRem(20) !important;\n}\n:host([size='medium']) {\n height: functions.pxToRem(25) !important;\n width: functions.pxToRem(25) !important;\n}\n:host([size='large']) {\n height: functions.pxToRem(30) !important;\n width: functions.pxToRem(30) !important;\n}\n\n:host([badge][size='x-small']) {\n height: functions.pxToRem(23) !important;\n width: functions.pxToRem(23) !important;\n\n > div {\n margin: functions.pxToRem(4);\n }\n}\n:host([badge][size='small']) {\n height: functions.pxToRem(30) !important;\n width: functions.pxToRem(30) !important;\n\n > div {\n margin: functions.pxToRem(5);\n }\n}\n:host([badge][size='medium']) {\n height: functions.pxToRem(40) !important;\n width: functions.pxToRem(40) !important;\n\n > div {\n margin: functions.pxToRem(8);\n }\n}\n:host([badge][size='large']) {\n height: functions.pxToRem(46) !important;\n width: functions.pxToRem(46) !important;\n\n > div {\n margin: functions.pxToRem(8);\n }\n}\n","import { Component, Element, h, Prop, Watch } from '@stencil/core';\nimport config from '../../global/config';\nimport iconCache from '../../global/icon-cache';\nimport { IconSize } from './icon.types';\n\n/**\n * The recommended icon library for use with Lime Elements is the Windows 10 set\n * from Icons8 (https://icons8.com/icons/windows). This set is included in the\n * relevant Lime products. If you are using Lime Elements in a non-Lime product,\n * you will have to supply your own icons.\n *\n * The size and color of the icon is set in CSS, however there are a few\n * standard sizes defined that can be used with the `size` property.\n *\n * ### Setup\n * To use **@lundalogik/lime-icons8**, the `/assets` folder from\n * __@lundalogik/lime-icons8__ must be made available on the webserver.\n * To use a different icon set, the icons must be placed in a folder structure\n * that looks like this: `assets/icons/<name-of-icon>.svg`\n *\n * If `assets` is placed in the root, no other setup is needed. The icons will\n * be fetched with a relative URL from `/assets/icons/<name-of-icon>.svg`.\n *\n * If `assets` is placed in a sub-folder somewhere, the easiest way to make the\n * icons available is to use the HTML `base` element:\n *\n * ```\n * <base href=\"/my/parent/path/\">\n * ```\n *\n * If this is not enough, or if the `base` element is already in use for\n * something else, a global icon path can be configured with the `limel-config`\n * element:\n * ```\n * <limel-config config={{iconPath: '/my/parent/path/'}} />\n * ```\n *\n * ### Lime icons\n * There are icons included in the **@lundalogik/lime-icons8** package which are\n * designed by our designers at Lime.\n * The names of these icons start with `-lime-`, which makes them easy to\n * find using the Icon Finder tool below.\n * :::note\n * Some of the `-lime-` icons have multiple colors and use our own CSS variables\n * instead of HEX or RGB values to visualize their colors. Thus, you must import\n * our color palette css files into your project to render the icons properly.\n * Read more about our [Color System](#/DesignGuidelines/color-system.md/)\n * and how to do this.\n * :::\n *\n * ### Icon Finder\n *\n * Search for an icon and **click on it to copy its name to clipboard**.\n *\n * <limel-example-icon-finder />\n * @exampleComponent limel-example-icon\n * @exampleComponent limel-example-icon-background\n */\n@Component({\n tag: 'limel-icon',\n shadow: true,\n styleUrl: 'icon.scss',\n})\nexport class Icon {\n /**\n * Size of the icon\n */\n @Prop({ reflect: true })\n public size: IconSize;\n\n /**\n * Name of the icon\n */\n @Prop({ reflect: true })\n public name: string;\n\n /**\n * Set to `true` to give the icon a round background with some padding.\n * Only works when the `size` attribute is also set.\n */\n @Prop({ reflect: true })\n public badge: boolean;\n\n @Element()\n private host: HTMLLimelIconElement;\n\n public componentDidLoad() {\n this.loadIcon(this.name);\n }\n\n public render() {\n return <div class=\"container\" />;\n }\n\n @Watch('name')\n protected async loadIcon(name: string) {\n if (name === undefined || name === '') {\n return;\n }\n\n const svgData = await this.loadSvg(name);\n this.renderSvg(svgData);\n }\n\n /**\n * Load the SVG data for the icon from the icon cache\n * @param {string} name name of the icon\n * @returns {string} the icon SVG data\n */\n private loadSvg(name: string) {\n return iconCache.get(name, config.iconPath);\n }\n\n /*\n * There is no way to style external SVG files with CSS, i.e. SVGs loaded\n * with <img src=\"file.svg\" /> or <object data=\"file.svg\" type=\"image/svg+xml\" />\n * will remain the way they look in the file.\n * Therefore we inject the svg as inline markup instead.\n */\n private renderSvg(svgData: string) {\n const container = this.host.shadowRoot.querySelector('div.container');\n if (container) {\n container.innerHTML = svgData;\n }\n }\n}\n"],"mappings":"sFAAA,MAAMA,EAAa,gC,MAENC,EAQTC,cAFQC,KAAAC,SAA0C,GAG9CD,KAAKE,MAAQC,OAAOC,KAAKP,E,CAStBQ,UAAUC,EAAcC,EAAe,IAC1C,MAAML,QAAcF,KAAKE,MACzB,MAAMM,EAAMR,KAAKS,OAAOH,EAAMC,GAE9B,IAAIG,QAAiBR,EAAMS,MAAMH,GACjC,IAAKE,EAAU,CACXA,QAAiBV,KAAKY,UAAUJ,EAAKN,E,CAGzC,OAAOF,KAAKa,QAAQH,E,CAGhBL,gBAAgBG,EAAaN,GACjC,IAAIY,EAAiBd,KAAKC,SAASO,GACnC,GAAIM,IAAmBC,UAAW,CAC9BD,EAAiBZ,EAAMc,IAAIR,GAC3BR,KAAKC,SAASO,GAAOM,C,OAGnBA,EAEN,OAAOZ,EAAMS,MAAMH,E,CAMfH,cAAcK,GAClB,IAAIO,QAAgBP,EAASQ,OAI7BD,EAAUA,EAAQE,QAAQ,WAAY,gBAEtC,IAAKnB,KAAKoB,SAASH,GAAU,CACzB,MAAM,IAAII,MAAM,c,CAGpB,OAAOJ,C,CAMHG,SAASE,GACb,MAAMC,EAAS,IAAIC,UACnB,MAAMC,EAASF,EAAOG,gBAAgBJ,EAAM,iBAE5C,OAAOG,EAAOE,gBAAgBC,QAAQC,gBAAkB,K,CAGpDpB,OAAOH,EAAcC,GACzB,IAAIuB,EAAWvB,GAAQ,GACvB,GAAIA,IAASA,EAAKwB,SAAS,KAAM,CAC7BD,EAAW,GAAGvB,I,CAGlB,MAAO,GAAGuB,iBAAwBxB,O,EAI1C,MAAM0B,EAAY,IAAIlC,EACtB,MAAAmC,EAAe,KACJD,EADI,GClFf,MAAME,EAAU,whC,MC+DHC,EAAI,M,sFAuBNC,mBACHpC,KAAKqC,SAASrC,KAAKM,K,CAGhBgC,SACH,OAAOC,EAAA,OAAKC,MAAM,a,CAIZnC,eAAeC,GACrB,GAAIA,IAASS,WAAaT,IAAS,GAAI,CACnC,M,CAGJ,MAAMW,QAAgBjB,KAAKyC,QAAQnC,GACnCN,KAAK0C,UAAUzB,E,CAQXwB,QAAQnC,GACZ,OAAO0B,EAAUW,IAAIrC,EAAMsC,EAAOd,S,CAS9BY,UAAUzB,GACd,MAAM4B,EAAY7C,KAAK8C,KAAKC,WAAWC,cAAc,iBACrD,GAAIH,EAAW,CACXA,EAAUI,UAAYhC,C"}