@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
@@ -122,13 +122,15 @@ class SlStatCard {
122
122
  labelledBy = computed(() => this.ownLabel !== null ? null : (this.ownLabelledBy ?? this.labelId), /* @ts-ignore */
123
123
  ...(ngDevMode ? [{ debugName: "labelledBy" }] : /* istanbul ignore next */ []));
124
124
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlStatCard, deps: [], target: i0.ɵɵFactoryTarget.Component });
125
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.7", type: SlStatCard, isStandalone: true, selector: "[slStatCard]", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, fill: { classPropertyName: "fill", publicName: "fill", isSignal: true, isRequired: false, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null }, status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, goodWhen: { classPropertyName: "goodWhen", publicName: "goodWhen", isSignal: true, isRequired: false, transformFunction: null }, delta: { classPropertyName: "delta", publicName: "delta", isSignal: true, isRequired: false, transformFunction: null }, tone: { classPropertyName: "tone", publicName: "tone", isSignal: true, isRequired: false, transformFunction: null }, locale: { classPropertyName: "locale", publicName: "locale", isSignal: true, isRequired: false, transformFunction: null }, formatOptions: { classPropertyName: "formatOptions", publicName: "formatOptions", isSignal: true, isRequired: false, transformFunction: null }, messages: { classPropertyName: "messages", publicName: "messages", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-ui": "stat-card", "data-part": "root", "role": "group" }, properties: { "attr.aria-labelledby": "labelledBy()", "attr.aria-busy": "loading() ? \"true\" : null", "attr.data-size": "resolvedSize()", "attr.data-fill": "resolvedFill()", "attr.data-layout": "resolvedLayout()", "attr.data-status": "status()", "attr.data-good-when": "resolvedGoodWhen()", "attr.data-tone": "resolvedTone() ?? null", "attr.data-loading": "loading() ? \"\" : null" } }, exportAs: ["slStatCard"], ngImport: i0, template: '<div data-part="body"><ng-content /></div>', isInline: true, styles: ["@layer slotted.components{[data-ui=stat-card]{--_edge-width: var(--slotted-stat-card-border-width, var(--slotted-border-width-thin, 1px));--_radius: var(--slotted-stat-card-radius, var(--slotted-radius-lg, 8px));--_inset-block: var(--slotted-stat-card-padding-block, var(--slotted-space-6, 1rem));--_inset-inline: var(--slotted-stat-card-padding-inline, var(--slotted-space-6, 1rem));--_region-gap: var(--slotted-stat-card-region-gap, var(--slotted-space-3, .375rem));--_trend-gap: var(--slotted-stat-card-trend-gap, var(--slotted-space-6, 1rem));--_trend-size: var( --slotted-stat-card-trend-inline-size, calc(var(--slotted-space-12, 4rem) * 1.5) );--_surface: var(--slotted-stat-card-background, var(--slotted-surface-raised, Canvas));--_edge: var(--slotted-stat-card-border-color, var(--slotted-border-subtle, ButtonBorder));--_shadow: var(--slotted-stat-card-shadow, none);--_ink: var(--slotted-stat-card-color, var(--slotted-text, CanvasText));--_ink-muted: var(--slotted-stat-card-color-muted, var(--slotted-text-muted, GrayText));--_value-size: var(--slotted-stat-card-value-font-size, var(--slotted-font-size-3xl, 1.5rem));--_value-line: var(--slotted-stat-card-value-line-height, var(--slotted-line-height-3xl, 1.3));--_label-size: var(--slotted-stat-card-label-font-size, var(--slotted-font-size-sm, .8125rem));--_label-line: var(--slotted-stat-card-label-line-height, var(--slotted-line-height-sm, 1.45));--_delta-size: var(--slotted-stat-card-delta-font-size, var(--slotted-font-size-sm, .8125rem));--_prose-size: var(--slotted-stat-card-prose-font-size, var(--slotted-font-size-xs, .75rem));--_prose-line: var(--slotted-stat-card-prose-line-height, var(--slotted-line-height-xs, 1.4));--_indicator-size: var( --slotted-stat-card-indicator-size, var(--slotted-control-icon-size-sm, 14px) );--_value-size-narrow: var(--slotted-font-size-2xl, 1.25rem);--_value-line-narrow: var(--slotted-line-height-2xl, 1.4);--_tone-text: var(--_ink-muted);background-color:var(--_surface);border:none;border-radius:var(--_radius);box-shadow:var(--_shadow);box-sizing:border-box;color:var(--_ink);container-name:stat-card;container-type:inline-size;display:flex;flex-direction:column;font-family:var(--slotted-font-family-sans, ui-sans-serif, system-ui, sans-serif);min-inline-size:var( --slotted-stat-card-min-inline-size, calc(var(--slotted-space-12, 4rem) * 2.5) );padding-block:var(--_inset-block);padding-inline:var(--_inset-inline);position:relative}[data-ui=stat-card]:before{border:var(--_edge-width) solid var(--_edge);border-radius:inherit;content:\"\";inset:0;pointer-events:none;position:absolute}[data-ui=stat-card][data-size=sm]{--_inset-block: var(--slotted-stat-card-padding-block-sm, var(--slotted-space-5, .75rem));--_inset-inline: var(--slotted-stat-card-padding-inline-sm, var(--slotted-space-5, .75rem));--_region-gap: var(--slotted-stat-card-region-gap-sm, var(--slotted-space-2, .25rem));--_trend-gap: var(--slotted-stat-card-trend-gap-sm, var(--slotted-space-5, .75rem));--_trend-size: var(--slotted-stat-card-trend-inline-size-sm, var(--slotted-space-12, 4rem));--_value-size: var( --slotted-stat-card-value-font-size-sm, var(--slotted-font-size-2xl, 1.25rem) );--_value-line: var( --slotted-stat-card-value-line-height-sm, var(--slotted-line-height-2xl, 1.4) );--_label-size: var( --slotted-stat-card-label-font-size-sm, var(--slotted-font-size-xs, .75rem) );--_label-line: var( --slotted-stat-card-label-line-height-sm, var(--slotted-line-height-xs, 1.4) );--_delta-size: var( --slotted-stat-card-delta-font-size-sm, var(--slotted-font-size-xs, .75rem) );--_value-size-narrow: var(--slotted-font-size-xl, 1.125rem);--_value-line-narrow: var(--slotted-line-height-xl, 1.45)}[data-ui=stat-card][data-size=lg]{--_inset-block: var(--slotted-stat-card-padding-block-lg, var(--slotted-space-8, 1.5rem));--_inset-inline: var(--slotted-stat-card-padding-inline-lg, var(--slotted-space-8, 1.5rem));--_region-gap: var(--slotted-stat-card-region-gap-lg, var(--slotted-space-4, .5rem));--_trend-gap: var(--slotted-stat-card-trend-gap-lg, var(--slotted-space-8, 1.5rem));--_trend-size: var( --slotted-stat-card-trend-inline-size-lg, calc(var(--slotted-space-12, 4rem) * 2) );--_value-size: var(--slotted-stat-card-value-font-size-lg, var(--slotted-font-size-4xl, 2rem));--_value-line: var( --slotted-stat-card-value-line-height-lg, var(--slotted-line-height-4xl, 1.2) );--_label-size: var( --slotted-stat-card-label-font-size-lg, var(--slotted-font-size-md, .875rem) );--_label-line: var( --slotted-stat-card-label-line-height-lg, var(--slotted-line-height-md, 1.5) );--_delta-size: var( --slotted-stat-card-delta-font-size-lg, var(--slotted-font-size-md, .875rem) );--_prose-size: var( --slotted-stat-card-prose-font-size-lg, var(--slotted-font-size-sm, .8125rem) );--_prose-line: var( --slotted-stat-card-prose-line-height-lg, var(--slotted-line-height-sm, 1.45) );--_indicator-size: var( --slotted-stat-card-indicator-size-lg, var(--slotted-control-icon-size-md, 16px) );--_value-size-narrow: var(--slotted-font-size-3xl, 1.5rem);--_value-line-narrow: var(--slotted-line-height-3xl, 1.3)}[data-ui=stat-card][data-fill=elevated]{--_shadow: var(--slotted-stat-card-shadow-elevated, var(--slotted-shadow-md))}[data-ui=stat-card][data-fill=subtle]{--_surface: var(--slotted-stat-card-background-subtle, var(--slotted-surface-sunken, Canvas))}[data-ui=stat-card][data-fill=plain]{--_surface: transparent;--_edge: transparent;--_shadow: none;--_inset-block: 0;--_inset-inline: 0;--_radius: var(--slotted-radius-none, 0px)}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=body]{column-gap:var(--_trend-gap);display:grid;flex:1 1 auto;grid-template-areas:\"header header\" \"figure trend\" \"message message\";grid-template-columns:minmax(min-content,1fr) minmax(0,var(--_trend-size));grid-template-rows:auto minmax(0,1fr) auto;min-inline-size:0;row-gap:var(--_region-gap)}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope[data-layout=stacked] [data-part=body]{grid-template-areas:\"header\" \"figure\" \"trend\" \"message\";grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto auto}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=header]{contain:inline-size;grid-area:header}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=figure]{align-self:start;grid-area:figure;min-inline-size:0}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=trend]{--slotted-sparkline-ring-color: var(--_surface);align-self:center;container-name:stat-card-trend;container-type:inline-size;grid-area:trend;inline-size:100%;min-inline-size:0}}@container stat-card-trend (max-width: 39px){@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=trend]>*{visibility:hidden}}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope[data-layout=stacked] [data-part=trend]{align-self:end;margin-block-start:var(--slotted-space-2, .25rem)}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=message]{contain:inline-size;grid-area:message}}@container stat-card (max-width: 219px){@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=body]{grid-template-areas:\"header\" \"figure\" \"trend\" \"message\";grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto auto}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=trend]{align-self:end;margin-block-start:var(--slotted-space-2, .25rem)}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=value]{font-size:var(--_value-size-narrow);line-height:var(--_value-line-narrow)}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope[data-loading] [data-part=value]{min-block-size:calc(var(--_value-size-narrow) * var(--_value-line-narrow))}}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=header]{align-items:baseline;column-gap:var(--slotted-space-3, .375rem);display:flex;flex-wrap:wrap;min-inline-size:0;row-gap:var(--slotted-space-2, .25rem)}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=label]{color:var(--_ink-muted);flex:1 1 0%;font-size:var(--_label-size);font-weight:var(--slotted-font-weight-medium, 500);line-height:var(--_label-line);margin:0;min-inline-size:min(100%,10rem);overflow-wrap:break-word}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=status]{display:inline-flex;flex:none}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=action]{flex:none;font-size:var(--_label-size);line-height:var(--_label-line);margin-inline-start:auto}}@media(pointer:coarse){@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope :is([data-part=action]:is(a,button),[data-part=action]>:is(a,button)){position:relative}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope :is([data-part=action]:is(a,button),[data-part=action]>:is(a,button)):before{content:\"\";inset:min(0px,calc((100% - var(--slotted-target-comfortable, 44px)) / 2));position:absolute}}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=figure]{align-items:baseline;column-gap:var(--slotted-space-3, .375rem);display:flex;flex-wrap:wrap;row-gap:0}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=comparison]{contain:inline-size;flex:1 1 100%}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=value]{align-items:baseline;color:var(--_ink);display:inline-flex;flex-wrap:wrap;gap:.15em;font-size:var(--_value-size);font-variant-numeric:proportional-nums;font-weight:var(--slotted-font-weight-semibold, 600);letter-spacing:var(--slotted-letter-spacing-tighter, -.03em);unicode-bidi:plaintext;line-height:var(--_value-line);margin:0;min-inline-size:0;overflow-wrap:break-word}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=unit]{color:var(--_ink-muted);font-size:var(--_delta-size);font-weight:var(--slotted-font-weight-medium, 500);letter-spacing:0}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=delta]{align-items:center;color:var(--_tone-text);column-gap:var(--slotted-space-1, .125rem);display:inline-flex;font-size:var(--_delta-size);font-variant-numeric:tabular-nums;font-weight:var(--slotted-font-weight-semibold, 600);line-height:1;unicode-bidi:plaintext;white-space:nowrap}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=delta][data-tone=neutral]{--_tone-text: var(--_ink-muted)}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=delta][data-tone=accent]{--_tone-text: var(--slotted-tone-accent-text)}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=delta][data-tone=secondary]{--_tone-text: var(--slotted-tone-secondary-text)}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=delta][data-tone=success]{--_tone-text: var(--slotted-tone-success-text)}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=delta][data-tone=warning]{--_tone-text: var(--slotted-tone-warning-text)}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=delta][data-tone=danger]{--_tone-text: var(--slotted-tone-danger-text)}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=indicator]{--slotted-icon-size: var(--_indicator-size);display:inline-flex;flex:none}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=delta][data-trend=down] [data-part=indicator]>[data-ui=icon]{rotate:x 180deg}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=comparison]{color:var(--_ink-muted);font-size:var(--_prose-size);line-height:var(--_prose-line);margin-block-start:var(--_region-gap);margin:0;min-inline-size:0;overflow-wrap:anywhere}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=period]{color:var(--_ink-muted)}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=trend]{align-self:center;display:flex}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope[data-tone=success] [data-part=trend]{--slotted-sparkline-color: var(--slotted-tone-success-text)}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope[data-tone=danger] [data-part=trend]{--slotted-sparkline-color: var(--slotted-tone-danger-text)}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope[data-tone=warning] [data-part=trend]{--slotted-sparkline-color: var(--slotted-tone-warning-text)}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope[data-tone=accent] [data-part=trend]{--slotted-sparkline-color: var(--slotted-tone-accent-text)}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope[data-tone=secondary] [data-part=trend]{--slotted-sparkline-color: var(--slotted-tone-secondary-text)}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope[data-fill=plain] [data-part=trend]{--slotted-sparkline-ring-color: var(--slotted-surface-raised, Canvas)}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=message]{color:var(--_ink-muted);font-size:var(--_prose-size);line-height:var(--_prose-line);margin:0;min-inline-size:0;overflow-wrap:anywhere}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope[data-status=error] [data-part=message]{color:var(--slotted-tone-danger-text)}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope[data-status=empty] [data-part=value],:scope[data-status=error] [data-part=value]{color:var(--_ink-muted)}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope[data-loading] [data-part=value]{min-block-size:calc(var(--_value-size) * var(--_value-line))}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope[data-loading] [data-part=trend]{--slotted-skeleton-block-size: var( --slotted-sparkline-block-size, var(--slotted-space-9, 2rem) )}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope[data-loading][data-size=sm] [data-part=trend]{--slotted-skeleton-block-size: var( --slotted-sparkline-block-size-sm, var(--slotted-space-7, 1.25rem) )}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope[data-loading][data-size=lg] [data-part=trend]{--slotted-skeleton-block-size: var( --slotted-sparkline-block-size-lg, var(--slotted-space-11, 3rem) )}}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
125
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.7", type: SlStatCard, isStandalone: true, selector: "[slStatCard]", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, fill: { classPropertyName: "fill", publicName: "fill", isSignal: true, isRequired: false, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null }, status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, goodWhen: { classPropertyName: "goodWhen", publicName: "goodWhen", isSignal: true, isRequired: false, transformFunction: null }, delta: { classPropertyName: "delta", publicName: "delta", isSignal: true, isRequired: false, transformFunction: null }, tone: { classPropertyName: "tone", publicName: "tone", isSignal: true, isRequired: false, transformFunction: null }, locale: { classPropertyName: "locale", publicName: "locale", isSignal: true, isRequired: false, transformFunction: null }, formatOptions: { classPropertyName: "formatOptions", publicName: "formatOptions", isSignal: true, isRequired: false, transformFunction: null }, messages: { classPropertyName: "messages", publicName: "messages", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-ui": "stat-card", "data-ui-stat-card": "", "data-part": "root", "data-part-root": "", "role": "group" }, properties: { "attr.aria-labelledby": "labelledBy()", "attr.aria-busy": "loading() ? \"true\" : null", "attr.data-size": "resolvedSize()", "attr.data-fill": "resolvedFill()", "attr.data-layout": "resolvedLayout()", "attr.data-status": "status()", "attr.data-good-when": "resolvedGoodWhen()", "attr.data-tone": "resolvedTone() ?? null", "attr.data-loading": "loading() ? \"\" : null" } }, exportAs: ["slStatCard"], ngImport: i0, template: '<div data-part="body" data-part-body=""><ng-content /></div>', isInline: true, styles: ["@layer slotted.components{[data-ui-stat-card]{--_edge-width: var(--slotted-stat-card-border-width, var(--slotted-border-width-thin, 1px));--_radius: var(--slotted-stat-card-radius, var(--slotted-radius-lg, 8px));--_inset-block: var(--slotted-stat-card-padding-block, var(--slotted-space-6, 1rem));--_inset-inline: var(--slotted-stat-card-padding-inline, var(--slotted-space-6, 1rem));--_region-gap: var(--slotted-stat-card-region-gap, var(--slotted-space-3, .375rem));--_trend-gap: var(--slotted-stat-card-trend-gap, var(--slotted-space-6, 1rem));--_trend-size: var( --slotted-stat-card-trend-inline-size, calc(var(--slotted-space-12, 4rem) * 1.5) );--_surface: var(--slotted-stat-card-background, var(--slotted-surface-raised, Canvas));--_edge: var(--slotted-stat-card-border-color, var(--slotted-border-subtle, ButtonBorder));--_shadow: var(--slotted-stat-card-shadow, none);--_ink: var(--slotted-stat-card-color, var(--slotted-text, CanvasText));--_ink-muted: var(--slotted-stat-card-color-muted, var(--slotted-text-muted, GrayText));--_value-size: var(--slotted-stat-card-value-font-size, var(--slotted-font-size-3xl, 1.5rem));--_value-line: var(--slotted-stat-card-value-line-height, var(--slotted-line-height-3xl, 1.3));--_label-size: var(--slotted-stat-card-label-font-size, var(--slotted-font-size-sm, .8125rem));--_label-line: var(--slotted-stat-card-label-line-height, var(--slotted-line-height-sm, 1.45));--_delta-size: var(--slotted-stat-card-delta-font-size, var(--slotted-font-size-sm, .8125rem));--_prose-size: var(--slotted-stat-card-prose-font-size, var(--slotted-font-size-xs, .75rem));--_prose-line: var(--slotted-stat-card-prose-line-height, var(--slotted-line-height-xs, 1.4));--_indicator-size: var( --slotted-stat-card-indicator-size, var(--slotted-control-icon-size-sm, 14px) );--_value-size-narrow: var(--slotted-font-size-2xl, 1.25rem);--_value-line-narrow: var(--slotted-line-height-2xl, 1.4);--_tone-text: var(--_ink-muted);background-color:var(--_surface);border:none;border-radius:var(--_radius);box-shadow:var(--_shadow);box-sizing:border-box;color:var(--_ink);container-name:stat-card;container-type:inline-size;display:flex;flex-direction:column;font-family:var(--slotted-font-family-sans, ui-sans-serif, system-ui, sans-serif);min-inline-size:var( --slotted-stat-card-min-inline-size, calc(var(--slotted-space-12, 4rem) * 2.5) );padding-block:var(--_inset-block);padding-inline:var(--_inset-inline);position:relative}[data-ui-stat-card]:before{border:var(--_edge-width) solid var(--_edge);border-radius:inherit;content:\"\";inset:0;pointer-events:none;position:absolute}[data-ui-stat-card][data-size=sm]{--_inset-block: var(--slotted-stat-card-padding-block-sm, var(--slotted-space-5, .75rem));--_inset-inline: var(--slotted-stat-card-padding-inline-sm, var(--slotted-space-5, .75rem));--_region-gap: var(--slotted-stat-card-region-gap-sm, var(--slotted-space-2, .25rem));--_trend-gap: var(--slotted-stat-card-trend-gap-sm, var(--slotted-space-5, .75rem));--_trend-size: var(--slotted-stat-card-trend-inline-size-sm, var(--slotted-space-12, 4rem));--_value-size: var( --slotted-stat-card-value-font-size-sm, var(--slotted-font-size-2xl, 1.25rem) );--_value-line: var( --slotted-stat-card-value-line-height-sm, var(--slotted-line-height-2xl, 1.4) );--_label-size: var( --slotted-stat-card-label-font-size-sm, var(--slotted-font-size-xs, .75rem) );--_label-line: var( --slotted-stat-card-label-line-height-sm, var(--slotted-line-height-xs, 1.4) );--_delta-size: var( --slotted-stat-card-delta-font-size-sm, var(--slotted-font-size-xs, .75rem) );--_value-size-narrow: var(--slotted-font-size-xl, 1.125rem);--_value-line-narrow: var(--slotted-line-height-xl, 1.45)}[data-ui-stat-card][data-size=lg]{--_inset-block: var(--slotted-stat-card-padding-block-lg, var(--slotted-space-8, 1.5rem));--_inset-inline: var(--slotted-stat-card-padding-inline-lg, var(--slotted-space-8, 1.5rem));--_region-gap: var(--slotted-stat-card-region-gap-lg, var(--slotted-space-4, .5rem));--_trend-gap: var(--slotted-stat-card-trend-gap-lg, var(--slotted-space-8, 1.5rem));--_trend-size: var( --slotted-stat-card-trend-inline-size-lg, calc(var(--slotted-space-12, 4rem) * 2) );--_value-size: var(--slotted-stat-card-value-font-size-lg, var(--slotted-font-size-4xl, 2rem));--_value-line: var( --slotted-stat-card-value-line-height-lg, var(--slotted-line-height-4xl, 1.2) );--_label-size: var( --slotted-stat-card-label-font-size-lg, var(--slotted-font-size-md, .875rem) );--_label-line: var( --slotted-stat-card-label-line-height-lg, var(--slotted-line-height-md, 1.5) );--_delta-size: var( --slotted-stat-card-delta-font-size-lg, var(--slotted-font-size-md, .875rem) );--_prose-size: var( --slotted-stat-card-prose-font-size-lg, var(--slotted-font-size-sm, .8125rem) );--_prose-line: var( --slotted-stat-card-prose-line-height-lg, var(--slotted-line-height-sm, 1.45) );--_indicator-size: var( --slotted-stat-card-indicator-size-lg, var(--slotted-control-icon-size-md, 16px) );--_value-size-narrow: var(--slotted-font-size-3xl, 1.5rem);--_value-line-narrow: var(--slotted-line-height-3xl, 1.3)}[data-ui-stat-card][data-fill=elevated]{--_shadow: var(--slotted-stat-card-shadow-elevated, var(--slotted-shadow-md))}[data-ui-stat-card][data-fill=subtle]{--_surface: var(--slotted-stat-card-background-subtle, var(--slotted-surface-sunken, Canvas))}[data-ui-stat-card][data-fill=plain]{--_surface: transparent;--_edge: transparent;--_shadow: none;--_inset-block: 0;--_inset-inline: 0;--_radius: var(--slotted-radius-none, 0px)}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-body]{column-gap:var(--_trend-gap);display:grid;flex:1 1 auto;grid-template-areas:\"header header\" \"figure trend\" \"message message\";grid-template-columns:minmax(min-content,1fr) minmax(0,var(--_trend-size));grid-template-rows:auto minmax(0,1fr) auto;min-inline-size:0;row-gap:var(--_region-gap)}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope[data-layout=stacked] [data-part-body]{grid-template-areas:\"header\" \"figure\" \"trend\" \"message\";grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto auto}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-header]{contain:inline-size;grid-area:header}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-figure]{align-self:start;grid-area:figure;min-inline-size:0}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-trend]{--slotted-sparkline-ring-color: var(--_surface);align-self:center;container-name:stat-card-trend;container-type:inline-size;grid-area:trend;inline-size:100%;min-inline-size:0}}@container stat-card-trend (max-width: 39px){@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-trend]>*{visibility:hidden}}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope[data-layout=stacked] [data-part-trend]{align-self:end;margin-block-start:var(--slotted-space-2, .25rem)}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-message]{contain:inline-size;grid-area:message}}@container stat-card (max-width: 219px){@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-body]{grid-template-areas:\"header\" \"figure\" \"trend\" \"message\";grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto auto}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-trend]{align-self:end;margin-block-start:var(--slotted-space-2, .25rem)}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-value]{font-size:var(--_value-size-narrow);line-height:var(--_value-line-narrow)}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope[data-loading] [data-part-value]{min-block-size:calc(var(--_value-size-narrow) * var(--_value-line-narrow))}}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-header]{align-items:baseline;column-gap:var(--slotted-space-3, .375rem);display:flex;flex-wrap:wrap;min-inline-size:0;row-gap:var(--slotted-space-2, .25rem)}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-label]{color:var(--_ink-muted);flex:1 1 0%;font-size:var(--_label-size);font-weight:var(--slotted-font-weight-medium, 500);line-height:var(--_label-line);margin:0;min-inline-size:min(100%,10rem);overflow-wrap:break-word}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-status]{display:inline-flex;flex:none}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-action]{flex:none;font-size:var(--_label-size);line-height:var(--_label-line);margin-inline-start:auto}}@media(pointer:coarse){@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope :is([data-part-action]:is(a,button),[data-part-action]>:is(a,button)){position:relative}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope :is([data-part-action]:is(a,button),[data-part-action]>:is(a,button)):before{content:\"\";inset:min(0px,calc((100% - var(--slotted-target-comfortable, 44px)) / 2));position:absolute}}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-figure]{align-items:baseline;column-gap:var(--slotted-space-3, .375rem);display:flex;flex-wrap:wrap;row-gap:0}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-comparison]{contain:inline-size;flex:1 1 100%}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-value]{align-items:baseline;color:var(--_ink);display:inline-flex;flex-wrap:wrap;gap:.15em;font-size:var(--_value-size);font-variant-numeric:proportional-nums;font-weight:var(--slotted-font-weight-semibold, 600);letter-spacing:var(--slotted-letter-spacing-tighter, -.03em);unicode-bidi:plaintext;line-height:var(--_value-line);margin:0;min-inline-size:0;overflow-wrap:break-word}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-unit]{color:var(--_ink-muted);font-size:var(--_delta-size);font-weight:var(--slotted-font-weight-medium, 500);letter-spacing:0}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-delta]{align-items:center;color:var(--_tone-text);column-gap:var(--slotted-space-1, .125rem);display:inline-flex;font-size:var(--_delta-size);font-variant-numeric:tabular-nums;font-weight:var(--slotted-font-weight-semibold, 600);line-height:1;unicode-bidi:plaintext;white-space:nowrap}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-delta][data-tone=neutral]{--_tone-text: var(--_ink-muted)}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-delta][data-tone=accent]{--_tone-text: var(--slotted-tone-accent-text)}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-delta][data-tone=secondary]{--_tone-text: var(--slotted-tone-secondary-text)}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-delta][data-tone=success]{--_tone-text: var(--slotted-tone-success-text)}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-delta][data-tone=warning]{--_tone-text: var(--slotted-tone-warning-text)}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-delta][data-tone=danger]{--_tone-text: var(--slotted-tone-danger-text)}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-indicator]{--slotted-icon-size: var(--_indicator-size);display:inline-flex;flex:none}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-delta][data-trend=down] [data-part-indicator]>[data-ui-icon]{rotate:x 180deg}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-comparison]{color:var(--_ink-muted);font-size:var(--_prose-size);line-height:var(--_prose-line);margin-block-start:var(--_region-gap);margin:0;min-inline-size:0;overflow-wrap:anywhere}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-period]{color:var(--_ink-muted)}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-trend]{align-self:center;display:flex}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope[data-tone=success] [data-part-trend]{--slotted-sparkline-color: var(--slotted-tone-success-text)}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope[data-tone=danger] [data-part-trend]{--slotted-sparkline-color: var(--slotted-tone-danger-text)}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope[data-tone=warning] [data-part-trend]{--slotted-sparkline-color: var(--slotted-tone-warning-text)}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope[data-tone=accent] [data-part-trend]{--slotted-sparkline-color: var(--slotted-tone-accent-text)}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope[data-tone=secondary] [data-part-trend]{--slotted-sparkline-color: var(--slotted-tone-secondary-text)}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope[data-fill=plain] [data-part-trend]{--slotted-sparkline-ring-color: var(--slotted-surface-raised, Canvas)}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-message]{color:var(--_ink-muted);font-size:var(--_prose-size);line-height:var(--_prose-line);margin:0;min-inline-size:0;overflow-wrap:anywhere}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope[data-status=error] [data-part-message]{color:var(--slotted-tone-danger-text)}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope[data-status=empty] [data-part-value],:scope[data-status=error] [data-part-value]{color:var(--_ink-muted)}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope[data-loading] [data-part-value]{min-block-size:calc(var(--_value-size) * var(--_value-line))}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope[data-loading] [data-part-trend]{--slotted-skeleton-block-size: var( --slotted-sparkline-block-size, var(--slotted-space-9, 2rem) )}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope[data-loading][data-size=sm] [data-part-trend]{--slotted-skeleton-block-size: var( --slotted-sparkline-block-size-sm, var(--slotted-space-7, 1.25rem) )}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope[data-loading][data-size=lg] [data-part-trend]{--slotted-skeleton-block-size: var( --slotted-sparkline-block-size-lg, var(--slotted-space-11, 3rem) )}}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
126
126
  }
