@limetech/lime-elements 40.18.3 → 40.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (352) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/dist/cjs/controlled-element-Ajn5eA-q.js +26 -0
  3. package/dist/cjs/{index-zZvs6xK-.js → index-DIiA99Er.js} +271 -71
  4. package/dist/cjs/keyboard-navigation-VyqkMDKy.js +152 -0
  5. package/dist/cjs/lime-elements.cjs.js +1 -1
  6. package/dist/cjs/limel-3d-hover-effect-glow.cjs.entry.js +1 -1
  7. package/dist/cjs/limel-action-bar_3.cjs.entry.js +4 -4
  8. package/dist/cjs/limel-ai-avatar.cjs.entry.js +2 -2
  9. package/dist/cjs/{limel-breadcrumbs_6.cjs.entry.js → limel-badge_7.cjs.entry.js} +98 -12
  10. package/dist/cjs/limel-banner.cjs.entry.js +1 -1
  11. package/dist/cjs/limel-button-group.cjs.entry.js +1 -1
  12. package/dist/cjs/limel-button.cjs.entry.js +2 -2
  13. package/dist/cjs/limel-callout.cjs.entry.js +2 -2
  14. package/dist/cjs/limel-card.cjs.entry.js +1 -1
  15. package/dist/cjs/limel-chart.cjs.entry.js +51362 -270
  16. package/dist/cjs/limel-checkbox.cjs.entry.js +1 -1
  17. package/dist/cjs/limel-chip-set.cjs.entry.js +23 -4
  18. package/dist/cjs/limel-chip_2.cjs.entry.js +2 -2
  19. package/dist/cjs/limel-circular-progress.cjs.entry.js +1 -1
  20. package/dist/cjs/limel-code-diff.cjs.entry.js +2 -2
  21. package/dist/cjs/limel-code-editor.cjs.entry.js +2 -2
  22. package/dist/cjs/limel-collapsible-section.cjs.entry.js +2 -2
  23. package/dist/cjs/limel-color-picker-palette.cjs.entry.js +2 -2
  24. package/dist/cjs/limel-color-picker.cjs.entry.js +1 -1
  25. package/dist/cjs/limel-dialog.cjs.entry.js +2 -2
  26. package/dist/cjs/limel-dock.cjs.entry.js +3 -3
  27. package/dist/cjs/limel-drag-handle_2.cjs.entry.js +4 -4
  28. package/dist/cjs/limel-email-viewer.cjs.entry.js +2 -2
  29. package/dist/cjs/limel-file-dropzone_2.cjs.entry.js +2 -2
  30. package/dist/cjs/limel-file-viewer.cjs.entry.js +2 -2
  31. package/dist/cjs/limel-file.cjs.entry.js +2 -2
  32. package/dist/cjs/limel-flatpickr-adapter.cjs.entry.js +2 -2
  33. package/dist/cjs/limel-flex-container.cjs.entry.js +1 -1
  34. package/dist/cjs/limel-form-header.cjs.entry.js +1 -1
  35. package/dist/cjs/limel-form.cjs.entry.js +1 -1
  36. package/dist/cjs/limel-grid.cjs.entry.js +1 -1
  37. package/dist/cjs/limel-header.cjs.entry.js +1 -1
  38. package/dist/cjs/limel-help_2.cjs.entry.js +3 -3
  39. package/dist/cjs/limel-helper-line_3.cjs.entry.js +6 -5
  40. package/dist/cjs/limel-hotkey_4.cjs.entry.js +5 -5
  41. package/dist/cjs/limel-icon-button.cjs.entry.js +1 -1
  42. package/dist/cjs/limel-icon.cjs.entry.js +1 -1
  43. package/dist/cjs/limel-info-tile.cjs.entry.js +2 -2
  44. package/dist/cjs/limel-list-item.cjs.entry.js +3 -3
  45. package/dist/cjs/limel-markdown.cjs.entry.js +4 -4
  46. package/dist/cjs/limel-masonry-layout.cjs.entry.js +1 -1
  47. package/dist/cjs/limel-menu-item-meta.cjs.entry.js +1 -1
  48. package/dist/cjs/limel-pagination-jump.cjs.entry.js +1 -1
  49. package/dist/cjs/limel-pagination.cjs.entry.js +2 -2
  50. package/dist/cjs/limel-picker.cjs.entry.js +51 -24
  51. package/dist/cjs/limel-popover_2.cjs.entry.js +4 -11
  52. package/dist/cjs/limel-profile-picture.cjs.entry.js +1 -1
  53. package/dist/cjs/limel-prosemirror-adapter.cjs.entry.js +4 -4
  54. package/dist/cjs/limel-radio-button-group.cjs.entry.js +1 -1
  55. package/dist/cjs/limel-radio-button.cjs.entry.js +2 -2
  56. package/dist/cjs/limel-resize-handle.cjs.entry.js +2 -2
  57. package/dist/cjs/limel-select.cjs.entry.js +1 -1
  58. package/dist/cjs/limel-shortcut.cjs.entry.js +1 -1
  59. package/dist/cjs/limel-side-panel.cjs.entry.js +2 -2
  60. package/dist/cjs/limel-slider.cjs.entry.js +4 -4
  61. package/dist/cjs/limel-snackbar.cjs.entry.js +3 -3
  62. package/dist/cjs/limel-split-button.cjs.entry.js +2 -2
  63. package/dist/cjs/limel-switch.cjs.entry.js +1 -1
  64. package/dist/cjs/limel-tab-bar.cjs.entry.js +7 -150
  65. package/dist/cjs/limel-tab-panel.cjs.entry.js +1 -1
  66. package/dist/cjs/limel-table.cjs.entry.js +3 -3
  67. package/dist/cjs/limel-text-editor-link-menu.cjs.entry.js +4 -4
  68. package/dist/cjs/limel-text-editor.cjs.entry.js +1 -1
  69. package/dist/cjs/live-message-BNl3Ihcz.js +65 -0
  70. package/dist/cjs/loader.cjs.js +1 -1
  71. package/dist/cjs/{markdown-exporter-VtX_2D1d.js → markdown-exporter-BWS2EBxq.js} +2 -2
  72. package/dist/cjs/{markdown-parser-BYtTHL4W.js → markdown-parser-toAp9-Eq.js} +1 -1
  73. package/dist/cjs/{translations-CLSqfR3x.js → translations-CqJEWcfw.js} +8 -0
  74. package/dist/collection/components/3d-hover-effect-glow/3d-hover-effect-glow.js +1 -1
  75. package/dist/collection/components/action-bar/action-bar-item/action-bar-overflow-menu.js +1 -1
  76. package/dist/collection/components/action-bar/action-bar.js +2 -2
  77. package/dist/collection/components/ai-avatar/ai-avatar.js +1 -1
  78. package/dist/collection/components/badge/badge.js +2 -2
  79. package/dist/collection/components/banner/banner.js +1 -1
  80. package/dist/collection/components/breadcrumbs/breadcrumbs.js +1 -1
  81. package/dist/collection/components/button/button.js +2 -2
  82. package/dist/collection/components/button-group/button-group.js +1 -1
  83. package/dist/collection/components/callout/callout.js +1 -1
  84. package/dist/collection/components/card/card.js +1 -1
  85. package/dist/collection/components/chart/chart.css +63 -927
  86. package/dist/collection/components/chart/chart.js +330 -288
  87. package/dist/collection/components/chart/options.js +572 -0
  88. package/dist/collection/components/chart/scale.js +193 -0
  89. package/dist/collection/components/chart/theme.js +133 -0
  90. package/dist/collection/components/checkbox/checkbox.js +1 -1
  91. package/dist/collection/components/chip/chip.js +1 -1
  92. package/dist/collection/components/chip-set/chip-set.js +66 -3
  93. package/dist/collection/components/circular-progress/circular-progress.js +1 -1
  94. package/dist/collection/components/code-diff/code-diff.js +1 -1
  95. package/dist/collection/components/code-editor/code-editor.js +1 -1
  96. package/dist/collection/components/collapsible-section/collapsible-section.js +1 -1
  97. package/dist/collection/components/color-picker/color-picker-palette.js +2 -2
  98. package/dist/collection/components/color-picker/color-picker.js +1 -1
  99. package/dist/collection/components/date-picker/flatpickr-adapter/flatpickr-adapter.js +1 -1
  100. package/dist/collection/components/dialog/dialog.js +2 -2
  101. package/dist/collection/components/dock/dock.js +2 -2
  102. package/dist/collection/components/drag-handle/drag-handle.js +1 -1
  103. package/dist/collection/components/email-viewer/email-viewer.js +1 -1
  104. package/dist/collection/components/file/file.js +1 -1
  105. package/dist/collection/components/file-dropzone/file-dropzone.js +1 -1
  106. package/dist/collection/components/file-input/file-input.js +1 -1
  107. package/dist/collection/components/flex-container/flex-container.js +1 -1
  108. package/dist/collection/components/form/form.js +1 -1
  109. package/dist/collection/components/form-header/form-header.js +1 -1
  110. package/dist/collection/components/grid/grid.js +1 -1
  111. package/dist/collection/components/header/header.js +1 -1
  112. package/dist/collection/components/help/help-content.js +1 -1
  113. package/dist/collection/components/help/help.js +2 -2
  114. package/dist/collection/components/helper-line/helper-line.js +2 -2
  115. package/dist/collection/components/hotkey/hotkey.js +1 -1
  116. package/dist/collection/components/icon/icon.js +1 -1
  117. package/dist/collection/components/icon-button/icon-button.js +1 -1
  118. package/dist/collection/components/info-tile/info-tile.js +2 -2
  119. package/dist/collection/components/input-field/input-field.css +13 -0
  120. package/dist/collection/components/input-field/input-field.js +86 -5
  121. package/dist/collection/components/list/list-renderer.js +1 -1
  122. package/dist/collection/components/list/list.js +22 -1
  123. package/dist/collection/components/list-item/list-item.js +2 -2
  124. package/dist/collection/components/list-item/menu-item-meta/menu-item-meta.js +1 -1
  125. package/dist/collection/components/markdown/markdown.js +1 -1
  126. package/dist/collection/components/masonry-layout/masonry-layout.js +1 -1
  127. package/dist/collection/components/menu/menu.js +1 -1
  128. package/dist/collection/components/menu-list/menu-list.js +1 -1
  129. package/dist/collection/components/menu-surface/menu-surface.js +1 -1
  130. package/dist/collection/components/notched-outline/notched-outline.js +1 -1
  131. package/dist/collection/components/pagination/pagination.js +1 -1
  132. package/dist/collection/components/picker/picker.css +112 -0
  133. package/dist/collection/components/picker/picker.js +49 -20
  134. package/dist/collection/components/popover/popover.js +3 -10
  135. package/dist/collection/components/popover-surface/popover-surface.js +1 -1
  136. package/dist/collection/components/portal/portal.js +1 -1
  137. package/dist/collection/components/radio-button-group/radio-button-group.js +1 -1
  138. package/dist/collection/components/radio-button-group/radio-button.js +2 -2
  139. package/dist/collection/components/resize-handle/resize-handle.js +1 -1
  140. package/dist/collection/components/scroller/scroller.js +3 -3
  141. package/dist/collection/components/select/select.js +1 -1
  142. package/dist/collection/components/shortcut/shortcut.js +1 -1
  143. package/dist/collection/components/side-panel/side-panel.js +1 -1
  144. package/dist/collection/components/slider/slider.js +3 -3
  145. package/dist/collection/components/snackbar/snackbar.js +2 -2
  146. package/dist/collection/components/spinner/spinner.js +1 -1
  147. package/dist/collection/components/split-button/split-button.js +2 -2
  148. package/dist/collection/components/switch/switch.js +1 -1
  149. package/dist/collection/components/tab-bar/tab-bar.js +1 -1
  150. package/dist/collection/components/tab-panel/tab-panel.js +1 -1
  151. package/dist/collection/components/table/table.js +2 -2
  152. package/dist/collection/components/text-editor/link-menu/editor-link-menu.js +3 -3
  153. package/dist/collection/components/text-editor/prosemirror-adapter/prosemirror-adapter.js +1 -1
  154. package/dist/collection/components/text-editor/text-editor.js +1 -1
  155. package/dist/collection/components/tooltip/tooltip-content.js +1 -1
  156. package/dist/collection/components/tooltip/tooltip.js +2 -2
  157. package/dist/collection/translations/da.js +1 -0
  158. package/dist/collection/translations/de.js +1 -0
  159. package/dist/collection/translations/en.js +1 -0
  160. package/dist/collection/translations/fi.js +1 -0
  161. package/dist/collection/translations/fr.js +1 -0
  162. package/dist/collection/translations/nl.js +1 -0
  163. package/dist/collection/translations/no.js +1 -0
  164. package/dist/collection/translations/sv.js +1 -0
  165. package/dist/collection/util/controlled-element.js +22 -0
  166. package/dist/collection/util/live-message.js +30 -0
  167. package/dist/esm/controlled-element-ByOXsysp.js +24 -0
  168. package/dist/esm/{index-BN64nlbO.js → index-CofmbCdQ.js} +271 -71
  169. package/dist/esm/keyboard-navigation-BF7IKmnG.js +147 -0
  170. package/dist/esm/{keycodes-Bu6-QXrA.js → keycodes-DQ5DmW_Y.js} +1 -1
  171. package/dist/esm/lime-elements.js +1 -1
  172. package/dist/esm/limel-3d-hover-effect-glow.entry.js +1 -1
  173. package/dist/esm/limel-action-bar_3.entry.js +4 -4
  174. package/dist/esm/limel-ai-avatar.entry.js +2 -2
  175. package/dist/esm/{limel-breadcrumbs_6.entry.js → limel-badge_7.entry.js} +100 -15
  176. package/dist/esm/limel-banner.entry.js +1 -1
  177. package/dist/esm/limel-button-group.entry.js +1 -1
  178. package/dist/esm/limel-button.entry.js +2 -2
  179. package/dist/esm/limel-callout.entry.js +2 -2
  180. package/dist/esm/limel-card.entry.js +1 -1
  181. package/dist/esm/limel-chart.entry.js +51363 -271
  182. package/dist/esm/limel-checkbox.entry.js +1 -1
  183. package/dist/esm/limel-chip-set.entry.js +24 -5
  184. package/dist/esm/limel-chip_2.entry.js +3 -3
  185. package/dist/esm/limel-circular-progress.entry.js +1 -1
  186. package/dist/esm/limel-code-diff.entry.js +2 -2
  187. package/dist/esm/limel-code-editor.entry.js +2 -2
  188. package/dist/esm/limel-collapsible-section.entry.js +2 -2
  189. package/dist/esm/limel-color-picker-palette.entry.js +2 -2
  190. package/dist/esm/limel-color-picker.entry.js +1 -1
  191. package/dist/esm/limel-dialog.entry.js +2 -2
  192. package/dist/esm/limel-dock.entry.js +3 -3
  193. package/dist/esm/limel-drag-handle_2.entry.js +4 -4
  194. package/dist/esm/limel-email-viewer.entry.js +2 -2
  195. package/dist/esm/limel-file-dropzone_2.entry.js +2 -2
  196. package/dist/esm/limel-file-viewer.entry.js +2 -2
  197. package/dist/esm/limel-file.entry.js +2 -2
  198. package/dist/esm/limel-flatpickr-adapter.entry.js +2 -2
  199. package/dist/esm/limel-flex-container.entry.js +1 -1
  200. package/dist/esm/limel-form-header.entry.js +1 -1
  201. package/dist/esm/limel-form.entry.js +1 -1
  202. package/dist/esm/limel-grid.entry.js +1 -1
  203. package/dist/esm/limel-header.entry.js +1 -1
  204. package/dist/esm/limel-help_2.entry.js +3 -3
  205. package/dist/esm/limel-helper-line_3.entry.js +6 -5
  206. package/dist/esm/limel-hotkey_4.entry.js +5 -5
  207. package/dist/esm/limel-icon-button.entry.js +1 -1
  208. package/dist/esm/limel-icon.entry.js +1 -1
  209. package/dist/esm/limel-info-tile.entry.js +2 -2
  210. package/dist/esm/limel-list-item.entry.js +3 -3
  211. package/dist/esm/limel-markdown.entry.js +4 -4
  212. package/dist/esm/limel-masonry-layout.entry.js +1 -1
  213. package/dist/esm/limel-menu-item-meta.entry.js +1 -1
  214. package/dist/esm/limel-pagination-jump.entry.js +2 -2
  215. package/dist/esm/limel-pagination.entry.js +2 -2
  216. package/dist/esm/limel-picker.entry.js +52 -25
  217. package/dist/esm/limel-popover_2.entry.js +5 -12
  218. package/dist/esm/limel-profile-picture.entry.js +1 -1
  219. package/dist/esm/limel-prosemirror-adapter.entry.js +4 -4
  220. package/dist/esm/limel-radio-button-group.entry.js +1 -1
  221. package/dist/esm/limel-radio-button.entry.js +2 -2
  222. package/dist/esm/limel-resize-handle.entry.js +3 -3
  223. package/dist/esm/limel-select.entry.js +3 -3
  224. package/dist/esm/limel-shortcut.entry.js +1 -1
  225. package/dist/esm/limel-side-panel.entry.js +3 -3
  226. package/dist/esm/limel-slider.entry.js +4 -4
  227. package/dist/esm/limel-snackbar.entry.js +3 -3
  228. package/dist/esm/limel-split-button.entry.js +2 -2
  229. package/dist/esm/limel-switch.entry.js +1 -1
  230. package/dist/esm/limel-tab-bar.entry.js +3 -146
  231. package/dist/esm/limel-tab-panel.entry.js +1 -1
  232. package/dist/esm/limel-table.entry.js +3 -3
  233. package/dist/esm/limel-text-editor-link-menu.entry.js +5 -5
  234. package/dist/esm/limel-text-editor.entry.js +1 -1
  235. package/dist/esm/live-message-BQAYeNiX.js +62 -0
  236. package/dist/esm/loader.js +1 -1
  237. package/dist/esm/{markdown-exporter-tb8ft8Gq.js → markdown-exporter-B2vFxSLw.js} +2 -2
  238. package/dist/esm/{markdown-parser-DFP65EFu.js → markdown-parser-Cw8iW5R9.js} +1 -1
  239. package/dist/esm/{translations-Drl5LNAD.js → translations-kct5Kybu.js} +8 -0
  240. package/dist/esm/{typeahead-DOlnT3wh.js → typeahead-B4PwrlM3.js} +1 -1
  241. package/dist/lime-elements/lime-elements.esm.js +1 -1
  242. package/dist/lime-elements/{p-a608ebe3.entry.js → p-0319f07f.entry.js} +1 -1
  243. package/dist/lime-elements/{p-300f80e7.entry.js → p-07f3565b.entry.js} +1 -1
  244. package/dist/lime-elements/{p-a7a84633.entry.js → p-1a7d1d2b.entry.js} +1 -1
  245. package/dist/lime-elements/{p-f8566c5b.entry.js → p-1d9bc526.entry.js} +1 -1
  246. package/dist/lime-elements/{p-e0ab0046.entry.js → p-1e0ced6a.entry.js} +1 -1
  247. package/dist/lime-elements/{p-dd383c12.entry.js → p-22e9e327.entry.js} +1 -1
  248. package/dist/lime-elements/{p-65eafc85.entry.js → p-23067836.entry.js} +1 -1
  249. package/dist/lime-elements/{p-5f2a34ed.entry.js → p-28957b5c.entry.js} +1 -1
  250. package/dist/lime-elements/{p-3ae5fb67.entry.js → p-39d1e157.entry.js} +1 -1
  251. package/dist/lime-elements/{p-d0908a85.entry.js → p-3ac39bd5.entry.js} +2 -2
  252. package/dist/lime-elements/{p-7f1a1ed5.entry.js → p-3f7fa772.entry.js} +1 -1
  253. package/dist/lime-elements/{p-b80433be.entry.js → p-40940a6c.entry.js} +1 -1
  254. package/dist/lime-elements/{p-7235d147.entry.js → p-438fe49b.entry.js} +1 -1
  255. package/dist/lime-elements/{p-0c314c3c.entry.js → p-47fe76a8.entry.js} +1 -1
  256. package/dist/lime-elements/{p-22c44279.entry.js → p-48a412ed.entry.js} +1 -1
  257. package/dist/lime-elements/{p-eb5a18ff.entry.js → p-496b2437.entry.js} +1 -1
  258. package/dist/lime-elements/{p-5d9a2877.entry.js → p-4c080cd9.entry.js} +1 -1
  259. package/dist/lime-elements/{p-be0a8125.entry.js → p-54537c85.entry.js} +1 -1
  260. package/dist/lime-elements/{p-2c29c27f.entry.js → p-55fa19ae.entry.js} +1 -1
  261. package/dist/lime-elements/{p-fad7a3fa.entry.js → p-56e2fa48.entry.js} +1 -1
  262. package/dist/lime-elements/{p-da4b4a81.entry.js → p-5dce791c.entry.js} +1 -1
  263. package/dist/lime-elements/{p-67acf39d.entry.js → p-5e408c27.entry.js} +1 -1
  264. package/dist/lime-elements/{p-b983531f.entry.js → p-6053608a.entry.js} +1 -1
  265. package/dist/lime-elements/{p-164e1ad0.entry.js → p-6ae093c8.entry.js} +1 -1
  266. package/dist/lime-elements/{p-29815107.entry.js → p-6d2d25b9.entry.js} +1 -1
  267. package/dist/lime-elements/{p-9e30d206.entry.js → p-6d9b89db.entry.js} +1 -1
  268. package/dist/lime-elements/{p-be2b8c1e.entry.js → p-6e9eeb0a.entry.js} +1 -1
  269. package/dist/lime-elements/{p-68129487.entry.js → p-764d2f86.entry.js} +1 -1
  270. package/dist/lime-elements/{p-49a53f0b.entry.js → p-7ab726c2.entry.js} +1 -1
  271. package/dist/lime-elements/{p-cced022b.entry.js → p-7b87e547.entry.js} +1 -1
  272. package/dist/lime-elements/{p-586ee40c.entry.js → p-7d0ffc60.entry.js} +1 -1
  273. package/dist/lime-elements/p-7fcd48c6.entry.js +1 -0
  274. package/dist/lime-elements/{p-7d27d572.entry.js → p-814b4934.entry.js} +1 -1
  275. package/dist/lime-elements/p-8514480b.entry.js +56 -0
  276. package/dist/lime-elements/p-8d602078.entry.js +1 -0
  277. package/dist/lime-elements/p-8fe28845.entry.js +1 -0
  278. package/dist/lime-elements/{p-f35880ef.entry.js → p-909466b8.entry.js} +1 -1
  279. package/dist/lime-elements/{p-545c087b.entry.js → p-933ffaa8.entry.js} +1 -1
  280. package/dist/lime-elements/{p-cc8d6198.entry.js → p-95a486c8.entry.js} +1 -1
  281. package/dist/lime-elements/{p-565c85ac.entry.js → p-9b2623fe.entry.js} +1 -1
  282. package/dist/lime-elements/{p-C0wwdPYT.js → p-Bd37Vplf.js} +2 -2
  283. package/dist/lime-elements/p-ByOXsysp.js +1 -0
  284. package/dist/lime-elements/{p-_UXAljNc.js → p-CbPYnlF-.js} +1 -1
  285. package/dist/lime-elements/{p-Bgn2bikC.js → p-CvHpvp0f.js} +1 -1
  286. package/dist/lime-elements/p-Cw7VQSGU.js +1 -0
  287. package/dist/lime-elements/{p-fYs7n6yY.js → p-DNYOwOWu.js} +1 -1
  288. package/dist/lime-elements/{p-Bu6-QXrA.js → p-DQ5DmW_Y.js} +1 -1
  289. package/dist/lime-elements/p-Dzp8dXTo.js +1 -0
  290. package/dist/lime-elements/p-_1yBt1pG.js +1 -0
  291. package/dist/lime-elements/{p-565e5ea7.entry.js → p-a6387dc7.entry.js} +1 -1
  292. package/dist/lime-elements/{p-40a48f70.entry.js → p-a6c6a31b.entry.js} +1 -1
  293. package/dist/lime-elements/{p-e8255f0b.entry.js → p-a7be03e1.entry.js} +1 -1
  294. package/dist/lime-elements/p-a807a45f.entry.js +159 -0
  295. package/dist/lime-elements/{p-707d4b28.entry.js → p-bffb5ed2.entry.js} +1 -1
  296. package/dist/lime-elements/{p-7035d93d.entry.js → p-c0ebf7cc.entry.js} +1 -1
  297. package/dist/lime-elements/{p-7aae3d13.entry.js → p-c2056ebc.entry.js} +1 -1
  298. package/dist/lime-elements/{p-19681a98.entry.js → p-c2f993cc.entry.js} +1 -1
  299. package/dist/lime-elements/{p-c73f4160.entry.js → p-c61e9b83.entry.js} +1 -1
  300. package/dist/lime-elements/{p-519603f5.entry.js → p-c6b3448c.entry.js} +1 -1
  301. package/dist/lime-elements/p-c8a34cef.entry.js +1 -0
  302. package/dist/lime-elements/p-cd479c23.entry.js +1 -0
  303. package/dist/lime-elements/{p-153e91e1.entry.js → p-ce71c5b9.entry.js} +1 -1
  304. package/dist/lime-elements/p-cf2d43c7.entry.js +1 -0
  305. package/dist/lime-elements/{p-2a375a65.entry.js → p-d35d2859.entry.js} +1 -1
  306. package/dist/lime-elements/{p-26347009.entry.js → p-d3f13124.entry.js} +1 -1
  307. package/dist/lime-elements/{p-a2dc6645.entry.js → p-d8559847.entry.js} +1 -1
  308. package/dist/lime-elements/{p-c8f09dd5.entry.js → p-db9cb7ef.entry.js} +1 -1
  309. package/dist/lime-elements/{p-05c1f5a0.entry.js → p-e5abe390.entry.js} +1 -1
  310. package/dist/lime-elements/p-f036ad27.entry.js +1 -0
  311. package/dist/lime-elements/{p-c1678d3a.entry.js → p-f3b93ce8.entry.js} +2 -2
  312. package/dist/lime-elements/{p-2f5face5.entry.js → p-f59447bf.entry.js} +1 -1
  313. package/dist/lime-elements/{p-a81f6962.entry.js → p-f5bb17eb.entry.js} +1 -1
  314. package/dist/types/components/chart/chart.d.ts +51 -52
  315. package/dist/types/components/chart/chart.types.d.ts +5 -0
  316. package/dist/types/components/chart/options.d.ts +88 -0
  317. package/dist/types/components/chart/scale.d.ts +101 -0
  318. package/dist/types/components/chart/theme.d.ts +52 -0
  319. package/dist/types/components/chip-set/chip-set.d.ts +15 -0
  320. package/dist/types/components/input-field/input-field.d.ts +13 -0
  321. package/dist/types/components/list/list-renderer-config.d.ts +1 -0
  322. package/dist/types/components/list/list.d.ts +6 -0
  323. package/dist/types/components/picker/picker.d.ts +12 -5
  324. package/dist/types/components/popover/popover.d.ts +0 -1
  325. package/dist/types/components.d.ts +53 -38
  326. package/dist/types/translations/da.d.ts +1 -0
  327. package/dist/types/translations/de.d.ts +1 -0
  328. package/dist/types/translations/en.d.ts +1 -0
  329. package/dist/types/translations/fi.d.ts +1 -0
  330. package/dist/types/translations/fr.d.ts +1 -0
  331. package/dist/types/translations/nl.d.ts +1 -0
  332. package/dist/types/translations/no.d.ts +1 -0
  333. package/dist/types/translations/sv.d.ts +1 -0
  334. package/dist/types/util/controlled-element.d.ts +11 -0
  335. package/dist/types/util/live-message.d.ts +17 -0
  336. package/package.json +3 -2
  337. package/dist/cjs/dom-BWMDM6En.js +0 -32
  338. package/dist/cjs/limel-badge.cjs.entry.js +0 -37
  339. package/dist/esm/dom-B9Ofc5RB.js +0 -30
  340. package/dist/esm/limel-badge.entry.js +0 -35
  341. package/dist/lime-elements/p-513d2a5e.entry.js +0 -1
  342. package/dist/lime-elements/p-55abec82.entry.js +0 -1
  343. package/dist/lime-elements/p-55f7c9f5.entry.js +0 -1
  344. package/dist/lime-elements/p-70272ea2.entry.js +0 -1
  345. package/dist/lime-elements/p-813cb15c.entry.js +0 -1
  346. package/dist/lime-elements/p-895a68c5.entry.js +0 -1
  347. package/dist/lime-elements/p-93a2d3b3.entry.js +0 -159
  348. package/dist/lime-elements/p-9bbf2612.entry.js +0 -1
  349. package/dist/lime-elements/p-B26k4gw8.js +0 -1
  350. package/dist/lime-elements/p-B9Ofc5RB.js +0 -1
  351. package/dist/lime-elements/p-ea11f365.entry.js +0 -1
  352. package/dist/lime-elements/p-fdc7da58.entry.js +0 -1
