@limetech/lime-elements 36.1.0-next.2 → 36.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 (269) hide show
  1. package/dist/cjs/{checkbox.template-b6c6562c.js → checkbox.template-ac867c17.js} +1 -1
  2. package/dist/cjs/{format-e682e922.js → format-c0047dfb.js} +1 -1
  3. package/dist/cjs/{index-2a28697b.js → index-287e25e0.js} +424 -246
  4. package/dist/cjs/lime-elements.cjs.js +3 -3
  5. package/dist/cjs/limel-badge.cjs.entry.js +3 -2
  6. package/dist/cjs/limel-banner.cjs.entry.js +3 -1
  7. package/dist/cjs/limel-button-group.cjs.entry.js +3 -8
  8. package/dist/cjs/{limel-button.cjs.entry.js → limel-button_2.cjs.entry.js} +117 -21
  9. package/dist/cjs/limel-checkbox.cjs.entry.js +10 -26
  10. package/dist/cjs/limel-chip-set.cjs.entry.js +21 -52
  11. package/dist/cjs/limel-circular-progress.cjs.entry.js +11 -16
  12. package/dist/cjs/limel-code-editor.cjs.entry.js +110 -97
  13. package/dist/cjs/limel-collapsible-section.cjs.entry.js +4 -5
  14. package/dist/cjs/limel-color-picker-palette.cjs.entry.js +5 -1
  15. package/dist/cjs/limel-color-picker.cjs.entry.js +8 -2
  16. package/dist/cjs/limel-config.cjs.entry.js +2 -1
  17. package/dist/cjs/limel-date-picker.cjs.entry.js +15 -33
  18. package/dist/cjs/limel-dialog.cjs.entry.js +4 -12
  19. package/dist/cjs/limel-dock-button.cjs.entry.js +5 -15
  20. package/dist/cjs/limel-dock.cjs.entry.js +8 -40
  21. package/dist/cjs/limel-file.cjs.entry.js +10 -24
  22. package/dist/cjs/limel-flatpickr-adapter.cjs.entry.js +149 -48
  23. package/dist/cjs/limel-flex-container.cjs.entry.js +1 -13
  24. package/dist/cjs/limel-form.cjs.entry.js +326 -327
  25. package/dist/cjs/limel-grid.cjs.entry.js +1 -1
  26. package/dist/cjs/limel-header.cjs.entry.js +5 -1
  27. package/dist/cjs/limel-icon-button.cjs.entry.js +3 -8
  28. package/dist/cjs/limel-icon.cjs.entry.js +4 -1
  29. package/dist/cjs/limel-input-field.cjs.entry.js +28 -61
  30. package/dist/cjs/limel-linear-progress.cjs.entry.js +1 -7
  31. package/dist/cjs/limel-list_2.cjs.entry.js +9 -18
  32. package/dist/cjs/limel-menu-list.cjs.entry.js +6 -13
  33. package/dist/cjs/limel-picker.cjs.entry.js +14 -39
  34. package/dist/cjs/limel-popover_4.cjs.entry.js +14 -13
  35. package/dist/cjs/limel-portal.cjs.entry.js +63 -73
  36. package/dist/cjs/limel-progress-flow-item.cjs.entry.js +4 -13
  37. package/dist/cjs/limel-progress-flow.cjs.entry.js +4 -20
  38. package/dist/cjs/limel-select.cjs.entry.js +9 -26
  39. package/dist/cjs/limel-shortcut.cjs.entry.js +52 -0
  40. package/dist/cjs/limel-slider.cjs.entry.js +12 -33
  41. package/dist/cjs/limel-snackbar.cjs.entry.js +7 -5
  42. package/dist/cjs/limel-spinner.cjs.entry.js +1 -7
  43. package/dist/cjs/limel-split-button.cjs.entry.js +35 -0
  44. package/dist/cjs/limel-switch.cjs.entry.js +6 -19
  45. package/dist/cjs/limel-tab-bar.cjs.entry.js +2 -5
  46. package/dist/cjs/limel-tab-panel.cjs.entry.js +2 -5
  47. package/dist/cjs/limel-table.cjs.entry.js +16 -28
  48. package/dist/cjs/loader.cjs.js +3 -3
  49. package/dist/cjs/{translations-5a8d7f6c.js → translations-ca7279bc.js} +6 -0
  50. package/dist/collection/collection-manifest.json +4 -2
  51. package/dist/collection/components/badge/badge.js +35 -26
  52. package/dist/collection/components/badge/format.js +1 -1
  53. package/dist/collection/components/banner/banner.js +88 -83
  54. package/dist/collection/components/button/button.css +4 -1
  55. package/dist/collection/components/button/button.js +148 -160
  56. package/dist/collection/components/button-group/button-group.js +81 -79
  57. package/dist/collection/components/checkbox/checkbox.js +172 -176
  58. package/dist/collection/components/checkbox/checkbox.template.js +15 -23
  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 +592 -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.css +7 -1
  72. package/dist/collection/components/dialog/dialog.js +134 -142
  73. package/dist/collection/components/dock/dock-button/dock-button.js +138 -141
  74. package/dist/collection/components/dock/dock.js +204 -232
  75. package/dist/collection/components/file/file.js +187 -191
  76. package/dist/collection/components/flex-container/flex-container.js +96 -102
  77. package/dist/collection/components/form/form.js +158 -150
  78. package/dist/collection/components/grid/grid.js +11 -7
  79. package/dist/collection/components/header/header.js +89 -87
  80. package/dist/collection/components/icon/icon.js +79 -66
  81. package/dist/collection/components/icon-button/icon-button.js +85 -85
  82. package/dist/collection/components/input-field/input-field.css +12 -8
  83. package/dist/collection/components/input-field/input-field.js +482 -523
  84. package/dist/collection/components/linear-progress/linear-progress.js +57 -61
  85. package/dist/collection/components/list/list-renderer.js +3 -12
  86. package/dist/collection/components/list/list.js +167 -164
  87. package/dist/collection/components/list/radio-button/radio-button.template.js +2 -8
  88. package/dist/collection/components/menu/menu.js +183 -195
  89. package/dist/collection/components/menu-list/menu-list-renderer.js +2 -9
  90. package/dist/collection/components/menu-list/menu-list.js +149 -146
  91. package/dist/collection/components/menu-surface/menu-surface.js +69 -64
  92. package/dist/collection/components/picker/picker.js +412 -427
  93. package/dist/collection/components/popover/popover.js +79 -74
  94. package/dist/collection/components/popover-surface/popover-surface.css +4 -0
  95. package/dist/collection/components/popover-surface/popover-surface.js +34 -25
  96. package/dist/collection/components/portal/portal.js +145 -158
  97. package/dist/collection/components/progress-flow/progress-flow-item/progress-flow-item.js +90 -94
  98. package/dist/collection/components/progress-flow/progress-flow.js +93 -101
  99. package/dist/collection/components/select/select.css +7 -7
  100. package/dist/collection/components/select/select.js +206 -211
  101. package/dist/collection/components/select/select.template.js +9 -23
  102. package/dist/collection/components/shortcut/shortcut.css +91 -0
  103. package/dist/collection/components/shortcut/shortcut.js +194 -0
  104. package/dist/collection/components/slider/slider.js +233 -264
  105. package/dist/collection/components/snackbar/snackbar.js +175 -169
  106. package/dist/collection/components/spinner/spinner.js +56 -85
  107. package/dist/collection/components/split-button/split-button.css +84 -0
  108. package/dist/collection/components/split-button/split-button.js +176 -0
  109. package/dist/collection/components/switch/switch.js +117 -129
  110. package/dist/collection/components/tab-bar/tab-bar.js +87 -92
  111. package/dist/collection/components/tab-panel/tab-panel.js +64 -61
  112. package/dist/collection/components/table/table.js +447 -457
  113. package/dist/collection/components/tooltip/tooltip-content.js +70 -61
  114. package/dist/collection/components/tooltip/tooltip.js +96 -91
  115. package/dist/collection/style/internal/z-index.scss +0 -6
  116. package/dist/collection/translations/da.js +1 -0
  117. package/dist/collection/translations/en.js +1 -0
  118. package/dist/collection/translations/fi.js +1 -0
  119. package/dist/collection/translations/nl.js +1 -0
  120. package/dist/collection/translations/no.js +1 -0
  121. package/dist/collection/translations/sv.js +1 -0
  122. package/dist/esm/{checkbox.template-2f1bbc98.js → checkbox.template-fc7fcd06.js} +1 -1
  123. package/dist/esm/{format-ce615e29.js → format-a0e2d949.js} +1 -1
  124. package/dist/esm/{index-11cd0b60.js → index-cdfd351d.js} +424 -246
  125. package/dist/esm/lime-elements.js +3 -3
  126. package/dist/esm/limel-badge.entry.js +3 -2
  127. package/dist/esm/limel-banner.entry.js +3 -1
  128. package/dist/esm/limel-button-group.entry.js +3 -8
  129. package/dist/esm/{limel-button.entry.js → limel-button_2.entry.js} +117 -22
  130. package/dist/esm/limel-checkbox.entry.js +10 -26
  131. package/dist/esm/limel-chip-set.entry.js +21 -52
  132. package/dist/esm/limel-circular-progress.entry.js +11 -16
  133. package/dist/esm/limel-code-editor.entry.js +110 -97
  134. package/dist/esm/limel-collapsible-section.entry.js +4 -5
  135. package/dist/esm/limel-color-picker-palette.entry.js +5 -1
  136. package/dist/esm/limel-color-picker.entry.js +8 -2
  137. package/dist/esm/limel-config.entry.js +2 -1
  138. package/dist/esm/limel-date-picker.entry.js +15 -33
  139. package/dist/esm/limel-dialog.entry.js +4 -12
  140. package/dist/esm/limel-dock-button.entry.js +5 -15
  141. package/dist/esm/limel-dock.entry.js +8 -40
  142. package/dist/esm/limel-file.entry.js +10 -24
  143. package/dist/esm/limel-flatpickr-adapter.entry.js +149 -48
  144. package/dist/esm/limel-flex-container.entry.js +1 -13
  145. package/dist/esm/limel-form.entry.js +326 -327
  146. package/dist/esm/limel-grid.entry.js +1 -1
  147. package/dist/esm/limel-header.entry.js +5 -1
  148. package/dist/esm/limel-icon-button.entry.js +3 -8
  149. package/dist/esm/limel-icon.entry.js +4 -1
  150. package/dist/esm/limel-input-field.entry.js +28 -61
  151. package/dist/esm/limel-linear-progress.entry.js +1 -7
  152. package/dist/esm/limel-list_2.entry.js +9 -18
  153. package/dist/esm/limel-menu-list.entry.js +6 -13
  154. package/dist/esm/limel-picker.entry.js +14 -39
  155. package/dist/esm/limel-popover_4.entry.js +14 -13
  156. package/dist/esm/limel-portal.entry.js +63 -73
  157. package/dist/esm/limel-progress-flow-item.entry.js +4 -13
  158. package/dist/esm/limel-progress-flow.entry.js +4 -20
  159. package/dist/esm/limel-select.entry.js +9 -26
  160. package/dist/esm/limel-shortcut.entry.js +48 -0
  161. package/dist/esm/limel-slider.entry.js +12 -33
  162. package/dist/esm/limel-snackbar.entry.js +7 -5
  163. package/dist/esm/limel-spinner.entry.js +1 -7
  164. package/dist/esm/limel-split-button.entry.js +31 -0
  165. package/dist/esm/limel-switch.entry.js +6 -19
  166. package/dist/esm/limel-tab-bar.entry.js +2 -5
  167. package/dist/esm/limel-tab-panel.entry.js +2 -5
  168. package/dist/esm/limel-table.entry.js +16 -28
  169. package/dist/esm/loader.js +3 -3
  170. package/dist/esm/polyfills/css-shim.js +1 -1
  171. package/dist/esm/{translations-682e905e.js → translations-0d0ee941.js} +6 -0
  172. package/dist/lime-elements/lime-elements.esm.js +1 -1
  173. package/dist/lime-elements/p-059e0a64.entry.js +1 -0
  174. package/dist/lime-elements/{p-440454ed.entry.js → p-06f2f6b4.entry.js} +1 -1
  175. package/dist/lime-elements/{p-71efe2ca.entry.js → p-0dbde06f.entry.js} +1 -1
  176. package/dist/lime-elements/p-12a7453b.entry.js +73 -0
  177. package/dist/lime-elements/p-15c2eb16.entry.js +1 -0
  178. package/dist/lime-elements/{p-c80acfb2.entry.js → p-15ca0d70.entry.js} +4 -4
  179. package/dist/lime-elements/{p-ed65468d.entry.js → p-16eb9071.entry.js} +1 -1
  180. package/dist/lime-elements/{p-1ede893b.js → p-1af8258b.js} +1 -1
  181. package/dist/lime-elements/p-246862ec.js +1 -0
  182. package/dist/lime-elements/p-36a3b897.entry.js +1 -0
  183. package/dist/lime-elements/p-4b426b7e.entry.js +11 -0
  184. package/dist/lime-elements/p-4eda8b67.entry.js +82 -0
  185. package/dist/lime-elements/{p-9af0704c.entry.js → p-4fb4e89b.entry.js} +1 -1
  186. package/dist/lime-elements/p-4fc38050.entry.js +1 -0
  187. package/dist/lime-elements/{p-a5af84a7.entry.js → p-5338663b.entry.js} +1 -1
  188. package/dist/lime-elements/p-5ce60a32.entry.js +126 -0
  189. package/dist/lime-elements/p-5f13035a.entry.js +1 -0
  190. package/dist/lime-elements/p-5f29f099.entry.js +16 -0
  191. package/dist/lime-elements/p-600464a9.entry.js +1 -0
  192. package/dist/lime-elements/p-6534e16a.entry.js +1 -0
  193. package/dist/lime-elements/p-6a4a5ddd.entry.js +1 -0
  194. package/dist/lime-elements/p-6c38b505.entry.js +1 -0
  195. package/dist/lime-elements/p-75d01713.entry.js +1 -0
  196. package/dist/lime-elements/p-768b7cbb.entry.js +1 -0
  197. package/dist/lime-elements/{p-6e7809a6.entry.js → p-82cd7bb6.entry.js} +1 -1
  198. package/dist/lime-elements/p-84a137a7.entry.js +1 -0
  199. package/dist/lime-elements/p-8715eac0.entry.js +1 -0
  200. package/dist/lime-elements/{p-aa66620a.entry.js → p-8ab597a8.entry.js} +2 -2
  201. package/dist/lime-elements/{p-8827628d.entry.js → p-8fb83e83.entry.js} +2 -2
  202. package/dist/lime-elements/p-90961075.entry.js +1 -0
  203. package/dist/lime-elements/p-9984b31c.entry.js +1 -0
  204. package/dist/lime-elements/p-9bd76629.entry.js +59 -0
  205. package/dist/lime-elements/p-9f19e0c1.entry.js +1 -0
  206. package/dist/lime-elements/p-ace4e596.entry.js +1 -0
  207. package/dist/lime-elements/p-c87995ea.entry.js +37 -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-c15da26d.entry.js → p-e7bb664f.entry.js} +1 -1
  217. package/dist/lime-elements/p-e88f7922.entry.js +1 -0
  218. package/dist/lime-elements/p-ef04b849.entry.js +82 -0
  219. package/dist/lime-elements/{p-93e92a2a.js → p-f08f504b.js} +1 -1
  220. package/dist/lime-elements/style/internal/z-index.scss +0 -6
  221. package/dist/loader/package.json +1 -0
  222. package/dist/types/components/circular-progress/circular-progress.d.ts +5 -0
  223. package/dist/types/components/picker/picker.d.ts +2 -2
  224. package/dist/types/components/shortcut/shortcut.d.ts +57 -0
  225. package/dist/types/components/split-button/split-button.d.ts +46 -0
  226. package/dist/types/components/tab-bar/tab.types.d.ts +1 -1
  227. package/dist/types/components.d.ts +324 -66
  228. package/dist/types/stencil-public-runtime.d.ts +20 -4
  229. package/dist/types/translations/da.d.ts +1 -0
  230. package/dist/types/translations/en.d.ts +1 -0
  231. package/dist/types/translations/fi.d.ts +1 -0
  232. package/dist/types/translations/nl.d.ts +1 -0
  233. package/dist/types/translations/no.d.ts +1 -0
  234. package/dist/types/translations/sv.d.ts +1 -0
  235. package/package.json +25 -24
  236. package/dist/cjs/limel-menu.cjs.entry.js +0 -137
  237. package/dist/esm/limel-menu.entry.js +0 -133
  238. package/dist/lime-elements/p-009de50e.entry.js +0 -1
  239. package/dist/lime-elements/p-0ba0c38a.entry.js +0 -11
  240. package/dist/lime-elements/p-19f72dab.entry.js +0 -1
  241. package/dist/lime-elements/p-2639edf9.entry.js +0 -73
  242. package/dist/lime-elements/p-2fc4f4ff.entry.js +0 -1
  243. package/dist/lime-elements/p-3bf54a4c.js +0 -1
  244. package/dist/lime-elements/p-3cf4aae0.entry.js +0 -1
  245. package/dist/lime-elements/p-41e902ac.entry.js +0 -126
  246. package/dist/lime-elements/p-4dc07252.entry.js +0 -82
  247. package/dist/lime-elements/p-56cf969c.entry.js +0 -1
  248. package/dist/lime-elements/p-5ef52589.entry.js +0 -1
  249. package/dist/lime-elements/p-63e25a0a.entry.js +0 -1
  250. package/dist/lime-elements/p-653faf47.entry.js +0 -1
  251. package/dist/lime-elements/p-6b1bc80f.entry.js +0 -1
  252. package/dist/lime-elements/p-93cd2268.entry.js +0 -1
  253. package/dist/lime-elements/p-93f42a32.entry.js +0 -1
  254. package/dist/lime-elements/p-95f275ab.entry.js +0 -1
  255. package/dist/lime-elements/p-995bbd2a.entry.js +0 -1
  256. package/dist/lime-elements/p-9a38a71e.entry.js +0 -1
  257. package/dist/lime-elements/p-a465084b.entry.js +0 -82
  258. package/dist/lime-elements/p-b0046fcd.entry.js +0 -1
  259. package/dist/lime-elements/p-b0e54dc2.entry.js +0 -1
  260. package/dist/lime-elements/p-c544c05b.entry.js +0 -16
  261. package/dist/lime-elements/p-c59cbd68.entry.js +0 -1
  262. package/dist/lime-elements/p-cb8db8c2.entry.js +0 -37
  263. package/dist/lime-elements/p-d74fa89e.entry.js +0 -1
  264. package/dist/lime-elements/p-e98d76e8.entry.js +0 -59
  265. package/dist/lime-elements/p-e9a95b8f.js +0 -1
  266. package/dist/lime-elements/p-f0c9dadd.entry.js +0 -1
  267. package/dist/lime-elements/p-f0e872b6.entry.js +0 -16
  268. package/dist/lime-elements/p-f41567a1.entry.js +0 -1
  269. 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
+ }