@limetech/lime-elements 36.0.0 → 36.1.0-dev.2

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 (270) 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 +24 -3
  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 +22 -53
  10. package/dist/cjs/limel-circular-progress.cjs.entry.js +10 -15
  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 +3 -11
  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 +326 -327
  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-input-field.cjs.entry.js +28 -61
  29. package/dist/cjs/limel-linear-progress.cjs.entry.js +1 -7
  30. package/dist/cjs/limel-list_2.cjs.entry.js +9 -18
  31. package/dist/cjs/limel-menu-list.cjs.entry.js +6 -13
  32. package/dist/cjs/limel-picker.cjs.entry.js +14 -39
  33. package/dist/cjs/limel-popover_4.cjs.entry.js +14 -13
  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 +8 -25
  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 +27 -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 +4 -2
  50. package/dist/collection/components/badge/badge.css +13 -0
  51. package/dist/collection/components/badge/badge.js +60 -28
  52. package/dist/collection/components/banner/banner.js +88 -83
  53. package/dist/collection/components/button/button.css +4 -1
  54. package/dist/collection/components/button/button.js +148 -160
  55. package/dist/collection/components/button-group/button-group.js +81 -79
  56. package/dist/collection/components/checkbox/checkbox.js +172 -176
  57. package/dist/collection/components/checkbox/checkbox.template.js +15 -23
  58. package/dist/collection/components/chip-set/chip-set.css +4 -0
  59. package/dist/collection/components/chip-set/chip-set.js +486 -528
  60. package/dist/collection/components/circular-progress/circular-progress.css +27 -5
  61. package/dist/collection/components/circular-progress/circular-progress.js +129 -113
  62. package/dist/collection/components/code-editor/code-editor.js +178 -182
  63. package/dist/collection/components/collapsible-section/collapsible-section.js +120 -124
  64. package/dist/collection/components/color-picker/color-picker-palette.js +102 -92
  65. package/dist/collection/components/color-picker/color-picker.js +143 -131
  66. package/dist/collection/components/config/config.js +21 -17
  67. package/dist/collection/components/date-picker/date-picker.js +254 -261
  68. package/dist/collection/components/date-picker/flatpickr-adapter/flatpickr-adapter.css +595 -166
  69. package/dist/collection/components/date-picker/flatpickr-adapter/flatpickr-adapter.js +150 -143
  70. package/dist/collection/components/date-picker/pickers/QuarterPicker.js +1 -3
  71. package/dist/collection/components/dialog/dialog.js +134 -142
  72. package/dist/collection/components/dock/dock-button/dock-button.js +138 -141
  73. package/dist/collection/components/dock/dock.js +204 -232
  74. package/dist/collection/components/file/file.js +187 -191
  75. package/dist/collection/components/flex-container/flex-container.js +96 -102
  76. package/dist/collection/components/form/form.js +158 -150
  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/input-field/input-field.css +9 -8
  82. package/dist/collection/components/input-field/input-field.js +482 -523
  83. package/dist/collection/components/linear-progress/linear-progress.js +57 -61
  84. package/dist/collection/components/list/list-renderer.js +3 -12
  85. package/dist/collection/components/list/list.js +167 -164
  86. package/dist/collection/components/list/radio-button/radio-button.template.js +2 -8
  87. package/dist/collection/components/menu/menu.js +183 -195
  88. package/dist/collection/components/menu-list/menu-list-renderer.js +2 -9
  89. package/dist/collection/components/menu-list/menu-list.js +149 -146
  90. package/dist/collection/components/menu-surface/menu-surface.js +69 -64
  91. package/dist/collection/components/picker/picker.js +412 -427
  92. package/dist/collection/components/popover/popover.js +79 -74
  93. package/dist/collection/components/popover-surface/popover-surface.css +4 -0
  94. package/dist/collection/components/popover-surface/popover-surface.js +34 -25
  95. package/dist/collection/components/portal/portal.js +145 -158
  96. package/dist/collection/components/progress-flow/progress-flow-item/progress-flow-item.js +90 -94
  97. package/dist/collection/components/progress-flow/progress-flow.js +93 -101
  98. package/dist/collection/components/select/select.js +206 -211
  99. package/dist/collection/components/select/select.template.js +9 -23
  100. package/dist/collection/components/shortcut/shortcut.css +91 -0
  101. package/dist/collection/components/shortcut/shortcut.js +194 -0
  102. package/dist/collection/components/slider/slider.js +233 -264
  103. package/dist/collection/components/snackbar/snackbar.js +175 -169
  104. package/dist/collection/components/spinner/spinner.js +56 -85
  105. package/dist/collection/components/split-button/split-button.css +75 -0
  106. package/dist/collection/components/split-button/split-button.js +168 -0
  107. package/dist/collection/components/switch/switch.js +117 -129
  108. package/dist/collection/components/tab-bar/tab-bar.js +87 -92
  109. package/dist/collection/components/tab-panel/tab-panel.js +64 -61
  110. package/dist/collection/components/table/table.js +447 -457
  111. package/dist/collection/components/tooltip/tooltip-content.js +70 -61
  112. package/dist/collection/components/tooltip/tooltip.js +96 -91
  113. package/dist/collection/icons/angle_left.svg +593 -0
  114. package/dist/collection/icons/angle_right.svg +593 -0
  115. package/dist/collection/icons/external_link.svg +593 -0
  116. package/dist/collection/icons/high_importance.svg +593 -0
  117. package/dist/collection/icons/unit-test.svg +593 -0
  118. package/dist/collection/style/internal/z-index.scss +0 -7
  119. package/dist/collection/translations/da.js +1 -0
  120. package/dist/collection/translations/en.js +1 -0
  121. package/dist/collection/translations/fi.js +1 -0
  122. package/dist/collection/translations/nl.js +1 -0
  123. package/dist/collection/translations/no.js +1 -0
  124. package/dist/collection/translations/sv.js +1 -0
  125. package/dist/esm/{checkbox.template-2f1bbc98.js → checkbox.template-fc7fcd06.js} +1 -1
  126. package/dist/esm/{index-11cd0b60.js → index-cdfd351d.js} +424 -246
  127. package/dist/esm/lime-elements.js +3 -3
  128. package/dist/esm/limel-badge.entry.js +24 -3
  129. package/dist/esm/limel-banner.entry.js +3 -1
  130. package/dist/esm/limel-button-group.entry.js +3 -8
  131. package/dist/esm/{limel-button.entry.js → limel-button_2.entry.js} +117 -22
  132. package/dist/esm/limel-checkbox.entry.js +10 -26
  133. package/dist/esm/limel-chip-set.entry.js +22 -53
  134. package/dist/esm/limel-circular-progress.entry.js +10 -15
  135. package/dist/esm/limel-code-editor.entry.js +110 -97
  136. package/dist/esm/limel-collapsible-section.entry.js +4 -5
  137. package/dist/esm/limel-color-picker-palette.entry.js +5 -1
  138. package/dist/esm/limel-color-picker.entry.js +8 -2
  139. package/dist/esm/limel-config.entry.js +2 -1
  140. package/dist/esm/limel-date-picker.entry.js +15 -33
  141. package/dist/esm/limel-dialog.entry.js +3 -11
  142. package/dist/esm/limel-dock-button.entry.js +5 -15
  143. package/dist/esm/limel-dock.entry.js +8 -40
  144. package/dist/esm/limel-file.entry.js +10 -24
  145. package/dist/esm/limel-flatpickr-adapter.entry.js +149 -48
  146. package/dist/esm/limel-flex-container.entry.js +1 -13
  147. package/dist/esm/limel-form.entry.js +326 -327
  148. package/dist/esm/limel-grid.entry.js +1 -1
  149. package/dist/esm/limel-header.entry.js +5 -1
  150. package/dist/esm/limel-icon-button.entry.js +3 -8
  151. package/dist/esm/limel-icon.entry.js +4 -1
  152. package/dist/esm/limel-input-field.entry.js +28 -61
  153. package/dist/esm/limel-linear-progress.entry.js +1 -7
  154. package/dist/esm/limel-list_2.entry.js +9 -18
  155. package/dist/esm/limel-menu-list.entry.js +6 -13
  156. package/dist/esm/limel-picker.entry.js +14 -39
  157. package/dist/esm/limel-popover_4.entry.js +14 -13
  158. package/dist/esm/limel-portal.entry.js +63 -73
  159. package/dist/esm/limel-progress-flow-item.entry.js +4 -13
  160. package/dist/esm/limel-progress-flow.entry.js +4 -20
  161. package/dist/esm/limel-select.entry.js +8 -25
  162. package/dist/esm/limel-shortcut.entry.js +48 -0
  163. package/dist/esm/limel-slider.entry.js +12 -33
  164. package/dist/esm/limel-snackbar.entry.js +7 -5
  165. package/dist/esm/limel-spinner.entry.js +1 -7
  166. package/dist/esm/limel-split-button.entry.js +23 -0
  167. package/dist/esm/limel-switch.entry.js +6 -19
  168. package/dist/esm/limel-tab-bar.entry.js +2 -5
  169. package/dist/esm/limel-tab-panel.entry.js +2 -5
  170. package/dist/esm/limel-table.entry.js +16 -28
  171. package/dist/esm/loader.js +3 -3
  172. package/dist/esm/polyfills/css-shim.js +1 -1
  173. package/dist/esm/{translations-682e905e.js → translations-0d0ee941.js} +6 -0
  174. package/dist/lime-elements/lime-elements.esm.js +1 -1
  175. package/dist/lime-elements/p-059e0a64.entry.js +1 -0
  176. package/dist/lime-elements/{p-440454ed.entry.js → p-06f2f6b4.entry.js} +1 -1
  177. package/dist/lime-elements/{p-71efe2ca.entry.js → p-0dbde06f.entry.js} +1 -1
  178. package/dist/lime-elements/p-12a7453b.entry.js +73 -0
  179. package/dist/lime-elements/p-15c2eb16.entry.js +1 -0
  180. package/dist/lime-elements/{p-c80acfb2.entry.js → p-15ca0d70.entry.js} +4 -4
  181. package/dist/lime-elements/{p-ed65468d.entry.js → p-16eb9071.entry.js} +1 -1
  182. package/dist/lime-elements/{p-1ede893b.js → p-1af8258b.js} +1 -1
  183. package/dist/lime-elements/p-246862ec.js +1 -0
  184. package/dist/lime-elements/p-28dffd9e.entry.js +1 -0
  185. package/dist/lime-elements/p-334b5f82.entry.js +37 -0
  186. package/dist/lime-elements/p-36a3b897.entry.js +1 -0
  187. package/dist/lime-elements/p-4b426b7e.entry.js +11 -0
  188. package/dist/lime-elements/p-4eda8b67.entry.js +82 -0
  189. package/dist/lime-elements/{p-9af0704c.entry.js → p-4fb4e89b.entry.js} +1 -1
  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-42b67933.entry.js → p-600464a9.entry.js} +1 -1
  194. package/dist/lime-elements/p-6534e16a.entry.js +1 -0
  195. package/dist/lime-elements/p-6a4a5ddd.entry.js +1 -0
  196. package/dist/lime-elements/p-6c38b505.entry.js +1 -0
  197. package/dist/lime-elements/p-744c21f8.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-8715eac0.entry.js +1 -0
  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-9f19e0c1.entry.js +1 -0
  208. package/dist/lime-elements/p-ace4e596.entry.js +1 -0
  209. package/dist/lime-elements/p-cad7cda1.entry.js +16 -0
  210. package/dist/lime-elements/{p-104c89e8.entry.js → p-cfaa685f.entry.js} +1 -1
  211. package/dist/lime-elements/{p-94899019.entry.js → p-d1187867.entry.js} +1 -1
  212. package/dist/lime-elements/{p-aa66620a.entry.js → p-d3ebc657.entry.js} +2 -2
  213. package/dist/lime-elements/p-d4e788e1.js +2 -0
  214. package/dist/lime-elements/p-d512656b.entry.js +1 -0
  215. package/dist/lime-elements/p-d8e5a9ee.entry.js +1 -0
  216. package/dist/lime-elements/p-dcd2a664.entry.js +16 -0
  217. package/dist/lime-elements/p-de161bb5.entry.js +1 -0
  218. package/dist/lime-elements/p-e4bca82b.entry.js +1 -0
  219. package/dist/lime-elements/{p-c15da26d.entry.js → p-e7bb664f.entry.js} +1 -1
  220. package/dist/lime-elements/p-ef04b849.entry.js +82 -0
  221. package/dist/lime-elements/style/internal/z-index.scss +0 -7
  222. package/dist/loader/package.json +1 -0
  223. package/dist/types/components/badge/badge.d.ts +12 -4
  224. package/dist/types/components/circular-progress/circular-progress.d.ts +5 -0
  225. package/dist/types/components/picker/picker.d.ts +2 -2
  226. package/dist/types/components/shortcut/shortcut.d.ts +57 -0
  227. package/dist/types/components/split-button/split-button.d.ts +45 -0
  228. package/dist/types/components/tab-bar/tab.types.d.ts +1 -1
  229. package/dist/types/components.d.ts +328 -70
  230. package/dist/types/stencil-public-runtime.d.ts +20 -4
  231. package/dist/types/translations/da.d.ts +1 -0
  232. package/dist/types/translations/en.d.ts +1 -0
  233. package/dist/types/translations/fi.d.ts +1 -0
  234. package/dist/types/translations/nl.d.ts +1 -0
  235. package/dist/types/translations/no.d.ts +1 -0
  236. package/dist/types/translations/sv.d.ts +1 -0
  237. package/package.json +24 -24
  238. package/dist/cjs/limel-menu.cjs.entry.js +0 -137
  239. package/dist/esm/limel-menu.entry.js +0 -133
  240. package/dist/lime-elements/p-009de50e.entry.js +0 -1
  241. package/dist/lime-elements/p-0ba0c38a.entry.js +0 -11
  242. package/dist/lime-elements/p-1390fdcb.entry.js +0 -126
  243. package/dist/lime-elements/p-19f72dab.entry.js +0 -1
  244. package/dist/lime-elements/p-2639edf9.entry.js +0 -73
  245. package/dist/lime-elements/p-2fc4f4ff.entry.js +0 -1
  246. package/dist/lime-elements/p-3bf54a4c.js +0 -1
  247. package/dist/lime-elements/p-3cf4aae0.entry.js +0 -1
  248. package/dist/lime-elements/p-4dc07252.entry.js +0 -82
  249. package/dist/lime-elements/p-53e01330.entry.js +0 -1
  250. package/dist/lime-elements/p-5ef52589.entry.js +0 -1
  251. package/dist/lime-elements/p-63e25a0a.entry.js +0 -1
  252. package/dist/lime-elements/p-653faf47.entry.js +0 -1
  253. package/dist/lime-elements/p-6b1bc80f.entry.js +0 -1
  254. package/dist/lime-elements/p-93cd2268.entry.js +0 -1
  255. package/dist/lime-elements/p-93f42a32.entry.js +0 -1
  256. package/dist/lime-elements/p-95f275ab.entry.js +0 -1
  257. package/dist/lime-elements/p-995bbd2a.entry.js +0 -1
  258. package/dist/lime-elements/p-a465084b.entry.js +0 -82
  259. package/dist/lime-elements/p-b0046fcd.entry.js +0 -1
  260. package/dist/lime-elements/p-b0e54dc2.entry.js +0 -1
  261. package/dist/lime-elements/p-c544c05b.entry.js +0 -16
  262. package/dist/lime-elements/p-c59cbd68.entry.js +0 -1
  263. package/dist/lime-elements/p-cb8db8c2.entry.js +0 -37
  264. package/dist/lime-elements/p-d74fa89e.entry.js +0 -1
  265. package/dist/lime-elements/p-e98d76e8.entry.js +0 -59
  266. package/dist/lime-elements/p-e9a95b8f.js +0 -1
  267. package/dist/lime-elements/p-f0c9dadd.entry.js +0 -1
  268. package/dist/lime-elements/p-f0e872b6.entry.js +0 -16
  269. package/dist/lime-elements/p-f41567a1.entry.js +0 -1
  270. 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
  }
