@slotted/angular 0.1.0-beta.8 → 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 (418) hide show
  1. package/docs/code-block.json +92 -92
  2. package/docs/code-block.md +69 -69
  3. package/docs/currency-field.json +7 -0
  4. package/docs/currency-field.md +1 -0
  5. package/docs/data-grid.examples.md +1 -1
  6. package/docs/data-grid.json +21 -4
  7. package/docs/data-grid.md +1 -1
  8. package/docs/data-grid.props.md +5 -3
  9. package/docs/dialog.examples.md +138 -136
  10. package/docs/dialog.json +8 -8
  11. package/docs/filter-bar.json +118 -118
  12. package/docs/filter-bar.md +79 -79
  13. package/docs/guidelines/async-feedback.md +10 -0
  14. package/docs/guidelines/composition.md +11 -7
  15. package/docs/guidelines/index.md +6 -1
  16. package/docs/guidelines/list-pages.md +30 -0
  17. package/docs/guidelines/overviews.md +10 -0
  18. package/docs/markdown.json +79 -79
  19. package/docs/markdown.md +65 -65
  20. package/docs/page-header.json +1 -1
  21. package/docs/skills/compose-screen/SKILL.md +22 -10
  22. package/docs/skills/review-screen/SKILL.md +6 -0
  23. package/docs/skills/waiting-states/SKILL.md +4 -1
  24. package/docs/tags-input.json +28 -2
  25. package/docs/tags-input.md +4 -1
  26. package/docs/timeline.json +131 -131
  27. package/docs/timeline.md +123 -123
  28. package/fesm2022/slotted-angular-accordion.mjs +4 -2
  29. package/fesm2022/slotted-angular-accordion.mjs.map +1 -1
  30. package/fesm2022/slotted-angular-action-bar.mjs +21 -10
  31. package/fesm2022/slotted-angular-action-bar.mjs.map +1 -1
  32. package/fesm2022/slotted-angular-action-sheet.mjs +42 -29
  33. package/fesm2022/slotted-angular-action-sheet.mjs.map +1 -1
  34. package/fesm2022/slotted-angular-alert.mjs +17 -11
  35. package/fesm2022/slotted-angular-alert.mjs.map +1 -1
  36. package/fesm2022/slotted-angular-app-shell.mjs +52 -40
  37. package/fesm2022/slotted-angular-app-shell.mjs.map +1 -1
  38. package/fesm2022/slotted-angular-aspect-ratio.mjs +4 -2
  39. package/fesm2022/slotted-angular-aspect-ratio.mjs.map +1 -1
  40. package/fesm2022/slotted-angular-attachment.mjs +31 -20
  41. package/fesm2022/slotted-angular-attachment.mjs.map +1 -1
  42. package/fesm2022/slotted-angular-avatar-group.mjs +9 -6
  43. package/fesm2022/slotted-angular-avatar-group.mjs.map +1 -1
  44. package/fesm2022/slotted-angular-avatar.mjs +9 -6
  45. package/fesm2022/slotted-angular-avatar.mjs.map +1 -1
  46. package/fesm2022/slotted-angular-badge.mjs +14 -10
  47. package/fesm2022/slotted-angular-badge.mjs.map +1 -1
  48. package/fesm2022/slotted-angular-breadcrumb.mjs +26 -18
  49. package/fesm2022/slotted-angular-breadcrumb.mjs.map +1 -1
  50. package/fesm2022/slotted-angular-button-group.mjs +7 -4
  51. package/fesm2022/slotted-angular-button-group.mjs.map +1 -1
  52. package/fesm2022/slotted-angular-button.mjs +53 -25
  53. package/fesm2022/slotted-angular-button.mjs.map +1 -1
  54. package/fesm2022/slotted-angular-calendar.mjs +68 -26
  55. package/fesm2022/slotted-angular-calendar.mjs.map +1 -1
  56. package/fesm2022/slotted-angular-card.mjs +18 -16
  57. package/fesm2022/slotted-angular-card.mjs.map +1 -1
  58. package/fesm2022/slotted-angular-carousel.mjs +22 -11
  59. package/fesm2022/slotted-angular-carousel.mjs.map +1 -1
  60. package/fesm2022/slotted-angular-cascader.mjs +158 -64
  61. package/fesm2022/slotted-angular-cascader.mjs.map +1 -1
  62. package/fesm2022/slotted-angular-chart.mjs +4 -2
  63. package/fesm2022/slotted-angular-chart.mjs.map +1 -1
  64. package/fesm2022/slotted-angular-checkbox-group.mjs +5 -3
  65. package/fesm2022/slotted-angular-checkbox-group.mjs.map +1 -1
  66. package/fesm2022/slotted-angular-checkbox.mjs +13 -8
  67. package/fesm2022/slotted-angular-checkbox.mjs.map +1 -1
  68. package/fesm2022/slotted-angular-code-block.mjs +29 -15
  69. package/fesm2022/slotted-angular-code-block.mjs.map +1 -1
  70. package/fesm2022/slotted-angular-collapsible.mjs +20 -15
  71. package/fesm2022/slotted-angular-collapsible.mjs.map +1 -1
  72. package/fesm2022/slotted-angular-color-picker.mjs +77 -22
  73. package/fesm2022/slotted-angular-color-picker.mjs.map +1 -1
  74. package/fesm2022/slotted-angular-column-manager.mjs +68 -31
  75. package/fesm2022/slotted-angular-column-manager.mjs.map +1 -1
  76. package/fesm2022/slotted-angular-combobox.mjs +77 -31
  77. package/fesm2022/slotted-angular-combobox.mjs.map +1 -1
  78. package/fesm2022/slotted-angular-command-palette.mjs +128 -51
  79. package/fesm2022/slotted-angular-command-palette.mjs.map +1 -1
  80. package/fesm2022/slotted-angular-container.mjs +6 -4
  81. package/fesm2022/slotted-angular-container.mjs.map +1 -1
  82. package/fesm2022/slotted-angular-context-menu.mjs +5 -4
  83. package/fesm2022/slotted-angular-context-menu.mjs.map +1 -1
  84. package/fesm2022/slotted-angular-currency-field.mjs +98 -32
  85. package/fesm2022/slotted-angular-currency-field.mjs.map +1 -1
  86. package/fesm2022/slotted-angular-dashboard-grid.mjs +127 -44
  87. package/fesm2022/slotted-angular-dashboard-grid.mjs.map +1 -1
  88. package/fesm2022/slotted-angular-data-grid.mjs +309 -104
  89. package/fesm2022/slotted-angular-data-grid.mjs.map +1 -1
  90. package/fesm2022/slotted-angular-data-list.mjs +83 -50
  91. package/fesm2022/slotted-angular-data-list.mjs.map +1 -1
  92. package/fesm2022/slotted-angular-date-field.mjs +38 -12
  93. package/fesm2022/slotted-angular-date-field.mjs.map +1 -1
  94. package/fesm2022/slotted-angular-date-picker.mjs +19 -9
  95. package/fesm2022/slotted-angular-date-picker.mjs.map +1 -1
  96. package/fesm2022/slotted-angular-date-range-picker.mjs +41 -16
  97. package/fesm2022/slotted-angular-date-range-picker.mjs.map +1 -1
  98. package/fesm2022/slotted-angular-datetime-field.mjs +46 -14
  99. package/fesm2022/slotted-angular-datetime-field.mjs.map +1 -1
  100. package/fesm2022/slotted-angular-datetime-picker.mjs +37 -23
  101. package/fesm2022/slotted-angular-datetime-picker.mjs.map +1 -1
  102. package/fesm2022/slotted-angular-datetime-range-picker.mjs +111 -42
  103. package/fesm2022/slotted-angular-datetime-range-picker.mjs.map +1 -1
  104. package/fesm2022/slotted-angular-description-list.mjs +33 -19
  105. package/fesm2022/slotted-angular-description-list.mjs.map +1 -1
  106. package/fesm2022/slotted-angular-detail-panel.mjs +29 -18
  107. package/fesm2022/slotted-angular-detail-panel.mjs.map +1 -1
  108. package/fesm2022/slotted-angular-dialog.mjs +39 -28
  109. package/fesm2022/slotted-angular-dialog.mjs.map +1 -1
  110. package/fesm2022/slotted-angular-divider.mjs +7 -5
  111. package/fesm2022/slotted-angular-divider.mjs.map +1 -1
  112. package/fesm2022/slotted-angular-drawer.mjs +32 -24
  113. package/fesm2022/slotted-angular-drawer.mjs.map +1 -1
  114. package/fesm2022/slotted-angular-entity-picker.mjs +195 -67
  115. package/fesm2022/slotted-angular-entity-picker.mjs.map +1 -1
  116. package/fesm2022/slotted-angular-event-calendar.mjs +259 -102
  117. package/fesm2022/slotted-angular-event-calendar.mjs.map +1 -1
  118. package/fesm2022/slotted-angular-field-group.mjs +14 -7
  119. package/fesm2022/slotted-angular-field-group.mjs.map +1 -1
  120. package/fesm2022/slotted-angular-field.mjs +35 -15
  121. package/fesm2022/slotted-angular-field.mjs.map +1 -1
  122. package/fesm2022/slotted-angular-filter-bar.mjs +104 -43
  123. package/fesm2022/slotted-angular-filter-bar.mjs.map +1 -1
  124. package/fesm2022/slotted-angular-form.mjs +18 -10
  125. package/fesm2022/slotted-angular-form.mjs.map +1 -1
  126. package/fesm2022/slotted-angular-fullscreen.mjs +14 -8
  127. package/fesm2022/slotted-angular-fullscreen.mjs.map +1 -1
  128. package/fesm2022/slotted-angular-grid.mjs +4 -2
  129. package/fesm2022/slotted-angular-grid.mjs.map +1 -1
  130. package/fesm2022/slotted-angular-highlight.mjs +5 -3
  131. package/fesm2022/slotted-angular-highlight.mjs.map +1 -1
  132. package/fesm2022/slotted-angular-hover-card.mjs +5 -4
  133. package/fesm2022/slotted-angular-hover-card.mjs.map +1 -1
  134. package/fesm2022/slotted-angular-icon.mjs +6 -3
  135. package/fesm2022/slotted-angular-icon.mjs.map +1 -1
  136. package/fesm2022/slotted-angular-image.mjs +13 -10
  137. package/fesm2022/slotted-angular-image.mjs.map +1 -1
  138. package/fesm2022/slotted-angular-import-export-center.mjs +167 -99
  139. package/fesm2022/slotted-angular-import-export-center.mjs.map +1 -1
  140. package/fesm2022/slotted-angular-inline-message.mjs +10 -8
  141. package/fesm2022/slotted-angular-inline-message.mjs.map +1 -1
  142. package/fesm2022/slotted-angular-inline.mjs +4 -2
  143. package/fesm2022/slotted-angular-inline.mjs.map +1 -1
  144. package/fesm2022/slotted-angular-kbd.mjs +11 -7
  145. package/fesm2022/slotted-angular-kbd.mjs.map +1 -1
  146. package/fesm2022/slotted-angular-link.mjs +5 -3
  147. package/fesm2022/slotted-angular-link.mjs.map +1 -1
  148. package/fesm2022/slotted-angular-list-item.mjs +21 -18
  149. package/fesm2022/slotted-angular-list-item.mjs.map +1 -1
  150. package/fesm2022/slotted-angular-list.mjs +14 -10
  151. package/fesm2022/slotted-angular-list.mjs.map +1 -1
  152. package/fesm2022/slotted-angular-listbox.mjs +39 -21
  153. package/fesm2022/slotted-angular-listbox.mjs.map +1 -1
  154. package/fesm2022/slotted-angular-loading-overlay.mjs +59 -22
  155. package/fesm2022/slotted-angular-loading-overlay.mjs.map +1 -1
  156. package/fesm2022/slotted-angular-markdown.mjs +31 -19
  157. package/fesm2022/slotted-angular-markdown.mjs.map +1 -1
  158. package/fesm2022/slotted-angular-menu.mjs +41 -27
  159. package/fesm2022/slotted-angular-menu.mjs.map +1 -1
  160. package/fesm2022/slotted-angular-menubar.mjs +4 -2
  161. package/fesm2022/slotted-angular-menubar.mjs.map +1 -1
  162. package/fesm2022/slotted-angular-message-scroller.mjs +28 -15
  163. package/fesm2022/slotted-angular-message-scroller.mjs.map +1 -1
  164. package/fesm2022/slotted-angular-message.mjs +113 -51
  165. package/fesm2022/slotted-angular-message.mjs.map +1 -1
  166. package/fesm2022/slotted-angular-multi-select.mjs +133 -57
  167. package/fesm2022/slotted-angular-multi-select.mjs.map +1 -1
  168. package/fesm2022/slotted-angular-navigation-menu.mjs +34 -26
  169. package/fesm2022/slotted-angular-navigation-menu.mjs.map +1 -1
  170. package/fesm2022/slotted-angular-notification-center.mjs +107 -65
  171. package/fesm2022/slotted-angular-notification-center.mjs.map +1 -1
  172. package/fesm2022/slotted-angular-number-field.mjs +23 -11
  173. package/fesm2022/slotted-angular-number-field.mjs.map +1 -1
  174. package/fesm2022/slotted-angular-otp-input.mjs +13 -8
  175. package/fesm2022/slotted-angular-otp-input.mjs.map +1 -1
  176. package/fesm2022/slotted-angular-page-header.mjs +72 -42
  177. package/fesm2022/slotted-angular-page-header.mjs.map +1 -1
  178. package/fesm2022/slotted-angular-page.mjs +18 -9
  179. package/fesm2022/slotted-angular-page.mjs.map +1 -1
  180. package/fesm2022/slotted-angular-pagination.mjs +35 -22
  181. package/fesm2022/slotted-angular-pagination.mjs.map +1 -1
  182. package/fesm2022/slotted-angular-popover.mjs +25 -18
  183. package/fesm2022/slotted-angular-popover.mjs.map +1 -1
  184. package/fesm2022/slotted-angular-progress-indicator.mjs +122 -30
  185. package/fesm2022/slotted-angular-progress-indicator.mjs.map +1 -1
  186. package/fesm2022/slotted-angular-prompt-composer.mjs +24 -18
  187. package/fesm2022/slotted-angular-prompt-composer.mjs.map +1 -1
  188. package/fesm2022/slotted-angular-prose.mjs +14 -11
  189. package/fesm2022/slotted-angular-prose.mjs.map +1 -1
  190. package/fesm2022/slotted-angular-radio-group.mjs +15 -9
  191. package/fesm2022/slotted-angular-radio-group.mjs.map +1 -1
  192. package/fesm2022/slotted-angular-rating.mjs +138 -82
  193. package/fesm2022/slotted-angular-rating.mjs.map +1 -1
  194. package/fesm2022/slotted-angular-result-state.mjs +16 -12
  195. package/fesm2022/slotted-angular-result-state.mjs.map +1 -1
  196. package/fesm2022/slotted-angular-saved-views.mjs +43 -16
  197. package/fesm2022/slotted-angular-saved-views.mjs.map +1 -1
  198. package/fesm2022/slotted-angular-scroll-area.mjs +9 -5
  199. package/fesm2022/slotted-angular-scroll-area.mjs.map +1 -1
  200. package/fesm2022/slotted-angular-section.mjs +34 -15
  201. package/fesm2022/slotted-angular-section.mjs.map +1 -1
  202. package/fesm2022/slotted-angular-segmented-control.mjs +15 -9
  203. package/fesm2022/slotted-angular-segmented-control.mjs.map +1 -1
  204. package/fesm2022/slotted-angular-select.mjs +135 -53
  205. package/fesm2022/slotted-angular-select.mjs.map +1 -1
  206. package/fesm2022/slotted-angular-side-navigation.mjs +46 -35
  207. package/fesm2022/slotted-angular-side-navigation.mjs.map +1 -1
  208. package/fesm2022/slotted-angular-skeleton.mjs +32 -16
  209. package/fesm2022/slotted-angular-skeleton.mjs.map +1 -1
  210. package/fesm2022/slotted-angular-slider.mjs +31 -11
  211. package/fesm2022/slotted-angular-slider.mjs.map +1 -1
  212. package/fesm2022/slotted-angular-sparkline.mjs +29 -13
  213. package/fesm2022/slotted-angular-sparkline.mjs.map +1 -1
  214. package/fesm2022/slotted-angular-split-button.mjs +25 -11
  215. package/fesm2022/slotted-angular-split-button.mjs.map +1 -1
  216. package/fesm2022/slotted-angular-splitter.mjs +11 -9
  217. package/fesm2022/slotted-angular-splitter.mjs.map +1 -1
  218. package/fesm2022/slotted-angular-stack.mjs +4 -2
  219. package/fesm2022/slotted-angular-stack.mjs.map +1 -1
  220. package/fesm2022/slotted-angular-stat-card.mjs +35 -28
  221. package/fesm2022/slotted-angular-stat-card.mjs.map +1 -1
  222. package/fesm2022/slotted-angular-status-indicator.mjs +22 -8
  223. package/fesm2022/slotted-angular-status-indicator.mjs.map +1 -1
  224. package/fesm2022/slotted-angular-stepper.mjs +40 -15
  225. package/fesm2022/slotted-angular-stepper.mjs.map +1 -1
  226. package/fesm2022/slotted-angular-switch.mjs +15 -10
  227. package/fesm2022/slotted-angular-switch.mjs.map +1 -1
  228. package/fesm2022/slotted-angular-table-of-contents.mjs +29 -21
  229. package/fesm2022/slotted-angular-table-of-contents.mjs.map +1 -1
  230. package/fesm2022/slotted-angular-table.mjs +135 -72
  231. package/fesm2022/slotted-angular-table.mjs.map +1 -1
  232. package/fesm2022/slotted-angular-tabs.mjs +31 -14
  233. package/fesm2022/slotted-angular-tabs.mjs.map +1 -1
  234. package/fesm2022/slotted-angular-tag.mjs +19 -12
  235. package/fesm2022/slotted-angular-tag.mjs.map +1 -1
  236. package/fesm2022/slotted-angular-tags-input.mjs +253 -28
  237. package/fesm2022/slotted-angular-tags-input.mjs.map +1 -1
  238. package/fesm2022/slotted-angular-text-field.mjs +49 -15
  239. package/fesm2022/slotted-angular-text-field.mjs.map +1 -1
  240. package/fesm2022/slotted-angular-textarea.mjs +5 -3
  241. package/fesm2022/slotted-angular-textarea.mjs.map +1 -1
  242. package/fesm2022/slotted-angular-time-field.mjs +46 -12
  243. package/fesm2022/slotted-angular-time-field.mjs.map +1 -1
  244. package/fesm2022/slotted-angular-time-picker.mjs +28 -14
  245. package/fesm2022/slotted-angular-time-picker.mjs.map +1 -1
  246. package/fesm2022/slotted-angular-time-range-picker.mjs +109 -40
  247. package/fesm2022/slotted-angular-time-range-picker.mjs.map +1 -1
  248. package/fesm2022/slotted-angular-timeline.mjs +135 -64
  249. package/fesm2022/slotted-angular-timeline.mjs.map +1 -1
  250. package/fesm2022/slotted-angular-toast.mjs +42 -31
  251. package/fesm2022/slotted-angular-toast.mjs.map +1 -1
  252. package/fesm2022/slotted-angular-toggle-group.mjs +10 -6
  253. package/fesm2022/slotted-angular-toggle-group.mjs.map +1 -1
  254. package/fesm2022/slotted-angular-toggle.mjs +9 -4
  255. package/fesm2022/slotted-angular-toggle.mjs.map +1 -1
  256. package/fesm2022/slotted-angular-toolbar.mjs +21 -10
  257. package/fesm2022/slotted-angular-toolbar.mjs.map +1 -1
  258. package/fesm2022/slotted-angular-tooltip.mjs +8 -5
  259. package/fesm2022/slotted-angular-tooltip.mjs.map +1 -1
  260. package/fesm2022/slotted-angular-top-navigation.mjs +64 -44
  261. package/fesm2022/slotted-angular-top-navigation.mjs.map +1 -1
  262. package/fesm2022/slotted-angular-tour.mjs +46 -21
  263. package/fesm2022/slotted-angular-tour.mjs.map +1 -1
  264. package/fesm2022/slotted-angular-transfer.mjs +69 -30
  265. package/fesm2022/slotted-angular-transfer.mjs.map +1 -1
  266. package/fesm2022/slotted-angular-tree.mjs +74 -26
  267. package/fesm2022/slotted-angular-tree.mjs.map +1 -1
  268. package/fesm2022/slotted-angular-typography.mjs +8 -4
  269. package/fesm2022/slotted-angular-typography.mjs.map +1 -1
  270. package/fesm2022/slotted-angular-upload.mjs +125 -57
  271. package/fesm2022/slotted-angular-upload.mjs.map +1 -1
  272. package/fesm2022/slotted-angular-visually-hidden.mjs +4 -2
  273. package/fesm2022/slotted-angular-visually-hidden.mjs.map +1 -1
  274. package/fesm2022/slotted-angular-wizard.mjs +163 -65
  275. package/fesm2022/slotted-angular-wizard.mjs.map +1 -1
  276. package/package.json +3 -3
  277. package/types/slotted-angular-accordion.d.ts.map +1 -1
  278. package/types/slotted-angular-action-bar.d.ts.map +1 -1
  279. package/types/slotted-angular-action-sheet.d.ts.map +1 -1
  280. package/types/slotted-angular-alert.d.ts +1 -1
  281. package/types/slotted-angular-alert.d.ts.map +1 -1
  282. package/types/slotted-angular-app-shell.d.ts.map +1 -1
  283. package/types/slotted-angular-aspect-ratio.d.ts.map +1 -1
  284. package/types/slotted-angular-attachment.d.ts +1 -1
  285. package/types/slotted-angular-attachment.d.ts.map +1 -1
  286. package/types/slotted-angular-avatar-group.d.ts.map +1 -1
  287. package/types/slotted-angular-avatar.d.ts.map +1 -1
  288. package/types/slotted-angular-badge.d.ts.map +1 -1
  289. package/types/slotted-angular-breadcrumb.d.ts.map +1 -1
  290. package/types/slotted-angular-button-group.d.ts.map +1 -1
  291. package/types/slotted-angular-button.d.ts.map +1 -1
  292. package/types/slotted-angular-calendar.d.ts.map +1 -1
  293. package/types/slotted-angular-card.d.ts.map +1 -1
  294. package/types/slotted-angular-carousel.d.ts.map +1 -1
  295. package/types/slotted-angular-cascader.d.ts.map +1 -1
  296. package/types/slotted-angular-chart.d.ts.map +1 -1
  297. package/types/slotted-angular-checkbox-group.d.ts.map +1 -1
  298. package/types/slotted-angular-checkbox.d.ts.map +1 -1
  299. package/types/slotted-angular-code-block.d.ts +1 -1
  300. package/types/slotted-angular-code-block.d.ts.map +1 -1
  301. package/types/slotted-angular-collapsible.d.ts +1 -1
  302. package/types/slotted-angular-collapsible.d.ts.map +1 -1
  303. package/types/slotted-angular-color-picker.d.ts.map +1 -1
  304. package/types/slotted-angular-column-manager.d.ts.map +1 -1
  305. package/types/slotted-angular-combobox.d.ts +1 -1
  306. package/types/slotted-angular-combobox.d.ts.map +1 -1
  307. package/types/slotted-angular-command-palette.d.ts.map +1 -1
  308. package/types/slotted-angular-container.d.ts.map +1 -1
  309. package/types/slotted-angular-context-menu.d.ts.map +1 -1
  310. package/types/slotted-angular-currency-field.d.ts +39 -13
  311. package/types/slotted-angular-currency-field.d.ts.map +1 -1
  312. package/types/slotted-angular-dashboard-grid.d.ts.map +1 -1
  313. package/types/slotted-angular-data-grid.d.ts +26 -2
  314. package/types/slotted-angular-data-grid.d.ts.map +1 -1
  315. package/types/slotted-angular-data-list.d.ts.map +1 -1
  316. package/types/slotted-angular-date-field.d.ts.map +1 -1
  317. package/types/slotted-angular-date-picker.d.ts.map +1 -1
  318. package/types/slotted-angular-date-range-picker.d.ts.map +1 -1
  319. package/types/slotted-angular-datetime-field.d.ts.map +1 -1
  320. package/types/slotted-angular-datetime-picker.d.ts.map +1 -1
  321. package/types/slotted-angular-datetime-range-picker.d.ts.map +1 -1
  322. package/types/slotted-angular-description-list.d.ts.map +1 -1
  323. package/types/slotted-angular-detail-panel.d.ts.map +1 -1
  324. package/types/slotted-angular-dialog.d.ts +2 -1
  325. package/types/slotted-angular-dialog.d.ts.map +1 -1
  326. package/types/slotted-angular-divider.d.ts.map +1 -1
  327. package/types/slotted-angular-drawer.d.ts.map +1 -1
  328. package/types/slotted-angular-entity-picker.d.ts.map +1 -1
  329. package/types/slotted-angular-event-calendar.d.ts.map +1 -1
  330. package/types/slotted-angular-field-group.d.ts.map +1 -1
  331. package/types/slotted-angular-field.d.ts.map +1 -1
  332. package/types/slotted-angular-filter-bar.d.ts.map +1 -1
  333. package/types/slotted-angular-form.d.ts.map +1 -1
  334. package/types/slotted-angular-fullscreen.d.ts.map +1 -1
  335. package/types/slotted-angular-grid.d.ts.map +1 -1
  336. package/types/slotted-angular-highlight.d.ts.map +1 -1
  337. package/types/slotted-angular-hover-card.d.ts.map +1 -1
  338. package/types/slotted-angular-icon.d.ts +1 -1
  339. package/types/slotted-angular-icon.d.ts.map +1 -1
  340. package/types/slotted-angular-image.d.ts.map +1 -1
  341. package/types/slotted-angular-import-export-center.d.ts.map +1 -1
  342. package/types/slotted-angular-inline-message.d.ts +1 -1
  343. package/types/slotted-angular-inline-message.d.ts.map +1 -1
  344. package/types/slotted-angular-inline.d.ts.map +1 -1
  345. package/types/slotted-angular-kbd.d.ts.map +1 -1
  346. package/types/slotted-angular-link.d.ts.map +1 -1
  347. package/types/slotted-angular-list-item.d.ts.map +1 -1
  348. package/types/slotted-angular-list.d.ts.map +1 -1
  349. package/types/slotted-angular-listbox.d.ts.map +1 -1
  350. package/types/slotted-angular-loading-overlay.d.ts.map +1 -1
  351. package/types/slotted-angular-markdown.d.ts.map +1 -1
  352. package/types/slotted-angular-menu.d.ts.map +1 -1
  353. package/types/slotted-angular-menubar.d.ts.map +1 -1
  354. package/types/slotted-angular-message-scroller.d.ts.map +1 -1
  355. package/types/slotted-angular-message.d.ts.map +1 -1
  356. package/types/slotted-angular-multi-select.d.ts +1 -1
  357. package/types/slotted-angular-multi-select.d.ts.map +1 -1
  358. package/types/slotted-angular-navigation-menu.d.ts.map +1 -1
  359. package/types/slotted-angular-notification-center.d.ts.map +1 -1
  360. package/types/slotted-angular-number-field.d.ts.map +1 -1
  361. package/types/slotted-angular-otp-input.d.ts.map +1 -1
  362. package/types/slotted-angular-page-header.d.ts +1 -1
  363. package/types/slotted-angular-page-header.d.ts.map +1 -1
  364. package/types/slotted-angular-page.d.ts.map +1 -1
  365. package/types/slotted-angular-pagination.d.ts.map +1 -1
  366. package/types/slotted-angular-popover.d.ts.map +1 -1
  367. package/types/slotted-angular-progress-indicator.d.ts.map +1 -1
  368. package/types/slotted-angular-prompt-composer.d.ts.map +1 -1
  369. package/types/slotted-angular-prose.d.ts.map +1 -1
  370. package/types/slotted-angular-radio-group.d.ts.map +1 -1
  371. package/types/slotted-angular-rating.d.ts.map +1 -1
  372. package/types/slotted-angular-result-state.d.ts.map +1 -1
  373. package/types/slotted-angular-saved-views.d.ts.map +1 -1
  374. package/types/slotted-angular-scroll-area.d.ts.map +1 -1
  375. package/types/slotted-angular-section.d.ts.map +1 -1
  376. package/types/slotted-angular-segmented-control.d.ts.map +1 -1
  377. package/types/slotted-angular-select.d.ts +1 -1
  378. package/types/slotted-angular-select.d.ts.map +1 -1
  379. package/types/slotted-angular-side-navigation.d.ts.map +1 -1
  380. package/types/slotted-angular-skeleton.d.ts.map +1 -1
  381. package/types/slotted-angular-slider.d.ts.map +1 -1
  382. package/types/slotted-angular-sparkline.d.ts.map +1 -1
  383. package/types/slotted-angular-split-button.d.ts.map +1 -1
  384. package/types/slotted-angular-splitter.d.ts.map +1 -1
  385. package/types/slotted-angular-stack.d.ts.map +1 -1
  386. package/types/slotted-angular-stat-card.d.ts.map +1 -1
  387. package/types/slotted-angular-status-indicator.d.ts +1 -1
  388. package/types/slotted-angular-status-indicator.d.ts.map +1 -1
  389. package/types/slotted-angular-stepper.d.ts +1 -1
  390. package/types/slotted-angular-stepper.d.ts.map +1 -1
  391. package/types/slotted-angular-switch.d.ts.map +1 -1
  392. package/types/slotted-angular-table-of-contents.d.ts.map +1 -1
  393. package/types/slotted-angular-table.d.ts.map +1 -1
  394. package/types/slotted-angular-tabs.d.ts.map +1 -1
  395. package/types/slotted-angular-tag.d.ts.map +1 -1
  396. package/types/slotted-angular-tags-input.d.ts +33 -1
  397. package/types/slotted-angular-tags-input.d.ts.map +1 -1
  398. package/types/slotted-angular-text-field.d.ts.map +1 -1
  399. package/types/slotted-angular-textarea.d.ts.map +1 -1
  400. package/types/slotted-angular-time-field.d.ts.map +1 -1
  401. package/types/slotted-angular-time-picker.d.ts.map +1 -1
  402. package/types/slotted-angular-time-range-picker.d.ts.map +1 -1
  403. package/types/slotted-angular-timeline.d.ts.map +1 -1
  404. package/types/slotted-angular-toast.d.ts +2 -2
  405. package/types/slotted-angular-toast.d.ts.map +1 -1
  406. package/types/slotted-angular-toggle-group.d.ts.map +1 -1
  407. package/types/slotted-angular-toggle.d.ts.map +1 -1
  408. package/types/slotted-angular-toolbar.d.ts.map +1 -1
  409. package/types/slotted-angular-tooltip.d.ts.map +1 -1
  410. package/types/slotted-angular-top-navigation.d.ts.map +1 -1
  411. package/types/slotted-angular-tour.d.ts.map +1 -1
  412. package/types/slotted-angular-transfer.d.ts.map +1 -1
  413. package/types/slotted-angular-tree.d.ts.map +1 -1
  414. package/types/slotted-angular-typography.d.ts.map +1 -1
  415. package/types/slotted-angular-upload.d.ts +2 -2
  416. package/types/slotted-angular-upload.d.ts.map +1 -1
  417. package/types/slotted-angular-visually-hidden.d.ts.map +1 -1
  418. package/types/slotted-angular-wizard.d.ts.map +1 -1