@@ -31,7 +31,7 @@ export class FlexContainer {
31
31
  console.warn('limel-flex-container is deprecated, please use CSS instead: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Flexible_Box_Layout/Basic_Concepts_of_Flexbox');
32
32
  }
33
33
  render() {
34
- return h("slot", { key: '15e4e05dceb2966750d9fce29f401585c1e7332d' });
34
+ return h("slot", { key: 'f5baf3c618a69e1beaaf8574af3388e88306f5bf' });
35
35
  }
36
36
  static get is() { return "limel-flex-container"; }
37
37
  static get encapsulation() { return "shadow"; }
@@ -125,7 +125,7 @@ export class Form {
125
125
  this.initialized = false;
126
126
  }
127
127
  render() {
128
- return h("div", { key: '74e2b0c57dd6acb08ebb364220cb4f2e6fbe1733', class: "root" });
128
+ return h("div", { key: '549ba8cd825aadedc4ec9e696f6d03bee028cb89', class: "root" });
129
129
  }
130
130
  reactRender() {
131
131
  if (!this.root) {
@@ -29,7 +29,7 @@ export class FormHeader {
29
29
  this.headingLevel = 1;
30
30
  }
31
31
  render() {
32
- return (h(Host, { key: '0d8282124405665c18b93aa753dd40cf616a6e6b' }, this.renderHeading(), this.renderHelp(), this.renderDescription()));
32
+ return (h(Host, { key: '832fda595a6e861d113ad64890b5ba0f4958e830' }, this.renderHeading(), this.renderHelp(), this.renderDescription()));
33
33
  }
34
34
  renderHeading() {
35
35
  if (!this.heading) {
@@ -12,7 +12,7 @@ export class Grid {
12
12
  console.warn('limel-grid is deprecated, please use CSS instead: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_grid_layout');
13
13
  }
14
14
  render() {
15
- return h("slot", { key: '4ebe5815a717a9991c2e2951125f839e8e1708d4' });
15
+ return h("slot", { key: 'c1e2b8ee2a681748256f6a0d7cd6db7aec27872e' });
16
16
  }
17
17
  static get is() { return "limel-grid"; }
18
18
  static get encapsulation() { return "shadow"; }
@@ -61,7 +61,7 @@ export class Header {
61
61
  this.subheadingDivider = '·';
62
62
  }
63
63
  render() {
64
- return (h(Host, { key: 'ee7ff339654246fbe74a971c13555ac58eb193d6' }, h("div", { key: '24a8ea8b2b02a18096fdad46aeaa7716986f39f3', class: "information" }, this.renderIcon(), h("div", { key: '4e6badb9212a41286043a158238edb889e95c20a', class: "headings" }, h("h1", { key: 'cb1e64f29d720de62e7e99d15daa77b3c3a344cb', class: "heading", title: this.heading }, this.heading), h("h2", { key: 'fbdd1399802934b780fb24f35dbaf8d2df98b09c', class: "subheading", title: this.subheading }, this.subheading, this.renderSupportingText()))), h("slot", { key: '53774b488cc505aca85e776d9c8280c85ef7acfd', name: "actions" }, h("slot", { key: 'd9093bf6ca786faa5481e62c5bff604b20f0283e' }))));
64
+ return (h(Host, { key: '25d008daf81297376579028f9116d4f78580e029' }, h("div", { key: '9bb06b9d428bcc709ef6a2cbfc5e7811b35d2c5e', class: "information" }, this.renderIcon(), h("div", { key: '417dcd90bbe18770eb25f69d3c614752571868b1', class: "headings" }, h("h1", { key: '591449da7543a5f708729bdda5ea231dfa9d4e17', class: "heading", title: this.heading }, this.heading), h("h2", { key: '8696119afe92d304fc03fa5d6b092419029bc052', class: "subheading", title: this.subheading }, this.subheading, this.renderSupportingText()))), h("slot", { key: '4903a0c675afa7371943f2b007d7367649eb473a', name: "actions" }, h("slot", { key: '009934d3d4ae2ff2932754e452bfb714506f9e66' }))));
65
65
  }
66
66
  renderIcon() {
67
67
  var _a, _b, _c, _d, _e;
@@ -19,7 +19,7 @@ export class HelpContent {
19
19
  };
20
20
  }
21
21
  render() {
22
- return (h(Host, { key: 'c05fa685d65b0b884c0697d259ba1b4811f038d7' }, h("limel-markdown", { key: '6260af655452683b21b704fb9962e010abfe2a1b', value: this.value }), this.renderReadMoreLink()));
22
+ return (h(Host, { key: 'd0f448293f17fbd80e5c8b0b26aa32d58af1d5ac' }, h("limel-markdown", { key: 'b69b41f86e1c362c3d12c50d24c579bf9d5a434d', value: this.value }), this.renderReadMoreLink()));
23
23
  }
24
24
  static get is() { return "limel-help-content"; }
25
25
  static get encapsulation() { return "shadow"; }
@@ -41,9 +41,9 @@ export class HelpComponent {
41
41
  };
42
42
  }
43
43
  render() {
44
- return (h(Host, { key: 'ff14013e9f366372a5ac61fdb9852e73377e7c7f' }, h("limel-popover", { key: 'b63ff7f51c29dc61ffdfe647329020639f1a8511', open: this.isOpen, onClose: this.onPopoverClose, openDirection: this.openDirection }, h("button", { key: '09f65e0a7f2bdca258f848f459eadc49f863b9f2', slot: "trigger", type: "button", onClick: this.openPopover, class: {
44
+ return (h(Host, { key: '9f166e16ef9ddfd552bcf9bde262ca84e4b31399' }, h("limel-popover", { key: 'f0bf20043acb1ac323fcc01e6f9d64d8481b9382', open: this.isOpen, onClose: this.onPopoverClose, openDirection: this.openDirection }, h("button", { key: 'c3a62e9d9f82cc16dfb4aa39a711397b0f91def1', slot: "trigger", type: "button", onClick: this.openPopover, class: {
45
45
  'is-open': this.isOpen,
46
- } }, this.trigger), h("limel-help-content", { key: '92223e842dd3dbf07365a1f45003b61033109b25', value: this.value, readMoreLink: this.readMoreLink }))));
46
+ } }, this.trigger), h("limel-help-content", { key: '75edc59e9c5a2557c9766165e52f6aa1b5baee49', value: this.value, readMoreLink: this.readMoreLink }))));
47
47
  }
48
48
  static get is() { return "limel-help"; }
49
49
  static get encapsulation() { return "shadow"; }
@@ -50,9 +50,9 @@ export class HelperLine {
50
50
  };
51
51
  }
52
52
  render() {
53
- return (h(Host, { key: '3dba31860682ccb6230de96f458e19252a150dd0', tabIndex: -1, class: {
53
+ return (h(Host, { key: 'e42ca019869a7b4b47d93c4f402bdbf3b99b37cf', tabIndex: -1, class: {
54
54
  invalid: this.invalid,
55
- }, style: this.hasContent() ? {} : { display: 'none' }, "aria-hidden": !this.hasContent() }, h("div", { key: '28dd4294f7a2d6db746388109ef9fb7d1f640b4d' }, this.renderHelperText(), this.renderCharacterCounter())));
55
+ }, style: this.hasContent() ? {} : { display: 'none' }, "aria-hidden": !this.hasContent() }, h("div", { key: '3db5b20efaa64d9a20b6da5c711d2fb64393143a' }, this.renderHelperText(), this.renderCharacterCounter())));
56
56
  }
57
57
  static get is() { return "limel-helper-line"; }
58
58
  static get originalStyleUrls() {
@@ -30,7 +30,7 @@ export class Hotkey {
30
30
  const parts = tokenizeHotkeyString(this.value);
31
31
  const displayParts = parts.map((part) => formatDisplayToken(part, this.isApple));
32
32
  const ariaLabel = getHotkeyAriaLabel(this.value, this.isApple);
33
- return (h(Host, { key: '6c2857b3a8827d78ea18379d7338f0e31c3f44a9', "aria-label": ariaLabel || undefined }, displayParts.map(({ display, isGlyph }, index) => (h("kbd", { key: `${parts[index]}-${index}`, class: isGlyph ? 'is-glyph' : undefined }, h("span", null, display))))));
33
+ return (h(Host, { key: '0cf81f7754511dce0358be8ba428e047e6bf6ab5', "aria-label": ariaLabel || undefined }, displayParts.map(({ display, isGlyph }, index) => (h("kbd", { key: `${parts[index]}-${index}`, class: isGlyph ? 'is-glyph' : undefined }, h("span", null, display))))));
34
34
  }
35
35
  static get is() { return "limel-hotkey"; }
36
36
  static get encapsulation() { return "shadow"; }
@@ -50,7 +50,7 @@ export class Icon {
50
50
  this.loadIcon(this.name);
51
51
  }
52
52
  render() {
53
- return h("div", { key: '68180e22c8eda7efb4a5ca9085ff0dc127052b3f', class: "container" });
53
+ return h("div", { key: '154a32782255d3b6870d1ea67bdf8e8906655c9a', class: "container" });
54
54
  }
55
55
  updateAccessibility() {
56
56
  if (!this.internals) {
@@ -52,7 +52,7 @@ export class IconButton {
52
52
  if (this.host.hasAttribute('tabindex')) {
53
53
  buttonAttributes.tabindex = this.host.getAttribute('tabindex');
54
54
  }
55
- return (h(Host, { key: 'ecf9bef958b6d3f2666d61c8eb10b6790311706d', onClick: this.filterClickWhenDisabled }, h("button", Object.assign({ key: 'fcadafff6a3e2a36082f4baad0c342a448c4126f', "aria-label": this.label, disabled: this.disabled, id: this.tooltipId }, buttonAttributes), this.renderIcon(), this.renderTooltip(this.tooltipId))));
55
+ return (h(Host, { key: '24e71b62ab7e2d038ecc9c8982ffad932ecf89c0', onClick: this.filterClickWhenDisabled }, h("button", Object.assign({ key: '435485320ca03a49d4ecce7e45d641e53ccbd107', "aria-label": this.label, disabled: this.disabled, id: this.tooltipId }, buttonAttributes), this.renderIcon(), this.renderTooltip(this.tooltipId))));
56
56
  }
57
57
  renderIcon() {
58
58
  var _a, _b;
@@ -127,9 +127,9 @@ export class InfoTile {
127
127
  this.checkProps((_d = this === null || this === void 0 ? void 0 : this.link) === null || _d === void 0 ? void 0 : _d.title);
128
128
  const link = this.disabled ? '#' : (_e = this.link) === null || _e === void 0 ? void 0 : _e.href;
129
129
  const rel = getRel((_f = this.link) === null || _f === void 0 ? void 0 : _f.target, (_g = this.link) === null || _g === void 0 ? void 0 : _g.rel);
130
- return (h(Host, { key: '4ae5614ddf0ecc7cb112788bd1c42ca4747cf431', onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave, class: { 'has-primary-slot-content': this.hasPrimarySlot } }, h("a", { key: '5cb4cd396a5472c050e5911f54aa0272cf1d324d', title: (_h = this.link) === null || _h === void 0 ? void 0 : _h.title, href: link, target: (_j = this.link) === null || _j === void 0 ? void 0 : _j.target, rel: rel, tabindex: "0", "aria-label": extendedAriaLabel, "aria-disabled": this.disabled, "aria-busy": this.loading ? 'true' : 'false', "aria-live": "polite", class: {
130
+ return (h(Host, { key: '2d5b3fb9509298316af814acac20bbb1f6c22f85', onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave, class: { 'has-primary-slot-content': this.hasPrimarySlot } }, h("a", { key: '2ce2856cca107671b539b5b462af04c3a9536a39', title: (_h = this.link) === null || _h === void 0 ? void 0 : _h.title, href: link, target: (_j = this.link) === null || _j === void 0 ? void 0 : _j.target, rel: rel, tabindex: "0", "aria-label": extendedAriaLabel, "aria-disabled": this.disabled, "aria-busy": this.loading ? 'true' : 'false', "aria-live": "polite", class: {
131
131
  'is-clickable': !!((_k = this.link) === null || _k === void 0 ? void 0 : _k.href) && !this.disabled,
132
- } }, this.renderIcon(), this.renderProgress(), h("slot", { key: 'd111590fd120c7f4a784430d9f13423e6813d88f', name: "primary", onSlotchange: this.updateHasPrimarySlotContent }), h("div", { key: '717a54afb2ffe8c434fdbbe403bbc816ba231fbd', class: "value-group" }, this.renderPrefix(), h("div", { key: '569a6cbb516d6c455757c7685d48a2af9692eca2', class: "value-and-suffix" }, this.renderValue(), this.renderSuffix()), this.renderSpinner()), this.renderLabel(), h("limel-3d-hover-effect-glow", { key: '2afedffb05ddd550677d943a58564565965194dc' })), this.renderNotification()));
132
+ } }, this.renderIcon(), this.renderProgress(), h("slot", { key: '8cf1cdd2c841a3c30512b390748ec7af9ccaaa06', name: "primary", onSlotchange: this.updateHasPrimarySlotContent }), h("div", { key: '4b999b693dd6e882370006edfede8a54488a2873', class: "value-group" }, this.renderPrefix(), h("div", { key: '5b06443fe1171e158f78cadb11291501507e16bc', class: "value-and-suffix" }, this.renderValue(), this.renderSuffix()), this.renderSpinner()), this.renderLabel(), h("limel-3d-hover-effect-glow", { key: '18c6b6dd3bdaacce430ddd4e2f7dbc65e400b3d0' })), this.renderNotification()));
133
133
  }
134
134
  checkProps(propValue) {
135
135
  return propValue ? propValue + ' ' : '';
@@ -1962,4 +1962,17 @@ input.mdc-text-field__input::-webkit-search-cancel-button:active {
1962
1962
  }
1963
1963
  .mdc-text-field--outlined.mdc-text-field--with-leading-icon .mdc-floating-label {
1964
1964
  left: 1.5rem;
1965
+ }
1966
+
1967
+ .suggestions-message {
1968
+ position: absolute;
1969
+ width: 0;
1970
+ height: 0;
1971
+ margin: -1px;
1972
+ padding: 0;
1973
+ border: 0;
1974
+ overflow: hidden;
1975
+ clip: rect(0, 0, 0, 0);
1976
+ clip-path: inset(50%);
1977
+ white-space: nowrap;
1965
1978
  }
@@ -5,10 +5,21 @@ import { ARROW_DOWN, ARROW_UP, ENTER, ESCAPE, SPACE, TAB, } from "../../util/key
5
5
  import { getHref, getTarget, getRel } from "../../util/link-helper";
6
6
  import { createRandomString } from "../../util/random-string";
7
7
  import { isTextEditingKey } from "../../util/typeahead";
8
+ import { setControlledElement } from "../../util/controlled-element";
9
+ import { createLiveMessage } from "../../util/live-message";
10
+ import translate from "../../global/translations";
8
11
  import { globalConfig } from "../../global/config";
9
12
  const CHANGE_EVENT_DEBOUNCE_TIMEOUT = 300;
10
13
  const RESIZE_HANDLER_DEBOUNCE_TIMEOUT = 100;
11
14
  const MAX_FRAMES_TO_WAIT_FOR_LIST = 20;
15
+ const TEXT_INPUT_TYPES = new Set([
16
+ 'email',
17
+ 'search',
18
+ 'tel',
19
+ 'text',
20
+ 'url',
21
+ 'urlAsText',
22
+ ]);
12
23
  /**
13
24
  * @exampleComponent limel-example-input-field-text
14
25
  * @exampleComponent limel-example-input-field-placeholder
@@ -81,6 +92,11 @@ export class InputField {
81
92
  * list of suggestions `value` can autocomplete to.
82
93
  */
83
94
  this.completions = [];
95
+ /**
96
+ * Defines the language for translations. Used for the message that a
97
+ * screen reader speaks about the suggestions.
98
+ */
99
+ this.language = 'en';
84
100
  /**
85
101
  * For inputs of type `email`, `tel`, `url`, and `urlAsText`, set this to
86
102
  * `true` to show a trailing icon with a `mailto:`,`tel:`, or normal link,
@@ -95,6 +111,8 @@ export class InputField {
95
111
  this.isFocused = false;
96
112
  this.wasInvalid = false;
97
113
  this.showCompletions = false;
114
+ this.suggestionsEngaged = false;
115
+ this.suggestionsMessage = createLiveMessage(() => this.getSuggestionsMessage());
98
116
  this.completionsList = [];
99
117
  this.changeWaiting = false;
100
118
  this.initialize = () => {
@@ -204,6 +222,9 @@ export class InputField {
204
222
  };
205
223
  this.onFocus = () => {
206
224
  this.isFocused = true;
225
+ if (!this.showCompletions) {
226
+ this.suggestionsEngaged = false;
227
+ }
207
228
  this.showCompletions = true;
208
229
  };
209
230
  this.onBlur = () => {
@@ -384,6 +405,7 @@ export class InputField {
384
405
  }
385
406
  const wasOpen = this.isSuggestionListOpen();
386
407
  this.showCompletions = true;
408
+ this.suggestionsEngaged = true;
387
409
  if (event.key === ARROW_DOWN || event.key === ARROW_UP) {
388
410
  this.moveIntoList(event, wasOpen);
389
411
  }
@@ -448,11 +470,34 @@ export class InputField {
448
470
  this.type !== 'textarea' &&
449
471
  this.completions.length > 0);
450
472
  };
473
+ this.isCombobox = () => {
474
+ return this.hasSuggestions() && TEXT_INPUT_TYPES.has(this.type);
475
+ };
451
476
  this.isSuggestionListOpen = () => {
452
477
  return (this.hasSuggestions() &&
453
478
  this.showCompletions &&
454
479
  this.filterCompletions(this.getCurrentValue()).length > 0);
455
480
  };
481
+ this.pointAtSuggestionList = () => {
482
+ if (!this.inputElement) {
483
+ return;
484
+ }
485
+ setControlledElement(this.inputElement, this.isCombobox() ? this.portalId : null);
486
+ };
487
+ this.renderSuggestionsMessage = () => {
488
+ if (!this.isCombobox()) {
489
+ return;
490
+ }
491
+ return (h("span", { class: "suggestions-message", "aria-live": "polite", ref: this.suggestionsMessage.setElement }));
492
+ };
493
+ this.getSuggestionsMessage = () => {
494
+ if (!this.isSuggestionListOpen()) {
495
+ return '';
496
+ }
497
+ return translate.get('suggestions.available', this.language, {
498
+ count: this.filterCompletions(this.getCurrentValue()).length,
499
+ });
500
+ };
456
501
  this.renderAutocompleteList = () => {
457
502
  if (!this.hasSuggestions()) {
458
503
  return;
@@ -469,7 +514,7 @@ export class InputField {
469
514
  if (!filteredCompletions || filteredCompletions.length === 0) {
470
515
  return null;
471
516
  }
472
- return (h("limel-list", { onChange: this.handleCompletionChange, onKeyDown: this.handleKeyDownInDropdown, type: "selectable", items: filteredCompletions }));
517
+ return (h("limel-list", { accessibleLabel: this.label || this.placeholder, onChange: this.handleCompletionChange, onKeyDown: this.handleKeyDownInDropdown, type: "selectable", items: filteredCompletions }));
473
518
  };
474
519
  this.handleKeyDownInDropdown = (event) => {
475
520
  if (event.key === ESCAPE) {
@@ -547,11 +592,16 @@ export class InputField {
547
592
  componentDidLoad() {
548
593
  this.initialize();
549
594
  }
595
+ componentDidRender() {
596
+ this.pointAtSuggestionList();
597
+ this.suggestionsMessage.update();
598
+ }
550
599
  disconnectedCallback() {
551
600
  if (this.mdcTextField) {
552
601
  this.mdcTextField.destroy();
553
602
  }
554
603
  this.restyleCompletionsDropDown.cancel();
604
+ this.suggestionsMessage.update.cancel();
555
605
  window.removeEventListener('resize', this.layout);
556
606
  this.limelInputField.removeEventListener('focus', this.setFocus);
557
607
  }
@@ -637,10 +687,13 @@ export class InputField {
637
687
  if (this.isInvalid()) {
638
688
  properties['aria-invalid'] = 'true';
639
689
  }
640
- if (this.hasSuggestions()) {
641
- properties['aria-controls'] = this.portalId;
690
+ if (this.isCombobox()) {
691
+ properties.role = 'combobox';
692
+ properties['aria-autocomplete'] = 'list';
693
+ properties['aria-haspopup'] = 'listbox';
694
+ properties['aria-expanded'] = String(this.suggestionsEngaged && this.isSuggestionListOpen());
642
695
  }
643
- return (h(Host, { key: 'e09ee9e3102d6a15d0806602c65361001cd20c63' }, h("limel-notched-outline", { key: 'c2301d9fd1af41e8b4396dc5f2978e51b260fe2f', labelId: this.inputId, labelElementId: this.labelElementId, label: this.label, required: this.required, invalid: this.invalid || this.isInvalid(), disabled: this.disabled, readonly: this.readonly, hasValue: !!this.value, hasLeadingIcon: !!this.leadingIcon }, h("label", { key: '69e02e5df31a6ce10743c3c8a9e78c5765794a18', slot: "content", class: this.getContainerClassList() }, this.renderLeadingIcon(), this.renderPrefix(), this.renderFormattedNumber(), this.renderInput(properties), this.renderSuffix(), this.renderTextarea(properties), this.renderTrailingLinkOrButton())), this.renderHelperLine(), this.renderAutocompleteList()));
696
+ return (h(Host, { key: 'c14cb199267a0efbf6dc974e31d479be51653c91' }, h("limel-notched-outline", { key: 'd1783d42e0da20cd4224065b6cffba95be9850eb', labelId: this.inputId, labelElementId: this.labelElementId, label: this.label, required: this.required, invalid: this.invalid || this.isInvalid(), disabled: this.disabled, readonly: this.readonly, hasValue: !!this.value, hasLeadingIcon: !!this.leadingIcon }, h("label", { key: '67cb792d8718c2aae28ce509e931fd578d4df139', slot: "content", class: this.getContainerClassList() }, this.renderLeadingIcon(), this.renderPrefix(), this.renderFormattedNumber(), this.renderInput(properties), this.renderSuffix(), this.renderTextarea(properties), this.renderTrailingLinkOrButton())), this.renderHelperLine(), this.renderAutocompleteList(), this.renderSuggestionsMessage()));
644
697
  }
645
698
  valueWatcher(newValue) {
646
699
  if (!this.mdcTextField || this.changeWaiting) {
@@ -1109,6 +1162,33 @@ export class InputField {
1109
1162
  "setter": false,
1110
1163
  "defaultValue": "[]"
1111
1164
  },
1165
+ "language": {
1166
+ "type": "string",
1167
+ "mutable": false,
1168
+ "complexType": {
1169
+ "original": "Languages",
1170
+ "resolved": "\"da\" | \"de\" | \"en\" | \"fi\" | \"fr\" | \"nb\" | \"nl\" | \"no\" | \"sv\"",
1171
+ "references": {
1172
+ "Languages": {
1173
+ "location": "import",
1174
+ "path": "../date-picker/date.types",
1175
+ "id": "src/components/date-picker/date.types.ts::Languages",
1176
+ "referenceLocation": "Languages"
1177
+ }
1178
+ }
1179
+ },
1180
+ "required": false,
1181
+ "optional": false,
1182
+ "docs": {
1183
+ "tags": [],
1184
+ "text": "Defines the language for translations. Used for the message that a\nscreen reader speaks about the suggestions."
1185
+ },
1186
+ "getter": false,
1187
+ "setter": false,
1188
+ "reflect": false,
1189
+ "attribute": "language",
1190
+ "defaultValue": "'en'"
1191
+ },
1112
1192
  "showLink": {
1113
1193
  "type": "boolean",
1114
1194
  "mutable": false,
@@ -1155,7 +1235,8 @@ export class InputField {
1155
1235
  return {
1156
1236
  "isFocused": {},
1157
1237
  "wasInvalid": {},
1158
- "showCompletions": {}
1238
+ "showCompletions": {},
1239
+ "suggestionsEngaged": {}
1159
1240
  };
1160
1241
  }
1161
1242
  static get events() {
@@ -108,6 +108,6 @@ export class ListRenderer {
108
108
  }
109
109
  this.applyTabIndexToItemAtIndex =
110
110
  this.getIndexForWhichToApplyTabIndex(items);
111
- return (h("ul", { class: "mdc-deprecated-list", role: role, "aria-orientation": this.getAriaOrientation(role) }, items.map(this.renderListItem)));
111
+ return (h("ul", { class: "mdc-deprecated-list", role: role, "aria-label": this.config.accessibleLabel, "aria-orientation": this.getAriaOrientation(role) }, items.map(this.renderListItem)));
112
112
  }
113
113
  }
@@ -5,6 +5,7 @@ import { ListRenderer } from "./list-renderer";
5
5
  const { ACTION_EVENT } = listStrings;
6
6
  /**
7
7
  * @exampleComponent limel-example-list-basic
8
+ * @exampleComponent limel-example-list-accessible-label
8
9
  * @exampleComponent limel-example-list-secondary
9
10
  * @exampleComponent limel-example-list-separator
10
11
  * @exampleComponent limel-example-list-icons
@@ -178,13 +179,14 @@ export class List {
178
179
  badgeIcons: this.badgeIcons,
179
180
  type: this.type,
180
181
  iconSize: this.iconSize,
182
+ accessibleLabel: this.accessibleLabel,
181
183
  };
182
184
  let maxLinesSecondaryText = +((_a = this.maxLinesSecondaryText) === null || _a === void 0 ? void 0 : _a.toFixed(0));
183
185
  if (this.maxLinesSecondaryText < 1) {
184
186
  maxLinesSecondaryText = 1;
185
187
  }
186
188
  const html = this.listRenderer.render(this.items, this.config);
187
- return (h(Host, { key: 'c1c087f11542451c1747d510c133e79f94d643ba', style: {
189
+ return (h(Host, { key: 'e6619c70eab882e1a9ed482098a7f1ed673c74a1', style: {
188
190
  '--maxLinesSecondaryText': `${maxLinesSecondaryText}`,
189
191
  } }, html));
190
192
  }
@@ -341,6 +343,25 @@ export class List {
341
343
  "reflect": false,
342
344
  "attribute": "type"
343
345
  },
346
+ "accessibleLabel": {
347
+ "type": "string",
348
+ "mutable": false,
349
+ "complexType": {
350
+ "original": "string",
351
+ "resolved": "string",
352
+ "references": {}
353
+ },
354
+ "required": false,
355
+ "optional": true,
356
+ "docs": {
357
+ "tags": [],
358
+ "text": "The name of the list, which a screen reader announces when the focus\nmoves into it."
359
+ },
360
+ "getter": false,
361
+ "setter": false,
362
+ "reflect": false,
363
+ "attribute": "accessible-label"
364
+ },
344
365
  "maxLinesSecondaryText": {
345
366
  "type": "number",
346
367
  "mutable": false,
@@ -158,9 +158,9 @@ export class ListItemComponent {
158
158
  // also keep for `menuitem` for visual state consistency
159
159
  ariaProps['aria-selected'] = this.selected ? 'true' : 'false';
160
160
  }
161
- return (h(Host, Object.assign({ key: '0ff3eea71319a17641cc264d85ba35c1c8db83c8', role: this.getHostRole(), class: {
161
+ return (h(Host, Object.assign({ key: 'fc4d7eab0b57e21d39c7d4fcc5ec7678a4e9662f', role: this.getHostRole(), class: {
162
162
  'has-primary-component': !!((_a = this.primaryComponent) === null || _a === void 0 ? void 0 : _a.name),
163
- } }, ariaProps), this.renderRadioButton(), this.renderCheckbox(), this.renderIcon(), this.renderImage(), this.renderPrimaryComponent(), h("div", { key: 'e38dc3bb9a09cf08892e7485681a4421a5bdd2ba', class: "text" }, this.renderLabel(), this.renderDescription()), this.renderActionMenu(this.actions)));
163
+ } }, ariaProps), this.renderRadioButton(), this.renderCheckbox(), this.renderIcon(), this.renderImage(), this.renderPrimaryComponent(), h("div", { key: 'bf56c25af2a5f6c0e7ed7ea7b5cd6952888efb61', class: "text" }, this.renderLabel(), this.renderDescription()), this.renderActionMenu(this.actions)));
164
164
  }
165
165
  /**
166
166
  * Returns a stable reference for the provided actions array to avoid
@@ -22,7 +22,7 @@ export class MenuItemMeta {
22
22
  this.showChevron = false;
23
23
  }
24
24
  render() {
25
- return (h(Host, { key: 'd4bb2de50d260fdf49eafe2449ca388f0369a682' }, this.renderCommandText(), this.renderBadge(), this.renderChevron()));
25
+ return (h(Host, { key: '966057ee998af91916099c59398ea93742175fb5' }, this.renderCommandText(), this.renderBadge(), this.renderChevron()));
26
26
  }
27
27
  renderCommandText() {
28
28
  if (this.hotkey) {
@@ -170,7 +170,7 @@ export class Markdown {
170
170
  this.cleanupImageIntersectionObserver();
171
171
  }
172
172
  render() {
173
- return (h(Host, { key: '3121124a57e9522dced4b749bfedfbe8dea2ea70' }, h("div", { key: '6f2b983303c0921a7b979cf0bbbdcc657e7555f8', id: "markdown", ref: (el) => (this.rootElement = el) })));
173
+ return (h(Host, { key: '847bffc9b7fa4fbec42b705d3019c635d88fb6c6' }, h("div", { key: 'cd84ef0919fc4b2b80090de836366b317e60e51a', id: "markdown", ref: (el) => (this.rootElement = el) })));
174
174
  }
175
175
  setupImageIntersectionObserver() {
176
176
  if (this.lazyLoadImages) {
@@ -59,7 +59,7 @@ export class MasonryLayout {
59
59
  const style = {
60
60
  height: `${this.containerHeight}rem`,
61
61
  };
62
- return (h(Host, { key: 'db11d17d15303afcf0d767e085dbe653ab90f9dd', style: style, class: { 'is-laid-out': this.hasRendered } }, h("slot", { key: '7a4f2639e7b02720b08b778d437e536ee5707cfa' })));
62
+ return (h(Host, { key: '08a40d19c6457ff0d8a1da75de5b3e9379b05999', style: style, class: { 'is-laid-out': this.hasRendered } }, h("slot", { key: '736ef2dd358e6fb03daf87fe9b23d4625c5c3d64' })));
63
63
  }
64
64
  setupObservers() {
65
65
  this.resizeObserver = new ResizeObserver(() => {
@@ -593,7 +593,7 @@ export class Menu {
593
593
  const cssProperties = this.getCssProperties();
594
594
  const dropdownZIndex = getComputedStyle(this.host).getPropertyValue('--dropdown-z-index');
595
595
  const menuSurfaceWidth = this.getMenuSurfaceWidth(cssProperties['--menu-surface-width']);
596
- return (h("div", { key: 'b989b659926fd335f77346886528cf3277f39c4d', class: "mdc-menu-surface--anchor", onClick: this.onTriggerClick }, h("slot", { key: '3a8f9cbf65303bcf18358607559a204e944b18bb', ref: this.setTriggerRef, name: "trigger" }), this.renderNotificationBadge(), h("limel-portal", { key: 'd56ff6ab5d7504f9d4646ef2dcde736bd4515143', visible: this.open, containerId: this.portalId, openDirection: this.openDirection, position: "absolute", containerStyle: { 'z-index': dropdownZIndex } }, h("limel-menu-surface", { key: '983315550638557b27cac1f9d604a36dca16bdd7', open: this.open, onDismiss: this.onClose, style: Object.assign(Object.assign({}, cssProperties), { '--menu-surface-width': menuSurfaceWidth, '--limel-menu-surface-display': 'flex', '--limel-menu-surface-flex-direction': 'column' }), class: {
596
+ return (h("div", { key: '26574aeebd102eaf96a2893508537ab34d7ce6d4', class: "mdc-menu-surface--anchor", onClick: this.onTriggerClick }, h("slot", { key: 'fa7fa2b583684b4d83467be5004b98146e8ea71e', ref: this.setTriggerRef, name: "trigger" }), this.renderNotificationBadge(), h("limel-portal", { key: '6443fc725c1054cee3aa6bc136d3c90891c897a5', visible: this.open, containerId: this.portalId, openDirection: this.openDirection, position: "absolute", containerStyle: { 'z-index': dropdownZIndex } }, h("limel-menu-surface", { key: 'd9e4719f9c97ec82b15674305a66c6ddd6aac512', open: this.open, onDismiss: this.onClose, style: Object.assign(Object.assign({}, cssProperties), { '--menu-surface-width': menuSurfaceWidth, '--limel-menu-surface-display': 'flex', '--limel-menu-surface-flex-direction': 'column' }), class: {
597
597
  'has-grid-layout': this.gridLayout,
598
598
  } }, this.renderSearchField(), this.renderBreadcrumb(), this.renderLoader(), this.renderEmptyMessage(), this.renderMenuList()))));
599
599
  }
@@ -88,7 +88,7 @@ export class MenuList {
88
88
  iconSize: this.iconSize,
89
89
  };
90
90
  const html = this.MenuListRenderer.render(this.items, this.config);
91
- return h("div", { key: '193deffa6146711b12adc1dd7ddcdeffd3b8c3c7', class: "mdc-menu mdc-menu-surface" }, html);
91
+ return h("div", { key: '8cb1b8b5fc263086d4dbc83d7da2ae0b45c58d1d', class: "mdc-menu mdc-menu-surface" }, html);
92
92
  }
93
93
  itemsChanged() {
94
94
  setTimeout(() => {
@@ -103,7 +103,7 @@ export class MenuSurface {
103
103
  'mdc-elevation-transition': true,
104
104
  'mdc-elevation--z4': true,
105
105
  };
106
- return (h("div", { key: 'da08fd948f5b38010647be878ab4d9ff4e6a8361', class: classList, tabindex: "-1" }, h("slot", { key: '2e69828eb156273746e946cc34f2c557bad111c4' })));
106
+ return (h("div", { key: '9a024d806ff045158b49fb9b5d92617852ceb4af', class: classList, tabindex: "-1" }, h("slot", { key: 'da767dcce51d5a8b667d195e747e0756117be1ff' })));
107
107
  }
108
108
  static get is() { return "limel-menu-surface"; }
109
109
  static get encapsulation() { return "shadow"; }
@@ -59,7 +59,7 @@ export class NotchedOutline {
59
59
  this.hasFloatingLabel = false;
60
60
  }
61
61
  render() {
62
- return (h("div", { key: '8d1e3ea6b74700e4f79050dac678c5a1b4d1d0bc', class: "limel-notched-outline" }, h("slot", { key: 'fcb6831f64089a7ac25a0a9998eb331a9a965ae7', name: "content" }), h("span", { key: '870e9ddbefbbba75e61336b7171fcf43137c1379', class: "limel-notched-outline--outlines", "aria-hidden": "true" }, h("span", { key: '5a12f8d71d2dbf8245b4faacf3ae8ec3f92a3cba', class: "limel-notched-outline--leading-outline" }), this.renderLabel(), h("span", { key: '73d69b455321439990591b94894f13f8837f2617', class: "limel-notched-outline--trailing-outline" }), this.renderEmptyReadonlyValue())));
62
+ return (h("div", { key: 'ade07e3a9e2a63f0037f46fdbd01f866936c55ed', class: "limel-notched-outline" }, h("slot", { key: '1d7619696aa3c80b17390df8b5bc96591cb0fe36', name: "content" }), h("span", { key: 'a791e6757ff14e7bb2c2a3f833f9877922eebd51', class: "limel-notched-outline--outlines", "aria-hidden": "true" }, h("span", { key: '623d2d85813b66a3b0a2e33bbbf3cdd51b3505e0', class: "limel-notched-outline--leading-outline" }), this.renderLabel(), h("span", { key: 'd5b0c6c6e7a7d5a15fc8795e3126fe3b115019ee', class: "limel-notched-outline--trailing-outline" }), this.renderEmptyReadonlyValue())));
63
63
  }
64
64
  renderLabel() {
65
65
  if (!this.label) {
@@ -304,7 +304,7 @@ export class Pagination {
304
304
  }
305
305
  render() {
306
306
  const { slots } = this.view;
307
- return (h(Host, { key: '7d7e26956a5df97a75d2e9d4a8d5b2407b2b65a3' }, h("nav", { key: 'e2b6b6a1bb513e3136b6fcc2e34c668be8e64089', "aria-label": this.translate('pagination.label'), "aria-busy": this.loading ? 'true' : null }, this.renderArrow('previous'), slots.map((slot, index) => this.renderSlot(slot, index)), this.renderArrow('next')), h("span", { key: '00e74cdbf6ca753b7bac6b4731a5b63c4ac4d338', class: "live-region", "aria-live": "polite" }, this.liveMessage)));
307
+ return (h(Host, { key: '924becb588f7d773572b61865b9dd79b14171153' }, h("nav", { key: 'f517b62cf0107c912d576f08e9d99594f868be44', "aria-label": this.translate('pagination.label'), "aria-busy": this.loading ? 'true' : null }, this.renderArrow('previous'), slots.map((slot, index) => this.renderSlot(slot, index)), this.renderArrow('next')), h("span", { key: '21758520849acfe32f43e86570fe60a040cf2748', class: "live-region", "aria-live": "polite" }, this.liveMessage)));
308
308
  }
309
309
  /**
310
310
  * Without a count we know where the user is but not how far the set goes,
@@ -1,6 +1,105 @@
1
+ @charset "UTF-8";
1
2
  /**
2
3
  * @prop --dropdown-z-index: z-index of the dropdown menu.
3
4
  */
5
+ /**
6
+ * Note! This file is forwarded via `src/style/exports.scss`
7
+ * and exposed to consumers through the root `index.scss`.
8
+ *
9
+ * Consumers import it using:
10
+ * `@use '@limetech/lime-elements' as lime-elements;`
11
+ *
12
+ * Legacy import paths (`dist/scss/mixins`) are maintained
13
+ * for backward compatibility via copy rules in the Stencil config.
14
+ */
15
+ /**
16
+ * Neutralizes the user-agent styles that browsers apply to `<button>` elements
17
+ * (their default background, border, padding, font, etc.), without stripping
18
+ * the useful defaults that `all: unset;` would also remove
19
+ * (such as `display`, `cursor`, and focus behavior).
20
+ *
21
+ * Prefer this mixin over `all: unset;` on `<button>` elements, then layer
22
+ * the styling you want on top — often one of the `is-*-clickable` mixins.
23
+ */
24
+ /**
25
+ * This can be used on a trigger element that opens a dropdown menu or a popover.
26
+ */
27
+ /**
28
+ * This mixin will mask out the content that is close to
29
+ * the edges of a scrollable area.
30
+ * - If the scrollable content has `overflow-y`, use `vertically`
31
+ * as an argument for `$direction`.
32
+ - If the scrollable content has `overflow-x`, use `horizontally`
33
+ * as an argument for `$direction`.
34
+ *
35
+ * For the visual effect to work smoothly, we need to make sure that
36
+ * the size of the fade-out edge effect is the same as the
37
+ * internal paddings of the scrollable area. Otherwise, content of a
38
+ * scrollable area that does not have a padding will fade out before
39
+ * any scrolling has been done.
40
+ * This is why this mixin already adds paddings, which automatically
41
+ * default to the size of the fade-out effect.
42
+ * This size defaults to `1rem`, but to override the size use
43
+ * `--limel-top-edge-fade-height` & `--limel-bottom-edge-fade-height`
44
+ * when `vertically` argument is set, and use
45
+ * `--limel-left-edge-fade-width` & `--limel-right-edge-fade-width`
46
+ * when `horizontally` argument is set.
47
+ * Of course you can also programmatically increase and decrease the
48
+ * size of these variables for each edge, based on the amount of
49
+ * scrolling that has been done by the user. In this case, make sure
50
+ * to add a custom padding where the mixin is used, to override
51
+ * the paddings that are automatically added by the mixin in the
52
+ * compiled CSS code.
53
+ */
54
+ /**
55
+ * This mixin will add an animated underline to the bottom of an `a` elements.
56
+ * Note that you may need to add `all: unset;` –depending on your use case–
57
+ * before using this mixin.
58
+ */
59
+ /**
60
+ * This mixin creates a cross-browser font stack.
61
+ * - `sans-serif` can be used for the UI of the components.
62
+ * - `monospace` can be used for code.
63
+ *
64
+ * ⚠️ If we change the font stacks, we need to update
65
+ * 1. the consumer documentation in `README.md`, and
66
+ * 2. the CSS variables of `--kompendium-example-font-family`
67
+ * in the `<style>` tag of `index.html`.
68
+ */
69
+ /**
70
+ * This mixin is a hack, using old CSS syntax
71
+ * to enable you to truncate a piece of text,
72
+ * after a certain number of lines.
73
+ */
74
+ /**
75
+ * This mixin will add a chessboard background pattern,
76
+ * typically used to visualize transparency.
77
+ */
78
+ /**
79
+ * Make a container resizable by the user.
80
+ * This is used in the documentations and examples
81
+ * of some components, to demonstrate how the component
82
+ * behaves in a resizable container.
83
+ */
84
+ /**
85
+ * Drag to reorder mixins
86
+ */
87
+ /**
88
+ * The breakpoints below are used to create responsive designs
89
+ * in Lime's products. Therefore, they are here to get distributed
90
+ * to all components in other private repos, which rely on this `mixins`
91
+ * file, to create consistent styles.
92
+ *
93
+ * :::important
94
+ * In very rare cases you should used media queries!
95
+ * Nowadays, there are many better ways of achieving responsive design
96
+ * without media queries. For example, using CSS Grid, Flexbox, and their features.
97
+ * :::
98
+ */
99
+ /**
100
+ * Media query mixins for responsive design based on screen width.
101
+ * Note that these mixins do not detect the device type!
102
+ */
4
103
  :host {
5
104
  position: relative;
6
105
  display: block;
@@ -8,4 +107,17 @@
8
107
 
9
108
  :host([hidden]) {
10
109
  display: none;
110
+ }
111
+
112
+ .suggestions-message {
113
+ position: absolute;
114
+ width: 0;
115
+ height: 0;
116
+ margin: -1px;
117
+ padding: 0;
118
+ border: 0;
119
+ overflow: hidden;
120
+ clip: rect(0, 0, 0, 0);
121
+ clip-path: inset(50%);
122
+ white-space: nowrap;
11
123
  }