@limetech/lime-elements 40.18.2 → 40.19.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 (339) hide show
  1. package/CHANGELOG.md +25 -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/lime-elements.cjs.js +1 -1
  5. package/dist/cjs/limel-3d-hover-effect-glow.cjs.entry.js +1 -1
  6. package/dist/cjs/limel-action-bar_3.cjs.entry.js +4 -4
  7. package/dist/cjs/limel-ai-avatar.cjs.entry.js +2 -2
  8. package/dist/cjs/limel-badge.cjs.entry.js +2 -2
  9. package/dist/cjs/limel-banner.cjs.entry.js +1 -1
  10. package/dist/cjs/limel-breadcrumbs_6.cjs.entry.js +131 -39
  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 +1 -1
  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 +15 -24
  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 +58 -36
  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 +10 -169
  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 +1 -1
  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/cjs/typeahead-CnyIjog_.js +194 -0
  75. package/dist/collection/components/3d-hover-effect-glow/3d-hover-effect-glow.js +1 -1
  76. package/dist/collection/components/action-bar/action-bar-item/action-bar-overflow-menu.js +1 -1
  77. package/dist/collection/components/action-bar/action-bar.js +2 -2
  78. package/dist/collection/components/ai-avatar/ai-avatar.js +1 -1
  79. package/dist/collection/components/badge/badge.js +2 -2
  80. package/dist/collection/components/banner/banner.js +1 -1
  81. package/dist/collection/components/breadcrumbs/breadcrumbs.js +1 -1
  82. package/dist/collection/components/button/button.js +2 -2
  83. package/dist/collection/components/button-group/button-group.js +1 -1
  84. package/dist/collection/components/callout/callout.js +1 -1
  85. package/dist/collection/components/card/card.js +1 -1
  86. package/dist/collection/components/checkbox/checkbox.js +1 -1
  87. package/dist/collection/components/chip/chip.js +1 -1
  88. package/dist/collection/components/chip-set/chip-set.js +66 -3
  89. package/dist/collection/components/circular-progress/circular-progress.js +1 -1
  90. package/dist/collection/components/code-diff/code-diff.js +1 -1
  91. package/dist/collection/components/code-editor/code-editor.js +1 -1
  92. package/dist/collection/components/collapsible-section/collapsible-section.js +1 -1
  93. package/dist/collection/components/color-picker/color-picker-palette.js +2 -2
  94. package/dist/collection/components/color-picker/color-picker.js +1 -1
  95. package/dist/collection/components/date-picker/flatpickr-adapter/flatpickr-adapter.js +1 -1
  96. package/dist/collection/components/dialog/dialog.js +2 -2
  97. package/dist/collection/components/dock/dock.js +2 -2
  98. package/dist/collection/components/drag-handle/drag-handle.js +1 -1
  99. package/dist/collection/components/email-viewer/email-viewer.js +1 -1
  100. package/dist/collection/components/file/file.js +1 -1
  101. package/dist/collection/components/file-dropzone/file-dropzone.js +1 -1
  102. package/dist/collection/components/file-input/file-input.js +1 -1
  103. package/dist/collection/components/flex-container/flex-container.js +1 -1
  104. package/dist/collection/components/form/form.js +1 -1
  105. package/dist/collection/components/form-header/form-header.js +1 -1
  106. package/dist/collection/components/grid/grid.js +1 -1
  107. package/dist/collection/components/header/header.js +1 -1
  108. package/dist/collection/components/help/help-content.js +1 -1
  109. package/dist/collection/components/help/help.js +2 -2
  110. package/dist/collection/components/helper-line/helper-line.js +2 -2
  111. package/dist/collection/components/hotkey/hotkey.js +1 -1
  112. package/dist/collection/components/icon/icon.js +1 -1
  113. package/dist/collection/components/icon-button/icon-button.js +1 -1
  114. package/dist/collection/components/info-tile/info-tile.js +2 -2
  115. package/dist/collection/components/input-field/input-field.css +13 -0
  116. package/dist/collection/components/input-field/input-field.js +152 -32
  117. package/dist/collection/components/list/list-renderer.js +1 -1
  118. package/dist/collection/components/list/list.js +31 -20
  119. package/dist/collection/components/list-item/list-item.js +2 -2
  120. package/dist/collection/components/list-item/menu-item-meta/menu-item-meta.js +1 -1
  121. package/dist/collection/components/markdown/markdown.js +1 -1
  122. package/dist/collection/components/masonry-layout/masonry-layout.js +1 -1
  123. package/dist/collection/components/menu/menu.js +1 -1
  124. package/dist/collection/components/menu-list/menu-list.js +1 -1
  125. package/dist/collection/components/menu-surface/menu-surface.js +1 -1
  126. package/dist/collection/components/notched-outline/notched-outline.js +1 -1
  127. package/dist/collection/components/pagination/pagination.js +1 -1
  128. package/dist/collection/components/picker/picker.css +112 -0
  129. package/dist/collection/components/picker/picker.js +56 -32
  130. package/dist/collection/components/popover/popover.js +3 -10
  131. package/dist/collection/components/popover-surface/popover-surface.js +1 -1
  132. package/dist/collection/components/portal/portal.js +1 -1
  133. package/dist/collection/components/radio-button-group/radio-button-group.js +1 -1
  134. package/dist/collection/components/radio-button-group/radio-button.js +2 -2
  135. package/dist/collection/components/resize-handle/resize-handle.js +1 -1
  136. package/dist/collection/components/scroller/scroller.js +2 -2
  137. package/dist/collection/components/select/select.js +1 -1
  138. package/dist/collection/components/shortcut/shortcut.js +1 -1
  139. package/dist/collection/components/side-panel/side-panel.js +1 -1
  140. package/dist/collection/components/slider/slider.js +3 -3
  141. package/dist/collection/components/snackbar/snackbar.js +2 -2
  142. package/dist/collection/components/spinner/spinner.js +1 -1
  143. package/dist/collection/components/split-button/split-button.js +2 -2
  144. package/dist/collection/components/switch/switch.js +1 -1
  145. package/dist/collection/components/tab-bar/tab-bar.js +1 -1
  146. package/dist/collection/components/tab-panel/tab-panel.js +1 -1
  147. package/dist/collection/components/table/table.js +2 -2
  148. package/dist/collection/components/text-editor/link-menu/editor-link-menu.js +3 -3
  149. package/dist/collection/components/text-editor/prosemirror-adapter/prosemirror-adapter.js +1 -1
  150. package/dist/collection/components/text-editor/text-editor.js +1 -1
  151. package/dist/collection/components/tooltip/tooltip-content.js +1 -1
  152. package/dist/collection/components/tooltip/tooltip.js +2 -2
  153. package/dist/collection/translations/da.js +1 -0
  154. package/dist/collection/translations/de.js +1 -0
  155. package/dist/collection/translations/en.js +1 -0
  156. package/dist/collection/translations/fi.js +1 -0
  157. package/dist/collection/translations/fr.js +1 -0
  158. package/dist/collection/translations/nl.js +1 -0
  159. package/dist/collection/translations/no.js +1 -0
  160. package/dist/collection/translations/sv.js +1 -0
  161. package/dist/collection/util/controlled-element.js +22 -0
  162. package/dist/collection/util/live-message.js +30 -0
  163. package/dist/collection/util/typeahead.js +26 -0
  164. package/dist/esm/controlled-element-ByOXsysp.js +24 -0
  165. package/dist/esm/{index-BN64nlbO.js → index-CofmbCdQ.js} +271 -71
  166. package/dist/esm/lime-elements.js +1 -1
  167. package/dist/esm/limel-3d-hover-effect-glow.entry.js +1 -1
  168. package/dist/esm/limel-action-bar_3.entry.js +4 -4
  169. package/dist/esm/limel-ai-avatar.entry.js +2 -2
  170. package/dist/esm/limel-badge.entry.js +2 -2
  171. package/dist/esm/limel-banner.entry.js +1 -1
  172. package/dist/esm/limel-breadcrumbs_6.entry.js +131 -39
  173. package/dist/esm/limel-button-group.entry.js +1 -1
  174. package/dist/esm/limel-button.entry.js +2 -2
  175. package/dist/esm/limel-callout.entry.js +2 -2
  176. package/dist/esm/limel-card.entry.js +1 -1
  177. package/dist/esm/limel-chart.entry.js +1 -1
  178. package/dist/esm/limel-checkbox.entry.js +1 -1
  179. package/dist/esm/limel-chip-set.entry.js +23 -4
  180. package/dist/esm/limel-chip_2.entry.js +2 -2
  181. package/dist/esm/limel-circular-progress.entry.js +1 -1
  182. package/dist/esm/limel-code-diff.entry.js +2 -2
  183. package/dist/esm/limel-code-editor.entry.js +2 -2
  184. package/dist/esm/limel-collapsible-section.entry.js +2 -2
  185. package/dist/esm/limel-color-picker-palette.entry.js +2 -2
  186. package/dist/esm/limel-color-picker.entry.js +1 -1
  187. package/dist/esm/limel-dialog.entry.js +2 -2
  188. package/dist/esm/limel-dock.entry.js +3 -3
  189. package/dist/esm/limel-drag-handle_2.entry.js +4 -4
  190. package/dist/esm/limel-email-viewer.entry.js +2 -2
  191. package/dist/esm/limel-file-dropzone_2.entry.js +2 -2
  192. package/dist/esm/limel-file-viewer.entry.js +2 -2
  193. package/dist/esm/limel-file.entry.js +2 -2
  194. package/dist/esm/limel-flatpickr-adapter.entry.js +2 -2
  195. package/dist/esm/limel-flex-container.entry.js +1 -1
  196. package/dist/esm/limel-form-header.entry.js +1 -1
  197. package/dist/esm/limel-form.entry.js +1 -1
  198. package/dist/esm/limel-grid.entry.js +1 -1
  199. package/dist/esm/limel-header.entry.js +1 -1
  200. package/dist/esm/limel-help_2.entry.js +3 -3
  201. package/dist/esm/limel-helper-line_3.entry.js +15 -24
  202. package/dist/esm/limel-hotkey_4.entry.js +5 -5
  203. package/dist/esm/limel-icon-button.entry.js +1 -1
  204. package/dist/esm/limel-icon.entry.js +1 -1
  205. package/dist/esm/limel-info-tile.entry.js +2 -2
  206. package/dist/esm/limel-list-item.entry.js +3 -3
  207. package/dist/esm/limel-markdown.entry.js +4 -4
  208. package/dist/esm/limel-masonry-layout.entry.js +1 -1
  209. package/dist/esm/limel-menu-item-meta.entry.js +1 -1
  210. package/dist/esm/limel-pagination-jump.entry.js +1 -1
  211. package/dist/esm/limel-pagination.entry.js +2 -2
  212. package/dist/esm/limel-picker.entry.js +57 -35
  213. package/dist/esm/limel-popover_2.entry.js +4 -11
  214. package/dist/esm/limel-profile-picture.entry.js +1 -1
  215. package/dist/esm/limel-prosemirror-adapter.entry.js +4 -4
  216. package/dist/esm/limel-radio-button-group.entry.js +1 -1
  217. package/dist/esm/limel-radio-button.entry.js +2 -2
  218. package/dist/esm/limel-resize-handle.entry.js +2 -2
  219. package/dist/esm/limel-select.entry.js +2 -161
  220. package/dist/esm/limel-shortcut.entry.js +1 -1
  221. package/dist/esm/limel-side-panel.entry.js +2 -2
  222. package/dist/esm/limel-slider.entry.js +4 -4
  223. package/dist/esm/limel-snackbar.entry.js +3 -3
  224. package/dist/esm/limel-split-button.entry.js +2 -2
  225. package/dist/esm/limel-switch.entry.js +1 -1
  226. package/dist/esm/limel-tab-bar.entry.js +1 -1
  227. package/dist/esm/limel-tab-panel.entry.js +1 -1
  228. package/dist/esm/limel-table.entry.js +3 -3
  229. package/dist/esm/limel-text-editor-link-menu.entry.js +4 -4
  230. package/dist/esm/limel-text-editor.entry.js +1 -1
  231. package/dist/esm/live-message-BQAYeNiX.js +62 -0
  232. package/dist/esm/loader.js +1 -1
  233. package/dist/esm/{markdown-exporter-tb8ft8Gq.js → markdown-exporter-B2vFxSLw.js} +2 -2
  234. package/dist/esm/{markdown-parser-DFP65EFu.js → markdown-parser-Cw8iW5R9.js} +1 -1
  235. package/dist/esm/{translations-Drl5LNAD.js → translations-kct5Kybu.js} +8 -0
  236. package/dist/esm/typeahead-DOlnT3wh.js +188 -0
  237. package/dist/lime-elements/lime-elements.esm.js +1 -1
  238. package/dist/lime-elements/{p-55f7c9f5.entry.js → p-02aac2c0.entry.js} +1 -1
  239. package/dist/lime-elements/{p-a608ebe3.entry.js → p-0319f07f.entry.js} +1 -1
  240. package/dist/lime-elements/{p-dd383c12.entry.js → p-0910aefc.entry.js} +1 -1
  241. package/dist/lime-elements/{p-a7a84633.entry.js → p-1a7d1d2b.entry.js} +1 -1
  242. package/dist/lime-elements/{p-f8566c5b.entry.js → p-1d9bc526.entry.js} +1 -1
  243. package/dist/lime-elements/{p-e0ab0046.entry.js → p-1e0ced6a.entry.js} +1 -1
  244. package/dist/lime-elements/{p-5f2a34ed.entry.js → p-28957b5c.entry.js} +1 -1
  245. package/dist/lime-elements/{p-fdc7da58.entry.js → p-38ab193f.entry.js} +1 -1
  246. package/dist/lime-elements/{p-3ae5fb67.entry.js → p-39d1e157.entry.js} +1 -1
  247. package/dist/lime-elements/{p-d0908a85.entry.js → p-3ac39bd5.entry.js} +2 -2
  248. package/dist/lime-elements/p-3ca188f6.entry.js +159 -0
  249. package/dist/lime-elements/{p-7f1a1ed5.entry.js → p-3f7fa772.entry.js} +1 -1
  250. package/dist/lime-elements/{p-b80433be.entry.js → p-40940a6c.entry.js} +1 -1
  251. package/dist/lime-elements/{p-7235d147.entry.js → p-438fe49b.entry.js} +1 -1
  252. package/dist/lime-elements/p-45572e9d.entry.js +1 -0
  253. package/dist/lime-elements/{p-0c314c3c.entry.js → p-47fe76a8.entry.js} +1 -1
  254. package/dist/lime-elements/p-4834e7c1.entry.js +1 -0
  255. package/dist/lime-elements/{p-22c44279.entry.js → p-48a412ed.entry.js} +1 -1
  256. package/dist/lime-elements/{p-eb5a18ff.entry.js → p-496b2437.entry.js} +1 -1
  257. package/dist/lime-elements/{p-5d9a2877.entry.js → p-4c080cd9.entry.js} +1 -1
  258. package/dist/lime-elements/{p-be0a8125.entry.js → p-54537c85.entry.js} +1 -1
  259. package/dist/lime-elements/{p-2c29c27f.entry.js → p-55fa19ae.entry.js} +1 -1
  260. package/dist/lime-elements/{p-da4b4a81.entry.js → p-5dce791c.entry.js} +1 -1
  261. package/dist/lime-elements/{p-b983531f.entry.js → p-6053608a.entry.js} +1 -1
  262. package/dist/lime-elements/{p-164e1ad0.entry.js → p-6ae093c8.entry.js} +1 -1
  263. package/dist/lime-elements/{p-29815107.entry.js → p-6d2d25b9.entry.js} +1 -1
  264. package/dist/lime-elements/{p-9e30d206.entry.js → p-6d9b89db.entry.js} +1 -1
  265. package/dist/lime-elements/{p-be2b8c1e.entry.js → p-6e9eeb0a.entry.js} +1 -1
  266. package/dist/lime-elements/{p-68129487.entry.js → p-764d2f86.entry.js} +1 -1
  267. package/dist/lime-elements/{p-49a53f0b.entry.js → p-7ab726c2.entry.js} +1 -1
  268. package/dist/lime-elements/{p-cced022b.entry.js → p-7b87e547.entry.js} +1 -1
  269. package/dist/lime-elements/{p-65eafc85.entry.js → p-7bf3bf8a.entry.js} +1 -1
  270. package/dist/lime-elements/{p-586ee40c.entry.js → p-7d0ffc60.entry.js} +1 -1
  271. package/dist/lime-elements/{p-fad7a3fa.entry.js → p-7f0743d6.entry.js} +1 -1
  272. package/dist/lime-elements/{p-7d27d572.entry.js → p-814b4934.entry.js} +1 -1
  273. package/dist/lime-elements/p-843886fe.entry.js +1 -0
  274. package/dist/lime-elements/p-8d602078.entry.js +1 -0
  275. package/dist/lime-elements/p-8fe28845.entry.js +1 -0
  276. package/dist/lime-elements/{p-f35880ef.entry.js → p-909466b8.entry.js} +1 -1
  277. package/dist/lime-elements/{p-545c087b.entry.js → p-933ffaa8.entry.js} +1 -1
  278. package/dist/lime-elements/p-94ae27e2.entry.js +23 -0
  279. package/dist/lime-elements/{p-cc8d6198.entry.js → p-95a486c8.entry.js} +1 -1
  280. package/dist/lime-elements/{p-565c85ac.entry.js → p-9b2623fe.entry.js} +1 -1
  281. package/dist/lime-elements/{p-C0wwdPYT.js → p-Bd37Vplf.js} +2 -2
  282. package/dist/lime-elements/p-ByOXsysp.js +1 -0
  283. package/dist/lime-elements/{p-_UXAljNc.js → p-CbPYnlF-.js} +1 -1
  284. package/dist/lime-elements/{p-Bgn2bikC.js → p-CvHpvp0f.js} +1 -1
  285. package/dist/lime-elements/p-Cw7VQSGU.js +1 -0
  286. package/dist/lime-elements/p-Dzp8dXTo.js +1 -0
  287. package/dist/lime-elements/{p-565e5ea7.entry.js → p-a6387dc7.entry.js} +1 -1
  288. package/dist/lime-elements/{p-40a48f70.entry.js → p-a6c6a31b.entry.js} +1 -1
  289. package/dist/lime-elements/{p-e8255f0b.entry.js → p-a7be03e1.entry.js} +1 -1
  290. package/dist/lime-elements/{p-67acf39d.entry.js → p-af7d07fd.entry.js} +1 -1
  291. package/dist/lime-elements/{p-707d4b28.entry.js → p-bffb5ed2.entry.js} +1 -1
  292. package/dist/lime-elements/{p-7035d93d.entry.js → p-c0ebf7cc.entry.js} +1 -1
  293. package/dist/lime-elements/{p-7aae3d13.entry.js → p-c2056ebc.entry.js} +1 -1
  294. package/dist/lime-elements/{p-19681a98.entry.js → p-c2f993cc.entry.js} +1 -1
  295. package/dist/lime-elements/{p-c73f4160.entry.js → p-c61e9b83.entry.js} +1 -1
  296. package/dist/lime-elements/{p-519603f5.entry.js → p-c6b3448c.entry.js} +1 -1
  297. package/dist/lime-elements/{p-153e91e1.entry.js → p-ce71c5b9.entry.js} +1 -1
  298. package/dist/lime-elements/{p-2a375a65.entry.js → p-d35d2859.entry.js} +1 -1
  299. package/dist/lime-elements/{p-26347009.entry.js → p-d3f13124.entry.js} +1 -1
  300. package/dist/lime-elements/{p-300f80e7.entry.js → p-d4702653.entry.js} +1 -1
  301. package/dist/lime-elements/{p-a2dc6645.entry.js → p-d8559847.entry.js} +1 -1
  302. package/dist/lime-elements/{p-c8f09dd5.entry.js → p-db9cb7ef.entry.js} +1 -1
  303. package/dist/lime-elements/{p-05c1f5a0.entry.js → p-e5abe390.entry.js} +1 -1
  304. package/dist/lime-elements/p-f036ad27.entry.js +1 -0
  305. package/dist/lime-elements/{p-2f5face5.entry.js → p-f59447bf.entry.js} +1 -1
  306. package/dist/lime-elements/{p-a81f6962.entry.js → p-f5bb17eb.entry.js} +1 -1
  307. package/dist/lime-elements/{p-9bbf2612.entry.js → p-f7a90228.entry.js} +1 -1
  308. package/dist/lime-elements/p-fYs7n6yY.js +1 -0
  309. package/dist/types/components/chip-set/chip-set.d.ts +15 -0
  310. package/dist/types/components/input-field/input-field.d.ts +19 -6
  311. package/dist/types/components/list/list-renderer-config.d.ts +1 -0
  312. package/dist/types/components/list/list.d.ts +6 -0
  313. package/dist/types/components/picker/picker.d.ts +12 -5
  314. package/dist/types/components/popover/popover.d.ts +0 -1
  315. package/dist/types/components.d.ts +46 -0
  316. package/dist/types/translations/da.d.ts +1 -0
  317. package/dist/types/translations/de.d.ts +1 -0
  318. package/dist/types/translations/en.d.ts +1 -0
  319. package/dist/types/translations/fi.d.ts +1 -0
  320. package/dist/types/translations/fr.d.ts +1 -0
  321. package/dist/types/translations/nl.d.ts +1 -0
  322. package/dist/types/translations/no.d.ts +1 -0
  323. package/dist/types/translations/sv.d.ts +1 -0
  324. package/dist/types/util/controlled-element.d.ts +11 -0
  325. package/dist/types/util/live-message.d.ts +17 -0
  326. package/dist/types/util/typeahead.d.ts +16 -0
  327. package/package.json +2 -2
  328. package/dist/cjs/dom-BWMDM6En.js +0 -32
  329. package/dist/esm/dom-B9Ofc5RB.js +0 -30
  330. package/dist/lime-elements/p-27d7c255.entry.js +0 -159
  331. package/dist/lime-elements/p-3c861ca8.entry.js +0 -23
  332. package/dist/lime-elements/p-513d2a5e.entry.js +0 -1
  333. package/dist/lime-elements/p-55abec82.entry.js +0 -1
  334. package/dist/lime-elements/p-6aae3f58.entry.js +0 -1
  335. package/dist/lime-elements/p-7af16e1d.entry.js +0 -1
  336. package/dist/lime-elements/p-813cb15c.entry.js +0 -1
  337. package/dist/lime-elements/p-895a68c5.entry.js +0 -1
  338. package/dist/lime-elements/p-B26k4gw8.js +0 -1
  339. package/dist/lime-elements/p-B9Ofc5RB.js +0 -1