@@ -290,26 +290,27 @@ class SlCodeBlock {
290
290
  this.body().reveal(element);
291
291
  }
292
292
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlCodeBlock, deps: [], target: i0.ɵɵFactoryTarget.Component });
293
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.7", type: SlCodeBlock, isStandalone: true, selector: "[slCodeBlock]", inputs: { code: { classPropertyName: "code", publicName: "code", isSignal: true, isRequired: true, transformFunction: null }, language: { classPropertyName: "language", publicName: "language", isSignal: true, isRequired: false, transformFunction: null }, highlight: { classPropertyName: "highlight", publicName: "highlight", isSignal: true, isRequired: false, transformFunction: null }, tokens: { classPropertyName: "tokens", publicName: "tokens", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, fileName: { classPropertyName: "fileName", publicName: "fileName", isSignal: true, isRequired: false, transformFunction: null }, lineNumbers: { classPropertyName: "lineNumbers", publicName: "lineNumbers", isSignal: true, isRequired: false, transformFunction: null }, start: { classPropertyName: "start", publicName: "start", isSignal: true, isRequired: false, transformFunction: null }, marks: { classPropertyName: "marks", publicName: "marks", isSignal: true, isRequired: false, transformFunction: null }, wrap: { classPropertyName: "wrap", publicName: "wrap", isSignal: true, isRequired: false, transformFunction: null }, defaultWrap: { classPropertyName: "defaultWrap", publicName: "defaultWrap", isSignal: true, isRequired: false, transformFunction: null }, collapseAfter: { classPropertyName: "collapseAfter", publicName: "collapseAfter", isSignal: true, isRequired: false, transformFunction: null }, revealed: { classPropertyName: "revealed", publicName: "revealed", isSignal: true, isRequired: false, transformFunction: null }, defaultRevealed: { classPropertyName: "defaultRevealed", publicName: "defaultRevealed", isSignal: true, isRequired: false, transformFunction: null }, maxLines: { classPropertyName: "maxLines", publicName: "maxLines", isSignal: true, isRequired: false, transformFunction: null }, copy: { classPropertyName: "copy", publicName: "copy", isSignal: true, isRequired: false, transformFunction: null }, copyRemoved: { classPropertyName: "copyRemoved", publicName: "copyRemoved", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, messages: { classPropertyName: "messages", publicName: "messages", isSignal: true, isRequired: false, transformFunction: null }, tabSize: { classPropertyName: "tabSize", publicName: "tabSize", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { wrap: "wrapChange", revealed: "revealedChange", wrapChangeRequest: "wrapChangeRequest", revealedChangeRequest: "revealedChangeRequest", copyRequest: "copyRequest", highlightError: "highlightError" }, host: { attributes: { "data-ui": "code-block", "data-part": "root" }, listeners: { "keydown": "onKeyDown($event)" }, properties: { "attr.data-language": "language()", "attr.data-wrap": "isWrapped() ? \"\" : null", "attr.data-revealed": "isRevealed() ? \"\" : null", "attr.data-collapse": "collapses() ? \"\" : null", "attr.data-line-numbers": "lineNumbersValue() ? \"\" : null", "attr.data-loading": "loading() ? \"\" : null", "attr.aria-busy": "loading() ? \"true\" : null", "attr.data-empty": "code() === \"\" ? \"\" : null", "attr.data-marks": "hasMarks() ? \"\" : null", "attr.data-overflow": "overflow() ? \"\" : null", "style.--slotted-code-block-digits": "digits()", "style.--slotted-code-block-collapse": "collapses() ? collapseAfter() : null", "style.--slotted-code-block-max-lines": "maxLines() ?? null" } }, queries: [{ propertyName: "lineTemplate", first: true, predicate: SlCodeBlockLine, descendants: true, isSignal: true }, { propertyName: "action", first: true, predicate: SlCodeBlockAction, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "body", first: true, predicate: ["body"], descendants: true, isSignal: true }], exportAs: ["slCodeBlock"], ngImport: i0, template: `
293
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.7", type: SlCodeBlock, isStandalone: true, selector: "[slCodeBlock]", inputs: { code: { classPropertyName: "code", publicName: "code", isSignal: true, isRequired: true, transformFunction: null }, language: { classPropertyName: "language", publicName: "language", isSignal: true, isRequired: false, transformFunction: null }, highlight: { classPropertyName: "highlight", publicName: "highlight", isSignal: true, isRequired: false, transformFunction: null }, tokens: { classPropertyName: "tokens", publicName: "tokens", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, fileName: { classPropertyName: "fileName", publicName: "fileName", isSignal: true, isRequired: false, transformFunction: null }, lineNumbers: { classPropertyName: "lineNumbers", publicName: "lineNumbers", isSignal: true, isRequired: false, transformFunction: null }, start: { classPropertyName: "start", publicName: "start", isSignal: true, isRequired: false, transformFunction: null }, marks: { classPropertyName: "marks", publicName: "marks", isSignal: true, isRequired: false, transformFunction: null }, wrap: { classPropertyName: "wrap", publicName: "wrap", isSignal: true, isRequired: false, transformFunction: null }, defaultWrap: { classPropertyName: "defaultWrap", publicName: "defaultWrap", isSignal: true, isRequired: false, transformFunction: null }, collapseAfter: { classPropertyName: "collapseAfter", publicName: "collapseAfter", isSignal: true, isRequired: false, transformFunction: null }, revealed: { classPropertyName: "revealed", publicName: "revealed", isSignal: true, isRequired: false, transformFunction: null }, defaultRevealed: { classPropertyName: "defaultRevealed", publicName: "defaultRevealed", isSignal: true, isRequired: false, transformFunction: null }, maxLines: { classPropertyName: "maxLines", publicName: "maxLines", isSignal: true, isRequired: false, transformFunction: null }, copy: { classPropertyName: "copy", publicName: "copy", isSignal: true, isRequired: false, transformFunction: null }, copyRemoved: { classPropertyName: "copyRemoved", publicName: "copyRemoved", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, messages: { classPropertyName: "messages", publicName: "messages", isSignal: true, isRequired: false, transformFunction: null }, tabSize: { classPropertyName: "tabSize", publicName: "tabSize", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { wrap: "wrapChange", revealed: "revealedChange", wrapChangeRequest: "wrapChangeRequest", revealedChangeRequest: "revealedChangeRequest", copyRequest: "copyRequest", highlightError: "highlightError" }, host: { attributes: { "data-ui": "code-block", "data-ui-code-block": "", "data-part": "root", "data-part-root": "" }, listeners: { "keydown": "onKeyDown($event)" }, properties: { "attr.data-language": "language()", "attr.data-wrap": "isWrapped() ? \"\" : null", "attr.data-revealed": "isRevealed() ? \"\" : null", "attr.data-collapse": "collapses() ? \"\" : null", "attr.data-line-numbers": "lineNumbersValue() ? \"\" : null", "attr.data-loading": "loading() ? \"\" : null", "attr.aria-busy": "loading() ? \"true\" : null", "attr.data-empty": "code() === \"\" ? \"\" : null", "attr.data-marks": "hasMarks() ? \"\" : null", "attr.data-overflow": "overflow() ? \"\" : null", "style.--slotted-code-block-digits": "digits()", "style.--slotted-code-block-collapse": "collapses() ? collapseAfter() : null", "style.--slotted-code-block-max-lines": "maxLines() ?? null" } }, queries: [{ propertyName: "lineTemplate", first: true, predicate: SlCodeBlockLine, descendants: true, isSignal: true }, { propertyName: "action", first: true, predicate: SlCodeBlockAction, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "body", first: true, predicate: ["body"], descendants: true, isSignal: true }], exportAs: ["slCodeBlock"], ngImport: i0, template: `
294
294
  @if (hasHeader()) {
295
- <div data-part="header">
295
+ <div data-part="header" data-part-header="">
296
296
  @if (icon(); as glyph) {
297
- <span aria-hidden="true" data-part="icon"
297
+ <span aria-hidden="true" data-part="icon" data-part-icon=""
298
298
  ><span slIcon><svg slGlyph [name]="glyph"></svg></span
299
299
  ></span>
300
300
  }
301
301
  @if (title(); as words) {
302
- <span data-part="title" [id]="id + '-title'">{{ words }}</span>
302
+ <span data-part="title" data-part-title="" [id]="id + '-title'">{{ words }}</span>
303
303
  }
304
304
  @if (language() !== 'text') {
305
- <span data-part="language">{{ language() }}</span>
305
+ <span data-part="language" data-part-language="">{{ language() }}</span>
306
306
  }
307
307
  @if (!loading()) {
308
- <div data-part="actions">
308
+ <div data-part="actions" data-part-actions="">
309
309
  <ng-content select="[slCodeBlockAction]"></ng-content>
310
310
  @if (overflow() || isWrapped()) {
311
311
  <button
312
312
  data-part="wrap"
313
+ data-part-wrap=""
313
314
  type="button"
314
315
  [attr.aria-label]="t(isWrapped() ? 'unwrap' : 'wrap')"
315
316
  [attr.aria-pressed]="isWrapped()"
@@ -323,6 +324,7 @@ class SlCodeBlock {
323
324
  @if (copyControl()) {
324
325
  <button
325
326
  data-part="copy"
327
+ data-part-copy=""
326
328
  type="button"
327
329
  [attr.aria-label]="t('copy')"
328
330
  [attr.data-complete]="copied() ? '' : null"
@@ -341,6 +343,8 @@ class SlCodeBlock {
341
343
  #body
342
344
  slScrollArea
343
345
  data-part="body"
346
+ data-part-body=""
347
+ [attr.data-part-root]="null"
344
348
  [axis]="maxLines() === undefined ? 'inline' : 'both'"
345
349
  fade="both"
346
350
  gutter="auto"
@@ -352,12 +356,14 @@ class SlCodeBlock {
352
356
  <div slScrollAreaContent>
353
357
  <pre
354
358
  data-part="pre"
355
- ><code data-part="code" [class]="'language-' + language()">@if (loading()) {@for (width of skeletonWidths; track $index) {<span slSkeleton shape="text" aria-hidden="true" [style.inline-size]="width + '%'"></span>}} @else {@for (line of rows(); track $index) {<span data-part="line" [attr.data-line]="line.number" [attr.data-mark]="line.mark ?? null" [attr.data-dim]="line.dim ? '' : null" [style.--slotted-code-block-indent]="line.indent > 0 ? line.indent : null"><span aria-hidden="true" data-part="number">@if (lineNumbersValue()) {{{ line.number }}}</span><span aria-hidden="true" data-part="marker"></span><span data-part="text">@if (lineTemplate(); as custom) {<ng-container [ngTemplateOutlet]="custom.template" [ngTemplateOutletContext]="{ $implicit: line.tokens, number: line.number, mark: line.mark, dim: line.dim }" />} @else {@for (token of line.tokens; track $index) {@if (token.scope) {<span data-part="token" [attr.data-token]="token.scope">{{ token.text }}</span>} @else {{{ token.text }}}}}</span></span>}}</code></pre>
359
+ data-part-pre=""
360
+ ><code data-part="code" data-part-code="" [class]="'language-' + language()">@if (loading()) {@for (width of skeletonWidths; track $index) {<span slSkeleton shape="text" aria-hidden="true" [style.inline-size]="width + '%'"></span>}} @else {@for (line of rows(); track $index) {<span data-part="line" data-part-line="" [attr.data-line]="line.number" [attr.data-mark]="line.mark ?? null" [attr.data-dim]="line.dim ? '' : null" [style.--slotted-code-block-indent]="line.indent > 0 ? line.indent : null"><span aria-hidden="true" data-part="number" data-part-number="">@if (lineNumbersValue()) {{{ line.number }}}</span><span aria-hidden="true" data-part="marker" data-part-marker=""></span><span data-part="text" data-part-text="">@if (lineTemplate(); as custom) {<ng-container [ngTemplateOutlet]="custom.template" [ngTemplateOutletContext]="{ $implicit: line.tokens, number: line.number, mark: line.mark, dim: line.dim }" />} @else {@for (token of line.tokens; track $index) {@if (token.scope) {<span data-part="token" data-part-token="" [attr.data-token]="token.scope">{{ token.text }}</span>} @else {{{ token.text }}}}}</span></span>}}</code></pre>
356
361
  </div>
357
362
  </div>
358
363
  @if (collapses()) {
359
364
  <button
360
365
  data-part="reveal"
366
+ data-part-reveal=""
361
367
  type="button"
362
368
  [attr.aria-controls]="id + '-body'"
363
369
  [attr.aria-expanded]="isRevealed()"
@@ -367,30 +373,31 @@ class SlCodeBlock {
367
373
  {{ isRevealed() ? t('collapse') : t('reveal', { count: hiddenCount() }) }}
368
374
  </button>
369
375
  }
370
- `, isInline: true, styles: ["@layer slotted.components{[data-ui=code-block]{--_ground: var(--slotted-code-block-surface, var(--slotted-surface-sunken, Canvas));--_edge: var(--slotted-code-block-border-color, var(--slotted-border-subtle, GrayText));--_ink: var(--slotted-code-block-color, var(--slotted-text, CanvasText));--_muted: var(--slotted-code-block-color-muted, var(--slotted-text-muted, GrayText));--_radius: var(--slotted-code-block-radius, var(--slotted-radius-md, 6px));--_inset-block: var(--slotted-code-block-inset-block, var(--slotted-space-5, .75rem));--_inset-inline: var(--slotted-code-block-inset-inline, var(--slotted-space-6, 1rem));--_font-size: var(--slotted-code-block-font-size, var(--slotted-font-size-sm, .8125rem));--_line-height: var(--slotted-code-block-line-height, var(--slotted-line-height-md, 1.5));--_line: calc(var(--_font-size) * var(--_line-height));--_icon: var(--slotted-control-icon-size-md, 16px);--_hit: calc((var(--slotted-target-min, 24px) - var(--_icon)) / 2);--_duration: var(--slotted-control-transition-duration, var(--slotted-duration-short));--_easing: var(--slotted-control-transition-easing, var(--slotted-easing-standard));--_digits: var(--slotted-code-block-digits, 1);--_gutter: calc(var(--_digits) * 1ch + var(--slotted-space-4, .5rem) * 2);--_tint: var(--slotted-highlight-tint-opacity, .075);background-color:var(--_ground);border:var(--slotted-border-width-thin, 1px) solid var(--_edge);border-radius:var(--_radius);box-sizing:border-box;color:var(--_ink);display:grid;font-family:var(--slotted-code-block-font-family, var(--slotted-font-family-mono, monospace));font-size:var(--_font-size);grid-template-rows:auto minmax(0,1fr) auto;line-height:var(--_line-height);min-inline-size:0;position:relative}[data-ui=code-block]>[data-part=header]{align-items:center;border-block-end:var(--slotted-border-width-thin, 1px) solid var(--_edge);display:flex;font-family:var(--slotted-font-family-sans, inherit);font-size:var(--slotted-font-size-sm, .8125rem);gap:var(--slotted-control-gap-sm, 6px);min-inline-size:0;padding-block:var(--slotted-space-3, .375rem);padding-inline:var(--_inset-inline) var(--slotted-space-4, .5rem)}[data-ui=code-block]>[data-part=header]>[data-part=icon]{--slotted-icon-size: var(--_icon);block-size:var(--_icon);color:var(--_muted);display:flex;flex:none;inline-size:var(--_icon)}[data-ui=code-block]>[data-part=header]>[data-part=title]{font-family:var(--slotted-code-block-font-family, var(--slotted-font-family-mono, monospace));min-inline-size:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}[data-ui=code-block]>[data-part=header]>[data-part=language]{color:var(--_muted);font-size:var(--slotted-font-size-xs, .75rem);letter-spacing:.02em;margin-inline-start:auto;text-transform:uppercase}[data-ui=code-block]>[data-part=header]>[data-part=title]+[data-part=language],[data-ui=code-block]>[data-part=header]>[data-part=icon]+[data-part=language]{margin-inline-start:auto}[data-ui=code-block]>[data-part=header]>[data-part=actions]{align-items:center;display:flex;gap:var(--slotted-space-1, .125rem);margin-inline-start:auto}[data-ui=code-block]>[data-part=header]>[data-part=language]+[data-part=actions]{margin-inline-start:var(--slotted-space-3, .375rem)}[data-ui=code-block]>[data-part=actions]{align-items:center;background-color:var(--_ground);border-radius:var(--slotted-control-radius, 4px);display:flex;gap:var(--slotted-space-1, .125rem);inset-block-start:var(--slotted-space-2, .25rem);inset-inline-end:var(--slotted-space-2, .25rem);position:absolute;z-index:1}[data-ui=code-block] :is([data-part=copy],[data-part=wrap]){--slotted-icon-size: var(--_icon);align-items:center;appearance:none;background:none;block-size:var(--slotted-target-min, 24px);border:0;border-radius:var(--slotted-control-radius, var(--slotted-radius-sm, 4px));color:var(--_muted);cursor:pointer;display:inline-flex;font:inherit;inline-size:var(--slotted-target-min, 24px);justify-content:center;padding:var(--_hit);transition:color var(--_duration) var(--_easing),background-color var(--_duration) var(--_easing)}@media(pointer:coarse){[data-ui=code-block] :is([data-part=copy],[data-part=wrap]){position:relative}[data-ui=code-block] :is([data-part=copy],[data-part=wrap]):before{content:\"\";inset:min(0px,calc((100% - var(--slotted-target-comfortable, 44px)) / 2));position:absolute}[data-ui=code-block] [data-part=wrap]:has(+[data-part=copy]):before{inset-inline-end:0}[data-ui=code-block] [data-part=wrap]+[data-part=copy]:before{inset-inline-start:0}}[data-ui=code-block] :is([data-part=copy],[data-part=wrap]):enabled:not([data-complete]):hover{background-color:var(--slotted-tone-secondary-subtle-hover, ButtonFace);color:var(--_ink)}[data-ui=code-block] :is([data-part=copy],[data-part=wrap]):enabled:not([data-complete]):active{background-color:var(--slotted-tone-secondary-subtle-active, ButtonFace)}[data-ui=code-block] [data-part=wrap][data-pressed]{background-color:var(--slotted-tone-accent-surface, Canvas);color:var(--slotted-tone-accent-text, CanvasText)}[data-ui=code-block] [data-part=copy][data-complete]{color:var(--slotted-tone-success-text, CanvasText)}[data-ui=code-block] :is([data-part=copy],[data-part=wrap],[data-part=reveal]):focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:var(--slotted-focus-ring-offset, 2px)}[data-ui=code-block]>[data-part=body]{border-radius:0 0 var(--_radius) var(--_radius);min-inline-size:0}[data-ui=code-block]>[data-part=body]:first-child{border-radius:var(--_radius)}[data-ui=code-block]>[data-part=body][data-max-lines]>[data-part=viewport]{max-block-size:calc(var(--slotted-code-block-max-lines) * var(--_line) + var(--_inset-block) * 2)}[data-ui=code-block]>[data-part=body]>[data-part=viewport]:focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:calc(var(--slotted-focus-ring-offset, 2px) * -1)}[data-ui=code-block] [data-part=pre]{direction:ltr;font:inherit;margin:0;min-inline-size:max-content;padding-block:var(--_inset-block);tab-size:var(--slotted-code-block-tab-size, 2);white-space:pre}[data-ui=code-block][data-wrap] [data-part=pre]{min-inline-size:0;overflow-wrap:anywhere;white-space:pre-wrap}[data-ui=code-block] [data-part=code]{display:grid;font:inherit;grid-template-columns:minmax(0,1fr)}[data-ui=code-block] [data-part=line]{--_indent: calc(var(--slotted-code-block-indent, 0) * 1ch);box-sizing:border-box;display:grid;grid-template-columns:var(--_number, 0px) var(--_marker, 0px) minmax(0,1fr);min-block-size:var(--_line);padding-inline:var(--_inset-inline);position:relative}[data-ui=code-block][data-line-numbers] [data-part=line]{--_number: var(--_gutter);padding-inline-start:0}[data-ui=code-block]:not([data-line-numbers]) [data-part=number]{display:none}[data-ui=code-block][data-marks] [data-part=line]{--_marker: var(--slotted-space-6, 1rem)}[data-ui=code-block] [data-part=number]{color:var(--_muted);font-variant-numeric:tabular-nums;grid-column:1;padding-inline-end:var(--slotted-space-4, .5rem);text-align:end;-webkit-user-select:none;user-select:none}[data-ui=code-block] [data-part=marker]{grid-column:2;text-align:center;-webkit-user-select:none;user-select:none}[data-ui=code-block] [data-part=line]>[data-part=token],[data-ui=code-block] [data-part=line]>[data-part=text]{grid-column:3}[data-ui=code-block] [data-part=line]>[data-part=text]{display:block;min-inline-size:0}[data-ui=code-block][data-wrap] [data-part=line]>[data-part=text]{padding-inline-start:var(--_indent);text-indent:calc(var(--_indent) * -1)}[data-ui=code-block] [data-token=comment]{color:var(--slotted-code-comment, var(--slotted-text-muted, GrayText));font-style:italic}[data-ui=code-block] [data-token=keyword]{color:var(--slotted-code-keyword, var(--slotted-text, CanvasText))}[data-ui=code-block] [data-token=string]{color:var(--slotted-code-string, var(--slotted-text, CanvasText))}[data-ui=code-block] [data-token=number]{color:var(--slotted-code-number, var(--slotted-text, CanvasText))}[data-ui=code-block] [data-token=function]{color:var(--slotted-code-function, var(--slotted-text, CanvasText))}[data-ui=code-block] [data-token=type]{color:var(--slotted-code-type, var(--slotted-text, CanvasText))}[data-ui=code-block] [data-token=variable]{color:var(--slotted-code-variable, var(--slotted-text, CanvasText))}[data-ui=code-block] [data-token=property]{color:var(--slotted-code-property, var(--slotted-text, CanvasText))}[data-ui=code-block] [data-token=punctuation]{color:var(--slotted-code-punctuation, var(--slotted-text, CanvasText))}[data-ui=code-block] [data-token=tag]{color:var(--slotted-code-tag, var(--slotted-text, CanvasText))}[data-ui=code-block] [data-token=attribute]{color:var(--slotted-code-attribute, var(--slotted-text, CanvasText))}[data-ui=code-block] [data-token=constant]{color:var(--slotted-code-constant, var(--slotted-text, CanvasText))}[data-ui=code-block] [data-part=line][data-mark]{--_tone: var(--slotted-tone-accent-text, CanvasText);background-color:color-mix(in srgb,var(--_tone) calc(var(--_tint) * 100%),transparent)}[data-ui=code-block] [data-part=line]:is([data-mark=highlight],[data-mark=error],[data-mark=warning]):before{background-color:var(--_tone);content:\"\";inline-size:var(--slotted-border-width-thick, 2px);inset-block:0;inset-inline-start:0;position:absolute}[data-ui=code-block] [data-part=line][data-mark=add]{--_tone: var(--slotted-tone-success-text, CanvasText)}[data-ui=code-block] [data-part=line][data-mark=remove],[data-ui=code-block] [data-part=line][data-mark=error]{--_tone: var(--slotted-tone-danger-text, CanvasText)}[data-ui=code-block] [data-part=line][data-mark=warning]{--_tone: var(--slotted-tone-warning-text, CanvasText)}[data-ui=code-block] [data-part=line][data-mark=add]>[data-part=marker]:before{color:var(--_tone);content:\"+\"}[data-ui=code-block] [data-part=line][data-mark=remove]>[data-part=marker]:before{color:var(--_tone);content:\"\\2212\"}[data-ui=code-block] [data-part=line][data-mark=remove]>[data-part=text]{opacity:.72}[data-ui=code-block] [data-part=line][data-dim]{color:var(--_muted);filter:blur(1px);transition:filter var(--slotted-duration-medium) var(--slotted-easing-standard),color var(--slotted-duration-medium) var(--slotted-easing-standard)}[data-ui=code-block] [data-part=line][data-dim] [data-part=token]{color:inherit}[data-ui=code-block]:not([data-loading]):is(:hover,:focus-within) [data-part=line][data-dim]{color:var(--_ink);filter:none}[data-ui=code-block]:not([data-loading]):is(:hover,:focus-within) [data-part=line][data-dim] [data-part=token]{color:revert-layer}[data-ui=code-block][data-collapse]:not([data-revealed])>[data-part=body]>[data-part=viewport]{--_visible: calc(var(--slotted-code-block-collapse) * var(--_line) + var(--_inset-block));-webkit-mask-image:linear-gradient(to bottom,#000 calc(var(--_visible) - var(--_line)),transparent var(--_visible));mask-image:linear-gradient(to bottom,#000 calc(var(--_visible) - var(--_line)),transparent var(--_visible));max-block-size:var(--_visible);overflow-y:hidden}[data-ui=code-block]>[data-part=reveal]{appearance:none;background:none;border:0;border-block-start:var(--slotted-border-width-thin, 1px) solid var(--_edge);color:var(--slotted-tone-accent-text, LinkText);cursor:pointer;font-family:var(--slotted-font-family-sans, inherit);font-size:var(--slotted-font-size-sm, .8125rem);font-weight:var(--slotted-font-weight-medium, 500);min-block-size:var(--slotted-control-height-sm, 30px);padding-block:0;padding-inline:var(--_inset-inline);text-align:start;transition:background-color var(--_duration) var(--_easing)}[data-ui=code-block]>[data-part=reveal]:focus-visible{border-end-end-radius:var(--_radius);border-end-start-radius:var(--_radius);outline-offset:calc(var(--slotted-focus-ring-offset, 2px) * -1)}[data-ui=code-block]>[data-part=reveal]:enabled:hover{background-color:var(--slotted-tone-accent-subtle-hover, ButtonFace)}[data-ui=code-block]>[data-part=reveal]:enabled:active{background-color:var(--slotted-tone-accent-subtle-active, ButtonFace)}[data-ui=code-block][data-loading] [data-part=code]{gap:var(--slotted-space-3, .375rem);padding-inline:var(--_inset-inline)}[data-ui=code-block][data-loading] [data-part=code]>[data-ui=skeleton]{block-size:var(--_font-size)}@media(prefers-reduced-motion:reduce){[data-ui=code-block] [data-part=line][data-dim]{filter:none}}@media(forced-colors:active){[data-ui=code-block] [data-part=line][data-mark]{background-color:transparent}[data-ui=code-block] [data-part=line][data-dim]{color:inherit;filter:none}}@media print{[data-ui=code-block] [data-part=pre]{min-inline-size:0;overflow-wrap:anywhere;white-space:pre-wrap}[data-ui=code-block][data-collapse]>[data-part=body]>[data-part=viewport]{-webkit-mask-image:none;mask-image:none;max-block-size:none}[data-ui=code-block]>[data-part=reveal],[data-ui=code-block] [data-part=wrap]{display:none}}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SlGlyph, selector: "svg[slGlyph]", inputs: ["name", "solid"] }, { kind: "component", type: SlIcon, selector: "[slIcon]", inputs: ["directional", "label", "size", "tone"], exportAs: ["slIcon"] }, { kind: "component", type: SlScrollArea, selector: "[slScrollArea]", inputs: ["axis", "scrollbars", "gutter", "fade", "overscroll", "maxBlockSize", "maxInlineSize", "tabbable", "labelledBy", "messages"], outputs: ["scrollChange", "overflowChange"], exportAs: ["slScrollArea"] }, { kind: "directive", type: SlScrollAreaContent, selector: "[slScrollAreaContent]", exportAs: ["slScrollAreaContent"] }, { kind: "component", type: SlSkeleton, selector: "[slSkeleton]", inputs: ["shape", "size", "animation", "loading", "inlineSize", "blockSize"], exportAs: ["slSkeleton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
376
+ `, isInline: true, styles: ["@layer slotted.components{[data-ui-code-block]{--_ground: var(--slotted-code-block-surface, var(--slotted-surface-sunken, Canvas));--_edge: var(--slotted-code-block-border-color, var(--slotted-border-subtle, GrayText));--_ink: var(--slotted-code-block-color, var(--slotted-text, CanvasText));--_muted: var(--slotted-code-block-color-muted, var(--slotted-text-muted, GrayText));--_radius: var(--slotted-code-block-radius, var(--slotted-radius-md, 6px));--_inset-block: var(--slotted-code-block-inset-block, var(--slotted-space-5, .75rem));--_inset-inline: var(--slotted-code-block-inset-inline, var(--slotted-space-6, 1rem));--_font-size: var(--slotted-code-block-font-size, var(--slotted-font-size-sm, .8125rem));--_line-height: var(--slotted-code-block-line-height, var(--slotted-line-height-md, 1.5));--_line: calc(var(--_font-size) * var(--_line-height));--_icon: var(--slotted-control-icon-size-md, 16px);--_hit: calc((var(--slotted-target-min, 24px) - var(--_icon)) / 2);--_duration: var(--slotted-control-transition-duration, var(--slotted-duration-short));--_easing: var(--slotted-control-transition-easing, var(--slotted-easing-standard));--_digits: var(--slotted-code-block-digits, 1);--_gutter: calc(var(--_digits) * 1ch + var(--slotted-space-4, .5rem) * 2);--_tint: var(--slotted-highlight-tint-opacity, .075);background-color:var(--_ground);border:var(--slotted-border-width-thin, 1px) solid var(--_edge);border-radius:var(--_radius);box-sizing:border-box;color:var(--_ink);display:grid;font-family:var(--slotted-code-block-font-family, var(--slotted-font-family-mono, monospace));font-size:var(--_font-size);grid-template-rows:auto minmax(0,1fr) auto;line-height:var(--_line-height);min-inline-size:0;position:relative}[data-ui-code-block]>[data-part-header]{align-items:center;border-block-end:var(--slotted-border-width-thin, 1px) solid var(--_edge);display:flex;font-family:var(--slotted-font-family-sans, inherit);font-size:var(--slotted-font-size-sm, .8125rem);gap:var(--slotted-control-gap-sm, 6px);min-inline-size:0;padding-block:var(--slotted-space-3, .375rem);padding-inline:var(--_inset-inline) var(--slotted-space-4, .5rem)}[data-ui-code-block]>[data-part-header]>[data-part-icon]{--slotted-icon-size: var(--_icon);block-size:var(--_icon);color:var(--_muted);display:flex;flex:none;inline-size:var(--_icon)}[data-ui-code-block]>[data-part-header]>[data-part-title]{font-family:var(--slotted-code-block-font-family, var(--slotted-font-family-mono, monospace));min-inline-size:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}[data-ui-code-block]>[data-part-header]>[data-part-language]{color:var(--_muted);font-size:var(--slotted-font-size-xs, .75rem);letter-spacing:.02em;margin-inline-start:auto;text-transform:uppercase}[data-ui-code-block]>[data-part-header]>[data-part-title]+[data-part-language],[data-ui-code-block]>[data-part-header]>[data-part-icon]+[data-part-language]{margin-inline-start:auto}[data-ui-code-block]>[data-part-header]>[data-part-actions]{align-items:center;display:flex;gap:var(--slotted-space-1, .125rem);margin-inline-start:auto}[data-ui-code-block]>[data-part-header]>[data-part-language]+[data-part-actions]{margin-inline-start:var(--slotted-space-3, .375rem)}[data-ui-code-block]>[data-part-actions]{align-items:center;background-color:var(--_ground);border-radius:var(--slotted-control-radius, 4px);display:flex;gap:var(--slotted-space-1, .125rem);inset-block-start:var(--slotted-space-2, .25rem);inset-inline-end:var(--slotted-space-2, .25rem);position:absolute;z-index:1}[data-ui-code-block] :is([data-part-copy],[data-part-wrap]){--slotted-icon-size: var(--_icon);align-items:center;appearance:none;background:none;block-size:var(--slotted-target-min, 24px);border:0;border-radius:var(--slotted-control-radius, var(--slotted-radius-sm, 4px));color:var(--_muted);cursor:pointer;display:inline-flex;font:inherit;inline-size:var(--slotted-target-min, 24px);justify-content:center;padding:var(--_hit);transition:color var(--_duration) var(--_easing),background-color var(--_duration) var(--_easing)}@media(pointer:coarse){[data-ui-code-block] :is([data-part-copy],[data-part-wrap]){position:relative}[data-ui-code-block] :is([data-part-copy],[data-part-wrap]):before{content:\"\";inset:min(0px,calc((100% - var(--slotted-target-comfortable, 44px)) / 2));position:absolute}[data-ui-code-block] [data-part-wrap]:has(+[data-part-copy]):before{inset-inline-end:0}[data-ui-code-block] [data-part-wrap]+[data-part-copy]:before{inset-inline-start:0}}[data-ui-code-block] :is([data-part-copy],[data-part-wrap]):enabled:not([data-complete]):hover{background-color:var(--slotted-tone-secondary-subtle-hover, ButtonFace);color:var(--_ink)}[data-ui-code-block] :is([data-part-copy],[data-part-wrap]):enabled:not([data-complete]):active{background-color:var(--slotted-tone-secondary-subtle-active, ButtonFace)}[data-ui-code-block] [data-part-wrap][data-pressed]{background-color:var(--slotted-tone-accent-surface, Canvas);color:var(--slotted-tone-accent-text, CanvasText)}[data-ui-code-block] [data-part-copy][data-complete]{color:var(--slotted-tone-success-text, CanvasText)}[data-ui-code-block] :is([data-part-copy],[data-part-wrap],[data-part-reveal]):focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:var(--slotted-focus-ring-offset, 2px)}[data-ui-code-block]>[data-part-body]{border-radius:0 0 var(--_radius) var(--_radius);min-inline-size:0}[data-ui-code-block]>[data-part-body]:first-child{border-radius:var(--_radius)}[data-ui-code-block]>[data-part-body][data-max-lines]>[data-part-viewport]{max-block-size:calc(var(--slotted-code-block-max-lines) * var(--_line) + var(--_inset-block) * 2)}[data-ui-code-block]>[data-part-body]>[data-part-viewport]:focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:calc(var(--slotted-focus-ring-offset, 2px) * -1)}[data-ui-code-block] [data-part-pre]{direction:ltr;font:inherit;margin:0;min-inline-size:max-content;padding-block:var(--_inset-block);tab-size:var(--slotted-code-block-tab-size, 2);white-space:pre}[data-ui-code-block][data-wrap] [data-part-pre]{min-inline-size:0;overflow-wrap:anywhere;white-space:pre-wrap}[data-ui-code-block] [data-part-code]{display:grid;font:inherit;grid-template-columns:minmax(0,1fr)}[data-ui-code-block] [data-part-line]{--_indent: calc(var(--slotted-code-block-indent, 0) * 1ch);box-sizing:border-box;display:grid;grid-template-columns:var(--_number, 0px) var(--_marker, 0px) minmax(0,1fr);min-block-size:var(--_line);padding-inline:var(--_inset-inline);position:relative}[data-ui-code-block][data-line-numbers] [data-part-line]{--_number: var(--_gutter);padding-inline-start:0}[data-ui-code-block]:not([data-line-numbers]) [data-part-number]{display:none}[data-ui-code-block][data-marks] [data-part-line]{--_marker: var(--slotted-space-6, 1rem)}[data-ui-code-block] [data-part-number]{color:var(--_muted);font-variant-numeric:tabular-nums;grid-column:1;padding-inline-end:var(--slotted-space-4, .5rem);text-align:end;-webkit-user-select:none;user-select:none}[data-ui-code-block] [data-part-marker]{grid-column:2;text-align:center;-webkit-user-select:none;user-select:none}[data-ui-code-block] [data-part-line]>[data-part-token],[data-ui-code-block] [data-part-line]>[data-part-text]{grid-column:3}[data-ui-code-block] [data-part-line]>[data-part-text]{display:block;min-inline-size:0}[data-ui-code-block][data-wrap] [data-part-line]>[data-part-text]{padding-inline-start:var(--_indent);text-indent:calc(var(--_indent) * -1)}[data-ui-code-block] [data-token=comment]{color:var(--slotted-code-comment, var(--slotted-text-muted, GrayText));font-style:italic}[data-ui-code-block] [data-token=keyword]{color:var(--slotted-code-keyword, var(--slotted-text, CanvasText))}[data-ui-code-block] [data-token=string]{color:var(--slotted-code-string, var(--slotted-text, CanvasText))}[data-ui-code-block] [data-token=number]{color:var(--slotted-code-number, var(--slotted-text, CanvasText))}[data-ui-code-block] [data-token=function]{color:var(--slotted-code-function, var(--slotted-text, CanvasText))}[data-ui-code-block] [data-token=type]{color:var(--slotted-code-type, var(--slotted-text, CanvasText))}[data-ui-code-block] [data-token=variable]{color:var(--slotted-code-variable, var(--slotted-text, CanvasText))}[data-ui-code-block] [data-token=property]{color:var(--slotted-code-property, var(--slotted-text, CanvasText))}[data-ui-code-block] [data-token=punctuation]{color:var(--slotted-code-punctuation, var(--slotted-text, CanvasText))}[data-ui-code-block] [data-token=tag]{color:var(--slotted-code-tag, var(--slotted-text, CanvasText))}[data-ui-code-block] [data-token=attribute]{color:var(--slotted-code-attribute, var(--slotted-text, CanvasText))}[data-ui-code-block] [data-token=constant]{color:var(--slotted-code-constant, var(--slotted-text, CanvasText))}[data-ui-code-block] [data-part-line][data-mark]{--_tone: var(--slotted-tone-accent-text, CanvasText);background-color:color-mix(in srgb,var(--_tone) calc(var(--_tint) * 100%),transparent)}[data-ui-code-block] [data-part-line]:is([data-mark=highlight],[data-mark=error],[data-mark=warning]):before{background-color:var(--_tone);content:\"\";inline-size:var(--slotted-border-width-thick, 2px);inset-block:0;inset-inline-start:0;position:absolute}[data-ui-code-block] [data-part-line][data-mark=add]{--_tone: var(--slotted-tone-success-text, CanvasText)}[data-ui-code-block] [data-part-line][data-mark=remove],[data-ui-code-block] [data-part-line][data-mark=error]{--_tone: var(--slotted-tone-danger-text, CanvasText)}[data-ui-code-block] [data-part-line][data-mark=warning]{--_tone: var(--slotted-tone-warning-text, CanvasText)}[data-ui-code-block] [data-part-line][data-mark=add]>[data-part-marker]:before{color:var(--_tone);content:\"+\"}[data-ui-code-block] [data-part-line][data-mark=remove]>[data-part-marker]:before{color:var(--_tone);content:\"\\2212\"}[data-ui-code-block] [data-part-line][data-mark=remove]>[data-part-text]{opacity:.72}[data-ui-code-block] [data-part-line][data-dim]{color:var(--_muted);filter:blur(1px);transition:filter var(--slotted-duration-medium) var(--slotted-easing-standard),color var(--slotted-duration-medium) var(--slotted-easing-standard)}[data-ui-code-block] [data-part-line][data-dim] [data-part-token]{color:inherit}[data-ui-code-block]:not([data-loading]):is(:hover,:focus-within) [data-part-line][data-dim]{color:var(--_ink);filter:none}[data-ui-code-block]:not([data-loading]):is(:hover,:focus-within) [data-part-line][data-dim] [data-part-token]{color:revert-layer}[data-ui-code-block][data-collapse]:not([data-revealed])>[data-part-body]>[data-part-viewport]{--_visible: calc(var(--slotted-code-block-collapse) * var(--_line) + var(--_inset-block));-webkit-mask-image:linear-gradient(to bottom,#000 calc(var(--_visible) - var(--_line)),transparent var(--_visible));mask-image:linear-gradient(to bottom,#000 calc(var(--_visible) - var(--_line)),transparent var(--_visible));max-block-size:var(--_visible);overflow-y:hidden}[data-ui-code-block]>[data-part-reveal]{appearance:none;background:none;border:0;border-block-start:var(--slotted-border-width-thin, 1px) solid var(--_edge);color:var(--slotted-tone-accent-text, LinkText);cursor:pointer;font-family:var(--slotted-font-family-sans, inherit);font-size:var(--slotted-font-size-sm, .8125rem);font-weight:var(--slotted-font-weight-medium, 500);min-block-size:var(--slotted-control-height-sm, 30px);padding-block:0;padding-inline:var(--_inset-inline);text-align:start;transition:background-color var(--_duration) var(--_easing)}[data-ui-code-block]>[data-part-reveal]:focus-visible{border-end-end-radius:var(--_radius);border-end-start-radius:var(--_radius);outline-offset:calc(var(--slotted-focus-ring-offset, 2px) * -1)}[data-ui-code-block]>[data-part-reveal]:enabled:hover{background-color:var(--slotted-tone-accent-subtle-hover, ButtonFace)}[data-ui-code-block]>[data-part-reveal]:enabled:active{background-color:var(--slotted-tone-accent-subtle-active, ButtonFace)}[data-ui-code-block][data-loading] [data-part-code]{gap:var(--slotted-space-3, .375rem);padding-inline:var(--_inset-inline)}[data-ui-code-block][data-loading] [data-part-code]>[data-ui-skeleton]{block-size:var(--_font-size)}@media(prefers-reduced-motion:reduce){[data-ui-code-block] [data-part-line][data-dim]{filter:none}}@media(forced-colors:active){[data-ui-code-block] [data-part-line][data-mark]{background-color:transparent}[data-ui-code-block] [data-part-line][data-dim]{color:inherit;filter:none}}@media print{[data-ui-code-block] [data-part-pre]{min-inline-size:0;overflow-wrap:anywhere;white-space:pre-wrap}[data-ui-code-block][data-collapse]>[data-part-body]>[data-part-viewport]{-webkit-mask-image:none;mask-image:none;max-block-size:none}[data-ui-code-block]>[data-part-reveal],[data-ui-code-block] [data-part-wrap]{display:none}}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SlGlyph, selector: "svg[slGlyph]", inputs: ["name", "solid"] }, { kind: "component", type: SlIcon, selector: "[slIcon]", inputs: ["directional", "label", "size", "tone"], exportAs: ["slIcon"] }, { kind: "component", type: SlScrollArea, selector: "[slScrollArea]", inputs: ["axis", "scrollbars", "gutter", "fade", "overscroll", "maxBlockSize", "maxInlineSize", "tabbable", "labelledBy", "messages"], outputs: ["scrollChange", "overflowChange"], exportAs: ["slScrollArea"] }, { kind: "directive", type: SlScrollAreaContent, selector: "[slScrollAreaContent]", exportAs: ["slScrollAreaContent"] }, { kind: "component", type: SlSkeleton, selector: "[slSkeleton]", inputs: ["shape", "size", "animation", "loading", "inlineSize", "blockSize"], exportAs: ["slSkeleton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
371
377
  }
372
378
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlCodeBlock, decorators: [{
373
379
  type: Component,
374
380
  args: [{ selector: '[slCodeBlock]', standalone: true, imports: [NgTemplateOutlet, SlGlyph, SlIcon, SlScrollArea, SlScrollAreaContent, SlSkeleton], template: `
375
381
  @if (hasHeader()) {
376
- <div data-part="header">
382
+ <div data-part="header" data-part-header="">
377
383
  @if (icon(); as glyph) {
378
- <span aria-hidden="true" data-part="icon"
384
+ <span aria-hidden="true" data-part="icon" data-part-icon=""
379
385
  ><span slIcon><svg slGlyph [name]="glyph"></svg></span
380
386
  ></span>
381
387
  }
382
388
  @if (title(); as words) {
383
- <span data-part="title" [id]="id + '-title'">{{ words }}</span>
389
+ <span data-part="title" data-part-title="" [id]="id + '-title'">{{ words }}</span>
384
390
  }
385
391
  @if (language() !== 'text') {
386
- <span data-part="language">{{ language() }}</span>
392
+ <span data-part="language" data-part-language="">{{ language() }}</span>
387
393
  }
388
394
  @if (!loading()) {
389
- <div data-part="actions">
395
+ <div data-part="actions" data-part-actions="">
390
396
  <ng-content select="[slCodeBlockAction]"></ng-content>
391
397
  @if (overflow() || isWrapped()) {
392
398
  <button
393
399
  data-part="wrap"
400
+ data-part-wrap=""
394
401
  type="button"
395
402
  [attr.aria-label]="t(isWrapped() ? 'unwrap' : 'wrap')"
396
403
  [attr.aria-pressed]="isWrapped()"
@@ -404,6 +411,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
404
411
  @if (copyControl()) {
405
412
  <button
406
413
  data-part="copy"
414
+ data-part-copy=""
407
415
  type="button"
408
416
  [attr.aria-label]="t('copy')"
409
417
  [attr.data-complete]="copied() ? '' : null"
@@ -422,6 +430,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
422
430
  #body
423
431
  slScrollArea
424
432
  data-part="body"
433
+ data-part-body=""
434
+ [attr.data-part-root]="null"
425
435
  [axis]="maxLines() === undefined ? 'inline' : 'both'"
426
436
  fade="both"
427
437
  gutter="auto"
@@ -433,12 +443,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
433
443
  <div slScrollAreaContent>
434
444
  <pre
435
445
  data-part="pre"
436
- ><code data-part="code" [class]="'language-' + language()">@if (loading()) {@for (width of skeletonWidths; track $index) {<span slSkeleton shape="text" aria-hidden="true" [style.inline-size]="width + '%'"></span>}} @else {@for (line of rows(); track $index) {<span data-part="line" [attr.data-line]="line.number" [attr.data-mark]="line.mark ?? null" [attr.data-dim]="line.dim ? '' : null" [style.--slotted-code-block-indent]="line.indent > 0 ? line.indent : null"><span aria-hidden="true" data-part="number">@if (lineNumbersValue()) {{{ line.number }}}</span><span aria-hidden="true" data-part="marker"></span><span data-part="text">@if (lineTemplate(); as custom) {<ng-container [ngTemplateOutlet]="custom.template" [ngTemplateOutletContext]="{ $implicit: line.tokens, number: line.number, mark: line.mark, dim: line.dim }" />} @else {@for (token of line.tokens; track $index) {@if (token.scope) {<span data-part="token" [attr.data-token]="token.scope">{{ token.text }}</span>} @else {{{ token.text }}}}}</span></span>}}</code></pre>
446
+ data-part-pre=""
447
+ ><code data-part="code" data-part-code="" [class]="'language-' + language()">@if (loading()) {@for (width of skeletonWidths; track $index) {<span slSkeleton shape="text" aria-hidden="true" [style.inline-size]="width + '%'"></span>}} @else {@for (line of rows(); track $index) {<span data-part="line" data-part-line="" [attr.data-line]="line.number" [attr.data-mark]="line.mark ?? null" [attr.data-dim]="line.dim ? '' : null" [style.--slotted-code-block-indent]="line.indent > 0 ? line.indent : null"><span aria-hidden="true" data-part="number" data-part-number="">@if (lineNumbersValue()) {{{ line.number }}}</span><span aria-hidden="true" data-part="marker" data-part-marker=""></span><span data-part="text" data-part-text="">@if (lineTemplate(); as custom) {<ng-container [ngTemplateOutlet]="custom.template" [ngTemplateOutletContext]="{ $implicit: line.tokens, number: line.number, mark: line.mark, dim: line.dim }" />} @else {@for (token of line.tokens; track $index) {@if (token.scope) {<span data-part="token" data-part-token="" [attr.data-token]="token.scope">{{ token.text }}</span>} @else {{{ token.text }}}}}</span></span>}}</code></pre>
437
448
  </div>
438
449
  </div>
439
450
  @if (collapses()) {
440
451
  <button
441
452
  data-part="reveal"
453
+ data-part-reveal=""
442
454
  type="button"
443
455
  [attr.aria-controls]="id + '-body'"
444
456
  [attr.aria-expanded]="isRevealed()"
@@ -450,7 +462,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
450
462
  }
451
463
  `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, exportAs: 'slCodeBlock', host: {
452
464
  'data-ui': 'code-block',
465
+ 'data-ui-code-block': '',
453
466
  'data-part': 'root',
467
+ 'data-part-root': '',
454
468
  '[attr.data-language]': 'language()',
455
469
  '[attr.data-wrap]': 'isWrapped() ? "" : null',
456
470
  '[attr.data-revealed]': 'isRevealed() ? "" : null',
@@ -465,7 +479,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
465
479
  '[style.--slotted-code-block-collapse]': 'collapses() ? collapseAfter() : null',
466
480
  '[style.--slotted-code-block-max-lines]': 'maxLines() ?? null',
467
481
  '(keydown)': 'onKeyDown($event)',
468
- }, styles: ["@layer slotted.components{[data-ui=code-block]{--_ground: var(--slotted-code-block-surface, var(--slotted-surface-sunken, Canvas));--_edge: var(--slotted-code-block-border-color, var(--slotted-border-subtle, GrayText));--_ink: var(--slotted-code-block-color, var(--slotted-text, CanvasText));--_muted: var(--slotted-code-block-color-muted, var(--slotted-text-muted, GrayText));--_radius: var(--slotted-code-block-radius, var(--slotted-radius-md, 6px));--_inset-block: var(--slotted-code-block-inset-block, var(--slotted-space-5, .75rem));--_inset-inline: var(--slotted-code-block-inset-inline, var(--slotted-space-6, 1rem));--_font-size: var(--slotted-code-block-font-size, var(--slotted-font-size-sm, .8125rem));--_line-height: var(--slotted-code-block-line-height, var(--slotted-line-height-md, 1.5));--_line: calc(var(--_font-size) * var(--_line-height));--_icon: var(--slotted-control-icon-size-md, 16px);--_hit: calc((var(--slotted-target-min, 24px) - var(--_icon)) / 2);--_duration: var(--slotted-control-transition-duration, var(--slotted-duration-short));--_easing: var(--slotted-control-transition-easing, var(--slotted-easing-standard));--_digits: var(--slotted-code-block-digits, 1);--_gutter: calc(var(--_digits) * 1ch + var(--slotted-space-4, .5rem) * 2);--_tint: var(--slotted-highlight-tint-opacity, .075);background-color:var(--_ground);border:var(--slotted-border-width-thin, 1px) solid var(--_edge);border-radius:var(--_radius);box-sizing:border-box;color:var(--_ink);display:grid;font-family:var(--slotted-code-block-font-family, var(--slotted-font-family-mono, monospace));font-size:var(--_font-size);grid-template-rows:auto minmax(0,1fr) auto;line-height:var(--_line-height);min-inline-size:0;position:relative}[data-ui=code-block]>[data-part=header]{align-items:center;border-block-end:var(--slotted-border-width-thin, 1px) solid var(--_edge);display:flex;font-family:var(--slotted-font-family-sans, inherit);font-size:var(--slotted-font-size-sm, .8125rem);gap:var(--slotted-control-gap-sm, 6px);min-inline-size:0;padding-block:var(--slotted-space-3, .375rem);padding-inline:var(--_inset-inline) var(--slotted-space-4, .5rem)}[data-ui=code-block]>[data-part=header]>[data-part=icon]{--slotted-icon-size: var(--_icon);block-size:var(--_icon);color:var(--_muted);display:flex;flex:none;inline-size:var(--_icon)}[data-ui=code-block]>[data-part=header]>[data-part=title]{font-family:var(--slotted-code-block-font-family, var(--slotted-font-family-mono, monospace));min-inline-size:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}[data-ui=code-block]>[data-part=header]>[data-part=language]{color:var(--_muted);font-size:var(--slotted-font-size-xs, .75rem);letter-spacing:.02em;margin-inline-start:auto;text-transform:uppercase}[data-ui=code-block]>[data-part=header]>[data-part=title]+[data-part=language],[data-ui=code-block]>[data-part=header]>[data-part=icon]+[data-part=language]{margin-inline-start:auto}[data-ui=code-block]>[data-part=header]>[data-part=actions]{align-items:center;display:flex;gap:var(--slotted-space-1, .125rem);margin-inline-start:auto}[data-ui=code-block]>[data-part=header]>[data-part=language]+[data-part=actions]{margin-inline-start:var(--slotted-space-3, .375rem)}[data-ui=code-block]>[data-part=actions]{align-items:center;background-color:var(--_ground);border-radius:var(--slotted-control-radius, 4px);display:flex;gap:var(--slotted-space-1, .125rem);inset-block-start:var(--slotted-space-2, .25rem);inset-inline-end:var(--slotted-space-2, .25rem);position:absolute;z-index:1}[data-ui=code-block] :is([data-part=copy],[data-part=wrap]){--slotted-icon-size: var(--_icon);align-items:center;appearance:none;background:none;block-size:var(--slotted-target-min, 24px);border:0;border-radius:var(--slotted-control-radius, var(--slotted-radius-sm, 4px));color:var(--_muted);cursor:pointer;display:inline-flex;font:inherit;inline-size:var(--slotted-target-min, 24px);justify-content:center;padding:var(--_hit);transition:color var(--_duration) var(--_easing),background-color var(--_duration) var(--_easing)}@media(pointer:coarse){[data-ui=code-block] :is([data-part=copy],[data-part=wrap]){position:relative}[data-ui=code-block] :is([data-part=copy],[data-part=wrap]):before{content:\"\";inset:min(0px,calc((100% - var(--slotted-target-comfortable, 44px)) / 2));position:absolute}[data-ui=code-block] [data-part=wrap]:has(+[data-part=copy]):before{inset-inline-end:0}[data-ui=code-block] [data-part=wrap]+[data-part=copy]:before{inset-inline-start:0}}[data-ui=code-block] :is([data-part=copy],[data-part=wrap]):enabled:not([data-complete]):hover{background-color:var(--slotted-tone-secondary-subtle-hover, ButtonFace);color:var(--_ink)}[data-ui=code-block] :is([data-part=copy],[data-part=wrap]):enabled:not([data-complete]):active{background-color:var(--slotted-tone-secondary-subtle-active, ButtonFace)}[data-ui=code-block] [data-part=wrap][data-pressed]{background-color:var(--slotted-tone-accent-surface, Canvas);color:var(--slotted-tone-accent-text, CanvasText)}[data-ui=code-block] [data-part=copy][data-complete]{color:var(--slotted-tone-success-text, CanvasText)}[data-ui=code-block] :is([data-part=copy],[data-part=wrap],[data-part=reveal]):focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:var(--slotted-focus-ring-offset, 2px)}[data-ui=code-block]>[data-part=body]{border-radius:0 0 var(--_radius) var(--_radius);min-inline-size:0}[data-ui=code-block]>[data-part=body]:first-child{border-radius:var(--_radius)}[data-ui=code-block]>[data-part=body][data-max-lines]>[data-part=viewport]{max-block-size:calc(var(--slotted-code-block-max-lines) * var(--_line) + var(--_inset-block) * 2)}[data-ui=code-block]>[data-part=body]>[data-part=viewport]:focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:calc(var(--slotted-focus-ring-offset, 2px) * -1)}[data-ui=code-block] [data-part=pre]{direction:ltr;font:inherit;margin:0;min-inline-size:max-content;padding-block:var(--_inset-block);tab-size:var(--slotted-code-block-tab-size, 2);white-space:pre}[data-ui=code-block][data-wrap] [data-part=pre]{min-inline-size:0;overflow-wrap:anywhere;white-space:pre-wrap}[data-ui=code-block] [data-part=code]{display:grid;font:inherit;grid-template-columns:minmax(0,1fr)}[data-ui=code-block] [data-part=line]{--_indent: calc(var(--slotted-code-block-indent, 0) * 1ch);box-sizing:border-box;display:grid;grid-template-columns:var(--_number, 0px) var(--_marker, 0px) minmax(0,1fr);min-block-size:var(--_line);padding-inline:var(--_inset-inline);position:relative}[data-ui=code-block][data-line-numbers] [data-part=line]{--_number: var(--_gutter);padding-inline-start:0}[data-ui=code-block]:not([data-line-numbers]) [data-part=number]{display:none}[data-ui=code-block][data-marks] [data-part=line]{--_marker: var(--slotted-space-6, 1rem)}[data-ui=code-block] [data-part=number]{color:var(--_muted);font-variant-numeric:tabular-nums;grid-column:1;padding-inline-end:var(--slotted-space-4, .5rem);text-align:end;-webkit-user-select:none;user-select:none}[data-ui=code-block] [data-part=marker]{grid-column:2;text-align:center;-webkit-user-select:none;user-select:none}[data-ui=code-block] [data-part=line]>[data-part=token],[data-ui=code-block] [data-part=line]>[data-part=text]{grid-column:3}[data-ui=code-block] [data-part=line]>[data-part=text]{display:block;min-inline-size:0}[data-ui=code-block][data-wrap] [data-part=line]>[data-part=text]{padding-inline-start:var(--_indent);text-indent:calc(var(--_indent) * -1)}[data-ui=code-block] [data-token=comment]{color:var(--slotted-code-comment, var(--slotted-text-muted, GrayText));font-style:italic}[data-ui=code-block] [data-token=keyword]{color:var(--slotted-code-keyword, var(--slotted-text, CanvasText))}[data-ui=code-block] [data-token=string]{color:var(--slotted-code-string, var(--slotted-text, CanvasText))}[data-ui=code-block] [data-token=number]{color:var(--slotted-code-number, var(--slotted-text, CanvasText))}[data-ui=code-block] [data-token=function]{color:var(--slotted-code-function, var(--slotted-text, CanvasText))}[data-ui=code-block] [data-token=type]{color:var(--slotted-code-type, var(--slotted-text, CanvasText))}[data-ui=code-block] [data-token=variable]{color:var(--slotted-code-variable, var(--slotted-text, CanvasText))}[data-ui=code-block] [data-token=property]{color:var(--slotted-code-property, var(--slotted-text, CanvasText))}[data-ui=code-block] [data-token=punctuation]{color:var(--slotted-code-punctuation, var(--slotted-text, CanvasText))}[data-ui=code-block] [data-token=tag]{color:var(--slotted-code-tag, var(--slotted-text, CanvasText))}[data-ui=code-block] [data-token=attribute]{color:var(--slotted-code-attribute, var(--slotted-text, CanvasText))}[data-ui=code-block] [data-token=constant]{color:var(--slotted-code-constant, var(--slotted-text, CanvasText))}[data-ui=code-block] [data-part=line][data-mark]{--_tone: var(--slotted-tone-accent-text, CanvasText);background-color:color-mix(in srgb,var(--_tone) calc(var(--_tint) * 100%),transparent)}[data-ui=code-block] [data-part=line]:is([data-mark=highlight],[data-mark=error],[data-mark=warning]):before{background-color:var(--_tone);content:\"\";inline-size:var(--slotted-border-width-thick, 2px);inset-block:0;inset-inline-start:0;position:absolute}[data-ui=code-block] [data-part=line][data-mark=add]{--_tone: var(--slotted-tone-success-text, CanvasText)}[data-ui=code-block] [data-part=line][data-mark=remove],[data-ui=code-block] [data-part=line][data-mark=error]{--_tone: var(--slotted-tone-danger-text, CanvasText)}[data-ui=code-block] [data-part=line][data-mark=warning]{--_tone: var(--slotted-tone-warning-text, CanvasText)}[data-ui=code-block] [data-part=line][data-mark=add]>[data-part=marker]:before{color:var(--_tone);content:\"+\"}[data-ui=code-block] [data-part=line][data-mark=remove]>[data-part=marker]:before{color:var(--_tone);content:\"\\2212\"}[data-ui=code-block] [data-part=line][data-mark=remove]>[data-part=text]{opacity:.72}[data-ui=code-block] [data-part=line][data-dim]{color:var(--_muted);filter:blur(1px);transition:filter var(--slotted-duration-medium) var(--slotted-easing-standard),color var(--slotted-duration-medium) var(--slotted-easing-standard)}[data-ui=code-block] [data-part=line][data-dim] [data-part=token]{color:inherit}[data-ui=code-block]:not([data-loading]):is(:hover,:focus-within) [data-part=line][data-dim]{color:var(--_ink);filter:none}[data-ui=code-block]:not([data-loading]):is(:hover,:focus-within) [data-part=line][data-dim] [data-part=token]{color:revert-layer}[data-ui=code-block][data-collapse]:not([data-revealed])>[data-part=body]>[data-part=viewport]{--_visible: calc(var(--slotted-code-block-collapse) * var(--_line) + var(--_inset-block));-webkit-mask-image:linear-gradient(to bottom,#000 calc(var(--_visible) - var(--_line)),transparent var(--_visible));mask-image:linear-gradient(to bottom,#000 calc(var(--_visible) - var(--_line)),transparent var(--_visible));max-block-size:var(--_visible);overflow-y:hidden}[data-ui=code-block]>[data-part=reveal]{appearance:none;background:none;border:0;border-block-start:var(--slotted-border-width-thin, 1px) solid var(--_edge);color:var(--slotted-tone-accent-text, LinkText);cursor:pointer;font-family:var(--slotted-font-family-sans, inherit);font-size:var(--slotted-font-size-sm, .8125rem);font-weight:var(--slotted-font-weight-medium, 500);min-block-size:var(--slotted-control-height-sm, 30px);padding-block:0;padding-inline:var(--_inset-inline);text-align:start;transition:background-color var(--_duration) var(--_easing)}[data-ui=code-block]>[data-part=reveal]:focus-visible{border-end-end-radius:var(--_radius);border-end-start-radius:var(--_radius);outline-offset:calc(var(--slotted-focus-ring-offset, 2px) * -1)}[data-ui=code-block]>[data-part=reveal]:enabled:hover{background-color:var(--slotted-tone-accent-subtle-hover, ButtonFace)}[data-ui=code-block]>[data-part=reveal]:enabled:active{background-color:var(--slotted-tone-accent-subtle-active, ButtonFace)}[data-ui=code-block][data-loading] [data-part=code]{gap:var(--slotted-space-3, .375rem);padding-inline:var(--_inset-inline)}[data-ui=code-block][data-loading] [data-part=code]>[data-ui=skeleton]{block-size:var(--_font-size)}@media(prefers-reduced-motion:reduce){[data-ui=code-block] [data-part=line][data-dim]{filter:none}}@media(forced-colors:active){[data-ui=code-block] [data-part=line][data-mark]{background-color:transparent}[data-ui=code-block] [data-part=line][data-dim]{color:inherit;filter:none}}@media print{[data-ui=code-block] [data-part=pre]{min-inline-size:0;overflow-wrap:anywhere;white-space:pre-wrap}[data-ui=code-block][data-collapse]>[data-part=body]>[data-part=viewport]{-webkit-mask-image:none;mask-image:none;max-block-size:none}[data-ui=code-block]>[data-part=reveal],[data-ui=code-block] [data-part=wrap]{display:none}}}\n"] }]
482
+ }, styles: ["@layer slotted.components{[data-ui-code-block]{--_ground: var(--slotted-code-block-surface, var(--slotted-surface-sunken, Canvas));--_edge: var(--slotted-code-block-border-color, var(--slotted-border-subtle, GrayText));--_ink: var(--slotted-code-block-color, var(--slotted-text, CanvasText));--_muted: var(--slotted-code-block-color-muted, var(--slotted-text-muted, GrayText));--_radius: var(--slotted-code-block-radius, var(--slotted-radius-md, 6px));--_inset-block: var(--slotted-code-block-inset-block, var(--slotted-space-5, .75rem));--_inset-inline: var(--slotted-code-block-inset-inline, var(--slotted-space-6, 1rem));--_font-size: var(--slotted-code-block-font-size, var(--slotted-font-size-sm, .8125rem));--_line-height: var(--slotted-code-block-line-height, var(--slotted-line-height-md, 1.5));--_line: calc(var(--_font-size) * var(--_line-height));--_icon: var(--slotted-control-icon-size-md, 16px);--_hit: calc((var(--slotted-target-min, 24px) - var(--_icon)) / 2);--_duration: var(--slotted-control-transition-duration, var(--slotted-duration-short));--_easing: var(--slotted-control-transition-easing, var(--slotted-easing-standard));--_digits: var(--slotted-code-block-digits, 1);--_gutter: calc(var(--_digits) * 1ch + var(--slotted-space-4, .5rem) * 2);--_tint: var(--slotted-highlight-tint-opacity, .075);background-color:var(--_ground);border:var(--slotted-border-width-thin, 1px) solid var(--_edge);border-radius:var(--_radius);box-sizing:border-box;color:var(--_ink);display:grid;font-family:var(--slotted-code-block-font-family, var(--slotted-font-family-mono, monospace));font-size:var(--_font-size);grid-template-rows:auto minmax(0,1fr) auto;line-height:var(--_line-height);min-inline-size:0;position:relative}[data-ui-code-block]>[data-part-header]{align-items:center;border-block-end:var(--slotted-border-width-thin, 1px) solid var(--_edge);display:flex;font-family:var(--slotted-font-family-sans, inherit);font-size:var(--slotted-font-size-sm, .8125rem);gap:var(--slotted-control-gap-sm, 6px);min-inline-size:0;padding-block:var(--slotted-space-3, .375rem);padding-inline:var(--_inset-inline) var(--slotted-space-4, .5rem)}[data-ui-code-block]>[data-part-header]>[data-part-icon]{--slotted-icon-size: var(--_icon);block-size:var(--_icon);color:var(--_muted);display:flex;flex:none;inline-size:var(--_icon)}[data-ui-code-block]>[data-part-header]>[data-part-title]{font-family:var(--slotted-code-block-font-family, var(--slotted-font-family-mono, monospace));min-inline-size:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}[data-ui-code-block]>[data-part-header]>[data-part-language]{color:var(--_muted);font-size:var(--slotted-font-size-xs, .75rem);letter-spacing:.02em;margin-inline-start:auto;text-transform:uppercase}[data-ui-code-block]>[data-part-header]>[data-part-title]+[data-part-language],[data-ui-code-block]>[data-part-header]>[data-part-icon]+[data-part-language]{margin-inline-start:auto}[data-ui-code-block]>[data-part-header]>[data-part-actions]{align-items:center;display:flex;gap:var(--slotted-space-1, .125rem);margin-inline-start:auto}[data-ui-code-block]>[data-part-header]>[data-part-language]+[data-part-actions]{margin-inline-start:var(--slotted-space-3, .375rem)}[data-ui-code-block]>[data-part-actions]{align-items:center;background-color:var(--_ground);border-radius:var(--slotted-control-radius, 4px);display:flex;gap:var(--slotted-space-1, .125rem);inset-block-start:var(--slotted-space-2, .25rem);inset-inline-end:var(--slotted-space-2, .25rem);position:absolute;z-index:1}[data-ui-code-block] :is([data-part-copy],[data-part-wrap]){--slotted-icon-size: var(--_icon);align-items:center;appearance:none;background:none;block-size:var(--slotted-target-min, 24px);border:0;border-radius:var(--slotted-control-radius, var(--slotted-radius-sm, 4px));color:var(--_muted);cursor:pointer;display:inline-flex;font:inherit;inline-size:var(--slotted-target-min, 24px);justify-content:center;padding:var(--_hit);transition:color var(--_duration) var(--_easing),background-color var(--_duration) var(--_easing)}@media(pointer:coarse){[data-ui-code-block] :is([data-part-copy],[data-part-wrap]){position:relative}[data-ui-code-block] :is([data-part-copy],[data-part-wrap]):before{content:\"\";inset:min(0px,calc((100% - var(--slotted-target-comfortable, 44px)) / 2));position:absolute}[data-ui-code-block] [data-part-wrap]:has(+[data-part-copy]):before{inset-inline-end:0}[data-ui-code-block] [data-part-wrap]+[data-part-copy]:before{inset-inline-start:0}}[data-ui-code-block] :is([data-part-copy],[data-part-wrap]):enabled:not([data-complete]):hover{background-color:var(--slotted-tone-secondary-subtle-hover, ButtonFace);color:var(--_ink)}[data-ui-code-block] :is([data-part-copy],[data-part-wrap]):enabled:not([data-complete]):active{background-color:var(--slotted-tone-secondary-subtle-active, ButtonFace)}[data-ui-code-block] [data-part-wrap][data-pressed]{background-color:var(--slotted-tone-accent-surface, Canvas);color:var(--slotted-tone-accent-text, CanvasText)}[data-ui-code-block] [data-part-copy][data-complete]{color:var(--slotted-tone-success-text, CanvasText)}[data-ui-code-block] :is([data-part-copy],[data-part-wrap],[data-part-reveal]):focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:var(--slotted-focus-ring-offset, 2px)}[data-ui-code-block]>[data-part-body]{border-radius:0 0 var(--_radius) var(--_radius);min-inline-size:0}[data-ui-code-block]>[data-part-body]:first-child{border-radius:var(--_radius)}[data-ui-code-block]>[data-part-body][data-max-lines]>[data-part-viewport]{max-block-size:calc(var(--slotted-code-block-max-lines) * var(--_line) + var(--_inset-block) * 2)}[data-ui-code-block]>[data-part-body]>[data-part-viewport]:focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:calc(var(--slotted-focus-ring-offset, 2px) * -1)}[data-ui-code-block] [data-part-pre]{direction:ltr;font:inherit;margin:0;min-inline-size:max-content;padding-block:var(--_inset-block);tab-size:var(--slotted-code-block-tab-size, 2);white-space:pre}[data-ui-code-block][data-wrap] [data-part-pre]{min-inline-size:0;overflow-wrap:anywhere;white-space:pre-wrap}[data-ui-code-block] [data-part-code]{display:grid;font:inherit;grid-template-columns:minmax(0,1fr)}[data-ui-code-block] [data-part-line]{--_indent: calc(var(--slotted-code-block-indent, 0) * 1ch);box-sizing:border-box;display:grid;grid-template-columns:var(--_number, 0px) var(--_marker, 0px) minmax(0,1fr);min-block-size:var(--_line);padding-inline:var(--_inset-inline);position:relative}[data-ui-code-block][data-line-numbers] [data-part-line]{--_number: var(--_gutter);padding-inline-start:0}[data-ui-code-block]:not([data-line-numbers]) [data-part-number]{display:none}[data-ui-code-block][data-marks] [data-part-line]{--_marker: var(--slotted-space-6, 1rem)}[data-ui-code-block] [data-part-number]{color:var(--_muted);font-variant-numeric:tabular-nums;grid-column:1;padding-inline-end:var(--slotted-space-4, .5rem);text-align:end;-webkit-user-select:none;user-select:none}[data-ui-code-block] [data-part-marker]{grid-column:2;text-align:center;-webkit-user-select:none;user-select:none}[data-ui-code-block] [data-part-line]>[data-part-token],[data-ui-code-block] [data-part-line]>[data-part-text]{grid-column:3}[data-ui-code-block] [data-part-line]>[data-part-text]{display:block;min-inline-size:0}[data-ui-code-block][data-wrap] [data-part-line]>[data-part-text]{padding-inline-start:var(--_indent);text-indent:calc(var(--_indent) * -1)}[data-ui-code-block] [data-token=comment]{color:var(--slotted-code-comment, var(--slotted-text-muted, GrayText));font-style:italic}[data-ui-code-block] [data-token=keyword]{color:var(--slotted-code-keyword, var(--slotted-text, CanvasText))}[data-ui-code-block] [data-token=string]{color:var(--slotted-code-string, var(--slotted-text, CanvasText))}[data-ui-code-block] [data-token=number]{color:var(--slotted-code-number, var(--slotted-text, CanvasText))}[data-ui-code-block] [data-token=function]{color:var(--slotted-code-function, var(--slotted-text, CanvasText))}[data-ui-code-block] [data-token=type]{color:var(--slotted-code-type, var(--slotted-text, CanvasText))}[data-ui-code-block] [data-token=variable]{color:var(--slotted-code-variable, var(--slotted-text, CanvasText))}[data-ui-code-block] [data-token=property]{color:var(--slotted-code-property, var(--slotted-text, CanvasText))}[data-ui-code-block] [data-token=punctuation]{color:var(--slotted-code-punctuation, var(--slotted-text, CanvasText))}[data-ui-code-block] [data-token=tag]{color:var(--slotted-code-tag, var(--slotted-text, CanvasText))}[data-ui-code-block] [data-token=attribute]{color:var(--slotted-code-attribute, var(--slotted-text, CanvasText))}[data-ui-code-block] [data-token=constant]{color:var(--slotted-code-constant, var(--slotted-text, CanvasText))}[data-ui-code-block] [data-part-line][data-mark]{--_tone: var(--slotted-tone-accent-text, CanvasText);background-color:color-mix(in srgb,var(--_tone) calc(var(--_tint) * 100%),transparent)}[data-ui-code-block] [data-part-line]:is([data-mark=highlight],[data-mark=error],[data-mark=warning]):before{background-color:var(--_tone);content:\"\";inline-size:var(--slotted-border-width-thick, 2px);inset-block:0;inset-inline-start:0;position:absolute}[data-ui-code-block] [data-part-line][data-mark=add]{--_tone: var(--slotted-tone-success-text, CanvasText)}[data-ui-code-block] [data-part-line][data-mark=remove],[data-ui-code-block] [data-part-line][data-mark=error]{--_tone: var(--slotted-tone-danger-text, CanvasText)}[data-ui-code-block] [data-part-line][data-mark=warning]{--_tone: var(--slotted-tone-warning-text, CanvasText)}[data-ui-code-block] [data-part-line][data-mark=add]>[data-part-marker]:before{color:var(--_tone);content:\"+\"}[data-ui-code-block] [data-part-line][data-mark=remove]>[data-part-marker]:before{color:var(--_tone);content:\"\\2212\"}[data-ui-code-block] [data-part-line][data-mark=remove]>[data-part-text]{opacity:.72}[data-ui-code-block] [data-part-line][data-dim]{color:var(--_muted);filter:blur(1px);transition:filter var(--slotted-duration-medium) var(--slotted-easing-standard),color var(--slotted-duration-medium) var(--slotted-easing-standard)}[data-ui-code-block] [data-part-line][data-dim] [data-part-token]{color:inherit}[data-ui-code-block]:not([data-loading]):is(:hover,:focus-within) [data-part-line][data-dim]{color:var(--_ink);filter:none}[data-ui-code-block]:not([data-loading]):is(:hover,:focus-within) [data-part-line][data-dim] [data-part-token]{color:revert-layer}[data-ui-code-block][data-collapse]:not([data-revealed])>[data-part-body]>[data-part-viewport]{--_visible: calc(var(--slotted-code-block-collapse) * var(--_line) + var(--_inset-block));-webkit-mask-image:linear-gradient(to bottom,#000 calc(var(--_visible) - var(--_line)),transparent var(--_visible));mask-image:linear-gradient(to bottom,#000 calc(var(--_visible) - var(--_line)),transparent var(--_visible));max-block-size:var(--_visible);overflow-y:hidden}[data-ui-code-block]>[data-part-reveal]{appearance:none;background:none;border:0;border-block-start:var(--slotted-border-width-thin, 1px) solid var(--_edge);color:var(--slotted-tone-accent-text, LinkText);cursor:pointer;font-family:var(--slotted-font-family-sans, inherit);font-size:var(--slotted-font-size-sm, .8125rem);font-weight:var(--slotted-font-weight-medium, 500);min-block-size:var(--slotted-control-height-sm, 30px);padding-block:0;padding-inline:var(--_inset-inline);text-align:start;transition:background-color var(--_duration) var(--_easing)}[data-ui-code-block]>[data-part-reveal]:focus-visible{border-end-end-radius:var(--_radius);border-end-start-radius:var(--_radius);outline-offset:calc(var(--slotted-focus-ring-offset, 2px) * -1)}[data-ui-code-block]>[data-part-reveal]:enabled:hover{background-color:var(--slotted-tone-accent-subtle-hover, ButtonFace)}[data-ui-code-block]>[data-part-reveal]:enabled:active{background-color:var(--slotted-tone-accent-subtle-active, ButtonFace)}[data-ui-code-block][data-loading] [data-part-code]{gap:var(--slotted-space-3, .375rem);padding-inline:var(--_inset-inline)}[data-ui-code-block][data-loading] [data-part-code]>[data-ui-skeleton]{block-size:var(--_font-size)}@media(prefers-reduced-motion:reduce){[data-ui-code-block] [data-part-line][data-dim]{filter:none}}@media(forced-colors:active){[data-ui-code-block] [data-part-line][data-mark]{background-color:transparent}[data-ui-code-block] [data-part-line][data-dim]{color:inherit;filter:none}}@media print{[data-ui-code-block] [data-part-pre]{min-inline-size:0;overflow-wrap:anywhere;white-space:pre-wrap}[data-ui-code-block][data-collapse]>[data-part-body]>[data-part-viewport]{-webkit-mask-image:none;mask-image:none;max-block-size:none}[data-ui-code-block]>[data-part-reveal],[data-ui-code-block] [data-part-wrap]{display:none}}}\n"] }]
469
483
  }], ctorParameters: () => [], propDecorators: { code: [{ type: i0.Input, args: [{ isSignal: true, alias: "code", required: true }] }], language: [{ type: i0.Input, args: [{ isSignal: true, alias: "language", required: false }] }], highlight: [{ type: i0.Input, args: [{ isSignal: true, alias: "highlight", required: false }] }], tokens: [{ type: i0.Input, args: [{ isSignal: true, alias: "tokens", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], fileName: [{ type: i0.Input, args: [{ isSignal: true, alias: "fileName", required: false }] }], lineNumbers: [{ type: i0.Input, args: [{ isSignal: true, alias: "lineNumbers", required: false }] }], start: [{ type: i0.Input, args: [{ isSignal: true, alias: "start", required: false }] }], marks: [{ type: i0.Input, args: [{ isSignal: true, alias: "marks", required: false }] }], wrap: [{ type: i0.Input, args: [{ isSignal: true, alias: "wrap", required: false }] }, { type: i0.Output, args: ["wrapChange"] }], defaultWrap: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultWrap", required: false }] }], collapseAfter: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapseAfter", required: false }] }], revealed: [{ type: i0.Input, args: [{ isSignal: true, alias: "revealed", required: false }] }, { type: i0.Output, args: ["revealedChange"] }], defaultRevealed: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultRevealed", required: false }] }], maxLines: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxLines", required: false }] }], copy: [{ type: i0.Input, args: [{ isSignal: true, alias: "copy", required: false }] }], copyRemoved: [{ type: i0.Input, args: [{ isSignal: true, alias: "copyRemoved", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], messages: [{ type: i0.Input, args: [{ isSignal: true, alias: "messages", required: false }] }], tabSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "tabSize", required: false }] }], wrapChangeRequest: [{ type: i0.Output, args: ["wrapChangeRequest"] }], revealedChangeRequest: [{ type: i0.Output, args: ["revealedChangeRequest"] }], copyRequest: [{ type: i0.Output, args: ["copyRequest"] }], highlightError: [{ type: i0.Output, args: ["highlightError"] }], body: [{ type: i0.ViewChild, args: ['body', { isSignal: true }] }], lineTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SlCodeBlockLine), { isSignal: true }] }], action: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SlCodeBlockAction), { isSignal: true }] }] } });
