@slotted/angular 0.1.0-beta.1 → 0.1.0-beta.11

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 (598) hide show
  1. package/README.md +4 -0
  2. package/docs/AGENTS.snippet.md +12 -0
  3. package/docs/action-bar.json +4 -4
  4. package/docs/action-bar.md +3 -3
  5. package/docs/alert.json +7 -1
  6. package/docs/alert.md +3 -3
  7. package/docs/app-shell.examples.md +1 -1
  8. package/docs/app-shell.json +5 -5
  9. package/docs/app-shell.md +2 -2
  10. package/docs/avatar.json +22 -1
  11. package/docs/avatar.md +5 -3
  12. package/docs/badge.json +7 -1
  13. package/docs/badge.md +3 -3
  14. package/docs/button-group.json +2 -0
  15. package/docs/button-group.md +1 -1
  16. package/docs/button.json +51 -11
  17. package/docs/button.md +10 -6
  18. package/docs/calendar.json +8 -1
  19. package/docs/calendar.md +3 -2
  20. package/docs/cascader.json +1 -0
  21. package/docs/cascader.md +1 -1
  22. package/docs/chart.examples.md +1 -1
  23. package/docs/chart.json +10 -1
  24. package/docs/chart.md +3 -2
  25. package/docs/checkbox.json +7 -0
  26. package/docs/checkbox.md +1 -0
  27. package/docs/code-block.json +92 -92
  28. package/docs/code-block.md +69 -69
  29. package/docs/combobox.json +1 -0
  30. package/docs/combobox.md +1 -1
  31. package/docs/command-palette.json +1 -0
  32. package/docs/command-palette.md +1 -1
  33. package/docs/currency-field.json +40 -1
  34. package/docs/currency-field.md +5 -1
  35. package/docs/data-grid.examples.md +2 -2
  36. package/docs/data-grid.json +45 -7
  37. package/docs/data-grid.md +3 -1
  38. package/docs/data-grid.props.md +7 -4
  39. package/docs/data-list.json +2 -1
  40. package/docs/data-list.md +1 -1
  41. package/docs/date-field.json +9 -1
  42. package/docs/date-field.md +3 -2
  43. package/docs/date-picker.examples.md +36 -0
  44. package/docs/date-picker.json +20 -5
  45. package/docs/date-picker.md +5 -4
  46. package/docs/datetime-field.json +1 -0
  47. package/docs/datetime-field.md +1 -1
  48. package/docs/detail-panel.json +4 -2
  49. package/docs/detail-panel.md +8 -3
  50. package/docs/dialog.examples.md +158 -136
  51. package/docs/dialog.json +36 -11
  52. package/docs/dialog.md +4 -2
  53. package/docs/dialog.props.md +1 -1
  54. package/docs/drawer.json +11 -4
  55. package/docs/drawer.md +4 -3
  56. package/docs/entity-picker.json +19 -4
  57. package/docs/entity-picker.md +8 -6
  58. package/docs/event-calendar.json +7 -0
  59. package/docs/event-calendar.md +3 -2
  60. package/docs/filter-bar.json +118 -118
  61. package/docs/filter-bar.md +79 -79
  62. package/docs/form.json +2 -1
  63. package/docs/form.md +1 -1
  64. package/docs/guidelines/README.md +27 -0
  65. package/docs/guidelines/async-feedback.md +129 -0
  66. package/docs/guidelines/browsing.md +74 -0
  67. package/docs/guidelines/builders.md +97 -0
  68. package/docs/guidelines/composition.md +143 -0
  69. package/docs/guidelines/conversations.md +59 -0
  70. package/docs/guidelines/errors-and-conflicts.md +71 -0
  71. package/docs/guidelines/forms.md +202 -0
  72. package/docs/guidelines/index.md +130 -0
  73. package/docs/guidelines/layout-alignment.md +105 -0
  74. package/docs/guidelines/ledgers.md +45 -0
  75. package/docs/guidelines/list-pages.md +206 -0
  76. package/docs/guidelines/overviews.md +76 -0
  77. package/docs/guidelines/own-elements.md +115 -0
  78. package/docs/guidelines/reading-permissions.md +55 -0
  79. package/docs/guidelines/record-pages.md +178 -0
  80. package/docs/guidelines/reports.md +123 -0
  81. package/docs/guidelines/shell-composition.md +94 -0
  82. package/docs/guidelines/workspaces.md +46 -0
  83. package/docs/icon.json +3 -1
  84. package/docs/icon.md +3 -3
  85. package/docs/index.md +12 -0
  86. package/docs/inline-message.json +14 -2
  87. package/docs/inline-message.md +4 -3
  88. package/docs/list-item.json +9 -1
  89. package/docs/list-item.md +3 -3
  90. package/docs/list.json +19 -1
  91. package/docs/list.md +3 -1
  92. package/docs/markdown.json +79 -79
  93. package/docs/markdown.md +65 -65
  94. package/docs/menu.json +12 -0
  95. package/docs/menu.md +2 -0
  96. package/docs/message.json +7 -1
  97. package/docs/message.md +3 -3
  98. package/docs/multi-select.json +1 -0
  99. package/docs/multi-select.md +1 -1
  100. package/docs/notification-center.json +4 -0
  101. package/docs/notification-center.md +2 -2
  102. package/docs/number-field.json +1 -0
  103. package/docs/number-field.md +1 -1
  104. package/docs/otp-input.json +1 -0
  105. package/docs/otp-input.md +1 -1
  106. package/docs/page-header.json +22 -5
  107. package/docs/page-header.md +6 -4
  108. package/docs/page.json +2 -0
  109. package/docs/page.md +2 -1
  110. package/docs/popover.json +1 -1
  111. package/docs/progress-indicator.json +4 -3
  112. package/docs/progress-indicator.md +4 -4
  113. package/docs/prompt-composer.json +41 -1
  114. package/docs/prompt-composer.md +5 -1
  115. package/docs/rating.json +5 -3
  116. package/docs/rating.md +6 -6
  117. package/docs/section.json +28 -16
  118. package/docs/section.md +12 -10
  119. package/docs/segmented-control.json +36 -12
  120. package/docs/segmented-control.md +17 -1
  121. package/docs/select.json +1 -0
  122. package/docs/select.md +1 -1
  123. package/docs/side-navigation.json +1 -0
  124. package/docs/side-navigation.md +1 -1
  125. package/docs/skills/build-own-element/SKILL.md +90 -0
  126. package/docs/skills/compose-screen/SKILL.md +103 -0
  127. package/docs/skills/index.md +9 -0
  128. package/docs/skills/review-screen/SKILL.md +79 -0
  129. package/docs/skills/theme-app/SKILL.md +98 -0
  130. package/docs/skills/waiting-states/SKILL.md +143 -0
  131. package/docs/sparkline.json +5 -2
  132. package/docs/sparkline.md +4 -4
  133. package/docs/split-button.json +4 -1
  134. package/docs/split-button.md +3 -3
  135. package/docs/stat-card.json +5 -1
  136. package/docs/stat-card.md +3 -3
  137. package/docs/table.examples.md +3 -3
  138. package/docs/table.json +85 -3
  139. package/docs/table.md +12 -1
  140. package/docs/tabs.json +17 -7
  141. package/docs/tabs.md +3 -2
  142. package/docs/tag.json +14 -4
  143. package/docs/tag.md +6 -6
  144. package/docs/tags-input.json +29 -2
  145. package/docs/tags-input.md +4 -1
  146. package/docs/text-field.json +2 -1
  147. package/docs/text-field.md +2 -2
  148. package/docs/textarea.json +1 -0
  149. package/docs/textarea.md +1 -1
  150. package/docs/time-field.json +1 -0
  151. package/docs/time-field.md +1 -1
  152. package/docs/timeline.json +138 -132
  153. package/docs/timeline.md +125 -125
  154. package/docs/toast.json +8 -1
  155. package/docs/toast.md +3 -3
  156. package/docs/toggle-group.json +14 -3
  157. package/docs/toggle-group.md +3 -3
  158. package/docs/toggle.json +12 -3
  159. package/docs/toggle.md +3 -3
  160. package/docs/tokens.md +467 -0
  161. package/docs/toolbar.json +1 -1
  162. package/docs/toolbar.md +1 -1
  163. package/docs/tour.json +1 -1
  164. package/docs/typography.json +4 -2
  165. package/docs/typography.md +5 -5
  166. package/fesm2022/slotted-angular-accordion.mjs +4 -2
  167. package/fesm2022/slotted-angular-accordion.mjs.map +1 -1
  168. package/fesm2022/slotted-angular-action-bar.mjs +27 -12
  169. package/fesm2022/slotted-angular-action-bar.mjs.map +1 -1
  170. package/fesm2022/slotted-angular-action-sheet.mjs +48 -29
  171. package/fesm2022/slotted-angular-action-sheet.mjs.map +1 -1
  172. package/fesm2022/slotted-angular-alert.mjs +18 -11
  173. package/fesm2022/slotted-angular-alert.mjs.map +1 -1
  174. package/fesm2022/slotted-angular-app-shell.mjs +111 -61
  175. package/fesm2022/slotted-angular-app-shell.mjs.map +1 -1
  176. package/fesm2022/slotted-angular-aspect-ratio.mjs +4 -2
  177. package/fesm2022/slotted-angular-aspect-ratio.mjs.map +1 -1
  178. package/fesm2022/slotted-angular-attachment.mjs +31 -20
  179. package/fesm2022/slotted-angular-attachment.mjs.map +1 -1
  180. package/fesm2022/slotted-angular-avatar-group.mjs +9 -6
  181. package/fesm2022/slotted-angular-avatar-group.mjs.map +1 -1
  182. package/fesm2022/slotted-angular-avatar.mjs +14 -7
  183. package/fesm2022/slotted-angular-avatar.mjs.map +1 -1
  184. package/fesm2022/slotted-angular-badge.mjs +14 -10
  185. package/fesm2022/slotted-angular-badge.mjs.map +1 -1
  186. package/fesm2022/slotted-angular-breadcrumb.mjs +26 -18
  187. package/fesm2022/slotted-angular-breadcrumb.mjs.map +1 -1
  188. package/fesm2022/slotted-angular-button-group.mjs +7 -4
  189. package/fesm2022/slotted-angular-button-group.mjs.map +1 -1
  190. package/fesm2022/slotted-angular-button.mjs +120 -29
  191. package/fesm2022/slotted-angular-button.mjs.map +1 -1
  192. package/fesm2022/slotted-angular-calendar.mjs +235 -58
  193. package/fesm2022/slotted-angular-calendar.mjs.map +1 -1
  194. package/fesm2022/slotted-angular-card.mjs +18 -16
  195. package/fesm2022/slotted-angular-card.mjs.map +1 -1
  196. package/fesm2022/slotted-angular-carousel.mjs +22 -11
  197. package/fesm2022/slotted-angular-carousel.mjs.map +1 -1
  198. package/fesm2022/slotted-angular-cascader.mjs +180 -66
  199. package/fesm2022/slotted-angular-cascader.mjs.map +1 -1
  200. package/fesm2022/slotted-angular-chart.mjs +53 -20
  201. package/fesm2022/slotted-angular-chart.mjs.map +1 -1
  202. package/fesm2022/slotted-angular-checkbox-group.mjs +5 -3
  203. package/fesm2022/slotted-angular-checkbox-group.mjs.map +1 -1
  204. package/fesm2022/slotted-angular-checkbox.mjs +23 -9
  205. package/fesm2022/slotted-angular-checkbox.mjs.map +1 -1
  206. package/fesm2022/slotted-angular-code-block.mjs +29 -15
  207. package/fesm2022/slotted-angular-code-block.mjs.map +1 -1
  208. package/fesm2022/slotted-angular-collapsible.mjs +20 -15
  209. package/fesm2022/slotted-angular-collapsible.mjs.map +1 -1
  210. package/fesm2022/slotted-angular-color-picker.mjs +77 -22
  211. package/fesm2022/slotted-angular-color-picker.mjs.map +1 -1
  212. package/fesm2022/slotted-angular-column-manager.mjs +68 -31
  213. package/fesm2022/slotted-angular-column-manager.mjs.map +1 -1
  214. package/fesm2022/slotted-angular-combobox.mjs +118 -39
  215. package/fesm2022/slotted-angular-combobox.mjs.map +1 -1
  216. package/fesm2022/slotted-angular-command-palette.mjs +162 -54
  217. package/fesm2022/slotted-angular-command-palette.mjs.map +1 -1
  218. package/fesm2022/slotted-angular-container.mjs +6 -4
  219. package/fesm2022/slotted-angular-container.mjs.map +1 -1
  220. package/fesm2022/slotted-angular-context-menu.mjs +5 -4
  221. package/fesm2022/slotted-angular-context-menu.mjs.map +1 -1
  222. package/fesm2022/slotted-angular-currency-field.mjs +149 -32
  223. package/fesm2022/slotted-angular-currency-field.mjs.map +1 -1
  224. package/fesm2022/slotted-angular-dashboard-grid.mjs +142 -63
  225. package/fesm2022/slotted-angular-dashboard-grid.mjs.map +1 -1
  226. package/fesm2022/slotted-angular-data-grid.mjs +480 -129
  227. package/fesm2022/slotted-angular-data-grid.mjs.map +1 -1
  228. package/fesm2022/slotted-angular-data-list.mjs +83 -50
  229. package/fesm2022/slotted-angular-data-list.mjs.map +1 -1
  230. package/fesm2022/slotted-angular-date-field.mjs +74 -25
  231. package/fesm2022/slotted-angular-date-field.mjs.map +1 -1
  232. package/fesm2022/slotted-angular-date-picker.mjs +112 -40
  233. package/fesm2022/slotted-angular-date-picker.mjs.map +1 -1
  234. package/fesm2022/slotted-angular-date-range-picker.mjs +45 -22
  235. package/fesm2022/slotted-angular-date-range-picker.mjs.map +1 -1
  236. package/fesm2022/slotted-angular-datetime-field.mjs +48 -16
  237. package/fesm2022/slotted-angular-datetime-field.mjs.map +1 -1
  238. package/fesm2022/slotted-angular-datetime-picker.mjs +41 -29
  239. package/fesm2022/slotted-angular-datetime-picker.mjs.map +1 -1
  240. package/fesm2022/slotted-angular-datetime-range-picker.mjs +115 -48
  241. package/fesm2022/slotted-angular-datetime-range-picker.mjs.map +1 -1
  242. package/fesm2022/slotted-angular-description-list.mjs +33 -19
  243. package/fesm2022/slotted-angular-description-list.mjs.map +1 -1
  244. package/fesm2022/slotted-angular-detail-panel.mjs +48 -30
  245. package/fesm2022/slotted-angular-detail-panel.mjs.map +1 -1
  246. package/fesm2022/slotted-angular-dialog.mjs +72 -30
  247. package/fesm2022/slotted-angular-dialog.mjs.map +1 -1
  248. package/fesm2022/slotted-angular-divider.mjs +7 -5
  249. package/fesm2022/slotted-angular-divider.mjs.map +1 -1
  250. package/fesm2022/slotted-angular-drawer.mjs +91 -37
  251. package/fesm2022/slotted-angular-drawer.mjs.map +1 -1
  252. package/fesm2022/slotted-angular-entity-picker.mjs +474 -75
  253. package/fesm2022/slotted-angular-entity-picker.mjs.map +1 -1
  254. package/fesm2022/slotted-angular-event-calendar.mjs +275 -108
  255. package/fesm2022/slotted-angular-event-calendar.mjs.map +1 -1
  256. package/fesm2022/slotted-angular-field-group.mjs +14 -7
  257. package/fesm2022/slotted-angular-field-group.mjs.map +1 -1
  258. package/fesm2022/slotted-angular-field.mjs +35 -15
  259. package/fesm2022/slotted-angular-field.mjs.map +1 -1
  260. package/fesm2022/slotted-angular-filter-bar.mjs +118 -51
  261. package/fesm2022/slotted-angular-filter-bar.mjs.map +1 -1
  262. package/fesm2022/slotted-angular-form.mjs +18 -10
  263. package/fesm2022/slotted-angular-form.mjs.map +1 -1
  264. package/fesm2022/slotted-angular-fullscreen.mjs +14 -8
  265. package/fesm2022/slotted-angular-fullscreen.mjs.map +1 -1
  266. package/fesm2022/slotted-angular-grid.mjs +4 -2
  267. package/fesm2022/slotted-angular-grid.mjs.map +1 -1
  268. package/fesm2022/slotted-angular-highlight.mjs +5 -3
  269. package/fesm2022/slotted-angular-highlight.mjs.map +1 -1
  270. package/fesm2022/slotted-angular-hover-card.mjs +5 -4
  271. package/fesm2022/slotted-angular-hover-card.mjs.map +1 -1
  272. package/fesm2022/slotted-angular-icon.mjs +6 -3
  273. package/fesm2022/slotted-angular-icon.mjs.map +1 -1
  274. package/fesm2022/slotted-angular-image.mjs +13 -10
  275. package/fesm2022/slotted-angular-image.mjs.map +1 -1
  276. package/fesm2022/slotted-angular-import-export-center.mjs +175 -99
  277. package/fesm2022/slotted-angular-import-export-center.mjs.map +1 -1
  278. package/fesm2022/slotted-angular-inline-message.mjs +88 -13
  279. package/fesm2022/slotted-angular-inline-message.mjs.map +1 -1
  280. package/fesm2022/slotted-angular-inline.mjs +4 -2
  281. package/fesm2022/slotted-angular-inline.mjs.map +1 -1
  282. package/fesm2022/slotted-angular-kbd.mjs +11 -7
  283. package/fesm2022/slotted-angular-kbd.mjs.map +1 -1
  284. package/fesm2022/slotted-angular-link.mjs +5 -3
  285. package/fesm2022/slotted-angular-link.mjs.map +1 -1
  286. package/fesm2022/slotted-angular-list-item.mjs +21 -18
  287. package/fesm2022/slotted-angular-list-item.mjs.map +1 -1
  288. package/fesm2022/slotted-angular-list.mjs +37 -22
  289. package/fesm2022/slotted-angular-list.mjs.map +1 -1
  290. package/fesm2022/slotted-angular-listbox.mjs +39 -21
  291. package/fesm2022/slotted-angular-listbox.mjs.map +1 -1
  292. package/fesm2022/slotted-angular-loading-overlay.mjs +59 -22
  293. package/fesm2022/slotted-angular-loading-overlay.mjs.map +1 -1
  294. package/fesm2022/slotted-angular-markdown.mjs +31 -19
  295. package/fesm2022/slotted-angular-markdown.mjs.map +1 -1
  296. package/fesm2022/slotted-angular-menu.mjs +51 -29
  297. package/fesm2022/slotted-angular-menu.mjs.map +1 -1
  298. package/fesm2022/slotted-angular-menubar.mjs +4 -2
  299. package/fesm2022/slotted-angular-menubar.mjs.map +1 -1
  300. package/fesm2022/slotted-angular-message-scroller.mjs +34 -15
  301. package/fesm2022/slotted-angular-message-scroller.mjs.map +1 -1
  302. package/fesm2022/slotted-angular-message.mjs +119 -51
  303. package/fesm2022/slotted-angular-message.mjs.map +1 -1
  304. package/fesm2022/slotted-angular-multi-select.mjs +195 -87
  305. package/fesm2022/slotted-angular-multi-select.mjs.map +1 -1
  306. package/fesm2022/slotted-angular-navigation-menu.mjs +34 -26
  307. package/fesm2022/slotted-angular-navigation-menu.mjs.map +1 -1
  308. package/fesm2022/slotted-angular-notification-center.mjs +108 -65
  309. package/fesm2022/slotted-angular-notification-center.mjs.map +1 -1
  310. package/fesm2022/slotted-angular-number-field.mjs +23 -11
  311. package/fesm2022/slotted-angular-number-field.mjs.map +1 -1
  312. package/fesm2022/slotted-angular-otp-input.mjs +13 -8
  313. package/fesm2022/slotted-angular-otp-input.mjs.map +1 -1
  314. package/fesm2022/slotted-angular-page-header.mjs +90 -48
  315. package/fesm2022/slotted-angular-page-header.mjs.map +1 -1
  316. package/fesm2022/slotted-angular-page.mjs +38 -10
  317. package/fesm2022/slotted-angular-page.mjs.map +1 -1
  318. package/fesm2022/slotted-angular-pagination.mjs +35 -22
  319. package/fesm2022/slotted-angular-pagination.mjs.map +1 -1
  320. package/fesm2022/slotted-angular-popover.mjs +32 -19
  321. package/fesm2022/slotted-angular-popover.mjs.map +1 -1
  322. package/fesm2022/slotted-angular-progress-indicator.mjs +236 -52
  323. package/fesm2022/slotted-angular-progress-indicator.mjs.map +1 -1
  324. package/fesm2022/slotted-angular-prompt-composer.mjs +57 -20
  325. package/fesm2022/slotted-angular-prompt-composer.mjs.map +1 -1
  326. package/fesm2022/slotted-angular-prose.mjs +14 -11
  327. package/fesm2022/slotted-angular-prose.mjs.map +1 -1
  328. package/fesm2022/slotted-angular-radio-group.mjs +15 -9
  329. package/fesm2022/slotted-angular-radio-group.mjs.map +1 -1
  330. package/fesm2022/slotted-angular-rating.mjs +138 -82
  331. package/fesm2022/slotted-angular-rating.mjs.map +1 -1
  332. package/fesm2022/slotted-angular-result-state.mjs +16 -12
  333. package/fesm2022/slotted-angular-result-state.mjs.map +1 -1
  334. package/fesm2022/slotted-angular-saved-views.mjs +43 -16
  335. package/fesm2022/slotted-angular-saved-views.mjs.map +1 -1
  336. package/fesm2022/slotted-angular-scroll-area.mjs +13 -5
  337. package/fesm2022/slotted-angular-scroll-area.mjs.map +1 -1
  338. package/fesm2022/slotted-angular-section.mjs +53 -18
  339. package/fesm2022/slotted-angular-section.mjs.map +1 -1
  340. package/fesm2022/slotted-angular-segmented-control.mjs +37 -11
  341. package/fesm2022/slotted-angular-segmented-control.mjs.map +1 -1
  342. package/fesm2022/slotted-angular-select.mjs +190 -94
  343. package/fesm2022/slotted-angular-select.mjs.map +1 -1
  344. package/fesm2022/slotted-angular-side-navigation.mjs +46 -35
  345. package/fesm2022/slotted-angular-side-navigation.mjs.map +1 -1
  346. package/fesm2022/slotted-angular-skeleton.mjs +32 -16
  347. package/fesm2022/slotted-angular-skeleton.mjs.map +1 -1
  348. package/fesm2022/slotted-angular-slider.mjs +31 -11
  349. package/fesm2022/slotted-angular-slider.mjs.map +1 -1
  350. package/fesm2022/slotted-angular-sparkline.mjs +41 -14
  351. package/fesm2022/slotted-angular-sparkline.mjs.map +1 -1
  352. package/fesm2022/slotted-angular-split-button.mjs +37 -11
  353. package/fesm2022/slotted-angular-split-button.mjs.map +1 -1
  354. package/fesm2022/slotted-angular-splitter.mjs +11 -9
  355. package/fesm2022/slotted-angular-splitter.mjs.map +1 -1
  356. package/fesm2022/slotted-angular-stack.mjs +4 -2
  357. package/fesm2022/slotted-angular-stack.mjs.map +1 -1
  358. package/fesm2022/slotted-angular-stat-card.mjs +35 -28
  359. package/fesm2022/slotted-angular-stat-card.mjs.map +1 -1
  360. package/fesm2022/slotted-angular-status-indicator.mjs +22 -8
  361. package/fesm2022/slotted-angular-status-indicator.mjs.map +1 -1
  362. package/fesm2022/slotted-angular-stepper.mjs +40 -15
  363. package/fesm2022/slotted-angular-stepper.mjs.map +1 -1
  364. package/fesm2022/slotted-angular-switch.mjs +15 -10
  365. package/fesm2022/slotted-angular-switch.mjs.map +1 -1
  366. package/fesm2022/slotted-angular-table-of-contents.mjs +29 -21
  367. package/fesm2022/slotted-angular-table-of-contents.mjs.map +1 -1
  368. package/fesm2022/slotted-angular-table.mjs +243 -73
  369. package/fesm2022/slotted-angular-table.mjs.map +1 -1
  370. package/fesm2022/slotted-angular-tabs.mjs +42 -18
  371. package/fesm2022/slotted-angular-tabs.mjs.map +1 -1
  372. package/fesm2022/slotted-angular-tag.mjs +19 -12
  373. package/fesm2022/slotted-angular-tag.mjs.map +1 -1
  374. package/fesm2022/slotted-angular-tags-input.mjs +253 -28
  375. package/fesm2022/slotted-angular-tags-input.mjs.map +1 -1
  376. package/fesm2022/slotted-angular-text-field.mjs +55 -15
  377. package/fesm2022/slotted-angular-text-field.mjs.map +1 -1
  378. package/fesm2022/slotted-angular-textarea.mjs +5 -3
  379. package/fesm2022/slotted-angular-textarea.mjs.map +1 -1
  380. package/fesm2022/slotted-angular-time-field.mjs +48 -14
  381. package/fesm2022/slotted-angular-time-field.mjs.map +1 -1
  382. package/fesm2022/slotted-angular-time-picker.mjs +32 -20
  383. package/fesm2022/slotted-angular-time-picker.mjs.map +1 -1
  384. package/fesm2022/slotted-angular-time-range-picker.mjs +113 -46
  385. package/fesm2022/slotted-angular-time-range-picker.mjs.map +1 -1
  386. package/fesm2022/slotted-angular-timeline.mjs +147 -64
  387. package/fesm2022/slotted-angular-timeline.mjs.map +1 -1
  388. package/fesm2022/slotted-angular-toast.mjs +43 -31
  389. package/fesm2022/slotted-angular-toast.mjs.map +1 -1
  390. package/fesm2022/slotted-angular-toggle-group.mjs +25 -8
  391. package/fesm2022/slotted-angular-toggle-group.mjs.map +1 -1
  392. package/fesm2022/slotted-angular-toggle.mjs +9 -4
  393. package/fesm2022/slotted-angular-toggle.mjs.map +1 -1
  394. package/fesm2022/slotted-angular-toolbar.mjs +27 -12
  395. package/fesm2022/slotted-angular-toolbar.mjs.map +1 -1
  396. package/fesm2022/slotted-angular-tooltip.mjs +15 -6
  397. package/fesm2022/slotted-angular-tooltip.mjs.map +1 -1
  398. package/fesm2022/slotted-angular-top-navigation.mjs +64 -44
  399. package/fesm2022/slotted-angular-top-navigation.mjs.map +1 -1
  400. package/fesm2022/slotted-angular-tour.mjs +47 -22
  401. package/fesm2022/slotted-angular-tour.mjs.map +1 -1
  402. package/fesm2022/slotted-angular-transfer.mjs +69 -30
  403. package/fesm2022/slotted-angular-transfer.mjs.map +1 -1
  404. package/fesm2022/slotted-angular-tree.mjs +80 -26
  405. package/fesm2022/slotted-angular-tree.mjs.map +1 -1
  406. package/fesm2022/slotted-angular-typography.mjs +8 -4
  407. package/fesm2022/slotted-angular-typography.mjs.map +1 -1
  408. package/fesm2022/slotted-angular-upload.mjs +125 -57
  409. package/fesm2022/slotted-angular-upload.mjs.map +1 -1
  410. package/fesm2022/slotted-angular-visually-hidden.mjs +4 -2
  411. package/fesm2022/slotted-angular-visually-hidden.mjs.map +1 -1
  412. package/fesm2022/slotted-angular-wizard.mjs +163 -65
  413. package/fesm2022/slotted-angular-wizard.mjs.map +1 -1
  414. package/package.json +3 -3
  415. package/types/slotted-angular-accordion.d.ts.map +1 -1
  416. package/types/slotted-angular-action-bar.d.ts +2 -0
  417. package/types/slotted-angular-action-bar.d.ts.map +1 -1
  418. package/types/slotted-angular-action-sheet.d.ts.map +1 -1
  419. package/types/slotted-angular-alert.d.ts +2 -2
  420. package/types/slotted-angular-alert.d.ts.map +1 -1
  421. package/types/slotted-angular-app-shell.d.ts +11 -3
  422. package/types/slotted-angular-app-shell.d.ts.map +1 -1
  423. package/types/slotted-angular-aspect-ratio.d.ts.map +1 -1
  424. package/types/slotted-angular-attachment.d.ts +1 -1
  425. package/types/slotted-angular-attachment.d.ts.map +1 -1
  426. package/types/slotted-angular-avatar-group.d.ts.map +1 -1
  427. package/types/slotted-angular-avatar.d.ts +11 -3
  428. package/types/slotted-angular-avatar.d.ts.map +1 -1
  429. package/types/slotted-angular-badge.d.ts +1 -1
  430. package/types/slotted-angular-badge.d.ts.map +1 -1
  431. package/types/slotted-angular-breadcrumb.d.ts.map +1 -1
  432. package/types/slotted-angular-button-group.d.ts +1 -1
  433. package/types/slotted-angular-button-group.d.ts.map +1 -1
  434. package/types/slotted-angular-button.d.ts +33 -13
  435. package/types/slotted-angular-button.d.ts.map +1 -1
  436. package/types/slotted-angular-calendar.d.ts +30 -2
  437. package/types/slotted-angular-calendar.d.ts.map +1 -1
  438. package/types/slotted-angular-card.d.ts.map +1 -1
  439. package/types/slotted-angular-carousel.d.ts.map +1 -1
  440. package/types/slotted-angular-cascader.d.ts.map +1 -1
  441. package/types/slotted-angular-chart.d.ts +10 -0
  442. package/types/slotted-angular-chart.d.ts.map +1 -1
  443. package/types/slotted-angular-checkbox-group.d.ts.map +1 -1
  444. package/types/slotted-angular-checkbox.d.ts +7 -1
  445. package/types/slotted-angular-checkbox.d.ts.map +1 -1
  446. package/types/slotted-angular-code-block.d.ts +1 -1
  447. package/types/slotted-angular-code-block.d.ts.map +1 -1
  448. package/types/slotted-angular-collapsible.d.ts +1 -1
  449. package/types/slotted-angular-collapsible.d.ts.map +1 -1
  450. package/types/slotted-angular-color-picker.d.ts.map +1 -1
  451. package/types/slotted-angular-column-manager.d.ts.map +1 -1
  452. package/types/slotted-angular-combobox.d.ts +5 -1
  453. package/types/slotted-angular-combobox.d.ts.map +1 -1
  454. package/types/slotted-angular-command-palette.d.ts +10 -1
  455. package/types/slotted-angular-command-palette.d.ts.map +1 -1
  456. package/types/slotted-angular-container.d.ts.map +1 -1
  457. package/types/slotted-angular-context-menu.d.ts.map +1 -1
  458. package/types/slotted-angular-currency-field.d.ts +63 -15
  459. package/types/slotted-angular-currency-field.d.ts.map +1 -1
  460. package/types/slotted-angular-dashboard-grid.d.ts.map +1 -1
  461. package/types/slotted-angular-data-grid.d.ts +72 -4
  462. package/types/slotted-angular-data-grid.d.ts.map +1 -1
  463. package/types/slotted-angular-data-list.d.ts.map +1 -1
  464. package/types/slotted-angular-date-field.d.ts +11 -1
  465. package/types/slotted-angular-date-field.d.ts.map +1 -1
  466. package/types/slotted-angular-date-picker.d.ts +38 -12
  467. package/types/slotted-angular-date-picker.d.ts.map +1 -1
  468. package/types/slotted-angular-date-range-picker.d.ts +0 -1
  469. package/types/slotted-angular-date-range-picker.d.ts.map +1 -1
  470. package/types/slotted-angular-datetime-field.d.ts.map +1 -1
  471. package/types/slotted-angular-datetime-picker.d.ts +0 -1
  472. package/types/slotted-angular-datetime-picker.d.ts.map +1 -1
  473. package/types/slotted-angular-datetime-range-picker.d.ts +0 -1
  474. package/types/slotted-angular-datetime-range-picker.d.ts.map +1 -1
  475. package/types/slotted-angular-description-list.d.ts.map +1 -1
  476. package/types/slotted-angular-detail-panel.d.ts.map +1 -1
  477. package/types/slotted-angular-dialog.d.ts +10 -3
  478. package/types/slotted-angular-dialog.d.ts.map +1 -1
  479. package/types/slotted-angular-divider.d.ts.map +1 -1
  480. package/types/slotted-angular-drawer.d.ts +12 -1
  481. package/types/slotted-angular-drawer.d.ts.map +1 -1
  482. package/types/slotted-angular-entity-picker.d.ts +63 -15
  483. package/types/slotted-angular-entity-picker.d.ts.map +1 -1
  484. package/types/slotted-angular-event-calendar.d.ts +9 -2
  485. package/types/slotted-angular-event-calendar.d.ts.map +1 -1
  486. package/types/slotted-angular-field-group.d.ts.map +1 -1
  487. package/types/slotted-angular-field.d.ts.map +1 -1
  488. package/types/slotted-angular-filter-bar.d.ts.map +1 -1
  489. package/types/slotted-angular-form.d.ts.map +1 -1
  490. package/types/slotted-angular-fullscreen.d.ts.map +1 -1
  491. package/types/slotted-angular-grid.d.ts.map +1 -1
  492. package/types/slotted-angular-highlight.d.ts.map +1 -1
  493. package/types/slotted-angular-hover-card.d.ts.map +1 -1
  494. package/types/slotted-angular-icon.d.ts +2 -2
  495. package/types/slotted-angular-icon.d.ts.map +1 -1
  496. package/types/slotted-angular-image.d.ts.map +1 -1
  497. package/types/slotted-angular-import-export-center.d.ts.map +1 -1
  498. package/types/slotted-angular-inline-message.d.ts +25 -25
  499. package/types/slotted-angular-inline-message.d.ts.map +1 -1
  500. package/types/slotted-angular-inline.d.ts.map +1 -1
  501. package/types/slotted-angular-kbd.d.ts.map +1 -1
  502. package/types/slotted-angular-link.d.ts.map +1 -1
  503. package/types/slotted-angular-list-item.d.ts +1 -1
  504. package/types/slotted-angular-list-item.d.ts.map +1 -1
  505. package/types/slotted-angular-list.d.ts +42 -27
  506. package/types/slotted-angular-list.d.ts.map +1 -1
  507. package/types/slotted-angular-listbox.d.ts.map +1 -1
  508. package/types/slotted-angular-loading-overlay.d.ts.map +1 -1
  509. package/types/slotted-angular-markdown.d.ts.map +1 -1
  510. package/types/slotted-angular-menu.d.ts +11 -2
  511. package/types/slotted-angular-menu.d.ts.map +1 -1
  512. package/types/slotted-angular-menubar.d.ts.map +1 -1
  513. package/types/slotted-angular-message-scroller.d.ts.map +1 -1
  514. package/types/slotted-angular-message.d.ts +1 -1
  515. package/types/slotted-angular-message.d.ts.map +1 -1
  516. package/types/slotted-angular-multi-select.d.ts +15 -1
  517. package/types/slotted-angular-multi-select.d.ts.map +1 -1
  518. package/types/slotted-angular-navigation-menu.d.ts.map +1 -1
  519. package/types/slotted-angular-notification-center.d.ts +1 -1
  520. package/types/slotted-angular-notification-center.d.ts.map +1 -1
  521. package/types/slotted-angular-number-field.d.ts.map +1 -1
  522. package/types/slotted-angular-otp-input.d.ts.map +1 -1
  523. package/types/slotted-angular-page-header.d.ts +15 -6
  524. package/types/slotted-angular-page-header.d.ts.map +1 -1
  525. package/types/slotted-angular-page.d.ts.map +1 -1
  526. package/types/slotted-angular-pagination.d.ts.map +1 -1
  527. package/types/slotted-angular-popover.d.ts.map +1 -1
  528. package/types/slotted-angular-progress-indicator.d.ts +8 -1
  529. package/types/slotted-angular-progress-indicator.d.ts.map +1 -1
  530. package/types/slotted-angular-prompt-composer.d.ts +11 -2
  531. package/types/slotted-angular-prompt-composer.d.ts.map +1 -1
  532. package/types/slotted-angular-prose.d.ts.map +1 -1
  533. package/types/slotted-angular-radio-group.d.ts.map +1 -1
  534. package/types/slotted-angular-rating.d.ts +1 -1
  535. package/types/slotted-angular-rating.d.ts.map +1 -1
  536. package/types/slotted-angular-result-state.d.ts.map +1 -1
  537. package/types/slotted-angular-saved-views.d.ts.map +1 -1
  538. package/types/slotted-angular-scroll-area.d.ts.map +1 -1
  539. package/types/slotted-angular-section.d.ts +11 -3
  540. package/types/slotted-angular-section.d.ts.map +1 -1
  541. package/types/slotted-angular-segmented-control.d.ts +15 -2
  542. package/types/slotted-angular-segmented-control.d.ts.map +1 -1
  543. package/types/slotted-angular-select.d.ts +12 -2
  544. package/types/slotted-angular-select.d.ts.map +1 -1
  545. package/types/slotted-angular-side-navigation.d.ts.map +1 -1
  546. package/types/slotted-angular-skeleton.d.ts.map +1 -1
  547. package/types/slotted-angular-slider.d.ts.map +1 -1
  548. package/types/slotted-angular-sparkline.d.ts +7 -1
  549. package/types/slotted-angular-sparkline.d.ts.map +1 -1
  550. package/types/slotted-angular-split-button.d.ts +2 -2
  551. package/types/slotted-angular-split-button.d.ts.map +1 -1
  552. package/types/slotted-angular-splitter.d.ts.map +1 -1
  553. package/types/slotted-angular-stack.d.ts.map +1 -1
  554. package/types/slotted-angular-stat-card.d.ts +1 -1
  555. package/types/slotted-angular-stat-card.d.ts.map +1 -1
  556. package/types/slotted-angular-status-indicator.d.ts +1 -1
  557. package/types/slotted-angular-status-indicator.d.ts.map +1 -1
  558. package/types/slotted-angular-stepper.d.ts +1 -1
  559. package/types/slotted-angular-stepper.d.ts.map +1 -1
  560. package/types/slotted-angular-switch.d.ts.map +1 -1
  561. package/types/slotted-angular-table-of-contents.d.ts.map +1 -1
  562. package/types/slotted-angular-table.d.ts +63 -6
  563. package/types/slotted-angular-table.d.ts.map +1 -1
  564. package/types/slotted-angular-tabs.d.ts +3 -4
  565. package/types/slotted-angular-tabs.d.ts.map +1 -1
  566. package/types/slotted-angular-tag.d.ts +1 -1
  567. package/types/slotted-angular-tag.d.ts.map +1 -1
  568. package/types/slotted-angular-tags-input.d.ts +33 -1
  569. package/types/slotted-angular-tags-input.d.ts.map +1 -1
  570. package/types/slotted-angular-text-field.d.ts.map +1 -1
  571. package/types/slotted-angular-textarea.d.ts.map +1 -1
  572. package/types/slotted-angular-theme.d.ts +1 -1
  573. package/types/slotted-angular-time-field.d.ts.map +1 -1
  574. package/types/slotted-angular-time-picker.d.ts +0 -1
  575. package/types/slotted-angular-time-picker.d.ts.map +1 -1
  576. package/types/slotted-angular-time-range-picker.d.ts +0 -1
  577. package/types/slotted-angular-time-range-picker.d.ts.map +1 -1
  578. package/types/slotted-angular-timeline.d.ts +1 -1
  579. package/types/slotted-angular-timeline.d.ts.map +1 -1
  580. package/types/slotted-angular-toast.d.ts +3 -3
  581. package/types/slotted-angular-toast.d.ts.map +1 -1
  582. package/types/slotted-angular-toggle-group.d.ts +8 -2
  583. package/types/slotted-angular-toggle-group.d.ts.map +1 -1
  584. package/types/slotted-angular-toggle.d.ts +1 -1
  585. package/types/slotted-angular-toggle.d.ts.map +1 -1
  586. package/types/slotted-angular-toolbar.d.ts +2 -0
  587. package/types/slotted-angular-toolbar.d.ts.map +1 -1
  588. package/types/slotted-angular-tooltip.d.ts.map +1 -1
  589. package/types/slotted-angular-top-navigation.d.ts.map +1 -1
  590. package/types/slotted-angular-tour.d.ts.map +1 -1
  591. package/types/slotted-angular-transfer.d.ts.map +1 -1
  592. package/types/slotted-angular-tree.d.ts.map +1 -1
  593. package/types/slotted-angular-typography.d.ts +1 -1
  594. package/types/slotted-angular-typography.d.ts.map +1 -1
  595. package/types/slotted-angular-upload.d.ts +2 -2
  596. package/types/slotted-angular-upload.d.ts.map +1 -1
  597. package/types/slotted-angular-visually-hidden.d.ts.map +1 -1
  598. package/types/slotted-angular-wizard.d.ts.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"slotted-angular-tooltip.mjs","sources":["../../tooltip/src/tooltip-defaults.ts","../../tooltip/src/tooltip.ts","../../tooltip/src/tooltip-parts.ts","../../tooltip/src/slotted-angular-tooltip.ts"],"sourcesContent":["import { setPortalContainer } from '@slotted/core/portal';\nimport type { ChangeRequest } from '@slotted/core/state';\nimport { inject, Injectable, InjectionToken } from '@angular/core';\nimport type { Provider } from '@angular/core';\n\n/**\n * How the hint is painted. `inverse` is a surface opposite to the page, which\n * separates itself in every scheme without an edge; `surface` is the raised\n * panel with a hairline, for a page that is already dark.\n */\nexport type TooltipVariant = 'inverse' | 'surface';\n\n/** The type step the hint is set at. Both move with density. */\nexport type TooltipSize = 'sm' | 'md';\n\n/**\n * What the tooltip is to its trigger. `description` writes `aria-describedby`;\n * `label` writes `aria-labelledby` instead, which is the icon-only button whose\n * only words are the tooltip's — described by it and named by nothing, that\n * button is announced as \"button\".\n *\n * `none` writes neither and hides the content from the reader: the hint that\n * repeats words the trigger already carries is read twice under either\n * reference.\n */\nexport type TooltipDescribes = 'description' | 'label' | 'none';\n\n/** What opens it. `hover` also opens on keyboard focus, and instantly. */\nexport type TooltipOpenOn = 'hover' | 'focus' | 'manual';\n\n/** The edge of the anchor the layer prefers. The two logical values mirror. */\nexport type TooltipSide = 'top' | 'bottom' | 'inline-start' | 'inline-end' | 'left' | 'right';\n\n/** Where the layer sits along the side it took. */\nexport type TooltipAlign = 'start' | 'center' | 'end';\n\n/** When the layer exists. `describes=\"label\"` forces `eager`. */\nexport type TooltipMount = 'active' | 'lazy' | 'eager';\n\n/** `fixed` for a layer inside `overflow: hidden`, `absolute` for one inside a transform. */\nexport type TooltipStrategy = 'absolute' | 'fixed';\n\n/**\n * What `openChangeRequest` carries: the value asked for, the previous one, the\n * reason, the originating event and `cancel()`. The name React's binding gives\n * the same request.\n */\nexport type TooltipChangeRequest = ChangeRequest<boolean>;\n\n/** Why the hint opened or closed. */\nexport type TooltipOpenReason = Extract<\n ChangeRequest<boolean>['reason'],\n 'pointer' | 'keyboard' | 'escape' | 'blur' | 'programmatic'\n>;\n\n/** What an application sets once for every tooltip under it. */\nexport interface TooltipDefaults {\n align: TooltipAlign;\n alignOffset: number;\n arrow: boolean;\n arrowPadding: number;\n closeDelay: number;\n closeOnPress: boolean;\n collisionPadding: number;\n describes: TooltipDescribes;\n flip: boolean;\n groupDelay: number;\n hideWhenDetached: boolean;\n hoverable: boolean;\n mount: TooltipMount;\n openDelay: number;\n openOn: TooltipOpenOn;\n portal: boolean;\n shift: boolean;\n side: TooltipSide;\n sideOffset: number;\n size: TooltipSize;\n strategy: TooltipStrategy;\n touchDelay: number;\n variant: TooltipVariant;\n /** Opens only while the trigger's own content is cut by its box. */\n whenClipped: boolean;\n}\n\n/**\n * The numbers, and why they are these numbers.\n *\n * `openDelay` is long enough that a pointer crossing a toolbar opens nothing\n * and short enough that a deliberate hover is answered; `closeDelay` is the\n * window the pointer has to travel onto the layer, and zero makes a hoverable\n * tooltip unreachable; `groupDelay` is what stops a row of icon buttons\n * charging the warmup once per button.\n */\nexport const TOOLTIP_FALLBACK: TooltipDefaults = {\n align: 'center',\n alignOffset: 0,\n arrow: true,\n arrowPadding: 8,\n closeDelay: 150,\n closeOnPress: true,\n collisionPadding: 8,\n describes: 'description',\n flip: true,\n groupDelay: 400,\n hideWhenDetached: true,\n hoverable: true,\n mount: 'active',\n openDelay: 600,\n openOn: 'hover',\n portal: true,\n shift: true,\n side: 'top',\n sideOffset: 0,\n size: 'md',\n strategy: 'absolute',\n touchDelay: 500,\n variant: 'inverse',\n whenClipped: false,\n};\n\nexport const TOOLTIP_DEFAULTS = new InjectionToken<TooltipDefaults>('slotted tooltip defaults', {\n providedIn: 'root',\n factory: () => TOOLTIP_FALLBACK,\n});\n\n/**\n * When the last tooltip in this injector closed. A tooltip asked to open inside\n * `groupDelay` of that moment opens in the same task, so reading a row of icon\n * buttons pays the warmup once. It is held per injector rather than per\n * tooltip, because a value held per tooltip could not say what \"the next one\"\n * means.\n */\n@Injectable({ providedIn: 'root' })\nexport class SlTooltipGroup {\n lastClosedAt = 0;\n}\n\n/**\n * An application decides once how its tooltips behave and look. A tooltip that\n * states any of them itself still wins.\n *\n * What is stated here is written over the defaults already in force rather than\n * over the fallback, which is what React's provider does and what a family that\n * sets two axes for itself needs: a column header asking for `describes=\"none\"`\n * would otherwise hand the application's own delays back to the fallback.\n *\n * The group is provided beside the defaults, so a component that sets its own\n * defaults also gets its own warmup window — the same scoping React's provider\n * gives.\n */\nexport function provideTooltipDefaults(defaults: Partial<TooltipDefaults>): Provider[] {\n return [\n {\n provide: TOOLTIP_DEFAULTS,\n useFactory: (): TooltipDefaults => ({\n ...(inject(TOOLTIP_DEFAULTS, { optional: true, skipSelf: true }) ?? TOOLTIP_FALLBACK),\n ...defaults,\n }),\n },\n SlTooltipGroup,\n ];\n}\n\n/** What a tooltip renders as here, before it states anything of its own. */\nexport function injectTooltipDefaults(): TooltipDefaults {\n return inject(TOOLTIP_DEFAULTS);\n}\n\n/**\n * Whether `provideSlottedPortalContainer` named a container in this injector.\n * A factory runs only when something injects its token, so `slTooltipLayer`\n * injects this one before it builds a layer.\n */\nexport const SLOTTED_PORTAL_CONTAINER = new InjectionToken<boolean>('slotted portal container');\n\n/**\n * Where every layer is rendered, for the whole application. It calls\n * `setPortalContainer` from `@slotted/core/portal`, which is per document, so\n * an application shell that builds its own stacking context names it once.\n */\nexport function provideSlottedPortalContainer(container: () => Element | null): Provider {\n return {\n provide: SLOTTED_PORTAL_CONTAINER,\n useFactory: () => {\n setPortalContainer(container());\n return true;\n },\n };\n}\n\n/**\n * Application-scoped rather than module-scoped, for the reason `field` records:\n * a module-level counter produces colliding sequences when two applications\n * render in one server process, and the server and the client sequences have to\n * match for hydration.\n */\n@Injectable({ providedIn: 'root' })\nexport class SlTooltipIdFactory {\n private count = 0;\n\n next() {\n this.count += 1;\n return `slotted-tooltip-${this.count}`;\n }\n}\n","import { isClipped } from '@slotted/core/overflow';\nimport { createControllable } from '@slotted/core/state';\nimport {\n booleanAttribute,\n computed,\n DestroyRef,\n Directive,\n effect,\n inject,\n input,\n model,\n numberAttribute,\n output,\n type OnInit,\n signal,\n untracked,\n} from '@angular/core';\n\nimport { injectTooltipDefaults, SlTooltipGroup, SlTooltipIdFactory } from './tooltip-defaults';\nimport type {\n TooltipAlign,\n TooltipChangeRequest,\n TooltipDescribes,\n TooltipMount,\n TooltipOpenOn,\n TooltipOpenReason,\n TooltipSide,\n TooltipSize,\n TooltipStrategy,\n TooltipVariant,\n} from './tooltip-defaults';\n\nexport type {\n TooltipAlign,\n TooltipChangeRequest,\n TooltipDefaults,\n TooltipDescribes,\n TooltipMount,\n TooltipOpenOn,\n TooltipOpenReason,\n TooltipSide,\n TooltipSize,\n TooltipStrategy,\n TooltipVariant,\n} from './tooltip-defaults';\n\n/** Unstated stays unstated, so a tooltip defers to the provider rather than to `false`. */\nconst optionalBoolean = (state: boolean | string | undefined) =>\n state === undefined ? undefined : booleanAttribute(state);\n\n/** Unstated stays unstated, for the same reason, on a number. */\nconst optionalNumber = (value: number | string | undefined) =>\n value === undefined ? undefined : numberAttribute(value);\n\n/**\n * A short, non-interactive sentence about the element under the pointer or\n * under focus.\n *\n * It is written on an `ng-container`, because it renders nothing: the trigger\n * stays where the consumer wrote it and the layer is portalled to the end of\n * the document, so no one element could hold both. What it holds is the state,\n * the delays, and the values every part reads.\n *\n * The layer never takes focus and never holds a control. The APG's tooltip\n * pattern says so, and names the non-modal dialog for the other case, which is\n * `slPopover`.\n */\n@Directive({\n selector: '[slTooltip]',\n standalone: true,\n exportAs: 'slTooltip',\n})\nexport class SlTooltip implements OnInit {\n /** Whether the hint is showing. Two-way, so a template may bind it directly. */\n readonly open = model<boolean>(false);\n /** The state an uncontrolled tooltip starts in, read once in `ngOnInit`. */\n readonly defaultOpen = input(false, { transform: booleanAttribute });\n /** The tooltip never opens. The trigger's own `disabled` is the consumer's. */\n readonly disabled = input(false, { transform: booleanAttribute });\n /**\n * Opens only while the trigger's own content is cut by its box — a column\n * header narrowed to `Op…`, a breadcrumb in a rail. The measurement is taken\n * at the moment the hint would open, so a column dragged wider stops opening\n * one without anything being told.\n */\n readonly whenClipped = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: optionalBoolean,\n });\n\n readonly variant = input<TooltipVariant | undefined>(undefined);\n readonly size = input<TooltipSize | undefined>(undefined);\n readonly describes = input<TooltipDescribes | undefined>(undefined);\n readonly openOn = input<TooltipOpenOn | undefined>(undefined);\n readonly side = input<TooltipSide | undefined>(undefined);\n readonly align = input<TooltipAlign | undefined>(undefined);\n readonly mount = input<TooltipMount | undefined>(undefined);\n readonly strategy = input<TooltipStrategy | undefined>(undefined);\n\n readonly arrow = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: optionalBoolean,\n });\n readonly hoverable = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: optionalBoolean,\n });\n readonly closeOnPress = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: optionalBoolean,\n });\n readonly flip = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: optionalBoolean,\n });\n readonly shift = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: optionalBoolean,\n });\n readonly hideWhenDetached = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: optionalBoolean,\n });\n readonly portal = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: optionalBoolean,\n });\n\n readonly openDelay = input<number | undefined, number | string | undefined>(undefined, {\n transform: optionalNumber,\n });\n readonly closeDelay = input<number | undefined, number | string | undefined>(undefined, {\n transform: optionalNumber,\n });\n readonly touchDelay = input<number | undefined, number | string | undefined>(undefined, {\n transform: optionalNumber,\n });\n readonly sideOffset = input<number | undefined, number | string | undefined>(undefined, {\n transform: optionalNumber,\n });\n readonly alignOffset = input<number | undefined, number | string | undefined>(undefined, {\n transform: optionalNumber,\n });\n readonly collisionPadding = input<number | undefined, number | string | undefined>(undefined, {\n transform: optionalNumber,\n });\n readonly arrowPadding = input<number | undefined, number | string | undefined>(undefined, {\n transform: optionalNumber,\n });\n\n /** One output for one transition, carrying the reason and the event. */\n readonly openChangeRequest = output<TooltipChangeRequest>();\n\n private readonly defaults = injectTooltipDefaults();\n private readonly group = inject(SlTooltipGroup);\n private readonly destroyRef = inject(DestroyRef);\n\n readonly contentId = `${inject(SlTooltipIdFactory).next()}-content`;\n\n /** The elements the parts register, which the layer measures and listens to. */\n readonly triggerNode = signal<HTMLElement | null>(null);\n readonly arrowNode = signal<HTMLElement | null>(null);\n\n readonly isOpen = computed(() => this.open() && !this.disabled());\n\n readonly resolvedVariant = computed(() => this.variant() ?? this.defaults.variant);\n readonly resolvedSize = computed(() => this.size() ?? this.defaults.size);\n readonly resolvedDescribes = computed(() => this.describes() ?? this.defaults.describes);\n readonly resolvedWhenClipped = computed(() => this.whenClipped() ?? this.defaults.whenClipped);\n readonly resolvedOpenOn = computed(() => this.openOn() ?? this.defaults.openOn);\n readonly resolvedSide = computed(() => this.side() ?? this.defaults.side);\n readonly resolvedAlign = computed(() => this.align() ?? this.defaults.align);\n readonly resolvedStrategy = computed(() => this.strategy() ?? this.defaults.strategy);\n readonly resolvedArrow = computed(() => (this.arrow() ?? this.defaults.arrow) === true);\n readonly resolvedHoverable = computed(\n () => (this.hoverable() ?? this.defaults.hoverable) === true,\n );\n readonly resolvedCloseOnPress = computed(\n () => (this.closeOnPress() ?? this.defaults.closeOnPress) === true,\n );\n readonly resolvedFlip = computed(() => (this.flip() ?? this.defaults.flip) === true);\n readonly resolvedShift = computed(() => (this.shift() ?? this.defaults.shift) === true);\n readonly resolvedHideWhenDetached = computed(\n () => (this.hideWhenDetached() ?? this.defaults.hideWhenDetached) === true,\n );\n readonly resolvedPortal = computed(() => (this.portal() ?? this.defaults.portal) === true);\n readonly resolvedSideOffset = computed(() => this.sideOffset() ?? this.defaults.sideOffset);\n readonly resolvedAlignOffset = computed(() => this.alignOffset() ?? this.defaults.alignOffset);\n readonly resolvedCollisionPadding = computed(\n () => this.collisionPadding() ?? this.defaults.collisionPadding,\n );\n readonly resolvedArrowPadding = computed(() => this.arrowPadding() ?? this.defaults.arrowPadding);\n\n /**\n * Under `label` the layer is the trigger's accessible name, so it has to be\n * in the document before it is ever opened. Forcing the axis is deliberate:\n * the alternative is a button silently announced as \"button\".\n */\n readonly resolvedMount = computed<TooltipMount>(() =>\n this.resolvedDescribes() === 'label' ? 'eager' : (this.mount() ?? this.defaults.mount),\n );\n\n private readonly everOpened = signal(false);\n readonly seen = computed(() => this.everOpened() || this.isOpen());\n\n /**\n * One timer for the whole family. An open waiting on `openDelay`, a close\n * waiting on `closeDelay` and a long press waiting on `touchDelay` are never\n * pending at once — each cancels the others.\n */\n private timer: ReturnType<typeof setTimeout> | undefined;\n\n constructor() {\n this.destroyRef.onDestroy(() => this.cancelPending());\n /** Disabling cancels a waiting open and drops an open one, so enabling opens nothing. */\n effect(() => {\n if (!this.disabled()) return;\n untracked(() => {\n this.cancelPending();\n if (this.open()) this.open.set(false);\n });\n });\n }\n\n /**\n * Read here rather than in the constructor, because inputs are not set yet\n * there, and once: a later change to it is not new state.\n */\n ngOnInit() {\n if (this.defaultOpen() && !this.open()) this.open.set(true);\n }\n\n cancelPending() {\n if (this.timer !== undefined) clearTimeout(this.timer);\n this.timer = undefined;\n }\n\n /** Opens after `openDelay`, or in the same task inside the group window. */\n openAfterDelay(source?: Event) {\n this.cancelPending();\n const delay = this.openDelay() ?? this.defaults.openDelay;\n const sinceLast = Date.now() - this.group.lastClosedAt;\n if (delay <= 0 || sinceLast < this.defaults.groupDelay) {\n this.toggle(true, 'pointer', source);\n return;\n }\n this.timer = setTimeout(() => this.toggle(true, 'pointer', source), delay);\n }\n\n /** Closes after `closeDelay`, which is the window the pointer has to reach the layer. */\n closeAfterDelay(source?: Event) {\n this.cancelPending();\n const delay = this.closeDelay() ?? this.defaults.closeDelay;\n if (delay <= 0) {\n this.toggle(false, 'pointer', source);\n return;\n }\n this.timer = setTimeout(() => this.toggle(false, 'pointer', source), delay);\n }\n\n /** A coarse pointer has no hover, so a press held still opens the hint. */\n pressAndHold(source?: Event) {\n this.cancelPending();\n const delay = this.touchDelay() ?? this.defaults.touchDelay;\n this.timer = setTimeout(() => this.toggle(true, 'pointer', source), delay);\n }\n\n /** Opens now, ignoring every delay. One of the two imperative actions. */\n show() {\n this.toggle(true, 'programmatic');\n }\n\n /** Closes now. */\n hide() {\n this.toggle(false, 'programmatic');\n }\n\n toggle(next: boolean, reason: TooltipOpenReason, source?: Event) {\n this.cancelPending();\n if (next === this.isOpen()) return;\n /**\n * Refused rather than recorded: an open granted while disabled is hidden by\n * `isOpen`, and the leave that follows finds nothing to close, so it would\n * surface the moment `disabled` turned false.\n */\n if (next && this.disabled()) return;\n /**\n * Measured here rather than watched: the answer is needed at the moment the\n * hint would open, and a box measured then is never a box two column drags\n * old.\n */\n const trigger = this.triggerNode();\n if (next && this.resolvedWhenClipped() && trigger !== null && !isClipped(trigger)) return;\n\n let cancelled = false;\n const state = createControllable<boolean>({\n initial: this.isOpen(),\n onRequest: (request) => {\n this.openChangeRequest.emit(request);\n cancelled = request.cancelled;\n },\n });\n const moved = state.request(next, reason, source);\n if (cancelled) return;\n\n if (next) this.everOpened.set(true);\n /**\n * The window the next tooltip opens instantly inside starts when this one\n * closes, so a reader crossing a toolbar pays one warmup.\n */\n if (!next) this.group.lastClosedAt = Date.now();\n if (moved) this.open.set(next);\n }\n}\n","import { createDismissableLayer } from '@slotted/core/dismissable-layer';\nimport type { DismissableLayerHandle } from '@slotted/core/dismissable-layer';\nimport { createPortalRoot } from '@slotted/core/portal';\nimport type { PortalRootHandle } from '@slotted/core/portal';\nimport { createPositioner } from '@slotted/core/positioner';\nimport type { PositionerHandle } from '@slotted/core/positioner';\nimport { createPresence } from '@slotted/core/presence';\nimport type { PresenceStatus } from '@slotted/core/presence';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n Directive,\n effect,\n ElementRef,\n inject,\n PLATFORM_ID,\n signal,\n TemplateRef,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport type { EmbeddedViewRef } from '@angular/core';\n\nimport { SlTooltip } from './tooltip';\nimport { SLOTTED_PORTAL_CONTAINER } from './tooltip-defaults';\n\n/**\n * The element the hint is about.\n *\n * The directive goes on the consumer's own control, which is what this\n * ecosystem composes with. It writes the ARIA relationship and `data-open` and\n * **no `data-part`**: `data-part` names a part of the family that owns the\n * element, and sixteen stylesheets in this repository key on\n * `[data-part='root']`, so claiming a `slBadge` or a `slCheckbox` used as a\n * trigger would unstyle it and nothing would report it.\n *\n * A control the page disabled with the native attribute fires no pointer events\n * at all, so the one explanation of why it is disabled would be unreachable.\n * The reference page shows the two shapes that work: `aria-disabled` on a\n * control that stays focusable, or a wrapping element carrying the trigger.\n */\n@Directive({\n selector: '[slTooltipTrigger]',\n standalone: true,\n exportAs: 'slTooltipTrigger',\n host: {\n '[attr.aria-describedby]': 'describedBy()',\n '[attr.aria-labelledby]': 'labelledBy()',\n '[attr.data-open]': \"tooltip.isOpen() ? '' : null\",\n '(pointerenter)': 'onPointerEnter($event)',\n '(pointerleave)': 'onPointerLeave($event)',\n '(pointerdown)': 'onPointerDown($event)',\n '(pointerup)': 'onPointerRelease()',\n '(pointercancel)': 'onPointerRelease()',\n '(focus)': 'onFocus($event)',\n '(blur)': 'onBlur($event)',\n '(click)': 'onClick($event)',\n },\n})\nexport class SlTooltipTrigger {\n protected readonly tooltip = inject(SlTooltip);\n private readonly native: HTMLElement = inject(ElementRef).nativeElement;\n private holding = false;\n\n /**\n * Named by the layer under `label`, described by it otherwise. Under `none`\n * the trigger references nothing: it already says the words.\n */\n private readonly names = computed(\n () =>\n this.tooltip.resolvedDescribes() !== 'none' &&\n (this.tooltip.isOpen() || this.tooltip.resolvedDescribes() === 'label'),\n );\n protected readonly describedBy = computed(() =>\n this.names() && this.tooltip.resolvedDescribes() === 'description'\n ? this.tooltip.contentId\n : null,\n );\n protected readonly labelledBy = computed(() =>\n this.names() && this.tooltip.resolvedDescribes() === 'label' ? this.tooltip.contentId : null,\n );\n\n constructor() {\n this.tooltip.triggerNode.set(this.native);\n inject(DestroyRef).onDestroy(() => this.tooltip.triggerNode.set(null));\n }\n\n protected onPointerEnter(event: PointerEvent) {\n if (this.tooltip.resolvedOpenOn() !== 'hover' || event.pointerType === 'touch') return;\n this.tooltip.openAfterDelay(event);\n }\n\n protected onPointerLeave(event: PointerEvent) {\n this.holding = false;\n if (this.tooltip.resolvedOpenOn() === 'manual') return;\n this.tooltip.closeAfterDelay(event);\n }\n\n protected onPointerDown(event: PointerEvent) {\n if (event.pointerType === 'touch') {\n this.holding = true;\n this.tooltip.pressAndHold(event);\n return;\n }\n if (this.tooltip.resolvedCloseOnPress() && this.tooltip.isOpen()) {\n this.tooltip.toggle(false, 'pointer', event);\n }\n }\n\n protected onPointerRelease() {\n if (!this.holding) return;\n this.holding = false;\n this.tooltip.cancelPending();\n }\n\n /**\n * `:focus-visible` rather than every focus. A pointer press focuses a button\n * too, and a tooltip opened by it would arrive before the delay it was given\n * and stay after the press that was meant to dismiss it.\n */\n protected onFocus(event: FocusEvent) {\n if (this.tooltip.resolvedOpenOn() === 'manual') return;\n if (!this.native.matches(':focus-visible')) return;\n this.tooltip.toggle(true, 'keyboard', event);\n }\n\n protected onBlur(event: FocusEvent) {\n if (this.tooltip.resolvedOpenOn() === 'manual') return;\n this.tooltip.toggle(false, 'blur', event);\n }\n\n /**\n * A click synthesised by the keyboard reports no detail; a real one reports\n * the click count. It is how `Enter` and `Space` are told from a press\n * without a key listener existing for either.\n */\n protected onClick(event: MouseEvent) {\n if (!this.tooltip.resolvedCloseOnPress() || !this.tooltip.isOpen()) return;\n this.tooltip.toggle(false, event.detail === 0 ? 'keyboard' : 'pointer', event);\n }\n}\n\n/**\n * The positioned layer, built from a template rather than from an element.\n *\n * `mount=\"active\"` means the layer exists only while it is open, and a\n * component cannot remove its own host element — so the consumer writes an\n * `ng-template` and this directive builds the layer around the stamped view.\n * It is the shape `ng-template[slCollapsibleContent]` already uses here, and\n * Angular Material's `matExpansionPanelContent` before it.\n *\n * The element it builds is what `packages/core/src/positioner` writes\n * `position`, `left` and `top` onto, and the one that scales and fades; its\n * padding is the gap the pointer crosses onto a hoverable tooltip.\n */\n@Directive({\n selector: 'ng-template[slTooltipLayer]',\n standalone: true,\n exportAs: 'slTooltipLayer',\n})\nexport class SlTooltipLayer {\n private readonly tooltip = inject(SlTooltip);\n private readonly template = inject(TemplateRef<unknown>);\n private readonly viewContainer = inject(ViewContainerRef);\n private readonly comment: Comment = this.viewContainer.element.nativeElement;\n /**\n * Angular's server document is not the page. There the layer stays where the\n * template wrote it, as React's server markup has it, and nothing measures,\n * stacks or moves it into a portal.\n */\n private readonly browser = isPlatformBrowser(inject(PLATFORM_ID));\n /** Where the arrow stood in the layer while `arrow` is false. */\n private arrowPlace: Comment | null = null;\n\n /**\n * A signal rather than a field, and the reason is a defect the first spec run\n * found: the effects that place, stack and paint the layer all read it, and\n * with a plain field none of them re-ran when `build()` filled it in a later\n * flush. The layer existed and carried no attribute the stylesheet reads.\n */\n private readonly layerNode = signal<HTMLElement | null>(null);\n private view: EmbeddedViewRef<unknown> | null = null;\n private portal: PortalRootHandle | null = null;\n private positioner: PositionerHandle | null = null;\n private dismissable: DismissableLayerHandle | null = null;\n private releaseBridge: (() => void) | null = null;\n\n private readonly status = signal<PresenceStatus>('unmounted');\n private readonly positioned = signal(false);\n private readonly presence = createPresence({\n present: false,\n onStatusChange: (next) => this.status.set(next),\n });\n\n /**\n * `active` drops the layer after the exit, `lazy` keeps it once it has been\n * open, `eager` never removes it — which is what `describes=\"label\"` forces,\n * because an accessible name has to exist before it is read.\n */\n readonly mounted = computed(() => {\n const mount = this.tooltip.resolvedMount();\n if (mount === 'eager') return true;\n if (mount === 'lazy') return this.tooltip.seen();\n return this.status() !== 'unmounted';\n });\n\n constructor() {\n /* Injected for its side effect: the factory of\n `provideSlottedPortalContainer` names the document's portal container,\n and runs only when something asks for its token — before the first layer\n asks `createPortalRoot` for a container. */\n inject(SLOTTED_PORTAL_CONTAINER, { optional: true });\n effect(() => this.presence.sync(this.tooltip.isOpen()));\n effect(() => (this.mounted() ? this.build() : this.teardown()));\n effect(() => this.place());\n effect(() => this.stack());\n effect(() => this.paint());\n\n inject(DestroyRef).onDestroy(() => {\n this.presence.destroy();\n this.teardown();\n });\n }\n\n /** Measures and places the layer again. The imperative action of this part. */\n reposition() {\n void this.positioner?.update();\n }\n\n private build() {\n if (this.layerNode() !== null) return;\n\n const document = this.comment.ownerDocument;\n const layer = document.createElement('div');\n layer.setAttribute('data-ui', 'tooltip');\n layer.setAttribute('data-part', 'root');\n\n const view = this.viewContainer.createEmbeddedView(this.template);\n view.detectChanges();\n for (const node of view.rootNodes as Node[]) layer.appendChild(node);\n\n const portal = this.browser\n ? createPortalRoot({\n origin: this.tooltip.triggerNode(),\n disabled: !this.tooltip.resolvedPortal(),\n })\n : null;\n const container = portal?.container ?? this.comment.parentNode;\n if (container === this.comment.parentNode) container?.insertBefore(layer, this.comment);\n else container?.appendChild(layer);\n\n this.view = view;\n this.portal = portal;\n this.releaseBridge = bindHoverBridge(layer, this.tooltip);\n this.presence.setNode(layer);\n this.layerNode.set(layer);\n }\n\n private teardown() {\n this.releaseBridge?.();\n this.releaseBridge = null;\n this.positioner?.destroy();\n this.positioner = null;\n this.dismissable?.destroy();\n this.dismissable = null;\n this.presence.setNode(null);\n this.layerNode()?.remove();\n this.layerNode.set(null);\n this.view?.destroy();\n this.view = null;\n this.portal?.release();\n this.portal = null;\n this.arrowPlace = null;\n this.positioned.set(false);\n }\n\n /** Rebuilt whenever an option it was created with changes. */\n private place() {\n const layer = this.layerNode();\n const anchor = this.tooltip.triggerNode();\n const options = {\n align: this.tooltip.resolvedAlign(),\n alignOffset: this.tooltip.resolvedAlignOffset(),\n boundaryPadding: this.tooltip.resolvedCollisionPadding(),\n flip: this.tooltip.resolvedFlip(),\n hideWhenDetached: this.tooltip.resolvedHideWhenDetached(),\n shift: this.tooltip.resolvedShift(),\n side: this.tooltip.resolvedSide(),\n sideOffset: this.tooltip.resolvedSideOffset(),\n strategy: this.tooltip.resolvedStrategy(),\n };\n const arrow = this.tooltip.resolvedArrow() ? this.tooltip.arrowNode() : null;\n\n this.positioner?.destroy();\n this.positioner = null;\n if (layer === null || anchor === null || !this.browser) return;\n\n this.positioner = createPositioner(anchor, layer, {\n ...options,\n ...(arrow ? { arrow, arrowPadding: this.tooltip.resolvedArrowPadding() } : {}),\n });\n void this.positioner.update().then(() => this.positioned.set(true));\n }\n\n /**\n * The layer joins the single stack only while it is open, so its depth is its\n * real position among the layers a reader has opened. Escape reaches the\n * topmost layer alone; the trigger is a branch, so pressing it is not an\n * outside press and the family closes on it deliberately instead.\n */\n private stack() {\n const layer = this.layerNode();\n const open = this.tooltip.isOpen();\n const trigger = this.tooltip.triggerNode();\n\n this.dismissable?.destroy();\n this.dismissable = null;\n if (layer === null || !open || !this.browser) return;\n\n this.dismissable = createDismissableLayer(layer, {\n escape: true,\n focusOutside: false,\n modal: false,\n outsidePress: true,\n scrollLock: false,\n ...(trigger ? { branches: [trigger] } : {}),\n onDismiss: (request) => {\n this.tooltip.toggle(\n false,\n request.reason === 'escape' ? 'escape' : 'pointer',\n request.source,\n );\n },\n });\n }\n\n /** Every attribute the stylesheet reads, and the two listeners hoverable needs. */\n private paint() {\n const layer = this.layerNode();\n if (layer === null) return;\n\n layer.setAttribute('data-align', this.tooltip.resolvedAlign());\n layer.setAttribute('data-size', this.tooltip.resolvedSize());\n layer.setAttribute('data-variant', this.tooltip.resolvedVariant());\n toggleAttribute(layer, 'data-hoverable', this.tooltip.resolvedHoverable());\n toggleAttribute(layer, 'data-open', this.tooltip.isOpen() && this.positioned());\n this.showArrow(layer);\n }\n\n /**\n * The arrow is the consumer's element inside the template, so under\n * `arrow=\"false\"` the layer takes it out — React's arrow renders nothing\n * then — and puts it back in the same place under `true`.\n */\n private showArrow(layer: HTMLElement) {\n const arrow = this.tooltip.arrowNode();\n if (arrow === null) return;\n if (this.tooltip.resolvedArrow()) {\n this.arrowPlace?.replaceWith(arrow);\n this.arrowPlace = null;\n return;\n }\n if (this.arrowPlace !== null || !layer.contains(arrow)) return;\n this.arrowPlace = layer.ownerDocument.createComment('');\n arrow.replaceWith(this.arrowPlace);\n }\n}\n\nfunction toggleAttribute(element: HTMLElement, name: string, present: boolean) {\n if (present) element.setAttribute(name, '');\n else element.removeAttribute(name);\n}\n\n/**\n * The painted surface, and the element the trigger's ARIA relationship names.\n *\n * It is the one part written as a component, because a component is what can\n * carry `styleUrl`: this is where the family's single authored stylesheet\n * enters an Angular application, exactly as every other family here does it.\n */\n@Component({\n selector: '[slTooltipContent]',\n standalone: true,\n exportAs: 'slTooltipContent',\n template: '<ng-content />',\n styleUrl: '../../../styles/src/tooltip/tooltip.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'content',\n role: 'tooltip',\n '[attr.id]': 'tooltip.contentId',\n '[attr.aria-hidden]': 'hidden()',\n },\n})\nexport class SlTooltipContent {\n protected readonly tooltip = inject(SlTooltip);\n\n /** Hidden from the reader under `none`, which is a hint shown and not read. */\n protected readonly hidden = computed(() =>\n this.tooltip.resolvedDescribes() === 'none' ? true : null,\n );\n}\n\n/**\n * The mark that points at the anchor. The family draws it; the positioner\n * measures it and says where it goes. It is hidden from assistive technology,\n * because it is decoration a reader has no use for.\n */\n@Directive({\n selector: '[slTooltipArrow]',\n standalone: true,\n exportAs: 'slTooltipArrow',\n host: {\n 'data-part': 'arrow',\n 'aria-hidden': 'true',\n },\n})\nexport class SlTooltipArrow {\n constructor() {\n const tooltip = inject(SlTooltip);\n const native: HTMLElement = inject(ElementRef).nativeElement;\n tooltip.arrowNode.set(native);\n inject(DestroyRef).onDestroy(() => tooltip.arrowNode.set(null));\n }\n}\n\n/**\n * The layer's own pointer handlers, written on the layer element rather than\n * bound by a directive, because the element is built here rather than by the\n * consumer. Entering the layer cancels the pending close; leaving it starts one\n * again, which is the whole of `hoverable`.\n */\nfunction bindHoverBridge(layer: HTMLElement, tooltip: SlTooltip): () => void {\n const enter = () => {\n if (tooltip.resolvedHoverable()) tooltip.cancelPending();\n };\n const leave = (event: PointerEvent) => {\n if (tooltip.resolvedHoverable()) tooltip.closeAfterDelay(event);\n };\n layer.addEventListener('pointerenter', enter);\n layer.addEventListener('pointerleave', leave);\n return () => {\n layer.removeEventListener('pointerenter', enter);\n layer.removeEventListener('pointerleave', leave);\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slotted-angular-tooltip.mjs","sources":["../../tooltip/src/tooltip-defaults.ts","../../tooltip/src/tooltip.ts","../../tooltip/src/tooltip-parts.ts","../../tooltip/src/slotted-angular-tooltip.ts"],"sourcesContent":["import { setPortalContainer } from '@slotted/core/portal';\nimport type { ChangeRequest } from '@slotted/core/state';\nimport { inject, Injectable, InjectionToken } from '@angular/core';\nimport type { Provider } from '@angular/core';\n\n/**\n * How the hint is painted. `inverse` is a surface opposite to the page, which\n * separates itself in every scheme without an edge; `surface` is the raised\n * panel with a hairline, for a page that is already dark.\n */\nexport type TooltipVariant = 'inverse' | 'surface';\n\n/** The type step the hint is set at. Both move with density. */\nexport type TooltipSize = 'sm' | 'md';\n\n/**\n * What the tooltip is to its trigger. `description` writes `aria-describedby`;\n * `label` writes `aria-labelledby` instead, which is the icon-only button whose\n * only words are the tooltip's — described by it and named by nothing, that\n * button is announced as \"button\".\n *\n * `none` writes neither and hides the content from the reader: the hint that\n * repeats words the trigger already carries is read twice under either\n * reference.\n */\nexport type TooltipDescribes = 'description' | 'label' | 'none';\n\n/** What opens it. `hover` also opens on keyboard focus, and instantly. */\nexport type TooltipOpenOn = 'hover' | 'focus' | 'manual';\n\n/** The edge of the anchor the layer prefers. The two logical values mirror. */\nexport type TooltipSide = 'top' | 'bottom' | 'inline-start' | 'inline-end' | 'left' | 'right';\n\n/** Where the layer sits along the side it took. */\nexport type TooltipAlign = 'start' | 'center' | 'end';\n\n/** When the layer exists. `describes=\"label\"` forces `eager`. */\nexport type TooltipMount = 'active' | 'lazy' | 'eager';\n\n/** `fixed` for a layer inside `overflow: hidden`, `absolute` for one inside a transform. */\nexport type TooltipStrategy = 'absolute' | 'fixed';\n\n/**\n * What `openChangeRequest` carries: the value asked for, the previous one, the\n * reason, the originating event and `cancel()`. The name React's binding gives\n * the same request.\n */\nexport type TooltipChangeRequest = ChangeRequest<boolean>;\n\n/** Why the hint opened or closed. */\nexport type TooltipOpenReason = Extract<\n ChangeRequest<boolean>['reason'],\n 'pointer' | 'keyboard' | 'escape' | 'blur' | 'programmatic'\n>;\n\n/** What an application sets once for every tooltip under it. */\nexport interface TooltipDefaults {\n align: TooltipAlign;\n alignOffset: number;\n arrow: boolean;\n arrowPadding: number;\n closeDelay: number;\n closeOnPress: boolean;\n collisionPadding: number;\n describes: TooltipDescribes;\n flip: boolean;\n groupDelay: number;\n hideWhenDetached: boolean;\n hoverable: boolean;\n mount: TooltipMount;\n openDelay: number;\n openOn: TooltipOpenOn;\n portal: boolean;\n shift: boolean;\n side: TooltipSide;\n sideOffset: number;\n size: TooltipSize;\n strategy: TooltipStrategy;\n touchDelay: number;\n variant: TooltipVariant;\n /** Opens only while the trigger's own content is cut by its box. */\n whenClipped: boolean;\n}\n\n/**\n * The numbers, and why they are these numbers.\n *\n * `openDelay` is long enough that a pointer crossing a toolbar opens nothing\n * and short enough that a deliberate hover is answered; `closeDelay` is the\n * window the pointer has to travel onto the layer, and zero makes a hoverable\n * tooltip unreachable; `groupDelay` is what stops a row of icon buttons\n * charging the warmup once per button.\n */\nexport const TOOLTIP_FALLBACK: TooltipDefaults = {\n align: 'center',\n alignOffset: 0,\n arrow: true,\n arrowPadding: 8,\n closeDelay: 150,\n closeOnPress: true,\n collisionPadding: 8,\n describes: 'description',\n flip: true,\n groupDelay: 400,\n hideWhenDetached: true,\n hoverable: true,\n mount: 'active',\n openDelay: 600,\n openOn: 'hover',\n portal: true,\n shift: true,\n side: 'top',\n sideOffset: 0,\n size: 'md',\n strategy: 'absolute',\n touchDelay: 500,\n variant: 'inverse',\n whenClipped: false,\n};\n\nexport const TOOLTIP_DEFAULTS = new InjectionToken<TooltipDefaults>('slotted tooltip defaults', {\n providedIn: 'root',\n factory: () => TOOLTIP_FALLBACK,\n});\n\n/**\n * When the last tooltip in this injector closed. A tooltip asked to open inside\n * `groupDelay` of that moment opens in the same task, so reading a row of icon\n * buttons pays the warmup once. It is held per injector rather than per\n * tooltip, because a value held per tooltip could not say what \"the next one\"\n * means.\n */\n@Injectable({ providedIn: 'root' })\nexport class SlTooltipGroup {\n lastClosedAt = 0;\n}\n\n/**\n * An application decides once how its tooltips behave and look. A tooltip that\n * states any of them itself still wins.\n *\n * What is stated here is written over the defaults already in force rather than\n * over the fallback, which is what React's provider does and what a family that\n * sets two axes for itself needs: a column header asking for `describes=\"none\"`\n * would otherwise hand the application's own delays back to the fallback.\n *\n * The group is provided beside the defaults, so a component that sets its own\n * defaults also gets its own warmup window — the same scoping React's provider\n * gives.\n */\nexport function provideTooltipDefaults(defaults: Partial<TooltipDefaults>): Provider[] {\n return [\n {\n provide: TOOLTIP_DEFAULTS,\n useFactory: (): TooltipDefaults => ({\n ...(inject(TOOLTIP_DEFAULTS, { optional: true, skipSelf: true }) ?? TOOLTIP_FALLBACK),\n ...defaults,\n }),\n },\n SlTooltipGroup,\n ];\n}\n\n/** What a tooltip renders as here, before it states anything of its own. */\nexport function injectTooltipDefaults(): TooltipDefaults {\n return inject(TOOLTIP_DEFAULTS);\n}\n\n/**\n * Whether `provideSlottedPortalContainer` named a container in this injector.\n * A factory runs only when something injects its token, so `slTooltipLayer`\n * injects this one before it builds a layer.\n */\nexport const SLOTTED_PORTAL_CONTAINER = new InjectionToken<boolean>('slotted portal container');\n\n/**\n * Where every layer is rendered, for the whole application. It calls\n * `setPortalContainer` from `@slotted/core/portal`, which is per document, so\n * an application shell that builds its own stacking context names it once.\n */\nexport function provideSlottedPortalContainer(container: () => Element | null): Provider {\n return {\n provide: SLOTTED_PORTAL_CONTAINER,\n useFactory: () => {\n setPortalContainer(container());\n return true;\n },\n };\n}\n\n/**\n * Application-scoped rather than module-scoped, for the reason `field` records:\n * a module-level counter produces colliding sequences when two applications\n * render in one server process, and the server and the client sequences have to\n * match for hydration.\n */\n@Injectable({ providedIn: 'root' })\nexport class SlTooltipIdFactory {\n private count = 0;\n\n next() {\n this.count += 1;\n return `slotted-tooltip-${this.count}`;\n }\n}\n","import { isClipped } from '@slotted/core/overflow';\nimport { createControllable } from '@slotted/core/state';\nimport {\n booleanAttribute,\n computed,\n DestroyRef,\n Directive,\n effect,\n inject,\n input,\n model,\n numberAttribute,\n output,\n type OnInit,\n signal,\n untracked,\n} from '@angular/core';\n\nimport { injectTooltipDefaults, SlTooltipGroup, SlTooltipIdFactory } from './tooltip-defaults';\nimport type {\n TooltipAlign,\n TooltipChangeRequest,\n TooltipDescribes,\n TooltipMount,\n TooltipOpenOn,\n TooltipOpenReason,\n TooltipSide,\n TooltipSize,\n TooltipStrategy,\n TooltipVariant,\n} from './tooltip-defaults';\n\nexport type {\n TooltipAlign,\n TooltipChangeRequest,\n TooltipDefaults,\n TooltipDescribes,\n TooltipMount,\n TooltipOpenOn,\n TooltipOpenReason,\n TooltipSide,\n TooltipSize,\n TooltipStrategy,\n TooltipVariant,\n} from './tooltip-defaults';\n\n/** Unstated stays unstated, so a tooltip defers to the provider rather than to `false`. */\nconst optionalBoolean = (state: boolean | string | undefined) =>\n state === undefined ? undefined : booleanAttribute(state);\n\n/** Unstated stays unstated, for the same reason, on a number. */\nconst optionalNumber = (value: number | string | undefined) =>\n value === undefined ? undefined : numberAttribute(value);\n\n/**\n * A short, non-interactive sentence about the element under the pointer or\n * under focus.\n *\n * It is written on an `ng-container`, because it renders nothing: the trigger\n * stays where the consumer wrote it and the layer is portalled to the end of\n * the document, so no one element could hold both. What it holds is the state,\n * the delays, and the values every part reads.\n *\n * The layer never takes focus and never holds a control. The APG's tooltip\n * pattern says so, and names the non-modal dialog for the other case, which is\n * `slPopover`.\n */\n@Directive({\n selector: '[slTooltip]',\n standalone: true,\n exportAs: 'slTooltip',\n})\nexport class SlTooltip implements OnInit {\n /** Whether the hint is showing. Two-way, so a template may bind it directly. */\n readonly open = model<boolean>(false);\n /** The state an uncontrolled tooltip starts in, read once in `ngOnInit`. */\n readonly defaultOpen = input(false, { transform: booleanAttribute });\n /** The tooltip never opens. The trigger's own `disabled` is the consumer's. */\n readonly disabled = input(false, { transform: booleanAttribute });\n /**\n * Opens only while the trigger's own content is cut by its box — a column\n * header narrowed to `Op…`, a breadcrumb in a rail. The measurement is taken\n * at the moment the hint would open, so a column dragged wider stops opening\n * one without anything being told.\n */\n readonly whenClipped = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: optionalBoolean,\n });\n\n readonly variant = input<TooltipVariant | undefined>(undefined);\n readonly size = input<TooltipSize | undefined>(undefined);\n readonly describes = input<TooltipDescribes | undefined>(undefined);\n readonly openOn = input<TooltipOpenOn | undefined>(undefined);\n readonly side = input<TooltipSide | undefined>(undefined);\n readonly align = input<TooltipAlign | undefined>(undefined);\n readonly mount = input<TooltipMount | undefined>(undefined);\n readonly strategy = input<TooltipStrategy | undefined>(undefined);\n\n readonly arrow = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: optionalBoolean,\n });\n readonly hoverable = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: optionalBoolean,\n });\n readonly closeOnPress = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: optionalBoolean,\n });\n readonly flip = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: optionalBoolean,\n });\n readonly shift = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: optionalBoolean,\n });\n readonly hideWhenDetached = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: optionalBoolean,\n });\n readonly portal = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: optionalBoolean,\n });\n\n readonly openDelay = input<number | undefined, number | string | undefined>(undefined, {\n transform: optionalNumber,\n });\n readonly closeDelay = input<number | undefined, number | string | undefined>(undefined, {\n transform: optionalNumber,\n });\n readonly touchDelay = input<number | undefined, number | string | undefined>(undefined, {\n transform: optionalNumber,\n });\n readonly sideOffset = input<number | undefined, number | string | undefined>(undefined, {\n transform: optionalNumber,\n });\n readonly alignOffset = input<number | undefined, number | string | undefined>(undefined, {\n transform: optionalNumber,\n });\n readonly collisionPadding = input<number | undefined, number | string | undefined>(undefined, {\n transform: optionalNumber,\n });\n readonly arrowPadding = input<number | undefined, number | string | undefined>(undefined, {\n transform: optionalNumber,\n });\n\n /** One output for one transition, carrying the reason and the event. */\n readonly openChangeRequest = output<TooltipChangeRequest>();\n\n private readonly defaults = injectTooltipDefaults();\n private readonly group = inject(SlTooltipGroup);\n private readonly destroyRef = inject(DestroyRef);\n\n readonly contentId = `${inject(SlTooltipIdFactory).next()}-content`;\n\n /** The elements the parts register, which the layer measures and listens to. */\n readonly triggerNode = signal<HTMLElement | null>(null);\n readonly arrowNode = signal<HTMLElement | null>(null);\n\n readonly isOpen = computed(() => this.open() && !this.disabled());\n\n readonly resolvedVariant = computed(() => this.variant() ?? this.defaults.variant);\n readonly resolvedSize = computed(() => this.size() ?? this.defaults.size);\n readonly resolvedDescribes = computed(() => this.describes() ?? this.defaults.describes);\n readonly resolvedWhenClipped = computed(() => this.whenClipped() ?? this.defaults.whenClipped);\n readonly resolvedOpenOn = computed(() => this.openOn() ?? this.defaults.openOn);\n readonly resolvedSide = computed(() => this.side() ?? this.defaults.side);\n readonly resolvedAlign = computed(() => this.align() ?? this.defaults.align);\n readonly resolvedStrategy = computed(() => this.strategy() ?? this.defaults.strategy);\n readonly resolvedArrow = computed(() => (this.arrow() ?? this.defaults.arrow) === true);\n readonly resolvedHoverable = computed(\n () => (this.hoverable() ?? this.defaults.hoverable) === true,\n );\n readonly resolvedCloseOnPress = computed(\n () => (this.closeOnPress() ?? this.defaults.closeOnPress) === true,\n );\n readonly resolvedFlip = computed(() => (this.flip() ?? this.defaults.flip) === true);\n readonly resolvedShift = computed(() => (this.shift() ?? this.defaults.shift) === true);\n readonly resolvedHideWhenDetached = computed(\n () => (this.hideWhenDetached() ?? this.defaults.hideWhenDetached) === true,\n );\n readonly resolvedPortal = computed(() => (this.portal() ?? this.defaults.portal) === true);\n readonly resolvedSideOffset = computed(() => this.sideOffset() ?? this.defaults.sideOffset);\n readonly resolvedAlignOffset = computed(() => this.alignOffset() ?? this.defaults.alignOffset);\n readonly resolvedCollisionPadding = computed(\n () => this.collisionPadding() ?? this.defaults.collisionPadding,\n );\n readonly resolvedArrowPadding = computed(() => this.arrowPadding() ?? this.defaults.arrowPadding);\n\n /**\n * Under `label` the layer is the trigger's accessible name, so it has to be\n * in the document before it is ever opened. Forcing the axis is deliberate:\n * the alternative is a button silently announced as \"button\".\n */\n readonly resolvedMount = computed<TooltipMount>(() =>\n this.resolvedDescribes() === 'label' ? 'eager' : (this.mount() ?? this.defaults.mount),\n );\n\n private readonly everOpened = signal(false);\n readonly seen = computed(() => this.everOpened() || this.isOpen());\n\n /**\n * One timer for the whole family. An open waiting on `openDelay`, a close\n * waiting on `closeDelay` and a long press waiting on `touchDelay` are never\n * pending at once — each cancels the others.\n */\n private timer: ReturnType<typeof setTimeout> | undefined;\n\n constructor() {\n this.destroyRef.onDestroy(() => this.cancelPending());\n /** Disabling cancels a waiting open and drops an open one, so enabling opens nothing. */\n effect(() => {\n if (!this.disabled()) return;\n untracked(() => {\n this.cancelPending();\n if (this.open()) this.open.set(false);\n });\n });\n }\n\n /**\n * Read here rather than in the constructor, because inputs are not set yet\n * there, and once: a later change to it is not new state.\n */\n ngOnInit() {\n if (this.defaultOpen() && !this.open()) this.open.set(true);\n }\n\n cancelPending() {\n if (this.timer !== undefined) clearTimeout(this.timer);\n this.timer = undefined;\n }\n\n /** Opens after `openDelay`, or in the same task inside the group window. */\n openAfterDelay(source?: Event) {\n this.cancelPending();\n const delay = this.openDelay() ?? this.defaults.openDelay;\n const sinceLast = Date.now() - this.group.lastClosedAt;\n if (delay <= 0 || sinceLast < this.defaults.groupDelay) {\n this.toggle(true, 'pointer', source);\n return;\n }\n this.timer = setTimeout(() => this.toggle(true, 'pointer', source), delay);\n }\n\n /** Closes after `closeDelay`, which is the window the pointer has to reach the layer. */\n closeAfterDelay(source?: Event) {\n this.cancelPending();\n const delay = this.closeDelay() ?? this.defaults.closeDelay;\n if (delay <= 0) {\n this.toggle(false, 'pointer', source);\n return;\n }\n this.timer = setTimeout(() => this.toggle(false, 'pointer', source), delay);\n }\n\n /** A coarse pointer has no hover, so a press held still opens the hint. */\n pressAndHold(source?: Event) {\n this.cancelPending();\n const delay = this.touchDelay() ?? this.defaults.touchDelay;\n this.timer = setTimeout(() => this.toggle(true, 'pointer', source), delay);\n }\n\n /** Opens now, ignoring every delay. One of the two imperative actions. */\n show() {\n this.toggle(true, 'programmatic');\n }\n\n /** Closes now. */\n hide() {\n this.toggle(false, 'programmatic');\n }\n\n toggle(next: boolean, reason: TooltipOpenReason, source?: Event) {\n this.cancelPending();\n if (next === this.isOpen()) return;\n /**\n * Refused rather than recorded: an open granted while disabled is hidden by\n * `isOpen`, and the leave that follows finds nothing to close, so it would\n * surface the moment `disabled` turned false.\n */\n if (next && this.disabled()) return;\n /**\n * Measured here rather than watched: the answer is needed at the moment the\n * hint would open, and a box measured then is never a box two column drags\n * old.\n */\n const trigger = this.triggerNode();\n if (next && this.resolvedWhenClipped() && trigger !== null && !isClipped(trigger)) return;\n\n let cancelled = false;\n const state = createControllable<boolean>({\n initial: this.isOpen(),\n onRequest: (request) => {\n this.openChangeRequest.emit(request);\n cancelled = request.cancelled;\n },\n });\n const moved = state.request(next, reason, source);\n if (cancelled) return;\n\n if (next) this.everOpened.set(true);\n /**\n * The window the next tooltip opens instantly inside starts when this one\n * closes, so a reader crossing a toolbar pays one warmup.\n */\n if (!next) this.group.lastClosedAt = Date.now();\n if (moved) this.open.set(next);\n }\n}\n","import { writeSelectorKey } from '@slotted/core/selector-key';\nimport { createDismissableLayer } from '@slotted/core/dismissable-layer';\nimport type { DismissableLayerHandle } from '@slotted/core/dismissable-layer';\nimport { createPortalRoot } from '@slotted/core/portal';\nimport type { PortalRootHandle } from '@slotted/core/portal';\nimport { createPositioner } from '@slotted/core/positioner';\nimport type { PositionerHandle } from '@slotted/core/positioner';\nimport { createPresence } from '@slotted/core/presence';\nimport type { PresenceStatus } from '@slotted/core/presence';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n Directive,\n effect,\n ElementRef,\n inject,\n PLATFORM_ID,\n signal,\n TemplateRef,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport type { EmbeddedViewRef } from '@angular/core';\n\nimport { SlTooltip } from './tooltip';\nimport { SLOTTED_PORTAL_CONTAINER } from './tooltip-defaults';\n\n/**\n * The element the hint is about.\n *\n * The directive goes on the consumer's own control, which is what this\n * ecosystem composes with. It writes the ARIA relationship and `data-open` and\n * **no `data-part`**: `data-part` names a part of the family that owns the\n * element, and sixteen stylesheets in this repository key on\n * `[data-part='root']`, so claiming a `slBadge` or a `slCheckbox` used as a\n * trigger would unstyle it and nothing would report it.\n *\n * A control the page disabled with the native attribute fires no pointer events\n * at all, so the one explanation of why it is disabled would be unreachable.\n * The reference page shows the two shapes that work: `aria-disabled` on a\n * control that stays focusable, or a wrapping element carrying the trigger.\n */\n@Directive({\n selector: '[slTooltipTrigger]',\n standalone: true,\n exportAs: 'slTooltipTrigger',\n host: {\n '[attr.aria-describedby]': 'describedBy()',\n '[attr.aria-labelledby]': 'labelledBy()',\n '[attr.data-open]': \"tooltip.isOpen() ? '' : null\",\n '(pointerenter)': 'onPointerEnter($event)',\n '(pointerleave)': 'onPointerLeave($event)',\n '(pointerdown)': 'onPointerDown($event)',\n '(pointerup)': 'onPointerRelease()',\n '(pointercancel)': 'onPointerRelease()',\n '(focus)': 'onFocus($event)',\n '(blur)': 'onBlur($event)',\n '(click)': 'onClick($event)',\n },\n})\nexport class SlTooltipTrigger {\n protected readonly tooltip = inject(SlTooltip);\n private readonly native: HTMLElement = inject(ElementRef).nativeElement;\n private holding = false;\n\n /**\n * Named by the layer under `label`, described by it otherwise. Under `none`\n * the trigger references nothing: it already says the words.\n */\n private readonly names = computed(\n () =>\n this.tooltip.resolvedDescribes() !== 'none' &&\n (this.tooltip.isOpen() || this.tooltip.resolvedDescribes() === 'label'),\n );\n protected readonly describedBy = computed(() =>\n this.names() && this.tooltip.resolvedDescribes() === 'description'\n ? this.tooltip.contentId\n : null,\n );\n protected readonly labelledBy = computed(() =>\n this.names() && this.tooltip.resolvedDescribes() === 'label' ? this.tooltip.contentId : null,\n );\n\n constructor() {\n this.tooltip.triggerNode.set(this.native);\n inject(DestroyRef).onDestroy(() => this.tooltip.triggerNode.set(null));\n }\n\n protected onPointerEnter(event: PointerEvent) {\n if (this.tooltip.resolvedOpenOn() !== 'hover' || event.pointerType === 'touch') return;\n this.tooltip.openAfterDelay(event);\n }\n\n protected onPointerLeave(event: PointerEvent) {\n this.holding = false;\n if (this.tooltip.resolvedOpenOn() === 'manual') return;\n this.tooltip.closeAfterDelay(event);\n }\n\n protected onPointerDown(event: PointerEvent) {\n if (event.pointerType === 'touch') {\n this.holding = true;\n this.tooltip.pressAndHold(event);\n return;\n }\n if (this.tooltip.resolvedCloseOnPress() && this.tooltip.isOpen()) {\n this.tooltip.toggle(false, 'pointer', event);\n }\n }\n\n protected onPointerRelease() {\n if (!this.holding) return;\n this.holding = false;\n this.tooltip.cancelPending();\n }\n\n /**\n * `:focus-visible` rather than every focus. A pointer press focuses a button\n * too, and a tooltip opened by it would arrive before the delay it was given\n * and stay after the press that was meant to dismiss it.\n */\n protected onFocus(event: FocusEvent) {\n if (this.tooltip.resolvedOpenOn() === 'manual') return;\n if (!this.native.matches(':focus-visible')) return;\n this.tooltip.toggle(true, 'keyboard', event);\n }\n\n protected onBlur(event: FocusEvent) {\n if (this.tooltip.resolvedOpenOn() === 'manual') return;\n this.tooltip.toggle(false, 'blur', event);\n }\n\n /**\n * A click synthesised by the keyboard reports no detail; a real one reports\n * the click count. It is how `Enter` and `Space` are told from a press\n * without a key listener existing for either.\n */\n protected onClick(event: MouseEvent) {\n if (!this.tooltip.resolvedCloseOnPress() || !this.tooltip.isOpen()) return;\n this.tooltip.toggle(false, event.detail === 0 ? 'keyboard' : 'pointer', event);\n }\n}\n\n/**\n * The positioned layer, built from a template rather than from an element.\n *\n * `mount=\"active\"` means the layer exists only while it is open, and a\n * component cannot remove its own host element — so the consumer writes an\n * `ng-template` and this directive builds the layer around the stamped view.\n * It is the shape `ng-template[slCollapsibleContent]` already uses here, and\n * Angular Material's `matExpansionPanelContent` before it.\n *\n * The element it builds is what `packages/core/src/positioner` writes\n * `position`, `left` and `top` onto, and the one that scales and fades; its\n * padding is the gap the pointer crosses onto a hoverable tooltip.\n */\n@Directive({\n selector: 'ng-template[slTooltipLayer]',\n standalone: true,\n exportAs: 'slTooltipLayer',\n})\nexport class SlTooltipLayer {\n private readonly tooltip = inject(SlTooltip);\n private readonly template = inject(TemplateRef<unknown>);\n private readonly viewContainer = inject(ViewContainerRef);\n private readonly comment: Comment = this.viewContainer.element.nativeElement;\n /**\n * Angular's server document is not the page. There the layer stays where the\n * template wrote it, as React's server markup has it, and nothing measures,\n * stacks or moves it into a portal.\n */\n private readonly browser = isPlatformBrowser(inject(PLATFORM_ID));\n /** Where the arrow stood in the layer while `arrow` is false. */\n private arrowPlace: Comment | null = null;\n\n /**\n * A signal rather than a field, and the reason is a defect the first spec run\n * found: the effects that place, stack and paint the layer all read it, and\n * with a plain field none of them re-ran when `build()` filled it in a later\n * flush. The layer existed and carried no attribute the stylesheet reads.\n */\n private readonly layerNode = signal<HTMLElement | null>(null);\n private view: EmbeddedViewRef<unknown> | null = null;\n private portal: PortalRootHandle | null = null;\n private positioner: PositionerHandle | null = null;\n private dismissable: DismissableLayerHandle | null = null;\n private releaseBridge: (() => void) | null = null;\n\n private readonly status = signal<PresenceStatus>('unmounted');\n private readonly positioned = signal(false);\n private readonly presence = createPresence({\n present: false,\n onStatusChange: (next) => this.status.set(next),\n });\n\n /**\n * `active` drops the layer after the exit, `lazy` keeps it once it has been\n * open, `eager` never removes it — which is what `describes=\"label\"` forces,\n * because an accessible name has to exist before it is read.\n */\n readonly mounted = computed(() => {\n const mount = this.tooltip.resolvedMount();\n if (mount === 'eager') return true;\n if (mount === 'lazy') return this.tooltip.seen();\n return this.status() !== 'unmounted';\n });\n\n constructor() {\n /* Injected for its side effect: the factory of\n `provideSlottedPortalContainer` names the document's portal container,\n and runs only when something asks for its token — before the first layer\n asks `createPortalRoot` for a container. */\n inject(SLOTTED_PORTAL_CONTAINER, { optional: true });\n effect(() => this.presence.sync(this.tooltip.isOpen()));\n effect(() => (this.mounted() ? this.build() : this.teardown()));\n effect(() => this.place());\n effect(() => this.stack());\n effect(() => this.paint());\n\n inject(DestroyRef).onDestroy(() => {\n this.presence.destroy();\n this.teardown();\n });\n }\n\n /** Measures and places the layer again. The imperative action of this part. */\n reposition() {\n void this.positioner?.update();\n }\n\n private build() {\n if (this.layerNode() !== null) return;\n\n const document = this.comment.ownerDocument;\n const layer = document.createElement('div');\n writeSelectorKey(layer, 'ui', 'tooltip');\n writeSelectorKey(layer, 'part', 'root');\n\n const view = this.viewContainer.createEmbeddedView(this.template);\n view.detectChanges();\n for (const node of view.rootNodes as Node[]) layer.appendChild(node);\n\n const portal = this.browser\n ? createPortalRoot({\n origin: this.tooltip.triggerNode(),\n disabled: !this.tooltip.resolvedPortal(),\n })\n : null;\n const container = portal?.container ?? this.comment.parentNode;\n if (container === this.comment.parentNode) container?.insertBefore(layer, this.comment);\n else container?.appendChild(layer);\n\n this.view = view;\n this.portal = portal;\n this.releaseBridge = bindHoverBridge(layer, this.tooltip);\n this.presence.setNode(layer);\n this.layerNode.set(layer);\n }\n\n private teardown() {\n this.releaseBridge?.();\n this.releaseBridge = null;\n this.positioner?.destroy();\n this.positioner = null;\n this.dismissable?.destroy();\n this.dismissable = null;\n this.presence.setNode(null);\n this.layerNode()?.remove();\n this.layerNode.set(null);\n this.view?.destroy();\n this.view = null;\n this.portal?.release();\n this.portal = null;\n this.arrowPlace = null;\n this.positioned.set(false);\n }\n\n /** Rebuilt whenever an option it was created with changes. */\n private place() {\n const layer = this.layerNode();\n const anchor = this.tooltip.triggerNode();\n const options = {\n align: this.tooltip.resolvedAlign(),\n alignOffset: this.tooltip.resolvedAlignOffset(),\n boundaryPadding: this.tooltip.resolvedCollisionPadding(),\n flip: this.tooltip.resolvedFlip(),\n hideWhenDetached: this.tooltip.resolvedHideWhenDetached(),\n shift: this.tooltip.resolvedShift(),\n side: this.tooltip.resolvedSide(),\n sideOffset: this.tooltip.resolvedSideOffset(),\n strategy: this.tooltip.resolvedStrategy(),\n };\n const arrow = this.tooltip.resolvedArrow() ? this.tooltip.arrowNode() : null;\n\n this.positioner?.destroy();\n this.positioner = null;\n if (layer === null || anchor === null || !this.browser) return;\n\n this.positioner = createPositioner(anchor, layer, {\n ...options,\n ...(arrow ? { arrow, arrowPadding: this.tooltip.resolvedArrowPadding() } : {}),\n });\n /* `data-open` is written on the element in the task that opened the tip,\n with the position, rather than by the effect on the next check. */\n void this.positioner.update().then(() => {\n if (this.tooltip.isOpen()) layer.setAttribute('data-open', '');\n this.positioned.set(true);\n });\n }\n\n /**\n * The layer joins the single stack only while it is open, so its depth is its\n * real position among the layers a reader has opened. Escape reaches the\n * topmost layer alone; the trigger is a branch, so pressing it is not an\n * outside press and the family closes on it deliberately instead.\n */\n private stack() {\n const layer = this.layerNode();\n const open = this.tooltip.isOpen();\n const trigger = this.tooltip.triggerNode();\n\n this.dismissable?.destroy();\n this.dismissable = null;\n if (layer === null || !open || !this.browser) return;\n\n this.dismissable = createDismissableLayer(layer, {\n escape: true,\n focusOutside: false,\n modal: false,\n outsidePress: true,\n scrollLock: false,\n ...(trigger ? { branches: [trigger] } : {}),\n onDismiss: (request) => {\n this.tooltip.toggle(\n false,\n request.reason === 'escape' ? 'escape' : 'pointer',\n request.source,\n );\n },\n });\n }\n\n /** Every attribute the stylesheet reads, and the two listeners hoverable needs. */\n private paint() {\n const layer = this.layerNode();\n if (layer === null) return;\n\n layer.setAttribute('data-align', this.tooltip.resolvedAlign());\n layer.setAttribute('data-size', this.tooltip.resolvedSize());\n layer.setAttribute('data-variant', this.tooltip.resolvedVariant());\n toggleAttribute(layer, 'data-hoverable', this.tooltip.resolvedHoverable());\n toggleAttribute(layer, 'data-open', this.tooltip.isOpen() && this.positioned());\n this.showArrow(layer);\n }\n\n /**\n * The arrow is the consumer's element inside the template, so under\n * `arrow=\"false\"` the layer takes it out — React's arrow renders nothing\n * then — and puts it back in the same place under `true`.\n */\n private showArrow(layer: HTMLElement) {\n const arrow = this.tooltip.arrowNode();\n if (arrow === null) return;\n if (this.tooltip.resolvedArrow()) {\n this.arrowPlace?.replaceWith(arrow);\n this.arrowPlace = null;\n return;\n }\n if (this.arrowPlace !== null || !layer.contains(arrow)) return;\n this.arrowPlace = layer.ownerDocument.createComment('');\n arrow.replaceWith(this.arrowPlace);\n }\n}\n\nfunction toggleAttribute(element: HTMLElement, name: string, present: boolean) {\n if (present) element.setAttribute(name, '');\n else element.removeAttribute(name);\n}\n\n/**\n * The painted surface, and the element the trigger's ARIA relationship names.\n *\n * It is the one part written as a component, because a component is what can\n * carry `styleUrl`: this is where the family's single authored stylesheet\n * enters an Angular application, exactly as every other family here does it.\n */\n@Component({\n selector: '[slTooltipContent]',\n standalone: true,\n exportAs: 'slTooltipContent',\n template: '<ng-content />',\n styleUrl: '../../../styles/src/tooltip/tooltip.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'content',\n 'data-part-content': '',\n role: 'tooltip',\n '[attr.id]': 'tooltip.contentId',\n '[attr.aria-hidden]': 'hidden()',\n },\n})\nexport class SlTooltipContent {\n protected readonly tooltip = inject(SlTooltip);\n\n /** Hidden from the reader under `none`, which is a hint shown and not read. */\n protected readonly hidden = computed(() =>\n this.tooltip.resolvedDescribes() === 'none' ? true : null,\n );\n}\n\n/**\n * The mark that points at the anchor. The family draws it; the positioner\n * measures it and says where it goes. It is hidden from assistive technology,\n * because it is decoration a reader has no use for.\n */\n@Directive({\n selector: '[slTooltipArrow]',\n standalone: true,\n exportAs: 'slTooltipArrow',\n host: {\n 'data-part': 'arrow',\n 'data-part-arrow': '',\n 'aria-hidden': 'true',\n },\n})\nexport class SlTooltipArrow {\n constructor() {\n const tooltip = inject(SlTooltip);\n const native: HTMLElement = inject(ElementRef).nativeElement;\n tooltip.arrowNode.set(native);\n inject(DestroyRef).onDestroy(() => tooltip.arrowNode.set(null));\n }\n}\n\n/**\n * The layer's own pointer handlers, written on the layer element rather than\n * bound by a directive, because the element is built here rather than by the\n * consumer. Entering the layer cancels the pending close; leaving it starts one\n * again, which is the whole of `hoverable`.\n */\nfunction bindHoverBridge(layer: HTMLElement, tooltip: SlTooltip): () => void {\n const enter = () => {\n if (tooltip.resolvedHoverable()) tooltip.cancelPending();\n };\n const leave = (event: PointerEvent) => {\n if (tooltip.resolvedHoverable()) tooltip.closeAfterDelay(event);\n };\n layer.addEventListener('pointerenter', enter);\n layer.addEventListener('pointerleave', leave);\n return () => {\n layer.removeEventListener('pointerenter', enter);\n layer.removeEventListener('pointerleave', leave);\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}