@limetech/lime-elements 39.26.0 → 39.28.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 (286) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/cjs/lime-elements.cjs.js +1 -1
  3. package/dist/cjs/limel-action-bar_3.cjs.entry.js +1 -1
  4. package/dist/cjs/limel-ai-avatar.cjs.entry.js +136 -12
  5. package/dist/cjs/limel-badge.cjs.entry.js +2 -2
  6. package/dist/cjs/limel-banner.cjs.entry.js +1 -1
  7. package/dist/cjs/limel-breadcrumbs_8.cjs.entry.js +8 -8
  8. package/dist/cjs/limel-button-group.cjs.entry.js +1 -1
  9. package/dist/cjs/limel-button.cjs.entry.js +2 -2
  10. package/dist/cjs/limel-callout.cjs.entry.js +2 -2
  11. package/dist/cjs/limel-card.cjs.entry.js +1 -1
  12. package/dist/cjs/limel-chart.cjs.entry.js +1 -1
  13. package/dist/cjs/limel-checkbox.cjs.entry.js +1 -1
  14. package/dist/cjs/limel-chip-set.cjs.entry.js +21 -3
  15. package/dist/cjs/limel-chip_2.cjs.entry.js +2 -2
  16. package/dist/cjs/limel-circular-progress.cjs.entry.js +1 -1
  17. package/dist/cjs/limel-code-diff.cjs.entry.js +2 -2
  18. package/dist/cjs/limel-code-editor.cjs.entry.js +2 -2
  19. package/dist/cjs/limel-collapsible-section.cjs.entry.js +2 -2
  20. package/dist/cjs/limel-color-picker-palette.cjs.entry.js +2 -2
  21. package/dist/cjs/limel-color-picker.cjs.entry.js +1 -1
  22. package/dist/cjs/limel-dialog.cjs.entry.js +2 -2
  23. package/dist/cjs/limel-dock.cjs.entry.js +2 -2
  24. package/dist/cjs/limel-drag-handle.cjs.entry.js +2 -2
  25. package/dist/cjs/limel-email-viewer.cjs.entry.js +2 -2
  26. package/dist/cjs/limel-file-dropzone_2.cjs.entry.js +2 -2
  27. package/dist/cjs/limel-file-viewer.cjs.entry.js +1 -1
  28. package/dist/cjs/limel-file.cjs.entry.js +2 -2
  29. package/dist/cjs/limel-flatpickr-adapter.cjs.entry.js +2 -2
  30. package/dist/cjs/limel-flex-container.cjs.entry.js +1 -1
  31. package/dist/cjs/limel-form.cjs.entry.js +1 -1
  32. package/dist/cjs/limel-grid.cjs.entry.js +1 -1
  33. package/dist/cjs/limel-header.cjs.entry.js +1 -1
  34. package/dist/cjs/limel-help-content.cjs.entry.js +1 -1
  35. package/dist/cjs/limel-help.cjs.entry.js +2 -2
  36. package/dist/cjs/limel-helper-line.cjs.entry.js +2 -2
  37. package/dist/cjs/limel-hotkey_4.cjs.entry.js +5 -5
  38. package/dist/cjs/limel-icon-button.cjs.entry.js +1 -1
  39. package/dist/cjs/limel-icon.cjs.entry.js +23 -1
  40. package/dist/cjs/limel-info-tile.cjs.entry.js +2 -2
  41. package/dist/cjs/limel-list-item.cjs.entry.js +3 -3
  42. package/dist/cjs/limel-markdown.cjs.entry.js +1 -1
  43. package/dist/cjs/limel-masonry-layout.cjs.entry.js +1 -1
  44. package/dist/cjs/limel-menu-item-meta.cjs.entry.js +1 -1
  45. package/dist/cjs/limel-picker.cjs.entry.js +107 -35
  46. package/dist/cjs/limel-popover_2.cjs.entry.js +2 -2
  47. package/dist/cjs/limel-profile-picture.cjs.entry.js +1 -1
  48. package/dist/cjs/limel-prosemirror-adapter.cjs.entry.js +2 -2
  49. package/dist/cjs/limel-radio-button-group.cjs.entry.js +1 -1
  50. package/dist/cjs/limel-radio-button.cjs.entry.js +2 -2
  51. package/dist/cjs/limel-select.cjs.entry.js +1 -1
  52. package/dist/cjs/limel-shortcut.cjs.entry.js +1 -1
  53. package/dist/cjs/limel-slider.cjs.entry.js +2 -2
  54. package/dist/cjs/limel-snackbar.cjs.entry.js +3 -3
  55. package/dist/cjs/limel-split-button.cjs.entry.js +2 -2
  56. package/dist/cjs/limel-switch.cjs.entry.js +1 -1
  57. package/dist/cjs/limel-tab-bar.cjs.entry.js +2 -2
  58. package/dist/cjs/limel-tab-panel.cjs.entry.js +1 -1
  59. package/dist/cjs/limel-table.cjs.entry.js +4 -4
  60. package/dist/cjs/limel-text-editor-link-menu.cjs.entry.js +4 -4
  61. package/dist/cjs/limel-text-editor.cjs.entry.js +1 -1
  62. package/dist/cjs/loader.cjs.js +1 -1
  63. package/dist/cjs/{translations-D4j_eojG.js → translations-VEsa81QY.js} +56 -0
  64. package/dist/collection/components/ai-avatar/ai-avatar.css +363 -124
  65. package/dist/collection/components/ai-avatar/ai-avatar.js +199 -16
  66. package/dist/collection/components/ai-avatar/ai-avatar.types.js +1 -0
  67. package/dist/collection/components/badge/badge.js +2 -2
  68. package/dist/collection/components/banner/banner.js +1 -1
  69. package/dist/collection/components/breadcrumbs/breadcrumbs.js +1 -1
  70. package/dist/collection/components/button/button.js +2 -2
  71. package/dist/collection/components/button-group/button-group.js +1 -1
  72. package/dist/collection/components/callout/callout.js +1 -1
  73. package/dist/collection/components/card/card.js +1 -1
  74. package/dist/collection/components/checkbox/checkbox.js +1 -1
  75. package/dist/collection/components/chip/chip.js +1 -1
  76. package/dist/collection/components/chip-set/chip-set.js +40 -2
  77. package/dist/collection/components/circular-progress/circular-progress.js +1 -1
  78. package/dist/collection/components/code-diff/code-diff.js +1 -1
  79. package/dist/collection/components/code-editor/code-editor.js +1 -1
  80. package/dist/collection/components/collapsible-section/collapsible-section.js +1 -1
  81. package/dist/collection/components/color-picker/color-picker-palette.js +2 -2
  82. package/dist/collection/components/color-picker/color-picker.js +1 -1
  83. package/dist/collection/components/date-picker/flatpickr-adapter/flatpickr-adapter.js +1 -1
  84. package/dist/collection/components/dialog/dialog.js +2 -2
  85. package/dist/collection/components/dock/dock.js +2 -2
  86. package/dist/collection/components/drag-handle/drag-handle.js +1 -1
  87. package/dist/collection/components/email-viewer/email-viewer.js +1 -1
  88. package/dist/collection/components/file/file.js +1 -1
  89. package/dist/collection/components/file-dropzone/file-dropzone.js +1 -1
  90. package/dist/collection/components/file-input/file-input.js +1 -1
  91. package/dist/collection/components/flex-container/flex-container.js +1 -1
  92. package/dist/collection/components/form/form.js +1 -1
  93. package/dist/collection/components/grid/grid.js +1 -1
  94. package/dist/collection/components/header/header.js +1 -1
  95. package/dist/collection/components/help/help-content.js +1 -1
  96. package/dist/collection/components/help/help.js +2 -2
  97. package/dist/collection/components/helper-line/helper-line.js +2 -2
  98. package/dist/collection/components/hotkey/hotkey.js +1 -1
  99. package/dist/collection/components/icon/icon.js +43 -1
  100. package/dist/collection/components/icon-button/icon-button.js +1 -1
  101. package/dist/collection/components/info-tile/info-tile.js +2 -2
  102. package/dist/collection/components/input-field/input-field.js +1 -1
  103. package/dist/collection/components/list/list.js +1 -1
  104. package/dist/collection/components/list-item/list-item.js +2 -2
  105. package/dist/collection/components/list-item/menu-item-meta/menu-item-meta.js +1 -1
  106. package/dist/collection/components/markdown/markdown.js +1 -1
  107. package/dist/collection/components/masonry-layout/masonry-layout.js +1 -1
  108. package/dist/collection/components/menu/menu.js +1 -1
  109. package/dist/collection/components/menu-list/menu-list.js +1 -1
  110. package/dist/collection/components/menu-surface/menu-surface.js +1 -1
  111. package/dist/collection/components/notched-outline/notched-outline.js +1 -1
  112. package/dist/collection/components/picker/picker.js +136 -36
  113. package/dist/collection/components/popover/popover.js +1 -1
  114. package/dist/collection/components/popover-surface/popover-surface.js +1 -1
  115. package/dist/collection/components/portal/portal.js +1 -1
  116. package/dist/collection/components/radio-button-group/radio-button-group.js +1 -1
  117. package/dist/collection/components/radio-button-group/radio-button.js +2 -2
  118. package/dist/collection/components/select/select.js +1 -1
  119. package/dist/collection/components/shortcut/shortcut.js +1 -1
  120. package/dist/collection/components/slider/slider.js +2 -2
  121. package/dist/collection/components/snackbar/snackbar.js +2 -2
  122. package/dist/collection/components/spinner/spinner.js +1 -1
  123. package/dist/collection/components/split-button/split-button.js +2 -2
  124. package/dist/collection/components/switch/switch.js +1 -1
  125. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  126. package/dist/collection/components/tab-panel/tab-panel.js +1 -1
  127. package/dist/collection/components/table/table.js +3 -3
  128. package/dist/collection/components/text-editor/link-menu/editor-link-menu.js +3 -3
  129. package/dist/collection/components/text-editor/prosemirror-adapter/prosemirror-adapter.js +1 -1
  130. package/dist/collection/components/text-editor/text-editor.js +1 -1
  131. package/dist/collection/components/tooltip/tooltip-content.js +1 -1
  132. package/dist/collection/components/tooltip/tooltip.js +2 -2
  133. package/dist/collection/translations/da.js +7 -0
  134. package/dist/collection/translations/de.js +7 -0
  135. package/dist/collection/translations/en.js +7 -0
  136. package/dist/collection/translations/fi.js +7 -0
  137. package/dist/collection/translations/fr.js +7 -0
  138. package/dist/collection/translations/nl.js +7 -0
  139. package/dist/collection/translations/no.js +7 -0
  140. package/dist/collection/translations/sv.js +7 -0
  141. package/dist/esm/lime-elements.js +1 -1
  142. package/dist/esm/limel-action-bar_3.entry.js +1 -1
  143. package/dist/esm/limel-ai-avatar.entry.js +136 -12
  144. package/dist/esm/limel-badge.entry.js +2 -2
  145. package/dist/esm/limel-banner.entry.js +1 -1
  146. package/dist/esm/limel-breadcrumbs_8.entry.js +8 -8
  147. package/dist/esm/limel-button-group.entry.js +1 -1
  148. package/dist/esm/limel-button.entry.js +2 -2
  149. package/dist/esm/limel-callout.entry.js +2 -2
  150. package/dist/esm/limel-card.entry.js +1 -1
  151. package/dist/esm/limel-chart.entry.js +1 -1
  152. package/dist/esm/limel-checkbox.entry.js +1 -1
  153. package/dist/esm/limel-chip-set.entry.js +21 -3
  154. package/dist/esm/limel-chip_2.entry.js +2 -2
  155. package/dist/esm/limel-circular-progress.entry.js +1 -1
  156. package/dist/esm/limel-code-diff.entry.js +2 -2
  157. package/dist/esm/limel-code-editor.entry.js +2 -2
  158. package/dist/esm/limel-collapsible-section.entry.js +2 -2
  159. package/dist/esm/limel-color-picker-palette.entry.js +2 -2
  160. package/dist/esm/limel-color-picker.entry.js +1 -1
  161. package/dist/esm/limel-dialog.entry.js +2 -2
  162. package/dist/esm/limel-dock.entry.js +2 -2
  163. package/dist/esm/limel-drag-handle.entry.js +2 -2
  164. package/dist/esm/limel-email-viewer.entry.js +2 -2
  165. package/dist/esm/limel-file-dropzone_2.entry.js +2 -2
  166. package/dist/esm/limel-file-viewer.entry.js +1 -1
  167. package/dist/esm/limel-file.entry.js +2 -2
  168. package/dist/esm/limel-flatpickr-adapter.entry.js +2 -2
  169. package/dist/esm/limel-flex-container.entry.js +1 -1
  170. package/dist/esm/limel-form.entry.js +1 -1
  171. package/dist/esm/limel-grid.entry.js +1 -1
  172. package/dist/esm/limel-header.entry.js +1 -1
  173. package/dist/esm/limel-help-content.entry.js +1 -1
  174. package/dist/esm/limel-help.entry.js +2 -2
  175. package/dist/esm/limel-helper-line.entry.js +2 -2
  176. package/dist/esm/limel-hotkey_4.entry.js +5 -5
  177. package/dist/esm/limel-icon-button.entry.js +1 -1
  178. package/dist/esm/limel-icon.entry.js +23 -1
  179. package/dist/esm/limel-info-tile.entry.js +2 -2
  180. package/dist/esm/limel-list-item.entry.js +3 -3
  181. package/dist/esm/limel-markdown.entry.js +1 -1
  182. package/dist/esm/limel-masonry-layout.entry.js +1 -1
  183. package/dist/esm/limel-menu-item-meta.entry.js +1 -1
  184. package/dist/esm/limel-picker.entry.js +108 -36
  185. package/dist/esm/limel-popover_2.entry.js +2 -2
  186. package/dist/esm/limel-profile-picture.entry.js +1 -1
  187. package/dist/esm/limel-prosemirror-adapter.entry.js +2 -2
  188. package/dist/esm/limel-radio-button-group.entry.js +1 -1
  189. package/dist/esm/limel-radio-button.entry.js +2 -2
  190. package/dist/esm/limel-select.entry.js +1 -1
  191. package/dist/esm/limel-shortcut.entry.js +1 -1
  192. package/dist/esm/limel-slider.entry.js +2 -2
  193. package/dist/esm/limel-snackbar.entry.js +3 -3
  194. package/dist/esm/limel-split-button.entry.js +2 -2
  195. package/dist/esm/limel-switch.entry.js +1 -1
  196. package/dist/esm/limel-tab-bar.entry.js +2 -2
  197. package/dist/esm/limel-tab-panel.entry.js +1 -1
  198. package/dist/esm/limel-table.entry.js +4 -4
  199. package/dist/esm/limel-text-editor-link-menu.entry.js +4 -4
  200. package/dist/esm/limel-text-editor.entry.js +1 -1
  201. package/dist/esm/loader.js +1 -1
  202. package/dist/esm/{translations-Dv3YcsA7.js → translations-EPnIW0K5.js} +56 -0
  203. package/dist/lime-elements/lime-elements.esm.js +1 -1
  204. package/dist/lime-elements/{p-96ee6090.entry.js → p-08a261ce.entry.js} +1 -1
  205. package/dist/lime-elements/p-122cd39d.entry.js +1 -0
  206. package/dist/lime-elements/{p-469ec146.entry.js → p-140afd9f.entry.js} +1 -1
  207. package/dist/lime-elements/{p-5cc370fe.entry.js → p-1614ad86.entry.js} +1 -1
  208. package/dist/lime-elements/{p-01651634.entry.js → p-19a259ff.entry.js} +1 -1
  209. package/dist/lime-elements/{p-512b2e14.entry.js → p-1a5541f1.entry.js} +1 -1
  210. package/dist/lime-elements/{p-104d0fb3.entry.js → p-1ae8b33a.entry.js} +1 -1
  211. package/dist/lime-elements/{p-95ac0387.entry.js → p-1e155de4.entry.js} +1 -1
  212. package/dist/lime-elements/{p-c8eabc9d.entry.js → p-1efd78ee.entry.js} +1 -1
  213. package/dist/lime-elements/{p-cc17846b.entry.js → p-22f34040.entry.js} +1 -1
  214. package/dist/lime-elements/{p-5442e09e.entry.js → p-263bfd74.entry.js} +1 -1
  215. package/dist/lime-elements/{p-a026cc24.entry.js → p-2a92790c.entry.js} +1 -1
  216. package/dist/lime-elements/{p-42b9b57a.entry.js → p-2a9e7bf5.entry.js} +1 -1
  217. package/dist/lime-elements/{p-05d533b5.entry.js → p-2b0a8066.entry.js} +1 -1
  218. package/dist/lime-elements/{p-aa43c751.entry.js → p-46900c5b.entry.js} +1 -1
  219. package/dist/lime-elements/{p-1c244f85.entry.js → p-49901dd7.entry.js} +1 -1
  220. package/dist/lime-elements/{p-ddd7cb78.entry.js → p-4d948ed5.entry.js} +1 -1
  221. package/dist/lime-elements/{p-60327283.entry.js → p-5017cb3f.entry.js} +1 -1
  222. package/dist/lime-elements/{p-fbdca779.entry.js → p-50f51eb9.entry.js} +1 -1
  223. package/dist/lime-elements/p-59716b48.entry.js +1 -0
  224. package/dist/lime-elements/{p-9caeca33.entry.js → p-5d9adcbb.entry.js} +1 -1
  225. package/dist/lime-elements/{p-da4429a8.entry.js → p-5f121609.entry.js} +1 -1
  226. package/dist/lime-elements/{p-eff0a330.entry.js → p-6015621e.entry.js} +1 -1
  227. package/dist/lime-elements/{p-c4813e26.entry.js → p-60518e6b.entry.js} +1 -1
  228. package/dist/lime-elements/{p-374ec191.entry.js → p-61ec46d5.entry.js} +1 -1
  229. package/dist/lime-elements/{p-cba72cd6.entry.js → p-6b7e58c3.entry.js} +1 -1
  230. package/dist/lime-elements/{p-6a26ea78.entry.js → p-6ca1da96.entry.js} +1 -1
  231. package/dist/lime-elements/{p-f6e58e6c.entry.js → p-730ba357.entry.js} +1 -1
  232. package/dist/lime-elements/{p-e7e2737b.entry.js → p-7b074737.entry.js} +1 -1
  233. package/dist/lime-elements/{p-79c797f5.entry.js → p-8203eea8.entry.js} +1 -1
  234. package/dist/lime-elements/{p-19d0861e.entry.js → p-82fb5c74.entry.js} +1 -1
  235. package/dist/lime-elements/{p-bcf03d4e.entry.js → p-871eb795.entry.js} +1 -1
  236. package/dist/lime-elements/{p-6f6c28f8.entry.js → p-8fde4714.entry.js} +1 -1
  237. package/dist/lime-elements/p-91990c64.entry.js +1 -0
  238. package/dist/lime-elements/{p-80162ba0.entry.js → p-9359e870.entry.js} +1 -1
  239. package/dist/lime-elements/{p-f867b424.entry.js → p-989f4a52.entry.js} +1 -1
  240. package/dist/lime-elements/{p-a435d1c3.entry.js → p-9b3e8f43.entry.js} +1 -1
  241. package/dist/lime-elements/{p-f2f01f2a.entry.js → p-9e1a4d63.entry.js} +1 -1
  242. package/dist/lime-elements/{p-b1645d2d.entry.js → p-9f4f1854.entry.js} +1 -1
  243. package/dist/lime-elements/p-EPnIW0K5.js +1 -0
  244. package/dist/lime-elements/p-a6805c64.entry.js +1 -0
  245. package/dist/lime-elements/{p-97c401f1.entry.js → p-a7764b6d.entry.js} +1 -1
  246. package/dist/lime-elements/{p-d227f4df.entry.js → p-a85b2734.entry.js} +1 -1
  247. package/dist/lime-elements/p-ac5a3f55.entry.js +1 -0
  248. package/dist/lime-elements/{p-d1477eca.entry.js → p-afd4be62.entry.js} +1 -1
  249. package/dist/lime-elements/{p-a712087a.entry.js → p-b61a1d27.entry.js} +1 -1
  250. package/dist/lime-elements/{p-4ecd565b.entry.js → p-bffbd011.entry.js} +1 -1
  251. package/dist/lime-elements/p-c9fa7a09.entry.js +1 -0
  252. package/dist/lime-elements/{p-733ebba6.entry.js → p-cc1e3d79.entry.js} +1 -1
  253. package/dist/lime-elements/{p-72b9d03e.entry.js → p-d0607ba8.entry.js} +1 -1
  254. package/dist/lime-elements/{p-067a13bb.entry.js → p-d09e74b1.entry.js} +1 -1
  255. package/dist/lime-elements/{p-504dcdb6.entry.js → p-d23af300.entry.js} +1 -1
  256. package/dist/lime-elements/{p-eecef02e.entry.js → p-d4a94dce.entry.js} +1 -1
  257. package/dist/lime-elements/{p-e5c7cac0.entry.js → p-d5f189b9.entry.js} +2 -2
  258. package/dist/lime-elements/{p-6eaa9776.entry.js → p-dcffc27b.entry.js} +3 -3
  259. package/dist/lime-elements/{p-92539877.entry.js → p-de203f64.entry.js} +1 -1
  260. package/dist/lime-elements/p-dee5717c.entry.js +1 -0
  261. package/dist/lime-elements/{p-86a001e2.entry.js → p-df0b927e.entry.js} +1 -1
  262. package/dist/lime-elements/{p-d00ec6c2.entry.js → p-f5d60f9c.entry.js} +1 -1
  263. package/dist/lime-elements/{p-d4d4236b.entry.js → p-faceccc0.entry.js} +1 -1
  264. package/dist/types/components/ai-avatar/ai-avatar.d.ts +31 -7
  265. package/dist/types/components/ai-avatar/ai-avatar.types.d.ts +26 -0
  266. package/dist/types/components/chip-set/chip-set.d.ts +16 -0
  267. package/dist/types/components/icon/icon.d.ts +15 -0
  268. package/dist/types/components/picker/picker.d.ts +34 -6
  269. package/dist/types/components.d.ts +87 -20
  270. package/dist/types/translations/da.d.ts +7 -0
  271. package/dist/types/translations/de.d.ts +7 -0
  272. package/dist/types/translations/en.d.ts +7 -0
  273. package/dist/types/translations/fi.d.ts +7 -0
  274. package/dist/types/translations/fr.d.ts +7 -0
  275. package/dist/types/translations/nl.d.ts +7 -0
  276. package/dist/types/translations/no.d.ts +7 -0
  277. package/dist/types/translations/sv.d.ts +7 -0
  278. package/package.json +1 -1
  279. package/dist/lime-elements/p-438652d6.entry.js +0 -1
  280. package/dist/lime-elements/p-56cc6800.entry.js +0 -1
  281. package/dist/lime-elements/p-58615011.entry.js +0 -1
  282. package/dist/lime-elements/p-5eadcd4a.entry.js +0 -1
  283. package/dist/lime-elements/p-7436490f.entry.js +0 -1
  284. package/dist/lime-elements/p-7cfed02f.entry.js +0 -1
  285. package/dist/lime-elements/p-Dv3YcsA7.js +0 -1
  286. package/dist/lime-elements/p-cba2dbb6.entry.js +0 -1
