@slotted/angular 0.1.0-beta.7 → 0.1.0-beta.9

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 (421) hide show
  1. package/docs/calendar.json +1 -1
  2. package/docs/code-block.json +92 -92
  3. package/docs/code-block.md +69 -69
  4. package/docs/currency-field.json +7 -0
  5. package/docs/currency-field.md +1 -0
  6. package/docs/data-grid.examples.md +1 -1
  7. package/docs/data-grid.json +21 -4
  8. package/docs/data-grid.md +1 -1
  9. package/docs/data-grid.props.md +5 -3
  10. package/docs/dialog.examples.md +138 -136
  11. package/docs/dialog.json +8 -8
  12. package/docs/filter-bar.json +118 -118
  13. package/docs/filter-bar.md +79 -79
  14. package/docs/guidelines/async-feedback.md +10 -0
  15. package/docs/guidelines/composition.md +11 -7
  16. package/docs/guidelines/index.md +6 -1
  17. package/docs/guidelines/list-pages.md +30 -0
  18. package/docs/guidelines/overviews.md +10 -0
  19. package/docs/markdown.json +79 -79
  20. package/docs/markdown.md +65 -65
  21. package/docs/page-header.json +1 -1
  22. package/docs/skills/compose-screen/SKILL.md +22 -10
  23. package/docs/skills/review-screen/SKILL.md +6 -0
  24. package/docs/skills/waiting-states/SKILL.md +4 -1
  25. package/docs/tags-input.json +28 -2
  26. package/docs/tags-input.md +4 -1
  27. package/docs/timeline.json +131 -131
  28. package/docs/timeline.md +123 -123
  29. package/fesm2022/slotted-angular-accordion.mjs +4 -2
  30. package/fesm2022/slotted-angular-accordion.mjs.map +1 -1
  31. package/fesm2022/slotted-angular-action-bar.mjs +21 -10
  32. package/fesm2022/slotted-angular-action-bar.mjs.map +1 -1
  33. package/fesm2022/slotted-angular-action-sheet.mjs +42 -29
  34. package/fesm2022/slotted-angular-action-sheet.mjs.map +1 -1
  35. package/fesm2022/slotted-angular-alert.mjs +17 -11
  36. package/fesm2022/slotted-angular-alert.mjs.map +1 -1
  37. package/fesm2022/slotted-angular-app-shell.mjs +52 -40
  38. package/fesm2022/slotted-angular-app-shell.mjs.map +1 -1
  39. package/fesm2022/slotted-angular-aspect-ratio.mjs +4 -2
  40. package/fesm2022/slotted-angular-aspect-ratio.mjs.map +1 -1
  41. package/fesm2022/slotted-angular-attachment.mjs +31 -20
  42. package/fesm2022/slotted-angular-attachment.mjs.map +1 -1
  43. package/fesm2022/slotted-angular-avatar-group.mjs +9 -6
  44. package/fesm2022/slotted-angular-avatar-group.mjs.map +1 -1
  45. package/fesm2022/slotted-angular-avatar.mjs +9 -6
  46. package/fesm2022/slotted-angular-avatar.mjs.map +1 -1
  47. package/fesm2022/slotted-angular-badge.mjs +14 -10
  48. package/fesm2022/slotted-angular-badge.mjs.map +1 -1
  49. package/fesm2022/slotted-angular-breadcrumb.mjs +26 -18
  50. package/fesm2022/slotted-angular-breadcrumb.mjs.map +1 -1
  51. package/fesm2022/slotted-angular-button-group.mjs +7 -4
  52. package/fesm2022/slotted-angular-button-group.mjs.map +1 -1
  53. package/fesm2022/slotted-angular-button.mjs +53 -25
  54. package/fesm2022/slotted-angular-button.mjs.map +1 -1
  55. package/fesm2022/slotted-angular-calendar.mjs +82 -30
  56. package/fesm2022/slotted-angular-calendar.mjs.map +1 -1
  57. package/fesm2022/slotted-angular-card.mjs +18 -16
  58. package/fesm2022/slotted-angular-card.mjs.map +1 -1
  59. package/fesm2022/slotted-angular-carousel.mjs +22 -11
  60. package/fesm2022/slotted-angular-carousel.mjs.map +1 -1
  61. package/fesm2022/slotted-angular-cascader.mjs +158 -64
  62. package/fesm2022/slotted-angular-cascader.mjs.map +1 -1
  63. package/fesm2022/slotted-angular-chart.mjs +4 -2
  64. package/fesm2022/slotted-angular-chart.mjs.map +1 -1
  65. package/fesm2022/slotted-angular-checkbox-group.mjs +5 -3
  66. package/fesm2022/slotted-angular-checkbox-group.mjs.map +1 -1
  67. package/fesm2022/slotted-angular-checkbox.mjs +13 -8
  68. package/fesm2022/slotted-angular-checkbox.mjs.map +1 -1
  69. package/fesm2022/slotted-angular-code-block.mjs +29 -15
  70. package/fesm2022/slotted-angular-code-block.mjs.map +1 -1
  71. package/fesm2022/slotted-angular-collapsible.mjs +20 -15
  72. package/fesm2022/slotted-angular-collapsible.mjs.map +1 -1
  73. package/fesm2022/slotted-angular-color-picker.mjs +77 -22
  74. package/fesm2022/slotted-angular-color-picker.mjs.map +1 -1
  75. package/fesm2022/slotted-angular-column-manager.mjs +68 -31
  76. package/fesm2022/slotted-angular-column-manager.mjs.map +1 -1
  77. package/fesm2022/slotted-angular-combobox.mjs +77 -31
  78. package/fesm2022/slotted-angular-combobox.mjs.map +1 -1
  79. package/fesm2022/slotted-angular-command-palette.mjs +150 -54
  80. package/fesm2022/slotted-angular-command-palette.mjs.map +1 -1
  81. package/fesm2022/slotted-angular-container.mjs +6 -4
  82. package/fesm2022/slotted-angular-container.mjs.map +1 -1
  83. package/fesm2022/slotted-angular-context-menu.mjs +5 -4
  84. package/fesm2022/slotted-angular-context-menu.mjs.map +1 -1
  85. package/fesm2022/slotted-angular-currency-field.mjs +98 -32
  86. package/fesm2022/slotted-angular-currency-field.mjs.map +1 -1
  87. package/fesm2022/slotted-angular-dashboard-grid.mjs +127 -44
  88. package/fesm2022/slotted-angular-dashboard-grid.mjs.map +1 -1
  89. package/fesm2022/slotted-angular-data-grid.mjs +309 -104
  90. package/fesm2022/slotted-angular-data-grid.mjs.map +1 -1
  91. package/fesm2022/slotted-angular-data-list.mjs +83 -50
  92. package/fesm2022/slotted-angular-data-list.mjs.map +1 -1
  93. package/fesm2022/slotted-angular-date-field.mjs +40 -14
  94. package/fesm2022/slotted-angular-date-field.mjs.map +1 -1
  95. package/fesm2022/slotted-angular-date-picker.mjs +19 -9
  96. package/fesm2022/slotted-angular-date-picker.mjs.map +1 -1
  97. package/fesm2022/slotted-angular-date-range-picker.mjs +41 -16
  98. package/fesm2022/slotted-angular-date-range-picker.mjs.map +1 -1
  99. package/fesm2022/slotted-angular-datetime-field.mjs +48 -16
  100. package/fesm2022/slotted-angular-datetime-field.mjs.map +1 -1
  101. package/fesm2022/slotted-angular-datetime-picker.mjs +37 -23
  102. package/fesm2022/slotted-angular-datetime-picker.mjs.map +1 -1
  103. package/fesm2022/slotted-angular-datetime-range-picker.mjs +111 -42
  104. package/fesm2022/slotted-angular-datetime-range-picker.mjs.map +1 -1
  105. package/fesm2022/slotted-angular-description-list.mjs +33 -19
  106. package/fesm2022/slotted-angular-description-list.mjs.map +1 -1
  107. package/fesm2022/slotted-angular-detail-panel.mjs +29 -18
  108. package/fesm2022/slotted-angular-detail-panel.mjs.map +1 -1
  109. package/fesm2022/slotted-angular-dialog.mjs +61 -28
  110. package/fesm2022/slotted-angular-dialog.mjs.map +1 -1
  111. package/fesm2022/slotted-angular-divider.mjs +7 -5
  112. package/fesm2022/slotted-angular-divider.mjs.map +1 -1
  113. package/fesm2022/slotted-angular-drawer.mjs +38 -26
  114. package/fesm2022/slotted-angular-drawer.mjs.map +1 -1
  115. package/fesm2022/slotted-angular-entity-picker.mjs +195 -67
  116. package/fesm2022/slotted-angular-entity-picker.mjs.map +1 -1
  117. package/fesm2022/slotted-angular-event-calendar.mjs +259 -102
  118. package/fesm2022/slotted-angular-event-calendar.mjs.map +1 -1
  119. package/fesm2022/slotted-angular-field-group.mjs +14 -7
  120. package/fesm2022/slotted-angular-field-group.mjs.map +1 -1
  121. package/fesm2022/slotted-angular-field.mjs +35 -15
  122. package/fesm2022/slotted-angular-field.mjs.map +1 -1
  123. package/fesm2022/slotted-angular-filter-bar.mjs +104 -43
  124. package/fesm2022/slotted-angular-filter-bar.mjs.map +1 -1
  125. package/fesm2022/slotted-angular-form.mjs +18 -10
  126. package/fesm2022/slotted-angular-form.mjs.map +1 -1
  127. package/fesm2022/slotted-angular-fullscreen.mjs +14 -8
  128. package/fesm2022/slotted-angular-fullscreen.mjs.map +1 -1
  129. package/fesm2022/slotted-angular-grid.mjs +4 -2
  130. package/fesm2022/slotted-angular-grid.mjs.map +1 -1
  131. package/fesm2022/slotted-angular-highlight.mjs +5 -3
  132. package/fesm2022/slotted-angular-highlight.mjs.map +1 -1
  133. package/fesm2022/slotted-angular-hover-card.mjs +5 -4
  134. package/fesm2022/slotted-angular-hover-card.mjs.map +1 -1
  135. package/fesm2022/slotted-angular-icon.mjs +6 -3
  136. package/fesm2022/slotted-angular-icon.mjs.map +1 -1
  137. package/fesm2022/slotted-angular-image.mjs +13 -10
  138. package/fesm2022/slotted-angular-image.mjs.map +1 -1
  139. package/fesm2022/slotted-angular-import-export-center.mjs +167 -99
  140. package/fesm2022/slotted-angular-import-export-center.mjs.map +1 -1
  141. package/fesm2022/slotted-angular-inline-message.mjs +10 -8
  142. package/fesm2022/slotted-angular-inline-message.mjs.map +1 -1
  143. package/fesm2022/slotted-angular-inline.mjs +4 -2
  144. package/fesm2022/slotted-angular-inline.mjs.map +1 -1
  145. package/fesm2022/slotted-angular-kbd.mjs +11 -7
  146. package/fesm2022/slotted-angular-kbd.mjs.map +1 -1
  147. package/fesm2022/slotted-angular-link.mjs +5 -3
  148. package/fesm2022/slotted-angular-link.mjs.map +1 -1
  149. package/fesm2022/slotted-angular-list-item.mjs +21 -18
  150. package/fesm2022/slotted-angular-list-item.mjs.map +1 -1
  151. package/fesm2022/slotted-angular-list.mjs +14 -10
  152. package/fesm2022/slotted-angular-list.mjs.map +1 -1
  153. package/fesm2022/slotted-angular-listbox.mjs +39 -21
  154. package/fesm2022/slotted-angular-listbox.mjs.map +1 -1
  155. package/fesm2022/slotted-angular-loading-overlay.mjs +59 -22
  156. package/fesm2022/slotted-angular-loading-overlay.mjs.map +1 -1
  157. package/fesm2022/slotted-angular-markdown.mjs +31 -19
  158. package/fesm2022/slotted-angular-markdown.mjs.map +1 -1
  159. package/fesm2022/slotted-angular-menu.mjs +41 -27
  160. package/fesm2022/slotted-angular-menu.mjs.map +1 -1
  161. package/fesm2022/slotted-angular-menubar.mjs +4 -2
  162. package/fesm2022/slotted-angular-menubar.mjs.map +1 -1
  163. package/fesm2022/slotted-angular-message-scroller.mjs +28 -15
  164. package/fesm2022/slotted-angular-message-scroller.mjs.map +1 -1
  165. package/fesm2022/slotted-angular-message.mjs +113 -51
  166. package/fesm2022/slotted-angular-message.mjs.map +1 -1
  167. package/fesm2022/slotted-angular-multi-select.mjs +133 -57
  168. package/fesm2022/slotted-angular-multi-select.mjs.map +1 -1
  169. package/fesm2022/slotted-angular-navigation-menu.mjs +34 -26
  170. package/fesm2022/slotted-angular-navigation-menu.mjs.map +1 -1
  171. package/fesm2022/slotted-angular-notification-center.mjs +107 -65
  172. package/fesm2022/slotted-angular-notification-center.mjs.map +1 -1
  173. package/fesm2022/slotted-angular-number-field.mjs +23 -11
  174. package/fesm2022/slotted-angular-number-field.mjs.map +1 -1
  175. package/fesm2022/slotted-angular-otp-input.mjs +13 -8
  176. package/fesm2022/slotted-angular-otp-input.mjs.map +1 -1
  177. package/fesm2022/slotted-angular-page-header.mjs +72 -42
  178. package/fesm2022/slotted-angular-page-header.mjs.map +1 -1
  179. package/fesm2022/slotted-angular-page.mjs +18 -9
  180. package/fesm2022/slotted-angular-page.mjs.map +1 -1
  181. package/fesm2022/slotted-angular-pagination.mjs +35 -22
  182. package/fesm2022/slotted-angular-pagination.mjs.map +1 -1
  183. package/fesm2022/slotted-angular-popover.mjs +25 -18
  184. package/fesm2022/slotted-angular-popover.mjs.map +1 -1
  185. package/fesm2022/slotted-angular-progress-indicator.mjs +122 -30
  186. package/fesm2022/slotted-angular-progress-indicator.mjs.map +1 -1
  187. package/fesm2022/slotted-angular-prompt-composer.mjs +24 -18
  188. package/fesm2022/slotted-angular-prompt-composer.mjs.map +1 -1
  189. package/fesm2022/slotted-angular-prose.mjs +14 -11
  190. package/fesm2022/slotted-angular-prose.mjs.map +1 -1
  191. package/fesm2022/slotted-angular-radio-group.mjs +15 -9
  192. package/fesm2022/slotted-angular-radio-group.mjs.map +1 -1
  193. package/fesm2022/slotted-angular-rating.mjs +138 -82
  194. package/fesm2022/slotted-angular-rating.mjs.map +1 -1
  195. package/fesm2022/slotted-angular-result-state.mjs +16 -12
  196. package/fesm2022/slotted-angular-result-state.mjs.map +1 -1
  197. package/fesm2022/slotted-angular-saved-views.mjs +43 -16
  198. package/fesm2022/slotted-angular-saved-views.mjs.map +1 -1
  199. package/fesm2022/slotted-angular-scroll-area.mjs +9 -5
  200. package/fesm2022/slotted-angular-scroll-area.mjs.map +1 -1
  201. package/fesm2022/slotted-angular-section.mjs +34 -15
  202. package/fesm2022/slotted-angular-section.mjs.map +1 -1
  203. package/fesm2022/slotted-angular-segmented-control.mjs +15 -9
  204. package/fesm2022/slotted-angular-segmented-control.mjs.map +1 -1
  205. package/fesm2022/slotted-angular-select.mjs +135 -53
  206. package/fesm2022/slotted-angular-select.mjs.map +1 -1
  207. package/fesm2022/slotted-angular-side-navigation.mjs +46 -35
  208. package/fesm2022/slotted-angular-side-navigation.mjs.map +1 -1
  209. package/fesm2022/slotted-angular-skeleton.mjs +32 -16
  210. package/fesm2022/slotted-angular-skeleton.mjs.map +1 -1
  211. package/fesm2022/slotted-angular-slider.mjs +31 -11
  212. package/fesm2022/slotted-angular-slider.mjs.map +1 -1
  213. package/fesm2022/slotted-angular-sparkline.mjs +29 -13
  214. package/fesm2022/slotted-angular-sparkline.mjs.map +1 -1
  215. package/fesm2022/slotted-angular-split-button.mjs +25 -11
  216. package/fesm2022/slotted-angular-split-button.mjs.map +1 -1
  217. package/fesm2022/slotted-angular-splitter.mjs +11 -9
  218. package/fesm2022/slotted-angular-splitter.mjs.map +1 -1
  219. package/fesm2022/slotted-angular-stack.mjs +4 -2
  220. package/fesm2022/slotted-angular-stack.mjs.map +1 -1
  221. package/fesm2022/slotted-angular-stat-card.mjs +35 -28
  222. package/fesm2022/slotted-angular-stat-card.mjs.map +1 -1
  223. package/fesm2022/slotted-angular-status-indicator.mjs +22 -8
  224. package/fesm2022/slotted-angular-status-indicator.mjs.map +1 -1
  225. package/fesm2022/slotted-angular-stepper.mjs +40 -15
  226. package/fesm2022/slotted-angular-stepper.mjs.map +1 -1
  227. package/fesm2022/slotted-angular-switch.mjs +15 -10
  228. package/fesm2022/slotted-angular-switch.mjs.map +1 -1
  229. package/fesm2022/slotted-angular-table-of-contents.mjs +29 -21
  230. package/fesm2022/slotted-angular-table-of-contents.mjs.map +1 -1
  231. package/fesm2022/slotted-angular-table.mjs +135 -72
  232. package/fesm2022/slotted-angular-table.mjs.map +1 -1
  233. package/fesm2022/slotted-angular-tabs.mjs +31 -14
  234. package/fesm2022/slotted-angular-tabs.mjs.map +1 -1
  235. package/fesm2022/slotted-angular-tag.mjs +19 -12
  236. package/fesm2022/slotted-angular-tag.mjs.map +1 -1
  237. package/fesm2022/slotted-angular-tags-input.mjs +253 -28
  238. package/fesm2022/slotted-angular-tags-input.mjs.map +1 -1
  239. package/fesm2022/slotted-angular-text-field.mjs +49 -15
  240. package/fesm2022/slotted-angular-text-field.mjs.map +1 -1
  241. package/fesm2022/slotted-angular-textarea.mjs +5 -3
  242. package/fesm2022/slotted-angular-textarea.mjs.map +1 -1
  243. package/fesm2022/slotted-angular-time-field.mjs +48 -14
  244. package/fesm2022/slotted-angular-time-field.mjs.map +1 -1
  245. package/fesm2022/slotted-angular-time-picker.mjs +28 -14
  246. package/fesm2022/slotted-angular-time-picker.mjs.map +1 -1
  247. package/fesm2022/slotted-angular-time-range-picker.mjs +109 -40
  248. package/fesm2022/slotted-angular-time-range-picker.mjs.map +1 -1
  249. package/fesm2022/slotted-angular-timeline.mjs +135 -64
  250. package/fesm2022/slotted-angular-timeline.mjs.map +1 -1
  251. package/fesm2022/slotted-angular-toast.mjs +42 -31
  252. package/fesm2022/slotted-angular-toast.mjs.map +1 -1
  253. package/fesm2022/slotted-angular-toggle-group.mjs +10 -6
  254. package/fesm2022/slotted-angular-toggle-group.mjs.map +1 -1
  255. package/fesm2022/slotted-angular-toggle.mjs +9 -4
  256. package/fesm2022/slotted-angular-toggle.mjs.map +1 -1
  257. package/fesm2022/slotted-angular-toolbar.mjs +21 -10
  258. package/fesm2022/slotted-angular-toolbar.mjs.map +1 -1
  259. package/fesm2022/slotted-angular-tooltip.mjs +8 -5
  260. package/fesm2022/slotted-angular-tooltip.mjs.map +1 -1
  261. package/fesm2022/slotted-angular-top-navigation.mjs +64 -44
  262. package/fesm2022/slotted-angular-top-navigation.mjs.map +1 -1
  263. package/fesm2022/slotted-angular-tour.mjs +46 -21
  264. package/fesm2022/slotted-angular-tour.mjs.map +1 -1
  265. package/fesm2022/slotted-angular-transfer.mjs +69 -30
  266. package/fesm2022/slotted-angular-transfer.mjs.map +1 -1
  267. package/fesm2022/slotted-angular-tree.mjs +74 -26
  268. package/fesm2022/slotted-angular-tree.mjs.map +1 -1
  269. package/fesm2022/slotted-angular-typography.mjs +8 -4
  270. package/fesm2022/slotted-angular-typography.mjs.map +1 -1
  271. package/fesm2022/slotted-angular-upload.mjs +125 -57
  272. package/fesm2022/slotted-angular-upload.mjs.map +1 -1
  273. package/fesm2022/slotted-angular-visually-hidden.mjs +4 -2
  274. package/fesm2022/slotted-angular-visually-hidden.mjs.map +1 -1
  275. package/fesm2022/slotted-angular-wizard.mjs +163 -65
  276. package/fesm2022/slotted-angular-wizard.mjs.map +1 -1
  277. package/package.json +3 -3
  278. package/types/slotted-angular-accordion.d.ts.map +1 -1
  279. package/types/slotted-angular-action-bar.d.ts.map +1 -1
  280. package/types/slotted-angular-action-sheet.d.ts.map +1 -1
  281. package/types/slotted-angular-alert.d.ts +1 -1
  282. package/types/slotted-angular-alert.d.ts.map +1 -1
  283. package/types/slotted-angular-app-shell.d.ts.map +1 -1
  284. package/types/slotted-angular-aspect-ratio.d.ts.map +1 -1
  285. package/types/slotted-angular-attachment.d.ts +1 -1
  286. package/types/slotted-angular-attachment.d.ts.map +1 -1
  287. package/types/slotted-angular-avatar-group.d.ts.map +1 -1
  288. package/types/slotted-angular-avatar.d.ts.map +1 -1
  289. package/types/slotted-angular-badge.d.ts.map +1 -1
  290. package/types/slotted-angular-breadcrumb.d.ts.map +1 -1
  291. package/types/slotted-angular-button-group.d.ts.map +1 -1
  292. package/types/slotted-angular-button.d.ts.map +1 -1
  293. package/types/slotted-angular-calendar.d.ts +2 -0
  294. package/types/slotted-angular-calendar.d.ts.map +1 -1
  295. package/types/slotted-angular-card.d.ts.map +1 -1
  296. package/types/slotted-angular-carousel.d.ts.map +1 -1
  297. package/types/slotted-angular-cascader.d.ts.map +1 -1
  298. package/types/slotted-angular-chart.d.ts.map +1 -1
  299. package/types/slotted-angular-checkbox-group.d.ts.map +1 -1
  300. package/types/slotted-angular-checkbox.d.ts.map +1 -1
  301. package/types/slotted-angular-code-block.d.ts +1 -1
  302. package/types/slotted-angular-code-block.d.ts.map +1 -1
  303. package/types/slotted-angular-collapsible.d.ts +1 -1
  304. package/types/slotted-angular-collapsible.d.ts.map +1 -1
  305. package/types/slotted-angular-color-picker.d.ts.map +1 -1
  306. package/types/slotted-angular-column-manager.d.ts.map +1 -1
  307. package/types/slotted-angular-combobox.d.ts +1 -1
  308. package/types/slotted-angular-combobox.d.ts.map +1 -1
  309. package/types/slotted-angular-command-palette.d.ts +10 -1
  310. package/types/slotted-angular-command-palette.d.ts.map +1 -1
  311. package/types/slotted-angular-container.d.ts.map +1 -1
  312. package/types/slotted-angular-context-menu.d.ts.map +1 -1
  313. package/types/slotted-angular-currency-field.d.ts +39 -13
  314. package/types/slotted-angular-currency-field.d.ts.map +1 -1
  315. package/types/slotted-angular-dashboard-grid.d.ts.map +1 -1
  316. package/types/slotted-angular-data-grid.d.ts +26 -2
  317. package/types/slotted-angular-data-grid.d.ts.map +1 -1
  318. package/types/slotted-angular-data-list.d.ts.map +1 -1
  319. package/types/slotted-angular-date-field.d.ts.map +1 -1
  320. package/types/slotted-angular-date-picker.d.ts.map +1 -1
  321. package/types/slotted-angular-date-range-picker.d.ts.map +1 -1
  322. package/types/slotted-angular-datetime-field.d.ts.map +1 -1
  323. package/types/slotted-angular-datetime-picker.d.ts.map +1 -1
  324. package/types/slotted-angular-datetime-range-picker.d.ts.map +1 -1
  325. package/types/slotted-angular-description-list.d.ts.map +1 -1
  326. package/types/slotted-angular-detail-panel.d.ts.map +1 -1
  327. package/types/slotted-angular-dialog.d.ts +2 -1
  328. package/types/slotted-angular-dialog.d.ts.map +1 -1
  329. package/types/slotted-angular-divider.d.ts.map +1 -1
  330. package/types/slotted-angular-drawer.d.ts.map +1 -1
  331. package/types/slotted-angular-entity-picker.d.ts.map +1 -1
  332. package/types/slotted-angular-event-calendar.d.ts.map +1 -1
  333. package/types/slotted-angular-field-group.d.ts.map +1 -1
  334. package/types/slotted-angular-field.d.ts.map +1 -1
  335. package/types/slotted-angular-filter-bar.d.ts.map +1 -1
  336. package/types/slotted-angular-form.d.ts.map +1 -1
  337. package/types/slotted-angular-fullscreen.d.ts.map +1 -1
  338. package/types/slotted-angular-grid.d.ts.map +1 -1
  339. package/types/slotted-angular-highlight.d.ts.map +1 -1
  340. package/types/slotted-angular-hover-card.d.ts.map +1 -1
  341. package/types/slotted-angular-icon.d.ts +1 -1
  342. package/types/slotted-angular-icon.d.ts.map +1 -1
  343. package/types/slotted-angular-image.d.ts.map +1 -1
  344. package/types/slotted-angular-import-export-center.d.ts.map +1 -1
  345. package/types/slotted-angular-inline-message.d.ts +1 -1
  346. package/types/slotted-angular-inline-message.d.ts.map +1 -1
  347. package/types/slotted-angular-inline.d.ts.map +1 -1
  348. package/types/slotted-angular-kbd.d.ts.map +1 -1
  349. package/types/slotted-angular-link.d.ts.map +1 -1
  350. package/types/slotted-angular-list-item.d.ts.map +1 -1
  351. package/types/slotted-angular-list.d.ts.map +1 -1
  352. package/types/slotted-angular-listbox.d.ts.map +1 -1
  353. package/types/slotted-angular-loading-overlay.d.ts.map +1 -1
  354. package/types/slotted-angular-markdown.d.ts.map +1 -1
  355. package/types/slotted-angular-menu.d.ts.map +1 -1
  356. package/types/slotted-angular-menubar.d.ts.map +1 -1
  357. package/types/slotted-angular-message-scroller.d.ts.map +1 -1
  358. package/types/slotted-angular-message.d.ts.map +1 -1
  359. package/types/slotted-angular-multi-select.d.ts +1 -1
  360. package/types/slotted-angular-multi-select.d.ts.map +1 -1
  361. package/types/slotted-angular-navigation-menu.d.ts.map +1 -1
  362. package/types/slotted-angular-notification-center.d.ts.map +1 -1
  363. package/types/slotted-angular-number-field.d.ts.map +1 -1
  364. package/types/slotted-angular-otp-input.d.ts.map +1 -1
  365. package/types/slotted-angular-page-header.d.ts +1 -1
  366. package/types/slotted-angular-page-header.d.ts.map +1 -1
  367. package/types/slotted-angular-page.d.ts.map +1 -1
  368. package/types/slotted-angular-pagination.d.ts.map +1 -1
  369. package/types/slotted-angular-popover.d.ts.map +1 -1
  370. package/types/slotted-angular-progress-indicator.d.ts.map +1 -1
  371. package/types/slotted-angular-prompt-composer.d.ts.map +1 -1
  372. package/types/slotted-angular-prose.d.ts.map +1 -1
  373. package/types/slotted-angular-radio-group.d.ts.map +1 -1
  374. package/types/slotted-angular-rating.d.ts.map +1 -1
  375. package/types/slotted-angular-result-state.d.ts.map +1 -1
  376. package/types/slotted-angular-saved-views.d.ts.map +1 -1
  377. package/types/slotted-angular-scroll-area.d.ts.map +1 -1
  378. package/types/slotted-angular-section.d.ts.map +1 -1
  379. package/types/slotted-angular-segmented-control.d.ts.map +1 -1
  380. package/types/slotted-angular-select.d.ts +1 -1
  381. package/types/slotted-angular-select.d.ts.map +1 -1
  382. package/types/slotted-angular-side-navigation.d.ts.map +1 -1
  383. package/types/slotted-angular-skeleton.d.ts.map +1 -1
  384. package/types/slotted-angular-slider.d.ts.map +1 -1
  385. package/types/slotted-angular-sparkline.d.ts.map +1 -1
  386. package/types/slotted-angular-split-button.d.ts.map +1 -1
  387. package/types/slotted-angular-splitter.d.ts.map +1 -1
  388. package/types/slotted-angular-stack.d.ts.map +1 -1
  389. package/types/slotted-angular-stat-card.d.ts.map +1 -1
  390. package/types/slotted-angular-status-indicator.d.ts +1 -1
  391. package/types/slotted-angular-status-indicator.d.ts.map +1 -1
  392. package/types/slotted-angular-stepper.d.ts +1 -1
  393. package/types/slotted-angular-stepper.d.ts.map +1 -1
  394. package/types/slotted-angular-switch.d.ts.map +1 -1
  395. package/types/slotted-angular-table-of-contents.d.ts.map +1 -1
  396. package/types/slotted-angular-table.d.ts.map +1 -1
  397. package/types/slotted-angular-tabs.d.ts.map +1 -1
  398. package/types/slotted-angular-tag.d.ts.map +1 -1
  399. package/types/slotted-angular-tags-input.d.ts +33 -1
  400. package/types/slotted-angular-tags-input.d.ts.map +1 -1
  401. package/types/slotted-angular-text-field.d.ts.map +1 -1
  402. package/types/slotted-angular-textarea.d.ts.map +1 -1
  403. package/types/slotted-angular-time-field.d.ts.map +1 -1
  404. package/types/slotted-angular-time-picker.d.ts.map +1 -1
  405. package/types/slotted-angular-time-range-picker.d.ts.map +1 -1
  406. package/types/slotted-angular-timeline.d.ts.map +1 -1
  407. package/types/slotted-angular-toast.d.ts +2 -2
  408. package/types/slotted-angular-toast.d.ts.map +1 -1
  409. package/types/slotted-angular-toggle-group.d.ts.map +1 -1
  410. package/types/slotted-angular-toggle.d.ts.map +1 -1
  411. package/types/slotted-angular-toolbar.d.ts.map +1 -1
  412. package/types/slotted-angular-tooltip.d.ts.map +1 -1
  413. package/types/slotted-angular-top-navigation.d.ts.map +1 -1
  414. package/types/slotted-angular-tour.d.ts.map +1 -1
  415. package/types/slotted-angular-transfer.d.ts.map +1 -1
  416. package/types/slotted-angular-tree.d.ts.map +1 -1
  417. package/types/slotted-angular-typography.d.ts.map +1 -1
  418. package/types/slotted-angular-upload.d.ts +2 -2
  419. package/types/slotted-angular-upload.d.ts.map +1 -1
  420. package/types/slotted-angular-visually-hidden.d.ts.map +1 -1
  421. package/types/slotted-angular-wizard.d.ts.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"slotted-angular-message.mjs","sources":["../../message/src/message-defaults.ts","../../message/src/message.ts","../../message/src/message-parts.ts","../../message/src/bubble.ts","../../message/src/slotted-angular-message.ts"],"sourcesContent":["import { inject, InjectionToken } from '@angular/core';\nimport type { ChangeReason } from '@slotted/core/state';\n\nexport type MessageAlign = 'start' | 'end';\nexport type MessageLayout = 'bubble' | 'thread';\nexport type MessageActionsVisibility = 'always' | 'hover';\nexport type MessageStatus = 'sending' | 'sent' | 'delivered' | 'read' | 'failed' | 'streaming';\nexport type BubbleVariant = 'solid' | 'soft' | 'outline' | 'plain';\nexport type BubbleTone = 'accent' | 'secondary' | 'success' | 'warning' | 'danger';\nexport type MessageActivityStepStatus = 'complete' | 'current' | 'pending';\n\n/** Why a version, a reaction or a clamp moved. */\nexport type MessageChangeReason = Extract<ChangeReason, 'pointer' | 'keyboard'>;\n\n/** A request to send a message again. It carries no value. */\nexport interface MessageRetryRequest {\n readonly reason: MessageChangeReason;\n readonly source: Event;\n}\n\nexport interface MessageDefaults {\n layout: MessageLayout;\n actionsVisibility: MessageActionsVisibility;\n variant: BubbleVariant;\n tone: BubbleTone;\n}\n\nconst FALLBACK: MessageDefaults = {\n layout: 'bubble',\n actionsVisibility: 'hover',\n variant: 'soft',\n tone: 'secondary',\n};\n\nexport const MESSAGE_DEFAULTS = new InjectionToken<MessageDefaults>('slotted message defaults', {\n providedIn: 'root',\n factory: () => FALLBACK,\n});\n\n/**\n * An application decides once how its messages are laid out, when their\n * actions show, and what a bubble paints when nothing infers it. A group, a\n * row or a bubble that states any of them still wins. Its words come from the\n * language in force (`provideSlotted`).\n */\nexport function provideMessageDefaults(defaults: Partial<MessageDefaults>) {\n return {\n provide: MESSAGE_DEFAULTS,\n useFactory: (): MessageDefaults => ({\n layout: defaults.layout ?? FALLBACK.layout,\n actionsVisibility: defaults.actionsVisibility ?? FALLBACK.actionsVisibility,\n variant: defaults.variant ?? FALLBACK.variant,\n tone: defaults.tone ?? FALLBACK.tone,\n }),\n };\n}\n\nexport function injectMessageDefaults(): MessageDefaults {\n return inject(MESSAGE_DEFAULTS);\n}\n\n/** A click from Enter or Space has no detail. */\nexport function reasonOf(event: Event): MessageChangeReason {\n return (event as MouseEvent).detail === 0 ? 'keyboard' : 'pointer';\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n Directive,\n HostAttributeToken,\n inject,\n input,\n model,\n output,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { injectMessages } from '@slotted/angular/i18n';\nimport {\n messageMessages,\n type FamilyTranslator,\n type MessageMessages,\n type PartialMessages,\n} from '@slotted/core/i18n';\nimport { createControllable } from '@slotted/core/state';\nimport type { ChangeRequest } from '@slotted/core/state';\n\nimport { injectMessageDefaults } from './message-defaults';\nimport type {\n MessageActionsVisibility,\n MessageAlign,\n MessageChangeReason,\n MessageLayout,\n MessageRetryRequest,\n MessageStatus,\n} from './message-defaults';\n\nlet nextId = 0;\n\n/**\n * A run of messages from one sender on the `div` the page wrote. The rows\n * inside it stand two pixels apart, the corners that face each other on the\n * sender's side are drawn in, and a row with no avatar still stands on the\n * column the run's avatar holds — read from the DOM by the stylesheet.\n */\n@Directive({\n selector: '[slMessageGroup]',\n standalone: true,\n exportAs: 'slMessageGroup',\n host: { 'data-ui': 'message', 'data-part': 'group' },\n})\nexport class SlMessageGroup {\n /** The layout every row in the run takes unless it states its own. */\n readonly layout = input<MessageLayout | undefined>(undefined);\n}\n\n/**\n * One message of a conversation, on the `article` the page wrote, named by\n * its author.\n *\n * **The side is asked once, here.** A bubble inside the row follows `align`\n * and, when it states no painting, takes the reader's own for `end` — the\n * accent's fill — and none for a thread.\n *\n * **The status is a fact about delivery.** `sending` and `streaming` are\n * `aria-busy` and `data-loading`, `failed` is `data-invalid`, `read` is\n * `data-read`.\n *\n * **Versions.** With `versionCount` of two or more, `slMessageVersions`\n * pages between them; `[(version)]` is two-way and every move is asked\n * first through `versionChangeRequest`.\n */\n@Component({\n selector: '[slMessage]',\n standalone: true,\n exportAs: 'slMessage',\n template: '<ng-content></ng-content>',\n styleUrl: '../../../styles/src/message/message.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-ui': 'message',\n 'data-part': 'root',\n '[attr.data-align]': 'align()',\n '[attr.data-layout]': 'resolvedLayout()',\n '[attr.data-actions]': 'resolvedActions()',\n '[attr.data-status]': 'status() ?? null',\n '[attr.data-loading]': \"busy() ? '' : null\",\n '[attr.data-invalid]': \"status() === 'failed' ? '' : null\",\n '[attr.data-read]': \"status() === 'read' ? '' : null\",\n '[attr.aria-busy]': \"busy() ? 'true' : null\",\n '[attr.aria-labelledby]': 'labelledBy()',\n },\n})\nexport class SlMessage {\n /** The sender's side. `end` is the reader's own message. */\n readonly align = input<MessageAlign>('start');\n /** Bubbles in a conversation, or rows of a comment thread. Falls back to the group, then the token. */\n readonly layout = input<MessageLayout | undefined>(undefined);\n readonly actionsVisibility = input<MessageActionsVisibility | undefined>(undefined);\n readonly status = input<MessageStatus | undefined>(undefined);\n /** The version on screen, from 0. Two-way; every move is asked first. */\n readonly version = model(0);\n /** How many versions exist; the pager draws when there are two or more. */\n readonly versionCount = input(1);\n /**\n * Words laid over the catalog of the language in force, key by key, for\n * this row and every part and bubble inside it.\n */\n readonly messages = input<PartialMessages<MessageMessages> | undefined>(undefined);\n\n /** Emitted before the version moves; `cancel()` keeps it. */\n readonly versionChangeRequest = output<ChangeRequest<number>>();\n /** Asks to send the message again; `slBubbleRetry` emits it. */\n readonly retry = output<MessageRetryRequest>();\n\n private readonly defaults = injectMessageDefaults();\n private readonly group = inject(SlMessageGroup, { optional: true });\n private readonly ownLabel =\n inject(new HostAttributeToken('aria-label'), { optional: true }) ??\n inject(new HostAttributeToken('aria-labelledby'), { optional: true });\n\n readonly authorId = `sl-message-${nextId++}-author`;\n /** The family's words in the language in force, with this row's `messages` laid over them. */\n readonly t = injectMessages(messageMessages, this.messages);\n private readonly authorPresent = signal(false);\n\n readonly resolvedLayout = computed(\n () => this.layout() ?? this.group?.layout() ?? this.defaults.layout,\n );\n readonly resolvedActions = computed(\n () => this.actionsVisibility() ?? this.defaults.actionsVisibility,\n );\n readonly busy = computed(() => this.status() === 'sending' || this.status() === 'streaming');\n /** The author names the article unless the page named it: `aria-labelledby` would outrank its `aria-label`. */\n protected readonly labelledBy = computed(() =>\n this.ownLabel === null && this.authorPresent() ? this.authorId : null,\n );\n\n registerAuthor(present: boolean) {\n this.authorPresent.set(present);\n }\n\n requestVersion(next: number, reason: MessageChangeReason, source: Event) {\n const bounded = Math.min(Math.max(0, next), Math.max(0, this.versionCount() - 1));\n const state = createControllable<number>({\n initial: this.version(),\n onRequest: (request) => this.versionChangeRequest.emit(request),\n });\n if (state.request(bounded, reason, source)) this.version.set(bounded);\n }\n\n requestRetry(reason: MessageChangeReason, source: Event) {\n this.retry.emit({ reason, source });\n }\n}\n\n/**\n * The family's words for a part that may stand outside a row: the row's, with\n * its `messages` laid over the language in force, or the language alone.\n */\nexport function injectMessageWords(): FamilyTranslator<MessageMessages> {\n const own = injectMessages(messageMessages);\n return inject(SlMessage, { optional: true })?.t ?? own;\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n Directive,\n ElementRef,\n HostAttributeToken,\n inject,\n input,\n ViewEncapsulation,\n} from '@angular/core';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\n\nimport { SlMessage } from './message';\nimport { reasonOf } from './message-defaults';\nimport type { MessageActivityStepStatus, MessageStatus } from './message-defaults';\n\nfunction message(): SlMessage {\n const owner = inject(SlMessage, { optional: true });\n if (owner === null) throw new Error('A message part is rendered outside slMessage.');\n return owner;\n}\n\n/** The box the sender's avatar stands in: at the foot of a run, or beside the name in a thread. */\n@Directive({ selector: '[slMessageAvatar]', standalone: true, host: { 'data-part': 'avatar' } })\nexport class SlMessageAvatar {}\n\n/** The column of the words: the header, the bubbles, the attachments and the footer. */\n@Directive({ selector: '[slMessageBody]', standalone: true, host: { 'data-part': 'body' } })\nexport class SlMessageBody {}\n\n/** The name and, in a thread, the hour, over the words. */\n@Directive({ selector: '[slMessageHeader]', standalone: true, host: { 'data-part': 'header' } })\nexport class SlMessageHeader {}\n\n/** What is said about the message under it: a receipt outside a bubble, the actions, the versions. */\n@Directive({ selector: '[slMessageFooter]', standalone: true, host: { 'data-part': 'footer' } })\nexport class SlMessageFooter {}\n\n/** The hour, on the `time` element the page wrote with its `datetime`. */\n@Directive({ selector: 'time[slMessageTime]', standalone: true, host: { 'data-part': 'time' } })\nexport class SlMessageTime {}\n\n/**\n * The sender's name. While it is on the page the article is named by it, so a\n * screen reader that moves from article to article hears who spoke. A page\n * `id` is kept.\n */\n@Directive({\n selector: '[slMessageAuthor]',\n standalone: true,\n host: { 'data-part': 'author', '[attr.id]': 'id' },\n})\nexport class SlMessageAuthor {\n private readonly owner = message();\n protected readonly id =\n inject(new HostAttributeToken('id'), { optional: true }) ?? this.owner.authorId;\n\n constructor() {\n this.owner.registerAuthor(true);\n inject(DestroyRef).onDestroy(() => this.owner.registerAuthor(false));\n }\n}\n\n/**\n * The hour and the delivery mark inside a bubble, riding at the end of the\n * last line. A receipt inside it draws its mark and keeps its word for\n * assistive technology.\n */\n@Directive({ selector: '[slBubbleMeta]', standalone: true, host: { 'data-part': 'meta' } })\nexport class SlBubbleMeta {}\n\nconst RECEIPT_GLYPH = {\n sending: 'clock',\n sent: 'check',\n delivered: 'check-check',\n read: 'check-check',\n} as const;\n\n/**\n * Where the message is in its delivery. Inside `slBubbleMeta` it is a mark\n * beside the hour with the word hidden for assistive technology; anywhere\n * else it is the word alone — a mark beside a word of twelve pixels is two\n * voices saying one thing.\n */\n@Component({\n selector: '[slMessageReceipt]',\n standalone: true,\n imports: [SlGlyph, SlIcon],\n template: `@if (glyph(); as name) {\n <span slIcon><svg slGlyph [name]=\"name\"></svg></span><span>{{ word() }}</span>\n } @else {\n {{ word() }}\n }`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { 'data-part': 'receipt', '[attr.data-status]': 'resolved()' },\n})\nexport class SlMessageReceipt {\n /** Falls back to the row's status. */\n readonly status = input<Exclude<MessageStatus, 'streaming'> | undefined>(undefined);\n\n private readonly owner = message();\n private readonly inMeta = inject(SlBubbleMeta, { optional: true }) !== null;\n\n readonly resolved = computed(() => {\n const own = this.owner.status();\n return this.status() ?? (own === 'streaming' ? undefined : own) ?? 'sent';\n });\n protected readonly word = computed(() => this.owner.t(this.resolved()));\n protected readonly glyph = computed(() => {\n const status = this.resolved();\n return this.inMeta && status !== 'failed' ? RECEIPT_GLYPH[status] : null;\n });\n}\n\n/** The message's own actions — copy, reply, rate — as a toolbar the row reveals. */\n@Directive({\n selector: '[slMessageActions]',\n standalone: true,\n host: {\n 'data-part': 'actions',\n role: 'toolbar',\n '[attr.aria-label]': 'label()',\n },\n})\nexport class SlMessageActions {\n private readonly owner = message();\n private readonly written = inject(new HostAttributeToken('aria-label'), { optional: true });\n protected readonly label = computed(() => this.written ?? this.owner.t('actions'));\n}\n\n/** What a reply is doing before it has words, as a short log of steps; a status region. */\n@Directive({\n selector: '[slMessageActivity]',\n standalone: true,\n host: { 'data-part': 'activity', role: 'status' },\n})\nexport class SlMessageActivity {}\n\n/** One step of an activity: done, in progress, or waiting. */\n@Component({\n selector: '[slMessageActivityStep]',\n standalone: true,\n imports: [SlGlyph, SlIcon],\n template: `@switch (status()) {\n @case ('complete') {\n <span slIcon><svg slGlyph name=\"check\"></svg></span>\n }\n @case ('current') {\n <span aria-hidden=\"true\"><span aria-hidden=\"true\" data-ui=\"spinner\"></span></span>\n }\n @default {\n <span aria-hidden=\"true\"></span>\n }\n }\n <span><ng-content></ng-content></span>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'activity-step',\n '[attr.data-complete]': \"status() === 'complete' ? '' : null\",\n '[attr.data-current]': \"status() === 'current' ? '' : null\",\n '[attr.aria-current]': \"status() === 'current' ? 'step' : null\",\n },\n})\nexport class SlMessageActivityStep {\n readonly status = input<MessageActivityStepStatus>('current');\n}\n\n/**\n * `2 de 3` between two controls that page through a reply's versions. It\n * draws its controls only while there are two or more; they stop at the ends\n * rather than wrapping. `ArrowLeft` and `ArrowRight` page as well, mirrored in\n * a right-to-left document.\n */\n@Component({\n selector: '[slMessageVersions]',\n standalone: true,\n imports: [SlGlyph, SlIcon],\n template: `@if (owner.versionCount() > 1) {\n <button\n type=\"button\"\n data-part=\"version-previous\"\n [attr.aria-label]=\"owner.t('previousVersion')\"\n [disabled]=\"owner.version() <= 0\"\n (click)=\"step(-1, $event)\"\n >\n <span slIcon><svg slGlyph name=\"chevron-right\"></svg></span>\n </button>\n <span data-part=\"version-label\" aria-live=\"polite\">{{ label() }}</span>\n <button\n type=\"button\"\n data-part=\"version-next\"\n [attr.aria-label]=\"owner.t('nextVersion')\"\n [disabled]=\"owner.version() >= owner.versionCount() - 1\"\n (click)=\"step(1, $event)\"\n >\n <span slIcon><svg slGlyph name=\"chevron-right\"></svg></span>\n </button>\n }`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'versions',\n role: 'group',\n '[attr.aria-label]': \"owner.t('versions')\",\n '[attr.hidden]': \"owner.versionCount() > 1 ? null : ''\",\n '(keydown)': 'onKeyDown($event)',\n },\n})\nexport class SlMessageVersions {\n protected readonly owner = message();\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\n\n protected readonly label = computed(() =>\n this.owner.t('versionLabel', {\n current: this.owner.version() + 1,\n total: this.owner.versionCount(),\n }),\n );\n\n protected step(delta: number, event: MouseEvent) {\n this.owner.requestVersion(this.owner.version() + delta, reasonOf(event), event);\n }\n\n protected onKeyDown(event: KeyboardEvent) {\n if (event.defaultPrevented) return;\n const rtl = getComputedStyle(this.host).direction === 'rtl';\n const forward = rtl ? 'ArrowLeft' : 'ArrowRight';\n const back = rtl ? 'ArrowRight' : 'ArrowLeft';\n if (event.key !== forward && event.key !== back) return;\n event.preventDefault();\n this.owner.requestVersion(\n this.owner.version() + (event.key === forward ? 1 : -1),\n 'keyboard',\n event,\n );\n }\n}\n","import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n Directive,\n effect,\n ElementRef,\n HostAttributeToken,\n inject,\n input,\n model,\n output,\n signal,\n untracked,\n ViewEncapsulation,\n} from '@angular/core';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\nimport { createControllable } from '@slotted/core/state';\nimport {\n advanceStream,\n initialStream,\n prefersReducedMotion,\n settleStream,\n} from '@slotted/core/text-stream';\nimport type { ChangeRequest } from '@slotted/core/state';\n\nimport { injectMessageWords, SlMessage } from './message';\nimport { injectMessageDefaults, reasonOf } from './message-defaults';\nimport type { BubbleTone, BubbleVariant, MessageChangeReason } from './message-defaults';\n\nlet nextId = 0;\n\n/**\n * The surface a message's words are painted on, on the `div` the page wrote.\n *\n * **Painting.** `variant` × `tone`. A bubble that states neither takes it from\n * its row — the reader's own message is the accent's fill, a thread paints no\n * box — then from the token; the result is written as `data-variant` and\n * `data-tone`.\n *\n * **Clamp.** With `maxLines`, a longer text shows its first lines and a\n * “show more” control under the surface, drawn only while the text\n * overflows; the whole text stays in the DOM. `[(revealed)]` is two-way and\n * every move is asked first through `revealedChangeRequest`.\n */\n@Component({\n selector: '[slBubble]',\n standalone: true,\n exportAs: 'slBubble',\n imports: [SlGlyph, SlIcon],\n template: `<ng-content></ng-content>\n @if (clamped() && (overflowing() || revealed())) {\n <button\n type=\"button\"\n data-part=\"more\"\n [attr.aria-controls]=\"contentId\"\n [attr.aria-expanded]=\"revealed()\"\n (click)=\"toggle($event)\"\n >\n {{ revealed() ? t('less') : t('more') }}\n <span slIcon><svg slGlyph name=\"chevron-down\"></svg></span>\n </button>\n }`,\n styleUrl: '../../../styles/src/message/message.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-ui': 'message',\n 'data-part': 'bubble',\n '[attr.data-variant]': 'resolvedVariant()',\n '[attr.data-tone]': 'resolvedTone()',\n '[attr.data-clamped]': \"clamped() ? '' : null\",\n '[attr.data-revealed]': \"clamped() && revealed() ? '' : null\",\n '[style.--slotted-message-max-lines]': 'maxLines() ?? null',\n },\n})\nexport class SlBubble {\n readonly variant = input<BubbleVariant | undefined>(undefined);\n readonly tone = input<BubbleTone | undefined>(undefined);\n /** Lines shown before the text is clamped behind a “show more” control. */\n readonly maxLines = input<number | undefined>(undefined);\n /** The text shown whole. Two-way; every move is asked first. */\n readonly revealed = model(false);\n readonly revealedChangeRequest = output<ChangeRequest<boolean>>();\n\n private readonly defaults = injectMessageDefaults();\n private readonly row = inject(SlMessage, { optional: true });\n\n readonly contentId = `sl-bubble-${nextId++}-content`;\n /** The family's words: the row's, or the language in force outside a row. */\n readonly t = injectMessageWords();\n readonly overflowing = signal(false);\n readonly clamped = computed(() => this.maxLines() !== undefined);\n\n readonly resolvedVariant = computed<BubbleVariant>(() => {\n const own = this.variant();\n if (own !== undefined) return own;\n if (this.row?.resolvedLayout() === 'thread') return 'plain';\n if (this.row?.align() === 'end') return 'solid';\n return this.defaults.variant;\n });\n readonly resolvedTone = computed<BubbleTone>(() => {\n const own = this.tone();\n if (own !== undefined) return own;\n if (this.row?.align() === 'end' && this.row.resolvedLayout() !== 'thread') return 'accent';\n return this.defaults.tone;\n });\n\n protected toggle(event: MouseEvent) {\n this.requestRevealed(!this.revealed(), reasonOf(event), event);\n }\n\n requestRevealed(next: boolean, reason: MessageChangeReason, source: Event) {\n const state = createControllable<boolean>({\n initial: this.revealed(),\n onRequest: (request) => this.revealedChangeRequest.emit(request),\n });\n if (state.request(next, reason, source)) this.revealed.set(next);\n }\n}\n\n/**\n * The painted surface, on the `div`, `button` or `a` the page wrote: a quick\n * reply is a `button`, a way out of the thread an `a`, and each keeps the\n * painting, the hover, the press and the focus ring. Inside a clamped bubble\n * it measures whether its text overflows, which is what draws “show more”.\n */\n@Directive({\n selector: '[slBubbleContent]',\n standalone: true,\n host: { 'data-part': 'content', '[attr.id]': 'id' },\n})\nexport class SlBubbleContent {\n private readonly bubble = inject(SlBubble, { optional: true });\n protected readonly id =\n inject(new HostAttributeToken('id'), { optional: true }) ?? this.bubble?.contentId ?? null;\n\n constructor() {\n const element = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\n const bubble = this.bubble;\n if (bubble === null) return;\n let observer: ResizeObserver | null = null;\n afterNextRender(() => {\n const measure = () => {\n if (!bubble.clamped() || bubble.revealed()) return;\n bubble.overflowing.set(element.scrollHeight > element.clientHeight + 1);\n };\n measure();\n if (typeof ResizeObserver === 'undefined') return;\n observer = new ResizeObserver(measure);\n observer.observe(element);\n });\n inject(DestroyRef).onDestroy(() => observer?.disconnect());\n }\n}\n\n/**\n * The message a reply answers, at the head of the surface, on the `div` or\n * `button` the page wrote. On a `button` it asks the page to scroll to the\n * quoted message through `(click)` — the scroller's `scrollToMessage`.\n */\n@Component({\n selector: '[slBubbleQuote]',\n standalone: true,\n template: `@if (author(); as name) {\n <span data-part=\"quote-author\">{{ name }}</span>\n }\n <ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { 'data-part': 'quote' },\n})\nexport class SlBubbleQuote {\n readonly author = input<string | undefined>(undefined);\n}\n\n/**\n * The words of a streamed reply, entering as they arrive, on the `span` the\n * page wrote.\n *\n * `text` is everything received so far. What extends the previous text is\n * split into words by `@slotted/core/text-stream`; each word is in the DOM at\n * once and enters as a `stream-chunk` after a delay of at most 320 ms, so a\n * burst from the transport reads as a wave rather than a block. A chunk that\n * has entered is folded back into plain text. Text that does not extend the\n * previous — a regenerated reply — replaces it at once, and so does every\n * arrival under reduced motion.\n *\n * Arrivals animate while the row is `streaming`, and the arrival that ends\n * the stream with it; `animate` states it outright.\n */\n@Component({\n selector: 'span[slBubbleStream]',\n standalone: true,\n /* One line: a space or a line break between the text and the chunks would be painted. */\n // prettier-ignore\n template: `{{ stream().settled }}@for (chunk of stream().chunks; track chunk.key) {<span data-part=\"stream-chunk\" [style.animation-delay.ms]=\"chunk.delay\" (animationend)=\"settle(chunk.key)\">{{ chunk.text }}</span>}`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { 'data-part': 'stream' },\n})\nexport class SlBubbleStream {\n private readonly row = inject(SlMessage, { optional: true });\n private readonly view = inject(ElementRef<HTMLElement>).nativeElement.ownerDocument.defaultView;\n\n /** The whole reply received so far. Text that extends it enters word by word. */\n readonly text = input.required<string>();\n /** Let arrivals enter. Falls back to whether the row is `streaming`. */\n readonly animate = input<boolean | undefined>(undefined);\n\n private readonly streaming = computed(() => this.animate() ?? this.row?.status() === 'streaming');\n protected readonly stream = signal(initialStream(''));\n private started = false;\n private wasStreaming = false;\n\n constructor() {\n effect(() => {\n const text = this.text();\n const streaming = this.streaming();\n untracked(() => {\n if (!this.started) {\n this.started = true;\n this.stream.set(initialStream(text));\n } else {\n this.stream.update((stream) =>\n advanceStream(stream, text, {\n animate: (streaming || this.wasStreaming) && !prefersReducedMotion(this.view),\n now: typeof performance === 'undefined' ? 0 : performance.now(),\n }),\n );\n }\n this.wasStreaming = streaming;\n });\n });\n }\n\n protected settle(key: number) {\n this.stream.update((stream) => settleStream(stream, key));\n }\n}\n\n/** The caret at the end of the words that have arrived while a reply streams. */\n@Directive({\n selector: '[slBubbleCaret]',\n standalone: true,\n host: { 'data-part': 'caret', 'aria-hidden': 'true' },\n})\nexport class SlBubbleCaret {}\n\n/** Three dots in the bubble of someone writing, named for assistive technology. */\n@Component({\n selector: '[slBubbleTyping]',\n standalone: true,\n template: '<span></span><span></span><span></span>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { 'data-part': 'typing', role: 'img', '[attr.aria-label]': 'label()' },\n})\nexport class SlBubbleTyping {\n private readonly t = injectMessageWords();\n private readonly written = inject(new HostAttributeToken('aria-label'), { optional: true });\n /** A written `aria-label` wins over the `typing` message. */\n protected readonly label = computed(() => this.written ?? this.t('typing'));\n}\n\n/**\n * The round control beside a message that did not go, on the `button` the\n * page wrote. It asks the row's `(retry)` with the reason, after the page's\n * own `(click)`.\n */\n@Component({\n selector: 'button[slBubbleRetry]',\n standalone: true,\n imports: [SlGlyph, SlIcon],\n template: '<span slIcon><svg slGlyph name=\"rotate-ccw\"></svg></span>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'retry',\n type: 'button',\n '[attr.aria-label]': 'label()',\n '(click)': 'onClick($event)',\n },\n})\nexport class SlBubbleRetry {\n private readonly row = inject(SlMessage, { optional: true });\n private readonly t = injectMessageWords();\n private readonly written = inject(new HostAttributeToken('aria-label'), { optional: true });\n protected readonly label = computed(() => this.written ?? this.t('retry'));\n\n protected onClick(event: MouseEvent) {\n if (event.defaultPrevented) return;\n this.row?.requestRetry(reasonOf(event), event);\n }\n}\n\n/** The row of reactions straddling the surface's lower edge; in a thread, a row under the words. */\n@Directive({\n selector: '[slBubbleReactions]',\n standalone: true,\n host: { 'data-part': 'reactions', role: 'group', '[attr.aria-label]': 'label()' },\n})\nexport class SlBubbleReactions {\n private readonly t = injectMessageWords();\n private readonly written = inject(new HostAttributeToken('aria-label'), { optional: true });\n protected readonly label = computed(() => this.written ?? this.t('reactions'));\n}\n\n/**\n * One reaction on the `button` the page wrote: the emoji or mark the page\n * writes inside it, and its count. `[(pressed)]` is two-way and every move is\n * asked first through `pressedChangeRequest`; the count is the page's store's.\n */\n@Component({\n selector: 'button[slBubbleReaction]',\n standalone: true,\n template: `<ng-content></ng-content>\n @if (count() !== undefined) {\n <span data-part=\"reaction-count\">{{ count() }}</span>\n }`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'reaction',\n type: 'button',\n '[attr.aria-pressed]': 'pressed()',\n '[attr.data-pressed]': \"pressed() ? '' : null\",\n '[attr.data-disabled]': \"disabled() ? '' : null\",\n '[disabled]': 'disabled()',\n '(click)': 'toggle($event)',\n },\n})\nexport class SlBubbleReaction {\n readonly pressed = model(false);\n readonly count = input<number | undefined>(undefined);\n readonly disabled = input(false);\n readonly pressedChangeRequest = output<ChangeRequest<boolean>>();\n\n protected toggle(event: MouseEvent) {\n if (event.defaultPrevented || this.disabled()) return;\n const state = createControllable<boolean>({\n initial: this.pressed(),\n onRequest: (request) => this.pressedChangeRequest.emit(request),\n });\n if (state.request(!this.pressed(), reasonOf(event), event)) this.pressed.set(!this.pressed());\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["nextId"],"mappings":"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"}
1
+ {"version":3,"file":"slotted-angular-message.mjs","sources":["../../message/src/message-defaults.ts","../../message/src/message.ts","../../message/src/message-parts.ts","../../message/src/bubble.ts","../../message/src/slotted-angular-message.ts"],"sourcesContent":["import { inject, InjectionToken } from '@angular/core';\nimport type { ChangeReason } from '@slotted/core/state';\n\nexport type MessageAlign = 'start' | 'end';\nexport type MessageLayout = 'bubble' | 'thread';\nexport type MessageActionsVisibility = 'always' | 'hover';\nexport type MessageStatus = 'sending' | 'sent' | 'delivered' | 'read' | 'failed' | 'streaming';\nexport type BubbleVariant = 'solid' | 'soft' | 'outline' | 'plain';\nexport type BubbleTone = 'accent' | 'secondary' | 'success' | 'warning' | 'danger';\nexport type MessageActivityStepStatus = 'complete' | 'current' | 'pending';\n\n/** Why a version, a reaction or a clamp moved. */\nexport type MessageChangeReason = Extract<ChangeReason, 'pointer' | 'keyboard'>;\n\n/** A request to send a message again. It carries no value. */\nexport interface MessageRetryRequest {\n readonly reason: MessageChangeReason;\n readonly source: Event;\n}\n\nexport interface MessageDefaults {\n layout: MessageLayout;\n actionsVisibility: MessageActionsVisibility;\n variant: BubbleVariant;\n tone: BubbleTone;\n}\n\nconst FALLBACK: MessageDefaults = {\n layout: 'bubble',\n actionsVisibility: 'hover',\n variant: 'soft',\n tone: 'secondary',\n};\n\nexport const MESSAGE_DEFAULTS = new InjectionToken<MessageDefaults>('slotted message defaults', {\n providedIn: 'root',\n factory: () => FALLBACK,\n});\n\n/**\n * An application decides once how its messages are laid out, when their\n * actions show, and what a bubble paints when nothing infers it. A group, a\n * row or a bubble that states any of them still wins. Its words come from the\n * language in force (`provideSlotted`).\n */\nexport function provideMessageDefaults(defaults: Partial<MessageDefaults>) {\n return {\n provide: MESSAGE_DEFAULTS,\n useFactory: (): MessageDefaults => ({\n layout: defaults.layout ?? FALLBACK.layout,\n actionsVisibility: defaults.actionsVisibility ?? FALLBACK.actionsVisibility,\n variant: defaults.variant ?? FALLBACK.variant,\n tone: defaults.tone ?? FALLBACK.tone,\n }),\n };\n}\n\nexport function injectMessageDefaults(): MessageDefaults {\n return inject(MESSAGE_DEFAULTS);\n}\n\n/** A click from Enter or Space has no detail. */\nexport function reasonOf(event: Event): MessageChangeReason {\n return (event as MouseEvent).detail === 0 ? 'keyboard' : 'pointer';\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n Directive,\n HostAttributeToken,\n inject,\n input,\n model,\n output,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { injectMessages } from '@slotted/angular/i18n';\nimport {\n messageMessages,\n type FamilyTranslator,\n type MessageMessages,\n type PartialMessages,\n} from '@slotted/core/i18n';\nimport { createControllable } from '@slotted/core/state';\nimport type { ChangeRequest } from '@slotted/core/state';\n\nimport { injectMessageDefaults } from './message-defaults';\nimport type {\n MessageActionsVisibility,\n MessageAlign,\n MessageChangeReason,\n MessageLayout,\n MessageRetryRequest,\n MessageStatus,\n} from './message-defaults';\n\nlet nextId = 0;\n\n/**\n * A run of messages from one sender on the `div` the page wrote. The rows\n * inside it stand two pixels apart, the corners that face each other on the\n * sender's side are drawn in, and a row with no avatar still stands on the\n * column the run's avatar holds — read from the DOM by the stylesheet.\n */\n@Directive({\n selector: '[slMessageGroup]',\n standalone: true,\n exportAs: 'slMessageGroup',\n host: {\n 'data-ui': 'message',\n 'data-ui-message': '',\n 'data-part': 'group',\n 'data-part-group': '',\n },\n})\nexport class SlMessageGroup {\n /** The layout every row in the run takes unless it states its own. */\n readonly layout = input<MessageLayout | undefined>(undefined);\n}\n\n/**\n * One message of a conversation, on the `article` the page wrote, named by\n * its author.\n *\n * **The side is asked once, here.** A bubble inside the row follows `align`\n * and, when it states no painting, takes the reader's own for `end` — the\n * accent's fill — and none for a thread.\n *\n * **The status is a fact about delivery.** `sending` and `streaming` are\n * `aria-busy` and `data-loading`, `failed` is `data-invalid`, `read` is\n * `data-read`.\n *\n * **Versions.** With `versionCount` of two or more, `slMessageVersions`\n * pages between them; `[(version)]` is two-way and every move is asked\n * first through `versionChangeRequest`.\n */\n@Component({\n selector: '[slMessage]',\n standalone: true,\n exportAs: 'slMessage',\n template: '<ng-content></ng-content>',\n styleUrl: '../../../styles/src/message/message.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-ui': 'message',\n 'data-ui-message': '',\n 'data-part': 'root',\n 'data-part-root': '',\n '[attr.data-align]': 'align()',\n '[attr.data-layout]': 'resolvedLayout()',\n '[attr.data-actions]': 'resolvedActions()',\n '[attr.data-status]': 'status() ?? null',\n '[attr.data-loading]': \"busy() ? '' : null\",\n '[attr.data-invalid]': \"status() === 'failed' ? '' : null\",\n '[attr.data-read]': \"status() === 'read' ? '' : null\",\n '[attr.aria-busy]': \"busy() ? 'true' : null\",\n '[attr.aria-labelledby]': 'labelledBy()',\n },\n})\nexport class SlMessage {\n /** The sender's side. `end` is the reader's own message. */\n readonly align = input<MessageAlign>('start');\n /** Bubbles in a conversation, or rows of a comment thread. Falls back to the group, then the token. */\n readonly layout = input<MessageLayout | undefined>(undefined);\n readonly actionsVisibility = input<MessageActionsVisibility | undefined>(undefined);\n readonly status = input<MessageStatus | undefined>(undefined);\n /** The version on screen, from 0. Two-way; every move is asked first. */\n readonly version = model(0);\n /** How many versions exist; the pager draws when there are two or more. */\n readonly versionCount = input(1);\n /**\n * Words laid over the catalog of the language in force, key by key, for\n * this row and every part and bubble inside it.\n */\n readonly messages = input<PartialMessages<MessageMessages> | undefined>(undefined);\n\n /** Emitted before the version moves; `cancel()` keeps it. */\n readonly versionChangeRequest = output<ChangeRequest<number>>();\n /** Asks to send the message again; `slBubbleRetry` emits it. */\n readonly retry = output<MessageRetryRequest>();\n\n private readonly defaults = injectMessageDefaults();\n private readonly group = inject(SlMessageGroup, { optional: true });\n private readonly ownLabel =\n inject(new HostAttributeToken('aria-label'), { optional: true }) ??\n inject(new HostAttributeToken('aria-labelledby'), { optional: true });\n\n readonly authorId = `sl-message-${nextId++}-author`;\n /** The family's words in the language in force, with this row's `messages` laid over them. */\n readonly t = injectMessages(messageMessages, this.messages);\n private readonly authorPresent = signal(false);\n\n readonly resolvedLayout = computed(\n () => this.layout() ?? this.group?.layout() ?? this.defaults.layout,\n );\n readonly resolvedActions = computed(\n () => this.actionsVisibility() ?? this.defaults.actionsVisibility,\n );\n readonly busy = computed(() => this.status() === 'sending' || this.status() === 'streaming');\n /** The author names the article unless the page named it: `aria-labelledby` would outrank its `aria-label`. */\n protected readonly labelledBy = computed(() =>\n this.ownLabel === null && this.authorPresent() ? this.authorId : null,\n );\n\n registerAuthor(present: boolean) {\n this.authorPresent.set(present);\n }\n\n requestVersion(next: number, reason: MessageChangeReason, source: Event) {\n const bounded = Math.min(Math.max(0, next), Math.max(0, this.versionCount() - 1));\n const state = createControllable<number>({\n initial: this.version(),\n onRequest: (request) => this.versionChangeRequest.emit(request),\n });\n if (state.request(bounded, reason, source)) this.version.set(bounded);\n }\n\n requestRetry(reason: MessageChangeReason, source: Event) {\n this.retry.emit({ reason, source });\n }\n}\n\n/**\n * The family's words for a part that may stand outside a row: the row's, with\n * its `messages` laid over the language in force, or the language alone.\n */\nexport function injectMessageWords(): FamilyTranslator<MessageMessages> {\n const own = injectMessages(messageMessages);\n return inject(SlMessage, { optional: true })?.t ?? own;\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n Directive,\n ElementRef,\n HostAttributeToken,\n inject,\n input,\n ViewEncapsulation,\n} from '@angular/core';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\n\nimport { SlMessage } from './message';\nimport { reasonOf } from './message-defaults';\nimport type { MessageActivityStepStatus, MessageStatus } from './message-defaults';\n\nfunction message(): SlMessage {\n const owner = inject(SlMessage, { optional: true });\n if (owner === null) throw new Error('A message part is rendered outside slMessage.');\n return owner;\n}\n\n/** The box the sender's avatar stands in: at the foot of a run, or beside the name in a thread. */\n@Directive({\n selector: '[slMessageAvatar]',\n standalone: true,\n host: { 'data-part': 'avatar', 'data-part-avatar': '' },\n})\nexport class SlMessageAvatar {}\n\n/** The column of the words: the header, the bubbles, the attachments and the footer. */\n@Directive({\n selector: '[slMessageBody]',\n standalone: true,\n host: { 'data-part': 'body', 'data-part-body': '' },\n})\nexport class SlMessageBody {}\n\n/** The name and, in a thread, the hour, over the words. */\n@Directive({\n selector: '[slMessageHeader]',\n standalone: true,\n host: { 'data-part': 'header', 'data-part-header': '' },\n})\nexport class SlMessageHeader {}\n\n/** What is said about the message under it: a receipt outside a bubble, the actions, the versions. */\n@Directive({\n selector: '[slMessageFooter]',\n standalone: true,\n host: { 'data-part': 'footer', 'data-part-footer': '' },\n})\nexport class SlMessageFooter {}\n\n/** The hour, on the `time` element the page wrote with its `datetime`. */\n@Directive({\n selector: 'time[slMessageTime]',\n standalone: true,\n host: { 'data-part': 'time', 'data-part-time': '' },\n})\nexport class SlMessageTime {}\n\n/**\n * The sender's name. While it is on the page the article is named by it, so a\n * screen reader that moves from article to article hears who spoke. A page\n * `id` is kept.\n */\n@Directive({\n selector: '[slMessageAuthor]',\n standalone: true,\n host: { 'data-part': 'author', 'data-part-author': '', '[attr.id]': 'id' },\n})\nexport class SlMessageAuthor {\n private readonly owner = message();\n protected readonly id =\n inject(new HostAttributeToken('id'), { optional: true }) ?? this.owner.authorId;\n\n constructor() {\n this.owner.registerAuthor(true);\n inject(DestroyRef).onDestroy(() => this.owner.registerAuthor(false));\n }\n}\n\n/**\n * The hour and the delivery mark inside a bubble, riding at the end of the\n * last line. A receipt inside it draws its mark and keeps its word for\n * assistive technology.\n */\n@Directive({\n selector: '[slBubbleMeta]',\n standalone: true,\n host: { 'data-part': 'meta', 'data-part-meta': '' },\n})\nexport class SlBubbleMeta {}\n\nconst RECEIPT_GLYPH = {\n sending: 'clock',\n sent: 'check',\n delivered: 'check-check',\n read: 'check-check',\n} as const;\n\n/**\n * Where the message is in its delivery. Inside `slBubbleMeta` it is a mark\n * beside the hour with the word hidden for assistive technology; anywhere\n * else it is the word alone — a mark beside a word of twelve pixels is two\n * voices saying one thing.\n */\n@Component({\n selector: '[slMessageReceipt]',\n standalone: true,\n imports: [SlGlyph, SlIcon],\n template: `@if (glyph(); as name) {\n <span slIcon><svg slGlyph [name]=\"name\"></svg></span><span>{{ word() }}</span>\n } @else {\n {{ word() }}\n }`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { 'data-part': 'receipt', 'data-part-receipt': '', '[attr.data-status]': 'resolved()' },\n})\nexport class SlMessageReceipt {\n /** Falls back to the row's status. */\n readonly status = input<Exclude<MessageStatus, 'streaming'> | undefined>(undefined);\n\n private readonly owner = message();\n private readonly inMeta = inject(SlBubbleMeta, { optional: true }) !== null;\n\n readonly resolved = computed(() => {\n const own = this.owner.status();\n return this.status() ?? (own === 'streaming' ? undefined : own) ?? 'sent';\n });\n protected readonly word = computed(() => this.owner.t(this.resolved()));\n protected readonly glyph = computed(() => {\n const status = this.resolved();\n return this.inMeta && status !== 'failed' ? RECEIPT_GLYPH[status] : null;\n });\n}\n\n/** The message's own actions — copy, reply, rate — as a toolbar the row reveals. */\n@Directive({\n selector: '[slMessageActions]',\n standalone: true,\n host: {\n 'data-part': 'actions',\n 'data-part-actions': '',\n role: 'toolbar',\n '[attr.aria-label]': 'label()',\n },\n})\nexport class SlMessageActions {\n private readonly owner = message();\n private readonly written = inject(new HostAttributeToken('aria-label'), { optional: true });\n protected readonly label = computed(() => this.written ?? this.owner.t('actions'));\n}\n\n/** What a reply is doing before it has words, as a short log of steps; a status region. */\n@Directive({\n selector: '[slMessageActivity]',\n standalone: true,\n host: { 'data-part': 'activity', 'data-part-activity': '', role: 'status' },\n})\nexport class SlMessageActivity {}\n\n/** One step of an activity: done, in progress, or waiting. */\n@Component({\n selector: '[slMessageActivityStep]',\n standalone: true,\n imports: [SlGlyph, SlIcon],\n template: `@switch (status()) {\n @case ('complete') {\n <span slIcon><svg slGlyph name=\"check\"></svg></span>\n }\n @case ('current') {\n <span aria-hidden=\"true\"\n ><span aria-hidden=\"true\" data-ui=\"spinner\" data-ui-spinner=\"\"></span\n ></span>\n }\n @default {\n <span aria-hidden=\"true\"></span>\n }\n }\n <span><ng-content></ng-content></span>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'activity-step',\n 'data-part-activity-step': '',\n '[attr.data-complete]': \"status() === 'complete' ? '' : null\",\n '[attr.data-current]': \"status() === 'current' ? '' : null\",\n '[attr.aria-current]': \"status() === 'current' ? 'step' : null\",\n },\n})\nexport class SlMessageActivityStep {\n readonly status = input<MessageActivityStepStatus>('current');\n}\n\n/**\n * `2 de 3` between two controls that page through a reply's versions. It\n * draws its controls only while there are two or more; they stop at the ends\n * rather than wrapping. `ArrowLeft` and `ArrowRight` page as well, mirrored in\n * a right-to-left document.\n */\n@Component({\n selector: '[slMessageVersions]',\n standalone: true,\n imports: [SlGlyph, SlIcon],\n template: `@if (owner.versionCount() > 1) {\n <button\n type=\"button\"\n data-part=\"version-previous\"\n data-part-version-previous=\"\"\n [attr.aria-label]=\"owner.t('previousVersion')\"\n [disabled]=\"owner.version() <= 0\"\n (click)=\"step(-1, $event)\"\n >\n <span slIcon><svg slGlyph name=\"chevron-right\"></svg></span>\n </button>\n <span data-part=\"version-label\" data-part-version-label=\"\" aria-live=\"polite\">{{\n label()\n }}</span>\n <button\n type=\"button\"\n data-part=\"version-next\"\n data-part-version-next=\"\"\n [attr.aria-label]=\"owner.t('nextVersion')\"\n [disabled]=\"owner.version() >= owner.versionCount() - 1\"\n (click)=\"step(1, $event)\"\n >\n <span slIcon><svg slGlyph name=\"chevron-right\"></svg></span>\n </button>\n }`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'versions',\n 'data-part-versions': '',\n role: 'group',\n '[attr.aria-label]': \"owner.t('versions')\",\n '[attr.hidden]': \"owner.versionCount() > 1 ? null : ''\",\n '(keydown)': 'onKeyDown($event)',\n },\n})\nexport class SlMessageVersions {\n protected readonly owner = message();\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\n\n protected readonly label = computed(() =>\n this.owner.t('versionLabel', {\n current: this.owner.version() + 1,\n total: this.owner.versionCount(),\n }),\n );\n\n protected step(delta: number, event: MouseEvent) {\n this.owner.requestVersion(this.owner.version() + delta, reasonOf(event), event);\n }\n\n protected onKeyDown(event: KeyboardEvent) {\n if (event.defaultPrevented) return;\n const rtl = getComputedStyle(this.host).direction === 'rtl';\n const forward = rtl ? 'ArrowLeft' : 'ArrowRight';\n const back = rtl ? 'ArrowRight' : 'ArrowLeft';\n if (event.key !== forward && event.key !== back) return;\n event.preventDefault();\n this.owner.requestVersion(\n this.owner.version() + (event.key === forward ? 1 : -1),\n 'keyboard',\n event,\n );\n }\n}\n","import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n Directive,\n effect,\n ElementRef,\n HostAttributeToken,\n inject,\n input,\n model,\n output,\n signal,\n untracked,\n ViewEncapsulation,\n} from '@angular/core';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\nimport { createControllable } from '@slotted/core/state';\nimport {\n advanceStream,\n initialStream,\n prefersReducedMotion,\n settleStream,\n} from '@slotted/core/text-stream';\nimport type { ChangeRequest } from '@slotted/core/state';\n\nimport { injectMessageWords, SlMessage } from './message';\nimport { injectMessageDefaults, reasonOf } from './message-defaults';\nimport type { BubbleTone, BubbleVariant, MessageChangeReason } from './message-defaults';\n\nlet nextId = 0;\n\n/**\n * The surface a message's words are painted on, on the `div` the page wrote.\n *\n * **Painting.** `variant` × `tone`. A bubble that states neither takes it from\n * its row — the reader's own message is the accent's fill, a thread paints no\n * box — then from the token; the result is written as `data-variant` and\n * `data-tone`.\n *\n * **Clamp.** With `maxLines`, a longer text shows its first lines and a\n * “show more” control under the surface, drawn only while the text\n * overflows; the whole text stays in the DOM. `[(revealed)]` is two-way and\n * every move is asked first through `revealedChangeRequest`.\n */\n@Component({\n selector: '[slBubble]',\n standalone: true,\n exportAs: 'slBubble',\n imports: [SlGlyph, SlIcon],\n template: `<ng-content></ng-content>\n @if (clamped() && (overflowing() || revealed())) {\n <button\n type=\"button\"\n data-part=\"more\"\n data-part-more=\"\"\n [attr.aria-controls]=\"contentId\"\n [attr.aria-expanded]=\"revealed()\"\n (click)=\"toggle($event)\"\n >\n {{ revealed() ? t('less') : t('more') }}\n <span slIcon><svg slGlyph name=\"chevron-down\"></svg></span>\n </button>\n }`,\n styleUrl: '../../../styles/src/message/message.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-ui': 'message',\n 'data-ui-message': '',\n 'data-part': 'bubble',\n 'data-part-bubble': '',\n '[attr.data-variant]': 'resolvedVariant()',\n '[attr.data-tone]': 'resolvedTone()',\n '[attr.data-clamped]': \"clamped() ? '' : null\",\n '[attr.data-revealed]': \"clamped() && revealed() ? '' : null\",\n '[style.--slotted-message-max-lines]': 'maxLines() ?? null',\n },\n})\nexport class SlBubble {\n readonly variant = input<BubbleVariant | undefined>(undefined);\n readonly tone = input<BubbleTone | undefined>(undefined);\n /** Lines shown before the text is clamped behind a “show more” control. */\n readonly maxLines = input<number | undefined>(undefined);\n /** The text shown whole. Two-way; every move is asked first. */\n readonly revealed = model(false);\n readonly revealedChangeRequest = output<ChangeRequest<boolean>>();\n\n private readonly defaults = injectMessageDefaults();\n private readonly row = inject(SlMessage, { optional: true });\n\n readonly contentId = `sl-bubble-${nextId++}-content`;\n /** The family's words: the row's, or the language in force outside a row. */\n readonly t = injectMessageWords();\n readonly overflowing = signal(false);\n readonly clamped = computed(() => this.maxLines() !== undefined);\n\n readonly resolvedVariant = computed<BubbleVariant>(() => {\n const own = this.variant();\n if (own !== undefined) return own;\n if (this.row?.resolvedLayout() === 'thread') return 'plain';\n if (this.row?.align() === 'end') return 'solid';\n return this.defaults.variant;\n });\n readonly resolvedTone = computed<BubbleTone>(() => {\n const own = this.tone();\n if (own !== undefined) return own;\n if (this.row?.align() === 'end' && this.row.resolvedLayout() !== 'thread') return 'accent';\n return this.defaults.tone;\n });\n\n protected toggle(event: MouseEvent) {\n this.requestRevealed(!this.revealed(), reasonOf(event), event);\n }\n\n requestRevealed(next: boolean, reason: MessageChangeReason, source: Event) {\n const state = createControllable<boolean>({\n initial: this.revealed(),\n onRequest: (request) => this.revealedChangeRequest.emit(request),\n });\n if (state.request(next, reason, source)) this.revealed.set(next);\n }\n}\n\n/**\n * The painted surface, on the `div`, `button` or `a` the page wrote: a quick\n * reply is a `button`, a way out of the thread an `a`, and each keeps the\n * painting, the hover, the press and the focus ring. Inside a clamped bubble\n * it measures whether its text overflows, which is what draws “show more”.\n */\n@Directive({\n selector: '[slBubbleContent]',\n standalone: true,\n host: { 'data-part': 'content', 'data-part-content': '', '[attr.id]': 'id' },\n})\nexport class SlBubbleContent {\n private readonly bubble = inject(SlBubble, { optional: true });\n protected readonly id =\n inject(new HostAttributeToken('id'), { optional: true }) ?? this.bubble?.contentId ?? null;\n\n constructor() {\n const element = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\n const bubble = this.bubble;\n if (bubble === null) return;\n let observer: ResizeObserver | null = null;\n afterNextRender(() => {\n const measure = () => {\n if (!bubble.clamped() || bubble.revealed()) return;\n bubble.overflowing.set(element.scrollHeight > element.clientHeight + 1);\n };\n measure();\n if (typeof ResizeObserver === 'undefined') return;\n observer = new ResizeObserver(measure);\n observer.observe(element);\n });\n inject(DestroyRef).onDestroy(() => observer?.disconnect());\n }\n}\n\n/**\n * The message a reply answers, at the head of the surface, on the `div` or\n * `button` the page wrote. On a `button` it asks the page to scroll to the\n * quoted message through `(click)` — the scroller's `scrollToMessage`.\n */\n@Component({\n selector: '[slBubbleQuote]',\n standalone: true,\n template: `@if (author(); as name) {\n <span data-part=\"quote-author\" data-part-quote-author=\"\">{{ name }}</span>\n }\n <ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { 'data-part': 'quote', 'data-part-quote': '' },\n})\nexport class SlBubbleQuote {\n readonly author = input<string | undefined>(undefined);\n}\n\n/**\n * The words of a streamed reply, entering as they arrive, on the `span` the\n * page wrote.\n *\n * `text` is everything received so far. What extends the previous text is\n * split into words by `@slotted/core/text-stream`; each word is in the DOM at\n * once and enters as a `stream-chunk` after a delay of at most 320 ms, so a\n * burst from the transport reads as a wave rather than a block. A chunk that\n * has entered is folded back into plain text. Text that does not extend the\n * previous — a regenerated reply — replaces it at once, and so does every\n * arrival under reduced motion.\n *\n * Arrivals animate while the row is `streaming`, and the arrival that ends\n * the stream with it; `animate` states it outright.\n */\n@Component({\n selector: 'span[slBubbleStream]',\n standalone: true,\n /* One line: a space or a line break between the text and the chunks would be painted. */\n // prettier-ignore\n template: `{{ stream().settled }}@for (chunk of stream().chunks; track chunk.key) {<span data-part=\"stream-chunk\" data-part-stream-chunk=\"\" [style.animation-delay.ms]=\"chunk.delay\" (animationend)=\"settle(chunk.key)\">{{ chunk.text }}</span>}`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { 'data-part': 'stream', 'data-part-stream': '' },\n})\nexport class SlBubbleStream {\n private readonly row = inject(SlMessage, { optional: true });\n private readonly view = inject(ElementRef<HTMLElement>).nativeElement.ownerDocument.defaultView;\n\n /** The whole reply received so far. Text that extends it enters word by word. */\n readonly text = input.required<string>();\n /** Let arrivals enter. Falls back to whether the row is `streaming`. */\n readonly animate = input<boolean | undefined>(undefined);\n\n private readonly streaming = computed(() => this.animate() ?? this.row?.status() === 'streaming');\n protected readonly stream = signal(initialStream(''));\n private started = false;\n private wasStreaming = false;\n\n constructor() {\n effect(() => {\n const text = this.text();\n const streaming = this.streaming();\n untracked(() => {\n if (!this.started) {\n this.started = true;\n this.stream.set(initialStream(text));\n } else {\n this.stream.update((stream) =>\n advanceStream(stream, text, {\n animate: (streaming || this.wasStreaming) && !prefersReducedMotion(this.view),\n now: typeof performance === 'undefined' ? 0 : performance.now(),\n }),\n );\n }\n this.wasStreaming = streaming;\n });\n });\n }\n\n protected settle(key: number) {\n this.stream.update((stream) => settleStream(stream, key));\n }\n}\n\n/** The caret at the end of the words that have arrived while a reply streams. */\n@Directive({\n selector: '[slBubbleCaret]',\n standalone: true,\n host: { 'data-part': 'caret', 'data-part-caret': '', 'aria-hidden': 'true' },\n})\nexport class SlBubbleCaret {}\n\n/** Three dots in the bubble of someone writing, named for assistive technology. */\n@Component({\n selector: '[slBubbleTyping]',\n standalone: true,\n template: '<span></span><span></span><span></span>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'typing',\n 'data-part-typing': '',\n role: 'img',\n '[attr.aria-label]': 'label()',\n },\n})\nexport class SlBubbleTyping {\n private readonly t = injectMessageWords();\n private readonly written = inject(new HostAttributeToken('aria-label'), { optional: true });\n /** A written `aria-label` wins over the `typing` message. */\n protected readonly label = computed(() => this.written ?? this.t('typing'));\n}\n\n/**\n * The round control beside a message that did not go, on the `button` the\n * page wrote. It asks the row's `(retry)` with the reason, after the page's\n * own `(click)`.\n */\n@Component({\n selector: 'button[slBubbleRetry]',\n standalone: true,\n imports: [SlGlyph, SlIcon],\n template: '<span slIcon><svg slGlyph name=\"rotate-ccw\"></svg></span>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'retry',\n 'data-part-retry': '',\n type: 'button',\n '[attr.aria-label]': 'label()',\n '(click)': 'onClick($event)',\n },\n})\nexport class SlBubbleRetry {\n private readonly row = inject(SlMessage, { optional: true });\n private readonly t = injectMessageWords();\n private readonly written = inject(new HostAttributeToken('aria-label'), { optional: true });\n protected readonly label = computed(() => this.written ?? this.t('retry'));\n\n protected onClick(event: MouseEvent) {\n if (event.defaultPrevented) return;\n this.row?.requestRetry(reasonOf(event), event);\n }\n}\n\n/** The row of reactions straddling the surface's lower edge; in a thread, a row under the words. */\n@Directive({\n selector: '[slBubbleReactions]',\n standalone: true,\n host: {\n 'data-part': 'reactions',\n 'data-part-reactions': '',\n role: 'group',\n '[attr.aria-label]': 'label()',\n },\n})\nexport class SlBubbleReactions {\n private readonly t = injectMessageWords();\n private readonly written = inject(new HostAttributeToken('aria-label'), { optional: true });\n protected readonly label = computed(() => this.written ?? this.t('reactions'));\n}\n\n/**\n * One reaction on the `button` the page wrote: the emoji or mark the page\n * writes inside it, and its count. `[(pressed)]` is two-way and every move is\n * asked first through `pressedChangeRequest`; the count is the page's store's.\n */\n@Component({\n selector: 'button[slBubbleReaction]',\n standalone: true,\n template: `<ng-content></ng-content>\n @if (count() !== undefined) {\n <span data-part=\"reaction-count\" data-part-reaction-count=\"\">{{ count() }}</span>\n }`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'reaction',\n 'data-part-reaction': '',\n type: 'button',\n '[attr.aria-pressed]': 'pressed()',\n '[attr.data-pressed]': \"pressed() ? '' : null\",\n '[attr.data-disabled]': \"disabled() ? '' : null\",\n '[disabled]': 'disabled()',\n '(click)': 'toggle($event)',\n },\n})\nexport class SlBubbleReaction {\n readonly pressed = model(false);\n readonly count = input<number | undefined>(undefined);\n readonly disabled = input(false);\n readonly pressedChangeRequest = output<ChangeRequest<boolean>>();\n\n protected toggle(event: MouseEvent) {\n if (event.defaultPrevented || this.disabled()) return;\n const state = createControllable<boolean>({\n initial: this.pressed(),\n onRequest: (request) => this.pressedChangeRequest.emit(request),\n });\n if (state.request(!this.pressed(), reasonOf(event), event)) this.pressed.set(!this.pressed());\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["nextId"],"mappings":"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"}