127
127
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlStatCard, decorators: [{
128
128
  type: Component,
129
- args: [{ selector: '[slStatCard]', standalone: true, template: '<div data-part="body"><ng-content /></div>', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, exportAs: 'slStatCard', host: {
129
+ args: [{ selector: '[slStatCard]', standalone: true, template: '<div data-part="body" data-part-body=""><ng-content /></div>', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, exportAs: 'slStatCard', host: {
130
130
  'data-ui': 'stat-card',
131
+ 'data-ui-stat-card': '',
131
132
  'data-part': 'root',
133
+ 'data-part-root': '',
132
134
  role: 'group',
133
135
  '[attr.aria-labelledby]': 'labelledBy()',
134
136
  '[attr.aria-busy]': 'loading() ? "true" : null',
@@ -139,7 +141,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
139
141
  '[attr.data-good-when]': 'resolvedGoodWhen()',
140
142
  '[attr.data-tone]': 'resolvedTone() ?? null',
141
143
  '[attr.data-loading]': 'loading() ? "" : null',
142
- }, styles: ["@layer slotted.components{[data-ui=stat-card]{--_edge-width: var(--slotted-stat-card-border-width, var(--slotted-border-width-thin, 1px));--_radius: var(--slotted-stat-card-radius, var(--slotted-radius-lg, 8px));--_inset-block: var(--slotted-stat-card-padding-block, var(--slotted-space-6, 1rem));--_inset-inline: var(--slotted-stat-card-padding-inline, var(--slotted-space-6, 1rem));--_region-gap: var(--slotted-stat-card-region-gap, var(--slotted-space-3, .375rem));--_trend-gap: var(--slotted-stat-card-trend-gap, var(--slotted-space-6, 1rem));--_trend-size: var( --slotted-stat-card-trend-inline-size, calc(var(--slotted-space-12, 4rem) * 1.5) );--_surface: var(--slotted-stat-card-background, var(--slotted-surface-raised, Canvas));--_edge: var(--slotted-stat-card-border-color, var(--slotted-border-subtle, ButtonBorder));--_shadow: var(--slotted-stat-card-shadow, none);--_ink: var(--slotted-stat-card-color, var(--slotted-text, CanvasText));--_ink-muted: var(--slotted-stat-card-color-muted, var(--slotted-text-muted, GrayText));--_value-size: var(--slotted-stat-card-value-font-size, var(--slotted-font-size-3xl, 1.5rem));--_value-line: var(--slotted-stat-card-value-line-height, var(--slotted-line-height-3xl, 1.3));--_label-size: var(--slotted-stat-card-label-font-size, var(--slotted-font-size-sm, .8125rem));--_label-line: var(--slotted-stat-card-label-line-height, var(--slotted-line-height-sm, 1.45));--_delta-size: var(--slotted-stat-card-delta-font-size, var(--slotted-font-size-sm, .8125rem));--_prose-size: var(--slotted-stat-card-prose-font-size, var(--slotted-font-size-xs, .75rem));--_prose-line: var(--slotted-stat-card-prose-line-height, var(--slotted-line-height-xs, 1.4));--_indicator-size: var( --slotted-stat-card-indicator-size, var(--slotted-control-icon-size-sm, 14px) );--_value-size-narrow: var(--slotted-font-size-2xl, 1.25rem);--_value-line-narrow: var(--slotted-line-height-2xl, 1.4);--_tone-text: var(--_ink-muted);background-color:var(--_surface);border:none;border-radius:var(--_radius);box-shadow:var(--_shadow);box-sizing:border-box;color:var(--_ink);container-name:stat-card;container-type:inline-size;display:flex;flex-direction:column;font-family:var(--slotted-font-family-sans, ui-sans-serif, system-ui, sans-serif);min-inline-size:var( --slotted-stat-card-min-inline-size, calc(var(--slotted-space-12, 4rem) * 2.5) );padding-block:var(--_inset-block);padding-inline:var(--_inset-inline);position:relative}[data-ui=stat-card]:before{border:var(--_edge-width) solid var(--_edge);border-radius:inherit;content:\"\";inset:0;pointer-events:none;position:absolute}[data-ui=stat-card][data-size=sm]{--_inset-block: var(--slotted-stat-card-padding-block-sm, var(--slotted-space-5, .75rem));--_inset-inline: var(--slotted-stat-card-padding-inline-sm, var(--slotted-space-5, .75rem));--_region-gap: var(--slotted-stat-card-region-gap-sm, var(--slotted-space-2, .25rem));--_trend-gap: var(--slotted-stat-card-trend-gap-sm, var(--slotted-space-5, .75rem));--_trend-size: var(--slotted-stat-card-trend-inline-size-sm, var(--slotted-space-12, 4rem));--_value-size: var( --slotted-stat-card-value-font-size-sm, var(--slotted-font-size-2xl, 1.25rem) );--_value-line: var( --slotted-stat-card-value-line-height-sm, var(--slotted-line-height-2xl, 1.4) );--_label-size: var( --slotted-stat-card-label-font-size-sm, var(--slotted-font-size-xs, .75rem) );--_label-line: var( --slotted-stat-card-label-line-height-sm, var(--slotted-line-height-xs, 1.4) );--_delta-size: var( --slotted-stat-card-delta-font-size-sm, var(--slotted-font-size-xs, .75rem) );--_value-size-narrow: var(--slotted-font-size-xl, 1.125rem);--_value-line-narrow: var(--slotted-line-height-xl, 1.45)}[data-ui=stat-card][data-size=lg]{--_inset-block: var(--slotted-stat-card-padding-block-lg, var(--slotted-space-8, 1.5rem));--_inset-inline: var(--slotted-stat-card-padding-inline-lg, var(--slotted-space-8, 1.5rem));--_region-gap: var(--slotted-stat-card-region-gap-lg, var(--slotted-space-4, .5rem));--_trend-gap: var(--slotted-stat-card-trend-gap-lg, var(--slotted-space-8, 1.5rem));--_trend-size: var( --slotted-stat-card-trend-inline-size-lg, calc(var(--slotted-space-12, 4rem) * 2) );--_value-size: var(--slotted-stat-card-value-font-size-lg, var(--slotted-font-size-4xl, 2rem));--_value-line: var( --slotted-stat-card-value-line-height-lg, var(--slotted-line-height-4xl, 1.2) );--_label-size: var( --slotted-stat-card-label-font-size-lg, var(--slotted-font-size-md, .875rem) );--_label-line: var( --slotted-stat-card-label-line-height-lg, var(--slotted-line-height-md, 1.5) );--_delta-size: var( --slotted-stat-card-delta-font-size-lg, var(--slotted-font-size-md, .875rem) );--_prose-size: var( --slotted-stat-card-prose-font-size-lg, var(--slotted-font-size-sm, .8125rem) );--_prose-line: var( --slotted-stat-card-prose-line-height-lg, var(--slotted-line-height-sm, 1.45) );--_indicator-size: var( --slotted-stat-card-indicator-size-lg, var(--slotted-control-icon-size-md, 16px) );--_value-size-narrow: var(--slotted-font-size-3xl, 1.5rem);--_value-line-narrow: var(--slotted-line-height-3xl, 1.3)}[data-ui=stat-card][data-fill=elevated]{--_shadow: var(--slotted-stat-card-shadow-elevated, var(--slotted-shadow-md))}[data-ui=stat-card][data-fill=subtle]{--_surface: var(--slotted-stat-card-background-subtle, var(--slotted-surface-sunken, Canvas))}[data-ui=stat-card][data-fill=plain]{--_surface: transparent;--_edge: transparent;--_shadow: none;--_inset-block: 0;--_inset-inline: 0;--_radius: var(--slotted-radius-none, 0px)}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=body]{column-gap:var(--_trend-gap);display:grid;flex:1 1 auto;grid-template-areas:\"header header\" \"figure trend\" \"message message\";grid-template-columns:minmax(min-content,1fr) minmax(0,var(--_trend-size));grid-template-rows:auto minmax(0,1fr) auto;min-inline-size:0;row-gap:var(--_region-gap)}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope[data-layout=stacked] [data-part=body]{grid-template-areas:\"header\" \"figure\" \"trend\" \"message\";grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto auto}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=header]{contain:inline-size;grid-area:header}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=figure]{align-self:start;grid-area:figure;min-inline-size:0}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=trend]{--slotted-sparkline-ring-color: var(--_surface);align-self:center;container-name:stat-card-trend;container-type:inline-size;grid-area:trend;inline-size:100%;min-inline-size:0}}@container stat-card-trend (max-width: 39px){@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=trend]>*{visibility:hidden}}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope[data-layout=stacked] [data-part=trend]{align-self:end;margin-block-start:var(--slotted-space-2, .25rem)}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=message]{contain:inline-size;grid-area:message}}@container stat-card (max-width: 219px){@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=body]{grid-template-areas:\"header\" \"figure\" \"trend\" \"message\";grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto auto}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=trend]{align-self:end;margin-block-start:var(--slotted-space-2, .25rem)}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=value]{font-size:var(--_value-size-narrow);line-height:var(--_value-line-narrow)}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope[data-loading] [data-part=value]{min-block-size:calc(var(--_value-size-narrow) * var(--_value-line-narrow))}}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=header]{align-items:baseline;column-gap:var(--slotted-space-3, .375rem);display:flex;flex-wrap:wrap;min-inline-size:0;row-gap:var(--slotted-space-2, .25rem)}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=label]{color:var(--_ink-muted);flex:1 1 0%;font-size:var(--_label-size);font-weight:var(--slotted-font-weight-medium, 500);line-height:var(--_label-line);margin:0;min-inline-size:min(100%,10rem);overflow-wrap:break-word}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=status]{display:inline-flex;flex:none}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=action]{flex:none;font-size:var(--_label-size);line-height:var(--_label-line);margin-inline-start:auto}}@media(pointer:coarse){@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope :is([data-part=action]:is(a,button),[data-part=action]>:is(a,button)){position:relative}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope :is([data-part=action]:is(a,button),[data-part=action]>:is(a,button)):before{content:\"\";inset:min(0px,calc((100% - var(--slotted-target-comfortable, 44px)) / 2));position:absolute}}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=figure]{align-items:baseline;column-gap:var(--slotted-space-3, .375rem);display:flex;flex-wrap:wrap;row-gap:0}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=comparison]{contain:inline-size;flex:1 1 100%}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=value]{align-items:baseline;color:var(--_ink);display:inline-flex;flex-wrap:wrap;gap:.15em;font-size:var(--_value-size);font-variant-numeric:proportional-nums;font-weight:var(--slotted-font-weight-semibold, 600);letter-spacing:var(--slotted-letter-spacing-tighter, -.03em);unicode-bidi:plaintext;line-height:var(--_value-line);margin:0;min-inline-size:0;overflow-wrap:break-word}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=unit]{color:var(--_ink-muted);font-size:var(--_delta-size);font-weight:var(--slotted-font-weight-medium, 500);letter-spacing:0}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=delta]{align-items:center;color:var(--_tone-text);column-gap:var(--slotted-space-1, .125rem);display:inline-flex;font-size:var(--_delta-size);font-variant-numeric:tabular-nums;font-weight:var(--slotted-font-weight-semibold, 600);line-height:1;unicode-bidi:plaintext;white-space:nowrap}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=delta][data-tone=neutral]{--_tone-text: var(--_ink-muted)}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=delta][data-tone=accent]{--_tone-text: var(--slotted-tone-accent-text)}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=delta][data-tone=secondary]{--_tone-text: var(--slotted-tone-secondary-text)}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=delta][data-tone=success]{--_tone-text: var(--slotted-tone-success-text)}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=delta][data-tone=warning]{--_tone-text: var(--slotted-tone-warning-text)}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=delta][data-tone=danger]{--_tone-text: var(--slotted-tone-danger-text)}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=indicator]{--slotted-icon-size: var(--_indicator-size);display:inline-flex;flex:none}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=delta][data-trend=down] [data-part=indicator]>[data-ui=icon]{rotate:x 180deg}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=comparison]{color:var(--_ink-muted);font-size:var(--_prose-size);line-height:var(--_prose-line);margin-block-start:var(--_region-gap);margin:0;min-inline-size:0;overflow-wrap:anywhere}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=period]{color:var(--_ink-muted)}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=trend]{align-self:center;display:flex}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope[data-tone=success] [data-part=trend]{--slotted-sparkline-color: var(--slotted-tone-success-text)}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope[data-tone=danger] [data-part=trend]{--slotted-sparkline-color: var(--slotted-tone-danger-text)}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope[data-tone=warning] [data-part=trend]{--slotted-sparkline-color: var(--slotted-tone-warning-text)}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope[data-tone=accent] [data-part=trend]{--slotted-sparkline-color: var(--slotted-tone-accent-text)}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope[data-tone=secondary] [data-part=trend]{--slotted-sparkline-color: var(--slotted-tone-secondary-text)}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope[data-fill=plain] [data-part=trend]{--slotted-sparkline-ring-color: var(--slotted-surface-raised, Canvas)}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope [data-part=message]{color:var(--_ink-muted);font-size:var(--_prose-size);line-height:var(--_prose-line);margin:0;min-inline-size:0;overflow-wrap:anywhere}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope[data-status=error] [data-part=message]{color:var(--slotted-tone-danger-text)}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope[data-status=empty] [data-part=value],:scope[data-status=error] [data-part=value]{color:var(--_ink-muted)}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope[data-loading] [data-part=value]{min-block-size:calc(var(--_value-size) * var(--_value-line))}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope[data-loading] [data-part=trend]{--slotted-skeleton-block-size: var( --slotted-sparkline-block-size, var(--slotted-space-9, 2rem) )}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope[data-loading][data-size=sm] [data-part=trend]{--slotted-skeleton-block-size: var( --slotted-sparkline-block-size-sm, var(--slotted-space-7, 1.25rem) )}}@scope([data-ui=stat-card])to (:scope [data-ui]>*){:scope[data-loading][data-size=lg] [data-part=trend]{--slotted-skeleton-block-size: var( --slotted-sparkline-block-size-lg, var(--slotted-space-11, 3rem) )}}}\n"] }]
144
+ }, styles: ["@layer slotted.components{[data-ui-stat-card]{--_edge-width: var(--slotted-stat-card-border-width, var(--slotted-border-width-thin, 1px));--_radius: var(--slotted-stat-card-radius, var(--slotted-radius-lg, 8px));--_inset-block: var(--slotted-stat-card-padding-block, var(--slotted-space-6, 1rem));--_inset-inline: var(--slotted-stat-card-padding-inline, var(--slotted-space-6, 1rem));--_region-gap: var(--slotted-stat-card-region-gap, var(--slotted-space-3, .375rem));--_trend-gap: var(--slotted-stat-card-trend-gap, var(--slotted-space-6, 1rem));--_trend-size: var( --slotted-stat-card-trend-inline-size, calc(var(--slotted-space-12, 4rem) * 1.5) );--_surface: var(--slotted-stat-card-background, var(--slotted-surface-raised, Canvas));--_edge: var(--slotted-stat-card-border-color, var(--slotted-border-subtle, ButtonBorder));--_shadow: var(--slotted-stat-card-shadow, none);--_ink: var(--slotted-stat-card-color, var(--slotted-text, CanvasText));--_ink-muted: var(--slotted-stat-card-color-muted, var(--slotted-text-muted, GrayText));--_value-size: var(--slotted-stat-card-value-font-size, var(--slotted-font-size-3xl, 1.5rem));--_value-line: var(--slotted-stat-card-value-line-height, var(--slotted-line-height-3xl, 1.3));--_label-size: var(--slotted-stat-card-label-font-size, var(--slotted-font-size-sm, .8125rem));--_label-line: var(--slotted-stat-card-label-line-height, var(--slotted-line-height-sm, 1.45));--_delta-size: var(--slotted-stat-card-delta-font-size, var(--slotted-font-size-sm, .8125rem));--_prose-size: var(--slotted-stat-card-prose-font-size, var(--slotted-font-size-xs, .75rem));--_prose-line: var(--slotted-stat-card-prose-line-height, var(--slotted-line-height-xs, 1.4));--_indicator-size: var( --slotted-stat-card-indicator-size, var(--slotted-control-icon-size-sm, 14px) );--_value-size-narrow: var(--slotted-font-size-2xl, 1.25rem);--_value-line-narrow: var(--slotted-line-height-2xl, 1.4);--_tone-text: var(--_ink-muted);background-color:var(--_surface);border:none;border-radius:var(--_radius);box-shadow:var(--_shadow);box-sizing:border-box;color:var(--_ink);container-name:stat-card;container-type:inline-size;display:flex;flex-direction:column;font-family:var(--slotted-font-family-sans, ui-sans-serif, system-ui, sans-serif);min-inline-size:var( --slotted-stat-card-min-inline-size, calc(var(--slotted-space-12, 4rem) * 2.5) );padding-block:var(--_inset-block);padding-inline:var(--_inset-inline);position:relative}[data-ui-stat-card]:before{border:var(--_edge-width) solid var(--_edge);border-radius:inherit;content:\"\";inset:0;pointer-events:none;position:absolute}[data-ui-stat-card][data-size=sm]{--_inset-block: var(--slotted-stat-card-padding-block-sm, var(--slotted-space-5, .75rem));--_inset-inline: var(--slotted-stat-card-padding-inline-sm, var(--slotted-space-5, .75rem));--_region-gap: var(--slotted-stat-card-region-gap-sm, var(--slotted-space-2, .25rem));--_trend-gap: var(--slotted-stat-card-trend-gap-sm, var(--slotted-space-5, .75rem));--_trend-size: var(--slotted-stat-card-trend-inline-size-sm, var(--slotted-space-12, 4rem));--_value-size: var( --slotted-stat-card-value-font-size-sm, var(--slotted-font-size-2xl, 1.25rem) );--_value-line: var( --slotted-stat-card-value-line-height-sm, var(--slotted-line-height-2xl, 1.4) );--_label-size: var( --slotted-stat-card-label-font-size-sm, var(--slotted-font-size-xs, .75rem) );--_label-line: var( --slotted-stat-card-label-line-height-sm, var(--slotted-line-height-xs, 1.4) );--_delta-size: var( --slotted-stat-card-delta-font-size-sm, var(--slotted-font-size-xs, .75rem) );--_value-size-narrow: var(--slotted-font-size-xl, 1.125rem);--_value-line-narrow: var(--slotted-line-height-xl, 1.45)}[data-ui-stat-card][data-size=lg]{--_inset-block: var(--slotted-stat-card-padding-block-lg, var(--slotted-space-8, 1.5rem));--_inset-inline: var(--slotted-stat-card-padding-inline-lg, var(--slotted-space-8, 1.5rem));--_region-gap: var(--slotted-stat-card-region-gap-lg, var(--slotted-space-4, .5rem));--_trend-gap: var(--slotted-stat-card-trend-gap-lg, var(--slotted-space-8, 1.5rem));--_trend-size: var( --slotted-stat-card-trend-inline-size-lg, calc(var(--slotted-space-12, 4rem) * 2) );--_value-size: var(--slotted-stat-card-value-font-size-lg, var(--slotted-font-size-4xl, 2rem));--_value-line: var( --slotted-stat-card-value-line-height-lg, var(--slotted-line-height-4xl, 1.2) );--_label-size: var( --slotted-stat-card-label-font-size-lg, var(--slotted-font-size-md, .875rem) );--_label-line: var( --slotted-stat-card-label-line-height-lg, var(--slotted-line-height-md, 1.5) );--_delta-size: var( --slotted-stat-card-delta-font-size-lg, var(--slotted-font-size-md, .875rem) );--_prose-size: var( --slotted-stat-card-prose-font-size-lg, var(--slotted-font-size-sm, .8125rem) );--_prose-line: var( --slotted-stat-card-prose-line-height-lg, var(--slotted-line-height-sm, 1.45) );--_indicator-size: var( --slotted-stat-card-indicator-size-lg, var(--slotted-control-icon-size-md, 16px) );--_value-size-narrow: var(--slotted-font-size-3xl, 1.5rem);--_value-line-narrow: var(--slotted-line-height-3xl, 1.3)}[data-ui-stat-card][data-fill=elevated]{--_shadow: var(--slotted-stat-card-shadow-elevated, var(--slotted-shadow-md))}[data-ui-stat-card][data-fill=subtle]{--_surface: var(--slotted-stat-card-background-subtle, var(--slotted-surface-sunken, Canvas))}[data-ui-stat-card][data-fill=plain]{--_surface: transparent;--_edge: transparent;--_shadow: none;--_inset-block: 0;--_inset-inline: 0;--_radius: var(--slotted-radius-none, 0px)}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-body]{column-gap:var(--_trend-gap);display:grid;flex:1 1 auto;grid-template-areas:\"header header\" \"figure trend\" \"message message\";grid-template-columns:minmax(min-content,1fr) minmax(0,var(--_trend-size));grid-template-rows:auto minmax(0,1fr) auto;min-inline-size:0;row-gap:var(--_region-gap)}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope[data-layout=stacked] [data-part-body]{grid-template-areas:\"header\" \"figure\" \"trend\" \"message\";grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto auto}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-header]{contain:inline-size;grid-area:header}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-figure]{align-self:start;grid-area:figure;min-inline-size:0}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-trend]{--slotted-sparkline-ring-color: var(--_surface);align-self:center;container-name:stat-card-trend;container-type:inline-size;grid-area:trend;inline-size:100%;min-inline-size:0}}@container stat-card-trend (max-width: 39px){@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-trend]>*{visibility:hidden}}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope[data-layout=stacked] [data-part-trend]{align-self:end;margin-block-start:var(--slotted-space-2, .25rem)}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-message]{contain:inline-size;grid-area:message}}@container stat-card (max-width: 219px){@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-body]{grid-template-areas:\"header\" \"figure\" \"trend\" \"message\";grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto auto}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-trend]{align-self:end;margin-block-start:var(--slotted-space-2, .25rem)}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-value]{font-size:var(--_value-size-narrow);line-height:var(--_value-line-narrow)}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope[data-loading] [data-part-value]{min-block-size:calc(var(--_value-size-narrow) * var(--_value-line-narrow))}}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-header]{align-items:baseline;column-gap:var(--slotted-space-3, .375rem);display:flex;flex-wrap:wrap;min-inline-size:0;row-gap:var(--slotted-space-2, .25rem)}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-label]{color:var(--_ink-muted);flex:1 1 0%;font-size:var(--_label-size);font-weight:var(--slotted-font-weight-medium, 500);line-height:var(--_label-line);margin:0;min-inline-size:min(100%,10rem);overflow-wrap:break-word}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-status]{display:inline-flex;flex:none}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-action]{flex:none;font-size:var(--_label-size);line-height:var(--_label-line);margin-inline-start:auto}}@media(pointer:coarse){@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope :is([data-part-action]:is(a,button),[data-part-action]>:is(a,button)){position:relative}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope :is([data-part-action]:is(a,button),[data-part-action]>:is(a,button)):before{content:\"\";inset:min(0px,calc((100% - var(--slotted-target-comfortable, 44px)) / 2));position:absolute}}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-figure]{align-items:baseline;column-gap:var(--slotted-space-3, .375rem);display:flex;flex-wrap:wrap;row-gap:0}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-comparison]{contain:inline-size;flex:1 1 100%}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-value]{align-items:baseline;color:var(--_ink);display:inline-flex;flex-wrap:wrap;gap:.15em;font-size:var(--_value-size);font-variant-numeric:proportional-nums;font-weight:var(--slotted-font-weight-semibold, 600);letter-spacing:var(--slotted-letter-spacing-tighter, -.03em);unicode-bidi:plaintext;line-height:var(--_value-line);margin:0;min-inline-size:0;overflow-wrap:break-word}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-unit]{color:var(--_ink-muted);font-size:var(--_delta-size);font-weight:var(--slotted-font-weight-medium, 500);letter-spacing:0}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-delta]{align-items:center;color:var(--_tone-text);column-gap:var(--slotted-space-1, .125rem);display:inline-flex;font-size:var(--_delta-size);font-variant-numeric:tabular-nums;font-weight:var(--slotted-font-weight-semibold, 600);line-height:1;unicode-bidi:plaintext;white-space:nowrap}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-delta][data-tone=neutral]{--_tone-text: var(--_ink-muted)}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-delta][data-tone=accent]{--_tone-text: var(--slotted-tone-accent-text)}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-delta][data-tone=secondary]{--_tone-text: var(--slotted-tone-secondary-text)}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-delta][data-tone=success]{--_tone-text: var(--slotted-tone-success-text)}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-delta][data-tone=warning]{--_tone-text: var(--slotted-tone-warning-text)}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-delta][data-tone=danger]{--_tone-text: var(--slotted-tone-danger-text)}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-indicator]{--slotted-icon-size: var(--_indicator-size);display:inline-flex;flex:none}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-delta][data-trend=down] [data-part-indicator]>[data-ui-icon]{rotate:x 180deg}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-comparison]{color:var(--_ink-muted);font-size:var(--_prose-size);line-height:var(--_prose-line);margin-block-start:var(--_region-gap);margin:0;min-inline-size:0;overflow-wrap:anywhere}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-period]{color:var(--_ink-muted)}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-trend]{align-self:center;display:flex}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope[data-tone=success] [data-part-trend]{--slotted-sparkline-color: var(--slotted-tone-success-text)}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope[data-tone=danger] [data-part-trend]{--slotted-sparkline-color: var(--slotted-tone-danger-text)}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope[data-tone=warning] [data-part-trend]{--slotted-sparkline-color: var(--slotted-tone-warning-text)}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope[data-tone=accent] [data-part-trend]{--slotted-sparkline-color: var(--slotted-tone-accent-text)}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope[data-tone=secondary] [data-part-trend]{--slotted-sparkline-color: var(--slotted-tone-secondary-text)}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope[data-fill=plain] [data-part-trend]{--slotted-sparkline-ring-color: var(--slotted-surface-raised, Canvas)}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope [data-part-message]{color:var(--_ink-muted);font-size:var(--_prose-size);line-height:var(--_prose-line);margin:0;min-inline-size:0;overflow-wrap:anywhere}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope[data-status=error] [data-part-message]{color:var(--slotted-tone-danger-text)}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope[data-status=empty] [data-part-value],:scope[data-status=error] [data-part-value]{color:var(--_ink-muted)}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope[data-loading] [data-part-value]{min-block-size:calc(var(--_value-size) * var(--_value-line))}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope[data-loading] [data-part-trend]{--slotted-skeleton-block-size: var( --slotted-sparkline-block-size, var(--slotted-space-9, 2rem) )}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope[data-loading][data-size=sm] [data-part-trend]{--slotted-skeleton-block-size: var( --slotted-sparkline-block-size-sm, var(--slotted-space-7, 1.25rem) )}}@scope([data-ui-stat-card])to (:scope [data-ui]>*){:scope[data-loading][data-size=lg] [data-part-trend]{--slotted-skeleton-block-size: var( --slotted-sparkline-block-size-lg, var(--slotted-space-11, 3rem) )}}}\n"] }]
143
145
  }], propDecorators: { size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], fill: [{ type: i0.Input, args: [{ isSignal: true, alias: "fill", required: false }] }], layout: [{ type: i0.Input, args: [{ isSignal: true, alias: "layout", required: false }] }], status: [{ type: i0.Input, args: [{ isSignal: true, alias: "status", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], goodWhen: [{ type: i0.Input, args: [{ isSignal: true, alias: "goodWhen", required: false }] }], delta: [{ type: i0.Input, args: [{ isSignal: true, alias: "delta", required: false }] }], tone: [{ type: i0.Input, args: [{ isSignal: true, alias: "tone", required: false }] }], locale: [{ type: i0.Input, args: [{ isSignal: true, alias: "locale", required: false }] }], formatOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "formatOptions", required: false }] }], messages: [{ type: i0.Input, args: [{ isSignal: true, alias: "messages", required: false }] }] } });