470
484
 
471
485
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"slotted-angular-code-block.mjs","sources":["../../code-block/src/code-block.constants.ts","../../code-block/src/code-block.ts","../../code-block/src/slotted-angular-code-block.ts"],"sourcesContent":["import { InjectionToken, inject } from '@angular/core';\nimport type { CodeHighlighter, CodeMark } from '@slotted/core/code';\n\nexport type CodeBlockWrapReason = 'pointer' | 'keyboard' | 'programmatic';\nexport type CodeBlockRevealedReason = 'pointer' | 'keyboard' | 'escape' | 'programmatic';\nexport type { CodeMark };\n\nexport interface CodeBlockCopyRequest {\n readonly value: string;\n readonly reason: 'pointer' | 'keyboard';\n readonly copied: boolean;\n readonly source?: Event | undefined;\n}\n\nexport interface CodeBlockDefaults {\n highlight?: CodeHighlighter;\n lineNumbers?: boolean;\n copy?: boolean;\n}\n\nexport const CODE_BLOCK_DEFAULTS_TOKEN = new InjectionToken<CodeBlockDefaults>(\n 'slotted code-block defaults',\n { providedIn: 'root', factory: (): CodeBlockDefaults => ({}) },\n);\n\n/**\n * An application that has loaded an engine once hands it to every block here,\n * along with whether blocks number their lines and carry a copy control. A\n * block that states any of those itself still wins. Its words come from the\n * language in force (`provideSlotted`).\n */\nexport function provideCodeBlockDefaults(defaults: CodeBlockDefaults) {\n return { provide: CODE_BLOCK_DEFAULTS_TOKEN, useValue: defaults };\n}\n\nexport function injectCodeBlockDefaults(): CodeBlockDefaults {\n return inject(CODE_BLOCK_DEFAULTS_TOKEN);\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n DestroyRef,\n Directive,\n effect,\n ElementRef,\n HostAttributeToken,\n inject,\n input,\n model,\n numberAttribute,\n output,\n signal,\n TemplateRef,\n untracked,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { injectMessages } from '@slotted/angular/i18n';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\nimport type { GlyphName } from '@slotted/angular/icon';\nimport { writeToClipboard } from '@slotted/core/clipboard';\nimport {\n copyText,\n gutterDigits,\n leadingColumns,\n lineMarks,\n lineText,\n plainLines,\n} from '@slotted/core/code';\nimport type { CodeHighlighter, CodeLine, CodeMarks, LineMark } from '@slotted/core/code';\nimport {\n codeBlockMessages,\n type CodeBlockMessages,\n type PartialMessages,\n} from '@slotted/core/i18n';\nimport { getLiveAnnouncer } from '@slotted/core/live-announcer';\nimport { createControllable } from '@slotted/core/state';\nimport type { ChangeRequest } from '@slotted/core/state';\nimport { fileKind } from '@slotted/core/upload';\nimport { SlScrollArea, SlScrollAreaContent } from '@slotted/angular/scroll-area';\nimport type { ScrollEdgesState } from '@slotted/angular/scroll-area';\nimport { SlSkeleton } from '@slotted/angular/skeleton';\n\nimport {\n injectCodeBlockDefaults,\n type CodeBlockCopyRequest,\n type CodeBlockRevealedReason,\n type CodeBlockWrapReason,\n} from './code-block.constants';\n\n/** How long the check stays in place of the sheets. */\nconst COPIED_FOR = 2000;\n\nconst KIND_ICON: Record<string, GlyphName> = {\n archive: 'file-archive',\n audio: 'file-audio',\n document: 'file-type',\n image: 'file-image',\n pdf: 'file-text',\n presentation: 'presentation',\n spreadsheet: 'file-spreadsheet',\n video: 'file-video',\n};\n\nlet counter = 0;\n\n/** A control of the consumer's own, projected beside copy and wrap. */\n@Directive({ selector: '[slCodeBlockAction]', standalone: true })\nexport class SlCodeBlockAction {}\n\n/** What a `slCodeBlockLine` template is handed for one line. */\nexport interface CodeBlockLineContext {\n $implicit: CodeLine;\n number: number;\n mark: LineMark['mark'];\n dim: boolean;\n}\n\n/** Replaces the run of tokens a line draws. The gutter stays the family's. */\n@Directive({ selector: 'ng-template[slCodeBlockLine]', standalone: true })\nexport class SlCodeBlockLine {\n readonly template = inject<TemplateRef<CodeBlockLineContext>>(TemplateRef);\n}\n\n/**\n * A block of source: a header that names the file and holds the two controls,\n * a body that is a `scroll-area`, and inside it a `pre` whose every line is a\n * grid row. Tokens come in from an engine outside the family and are drawn as\n * text in spans; HTML never does.\n */\n@Component({\n selector: '[slCodeBlock]',\n standalone: true,\n imports: [NgTemplateOutlet, SlGlyph, SlIcon, SlScrollArea, SlScrollAreaContent, SlSkeleton],\n template: `\n @if (hasHeader()) {\n <div data-part=\"header\">\n @if (icon(); as glyph) {\n <span aria-hidden=\"true\" data-part=\"icon\"\n ><span slIcon><svg slGlyph [name]=\"glyph\"></svg></span\n ></span>\n }\n @if (title(); as words) {\n <span data-part=\"title\" [id]=\"id + '-title'\">{{ words }}</span>\n }\n @if (language() !== 'text') {\n <span data-part=\"language\">{{ language() }}</span>\n }\n @if (!loading()) {\n <div data-part=\"actions\">\n <ng-content select=\"[slCodeBlockAction]\"></ng-content>\n @if (overflow() || isWrapped()) {\n <button\n data-part=\"wrap\"\n type=\"button\"\n [attr.aria-label]=\"t(isWrapped() ? 'unwrap' : 'wrap')\"\n [attr.aria-pressed]=\"isWrapped()\"\n [attr.data-pressed]=\"isWrapped() ? '' : null\"\n (click)=\"toggleWrap($event)\"\n (keydown)=\"remember($event)\"\n >\n <span slIcon><svg slGlyph name=\"text-wrap\"></svg></span>\n </button>\n }\n @if (copyControl()) {\n <button\n data-part=\"copy\"\n type=\"button\"\n [attr.aria-label]=\"t('copy')\"\n [attr.data-complete]=\"copied() ? '' : null\"\n (click)=\"copyFromControl($event)\"\n (keydown)=\"remember($event)\"\n >\n <!-- The check stands in for the sheets while the copy is confirmed. -->\n <span slIcon><svg slGlyph [name]=\"copied() ? 'check' : 'copy'\"></svg></span>\n </button>\n }\n </div>\n }\n </div>\n }\n <div\n #body\n slScrollArea\n data-part=\"body\"\n [axis]=\"maxLines() === undefined ? 'inline' : 'both'\"\n fade=\"both\"\n gutter=\"auto\"\n [id]=\"id + '-body'\"\n [messages]=\"{ label: regionName() }\"\n [attr.data-max-lines]=\"maxLines() === undefined ? null : ''\"\n (overflowChange)=\"onOverflow($event)\"\n >\n <div slScrollAreaContent>\n <pre\n data-part=\"pre\"\n ><code data-part=\"code\" [class]=\"'language-' + language()\">@if (loading()) {@for (width of skeletonWidths; track $index) {<span slSkeleton shape=\"text\" aria-hidden=\"true\" [style.inline-size]=\"width + '%'\"></span>}} @else {@for (line of rows(); track $index) {<span data-part=\"line\" [attr.data-line]=\"line.number\" [attr.data-mark]=\"line.mark ?? null\" [attr.data-dim]=\"line.dim ? '' : null\" [style.--slotted-code-block-indent]=\"line.indent > 0 ? line.indent : null\"><span aria-hidden=\"true\" data-part=\"number\">@if (lineNumbersValue()) {{{ line.number }}}</span><span aria-hidden=\"true\" data-part=\"marker\"></span><span data-part=\"text\">@if (lineTemplate(); as custom) {<ng-container [ngTemplateOutlet]=\"custom.template\" [ngTemplateOutletContext]=\"{ $implicit: line.tokens, number: line.number, mark: line.mark, dim: line.dim }\" />} @else {@for (token of line.tokens; track $index) {@if (token.scope) {<span data-part=\"token\" [attr.data-token]=\"token.scope\">{{ token.text }}</span>} @else {{{ token.text }}}}}</span></span>}}</code></pre>\n </div>\n </div>\n @if (collapses()) {\n <button\n data-part=\"reveal\"\n type=\"button\"\n [attr.aria-controls]=\"id + '-body'\"\n [attr.aria-expanded]=\"isRevealed()\"\n (click)=\"toggleRevealed($event)\"\n (keydown)=\"remember($event)\"\n >\n {{ isRevealed() ? t('collapse') : t('reveal', { count: hiddenCount() }) }}\n </button>\n }\n `,\n styleUrl: '../../../styles/src/code-block/code-block.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slCodeBlock',\n host: {\n 'data-ui': 'code-block',\n 'data-part': 'root',\n '[attr.data-language]': 'language()',\n '[attr.data-wrap]': 'isWrapped() ? \"\" : null',\n '[attr.data-revealed]': 'isRevealed() ? \"\" : null',\n '[attr.data-collapse]': 'collapses() ? \"\" : null',\n '[attr.data-line-numbers]': 'lineNumbersValue() ? \"\" : null',\n '[attr.data-loading]': 'loading() ? \"\" : null',\n '[attr.aria-busy]': 'loading() ? \"true\" : null',\n '[attr.data-empty]': 'code() === \"\" ? \"\" : null',\n '[attr.data-marks]': 'hasMarks() ? \"\" : null',\n '[attr.data-overflow]': 'overflow() ? \"\" : null',\n '[style.--slotted-code-block-digits]': 'digits()',\n '[style.--slotted-code-block-collapse]': 'collapses() ? collapseAfter() : null',\n '[style.--slotted-code-block-max-lines]': 'maxLines() ?? null',\n '(keydown)': 'onKeyDown($event)',\n },\n})\nexport class SlCodeBlock {\n /** The source, as text. Never HTML. */\n readonly code = input.required<string>();\n readonly language = input('text');\n /** The engine, outside the family. `null` refuses the one the provider set. */\n readonly highlight = input<CodeHighlighter | null | undefined>(undefined);\n /** Already-tokenised lines, when the consumer ran the engine itself. */\n readonly tokens = input<readonly CodeLine[] | undefined>(undefined);\n readonly title = input<string | undefined>(undefined);\n /** The file's name, for the glyph beside the title. Defaults to `title`. */\n readonly fileName = input<string | undefined>(undefined);\n readonly lineNumbers = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n readonly start = input(1, { transform: numberAttribute });\n readonly marks = input<CodeMarks | undefined>(undefined);\n /** Present is controlled, for the life of the block. */\n readonly wrap = model<boolean | undefined>(undefined);\n /** Where an uncontrolled block starts, read once. */\n readonly defaultWrap = input(false, { transform: booleanAttribute });\n readonly collapseAfter = input<number | undefined, number | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : numberAttribute(value)),\n });\n readonly revealed = model<boolean | undefined>(undefined);\n readonly defaultRevealed = input(false, { transform: booleanAttribute });\n readonly isWrapped = computed(() => this.wrap() ?? this.defaultWrap());\n readonly isRevealed = computed(() => this.revealed() ?? this.defaultRevealed());\n readonly maxLines = input<number | undefined, number | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : numberAttribute(value)),\n });\n readonly copy = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n readonly copyRemoved = input(false, { transform: booleanAttribute });\n readonly loading = input(false, { transform: booleanAttribute });\n /**\n * Words laid over the catalog of the language in force, key by key: the\n * scroll region's name when the block has no title (`region`), the controls,\n * and the announcements.\n */\n readonly messages = input<PartialMessages<CodeBlockMessages> | undefined>(undefined);\n readonly tabSize = input(2, { transform: numberAttribute });\n\n /** The request behind a wrap change, with the reason it carries. */\n readonly wrapChangeRequest = output<ChangeRequest<boolean>>();\n readonly revealedChangeRequest = output<ChangeRequest<boolean>>();\n /** What the copy control wrote, and whether the platform took it. */\n readonly copyRequest = output<CodeBlockCopyRequest>();\n readonly highlightError = output<unknown>();\n\n private readonly defaults = injectCodeBlockDefaults();\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly destroyRef = inject(DestroyRef);\n private readonly ariaLabel = inject(new HostAttributeToken('aria-label'), { optional: true });\n private readonly body = viewChild.required<SlScrollArea>('body');\n protected readonly lineTemplate = contentChild(SlCodeBlockLine);\n private readonly action = contentChild(SlCodeBlockAction);\n\n readonly id = `slotted-code-block-${(counter += 1)}`;\n protected readonly skeletonWidths = [62, 78, 44, 70];\n\n /** The family's words in the language in force, with this block's `messages` laid over them. */\n readonly t = injectMessages(codeBlockMessages, this.messages);\n protected readonly lineNumbersValue = computed(\n () => this.lineNumbers() ?? this.defaults.lineNumbers ?? false,\n );\n protected readonly copyControl = computed(() => this.copy() ?? this.defaults.copy ?? true);\n private readonly engine = computed(() => {\n const own = this.highlight();\n return own === null ? undefined : (own ?? this.defaults.highlight);\n });\n\n private readonly resolved = signal<{ code: string; lines: readonly CodeLine[] } | null>(null);\n protected readonly copied = signal(false);\n protected readonly overflow = signal(false);\n private timer: ReturnType<typeof setTimeout> | undefined;\n private keyed = false;\n\n private readonly lines = computed<readonly CodeLine[]>(() => {\n const tokens = this.tokens();\n if (tokens) return tokens;\n const resolved = this.resolved();\n return resolved && resolved.code === this.code() ? resolved.lines : plainLines(this.code());\n });\n\n private readonly marksByLine = computed(() => lineMarks(this.marks(), this.lines().length));\n protected readonly hasMarks = computed(() =>\n this.marksByLine().some((entry) => entry.mark !== undefined || entry.dim),\n );\n\n protected readonly rows = computed(() => {\n const marks = this.marksByLine();\n const start = this.start();\n const wrap = this.isWrapped();\n const tabSize = this.tabSize();\n return this.lines().map((tokens, index) => ({\n dim: marks[index]?.dim ?? false,\n indent: wrap ? leadingColumns(lineText(tokens), tabSize) : 0,\n mark: marks[index]?.mark,\n number: start + index,\n tokens,\n }));\n });\n\n protected readonly digits = computed(() => gutterDigits(this.lines().length, this.start()));\n protected readonly collapses = computed(() => {\n const after = this.collapseAfter();\n return after !== undefined && this.lines().length > after;\n });\n protected readonly hiddenCount = computed(() =>\n this.collapses() ? this.lines().length - (this.collapseAfter() ?? 0) : 0,\n );\n protected readonly hasHeader = computed(\n () =>\n this.title() !== undefined ||\n this.language() !== 'text' ||\n this.copyControl() ||\n this.action() !== undefined,\n );\n protected readonly icon = computed(() => {\n const name = this.fileName() ?? this.title();\n if (!name || this.title() === undefined) return undefined;\n return KIND_ICON[fileKind({ name, type: '' })] ?? 'file';\n });\n protected readonly regionName = computed(\n () => this.title() ?? this.ariaLabel ?? this.t('region'),\n );\n\n constructor() {\n /* The engine runs after the first paint and its lines are swapped in. */\n effect((onCleanup) => {\n const engine = this.engine();\n const code = this.code();\n const language = this.language();\n if (!engine || this.tokens()) return;\n let live = true;\n onCleanup(() => {\n live = false;\n });\n Promise.resolve()\n .then(() => engine(code, language))\n .then((lines) => {\n if (live) this.resolved.set({ code, lines });\n })\n .catch((error: unknown) => {\n if (live) this.highlightError.emit(error);\n });\n });\n this.destroyRef.onDestroy(() => clearTimeout(this.timer));\n }\n\n protected onOverflow(state: ScrollEdgesState) {\n this.overflow.set(state.inline.overflowing);\n }\n\n /** `Enter` and `Space` both end in a click; whether a key came first decides the reason. */\n protected remember(event: KeyboardEvent) {\n this.keyed = event.key === 'Enter' || event.key === ' ';\n }\n\n private takeReason(): 'pointer' | 'keyboard' {\n const reason = this.keyed ? 'keyboard' : 'pointer';\n this.keyed = false;\n return reason;\n }\n\n protected toggleWrap(event?: Event) {\n this.requestWrap(!this.isWrapped(), this.takeReason(), event);\n }\n\n requestWrap(next: boolean, reason: CodeBlockWrapReason, source?: Event) {\n const state = createControllable<boolean>({\n initial: this.isWrapped(),\n onRequest: (request) => this.wrapChangeRequest.emit(request),\n });\n if (state.request(next, reason, source)) this.wrap.set(next);\n }\n\n protected toggleRevealed(event?: Event) {\n this.requestRevealed(!this.isRevealed(), this.takeReason(), event);\n }\n\n requestRevealed(next: boolean, reason: CodeBlockRevealedReason, source?: Event) {\n const state = createControllable<boolean>({\n initial: this.isRevealed(),\n onRequest: (request) => this.revealedChangeRequest.emit(request),\n });\n if (state.request(next, reason, source)) this.revealed.set(next);\n }\n\n protected onKeyDown(event: KeyboardEvent) {\n if (event.defaultPrevented || event.key !== 'Escape') return;\n if (!untracked(this.collapses) || !untracked(this.revealed)) return;\n event.preventDefault();\n this.requestRevealed(false, 'escape', event);\n this.body().focus();\n }\n\n protected copyFromControl(event: Event) {\n void this.write(this.takeReason(), event);\n }\n\n /** Writes the code to the clipboard, as the control does. */\n copyCode(): Promise<boolean> {\n return this.write('keyboard');\n }\n\n private async write(reason: 'pointer' | 'keyboard', source?: Event): Promise<boolean> {\n const value = copyText(this.code(), this.marks(), { includeRemoved: this.copyRemoved() });\n const done = (await writeToClipboard(value)) !== 'refused';\n if (done) {\n this.copied.set(true);\n clearTimeout(this.timer);\n this.timer = setTimeout(() => this.copied.set(false), COPIED_FOR);\n }\n getLiveAnnouncer(this.host.nativeElement.ownerDocument).announce(\n this.t(done ? 'copied' : 'copyFailed'),\n );\n this.copyRequest.emit({ copied: done, reason, source, value });\n return done;\n }\n\n /** Brings a one-based line into view. */\n scrollToLine(line: number) {\n const element = this.host.nativeElement.querySelector<HTMLElement>(`[data-line='${line}']`);\n if (element) this.body().reveal(element);\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-code-block.mjs","sources":["../../code-block/src/code-block.constants.ts","../../code-block/src/code-block.ts","../../code-block/src/slotted-angular-code-block.ts"],"sourcesContent":["import { InjectionToken, inject } from '@angular/core';\nimport type { CodeHighlighter, CodeMark } from '@slotted/core/code';\n\nexport type CodeBlockWrapReason = 'pointer' | 'keyboard' | 'programmatic';\nexport type CodeBlockRevealedReason = 'pointer' | 'keyboard' | 'escape' | 'programmatic';\nexport type { CodeMark };\n\nexport interface CodeBlockCopyRequest {\n readonly value: string;\n readonly reason: 'pointer' | 'keyboard';\n readonly copied: boolean;\n readonly source?: Event | undefined;\n}\n\nexport interface CodeBlockDefaults {\n highlight?: CodeHighlighter;\n lineNumbers?: boolean;\n copy?: boolean;\n}\n\nexport const CODE_BLOCK_DEFAULTS_TOKEN = new InjectionToken<CodeBlockDefaults>(\n 'slotted code-block defaults',\n { providedIn: 'root', factory: (): CodeBlockDefaults => ({}) },\n);\n\n/**\n * An application that has loaded an engine once hands it to every block here,\n * along with whether blocks number their lines and carry a copy control. A\n * block that states any of those itself still wins. Its words come from the\n * language in force (`provideSlotted`).\n */\nexport function provideCodeBlockDefaults(defaults: CodeBlockDefaults) {\n return { provide: CODE_BLOCK_DEFAULTS_TOKEN, useValue: defaults };\n}\n\nexport function injectCodeBlockDefaults(): CodeBlockDefaults {\n return inject(CODE_BLOCK_DEFAULTS_TOKEN);\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n DestroyRef,\n Directive,\n effect,\n ElementRef,\n HostAttributeToken,\n inject,\n input,\n model,\n numberAttribute,\n output,\n signal,\n TemplateRef,\n untracked,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { injectMessages } from '@slotted/angular/i18n';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\nimport type { GlyphName } from '@slotted/angular/icon';\nimport { writeToClipboard } from '@slotted/core/clipboard';\nimport {\n copyText,\n gutterDigits,\n leadingColumns,\n lineMarks,\n lineText,\n plainLines,\n} from '@slotted/core/code';\nimport type { CodeHighlighter, CodeLine, CodeMarks, LineMark } from '@slotted/core/code';\nimport {\n codeBlockMessages,\n type CodeBlockMessages,\n type PartialMessages,\n} from '@slotted/core/i18n';\nimport { getLiveAnnouncer } from '@slotted/core/live-announcer';\nimport { createControllable } from '@slotted/core/state';\nimport type { ChangeRequest } from '@slotted/core/state';\nimport { fileKind } from '@slotted/core/upload';\nimport { SlScrollArea, SlScrollAreaContent } from '@slotted/angular/scroll-area';\nimport type { ScrollEdgesState } from '@slotted/angular/scroll-area';\nimport { SlSkeleton } from '@slotted/angular/skeleton';\n\nimport {\n injectCodeBlockDefaults,\n type CodeBlockCopyRequest,\n type CodeBlockRevealedReason,\n type CodeBlockWrapReason,\n} from './code-block.constants';\n\n/** How long the check stays in place of the sheets. */\nconst COPIED_FOR = 2000;\n\nconst KIND_ICON: Record<string, GlyphName> = {\n archive: 'file-archive',\n audio: 'file-audio',\n document: 'file-type',\n image: 'file-image',\n pdf: 'file-text',\n presentation: 'presentation',\n spreadsheet: 'file-spreadsheet',\n video: 'file-video',\n};\n\nlet counter = 0;\n\n/** A control of the consumer's own, projected beside copy and wrap. */\n@Directive({ selector: '[slCodeBlockAction]', standalone: true })\nexport class SlCodeBlockAction {}\n\n/** What a `slCodeBlockLine` template is handed for one line. */\nexport interface CodeBlockLineContext {\n $implicit: CodeLine;\n number: number;\n mark: LineMark['mark'];\n dim: boolean;\n}\n\n/** Replaces the run of tokens a line draws. The gutter stays the family's. */\n@Directive({ selector: 'ng-template[slCodeBlockLine]', standalone: true })\nexport class SlCodeBlockLine {\n readonly template = inject<TemplateRef<CodeBlockLineContext>>(TemplateRef);\n}\n\n/**\n * A block of source: a header that names the file and holds the two controls,\n * a body that is a `scroll-area`, and inside it a `pre` whose every line is a\n * grid row. Tokens come in from an engine outside the family and are drawn as\n * text in spans; HTML never does.\n */\n@Component({\n selector: '[slCodeBlock]',\n standalone: true,\n imports: [NgTemplateOutlet, SlGlyph, SlIcon, SlScrollArea, SlScrollAreaContent, SlSkeleton],\n template: `\n @if (hasHeader()) {\n <div data-part=\"header\" data-part-header=\"\">\n @if (icon(); as glyph) {\n <span aria-hidden=\"true\" data-part=\"icon\" data-part-icon=\"\"\n ><span slIcon><svg slGlyph [name]=\"glyph\"></svg></span\n ></span>\n }\n @if (title(); as words) {\n <span data-part=\"title\" data-part-title=\"\" [id]=\"id + '-title'\">{{ words }}</span>\n }\n @if (language() !== 'text') {\n <span data-part=\"language\" data-part-language=\"\">{{ language() }}</span>\n }\n @if (!loading()) {\n <div data-part=\"actions\" data-part-actions=\"\">\n <ng-content select=\"[slCodeBlockAction]\"></ng-content>\n @if (overflow() || isWrapped()) {\n <button\n data-part=\"wrap\"\n data-part-wrap=\"\"\n type=\"button\"\n [attr.aria-label]=\"t(isWrapped() ? 'unwrap' : 'wrap')\"\n [attr.aria-pressed]=\"isWrapped()\"\n [attr.data-pressed]=\"isWrapped() ? '' : null\"\n (click)=\"toggleWrap($event)\"\n (keydown)=\"remember($event)\"\n >\n <span slIcon><svg slGlyph name=\"text-wrap\"></svg></span>\n </button>\n }\n @if (copyControl()) {\n <button\n data-part=\"copy\"\n data-part-copy=\"\"\n type=\"button\"\n [attr.aria-label]=\"t('copy')\"\n [attr.data-complete]=\"copied() ? '' : null\"\n (click)=\"copyFromControl($event)\"\n (keydown)=\"remember($event)\"\n >\n <!-- The check stands in for the sheets while the copy is confirmed. -->\n <span slIcon><svg slGlyph [name]=\"copied() ? 'check' : 'copy'\"></svg></span>\n </button>\n }\n </div>\n }\n </div>\n }\n <div\n #body\n slScrollArea\n data-part=\"body\"\n data-part-body=\"\"\n [attr.data-part-root]=\"null\"\n [axis]=\"maxLines() === undefined ? 'inline' : 'both'\"\n fade=\"both\"\n gutter=\"auto\"\n [id]=\"id + '-body'\"\n [messages]=\"{ label: regionName() }\"\n [attr.data-max-lines]=\"maxLines() === undefined ? null : ''\"\n (overflowChange)=\"onOverflow($event)\"\n >\n <div slScrollAreaContent>\n <pre\n data-part=\"pre\"\n data-part-pre=\"\"\n ><code data-part=\"code\" data-part-code=\"\" [class]=\"'language-' + language()\">@if (loading()) {@for (width of skeletonWidths; track $index) {<span slSkeleton shape=\"text\" aria-hidden=\"true\" [style.inline-size]=\"width + '%'\"></span>}} @else {@for (line of rows(); track $index) {<span data-part=\"line\" data-part-line=\"\" [attr.data-line]=\"line.number\" [attr.data-mark]=\"line.mark ?? null\" [attr.data-dim]=\"line.dim ? '' : null\" [style.--slotted-code-block-indent]=\"line.indent > 0 ? line.indent : null\"><span aria-hidden=\"true\" data-part=\"number\" data-part-number=\"\">@if (lineNumbersValue()) {{{ line.number }}}</span><span aria-hidden=\"true\" data-part=\"marker\" data-part-marker=\"\"></span><span data-part=\"text\" data-part-text=\"\">@if (lineTemplate(); as custom) {<ng-container [ngTemplateOutlet]=\"custom.template\" [ngTemplateOutletContext]=\"{ $implicit: line.tokens, number: line.number, mark: line.mark, dim: line.dim }\" />} @else {@for (token of line.tokens; track $index) {@if (token.scope) {<span data-part=\"token\" data-part-token=\"\" [attr.data-token]=\"token.scope\">{{ token.text }}</span>} @else {{{ token.text }}}}}</span></span>}}</code></pre>\n </div>\n </div>\n @if (collapses()) {\n <button\n data-part=\"reveal\"\n data-part-reveal=\"\"\n type=\"button\"\n [attr.aria-controls]=\"id + '-body'\"\n [attr.aria-expanded]=\"isRevealed()\"\n (click)=\"toggleRevealed($event)\"\n (keydown)=\"remember($event)\"\n >\n {{ isRevealed() ? t('collapse') : t('reveal', { count: hiddenCount() }) }}\n </button>\n }\n `,\n styleUrl: '../../../styles/src/code-block/code-block.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slCodeBlock',\n host: {\n 'data-ui': 'code-block',\n 'data-ui-code-block': '',\n 'data-part': 'root',\n 'data-part-root': '',\n '[attr.data-language]': 'language()',\n '[attr.data-wrap]': 'isWrapped() ? \"\" : null',\n '[attr.data-revealed]': 'isRevealed() ? \"\" : null',\n '[attr.data-collapse]': 'collapses() ? \"\" : null',\n '[attr.data-line-numbers]': 'lineNumbersValue() ? \"\" : null',\n '[attr.data-loading]': 'loading() ? \"\" : null',\n '[attr.aria-busy]': 'loading() ? \"true\" : null',\n '[attr.data-empty]': 'code() === \"\" ? \"\" : null',\n '[attr.data-marks]': 'hasMarks() ? \"\" : null',\n '[attr.data-overflow]': 'overflow() ? \"\" : null',\n '[style.--slotted-code-block-digits]': 'digits()',\n '[style.--slotted-code-block-collapse]': 'collapses() ? collapseAfter() : null',\n '[style.--slotted-code-block-max-lines]': 'maxLines() ?? null',\n '(keydown)': 'onKeyDown($event)',\n },\n})\nexport class SlCodeBlock {\n /** The source, as text. Never HTML. */\n readonly code = input.required<string>();\n readonly language = input('text');\n /** The engine, outside the family. `null` refuses the one the provider set. */\n readonly highlight = input<CodeHighlighter | null | undefined>(undefined);\n /** Already-tokenised lines, when the consumer ran the engine itself. */\n readonly tokens = input<readonly CodeLine[] | undefined>(undefined);\n readonly title = input<string | undefined>(undefined);\n /** The file's name, for the glyph beside the title. Defaults to `title`. */\n readonly fileName = input<string | undefined>(undefined);\n readonly lineNumbers = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n readonly start = input(1, { transform: numberAttribute });\n readonly marks = input<CodeMarks | undefined>(undefined);\n /** Present is controlled, for the life of the block. */\n readonly wrap = model<boolean | undefined>(undefined);\n /** Where an uncontrolled block starts, read once. */\n readonly defaultWrap = input(false, { transform: booleanAttribute });\n readonly collapseAfter = input<number | undefined, number | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : numberAttribute(value)),\n });\n readonly revealed = model<boolean | undefined>(undefined);\n readonly defaultRevealed = input(false, { transform: booleanAttribute });\n readonly isWrapped = computed(() => this.wrap() ?? this.defaultWrap());\n readonly isRevealed = computed(() => this.revealed() ?? this.defaultRevealed());\n readonly maxLines = input<number | undefined, number | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : numberAttribute(value)),\n });\n readonly copy = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n readonly copyRemoved = input(false, { transform: booleanAttribute });\n readonly loading = input(false, { transform: booleanAttribute });\n /**\n * Words laid over the catalog of the language in force, key by key: the\n * scroll region's name when the block has no title (`region`), the controls,\n * and the announcements.\n */\n readonly messages = input<PartialMessages<CodeBlockMessages> | undefined>(undefined);\n readonly tabSize = input(2, { transform: numberAttribute });\n\n /** The request behind a wrap change, with the reason it carries. */\n readonly wrapChangeRequest = output<ChangeRequest<boolean>>();\n readonly revealedChangeRequest = output<ChangeRequest<boolean>>();\n /** What the copy control wrote, and whether the platform took it. */\n readonly copyRequest = output<CodeBlockCopyRequest>();\n readonly highlightError = output<unknown>();\n\n private readonly defaults = injectCodeBlockDefaults();\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly destroyRef = inject(DestroyRef);\n private readonly ariaLabel = inject(new HostAttributeToken('aria-label'), { optional: true });\n private readonly body = viewChild.required<SlScrollArea>('body');\n protected readonly lineTemplate = contentChild(SlCodeBlockLine);\n private readonly action = contentChild(SlCodeBlockAction);\n\n readonly id = `slotted-code-block-${(counter += 1)}`;\n protected readonly skeletonWidths = [62, 78, 44, 70];\n\n /** The family's words in the language in force, with this block's `messages` laid over them. */\n readonly t = injectMessages(codeBlockMessages, this.messages);\n protected readonly lineNumbersValue = computed(\n () => this.lineNumbers() ?? this.defaults.lineNumbers ?? false,\n );\n protected readonly copyControl = computed(() => this.copy() ?? this.defaults.copy ?? true);\n private readonly engine = computed(() => {\n const own = this.highlight();\n return own === null ? undefined : (own ?? this.defaults.highlight);\n });\n\n private readonly resolved = signal<{ code: string; lines: readonly CodeLine[] } | null>(null);\n protected readonly copied = signal(false);\n protected readonly overflow = signal(false);\n private timer: ReturnType<typeof setTimeout> | undefined;\n private keyed = false;\n\n private readonly lines = computed<readonly CodeLine[]>(() => {\n const tokens = this.tokens();\n if (tokens) return tokens;\n const resolved = this.resolved();\n return resolved && resolved.code === this.code() ? resolved.lines : plainLines(this.code());\n });\n\n private readonly marksByLine = computed(() => lineMarks(this.marks(), this.lines().length));\n protected readonly hasMarks = computed(() =>\n this.marksByLine().some((entry) => entry.mark !== undefined || entry.dim),\n );\n\n protected readonly rows = computed(() => {\n const marks = this.marksByLine();\n const start = this.start();\n const wrap = this.isWrapped();\n const tabSize = this.tabSize();\n return this.lines().map((tokens, index) => ({\n dim: marks[index]?.dim ?? false,\n indent: wrap ? leadingColumns(lineText(tokens), tabSize) : 0,\n mark: marks[index]?.mark,\n number: start + index,\n tokens,\n }));\n });\n\n protected readonly digits = computed(() => gutterDigits(this.lines().length, this.start()));\n protected readonly collapses = computed(() => {\n const after = this.collapseAfter();\n return after !== undefined && this.lines().length > after;\n });\n protected readonly hiddenCount = computed(() =>\n this.collapses() ? this.lines().length - (this.collapseAfter() ?? 0) : 0,\n );\n protected readonly hasHeader = computed(\n () =>\n this.title() !== undefined ||\n this.language() !== 'text' ||\n this.copyControl() ||\n this.action() !== undefined,\n );\n protected readonly icon = computed(() => {\n const name = this.fileName() ?? this.title();\n if (!name || this.title() === undefined) return undefined;\n return KIND_ICON[fileKind({ name, type: '' })] ?? 'file';\n });\n protected readonly regionName = computed(\n () => this.title() ?? this.ariaLabel ?? this.t('region'),\n );\n\n constructor() {\n /* The engine runs after the first paint and its lines are swapped in. */\n effect((onCleanup) => {\n const engine = this.engine();\n const code = this.code();\n const language = this.language();\n if (!engine || this.tokens()) return;\n let live = true;\n onCleanup(() => {\n live = false;\n });\n Promise.resolve()\n .then(() => engine(code, language))\n .then((lines) => {\n if (live) this.resolved.set({ code, lines });\n })\n .catch((error: unknown) => {\n if (live) this.highlightError.emit(error);\n });\n });\n this.destroyRef.onDestroy(() => clearTimeout(this.timer));\n }\n\n protected onOverflow(state: ScrollEdgesState) {\n this.overflow.set(state.inline.overflowing);\n }\n\n /** `Enter` and `Space` both end in a click; whether a key came first decides the reason. */\n protected remember(event: KeyboardEvent) {\n this.keyed = event.key === 'Enter' || event.key === ' ';\n }\n\n private takeReason(): 'pointer' | 'keyboard' {\n const reason = this.keyed ? 'keyboard' : 'pointer';\n this.keyed = false;\n return reason;\n }\n\n protected toggleWrap(event?: Event) {\n this.requestWrap(!this.isWrapped(), this.takeReason(), event);\n }\n\n requestWrap(next: boolean, reason: CodeBlockWrapReason, source?: Event) {\n const state = createControllable<boolean>({\n initial: this.isWrapped(),\n onRequest: (request) => this.wrapChangeRequest.emit(request),\n });\n if (state.request(next, reason, source)) this.wrap.set(next);\n }\n\n protected toggleRevealed(event?: Event) {\n this.requestRevealed(!this.isRevealed(), this.takeReason(), event);\n }\n\n requestRevealed(next: boolean, reason: CodeBlockRevealedReason, source?: Event) {\n const state = createControllable<boolean>({\n initial: this.isRevealed(),\n onRequest: (request) => this.revealedChangeRequest.emit(request),\n });\n if (state.request(next, reason, source)) this.revealed.set(next);\n }\n\n protected onKeyDown(event: KeyboardEvent) {\n if (event.defaultPrevented || event.key !== 'Escape') return;\n if (!untracked(this.collapses) || !untracked(this.revealed)) return;\n event.preventDefault();\n this.requestRevealed(false, 'escape', event);\n this.body().focus();\n }\n\n protected copyFromControl(event: Event) {\n void this.write(this.takeReason(), event);\n }\n\n /** Writes the code to the clipboard, as the control does. */\n copyCode(): Promise<boolean> {\n return this.write('keyboard');\n }\n\n private async write(reason: 'pointer' | 'keyboard', source?: Event): Promise<boolean> {\n const value = copyText(this.code(), this.marks(), { includeRemoved: this.copyRemoved() });\n const done = (await writeToClipboard(value)) !== 'refused';\n if (done) {\n this.copied.set(true);\n clearTimeout(this.timer);\n this.timer = setTimeout(() => this.copied.set(false), COPIED_FOR);\n }\n getLiveAnnouncer(this.host.nativeElement.ownerDocument).announce(\n this.t(done ? 'copied' : 'copyFailed'),\n );\n this.copyRequest.emit({ copied: done, reason, source, value });\n return done;\n }\n\n /** Brings a one-based line into view. */\n scrollToLine(line: number) {\n const element = this.host.nativeElement.querySelector<HTMLElement>(`[data-line='${line}']`);\n if (element) this.body().reveal(element);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}