@limetech/lime-elements 36.3.0-next.4 → 36.3.0-next.41

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 (247) hide show
  1. package/README.md +2 -2
  2. package/dist/cjs/lime-elements.cjs.js +1 -1
  3. package/dist/cjs/limel-badge.cjs.entry.js +4 -6
  4. package/dist/cjs/limel-button-group.cjs.entry.js +21 -6
  5. package/dist/cjs/limel-button.cjs.entry.js +1 -1
  6. package/dist/cjs/limel-callout.cjs.entry.js +54 -0
  7. package/dist/cjs/limel-chip-set.cjs.entry.js +13 -3
  8. package/dist/cjs/limel-code-editor.cjs.entry.js +1 -1
  9. package/dist/cjs/limel-collapsible-section.cjs.entry.js +3 -12
  10. package/dist/cjs/limel-color-picker-palette.cjs.entry.js +1 -1
  11. package/dist/cjs/limel-color-picker.cjs.entry.js +1 -1
  12. package/dist/cjs/limel-date-picker.cjs.entry.js +47 -7
  13. package/dist/cjs/limel-dialog.cjs.entry.js +1 -1
  14. package/dist/cjs/limel-dock-button.cjs.entry.js +7 -2
  15. package/dist/cjs/limel-dock.cjs.entry.js +1 -1
  16. package/dist/cjs/limel-file.cjs.entry.js +1 -1
  17. package/dist/cjs/limel-flatpickr-adapter.cjs.entry.js +99 -118
  18. package/dist/cjs/limel-form.cjs.entry.js +79 -1
  19. package/dist/cjs/limel-header.cjs.entry.js +2 -2
  20. package/dist/cjs/limel-icon-button.cjs.entry.js +1 -1
  21. package/dist/cjs/limel-info-tile.cjs.entry.js +4 -1
  22. package/dist/cjs/limel-input-field.cjs.entry.js +2 -2
  23. package/dist/cjs/limel-list_2.cjs.entry.js +1 -1
  24. package/dist/cjs/limel-menu-list.cjs.entry.js +7 -1
  25. package/dist/cjs/limel-menu.cjs.entry.js +10 -2
  26. package/dist/cjs/limel-portal.cjs.entry.js +3 -4
  27. package/dist/cjs/limel-select.cjs.entry.js +1 -1
  28. package/dist/cjs/limel-shortcut.cjs.entry.js +1 -1
  29. package/dist/cjs/limel-slider.cjs.entry.js +5 -5
  30. package/dist/cjs/limel-snackbar.cjs.entry.js +2 -2
  31. package/dist/cjs/limel-spinner.cjs.entry.js +1 -1
  32. package/dist/cjs/limel-split-button.cjs.entry.js +1 -1
  33. package/dist/cjs/limel-tab-bar.cjs.entry.js +1 -1
  34. package/dist/cjs/limel-tab-panel.cjs.entry.js +1 -1
  35. package/dist/cjs/limel-table.cjs.entry.js +1 -1
  36. package/dist/cjs/loader.cjs.js +1 -1
  37. package/dist/cjs/{dateFormatter-d7a8d40d.js → sv-dffe48b5.js} +222 -173
  38. package/dist/cjs/{translations-ca7279bc.js → translations-f8080c48.js} +30 -0
  39. package/dist/collection/collection-manifest.json +1 -0
  40. package/dist/collection/components/badge/badge.css +34 -19
  41. package/dist/collection/components/badge/badge.js +7 -7
  42. package/dist/collection/components/banner/banner.css +1 -2
  43. package/dist/collection/components/button/button.css +31 -41
  44. package/dist/collection/components/button-group/button-group.css +44 -42
  45. package/dist/collection/components/button-group/button-group.js +25 -6
  46. package/dist/collection/components/callout/callout.css +77 -0
  47. package/dist/collection/components/callout/callout.helpers.js +27 -0
  48. package/dist/collection/components/callout/callout.js +139 -0
  49. package/dist/collection/components/callout/callout.types.js +1 -0
  50. package/dist/collection/components/checkbox/checkbox.css +22 -45
  51. package/dist/collection/components/chip-set/chip-set.css +222 -405
  52. package/dist/collection/components/chip-set/chip-set.js +6 -2
  53. package/dist/collection/components/circular-progress/circular-progress.css +8 -0
  54. package/dist/collection/components/code-editor/code-editor.css +11 -8
  55. package/dist/collection/components/collapsible-section/collapsible-section.css +88 -55
  56. package/dist/collection/components/collapsible-section/collapsible-section.js +2 -11
  57. package/dist/collection/components/color-picker/color-picker-palette.css +16 -14
  58. package/dist/collection/components/color-picker/color-picker.css +7 -5
  59. package/dist/collection/components/date-picker/date-picker.js +30 -5
  60. package/dist/collection/components/date-picker/dateFormatter.js +7 -3
  61. package/dist/collection/components/date-picker/flatpickr-adapter/flatpickr-adapter.css +11 -1
  62. package/dist/collection/components/date-picker/flatpickr-adapter/flatpickr-adapter.js +23 -8
  63. package/dist/collection/components/date-picker/pickers/Picker.js +11 -8
  64. package/dist/collection/components/dialog/dialog.css +14 -27
  65. package/dist/collection/components/dock/dock-button/dock-button.css +17 -2
  66. package/dist/collection/components/dock/dock-button/dock-button.js +6 -1
  67. package/dist/collection/components/dock/dock.css +19 -1
  68. package/dist/collection/components/dock/dock.js +1 -0
  69. package/dist/collection/components/file/file.js +1 -1
  70. package/dist/collection/components/form/form.css +95 -8
  71. package/dist/collection/components/form/form.js +1 -0
  72. package/dist/collection/components/form/form.types.js +8 -0
  73. package/dist/collection/components/form/row/row.js +47 -0
  74. package/dist/collection/components/form/templates/object-field.js +5 -0
  75. package/dist/collection/components/form/templates/row-layout.js +20 -0
  76. package/dist/collection/components/header/header.css +10 -2
  77. package/dist/collection/components/header/header.js +7 -2
  78. package/dist/collection/components/icon-button/icon-button.css +15 -12
  79. package/dist/collection/components/info-tile/info-tile.css +13 -17
  80. package/dist/collection/components/info-tile/info-tile.js +3 -0
  81. package/dist/collection/components/input-field/input-field.css +199 -363
  82. package/dist/collection/components/input-field/input-field.js +1 -1
  83. package/dist/collection/components/linear-progress/linear-progress.css +7 -14
  84. package/dist/collection/components/list/list.css +388 -751
  85. package/dist/collection/components/menu/menu.css +19 -1
  86. package/dist/collection/components/menu/menu.js +10 -1
  87. package/dist/collection/components/menu-list/menu-list-renderer.js +6 -1
  88. package/dist/collection/components/menu-list/menu-list.css +400 -752
  89. package/dist/collection/components/menu-surface/menu-surface.css +13 -26
  90. package/dist/collection/components/popover-surface/popover-surface.css +8 -0
  91. package/dist/collection/components/progress-flow/progress-flow-item/progress-flow-item.css +8 -0
  92. package/dist/collection/components/select/select.css +174 -323
  93. package/dist/collection/components/shortcut/shortcut.css +9 -7
  94. package/dist/collection/components/slider/slider.css +87 -98
  95. package/dist/collection/components/slider/slider.js +5 -5
  96. package/dist/collection/components/snackbar/snackbar.css +19 -34
  97. package/dist/collection/components/snackbar/snackbar.js +1 -1
  98. package/dist/collection/components/spinner/spinner.css +4 -0
  99. package/dist/collection/components/split-button/split-button.css +15 -4
  100. package/dist/collection/components/switch/switch.css +21 -49
  101. package/dist/collection/components/tab-bar/tab-bar.css +20 -19
  102. package/dist/collection/components/tab-panel/tab-panel.css +5 -0
  103. package/dist/collection/components/table/table.css +33 -0
  104. package/dist/collection/icons/idea.svg +593 -0
  105. package/dist/collection/icons/info.svg +593 -0
  106. package/dist/collection/style/internal/shared_input-select-picker.scss +4 -0
  107. package/dist/collection/style/internal/z-index.scss +0 -1
  108. package/dist/collection/style/mixins.scss +15 -4
  109. package/dist/collection/translations/da.js +5 -0
  110. package/dist/collection/translations/en.js +5 -0
  111. package/dist/collection/translations/fi.js +5 -0
  112. package/dist/collection/translations/nl.js +5 -0
  113. package/dist/collection/translations/no.js +5 -0
  114. package/dist/collection/translations/sv.js +5 -0
  115. package/dist/esm/{keycodes-9f971b46.js → keycodes-44c01beb.js} +1 -1
  116. package/dist/esm/lime-elements.js +1 -1
  117. package/dist/esm/limel-badge.entry.js +4 -6
  118. package/dist/esm/limel-button-group.entry.js +21 -6
  119. package/dist/esm/limel-button.entry.js +1 -1
  120. package/dist/esm/limel-callout.entry.js +50 -0
  121. package/dist/esm/limel-chip-set.entry.js +14 -4
  122. package/dist/esm/limel-code-editor.entry.js +1 -1
  123. package/dist/esm/limel-collapsible-section.entry.js +3 -12
  124. package/dist/esm/limel-color-picker-palette.entry.js +1 -1
  125. package/dist/esm/limel-color-picker.entry.js +1 -1
  126. package/dist/esm/limel-date-picker.entry.js +46 -6
  127. package/dist/esm/limel-dialog.entry.js +1 -1
  128. package/dist/esm/limel-dock-button.entry.js +7 -2
  129. package/dist/esm/limel-dock.entry.js +1 -1
  130. package/dist/esm/limel-file.entry.js +1 -1
  131. package/dist/esm/limel-flatpickr-adapter.entry.js +99 -118
  132. package/dist/esm/limel-form.entry.js +79 -1
  133. package/dist/esm/limel-header.entry.js +2 -2
  134. package/dist/esm/limel-icon-button.entry.js +1 -1
  135. package/dist/esm/limel-info-tile.entry.js +4 -1
  136. package/dist/esm/limel-input-field.entry.js +3 -3
  137. package/dist/esm/limel-list_2.entry.js +2 -2
  138. package/dist/esm/limel-menu-list.entry.js +7 -1
  139. package/dist/esm/limel-menu.entry.js +10 -2
  140. package/dist/esm/limel-picker.entry.js +1 -1
  141. package/dist/esm/limel-popover_4.entry.js +1 -1
  142. package/dist/esm/limel-portal.entry.js +3 -4
  143. package/dist/esm/limel-select.entry.js +2 -2
  144. package/dist/esm/limel-shortcut.entry.js +1 -1
  145. package/dist/esm/limel-slider.entry.js +6 -6
  146. package/dist/esm/limel-snackbar.entry.js +2 -2
  147. package/dist/esm/limel-spinner.entry.js +1 -1
  148. package/dist/esm/limel-split-button.entry.js +1 -1
  149. package/dist/esm/limel-tab-bar.entry.js +1 -1
  150. package/dist/esm/limel-tab-panel.entry.js +1 -1
  151. package/dist/esm/limel-table.entry.js +1 -1
  152. package/dist/esm/loader.js +1 -1
  153. package/dist/esm/{dateFormatter-784c3334.js → sv-336c4576.js} +222 -173
  154. package/dist/esm/{translations-0d0ee941.js → translations-f88bb584.js} +30 -0
  155. package/dist/lime-elements/lime-elements.esm.js +1 -1
  156. package/dist/lime-elements/{p-a8d38277.entry.js → p-10e259de.entry.js} +1 -1
  157. package/dist/lime-elements/{p-934456bc.entry.js → p-123f5fbb.entry.js} +1 -1
  158. package/dist/lime-elements/{p-c234a991.entry.js → p-157e0417.entry.js} +2 -2
  159. package/dist/lime-elements/p-2f9918a3.entry.js +1 -0
  160. package/dist/lime-elements/p-2fd478df.entry.js +1 -0
  161. package/dist/lime-elements/p-3be2dfc7.entry.js +1 -0
  162. package/dist/lime-elements/{p-06f2f6b4.entry.js → p-3fda3473.entry.js} +1 -1
  163. package/dist/lime-elements/p-46a76d55.entry.js +1 -0
  164. package/dist/lime-elements/p-4a62273c.entry.js +1 -0
  165. package/dist/lime-elements/{p-73df4d83.js → p-4dd9a5a5.js} +5 -3
  166. package/dist/lime-elements/{p-d1187867.entry.js → p-4eeabc1f.entry.js} +1 -1
  167. package/dist/lime-elements/{p-2f2ea041.entry.js → p-4fcd3337.entry.js} +1 -1
  168. package/dist/lime-elements/{p-029360c8.entry.js → p-50dbd665.entry.js} +1 -1
  169. package/dist/lime-elements/{p-e5213a54.entry.js → p-55c8cb64.entry.js} +4 -4
  170. package/dist/lime-elements/{p-cad7cda1.entry.js → p-58e9df30.entry.js} +1 -1
  171. package/dist/lime-elements/p-73613abb.entry.js +82 -0
  172. package/dist/lime-elements/{p-6784c5c3.entry.js → p-7d7d19de.entry.js} +1 -1
  173. package/dist/lime-elements/{p-d9c96100.entry.js → p-7fb68a16.entry.js} +1 -1
  174. package/dist/lime-elements/{p-004aad18.entry.js → p-9336fd7f.entry.js} +1 -1
  175. package/dist/lime-elements/{p-5f13035a.entry.js → p-95cefb5f.entry.js} +1 -1
  176. package/dist/lime-elements/{p-a0c78744.entry.js → p-a88f2922.entry.js} +2 -2
  177. package/dist/lime-elements/p-b1ae3d1f.entry.js +126 -0
  178. package/dist/lime-elements/p-b40f37d7.entry.js +1 -0
  179. package/dist/lime-elements/p-b59e4287.js +1 -0
  180. package/dist/lime-elements/{p-405207fa.entry.js → p-b80de0ea.entry.js} +1 -1
  181. package/dist/lime-elements/p-c47cb4c3.entry.js +1 -0
  182. package/dist/lime-elements/{p-b079fc71.entry.js → p-cc3529bb.entry.js} +1 -1
  183. package/dist/lime-elements/{p-93ad8b90.entry.js → p-d0084a70.entry.js} +1 -1
  184. package/dist/lime-elements/p-d16b27b9.entry.js +1 -0
  185. package/dist/lime-elements/{p-216ffe20.js → p-d7801e00.js} +1 -1
  186. package/dist/lime-elements/p-d87e2f26.entry.js +1 -0
  187. package/dist/lime-elements/p-d955c169.entry.js +59 -0
  188. package/dist/lime-elements/p-da536426.entry.js +1 -0
  189. package/dist/lime-elements/p-e69231c2.entry.js +16 -0
  190. package/dist/lime-elements/p-eda87f8c.entry.js +1 -0
  191. package/dist/lime-elements/{p-0bf916a0.entry.js → p-edbd8d62.entry.js} +1 -1
  192. package/dist/lime-elements/p-f11e7ce1.entry.js +1 -0
  193. package/dist/lime-elements/{p-5409b92f.entry.js → p-f979c0f2.entry.js} +1 -1
  194. package/dist/lime-elements/style/internal/shared_input-select-picker.scss +4 -0
  195. package/dist/lime-elements/style/internal/z-index.scss +0 -1
  196. package/dist/lime-elements/style/mixins.scss +15 -4
  197. package/dist/scss/mixins.scss +186 -0
  198. package/dist/types/components/badge/badge.d.ts +4 -2
  199. package/dist/types/components/button/button.types.d.ts +4 -0
  200. package/dist/types/components/button-group/button-group.d.ts +4 -0
  201. package/dist/types/components/callout/callout.d.ts +52 -0
  202. package/dist/types/components/callout/callout.helpers.d.ts +2 -0
  203. package/dist/types/components/callout/callout.types.d.ts +11 -0
  204. package/dist/types/components/chip-set/chip-set.d.ts +1 -1
  205. package/dist/types/components/collapsible-section/collapsible-section.d.ts +0 -1
  206. package/dist/types/components/date-picker/date-picker.d.ts +10 -0
  207. package/dist/types/components/date-picker/date.types.d.ts +1 -1
  208. package/dist/types/components/date-picker/dateFormatter.d.ts +3 -2
  209. package/dist/types/components/date-picker/flatpickr-adapter/flatpickr-adapter.d.ts +1 -1
  210. package/dist/types/components/date-picker/pickers/Picker.d.ts +4 -2
  211. package/dist/types/components/dock/dock-button/dock-button.d.ts +1 -0
  212. package/dist/types/components/dock/dock.d.ts +1 -0
  213. package/dist/types/components/dock/dock.types.d.ts +4 -0
  214. package/dist/types/components/form/form.d.ts +1 -0
  215. package/dist/types/components/form/form.types.d.ts +16 -1
  216. package/dist/types/components/form/row/row.d.ts +16 -0
  217. package/dist/types/components/form/templates/row-layout.d.ts +11 -0
  218. package/dist/types/components/form/templates/types.d.ts +3 -0
  219. package/dist/types/components/header/header.d.ts +6 -1
  220. package/dist/types/components/menu/menu.d.ts +3 -0
  221. package/dist/types/components/menu/menu.types.d.ts +4 -0
  222. package/dist/types/components/menu-list/menu-list-renderer.d.ts +1 -0
  223. package/dist/types/components.d.ts +57 -1
  224. package/dist/types/interface.d.ts +1 -0
  225. package/dist/types/translations/da.d.ts +5 -0
  226. package/dist/types/translations/en.d.ts +5 -0
  227. package/dist/types/translations/fi.d.ts +5 -0
  228. package/dist/types/translations/nl.d.ts +5 -0
  229. package/dist/types/translations/no.d.ts +5 -0
  230. package/dist/types/translations/sv.d.ts +5 -0
  231. package/package.json +23 -20
  232. package/dist/lime-elements/p-246862ec.js +0 -1
  233. package/dist/lime-elements/p-524bd0cc.entry.js +0 -1
  234. package/dist/lime-elements/p-52e18d94.entry.js +0 -1
  235. package/dist/lime-elements/p-61b3352f.entry.js +0 -1
  236. package/dist/lime-elements/p-65a3be2c.entry.js +0 -1
  237. package/dist/lime-elements/p-864db270.entry.js +0 -126
  238. package/dist/lime-elements/p-8ca53aa2.entry.js +0 -1
  239. package/dist/lime-elements/p-90961075.entry.js +0 -1
  240. package/dist/lime-elements/p-91604294.entry.js +0 -1
  241. package/dist/lime-elements/p-95fd48d0.entry.js +0 -82
  242. package/dist/lime-elements/p-c4a89055.entry.js +0 -16
  243. package/dist/lime-elements/p-cc9f89a9.entry.js +0 -1
  244. package/dist/lime-elements/p-d379f4d6.entry.js +0 -59
  245. package/dist/lime-elements/p-d512656b.entry.js +0 -1
  246. package/dist/lime-elements/p-e6a11b73.entry.js +0 -1
  247. package/dist/lime-elements/p-f9958763.entry.js +0 -1