@@ -1,3 +1,4 @@
1
+ import translate from "../../global/translations";
1
2
  import { h, } from "@stencil/core";
2
3
  import { isDescendant } from "../../util/dom";
3
4
  import { ARROW_DOWN, ARROW_UP, ENTER, ESCAPE, TAB } from "../../util/keycodes";
@@ -16,6 +17,7 @@ const DEFAULT_SEARCHER_MAX_RESULTS = 20;
16
17
  * @exampleComponent limel-example-picker-value-as-object
17
18
  * @exampleComponent limel-example-picker-value-as-object-with-actions
18
19
  * @exampleComponent limel-example-picker-empty-suggestions
20
+ * @exampleComponent limel-example-picker-empty-result-message
19
21
  * @exampleComponent limel-example-picker-leading-icon
20
22
  * @exampleComponent limel-example-picker-static-actions
21
23
  * @exampleComponent limel-example-picker-sections
@@ -32,6 +34,12 @@ export class Picker {
32
34
  * but allow interaction with existing items.
33
35
  */
34
36
  this.readonly = false;
37
+ /**
38
+ * Defines the language for translations. Affects the labels
39
+ * rendered by the picker itself, such as the "Results matching"
40
+ * header shown above the suggestion list while the user is typing.
41
+ */
42
+ this.language = 'en';
35
43
  /**
36
44
  * True if the control requires a value
37
45
  */
@@ -124,7 +132,7 @@ export class Picker {
124
132
  this.loading = true;
125
133
  });