144
146
  function optionalNumber(value) {
145
147
  if (value === undefined || value === null || value === '')
@@ -197,10 +199,10 @@ class SlStatCardDelta {
197
199
  }, /* @ts-ignore */
198
200
  ...(ngDevMode ? [{ debugName: "formatted" }] : /* istanbul ignore next */ []));
199
201
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlStatCardDelta, deps: [], target: i0.ɵɵFactoryTarget.Component });
200
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.7", type: SlStatCardDelta, isStandalone: true, selector: "[slStatCardDelta]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, format: { classPropertyName: "format", publicName: "format", isSignal: true, isRequired: false, transformFunction: null }, formatOptions: { classPropertyName: "formatOptions", publicName: "formatOptions", isSignal: true, isRequired: false, transformFunction: null }, goodWhen: { classPropertyName: "goodWhen", publicName: "goodWhen", isSignal: true, isRequired: false, transformFunction: null }, tone: { classPropertyName: "tone", publicName: "tone", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-part": "delta" }, properties: { "attr.data-trend": "card.loading() ? \"flat\" : trend()", "attr.data-tone": "card.loading() ? \"neutral\" : resolvedTone()", "attr.hidden": "shown() ? null : \"\"" } }, exportAs: ["slStatCardDelta"], ngImport: i0, template: `@if (card.loading()) {
202
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.7", type: SlStatCardDelta, isStandalone: true, selector: "[slStatCardDelta]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, format: { classPropertyName: "format", publicName: "format", isSignal: true, isRequired: false, transformFunction: null }, formatOptions: { classPropertyName: "formatOptions", publicName: "formatOptions", isSignal: true, isRequired: false, transformFunction: null }, goodWhen: { classPropertyName: "goodWhen", publicName: "goodWhen", isSignal: true, isRequired: false, transformFunction: null }, tone: { classPropertyName: "tone", publicName: "tone", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-part": "delta", "data-part-delta": "" }, properties: { "attr.data-trend": "card.loading() ? \"flat\" : trend()", "attr.data-tone": "card.loading() ? \"neutral\" : resolvedTone()", "attr.hidden": "shown() ? null : \"\"" } }, exportAs: ["slStatCardDelta"], ngImport: i0, template: `@if (card.loading()) {
201
203
  <span slSkeleton inlineSize="3.5em"></span>
202
204
  } @else {
203
- <span data-part="indicator" aria-hidden="true"
205
+ <span data-part="indicator" data-part-indicator="" aria-hidden="true"
204
206
  ><span slIcon [directional]="trend() !== 'flat'"
205
207
  ><svg slGlyph [name]="trend() === 'flat' ? 'minus' : 'trending-up'"></svg></span></span
206
208
  ><span slVisuallyHidden>{{ card.t(trend()) }} </span>{{ formatted() }}<ng-content />
@@ -216,7 +218,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
216
218
  template: `@if (card.loading()) {
217
219
  <span slSkeleton inlineSize="3.5em"></span>
218
220
  } @else {
219
- <span data-part="indicator" aria-hidden="true"
221
+ <span data-part="indicator" data-part-indicator="" aria-hidden="true"
220
222
  ><span slIcon [directional]="trend() !== 'flat'"
221
223
  ><svg slGlyph [name]="trend() === 'flat' ? 'minus' : 'trending-up'"></svg></span></span
222
224
  ><span slVisuallyHidden>{{ card.t(trend()) }} </span>{{ formatted() }}<ng-content />
@@ -226,6 +228,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
226
228
  exportAs: 'slStatCardDelta',
227
229
  host: {
228
230
  'data-part': 'delta',
231
+ 'data-part-delta': '',
229
232
  '[attr.data-trend]': 'card.loading() ? "flat" : trend()',
230
233
  '[attr.data-tone]': 'card.loading() ? "neutral" : resolvedTone()',
231
234
  '[attr.hidden]': 'shown() ? null : ""',
@@ -236,7 +239,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
236
239
  /** The row with the name, a status beside it and an action at the end. */
237
240
  class SlStatCardHeader {
238
241
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlStatCardHeader, deps: [], target: i0.ɵɵFactoryTarget.Directive });
239
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlStatCardHeader, isStandalone: true, selector: "[slStatCardHeader]", host: { attributes: { "data-part": "header" } }, exportAs: ["slStatCardHeader"], ngImport: i0 });
242
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlStatCardHeader, isStandalone: true, selector: "[slStatCardHeader]", host: { attributes: { "data-part": "header", "data-part-header": "" } }, exportAs: ["slStatCardHeader"], ngImport: i0 });
240
243
  }
241
244
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlStatCardHeader, decorators: [{
242
245
  type: Directive,
@@ -244,7 +247,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
244
247
  selector: '[slStatCardHeader]',
245
248
  standalone: true,
246
249
  exportAs: 'slStatCardHeader',
247
- host: { 'data-part': 'header' },
250
+ host: { 'data-part': 'header', 'data-part-header': '' },
248
251
  }]
249
252
  }] });
250
253
  /**
@@ -257,7 +260,7 @@ class SlStatCardLabel {
257
260
  ownId = inject(new HostAttributeToken('id'), { optional: true });
258
261
  id = this.ownId ?? this.card.labelId;
259
262
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlStatCardLabel, deps: [], target: i0.ɵɵFactoryTarget.Directive });
260
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlStatCardLabel, isStandalone: true, selector: "[slStatCardLabel]", host: { attributes: { "data-part": "label" }, properties: { "attr.id": "id" } }, exportAs: ["slStatCardLabel"], ngImport: i0 });
263
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlStatCardLabel, isStandalone: true, selector: "[slStatCardLabel]", host: { attributes: { "data-part": "label", "data-part-label": "" }, properties: { "attr.id": "id" } }, exportAs: ["slStatCardLabel"], ngImport: i0 });
261
264
  }
262
265
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlStatCardLabel, decorators: [{
263
266
  type: Directive,
@@ -265,13 +268,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
265
268
  selector: '[slStatCardLabel]',
266
269
  standalone: true,
267
270
  exportAs: 'slStatCardLabel',
268
- host: { 'data-part': 'label', '[attr.id]': 'id' },
271
+ host: { 'data-part': 'label', 'data-part-label': '', '[attr.id]': 'id' },
269
272
  }]
270
273
  }] });
271
274
  /** A slot beside the name for a badge or a status indicator. */
272
275
  class SlStatCardStatus {
273
276
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlStatCardStatus, deps: [], target: i0.ɵɵFactoryTarget.Directive });
274
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlStatCardStatus, isStandalone: true, selector: "[slStatCardStatus]", host: { attributes: { "data-part": "status" } }, exportAs: ["slStatCardStatus"], ngImport: i0 });
277
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlStatCardStatus, isStandalone: true, selector: "[slStatCardStatus]", host: { attributes: { "data-part": "status", "data-part-status": "" } }, exportAs: ["slStatCardStatus"], ngImport: i0 });
275
278
  }
276
279
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlStatCardStatus, decorators: [{
277
280
  type: Directive,
@@ -279,13 +282,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
279
282
  selector: '[slStatCardStatus]',
280
283
  standalone: true,
281
284
  exportAs: 'slStatCardStatus',
282
- host: { 'data-part': 'status' },
285
+ host: { 'data-part': 'status', 'data-part-status': '' },
283
286
  }]
284
287
  }] });
285
288
  /** The place at the end of the header for the consumer's link or button. */
286
289
  class SlStatCardAction {
287
290
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlStatCardAction, deps: [], target: i0.ɵɵFactoryTarget.Directive });
288
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlStatCardAction, isStandalone: true, selector: "[slStatCardAction]", host: { attributes: { "data-part": "action" } }, exportAs: ["slStatCardAction"], ngImport: i0 });
291
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlStatCardAction, isStandalone: true, selector: "[slStatCardAction]", host: { attributes: { "data-part": "action", "data-part-action": "" } }, exportAs: ["slStatCardAction"], ngImport: i0 });
289
292
  }
290
293
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlStatCardAction, decorators: [{
291
294
  type: Directive,
@@ -293,13 +296,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
293
296
  selector: '[slStatCardAction]',
294
297
  standalone: true,
295
298
  exportAs: 'slStatCardAction',
296
- host: { 'data-part': 'action' },
299
+ host: { 'data-part': 'action', 'data-part-action': '' },
297
300
  }]
298
301
  }] });
299
302
  /** The value with its unit and its delta on one line, and the comparison under them. */
300
303
  class SlStatCardFigure {
301
304
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlStatCardFigure, deps: [], target: i0.ɵɵFactoryTarget.Directive });
302
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlStatCardFigure, isStandalone: true, selector: "[slStatCardFigure]", host: { attributes: { "data-part": "figure" } }, exportAs: ["slStatCardFigure"], ngImport: i0 });
305
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlStatCardFigure, isStandalone: true, selector: "[slStatCardFigure]", host: { attributes: { "data-part": "figure", "data-part-figure": "" } }, exportAs: ["slStatCardFigure"], ngImport: i0 });
303
306
  }
304
307
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlStatCardFigure, decorators: [{
305
308
  type: Directive,
@@ -307,13 +310,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
307
310
  selector: '[slStatCardFigure]',
308
311
  standalone: true,
309
312
  exportAs: 'slStatCardFigure',
310
- host: { 'data-part': 'figure' },
313
+ host: { 'data-part': 'figure', 'data-part-figure': '' },
311
314
  }]
312
315
  }] });
313
316
  /** The unit, wherever the consumer puts it inside the value: `$` before, `%` after. */
314
317
  class SlStatCardUnit {
315
318
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlStatCardUnit, deps: [], target: i0.ɵɵFactoryTarget.Directive });
316
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlStatCardUnit, isStandalone: true, selector: "[slStatCardUnit]", host: { attributes: { "data-part": "unit" } }, exportAs: ["slStatCardUnit"], ngImport: i0 });
319
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlStatCardUnit, isStandalone: true, selector: "[slStatCardUnit]", host: { attributes: { "data-part": "unit", "data-part-unit": "" } }, exportAs: ["slStatCardUnit"], ngImport: i0 });
317
320
  }
318
321
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlStatCardUnit, decorators: [{
319
322
  type: Directive,
@@ -321,12 +324,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
321
324
  selector: '[slStatCardUnit]',
322
325
  standalone: true,
323
326
  exportAs: 'slStatCardUnit',
324
- host: { 'data-part': 'unit' },
327
+ host: { 'data-part': 'unit', 'data-part-unit': '' },
325
328
  }]
326
329
  }] });
327
330
  class SlStatCardPeriod {
328
331
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlStatCardPeriod, deps: [], target: i0.ɵɵFactoryTarget.Directive });
329
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlStatCardPeriod, isStandalone: true, selector: "[slStatCardPeriod]", host: { attributes: { "data-part": "period" } }, exportAs: ["slStatCardPeriod"], ngImport: i0 });
332
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlStatCardPeriod, isStandalone: true, selector: "[slStatCardPeriod]", host: { attributes: { "data-part": "period", "data-part-period": "" } }, exportAs: ["slStatCardPeriod"], ngImport: i0 });
330
333
  }
331
334
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlStatCardPeriod, decorators: [{
332
335
  type: Directive,
@@ -334,7 +337,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
334
337
  selector: '[slStatCardPeriod]',
335
338
  standalone: true,
336
339
  exportAs: 'slStatCardPeriod',
337
- host: { 'data-part': 'period' },
340
+ host: { 'data-part': 'period', 'data-part-period': '' },
338
341
  }]
339
342
  }] });
340
343
  /**
@@ -346,7 +349,7 @@ class SlStatCardComparison {
346
349
  shown = computed(() => this.card.loading() || this.card.status() === 'ready', /* @ts-ignore */
347
350
  ...(ngDevMode ? [{ debugName: "shown" }] : /* istanbul ignore next */ []));
348
351
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlStatCardComparison, deps: [], target: i0.ɵɵFactoryTarget.Component });
349
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.7", type: SlStatCardComparison, isStandalone: true, selector: "[slStatCardComparison]", host: { attributes: { "data-part": "comparison" }, properties: { "attr.hidden": "shown() ? null : \"\"" } }, exportAs: ["slStatCardComparison"], ngImport: i0, template: `@if (card.loading()) {
352
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.7", type: SlStatCardComparison, isStandalone: true, selector: "[slStatCardComparison]", host: { attributes: { "data-part": "comparison", "data-part-comparison": "" }, properties: { "attr.hidden": "shown() ? null : \"\"" } }, exportAs: ["slStatCardComparison"], ngImport: i0, template: `@if (card.loading()) {
350
353
  <span slSkeleton inlineSize="10em"></span>
351
354
  } @else {
352
355
  <ng-content />
@@ -366,7 +369,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
366
369
  changeDetection: ChangeDetectionStrategy.OnPush,
367
370
  encapsulation: ViewEncapsulation.None,
368
371
  exportAs: 'slStatCardComparison',
369
- host: { 'data-part': 'comparison', '[attr.hidden]': 'shown() ? null : ""' },
372
+ host: {
373
+ 'data-part': 'comparison',
374
+ 'data-part-comparison': '',
375
+ '[attr.hidden]': 'shown() ? null : ""',
376
+ },
370
377
  }]
371
378
  }] });
372
379
  /**
@@ -379,7 +386,7 @@ class SlStatCardTrend {
379
386
  shown = computed(() => this.card.loading() || this.card.status() === 'ready', /* @ts-ignore */
380
387
  ...(ngDevMode ? [{ debugName: "shown" }] : /* istanbul ignore next */ []));
381
388
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlStatCardTrend, deps: [], target: i0.ɵɵFactoryTarget.Component });
382
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.7", type: SlStatCardTrend, isStandalone: true, selector: "[slStatCardTrend]", host: { attributes: { "data-part": "trend" }, properties: { "attr.hidden": "shown() ? null : \"\"" } }, exportAs: ["slStatCardTrend"], ngImport: i0, template: `@if (card.loading()) {
389
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.7", type: SlStatCardTrend, isStandalone: true, selector: "[slStatCardTrend]", host: { attributes: { "data-part": "trend", "data-part-trend": "" }, properties: { "attr.hidden": "shown() ? null : \"\"" } }, exportAs: ["slStatCardTrend"], ngImport: i0, template: `@if (card.loading()) {
383
390
  <span slSkeleton shape="block"></span>
384
391
  } @else {
385
392
  <ng-content />
@@ -399,7 +406,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
399
406
  changeDetection: ChangeDetectionStrategy.OnPush,
400
407
  encapsulation: ViewEncapsulation.None,
401
408
  exportAs: 'slStatCardTrend',
402
- host: { 'data-part': 'trend', '[attr.hidden]': 'shown() ? null : ""' },
409
+ host: { 'data-part': 'trend', 'data-part-trend': '', '[attr.hidden]': 'shown() ? null : ""' },
403
410
  }]
404
411
  }] });
405
412
  /** What is said in place of a value that is missing or failed. Shown only then. */
@@ -408,7 +415,7 @@ class SlStatCardMessage {
408
415
  shown = computed(() => !this.card.loading() && this.card.status() !== 'ready', /* @ts-ignore */
409
416
  ...(ngDevMode ? [{ debugName: "shown" }] : /* istanbul ignore next */ []));
410
417
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlStatCardMessage, deps: [], target: i0.ɵɵFactoryTarget.Directive });
411
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlStatCardMessage, isStandalone: true, selector: "[slStatCardMessage]", host: { attributes: { "data-part": "message" }, properties: { "attr.hidden": "shown() ? null : \"\"" } }, exportAs: ["slStatCardMessage"], ngImport: i0 });
418
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlStatCardMessage, isStandalone: true, selector: "[slStatCardMessage]", host: { attributes: { "data-part": "message", "data-part-message": "" }, properties: { "attr.hidden": "shown() ? null : \"\"" } }, exportAs: ["slStatCardMessage"], ngImport: i0 });
412
419
  }
413
420
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlStatCardMessage, decorators: [{
414
421
  type: Directive,
@@ -416,7 +423,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
416
423
  selector: '[slStatCardMessage]',
417
424
  standalone: true,
418
425
  exportAs: 'slStatCardMessage',
419
- host: { 'data-part': 'message', '[attr.hidden]': 'shown() ? null : ""' },
426
+ host: { 'data-part': 'message', 'data-part-message': '', '[attr.hidden]': 'shown() ? null : ""' },
420
427
  }]
421
428
  }] });
422
429
 
@@ -442,7 +449,7 @@ class SlStatCardValue {
442
449
  }, /* @ts-ignore */
443
450
  ...(ngDevMode ? [{ debugName: "formatted" }] : /* istanbul ignore next */ []));
444
451
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlStatCardValue, deps: [], target: i0.ɵɵFactoryTarget.Component });
445
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.7", type: SlStatCardValue, isStandalone: true, selector: "[slStatCardValue]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, formatOptions: { classPropertyName: "formatOptions", publicName: "formatOptions", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-part": "value" } }, exportAs: ["slStatCardValue"], ngImport: i0, template: `@if (card.loading()) {
452
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.7", type: SlStatCardValue, isStandalone: true, selector: "[slStatCardValue]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, formatOptions: { classPropertyName: "formatOptions", publicName: "formatOptions", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-part": "value", "data-part-value": "" } }, exportAs: ["slStatCardValue"], ngImport: i0, template: `@if (card.loading()) {
446
453
  <span slSkeleton inlineSize="5ch"></span>
447
454
  } @else if (card.status() !== 'ready') {
448
455
  {{ card.t('empty') }}
@@ -466,7 +473,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
466
473
  changeDetection: ChangeDetectionStrategy.OnPush,
467
474
  encapsulation: ViewEncapsulation.None,
468
475
  exportAs: 'slStatCardValue',
469
- host: { 'data-part': 'value' },
476
+ host: { 'data-part': 'value', 'data-part-value': '' },
470
477
  }]
