@limetech/lime-elements 40.12.3 → 40.13.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (352) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/cjs/drag-to-reorder-BP5YkPuu.js +3092 -0
  3. package/dist/cjs/lime-elements.cjs.js +1 -1
  4. package/dist/cjs/limel-3d-hover-effect-glow.cjs.entry.js +1 -1
  5. package/dist/cjs/limel-action-bar_3.cjs.entry.js +4 -4
  6. package/dist/cjs/limel-ai-avatar.cjs.entry.js +2 -2
  7. package/dist/cjs/limel-badge.cjs.entry.js +2 -2
  8. package/dist/cjs/limel-banner.cjs.entry.js +1 -1
  9. package/dist/cjs/limel-breadcrumbs_6.cjs.entry.js +6 -6
  10. package/dist/cjs/limel-button-group.cjs.entry.js +1 -1
  11. package/dist/cjs/limel-button.cjs.entry.js +2 -2
  12. package/dist/cjs/limel-callout.cjs.entry.js +2 -2
  13. package/dist/cjs/limel-card.cjs.entry.js +1 -1
  14. package/dist/cjs/limel-chart.cjs.entry.js +1 -1
  15. package/dist/cjs/limel-checkbox.cjs.entry.js +1 -1
  16. package/dist/cjs/limel-chip-set.cjs.entry.js +2 -2
  17. package/dist/cjs/limel-chip_2.cjs.entry.js +2 -2
  18. package/dist/cjs/limel-circular-progress.cjs.entry.js +1 -1
  19. package/dist/cjs/limel-code-diff.cjs.entry.js +2 -2
  20. package/dist/cjs/limel-code-editor.cjs.entry.js +2 -2
  21. package/dist/cjs/limel-collapsible-section.cjs.entry.js +2 -2
  22. package/dist/cjs/limel-color-picker-palette.cjs.entry.js +2 -2
  23. package/dist/cjs/limel-color-picker.cjs.entry.js +1 -1
  24. package/dist/cjs/limel-dialog.cjs.entry.js +2 -2
  25. package/dist/cjs/limel-dock.cjs.entry.js +3 -3
  26. package/dist/cjs/{limel-scroller.cjs.entry.js → limel-drag-handle_2.cjs.entry.js} +40 -2
  27. package/dist/cjs/limel-email-viewer.cjs.entry.js +2 -2
  28. package/dist/cjs/limel-file-dropzone_2.cjs.entry.js +2 -2
  29. package/dist/cjs/limel-file-viewer.cjs.entry.js +65 -56
  30. package/dist/cjs/limel-file.cjs.entry.js +2 -2
  31. package/dist/cjs/limel-flatpickr-adapter.cjs.entry.js +2 -2
  32. package/dist/cjs/limel-flex-container.cjs.entry.js +1 -1
  33. package/dist/cjs/limel-form.cjs.entry.js +539 -3171
  34. package/dist/cjs/limel-grid.cjs.entry.js +1 -1
  35. package/dist/cjs/limel-header.cjs.entry.js +1 -1
  36. package/dist/cjs/limel-help-content.cjs.entry.js +1 -1
  37. package/dist/cjs/limel-help.cjs.entry.js +2 -2
  38. package/dist/cjs/limel-helper-line_3.cjs.entry.js +4 -4
  39. package/dist/cjs/limel-hotkey_4.cjs.entry.js +5 -5
  40. package/dist/cjs/limel-icon-button.cjs.entry.js +1 -1
  41. package/dist/cjs/limel-icon.cjs.entry.js +1 -1
  42. package/dist/cjs/limel-info-tile.cjs.entry.js +2 -2
  43. package/dist/cjs/limel-list-item.cjs.entry.js +3 -3
  44. package/dist/cjs/limel-markdown.cjs.entry.js +1 -1
  45. package/dist/cjs/limel-masonry-layout.cjs.entry.js +1 -1
  46. package/dist/cjs/limel-menu-item-meta.cjs.entry.js +1 -1
  47. package/dist/cjs/limel-pagination-jump.cjs.entry.js +1 -1
  48. package/dist/cjs/limel-pagination.cjs.entry.js +2 -2
  49. package/dist/cjs/limel-picker.cjs.entry.js +2 -2
  50. package/dist/cjs/limel-popover_2.cjs.entry.js +2 -2
  51. package/dist/cjs/limel-profile-picture.cjs.entry.js +1 -1
  52. package/dist/cjs/limel-prosemirror-adapter.cjs.entry.js +2 -2
  53. package/dist/cjs/limel-radio-button-group.cjs.entry.js +1 -1
  54. package/dist/cjs/limel-radio-button.cjs.entry.js +2 -2
  55. package/dist/cjs/limel-resize-handle.cjs.entry.js +43 -2
  56. package/dist/cjs/limel-select.cjs.entry.js +1 -1
  57. package/dist/cjs/limel-shortcut.cjs.entry.js +1 -1
  58. package/dist/cjs/limel-side-panel.cjs.entry.js +16 -6
  59. package/dist/cjs/limel-slider.cjs.entry.js +4 -4
  60. package/dist/cjs/limel-snackbar.cjs.entry.js +3 -3
  61. package/dist/cjs/limel-split-button.cjs.entry.js +2 -2
  62. package/dist/cjs/limel-switch.cjs.entry.js +1 -1
  63. package/dist/cjs/limel-tab-bar.cjs.entry.js +120 -16
  64. package/dist/cjs/limel-tab-panel.cjs.entry.js +7 -1
  65. package/dist/cjs/limel-table.cjs.entry.js +3 -3
  66. package/dist/cjs/limel-text-editor-link-menu.cjs.entry.js +4 -4
  67. package/dist/cjs/limel-text-editor.cjs.entry.js +1 -1
  68. package/dist/cjs/loader.cjs.js +1 -1
  69. package/dist/cjs/{translations-DDyw5Zzz.js → translations-CLSqfR3x.js} +56 -0
  70. package/dist/collection/components/3d-hover-effect-glow/3d-hover-effect-glow.js +1 -1
  71. package/dist/collection/components/action-bar/action-bar-item/action-bar-overflow-menu.js +1 -1
  72. package/dist/collection/components/action-bar/action-bar.js +2 -2
  73. package/dist/collection/components/ai-avatar/ai-avatar.js +1 -1
  74. package/dist/collection/components/badge/badge.js +2 -2
  75. package/dist/collection/components/banner/banner.js +1 -1
  76. package/dist/collection/components/breadcrumbs/breadcrumbs.js +1 -1
  77. package/dist/collection/components/button/button.js +2 -2
  78. package/dist/collection/components/button-group/button-group.js +1 -1
  79. package/dist/collection/components/callout/callout.js +1 -1
  80. package/dist/collection/components/card/card.js +1 -1
  81. package/dist/collection/components/checkbox/checkbox.js +1 -1
  82. package/dist/collection/components/chip/chip.js +1 -1
  83. package/dist/collection/components/chip-set/chip-set.js +1 -1
  84. package/dist/collection/components/circular-progress/circular-progress.js +1 -1
  85. package/dist/collection/components/code-diff/code-diff.js +1 -1
  86. package/dist/collection/components/code-editor/code-editor.js +1 -1
  87. package/dist/collection/components/collapsible-section/collapsible-section.js +1 -1
  88. package/dist/collection/components/color-picker/color-picker-palette.js +2 -2
  89. package/dist/collection/components/color-picker/color-picker.js +1 -1
  90. package/dist/collection/components/date-picker/flatpickr-adapter/flatpickr-adapter.js +1 -1
  91. package/dist/collection/components/dialog/dialog.js +2 -2
  92. package/dist/collection/components/dock/dock.js +2 -2
  93. package/dist/collection/components/drag-handle/drag-handle.js +1 -1
  94. package/dist/collection/components/email-viewer/email-viewer.js +1 -1
  95. package/dist/collection/components/file/file.js +1 -1
  96. package/dist/collection/components/file-dropzone/file-dropzone.js +1 -1
  97. package/dist/collection/components/file-input/file-input.js +1 -1
  98. package/dist/collection/components/flex-container/flex-container.js +1 -1
  99. package/dist/collection/components/form/form.css +59 -0
  100. package/dist/collection/components/form/form.js +49 -2
  101. package/dist/collection/components/form/show-field.js +116 -0
  102. package/dist/collection/components/form/templates/array-field-collapsible-item.js +1 -0
  103. package/dist/collection/components/form/templates/array-field-item.js +5 -0
  104. package/dist/collection/components/form/templates/array-field.js +20 -158
  105. package/dist/collection/components/form/templates/field.js +17 -0
  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.js +1 -1
  116. package/dist/collection/components/list/list.js +1 -1
  117. package/dist/collection/components/list-item/list-item.js +2 -2
  118. package/dist/collection/components/list-item/menu-item-meta/menu-item-meta.js +1 -1
  119. package/dist/collection/components/markdown/markdown.js +1 -1
  120. package/dist/collection/components/masonry-layout/masonry-layout.js +1 -1
  121. package/dist/collection/components/menu/menu.js +1 -1
  122. package/dist/collection/components/menu-list/menu-list.js +1 -1
  123. package/dist/collection/components/menu-surface/menu-surface.js +1 -1
  124. package/dist/collection/components/notched-outline/notched-outline.js +1 -1
  125. package/dist/collection/components/pagination/pagination.js +1 -1
  126. package/dist/collection/components/picker/picker.js +1 -1
  127. package/dist/collection/components/popover/popover.js +1 -1
  128. package/dist/collection/components/popover-surface/popover-surface.js +1 -1
  129. package/dist/collection/components/portal/portal.js +1 -1
  130. package/dist/collection/components/radio-button-group/radio-button-group.js +1 -1
  131. package/dist/collection/components/radio-button-group/radio-button.js +2 -2
  132. package/dist/collection/components/resize-handle/resize-handle.css +35 -33
  133. package/dist/collection/components/resize-handle/resize-handle.js +86 -4
  134. package/dist/collection/components/scroller/scroller.js +2 -2
  135. package/dist/collection/components/select/select.js +1 -1
  136. package/dist/collection/components/shortcut/shortcut.js +1 -1
  137. package/dist/collection/components/side-panel/side-panel.js +44 -27
  138. package/dist/collection/components/slider/slider.js +3 -3
  139. package/dist/collection/components/snackbar/snackbar.js +2 -2
  140. package/dist/collection/components/spinner/spinner.js +1 -1
  141. package/dist/collection/components/split-button/split-button.js +2 -2
  142. package/dist/collection/components/switch/switch.js +1 -1
  143. package/dist/collection/components/tab-bar/tab-bar.css +68 -22
  144. package/dist/collection/components/tab-bar/tab-bar.js +131 -4
  145. package/dist/collection/components/tab-bar/tabs.js +23 -0
  146. package/dist/collection/components/tab-panel/tab-panel.js +54 -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 +7 -0
  154. package/dist/collection/translations/de.js +7 -0
  155. package/dist/collection/translations/en.js +7 -0
  156. package/dist/collection/translations/fi.js +7 -0
  157. package/dist/collection/translations/fr.js +7 -0
  158. package/dist/collection/translations/nl.js +7 -0
  159. package/dist/collection/translations/no.js +7 -0
  160. package/dist/collection/translations/sv.js +7 -0
  161. package/dist/collection/util/drag-to-reorder.js +116 -0
  162. package/dist/esm/{_baseForOwn-D5j7fHlv.js → _baseForOwn-vKFWmmaS.js} +1 -1
  163. package/dist/esm/{_baseIsEqual-CyF4P8uM.js → _baseIsEqual-B_JRErB0.js} +1 -1
  164. package/dist/esm/{_baseIteratee-CpbczHY1.js → _baseIteratee-CVz7aes3.js} +1 -1
  165. package/dist/esm/{_baseSet-Cw2IE6ZF.js → _baseSet-BUAq8NGm.js} +1 -1
  166. package/dist/esm/{cloneDeep-DAbOtbs8.js → cloneDeep-Bcll-3f8.js} +1 -1
  167. package/dist/esm/drag-to-reorder-BXmXIwCa.js +3086 -0
  168. package/dist/esm/{isEqual-CE83yS8T.js → isEqual-C-pK6AAU.js} +1 -1
  169. package/dist/esm/lime-elements.js +1 -1
  170. package/dist/esm/limel-3d-hover-effect-glow.entry.js +1 -1
  171. package/dist/esm/limel-action-bar_3.entry.js +4 -4
  172. package/dist/esm/limel-ai-avatar.entry.js +2 -2
  173. package/dist/esm/limel-badge.entry.js +2 -2
  174. package/dist/esm/limel-banner.entry.js +1 -1
  175. package/dist/esm/limel-breadcrumbs_6.entry.js +6 -6
  176. package/dist/esm/limel-button-group.entry.js +1 -1
  177. package/dist/esm/limel-button.entry.js +2 -2
  178. package/dist/esm/limel-callout.entry.js +2 -2
  179. package/dist/esm/limel-card.entry.js +1 -1
  180. package/dist/esm/limel-chart.entry.js +1 -1
  181. package/dist/esm/limel-checkbox.entry.js +1 -1
  182. package/dist/esm/limel-chip-set.entry.js +4 -4
  183. package/dist/esm/limel-chip_2.entry.js +2 -2
  184. package/dist/esm/limel-circular-progress.entry.js +1 -1
  185. package/dist/esm/limel-code-diff.entry.js +2 -2
  186. package/dist/esm/limel-code-editor.entry.js +2 -2
  187. package/dist/esm/limel-collapsible-section.entry.js +2 -2
  188. package/dist/esm/limel-color-picker-palette.entry.js +2 -2
  189. package/dist/esm/limel-color-picker.entry.js +1 -1
  190. package/dist/esm/limel-dialog.entry.js +4 -4
  191. package/dist/esm/limel-dock.entry.js +3 -3
  192. package/dist/esm/{limel-scroller.entry.js → limel-drag-handle_2.entry.js} +40 -3
  193. package/dist/esm/limel-email-viewer.entry.js +2 -2
  194. package/dist/esm/limel-file-dropzone_2.entry.js +5 -5
  195. package/dist/esm/limel-file-viewer.entry.js +65 -56
  196. package/dist/esm/limel-file.entry.js +2 -2
  197. package/dist/esm/limel-flatpickr-adapter.entry.js +2 -2
  198. package/dist/esm/limel-flex-container.entry.js +1 -1
  199. package/dist/esm/limel-form.entry.js +536 -3168
  200. package/dist/esm/limel-grid.entry.js +1 -1
  201. package/dist/esm/limel-header.entry.js +1 -1
  202. package/dist/esm/limel-help-content.entry.js +1 -1
  203. package/dist/esm/limel-help.entry.js +2 -2
  204. package/dist/esm/limel-helper-line_3.entry.js +4 -4
  205. package/dist/esm/limel-hotkey_4.entry.js +5 -5
  206. package/dist/esm/limel-icon-button.entry.js +1 -1
  207. package/dist/esm/limel-icon.entry.js +1 -1
  208. package/dist/esm/limel-info-tile.entry.js +2 -2
  209. package/dist/esm/limel-list-item.entry.js +3 -3
  210. package/dist/esm/limel-markdown.entry.js +1 -1
  211. package/dist/esm/limel-masonry-layout.entry.js +1 -1
  212. package/dist/esm/limel-menu-item-meta.entry.js +1 -1
  213. package/dist/esm/limel-pagination-jump.entry.js +1 -1
  214. package/dist/esm/limel-pagination.entry.js +2 -2
  215. package/dist/esm/limel-picker.entry.js +2 -2
  216. package/dist/esm/limel-popover_2.entry.js +2 -2
  217. package/dist/esm/limel-profile-picture.entry.js +1 -1
  218. package/dist/esm/limel-prosemirror-adapter.entry.js +5 -5
  219. package/dist/esm/limel-radio-button-group.entry.js +1 -1
  220. package/dist/esm/limel-radio-button.entry.js +2 -2
  221. package/dist/esm/limel-resize-handle.entry.js +43 -2
  222. package/dist/esm/limel-select.entry.js +1 -1
  223. package/dist/esm/limel-shortcut.entry.js +1 -1
  224. package/dist/esm/limel-side-panel.entry.js +16 -6
  225. package/dist/esm/limel-slider.entry.js +4 -4
  226. package/dist/esm/limel-snackbar.entry.js +3 -3
  227. package/dist/esm/limel-split-button.entry.js +2 -2
  228. package/dist/esm/limel-switch.entry.js +1 -1
  229. package/dist/esm/limel-tab-bar.entry.js +117 -13
  230. package/dist/esm/limel-tab-panel.entry.js +7 -1
  231. package/dist/esm/limel-table.entry.js +7 -7
  232. package/dist/esm/limel-text-editor-link-menu.entry.js +4 -4
  233. package/dist/esm/limel-text-editor.entry.js +1 -1
  234. package/dist/esm/loader.js +1 -1
  235. package/dist/esm/{translations-UrIr-5_D.js → translations-Drl5LNAD.js} +56 -0
  236. package/dist/lime-elements/lime-elements.esm.js +1 -1
  237. package/dist/lime-elements/{p-35bc5ed2.entry.js → p-01de145c.entry.js} +1 -1
  238. package/dist/lime-elements/{p-3ee121fa.entry.js → p-026eed2d.entry.js} +1 -1
  239. package/dist/lime-elements/{p-9ff6a455.entry.js → p-068b141b.entry.js} +1 -1
  240. package/dist/lime-elements/{p-9168793f.entry.js → p-09f8f883.entry.js} +1 -1
  241. package/dist/lime-elements/p-1066a057.entry.js +1 -0
  242. package/dist/lime-elements/{p-95322502.entry.js → p-1663fa9d.entry.js} +1 -1
  243. package/dist/lime-elements/{p-def7b38f.entry.js → p-17aa9235.entry.js} +1 -1
  244. package/dist/lime-elements/{p-910807cb.entry.js → p-19426c76.entry.js} +1 -1
  245. package/dist/lime-elements/{p-622660dd.entry.js → p-1d6014ed.entry.js} +1 -1
  246. package/dist/lime-elements/p-2370ff51.entry.js +1 -0
  247. package/dist/lime-elements/{p-0f18981d.entry.js → p-242f1032.entry.js} +1 -1
  248. package/dist/lime-elements/{p-828558cf.entry.js → p-27d375f3.entry.js} +1 -1
  249. package/dist/lime-elements/{p-2ba9d62f.entry.js → p-300f80e7.entry.js} +1 -1
  250. package/dist/lime-elements/{p-9ca18ba5.entry.js → p-3b4f6329.entry.js} +1 -1
  251. package/dist/lime-elements/{p-2528f75e.entry.js → p-3de45ea6.entry.js} +2 -2
  252. package/dist/lime-elements/{p-675a7469.entry.js → p-3f447d22.entry.js} +1 -1
  253. package/dist/lime-elements/{p-780dae0b.entry.js → p-3fa66fb1.entry.js} +1 -1
  254. package/dist/lime-elements/{p-09390c6a.entry.js → p-41172b62.entry.js} +1 -1
  255. package/dist/lime-elements/{p-d5144955.entry.js → p-41fb6e88.entry.js} +1 -1
  256. package/dist/lime-elements/{p-f4c9940e.entry.js → p-44ec1f22.entry.js} +1 -1
  257. package/dist/lime-elements/{p-268b4da1.entry.js → p-4a272ac2.entry.js} +1 -1
  258. package/dist/lime-elements/{p-e25bfb2c.entry.js → p-4a381bc6.entry.js} +1 -1
  259. package/dist/lime-elements/p-56fe13ef.entry.js +1 -0
  260. package/dist/lime-elements/p-5d623004.entry.js +1 -0
  261. package/dist/lime-elements/{p-8a59698f.entry.js → p-5ea07cbe.entry.js} +1 -1
  262. package/dist/lime-elements/p-600466a9.entry.js +1 -0
  263. package/dist/lime-elements/{p-657bfa36.entry.js → p-62b6e235.entry.js} +1 -1
  264. package/dist/lime-elements/p-64540beb.entry.js +1 -0
  265. package/dist/lime-elements/{p-1020ca20.entry.js → p-674680f9.entry.js} +1 -1
  266. package/dist/lime-elements/{p-d79d777e.entry.js → p-67536ac3.entry.js} +1 -1
  267. package/dist/lime-elements/{p-dd075353.entry.js → p-6770cf06.entry.js} +1 -1
  268. package/dist/lime-elements/{p-887eea11.entry.js → p-7375fac2.entry.js} +1 -1
  269. package/dist/lime-elements/{p-fb15f608.entry.js → p-7829198d.entry.js} +1 -1
  270. package/dist/lime-elements/{p-abed5afd.entry.js → p-82672504.entry.js} +1 -1
  271. package/dist/lime-elements/{p-24e5d420.entry.js → p-8339d921.entry.js} +1 -1
  272. package/dist/lime-elements/{p-33ed0c68.entry.js → p-87c9f4de.entry.js} +1 -1
  273. package/dist/lime-elements/{p-7a290372.entry.js → p-89316964.entry.js} +1 -1
  274. package/dist/lime-elements/{p-527e9c95.entry.js → p-8a9361a2.entry.js} +1 -1
  275. package/dist/lime-elements/{p-46bf8b22.entry.js → p-8e78fd4f.entry.js} +1 -1
  276. package/dist/lime-elements/{p-db1f9eba.entry.js → p-8f133cd6.entry.js} +1 -1
  277. package/dist/lime-elements/{p-ff4a8b89.entry.js → p-90198515.entry.js} +1 -1
  278. package/dist/lime-elements/{p-236743f1.entry.js → p-95ca7426.entry.js} +1 -1
  279. package/dist/lime-elements/{p-55b56742.entry.js → p-9aa921a2.entry.js} +1 -1
  280. package/dist/lime-elements/{p-540b2b24.entry.js → p-9bbf2612.entry.js} +1 -1
  281. package/dist/lime-elements/{p-a449ca04.entry.js → p-9d354eca.entry.js} +1 -1
  282. package/dist/lime-elements/{p-68542e00.entry.js → p-9e9187ce.entry.js} +1 -1
  283. package/dist/lime-elements/p-B26k4gw8.js +1 -0
  284. package/dist/lime-elements/p-BAqAt5It.js +1 -0
  285. package/dist/lime-elements/p-Cu9Ji1iJ.js +1 -0
  286. package/dist/lime-elements/{p-BY5NjPj8.js → p-D9Ezd43A.js} +1 -1
  287. package/dist/lime-elements/{p-nVemxylR.js → p-DFu1q54T.js} +1 -1
  288. package/dist/lime-elements/p-DdnBHYb-.js +7 -0
  289. package/dist/lime-elements/{p-B6-3WXAv.js → p-DeIIlp6m.js} +1 -1
  290. package/dist/lime-elements/p-Dq0uNStc.js +1 -0
  291. package/dist/lime-elements/{p-4a7df81a.entry.js → p-aac603af.entry.js} +1 -1
  292. package/dist/lime-elements/{p-5473eb74.entry.js → p-aee75ad1.entry.js} +1 -1
  293. package/dist/lime-elements/{p-4882acaa.entry.js → p-afbe54e6.entry.js} +1 -1
  294. package/dist/lime-elements/{p-a78aaf37.entry.js → p-b5ebcbfc.entry.js} +1 -1
  295. package/dist/lime-elements/{p-07916acc.entry.js → p-be8950a6.entry.js} +2 -2
  296. package/dist/lime-elements/p-c8cb4912.entry.js +16 -0
  297. package/dist/lime-elements/{p-de4d261a.entry.js → p-dd065596.entry.js} +1 -1
  298. package/dist/lime-elements/{p-0c2ce99b.entry.js → p-ddabfac0.entry.js} +1 -1
  299. package/dist/lime-elements/{p-d3475514.entry.js → p-de3cf7d8.entry.js} +1 -1
  300. package/dist/lime-elements/{p-458c131f.entry.js → p-e13e0001.entry.js} +2 -2
  301. package/dist/lime-elements/p-e2971111.entry.js +1 -0
  302. package/dist/lime-elements/{p-ecded772.entry.js → p-e332bb9b.entry.js} +1 -1
  303. package/dist/lime-elements/{p-54631dbf.entry.js → p-e50acec1.entry.js} +1 -1
  304. package/dist/lime-elements/{p-074275f4.entry.js → p-e9b1e0bd.entry.js} +1 -1
  305. package/dist/lime-elements/p-ec531ecb.entry.js +1 -0
  306. package/dist/lime-elements/{p-90286e5c.entry.js → p-f0bf3fd1.entry.js} +1 -1
  307. package/dist/lime-elements/p-f1ac7608.entry.js +1 -0
  308. package/dist/lime-elements/{p-c12fbc91.entry.js → p-f455150b.entry.js} +1 -1
  309. package/dist/types/components/form/form.d.ts +15 -0
  310. package/dist/types/components/form/show-field.d.ts +9 -0
  311. package/dist/types/components/form/templates/array-context.d.ts +4 -0
  312. package/dist/types/components/form/templates/array-field-collapsible-item.d.ts +5 -0
  313. package/dist/types/components/form/templates/array-field.d.ts +3 -13
  314. package/dist/types/components/form/templates/field.d.ts +1 -0
  315. package/dist/types/components/form/templates/object-field.d.ts +2 -2
  316. package/dist/types/components/resize-handle/resize-handle.d.ts +31 -2
  317. package/dist/types/components/side-panel/side-panel.d.ts +11 -4
  318. package/dist/types/components/tab-bar/tab-bar.d.ts +25 -0
  319. package/dist/types/components/tab-bar/tab.types.d.ts +18 -0
  320. package/dist/types/components/tab-bar/tabs.d.ts +12 -1
  321. package/dist/types/components/tab-panel/tab-panel.d.ts +18 -1
  322. package/dist/types/components.d.ts +143 -18
  323. package/dist/types/translations/da.d.ts +7 -0
  324. package/dist/types/translations/de.d.ts +7 -0
  325. package/dist/types/translations/en.d.ts +7 -0
  326. package/dist/types/translations/fi.d.ts +7 -0
  327. package/dist/types/translations/fr.d.ts +7 -0
  328. package/dist/types/translations/nl.d.ts +7 -0
  329. package/dist/types/translations/no.d.ts +7 -0
  330. package/dist/types/translations/sv.d.ts +7 -0
  331. package/dist/types/util/drag-to-reorder.d.ts +65 -0
  332. package/package.json +4 -4
  333. package/dist/cjs/isArrayLikeObject-U2Ddbw4n.js +0 -326
  334. package/dist/cjs/limel-drag-handle.cjs.entry.js +0 -42
  335. package/dist/esm/isArrayLikeObject-CJB8HbtH.js +0 -321
  336. package/dist/esm/limel-drag-handle.entry.js +0 -40
  337. package/dist/lime-elements/p-26813b2c.entry.js +0 -1
  338. package/dist/lime-elements/p-49eb2f64.entry.js +0 -13
  339. package/dist/lime-elements/p-4f58c6b3.entry.js +0 -1
  340. package/dist/lime-elements/p-646731b6.entry.js +0 -1
  341. package/dist/lime-elements/p-8d567e42.entry.js +0 -1
  342. package/dist/lime-elements/p-9b384d62.entry.js +0 -1
  343. package/dist/lime-elements/p-BQeIv4aA.js +0 -1
  344. package/dist/lime-elements/p-COdirXg1.js +0 -1
  345. package/dist/lime-elements/p-ORUNaKm-.js +0 -1
  346. package/dist/lime-elements/p-a317f2fa.entry.js +0 -1
  347. package/dist/lime-elements/p-a5246373.entry.js +0 -1
  348. package/dist/lime-elements/p-b609552e.entry.js +0 -1
  349. package/dist/lime-elements/p-bf849dc9.entry.js +0 -1
  350. package/dist/lime-elements/p-d7e5a4a7.entry.js +0 -1
  351. package/dist/lime-elements/p-pk5KIdKH.js +0 -1
  352. package/dist/lime-elements/p-w3yKYfBQ.js +0 -1