126
134
  const searcher = this.searcher || this.defaultSearcher;
127
- const result = (await searcher(this.textValue));
135
+ const result = await searcher(this.textValue);
128
136
  // If the search function resolves immediately,
129
137
  // the loading spinner will not be shown.
130
138
  clearTimeout(timeoutId);
@@ -146,7 +154,6 @@ export class Picker {
146
154
  };
147
155
  this.handleTextInput = this.handleTextInput.bind(this);
148
156
  this.handleInputKeyDown = this.handleInputKeyDown.bind(this);
149
- this.handleDropdownKeyDown = this.handleDropdownKeyDown.bind(this);
150
157
  this.handleInputFieldFocus = this.handleInputFieldFocus.bind(this);
151
158
  this.handleChange = this.handleChange.bind(this);
152
159
  this.handleInteract = this.handleInteract.bind(this);
@@ -190,7 +197,7 @@ export class Picker {
190
197
  props.maxItems = 1;
191
198
  }
192
199
  return [
193
- h("limel-chip-set", Object.assign({ key: 'd3490b3bcba25c3603a13881b9ce4708f459dc09', type: "input", inputType: "search", label: this.label, helperText: this.helperText, leadingIcon: this.leadingIcon, value: this.chips, disabled: this.disabled, invalid: this.invalid, delimiter: this.renderDelimiter(), readonly: this.readonly, required: this.required, searchLabel: this.searchLabel, onInput: this.handleTextInput, onKeyDown: this.handleInputKeyDown, onChange: this.handleChange, onInteract: this.handleInteract, onStartEdit: this.handleInputFieldFocus, onStopEdit: this.handleStopEditAndBlur, emptyInputOnBlur: false, clearAllButton: this.multiple && !this.chipSetEditMode }, props)),
200
+ h("limel-chip-set", Object.assign({ key: '36c7521c2ee4232d08fdb86ed2e3d295fda69e01', type: "input", inputType: "search", label: this.label, helperText: this.helperText, leadingIcon: this.leadingIcon, value: this.chips, disabled: this.disabled, invalid: this.invalid, delimiter: this.renderDelimiter(), readonly: this.readonly, required: this.required, searchLabel: this.searchLabel, language: this.language, onInput: this.handleTextInput, onKeyDown: this.handleInputKeyDown, onChange: this.handleChange, onInteract: this.handleInteract, onStartEdit: this.handleInputFieldFocus, onStopEdit: this.handleStopEditAndBlur, emptyInputOnBlur: false, emptyInputOnChange: false, clearAllButton: this.multiple && !this.chipSetEditMode }, props)),
194
201
  this.renderDropdown(),
195
202
  ];