@@ -4,9 +4,22 @@ import { debounce } from "lodash-es";
4
4
  import { ARROW_DOWN, ARROW_UP, ENTER, ESCAPE, SPACE, TAB, } from "../../util/keycodes";
5
5
  import { getHref, getTarget, getRel } from "../../util/link-helper";
6
6
  import { createRandomString } from "../../util/random-string";
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";
7
11
  import { globalConfig } from "../../global/config";
8
12
  const CHANGE_EVENT_DEBOUNCE_TIMEOUT = 300;
9
13
  const RESIZE_HANDLER_DEBOUNCE_TIMEOUT = 100;
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
+ ]);
10
23
  /**
11
24
  * @exampleComponent limel-example-input-field-text
12
25
  * @exampleComponent limel-example-input-field-placeholder
@@ -79,6 +92,11 @@ export class InputField {
79
92
  * list of suggestions `value` can autocomplete to.
80
93
  */
81
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';
82
100
  /**
83
101
  * For inputs of type `email`, `tel`, `url`, and `urlAsText`, set this to
84
102
  * `true` to show a trailing icon with a `mailto:`,`tel:`, or normal link,
@@ -93,6 +111,8 @@ export class InputField {
93
111
  this.isFocused = false;
94
112
  this.wasInvalid = false;
95
113
  this.showCompletions = false;
114
+ this.suggestionsEngaged = false;
115
+ this.suggestionsMessage = createLiveMessage(() => this.getSuggestionsMessage());
96
116
  this.completionsList = [];
97
117
  this.changeWaiting = false;
98
118
  this.initialize = () => {
@@ -202,6 +222,9 @@ export class InputField {
202
222
  };
203
223
  this.onFocus = () => {
204
224
  this.isFocused = true;
225
+ if (!this.showCompletions) {
226
+ this.suggestionsEngaged = false;
227
+ }
205
228
  this.showCompletions = true;
206
229
  };
207
230
  this.onBlur = () => {
@@ -367,41 +390,65 @@ export class InputField {
367
390
  }
368
391
  return (h("span", { class: "lime-formatted-input lime-looks-like-input-value", "aria-hidden": this.readonly ? 'true' : undefined }, renderValue));
369
392
  };
370
- /**
371
- * Key handler for the input field
372
- * Will change focus to the first/last item in the dropdown list to enable selection with the keyboard
373
- *
374
- * @param event - event
375
- */
376
393
  this.onKeyDown = (event) => {
377
- this.showCompletions = true;
378
- const isForwardTab = event.key === TAB &&
394
+ if (event.key === ESCAPE) {
395
+ this.closeListWithEscape(event);
396
+ return;
397
+ }
398
+ const isTab = event.key === TAB &&
379
399
  !event.altKey &&
380
400
  !event.metaKey &&
381
- !event.shiftKey;
382
- const isUp = event.key === ARROW_UP;
383
- const isDown = event.key === ARROW_DOWN;
384
- if (event.key === TAB && event.shiftKey) {
401
+ !event.ctrlKey;
402
+ if (isTab) {
385
403
  this.showCompletions = false;
386
- }
387
- if (!isForwardTab && !isUp && !isDown) {
388
404
  return;
389
405
  }
390
- const list = document.querySelector(` #${this.portalId} limel-list`);
391
- if (!list) {
406
+ const wasOpen = this.isSuggestionListOpen();
407
+ this.showCompletions = true;
408
+ this.suggestionsEngaged = true;
409
+ if (event.key === ARROW_DOWN || event.key === ARROW_UP) {
410
+ this.moveIntoList(event, wasOpen);
411
+ }
412
+ };
413
+ this.moveIntoList = (event, wasOpen) => {
414
+ var _a;
415
+ if (!this.isSuggestionListOpen()) {
392
416
  return;
393
417
  }
394
418
  event.preventDefault();
395
- if (isForwardTab || isDown) {
396
- const listElement = list.shadowRoot.querySelector('.mdc-deprecated-list-item:first-child');
397
- listElement.focus();
419
+ const position = event.key === ARROW_DOWN ? 'first' : 'last';
420
+ if (wasOpen) {
421
+ (_a = this.getListOption(position)) === null || _a === void 0 ? void 0 : _a.focus();
398
422
  return;
399
423
  }
400
- if (!isUp) {
424
+ this.focusOptionWhenShown(position);
425
+ };
426
+ this.getListOption = (position) => {
427
+ const list = document.querySelector(` #${this.portalId} limel-list`);
428
+ return list === null || list === void 0 ? void 0 : list.shadowRoot.querySelector(`.mdc-deprecated-list-item:${position}-child`);
429
+ };
430
+ this.focusOptionWhenShown = (position) => {
431
+ let frames = 0;
432
+ const focusOption = () => {
433
+ const option = this.getListOption(position);
434
+ if ((option === null || option === void 0 ? void 0 : option.getClientRects().length) > 0) {
435
+ option.focus();
436
+ return;
437
+ }
438
+ frames += 1;
439
+ if (frames < MAX_FRAMES_TO_WAIT_FOR_LIST) {
440
+ requestAnimationFrame(focusOption);
441
+ }
442
+ };
443
+ requestAnimationFrame(focusOption);
444
+ };
445
+ this.closeListWithEscape = (event) => {
446
+ if (!this.isSuggestionListOpen()) {
401
447
  return;
402
448
  }
403
- const listElement = list.shadowRoot.querySelector('.mdc-deprecated-list-item:last-child');
404
- listElement.focus();
449
+ event.preventDefault();
450
+ event.stopPropagation();
451
+ this.showCompletions = false;
405
452
  };
406
453
  this.handleCompletionChange = (event) => {
407
454
  event.stopPropagation();
@@ -418,10 +465,41 @@ export class InputField {
418
465
  this.changeEmitter(event.detail.text);
419
466
  this.changeEmitter.flush();
420
467
  };
468
+ this.hasSuggestions = () => {
469
+ return (!this.readonly &&
470
+ this.type !== 'textarea' &&
471
+ this.completions.length > 0);
472
+ };
473
+ this.isCombobox = () => {
474
+ return this.hasSuggestions() && TEXT_INPUT_TYPES.has(this.type);
475
+ };
476
+ this.isSuggestionListOpen = () => {
477
+ return (this.hasSuggestions() &&
478
+ this.showCompletions &&
479
+ this.filterCompletions(this.getCurrentValue()).length > 0);
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
+ };
421
501
  this.renderAutocompleteList = () => {
422
- if (this.readonly ||
423
- this.type === 'textarea' ||
424
- this.completions.length === 0) {
502
+ if (!this.hasSuggestions()) {
425
503
  return;
426
504
  }
427
505
  const dropdownZIndex = getComputedStyle(this.limelInputField).getPropertyValue('--dropdown-z-index');
@@ -436,11 +514,17 @@ export class InputField {
436
514
  if (!filteredCompletions || filteredCompletions.length === 0) {
437
515
  return null;
438
516
  }
439
- 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 }));
440
518
  };
441
519
  this.handleKeyDownInDropdown = (event) => {
442
- const keyFound = [TAB, ESCAPE, ENTER].includes(event.key);
443
- if (keyFound) {
520
+ if (event.key === ESCAPE) {
521
+ event.preventDefault();
522
+ event.stopPropagation();
523
+ this.setFocus();
524
+ this.showCompletions = false;
525
+ return;
526
+ }
527
+ if ([TAB, ENTER].includes(event.key) || isTextEditingKey(event)) {
444
528
  this.setFocus();
445
529
  }
446
530
  };
@@ -508,11 +592,16 @@ export class InputField {
508
592
  componentDidLoad() {
509
593
  this.initialize();
510
594
  }
595
+ componentDidRender() {
596
+ this.pointAtSuggestionList();
597
+ this.suggestionsMessage.update();
598
+ }
511
599
  disconnectedCallback() {
512
600
  if (this.mdcTextField) {
513
601
  this.mdcTextField.destroy();
514
602
  }
515
603
  this.restyleCompletionsDropDown.cancel();
604
+ this.suggestionsMessage.update.cancel();
516
605
  window.removeEventListener('resize', this.layout);
517
606
  this.limelInputField.removeEventListener('focus', this.setFocus);
518
607
  }
@@ -598,10 +687,13 @@ export class InputField {
598
687
  if (this.isInvalid()) {
599
688
  properties['aria-invalid'] = 'true';
600
689
  }
601
- if (this.renderAutocompleteList()) {
602
- 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());
603
695
  }
604
- return (h(Host, { key: '3abb0e074f55f8e47f46cf77ed885797047e44b9' }, h("limel-notched-outline", { key: '0d25df2774e7cda39da90163b0832a1ea117d7c8', 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: 'a60a2bfcdafe232b32a0d67f972c3885fc5b6428', 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()));
605
697
  }
606
698
  valueWatcher(newValue) {
607
699
  if (!this.mdcTextField || this.changeWaiting) {
@@ -1070,6 +1162,33 @@ export class InputField {
1070
1162
  "setter": false,
1071
1163
  "defaultValue": "[]"
1072
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
+ },
1073
1192
  "showLink": {
1074
1193
  "type": "boolean",
1075
1194
  "mutable": false,
@@ -1116,7 +1235,8 @@ export class InputField {
1116
1235
  return {
1117
1236
  "isFocused": {},
1118
1237
  "wasInvalid": {},
1119
- "showCompletions": {}
1238
+ "showCompletions": {},
1239
+ "suggestionsEngaged": {}
1120
1240
  };
1121
1241
  }
1122
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
@@ -50,26 +51,16 @@ export class List {
50
51
  this.listElement.removeEventListener('mousedown', this.handleItemMouseDown);
51
52
  this.listElement.addEventListener('mousedown', this.handleItemMouseDown);
52
53
  this.mdcList = new MDCList(element);
53
- // NOTE: This has no effect. It is kept as a marker rather than
54
- // removed, so that its absence isn't mistaken for an oversight.
54
+ // MDC's typeahead (`hasTypeahead`) is left off, so that typed
55
+ // characters are not taken from a field with a list under it. The list
56
+ // test in `list.e2e.tsx` fails if it is turned on. `limel-select` has
57
+ // its own typeahead, see `src/util/typeahead.ts`.
55
58
  //
56
- // MDC indexes each row for typeahead by looking for
57
- // `.mdc-deprecated-list-item__primary-text` inside it, while
58
- // `limel-list-item` renders its label as `<span class="label">`. MDC
59
- // therefore builds an empty index, and typing does nothing.
60
- //
61
- // Do not "fix" this by adding MDC's class name to `limel-list-item`.
62
- // That revives MDC's typeahead along with three behaviors that cannot
63
- // be configured from the outside: a hard coded 300ms buffer, `Enter`
64
- // being ignored for as long as that buffer lives (its `notifyAction`
65
- // is guarded by `isTypeaheadInProgress`), and the space bar being
66
- // excluded from matches. It would also collide with `limel-menu`,
67
- // where single characters are used as item hotkeys.
68
- //
69
- // `limel-select` implements its own typeahead instead, see
70
- // `src/util/typeahead.ts`. It intercepts typed characters in the
71
- // capture phase on this very element, so they never reach MDC.
72
- this.mdcList.hasTypeahead = true;
59
+ // Adding MDC's class name to `limel-list-item` does nothing while it is
60
+ // off. Turning it on as well would bring its 300ms buffer, `Enter`
61
+ // being ignored while the buffer lives and the space bar being left out
62
+ // of matches, none of which can be configured, and it would collide
63
+ // with the single characters that `limel-menu` uses as hotkeys.
73
64
  };
74
65
  /**
75
66
  * Focus the pressed list item directly, without scrolling.
@@ -188,13 +179,14 @@ export class List {
188
179
  badgeIcons: this.badgeIcons,
189
180
  type: this.type,
190
181
  iconSize: this.iconSize,
182
+ accessibleLabel: this.accessibleLabel,
191
183
  };
192
184
  let maxLinesSecondaryText = +((_a = this.maxLinesSecondaryText) === null || _a === void 0 ? void 0 : _a.toFixed(0));
193
185
  if (this.maxLinesSecondaryText < 1) {
194
186
  maxLinesSecondaryText = 1;
195
187
  }
196
188
  const html = this.listRenderer.render(this.items, this.config);
197
- return (h(Host, { key: 'c1c087f11542451c1747d510c133e79f94d643ba', style: {
189
+ return (h(Host, { key: 'e6619c70eab882e1a9ed482098a7f1ed673c74a1', style: {
198
190
  '--maxLinesSecondaryText': `${maxLinesSecondaryText}`,
199
191
  } }, html));
200
192
  }
@@ -351,6 +343,25 @@ export class List {
351
343
  "reflect": false,
352
344
  "attribute": "type"
353
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
+ },
354
365
  "maxLinesSecondaryText": {
355
366
  "type": "number",
356
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
  }