@@ -0,0 +1 @@
1
+ import{r as t,c as a,h as s,H as i,a as e}from"./p-BU9IJqli.js";import{d as o}from"./p-z_E3sq3p.js";const h=class{constructor(s){t(this,s),this.changeTab=a(this,"changeTab",7),this.reorderTab=a(this,"reorderTab",7),this.tabs=[],this.orientation="horizontal",this.allowTabReorder=!1,this.slotElements=[],this.handleChangeTabs=this.handleChangeTabs.bind(this),this.setSlotElements=this.setSlotElements.bind(this),this.setTabStatus=this.setTabStatus.bind(this)}connectedCallback(){this.initialize()}componentDidLoad(){this.initialize()}initialize(){const t=this.getSlot();if(t){t.addEventListener("slotchange",this.setSlotElements),this.setSlotElements();for(const t of this.tabs)this.setTabStatus(t)}}disconnectedCallback(){this.getSlot().removeEventListener("slotchange",this.setSlotElements)}tabsChanged(){this.hidePanels();for(const t of this.tabs)this.setTabStatus(t)}render(){return s(i,{key:"530a6e0b8ae7387edaf8e0c1b6360a5a8099f155",onChangeTab:this.handleChangeTabs},s("div",{key:"5d2ba03a54a5315b9c400d28b8dc0967a41a34fe",class:"tab-panel"},s("limel-tab-bar",{key:"69183dd7c31a1d5c6d7027a81bf152586bf6fd0a",tabs:this.tabs,orientation:this.orientation,allowTabReorder:this.allowTabReorder}),s("div",{key:"f7ac219b8f1941a1b2b5656f36646077165b2ec9",class:"tab-content"},s("slot",{key:"177a1e39cdc731a2e77b6d06a691851a193b2a40"}))))}setSlotElements(){const t=this.getSlot();this.hidePanels(),this.slotElements=Array.prototype.slice.call(t.assignedElements());for(const t of this.tabs)this.setTabStatus(t)}setTabStatus(t){const a=this.slotElements.find((a=>a.id===t.id));a&&(a.style.display=t.active?"":"none",a.tab=t)}handleChangeTabs(t){this.tabs=this.tabs.map((a=>a.id===t.detail.id?t.detail:a)),this.setTabStatus(t.detail),setTimeout(o,0)}getSlot(){return this.host.shadowRoot.querySelector("slot")}hidePanels(){for(const t of this.slotElements)t.style.display="none"}get host(){return e(this)}static get watchers(){return{tabs:[{tabsChanged:0}]}}};h.style=":host(limel-tab-panel){--tab-panel-background-color:rgb(var(--contrast-100));display:block;height:100%}.tab-panel{height:100%;position:relative;display:flex;flex-direction:column}.tab-content{height:100%;flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;box-sizing:border-box;background-color:var(--tab-panel-background-color)}:host(limel-tab-panel[orientation=vertical]) div.tab-panel{flex-direction:row}:host(limel-tab-panel[orientation=vertical]) div.tab-content{min-width:0}";export{h as limel_tab_panel}
@@ -1 +1 @@
1
- import{r as t,h as s,H as i,a as e}from"./p-BU9IJqli.js";const o=class{constructor(s){t(this,s),this.ordered=!1,this.containerHeight=0,this.hasRendered=!1,this.pendingLayoutFrame=null}onOrderedChange(){this.scheduleLayout()}componentDidLoad(){this.setupObservers(),this.layoutItems(),this.hasRendered=!0}connectedCallback(){this.hasRendered&&(this.setupObservers(),this.scheduleLayout())}disconnectedCallback(){var t,s,i;null===(t=this.resizeObserver)||void 0===t||t.disconnect(),null===(s=this.mutationObserver)||void 0===s||s.disconnect(),null===(i=this.itemResizeObserver)||void 0===i||i.disconnect(),null!==this.pendingLayoutFrame&&cancelAnimationFrame(this.pendingLayoutFrame)}render(){return s(i,{key:"4739b8085adca277a42f36478b1692970e2a8675",style:{height:`${this.containerHeight}rem`},class:{"is-laid-out":this.hasRendered}},s("slot",{key:"14290465ddb5ea67ff9d2883904f3298900151ee"}))}setupObservers(){this.resizeObserver=new ResizeObserver((()=>{this.scheduleLayout()})),this.resizeObserver.observe(this.host),this.itemResizeObserver=new ResizeObserver((()=>{this.scheduleLayout()})),this.mutationObserver=new MutationObserver((()=>{this.observeItemSizes(),this.scheduleLayout()})),this.mutationObserver.observe(this.host,{childList:!0}),this.observeItemSizes()}observeItemSizes(){var t;null===(t=this.itemResizeObserver)||void 0===t||t.disconnect();const s=this.getItems();for(const t of s)this.itemResizeObserver.observe(t)}getItems(){return[...this.host.children].filter((t=>t instanceof HTMLElement))}getRootFontSize(){return Number.parseFloat(getComputedStyle(document.documentElement).fontSize)}pxToRem(t,s){return t/s}getCssPropertyInPx(t,s,i){const e=getComputedStyle(this.host).getPropertyValue(t).trim()||s,o=Number.parseFloat(e);return e.endsWith("px")?o:o*i}scheduleLayout(){null!==this.pendingLayoutFrame&&cancelAnimationFrame(this.pendingLayoutFrame),this.pendingLayoutFrame=requestAnimationFrame((()=>{this.pendingLayoutFrame=null,this.layoutItems()}))}layoutItems(){const t=this.getItems();if(0===t.length)return void(this.containerHeight=0);const s=this.host.offsetWidth;if(!s)return;const i=this.getRootFontSize(),e=this.getCssPropertyInPx("--masonry-layout-gap","1rem",i),{columnCount:o,columnWidth:n}=this.calculateColumns(s,e,i),r=this.positionItems(t,o,n,e,i),h=this.pxToRem(Math.max(...r)-e,i);Math.abs(h-this.containerHeight)>.1&&(this.containerHeight=h)}calculateColumns(t,s,i){const e=this.getCssPropertyInPx("--masonry-layout-min-column-width","12rem",i),o=Math.max(1,Math.floor((t+s)/(e+s)));return{columnCount:o,columnWidth:(t-(o-1)*s)/o}}positionItems(t,s,i,e,o){const n=Array.from({length:s},(()=>0));let r=0;for(const h of t){const t=this.ordered?r%s:n.indexOf(Math.min(...n)),a=t*(i+e),l=n[t];h.style.position="absolute",h.style.left=`${this.pxToRem(a,o)}rem`,h.style.top=`${this.pxToRem(l,o)}rem`,h.style.width=`${this.pxToRem(i,o)}rem`,this.hasRendered||this.staggerFadeIn(h,r),n[t]+=h.offsetHeight+e,r++}return n}staggerFadeIn(t,s){if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return;t.style.transition="opacity 0.2s cubic-bezier(0.2, 0, 0.2, 1)",t.style.transitionDelay=20*s+"ms";const i=s=>{s.target===t&&"opacity"===s.propertyName&&(t.style.transition="",t.style.transitionDelay="",t.removeEventListener("transitionend",i))};t.addEventListener("transitionend",i)}get host(){return e(this)}static get watchers(){return{ordered:[{onOrderedChange:0}]}}};o.style=":host(limel-masonry-layout){display:block;position:relative;box-sizing:border-box;visibility:hidden}:host(limel-masonry-layout) ::slotted(*){opacity:0;box-sizing:border-box}:host(limel-masonry-layout.is-laid-out){visibility:visible}:host(limel-masonry-layout.is-laid-out) ::slotted(*){opacity:1}";export{o as limel_masonry_layout}
1
+ import{r as t,h as s,H as i,a as e}from"./p-BU9IJqli.js";const o=class{constructor(s){t(this,s),this.ordered=!1,this.containerHeight=0,this.hasRendered=!1,this.pendingLayoutFrame=null}onOrderedChange(){this.scheduleLayout()}componentDidLoad(){this.setupObservers(),this.layoutItems(),this.hasRendered=!0}connectedCallback(){this.hasRendered&&(this.setupObservers(),this.scheduleLayout())}disconnectedCallback(){var t,s,i;null===(t=this.resizeObserver)||void 0===t||t.disconnect(),null===(s=this.mutationObserver)||void 0===s||s.disconnect(),null===(i=this.itemResizeObserver)||void 0===i||i.disconnect(),null!==this.pendingLayoutFrame&&cancelAnimationFrame(this.pendingLayoutFrame)}render(){return s(i,{key:"b25a2eb6e10535aa5fedb8de8baeb96f51e10739",style:{height:`${this.containerHeight}rem`},class:{"is-laid-out":this.hasRendered}},s("slot",{key:"fa2c4773d1fb41e2ea0725a28911840e45e5c809"}))}setupObservers(){this.resizeObserver=new ResizeObserver((()=>{this.scheduleLayout()})),this.resizeObserver.observe(this.host),this.itemResizeObserver=new ResizeObserver((()=>{this.scheduleLayout()})),this.mutationObserver=new MutationObserver((()=>{this.observeItemSizes(),this.scheduleLayout()})),this.mutationObserver.observe(this.host,{childList:!0}),this.observeItemSizes()}observeItemSizes(){var t;null===(t=this.itemResizeObserver)||void 0===t||t.disconnect();const s=this.getItems();for(const t of s)this.itemResizeObserver.observe(t)}getItems(){return[...this.host.children].filter((t=>t instanceof HTMLElement))}getRootFontSize(){return Number.parseFloat(getComputedStyle(document.documentElement).fontSize)}pxToRem(t,s){return t/s}getCssPropertyInPx(t,s,i){const e=getComputedStyle(this.host).getPropertyValue(t).trim()||s,o=Number.parseFloat(e);return e.endsWith("px")?o:o*i}scheduleLayout(){null!==this.pendingLayoutFrame&&cancelAnimationFrame(this.pendingLayoutFrame),this.pendingLayoutFrame=requestAnimationFrame((()=>{this.pendingLayoutFrame=null,this.layoutItems()}))}layoutItems(){const t=this.getItems();if(0===t.length)return void(this.containerHeight=0);const s=this.host.offsetWidth;if(!s)return;const i=this.getRootFontSize(),e=this.getCssPropertyInPx("--masonry-layout-gap","1rem",i),{columnCount:o,columnWidth:n}=this.calculateColumns(s,e,i),r=this.positionItems(t,o,n,e,i),h=this.pxToRem(Math.max(...r)-e,i);Math.abs(h-this.containerHeight)>.1&&(this.containerHeight=h)}calculateColumns(t,s,i){const e=this.getCssPropertyInPx("--masonry-layout-min-column-width","12rem",i),o=Math.max(1,Math.floor((t+s)/(e+s)));return{columnCount:o,columnWidth:(t-(o-1)*s)/o}}positionItems(t,s,i,e,o){const n=Array.from({length:s},(()=>0));let r=0;for(const h of t){const t=this.ordered?r%s:n.indexOf(Math.min(...n)),a=t*(i+e),l=n[t];h.style.position="absolute",h.style.left=`${this.pxToRem(a,o)}rem`,h.style.top=`${this.pxToRem(l,o)}rem`,h.style.width=`${this.pxToRem(i,o)}rem`,this.hasRendered||this.staggerFadeIn(h,r),n[t]+=h.offsetHeight+e,r++}return n}staggerFadeIn(t,s){if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return;t.style.transition="opacity 0.2s cubic-bezier(0.2, 0, 0.2, 1)",t.style.transitionDelay=20*s+"ms";const i=s=>{s.target===t&&"opacity"===s.propertyName&&(t.style.transition="",t.style.transitionDelay="",t.removeEventListener("transitionend",i))};t.addEventListener("transitionend",i)}get host(){return e(this)}static get watchers(){return{ordered:[{onOrderedChange:0}]}}};o.style=":host(limel-masonry-layout){display:block;position:relative;box-sizing:border-box;visibility:hidden}:host(limel-masonry-layout) ::slotted(*){opacity:0;box-sizing:border-box}:host(limel-masonry-layout.is-laid-out){visibility:visible}:host(limel-masonry-layout.is-laid-out) ::slotted(*){opacity:1}";export{o as limel_masonry_layout}
@@ -17,6 +17,7 @@ import { FormError, FormSchema, ValidationError, ValidationStatus } from './form
17
17
  * @exampleComponent limel-example-form-row-layout
