@limetech/lime-elements 36.1.0-next.9 → 36.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 (277) hide show
  1. package/dist/cjs/{checkbox.template-b6c6562c.js → checkbox.template-ac867c17.js} +1 -1
  2. package/dist/cjs/{index-2a28697b.js → index-287e25e0.js} +424 -246
  3. package/dist/cjs/lime-elements.cjs.js +3 -3
  4. package/dist/cjs/limel-badge.cjs.entry.js +2 -1
  5. package/dist/cjs/limel-banner.cjs.entry.js +3 -1
  6. package/dist/cjs/limel-button-group.cjs.entry.js +3 -8
  7. package/dist/cjs/{limel-button.cjs.entry.js → limel-button_2.cjs.entry.js} +117 -21
  8. package/dist/cjs/limel-checkbox.cjs.entry.js +10 -26
  9. package/dist/cjs/limel-chip-set.cjs.entry.js +21 -52
  10. package/dist/cjs/{limel-linear-progress.cjs.entry.js → limel-circular-progress_2.cjs.entry.js} +34 -7
  11. package/dist/cjs/limel-code-editor.cjs.entry.js +110 -97
  12. package/dist/cjs/limel-collapsible-section.cjs.entry.js +4 -5
  13. package/dist/cjs/limel-color-picker-palette.cjs.entry.js +5 -1
  14. package/dist/cjs/limel-color-picker.cjs.entry.js +8 -2
  15. package/dist/cjs/limel-config.cjs.entry.js +2 -1
  16. package/dist/cjs/limel-date-picker.cjs.entry.js +15 -33
  17. package/dist/cjs/limel-dialog.cjs.entry.js +4 -12
  18. package/dist/cjs/limel-dock-button.cjs.entry.js +5 -15
  19. package/dist/cjs/limel-dock.cjs.entry.js +8 -40
  20. package/dist/cjs/limel-file.cjs.entry.js +10 -24
  21. package/dist/cjs/limel-flatpickr-adapter.cjs.entry.js +149 -48
  22. package/dist/cjs/limel-flex-container.cjs.entry.js +1 -13
  23. package/dist/cjs/limel-form.cjs.entry.js +327 -326
  24. package/dist/cjs/limel-grid.cjs.entry.js +1 -1
  25. package/dist/cjs/limel-header.cjs.entry.js +5 -1
  26. package/dist/cjs/limel-icon-button.cjs.entry.js +3 -8
  27. package/dist/cjs/limel-icon.cjs.entry.js +4 -1
  28. package/dist/cjs/limel-info-tile.cjs.entry.js +95 -0
  29. package/dist/cjs/limel-input-field.cjs.entry.js +27 -60
  30. package/dist/cjs/limel-list_2.cjs.entry.js +10 -21
  31. package/dist/cjs/limel-menu-list.cjs.entry.js +7 -14
  32. package/dist/cjs/limel-picker.cjs.entry.js +14 -39
  33. package/dist/cjs/limel-popover_4.cjs.entry.js +13 -12
  34. package/dist/cjs/limel-portal.cjs.entry.js +63 -73
  35. package/dist/cjs/limel-progress-flow-item.cjs.entry.js +4 -13
  36. package/dist/cjs/limel-progress-flow.cjs.entry.js +4 -20
  37. package/dist/cjs/limel-select.cjs.entry.js +19 -31
  38. package/dist/cjs/limel-shortcut.cjs.entry.js +52 -0
  39. package/dist/cjs/limel-slider.cjs.entry.js +12 -33
  40. package/dist/cjs/limel-snackbar.cjs.entry.js +7 -5
  41. package/dist/cjs/limel-spinner.cjs.entry.js +1 -7
  42. package/dist/cjs/limel-split-button.cjs.entry.js +35 -0
  43. package/dist/cjs/limel-switch.cjs.entry.js +6 -19
  44. package/dist/cjs/limel-tab-bar.cjs.entry.js +2 -5
  45. package/dist/cjs/limel-tab-panel.cjs.entry.js +2 -5
  46. package/dist/cjs/limel-table.cjs.entry.js +16 -28
  47. package/dist/cjs/loader.cjs.js +3 -3
  48. package/dist/cjs/{translations-5a8d7f6c.js → translations-ca7279bc.js} +6 -0
  49. package/dist/collection/collection-manifest.json +5 -2
  50. package/dist/collection/components/badge/badge.js +35 -26
  51. package/dist/collection/components/banner/banner.js +88 -83
  52. package/dist/collection/components/button/button.css +4 -1
  53. package/dist/collection/components/button/button.js +148 -160
  54. package/dist/collection/components/button-group/button-group.js +81 -79
  55. package/dist/collection/components/checkbox/checkbox.js +172 -176
  56. package/dist/collection/components/checkbox/checkbox.template.js +15 -23
  57. package/dist/collection/components/chip-set/chip-set.js +486 -528
  58. package/dist/collection/components/circular-progress/circular-progress.css +27 -5
  59. package/dist/collection/components/circular-progress/circular-progress.js +129 -113
  60. package/dist/collection/components/code-editor/code-editor.js +178 -182
  61. package/dist/collection/components/collapsible-section/collapsible-section.js +120 -124
  62. package/dist/collection/components/color-picker/color-picker-palette.js +102 -92
  63. package/dist/collection/components/color-picker/color-picker.js +143 -131
  64. package/dist/collection/components/config/config.js +21 -17
  65. package/dist/collection/components/date-picker/date-picker.js +254 -261
  66. package/dist/collection/components/date-picker/flatpickr-adapter/flatpickr-adapter.css +591 -166
  67. package/dist/collection/components/date-picker/flatpickr-adapter/flatpickr-adapter.js +150 -143
  68. package/dist/collection/components/date-picker/pickers/QuarterPicker.js +1 -3
  69. package/dist/collection/components/dialog/dialog.css +7 -1
  70. package/dist/collection/components/dialog/dialog.js +134 -142
  71. package/dist/collection/components/dock/dock-button/dock-button.js +138 -141
  72. package/dist/collection/components/dock/dock.js +204 -233
  73. package/dist/collection/components/file/file.js +187 -191
  74. package/dist/collection/components/flex-container/flex-container.js +96 -102
  75. package/dist/collection/components/form/form.js +158 -150
  76. package/dist/collection/components/form/widgets/code-editor.js +2 -0
  77. package/dist/collection/components/grid/grid.js +11 -7
  78. package/dist/collection/components/header/header.js +89 -87
  79. package/dist/collection/components/icon/icon.js +79 -66
  80. package/dist/collection/components/icon-button/icon-button.js +85 -85
  81. package/dist/collection/components/info-tile/info-tile.css +310 -0
  82. package/dist/collection/components/info-tile/info-tile.js +294 -0
  83. package/dist/collection/components/info-tile/info-tile.types.js +1 -0
  84. package/dist/collection/components/input-field/input-field.css +3 -0
  85. package/dist/collection/components/input-field/input-field.js +482 -523
  86. package/dist/collection/components/linear-progress/linear-progress.js +57 -61
  87. package/dist/collection/components/list/list-renderer.js +3 -12
  88. package/dist/collection/components/list/list.css +11 -116
  89. package/dist/collection/components/list/list.js +167 -166
  90. package/dist/collection/components/list/radio-button/radio-button.template.js +2 -8
  91. package/dist/collection/components/menu/menu.js +183 -195
  92. package/dist/collection/components/menu-list/menu-list-renderer.js +2 -9
  93. package/dist/collection/components/menu-list/menu-list.css +11 -116
  94. package/dist/collection/components/menu-list/menu-list.js +149 -146
  95. package/dist/collection/components/menu-surface/menu-surface.js +69 -64
  96. package/dist/collection/components/picker/picker.js +412 -427
  97. package/dist/collection/components/popover/popover.js +79 -74
  98. package/dist/collection/components/popover-surface/popover-surface.js +34 -25
  99. package/dist/collection/components/portal/portal.js +145 -158
  100. package/dist/collection/components/progress-flow/progress-flow-item/progress-flow-item.js +90 -94
  101. package/dist/collection/components/progress-flow/progress-flow.js +93 -101
  102. package/dist/collection/components/select/select.css +8 -7
  103. package/dist/collection/components/select/select.js +206 -211
  104. package/dist/collection/components/select/select.template.js +17 -26
  105. package/dist/collection/components/shortcut/shortcut.css +91 -0
  106. package/dist/collection/components/shortcut/shortcut.js +161 -0
  107. package/dist/collection/components/slider/slider.js +233 -264
  108. package/dist/collection/components/snackbar/snackbar.js +175 -169
  109. package/dist/collection/components/spinner/spinner.js +56 -85
  110. package/dist/collection/components/split-button/split-button.css +84 -0
  111. package/dist/collection/components/split-button/split-button.js +176 -0
  112. package/dist/collection/components/switch/switch.js +117 -129
  113. package/dist/collection/components/tab-bar/tab-bar.js +87 -92
  114. package/dist/collection/components/tab-panel/tab-panel.js +64 -61
  115. package/dist/collection/components/table/table.js +447 -457
  116. package/dist/collection/components/tooltip/tooltip-content.js +70 -61
  117. package/dist/collection/components/tooltip/tooltip.js +96 -91
  118. package/dist/collection/global/shared-types/link.types.js +1 -0
  119. package/dist/collection/style/internal/z-index.scss +0 -5
  120. package/dist/collection/translations/da.js +1 -0
  121. package/dist/collection/translations/en.js +1 -0
  122. package/dist/collection/translations/fi.js +1 -0
  123. package/dist/collection/translations/nl.js +1 -0
  124. package/dist/collection/translations/no.js +1 -0
  125. package/dist/collection/translations/sv.js +1 -0
  126. package/dist/esm/{checkbox.template-2f1bbc98.js → checkbox.template-fc7fcd06.js} +1 -1
  127. package/dist/esm/{index-11cd0b60.js → index-cdfd351d.js} +424 -246
  128. package/dist/esm/lime-elements.js +3 -3
  129. package/dist/esm/limel-badge.entry.js +2 -1
  130. package/dist/esm/limel-banner.entry.js +3 -1
  131. package/dist/esm/limel-button-group.entry.js +3 -8
  132. package/dist/esm/{limel-button.entry.js → limel-button_2.entry.js} +117 -22
  133. package/dist/esm/limel-checkbox.entry.js +10 -26
  134. package/dist/esm/limel-chip-set.entry.js +21 -52
  135. package/dist/esm/{limel-linear-progress.entry.js → limel-circular-progress_2.entry.js} +34 -8
  136. package/dist/esm/limel-code-editor.entry.js +110 -97
  137. package/dist/esm/limel-collapsible-section.entry.js +4 -5
  138. package/dist/esm/limel-color-picker-palette.entry.js +5 -1
  139. package/dist/esm/limel-color-picker.entry.js +8 -2
  140. package/dist/esm/limel-config.entry.js +2 -1
  141. package/dist/esm/limel-date-picker.entry.js +15 -33
  142. package/dist/esm/limel-dialog.entry.js +4 -12
  143. package/dist/esm/limel-dock-button.entry.js +5 -15
  144. package/dist/esm/limel-dock.entry.js +8 -40
  145. package/dist/esm/limel-file.entry.js +10 -24
  146. package/dist/esm/limel-flatpickr-adapter.entry.js +149 -48
  147. package/dist/esm/limel-flex-container.entry.js +1 -13
  148. package/dist/esm/limel-form.entry.js +327 -326
  149. package/dist/esm/limel-grid.entry.js +1 -1
  150. package/dist/esm/limel-header.entry.js +5 -1
  151. package/dist/esm/limel-icon-button.entry.js +3 -8
  152. package/dist/esm/limel-icon.entry.js +4 -1
  153. package/dist/esm/limel-info-tile.entry.js +91 -0
  154. package/dist/esm/limel-input-field.entry.js +27 -60
  155. package/dist/esm/limel-list_2.entry.js +10 -21
  156. package/dist/esm/limel-menu-list.entry.js +7 -14
  157. package/dist/esm/limel-picker.entry.js +14 -39
  158. package/dist/esm/limel-popover_4.entry.js +13 -12
  159. package/dist/esm/limel-portal.entry.js +63 -73
  160. package/dist/esm/limel-progress-flow-item.entry.js +4 -13
  161. package/dist/esm/limel-progress-flow.entry.js +4 -20
  162. package/dist/esm/limel-select.entry.js +19 -31
  163. package/dist/esm/limel-shortcut.entry.js +48 -0
  164. package/dist/esm/limel-slider.entry.js +12 -33
  165. package/dist/esm/limel-snackbar.entry.js +7 -5
  166. package/dist/esm/limel-spinner.entry.js +1 -7
  167. package/dist/esm/limel-split-button.entry.js +31 -0
  168. package/dist/esm/limel-switch.entry.js +6 -19
  169. package/dist/esm/limel-tab-bar.entry.js +2 -5
  170. package/dist/esm/limel-tab-panel.entry.js +2 -5
  171. package/dist/esm/limel-table.entry.js +16 -28
  172. package/dist/esm/loader.js +3 -3
  173. package/dist/esm/polyfills/css-shim.js +1 -1
  174. package/dist/esm/{translations-682e905e.js → translations-0d0ee941.js} +6 -0
  175. package/dist/lime-elements/lime-elements.esm.js +1 -1
  176. package/dist/lime-elements/p-059e0a64.entry.js +1 -0
  177. package/dist/lime-elements/{p-440454ed.entry.js → p-06f2f6b4.entry.js} +1 -1
  178. package/dist/lime-elements/p-12a7453b.entry.js +73 -0
  179. package/dist/lime-elements/p-1386d86d.entry.js +82 -0
  180. package/dist/lime-elements/p-15c2eb16.entry.js +1 -0
  181. package/dist/lime-elements/{p-c80acfb2.entry.js → p-15ca0d70.entry.js} +4 -4
  182. package/dist/lime-elements/{p-ed65468d.entry.js → p-16eb9071.entry.js} +1 -1
  183. package/dist/lime-elements/{p-1ede893b.js → p-1af8258b.js} +1 -1
  184. package/dist/lime-elements/{p-71efe2ca.entry.js → p-21058db5.entry.js} +4 -3
  185. package/dist/lime-elements/p-246862ec.js +1 -0
  186. package/dist/lime-elements/p-36a3b897.entry.js +1 -0
  187. package/dist/lime-elements/p-4eda8b67.entry.js +82 -0
  188. package/dist/lime-elements/{p-9af0704c.entry.js → p-4fb4e89b.entry.js} +1 -1
  189. package/dist/lime-elements/p-4fc38050.entry.js +1 -0
  190. package/dist/lime-elements/{p-a5af84a7.entry.js → p-5338663b.entry.js} +1 -1
  191. package/dist/lime-elements/p-5ce60a32.entry.js +126 -0
  192. package/dist/lime-elements/p-5f13035a.entry.js +1 -0
  193. package/dist/lime-elements/p-5f29f099.entry.js +16 -0
  194. package/dist/lime-elements/p-600464a9.entry.js +1 -0
  195. package/dist/lime-elements/p-6534e16a.entry.js +1 -0
  196. package/dist/lime-elements/p-6a4a5ddd.entry.js +1 -0
  197. package/dist/lime-elements/p-6c38b505.entry.js +1 -0
  198. package/dist/lime-elements/p-75d01713.entry.js +1 -0
  199. package/dist/lime-elements/p-768b7cbb.entry.js +1 -0
  200. package/dist/lime-elements/{p-6e7809a6.entry.js → p-82cd7bb6.entry.js} +1 -1
  201. package/dist/lime-elements/p-84a137a7.entry.js +1 -0
  202. package/dist/lime-elements/{p-aa66620a.entry.js → p-8ab597a8.entry.js} +2 -2
  203. package/dist/lime-elements/{p-8827628d.entry.js → p-8fb83e83.entry.js} +2 -2
  204. package/dist/lime-elements/p-90961075.entry.js +1 -0
  205. package/dist/lime-elements/p-9984b31c.entry.js +1 -0
  206. package/dist/lime-elements/p-9bd76629.entry.js +59 -0
  207. package/dist/lime-elements/p-9ea8dd5c.entry.js +1 -0
  208. package/dist/lime-elements/p-cad7cda1.entry.js +16 -0
  209. package/dist/lime-elements/{p-104c89e8.entry.js → p-cfaa685f.entry.js} +1 -1
  210. package/dist/lime-elements/{p-94899019.entry.js → p-d1187867.entry.js} +1 -1
  211. package/dist/lime-elements/p-d4e788e1.js +2 -0
  212. package/dist/lime-elements/p-d512656b.entry.js +1 -0
  213. package/dist/lime-elements/p-d8e5a9ee.entry.js +1 -0
  214. package/dist/lime-elements/p-de161bb5.entry.js +1 -0
  215. package/dist/lime-elements/p-e4bca82b.entry.js +1 -0
  216. package/dist/lime-elements/p-e6f84d68.entry.js +1 -0
  217. package/dist/lime-elements/{p-c15da26d.entry.js → p-e7bb664f.entry.js} +1 -1
  218. package/dist/lime-elements/p-e88f7922.entry.js +1 -0
  219. package/dist/lime-elements/p-ec4c075d.entry.js +1 -0
  220. package/dist/lime-elements/p-f1ed857b.entry.js +37 -0
  221. package/dist/lime-elements/p-f33cfcb8.entry.js +11 -0
  222. package/dist/lime-elements/style/internal/z-index.scss +0 -5
  223. package/dist/loader/package.json +1 -0
  224. package/dist/types/components/circular-progress/circular-progress.d.ts +5 -0
  225. package/dist/types/components/dock/dock.d.ts +0 -1
  226. package/dist/types/components/info-tile/info-tile.d.ts +87 -0
  227. package/dist/types/components/info-tile/info-tile.types.d.ts +23 -0
  228. package/dist/types/components/picker/picker.d.ts +2 -2
  229. package/dist/types/components/shortcut/shortcut.d.ts +42 -0
  230. package/dist/types/components/split-button/split-button.d.ts +46 -0
  231. package/dist/types/components.d.ts +403 -67
  232. package/dist/types/global/shared-types/link.types.d.ts +25 -0
  233. package/dist/types/interface.d.ts +2 -0
  234. package/dist/types/stencil-public-runtime.d.ts +20 -4
  235. package/dist/types/translations/da.d.ts +1 -0
  236. package/dist/types/translations/en.d.ts +1 -0
  237. package/dist/types/translations/fi.d.ts +1 -0
  238. package/dist/types/translations/nl.d.ts +1 -0
  239. package/dist/types/translations/no.d.ts +1 -0
  240. package/dist/types/translations/sv.d.ts +1 -0
  241. package/package.json +21 -20
  242. package/dist/cjs/limel-circular-progress.cjs.entry.js +0 -44
  243. package/dist/cjs/limel-menu.cjs.entry.js +0 -137
  244. package/dist/esm/limel-circular-progress.entry.js +0 -40
  245. package/dist/esm/limel-menu.entry.js +0 -133
  246. package/dist/lime-elements/p-009de50e.entry.js +0 -1
  247. package/dist/lime-elements/p-19f72dab.entry.js +0 -1
  248. package/dist/lime-elements/p-2639edf9.entry.js +0 -73
  249. package/dist/lime-elements/p-2fc4f4ff.entry.js +0 -1
  250. package/dist/lime-elements/p-3b0c9885.entry.js +0 -37
  251. package/dist/lime-elements/p-3bf54a4c.js +0 -1
  252. package/dist/lime-elements/p-3cf4aae0.entry.js +0 -1
  253. package/dist/lime-elements/p-3f388717.entry.js +0 -11
  254. package/dist/lime-elements/p-41e902ac.entry.js +0 -126
  255. package/dist/lime-elements/p-4dc07252.entry.js +0 -82
  256. package/dist/lime-elements/p-53e01330.entry.js +0 -1
  257. package/dist/lime-elements/p-5ef52589.entry.js +0 -1
  258. package/dist/lime-elements/p-629862f4.entry.js +0 -1
  259. package/dist/lime-elements/p-63e25a0a.entry.js +0 -1
  260. package/dist/lime-elements/p-6b1bc80f.entry.js +0 -1
  261. package/dist/lime-elements/p-93cd2268.entry.js +0 -1
  262. package/dist/lime-elements/p-95f275ab.entry.js +0 -1
  263. package/dist/lime-elements/p-9917f042.entry.js +0 -16
  264. package/dist/lime-elements/p-995bbd2a.entry.js +0 -1
  265. package/dist/lime-elements/p-a465084b.entry.js +0 -82
  266. package/dist/lime-elements/p-b0046fcd.entry.js +0 -1
  267. package/dist/lime-elements/p-b0e54dc2.entry.js +0 -1
  268. package/dist/lime-elements/p-b4de3380.entry.js +0 -1
  269. package/dist/lime-elements/p-c59cbd68.entry.js +0 -1
  270. package/dist/lime-elements/p-d74fa89e.entry.js +0 -1
  271. package/dist/lime-elements/p-e98d76e8.entry.js +0 -59
  272. package/dist/lime-elements/p-e9a95b8f.js +0 -1
  273. package/dist/lime-elements/p-eec907ac.entry.js +0 -1
  274. package/dist/lime-elements/p-f0c9dadd.entry.js +0 -1
  275. package/dist/lime-elements/p-f0e872b6.entry.js +0 -16
  276. package/dist/lime-elements/p-f41567a1.entry.js +0 -1
  277. package/dist/lime-elements/p-f5df4d4f.entry.js +0 -1