196
203
  }
@@ -259,7 +266,14 @@ export class Picker {
259
266
  return this.renderSpinner();
260
267
  }
261
268
  if (!((_a = this.items) === null || _a === void 0 ? void 0 : _a.length)) {
262
- return this.renderEmptyMessage();
269
+ // Only show "no matching results" when the user actually has
270
+ // a query in flight. Without this guard, the message would
271
+ // also render right after Esc clears the input, leaving the
272
+ // dropdown stuck in an "empty result" state.
273
+ if (this.textValue !== '') {
274
+ return this.renderEmptyMessage();
275
+ }
276
+ return;
263
277
  }
264
278
  return this.renderListResult();
265
279
  }
@@ -282,22 +296,32 @@ export class Picker {
282
296
  } }, h("limel-spinner", { limeBranded: false })));
283
297
  }
284
298
  renderEmptyMessage() {
285
- if (!this.emptyResultMessage) {
286
- return;
287
- }
299
+ const text = this.emptyResultMessage ||
300
+ translate.get('picker.no-matching-results', this.language, {
301
+ query: this.textValue,
302
+ });
288
303
  const style = {
289
304
  color: 'rgb(var(--contrast-1100))',
290
- 'text-align': 'center',
305
+ textAlign: 'center',
306
+ fontSize: 'var(--limel-theme-default-font-size)',
291
307
  margin: '0.5rem 1rem',
292
308
  };
293
- return h("p", { style: style }, this.emptyResultMessage);
309
+ return h("p", { style: style }, text);
294
310
  }
295
311
  renderListResult() {
296
312
  return (h("limel-list", { badgeIcons: this.badgeIcons, onChange: this.handleListChange, onKeyDown: this.onListKeyDown, type: "selectable", items: this.items }));
297
313
  }