471
478
  }], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], formatOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "formatOptions", required: false }] }] } });
472
479
 
@@ -1 +1 @@
1
- {"version":3,"file":"slotted-angular-stat-card.mjs","sources":["../../stat-card/src/stat-card-defaults.ts","../../stat-card/src/stat-card.constants.ts","../../stat-card/src/stat-card.ts","../../stat-card/src/stat-card-delta.ts","../../stat-card/src/stat-card-parts.ts","../../stat-card/src/stat-card-value.ts","../../stat-card/src/slotted-angular-stat-card.ts"],"sourcesContent":["import { inject, InjectionToken } from '@angular/core';\n\nimport type {\n StatCardFill,\n StatCardGoodWhen,\n StatCardLayout,\n StatCardSize,\n} from './stat-card.constants';\n\n/**\n * What every card in an application does before any of them states anything\n * of its own. `goodWhen` is here because a product usually has one answer —\n * a sales dashboard wants everything up, an operations one wants everything\n * down — and a card that disagrees says so.\n */\nexport interface StatCardDefaults {\n fill?: StatCardFill;\n formatOptions?: Intl.NumberFormatOptions;\n goodWhen?: StatCardGoodWhen;\n layout?: StatCardLayout;\n size?: StatCardSize;\n}\n\nexport const STAT_CARD_DEFAULTS_TOKEN = new InjectionToken<StatCardDefaults>(\n 'slotted stat-card defaults',\n { providedIn: 'root', factory: (): StatCardDefaults => ({}) },\n);\n\n/**\n * An explicit input is never overridden by the token. The words and the locale\n * come from the language in force (`provideSlotted`).\n */\nexport function provideStatCardDefaults(defaults: StatCardDefaults) {\n return { provide: STAT_CARD_DEFAULTS_TOKEN, useValue: defaults };\n}\n\nexport function injectStatCardDefaults(): StatCardDefaults {\n return inject(STAT_CARD_DEFAULTS_TOKEN);\n}\n","export type StatCardSize = 'sm' | 'md' | 'lg';\nexport type StatCardFill = 'outline' | 'elevated' | 'subtle' | 'plain';\nexport type StatCardLayout = 'inline' | 'stacked';\nexport type StatCardValueStatus = 'ready' | 'empty' | 'error';\nexport type StatCardGoodWhen = 'up' | 'down' | 'none';\nexport type StatCardTone = 'neutral' | 'accent' | 'secondary' | 'success' | 'warning' | 'danger';\nexport type StatCardDirection = 'up' | 'down' | 'flat';\nexport type StatCardDeltaFormat = 'percent' | 'decimal';\n\n/** The direction of a change, from its sign. */\nexport function trendOf(value: number | undefined): StatCardDirection {\n if (value === undefined || Number.isNaN(value) || value === 0) return 'flat';\n return value > 0 ? 'up' : 'down';\n}\n\n/**\n * The tone of a change, from what the metric means and never from the sign:\n * a rise is good when up is good and bad when down is; a fall is the reverse;\n * a flat change, or a metric with no valence, is neutral.\n */\nexport function toneOf(trend: StatCardDirection, goodWhen: StatCardGoodWhen): StatCardTone {\n if (trend === 'flat' || goodWhen === 'none') return 'neutral';\n return (trend === 'up') === (goodWhen === 'up') ? 'success' : 'danger';\n}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n HostAttributeToken,\n inject,\n input,\n numberAttribute,\n ViewEncapsulation,\n} from '@angular/core';\nimport { injectLocale, injectMessages } from '@slotted/angular/i18n';\nimport { type PartialMessages, statCardMessages, type StatCardMessages } from '@slotted/core/i18n';\n\nimport { injectStatCardDefaults } from './stat-card-defaults';\nimport {\n toneOf,\n trendOf,\n type StatCardFill,\n type StatCardGoodWhen,\n type StatCardLayout,\n type StatCardSize,\n type StatCardTone,\n type StatCardValueStatus,\n} from './stat-card.constants';\n\nlet nextId = 0;\n\n/**\n * A metric with its name, its change and its trend, in a frame.\n *\n * The root holds the facts the parts read — which way is good, the change,\n * the status, whether it is loading — and derives the one thing two parts\n * have to agree on: the tone of the change, which the delta wears and the\n * trend hands to its sparkline. It is derived here, from `delta` and\n * `goodWhen`, so the first render already carries it.\n *\n * The root is a group named by its label, so a reader who lands on the\n * action inside it hears which metric it belongs to; an `aria-label` or\n * `aria-labelledby` the consumer wrote on the element wins. It carries\n * `aria-busy` while loading; the placeholders are `skeleton`s, and a\n * consumer who wants one announcement for a whole dashboard wraps it in a\n * `slSkeletonRegion`.\n */\n@Component({\n selector: '[slStatCard]',\n standalone: true,\n template: '<div data-part=\"body\"><ng-content /></div>',\n styleUrl: '../../../styles/src/stat-card/stat-card.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slStatCard',\n host: {\n 'data-ui': 'stat-card',\n 'data-part': 'root',\n role: 'group',\n '[attr.aria-labelledby]': 'labelledBy()',\n '[attr.aria-busy]': 'loading() ? \"true\" : null',\n '[attr.data-size]': 'resolvedSize()',\n '[attr.data-fill]': 'resolvedFill()',\n '[attr.data-layout]': 'resolvedLayout()',\n '[attr.data-status]': 'status()',\n '[attr.data-good-when]': 'resolvedGoodWhen()',\n '[attr.data-tone]': 'resolvedTone() ?? null',\n '[attr.data-loading]': 'loading() ? \"\" : null',\n },\n})\nexport class SlStatCard {\n readonly size = input<StatCardSize | undefined>(undefined);\n readonly fill = input<StatCardFill | undefined>(undefined);\n readonly layout = input<StatCardLayout | undefined>(undefined);\n /** Whether there is a value to show, and if not, why. */\n readonly status = input<StatCardValueStatus>('ready');\n /** The value is still on its way: every part stands in with a placeholder. */\n readonly loading = input<boolean, unknown>(false, { transform: booleanAttribute });\n /** Which way is good for this metric. The delta's tone is derived from it, never from the sign. */\n readonly goodWhen = input<StatCardGoodWhen | undefined>(undefined);\n /**\n * The change since the comparison period, as the first delta inside reads\n * it: a fraction for a percentage (`0.124` is +12.4%), or a number.\n */\n readonly delta = input<number | undefined, unknown>(undefined, { transform: optionalNumber });\n /** The tone the card hands to its trend. Unset, it is the delta's. */\n readonly tone = input<StatCardTone | undefined>(undefined);\n /** The locale numbers are written in; the language in force when absent. */\n readonly locale = input<string | undefined>(undefined);\n /** How the value, the delta and the comparison read numbers. */\n readonly formatOptions = input<Intl.NumberFormatOptions | undefined>(undefined);\n /**\n * Words laid over the catalog of the language in force, key by key: what a\n * screen reader hears beside a change (`up`, `down`, `flat`, read before the\n * number because a sign is a glyph some readers skip) and what stands in for\n * a value that is not there (`empty`).\n */\n readonly messages = input<PartialMessages<StatCardMessages> | undefined>(undefined);\n\n private readonly defaults = injectStatCardDefaults();\n private readonly appLocale = injectLocale();\n private readonly ownLabel = inject(new HostAttributeToken('aria-label'), { optional: true });\n private readonly ownLabelledBy = inject(new HostAttributeToken('aria-labelledby'), {\n optional: true,\n });\n\n /** The id the label takes, and the root is named by. */\n readonly labelId = `slotted-stat-card-label-${nextId++}`;\n\n readonly resolvedSize = computed(() => this.size() ?? this.defaults.size ?? 'md');\n readonly resolvedFill = computed(() => this.fill() ?? this.defaults.fill ?? 'outline');\n readonly resolvedLayout = computed(() => this.layout() ?? this.defaults.layout ?? 'inline');\n readonly resolvedGoodWhen = computed(() => this.goodWhen() ?? this.defaults.goodWhen ?? 'up');\n readonly resolvedLocale = computed(() => this.locale() ?? this.appLocale());\n readonly resolvedFormatOptions = computed(\n () => this.formatOptions() ?? this.defaults.formatOptions,\n );\n /** The family's words in the language in force, with this card's `messages` laid over them. */\n readonly t = injectMessages(statCardMessages, this.messages);\n readonly resolvedTone = computed<StatCardTone | undefined>(() => {\n const explicit = this.tone();\n if (explicit !== undefined) return explicit;\n const delta = this.delta();\n return delta === undefined ? undefined : toneOf(trendOf(delta), this.resolvedGoodWhen());\n });\n\n readonly labelledBy = computed(() =>\n this.ownLabel !== null ? null : (this.ownLabelledBy ?? this.labelId),\n );\n}\n\nexport function optionalNumber(value: unknown): number | undefined {\n if (value === undefined || value === null || value === '') return undefined;\n return numberAttribute(value);\n}\n\nexport function optionalBoolean(value: unknown): boolean | undefined {\n return value === undefined ? undefined : booleanAttribute(value);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n ViewEncapsulation,\n} from '@angular/core';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\nimport { SlSkeleton } from '@slotted/angular/skeleton';\nimport { SlVisuallyHidden } from '@slotted/angular/visually-hidden';\n\nimport { SlStatCard, optionalNumber } from './stat-card';\nimport {\n toneOf,\n trendOf,\n type StatCardDeltaFormat,\n type StatCardGoodWhen,\n type StatCardTone,\n} from './stat-card.constants';\n\n/**\n * The change, with the mark that says which way and the word a screen reader\n * hears before the number. `value` is the root's `delta` unless the part\n * states its own, so a second delta on one card — month over month beside\n * year over year — is one more part with one more value.\n *\n * `percent` reads the value as a fraction, which is what a division gives;\n * the sign is always shown except on nought. The tone is derived from the\n * direction and from `goodWhen`, never from the sign, and an explicit `tone`\n * wins.\n */\n@Component({\n selector: '[slStatCardDelta]',\n standalone: true,\n imports: [SlGlyph, SlIcon, SlSkeleton, SlVisuallyHidden],\n /* One glyph for a rise and a fall, turned over by the sheet for a fall. */\n template: `@if (card.loading()) {\n <span slSkeleton inlineSize=\"3.5em\"></span>\n } @else {\n <span data-part=\"indicator\" aria-hidden=\"true\"\n ><span slIcon [directional]=\"trend() !== 'flat'\"\n ><svg slGlyph [name]=\"trend() === 'flat' ? 'minus' : 'trending-up'\"></svg></span></span\n ><span slVisuallyHidden>{{ card.t(trend()) }} </span>{{ formatted() }}<ng-content />\n }`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slStatCardDelta',\n host: {\n 'data-part': 'delta',\n '[attr.data-trend]': 'card.loading() ? \"flat\" : trend()',\n '[attr.data-tone]': 'card.loading() ? \"neutral\" : resolvedTone()',\n '[attr.hidden]': 'shown() ? null : \"\"',\n },\n})\nexport class SlStatCardDelta {\n /** The change. Unset, the root's `delta`. */\n readonly value = input<number | undefined, unknown>(undefined, { transform: optionalNumber });\n /** `percent` reads the value as a fraction; `decimal` reads it as it is. */\n readonly format = input<StatCardDeltaFormat>('percent');\n readonly formatOptions = input<Intl.NumberFormatOptions | undefined>(undefined);\n /** Unset, the root's. */\n readonly goodWhen = input<StatCardGoodWhen | undefined>(undefined);\n /** An explicit tone, which wins over the one derived from `goodWhen`. */\n readonly tone = input<StatCardTone | undefined>(undefined);\n\n protected readonly card = inject(SlStatCard);\n\n readonly change = computed(() => this.value() ?? this.card.delta());\n readonly trend = computed(() => trendOf(this.change()));\n readonly resolvedTone = computed(\n () => this.tone() ?? toneOf(this.trend(), this.goodWhen() ?? this.card.resolvedGoodWhen()),\n );\n readonly shown = computed(() => this.card.loading() || this.card.status() === 'ready');\n\n readonly formatted = computed(() => {\n const change = this.change();\n if (typeof change !== 'number') return '';\n return new Intl.NumberFormat(this.card.resolvedLocale(), {\n signDisplay: 'exceptZero',\n ...(this.format() === 'percent' ? { style: 'percent', maximumFractionDigits: 1 } : {}),\n ...this.card.resolvedFormatOptions(),\n ...this.formatOptions(),\n }).format(change);\n });\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n Directive,\n HostAttributeToken,\n inject,\n ViewEncapsulation,\n} from '@angular/core';\nimport { SlSkeleton } from '@slotted/angular/skeleton';\n\nimport { SlStatCard } from './stat-card';\n\n/** The row with the name, a status beside it and an action at the end. */\n@Directive({\n selector: '[slStatCardHeader]',\n standalone: true,\n exportAs: 'slStatCardHeader',\n host: { 'data-part': 'header' },\n})\nexport class SlStatCardHeader {}\n\n/**\n * The name of the metric. It is the element the root is named by, so it\n * carries the id the root points at; an `id` the consumer wrote wins, and\n * the root then names nothing, which is the consumer's decision to make.\n */\n@Directive({\n selector: '[slStatCardLabel]',\n standalone: true,\n exportAs: 'slStatCardLabel',\n host: { 'data-part': 'label', '[attr.id]': 'id' },\n})\nexport class SlStatCardLabel {\n private readonly card = inject(SlStatCard);\n private readonly ownId = inject(new HostAttributeToken('id'), { optional: true });\n readonly id = this.ownId ?? this.card.labelId;\n}\n\n/** A slot beside the name for a badge or a status indicator. */\n@Directive({\n selector: '[slStatCardStatus]',\n standalone: true,\n exportAs: 'slStatCardStatus',\n host: { 'data-part': 'status' },\n})\nexport class SlStatCardStatus {}\n\n/** The place at the end of the header for the consumer's link or button. */\n@Directive({\n selector: '[slStatCardAction]',\n standalone: true,\n exportAs: 'slStatCardAction',\n host: { 'data-part': 'action' },\n})\nexport class SlStatCardAction {}\n\n/** The value with its unit and its delta on one line, and the comparison under them. */\n@Directive({\n selector: '[slStatCardFigure]',\n standalone: true,\n exportAs: 'slStatCardFigure',\n host: { 'data-part': 'figure' },\n})\nexport class SlStatCardFigure {}\n\n/** The unit, wherever the consumer puts it inside the value: `$` before, `%` after. */\n@Directive({\n selector: '[slStatCardUnit]',\n standalone: true,\n exportAs: 'slStatCardUnit',\n host: { 'data-part': 'unit' },\n})\nexport class SlStatCardUnit {}\n\n@Directive({\n selector: '[slStatCardPeriod]',\n standalone: true,\n exportAs: 'slStatCardPeriod',\n host: { 'data-part': 'period' },\n})\nexport class SlStatCardPeriod {}\n\n/**\n * The prose under the figure: what the value was, and the period. Shown\n * only while there is a value to compare; a placeholder while loading.\n */\n@Component({\n selector: '[slStatCardComparison]',\n standalone: true,\n imports: [SlSkeleton],\n template: `@if (card.loading()) {\n <span slSkeleton inlineSize=\"10em\"></span>\n } @else {\n <ng-content />\n }`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slStatCardComparison',\n host: { 'data-part': 'comparison', '[attr.hidden]': 'shown() ? null : \"\"' },\n})\nexport class SlStatCardComparison {\n protected readonly card = inject(SlStatCard);\n readonly shown = computed(() => this.card.loading() || this.card.status() === 'ready');\n}\n\n/**\n * Where a sparkline goes. The stylesheet hands it the card's tone and the\n * card's ground; while loading it holds a block the sparkline's height, so\n * the card does not change size when the line arrives.\n */\n@Component({\n selector: '[slStatCardTrend]',\n standalone: true,\n imports: [SlSkeleton],\n template: `@if (card.loading()) {\n <span slSkeleton shape=\"block\"></span>\n } @else {\n <ng-content />\n }`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slStatCardTrend',\n host: { 'data-part': 'trend', '[attr.hidden]': 'shown() ? null : \"\"' },\n})\nexport class SlStatCardTrend {\n protected readonly card = inject(SlStatCard);\n readonly shown = computed(() => this.card.loading() || this.card.status() === 'ready');\n}\n\n/** What is said in place of a value that is missing or failed. Shown only then. */\n@Directive({\n selector: '[slStatCardMessage]',\n standalone: true,\n exportAs: 'slStatCardMessage',\n host: { 'data-part': 'message', '[attr.hidden]': 'shown() ? null : \"\"' },\n})\nexport class SlStatCardMessage {\n private readonly card = inject(SlStatCard);\n readonly shown = computed(() => !this.card.loading() && this.card.status() !== 'ready');\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n ViewEncapsulation,\n} from '@angular/core';\nimport { inject } from '@angular/core';\nimport { SlSkeleton } from '@slotted/angular/skeleton';\n\nimport { SlStatCard } from './stat-card';\n\n/**\n * The number. A numeric `value` is formatted with the card's locale and\n * `formatOptions` — `notation: 'compact'` is how 12,900 becomes 12.9K — and\n * projected content is the consumer's own rendering, unit and all, after\n * it. A missing or failed value is the `empty` message, a dash; a loading\n * one is a placeholder five figures wide, on the value's own line.\n */\n@Component({\n selector: '[slStatCardValue]',\n standalone: true,\n imports: [SlSkeleton],\n template: `@if (card.loading()) {\n <span slSkeleton inlineSize=\"5ch\"></span>\n } @else if (card.status() !== 'ready') {\n {{ card.t('empty') }}\n } @else {\n {{ formatted() }}<ng-content />\n }`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slStatCardValue',\n host: { 'data-part': 'value' },\n})\nexport class SlStatCardValue {\n /** A number, formatted with the card's locale and `formatOptions`; the text otherwise. */\n readonly value = input<number | string | undefined>(undefined);\n readonly formatOptions = input<Intl.NumberFormatOptions | undefined>(undefined);\n\n protected readonly card = inject(SlStatCard);\n\n readonly formatted = computed(() => {\n const value = this.value();\n if (typeof value !== 'number') return value ?? '';\n return new Intl.NumberFormat(\n this.card.resolvedLocale(),\n this.formatOptions() ?? this.card.resolvedFormatOptions(),\n ).format(value);\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-stat-card.mjs","sources":["../../stat-card/src/stat-card-defaults.ts","../../stat-card/src/stat-card.constants.ts","../../stat-card/src/stat-card.ts","../../stat-card/src/stat-card-delta.ts","../../stat-card/src/stat-card-parts.ts","../../stat-card/src/stat-card-value.ts","../../stat-card/src/slotted-angular-stat-card.ts"],"sourcesContent":["import { inject, InjectionToken } from '@angular/core';\n\nimport type {\n StatCardFill,\n StatCardGoodWhen,\n StatCardLayout,\n StatCardSize,\n} from './stat-card.constants';\n\n/**\n * What every card in an application does before any of them states anything\n * of its own. `goodWhen` is here because a product usually has one answer —\n * a sales dashboard wants everything up, an operations one wants everything\n * down — and a card that disagrees says so.\n */\nexport interface StatCardDefaults {\n fill?: StatCardFill;\n formatOptions?: Intl.NumberFormatOptions;\n goodWhen?: StatCardGoodWhen;\n layout?: StatCardLayout;\n size?: StatCardSize;\n}\n\nexport const STAT_CARD_DEFAULTS_TOKEN = new InjectionToken<StatCardDefaults>(\n 'slotted stat-card defaults',\n { providedIn: 'root', factory: (): StatCardDefaults => ({}) },\n);\n\n/**\n * An explicit input is never overridden by the token. The words and the locale\n * come from the language in force (`provideSlotted`).\n */\nexport function provideStatCardDefaults(defaults: StatCardDefaults) {\n return { provide: STAT_CARD_DEFAULTS_TOKEN, useValue: defaults };\n}\n\nexport function injectStatCardDefaults(): StatCardDefaults {\n return inject(STAT_CARD_DEFAULTS_TOKEN);\n}\n","export type StatCardSize = 'sm' | 'md' | 'lg';\nexport type StatCardFill = 'outline' | 'elevated' | 'subtle' | 'plain';\nexport type StatCardLayout = 'inline' | 'stacked';\nexport type StatCardValueStatus = 'ready' | 'empty' | 'error';\nexport type StatCardGoodWhen = 'up' | 'down' | 'none';\nexport type StatCardTone = 'neutral' | 'accent' | 'secondary' | 'success' | 'warning' | 'danger';\nexport type StatCardDirection = 'up' | 'down' | 'flat';\nexport type StatCardDeltaFormat = 'percent' | 'decimal';\n\n/** The direction of a change, from its sign. */\nexport function trendOf(value: number | undefined): StatCardDirection {\n if (value === undefined || Number.isNaN(value) || value === 0) return 'flat';\n return value > 0 ? 'up' : 'down';\n}\n\n/**\n * The tone of a change, from what the metric means and never from the sign:\n * a rise is good when up is good and bad when down is; a fall is the reverse;\n * a flat change, or a metric with no valence, is neutral.\n */\nexport function toneOf(trend: StatCardDirection, goodWhen: StatCardGoodWhen): StatCardTone {\n if (trend === 'flat' || goodWhen === 'none') return 'neutral';\n return (trend === 'up') === (goodWhen === 'up') ? 'success' : 'danger';\n}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n HostAttributeToken,\n inject,\n input,\n numberAttribute,\n ViewEncapsulation,\n} from '@angular/core';\nimport { injectLocale, injectMessages } from '@slotted/angular/i18n';\nimport { type PartialMessages, statCardMessages, type StatCardMessages } from '@slotted/core/i18n';\n\nimport { injectStatCardDefaults } from './stat-card-defaults';\nimport {\n toneOf,\n trendOf,\n type StatCardFill,\n type StatCardGoodWhen,\n type StatCardLayout,\n type StatCardSize,\n type StatCardTone,\n type StatCardValueStatus,\n} from './stat-card.constants';\n\nlet nextId = 0;\n\n/**\n * A metric with its name, its change and its trend, in a frame.\n *\n * The root holds the facts the parts read — which way is good, the change,\n * the status, whether it is loading — and derives the one thing two parts\n * have to agree on: the tone of the change, which the delta wears and the\n * trend hands to its sparkline. It is derived here, from `delta` and\n * `goodWhen`, so the first render already carries it.\n *\n * The root is a group named by its label, so a reader who lands on the\n * action inside it hears which metric it belongs to; an `aria-label` or\n * `aria-labelledby` the consumer wrote on the element wins. It carries\n * `aria-busy` while loading; the placeholders are `skeleton`s, and a\n * consumer who wants one announcement for a whole dashboard wraps it in a\n * `slSkeletonRegion`.\n */\n@Component({\n selector: '[slStatCard]',\n standalone: true,\n template: '<div data-part=\"body\" data-part-body=\"\"><ng-content /></div>',\n styleUrl: '../../../styles/src/stat-card/stat-card.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slStatCard',\n host: {\n 'data-ui': 'stat-card',\n 'data-ui-stat-card': '',\n 'data-part': 'root',\n 'data-part-root': '',\n role: 'group',\n '[attr.aria-labelledby]': 'labelledBy()',\n '[attr.aria-busy]': 'loading() ? \"true\" : null',\n '[attr.data-size]': 'resolvedSize()',\n '[attr.data-fill]': 'resolvedFill()',\n '[attr.data-layout]': 'resolvedLayout()',\n '[attr.data-status]': 'status()',\n '[attr.data-good-when]': 'resolvedGoodWhen()',\n '[attr.data-tone]': 'resolvedTone() ?? null',\n '[attr.data-loading]': 'loading() ? \"\" : null',\n },\n})\nexport class SlStatCard {\n readonly size = input<StatCardSize | undefined>(undefined);\n readonly fill = input<StatCardFill | undefined>(undefined);\n readonly layout = input<StatCardLayout | undefined>(undefined);\n /** Whether there is a value to show, and if not, why. */\n readonly status = input<StatCardValueStatus>('ready');\n /** The value is still on its way: every part stands in with a placeholder. */\n readonly loading = input<boolean, unknown>(false, { transform: booleanAttribute });\n /** Which way is good for this metric. The delta's tone is derived from it, never from the sign. */\n readonly goodWhen = input<StatCardGoodWhen | undefined>(undefined);\n /**\n * The change since the comparison period, as the first delta inside reads\n * it: a fraction for a percentage (`0.124` is +12.4%), or a number.\n */\n readonly delta = input<number | undefined, unknown>(undefined, { transform: optionalNumber });\n /** The tone the card hands to its trend. Unset, it is the delta's. */\n readonly tone = input<StatCardTone | undefined>(undefined);\n /** The locale numbers are written in; the language in force when absent. */\n readonly locale = input<string | undefined>(undefined);\n /** How the value, the delta and the comparison read numbers. */\n readonly formatOptions = input<Intl.NumberFormatOptions | undefined>(undefined);\n /**\n * Words laid over the catalog of the language in force, key by key: what a\n * screen reader hears beside a change (`up`, `down`, `flat`, read before the\n * number because a sign is a glyph some readers skip) and what stands in for\n * a value that is not there (`empty`).\n */\n readonly messages = input<PartialMessages<StatCardMessages> | undefined>(undefined);\n\n private readonly defaults = injectStatCardDefaults();\n private readonly appLocale = injectLocale();\n private readonly ownLabel = inject(new HostAttributeToken('aria-label'), { optional: true });\n private readonly ownLabelledBy = inject(new HostAttributeToken('aria-labelledby'), {\n optional: true,\n });\n\n /** The id the label takes, and the root is named by. */\n readonly labelId = `slotted-stat-card-label-${nextId++}`;\n\n readonly resolvedSize = computed(() => this.size() ?? this.defaults.size ?? 'md');\n readonly resolvedFill = computed(() => this.fill() ?? this.defaults.fill ?? 'outline');\n readonly resolvedLayout = computed(() => this.layout() ?? this.defaults.layout ?? 'inline');\n readonly resolvedGoodWhen = computed(() => this.goodWhen() ?? this.defaults.goodWhen ?? 'up');\n readonly resolvedLocale = computed(() => this.locale() ?? this.appLocale());\n readonly resolvedFormatOptions = computed(\n () => this.formatOptions() ?? this.defaults.formatOptions,\n );\n /** The family's words in the language in force, with this card's `messages` laid over them. */\n readonly t = injectMessages(statCardMessages, this.messages);\n readonly resolvedTone = computed<StatCardTone | undefined>(() => {\n const explicit = this.tone();\n if (explicit !== undefined) return explicit;\n const delta = this.delta();\n return delta === undefined ? undefined : toneOf(trendOf(delta), this.resolvedGoodWhen());\n });\n\n readonly labelledBy = computed(() =>\n this.ownLabel !== null ? null : (this.ownLabelledBy ?? this.labelId),\n );\n}\n\nexport function optionalNumber(value: unknown): number | undefined {\n if (value === undefined || value === null || value === '') return undefined;\n return numberAttribute(value);\n}\n\nexport function optionalBoolean(value: unknown): boolean | undefined {\n return value === undefined ? undefined : booleanAttribute(value);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n ViewEncapsulation,\n} from '@angular/core';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\nimport { SlSkeleton } from '@slotted/angular/skeleton';\nimport { SlVisuallyHidden } from '@slotted/angular/visually-hidden';\n\nimport { SlStatCard, optionalNumber } from './stat-card';\nimport {\n toneOf,\n trendOf,\n type StatCardDeltaFormat,\n type StatCardGoodWhen,\n type StatCardTone,\n} from './stat-card.constants';\n\n/**\n * The change, with the mark that says which way and the word a screen reader\n * hears before the number. `value` is the root's `delta` unless the part\n * states its own, so a second delta on one card — month over month beside\n * year over year — is one more part with one more value.\n *\n * `percent` reads the value as a fraction, which is what a division gives;\n * the sign is always shown except on nought. The tone is derived from the\n * direction and from `goodWhen`, never from the sign, and an explicit `tone`\n * wins.\n */\n@Component({\n selector: '[slStatCardDelta]',\n standalone: true,\n imports: [SlGlyph, SlIcon, SlSkeleton, SlVisuallyHidden],\n /* One glyph for a rise and a fall, turned over by the sheet for a fall. */\n template: `@if (card.loading()) {\n <span slSkeleton inlineSize=\"3.5em\"></span>\n } @else {\n <span data-part=\"indicator\" data-part-indicator=\"\" aria-hidden=\"true\"\n ><span slIcon [directional]=\"trend() !== 'flat'\"\n ><svg slGlyph [name]=\"trend() === 'flat' ? 'minus' : 'trending-up'\"></svg></span></span\n ><span slVisuallyHidden>{{ card.t(trend()) }} </span>{{ formatted() }}<ng-content />\n }`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slStatCardDelta',\n host: {\n 'data-part': 'delta',\n 'data-part-delta': '',\n '[attr.data-trend]': 'card.loading() ? \"flat\" : trend()',\n '[attr.data-tone]': 'card.loading() ? \"neutral\" : resolvedTone()',\n '[attr.hidden]': 'shown() ? null : \"\"',\n },\n})\nexport class SlStatCardDelta {\n /** The change. Unset, the root's `delta`. */\n readonly value = input<number | undefined, unknown>(undefined, { transform: optionalNumber });\n /** `percent` reads the value as a fraction; `decimal` reads it as it is. */\n readonly format = input<StatCardDeltaFormat>('percent');\n readonly formatOptions = input<Intl.NumberFormatOptions | undefined>(undefined);\n /** Unset, the root's. */\n readonly goodWhen = input<StatCardGoodWhen | undefined>(undefined);\n /** An explicit tone, which wins over the one derived from `goodWhen`. */\n readonly tone = input<StatCardTone | undefined>(undefined);\n\n protected readonly card = inject(SlStatCard);\n\n readonly change = computed(() => this.value() ?? this.card.delta());\n readonly trend = computed(() => trendOf(this.change()));\n readonly resolvedTone = computed(\n () => this.tone() ?? toneOf(this.trend(), this.goodWhen() ?? this.card.resolvedGoodWhen()),\n );\n readonly shown = computed(() => this.card.loading() || this.card.status() === 'ready');\n\n readonly formatted = computed(() => {\n const change = this.change();\n if (typeof change !== 'number') return '';\n return new Intl.NumberFormat(this.card.resolvedLocale(), {\n signDisplay: 'exceptZero',\n ...(this.format() === 'percent' ? { style: 'percent', maximumFractionDigits: 1 } : {}),\n ...this.card.resolvedFormatOptions(),\n ...this.formatOptions(),\n }).format(change);\n });\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n Directive,\n HostAttributeToken,\n inject,\n ViewEncapsulation,\n} from '@angular/core';\nimport { SlSkeleton } from '@slotted/angular/skeleton';\n\nimport { SlStatCard } from './stat-card';\n\n/** The row with the name, a status beside it and an action at the end. */\n@Directive({\n selector: '[slStatCardHeader]',\n standalone: true,\n exportAs: 'slStatCardHeader',\n host: { 'data-part': 'header', 'data-part-header': '' },\n})\nexport class SlStatCardHeader {}\n\n/**\n * The name of the metric. It is the element the root is named by, so it\n * carries the id the root points at; an `id` the consumer wrote wins, and\n * the root then names nothing, which is the consumer's decision to make.\n */\n@Directive({\n selector: '[slStatCardLabel]',\n standalone: true,\n exportAs: 'slStatCardLabel',\n host: { 'data-part': 'label', 'data-part-label': '', '[attr.id]': 'id' },\n})\nexport class SlStatCardLabel {\n private readonly card = inject(SlStatCard);\n private readonly ownId = inject(new HostAttributeToken('id'), { optional: true });\n readonly id = this.ownId ?? this.card.labelId;\n}\n\n/** A slot beside the name for a badge or a status indicator. */\n@Directive({\n selector: '[slStatCardStatus]',\n standalone: true,\n exportAs: 'slStatCardStatus',\n host: { 'data-part': 'status', 'data-part-status': '' },\n})\nexport class SlStatCardStatus {}\n\n/** The place at the end of the header for the consumer's link or button. */\n@Directive({\n selector: '[slStatCardAction]',\n standalone: true,\n exportAs: 'slStatCardAction',\n host: { 'data-part': 'action', 'data-part-action': '' },\n})\nexport class SlStatCardAction {}\n\n/** The value with its unit and its delta on one line, and the comparison under them. */\n@Directive({\n selector: '[slStatCardFigure]',\n standalone: true,\n exportAs: 'slStatCardFigure',\n host: { 'data-part': 'figure', 'data-part-figure': '' },\n})\nexport class SlStatCardFigure {}\n\n/** The unit, wherever the consumer puts it inside the value: `$` before, `%` after. */\n@Directive({\n selector: '[slStatCardUnit]',\n standalone: true,\n exportAs: 'slStatCardUnit',\n host: { 'data-part': 'unit', 'data-part-unit': '' },\n})\nexport class SlStatCardUnit {}\n\n@Directive({\n selector: '[slStatCardPeriod]',\n standalone: true,\n exportAs: 'slStatCardPeriod',\n host: { 'data-part': 'period', 'data-part-period': '' },\n})\nexport class SlStatCardPeriod {}\n\n/**\n * The prose under the figure: what the value was, and the period. Shown\n * only while there is a value to compare; a placeholder while loading.\n */\n@Component({\n selector: '[slStatCardComparison]',\n standalone: true,\n imports: [SlSkeleton],\n template: `@if (card.loading()) {\n <span slSkeleton inlineSize=\"10em\"></span>\n } @else {\n <ng-content />\n }`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slStatCardComparison',\n host: {\n 'data-part': 'comparison',\n 'data-part-comparison': '',\n '[attr.hidden]': 'shown() ? null : \"\"',\n },\n})\nexport class SlStatCardComparison {\n protected readonly card = inject(SlStatCard);\n readonly shown = computed(() => this.card.loading() || this.card.status() === 'ready');\n}\n\n/**\n * Where a sparkline goes. The stylesheet hands it the card's tone and the\n * card's ground; while loading it holds a block the sparkline's height, so\n * the card does not change size when the line arrives.\n */\n@Component({\n selector: '[slStatCardTrend]',\n standalone: true,\n imports: [SlSkeleton],\n template: `@if (card.loading()) {\n <span slSkeleton shape=\"block\"></span>\n } @else {\n <ng-content />\n }`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slStatCardTrend',\n host: { 'data-part': 'trend', 'data-part-trend': '', '[attr.hidden]': 'shown() ? null : \"\"' },\n})\nexport class SlStatCardTrend {\n protected readonly card = inject(SlStatCard);\n readonly shown = computed(() => this.card.loading() || this.card.status() === 'ready');\n}\n\n/** What is said in place of a value that is missing or failed. Shown only then. */\n@Directive({\n selector: '[slStatCardMessage]',\n standalone: true,\n exportAs: 'slStatCardMessage',\n host: { 'data-part': 'message', 'data-part-message': '', '[attr.hidden]': 'shown() ? null : \"\"' },\n})\nexport class SlStatCardMessage {\n private readonly card = inject(SlStatCard);\n readonly shown = computed(() => !this.card.loading() && this.card.status() !== 'ready');\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n ViewEncapsulation,\n} from '@angular/core';\nimport { inject } from '@angular/core';\nimport { SlSkeleton } from '@slotted/angular/skeleton';\n\nimport { SlStatCard } from './stat-card';\n\n/**\n * The number. A numeric `value` is formatted with the card's locale and\n * `formatOptions` — `notation: 'compact'` is how 12,900 becomes 12.9K — and\n * projected content is the consumer's own rendering, unit and all, after\n * it. A missing or failed value is the `empty` message, a dash; a loading\n * one is a placeholder five figures wide, on the value's own line.\n */\n@Component({\n selector: '[slStatCardValue]',\n standalone: true,\n imports: [SlSkeleton],\n template: `@if (card.loading()) {\n <span slSkeleton inlineSize=\"5ch\"></span>\n } @else if (card.status() !== 'ready') {\n {{ card.t('empty') }}\n } @else {\n {{ formatted() }}<ng-content />\n }`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slStatCardValue',\n host: { 'data-part': 'value', 'data-part-value': '' },\n})\nexport class SlStatCardValue {\n /** A number, formatted with the card's locale and `formatOptions`; the text otherwise. */\n readonly value = input<number | string | undefined>(undefined);\n readonly formatOptions = input<Intl.NumberFormatOptions | undefined>(undefined);\n\n protected readonly card = inject(SlStatCard);\n\n readonly formatted = computed(() => {\n const value = this.value();\n if (typeof value !== 'number') return value ?? '';\n return new Intl.NumberFormat(\n this.card.resolvedLocale(),\n this.formatOptions() ?? this.card.resolvedFormatOptions(),\n ).format(value);\n });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}