@@ -23,6 +23,7 @@ export class DatePickerCalendar {
23
23
  this.isOpen = undefined;
24
24
  this.inputElement = undefined;
25
25
  this.language = 'en';
26
+ this.formatter = undefined;
26
27
  }
27
28
  componentWillLoad() {
28
29
  switch (this.type) {
@@ -49,12 +50,10 @@ export class DatePickerCalendar {
49
50
  this.picker = new DatetimePicker(this.format, this.language, this.change);
50
51
  break;
51
52
  }
53
+ this.picker.formatDate = this.formatter;
52
54
  }
53
55
  componentDidUpdate() {
54
- if (this.flatPickrCreated) {
55
- this.redrawFlatpickr();
56
- }
57
- else {
56
+ if (!this.flatPickrCreated) {
58
57
  this.createFlatpickr();
59
58
  }
60
59
  this.tryFixConfusingWidthBug();
@@ -89,9 +88,6 @@ export class DatePickerCalendar {
89
88
  this.picker.init(this.inputElement, this.container, this.value);
90
89
  this.flatPickrCreated = true;
91
90
  }
92
- redrawFlatpickr() {
93
- this.picker.redraw();
94
- }
95
91
  destroyFlatpickr() {
96
92
  this.picker.destroy();
97
93
  }
@@ -217,7 +213,7 @@ export class DatePickerCalendar {
217
213
  "mutable": false,
218
214
  "complexType": {
219
215
  "original": "Languages",
220
- "resolved": "\"da\" | \"en\" | \"fi\" | \"nb\" | \"nl\" | \"no\" | \"sv\"",
216
+ "resolved": "\"da\" | \"de\" | \"en\" | \"fi\" | \"fr\" | \"nb\" | \"nl\" | \"no\" | \"sv\"",
221
217
  "references": {
222
218
  "Languages": {
223
219
  "location": "import",
@@ -234,6 +230,25 @@ export class DatePickerCalendar {
234
230
  "attribute": "language",
235
231
  "reflect": false,
236
232
  "defaultValue": "'en'"
233
+ },
234
+ "formatter": {
235
+ "type": "unknown",
236
+ "mutable": false,
237
+ "complexType": {
238
+ "original": "(date: Date) => string",
239
+ "resolved": "(date: Date) => string",
240
+ "references": {
241
+ "Date": {
242
+ "location": "global"
243
+ }
244
+ }
245
+ },
246
+ "required": true,
247
+ "optional": false,
248
+ "docs": {
249
+ "tags": [],
250
+ "text": ""
251
+ }
237
252
  }
238
253
  };
239
254
  }
@@ -1,12 +1,14 @@
1
1
  import flatpickr from 'flatpickr';
2
2
  import FlatpickrLanguages from 'flatpickr/dist/l10n';
3
3
  import 'moment/locale/da';
4
+ import 'moment/locale/de';
4
5
  import 'moment/locale/fi';
6
+ import 'moment/locale/fr';
5
7
  import 'moment/locale/nb';
8
+ import 'moment/locale/nl';
6
9
  import 'moment/locale/sv';
7
10
  import moment from 'moment/moment';
8
11
  import { isAndroidDevice, isIOSDevice } from '../../../util/device';
9
- import { DateFormatter } from '../dateFormatter';
10
12
  export class Picker {
11
13
  constructor(dateFormat, language, change) {
12
14
  this.change = change;
@@ -17,12 +19,10 @@ export class Picker {
17
19
  if (dateFormat) {
18
20
  this.dateFormat = dateFormat;
19
21
  }
20
- this.dateFormatter = new DateFormatter(language);
21
22
  this.getWeek = this.getWeek.bind(this);
22
23
  this.handleClose = this.handleClose.bind(this);
23
24
  this.handleOnClose = this.handleOnClose.bind(this);
24
25
  this.parseDate = this.parseDate.bind(this);
25
- this.formatDate = this.formatDate.bind(this);
26
26
  this.getFlatpickrLang = this.getFlatpickrLang.bind(this);
27
27
  }
28
28
  init(element, container, value) {
@@ -56,9 +56,6 @@ export class Picker {
56
56
  }
57
57
  this.flatpickr.destroy();
58
58
  }
59
- formatDate(date) {
60
- return this.dateFormatter.formatDate(date, this.dateFormat);
61
- }
62
59
  handleClose(selectedDates) {
63
60
  return new Promise((resolve) => {
64
61
  setTimeout(() => {
@@ -69,10 +66,16 @@ export class Picker {
69
66
  });
70
67
  }
71
68
  getFlatpickrLang() {
72
- return this.language === 'nb' ? 'no' : this.language;
69
+ if (this.language === 'nb') {
70
+ return 'no';
71
+ }
72
+ return this.language;
73
73
  }
74
74
  getMomentLang() {
75
- return this.language === 'no' ? 'nb' : this.language;
75
+ if (this.language === 'no') {
76
+ return 'nb';
77
+ }
78
+ return this.language;
76
79
  }
77
80
  getPickerDate(selectedDates) {
78
81
  return selectedDates[0] ? new Date(selectedDates[0].toJSON()) : null;
@@ -395,14 +395,12 @@
395
395
  width: 100%;
396
396
  height: 100%;
397
397
  top: 0;
398
- /* @noflip */
399
- /*rtl:ignore*/
398
+ /* @noflip */ /*rtl:ignore*/
400
399
  left: 0;
401
400
  }
402
401
  [dir=rtl] .mdc-dialog__surface, .mdc-dialog__surface[dir=rtl] {
403
402
  /*rtl:begin:ignore*/
404
- /* @noflip */
405
- /*rtl:ignore*/
403
+ /* @noflip */ /*rtl:ignore*/
406
404
  text-align: right;
407
405
  /*rtl:end:ignore*/
408
406
  }
@@ -449,8 +447,7 @@
449
447
  }
450
448
  [dir=rtl] .mdc-dialog__title, .mdc-dialog__title[dir=rtl] {
451
449
  /*rtl:begin:ignore*/
452
- /* @noflip */
453
- /*rtl:ignore*/
450
+ /* @noflip */ /*rtl:ignore*/
454
451
  text-align: right;
455
452
  /*rtl:end:ignore*/
456
453
  }
@@ -538,51 +535,41 @@
538
535
  }
539
536
 
540
537
  .mdc-dialog__button {
541
- /* @noflip */
542
- /*rtl:ignore*/
538
+ /* @noflip */ /*rtl:ignore*/
543
539
  margin-left: 8px;
544
- /* @noflip */
545
- /*rtl:ignore*/
540
+ /* @noflip */ /*rtl:ignore*/
546
541
  margin-right: 0;
547
542
  max-width: 100%;
548
- /* @noflip */
549
- /*rtl:ignore*/
543
+ /* @noflip */ /*rtl:ignore*/
550
544
  text-align: right;
551
545
  }
552
546
  [dir=rtl] .mdc-dialog__button, .mdc-dialog__button[dir=rtl] {
553
547
  /*rtl:begin:ignore*/
554
- /* @noflip */
555
- /*rtl:ignore*/
548
+ /* @noflip */ /*rtl:ignore*/
556
549
  margin-left: 0;
557
- /* @noflip */
558
- /*rtl:ignore*/
550
+ /* @noflip */ /*rtl:ignore*/
559
551
  margin-right: 8px;
560
552
  /*rtl:end:ignore*/
561
553
  }
562
554
 
563
555
  .mdc-dialog__button:first-child {
564
- /* @noflip */
565
- /*rtl:ignore*/
556
+ /* @noflip */ /*rtl:ignore*/
566
557
  margin-left: 0;
567
- /* @noflip */
568
- /*rtl:ignore*/
558
+ /* @noflip */ /*rtl:ignore*/
569
559
  margin-right: 0;
570
560
  }
571
561
  [dir=rtl] .mdc-dialog__button:first-child, .mdc-dialog__button:first-child[dir=rtl] {
572
562
  /*rtl:begin:ignore*/
573
- /* @noflip */
574
- /*rtl:ignore*/
563
+ /* @noflip */ /*rtl:ignore*/
575
564
  margin-left: 0;
576
- /* @noflip */
577
- /*rtl:ignore*/
565
+ /* @noflip */ /*rtl:ignore*/
578
566
  margin-right: 0;
579
567
  /*rtl:end:ignore*/
580
568
  }
581
569
 
582
570
  [dir=rtl] .mdc-dialog__button, .mdc-dialog__button[dir=rtl] {
583
571
  /*rtl:begin:ignore*/
584
- /* @noflip */
585
- /*rtl:ignore*/
572
+ /* @noflip */ /*rtl:ignore*/
586
573
  text-align: left;
587
574
  /*rtl:end:ignore*/
588
575
  }
@@ -647,6 +634,7 @@
647
634
 
648
635
  .mdc-dialog {
649
636
  z-index: var(--dialog-z-index, 7);
637
+ padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);
650
638
  }
651
639
  @media (max-width: 16032px) {
652
640
  .mdc-dialog .mdc-dialog__surface {
@@ -744,7 +732,6 @@ slot[name=button] {
744
732
  slot[name=button] {
745
733
  flex-direction: column-reverse;
746
734
  }
747
-
748
735
  .mdc-dialog__actions {
749
736
  padding: min(1.5rem, 3vw);
750
737
  padding-top: 1rem;
@@ -1,3 +1,11 @@
1
+ /**
2
+ * Note! This file is exported to `dist/scss/` in the published
3
+ * node module, for consumer projects to import.
4
+ * That means this file cannot import from any file that isn't
5
+ * also exported, keeping the same relative path.
6
+ *
7
+ * Or, just don't import anything, that works too.
8
+ */
1
9
  /*
2
10
  * This file is imported into every component!
3
11
  *
@@ -12,14 +20,15 @@
12
20
  */
13
21
  .button {
14
22
  all: unset;
15
- cursor: pointer;
23
+ isolation: isolate;
24
+ position: relative;
16
25
  transition: color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease, transform 0.1s ease-out;
26
+ cursor: pointer;
17
27
  color: var(--limel-dock-item-text-color);
18
28
  background-color: var(--dock-background-color);
19
29
  box-sizing: border-box;
20
30
  display: flex;
21
31
  align-items: center;
22
- position: relative;
23
32
  width: 100%;
24
33
  height: var(--dock-item-height);
25
34
  border-radius: 0.375rem;
@@ -77,4 +86,10 @@ limel-popover {
77
86
  width: calc(var(--dock-item-height) - 1rem);
78
87
  height: calc(var(--dock-item-height) - 1rem);
79
88
  color: var(--dock-item-icon-color, var(--limel-dock-item-text-color));
89
+ }
90
+
91
+ limel-badge {
92
+ position: absolute;
93
+ top: -0.125rem;
94
+ right: -0.125rem;
80
95
  }
@@ -5,6 +5,11 @@ import { createRandomString } from '../../../util/random-string';
5
5
  */
6
6
  export class DockButton {
7
7
  constructor() {
8
+ this.renderNotification = () => {
9
+ if (this.item.badge !== undefined) {
10
+ return h("limel-badge", { label: this.item.badge });
11
+ }
12
+ };
8
13
  this.openPopover = (event) => {
9
14
  event.stopPropagation();
10
15
  this.isOpen = true;
@@ -57,7 +62,7 @@ export class DockButton {
57
62
  return (h("button", { slot: slot, tabindex: "0", id: this.tooltipId, type: "button", class: {
58
63
  button: true,
59
64
  selected: (_a = this.item) === null || _a === void 0 ? void 0 : _a.selected,
60
- }, onClick: handleClick }, this.renderIcon(), this.renderLabel(), this.renderTooltip()));
65
+ }, onClick: handleClick, "aria-live": "polite" }, this.renderIcon(), this.renderLabel(), this.renderTooltip(), this.renderNotification()));
61
66
  }
62
67
  renderIcon() {
63
68
  if (!this.item.icon) {
@@ -1,3 +1,11 @@
1
+ /**
2
+ * Note! This file is exported to `dist/scss/` in the published
3
+ * node module, for consumer projects to import.
4
+ * That means this file cannot import from any file that isn't
5
+ * also exported, keeping the same relative path.
6
+ *
7
+ * Or, just don't import anything, that works too.
8
+ */
1
9
  /*
2
10
  * This file is imported into every component!
3
11
  *
@@ -17,9 +25,15 @@
17
25
  * @prop --dock-item-text-color: Text of dock items, defaults to `--contrast-1100`.
18
26
  * @prop --dock-item-text-color--selected: Text color of selected dock item, defaults to `--contrast-1300`.
19
27
  * @prop --dock-item-icon-color: Color of the optional icons used in each dock item. Only affects inactive dock items, defaults to text colors for default or selected states.
28
+ * @prop --dock-padding-top: Space of top side of the Dock. Can be used with environment variables, to take into account safe areas on mobile devices with rounded screen corners or those that have a "notch". For instance can be set to `env(safe-area-inset-top)`.
29
+ * @prop --dock-padding-right: Space of the right side of the Dock. Can be used with environment variables, to take into account safe areas on mobile devices with rounded screen corners or those that have a "notch". For instance can be set to `env(safe-area-inset-right)`.
30
+ * @prop --dock-padding-bottom: Space of the bottom side of the Dock. Can be used with environment variables, to take into account safe areas on mobile devices with rounded screen corners or those that have a "notch". For instance can be set to `env(safe-area-inset-bottom)`.
31
+ * @prop --dock-padding-left: Space of the left side of the Dock. Can be used with environment variables, to take into account safe areas on mobile devices with rounded screen corners or those that have a "notch". For instance can be set to `env(safe-area-inset-left)`.
20
32
  * @prop --popover-surface-width: Defines the width of the popover that is opened for dock items with custom components. Defaults to `auto`.
21
33
  */
22
34
  :host(limel-dock) {
35
+ --badge-background-color: rgb(var(--color-red-default));
36
+ --badge-text-color: rgb(var(--color-white));
23
37
  --dock-item-height: 2.75rem;
24
38
  --dock-padding: 0.25rem;
25
39
  --dock-expand-shrink-button-height: 1rem;
@@ -37,6 +51,10 @@
37
51
  flex-direction: column;
38
52
  background-color: var(--dock-background-color, rgb(var(--contrast-100)));
39
53
  box-shadow: var(--shadow-depth-8);
54
+ padding-top: var(--dock-padding-top);
55
+ padding-right: var(--dock-padding-right);
56
+ padding-bottom: var(--dock-padding-bottom);
57
+ padding-left: var(--dock-padding-left);
40
58
  }
41
59
 
42
60
  :host(limel-dock:not(.has-mobile-layout)) {
@@ -76,9 +94,9 @@ nav::-webkit-scrollbar {
76
94
  all: unset;
77
95
  box-sizing: border-box;
78
96
  transition: color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease, transform 0.1s ease-out;
97
+ cursor: pointer;
79
98
  color: var(--mdc-theme-on-surface);
80
99
  background-color: transparent;
81
- cursor: pointer;
82
100
  display: flex;
83
101
  justify-content: center;
84
102
  align-items: center;
@@ -3,6 +3,7 @@ const DEFAULT_MOBILE_BREAKPOINT = 700;
3
3
  /**
4
4
  * @exampleComponent limel-example-dock-basic
5
5
  * @exampleComponent limel-example-dock-custom-component
6
+ * @exampleComponent limel-example-dock-notification
6
7
  * @exampleComponent limel-example-dock-mobile
7
8
  * @exampleComponent limel-example-dock-expanded
8
9
  * @exampleComponent limel-example-dock-colors-css
@@ -303,7 +303,7 @@ export class File {
303
303
  "mutable": false,
304
304
  "complexType": {
305
305
  "original": "Languages",
306
- "resolved": "\"da\" | \"en\" | \"fi\" | \"nb\" | \"nl\" | \"no\" | \"sv\"",
306
+ "resolved": "\"da\" | \"de\" | \"en\" | \"fi\" | \"fr\" | \"nb\" | \"nl\" | \"no\" | \"sv\"",
307
307
  "references": {
308
308
  "Languages": {
309
309
  "location": "import",
@@ -66,6 +66,8 @@
66
66
 
67
67
  /**
68
68
  * @prop --form-body-padding: space around content of the form
69
+ * @prop --form-background-color-of-even-rows: Background of even rows in the form, when layout type is `row`. Defaults to `transparent`.
70
+ * @prop --form-background-color-of-odd-rows:Background of odd rows in the form, when layout type is `row`. Defaults to `--contrast-200`.
69
71
  */
70
72
  .mdc-typography {
71
73
  -moz-osx-font-smoothing: grayscale;
@@ -435,7 +437,7 @@
435
437
 
436
438
  .limel-form-layout--grid {
437
439
  --gap: 1rem;
438
- --min-height-of-one-row: 4.71rem;
440
+ --min-height-of-one-row: 3.5rem;
439
441
  display: grid;
440
442
  gap: var(--gap);
441
443
  padding: var(--form-body-padding, 1rem);
@@ -505,9 +507,7 @@
505
507
 
506
508
  .limel-form-layout--grid limel-checkbox,
507
509
  .limel-form-layout--grid limel-switch {
508
- min-height: calc(
509
- var(--min-height-of-one-row) - 0.9375rem
510
- );
510
+ min-height: var(--min-height-of-one-row);
511
511
  }
512
512
  .limel-form-layout--grid limel-checkbox {
513
513
  margin-top: 0.5rem;
@@ -536,22 +536,28 @@
536
536
  position: relative;
537
537
  }
538
538
 
539
+ .form-group .mdc-typography--headline1,
540
+ .form-group .mdc-typography--body1 {
541
+ color: rgb(var(--contrast-1100));
542
+ }
539
543
  .form-group .mdc-typography--headline1 {
540
544
  --mdc-typography-headline1-font-size: 2rem;
541
545
  --mdc-typography-headline1-line-height: 2.25rem;
542
546
  --mdc-typography-headline1-letter-spacing: -0.0625rem;
543
547
  --mdc-typography-headline1-font-weight: 400;
544
- color: rgb(var(--contrast-1000));
545
548
  margin-top: 1.5rem;
546
549
  margin-bottom: 0.5rem;
547
550
  }
551
+ .form-group .form-group .mdc-typography--headline1,
552
+ .form-group .form-group .mdc-typography--body1 {
553
+ color: rgb(var(--contrast-1200));
554
+ }
548
555
  .form-group .form-group .mdc-typography--headline1 {
549
556
  --mdc-typography-headline1-font-size: 1.625rem;
550
557
  --mdc-typography-headline1-line-height: 1.25rem;
551
558
  --mdc-typography-headline1-font-weight: 300;
552
559
  margin-top: 1.25rem;
553
560
  margin-bottom: 0.5rem;
554
- color: rgb(var(--contrast-1100));
555
561
  }
556
562
  .form-group .form-group .mdc-typography--headline1:before {
557
563
  content: "";
@@ -567,25 +573,106 @@
567
573
  border-radius: 0.125rem;
568
574
  opacity: 0.6;
569
575
  }
576
+ .form-group .form-group .form-group .mdc-typography--headline1,
577
+ .form-group .form-group .form-group .mdc-typography--body1 {
578
+ color: rgb(var(--contrast-1300));
579
+ }
570
580
  .form-group .form-group .form-group .mdc-typography--headline1 {
571
581
  --mdc-typography-headline1-font-size: 1.375rem;
572
582
  --mdc-typography-headline1-line-height: 1.5rem;
573
583
  --mdc-typography-headline1-font-weight: 300;
574
584
  margin-top: 1rem;
575
585
  margin-bottom: 0.5rem;
576
- color: rgb(var(--contrast-1200));
577
586
  }
578
587
  .form-group .form-group .form-group .mdc-typography--headline1:before {
579
588
  display: none;
580
589
  }
590
+ .form-group .form-group .form-group .form-group .mdc-typography--headline1,
591
+ .form-group .form-group .form-group .form-group .mdc-typography--body1 {
592
+ color: rgb(var(--contrast-1400));
593
+ }
581
594
  .form-group .form-group .form-group .form-group .mdc-typography--headline1 {
582
595
  --mdc-typography-headline1-font-size: 1.25rem;
583
596
  --mdc-typography-headline1-line-height: 1.25rem;
584
597
  --mdc-typography-headline1-font-weight: 300;
585
598
  margin-top: 1rem;
586
599
  margin-bottom: 0.5rem;
587
- color: rgb(var(--contrast-1200));
588
600
  }
589
601
  .form-group .form-group .form-group .form-group .mdc-typography--headline1:before {
590
602
  display: none;
603
+ }
604
+
605
+ /**
606
+ * Note! This file is exported to `dist/scss/` in the published
607
+ * node module, for consumer projects to import.
608
+ * That means this file cannot import from any file that isn't
609
+ * also exported, keeping the same relative path.
610
+ *
611
+ * Or, just don't import anything, that works too.
612
+ */
613
+ .limel-form-row--layout {
614
+ --limel-form-row-border-radius: 0.375rem;
615
+ --limel-form-row-icon-size: 1.75rem;
616
+ --limel-form-row-main-information-gap: 0.5rem;
617
+ display: flex;
618
+ flex-direction: column;
619
+ }
620
+ .limel-form-row--layout .row {
621
+ display: flex;
622
+ gap: 0.5rem;
623
+ flex-direction: column;
624
+ padding: 0.5rem 1rem;
625
+ }
626
+ .limel-form-row--layout .row:nth-child(odd) {
627
+ background-color: var(--form-background-color-of-odd-rows, rgb(var(--contrast-200)));
628
+ }
629
+ .limel-form-row--layout .row:nth-child(even) {
630
+ background-color: var(--form-background-color-of-even-rows, transparent);
631
+ }
632
+ .limel-form-row--layout .row:first-child {
633
+ border-radius: var(--limel-form-row-border-radius) var(--limel-form-row-border-radius) 0 0;
634
+ }
635
+ .limel-form-row--layout .row:last-child {
636
+ border-radius: 0 0 var(--limel-form-row-border-radius) var(--limel-form-row-border-radius);
637
+ }
638
+ .limel-form-row--layout .main-information {
639
+ display: flex;
640
+ flex-direction: row;
641
+ align-items: center;
642
+ gap: var(--limel-form-row-main-information-gap);
643
+ min-width: 0;
644
+ }
645
+ .limel-form-row--layout limel-icon {
646
+ color: rgb(var(--contrast-1200));
647
+ width: var(--limel-form-row-icon-size);
648
+ flex-shrink: 0;
649
+ min-width: 0;
650
+ }
651
+ .limel-form-row--layout .title {
652
+ overflow: hidden;
653
+ white-space: nowrap;
654
+ text-overflow: ellipsis;
655
+ margin: 0;
656
+ font-weight: normal;
657
+ flex-grow: 1;
658
+ color: var(--mdc-theme-on-surface);
659
+ font-size: var(--mdc-typography-subtitle1-font-size, 0.875rem);
660
+ }
661
+ .limel-form-row--layout .description {
662
+ margin: 0;
663
+ color: var(--mdc-theme-text-secondary-on-background);
664
+ font-size: var(--mdc-typography-body2-font-size, 0.8125rem);
665
+ line-height: 1.5;
666
+ }
667
+ .limel-form-row--layout .has-icon .description {
668
+ padding-left: calc(var(--limel-form-row-icon-size) + var(--limel-form-row-main-information-gap));
669
+ }
670
+ .limel-form-row--layout .form-group.field {
671
+ flex-shrink: 0;
672
+ display: flex;
673
+ align-content: center;
674
+ }
675
+ .limel-form-row--layout .form-group.field limel-slider {
676
+ min-width: 8rem;
677
+ display: block;
591
678
  }
@@ -23,6 +23,7 @@ import { mapValues } from 'lodash-es';
23
23
  * @exampleComponent limel-example-form-span-fields
24
24
  * @exampleComponent limel-example-custom-error-message
25
25
  * @exampleComponent limel-example-server-errors
26
+ * @exampleComponent limel-example-form-row-layout
26
27
  */
27
28
  export class Form {
28
29
  constructor() {
@@ -8,4 +8,12 @@ export var FormLayoutType;
8
8
  * Render the form fields using a responsive grid layout
9
9
  */
10
10
  FormLayoutType["Grid"] = "grid";
11
+ /**
12
+ * Render the form fields in full-width rows.
13
+ * Each row can have a leading `icon`, and a field.
14
+ * `title` and `description` provided by the schema will be placed
15
+ * on the row itself, and not on the field.
16
+ * This layout is good for creating UIs for user settings pages.
17
+ */
18
+ FormLayoutType["Row"] = "row";
11
19
  })(FormLayoutType || (FormLayoutType = {}));
@@ -0,0 +1,47 @@
1
+ import React from 'react';
2
+ export class Row extends React.Component {
3
+ constructor(props) {
4
+ super(props);
5
+ this.props = props;
6
+ }
7
+ render() {
8
+ const classes = ['row'];
9
+ if (this.icon) {
10
+ classes.push('has-icon');
11
+ }
12
+ return React.createElement('div', {
13
+ className: classes.join(' '),
14
+ }, this.renderMainInformation(), this.renderDescription());
15
+ }
16
+ renderIcon() {
17
+ if (this.icon) {
18
+ return React.createElement('limel-icon', {
19
+ name: this.icon,
20
+ });
21
+ }
22
+ }
23
+ renderMainInformation() {
24
+ return React.createElement('div', { className: 'main-information' }, this.renderIcon(), this.renderTitle(), this.renderChildren());
25
+ }
26
+ renderTitle() {
27
+ var _a;
28
+ return React.createElement('h1', { className: 'title' }, (_a = this.schema) === null || _a === void 0 ? void 0 : _a.title);
29
+ }
30
+ renderDescription() {
31
+ var _a;
32
+ if ((_a = this.schema) === null || _a === void 0 ? void 0 : _a.description) {
33
+ return React.createElement('p', { className: 'description' }, this.schema.description);
34
+ }
35
+ }
36
+ renderChildren() {
37
+ const children = this.props.children;
38
+ return Object.assign(Object.assign({}, children), { props: Object.assign(Object.assign({}, children.props), { schema: Object.assign(Object.assign({}, children.props.schema), { title: null, description: null }) }) });
39
+ }
40
+ get schema() {
41
+ return this.props.children.props.schema;
42
+ }
43
+ get icon() {
44
+ var _a, _b, _c;
45
+ return (_c = (_b = (_a = this.schema) === null || _a === void 0 ? void 0 : _a.lime) === null || _b === void 0 ? void 0 : _b.layout) === null || _c === void 0 ? void 0 : _c.icon;
46
+ }
47
+ }
@@ -2,6 +2,7 @@ import React from 'react';
2
2
  import { FormLayoutType } from '../form.types';
3
3
  import { renderDescription, renderTitle } from './common';
4
4
  import { GridLayout } from './grid-layout';
5
+ import { RowLayout } from './row-layout';
5
6
  export const ObjectFieldTemplate = (props) => {
6
7
  const id = props.idSchema.$id;
7
8
  if (id === 'root' || !isCollapsible(props.schema)) {
@@ -41,6 +42,7 @@ function renderLayout(properties, layout) {
41
42
  const layouts = {
42
43
  default: renderDefaultLayout,
43
44
  grid: renderGridLayout,
45
+ row: renderRowLayout,
44
46
  };
45
47
  return layouts[type](properties, layout);
46
48
  }
@@ -54,6 +56,9 @@ function renderGridLayout(properties, layout) {
54
56
  options: layout,
55
57
  }, properties.map((element) => element.content));
56
58
  }
59
+ function renderRowLayout(properties) {
60
+ return React.createElement(RowLayout, {}, properties.map((element) => element.content));
61
+ }
57
62
  function isCollapsible(schema) {
58
63
  var _a;
59
64
  return !!((_a = schema.lime) === null || _a === void 0 ? void 0 : _a.collapsible);
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ import { Row } from '../row/row';
3
+ export class RowLayout extends React.Component {
4
+ constructor(props) {
5
+ super(props);
6
+ this.props = props;
7
+ this.elementRef = React.createRef();
8
+ }
9
+ render() {
10
+ const classes = ['limel-form-row--layout'];
11
+ return React.createElement('div', {
12
+ className: classes.join(' '),
13
+ ref: this.elementRef,
14
+ }, this.props.children.map((child, index) => {
15
+ return React.createElement(Row, {
16
+ key: index.toString(),
17
+ }, child);
18
+ }));
19
+ }
20
+ }
@@ -1,3 +1,11 @@
1
+ /**
2
+ * Note! This file is exported to `dist/scss/` in the published
3
+ * node module, for consumer projects to import.
4
+ * That means this file cannot import from any file that isn't
5
+ * also exported, keeping the same relative path.
6
+ *
7
+ * Or, just don't import anything, that works too.
8
+ */
1
9
  /*
2
10
  * This file is imported into every component!
3
11
  *
@@ -73,7 +81,7 @@
73
81
  font-weight: bold;
74
82
  }
75
83
 
76
- .actions {
84
+ slot[name=actions] {
77
85
  flex-shrink: 0;
78
86
  }
79
87
 
@@ -95,7 +103,7 @@
95
103
  :host(limel-header.has-responsive-layout) .headings {
96
104
  padding-right: 0.5rem;
97
105
  }
98
- :host(limel-header.has-responsive-layout) .actions {
106
+ :host(limel-header.has-responsive-layout) slot[name=actions] {
99
107
  display: flex;
100
108
  justify-content: flex-end;
101
109
  }