298
314
  onListKeyDown(event) {
299
- const keyFound = [TAB, ESCAPE, ENTER].includes(event.key);
300
- if (keyFound) {
315
+ if (event.key === ESCAPE) {
316
+ // Stop bubble; otherwise menu-surface also emits `dismiss`
317
+ // and triggers a duplicate clear via handleCloseMenu.
318
+ event.preventDefault();
319
+ event.stopPropagation();
320
+ this.handleEscape();
321
+ this.chipSet.setFocus();
322
+ return;
323
+ }
324
+ if ([TAB, ENTER].includes(event.key)) {
301
325
  this.chipSet.setFocus();
302
326
  }
303
327
  }
@@ -344,7 +368,7 @@ export class Picker {
344
368
  * @param event - event
345
369
  */
346
370
  handleListChange(event) {
347
- var _a, _b;
371
+ var _a, _b, _c;
348
372
  event.stopPropagation();
349
373
  if (!this.value || this.value !== event.detail) {
350
374
  let newValue = event.detail;
@@ -353,11 +377,21 @@ export class Picker {
353
377
  newValue = [...currentValue, event.detail];
354
378
  }
355
379
  this.change.emit(newValue);
356
- this.items = [];
380
+ if (this.multiple) {
381
+ const remaining = this.items.filter((item) => item !== event.detail);
382
+ this.items = this.hasPickableItems(remaining) ? remaining : [];
383
+ }
384
+ else {
385
+ // Single-pick: the search session ends with the pick, so
386
+ // wipe the input. (In multi-pick we deliberately keep the
387
+ // typed query so the user can keep adding matches.)
388
+ this.items = [];
389
+ this.textValue = '';
390
+ (_b = this.chipSet) === null || _b === void 0 ? void 0 : _b.emptyInput();
391
+ }
357
392
  }
358
393
  if (this.multiple) {
359
- this.textValue = '';
360
- (_b = this.chipSet) === null || _b === void 0 ? void 0 : _b.setFocus(true);
394
+ (_c = this.chipSet) === null || _c === void 0 ? void 0 : _c.setFocus();
361
395
  }
362
396
  }
363
397
  /**
@@ -413,6 +447,13 @@ export class Picker {
413
447
  !event.shiftKey;
414
448
  const isUp = event.key === ARROW_UP;
415
449
  const isDown = event.key === ARROW_DOWN;
450
+ const isEscape = event.key === ESCAPE;
451
+ if (isEscape) {
452
+ event.preventDefault();
453
+ event.stopPropagation();
454
+ this.handleEscape();
455
+ return;
456
+ }
416
457
  if (!isForwardTab && !isUp && !isDown) {
417
458
  return;
418
459
  }
@@ -441,44 +482,76 @@ export class Picker {
441
482
  listElement.focus();
442
483
  }
443
484
  }
444
- /**
445
- * Key handler for the dropdown
446
- *
447
- * @param event - event
448
- */
449
- handleDropdownKeyDown(event) {
450
- const isEscape = event.key === ESCAPE;
451
- if (isEscape) {
452
- event.preventDefault();
453
- this.textValue = '';
454
- this.chipSet.setFocus(true);
455
- }
456
- }
457
485
  handleSearchResult(query, result) {
458
486
  var _a;
459
487
  if (query === this.textValue) {
460
- this.items = result;
488
+ let nextItems = result;
461
489
  if (this.multiple) {
462
490
  const values = (_a = this.value) !== null && _a !== void 0 ? _a : [];
463
- this.items = result.filter((item) => {
491
+ nextItems = result.filter((item) => {
492
+ if ('separator' in item) {
493
+ return true;
494
+ }
464
495
  return !values.includes(item);
465
496
  });
466
497
  }
498
+ this.items = this.prependSearchHeader(query, nextItems);
467
499
  this.loading = false;
468
500
  }
469
501
  }
470
- handleCloseMenu() {
471
- if (this.items.length > 0) {
472
- return;
502
+ hasPickableItems(items) {
503
+ return items.some((item) => !('separator' in item));
504
+ }
505
+ prependSearchHeader(query, items) {
506
+ if (query === '') {
507
+ return items;
473
508
  }
509
+ if (!this.hasPickableItems(items)) {
510
+ return items;
511
+ }
512
+ const text = translate.get('picker.results-matching', this.language, {
513
+ query: query,
514
+ });
515
+ return [{ separator: true, text: text }, ...items];
516
+ }
517
+ handleCloseMenu() {
474
518
  this.clearInputField();
475
519
  }
476
- clearInputField() {
520
+ /**
521
+ * Shared prelude for any flow that ends the current search session:
522
+ * wipe the chip-set's visible text, reset the picker's `textValue`,
523
+ * and cancel any in-flight debounced search.
524
+ *
525
+ * Used by `clearInputField` (which then drops the dropdown
526
+ * entirely) and `resetSearchToDefault` (which re-runs the searcher
527
+ * with an empty query to repopulate the dropdown with defaults).
528
+ */
529
+ clearTextValue() {
477
530
  this.chipSet.emptyInput();
478
531
  this.textValue = '';
479
- this.handleSearchResult('', []);
480
532
  this.debouncedSearch.cancel();
481
533
  }
534
+ clearInputField() {
535
+ this.clearTextValue();
536
+ this.handleSearchResult('', []);
537
+ }
538
+ resetSearchToDefault() {
539
+ this.clearTextValue();
540
+ this.search('');
541
+ }
542
+ /**
543
+ * Two-stage Esc: first press clears the typed query but keeps the
544
+ * dropdown open showing the default suggestions; a second press
545
+ * (with the query already empty) closes the dropdown.
546
+ */
547
+ handleEscape() {
548
+ if (this.textValue === '') {
549
+ this.clearInputField();
550
+ }
551
+ else {
552
+ this.resetSearchToDefault();
553
+ }
554
+ }
482
555
  static get is() { return "limel-picker"; }
483
556
  static get encapsulation() { return "shadow"; }
484
557
  static get delegatesFocus() { return true; }
@@ -629,13 +702,40 @@ export class Picker {
629
702
  "optional": false,
630
703
  "docs": {
631
704
  "tags": [],
632
- "text": "A message to display when the search returned an empty result"
705
+ "text": "A message to display when the search returned an empty result.\n\nIf unset (or set to an empty string), the picker shows a\ndefault translated message (`No results matching \"X\"` in\nEnglish, where `X` is the current query) chosen by the\n`language` prop. Set this to override the default with custom\ntext \u2014 for example, when the picker's domain calls for more\nspecific wording like \"No matching participants found\"."
633
706
  },
634
707
  "getter": false,
635
708
  "setter": false,
636
709
  "reflect": false,
637
710
  "attribute": "empty-result-message"
638
711
  },
712
+ "language": {
713
+ "type": "string",
714
+ "mutable": false,
715
+ "complexType": {
716
+ "original": "Languages",
717
+ "resolved": "\"da\" | \"de\" | \"en\" | \"fi\" | \"fr\" | \"nb\" | \"nl\" | \"no\" | \"sv\"",
718
+ "references": {
719
+ "Languages": {
720
+ "location": "import",
721
+ "path": "../date-picker/date.types",
722
+ "id": "src/components/date-picker/date.types.ts::Languages",
723
+ "referenceLocation": "Languages"
724
+ }
725
+ }
726
+ },
727
+ "required": false,
728
+ "optional": false,
729
+ "docs": {
730
+ "tags": [],
731
+ "text": "Defines the language for translations. Affects the labels\nrendered by the picker itself, such as the \"Results matching\"\nheader shown above the suggestion list while the user is typing."
732
+ },
733
+ "getter": false,
734
+ "setter": false,
735
+ "reflect": false,
736
+ "attribute": "language",
737
+ "defaultValue": "'en'"
738
+ },
639
739
  "required": {
640
740
  "type": "boolean",
641
741
  "mutable": false,
@@ -127,7 +127,7 @@ export class Popover {
127
127
  render() {
128
128
  const cssProperties = this.getCssProperties();
129
129
  const popoverZIndex = getComputedStyle(this.host).getPropertyValue('--popover-z-index');
130
- return (h("div", { key: '7bc94b0e636ab16a04e76947731eb815f9a33e38', class: "trigger-anchor" }, h("slot", { key: 'e35b20eb6e38755cd50f71ada0413efcc79ce9e0', name: "trigger", ref: this.setTriggerRef }), h("limel-portal", { key: '397107a1f1fa9f796f0801da60df81084a0862ea', visible: this.open, containerId: this.portalId, containerStyle: { 'z-index': popoverZIndex }, openDirection: this.openDirection }, h("limel-popover-surface", { key: 'f63f011a8d529a68b535fcbed4685a5bb508dded', contentCollection: this.host.children, style: cssProperties }))));
130
+ return (h("div", { key: '53e64435fa661015fbbf2e449890864c8008c329', class: "trigger-anchor" }, h("slot", { key: '85336e8f76377921850ffc7704c7588707c45066', name: "trigger", ref: this.setTriggerRef }), h("limel-portal", { key: 'a40bfde87375a494ac5404911b4b1f058a55becf', visible: this.open, containerId: this.portalId, containerStyle: { 'z-index': popoverZIndex }, openDirection: this.openDirection }, h("limel-popover-surface", { key: '396e369ae3e61a79bfd2f520e05187a6ff85f834', contentCollection: this.host.children, style: cssProperties }))));
131
131
  }
132
132
  globalClickListener(event) {
133
133
  const element = event.target;
@@ -8,7 +8,7 @@ export class PopoverSurface {
8
8
  this.appendElement();
9
9
  }
10
10
  render() {
11
- return h("div", { key: '2ade664e817c3559b6721f0567736c8942afd2f1', class: "limel-popover-surface", tabindex: "0" });
11
+ return h("div", { key: '72e73b254be6cebbd27332329b10a58210ae0352', class: "limel-popover-surface", tabindex: "0" });
12
12
  }
13
13
  appendElement() {
14
14
  const portalContainer = this.host.shadowRoot.querySelector('.limel-popover-surface');
@@ -120,7 +120,7 @@ export class Portal {
120
120
  }
121
121
  }
122
122
  render() {
123
- return h("slot", { key: 'c8e7ba60cdab45dd239eae6c9123f673a48e8e22' });
123
+ return h("slot", { key: 'd6ed0d276afec19ba5ffd4d6a6fcf96937127d6a' });
124
124
  }
125
125
  onVisible() {
126
126
  if (!this.container && this.visible) {
@@ -37,7 +37,7 @@ export class RadioButtonGroup {
37
37
  };
38
38
  }
39
39
  render() {
40
- return (h("limel-list", { key: '0a68f90122f1e246d966e3b747f0e13bed2c901b', items: this.createItems(), type: "radio", badgeIcons: this.badgeIcons, maxLinesSecondaryText: this.maxLinesSecondaryText, onChange: this.handleChange }));
40
+ return (h("limel-list", { key: 'd42e6342d4fd79d34cb2c6a9d25d3dfe577e9a99', items: this.createItems(), type: "radio", badgeIcons: this.badgeIcons, maxLinesSecondaryText: this.maxLinesSecondaryText, onChange: this.handleChange }));
41
41
  }
42
42
  createItems() {
43
43
  return this.items.map((option) => {
@@ -31,12 +31,12 @@ import { Host, h } from "@stencil/core";
31
31
  */
32
32
  export class RadioButtonComponent {
33
33
  render() {
34
- return (h(Host, { key: 'd198242b1e1a066b38b1d6ddc55fcd8dd7817c36', class: {
34
+ return (h(Host, { key: '64623e09534c5b4e457029cbed4865d97d3cc19e', class: {
35
35
  'boolean-input': true,
36
36
  'radio-button': true,
37
37
  checked: this.checked,
38
38
  disabled: this.disabled,
39
- } }, h("input", { key: '7b2a009c5753d4ad9bad3c1ee9d8aa2b1fc30db8', type: "radio", id: this.id, checked: this.checked, disabled: this.disabled, onChange: this.onChange }), h("div", { key: '8eef5a56df7502ec7b6cb1ed84c8b8f0a72cd21c', class: "box" }), h("label", { key: 'bcd0883bf0dbdd307508a47e98402e590167fa00', class: "boolean-input-label", htmlFor: this.id }, this.label)));
39
+ } }, h("input", { key: '4eb816e8031d20bbfa5beb32798e50e5d3747895', type: "radio", id: this.id, checked: this.checked, disabled: this.disabled, onChange: this.onChange }), h("div", { key: '9e7d7db22981a16b4655d7cbcd7c3eb2462a7953', class: "box" }), h("label", { key: '4b2061d351b2d4d03d6e5763bc132be46d146e48', class: "boolean-input-label", htmlFor: this.id }, this.label)));
40
40
  }
41
41
  static get is() { return "limel-radio-button"; }
42
42
  static get originalStyleUrls() {
@@ -110,7 +110,7 @@ export class Select {
110
110
  }
111
111
  render() {
112
112
  const dropdownZIndex = getComputedStyle(this.host).getPropertyValue('--dropdown-z-index');
113
- return (h(SelectTemplate, { key: '4a03a36bc3b80995c825ef3e87d8b30f7e8618a9', id: this.portalId, disabled: this.disabled || this.readonly, readonly: this.readonly, required: this.required, invalid: this.invalid, label: this.label, helperText: this.helperText, value: this.value, options: this.options, onMenuChange: this.handleMenuChange, onNativeChange: this.handleNativeChange, onTriggerPress: this.handleMenuTriggerKeyPress, multiple: this.multiple, isOpen: this.menuOpen, open: this.openMenu, close: this.closeMenu, checkValid: this.checkValid, native: this.shouldRenderNative(), dropdownZIndex: dropdownZIndex, anchor: this.getAnchorElement() }));
113
+ return (h(SelectTemplate, { key: '8c14a523262356e12ac5322a917b0f888d794f21', id: this.portalId, disabled: this.disabled || this.readonly, readonly: this.readonly, required: this.required, invalid: this.invalid, label: this.label, helperText: this.helperText, value: this.value, options: this.options, onMenuChange: this.handleMenuChange, onNativeChange: this.handleNativeChange, onTriggerPress: this.handleMenuTriggerKeyPress, multiple: this.multiple, isOpen: this.menuOpen, open: this.openMenu, close: this.closeMenu, checkValid: this.checkValid, native: this.shouldRenderNative(), dropdownZIndex: dropdownZIndex, anchor: this.getAnchorElement() }));
114
114
  }
115
115
  watchOpen(newValue, oldValue) {
116
116
  if (this.checkValid) {
@@ -56,7 +56,7 @@ export class Shortcut {
56
56
  render() {
57
57
  var _a, _b, _c, _d, _e;
58
58
  const rel = getRel((_a = this.link) === null || _a === void 0 ? void 0 : _a.target, (_b = this.link) === null || _b === void 0 ? void 0 : _b.rel);
59
- return (h(Host, { key: 'edf3774fe6e6d8e91866e4517e3614907dd499a0', onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave }, h("a", { key: '1ed137455023ec2caa34cc2a2c1e893f8178cad4', "aria-disabled": this.disabled, href: (_c = this.link) === null || _c === void 0 ? void 0 : _c.href, target: (_d = this.link) === null || _d === void 0 ? void 0 : _d.target, rel: rel, tabindex: "0", "aria-label": this.getAriaLabel(), title: (_e = this.link) === null || _e === void 0 ? void 0 : _e.title }, h("limel-icon", { key: 'c36a0d1d339675309d85e02a342e30d4fd002b58', name: this.icon }), h("limel-3d-hover-effect-glow", { key: 'ab9be4306bb4af9b5cb958acbb82a75eb3cfc4d4' })), this.renderLabel(), this.renderNotification()));
59
+ return (h(Host, { key: '531a8b5cc870974dc01a7e20eef553fa53e77509', onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave }, h("a", { key: '997342917a0d28103ff340ad0e8cee766e48f85c', "aria-disabled": this.disabled, href: (_c = this.link) === null || _c === void 0 ? void 0 : _c.href, target: (_d = this.link) === null || _d === void 0 ? void 0 : _d.target, rel: rel, tabindex: "0", "aria-label": this.getAriaLabel(), title: (_e = this.link) === null || _e === void 0 ? void 0 : _e.title }, h("limel-icon", { key: '30f694eb6cc1ee927e41e6b39aedaa46e6b5715f', name: this.icon }), h("limel-3d-hover-effect-glow", { key: 'f083e6f0d5bc0eb205cee0d7018c9f76b0c39d89' })), this.renderLabel(), this.renderNotification()));
60
60
  }
61
61
  static get is() { return "limel-shortcut"; }
62
62
  static get encapsulation() { return "shadow"; }
@@ -150,9 +150,9 @@ export class Slider {
150
150
  if (this.disabled || this.readonly) {
151
151
  inputProps.disabled = true;
152
152
  }
153
- return (h(Host, { key: '00987f40cc3a4a7d47a5efec7257acbfcde2df06', class: this.getContainerClassList() }, h("limel-notched-outline", { key: '90d73bb40733a3bd85b0c7d6fb0420f4b48de9e9', labelId: this.labelId, label: this.label, required: this.required, invalid: this.invalid, disabled: this.disabled, readonly: this.readonly, hasValue: !!this.value, hasFloatingLabel: true }, h("div", { key: 'd35d56c074af9c68663a7f2c475794f82cc2f924', slot: "content" }, h("div", { key: '28367643903a7c888eb4c381e498d179afb2374a', class: "slider", style: { '--slider-fraction': `${fraction}` } }, h("input", Object.assign({ key: '9e2f5519e946f39444b21c893fa7c45db769b1d6', type: "range", min: min, max: max, value: this.displayValue, "aria-labelledby": this.labelId, "aria-describedby": this.helperText
153
+ return (h(Host, { key: 'fa9695563f078bdab1707422cad3aaef2610e592', class: this.getContainerClassList() }, h("limel-notched-outline", { key: '8b71ef15e9544a6b346248217c2c2fa8acbba6e7', labelId: this.labelId, label: this.label, required: this.required, invalid: this.invalid, disabled: this.disabled, readonly: this.readonly, hasValue: !!this.value, hasFloatingLabel: true }, h("div", { key: '0327cf7d5295bb1d56e2e34b8dca15cfc3e15c0d', slot: "content" }, h("div", { key: '83fade77119ba9fa1d24ae8fdcd54317648918b3', class: "slider", style: { '--slider-fraction': `${fraction}` } }, h("input", Object.assign({ key: '5181430787abe75b4556923e31ebe8520df977e9', type: "range", min: min, max: max, value: this.displayValue, "aria-labelledby": this.labelId, "aria-describedby": this.helperText
154
154
  ? this.helperTextId
155
- : undefined, onInput: this.handleInput, onChange: this.handleChange }, inputProps)), h("div", { key: '58525aba7ff932188e1395a71f43a5b3a448cfcc', class: "track" }, h("div", { key: '4e4c6f0eb6fea869a9e204c79adb8ca2c481f566', class: "active" }), this.renderStepDots(min, max)), h("div", { key: '326cefe13667b61450ed270fee96ec6bca479fa6', class: "thumb" }, h("div", { key: '716621ccf495c5f9ec27758b62d5f15b9995cf06', class: "knob" }), h("div", { key: '110c06b6803a4120ee1c613880b2ea8243702c89', class: "indicator", "aria-hidden": "true" }, this.displayValue))), h("div", { key: '0c82e7f841b39be2380a450898c231c37282e502', class: "range-labels" }, h("span", { key: '40088f1c268470bc585f5dbcf92f479641a6c2e0', class: "min" }, this.multiplyByFactor(this.valuemin), this.unit), h("span", { key: '8375f191def455fb3967209d18d839ada677c477', class: "max" }, this.multiplyByFactor(this.valuemax), this.unit)))), this.renderHelperLine()));
155
+ : undefined, onInput: this.handleInput, onChange: this.handleChange }, inputProps)), h("div", { key: '6ee95d718f1d01e92adcf9592882ed1d32e4ba67', class: "track" }, h("div", { key: 'bba420e41501990bdeb1326e59e6eff57000848d', class: "active" }), this.renderStepDots(min, max)), h("div", { key: '46e5a45adbda4e1a650d01408c3d228f1c6be68d', class: "thumb" }, h("div", { key: 'eeba995f52ff3291e2e7818528b05c7c1dec1b32', class: "knob" }), h("div", { key: 'd0321459ed22c6870d939da54df43fe2bfef6333', class: "indicator", "aria-hidden": "true" }, this.displayValue))), h("div", { key: 'bcc4449d7605343fd64f4b89b50c8e5d665f6937', class: "range-labels" }, h("span", { key: '301c78b1640551fe814ad3b2768bb40f9b682b39', class: "min" }, this.multiplyByFactor(this.valuemin), this.unit), h("span", { key: '7f8d741f63030b6f8e88231e5215448b815bf3ca', class: "max" }, this.multiplyByFactor(this.valuemax), this.unit)))), this.renderHelperLine()));
156
156
  }
157
157
  watchValue() {
158
158
  this.displayValue = this.multiplyByFactor(this.getValue());
@@ -122,14 +122,14 @@ export class Snackbar {
122
122
  }
123
123
  }
124
124
  render() {
125
- return (h("aside", { key: '99446faf1f17a1fe421f316d53225e0ed6d78ee6', popover: "manual", style: {
125
+ return (h("aside", { key: '41ced0ac7a40f8317766dabd45a107f304ec46bd', popover: "manual", style: {
126
126
  '--snackbar-timeout': `${Math.max(this.timeout || 0, 0)}ms`,
127
127
  '--snackbar-distance-to-top-edge': `${this.offset}px`,
128
128
  }, class: {
129
129
  open: this.open,
130
130
  'is-closing': this.closing,
131
131
  'limel-portal--parent': true,
132
- }, id: this.snackbarId, role: this.setAriaRoles(), "aria-atomic": this.open ? 'true' : undefined, "aria-relevant": this.open ? 'additions' : undefined }, h("div", { key: 'e846035a835f06912efe2e6452f0face9ecb001f', class: "surface" }, h("limel-markdown", { key: '339f067e2e290359674a406b0fa4ad7a49fd5da4', class: "label", value: this.message }), this.renderActions(this.actionText), this.renderDismissButton(this.dismissible))));
132
+ }, id: this.snackbarId, role: this.setAriaRoles(), "aria-atomic": this.open ? 'true' : undefined, "aria-relevant": this.open ? 'additions' : undefined }, h("div", { key: 'a493f7cfafaf63696f8e1ac532103fdfa03b9312', class: "surface" }, h("limel-markdown", { key: '0cda776d6680eff1e8d0f1aff9d3657ef8287d80', class: "label", value: this.message }), this.renderActions(this.actionText), this.renderDismissButton(this.dismissible))));
133
133
  }
134
134
  setAriaRoles() {
135
135
  if (!this.open) {
@@ -16,7 +16,7 @@ export class Spinner {
16
16
  this.limeBranded = false;
17
17
  }
18
18
  render() {
19
- return (h(Host, { key: 'b5577d30805f87fcb6f670886ff22af94554d18a' }, h("svg", { key: '895db390ea2b9393d315622ffb9e23b40f036c39', viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg" }, this.renderSpinner())));
19
+ return (h(Host, { key: 'bb72728921dd48ab02cad031e3b35641c92b4dce' }, h("svg", { key: 'fccd59e394e3e4a0101d2e7f903b1b4f9dffc630', viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg" }, this.renderSpinner())));
20
20
  }
21
21
  renderSpinner() {
22
22
  if (!this.limeBranded) {
@@ -55,9 +55,9 @@ export class SplitButton {
55
55
  };
56
56
  }
57
57
  render() {
58
- return (h(Host, { key: 'd76de1269634f7f6c997d60f279d6305eb098469', class: {
58
+ return (h(Host, { key: 'e400e10d06c24703585f5e02477175fbfd2a3d95', class: {
59
59
  'has-menu': this.items.length > 0,
60
- }, onClick: this.filterClickWhenDisabled }, h("limel-button", { key: '93b69e21144ab3ee5be1c434032bce972d7d3d54', label: this.label, primary: this.primary, icon: this.icon, disabled: this.disabled, loading: this.loading, loadingFailed: this.loadingFailed }), this.renderMenu()));
60
+ }, onClick: this.filterClickWhenDisabled }, h("limel-button", { key: '29f29a0d44c9b7b66a2f13815f59df6642dad6d2', label: this.label, primary: this.primary, icon: this.icon, disabled: this.disabled, loading: this.loading, loadingFailed: this.loadingFailed }), this.renderMenu()));
61
61
  }
62
62
  static get is() { return "limel-split-button"; }
63
63
  static get encapsulation() { return "shadow"; }
@@ -78,7 +78,7 @@ export class Switch {
78
78
  removeEnterClickable(this.host);
79
79
  }
80
80
  render() {
81
- return (h(Host, { key: 'dd6c6cb7fabaf8bae143a4787845c56aebf2fe74' }, this.readonly
81
+ return (h(Host, { key: '4adc29ba50c4e06948efef7b922c0fb70bb58ecb' }, this.readonly
82
82
  ? this.renderReadonly()
83
83
  : this.renderInteractive(), this.renderHelperLine()));
84
84
  }
@@ -62,11 +62,11 @@ export class TabBar {
62
62
  this.tearDown();
63
63
  }
64
64
  render() {
65
- return (h("div", { key: '5fcbc5f69907b3437a7c17d18d5356ac45f84ea4', class: "mdc-tab-bar", role: "tablist" }, h("div", { key: '0ec7bac2105ac5a2620379a907fc660344387539', class: {
65
+ return (h("div", { key: '011bbe3e75ebeb4fefe4942704ef003ad64e92fc', class: "mdc-tab-bar", role: "tablist" }, h("div", { key: '6119888fd94f5ea3d474c1a14016e456ff98923e', class: {
66
66
  'mdc-tab-scroller': true,
67
67
  'can-scroll-left': this.canScrollLeft,
68
68
  'can-scroll-right': this.canScrollRight,
69
- } }, h("div", { key: 'e4bd200335ff91ff6cb6476fef0c30ff90ee1c44', class: "mdc-tab-scroller__scroll-area lime-hide-scrollbars" }, h("div", { key: 'c3f774e3524131d4d42c34eb1884ac95a173422e', class: "mdc-tab-scroller__scroll-content" }, this.tabs.map(this.renderTab))), h("div", { key: 'babdaf65720c52c03cf4bfedee68993ead018e94', class: "scroll-fade left" }), h("div", { key: 'fe06945559ccf14921f523776a15f68f62496804', class: "scroll-button left" }, h("button", { key: '5a6098a7776d635f9aaa9a7f59b4e7024f270ee1', type: "button", tabindex: "-1", "aria-hidden": "true", disabled: !this.canScrollLeft, onClick: this.handleLeftScrollClick }, h("limel-icon", { key: '89bdf714b634b0ec7d56d3b1b66961a74999e9e6', name: "angle_left" }))), h("div", { key: 'e7c6d0adb6634015c3482a3787451ffcfa37ee90', class: "scroll-fade right" }), h("div", { key: '97d2229df3f45d495ec59f97ae92c53fa63a5cab', class: "scroll-button right" }, h("button", { key: '1d4c1bf329e8739802faa4040d7438aa4c2056f0', type: "button", tabindex: "-1", "aria-hidden": "true", disabled: !this.canScrollRight, onClick: this.handleRightScrollClick }, h("limel-icon", { key: '1bc8b53f7958170c51aac799e05d441e5d6666c7', name: "angle_right" }))))));
69
+ } }, h("div", { key: 'ac46f8471cbdbaec95bed2d5541d6f927eee0fb7', class: "mdc-tab-scroller__scroll-area lime-hide-scrollbars" }, h("div", { key: 'a12f6a5112ff94c5c70a6800972e81998fd51517', class: "mdc-tab-scroller__scroll-content" }, this.tabs.map(this.renderTab))), h("div", { key: '2891ceddace39d210b314c203bdaaf1cf50257da', class: "scroll-fade left" }), h("div", { key: '52d16debe5cba91b876d2c1ebc3fa0b65554193c', class: "scroll-button left" }, h("button", { key: 'a9c6c3bc7027e7dfcfdc999f542911533d2ad97d', type: "button", tabindex: "-1", "aria-hidden": "true", disabled: !this.canScrollLeft, onClick: this.handleLeftScrollClick }, h("limel-icon", { key: '6d910230e3e7182c0431508603f97a8da195454f', name: "angle_left" }))), h("div", { key: '47ab1002864f2603fcaee518c5cf8604512a5294', class: "scroll-fade right" }), h("div", { key: 'cebdcc16ed78ecbeafcf4bfbc9e1c59277f3c959', class: "scroll-button right" }, h("button", { key: 'd35caa827d3f4218537f91522cfe1b4b85d0de29', type: "button", tabindex: "-1", "aria-hidden": "true", disabled: !this.canScrollRight, onClick: this.handleRightScrollClick }, h("limel-icon", { key: '875ee1bfc8a28a6fbed1d6323974f732f5d3274e', name: "angle_right" }))))));
70
70
  }
71
71
  tabsChanged(newTabs = [], oldTabs = []) {
72
72
  const newIds = newTabs.map((tab) => tab.id);
@@ -56,7 +56,7 @@ export class TabPanel {
56
56
  this.tabs.forEach(this.setTabStatus);
57
57
  }
58
58
  render() {
59
- return (h(Host, { key: 'cc2be22eb941e72c7333ee435d912e55bc38fd20', onChangeTab: this.handleChangeTabs }, h("div", { key: 'a5ea8894f2bb8121320dabf15757ec6d667c3e9d', class: "tab-panel" }, h("limel-tab-bar", { key: '42be419551f9c3e1310de21bb89bab89bd759dee', tabs: this.tabs }), h("div", { key: '13e156b564873aaa4de691bd3cefc703ba7d2f65', class: "tab-content" }, h("slot", { key: 'b48cff50f857f337af2c60a0d7411a6b8860ae3d' })))));
59
+ return (h(Host, { key: 'ebab881a0b0efc36b64c866b58b919890c526525', onChangeTab: this.handleChangeTabs }, h("div", { key: '1417a34aea0af009e44cd91ac8fd425412a2b706', class: "tab-panel" }, h("limel-tab-bar", { key: '5b420eeec41fdd353ba0ba36bb0e475c3fd26821', tabs: this.tabs }), h("div", { key: 'aa3d6f711a824a07eed6f2b5120497dd4218ed7b', class: "tab-content" }, h("slot", { key: '7ba511fa07bd96018e4d8d288d7b1dca572cead0' })))));
60
60
  }
61
61
  setSlotElements() {
62
62
  const slot = this.getSlot();
@@ -666,17 +666,17 @@ export class Table {
666
666
  render() {
667
667
  var _a, _b;
668
668
  const totalRows = (_a = this.totalRows) !== null && _a !== void 0 ? _a : this.data.length;
669
- return (h(Host, { key: '3b28cfab0fd734f67db2e7737c1ed0ec495355e3', class: {
669
+ return (h(Host, { key: 'daea6a9974805de1d9a0c65e3dd5a4f1f477fb6e', class: {
670
670
  'has-low-density': this.layout === 'lowDensity',
671
671
  'has-pagination-on-top': this.paginationLocation === 'top',
672
- } }, h("div", { key: '0016463abe127fab6898bac733af3e72a2e64a13', id: "tabulator-container", class: {
672
+ } }, h("div", { key: '86d554c7a311b0944e04a302184ba4e5e7b4fb64', id: "tabulator-container", class: {
673
673
  'has-pagination': totalRows > this.pageSize,
674
674
  'has-aggregation': this.hasAggregation(this.columns),
675
675
  'has-movable-columns': this.movableColumns,
676
676
  'has-movable-rows': !!this.rowDragManager,
677
677
  'has-rowselector': this.selectable,
678
678
  'has-selection': (_b = this.tableSelection) === null || _b === void 0 ? void 0 : _b.hasSelection,
679
- } }, h("div", { key: '3d92df3f663f1e6a4099855685952a0c5f196614', id: "tabulator-loader", style: { display: this.loading ? 'flex' : 'none' } }, h("limel-spinner", { key: '5bc630cf2458dcafa35f8ceb0a3a59c4a045afbb', size: "large" })), this.renderEmptyMessage(), this.renderSelectAll(), h("div", { key: '5cd2da6a8a704ba0b0257cab8ff58acca5b01067', id: "tabulator-table" }))));
679
+ } }, h("div", { key: '8b0e85e32cea7f7411bfa16b2edd061925ad6ffa', id: "tabulator-loader", style: { display: this.loading ? 'flex' : 'none' } }, h("limel-spinner", { key: '321b0a59a93bbdbeadfa5c40a38d20dc01ad242d', size: "large" })), this.renderEmptyMessage(), this.renderSelectAll(), h("div", { key: '61c2f18947b40ff3834b93e7780e552ee8fee415', id: "tabulator-table" }))));
680
680
  }
681
681
  renderSelectAll() {
682
682
  var _a, _b, _c;
@@ -106,9 +106,9 @@ export class TextEditorLinkMenu {
106
106
  var _a, _b;
107
107
  const isValid = this.isValid(this.link.href);
108
108
  return [
109
- h("limel-input-field", { key: '453392d104185e6ad22ee90e204960da0c0f1def', label: this.getTranslation('editor-link-menu.text'), value: ((_a = this.link) === null || _a === void 0 ? void 0 : _a.text) || '', leadingIcon: "text_cursor", onChange: this.handleLinkTitleChange, onKeyDown: this.handleKeyDown, ref: (el) => (this.textInput = el) }),
110
- h("limel-input-field", { key: '78c1dcc14cde3e8e6a053560e92fa9828b55d266', label: this.getTranslation('editor-link-menu.link'), value: ((_b = this.link) === null || _b === void 0 ? void 0 : _b.href) || '', type: "text", leadingIcon: "-lime-text-link", trailingIcon: "external_link", invalid: !isValid, onChange: this.handleLinkValueChange, onAction: this.handleLinkInputAction, onKeyDown: this.handleKeyDown }),
111
- h("div", { key: '2d77225e278410cb4af77b35ba756f0805f30b8c', class: "actions" }, h("limel-button", { key: 'bf2ad2a86c6231517e18f50a65a41785f5d0c38b', label: this.getTranslation('cancel'), onClick: this.handleCancel }), h("limel-button", { key: 'b86cddda73e5027fb88c0cb36ed784341b1081a7', primary: true, label: this.getTranslation('save'), disabled: !isValid, onClick: this.handleSave, ref: (el) => (this.saveButton = el), slot: "button" })),
109
+ h("limel-input-field", { key: 'f91dd3a9c03bb52cb91ea0f3251288f5a612cd3a', label: this.getTranslation('editor-link-menu.text'), value: ((_a = this.link) === null || _a === void 0 ? void 0 : _a.text) || '', leadingIcon: "text_cursor", onChange: this.handleLinkTitleChange, onKeyDown: this.handleKeyDown, ref: (el) => (this.textInput = el) }),
110
+ h("limel-input-field", { key: '1034663268cae0a749397331b43ea44387431c78', label: this.getTranslation('editor-link-menu.link'), value: ((_b = this.link) === null || _b === void 0 ? void 0 : _b.href) || '', type: "text", leadingIcon: "-lime-text-link", trailingIcon: "external_link", invalid: !isValid, onChange: this.handleLinkValueChange, onAction: this.handleLinkInputAction, onKeyDown: this.handleKeyDown }),
111
+ h("div", { key: '5c4b46deb47d9369a0a59e1e5908934093322755', class: "actions" }, h("limel-button", { key: '62c2dcc49a7907d938a27e2887432caa3e1a75ff', label: this.getTranslation('cancel'), onClick: this.handleCancel }), h("limel-button", { key: '5252752da58d02fd81abef41fc9788a07e277738', primary: true, label: this.getTranslation('save'), disabled: !isValid, onClick: this.handleSave, ref: (el) => (this.saveButton = el), slot: "button" })),
112
112
  ];
113
113
  }
114
114
  static get is() { return "limel-text-editor-link-menu"; }
@@ -246,7 +246,7 @@ export class ProsemirrorAdapter {
246
246
  (_e = this.view) === null || _e === void 0 ? void 0 : _e.destroy();
247
247
  }
248
248
  render() {
249
- return (h(Host, { key: 'b7dbbd5a73e68e2df2b52f36f6d57bc0885f87a3', onFocus: this.handleFocus }, h("div", { key: 'a630b7eacb1b5be9460b85944e2a3a5955661437', id: "editor" }), this.renderToolbar(), this.renderLinkMenu()));
249
+ return (h(Host, { key: '125d6d80cfc94a3121cde5d121d3cb2a26cf1635', onFocus: this.handleFocus }, h("div", { key: 'eb076afa683c0dfcb57b6688bc94ce1b81ce5710', id: "editor" }), this.renderToolbar(), this.renderLinkMenu()));
250
250
  }
251
251
  renderToolbar() {
252
252
  if (this.actionBarItems.length === 0 || this.ui === 'no-toolbar') {
@@ -142,7 +142,7 @@ export class TextEditor {
142
142
  this.editorId = createRandomString();
143
143
  }
144
144
  render() {
145
- return (h(Host, { key: 'bde3c6cc9cb0ed28fc72a3749a178b40d8694633' }, h("limel-notched-outline", { key: '344abd4bc6c049085605d9ea74cb942f93b331a6', labelId: this.editorId, label: this.label, required: this.required, invalid: this.invalid, disabled: this.disabled, readonly: this.readonly, hasValue: !!this.value, hasFloatingLabel: true }, this.renderEditor(), this.renderPlaceholder()), this.renderHelperLine()));
145
+ return (h(Host, { key: '31661aea27e0dea61827560c031587bd208f8bed' }, h("limel-notched-outline", { key: '81571a171ba0b629117d8b153e091e6d34c98c70', labelId: this.editorId, label: this.label, required: this.required, invalid: this.invalid, disabled: this.disabled, readonly: this.readonly, hasValue: !!this.value, hasFloatingLabel: true }, this.renderEditor(), this.renderPlaceholder()), this.renderHelperLine()));
146
146
  }
147
147
  renderEditor() {
148
148
  if (this.readonly) {
@@ -15,7 +15,7 @@ export class TooltipContent {
15
15
  const style = this.maxlength
16
16
  ? { '--tooltip-max-width-of-text': `${this.maxlength}ch` }
17
17
  : undefined;
18
- return (h(Host, { key: '3994a2ea4040dfd7dfa969a3347d111994d769e1', class: { 'has-column-layout': isLabelsTextLong }, style: style }, h("div", { key: '8a7cfd75957eea1515a22928f4783f787f1288bc', class: "label" }, this.label), this.renderHelperLabel(), this.renderHotkey()));
18
+ return (h(Host, { key: '7dae3fae1f48d6aed186d4a40ec2d3ae4c675c34', class: { 'has-column-layout': isLabelsTextLong }, style: style }, h("div", { key: '892d2b80b4e3d333f363579e8be63726366ec772', class: "label" }, this.label), this.renderHelperLabel(), this.renderHotkey()));
19
19
  }
20
20
  renderHelperLabel() {
21
21
  if (!this.helperLabel) {
@@ -68,10 +68,10 @@ export class Tooltip {
68
68
  }
69
69
  render() {
70
70
  const tooltipZIndex = getComputedStyle(this.host).getPropertyValue('--tooltip-z-index');
71
- return (h("div", { key: 'a88bd5dddfd5cd3170365e059681c71714ea44d8', class: "trigger-anchor" }, h("limel-portal", { key: 'f267863a5e88bdceade994b7ed359d8009676fe2', openDirection: this.openDirection, visible: this.open, containerId: this.portalId, containerStyle: {
71
+ return (h("div", { key: 'bb784749dd20ef6cda629303058dbb0df848f655', class: "trigger-anchor" }, h("limel-portal", { key: 'baca835ff99112bebd09cce6a22181b7a00fc0a5', openDirection: this.openDirection, visible: this.open, containerId: this.portalId, containerStyle: {
72
72
  'z-index': tooltipZIndex,
73
73
  'pointer-events': 'none',
74
- }, anchor: this.ownerElement }, h("limel-tooltip-content", { key: '8a58395071b2017fa1dd100899002eec67156750', label: this.label, helperLabel: this.helperLabel, hotkey: this.hotkey, maxlength: this.maxlength, role: "tooltip", "aria-hidden": !this.open, id: this.tooltipId }))));
74
+ }, anchor: this.ownerElement }, h("limel-tooltip-content", { key: 'b830c5052040a8f10345844584b296a1b0c1b00f', label: this.label, helperLabel: this.helperLabel, hotkey: this.hotkey, maxlength: this.maxlength, role: "tooltip", "aria-hidden": !this.open, id: this.tooltipId }))));
75
75
  }
76
76
  setOwnerAriaDescribedby() {
77
77
  var _a;
@@ -72,6 +72,11 @@ Du kan fortsætte med at blokere billeder (e-mailen kan se ufuldstændig ud) ell
72
72
  'progress-bar': 'Fremskridtsindikator',
73
73
  'ai-avatar.label': 'AI-avatar',
74
74
  'ai-avatar.thinking': 'tænker',
75
+ 'ai-avatar.mode.active': 'aktiv',
76
+ 'ai-avatar.mode.thinking': 'tænker',
77
+ 'ai-avatar.mode.typing': 'skriver',
78
+ 'ai-avatar.mode.working': 'arbejder',
79
+ 'ai-avatar.mode.waiting': 'venter på input',
75
80
  'table.select-all': 'Vælg alle rækker',
76
81
  'table.select-row': 'Vælg denne række',
77
82
  'code-diff.table-label': 'Kodesammenligning',
@@ -106,4 +111,6 @@ Du kan fortsætte med at blokere billeder (e-mailen kan se ufuldstændig ud) ell
106
111
  'profile-picture.remove': 'Fjern valgt billede',
107
112
  'profile-picture.unsupported-preview.title': 'Ikke-understøttet billedformat',
108
113
  'profile-picture.unsupported-preview.description': 'Vi kan ikke vise det valgte billede i denne browser. Vælg venligst en anden billedfil.',
114
+ 'picker.results-matching': 'Resultater der matcher "{ query }"',
115
+ 'picker.no-matching-results': 'Ingen resultater der matcher "{ query }"',
109
116
  };
@@ -72,6 +72,11 @@ Sie können Bilder weiterhin blockieren (die E-Mail kann unvollständig aussehen
72
72
  'progress-bar': 'Fortschrittsbalken',
73
73
  'ai-avatar.label': 'KI-Avatar',
74
74
  'ai-avatar.thinking': 'denkt',
75
+ 'ai-avatar.mode.active': 'aktiv',
76
+ 'ai-avatar.mode.thinking': 'denkt',
77
+ 'ai-avatar.mode.typing': 'tippt',
78
+ 'ai-avatar.mode.working': 'arbeitet',
79
+ 'ai-avatar.mode.waiting': 'wartet auf Eingabe',
75
80
  'table.select-all': 'Alle Zeilen auswählen',
76
81
  'table.select-row': 'Diese Zeile auswählen',
77
82
  'code-diff.table-label': 'Code-Vergleich',
@@ -106,4 +111,6 @@ Sie können Bilder weiterhin blockieren (die E-Mail kann unvollständig aussehen
106
111
  'profile-picture.remove': 'Ausgewähltes Bild entfernen',
107
112
  'profile-picture.unsupported-preview.title': 'Nicht unterstütztes Bildformat',
108
113
  'profile-picture.unsupported-preview.description': 'Wir können das ausgewählte Bild in diesem Browser nicht anzeigen. Bitte wählen Sie eine andere Bilddatei.',
114
+ 'picker.results-matching': 'Ergebnisse passend zu "{ query }"',
115
+ 'picker.no-matching-results': 'Keine Ergebnisse passend zu "{ query }"',
109
116
  };