18
18
  * @exampleComponent limel-example-builtin-field-types-form
19
19
  * @exampleComponent limel-example-code-editor-form
20
+ * @exampleComponent limel-example-form-highlighted-field
20
21
  */
21
22
  export declare class Form {
22
23
  /**
@@ -57,6 +58,18 @@ export declare class Form {
57
58
  * which keeps untouched required-empty fields silent.
58
59
  */
59
60
  revealErrors: boolean;
61
+ /**
62
+ * The path in the value of a field to take the user to, such as
63
+ * `['heroes', 2, 'name']`. When it changes, the form opens the sections
64
+ * and list items the field is in, scrolls it into view, focuses it and
65
+ * briefly highlights it.
66
+ *
67
+ * If the path goes further than the form can show, such as into a custom
68
+ * component, the closest field above the end of the path is shown. To show
69
+ * the same field again, set it to `undefined` first.
70
+ * @beta
71
+ */
72
+ highlightedField?: Array<string | number>;
60
73
  /**
61
74
  * Emitted when a change is made within the form
62
75
  */
@@ -73,11 +86,13 @@ export declare class Form {
73
86
  constructor();
74
87
  connectedCallback(): void;
75
88
  componentDidLoad(): void;
89
+ protected handleHighlightedFieldChange(newPath?: Array<string | number>, oldPath?: Array<string | number>): void;
76
90
  private initialize;
77
91
  componentDidUpdate(): void;
78
92
  disconnectedCallback(): void;
79
93
  render(): any;
80
94
  private reactRender;
95
+ private showHighlightedField;
81
96
  private handleChange;
82
97
  private validateFormData;
83
98
  /**
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Open what is closed above a field, scroll it into view, focus it and
3
+ * highlight it.
4
+ *
5
+ * @param root - the element the form is rendered in
6
+ * @param path - the path of the field in the value of the form
7
+ */
8
+ export declare function showField(root: HTMLElement, path: Array<string | number>): Promise<void>;
9
+ //# sourceMappingURL=show-field.d.ts.map
@@ -3,6 +3,10 @@ import { FormSchema } from '../form.types';
3
3
  export interface ArrayFieldOptions {
4
4
  arraySchema: FormSchema;
5
5
  formData: any[];
6
+ /**
7
+ * The path of the array in the value, such as `['heroes']`
8
+ */
9
+ schemaPath: string[];
6
10
  }
7
11
  export declare const ArrayFieldContext: import("react").Context<ArrayFieldOptions>;
8
12
  /**
@@ -39,6 +39,10 @@ export interface CollapsibleItemProps {
39
39
  * errors when this is `true`, keeping a freshly loaded form silent.
40
40
  */
41
41
  revealErrors?: boolean;
42
+ /**
43
+ * The schema path of the item, such as `/heroes/0`
44
+ */
45
+ schemaPath?: string;
42
46
  }
43
47
  export declare class CollapsibleItemTemplate extends React.Component<PropsWithChildren<CollapsibleItemProps>> {
44
48
  props: PropsWithChildren<CollapsibleItemProps>;
@@ -55,6 +59,7 @@ export declare class CollapsibleItemTemplate extends React.Component<PropsWithCh
55
59
  class: string;
56
60
  ref: (section: HTMLLimelCollapsibleSectionElement) => void;
57
61
  'is-open': boolean;
62
+ 'data-schema-path': string;
58
63
  'data-reorder-id': string;
59
64
  'data-reorderable': string;
60
65
  invalid: boolean;
@@ -7,14 +7,11 @@ interface ArrayFieldTemplateState {
7
7
  }
8
8
  export declare class ArrayFieldTemplate extends React.Component<ArrayFieldTemplateProps, ArrayFieldTemplateState> {
9
9
  private container?;
10
- private sortable?;
11
- private dragSnapshot?;
12
- private draggedItemIndex?;
13
- private dropElevationTimeout?;
14
- private dropElevationTarget?;
10
+ private readonly dragToReorder;
15
11
  private cachedContextValue;
16
12
  private cachedSchema?;
17
13
  private cachedFormData?;
14
+ private cachedPath?;
18
15
  constructor(props: ArrayFieldTemplateProps);
19
16
  componentWillUnmount(): void;
20
17
  componentDidMount(): void;
@@ -24,16 +21,9 @@ export declare class ArrayFieldTemplate extends React.Component<ArrayFieldTempla
24
21
  private readonly handleAddClick;
25
22
  private readonly setContainer;
26
23
  private getOrderedItems;
27
- private readonly handleSortStart;
28
- private readonly handleSortEnd;
24
+ private readonly handleReorder;
29
25
  private setupDragController;
30
- private teardownDragController;
31
26
  private canReorderItems;
32
- private readOrderFromDom;
33
- private getReorderId;
34
- private applyDropElevation;
35
- private scheduleDropElevationRemoval;
36
- private clearDropElevationTimer;
37
27
  private arraysEqual;
38
28
  private extractIndices;
39
29
  private getContextValue;
@@ -2,5 +2,6 @@ import React from 'react';
2
2
  export declare const FieldTemplate: (props: any) => React.DetailedReactHTMLElement<{
3
3
  className: any;
4
4
  style: React.CSSProperties;
5
+ 'data-schema-path': string;
5
6
  }, HTMLElement>;
6
7
  //# sourceMappingURL=field.d.ts.map
@@ -1,11 +1,11 @@
1
1
  import React from 'react';
2
2
  import { LimeObjectFieldTemplateProps } from './types';
3
- export declare const ObjectFieldTemplate: (props: LimeObjectFieldTemplateProps) => React.FunctionComponentElement<React.ProviderProps<import("./array-context").ArrayFieldOptions>> | React.FunctionComponentElement<React.FragmentProps> | React.ReactElement<{
3
+ export declare const ObjectFieldTemplate: (props: LimeObjectFieldTemplateProps) => React.FunctionComponentElement<React.FragmentProps> | React.ReactElement<{
4
4
  header: string;
5
5
  id: string;
6
6
  'is-open': boolean;
7
7
  invalid: boolean;
8
- }, string | React.JSXElementConstructor<any>>;
8
+ }, string | React.JSXElementConstructor<any>> | React.FunctionComponentElement<React.ProviderProps<import("./array-context").ArrayFieldOptions>>;
9
9
  /**
10
10
  * Render a schema path as a leading-slash string. Root → `/`,
11
11
  * `['rules']` → `/rules`, `['rules', 'details']` → `/rules/details`.
@@ -1,4 +1,5 @@
1
1
  import { EventEmitter } from '../../stencil-public-runtime';
2
+ import { Languages } from '../date-picker/date.types';
2
3
  /**
3
4
  * A handle on an edge of an element. The user drags the handle, or presses an
4
5
  * arrow key while the handle has focus, to resize the element.
@@ -13,9 +14,18 @@ import { EventEmitter } from '../../stencil-public-runtime';
13
14
  * `static`. If other content covers the handle, also give the element
14
15
  * `isolation: isolate`.
15
16
  *
17
+ * ## Accessibility
18
+ * The user reaches the handle with the <kbd>Tab</kbd> key. The handle is named
19
+ * "Resize" followed by `resizableRegionLabel`, for example "Resize side
20
+ * panel". A tooltip shows the name and how to resize. While the pointer is
21
+ * over the handle, it says to drag the handle. While the handle has keyboard
22
+ * focus, it says which arrow keys to press, which fit `location`. Screen
23
+ * readers read the arrow keys as the description of the handle.
24
+ *
16
25
  * @exampleComponent limel-example-resize-handle-basic
17
26
  * @exampleComponent limel-example-resize-handle-locations
18
27
  * @exampleComponent limel-example-resize-handle-grab-area
28
+ * @exampleComponent limel-example-resize-handle-accessibility
19
29
  * @private
20
30
  */
21
31
  export declare class ResizeHandle {
@@ -24,9 +34,20 @@ export declare class ResizeHandle {
24
34
  */
25
35
  location: 'left' | 'right' | 'top' | 'bottom';
26
36
  /**
27
- * The accessible name of the handle.
37
+ * The name of the region that the handle resizes, for example
38
+ * `side panel`. The accessible name of the handle is "Resize" followed by
39
+ * this name, for example "Resize side panel". When no name is set, the
40
+ * handle is named "Resize this region".
41
+ *
42
+ * Write the name in the language that is set in `language`, in the form
43
+ * that reads right after "Resize", for example `side panel` in English
44
+ * and `sidopanelen` in Swedish.
45
+ */
46
+ resizableRegionLabel?: string;
47
+ /**
48
+ * Defines the language for translations.
28
49
  */
29
- label: string;
50
+ language: Languages;
30
51
  /**
31
52
  * The size of the element, in pixels: the width when `location` is `left`
32
53
  * or `right`, and the height when it is `top` or `bottom`.
@@ -52,11 +73,19 @@ export declare class ResizeHandle {
52
73
  * press. Pressing and releasing the handle without moving it emits nothing.
53
74
  */
54
75
  endResize: EventEmitter<void>;
76
+ private isPointerOver;
77
+ private hasKeyboardFocus;
55
78
  private host;
56
79
  private stopResizing?;
57
80
  connectedCallback(): void;
58
81
  disconnectedCallback(): void;
59
82
  render(): any;
83
+ private getName;
84
+ private getHint;
85
+ private handlePointerEnter;
86
+ private handlePointerLeave;
87
+ private handleFocus;
88
+ private handleBlur;
60
89
  private handleKeyDown;
61
90
  private elementSize;
62
91
  private resizableElement;
@@ -1,4 +1,5 @@
1
1
  import { EventEmitter } from '../../stencil-public-runtime';
2
+ import { Languages } from '../date-picker/date.types';
2
3
  import { SidePanelAction, SidePanelActionSelect, SidePanelEntry } from './side-panel.types';
3
4
  /**
4
5
  * A resizable panel that is displayed on top of the right side of the page.
@@ -24,6 +25,7 @@ import { SidePanelAction, SidePanelActionSelect, SidePanelEntry } from './side-p
24
25
  * @exampleComponent limel-example-side-panel-header-actions
25
26
  * @exampleComponent limel-example-side-panel-stacking
26
27
  * @exampleComponent limel-example-side-panel-full-screen
28
+ * @exampleComponent limel-example-side-panel-accessibility
27
29
  * @slot - Content of the panel
28
30
  * @slot header-actions - Small controls at the right end of the header. Content that is larger than half the header width or the height of the headings is cut off.
29
31
  * @private
@@ -32,8 +34,16 @@ export declare class SidePanel {
32
34
  /**
33
35
  * Accessible name of the panel. Screen readers announce it. Set it to
34
36
  * something that tells the user what the panel is for.
37
+ *
38
+ * The resize handle is named after it, for example "Resize Customer
39
+ * details panel". When no label is set, the handle is named "Resize side
40
+ * panel".
35
41
  */
36
42
  label?: string;
43
+ /**
44
+ * Defines the language for translations.
45
+ */
46
+ language: Languages;
37
47
  /**
38
48
  * Label of the close button. Shown as a tooltip and used as the accessible
39
49
  * name.
@@ -49,10 +59,6 @@ export declare class SidePanel {
49
59
  * Buttons in the toolbar, to the right of the close button.
50
60
  */
51
61
  actions: SidePanelAction[];
52
- /**
53
- * Label of the resize handle. Used as the accessible name.
54
- */
55
- resizeLabel: string;
56
62
  /**
57
63
  * Whether pressing Escape emits `close`. Set to `false` to let only the
58
64
  * close button emit `close`. The panel then does not prevent the Escape
@@ -120,6 +126,7 @@ export declare class SidePanel {
120
126
  private renderBack;
121
127
  private renderHeader;
122
128
  private renderHandle;
129
+ private getRegionLabel;
123
130
  private renderBody;
124
131
  /**
125
132
  * Components in the content can emit events with the same names as the
@@ -9,6 +9,7 @@ import { Tab } from './tab.types';
9
9
  * A tab bar can contain an unlimited number of tabs. However, depending on the device width and width of the tabs, the number of tabs that are visible at the same time will vary. When there is limited horizontal space, the component shows a left-arrow and/or right-arrow button, which scrolls and reveals the additional tabs. The tab bar can also be swiped left and right on a touch-device. A vertical tab bar does the same, upwards and downwards.
10
10
  * The arrows are only a shortcut for people who use a mouse or a touch screen. Screen readers do not announce them, and the Tab key skips them. People who use a keyboard or a screen reader move between the tabs, and the tab bar keeps the selected tab in view.
11
11
  * The left and right arrow keys move to the previous and the next tab, and select it. In a vertical tab bar, the up and down arrow keys do that instead. Home and End move to the first and the last tab. Moving past the last tab continues at the first one, and the other way around. The Tab key moves on to what comes after the tab bar, and moving back with Shift and Tab lands on the selected tab, or on the first tab when none is selected.
12
+ * Set `allowTabReorder` to let the user drag the tabs into the order they want. Every tab then gets a drag handle, and the tab bar emits `reorderTab` when the user drops a tab in a new place. The tab bar does not change `tabs` itself, so the component that uses it decides the new order, and can save it for the user. A tab that the component does not move, stays where it was. The tabs can be reordered with a mouse and a touch screen, but not yet with the keyboard.
12
13
  * :::tip Other things to consider
13
14
  * Never divide the content of a tab using a nested tab bar.
14
15
  * Never place two tab bars within the same screen.
@@ -22,6 +23,8 @@ import { Tab } from './tab.types';
22
23
  * @exampleComponent limel-example-tab-bar-with-equal-tab-width
23
24
  * @exampleComponent limel-example-tab-bar-vertical
24
25
  * @exampleComponent limel-example-tab-bar-tab-width
26
+ * @exampleComponent limel-example-tab-bar-reorder
27
+ * @exampleComponent limel-example-tab-bar-reorder-vertical
25
28
  */
26
29
  export declare class TabBar {
27
30
  /**
@@ -33,24 +36,45 @@ export declare class TabBar {
33
36
  * to, or in a column, next to it.
34
37
  */
35
38
  orientation: 'horizontal' | 'vertical';
39
+ /**
40
+ * Set to `true` to let the user reorder the tabs by dragging them. Listen
41
+ * for `reorderTab` and give the tab bar the tabs in their new order.
42
+ */
43
+ allowTabReorder: boolean;
36
44
  /**
37
45
  * Emitted when a tab has been changed
38
46
  */
39
47
  private changeTab;
48
+ /**
49
+ * Emitted when the user has dragged a tab to a new place. The tab bar does
50
+ * not change `tabs` itself. The tab stays where it was until `tabs` is set
51
+ * to the tabs in their new order.
52
+ */
53
+ private reorderTab;
40
54
  private host;
41
55
  private revealedTabId?;
42
56
  private hasLoaded;
43
57
  private isLaidOutAgain;
58
+ private tabIdsAfterReorder?;
59
+ private dragToReorder?;
60
+ private renderedTabs;
61
+ private tabWithFocus?;
44
62
  constructor();
45
63
  connectedCallback(): Promise<void>;
64
+ disconnectedCallback(): void;
46
65
  componentDidLoad(): void;
66
+ componentWillRender(): void;
47
67
  componentDidRender(): Promise<void>;
48
68
  render(): any;
49
69
  protected tabsChanged(newTabs?: Tab[], oldTabs?: Tab[]): void;
50
70
  protected orientationChanged(): void;
51
71
  private getOrientation;
52
72
  private getNavigationOptions;
73
+ private restoreFocus;
53
74
  private getTabElements;
75
+ private canReorderTabs;
76
+ private setUpReordering;
77
+ private readonly handleReorder;
54
78
  /**
55
79
  * A tab that is activated by the user receives focus, and the scroller
56
80
  * reveals what receives focus. This is for a tab that becomes active
@@ -65,6 +89,7 @@ export declare class TabBar {
65
89
  private activateTab;
66
90
  private sortByInactive;
67
91
  private renderIcon;
92
+ private renderTabOrMovableTab;
68
93
  private renderTab;
69
94
  private triggerIconColorWarning;
70
95
  }
@@ -40,4 +40,22 @@ export interface Tab {
40
40
  */
41
41
  badge?: number | string;
42
42
  }
43
+ /**
44
+ * Describes a tab that the user has moved to a new place.
45
+ * @public
46
+ */
47
+ export interface TabReorderEvent {
48
+ /**
49
+ * The tab that was moved
50
+ */
51
+ tab: Tab;
52
+ /**
53
+ * The position that the tab had in `tabs` before it was moved
54
+ */
55
+ fromIndex: number;
56
+ /**
57
+ * The position that the tab gets in `tabs` after it has been moved
58
+ */
59
+ toIndex: number;
60
+ }
43
61
  //# sourceMappingURL=tab.types.d.ts.map
@@ -1,4 +1,5 @@
1
- import { Tab } from './tab.types';
1
+ import type { ReorderEvent } from '../../util/drag-to-reorder';
2
+ import { Tab, TabReorderEvent } from './tab.types';
2
3
  /**
3
4
  * Set a tabs `active` state to true in a list of tabs. The previous tab with
4
5
  * `active` set to true will have it set to `false` instead.
@@ -8,4 +9,14 @@ import { Tab } from './tab.types';
8
9
  * @returns a copy of the list of tabs with the changed tabs replaced
9
10
  */
10
11
  export declare function setActiveTab(tabs: Tab[], index: number): Tab[];
12
+ /**
13
+ * Describe a move that the user has made, in the tabs that the user made it in.
14
+ *
15
+ * @param tabs - the tabs of the tab bar now
16
+ * @param reorder - the move, as the list of tabs that the user dragged reported
17
+ * it
18
+ * @returns the move, or `undefined` when `tabs` are not the tabs that the user
19
+ * began to drag, since the move would point to another tab then
20
+ */
21
+ export declare function getTabReorder(tabs: Tab[], reorder: ReorderEvent): TabReorderEvent | undefined;
11
22
  //# sourceMappingURL=tabs.d.ts.map
@@ -1,5 +1,5 @@
1
1
  import { EventEmitter } from '../../stencil-public-runtime';
2
- import { Tab } from '../tab-bar/tab.types';
2
+ import { Tab, TabReorderEvent } from '../tab-bar/tab.types';
3
3
  /**
4
4
  * The `limel-tab-panel` component uses the `limel-tab-bar` component together
5
5
  * with custom slotted components and will display the content for the currently
@@ -15,10 +15,16 @@ import { Tab } from '../tab-bar/tab.types';
15
15
  * The slotted components can also emit the `changeTab` event to update anything
16
16
  * inside the actual tab, e.g. to change the icon, color or badge.
17
17
  *
18
+ * Set `allowTabReorder` to let the user reorder the tabs by dragging them. The
19
+ * panel does not change `tabs` itself. Listen for `reorderTab`, and give the
20
+ * panel the tabs in their new order. The tabs can be reordered with a mouse
21
+ * and a touch screen, but not yet with the keyboard.
22
+ *
18
23
  * @slot - Content to put inside the `limel-tab-panel`. Each slotted element
19
24
  * must have the `id` attribute equal to the id of the tab it belongs to.
20
25
  * @exampleComponent limel-example-tab-panel-basic
21
26
  * @exampleComponent limel-example-tab-panel-vertical
27
+ * @exampleComponent limel-example-tab-panel-reorder
22
28
  */
23
29
  export declare class TabPanel {
24
30
  /**
@@ -30,10 +36,21 @@ export declare class TabPanel {
30
36
  * column, to the left of it.
31
37
  */
32
38
  orientation: 'horizontal' | 'vertical';
39
+ /**
40
+ * Set to `true` to let the user reorder the tabs by dragging them. Listen
41
+ * for `reorderTab` and give the panel the tabs in their new order.
42
+ */
43
+ allowTabReorder: boolean;
33
44
  /**
34
45
  * Emitted when a tab has been changed
35
46
  */
36
47
  protected changeTab: EventEmitter<Tab>;
48
+ /**
49
+ * Emitted when the user has dragged a tab to a new place. The panel does
50
+ * not change `tabs` itself. The tab stays where it was until `tabs` is set
51
+ * to the tabs in their new order.
52
+ */
53
+ protected reorderTab: EventEmitter<TabReorderEvent>;
37
54
  private host;
38
55
  private slotElements;
39
56
  constructor();