@@ -23,10 +23,7 @@ export const SelectTemplate = (props) => {
23
23
  'limel-select--empty': !hasValue,
24
24
  'limel-select--with-helper-text': typeof props.helperText === 'string',
25
25
  };
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))));
26
+ return (h("div", { class: classList }, h(SelectValue, Object.assign({}, props, { hasValue: hasValue, isValid: isValid })), h(HelperText, { text: props.helperText }), h(SelectDropdown, Object.assign({}, props))));
30
27
  };
31
28
  const SelectValue = (props) => {
32
29
  const anchorClassList = {
@@ -39,15 +36,7 @@ const SelectValue = (props) => {
39
36
  'mdc-floating-label--float-above': props.hasValue || props.isOpen || props.readonly,
40
37
  'mdc-floating-label--active': props.isOpen,
41
38
  };
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" })))));
39
+ 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 }, 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
40
  };
52
41
  const ShowIcon = (props) => {
53
42
  if (props.isValid) {
@@ -59,8 +48,7 @@ const HelperText = (props) => {
59
48
  if (typeof props.text !== 'string') {
60
49
  return;
61
50
  }
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())));
51
+ 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
52
  };
65
53
  const SelectDropdown = (props) => {
66
54
  if (props.native) {
@@ -70,13 +58,11 @@ const SelectDropdown = (props) => {
70
58
  };
71
59
  const MenuDropdown = (props) => {
72
60
  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 }))));
61
+ 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: {
62
+ '--mdc-menu-min-width': '100%',
63
+ 'max-height': 'inherit',
64
+ display: 'flex',
65
+ } }, h("limel-list", { items: items, type: props.multiple ? 'checkbox' : 'selectable', onChange: props.onMenuChange }))));
80
66
  };
81
67
  const NativeDropdown = (props) => {
82
68
  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) => {
@@ -107,7 +93,7 @@ function createMenuItems(options, value) {
107
93
  });
108
94
  }
109
95
  function getSelectedText(value, readonly) {
110
- if (!value && readonly) {
96
+ if ((!value || (isMultiple(value) && !value.length)) && readonly) {
111
97
  return '–';
112
98
  }
113
99
  if (!value) {
@@ -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
+ }