@@ -1,6 +1,6 @@
1
1
  import { MDCFloatingLabel } from '@material/floating-label';
2
2
  import { MDCSelectHelperText } from '@material/select/helper-text';
3
- import { Component, Element, Event, h, Prop, State, Watch, } from '@stencil/core';
3
+ import { h, } from '@stencil/core';
4
4
  import { isMobileDevice } from '../../util/device';
5
5
  import { ENTER, ENTER_KEY_CODE, SPACE, SPACE_KEY_CODE, } from '../../util/keycodes';
6
6
  import { isMultiple } from '../../util/multiple';
@@ -19,35 +19,18 @@ import { SelectTemplate } from './select.template';
19
19
  */
20
20
  export class Select {
21
21
  constructor() {
22
- /**
23
- * Set to `true` to make the field disabled.
24
- * and visually shows that the `select` component is editable but disabled.
25
- * This tells the users that if certain requirements are met,
26
- * the component may become interactable.
27
- */
22
+ this.hasChanged = false;
23
+ this.checkValid = false;
28
24
  this.disabled = false;
29
- /**
30
- * Set to `true` to make the field read-only.
31
- * This visualizes the component slightly differently.
32
- * But shows no visual sign indicating that the component is disabled
33
- * or can ever become interactable.
34
- */
35
25
  this.readonly = false;
36
- /**
37
- * True if the control requires a value.
38
- */
26
+ this.invalid = undefined;
39
27
  this.required = false;
40
- /**
41
- * List of options.
42
- */
28
+ this.label = undefined;
29
+ this.helperText = undefined;
30
+ this.value = undefined;
43
31
  this.options = [];
44
- /**
45
- * Set to `true` to allow multiple values to be selected.
46
- */
47
32
  this.multiple = false;
48
33
  this.menuOpen = false;
49
- this.hasChanged = false;
50
- this.checkValid = false;
51
34
  this.handleMenuChange = this.handleMenuChange.bind(this);
52
35
  this.handleNativeChange = this.handleNativeChange.bind(this);
53
36
  this.handleMenuTriggerKeyPress =
@@ -187,205 +170,217 @@ export class Select {
187
170
  }
188
171
  static get is() { return "limel-select"; }
189
172
  static get encapsulation() { return "shadow"; }
190
- static get originalStyleUrls() { return {
191
- "$": ["select.scss"]
192
- }; }
193
- static get styleUrls() { return {
194
- "$": ["select.css"]
195
- }; }
196
- static get properties() { return {
197
- "disabled": {
198
- "type": "boolean",
199
- "mutable": false,
200
- "complexType": {
201
- "original": "boolean",
202
- "resolved": "boolean",
203
- "references": {}
204
- },
205
- "required": false,
206
- "optional": false,
207
- "docs": {
208
- "tags": [],
209
- "text": "Set to `true` to make the field disabled.\nand visually shows that the `select` component is editable but disabled.\nThis tells the users that if certain requirements are met,\nthe component may become interactable."
210
- },
211
- "attribute": "disabled",
212
- "reflect": true,
213
- "defaultValue": "false"
214
- },
215
- "readonly": {
216
- "type": "boolean",
217
- "mutable": false,
218
- "complexType": {
219
- "original": "boolean",
220
- "resolved": "boolean",
221
- "references": {}
222
- },
223
- "required": false,
224
- "optional": false,
225
- "docs": {
226
- "tags": [],
227
- "text": "Set to `true` to make the field read-only.\nThis visualizes the component slightly differently.\nBut shows no visual sign indicating that the component is disabled\nor can ever become interactable."
228
- },
229
- "attribute": "readonly",
230
- "reflect": true,
231
- "defaultValue": "false"
232
- },
233
- "invalid": {
234
- "type": "boolean",
235
- "mutable": false,
236
- "complexType": {
237
- "original": "boolean",
238
- "resolved": "boolean",
239
- "references": {}
240
- },
241
- "required": false,
242
- "optional": false,
243
- "docs": {
244
- "tags": [],
245
- "text": "Set to `true` to indicate that the current value of the select is\ninvalid."
246
- },
247
- "attribute": "invalid",
248
- "reflect": true
249
- },
250
- "required": {
251
- "type": "boolean",
252
- "mutable": false,
253
- "complexType": {
254
- "original": "boolean",
255
- "resolved": "boolean",
256
- "references": {}
173
+ static get originalStyleUrls() {
174
+ return {
175
+ "$": ["select.scss"]
176
+ };
177
+ }
178
+ static get styleUrls() {
179
+ return {
180
+ "$": ["select.css"]
181
+ };
182
+ }
183
+ static get properties() {
184
+ return {
185
+ "disabled": {
186
+ "type": "boolean",
187
+ "mutable": false,
188
+ "complexType": {
189
+ "original": "boolean",
190
+ "resolved": "boolean",
191
+ "references": {}
192
+ },
193
+ "required": false,
194
+ "optional": false,
195
+ "docs": {
196
+ "tags": [],
197
+ "text": "Set to `true` to make the field disabled.\nand visually shows that the `select` component is editable but disabled.\nThis tells the users that if certain requirements are met,\nthe component may become interactable."
198
+ },
199
+ "attribute": "disabled",
200
+ "reflect": true,
201
+ "defaultValue": "false"
257
202
  },
258
- "required": false,
259
- "optional": false,
260
- "docs": {
261
- "tags": [],
262
- "text": "True if the control requires a value."
203
+ "readonly": {
204
+ "type": "boolean",
205
+ "mutable": false,
206
+ "complexType": {
207
+ "original": "boolean",
208
+ "resolved": "boolean",
209
+ "references": {}
210
+ },
211
+ "required": false,
212
+ "optional": false,
213
+ "docs": {
214
+ "tags": [],
215
+ "text": "Set to `true` to make the field read-only.\nThis visualizes the component slightly differently.\nBut shows no visual sign indicating that the component is disabled\nor can ever become interactable."
216
+ },
217
+ "attribute": "readonly",
218
+ "reflect": true,
219
+ "defaultValue": "false"
263
220
  },
264
- "attribute": "required",
265
- "reflect": true,
266
- "defaultValue": "false"
267
- },
268
- "label": {
269
- "type": "string",
270
- "mutable": false,
271
- "complexType": {
272
- "original": "string",
273
- "resolved": "string",
274
- "references": {}
221
+ "invalid": {
222
+ "type": "boolean",
223
+ "mutable": false,
224
+ "complexType": {
225
+ "original": "boolean",
226
+ "resolved": "boolean",
227
+ "references": {}
228
+ },
229
+ "required": false,
230
+ "optional": false,
231
+ "docs": {
232
+ "tags": [],
233
+ "text": "Set to `true` to indicate that the current value of the select is\ninvalid."
234
+ },
235
+ "attribute": "invalid",
236
+ "reflect": true
275
237
  },
276
- "required": false,
277
- "optional": false,
278
- "docs": {
279
- "tags": [],
280
- "text": "Text to display next to the select."
238
+ "required": {
239
+ "type": "boolean",
240
+ "mutable": false,
241
+ "complexType": {
242
+ "original": "boolean",
243
+ "resolved": "boolean",
244
+ "references": {}
245
+ },
246
+ "required": false,
247
+ "optional": false,
248
+ "docs": {
249
+ "tags": [],
250
+ "text": "True if the control requires a value."
251
+ },
252
+ "attribute": "required",
253
+ "reflect": true,
254
+ "defaultValue": "false"
281
255
  },
282
- "attribute": "label",
283
- "reflect": true
284
- },
285
- "helperText": {
286
- "type": "string",
287
- "mutable": false,
288
- "complexType": {
289
- "original": "string",
290
- "resolved": "string",
291
- "references": {}
256
+ "label": {
257
+ "type": "string",
258
+ "mutable": false,
259
+ "complexType": {
260
+ "original": "string",
261
+ "resolved": "string",
262
+ "references": {}
263
+ },
264
+ "required": false,
265
+ "optional": false,
266
+ "docs": {
267
+ "tags": [],
268
+ "text": "Text to display next to the select."
269
+ },
270
+ "attribute": "label",
271
+ "reflect": true
292
272
  },
293
- "required": false,
294
- "optional": false,
295
- "docs": {
296
- "tags": [],
297
- "text": "Optional helper text to display below the input field when it has focus."
273
+ "helperText": {
274
+ "type": "string",
275
+ "mutable": false,
276
+ "complexType": {
277
+ "original": "string",
278
+ "resolved": "string",
279
+ "references": {}
280
+ },
281
+ "required": false,
282
+ "optional": false,
283
+ "docs": {
284
+ "tags": [],
285
+ "text": "Optional helper text to display below the input field when it has focus."
286
+ },
287
+ "attribute": "helper-text",
288
+ "reflect": true
298
289
  },
299
- "attribute": "helper-text",
300
- "reflect": true
301
- },
302
- "value": {
303
- "type": "unknown",
304
- "mutable": false,
305
- "complexType": {
306
- "original": "Option | Option[]",
307
- "resolved": "Option<string> | Option<string>[]",
308
- "references": {
309
- "Option": {
310
- "location": "import",
311
- "path": "@limetech/lime-elements"
290
+ "value": {
291
+ "type": "unknown",
292
+ "mutable": false,
293
+ "complexType": {
294
+ "original": "Option | Option[]",
295
+ "resolved": "Option<string> | Option<string>[]",
296
+ "references": {
297
+ "Option": {
298
+ "location": "import",
299
+ "path": "@limetech/lime-elements"
300
+ }
312
301
  }
302
+ },
303
+ "required": false,
304
+ "optional": false,
305
+ "docs": {
306
+ "tags": [],
307
+ "text": "Currently selected value or values.\nIf `multiple` is `true`, this must be an array. Otherwise it must be a\nsingle value."
313
308
  }
314
309
  },
315
- "required": false,
316
- "optional": false,
317
- "docs": {
318
- "tags": [],
319
- "text": "Currently selected value or values.\nIf `multiple` is `true`, this must be an array. Otherwise it must be a\nsingle value."
320
- }
321
- },
322
- "options": {
323
- "type": "unknown",
324
- "mutable": false,
325
- "complexType": {
326
- "original": "Option[]",
327
- "resolved": "Option<string>[]",
328
- "references": {
329
- "Option": {
330
- "location": "import",
331
- "path": "@limetech/lime-elements"
310
+ "options": {
311
+ "type": "unknown",
312
+ "mutable": false,
313
+ "complexType": {
314
+ "original": "Option[]",
315
+ "resolved": "Option<string>[]",
316
+ "references": {
317
+ "Option": {
318
+ "location": "import",
319
+ "path": "@limetech/lime-elements"
320
+ }
332
321
  }
333
- }
334
- },
335
- "required": false,
336
- "optional": false,
337
- "docs": {
338
- "tags": [],
339
- "text": "List of options."
340
- },
341
- "defaultValue": "[]"
342
- },
343
- "multiple": {
344
- "type": "boolean",
345
- "mutable": false,
346
- "complexType": {
347
- "original": "boolean",
348
- "resolved": "boolean",
349
- "references": {}
350
- },
351
- "required": false,
352
- "optional": false,
353
- "docs": {
354
- "tags": [],
355
- "text": "Set to `true` to allow multiple values to be selected."
356
- },
357
- "attribute": "multiple",
358
- "reflect": false,
359
- "defaultValue": "false"
360
- }
361
- }; }
362
- static get states() { return {
363
- "menuOpen": {}
364
- }; }
365
- static get events() { return [{
366
- "method": "change",
367
- "name": "change",
368
- "bubbles": true,
369
- "cancelable": true,
370
- "composed": true,
371
- "docs": {
372
- "tags": [],
373
- "text": "Emitted when the value is changed."
322
+ },
323
+ "required": false,
324
+ "optional": false,
325
+ "docs": {
326
+ "tags": [],
327
+ "text": "List of options."
328
+ },
329
+ "defaultValue": "[]"
374
330
  },
375
- "complexType": {
376
- "original": "Option | Option[]",
377
- "resolved": "Option<string> | Option<string>[]",
378
- "references": {
379
- "Option": {
380
- "location": "import",
381
- "path": "@limetech/lime-elements"
331
+ "multiple": {
332
+ "type": "boolean",
333
+ "mutable": false,
334
+ "complexType": {
335
+ "original": "boolean",
336
+ "resolved": "boolean",
337
+ "references": {}
338
+ },
339
+ "required": false,
340
+ "optional": false,
341
+ "docs": {
342
+ "tags": [],
343
+ "text": "Set to `true` to allow multiple values to be selected."
344
+ },
345
+ "attribute": "multiple",
346
+ "reflect": false,
347
+ "defaultValue": "false"
348
+ }
349
+ };
350
+ }
351
+ static get states() {
352
+ return {
353
+ "menuOpen": {}
354
+ };
355
+ }
356
+ static get events() {
357
+ return [{
358
+ "method": "change",
359
+ "name": "change",
360
+ "bubbles": true,
361
+ "cancelable": true,
362
+ "composed": true,
363
+ "docs": {
364
+ "tags": [],
365
+ "text": "Emitted when the value is changed."
366
+ },
367
+ "complexType": {
368
+ "original": "Option | Option[]",
369
+ "resolved": "Option<string> | Option<string>[]",
370
+ "references": {
371
+ "Option": {
372
+ "location": "import",
373
+ "path": "@limetech/lime-elements"
374
+ }
382
375
  }
383
376
  }
384
- }
385
- }]; }
377
+ }];
378
+ }
386
379
  static get elementRef() { return "host"; }
387
- static get watchers() { return [{
388
- "propName": "menuOpen",
389
- "methodName": "watchOpen"
390
- }]; }
380
+ static get watchers() {
381
+ return [{
382
+ "propName": "menuOpen",
383
+ "methodName": "watchOpen"
384
+ }];
385
+ }
391
386
  }
@@ -1,12 +1,15 @@
1
1
  import { h } from '@stencil/core';
2
2
  import { isMultiple } from '../../util/multiple';
3
3
  export const SelectTemplate = (props) => {
4
+ const value = props.value;
4
5
  let hasValue = !!props.value;
5
- if (isMultiple(props.value)) {
6
- hasValue = props.value.length > 0;
6
+ let hasEmptyText = true;
7
+ if (isMultiple(value)) {
8
+ hasValue = value.length > 0;
7
9
  }
8
10
  else if (hasValue) {
9
- hasValue = !!props.value.value;
11
+ hasValue = !!value.value;
12
+ hasEmptyText = value.text === '';
10
13
  }
11
14
  let isValid = !props.invalid;
12
15
  if (props.checkValid && props.required && !hasValue) {
@@ -23,10 +26,7 @@ export const SelectTemplate = (props) => {
23
26
  'limel-select--empty': !hasValue,
24
27
  'limel-select--with-helper-text': typeof props.helperText === 'string',
25
28
  };
26
- return (h("div", { class: classList },
27
- h(SelectValue, Object.assign({}, props, { hasValue: hasValue, isValid: isValid })),
28
- h(HelperText, { text: props.helperText }),
29
- h(SelectDropdown, Object.assign({}, props))));
29
+ return (h("div", { class: classList }, h(SelectValue, Object.assign({}, props, { hasValue: hasValue, isValid: isValid, hasEmptyText: hasEmptyText })), h(HelperText, { text: props.helperText }), h(SelectDropdown, Object.assign({}, props))));
30
30
  };
31
31
  const SelectValue = (props) => {
32
32
  const anchorClassList = {
@@ -36,18 +36,12 @@ const SelectValue = (props) => {
36
36
  };
37
37
  const labelClassList = {
38
38
  'mdc-floating-label': true,
39
- 'mdc-floating-label--float-above': props.hasValue || props.isOpen || props.readonly,
39
+ 'mdc-floating-label--float-above': (!props.hasEmptyText && props.hasValue) ||
40
+ props.isOpen ||
41
+ props.readonly,
40
42
  'mdc-floating-label--active': props.isOpen,
41
43
  };
42
- return (h("div", { class: anchorClassList, tabindex: "0", onClick: props.open, onKeyPress: props.onTriggerPress, role: "button", "aria-haspopup": "listbox", "aria-expanded": "false", "aria-labelledby": "s-label s-selected-text", "aria-required": props.required, "aria-disabled": props.disabled },
43
- h("span", { id: "s-label", class: labelClassList }, props.label),
44
- h("span", { class: "mdc-select__selected-text-container limel-select__selected-option" },
45
- getSelectedIcon(props.value),
46
- h("span", { id: "s-selected-text", class: "mdc-select__selected-text limel-select__selected-option__text" }, getSelectedText(props.value, props.readonly))),
47
- h(ShowIcon, Object.assign({}, props, { isValid: props.isValid })),
48
- h("span", { class: "mdc-select__dropdown-icon" },
49
- h("svg", { class: "mdc-select__dropdown-icon-graphic", viewBox: "7 10 10 5", focusable: "false" },
50
- h("polygon", { stroke: "none", "fill-rule": "evenodd", points: "7 10 12 15 17 10" })))));
44
+ return (h("button", { class: anchorClassList, onClick: props.open, onKeyPress: props.onTriggerPress, "aria-haspopup": "listbox", "aria-expanded": props.isOpen, "aria-controls": props.id, "aria-labelledby": "s-label s-selected-text", "aria-required": props.required, disabled: props.disabled || props.readonly }, h("span", { id: "s-label", class: labelClassList }, props.label), h("span", { class: "mdc-select__selected-text-container limel-select__selected-option" }, getSelectedIcon(props.value), h("span", { id: "s-selected-text", class: "mdc-select__selected-text limel-select__selected-option__text" }, getSelectedText(props.value, props.readonly))), h(ShowIcon, Object.assign({}, props, { isValid: props.isValid })), h("span", { class: "mdc-select__dropdown-icon" }, h("svg", { class: "mdc-select__dropdown-icon-graphic", viewBox: "7 10 10 5", focusable: "false" }, h("polygon", { stroke: "none", "fill-rule": "evenodd", points: "7 10 12 15 17 10" })))));
51
45
  };
52
46
  const ShowIcon = (props) => {
53
47
  if (props.isValid) {
@@ -59,8 +53,7 @@ const HelperText = (props) => {
59
53
  if (typeof props.text !== 'string') {
60
54
  return;
61
55
  }
62
- return (h("div", { class: "mdc-select-helper-line" },
63
- h("p", { class: "mdc-select-helper-text mdc-select-helper-text--persistent", "aria-hidden": "true" }, props.text.trim())));
56
+ return (h("div", { class: "mdc-select-helper-line" }, h("p", { class: "mdc-select-helper-text mdc-select-helper-text--persistent", "aria-hidden": "true" }, props.text.trim())));
64
57
  };
65
58
  const SelectDropdown = (props) => {
66
59
  if (props.native) {
@@ -70,13 +63,11 @@ const SelectDropdown = (props) => {
70
63
  };
71
64
  const MenuDropdown = (props) => {
72
65
  const items = createMenuItems(props.options, props.value);
73
- return (h("limel-portal", { containerId: props.id, visible: props.isOpen, inheritParentWidth: true, containerStyle: { 'z-index': props.dropdownZIndex } },
74
- h("limel-menu-surface", { open: props.isOpen, onDismiss: props.close, style: {
75
- '--mdc-menu-min-width': '100%',
76
- 'max-height': 'inherit',
77
- display: 'flex',
78
- } },
79
- h("limel-list", { items: items, type: props.multiple ? 'checkbox' : 'selectable', onChange: props.onMenuChange }))));
66
+ return (h("limel-portal", { containerId: props.id, visible: props.isOpen, inheritParentWidth: true, containerStyle: { 'z-index': props.dropdownZIndex } }, h("limel-menu-surface", { open: props.isOpen, onDismiss: props.close, style: {
67
+ '--mdc-menu-min-width': '100%',
68
+ 'max-height': 'inherit',
69
+ display: 'flex',
70
+ } }, h("limel-list", { items: items, type: props.multiple ? 'checkbox' : 'selectable', onChange: props.onMenuChange }))));
80
71
  };
81
72
  const NativeDropdown = (props) => {
82
73
  return (h("select", { required: props.required, "aria-disabled": props.disabled, "aria-required": props.required, onChange: props.onNativeChange, onFocus: props.open, onBlur: props.close, class: "limel-select__native-control", disabled: props.disabled, multiple: props.multiple }, props.options.map((option) => {
@@ -0,0 +1,91 @@
1
+ /*
2
+ * This file is imported into every component!
3
+ *
4
+ * Nothing in this file may output any CSS
5
+ * without being explicitly called by outside code.
6
+ */
7
+ /**
8
+ * @prop --shortcut-border-radius: defines the radius of corners of the shortcut. Defaults to `1rem`
9
+ * @prop --shortcut-icon-color: defines the fill color of the shortcut icon. Defaults to `--contrast-1000`
10
+ * @prop --shortcut-label-color: defines the color of the shortcut label. Defaults to `--contrast-1100`
11
+ * @prop --shortcut-background-color: defines the backgrounds color of the shortcut icon. Defaults to `--contrast-100`
12
+ * @prop --shortcut-badge-text-color: Text color of the notification badge. Defaults to `--color-white`
13
+ * @prop --shortcut-badge-background-color: Background color of the notification badge. Defaults to `--color-red-default`
14
+ */
15
+ :host(limel-shortcut) {
16
+ --badge-text-color: var(
17
+ --shortcut-badge-text-color,
18
+ rgb(var(--color-white))
19
+ );
20
+ --badge-background-color: var(
21
+ --shortcut-badge-background-color,
22
+ rgb(var(--color-red-default))
23
+ );
24
+ position: relative;
25
+ display: flex;
26
+ flex-direction: column;
27
+ align-items: center;
28
+ justify-content: center;
29
+ row-gap: 0.0625rem;
30
+ }
31
+ :host(limel-shortcut) * {
32
+ box-sizing: border-box;
33
+ }
34
+
35
+ :host(limel-shortcut[disabled]) a {
36
+ opacity: 0.5;
37
+ box-shadow: unset;
38
+ cursor: not-allowed;
39
+ }
40
+
41
+ a {
42
+ all: unset;
43
+ transition: background-color 0.2s ease, box-shadow 0.2s ease, transform 0.1s ease-out;
44
+ box-shadow: var(--button-shadow-normal);
45
+ cursor: pointer;
46
+ text-align: center;
47
+ height: calc(100% - 1rem);
48
+ width: calc(100% - 1rem);
49
+ padding: 0.5rem;
50
+ border-radius: var(--shortcut-border-radius, 1rem);
51
+ background-color: var(--shortcut-background-color, rgb(var(--contrast-100)));
52
+ }
53
+ a:hover {
54
+ box-shadow: var(--button-shadow-hovered);
55
+ }
56
+ a:active {
57
+ box-shadow: var(--button-shadow-pressed);
58
+ transform: translate3d(0, 0.08rem, 0);
59
+ }
60
+ a:focus {
61
+ outline: none;
62
+ }
63
+ a:focus-visible {
64
+ outline: none;
65
+ box-shadow: var(--shadow-depth-8-focused);
66
+ }
67
+
68
+ limel-icon {
69
+ display: flex;
70
+ height: 100%;
71
+ width: 100%;
72
+ justify-content: center;
73
+ color: var(--shortcut-icon-color, rgb(var(--contrast-1000)));
74
+ border-radius: var(--shortcut-border-radius, 1rem);
75
+ }
76
+
77
+ span {
78
+ overflow: hidden;
79
+ white-space: nowrap;
80
+ text-overflow: ellipsis;
81
+ width: 100%;
82
+ color: var(--shortcut-label-color, rgb(var(--contrast-1100)));
83
+ font-size: 0.75rem;
84
+ text-align: center;
85
+ }
86
+
87
+ limel-badge {
88
+ position: absolute;
89
+ top: -0.5rem;
90
+ right: 0;
91
+ }