@lucca-front/ng 22.0.0-rc.4 → 22.0.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 (319) hide show
  1. package/README.md +1 -1
  2. package/fesm2022/lucca-front-ng-a11y.mjs +10 -10
  3. package/fesm2022/lucca-front-ng-a11y.mjs.map +1 -1
  4. package/fesm2022/lucca-front-ng-activity-feed.mjs +14 -14
  5. package/fesm2022/lucca-front-ng-activity-feed.mjs.map +1 -1
  6. package/fesm2022/lucca-front-ng-api.mjs +40 -40
  7. package/fesm2022/lucca-front-ng-app-layout.mjs +7 -6
  8. package/fesm2022/lucca-front-ng-app-layout.mjs.map +1 -1
  9. package/fesm2022/lucca-front-ng-approbation-inbox.mjs +517 -0
  10. package/fesm2022/lucca-front-ng-approbation-inbox.mjs.map +1 -0
  11. package/fesm2022/lucca-front-ng-box.mjs +12 -12
  12. package/fesm2022/lucca-front-ng-box.mjs.map +1 -1
  13. package/fesm2022/lucca-front-ng-breadcrumbs.mjs +9 -9
  14. package/fesm2022/lucca-front-ng-breadcrumbs.mjs.map +1 -1
  15. package/fesm2022/lucca-front-ng-bubble-icon.mjs +4 -4
  16. package/fesm2022/lucca-front-ng-bubble-icon.mjs.map +1 -1
  17. package/fesm2022/lucca-front-ng-bubble-illustration.mjs +7 -6
  18. package/fesm2022/lucca-front-ng-bubble-illustration.mjs.map +1 -1
  19. package/fesm2022/lucca-front-ng-callout.mjs +38 -38
  20. package/fesm2022/lucca-front-ng-callout.mjs.map +1 -1
  21. package/fesm2022/lucca-front-ng-chip.mjs +10 -10
  22. package/fesm2022/lucca-front-ng-chip.mjs.map +1 -1
  23. package/fesm2022/lucca-front-ng-clear.mjs +7 -7
  24. package/fesm2022/lucca-front-ng-clear.mjs.map +1 -1
  25. package/fesm2022/lucca-front-ng-code.mjs +6 -5
  26. package/fesm2022/lucca-front-ng-code.mjs.map +1 -1
  27. package/fesm2022/lucca-front-ng-color.mjs +7 -6
  28. package/fesm2022/lucca-front-ng-color.mjs.map +1 -1
  29. package/fesm2022/lucca-front-ng-comment.mjs +18 -17
  30. package/fesm2022/lucca-front-ng-comment.mjs.map +1 -1
  31. package/fesm2022/lucca-front-ng-container.mjs +8 -7
  32. package/fesm2022/lucca-front-ng-container.mjs.map +1 -1
  33. package/fesm2022/lucca-front-ng-core-select-api.mjs +17 -40
  34. package/fesm2022/lucca-front-ng-core-select-api.mjs.map +1 -1
  35. package/fesm2022/lucca-front-ng-core-select-department.mjs +18 -20
  36. package/fesm2022/lucca-front-ng-core-select-department.mjs.map +1 -1
  37. package/fesm2022/lucca-front-ng-core-select-establishment.mjs +28 -16
  38. package/fesm2022/lucca-front-ng-core-select-establishment.mjs.map +1 -1
  39. package/fesm2022/lucca-front-ng-core-select-job-qualification.mjs +19 -9
  40. package/fesm2022/lucca-front-ng-core-select-job-qualification.mjs.map +1 -1
  41. package/fesm2022/lucca-front-ng-core-select-legal-units.mjs +34 -21
  42. package/fesm2022/lucca-front-ng-core-select-legal-units.mjs.map +1 -1
  43. package/fesm2022/lucca-front-ng-core-select-occupation-category.mjs +16 -6
  44. package/fesm2022/lucca-front-ng-core-select-occupation-category.mjs.map +1 -1
  45. package/fesm2022/lucca-front-ng-core-select-user.mjs +41 -36
  46. package/fesm2022/lucca-front-ng-core-select-user.mjs.map +1 -1
  47. package/fesm2022/lucca-front-ng-core-select.mjs +252 -114
  48. package/fesm2022/lucca-front-ng-core-select.mjs.map +1 -1
  49. package/fesm2022/lucca-front-ng-core.mjs +113 -38
  50. package/fesm2022/lucca-front-ng-core.mjs.map +1 -1
  51. package/fesm2022/lucca-front-ng-data-table.mjs +50 -50
  52. package/fesm2022/lucca-front-ng-data-table.mjs.map +1 -1
  53. package/fesm2022/lucca-front-ng-date.mjs +42 -43
  54. package/fesm2022/lucca-front-ng-date.mjs.map +1 -1
  55. package/fesm2022/lucca-front-ng-date2.mjs +50 -48
  56. package/fesm2022/lucca-front-ng-date2.mjs.map +1 -1
  57. package/fesm2022/lucca-front-ng-department.mjs +28 -27
  58. package/fesm2022/lucca-front-ng-department.mjs.map +1 -1
  59. package/fesm2022/lucca-front-ng-dialog.mjs +85 -59
  60. package/fesm2022/lucca-front-ng-dialog.mjs.map +1 -1
  61. package/fesm2022/lucca-front-ng-divider.mjs +9 -9
  62. package/fesm2022/lucca-front-ng-divider.mjs.map +1 -1
  63. package/fesm2022/lucca-front-ng-dropdown.mjs +46 -46
  64. package/fesm2022/lucca-front-ng-dropdown.mjs.map +1 -1
  65. package/fesm2022/lucca-front-ng-empty-state.mjs +56 -31
  66. package/fesm2022/lucca-front-ng-empty-state.mjs.map +1 -1
  67. package/fesm2022/lucca-front-ng-error-page.mjs +4 -4
  68. package/fesm2022/lucca-front-ng-error-page.mjs.map +1 -1
  69. package/fesm2022/lucca-front-ng-establishment.mjs +38 -37
  70. package/fesm2022/lucca-front-ng-establishment.mjs.map +1 -1
  71. package/fesm2022/lucca-front-ng-fancy-box.mjs +4 -4
  72. package/fesm2022/lucca-front-ng-fancy-box.mjs.map +1 -1
  73. package/fesm2022/lucca-front-ng-file-upload.mjs +86 -48
  74. package/fesm2022/lucca-front-ng-file-upload.mjs.map +1 -1
  75. package/fesm2022/lucca-front-ng-filter-pills.mjs +150 -27
  76. package/fesm2022/lucca-front-ng-filter-pills.mjs.map +1 -1
  77. package/fesm2022/lucca-front-ng-footer.mjs +10 -9
  78. package/fesm2022/lucca-front-ng-footer.mjs.map +1 -1
  79. package/fesm2022/lucca-front-ng-form-field.mjs +35 -36
  80. package/fesm2022/lucca-front-ng-form-field.mjs.map +1 -1
  81. package/fesm2022/lucca-front-ng-form-header.mjs +5 -5
  82. package/fesm2022/lucca-front-ng-form-header.mjs.map +1 -1
  83. package/fesm2022/lucca-front-ng-form-label.mjs +19 -52
  84. package/fesm2022/lucca-front-ng-form-label.mjs.map +1 -1
  85. package/fesm2022/lucca-front-ng-form.mjs +9 -8
  86. package/fesm2022/lucca-front-ng-form.mjs.map +1 -1
  87. package/fesm2022/lucca-front-ng-formly.mjs +64 -64
  88. package/fesm2022/lucca-front-ng-formly.mjs.map +1 -1
  89. package/fesm2022/lucca-front-ng-forms-phone-number-input.mjs +8 -8
  90. package/fesm2022/lucca-front-ng-forms-phone-number-input.mjs.map +1 -1
  91. package/fesm2022/lucca-front-ng-forms-rich-text-input-formatters-html.mjs +3 -3
  92. package/fesm2022/lucca-front-ng-forms-rich-text-input-formatters-markdown.mjs +6 -6
  93. package/fesm2022/lucca-front-ng-forms-rich-text-input-formatters-plain-text.mjs +3 -3
  94. package/fesm2022/lucca-front-ng-forms-rich-text-input.mjs +68 -55
  95. package/fesm2022/lucca-front-ng-forms-rich-text-input.mjs.map +1 -1
  96. package/fesm2022/lucca-front-ng-forms.mjs +127 -113
  97. package/fesm2022/lucca-front-ng-forms.mjs.map +1 -1
  98. package/fesm2022/lucca-front-ng-gauge.mjs +11 -11
  99. package/fesm2022/lucca-front-ng-gauge.mjs.map +1 -1
  100. package/fesm2022/lucca-front-ng-grid.mjs +18 -17
  101. package/fesm2022/lucca-front-ng-grid.mjs.map +1 -1
  102. package/fesm2022/lucca-front-ng-highlight-data.mjs +11 -18
  103. package/fesm2022/lucca-front-ng-highlight-data.mjs.map +1 -1
  104. package/fesm2022/lucca-front-ng-highlight-section.mjs +85 -0
  105. package/fesm2022/lucca-front-ng-highlight-section.mjs.map +1 -0
  106. package/fesm2022/lucca-front-ng-highlight-text.mjs +3 -3
  107. package/fesm2022/lucca-front-ng-horizontal-navigation.mjs +17 -17
  108. package/fesm2022/lucca-front-ng-horizontal-navigation.mjs.map +1 -1
  109. package/fesm2022/lucca-front-ng-impersonation.mjs +7 -7
  110. package/fesm2022/lucca-front-ng-impersonation.mjs.map +1 -1
  111. package/fesm2022/lucca-front-ng-index-table.mjs +50 -50
  112. package/fesm2022/lucca-front-ng-index-table.mjs.map +1 -1
  113. package/fesm2022/lucca-front-ng-inline-message.mjs +6 -6
  114. package/fesm2022/lucca-front-ng-inline-message.mjs.map +1 -1
  115. package/fesm2022/lucca-front-ng-input.mjs +22 -22
  116. package/fesm2022/lucca-front-ng-input.mjs.map +1 -1
  117. package/fesm2022/lucca-front-ng-link.mjs +24 -16
  118. package/fesm2022/lucca-front-ng-link.mjs.map +1 -1
  119. package/fesm2022/lucca-front-ng-listbox.mjs +67 -33
  120. package/fesm2022/lucca-front-ng-listbox.mjs.map +1 -1
  121. package/fesm2022/lucca-front-ng-listing.mjs +17 -16
  122. package/fesm2022/lucca-front-ng-listing.mjs.map +1 -1
  123. package/fesm2022/lucca-front-ng-loading.mjs +8 -8
  124. package/fesm2022/lucca-front-ng-loading.mjs.map +1 -1
  125. package/fesm2022/lucca-front-ng-main-layout.mjs +131 -15
  126. package/fesm2022/lucca-front-ng-main-layout.mjs.map +1 -1
  127. package/fesm2022/lucca-front-ng-mobile-push.mjs +3 -3
  128. package/fesm2022/lucca-front-ng-mobile-push.mjs.map +1 -1
  129. package/fesm2022/lucca-front-ng-modal.mjs +27 -27
  130. package/fesm2022/lucca-front-ng-modal.mjs.map +1 -1
  131. package/fesm2022/lucca-front-ng-multi-select.mjs +216 -135
  132. package/fesm2022/lucca-front-ng-multi-select.mjs.map +1 -1
  133. package/fesm2022/lucca-front-ng-new-badge.mjs +3 -3
  134. package/fesm2022/lucca-front-ng-number-format.mjs +6 -6
  135. package/fesm2022/lucca-front-ng-number.mjs +7 -7
  136. package/fesm2022/lucca-front-ng-numeric-badge.mjs +1 -84
  137. package/fesm2022/lucca-front-ng-numeric-badge.mjs.map +1 -1
  138. package/fesm2022/lucca-front-ng-option.mjs +145 -139
  139. package/fesm2022/lucca-front-ng-option.mjs.map +1 -1
  140. package/fesm2022/lucca-front-ng-page-header.mjs +8 -8
  141. package/fesm2022/lucca-front-ng-page-header.mjs.map +1 -1
  142. package/fesm2022/lucca-front-ng-pagination.mjs +13 -16
  143. package/fesm2022/lucca-front-ng-pagination.mjs.map +1 -1
  144. package/fesm2022/lucca-front-ng-plg-push.mjs +6 -6
  145. package/fesm2022/lucca-front-ng-plg-push.mjs.map +1 -1
  146. package/fesm2022/lucca-front-ng-popover.mjs +17 -17
  147. package/fesm2022/lucca-front-ng-popover2.mjs +15 -16
  148. package/fesm2022/lucca-front-ng-popover2.mjs.map +1 -1
  149. package/fesm2022/lucca-front-ng-popup.mjs +10 -10
  150. package/fesm2022/lucca-front-ng-progress-bar.mjs +8 -7
  151. package/fesm2022/lucca-front-ng-progress-bar.mjs.map +1 -1
  152. package/fesm2022/lucca-front-ng-progress-stepper.mjs +9 -9
  153. package/fesm2022/lucca-front-ng-progress-stepper.mjs.map +1 -1
  154. package/fesm2022/lucca-front-ng-read-more.mjs +17 -12
  155. package/fesm2022/lucca-front-ng-read-more.mjs.map +1 -1
  156. package/fesm2022/lucca-front-ng-resource-card.mjs +21 -20
  157. package/fesm2022/lucca-front-ng-resource-card.mjs.map +1 -1
  158. package/fesm2022/lucca-front-ng-safe-content.mjs +10 -10
  159. package/fesm2022/lucca-front-ng-scroll-box.mjs +6 -5
  160. package/fesm2022/lucca-front-ng-scroll-box.mjs.map +1 -1
  161. package/fesm2022/lucca-front-ng-scroll.mjs +9 -9
  162. package/fesm2022/lucca-front-ng-scroll.mjs.map +1 -1
  163. package/fesm2022/lucca-front-ng-segmented-control-tabs.mjs +12 -12
  164. package/fesm2022/lucca-front-ng-segmented-control-tabs.mjs.map +1 -1
  165. package/fesm2022/lucca-front-ng-segmented-control.mjs +17 -14
  166. package/fesm2022/lucca-front-ng-segmented-control.mjs.map +1 -1
  167. package/fesm2022/lucca-front-ng-select.mjs +22 -22
  168. package/fesm2022/lucca-front-ng-select.mjs.map +1 -1
  169. package/fesm2022/lucca-front-ng-sidepanel.mjs +7 -7
  170. package/fesm2022/lucca-front-ng-simple-select.mjs +53 -39
  171. package/fesm2022/lucca-front-ng-simple-select.mjs.map +1 -1
  172. package/fesm2022/lucca-front-ng-skeleton.mjs +1 -237
  173. package/fesm2022/lucca-front-ng-skeleton.mjs.map +1 -1
  174. package/fesm2022/lucca-front-ng-software-icon-wrapper.mjs +11 -11
  175. package/fesm2022/lucca-front-ng-software-icon-wrapper.mjs.map +1 -1
  176. package/fesm2022/lucca-front-ng-software-icon.mjs +8 -7
  177. package/fesm2022/lucca-front-ng-software-icon.mjs.map +1 -1
  178. package/fesm2022/lucca-front-ng-sortable-list.mjs +13 -13
  179. package/fesm2022/lucca-front-ng-sortable-list.mjs.map +1 -1
  180. package/fesm2022/lucca-front-ng-status-badge.mjs +6 -6
  181. package/fesm2022/lucca-front-ng-status-badge.mjs.map +1 -1
  182. package/fesm2022/lucca-front-ng-table-of-content.mjs +6 -6
  183. package/fesm2022/lucca-front-ng-tag.mjs +1 -72
  184. package/fesm2022/lucca-front-ng-tag.mjs.map +1 -1
  185. package/fesm2022/lucca-front-ng-text-flow.mjs +4 -4
  186. package/fesm2022/lucca-front-ng-text-flow.mjs.map +1 -1
  187. package/fesm2022/lucca-front-ng-time.mjs +46 -47
  188. package/fesm2022/lucca-front-ng-time.mjs.map +1 -1
  189. package/fesm2022/lucca-front-ng-title.mjs +24 -14
  190. package/fesm2022/lucca-front-ng-title.mjs.map +1 -1
  191. package/fesm2022/lucca-front-ng-toast.mjs +13 -14
  192. package/fesm2022/lucca-front-ng-toast.mjs.map +1 -1
  193. package/fesm2022/lucca-front-ng-tooltip.mjs +1 -556
  194. package/fesm2022/lucca-front-ng-tooltip.mjs.map +1 -1
  195. package/fesm2022/lucca-front-ng-tree-select.mjs +58 -42
  196. package/fesm2022/lucca-front-ng-tree-select.mjs.map +1 -1
  197. package/fesm2022/lucca-front-ng-user-popover.mjs +22 -19
  198. package/fesm2022/lucca-front-ng-user-popover.mjs.map +1 -1
  199. package/fesm2022/lucca-front-ng-user.mjs +75 -73
  200. package/fesm2022/lucca-front-ng-user.mjs.map +1 -1
  201. package/fesm2022/lucca-front-ng-vertical-navigation.mjs +21 -22
  202. package/fesm2022/lucca-front-ng-vertical-navigation.mjs.map +1 -1
  203. package/package.json +12 -4
  204. package/schematics/action-icon/migration.spec.js +2 -2
  205. package/schematics/alignment-utilities/migration.spec.js +2 -2
  206. package/schematics/cdn-urls/migration.spec.js +2 -2
  207. package/schematics/class-prefix/migration.spec.js +2 -2
  208. package/schematics/color-text/migration.spec.js +2 -2
  209. package/schematics/component-path/migration.spec.js +2 -2
  210. package/schematics/deprecated-resolver/migration.spec.js +1 -1
  211. package/schematics/empty-state-title/migration.spec.js +1 -1
  212. package/schematics/lib/migration-test.js +6 -1
  213. package/schematics/lu-button/migration.spec.js +1 -1
  214. package/schematics/lu-container/migration.spec.js +1 -1
  215. package/schematics/lu-grid/migration.js +24 -16
  216. package/schematics/lu-grid/migration.spec.js +1 -1
  217. package/schematics/lu-icon/migration.spec.js +1 -1
  218. package/schematics/lu-loading/migration.spec.js +1 -1
  219. package/schematics/lu-select/migration.spec.js +1 -1
  220. package/schematics/lu-text-input/migration.spec.js +1 -1
  221. package/schematics/new-icons/migration.spec.js +2 -2
  222. package/schematics/palettes/index.js +28 -8
  223. package/schematics/palettes/migration.spec.js +2 -2
  224. package/schematics/tokens-radius/migration.spec.js +2 -2
  225. package/schematics/tokens-spacing/migration.spec.js +2 -2
  226. package/schematics/tokens-typo/migration.spec.js +2 -2
  227. package/src/_components.scss +1 -0
  228. package/src/components/_listbox.scss +8 -0
  229. package/src/components/_picker.scss +0 -34
  230. package/src/components/_popover.scss +1 -1
  231. package/src/components/_popup.scss +6 -6
  232. package/src/components/_sidepanel.scss +1 -1
  233. package/src/definitions/option/_option-item.scss +1 -8
  234. package/title/README.md +22 -7
  235. package/types/lucca-front-ng-app-layout.d.ts +1 -1
  236. package/types/lucca-front-ng-approbation-inbox.d.ts +142 -0
  237. package/types/lucca-front-ng-box.d.ts +4 -4
  238. package/types/lucca-front-ng-breadcrumbs.d.ts +1 -1
  239. package/types/lucca-front-ng-bubble-icon.d.ts +1 -1
  240. package/types/lucca-front-ng-bubble-illustration.d.ts +1 -1
  241. package/types/lucca-front-ng-callout.d.ts +9 -9
  242. package/types/lucca-front-ng-chip.d.ts +3 -3
  243. package/types/lucca-front-ng-clear.d.ts +2 -2
  244. package/types/lucca-front-ng-code.d.ts +1 -1
  245. package/types/lucca-front-ng-color.d.ts +1 -1
  246. package/types/lucca-front-ng-comment.d.ts +6 -5
  247. package/types/lucca-front-ng-container.d.ts +2 -2
  248. package/types/lucca-front-ng-core-select-api.d.ts +10 -4
  249. package/types/lucca-front-ng-core-select-department.d.ts +2 -2
  250. package/types/lucca-front-ng-core-select-establishment.d.ts +3 -1
  251. package/types/lucca-front-ng-core-select-job-qualification.d.ts +2 -0
  252. package/types/lucca-front-ng-core-select-legal-units.d.ts +3 -1
  253. package/types/lucca-front-ng-core-select-occupation-category.d.ts +2 -0
  254. package/types/lucca-front-ng-core-select-user.d.ts +4 -3
  255. package/types/lucca-front-ng-core-select.d.ts +82 -16
  256. package/types/lucca-front-ng-core.d.ts +77 -3
  257. package/types/lucca-front-ng-data-table.d.ts +14 -14
  258. package/types/lucca-front-ng-date.d.ts +1 -1
  259. package/types/lucca-front-ng-date2.d.ts +19 -19
  260. package/types/lucca-front-ng-department.d.ts +2 -2
  261. package/types/lucca-front-ng-dialog.d.ts +7 -6
  262. package/types/lucca-front-ng-divider.d.ts +3 -3
  263. package/types/lucca-front-ng-dropdown.d.ts +2 -2
  264. package/types/lucca-front-ng-empty-state.d.ts +15 -6
  265. package/types/lucca-front-ng-establishment.d.ts +2 -2
  266. package/types/lucca-front-ng-file-upload.d.ts +22 -11
  267. package/types/lucca-front-ng-filter-pills.d.ts +43 -3
  268. package/types/lucca-front-ng-footer.d.ts +4 -4
  269. package/types/lucca-front-ng-form-field.d.ts +10 -10
  270. package/types/lucca-front-ng-form-header.d.ts +1 -1
  271. package/types/lucca-front-ng-form-label.d.ts +5 -9
  272. package/types/lucca-front-ng-form.d.ts +2 -2
  273. package/types/lucca-front-ng-forms-phone-number-input.d.ts +5 -5
  274. package/types/lucca-front-ng-forms-rich-text-input.d.ts +9 -5
  275. package/types/lucca-front-ng-forms.d.ts +50 -37
  276. package/types/lucca-front-ng-gauge.d.ts +6 -6
  277. package/types/lucca-front-ng-grid.d.ts +8 -8
  278. package/types/lucca-front-ng-highlight-data.d.ts +3 -5
  279. package/types/lucca-front-ng-highlight-section.d.ts +44 -0
  280. package/types/lucca-front-ng-horizontal-navigation.d.ts +4 -4
  281. package/types/lucca-front-ng-impersonation.d.ts +1 -1
  282. package/types/lucca-front-ng-index-table.d.ts +12 -12
  283. package/types/lucca-front-ng-inline-message.d.ts +1 -1
  284. package/types/lucca-front-ng-link.d.ts +4 -4
  285. package/types/lucca-front-ng-listbox.d.ts +33 -13
  286. package/types/lucca-front-ng-listing.d.ts +9 -9
  287. package/types/lucca-front-ng-loading.d.ts +3 -3
  288. package/types/lucca-front-ng-main-layout.d.ts +40 -9
  289. package/types/lucca-front-ng-modal.d.ts +1 -1
  290. package/types/lucca-front-ng-multi-select.d.ts +33 -7
  291. package/types/lucca-front-ng-numeric-badge.d.ts +1 -46
  292. package/types/lucca-front-ng-option.d.ts +2 -0
  293. package/types/lucca-front-ng-page-header.d.ts +2 -2
  294. package/types/lucca-front-ng-pagination.d.ts +5 -5
  295. package/types/lucca-front-ng-plg-push.d.ts +1 -1
  296. package/types/lucca-front-ng-popover2.d.ts +14 -14
  297. package/types/lucca-front-ng-progress-bar.d.ts +2 -2
  298. package/types/lucca-front-ng-progress-stepper.d.ts +1 -1
  299. package/types/lucca-front-ng-read-more.d.ts +9 -4
  300. package/types/lucca-front-ng-resource-card.d.ts +6 -6
  301. package/types/lucca-front-ng-scroll-box.d.ts +1 -1
  302. package/types/lucca-front-ng-scroll.d.ts +1 -1
  303. package/types/lucca-front-ng-segmented-control-tabs.d.ts +2 -2
  304. package/types/lucca-front-ng-segmented-control.d.ts +5 -3
  305. package/types/lucca-front-ng-select.d.ts +2 -1
  306. package/types/lucca-front-ng-simple-select.d.ts +6 -5
  307. package/types/lucca-front-ng-skeleton.d.ts +1 -158
  308. package/types/lucca-front-ng-software-icon-wrapper.d.ts +3 -3
  309. package/types/lucca-front-ng-software-icon.d.ts +2 -2
  310. package/types/lucca-front-ng-sortable-list.d.ts +5 -5
  311. package/types/lucca-front-ng-status-badge.d.ts +1 -1
  312. package/types/lucca-front-ng-tag.d.ts +1 -53
  313. package/types/lucca-front-ng-time.d.ts +17 -17
  314. package/types/lucca-front-ng-title.d.ts +4 -4
  315. package/types/lucca-front-ng-toast.d.ts +1 -1
  316. package/types/lucca-front-ng-tooltip.d.ts +1 -80
  317. package/types/lucca-front-ng-tree-select.d.ts +3 -4
  318. package/types/lucca-front-ng-user.d.ts +8 -6
  319. package/types/lucca-front-ng-vertical-navigation.d.ts +4 -4
@@ -1,561 +1,6 @@
1
- import { trigger, state, style, transition, animate } from '@angular/animations';
2
- import * as i0 from '@angular/core';
3
- import { inject, DestroyRef, signal, ChangeDetectionStrategy, Component, Injectable, ElementRef, Renderer2, Injector, input, linkedSignal, numberAttribute, booleanAttribute, computed, effect, afterRenderEffect, Directive, NgModule } from '@angular/core';
4
- import { Subject, timer, startWith } from 'rxjs';
5
- import { Overlay, OverlayModule } from '@angular/cdk/overlay';
6
- import { ComponentPortal } from '@angular/cdk/portal';
7
- import { DOCUMENT } from '@angular/common';
8
- import { toObservable, takeUntilDestroyed } from '@angular/core/rxjs-interop';
9
- import { isNotNil, ɵeffectWithDeps as _effectWithDeps, getPushPanelViewportMargin, isNil } from '@lucca-front/ng/core';
10
- import { filter, debounce, tap, map } from 'rxjs/operators';
11
-
12
- const luTransformTooltip = trigger('transformTooltip', [
13
- state('enter', style({
14
- opacity: 1,
15
- transform: `scale(1)`,
16
- })),
17
- transition('void => *', [
18
- style({
19
- opacity: 0,
20
- transform: `scale(0)`,
21
- }),
22
- animate(`150ms cubic-bezier(0.25, 0.8, 0.25, 1)`),
23
- ]),
24
- transition('* => void', [animate('50ms 100ms linear', style({ opacity: 0 }))]),
25
- ]);
26
-
27
- class LuTooltipPanelComponent {
28
- constructor() {
29
- this.destroyRef = inject(DestroyRef);
30
- this.mouseEnter$ = new Subject();
31
- this.mouseLeave$ = new Subject();
32
- this.content = signal(null, /* @ts-ignore */
33
- ...(ngDevMode ? [{ debugName: "content" }] : /* istanbul ignore next */ []));
34
- this.contentPositionClasses = signal({}, /* @ts-ignore */
35
- ...(ngDevMode ? [{ debugName: "contentPositionClasses" }] : /* istanbul ignore next */ []));
36
- }
37
- setPanelPosition(posX, posY) {
38
- this.contentPositionClasses.set({
39
- 'is-before': posX === 'end',
40
- 'is-after': posX === 'start',
41
- 'is-above': posY === 'bottom',
42
- 'is-below': posY === 'top',
43
- });
44
- }
45
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: LuTooltipPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
46
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.7", type: LuTooltipPanelComponent, isStandalone: true, selector: "lu-tooltip-panel", host: { attributes: { "role": "tooltip" }, listeners: { "mouseenter": "mouseEnter$.next()", "mouseleave": "mouseLeave$.next()" } }, ngImport: i0, template: "@if (content(); as content) {\n\t<div class=\"tooltip\" [class]=\"contentPositionClasses()\" [innerHtml]=\"content\"></div>\n}\n", styles: ["@layer components{.tooltip{--components-tooltip-background-color: var(--palettes-neutral-900);--components-tooltip-color: var(--pr-t-color-text-reverse);--components-tooltip-max-width: 15rem;--components-tooltip-transformOrigin: center;--components-tooltip-margin: 0;background-color:var(--components-tooltip-background-color);color:var(--components-tooltip-color);padding-block:var(--pr-t-spacings-50);padding-inline:var(--pr-t-spacings-100);max-inline-size:var(--components-tooltip-max-width);border-radius:var(--pr-t-border-radius-default);font:var(--pr-t-font-body-XS);transform-origin:var(--components-tooltip-transformOrigin);margin:var(--components-tooltip-margin);text-align:center;inline-size:fit-content;animation-name:scaleIn;animation-duration:var(--commons-animations-durations-fast);animation-iteration-count:1;overflow-wrap:break-word}@keyframes scaleIn{0%{transform:scale(0)}to{transform:scale(1)}}.tooltip:empty{display:none}@supports (background-image: -webkit-named-image(i)){@media(hover:hover){[luTooltipWhenEllipsis]:after{content:\"\";display:block}}}}@layer mods{.tooltip.is-above{--components-tooltip-transformOrigin: bottom center}.tooltip.is-below{--components-tooltip-transformOrigin: top center}.tooltip.is-before{--components-tooltip-transformOrigin: center right}.tooltip.is-before.is-above{--components-tooltip-transformOrigin: bottom right}.tooltip.is-before.is-below{--components-tooltip-transformOrigin: top right}.tooltip.is-after{--components-tooltip-transformOrigin: center left}.tooltip.is-after.is-above{--components-tooltip-transformOrigin: bottom left}.tooltip.is-after.is-below{--components-tooltip-transformOrigin: top left}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
47
- }
48
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: LuTooltipPanelComponent, decorators: [{
49
- type: Component,
50
- args: [{ selector: 'lu-tooltip-panel', host: {
51
- role: 'tooltip',
52
- '(mouseenter)': 'mouseEnter$.next()',
53
- '(mouseleave)': 'mouseLeave$.next()',
54
- }, changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (content(); as content) {\n\t<div class=\"tooltip\" [class]=\"contentPositionClasses()\" [innerHtml]=\"content\"></div>\n}\n", styles: ["@layer components{.tooltip{--components-tooltip-background-color: var(--palettes-neutral-900);--components-tooltip-color: var(--pr-t-color-text-reverse);--components-tooltip-max-width: 15rem;--components-tooltip-transformOrigin: center;--components-tooltip-margin: 0;background-color:var(--components-tooltip-background-color);color:var(--components-tooltip-color);padding-block:var(--pr-t-spacings-50);padding-inline:var(--pr-t-spacings-100);max-inline-size:var(--components-tooltip-max-width);border-radius:var(--pr-t-border-radius-default);font:var(--pr-t-font-body-XS);transform-origin:var(--components-tooltip-transformOrigin);margin:var(--components-tooltip-margin);text-align:center;inline-size:fit-content;animation-name:scaleIn;animation-duration:var(--commons-animations-durations-fast);animation-iteration-count:1;overflow-wrap:break-word}@keyframes scaleIn{0%{transform:scale(0)}to{transform:scale(1)}}.tooltip:empty{display:none}@supports (background-image: -webkit-named-image(i)){@media(hover:hover){[luTooltipWhenEllipsis]:after{content:\"\";display:block}}}}@layer mods{.tooltip.is-above{--components-tooltip-transformOrigin: bottom center}.tooltip.is-below{--components-tooltip-transformOrigin: top center}.tooltip.is-before{--components-tooltip-transformOrigin: center right}.tooltip.is-before.is-above{--components-tooltip-transformOrigin: bottom right}.tooltip.is-before.is-below{--components-tooltip-transformOrigin: top right}.tooltip.is-after{--components-tooltip-transformOrigin: center left}.tooltip.is-after.is-above{--components-tooltip-transformOrigin: bottom left}.tooltip.is-after.is-below{--components-tooltip-transformOrigin: top left}}\n"] }]
55
- }] });
56
-
57
- /**
58
- * Single, shared IntersectionObserver used by every tooltip to defer its first ellipsis
59
- * measurement until the host element is near the viewport.
60
- *
61
- * One observer for the whole page is far cheaper than one IntersectionObserver per tooltip when
62
- * many tooltips are created at once (e.g. a large table being (re)rendered): the browser then
63
- * delivers a single batched callback instead of one per element.
64
- */
65
- class TooltipVisibilityObserver {
66
- #observer;
67
- #callbacks = new WeakMap();
68
- /** Calls `onVisible` once — the first time `element` comes near the viewport — then stops observing it. */
69
- observeOnce(element, onVisible) {
70
- this.#callbacks.set(element, onVisible);
71
- this.#getObserver().observe(element);
72
- }
73
- unobserve(element) {
74
- this.#callbacks.delete(element);
75
- this.#observer?.unobserve(element);
76
- }
77
- // Created lazily so the observer is only instantiated in the browser, on first use.
78
- #getObserver() {
79
- return (this.#observer ??= new IntersectionObserver((entries) => {
80
- for (const entry of entries) {
81
- if (!entry.isIntersecting) {
82
- continue;
83
- }
84
- const onVisible = this.#callbacks.get(entry.target);
85
- this.unobserve(entry.target);
86
- onVisible?.();
87
- }
88
- }, { rootMargin: '100px' }));
89
- }
90
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: TooltipVisibilityObserver, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
91
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: TooltipVisibilityObserver, providedIn: 'root' }); }
92
- }
93
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: TooltipVisibilityObserver, decorators: [{
94
- type: Injectable,
95
- args: [{ providedIn: 'root' }]
96
- }] });
97
-
98
- let nextId = 0;
99
- class LuTooltipTriggerDirective {
100
- #overlay;
101
- #host;
102
- #renderer;
103
- #document;
104
- #injector;
105
- #destroyRef;
106
- #visibilityObserver;
107
- // 0 until the element first appears; bumped for the initial measurement and on every real
108
- // size/content change. Scrolling in and out of view does NOT bump it (see #armMeasurementObservers).
109
- #measureTrigger;
110
- // guards the one-time setup of the persistent resize/mutation observers
111
- #measurementObserversArmed;
112
- // the IntersectionObserver callback can fire after the view is destroyed; avoid touching
113
- // the destroyed injector (NG0911) when that happens
114
- #destroyed;
115
- // written only from the `read` phase of the afterRenderEffect below
116
- #hasEllipsis;
117
- // reusable hidden clone, one per directive, used to measure the unconstrained width
118
- #clone;
119
- #action;
120
- #realAction;
121
- #effectRef;
122
- constructor() {
123
- this.#overlay = inject(Overlay);
124
- this.#host = inject(ElementRef);
125
- this.#renderer = inject(Renderer2);
126
- this.#document = inject(DOCUMENT);
127
- this.#injector = inject(Injector);
128
- this.#destroyRef = inject(DestroyRef);
129
- this.#visibilityObserver = inject(TooltipVisibilityObserver);
130
- this.luTooltipInput = input('', { ...(ngDevMode ? { debugName: "luTooltipInput" } : /* istanbul ignore next */ {}), alias: 'luTooltip' });
131
- this.luTooltip = linkedSignal(() => this.luTooltipInput(), /* @ts-ignore */
132
- ...(ngDevMode ? [{ debugName: "luTooltip" }] : /* istanbul ignore next */ []));
133
- this.luTooltipEnterDelay = input(300, { ...(ngDevMode ? { debugName: "luTooltipEnterDelay" } : /* istanbul ignore next */ {}), transform: numberAttribute });
134
- this.luTooltipLeaveDelay = input(100, { ...(ngDevMode ? { debugName: "luTooltipLeaveDelay" } : /* istanbul ignore next */ {}), transform: numberAttribute });
135
- this.luTooltipDisabled = input(false, { ...(ngDevMode ? { debugName: "luTooltipDisabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
136
- this.luTooltipOnlyForDisplay = input(false, { ...(ngDevMode ? { debugName: "luTooltipOnlyForDisplay" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
137
- this.luTooltipPosition = input('above', /* @ts-ignore */
138
- ...(ngDevMode ? [{ debugName: "luTooltipPosition" }] : /* istanbul ignore next */ []));
139
- this.luTooltipWhenEllipsisInput = input(false, { ...(ngDevMode ? { debugName: "luTooltipWhenEllipsisInput" } : /* istanbul ignore next */ {}), alias: 'luTooltipWhenEllipsis', transform: booleanAttribute });
140
- this.luTooltipWhenEllipsis = linkedSignal(() => this.luTooltipWhenEllipsisInput(), /* @ts-ignore */
141
- ...(ngDevMode ? [{ debugName: "luTooltipWhenEllipsis" }] : /* istanbul ignore next */ []));
142
- this.luTooltipAnchor = input(this.#host, /* @ts-ignore */
143
- ...(ngDevMode ? [{ debugName: "luTooltipAnchor" }] : /* istanbul ignore next */ []));
144
- this.id = input(`${this.#host.nativeElement.tagName.toLowerCase()}-tooltip-${nextId++}`, /* @ts-ignore */
145
- ...(ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []));
146
- this.ariaDescribedBy = computed(() => {
147
- if (this.luTooltipDisabled() || this.luTooltipWhenEllipsis() || this.luTooltipOnlyForDisplay()) {
148
- return null;
149
- }
150
- return `${this.id()}-panel`;
151
- }, /* @ts-ignore */
152
- ...(ngDevMode ? [{ debugName: "ariaDescribedBy" }] : /* istanbul ignore next */ []));
153
- // 0 until the element first appears; bumped for the initial measurement and on every real
154
- // size/content change. Scrolling in and out of view does NOT bump it (see #armMeasurementObservers).
155
- this.#measureTrigger = signal(0, /* @ts-ignore */
156
- ...(ngDevMode ? [{ debugName: "#measureTrigger" }] : /* istanbul ignore next */ []));
157
- // guards the one-time setup of the persistent resize/mutation observers
158
- this.#measurementObserversArmed = false;
159
- // the IntersectionObserver callback can fire after the view is destroyed; avoid touching
160
- // the destroyed injector (NG0911) when that happens
161
- this.#destroyed = false;
162
- // written only from the `read` phase of the afterRenderEffect below
163
- this.#hasEllipsis = signal(false, /* @ts-ignore */
164
- ...(ngDevMode ? [{ debugName: "#hasEllipsis" }] : /* istanbul ignore next */ []));
165
- this.#action = signal(null, /* @ts-ignore */
166
- ...(ngDevMode ? [{ debugName: "#action" }] : /* istanbul ignore next */ []));
167
- this.#realAction = linkedSignal({ ...(ngDevMode ? { debugName: "#realAction" } : /* istanbul ignore next */ {}), source: this.#action,
168
- computation: (action, previous) => {
169
- if (!action || action === 'close') {
170
- return action;
171
- }
172
- // We only filter open events because even if it's disabled while opened,
173
- // we want the tooltip to be able to close itself no matter what
174
- if (this.luTooltipDisabled()) {
175
- return previous?.value ?? null;
176
- }
177
- if (this.luTooltipWhenEllipsis()) {
178
- return this.#hasEllipsis() ? 'open' : (previous?.value ?? null);
179
- }
180
- return 'open';
181
- } });
182
- this.#destroyRef.onDestroy(() => (this.#destroyed = true));
183
- // Action debounce pipeline — kept as Observable since signals can't debounce
184
- toObservable(this.#realAction)
185
- .pipe(filter(isNotNil), debounce((action) => timer(action === 'open' ? this.luTooltipEnterDelay() : this.luTooltipLeaveDelay())), tap((event) => {
186
- if (event === 'open') {
187
- this.openTooltip();
188
- }
189
- else {
190
- this.closeTooltip();
191
- }
192
- }), takeUntilDestroyed())
193
- .subscribe();
194
- effect(() => {
195
- if (!this.luTooltipDisabled() && (!this.luTooltipWhenEllipsis() || this.#hasEllipsis())) {
196
- this.setAccessibilityProperties(0);
197
- }
198
- else {
199
- this.setAccessibilityProperties(null);
200
- }
201
- });
202
- // Defer the first measurement until the element is near the viewport, then stop tracking
203
- // visibility: scrolling must not re-measure, so we arm the resize/mutation observers once.
204
- // A single shared IntersectionObserver handles every tooltip (see TooltipVisibilityObserver).
205
- effect((onCleanup) => {
206
- if (!this.luTooltipWhenEllipsis() || this.luTooltipDisabled() || this.#measurementObserversArmed) {
207
- return;
208
- }
209
- const el = this.#host.nativeElement;
210
- this.#visibilityObserver.observeOnce(el, () => this.#armMeasurementObservers());
211
- onCleanup(() => this.#visibilityObserver.unobserve(el));
212
- });
213
- // Ellipsis measurement, split across afterRenderEffect phases so that — across every tooltip
214
- // on the page — all DOM writes happen together, then all geometry reads happen together.
215
- // This keeps the whole batch to a single forced reflow instead of one reflow per element.
216
- afterRenderEffect({
217
- earlyRead: () => {
218
- // reading the trigger registers the dependency; 0 means "not measured yet"
219
- const measured = this.#measureTrigger() > 0;
220
- const shouldMeasure = measured && !this.luTooltipDisabled() && this.luTooltipWhenEllipsis();
221
- if (!shouldMeasure) {
222
- return { measure: false };
223
- }
224
- const host = this.#host.nativeElement;
225
- const hostStyle = getComputedStyle(host);
226
- if (hostStyle.textOverflow !== 'ellipsis') {
227
- return { measure: false };
228
- }
229
- return { measure: true, host, hostStyle };
230
- },
231
- write: (earlyReadResult) => {
232
- const snapshot = earlyReadResult();
233
- if (!snapshot.measure) {
234
- return { measure: false };
235
- }
236
- const clone = (this.#clone ??= this.#createClone());
237
- this.#applyClonedStyles(clone, snapshot.hostStyle);
238
- clone.innerHTML = snapshot.host.innerHTML;
239
- return { measure: true, host: snapshot.host, clone };
240
- },
241
- read: (writeResult) => {
242
- const measurement = writeResult();
243
- if (!measurement.measure) {
244
- this.#hasEllipsis.set(false);
245
- return;
246
- }
247
- const cloneWidth = measurement.clone.getBoundingClientRect().width;
248
- const hostWidth = measurement.host.getBoundingClientRect().width;
249
- // rounded to 3 decimals to ignore sub-pixel noise
250
- this.#hasEllipsis.set(Math.round(cloneWidth * 1000) > Math.round(hostWidth * 1000));
251
- },
252
- });
253
- this.#destroyRef.onDestroy(() => this.#clone?.remove());
254
- }
255
- // Set up — once — the observers that ask for a re-measurement on real size/content changes.
256
- // They stay connected for the directive lifetime (even off-screen), so scrolling never
257
- // re-measures; only an actual resize/mutation does.
258
- #armMeasurementObservers() {
259
- if (this.#measurementObserversArmed || this.#destroyed) {
260
- return;
261
- }
262
- this.#measurementObserversArmed = true;
263
- const el = this.#host.nativeElement;
264
- const bump = () => this.#measureTrigger.update((v) => v + 1);
265
- const resizeObserver = new ResizeObserver(() => bump());
266
- resizeObserver.observe(el);
267
- const mutationObserver = new MutationObserver(() => bump());
268
- mutationObserver.observe(el, { characterData: true, subtree: true, childList: true });
269
- this.#destroyRef.onDestroy(() => {
270
- resizeObserver.disconnect();
271
- mutationObserver.disconnect();
272
- });
273
- // initial measurement now that the element has appeared
274
- bump();
275
- }
276
- #createClone() {
277
- const clone = this.#document.createElement('div');
278
- clone.setAttribute('aria-hidden', 'true');
279
- Object.assign(clone.style, {
280
- inlineSize: 'fit-content',
281
- whiteSpace: 'nowrap',
282
- // `fixed` + pinned origin keeps the (potentially very wide) clone out of the
283
- // document's scrollable overflow, so measuring never flashes a scrollbar.
284
- position: 'fixed',
285
- insetBlockStart: '0',
286
- insetInlineStart: '0',
287
- visibility: 'hidden',
288
- pointerEvents: 'none',
289
- contain: 'layout',
290
- });
291
- this.#document.body.appendChild(clone);
292
- return clone;
293
- }
294
- #applyClonedStyles(clone, hostStyle) {
295
- const { padding, borderWidth, borderStyle, boxSizing, fontFamily, fontWeight, fontStyle, fontSize } = hostStyle;
296
- Object.assign(clone.style, { padding, borderWidth, borderStyle, boxSizing, fontFamily, fontWeight, fontStyle, fontSize });
297
- }
298
- onMouseEnter() {
299
- this.#action.set('open');
300
- }
301
- onMouseLeave() {
302
- this.#action.set('close');
303
- }
304
- onFocus() {
305
- if (this.#host.nativeElement.getAttribute('aria-expanded') !== 'true') {
306
- this.#action.set('open');
307
- }
308
- }
309
- onBlur() {
310
- this.#action.set('close');
311
- }
312
- onEscape(event) {
313
- event.stopPropagation();
314
- this.#action.set(null);
315
- this.closeTooltip();
316
- }
317
- requestOpen() {
318
- this.#action.set('open');
319
- }
320
- requestClose() {
321
- this.#action.set('close');
322
- }
323
- ngOnDestroy() {
324
- this.closeTooltip();
325
- if (this.overlayRef) {
326
- this.overlayRef.dispose();
327
- delete this.overlayRef;
328
- }
329
- }
330
- prepareOverlay() {
331
- if (this.overlayRef) {
332
- return;
333
- }
334
- this.overlayRef = this.#overlay.create({
335
- scrollStrategy: this.#overlay.scrollStrategies.close(),
336
- disposeOnNavigation: true,
337
- });
338
- const describedBy = this.ariaDescribedBy();
339
- if (describedBy !== null) {
340
- this.overlayRef.overlayElement.id = describedBy;
341
- }
342
- }
343
- openTooltip() {
344
- if (this.overlayRef?.hasAttached()) {
345
- return;
346
- }
347
- const position = this.legacyPositionBuilder();
348
- if (!this.overlayRef) {
349
- this.overlayRef = this.#overlay.create({
350
- positionStrategy: position,
351
- scrollStrategy: this.#overlay.scrollStrategies.close(),
352
- disposeOnNavigation: true,
353
- });
354
- }
355
- else {
356
- this.overlayRef.updatePositionStrategy(position);
357
- }
358
- const portal = new ComponentPortal(LuTooltipPanelComponent);
359
- const ref = this.overlayRef.attach(portal);
360
- position.positionChanges
361
- .pipe(takeUntilDestroyed(this.#destroyRef), map(({ connectionPair }) => connectionPair), startWith(position.positions[0]))
362
- .subscribe(({ overlayX, overlayY }) => {
363
- ref.instance.setPanelPosition(overlayX, overlayY);
364
- });
365
- if (this.luTooltip()) {
366
- this.#effectRef = _effectWithDeps([this.luTooltip], (luTooltip) => {
367
- ref.instance.content.set(luTooltip);
368
- }, { injector: this.#injector });
369
- }
370
- else if (this.luTooltipWhenEllipsis()) {
371
- ref.instance.content.set(this.#host.nativeElement.innerText);
372
- }
373
- else {
374
- ref.instance.content.set('');
375
- }
376
- ref.instance.mouseLeave$.pipe(takeUntilDestroyed(ref.instance.destroyRef)).subscribe(() => this.#action.set('close'));
377
- ref.instance.mouseEnter$.pipe(takeUntilDestroyed(ref.instance.destroyRef)).subscribe(() => this.#action.set('open'));
378
- }
379
- closeTooltip() {
380
- if (this.overlayRef) {
381
- this.overlayRef.detach();
382
- }
383
- this.#effectRef?.destroy();
384
- }
385
- setAccessibilityProperties(tabindex) {
386
- if (tabindex === null) {
387
- this.#renderer.removeAttribute(this.#host.nativeElement, 'tabindex');
388
- return;
389
- }
390
- if (!this.luTooltipWhenEllipsis() && !this.luTooltipOnlyForDisplay()) {
391
- this.prepareOverlay();
392
- }
393
- const tag = this.#host.nativeElement.tagName.toLowerCase();
394
- const nativelyFocusableTags = ['a', 'button', 'input', 'select', 'textarea'];
395
- const isNativelyFocusableTag = nativelyFocusableTags.includes(tag);
396
- const hasATabIndex = this.#host.nativeElement.getAttribute('tabindex') !== null;
397
- if (!isNativelyFocusableTag && !hasATabIndex) {
398
- this.#renderer.setAttribute(this.#host.nativeElement, 'tabindex', tabindex.toString());
399
- }
400
- if (!isNativelyFocusableTag && !this.luTooltipWhenEllipsis() && !this.luTooltipOnlyForDisplay()) {
401
- this.#renderer.setAttribute(this.#host.nativeElement, 'role', 'button');
402
- }
403
- }
404
- // Legacy position builder to handle existing position API
405
- legacyPositionBuilder() {
406
- const connectionPosition = {
407
- originX: 'start',
408
- originY: 'top',
409
- };
410
- // Position
411
- const position = this.luTooltipPosition();
412
- if (position === 'above') {
413
- connectionPosition.originY = 'top';
414
- }
415
- else if (position === 'below') {
416
- connectionPosition.originY = 'bottom';
417
- }
418
- else if (position === 'before') {
419
- connectionPosition.originX = 'start';
420
- }
421
- else if (position === 'after') {
422
- connectionPosition.originX = 'end';
423
- }
424
- // Alignment
425
- if (position === 'above' || position === 'below') {
426
- connectionPosition.originX = 'center';
427
- }
428
- else {
429
- connectionPosition.originY = 'center';
430
- }
431
- const overlayPosition = {
432
- overlayX: 'start',
433
- overlayY: 'top',
434
- };
435
- if (position === 'above' || position === 'below') {
436
- overlayPosition.overlayX = connectionPosition.originX;
437
- overlayPosition.overlayY = position === 'above' ? 'bottom' : 'top';
438
- }
439
- else {
440
- overlayPosition.overlayX = position === 'before' ? 'end' : 'start';
441
- overlayPosition.overlayY = connectionPosition.originY;
442
- }
443
- return this.#overlay
444
- .position()
445
- .flexibleConnectedTo(this.#resolveAnchor())
446
- .withViewportMargin(getPushPanelViewportMargin(this.#host.nativeElement))
447
- .withPositions([
448
- {
449
- originX: connectionPosition.originX,
450
- originY: connectionPosition.originY,
451
- overlayX: overlayPosition.overlayX,
452
- overlayY: overlayPosition.overlayY,
453
- },
454
- {
455
- originX: connectionPosition.originX,
456
- originY: this.invertVerticalPos(connectionPosition.originY),
457
- overlayX: overlayPosition.overlayX,
458
- overlayY: this.invertVerticalPos(overlayPosition.overlayY),
459
- },
460
- {
461
- originX: this.invertHorizontalPos(connectionPosition.originX),
462
- originY: connectionPosition.originY,
463
- overlayX: this.invertHorizontalPos(overlayPosition.overlayX),
464
- overlayY: overlayPosition.overlayY,
465
- },
466
- {
467
- originX: this.invertHorizontalPos(connectionPosition.originX),
468
- originY: this.invertVerticalPos(connectionPosition.originY),
469
- overlayX: this.invertHorizontalPos(overlayPosition.overlayX),
470
- overlayY: this.invertVerticalPos(overlayPosition.overlayY),
471
- },
472
- ]);
473
- }
474
- #resolveAnchor() {
475
- const anchor = this.luTooltipAnchor();
476
- if (isNil(anchor)) {
477
- return this.#host;
478
- }
479
- else if ('getElementRef' in anchor) {
480
- return anchor.getElementRef();
481
- }
482
- else {
483
- return anchor;
484
- }
485
- }
486
- invertVerticalPos(y) {
487
- if (y === 'top') {
488
- return 'bottom';
489
- }
490
- else if (y === 'bottom') {
491
- return 'top';
492
- }
493
- return y;
494
- }
495
- invertHorizontalPos(x) {
496
- if (x === 'end') {
497
- return 'start';
498
- }
499
- else if (x === 'start') {
500
- return 'end';
501
- }
502
- return x;
503
- }
504
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: LuTooltipTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
505
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.7", type: LuTooltipTriggerDirective, isStandalone: true, selector: "[luTooltip]", inputs: { luTooltipInput: { classPropertyName: "luTooltipInput", publicName: "luTooltip", isSignal: true, isRequired: false, transformFunction: null }, luTooltipEnterDelay: { classPropertyName: "luTooltipEnterDelay", publicName: "luTooltipEnterDelay", isSignal: true, isRequired: false, transformFunction: null }, luTooltipLeaveDelay: { classPropertyName: "luTooltipLeaveDelay", publicName: "luTooltipLeaveDelay", isSignal: true, isRequired: false, transformFunction: null }, luTooltipDisabled: { classPropertyName: "luTooltipDisabled", publicName: "luTooltipDisabled", isSignal: true, isRequired: false, transformFunction: null }, luTooltipOnlyForDisplay: { classPropertyName: "luTooltipOnlyForDisplay", publicName: "luTooltipOnlyForDisplay", isSignal: true, isRequired: false, transformFunction: null }, luTooltipPosition: { classPropertyName: "luTooltipPosition", publicName: "luTooltipPosition", isSignal: true, isRequired: false, transformFunction: null }, luTooltipWhenEllipsisInput: { classPropertyName: "luTooltipWhenEllipsisInput", publicName: "luTooltipWhenEllipsis", isSignal: true, isRequired: false, transformFunction: null }, luTooltipAnchor: { classPropertyName: "luTooltipAnchor", publicName: "luTooltipAnchor", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()", "focus": "onFocus()", "blur": "onBlur()", "keydown.escape": "onEscape($event)" }, properties: { "attr.aria-describedby": "ariaDescribedBy()", "attr.id": "id()" } }, exportAs: ["luTooltip"], ngImport: i0 }); }
506
- }
507
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: LuTooltipTriggerDirective, decorators: [{
508
- type: Directive,
509
- args: [{
510
- selector: '[luTooltip]',
511
- exportAs: 'luTooltip',
512
- host: {
513
- '[attr.aria-describedby]': 'ariaDescribedBy()',
514
- '[attr.id]': 'id()',
515
- '(mouseenter)': 'onMouseEnter()',
516
- '(mouseleave)': 'onMouseLeave()',
517
- '(focus)': 'onFocus()',
518
- '(blur)': 'onBlur()',
519
- '(keydown.escape)': 'onEscape($event)',
520
- },
521
- }]
522
- }], ctorParameters: () => [], propDecorators: { luTooltipInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "luTooltip", required: false }] }], luTooltipEnterDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "luTooltipEnterDelay", required: false }] }], luTooltipLeaveDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "luTooltipLeaveDelay", required: false }] }], luTooltipDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "luTooltipDisabled", required: false }] }], luTooltipOnlyForDisplay: [{ type: i0.Input, args: [{ isSignal: true, alias: "luTooltipOnlyForDisplay", required: false }] }], luTooltipPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "luTooltipPosition", required: false }] }], luTooltipWhenEllipsisInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "luTooltipWhenEllipsis", required: false }] }], luTooltipAnchor: [{ type: i0.Input, args: [{ isSignal: true, alias: "luTooltipAnchor", required: false }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }] } });
523
-
524
- /**
525
- * @deprecated use `LuTooltipTriggerDirective` instead
526
- */
527
- class LuTooltipTriggerModule {
528
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: LuTooltipTriggerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
529
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.7", ngImport: i0, type: LuTooltipTriggerModule, imports: [LuTooltipTriggerDirective, OverlayModule], exports: [LuTooltipTriggerDirective] }); }
530
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: LuTooltipTriggerModule, imports: [OverlayModule] }); }
531
- }
532
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: LuTooltipTriggerModule, decorators: [{
533
- type: NgModule,
534
- args: [{
535
- imports: [LuTooltipTriggerDirective, OverlayModule],
536
- exports: [LuTooltipTriggerDirective],
537
- }]
538
- }] });
539
-
540
- /**
541
- * @deprecated use `LuTooltipTriggerDirective, LuTooltipPanelComponent` instead
542
- */
543
- class LuTooltipModule {
544
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: LuTooltipModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
545
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.7", ngImport: i0, type: LuTooltipModule, imports: [LuTooltipTriggerModule, LuTooltipPanelComponent], exports: [LuTooltipTriggerModule, LuTooltipPanelComponent] }); }
546
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: LuTooltipModule, imports: [LuTooltipTriggerModule, LuTooltipTriggerModule] }); }
547
- }
548
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: LuTooltipModule, decorators: [{
549
- type: NgModule,
550
- args: [{
551
- imports: [LuTooltipTriggerModule, LuTooltipPanelComponent],
552
- exports: [LuTooltipTriggerModule, LuTooltipPanelComponent],
553
- }]
554
- }] });
1
+ export * from '@lucca/prisme/tooltip';
555
2
 
556
3
  /**
557
4
  * Generated bundle index. Do not edit.
558
5
  */
559
-
560
- export { LuTooltipModule, LuTooltipPanelComponent, LuTooltipTriggerDirective, LuTooltipTriggerModule, luTransformTooltip };
561
6
  //# sourceMappingURL=lucca-front-ng-tooltip.mjs.map