@slotted/angular 0.0.0-stage → 0.1.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (793) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +51 -2
  3. package/docs/AGENTS.snippet.md +10 -0
  4. package/docs/accordion.json +345 -0
  5. package/docs/accordion.md +207 -0
  6. package/docs/action-bar.json +421 -0
  7. package/docs/action-bar.md +364 -0
  8. package/docs/action-sheet.json +210 -0
  9. package/docs/action-sheet.md +19 -0
  10. package/docs/alert.json +407 -0
  11. package/docs/alert.md +239 -0
  12. package/docs/app-shell.examples.md +349 -0
  13. package/docs/app-shell.json +835 -0
  14. package/docs/app-shell.md +214 -0
  15. package/docs/aspect-ratio.json +159 -0
  16. package/docs/aspect-ratio.md +134 -0
  17. package/docs/attachment.json +486 -0
  18. package/docs/attachment.md +253 -0
  19. package/docs/avatar-group.json +208 -0
  20. package/docs/avatar-group.md +130 -0
  21. package/docs/avatar.json +342 -0
  22. package/docs/avatar.md +142 -0
  23. package/docs/badge.json +334 -0
  24. package/docs/badge.md +138 -0
  25. package/docs/breadcrumb.json +368 -0
  26. package/docs/breadcrumb.md +237 -0
  27. package/docs/button-group.json +158 -0
  28. package/docs/button-group.md +72 -0
  29. package/docs/button.examples.md +621 -0
  30. package/docs/button.json +977 -0
  31. package/docs/button.md +200 -0
  32. package/docs/calendar.json +592 -0
  33. package/docs/calendar.md +242 -0
  34. package/docs/card.json +283 -0
  35. package/docs/card.md +130 -0
  36. package/docs/carousel.json +560 -0
  37. package/docs/carousel.md +357 -0
  38. package/docs/cascader.json +933 -0
  39. package/docs/cascader.md +379 -0
  40. package/docs/chart.examples.md +582 -0
  41. package/docs/chart.json +1359 -0
  42. package/docs/chart.md +187 -0
  43. package/docs/checkbox-group.examples.md +612 -0
  44. package/docs/checkbox-group.json +395 -0
  45. package/docs/checkbox-group.md +106 -0
  46. package/docs/checkbox.examples.md +546 -0
  47. package/docs/checkbox.json +506 -0
  48. package/docs/checkbox.md +104 -0
  49. package/docs/code-block.json +616 -0
  50. package/docs/code-block.md +303 -0
  51. package/docs/collapsible.json +456 -0
  52. package/docs/collapsible.md +261 -0
  53. package/docs/color-picker.json +523 -0
  54. package/docs/color-picker.md +201 -0
  55. package/docs/column-manager.json +486 -0
  56. package/docs/column-manager.md +277 -0
  57. package/docs/combobox.examples.md +1732 -0
  58. package/docs/combobox.json +1250 -0
  59. package/docs/combobox.md +209 -0
  60. package/docs/command-palette.json +800 -0
  61. package/docs/command-palette.md +419 -0
  62. package/docs/container.json +156 -0
  63. package/docs/container.md +92 -0
  64. package/docs/context-menu.json +231 -0
  65. package/docs/context-menu.md +176 -0
  66. package/docs/currency-field.examples.md +321 -0
  67. package/docs/currency-field.json +649 -0
  68. package/docs/currency-field.md +128 -0
  69. package/docs/dashboard-grid.json +680 -0
  70. package/docs/dashboard-grid.md +265 -0
  71. package/docs/data-grid.examples.md +3064 -0
  72. package/docs/data-grid.json +1577 -0
  73. package/docs/data-grid.md +237 -0
  74. package/docs/data-grid.props.md +81 -0
  75. package/docs/data-list.json +685 -0
  76. package/docs/data-list.md +327 -0
  77. package/docs/date-field.json +490 -0
  78. package/docs/date-field.md +235 -0
  79. package/docs/date-picker.examples.md +1226 -0
  80. package/docs/date-picker.json +696 -0
  81. package/docs/date-picker.md +121 -0
  82. package/docs/date-range-picker.examples.md +1300 -0
  83. package/docs/date-range-picker.json +903 -0
  84. package/docs/date-range-picker.md +142 -0
  85. package/docs/datetime-field.json +665 -0
  86. package/docs/datetime-field.md +337 -0
  87. package/docs/datetime-picker.examples.md +1269 -0
  88. package/docs/datetime-picker.json +928 -0
  89. package/docs/datetime-picker.md +150 -0
  90. package/docs/datetime-range-picker.examples.md +225 -0
  91. package/docs/datetime-range-picker.json +1015 -0
  92. package/docs/datetime-range-picker.md +162 -0
  93. package/docs/description-list.json +471 -0
  94. package/docs/description-list.md +268 -0
  95. package/docs/detail-panel.json +530 -0
  96. package/docs/detail-panel.md +361 -0
  97. package/docs/dialog.examples.md +2467 -0
  98. package/docs/dialog.json +1141 -0
  99. package/docs/dialog.md +217 -0
  100. package/docs/dialog.props.md +63 -0
  101. package/docs/divider.json +148 -0
  102. package/docs/divider.md +83 -0
  103. package/docs/drawer.examples.md +1929 -0
  104. package/docs/drawer.json +753 -0
  105. package/docs/drawer.md +199 -0
  106. package/docs/entity-picker.json +946 -0
  107. package/docs/entity-picker.md +365 -0
  108. package/docs/event-calendar.examples.md +308 -0
  109. package/docs/event-calendar.json +1202 -0
  110. package/docs/event-calendar.md +201 -0
  111. package/docs/field-group.json +333 -0
  112. package/docs/field-group.md +181 -0
  113. package/docs/field.examples.md +676 -0
  114. package/docs/field.json +528 -0
  115. package/docs/field.md +127 -0
  116. package/docs/filter-bar.json +817 -0
  117. package/docs/filter-bar.md +380 -0
  118. package/docs/form.json +378 -0
  119. package/docs/form.md +235 -0
  120. package/docs/fullscreen.json +395 -0
  121. package/docs/fullscreen.md +225 -0
  122. package/docs/grid.json +176 -0
  123. package/docs/grid.md +74 -0
  124. package/docs/highlight.json +279 -0
  125. package/docs/highlight.md +210 -0
  126. package/docs/hover-card.json +254 -0
  127. package/docs/hover-card.md +213 -0
  128. package/docs/icon.json +173 -0
  129. package/docs/icon.md +101 -0
  130. package/docs/image.json +476 -0
  131. package/docs/image.md +254 -0
  132. package/docs/import-export-center.json +836 -0
  133. package/docs/import-export-center.md +345 -0
  134. package/docs/index.md +141 -0
  135. package/docs/inline-message.json +312 -0
  136. package/docs/inline-message.md +191 -0
  137. package/docs/inline.json +149 -0
  138. package/docs/inline.md +72 -0
  139. package/docs/kbd.json +350 -0
  140. package/docs/kbd.md +210 -0
  141. package/docs/link.json +264 -0
  142. package/docs/link.md +167 -0
  143. package/docs/list-item.json +463 -0
  144. package/docs/list-item.md +236 -0
  145. package/docs/list.json +321 -0
  146. package/docs/list.md +185 -0
  147. package/docs/listbox.json +807 -0
  148. package/docs/listbox.md +413 -0
  149. package/docs/loading-overlay.json +440 -0
  150. package/docs/loading-overlay.md +248 -0
  151. package/docs/markdown.json +461 -0
  152. package/docs/markdown.md +266 -0
  153. package/docs/menu.examples.md +1651 -0
  154. package/docs/menu.json +922 -0
  155. package/docs/menu.md +155 -0
  156. package/docs/menubar.json +292 -0
  157. package/docs/menubar.md +173 -0
  158. package/docs/message-scroller.json +401 -0
  159. package/docs/message-scroller.md +212 -0
  160. package/docs/message.json +862 -0
  161. package/docs/message.md +473 -0
  162. package/docs/multi-select.examples.md +1922 -0
  163. package/docs/multi-select.json +1314 -0
  164. package/docs/multi-select.md +213 -0
  165. package/docs/navigation-menu.json +529 -0
  166. package/docs/navigation-menu.md +329 -0
  167. package/docs/notification-center.json +664 -0
  168. package/docs/notification-center.md +372 -0
  169. package/docs/number-field.examples.md +1078 -0
  170. package/docs/number-field.json +668 -0
  171. package/docs/number-field.md +137 -0
  172. package/docs/otp-input.json +479 -0
  173. package/docs/otp-input.md +291 -0
  174. package/docs/page-header.json +574 -0
  175. package/docs/page-header.md +338 -0
  176. package/docs/page.json +332 -0
  177. package/docs/page.md +184 -0
  178. package/docs/pagination.json +434 -0
  179. package/docs/pagination.md +238 -0
  180. package/docs/popover.examples.md +1235 -0
  181. package/docs/popover.json +656 -0
  182. package/docs/popover.md +199 -0
  183. package/docs/progress-indicator.json +501 -0
  184. package/docs/progress-indicator.md +329 -0
  185. package/docs/prompt-composer.json +498 -0
  186. package/docs/prompt-composer.md +278 -0
  187. package/docs/prose.json +357 -0
  188. package/docs/prose.md +226 -0
  189. package/docs/radio-group.examples.md +626 -0
  190. package/docs/radio-group.json +541 -0
  191. package/docs/radio-group.md +112 -0
  192. package/docs/rating.json +1053 -0
  193. package/docs/rating.md +435 -0
  194. package/docs/result-state.json +376 -0
  195. package/docs/result-state.md +286 -0
  196. package/docs/saved-views.json +384 -0
  197. package/docs/saved-views.md +242 -0
  198. package/docs/scroll-area.json +120 -0
  199. package/docs/scroll-area.md +8 -0
  200. package/docs/section.json +344 -0
  201. package/docs/section.md +208 -0
  202. package/docs/segmented-control.json +429 -0
  203. package/docs/segmented-control.md +240 -0
  204. package/docs/select.examples.md +1214 -0
  205. package/docs/select.json +1147 -0
  206. package/docs/select.md +199 -0
  207. package/docs/side-navigation.json +632 -0
  208. package/docs/side-navigation.md +430 -0
  209. package/docs/skeleton.json +358 -0
  210. package/docs/skeleton.md +223 -0
  211. package/docs/slider.json +522 -0
  212. package/docs/slider.md +261 -0
  213. package/docs/sparkline.json +426 -0
  214. package/docs/sparkline.md +206 -0
  215. package/docs/split-button.json +361 -0
  216. package/docs/split-button.md +275 -0
  217. package/docs/splitter.json +142 -0
  218. package/docs/splitter.md +14 -0
  219. package/docs/stack.json +135 -0
  220. package/docs/stack.md +74 -0
  221. package/docs/stat-card.json +529 -0
  222. package/docs/stat-card.md +270 -0
  223. package/docs/status-indicator.json +314 -0
  224. package/docs/status-indicator.md +197 -0
  225. package/docs/stepper.json +451 -0
  226. package/docs/stepper.md +250 -0
  227. package/docs/switch.json +451 -0
  228. package/docs/switch.md +508 -0
  229. package/docs/table-of-contents.json +553 -0
  230. package/docs/table-of-contents.md +289 -0
  231. package/docs/table.examples.md +1981 -0
  232. package/docs/table.json +1059 -0
  233. package/docs/table.md +290 -0
  234. package/docs/tabs.examples.md +1370 -0
  235. package/docs/tabs.json +661 -0
  236. package/docs/tabs.md +211 -0
  237. package/docs/tag.json +813 -0
  238. package/docs/tag.md +241 -0
  239. package/docs/tags-input.json +771 -0
  240. package/docs/tags-input.md +361 -0
  241. package/docs/text-field.examples.md +821 -0
  242. package/docs/text-field.json +604 -0
  243. package/docs/text-field.md +125 -0
  244. package/docs/textarea.examples.md +612 -0
  245. package/docs/textarea.json +440 -0
  246. package/docs/textarea.md +98 -0
  247. package/docs/time-field.json +584 -0
  248. package/docs/time-field.md +291 -0
  249. package/docs/time-picker.json +679 -0
  250. package/docs/time-picker.md +315 -0
  251. package/docs/time-range-picker.examples.md +191 -0
  252. package/docs/time-range-picker.json +924 -0
  253. package/docs/time-range-picker.md +152 -0
  254. package/docs/timeline.json +839 -0
  255. package/docs/timeline.md +401 -0
  256. package/docs/toast.json +642 -0
  257. package/docs/toast.md +311 -0
  258. package/docs/toggle-group.json +417 -0
  259. package/docs/toggle-group.md +255 -0
  260. package/docs/toggle.json +326 -0
  261. package/docs/toggle.md +222 -0
  262. package/docs/toolbar.json +380 -0
  263. package/docs/toolbar.md +240 -0
  264. package/docs/tooltip.examples.md +664 -0
  265. package/docs/tooltip.json +604 -0
  266. package/docs/tooltip.md +146 -0
  267. package/docs/top-navigation.examples.md +287 -0
  268. package/docs/top-navigation.json +648 -0
  269. package/docs/top-navigation.md +138 -0
  270. package/docs/tour.json +759 -0
  271. package/docs/tour.md +337 -0
  272. package/docs/transfer.json +746 -0
  273. package/docs/transfer.md +273 -0
  274. package/docs/tree.json +918 -0
  275. package/docs/tree.md +397 -0
  276. package/docs/typography.json +317 -0
  277. package/docs/typography.md +107 -0
  278. package/docs/upload.examples.md +358 -0
  279. package/docs/upload.json +1103 -0
  280. package/docs/upload.md +166 -0
  281. package/docs/visually-hidden.json +71 -0
  282. package/docs/visually-hidden.md +42 -0
  283. package/docs/wizard.json +724 -0
  284. package/docs/wizard.md +295 -0
  285. package/fesm2022/slotted-angular-accordion.mjs +247 -0
  286. package/fesm2022/slotted-angular-accordion.mjs.map +1 -0
  287. package/fesm2022/slotted-angular-action-bar.mjs +639 -0
  288. package/fesm2022/slotted-angular-action-bar.mjs.map +1 -0
  289. package/fesm2022/slotted-angular-action-sheet.mjs +749 -0
  290. package/fesm2022/slotted-angular-action-sheet.mjs.map +1 -0
  291. package/fesm2022/slotted-angular-alert.mjs +427 -0
  292. package/fesm2022/slotted-angular-alert.mjs.map +1 -0
  293. package/fesm2022/slotted-angular-app-shell.mjs +1334 -0
  294. package/fesm2022/slotted-angular-app-shell.mjs.map +1 -0
  295. package/fesm2022/slotted-angular-aspect-ratio.mjs +63 -0
  296. package/fesm2022/slotted-angular-aspect-ratio.mjs.map +1 -0
  297. package/fesm2022/slotted-angular-attachment.mjs +595 -0
  298. package/fesm2022/slotted-angular-attachment.mjs.map +1 -0
  299. package/fesm2022/slotted-angular-avatar-group.mjs +230 -0
  300. package/fesm2022/slotted-angular-avatar-group.mjs.map +1 -0
  301. package/fesm2022/slotted-angular-avatar.mjs +330 -0
  302. package/fesm2022/slotted-angular-avatar.mjs.map +1 -0
  303. package/fesm2022/slotted-angular-badge.mjs +255 -0
  304. package/fesm2022/slotted-angular-badge.mjs.map +1 -0
  305. package/fesm2022/slotted-angular-breadcrumb.mjs +544 -0
  306. package/fesm2022/slotted-angular-breadcrumb.mjs.map +1 -0
  307. package/fesm2022/slotted-angular-button-group.mjs +146 -0
  308. package/fesm2022/slotted-angular-button-group.mjs.map +1 -0
  309. package/fesm2022/slotted-angular-button.mjs +692 -0
  310. package/fesm2022/slotted-angular-button.mjs.map +1 -0
  311. package/fesm2022/slotted-angular-calendar.mjs +916 -0
  312. package/fesm2022/slotted-angular-calendar.mjs.map +1 -0
  313. package/fesm2022/slotted-angular-card.mjs +225 -0
  314. package/fesm2022/slotted-angular-card.mjs.map +1 -0
  315. package/fesm2022/slotted-angular-carousel.mjs +840 -0
  316. package/fesm2022/slotted-angular-carousel.mjs.map +1 -0
  317. package/fesm2022/slotted-angular-cascader.mjs +1839 -0
  318. package/fesm2022/slotted-angular-cascader.mjs.map +1 -0
  319. package/fesm2022/slotted-angular-chart.mjs +974 -0
  320. package/fesm2022/slotted-angular-chart.mjs.map +1 -0
  321. package/fesm2022/slotted-angular-checkbox-group.mjs +283 -0
  322. package/fesm2022/slotted-angular-checkbox-group.mjs.map +1 -0
  323. package/fesm2022/slotted-angular-checkbox.mjs +468 -0
  324. package/fesm2022/slotted-angular-checkbox.mjs.map +1 -0
  325. package/fesm2022/slotted-angular-code-block.mjs +476 -0
  326. package/fesm2022/slotted-angular-code-block.mjs.map +1 -0
  327. package/fesm2022/slotted-angular-collapsible.mjs +479 -0
  328. package/fesm2022/slotted-angular-collapsible.mjs.map +1 -0
  329. package/fesm2022/slotted-angular-color-picker.mjs +910 -0
  330. package/fesm2022/slotted-angular-color-picker.mjs.map +1 -0
  331. package/fesm2022/slotted-angular-column-manager.mjs +1037 -0
  332. package/fesm2022/slotted-angular-column-manager.mjs.map +1 -0
  333. package/fesm2022/slotted-angular-combobox.mjs +1480 -0
  334. package/fesm2022/slotted-angular-combobox.mjs.map +1 -0
  335. package/fesm2022/slotted-angular-command-palette.mjs +1283 -0
  336. package/fesm2022/slotted-angular-command-palette.mjs.map +1 -0
  337. package/fesm2022/slotted-angular-container.mjs +105 -0
  338. package/fesm2022/slotted-angular-container.mjs.map +1 -0
  339. package/fesm2022/slotted-angular-context-menu.mjs +221 -0
  340. package/fesm2022/slotted-angular-context-menu.mjs.map +1 -0
  341. package/fesm2022/slotted-angular-currency-field.mjs +1131 -0
  342. package/fesm2022/slotted-angular-currency-field.mjs.map +1 -0
  343. package/fesm2022/slotted-angular-dashboard-grid.mjs +1928 -0
  344. package/fesm2022/slotted-angular-dashboard-grid.mjs.map +1 -0
  345. package/fesm2022/slotted-angular-data-grid.mjs +6697 -0
  346. package/fesm2022/slotted-angular-data-grid.mjs.map +1 -0
  347. package/fesm2022/slotted-angular-data-list.mjs +1418 -0
  348. package/fesm2022/slotted-angular-data-list.mjs.map +1 -0
  349. package/fesm2022/slotted-angular-date-field.mjs +772 -0
  350. package/fesm2022/slotted-angular-date-field.mjs.map +1 -0
  351. package/fesm2022/slotted-angular-date-picker.mjs +690 -0
  352. package/fesm2022/slotted-angular-date-picker.mjs.map +1 -0
  353. package/fesm2022/slotted-angular-date-range-picker.mjs +1150 -0
  354. package/fesm2022/slotted-angular-date-range-picker.mjs.map +1 -0
  355. package/fesm2022/slotted-angular-datetime-field.mjs +1058 -0
  356. package/fesm2022/slotted-angular-datetime-field.mjs.map +1 -0
  357. package/fesm2022/slotted-angular-datetime-picker.mjs +1362 -0
  358. package/fesm2022/slotted-angular-datetime-picker.mjs.map +1 -0
  359. package/fesm2022/slotted-angular-datetime-range-picker.mjs +1872 -0
  360. package/fesm2022/slotted-angular-datetime-range-picker.mjs.map +1 -0
  361. package/fesm2022/slotted-angular-description-list.mjs +545 -0
  362. package/fesm2022/slotted-angular-description-list.mjs.map +1 -0
  363. package/fesm2022/slotted-angular-detail-panel.mjs +754 -0
  364. package/fesm2022/slotted-angular-detail-panel.mjs.map +1 -0
  365. package/fesm2022/slotted-angular-dialog.mjs +980 -0
  366. package/fesm2022/slotted-angular-dialog.mjs.map +1 -0
  367. package/fesm2022/slotted-angular-divider.mjs +76 -0
  368. package/fesm2022/slotted-angular-divider.mjs.map +1 -0
  369. package/fesm2022/slotted-angular-drawer.mjs +1397 -0
  370. package/fesm2022/slotted-angular-drawer.mjs.map +1 -0
  371. package/fesm2022/slotted-angular-entity-picker.mjs +1987 -0
  372. package/fesm2022/slotted-angular-entity-picker.mjs.map +1 -0
  373. package/fesm2022/slotted-angular-event-calendar.mjs +2934 -0
  374. package/fesm2022/slotted-angular-event-calendar.mjs.map +1 -0
  375. package/fesm2022/slotted-angular-field-group.mjs +301 -0
  376. package/fesm2022/slotted-angular-field-group.mjs.map +1 -0
  377. package/fesm2022/slotted-angular-field.mjs +928 -0
  378. package/fesm2022/slotted-angular-field.mjs.map +1 -0
  379. package/fesm2022/slotted-angular-filter-bar.mjs +3107 -0
  380. package/fesm2022/slotted-angular-filter-bar.mjs.map +1 -0
  381. package/fesm2022/slotted-angular-form.mjs +592 -0
  382. package/fesm2022/slotted-angular-form.mjs.map +1 -0
  383. package/fesm2022/slotted-angular-fullscreen.mjs +314 -0
  384. package/fesm2022/slotted-angular-fullscreen.mjs.map +1 -0
  385. package/fesm2022/slotted-angular-grid.mjs +58 -0
  386. package/fesm2022/slotted-angular-grid.mjs.map +1 -0
  387. package/fesm2022/slotted-angular-highlight.mjs +123 -0
  388. package/fesm2022/slotted-angular-highlight.mjs.map +1 -0
  389. package/fesm2022/slotted-angular-hover-card.mjs +326 -0
  390. package/fesm2022/slotted-angular-hover-card.mjs.map +1 -0
  391. package/fesm2022/slotted-angular-i18n.mjs +75 -0
  392. package/fesm2022/slotted-angular-i18n.mjs.map +1 -0
  393. package/fesm2022/slotted-angular-icon.mjs +232 -0
  394. package/fesm2022/slotted-angular-icon.mjs.map +1 -0
  395. package/fesm2022/slotted-angular-image.mjs +442 -0
  396. package/fesm2022/slotted-angular-image.mjs.map +1 -0
  397. package/fesm2022/slotted-angular-import-export-center.mjs +1792 -0
  398. package/fesm2022/slotted-angular-import-export-center.mjs.map +1 -0
  399. package/fesm2022/slotted-angular-inline-message.mjs +280 -0
  400. package/fesm2022/slotted-angular-inline-message.mjs.map +1 -0
  401. package/fesm2022/slotted-angular-inline.mjs +52 -0
  402. package/fesm2022/slotted-angular-inline.mjs.map +1 -0
  403. package/fesm2022/slotted-angular-kbd.mjs +284 -0
  404. package/fesm2022/slotted-angular-kbd.mjs.map +1 -0
  405. package/fesm2022/slotted-angular-link.mjs +182 -0
  406. package/fesm2022/slotted-angular-link.mjs.map +1 -0
  407. package/fesm2022/slotted-angular-list-item.mjs +367 -0
  408. package/fesm2022/slotted-angular-list-item.mjs.map +1 -0
  409. package/fesm2022/slotted-angular-list.mjs +256 -0
  410. package/fesm2022/slotted-angular-list.mjs.map +1 -0
  411. package/fesm2022/slotted-angular-listbox.mjs +1274 -0
  412. package/fesm2022/slotted-angular-listbox.mjs.map +1 -0
  413. package/fesm2022/slotted-angular-loading-overlay.mjs +451 -0
  414. package/fesm2022/slotted-angular-loading-overlay.mjs.map +1 -0
  415. package/fesm2022/slotted-angular-markdown.mjs +914 -0
  416. package/fesm2022/slotted-angular-markdown.mjs.map +1 -0
  417. package/fesm2022/slotted-angular-menu.mjs +1211 -0
  418. package/fesm2022/slotted-angular-menu.mjs.map +1 -0
  419. package/fesm2022/slotted-angular-menubar.mjs +230 -0
  420. package/fesm2022/slotted-angular-menubar.mjs.map +1 -0
  421. package/fesm2022/slotted-angular-message-scroller.mjs +378 -0
  422. package/fesm2022/slotted-angular-message-scroller.mjs.map +1 -0
  423. package/fesm2022/slotted-angular-message.mjs +866 -0
  424. package/fesm2022/slotted-angular-message.mjs.map +1 -0
  425. package/fesm2022/slotted-angular-multi-select.mjs +1939 -0
  426. package/fesm2022/slotted-angular-multi-select.mjs.map +1 -0
  427. package/fesm2022/slotted-angular-navigation-menu.mjs +770 -0
  428. package/fesm2022/slotted-angular-navigation-menu.mjs.map +1 -0
  429. package/fesm2022/slotted-angular-notification-center.mjs +1172 -0
  430. package/fesm2022/slotted-angular-notification-center.mjs.map +1 -0
  431. package/fesm2022/slotted-angular-number-field.mjs +966 -0
  432. package/fesm2022/slotted-angular-number-field.mjs.map +1 -0
  433. package/fesm2022/slotted-angular-otp-input.mjs +629 -0
  434. package/fesm2022/slotted-angular-otp-input.mjs.map +1 -0
  435. package/fesm2022/slotted-angular-page-header.mjs +788 -0
  436. package/fesm2022/slotted-angular-page-header.mjs.map +1 -0
  437. package/fesm2022/slotted-angular-page.mjs +255 -0
  438. package/fesm2022/slotted-angular-page.mjs.map +1 -0
  439. package/fesm2022/slotted-angular-pagination.mjs +562 -0
  440. package/fesm2022/slotted-angular-pagination.mjs.map +1 -0
  441. package/fesm2022/slotted-angular-popover.mjs +799 -0
  442. package/fesm2022/slotted-angular-popover.mjs.map +1 -0
  443. package/fesm2022/slotted-angular-progress-indicator.mjs +572 -0
  444. package/fesm2022/slotted-angular-progress-indicator.mjs.map +1 -0
  445. package/fesm2022/slotted-angular-prompt-composer.mjs +596 -0
  446. package/fesm2022/slotted-angular-prompt-composer.mjs.map +1 -0
  447. package/fesm2022/slotted-angular-prose.mjs +314 -0
  448. package/fesm2022/slotted-angular-prose.mjs.map +1 -0
  449. package/fesm2022/slotted-angular-radio-group.mjs +469 -0
  450. package/fesm2022/slotted-angular-radio-group.mjs.map +1 -0
  451. package/fesm2022/slotted-angular-rating.mjs +1174 -0
  452. package/fesm2022/slotted-angular-rating.mjs.map +1 -0
  453. package/fesm2022/slotted-angular-result-state.mjs +330 -0
  454. package/fesm2022/slotted-angular-result-state.mjs.map +1 -0
  455. package/fesm2022/slotted-angular-saved-views.mjs +877 -0
  456. package/fesm2022/slotted-angular-saved-views.mjs.map +1 -0
  457. package/fesm2022/slotted-angular-scroll-area.mjs +294 -0
  458. package/fesm2022/slotted-angular-scroll-area.mjs.map +1 -0
  459. package/fesm2022/slotted-angular-section.mjs +266 -0
  460. package/fesm2022/slotted-angular-section.mjs.map +1 -0
  461. package/fesm2022/slotted-angular-segmented-control.mjs +454 -0
  462. package/fesm2022/slotted-angular-segmented-control.mjs.map +1 -0
  463. package/fesm2022/slotted-angular-select.mjs +1899 -0
  464. package/fesm2022/slotted-angular-select.mjs.map +1 -0
  465. package/fesm2022/slotted-angular-side-navigation.mjs +1042 -0
  466. package/fesm2022/slotted-angular-side-navigation.mjs.map +1 -0
  467. package/fesm2022/slotted-angular-skeleton.mjs +316 -0
  468. package/fesm2022/slotted-angular-skeleton.mjs.map +1 -0
  469. package/fesm2022/slotted-angular-slider.mjs +586 -0
  470. package/fesm2022/slotted-angular-slider.mjs.map +1 -0
  471. package/fesm2022/slotted-angular-sparkline.mjs +235 -0
  472. package/fesm2022/slotted-angular-sparkline.mjs.map +1 -0
  473. package/fesm2022/slotted-angular-split-button.mjs +331 -0
  474. package/fesm2022/slotted-angular-split-button.mjs.map +1 -0
  475. package/fesm2022/slotted-angular-splitter.mjs +516 -0
  476. package/fesm2022/slotted-angular-splitter.mjs.map +1 -0
  477. package/fesm2022/slotted-angular-stack.mjs +48 -0
  478. package/fesm2022/slotted-angular-stack.mjs.map +1 -0
  479. package/fesm2022/slotted-angular-stat-card.mjs +478 -0
  480. package/fesm2022/slotted-angular-stat-card.mjs.map +1 -0
  481. package/fesm2022/slotted-angular-status-indicator.mjs +155 -0
  482. package/fesm2022/slotted-angular-status-indicator.mjs.map +1 -0
  483. package/fesm2022/slotted-angular-stepper.mjs +536 -0
  484. package/fesm2022/slotted-angular-stepper.mjs.map +1 -0
  485. package/fesm2022/slotted-angular-switch.mjs +447 -0
  486. package/fesm2022/slotted-angular-switch.mjs.map +1 -0
  487. package/fesm2022/slotted-angular-table-of-contents.mjs +750 -0
  488. package/fesm2022/slotted-angular-table-of-contents.mjs.map +1 -0
  489. package/fesm2022/slotted-angular-table.mjs +2518 -0
  490. package/fesm2022/slotted-angular-table.mjs.map +1 -0
  491. package/fesm2022/slotted-angular-tabs.mjs +829 -0
  492. package/fesm2022/slotted-angular-tabs.mjs.map +1 -0
  493. package/fesm2022/slotted-angular-tag.mjs +595 -0
  494. package/fesm2022/slotted-angular-tag.mjs.map +1 -0
  495. package/fesm2022/slotted-angular-tags-input.mjs +1211 -0
  496. package/fesm2022/slotted-angular-tags-input.mjs.map +1 -0
  497. package/fesm2022/slotted-angular-text-field.mjs +674 -0
  498. package/fesm2022/slotted-angular-text-field.mjs.map +1 -0
  499. package/fesm2022/slotted-angular-textarea.mjs +275 -0
  500. package/fesm2022/slotted-angular-textarea.mjs.map +1 -0
  501. package/fesm2022/slotted-angular-theme.mjs +45 -0
  502. package/fesm2022/slotted-angular-theme.mjs.map +1 -0
  503. package/fesm2022/slotted-angular-time-field.mjs +895 -0
  504. package/fesm2022/slotted-angular-time-field.mjs.map +1 -0
  505. package/fesm2022/slotted-angular-time-picker.mjs +856 -0
  506. package/fesm2022/slotted-angular-time-picker.mjs.map +1 -0
  507. package/fesm2022/slotted-angular-time-range-picker.mjs +1534 -0
  508. package/fesm2022/slotted-angular-time-range-picker.mjs.map +1 -0
  509. package/fesm2022/slotted-angular-timeline.mjs +928 -0
  510. package/fesm2022/slotted-angular-timeline.mjs.map +1 -0
  511. package/fesm2022/slotted-angular-toast.mjs +917 -0
  512. package/fesm2022/slotted-angular-toast.mjs.map +1 -0
  513. package/fesm2022/slotted-angular-toggle-group.mjs +311 -0
  514. package/fesm2022/slotted-angular-toggle-group.mjs.map +1 -0
  515. package/fesm2022/slotted-angular-toggle.mjs +162 -0
  516. package/fesm2022/slotted-angular-toggle.mjs.map +1 -0
  517. package/fesm2022/slotted-angular-toolbar.mjs +536 -0
  518. package/fesm2022/slotted-angular-toolbar.mjs.map +1 -0
  519. package/fesm2022/slotted-angular-tooltip.mjs +798 -0
  520. package/fesm2022/slotted-angular-tooltip.mjs.map +1 -0
  521. package/fesm2022/slotted-angular-top-navigation.mjs +1308 -0
  522. package/fesm2022/slotted-angular-top-navigation.mjs.map +1 -0
  523. package/fesm2022/slotted-angular-tour.mjs +1330 -0
  524. package/fesm2022/slotted-angular-tour.mjs.map +1 -0
  525. package/fesm2022/slotted-angular-transfer.mjs +1406 -0
  526. package/fesm2022/slotted-angular-transfer.mjs.map +1 -0
  527. package/fesm2022/slotted-angular-tree.mjs +1448 -0
  528. package/fesm2022/slotted-angular-tree.mjs.map +1 -0
  529. package/fesm2022/slotted-angular-typography.mjs +184 -0
  530. package/fesm2022/slotted-angular-typography.mjs.map +1 -0
  531. package/fesm2022/slotted-angular-upload.mjs +1523 -0
  532. package/fesm2022/slotted-angular-upload.mjs.map +1 -0
  533. package/fesm2022/slotted-angular-visually-hidden.mjs +32 -0
  534. package/fesm2022/slotted-angular-visually-hidden.mjs.map +1 -0
  535. package/fesm2022/slotted-angular-wizard.mjs +1715 -0
  536. package/fesm2022/slotted-angular-wizard.mjs.map +1 -0
  537. package/fesm2022/slotted-angular.mjs +4 -0
  538. package/fesm2022/slotted-angular.mjs.map +1 -0
  539. package/package.json +537 -3
  540. package/types/slotted-angular-accordion.d.ts +156 -0
  541. package/types/slotted-angular-accordion.d.ts.map +1 -0
  542. package/types/slotted-angular-action-bar.d.ts +291 -0
  543. package/types/slotted-angular-action-bar.d.ts.map +1 -0
  544. package/types/slotted-angular-action-sheet.d.ts +294 -0
  545. package/types/slotted-angular-action-sheet.d.ts.map +1 -0
  546. package/types/slotted-angular-alert.d.ts +214 -0
  547. package/types/slotted-angular-alert.d.ts.map +1 -0
  548. package/types/slotted-angular-app-shell.d.ts +549 -0
  549. package/types/slotted-angular-app-shell.d.ts.map +1 -0
  550. package/types/slotted-angular-aspect-ratio.d.ts +57 -0
  551. package/types/slotted-angular-aspect-ratio.d.ts.map +1 -0
  552. package/types/slotted-angular-attachment.d.ts +294 -0
  553. package/types/slotted-angular-attachment.d.ts.map +1 -0
  554. package/types/slotted-angular-avatar-group.d.ts +119 -0
  555. package/types/slotted-angular-avatar-group.d.ts.map +1 -0
  556. package/types/slotted-angular-avatar.d.ts +202 -0
  557. package/types/slotted-angular-avatar.d.ts.map +1 -0
  558. package/types/slotted-angular-badge.d.ts +166 -0
  559. package/types/slotted-angular-badge.d.ts.map +1 -0
  560. package/types/slotted-angular-breadcrumb.d.ts +251 -0
  561. package/types/slotted-angular-breadcrumb.d.ts.map +1 -0
  562. package/types/slotted-angular-button-group.d.ts +89 -0
  563. package/types/slotted-angular-button-group.d.ts.map +1 -0
  564. package/types/slotted-angular-button.d.ts +390 -0
  565. package/types/slotted-angular-button.d.ts.map +1 -0
  566. package/types/slotted-angular-calendar.d.ts +280 -0
  567. package/types/slotted-angular-calendar.d.ts.map +1 -0
  568. package/types/slotted-angular-card.d.ts +140 -0
  569. package/types/slotted-angular-card.d.ts.map +1 -0
  570. package/types/slotted-angular-carousel.d.ts +288 -0
  571. package/types/slotted-angular-carousel.d.ts.map +1 -0
  572. package/types/slotted-angular-cascader.d.ts +351 -0
  573. package/types/slotted-angular-cascader.d.ts.map +1 -0
  574. package/types/slotted-angular-chart.d.ts +319 -0
  575. package/types/slotted-angular-chart.d.ts.map +1 -0
  576. package/types/slotted-angular-checkbox-group.d.ts +156 -0
  577. package/types/slotted-angular-checkbox-group.d.ts.map +1 -0
  578. package/types/slotted-angular-checkbox.d.ts +197 -0
  579. package/types/slotted-angular-checkbox.d.ts.map +1 -0
  580. package/types/slotted-angular-code-block.d.ts +158 -0
  581. package/types/slotted-angular-code-block.d.ts.map +1 -0
  582. package/types/slotted-angular-collapsible.d.ts +272 -0
  583. package/types/slotted-angular-collapsible.d.ts.map +1 -0
  584. package/types/slotted-angular-color-picker.d.ts +181 -0
  585. package/types/slotted-angular-color-picker.d.ts.map +1 -0
  586. package/types/slotted-angular-column-manager.d.ts +200 -0
  587. package/types/slotted-angular-column-manager.d.ts.map +1 -0
  588. package/types/slotted-angular-combobox.d.ts +449 -0
  589. package/types/slotted-angular-combobox.d.ts.map +1 -0
  590. package/types/slotted-angular-command-palette.d.ts +256 -0
  591. package/types/slotted-angular-command-palette.d.ts.map +1 -0
  592. package/types/slotted-angular-container.d.ts +84 -0
  593. package/types/slotted-angular-container.d.ts.map +1 -0
  594. package/types/slotted-angular-context-menu.d.ts +84 -0
  595. package/types/slotted-angular-context-menu.d.ts.map +1 -0
  596. package/types/slotted-angular-currency-field.d.ts +480 -0
  597. package/types/slotted-angular-currency-field.d.ts.map +1 -0
  598. package/types/slotted-angular-dashboard-grid.d.ts +341 -0
  599. package/types/slotted-angular-dashboard-grid.d.ts.map +1 -0
  600. package/types/slotted-angular-data-grid.d.ts +1077 -0
  601. package/types/slotted-angular-data-grid.d.ts.map +1 -0
  602. package/types/slotted-angular-data-list.d.ts +272 -0
  603. package/types/slotted-angular-data-list.d.ts.map +1 -0
  604. package/types/slotted-angular-date-field.d.ts +320 -0
  605. package/types/slotted-angular-date-field.d.ts.map +1 -0
  606. package/types/slotted-angular-date-picker.d.ts +224 -0
  607. package/types/slotted-angular-date-picker.d.ts.map +1 -0
  608. package/types/slotted-angular-date-range-picker.d.ts +310 -0
  609. package/types/slotted-angular-date-range-picker.d.ts.map +1 -0
  610. package/types/slotted-angular-datetime-field.d.ts +362 -0
  611. package/types/slotted-angular-datetime-field.d.ts.map +1 -0
  612. package/types/slotted-angular-datetime-picker.d.ts +370 -0
  613. package/types/slotted-angular-datetime-picker.d.ts.map +1 -0
  614. package/types/slotted-angular-datetime-range-picker.d.ts +459 -0
  615. package/types/slotted-angular-datetime-range-picker.d.ts.map +1 -0
  616. package/types/slotted-angular-description-list.d.ts +281 -0
  617. package/types/slotted-angular-description-list.d.ts.map +1 -0
  618. package/types/slotted-angular-detail-panel.d.ts +240 -0
  619. package/types/slotted-angular-detail-panel.d.ts.map +1 -0
  620. package/types/slotted-angular-dialog.d.ts +497 -0
  621. package/types/slotted-angular-dialog.d.ts.map +1 -0
  622. package/types/slotted-angular-divider.d.ts +40 -0
  623. package/types/slotted-angular-divider.d.ts.map +1 -0
  624. package/types/slotted-angular-drawer.d.ts +532 -0
  625. package/types/slotted-angular-drawer.d.ts.map +1 -0
  626. package/types/slotted-angular-entity-picker.d.ts +338 -0
  627. package/types/slotted-angular-entity-picker.d.ts.map +1 -0
  628. package/types/slotted-angular-event-calendar.d.ts +574 -0
  629. package/types/slotted-angular-event-calendar.d.ts.map +1 -0
  630. package/types/slotted-angular-field-group.d.ts +152 -0
  631. package/types/slotted-angular-field-group.d.ts.map +1 -0
  632. package/types/slotted-angular-field.d.ts +535 -0
  633. package/types/slotted-angular-field.d.ts.map +1 -0
  634. package/types/slotted-angular-filter-bar.d.ts +573 -0
  635. package/types/slotted-angular-filter-bar.d.ts.map +1 -0
  636. package/types/slotted-angular-form.d.ts +298 -0
  637. package/types/slotted-angular-form.d.ts.map +1 -0
  638. package/types/slotted-angular-fullscreen.d.ts +145 -0
  639. package/types/slotted-angular-fullscreen.d.ts.map +1 -0
  640. package/types/slotted-angular-grid.d.ts +50 -0
  641. package/types/slotted-angular-grid.d.ts.map +1 -0
  642. package/types/slotted-angular-highlight.d.ts +93 -0
  643. package/types/slotted-angular-highlight.d.ts.map +1 -0
  644. package/types/slotted-angular-hover-card.d.ts +140 -0
  645. package/types/slotted-angular-hover-card.d.ts.map +1 -0
  646. package/types/slotted-angular-i18n.d.ts +46 -0
  647. package/types/slotted-angular-i18n.d.ts.map +1 -0
  648. package/types/slotted-angular-icon.d.ts +94 -0
  649. package/types/slotted-angular-icon.d.ts.map +1 -0
  650. package/types/slotted-angular-image.d.ts +251 -0
  651. package/types/slotted-angular-image.d.ts.map +1 -0
  652. package/types/slotted-angular-import-export-center.d.ts +351 -0
  653. package/types/slotted-angular-import-export-center.d.ts.map +1 -0
  654. package/types/slotted-angular-inline-message.d.ts +195 -0
  655. package/types/slotted-angular-inline-message.d.ts.map +1 -0
  656. package/types/slotted-angular-inline.d.ts +41 -0
  657. package/types/slotted-angular-inline.d.ts.map +1 -0
  658. package/types/slotted-angular-kbd.d.ts +174 -0
  659. package/types/slotted-angular-kbd.d.ts.map +1 -0
  660. package/types/slotted-angular-link.d.ts +94 -0
  661. package/types/slotted-angular-link.d.ts.map +1 -0
  662. package/types/slotted-angular-list-item.d.ts +210 -0
  663. package/types/slotted-angular-list-item.d.ts.map +1 -0
  664. package/types/slotted-angular-list.d.ts +176 -0
  665. package/types/slotted-angular-list.d.ts.map +1 -0
  666. package/types/slotted-angular-listbox.d.ts +470 -0
  667. package/types/slotted-angular-listbox.d.ts.map +1 -0
  668. package/types/slotted-angular-loading-overlay.d.ts +219 -0
  669. package/types/slotted-angular-loading-overlay.d.ts.map +1 -0
  670. package/types/slotted-angular-markdown.d.ts +172 -0
  671. package/types/slotted-angular-markdown.d.ts.map +1 -0
  672. package/types/slotted-angular-menu.d.ts +448 -0
  673. package/types/slotted-angular-menu.d.ts.map +1 -0
  674. package/types/slotted-angular-menubar.d.ts +90 -0
  675. package/types/slotted-angular-menubar.d.ts.map +1 -0
  676. package/types/slotted-angular-message-scroller.d.ts +151 -0
  677. package/types/slotted-angular-message-scroller.d.ts.map +1 -0
  678. package/types/slotted-angular-message.d.ts +348 -0
  679. package/types/slotted-angular-message.d.ts.map +1 -0
  680. package/types/slotted-angular-multi-select.d.ts +462 -0
  681. package/types/slotted-angular-multi-select.d.ts.map +1 -0
  682. package/types/slotted-angular-navigation-menu.d.ts +309 -0
  683. package/types/slotted-angular-navigation-menu.d.ts.map +1 -0
  684. package/types/slotted-angular-notification-center.d.ts +318 -0
  685. package/types/slotted-angular-notification-center.d.ts.map +1 -0
  686. package/types/slotted-angular-number-field.d.ts +402 -0
  687. package/types/slotted-angular-number-field.d.ts.map +1 -0
  688. package/types/slotted-angular-otp-input.d.ts +286 -0
  689. package/types/slotted-angular-otp-input.d.ts.map +1 -0
  690. package/types/slotted-angular-page-header.d.ts +334 -0
  691. package/types/slotted-angular-page-header.d.ts.map +1 -0
  692. package/types/slotted-angular-page.d.ts +141 -0
  693. package/types/slotted-angular-page.d.ts.map +1 -0
  694. package/types/slotted-angular-pagination.d.ts +213 -0
  695. package/types/slotted-angular-pagination.d.ts.map +1 -0
  696. package/types/slotted-angular-popover.d.ts +366 -0
  697. package/types/slotted-angular-popover.d.ts.map +1 -0
  698. package/types/slotted-angular-progress-indicator.d.ts +312 -0
  699. package/types/slotted-angular-progress-indicator.d.ts.map +1 -0
  700. package/types/slotted-angular-prompt-composer.d.ts +242 -0
  701. package/types/slotted-angular-prompt-composer.d.ts.map +1 -0
  702. package/types/slotted-angular-prose.d.ts +171 -0
  703. package/types/slotted-angular-prose.d.ts.map +1 -0
  704. package/types/slotted-angular-radio-group.d.ts +268 -0
  705. package/types/slotted-angular-radio-group.d.ts.map +1 -0
  706. package/types/slotted-angular-rating.d.ts +374 -0
  707. package/types/slotted-angular-rating.d.ts.map +1 -0
  708. package/types/slotted-angular-result-state.d.ts +217 -0
  709. package/types/slotted-angular-result-state.d.ts.map +1 -0
  710. package/types/slotted-angular-saved-views.d.ts +198 -0
  711. package/types/slotted-angular-saved-views.d.ts.map +1 -0
  712. package/types/slotted-angular-scroll-area.d.ts +186 -0
  713. package/types/slotted-angular-scroll-area.d.ts.map +1 -0
  714. package/types/slotted-angular-section.d.ts +143 -0
  715. package/types/slotted-angular-section.d.ts.map +1 -0
  716. package/types/slotted-angular-segmented-control.d.ts +251 -0
  717. package/types/slotted-angular-segmented-control.d.ts.map +1 -0
  718. package/types/slotted-angular-select.d.ts +507 -0
  719. package/types/slotted-angular-select.d.ts.map +1 -0
  720. package/types/slotted-angular-side-navigation.d.ts +373 -0
  721. package/types/slotted-angular-side-navigation.d.ts.map +1 -0
  722. package/types/slotted-angular-skeleton.d.ts +198 -0
  723. package/types/slotted-angular-skeleton.d.ts.map +1 -0
  724. package/types/slotted-angular-slider.d.ts +216 -0
  725. package/types/slotted-angular-slider.d.ts.map +1 -0
  726. package/types/slotted-angular-sparkline.d.ts +106 -0
  727. package/types/slotted-angular-sparkline.d.ts.map +1 -0
  728. package/types/slotted-angular-split-button.d.ts +180 -0
  729. package/types/slotted-angular-split-button.d.ts.map +1 -0
  730. package/types/slotted-angular-splitter.d.ts +206 -0
  731. package/types/slotted-angular-splitter.d.ts.map +1 -0
  732. package/types/slotted-angular-stack.d.ts +38 -0
  733. package/types/slotted-angular-stack.d.ts.map +1 -0
  734. package/types/slotted-angular-stat-card.d.ts +232 -0
  735. package/types/slotted-angular-stat-card.d.ts.map +1 -0
  736. package/types/slotted-angular-status-indicator.d.ts +106 -0
  737. package/types/slotted-angular-status-indicator.d.ts.map +1 -0
  738. package/types/slotted-angular-stepper.d.ts +198 -0
  739. package/types/slotted-angular-stepper.d.ts.map +1 -0
  740. package/types/slotted-angular-switch.d.ts +243 -0
  741. package/types/slotted-angular-switch.d.ts.map +1 -0
  742. package/types/slotted-angular-table-of-contents.d.ts +210 -0
  743. package/types/slotted-angular-table-of-contents.d.ts.map +1 -0
  744. package/types/slotted-angular-table.d.ts +888 -0
  745. package/types/slotted-angular-table.d.ts.map +1 -0
  746. package/types/slotted-angular-tabs.d.ts +340 -0
  747. package/types/slotted-angular-tabs.d.ts.map +1 -0
  748. package/types/slotted-angular-tag.d.ts +279 -0
  749. package/types/slotted-angular-tag.d.ts.map +1 -0
  750. package/types/slotted-angular-tags-input.d.ts +302 -0
  751. package/types/slotted-angular-tags-input.d.ts.map +1 -0
  752. package/types/slotted-angular-text-field.d.ts +334 -0
  753. package/types/slotted-angular-text-field.d.ts.map +1 -0
  754. package/types/slotted-angular-textarea.d.ts +150 -0
  755. package/types/slotted-angular-textarea.d.ts.map +1 -0
  756. package/types/slotted-angular-theme.d.ts +26 -0
  757. package/types/slotted-angular-theme.d.ts.map +1 -0
  758. package/types/slotted-angular-time-field.d.ts +300 -0
  759. package/types/slotted-angular-time-field.d.ts.map +1 -0
  760. package/types/slotted-angular-time-picker.d.ts +260 -0
  761. package/types/slotted-angular-time-picker.d.ts.map +1 -0
  762. package/types/slotted-angular-time-range-picker.d.ts +401 -0
  763. package/types/slotted-angular-time-range-picker.d.ts.map +1 -0
  764. package/types/slotted-angular-timeline.d.ts +329 -0
  765. package/types/slotted-angular-timeline.d.ts.map +1 -0
  766. package/types/slotted-angular-toast.d.ts +340 -0
  767. package/types/slotted-angular-toast.d.ts.map +1 -0
  768. package/types/slotted-angular-toggle-group.d.ts +167 -0
  769. package/types/slotted-angular-toggle-group.d.ts.map +1 -0
  770. package/types/slotted-angular-toggle.d.ts +106 -0
  771. package/types/slotted-angular-toggle.d.ts.map +1 -0
  772. package/types/slotted-angular-toolbar.d.ts +252 -0
  773. package/types/slotted-angular-toolbar.d.ts.map +1 -0
  774. package/types/slotted-angular-tooltip.d.ts +388 -0
  775. package/types/slotted-angular-tooltip.d.ts.map +1 -0
  776. package/types/slotted-angular-top-navigation.d.ts +442 -0
  777. package/types/slotted-angular-top-navigation.d.ts.map +1 -0
  778. package/types/slotted-angular-tour.d.ts +440 -0
  779. package/types/slotted-angular-tour.d.ts.map +1 -0
  780. package/types/slotted-angular-transfer.d.ts +296 -0
  781. package/types/slotted-angular-transfer.d.ts.map +1 -0
  782. package/types/slotted-angular-tree.d.ts +499 -0
  783. package/types/slotted-angular-tree.d.ts.map +1 -0
  784. package/types/slotted-angular-typography.d.ts +89 -0
  785. package/types/slotted-angular-typography.d.ts.map +1 -0
  786. package/types/slotted-angular-upload.d.ts +365 -0
  787. package/types/slotted-angular-upload.d.ts.map +1 -0
  788. package/types/slotted-angular-visually-hidden.d.ts +19 -0
  789. package/types/slotted-angular-visually-hidden.d.ts.map +1 -0
  790. package/types/slotted-angular-wizard.d.ts +441 -0
  791. package/types/slotted-angular-wizard.d.ts.map +1 -0
  792. package/types/slotted-angular.d.ts +3 -0
  793. package/types/slotted-angular.d.ts.map +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slotted-angular-chart.mjs","sources":["../../chart/src/chart-defaults.ts","../../chart/src/chart-templates.ts","../../chart/src/chart.ts","../../chart/src/chart.html","../../chart/src/slotted-angular-chart.ts"],"sourcesContent":["import { inject, InjectionToken } from '@angular/core';\nimport type { ChartGrid } from '@slotted/core/chart';\n\nexport type ChartSize = 'sm' | 'md' | 'lg';\nexport type ChartVariant = 'plain' | 'card';\nexport type ChartPalette = 'categorical' | 'sequential' | 'focus';\nexport type ChartToolbar = 'visible' | 'hover' | 'none';\nexport type ChartRenderer = 'auto' | 'svg' | 'canvas';\nexport type ChartLegendOverflow = 'collapse' | 'wrap';\n\nexport interface ChartTooltipSettings {\n readonly sort?: 'none' | 'asc' | 'desc';\n readonly total?: boolean;\n readonly indicator?: 'dot' | 'line' | 'none';\n}\n\n/** What every chart in an application does before any of them states its own. */\nexport interface ChartDefaults {\n size?: ChartSize;\n variant?: ChartVariant;\n palette?: ChartPalette;\n toolbar?: ChartToolbar;\n renderer?: ChartRenderer;\n grid?: ChartGrid;\n legendOverflow?: ChartLegendOverflow;\n tooltip?: ChartTooltipSettings;\n animate?: boolean;\n}\n\nexport const CHART_DEFAULTS_TOKEN = new InjectionToken<ChartDefaults>('slotted chart defaults', {\n providedIn: 'root',\n factory: (): ChartDefaults => ({}),\n});\n\n/**\n * An application decides once how its charts look — the tile or the plain\n * form, the palette, the toolbar — and every chart inherits the decision. A\n * chart that states any of them still wins: an explicit input is never\n * overridden by the token. The words and the locale come from the language in\n * force (`provideSlotted`).\n */\nexport function provideChartDefaults(defaults: ChartDefaults) {\n return { provide: CHART_DEFAULTS_TOKEN, useValue: defaults };\n}\n\nexport function injectChartDefaults(): ChartDefaults {\n return inject(CHART_DEFAULTS_TOKEN);\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\nimport type { ChartLegendEntry, ChartModel, ChartTooltipContext } from '@slotted/core/chart';\n\n/** What a `slChartTooltip` template is handed. */\nexport interface ChartTooltipTemplateContext {\n $implicit: ChartTooltipContext;\n model: ChartModel;\n}\n\n/** Replaces the tooltip's content. The box, its place and its timing stay the chart's. */\n@Directive({ selector: 'ng-template[slChartTooltip]', standalone: true })\nexport class SlChartTooltip {\n readonly template = inject<TemplateRef<ChartTooltipTemplateContext>>(TemplateRef);\n}\n\n/** What a `slChartLegendItem` template is handed for one entry. */\nexport interface ChartLegendItemTemplateContext {\n $implicit: ChartLegendEntry;\n value: string;\n current: boolean;\n}\n\n/**\n * Replaces what one legend item holds. The item — a toggle with its pressed\n * state, its colour and its place in the roving tab stop — stays the chart's.\n */\n@Directive({ selector: 'ng-template[slChartLegendItem]', standalone: true })\nexport class SlChartLegendItem {\n readonly template = inject<TemplateRef<ChartLegendItemTemplateContext>>(TemplateRef);\n}\n\n/** Replaces the words in a donut's centre. */\n@Directive({ selector: 'ng-template[slChartCenter]', standalone: true })\nexport class SlChartCenter {\n readonly template = inject<TemplateRef<{ $implicit: ChartModel }>>(TemplateRef);\n}\n\n/** Replaces the empty plot: `no-data`, or `all-hidden`. */\n@Directive({ selector: 'ng-template[slChartEmpty]', standalone: true })\nexport class SlChartEmpty {\n readonly template = inject<TemplateRef<{ $implicit: 'no-data' | 'all-hidden' }>>(TemplateRef);\n}\n\n/** Replaces the failed plot. */\n@Directive({ selector: 'ng-template[slChartError]', standalone: true })\nexport class SlChartError {\n readonly template = inject<TemplateRef<unknown>>(TemplateRef);\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n afterNextRender,\n afterRenderEffect,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n DestroyRef,\n effect,\n ElementRef,\n inject,\n Injectable,\n InjectionToken,\n input,\n model,\n output,\n signal,\n untracked,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { injectLocale, injectMessages } from '@slotted/angular/i18n';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\nimport {\n categoryIndex,\n chartKeyAction,\n chartTable,\n chartToCsv,\n createChartModel,\n createLatestAnnouncer,\n defaultTrigger,\n describeChart,\n describePoint,\n describeZoom,\n firstPoint,\n FULL_ZOOM,\n isDrawn,\n isFullZoom,\n observeChartTheme,\n placeLayer,\n placeTooltip,\n readChartTheme,\n sameTheme,\n seriesOf,\n toggleHidden,\n TOOLTIP_DOCK_WIDTH,\n tooltipContext,\n trackModality,\n} from '@slotted/core/chart';\nimport { chartMessages, type ChartMessages, type PartialMessages } from '@slotted/core/i18n';\nimport type {\n ChartAnnotation,\n ChartColor,\n ChartGrid,\n ChartLegendEntry,\n ChartModel,\n ChartOrientation,\n ChartPoint,\n ChartRecord,\n ChartSeries,\n ChartSpec,\n ChartStackMode,\n ChartTheme,\n ChartTooltipContext,\n ChartTrigger,\n ChartXAxis,\n ChartYAxis,\n ChartZoom,\n} from '@slotted/core/chart';\nimport { mountChartEngine } from '@slotted/core/chart-echarts';\nimport type { ChartEngine, ChartPointLocation } from '@slotted/core/chart-echarts';\nimport { getLiveAnnouncer } from '@slotted/core/live-announcer';\nimport { collapseState } from '@slotted/core/overflow';\nimport { createControllable } from '@slotted/core/state';\nimport type { ChangeReason, ChangeRequest } from '@slotted/core/state';\n\nimport {\n injectChartDefaults,\n type ChartLegendOverflow,\n type ChartPalette,\n type ChartRenderer,\n type ChartSize,\n type ChartToolbar,\n type ChartTooltipSettings,\n type ChartVariant,\n} from './chart-defaults';\nimport {\n SlChartCenter,\n SlChartEmpty,\n SlChartError,\n SlChartLegendItem,\n SlChartTooltip,\n} from './chart-templates';\n\n/**\n * The engine a chart mounts. `@slotted/core/chart-echarts` by default; a test\n * provides a recording one, and an application could provide another that\n * answers the same three calls.\n */\nexport const CHART_ENGINE = new InjectionToken<typeof mountChartEngine>('slotted chart engine', {\n providedIn: 'root',\n factory: () => mountChartEngine,\n});\n\n/** Unique ids for the chart's parts, stable across a server render. */\n@Injectable({ providedIn: 'root' })\nexport class SlChartIdFactory {\n private count = 0;\n next() {\n this.count += 1;\n return `sl-chart-${this.count}`;\n }\n}\n\n/** The imperative actions a template cannot express. */\nexport interface ChartHandle {\n focus(): void;\n resetZoom(): void;\n toDataURL(): string | null;\n toCsv(): string;\n}\n\ninterface Overlay {\n readonly crosshair: (ChartPointLocation & { readonly isBand: boolean }) | null;\n readonly markers: readonly {\n readonly key: string;\n readonly color: ChartColor;\n readonly at: ChartPointLocation;\n readonly selected: boolean;\n readonly current: boolean;\n }[];\n readonly tooltip: ChartTooltipContext | null;\n readonly docked: boolean;\n}\n\nconst NO_OVERLAY: Overlay = { crosshair: null, markers: [], tooltip: null, docked: false };\nconst samePoint = (a: ChartPoint | null, b: ChartPoint | null) =>\n a === b || (a !== null && b !== null && a.series === b.series && a.key === b.key);\nconst sameList = (a: readonly string[], b: readonly string[]) =>\n a.length === b.length && a.every((value, index) => value === b[index]);\nconst sameZoom = (a: ChartZoom, b: ChartZoom) => a.start === b.start && a.end === b.end;\n\nfunction lastDrawn(values: readonly (number | null)[]) {\n for (let index = values.length - 1; index >= 0; index -= 1)\n if (values[index] !== null) return index;\n return -1;\n}\n\nfunction focusVisible(element: Element) {\n try {\n return element.matches(':focus-visible');\n } catch {\n return false;\n }\n}\n\n/**\n * A figure: a caption that names it, a toolbar of its own controls, a legend\n * of toggles, and a plot the engine draws marks into and the family draws\n * every interaction over. The engine is ECharts, loaded on demand by\n * `@slotted/core/chart-echarts`, one chunk per kind; everything a reader\n * operates is this component's template.\n *\n * Each mutable value is a `model()` — two-way, so a template binds it with\n * `[(hidden)]` — and each move is first asked through a `*ChangeRequest`\n * output carrying the reason and the event, which a handler may cancel. The\n * model, the keyboard, the text alternatives and the theme are\n * `@slotted/core/chart`'s, shared with the React binding.\n */\n@Component({\n selector: 'figure[slChart]',\n standalone: true,\n imports: [NgTemplateOutlet, SlGlyph, SlIcon],\n templateUrl: './chart.html',\n styleUrls: [\n '../../../styles/src/button/button.css',\n '../../../styles/src/result-state/result-state.css',\n '../../../styles/src/skeleton/skeleton.css',\n '../../../styles/src/chart/chart.css',\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slChart',\n host: {\n 'data-ui': 'chart',\n 'data-part': 'root',\n '[attr.title]': 'null',\n '[attr.data-size]': 'resolvedSize()',\n '[attr.data-variant]': 'resolvedVariant()',\n '[attr.data-palette]': 'resolvedPalette()',\n '[attr.data-toolbar]': 'resolvedToolbar()',\n '[attr.data-legend-overflow]': 'resolvedLegendOverflow()',\n '[attr.data-loading]': 'loading() ? \"\" : null',\n '[attr.data-fullscreen]': 'fullscreen() ? \"\" : null',\n '(keydown)': 'onRootKeyDown($event)',\n },\n})\nexport class SlChart implements ChartHandle {\n /* ── What is drawn ─────────────────────────────────────────────────── */\n readonly data = input<readonly ChartRecord[]>([]);\n readonly series = input<readonly ChartSeries[]>([]);\n readonly x = input<ChartXAxis | undefined>(undefined);\n readonly y = input<ChartYAxis | readonly [ChartYAxis, ChartYAxis] | undefined>(undefined);\n readonly orientation = input<ChartOrientation | undefined>(undefined);\n readonly stackMode = input<ChartStackMode | undefined>(undefined);\n readonly annotations = input<readonly ChartAnnotation[] | undefined>(undefined);\n readonly recordKey = input<string | undefined>(undefined);\n readonly locale = input<string | undefined>(undefined);\n\n /* ── The words around it ───────────────────────────────────────────── */\n /** The chart's name: the caption, and the plot's accessible name. The host's native tooltip is removed. */\n readonly title = input<string | undefined>(undefined);\n readonly description = input<string | undefined>(undefined);\n /** A note behind an information control beside the title. */\n readonly help = input<string | undefined>(undefined);\n /**\n * Words laid over the catalog of the language in force, key by key: the\n * toolbar, the legend, the states and the sentences a screen reader hears.\n */\n readonly messages = input<PartialMessages<ChartMessages> | undefined>(undefined);\n\n /* ── How it looks ──────────────────────────────────────────────────── */\n readonly size = input<ChartSize | undefined>(undefined);\n readonly variant = input<ChartVariant | undefined>(undefined);\n readonly palette = input<ChartPalette | undefined>(undefined);\n readonly toolbar = input<ChartToolbar | undefined>(undefined);\n readonly grid = input<ChartGrid | undefined>(undefined);\n readonly texture = input(false, { transform: booleanAttribute });\n readonly renderer = input<ChartRenderer | undefined>(undefined);\n readonly sampling = input<'auto' | 'none' | undefined>(undefined);\n readonly animate = input<boolean | undefined>(undefined);\n readonly legend = input(true, { transform: booleanAttribute });\n readonly legendInteractive = input(true, { transform: booleanAttribute });\n readonly legendValues = input(false, { transform: booleanAttribute });\n readonly legendOverflow = input<ChartLegendOverflow | undefined>(undefined);\n readonly trigger = input<ChartTrigger | undefined>(undefined);\n readonly tooltip = input<ChartTooltipSettings | undefined>(undefined);\n readonly zoomable = input(false, { transform: booleanAttribute });\n readonly selectable = input(false, { transform: booleanAttribute });\n readonly loading = input(false, { transform: booleanAttribute });\n readonly error = input(false, { transform: booleanAttribute });\n /** The engine's option, before it is drawn: the escape hatch for what the contract does not say yet. */\n readonly extendOption = input<\n ((option: Record<string, unknown>) => Record<string, unknown>) | undefined\n >(undefined);\n\n /* ── State: two-way, each move asked first ─────────────────────────── */\n readonly hidden = model<readonly string[]>([]);\n readonly activePoint = model<ChartPoint | null>(null);\n readonly selection = model<ChartPoint | null>(null);\n readonly zoom = model<ChartZoom>(FULL_ZOOM);\n readonly tableOpen = model<boolean>(false);\n readonly fullscreen = model<boolean>(false);\n\n readonly hiddenChangeRequest = output<ChangeRequest<readonly string[]>>();\n readonly activePointChangeRequest = output<ChangeRequest<ChartPoint | null>>();\n readonly selectionChangeRequest = output<ChangeRequest<ChartPoint | null>>();\n readonly zoomChangeRequest = output<ChangeRequest<ChartZoom>>();\n readonly tableOpenChangeRequest = output<ChangeRequest<boolean>>();\n readonly fullscreenChangeRequest = output<ChangeRequest<boolean>>();\n /** The reader pressed the retry of the failed plot. */\n readonly retry = output<void>();\n\n /* ── Composition ───────────────────────────────────────────────────── */\n protected readonly tooltipTemplate = contentChild(SlChartTooltip);\n protected readonly legendItemTemplate = contentChild(SlChartLegendItem);\n protected readonly centerTemplate = contentChild(SlChartCenter);\n protected readonly emptyTemplate = contentChild(SlChartEmpty);\n protected readonly errorTemplate = contentChild(SlChartError);\n\n private readonly defaults = injectChartDefaults();\n private readonly mountEngine = inject(CHART_ENGINE);\n private readonly host: HTMLElement = inject(ElementRef).nativeElement;\n private readonly destroyRef = inject(DestroyRef);\n protected readonly id = inject(SlChartIdFactory).next();\n\n protected readonly plotRef = viewChild<ElementRef<HTMLDivElement>>('plot');\n protected readonly canvasRef = viewChild<ElementRef<HTMLDivElement>>('canvas');\n protected readonly tooltipRef = viewChild<ElementRef<HTMLDivElement>>('tooltipBox');\n protected readonly legendRef = viewChild<ElementRef<HTMLDivElement>>('legendRow');\n protected readonly menuRef = viewChild<ElementRef<HTMLDivElement>>('menu');\n protected readonly moreRef = viewChild<ElementRef<HTMLDivElement>>('moreLayer');\n protected readonly helpRef = viewChild<ElementRef<HTMLDivElement>>('helpLayer');\n\n private engine: ChartEngine | null = null;\n private readonly engineFailure = signal<unknown>(null);\n protected readonly theme = signal<ChartTheme | null>(null);\n protected readonly overlay = signal<Overlay>(NO_OVERLAY);\n protected readonly collapsed = signal<readonly number[]>([]);\n protected readonly legendFocus = signal<string | null>(null);\n protected readonly layerOpen = signal<Record<string, boolean>>({});\n private readonly widths = new Map<string, number>();\n private readonly modality = trackModality(this.host);\n private readonly pointAnnouncer = createLatestAnnouncer((message) =>\n getLiveAnnouncer().announce(message),\n );\n\n /* ── Derived ───────────────────────────────────────────────────────── */\n /** The family's words in the language in force, with this chart's `messages` laid over them. */\n protected readonly t = injectMessages(chartMessages, this.messages);\n private readonly appLocale = injectLocale();\n /** The name of the control holding the series the legend has no room for. */\n protected readonly legendMoreName = computed(() => {\n const legend = this.chartModel()?.legend ?? [];\n const names = this.collapsed().map((index) => legend[index]?.label ?? '');\n return this.t('legendMore', {\n series: new Intl.ListFormat(this.locale() ?? this.appLocale(), { type: 'unit' }).format(\n names,\n ),\n });\n });\n protected readonly resolvedSize = computed(() => this.size() ?? this.defaults.size ?? 'md');\n protected readonly resolvedVariant = computed(\n () => this.variant() ?? this.defaults.variant ?? 'plain',\n );\n protected readonly resolvedPalette = computed(\n () => this.palette() ?? this.defaults.palette ?? 'categorical',\n );\n protected readonly resolvedToolbar = computed(\n () => this.toolbar() ?? this.defaults.toolbar ?? 'visible',\n );\n protected readonly resolvedLegendOverflow = computed(\n () => this.legendOverflow() ?? this.defaults.legendOverflow ?? 'collapse',\n );\n protected readonly resolvedTooltip = computed<ChartTooltipSettings>(() => ({\n ...this.defaults.tooltip,\n ...this.tooltip(),\n }));\n\n private readonly spec = computed<ChartSpec>(() => ({\n data: this.data(),\n series: this.series(),\n x: this.x(),\n y: this.y(),\n orientation: this.orientation(),\n stackMode: this.stackMode(),\n annotations: this.annotations(),\n recordKey: this.recordKey(),\n locale: this.locale() ?? this.appLocale(),\n }));\n private readonly built = computed(() => {\n try {\n return {\n model: createChartModel(this.spec(), { hidden: this.hidden() }) as ChartModel | null,\n failure: null as unknown,\n };\n } catch (failure) {\n return { model: null, failure };\n }\n });\n protected readonly chartModel = computed(() => this.built().model);\n protected readonly failed = computed(\n () => this.error() || this.built().failure !== null || this.engineFailure() !== null,\n );\n protected readonly drawable = computed(() => {\n const current = this.chartModel();\n return Boolean(current && !this.loading() && !this.failed() && !current.empty);\n });\n protected readonly usable = computed(() => {\n const current = this.chartModel();\n return Boolean(current && !this.loading() && !this.failed() && current.empty !== 'no-data');\n });\n protected readonly resolvedTrigger = computed(() => {\n const current = this.chartModel();\n return current ? (this.trigger() ?? defaultTrigger(current)) : 'none';\n });\n protected readonly activeKey = computed(() => {\n const current = this.chartModel();\n const point = this.activePoint();\n return point && current && isDrawn(current, point) ? point.key : null;\n });\n protected readonly summary = computed(() => {\n if (this.loading()) return this.t('loading');\n if (this.failed()) return this.t('error');\n const current = this.chartModel();\n return current ? describeChart(current, this.t) : '';\n });\n protected readonly skeletonKind = computed(() => {\n const kinds = this.series().map((entry) => entry.kind);\n if (kinds.includes('pie')) return 'pie';\n return kinds.every((kind) => kind === 'line' || kind === 'area') ? 'line' : 'bar';\n });\n protected readonly legendWaiting = computed(() => {\n const current = this.chartModel();\n return this.loading() && (!current || current.shape === 'pie' || current.legend.length === 0);\n });\n protected readonly table = computed(() => {\n const current = this.chartModel();\n return this.tableOpen() && this.usable() && current ? chartTable(current, this.t) : null;\n });\n protected readonly rowKeys = computed(() => {\n const entries = this.chartModel()?.legend ?? [];\n const hiddenIndexes = this.collapsed();\n return entries.filter((_, index) => !hiddenIndexes.includes(index)).map((entry) => entry.key);\n });\n protected readonly rovingKey = computed(() => {\n const focus = this.legendFocus();\n const keys = this.rowKeys();\n return focus && keys.includes(focus) ? focus : (keys[0] ?? null);\n });\n protected readonly describedBy = computed(() =>\n this.description() !== undefined\n ? `${this.id}-description ${this.id}-summary`\n : `${this.id}-summary`,\n );\n protected readonly repeat = (count: number) => Array.from({ length: count }, (_, index) => index);\n\n constructor() {\n /* The theme at the plot, re-read when a palette, a variant or the full\n screen repaint the root's tokens, which are the chart's own attributes\n and outside what the document observer watches. */\n afterNextRender(() => {\n const plot = this.plotRef()?.nativeElement;\n const canvas = this.canvasRef()?.nativeElement;\n if (!plot || !canvas) return;\n const read = () => {\n const next = readChartTheme(plot);\n if (!sameTheme(this.theme(), next)) this.theme.set(next);\n };\n read();\n const stop = observeChartTheme(plot, read);\n this.engine = this.mountEngine(canvas, {\n onPointer: (point, source) => {\n if (point) this.requestActive(point, 'pointer', source);\n else if (document.activeElement !== plot) this.requestActive(null, 'pointer', source);\n },\n onPress: (point, source) => {\n if (!this.selectable() || !point) return;\n this.requestSelection(\n samePoint(this.selection(), point) ? null : point,\n 'pointer',\n source,\n );\n },\n onZoom: (next, source) => this.requestZoom(next, 'pointer', source),\n onRender: () => this.computeOverlay(),\n onError: (failure) => this.engineFailure.set(failure),\n });\n this.bump.update((value) => value + 1);\n const observer =\n typeof ResizeObserver === 'undefined' ? null : new ResizeObserver(() => this.fitLegend());\n const legend = this.legendRef()?.nativeElement;\n if (legend && observer) observer.observe(legend);\n const onFullscreen = () => {\n if (document.fullscreenElement === this.host) this.native = true;\n else if (this.native) {\n this.native = false;\n if (this.fullscreen()) this.requestFullscreen(false, 'escape');\n }\n };\n document.addEventListener('fullscreenchange', onFullscreen);\n this.destroyRef.onDestroy(() => {\n stop();\n observer?.disconnect();\n document.removeEventListener('fullscreenchange', onFullscreen);\n this.engine?.dispose();\n this.engine = null;\n this.modality.destroy();\n });\n });\n\n effect(() => {\n this.resolvedPalette();\n this.resolvedVariant();\n this.fullscreen();\n const plot = untracked(() => this.plotRef()?.nativeElement);\n if (!plot) return;\n const next = readChartTheme(plot);\n if (!sameTheme(untracked(this.theme), next)) this.theme.set(next);\n });\n\n /* What the engine draws. */\n effect(() => {\n this.bump();\n const current = this.chartModel();\n const theme = this.theme();\n if (!this.engine || !theme || !current || !this.drawable()) return;\n void this.engine.update({\n model: current,\n theme,\n selection: this.selection(),\n zoom: this.zoom(),\n zoomable: this.zoomable(),\n grid: this.grid() ?? this.defaults.grid,\n texture: this.texture(),\n renderer: this.renderer() ?? this.defaults.renderer ?? 'auto',\n sampling: this.sampling(),\n trigger: this.resolvedTrigger(),\n animate: this.animate() ?? this.defaults.animate ?? true,\n extendOption: this.extendOption(),\n });\n });\n\n /* The overlay follows the point, the selection, the model and the view. */\n effect(() => {\n this.activePoint();\n this.selection();\n this.chartModel();\n this.drawable();\n this.tableOpen();\n untracked(() => this.computeOverlay());\n });\n\n /* Placed after the content is on the page, because its size decides where. */\n afterRenderEffect({\n write: () => {\n const overlay = this.overlay();\n const node = this.tooltipRef()?.nativeElement;\n const plot = this.plotRef()?.nativeElement;\n const point = this.activePoint();\n if (!node || !plot) return;\n if (!overlay.tooltip || !point) {\n this.tooltipWasOpen = false;\n return;\n }\n const at = this.engine?.locate(point);\n if (!at) return;\n if (!this.tooltipWasOpen) node.style.transition = 'none';\n const placement = placeTooltip({\n anchor: { x: at.x, y: at.y },\n size: { width: node.offsetWidth, height: node.offsetHeight },\n bounds: { width: plot.clientWidth, height: plot.clientHeight },\n dir: getComputedStyle(this.host).direction === 'rtl' ? 'rtl' : 'ltr',\n });\n node.style.setProperty('--slotted-chart-x', `${placement.x}px`);\n node.style.setProperty('--slotted-chart-y', `${placement.y}px`);\n if (!this.tooltipWasOpen) requestAnimationFrame(() => (node.style.transition = ''));\n this.tooltipWasOpen = true;\n },\n });\n\n /* One line of legend, measured after it is drawn. */\n afterRenderEffect({\n read: () => {\n this.chartModel();\n this.resolvedLegendOverflow();\n this.activeKey();\n this.fitLegend();\n },\n });\n }\n\n private readonly bump = signal(0);\n private native = false;\n private tooltipWasOpen = false;\n\n /* ── Requests ──────────────────────────────────────────────────────── */\n\n private ask<T>(\n value: { (): T; set(next: T): void },\n emit: (request: ChangeRequest<T>) => void,\n equals: (a: T, b: T) => boolean,\n next: T,\n reason: ChangeReason,\n source: unknown,\n ) {\n let cancelled = false;\n const state = createControllable<T>({\n initial: value(),\n equals,\n onRequest: (request) => {\n emit(request);\n cancelled = request.cancelled;\n },\n });\n if (state.request(next, reason, source) && !cancelled) value.set(next);\n }\n\n protected requestHidden(next: readonly string[], reason: ChangeReason, source?: unknown) {\n this.ask(\n this.hidden,\n (request) => this.hiddenChangeRequest.emit(request),\n sameList,\n next,\n reason,\n source,\n );\n }\n protected requestActive(next: ChartPoint | null, reason: ChangeReason, source?: unknown) {\n this.ask(\n this.activePoint,\n (request) => this.activePointChangeRequest.emit(request),\n samePoint,\n next,\n reason,\n source,\n );\n }\n protected requestSelection(next: ChartPoint | null, reason: ChangeReason, source?: unknown) {\n this.ask(\n this.selection,\n (request) => this.selectionChangeRequest.emit(request),\n samePoint,\n next,\n reason,\n source,\n );\n }\n protected requestZoom(next: ChartZoom, reason: ChangeReason, source?: unknown) {\n this.ask(\n this.zoom,\n (request) => this.zoomChangeRequest.emit(request),\n sameZoom,\n next,\n reason,\n source,\n );\n }\n protected requestTable(next: boolean, reason: ChangeReason, source?: unknown) {\n this.ask(\n this.tableOpen,\n (request) => this.tableOpenChangeRequest.emit(request),\n Object.is,\n next,\n reason,\n source,\n );\n }\n\n /**\n * The Fullscreen API when the page may use it and the reader asked; a layer\n * fixed over the page otherwise. A browser refuses the API outside the\n * press that asked for it, so it is asked here, inside the handler.\n */\n protected requestFullscreen(next: boolean, reason: ChangeReason, source?: unknown) {\n const before = this.fullscreen();\n this.ask(\n this.fullscreen,\n (request) => this.fullscreenChangeRequest.emit(request),\n Object.is,\n next,\n reason,\n source,\n );\n if (this.fullscreen() === before) return;\n if (next && document.fullscreenEnabled && reason !== 'programmatic' && reason !== 'escape') {\n this.host.requestFullscreen?.().catch(() => {});\n }\n if (!next && document.fullscreenElement === this.host) {\n this.native = false;\n document.exitFullscreen().catch(() => {});\n }\n }\n\n /** The reason the last activation came with: a pointer, a key, or the application. */\n protected pressReason(): ChangeReason {\n return this.modality.read();\n }\n\n /* ── Overlay ───────────────────────────────────────────────────────── */\n\n private computeOverlay() {\n const current = this.chartModel();\n const plot = this.plotRef()?.nativeElement;\n const engine = this.engine;\n if (!engine || !plot || !current || !this.drawable() || this.tableOpen()) {\n this.overlay.set(NO_OVERLAY);\n return;\n }\n const active = this.activePoint();\n const selected = this.selection();\n const trigger = this.resolvedTrigger();\n const markers: Overlay['markers'][number][] = [];\n if (selected && isDrawn(current, selected) && current.shape === 'cartesian') {\n const owner = seriesOf(current, selected.series);\n const at = engine.locate(selected);\n if (owner && owner.kind !== 'bar' && at) {\n markers.push({\n key: `selected-${owner.id}`,\n color: owner.color,\n at,\n selected: true,\n current: false,\n });\n }\n }\n if (current.shape === 'pie')\n engine.emphasize(active && isDrawn(current, active) ? active.key : null);\n const at = active && isDrawn(current, active) ? engine.locate(active) : null;\n if (!active || !at) {\n this.overlay.set({ crosshair: null, markers, tooltip: null, docked: false });\n return;\n }\n const hasBars = current.series.some((entry) => entry.visible && entry.kind === 'bar');\n const crosshair =\n current.shape === 'cartesian' && trigger === 'axis'\n ? { ...at, isBand: hasBars && current.xType === 'category' }\n : null;\n if (current.shape === 'cartesian') {\n const index = categoryIndex(current, active.key);\n const targets =\n trigger === 'axis'\n ? current.series.filter(\n (entry) => entry.visible && entry.kind !== 'bar' && entry.values[index] !== null,\n )\n : [seriesOf(current, active.series)].filter((entry): entry is NonNullable<typeof entry> =>\n Boolean(entry && entry.kind !== 'bar'),\n );\n for (const target of targets) {\n const spot = engine.locate({ series: target.id, key: active.key });\n if (spot)\n markers.push({\n key: target.id,\n color: target.color,\n at: spot,\n selected: false,\n current: target.id === active.series,\n });\n }\n }\n const settings = this.resolvedTooltip();\n const tooltip =\n trigger === 'none'\n ? null\n : tooltipContext(current, active, { trigger, sort: settings.sort, total: settings.total });\n this.overlay.set({\n crosshair,\n markers,\n tooltip,\n docked: plot.clientWidth < TOOLTIP_DOCK_WIDTH,\n });\n }\n\n protected px(value: number | undefined) {\n return value === undefined ? null : `${value}px`;\n }\n\n protected colorOf(color: ChartColor) {\n return {\n slot: color.type === 'slot' ? String(color.slot) : null,\n tone: color.type === 'tone' ? color.tone : null,\n overflow: color.type === 'overflow' ? '' : null,\n };\n }\n\n protected strokeOf(entry: { series: string } | ChartLegendEntry, key?: string) {\n const current = this.chartModel();\n if (!current) return null;\n const owner =\n current.shape === 'pie'\n ? current.series[0]\n : seriesOf(current, key ?? ('series' in entry ? entry.series : entry.key));\n return owner && owner.stroke !== 'solid' ? owner.stroke : null;\n }\n\n protected markerKind(kind: string, indicator?: string) {\n if (indicator === 'line' || kind === 'line') return 'line';\n if (kind === 'scatter') return 'scatter';\n return 'bar';\n }\n\n /* ── Legend ────────────────────────────────────────────────────────── */\n\n protected legendValue(entry: ChartLegendEntry) {\n const current = this.chartModel();\n if (!current) return '';\n const owner = current.shape === 'pie' ? current.series[0] : seriesOf(current, entry.key);\n if (!owner) return '';\n const key = this.activeKey();\n const index =\n current.shape === 'pie'\n ? categoryIndex(current, entry.key)\n : key\n ? categoryIndex(current, key)\n : lastDrawn(owner.values);\n const raw = index >= 0 ? owner.values[index] : null;\n return raw === null || raw === undefined ? '' : owner.format(raw);\n }\n\n protected isCurrent(entry: ChartLegendEntry) {\n const current = this.chartModel();\n const key = this.activeKey();\n if (!key) return false;\n return current?.shape === 'pie' ? entry.key === key : this.activePoint()?.series === entry.key;\n }\n\n protected toggleEntry(\n entry: ChartLegendEntry,\n mode: 'toggle' | 'isolate',\n reason: ChangeReason,\n source: unknown,\n ) {\n const current = this.chartModel();\n if (!current) return;\n const keys = current.legend.map((item) => item.key);\n const next = toggleHidden(keys, this.hidden(), entry.key, mode);\n this.legendFocus.set(entry.key);\n this.requestHidden(next, reason, source);\n getLiveAnnouncer().announce(\n this.t(next.includes(entry.key) ? 'hidden' : 'shown', { series: entry.label }),\n );\n }\n\n protected onLegendClick(entry: ChartLegendEntry, event: MouseEvent) {\n this.toggleEntry(entry, event.shiftKey ? 'isolate' : 'toggle', this.pressReason(), event);\n }\n\n protected onLegendItemKey(entry: ChartLegendEntry, event: KeyboardEvent) {\n if (event.key === 'Enter' && event.shiftKey) {\n event.preventDefault();\n this.toggleEntry(entry, 'isolate', 'keyboard', event);\n }\n }\n\n protected emphasize(key: string | null) {\n this.engine?.emphasize(key);\n }\n\n /* One tab stop for the row; the arrows move inside it (APG Toolbar). */\n protected onLegendKeyDown(event: KeyboardEvent) {\n const target = event.target as HTMLElement;\n if (target.closest('[data-part=\"menu\"]')) return;\n const row = event.currentTarget as HTMLElement;\n const items = [...row.querySelectorAll<HTMLElement>(':scope > button:not([hidden])')];\n const index = items.indexOf(target);\n if (index === -1) return;\n const rtl = getComputedStyle(this.host).direction === 'rtl';\n const step =\n event.key === 'ArrowRight' ? (rtl ? -1 : 1) : event.key === 'ArrowLeft' ? (rtl ? 1 : -1) : 0;\n let next: HTMLElement | undefined;\n if (step) next = items[(index + step + items.length) % items.length];\n if (event.key === 'Home') next = items[0];\n if (event.key === 'End') next = items[items.length - 1];\n if (!next) return;\n event.preventDefault();\n this.legendFocus.set(next.dataset['key'] ?? '__more');\n next.focus();\n }\n\n /**\n * Which entries fit on the line, measured by `@slotted/core/overflow` —\n * the arithmetic `toolbar` folds its controls with. The rest wait behind\n * the `+N` control, where they toggle the same series.\n */\n private fitLegend() {\n const node = this.legendRef()?.nativeElement;\n const current = untracked(this.chartModel);\n if (!node || !current) return;\n if (untracked(this.resolvedLegendOverflow) === 'wrap') {\n if (untracked(this.collapsed).length) this.collapsed.set([]);\n return;\n }\n for (const item of node.querySelectorAll<HTMLElement>(':scope > [data-part=\"legend-item\"]')) {\n if (!item.hidden)\n this.widths.set(item.dataset['key'] ?? '', item.getBoundingClientRect().width);\n }\n const more = node.querySelector<HTMLElement>(':scope > [data-part=\"legend-more\"]');\n const result = collapseState({\n units: current.legend.map((entry) => ({\n size: this.widths.get(entry.key) ?? 0,\n collapsible: true,\n })),\n available: node.clientWidth,\n gap: Number.parseFloat(getComputedStyle(node).columnGap) || 0,\n triggerSize: more && !more.hidden ? more.getBoundingClientRect().width : 40,\n });\n const previous = untracked(this.collapsed);\n if (\n previous.length !== result.collapsed.length ||\n previous.some((value, index) => value !== result.collapsed[index])\n ) {\n this.collapsed.set(result.collapsed);\n }\n }\n\n /* ── Layers ────────────────────────────────────────────────────────── */\n\n protected toggleLayer(name: string) {\n const layer = this.layerElement(name);\n layer?.togglePopover?.();\n }\n\n protected onLayerToggle(\n name: string,\n event: Event,\n control: HTMLElement,\n align: 'start' | 'end',\n focusFirst = true,\n ) {\n const open = (event as ToggleEvent).newState === 'open';\n this.layerOpen.update((state) => ({ ...state, [name]: open }));\n const layer = this.layerElement(name);\n if (!layer) return;\n if (open) {\n const box = layer.getBoundingClientRect();\n const at = placeLayer({\n anchor: control.getBoundingClientRect(),\n size: { width: box.width, height: box.height },\n viewport: { width: window.innerWidth, height: window.innerHeight },\n align,\n dir: getComputedStyle(control).direction === 'rtl' ? 'rtl' : 'ltr',\n });\n layer.style.setProperty('--slotted-chart-x', `${at.x}px`);\n layer.style.setProperty('--slotted-chart-y', `${at.y}px`);\n if (focusFirst) layer.querySelector<HTMLElement>('button')?.focus();\n } else if (layer.contains(document.activeElement) || document.activeElement === document.body) {\n control.focus();\n }\n }\n\n protected onLayerKeyDown(event: KeyboardEvent) {\n const layer = event.currentTarget as HTMLElement;\n const items = [...layer.querySelectorAll<HTMLElement>('button')].filter((item) => !item.hidden);\n const index = items.indexOf(document.activeElement as HTMLElement);\n const step = event.key === 'ArrowDown' ? 1 : event.key === 'ArrowUp' ? -1 : 0;\n let next: HTMLElement | undefined;\n if (step) next = items[(index + step + items.length) % items.length];\n if (event.key === 'Home') next = items[0];\n if (event.key === 'End') next = items[items.length - 1];\n if (!next) return;\n event.preventDefault();\n next.focus();\n }\n\n private layerElement(name: string) {\n const ref =\n name === 'menu' ? this.menuRef() : name === 'more' ? this.moreRef() : this.helpRef();\n return ref?.nativeElement ?? null;\n }\n\n protected menuAction(action: 'view' | 'fullscreen' | 'csv' | 'image', event: Event) {\n const reason = this.pressReason();\n this.menuRef()?.nativeElement.hidePopover?.();\n const current = this.chartModel();\n if (action === 'view') this.requestTable(!this.tableOpen(), reason, event);\n if (action === 'fullscreen') this.requestFullscreen(!this.fullscreen(), reason, event);\n if (action === 'csv' && current) {\n this.download(\n `${this.fileName()}.csv`,\n `data:text/csv;charset=utf-8,${encodeURIComponent(chartToCsv(current, this.t))}`,\n );\n }\n if (action === 'image') {\n const url = this.engine?.toDataURL();\n if (url)\n this.download(\n `${this.fileName()}.${url.startsWith('data:image/svg') ? 'svg' : 'png'}`,\n url,\n );\n }\n }\n\n private fileName() {\n return this.title() ?? 'chart';\n }\n\n private download(filename: string, url: string) {\n const link = document.createElement('a');\n link.href = url;\n link.download = filename;\n document.body.append(link);\n link.click();\n link.remove();\n }\n\n protected resetZoomFromToolbar(event: Event) {\n const current = this.chartModel();\n this.requestZoom(FULL_ZOOM, 'clear', event);\n if (current) getLiveAnnouncer().announce(describeZoom(current, FULL_ZOOM, this.t));\n this.plotRef()?.nativeElement.focus();\n }\n\n protected showAll(event: Event) {\n this.requestHidden([], 'pointer', event);\n }\n\n protected onRetry() {\n this.engineFailure.set(null);\n this.retry.emit();\n }\n\n protected zoomed() {\n const current = this.chartModel();\n return Boolean(this.zoomable() && !isFullZoom(this.zoom()) && current?.shape === 'cartesian');\n }\n\n /* ── Keyboard and focus ────────────────────────────────────────────── */\n\n protected onPlotKeyDown(event: KeyboardEvent) {\n const current = this.chartModel();\n if (!current || !this.drawable() || this.tableOpen()) return;\n const actions = chartKeyAction(\n current,\n {\n active: this.activePoint(),\n selection: this.selection(),\n zoom: this.zoom(),\n zoomable: this.zoomable(),\n selectable: this.selectable(),\n },\n event.key,\n );\n if (actions === null) return;\n event.preventDefault();\n for (const action of actions) {\n if (action.type === 'active') {\n this.requestActive(action.point, action.reason, event);\n if (action.point)\n this.pointAnnouncer.say(describePoint(current, action.point, this.selection(), this.t));\n else this.pointAnnouncer.cancel();\n } else if (action.type === 'select') {\n this.requestSelection(action.point, 'keyboard', event);\n if (action.point)\n this.pointAnnouncer.say(describePoint(current, action.point, action.point, this.t));\n } else {\n this.requestZoom(action.zoom, action.reason, event);\n getLiveAnnouncer().announce(describeZoom(current, action.zoom, this.t));\n }\n }\n }\n\n protected onPlotFocus(event: FocusEvent) {\n const current = this.chartModel();\n if (!current || !this.drawable() || this.tableOpen() || this.activePoint()) return;\n if (!focusVisible(event.currentTarget as Element)) return;\n const point = firstPoint(current);\n if (!point) return;\n this.requestActive(point, 'keyboard', event);\n this.pointAnnouncer.say(describePoint(current, point, this.selection(), this.t));\n }\n\n protected onRootKeyDown(event: KeyboardEvent) {\n if (event.defaultPrevented || event.key !== 'Escape' || !this.fullscreen()) return;\n event.preventDefault();\n this.requestFullscreen(false, 'escape', event);\n }\n\n /* ── Handle ────────────────────────────────────────────────────────── */\n\n focus() {\n this.plotRef()?.nativeElement.focus();\n }\n\n resetZoom() {\n this.requestZoom(FULL_ZOOM, 'programmatic');\n }\n\n toDataURL() {\n return this.engine?.toDataURL() ?? null;\n }\n\n toCsv() {\n const current = this.chartModel();\n return current ? chartToCsv(current, this.t) : '';\n }\n}\n","@let current = chartModel(); @if (title() !== undefined || description() !== undefined ||\nresolvedToolbar() !== 'none') {\n<figcaption data-part=\"header\">\n <div>\n <div>\n @if (title() !== undefined) {\n <span data-part=\"title\" [id]=\"id + '-title'\">{{ title() }}</span>\n } @if (help() !== undefined) {\n <button\n #helpControl\n type=\"button\"\n data-part=\"help\"\n [attr.aria-label]=\"t('help')\"\n [attr.aria-controls]=\"id + '-help'\"\n [attr.aria-expanded]=\"layerOpen()['help'] ?? false\"\n [attr.data-open]=\"layerOpen()['help'] ? '' : null\"\n (click)=\"toggleLayer('help')\"\n >\n <span slIcon><svg slGlyph name=\"circle-info\"></svg></span>\n </button>\n <div\n #helpLayer\n popover=\"auto\"\n data-part=\"help-content\"\n role=\"note\"\n [id]=\"id + '-help'\"\n (toggle)=\"onLayerToggle('help', $event, helpControl, 'start', false)\"\n >\n {{ help() }}\n </div>\n }\n </div>\n @if (description() !== undefined) {\n <span data-part=\"description\" [id]=\"id + '-description'\">{{ description() }}</span>\n }\n </div>\n <div data-part=\"actions\"><ng-content select=\"[slChartActions]\" /></div>\n <!-- The box stands in every state, so the header's words wrap at one width; it\n holds nothing a reader can reach until the plot has something to act on. -->\n @if (resolvedToolbar() !== 'none') { @let ready = usable();\n <div\n data-part=\"toolbar\"\n [attr.role]=\"ready ? 'toolbar' : null\"\n [attr.aria-label]=\"ready ? t('toolbar') : null\"\n [attr.aria-hidden]=\"ready ? null : 'true'\"\n [attr.inert]=\"ready ? null : ''\"\n [attr.data-waiting]=\"ready ? null : ''\"\n >\n @if (zoomed()) {\n <button\n type=\"button\"\n data-part=\"zoom-reset\"\n [attr.aria-label]=\"t('resetZoom')\"\n [attr.title]=\"t('resetZoom')\"\n (click)=\"resetZoomFromToolbar($event)\"\n >\n <span slIcon><svg slGlyph name=\"rotate-ccw\"></svg></span>\n </button>\n }\n <button\n type=\"button\"\n data-part=\"view-toggle\"\n [attr.aria-label]=\"t('tableView')\"\n [attr.title]=\"t('tableView')\"\n [attr.aria-pressed]=\"tableOpen()\"\n [attr.data-pressed]=\"tableOpen() ? '' : null\"\n (click)=\"requestTable(!tableOpen(), pressReason(), $event)\"\n >\n <span slIcon><svg slGlyph name=\"file-spreadsheet\"></svg></span>\n </button>\n <button\n type=\"button\"\n data-part=\"fullscreen-toggle\"\n [attr.aria-label]=\"fullscreen() ? t('exitFullscreen') : t('fullscreen')\"\n [attr.title]=\"fullscreen() ? t('exitFullscreen') : t('fullscreen')\"\n (click)=\"requestFullscreen(!fullscreen(), pressReason(), $event)\"\n >\n <span slIcon><svg slGlyph [name]=\"fullscreen() ? 'minimize' : 'maximize'\"></svg></span>\n </button>\n <button\n #menuControl\n type=\"button\"\n data-part=\"menu-trigger\"\n aria-haspopup=\"menu\"\n [attr.aria-label]=\"t('more')\"\n [attr.title]=\"t('more')\"\n [attr.aria-expanded]=\"layerOpen()['menu'] ?? false\"\n [attr.data-open]=\"layerOpen()['menu'] ? '' : null\"\n (click)=\"toggleLayer('menu')\"\n >\n <span slIcon><svg slGlyph name=\"ellipsis\"></svg></span>\n </button>\n <div\n #menu\n popover=\"auto\"\n data-part=\"menu\"\n role=\"menu\"\n [attr.aria-label]=\"t('more')\"\n (toggle)=\"onLayerToggle('menu', $event, menuControl, 'end')\"\n (keydown)=\"onLayerKeyDown($event)\"\n >\n <button\n type=\"button\"\n role=\"menuitem\"\n data-part=\"menu-item\"\n data-action=\"view\"\n (click)=\"menuAction('view', $event)\"\n >\n {{ t('tableView') }}\n </button>\n <button\n type=\"button\"\n role=\"menuitem\"\n data-part=\"menu-item\"\n data-action=\"fullscreen\"\n (click)=\"menuAction('fullscreen', $event)\"\n >\n {{ fullscreen() ? t('exitFullscreen') : t('fullscreen') }}\n </button>\n <button\n type=\"button\"\n role=\"menuitem\"\n data-part=\"menu-item\"\n data-action=\"csv\"\n (click)=\"menuAction('csv', $event)\"\n >\n {{ t('downloadCsv') }}\n </button>\n <button\n type=\"button\"\n role=\"menuitem\"\n data-part=\"menu-item\"\n data-action=\"image\"\n (click)=\"menuAction('image', $event)\"\n >\n {{ t('downloadImage') }}\n </button>\n </div>\n </div>\n }\n</figcaption>\n} @if (legend()) {\n<div\n #legendRow\n data-part=\"legend\"\n [attr.role]=\"legendWaiting() ? null : legendInteractive() ? 'toolbar' : 'list'\"\n [attr.aria-label]=\"legendWaiting() ? null : t('legend')\"\n (keydown)=\"onLegendKeyDown($event)\"\n>\n @if (legendWaiting()) { @for (line of repeat(3); track line) {\n <span\n data-ui=\"skeleton\"\n data-part=\"root\"\n data-shape=\"block\"\n data-size=\"md\"\n data-animation=\"shimmer\"\n data-loading\n aria-hidden=\"true\"\n ></span>\n } } @else if (current) { @for (entry of current.legend; track entry.key; let index = $index) {\n <ng-container\n *ngTemplateOutlet=\"legendItem; context: { $implicit: entry, rowHidden: collapsed().includes(index), inLayer: false }\"\n />\n }\n <button\n #moreControl\n type=\"button\"\n data-part=\"legend-more\"\n aria-haspopup=\"true\"\n [attr.aria-label]=\"legendMoreName()\"\n [hidden]=\"collapsed().length === 0\"\n [attr.tabindex]=\"rovingKey() === null ? 0 : -1\"\n [attr.aria-expanded]=\"layerOpen()['more'] ?? false\"\n [attr.data-open]=\"layerOpen()['more'] ? '' : null\"\n (click)=\"toggleLayer('more')\"\n >\n {{ t('moreSeries', { count: collapsed().length }) }}\n </button>\n <div\n #moreLayer\n popover=\"auto\"\n data-part=\"menu\"\n role=\"group\"\n [attr.aria-label]=\"t('legend')\"\n (toggle)=\"onLayerToggle('more', $event, moreControl, 'start')\"\n (keydown)=\"onLayerKeyDown($event)\"\n >\n @for (index of collapsed(); track index) { @if (current.legend[index]; as entry) {\n <ng-container\n *ngTemplateOutlet=\"legendItem; context: { $implicit: entry, rowHidden: false, inLayer: true }\"\n />\n } }\n </div>\n }\n</div>\n}\n<ng-template #legendItem let-entry let-rowHidden=\"rowHidden\" let-inLayer=\"inLayer\">\n @let color = colorOf(entry.color); @if (legendInteractive()) {\n <button\n type=\"button\"\n data-part=\"legend-item\"\n [attr.data-key]=\"entry.key\"\n [attr.data-slot]=\"color.slot\"\n [attr.data-tone]=\"color.tone\"\n [attr.data-overflow]=\"color.overflow\"\n [attr.data-current]=\"isCurrent(entry) ? '' : null\"\n [attr.aria-pressed]=\"entry.visible\"\n [attr.data-pressed]=\"entry.visible ? '' : null\"\n [attr.tabindex]=\"inLayer || rovingKey() === entry.key ? 0 : -1\"\n [hidden]=\"rowHidden\"\n (click)=\"onLegendClick(entry, $event)\"\n (keydown)=\"onLegendItemKey(entry, $event)\"\n (focus)=\"legendFocus.set(inLayer ? legendFocus() : entry.key); emphasize(entry.visible ? entry.key : null)\"\n (blur)=\"emphasize(null)\"\n (pointerenter)=\"entry.visible && emphasize(entry.key)\"\n (pointerleave)=\"emphasize(null)\"\n >\n <ng-container *ngTemplateOutlet=\"legendContent; context: { $implicit: entry }\" />\n </button>\n } @else {\n <span\n role=\"listitem\"\n data-part=\"legend-item\"\n [attr.data-key]=\"entry.key\"\n [attr.data-slot]=\"color.slot\"\n [attr.data-tone]=\"color.tone\"\n [attr.data-overflow]=\"color.overflow\"\n [attr.data-current]=\"isCurrent(entry) ? '' : null\"\n [hidden]=\"rowHidden\"\n (pointerenter)=\"entry.visible && emphasize(entry.key)\"\n (pointerleave)=\"emphasize(null)\"\n >\n <ng-container *ngTemplateOutlet=\"legendContent; context: { $implicit: entry }\" />\n </span>\n }\n</ng-template>\n<ng-template #legendContent let-entry>\n @if (legendItemTemplate(); as custom) {\n <ng-container\n *ngTemplateOutlet=\"custom.template; context: { $implicit: entry, value: legendValue(entry), current: isCurrent(entry) }\"\n />\n } @else {\n <span\n data-part=\"legend-marker\"\n [attr.data-kind]=\"entry.kind === 'area' || entry.kind === 'bar' || entry.kind === 'pie' ? 'bar' : entry.kind\"\n [attr.data-stroke]=\"strokeOf(entry)\"\n ></span>\n <span data-part=\"legend-label\" [attr.title]=\"entry.label\">{{ entry.label }}</span>\n @if (legendValues()) {\n <span data-part=\"legend-value\">{{ legendValue(entry) }}</span>\n } }\n</ng-template>\n<div\n #plot\n data-part=\"plot\"\n role=\"group\"\n tabindex=\"0\"\n [attr.aria-roledescription]=\"t('roledescription')\"\n [attr.aria-labelledby]=\"title() !== undefined ? id + '-title' : null\"\n [attr.aria-label]=\"title() === undefined ? t('roledescription') : null\"\n [attr.aria-describedby]=\"describedBy()\"\n [attr.aria-busy]=\"loading() ? 'true' : null\"\n (keydown)=\"onPlotKeyDown($event)\"\n (focus)=\"onPlotFocus($event)\"\n (blur)=\"requestActive(null, 'blur', $event)\"\n>\n @let overlayNow = overlay();\n <div\n data-part=\"crosshair\"\n [hidden]=\"!overlayNow.crosshair\"\n [attr.data-band]=\"overlayNow.crosshair?.isBand ? '' : null\"\n [attr.data-orientation]=\"current?.orientation ?? 'vertical'\"\n [style.--slotted-chart-x]=\"px(overlayNow.crosshair?.x)\"\n [style.--slotted-chart-y]=\"px(overlayNow.crosshair?.y)\"\n [style.--slotted-chart-band-start]=\"px(overlayNow.crosshair?.band?.start)\"\n [style.--slotted-chart-band-size]=\"px(overlayNow.crosshair?.band?.size)\"\n [style.--slotted-chart-frame-start]=\"px(overlayNow.crosshair?.frame?.start)\"\n [style.--slotted-chart-frame-size]=\"px(overlayNow.crosshair?.frame?.size)\"\n ></div>\n <div #canvas data-part=\"canvas\" aria-hidden=\"true\" [hidden]=\"!drawable()\"></div>\n @for (marker of overlayNow.markers; track marker.key) { @let markerColor = colorOf(marker.color);\n <div\n data-part=\"marker\"\n aria-hidden=\"true\"\n [attr.data-slot]=\"markerColor.slot\"\n [attr.data-tone]=\"markerColor.tone\"\n [attr.data-overflow]=\"markerColor.overflow\"\n [attr.data-selected]=\"marker.selected ? '' : null\"\n [attr.data-current]=\"marker.current ? '' : null\"\n [style.--slotted-chart-x]=\"px(marker.at.x)\"\n [style.--slotted-chart-y]=\"px(marker.at.y)\"\n ></div>\n }\n <div\n #tooltipBox\n data-part=\"tooltip\"\n aria-hidden=\"true\"\n [attr.data-open]=\"overlayNow.tooltip ? '' : null\"\n [attr.data-docked]=\"overlayNow.docked ? '' : null\"\n >\n @if (overlayNow.tooltip && current) { @if (tooltipTemplate(); as custom) {\n <ng-container\n *ngTemplateOutlet=\"custom.template; context: { $implicit: overlayNow.tooltip, model: current }\"\n />\n } @else {\n <div data-part=\"tooltip-title\">{{ overlayNow.tooltip.title }}</div>\n @for (item of overlayNow.tooltip.items; track item.series + item.label) { @let itemColor =\n colorOf(item.color);\n <div\n data-part=\"tooltip-item\"\n [attr.data-current]=\"overlayNow.tooltip.items.length > 1 && item.current ? '' : null\"\n [attr.data-slot]=\"itemColor.slot\"\n [attr.data-tone]=\"itemColor.tone\"\n [attr.data-overflow]=\"itemColor.overflow\"\n >\n @if (resolvedTooltip().indicator !== 'none') {\n <span\n data-part=\"tooltip-marker\"\n [attr.data-kind]=\"markerKind(item.kind, resolvedTooltip().indicator)\"\n [attr.data-stroke]=\"strokeOf(item)\"\n ></span>\n }\n <span data-part=\"tooltip-label\">{{ item.label }}</span>\n <span data-part=\"tooltip-value\"\n >{{ item.share ? item.share + ' · ' + item.formatted : item.formatted }}</span\n >\n </div>\n } @if (overlayNow.tooltip.total; as total) {\n <div data-part=\"tooltip-total\">\n <span>{{ t('total') }}</span>\n <span data-part=\"tooltip-value\">{{ total.formatted }}</span>\n </div>\n } } }\n </div>\n @if (drawable() && current?.shape === 'pie' && (current?.series[0]?.innerRadius ?? 0) > 0) {\n <div data-part=\"center\" aria-hidden=\"true\">\n @if (centerTemplate(); as custom) {\n <ng-container *ngTemplateOutlet=\"custom.template; context: { $implicit: current }\" />\n } @else {\n <span data-part=\"center-value\">{{ current!.series[0]!.format(current!.total) }}</span>\n <span data-part=\"center-label\">{{ t('total') }}</span>\n }\n </div>\n } @if (table(); as rows) {\n <div\n data-part=\"table-region\"\n role=\"region\"\n tabindex=\"0\"\n [attr.aria-labelledby]=\"title() !== undefined ? id + '-title' : null\"\n >\n <table data-part=\"table\">\n <caption>\n {{ title() }}\n </caption>\n <thead>\n <tr>\n @for (column of rows.columns; track column.key; let index = $index) {\n <th scope=\"col\" [attr.data-numeric]=\"index > 0 ? '' : null\">{{ column.label }}</th>\n }\n </tr>\n </thead>\n <tbody>\n @for (row of rows.rows; track row.key) {\n <tr [attr.data-current]=\"row.key === activeKey() ? '' : null\">\n @for (cell of row.cells; track $index; let index = $index) { @if (index === 0) {\n <th scope=\"row\">{{ cell.text }}</th>\n } @else {\n <td data-numeric>{{ cell.text }}</td>\n } }\n </tr>\n }\n </tbody>\n </table>\n </div>\n } @if (loading()) {\n <div data-part=\"skeleton\" aria-hidden=\"true\" [attr.data-kind]=\"skeletonKind()\">\n <div data-ui=\"skeleton\" data-part=\"region\" data-animation=\"shimmer\" data-loading>\n @if (skeletonKind() === 'pie') {\n <span\n data-ui=\"skeleton\"\n data-part=\"root\"\n data-shape=\"circle\"\n data-size=\"md\"\n data-animation=\"shimmer\"\n data-loading\n aria-hidden=\"true\"\n ></span>\n } @else {\n <div data-skeleton=\"y\">\n @for (line of repeat(5); track line) {\n <span\n data-ui=\"skeleton\"\n data-part=\"root\"\n data-shape=\"block\"\n data-size=\"md\"\n data-animation=\"shimmer\"\n data-loading\n aria-hidden=\"true\"\n ></span>\n }\n </div>\n <div data-skeleton=\"marks\">\n @for (mark of repeat(skeletonKind() === 'bar' ? 7 : 2); track mark) {\n <span\n data-ui=\"skeleton\"\n data-part=\"root\"\n data-shape=\"block\"\n data-size=\"md\"\n data-animation=\"shimmer\"\n data-loading\n aria-hidden=\"true\"\n ></span>\n }\n </div>\n <div data-skeleton=\"x\">\n @for (line of repeat(6); track line) {\n <span\n data-ui=\"skeleton\"\n data-part=\"root\"\n data-shape=\"block\"\n data-size=\"md\"\n data-animation=\"shimmer\"\n data-loading\n aria-hidden=\"true\"\n ></span>\n }\n </div>\n }\n </div>\n </div>\n } @else if (failed()) {\n <div data-part=\"error\">\n @if (errorTemplate(); as custom) {\n <ng-container *ngTemplateOutlet=\"custom.template\" />\n } @else {\n <section\n data-ui=\"result-state\"\n data-part=\"root\"\n data-status=\"error\"\n data-reach=\"section\"\n data-align=\"center\"\n data-live=\"polite\"\n >\n <div data-part=\"media\" aria-hidden=\"true\"></div>\n <div data-part=\"content\" role=\"status\"><div data-part=\"title\">{{ t('error') }}</div></div>\n <div data-part=\"actions\">\n <button\n data-ui=\"button\"\n data-part=\"root\"\n data-variant=\"outline\"\n data-tone=\"secondary\"\n data-size=\"sm\"\n type=\"button\"\n (click)=\"onRetry()\"\n >\n <span data-part=\"label\">{{ t('retry') }}</span>\n </button>\n </div>\n </section>\n }\n </div>\n } @else if (current?.empty; as reason) {\n <div data-part=\"empty\">\n @if (emptyTemplate(); as custom) {\n <ng-container *ngTemplateOutlet=\"custom.template; context: { $implicit: reason }\" />\n } @else {\n <section\n data-ui=\"result-state\"\n data-part=\"root\"\n data-reach=\"section\"\n data-align=\"center\"\n data-live=\"polite\"\n [attr.data-status]=\"reason === 'all-hidden' ? 'no-results' : 'empty'\"\n >\n <div data-part=\"media\" aria-hidden=\"true\"></div>\n <div data-part=\"content\" role=\"status\">\n <div data-part=\"title\">{{ reason === 'all-hidden' ? t('allHidden') : t('noData') }}</div>\n </div>\n @if (reason === 'all-hidden') {\n <div data-part=\"actions\">\n <button\n data-ui=\"button\"\n data-part=\"root\"\n data-variant=\"outline\"\n data-tone=\"secondary\"\n data-size=\"sm\"\n type=\"button\"\n (click)=\"showAll($event)\"\n >\n <span data-part=\"label\">{{ t('showAll') }}</span>\n </button>\n </div>\n }\n </section>\n }\n </div>\n }\n <p data-part=\"summary\" [id]=\"id + '-summary'\">{{ summary() }}</p>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,283 @@
1
+ import { createControllable } from '@slotted/core/state';
2
+ import * as i0 from '@angular/core';
3
+ import { InjectionToken, inject, input, booleanAttribute, output, computed, HostAttributeToken, signal, effect, forwardRef, ViewEncapsulation, ChangeDetectionStrategy, Component } from '@angular/core';
4
+ import { NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';
5
+ import { SlField, SlFieldDefaultsSource, injectFieldDefaults } from '@slotted/angular/field';
6
+ import { SlFieldGroup } from '@slotted/angular/field-group';
7
+
8
+ const FALLBACK = {
9
+ labelPlacement: 'end',
10
+ orientation: 'vertical',
11
+ size: 'md',
12
+ variant: 'plain',
13
+ };
14
+ const CHECKBOX_GROUP_DEFAULTS = new InjectionToken('slotted checkbox group defaults', { providedIn: 'root', factory: () => FALLBACK });
15
+ /**
16
+ * An application decides once how its sets of choices flow, rather than
17
+ * repeating the same inputs on every group in a form. A group that states any
18
+ * of them itself still wins, and a field around the group outranks this token
19
+ * for `size`.
20
+ */
21
+ function provideCheckboxGroupDefaults(defaults) {
22
+ return {
23
+ provide: CHECKBOX_GROUP_DEFAULTS,
24
+ useFactory: () => ({ ...FALLBACK, ...defaults }),
25
+ };
26
+ }
27
+ /** What a checkbox group renders as here, before it states anything of its own. */
28
+ function injectCheckboxGroupDefaults() {
29
+ return inject(CHECKBOX_GROUP_DEFAULTS);
30
+ }
31
+
32
+ /** Whether two selections hold the same values in the same order. */
33
+ function sameSelection(a, b) {
34
+ return a.length === b.length && a.every((value, index) => value === b[index]);
35
+ }
36
+ /**
37
+ * A set of choices, and the array behind it.
38
+ *
39
+ * **The group holds the value; the boxes draw themselves.** `checkbox` is the
40
+ * entry point beside this one rather than a part of it, so a box works alone
41
+ * and this stylesheet never selects into that one.
42
+ *
43
+ * **The role is conditional, and the condition is the field group.** A
44
+ * `field-group` is a `fieldset` with a `legend`, which is already a named group;
45
+ * a `role="group"` inside it, named by the same legend, is the same set
46
+ * announced twice. A `role` the consumer wrote wins over both.
47
+ *
48
+ * **Order comes from `allValues` when there is one.** A selection that grew in
49
+ * click order would submit in click order, so two readers who chose the same
50
+ * three options would send two different arrays.
51
+ */
52
+ class SlCheckboxGroup {
53
+ /** Present means the consumer owns the selection. */
54
+ value = input(undefined, /* @ts-ignore */
55
+ ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
56
+ /** The selection an uncontrolled group starts from, read once. */
57
+ defaultValue = input(undefined, /* @ts-ignore */
58
+ ...(ngDevMode ? [{ debugName: "defaultValue" }] : /* istanbul ignore next */ []));
59
+ /**
60
+ * Every value the group commands. It is what makes a parent box possible, and
61
+ * what keeps the selection in the set's order rather than in click order.
62
+ */
63
+ allValues = input(undefined, /* @ts-ignore */
64
+ ...(ngDevMode ? [{ debugName: "allValues" }] : /* istanbul ignore next */ []));
65
+ /** The submission name every box shares when it states none of its own. */
66
+ name = input(undefined, /* @ts-ignore */
67
+ ...(ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []));
68
+ size = input(undefined, /* @ts-ignore */
69
+ ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
70
+ orientation = input(undefined, /* @ts-ignore */
71
+ ...(ngDevMode ? [{ debugName: "orientation" }] : /* istanbul ignore next */ []));
72
+ labelPlacement = input(undefined, /* @ts-ignore */
73
+ ...(ngDevMode ? [{ debugName: "labelPlacement" }] : /* istanbul ignore next */ []));
74
+ variant = input(undefined, /* @ts-ignore */
75
+ ...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
76
+ /** Unstated rather than `false`, so the group defers to the field around it. */
77
+ disabled = input(undefined, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: (value) => (value === undefined ? undefined : booleanAttribute(value)) });
78
+ readOnly = input(undefined, { ...(ngDevMode ? { debugName: "readOnly" } : /* istanbul ignore next */ {}), transform: (value) => (value === undefined ? undefined : booleanAttribute(value)) });
79
+ invalid = input(undefined, { ...(ngDevMode ? { debugName: "invalid" } : /* istanbul ignore next */ {}), transform: (value) => (value === undefined ? undefined : booleanAttribute(value)) });
80
+ required = input(undefined, { ...(ngDevMode ? { debugName: "required" } : /* istanbul ignore next */ {}), transform: (value) => (value === undefined ? undefined : booleanAttribute(value)) });
81
+ /** Publishes how many of `allValues` are selected to the field around the group. */
82
+ showCount = input(false, { ...(ngDevMode ? { debugName: "showCount" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
83
+ /**
84
+ * One output for one transition, carrying the new array, the array it
85
+ * replaces, the reason, the originating event and `cancel()`. There is no
86
+ * `[(value)]`, because a two-way binding has one slot and can carry none of
87
+ * those; a form gets the same movement through `ControlValueAccessor`.
88
+ */
89
+ valueChange = output();
90
+ field = inject(SlField, { optional: true });
91
+ fieldGroup = inject(SlFieldGroup, { optional: true });
92
+ defaults = injectCheckboxGroupDefaults();
93
+ /**
94
+ * The field defaults in force: a field group's, or the application's own.
95
+ * A group outside a field reads disabled and read-only from them, as React's
96
+ * reads them from FieldDefaultsProvider.
97
+ */
98
+ fieldDefaultsSource = inject(SlFieldDefaultsSource, { optional: true });
99
+ fieldDefaultsToken = injectFieldDefaults();
100
+ fieldDefaults = computed(() => this.fieldDefaultsSource?.fieldDefaults() ?? this.fieldDefaultsToken, /* @ts-ignore */
101
+ ...(ngDevMode ? [{ debugName: "fieldDefaults" }] : /* istanbul ignore next */ []));
102
+ writtenRole = inject(new HostAttributeToken('role'), { optional: true });
103
+ writtenDescribedBy = inject(new HostAttributeToken('aria-describedby'), {
104
+ optional: true,
105
+ });
106
+ writtenLabel = inject(new HostAttributeToken('aria-label'), { optional: true });
107
+ writtenLabelledBy = inject(new HostAttributeToken('aria-labelledby'), {
108
+ optional: true,
109
+ });
110
+ own = signal([], /* @ts-ignore */
111
+ ...(ngDevMode ? [{ debugName: "own" }] : /* istanbul ignore next */ []));
112
+ formDisabled = signal(undefined, /* @ts-ignore */
113
+ ...(ngDevMode ? [{ debugName: "formDisabled" }] : /* istanbul ignore next */ []));
114
+ onChangeFn = () => undefined;
115
+ onTouchedFn = () => undefined;
116
+ selection = computed(() => this.value() ?? this.own(), /* @ts-ignore */
117
+ ...(ngDevMode ? [{ debugName: "selection" }] : /* istanbul ignore next */ []));
118
+ resolvedSize = computed(() => this.size() ??
119
+ this.field?.resolvedSize() ??
120
+ this.fieldGroup?.resolvedSize() ??
121
+ this.defaults.size, /* @ts-ignore */
122
+ ...(ngDevMode ? [{ debugName: "resolvedSize" }] : /* istanbul ignore next */ []));
123
+ resolvedOrientation = computed(() => this.orientation() ?? this.defaults.orientation, /* @ts-ignore */
124
+ ...(ngDevMode ? [{ debugName: "resolvedOrientation" }] : /* istanbul ignore next */ []));
125
+ resolvedLabelPlacement = computed(() => this.labelPlacement() ?? this.defaults.labelPlacement, /* @ts-ignore */
126
+ ...(ngDevMode ? [{ debugName: "resolvedLabelPlacement" }] : /* istanbul ignore next */ []));
127
+ /** Handed to every choice in the set: one plain box among four tiles is a
128
+ set nobody meant to write. */
129
+ resolvedVariant = computed(() => this.variant() ?? this.defaults.variant, /* @ts-ignore */
130
+ ...(ngDevMode ? [{ debugName: "resolvedVariant" }] : /* istanbul ignore next */ []));
131
+ resolvedDisabled = computed(() => this.disabled() ??
132
+ this.formDisabled() ??
133
+ this.field?.resolvedDisabled() ??
134
+ this.fieldDefaults().disabled, /* @ts-ignore */
135
+ ...(ngDevMode ? [{ debugName: "resolvedDisabled" }] : /* istanbul ignore next */ []));
136
+ resolvedReadOnly = computed(() => this.readOnly() ?? this.field?.resolvedReadOnly() ?? this.fieldDefaults().readOnly, /* @ts-ignore */
137
+ ...(ngDevMode ? [{ debugName: "resolvedReadOnly" }] : /* istanbul ignore next */ []));
138
+ resolvedInvalid = computed(() => this.invalid() ?? this.field?.invalid() ?? this.fieldGroup?.invalid(), /* @ts-ignore */
139
+ ...(ngDevMode ? [{ debugName: "resolvedInvalid" }] : /* istanbul ignore next */ []));
140
+ resolvedRequired = computed(() => this.required() ?? this.field?.required() ?? this.fieldGroup?.required(), /* @ts-ignore */
141
+ ...(ngDevMode ? [{ debugName: "resolvedRequired" }] : /* istanbul ignore next */ []));
142
+ resolvedRole = computed(() => this.writtenRole ?? (this.fieldGroup === null ? 'group' : null), /* @ts-ignore */
143
+ ...(ngDevMode ? [{ debugName: "resolvedRole" }] : /* istanbul ignore next */ []));
144
+ /* A group has no element a label's for can reach, so inside a field the
145
+ field's label names it, unless the consumer named it themselves. */
146
+ labelledBy = computed(() => this.writtenLabelledBy ??
147
+ (this.writtenLabel === null ? (this.field?.ids().label ?? null) : null), /* @ts-ignore */
148
+ ...(ngDevMode ? [{ debugName: "labelledBy" }] : /* istanbul ignore next */ []));
149
+ describedBy = computed(() => {
150
+ const merged = [this.writtenDescribedBy, this.field?.describedBy()].filter(Boolean);
151
+ return merged.length === 0 ? null : merged.join(' ');
152
+ }, /* @ts-ignore */
153
+ ...(ngDevMode ? [{ debugName: "describedBy" }] : /* istanbul ignore next */ []));
154
+ ariaInvalid = computed(() => this.resolvedInvalid() === true ? 'true' : null, /* @ts-ignore */
155
+ ...(ngDevMode ? [{ debugName: "ariaInvalid" }] : /* istanbul ignore next */ []));
156
+ ariaRequired = computed(() => this.resolvedRequired() === true ? 'true' : null, /* @ts-ignore */
157
+ ...(ngDevMode ? [{ debugName: "ariaRequired" }] : /* istanbul ignore next */ []));
158
+ constructor() {
159
+ /* The count is the group's and the place is the field's, exactly as a text
160
+ field publishes characters to the same channel. */
161
+ effect(() => {
162
+ const field = this.field;
163
+ if (field === null)
164
+ return;
165
+ if (!this.showCount()) {
166
+ field.setCount(undefined);
167
+ return;
168
+ }
169
+ field.setCount({ length: this.selection().length, max: this.allValues()?.length });
170
+ });
171
+ }
172
+ /**
173
+ * Angular creates every directive in a template before it binds any input, so
174
+ * the starting selection is read here rather than in the constructor: read
175
+ * there, `defaultValue` is always `undefined` and the group starts empty.
176
+ */
177
+ ngOnInit() {
178
+ if (this.value() === undefined)
179
+ this.own.set(this.defaultValue() ?? []);
180
+ }
181
+ /** Whether one value is in the selection. Read by every box in the set. */
182
+ holds(value) {
183
+ return this.selection().includes(value);
184
+ }
185
+ /**
186
+ * Asks the group to add or remove one value. Returns whether the selection
187
+ * actually moved — false while a consumer owns it, which is what tells the
188
+ * box to refuse the activation and let the platform put the element back.
189
+ */
190
+ toggle(value, reason, source) {
191
+ const current = this.selection();
192
+ const all = this.allValues();
193
+ const next = current.includes(value)
194
+ ? current.filter((candidate) => candidate !== value)
195
+ : all === undefined
196
+ ? [...current, value]
197
+ : all.filter((candidate) => candidate === value || current.includes(candidate));
198
+ return this.request(next, reason, source);
199
+ }
200
+ /** Asks the group to replace its whole selection. Used by the parent box. */
201
+ requestAll(checked, reason, source) {
202
+ return this.request(checked ? [...(this.allValues() ?? [])] : [], reason, source);
203
+ }
204
+ writeValue(value) {
205
+ this.own.set(value ?? []);
206
+ }
207
+ registerOnChange(fn) {
208
+ this.onChangeFn = fn;
209
+ }
210
+ registerOnTouched(fn) {
211
+ this.onTouchedFn = fn;
212
+ }
213
+ setDisabledState(isDisabled) {
214
+ this.formDisabled.set(isDisabled);
215
+ }
216
+ /** Marks the set touched, which a box calls when it loses focus. */
217
+ markTouched() {
218
+ this.onTouchedFn();
219
+ }
220
+ /**
221
+ * The group owns validity over the set, which no single box can see: "choose
222
+ * at least one" is a fact about the array and not about any one value.
223
+ */
224
+ validate(control) {
225
+ if (this.resolvedRequired() !== true)
226
+ return null;
227
+ const value = control.value;
228
+ return value === null || value === undefined || value.length === 0 ? { required: true } : null;
229
+ }
230
+ request(next, reason, source) {
231
+ if (this.resolvedReadOnly() === true)
232
+ return false;
233
+ let cancelled = false;
234
+ const state = createControllable({
235
+ controlled: this.value(),
236
+ equals: sameSelection,
237
+ initial: this.selection(),
238
+ onRequest: (request) => {
239
+ this.valueChange.emit(request);
240
+ cancelled = request.cancelled;
241
+ },
242
+ });
243
+ const moved = state.request(next, reason, source);
244
+ if (cancelled || !moved)
245
+ return false;
246
+ this.own.set(next);
247
+ this.onChangeFn(next);
248
+ return true;
249
+ }
250
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlCheckboxGroup, deps: [], target: i0.ɵɵFactoryTarget.Component });
251
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.7", type: SlCheckboxGroup, isStandalone: true, selector: "[slCheckboxGroup]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, defaultValue: { classPropertyName: "defaultValue", publicName: "defaultValue", isSignal: true, isRequired: false, transformFunction: null }, allValues: { classPropertyName: "allValues", publicName: "allValues", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, labelPlacement: { classPropertyName: "labelPlacement", publicName: "labelPlacement", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, readOnly: { classPropertyName: "readOnly", publicName: "readOnly", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, showCount: { classPropertyName: "showCount", publicName: "showCount", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, host: { attributes: { "data-ui": "checkbox-group", "data-part": "root" }, properties: { "attr.role": "resolvedRole()", "attr.data-size": "resolvedSize()", "attr.data-orientation": "resolvedOrientation()", "attr.data-variant": "resolvedVariant()", "attr.data-disabled": "resolvedDisabled() === true ? '' : null", "attr.data-invalid": "resolvedInvalid() === true ? '' : null", "attr.data-readonly": "resolvedReadOnly() === true ? '' : null", "attr.aria-labelledby": "labelledBy()", "attr.aria-describedby": "describedBy()", "attr.aria-invalid": "ariaInvalid()", "attr.aria-required": "ariaRequired()" } }, providers: [
252
+ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SlCheckboxGroup), multi: true },
253
+ { provide: NG_VALIDATORS, useExisting: forwardRef(() => SlCheckboxGroup), multi: true },
254
+ ], exportAs: ["slCheckboxGroup"], ngImport: i0, template: '<ng-content />', isInline: true, styles: ["@layer slotted.components{[data-ui=checkbox-group][data-part=root]{--_gap: var(--slotted-control-gap-md, 8px);display:flex;flex-direction:column;gap:var(--slotted-checkbox-group-gap, var(--_gap))}[data-ui=checkbox-group][data-part=root]:has([data-part=description]){row-gap:var(--slotted-checkbox-group-gap, calc(var(--_gap) * 2))}[data-ui=checkbox-group][data-part=root][data-orientation=horizontal]{column-gap:calc(var(--_gap) * 2);flex-direction:row;flex-wrap:wrap}[data-ui=checkbox-group][data-part=root][data-size=sm]{--_gap: var(--slotted-control-gap-sm, 6px)}[data-ui=checkbox-group][data-part=root][data-size=md]{--_gap: var(--slotted-control-gap-md, 8px)}[data-ui=checkbox-group][data-part=root][data-size=lg]{--_gap: var(--slotted-control-gap-lg, 8px)}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
255
+ }
256
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlCheckboxGroup, decorators: [{
257
+ type: Component,
258
+ args: [{ selector: '[slCheckboxGroup]', standalone: true, exportAs: 'slCheckboxGroup', template: '<ng-content />', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
259
+ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SlCheckboxGroup), multi: true },
260
+ { provide: NG_VALIDATORS, useExisting: forwardRef(() => SlCheckboxGroup), multi: true },
261
+ ], host: {
262
+ 'data-ui': 'checkbox-group',
263
+ 'data-part': 'root',
264
+ '[attr.role]': 'resolvedRole()',
265
+ '[attr.data-size]': 'resolvedSize()',
266
+ '[attr.data-orientation]': 'resolvedOrientation()',
267
+ '[attr.data-variant]': 'resolvedVariant()',
268
+ '[attr.data-disabled]': "resolvedDisabled() === true ? '' : null",
269
+ '[attr.data-invalid]': "resolvedInvalid() === true ? '' : null",
270
+ '[attr.data-readonly]': "resolvedReadOnly() === true ? '' : null",
271
+ '[attr.aria-labelledby]': 'labelledBy()',
272
+ '[attr.aria-describedby]': 'describedBy()',
273
+ '[attr.aria-invalid]': 'ariaInvalid()',
274
+ '[attr.aria-required]': 'ariaRequired()',
275
+ }, styles: ["@layer slotted.components{[data-ui=checkbox-group][data-part=root]{--_gap: var(--slotted-control-gap-md, 8px);display:flex;flex-direction:column;gap:var(--slotted-checkbox-group-gap, var(--_gap))}[data-ui=checkbox-group][data-part=root]:has([data-part=description]){row-gap:var(--slotted-checkbox-group-gap, calc(var(--_gap) * 2))}[data-ui=checkbox-group][data-part=root][data-orientation=horizontal]{column-gap:calc(var(--_gap) * 2);flex-direction:row;flex-wrap:wrap}[data-ui=checkbox-group][data-part=root][data-size=sm]{--_gap: var(--slotted-control-gap-sm, 6px)}[data-ui=checkbox-group][data-part=root][data-size=md]{--_gap: var(--slotted-control-gap-md, 8px)}[data-ui=checkbox-group][data-part=root][data-size=lg]{--_gap: var(--slotted-control-gap-lg, 8px)}}\n"] }]
276
+ }], ctorParameters: () => [], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], defaultValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultValue", required: false }] }], allValues: [{ type: i0.Input, args: [{ isSignal: true, alias: "allValues", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], labelPlacement: [{ type: i0.Input, args: [{ isSignal: true, alias: "labelPlacement", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], readOnly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readOnly", required: false }] }], invalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalid", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], showCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "showCount", required: false }] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }] } });
277
+
278
+ /**
279
+ * Generated bundle index. Do not edit.
280
+ */
281
+
282
+ export { CHECKBOX_GROUP_DEFAULTS, SlCheckboxGroup, injectCheckboxGroupDefaults, provideCheckboxGroupDefaults };
283
+ //# sourceMappingURL=slotted-angular-checkbox-group.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slotted-angular-checkbox-group.mjs","sources":["../../checkbox-group/src/checkbox-group-defaults.ts","../../checkbox-group/src/checkbox-group.ts","../../checkbox-group/src/slotted-angular-checkbox-group.ts"],"sourcesContent":["import { inject, InjectionToken } from '@angular/core';\n\n/** The type step the group and every box inside it sit at. */\nexport type CheckboxGroupSize = 'sm' | 'md' | 'lg';\n\n/** How the choices flow. `horizontal` wraps; a set of options is not a scroll region. */\nexport type CheckboxGroupOrientation = 'vertical' | 'horizontal';\n\n/**\n * Whether the choice is a box beside a line of text or a framed surface whose\n * whole area is the target. `tile` is the name Carbon and Cloudscape give the\n * framed choice; Mantine and Chakra call it a card, which is a family here.\n */\nexport type CheckboxGroupVariant = 'plain' | 'tile';\n\n/** Which side of its own label a box is on. */\nexport type CheckboxGroupLabelPlacement = 'end' | 'start';\n\nexport interface CheckboxGroupDefaults {\n labelPlacement: CheckboxGroupLabelPlacement;\n variant: CheckboxGroupVariant;\n orientation: CheckboxGroupOrientation;\n size: CheckboxGroupSize;\n}\n\nconst FALLBACK: CheckboxGroupDefaults = {\n labelPlacement: 'end',\n orientation: 'vertical',\n size: 'md',\n variant: 'plain',\n};\n\nexport const CHECKBOX_GROUP_DEFAULTS = new InjectionToken<CheckboxGroupDefaults>(\n 'slotted checkbox group defaults',\n { providedIn: 'root', factory: () => FALLBACK },\n);\n\n/**\n * An application decides once how its sets of choices flow, rather than\n * repeating the same inputs on every group in a form. A group that states any\n * of them itself still wins, and a field around the group outranks this token\n * for `size`.\n */\nexport function provideCheckboxGroupDefaults(defaults: Partial<CheckboxGroupDefaults>) {\n return {\n provide: CHECKBOX_GROUP_DEFAULTS,\n useFactory: (): CheckboxGroupDefaults => ({ ...FALLBACK, ...defaults }),\n };\n}\n\n/** What a checkbox group renders as here, before it states anything of its own. */\nexport function injectCheckboxGroupDefaults(): CheckboxGroupDefaults {\n return inject(CHECKBOX_GROUP_DEFAULTS);\n}\n","import { createControllable } from '@slotted/core/state';\nimport type { ChangeRequest } from '@slotted/core/state';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n forwardRef,\n HostAttributeToken,\n inject,\n input,\n output,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport type { OnInit } from '@angular/core';\nimport type {\n AbstractControl,\n ControlValueAccessor,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\nimport { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { injectFieldDefaults, SlField, SlFieldDefaultsSource } from '@slotted/angular/field';\nimport { SlFieldGroup } from '@slotted/angular/field-group';\n\nimport { injectCheckboxGroupDefaults } from './checkbox-group-defaults';\nimport type {\n CheckboxGroupLabelPlacement,\n CheckboxGroupVariant,\n CheckboxGroupOrientation,\n CheckboxGroupSize,\n} from './checkbox-group-defaults';\n\nexport type {\n CheckboxGroupDefaults,\n CheckboxGroupLabelPlacement,\n CheckboxGroupVariant,\n CheckboxGroupOrientation,\n CheckboxGroupSize,\n} from './checkbox-group-defaults';\n\n/** Why the selection moved. A set of boxes can produce exactly these two. */\nexport type CheckboxGroupSelectionReason = 'pointer' | 'keyboard';\n\n/** Whether two selections hold the same values in the same order. */\nfunction sameSelection(a: readonly string[], b: readonly string[]): boolean {\n return a.length === b.length && a.every((value, index) => value === b[index]);\n}\n\n/**\n * A set of choices, and the array behind it.\n *\n * **The group holds the value; the boxes draw themselves.** `checkbox` is the\n * entry point beside this one rather than a part of it, so a box works alone\n * and this stylesheet never selects into that one.\n *\n * **The role is conditional, and the condition is the field group.** A\n * `field-group` is a `fieldset` with a `legend`, which is already a named group;\n * a `role=\"group\"` inside it, named by the same legend, is the same set\n * announced twice. A `role` the consumer wrote wins over both.\n *\n * **Order comes from `allValues` when there is one.** A selection that grew in\n * click order would submit in click order, so two readers who chose the same\n * three options would send two different arrays.\n */\n@Component({\n selector: '[slCheckboxGroup]',\n standalone: true,\n exportAs: 'slCheckboxGroup',\n template: '<ng-content />',\n styleUrl: '../../../styles/src/checkbox-group/checkbox-group.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SlCheckboxGroup), multi: true },\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => SlCheckboxGroup), multi: true },\n ],\n host: {\n 'data-ui': 'checkbox-group',\n 'data-part': 'root',\n '[attr.role]': 'resolvedRole()',\n '[attr.data-size]': 'resolvedSize()',\n '[attr.data-orientation]': 'resolvedOrientation()',\n '[attr.data-variant]': 'resolvedVariant()',\n '[attr.data-disabled]': \"resolvedDisabled() === true ? '' : null\",\n '[attr.data-invalid]': \"resolvedInvalid() === true ? '' : null\",\n '[attr.data-readonly]': \"resolvedReadOnly() === true ? '' : null\",\n '[attr.aria-labelledby]': 'labelledBy()',\n '[attr.aria-describedby]': 'describedBy()',\n '[attr.aria-invalid]': 'ariaInvalid()',\n '[attr.aria-required]': 'ariaRequired()',\n },\n})\nexport class SlCheckboxGroup implements ControlValueAccessor, OnInit, Validator {\n /** Present means the consumer owns the selection. */\n readonly value = input<readonly string[] | undefined>(undefined);\n /** The selection an uncontrolled group starts from, read once. */\n readonly defaultValue = input<readonly string[] | undefined>(undefined);\n /**\n * Every value the group commands. It is what makes a parent box possible, and\n * what keeps the selection in the set's order rather than in click order.\n */\n readonly allValues = input<readonly string[] | undefined>(undefined);\n /** The submission name every box shares when it states none of its own. */\n readonly name = input<string | undefined>(undefined);\n readonly size = input<CheckboxGroupSize | undefined>(undefined);\n readonly orientation = input<CheckboxGroupOrientation | undefined>(undefined);\n readonly labelPlacement = input<CheckboxGroupLabelPlacement | undefined>(undefined);\n readonly variant = input<CheckboxGroupVariant | undefined>(undefined);\n /** Unstated rather than `false`, so the group defers to the field around it. */\n readonly disabled = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n readonly readOnly = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n readonly invalid = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n readonly required = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n /** Publishes how many of `allValues` are selected to the field around the group. */\n readonly showCount = input(false, { transform: booleanAttribute });\n\n /**\n * One output for one transition, carrying the new array, the array it\n * replaces, the reason, the originating event and `cancel()`. There is no\n * `[(value)]`, because a two-way binding has one slot and can carry none of\n * those; a form gets the same movement through `ControlValueAccessor`.\n */\n readonly valueChange = output<ChangeRequest<readonly string[]>>();\n\n private readonly field = inject(SlField, { optional: true });\n private readonly fieldGroup = inject(SlFieldGroup, { optional: true });\n private readonly defaults = injectCheckboxGroupDefaults();\n /**\n * The field defaults in force: a field group's, or the application's own.\n * A group outside a field reads disabled and read-only from them, as React's\n * reads them from FieldDefaultsProvider.\n */\n private readonly fieldDefaultsSource = inject(SlFieldDefaultsSource, { optional: true });\n private readonly fieldDefaultsToken = injectFieldDefaults();\n private readonly fieldDefaults = computed(\n () => this.fieldDefaultsSource?.fieldDefaults() ?? this.fieldDefaultsToken,\n );\n private readonly writtenRole = inject(new HostAttributeToken('role'), { optional: true });\n private readonly writtenDescribedBy = inject(new HostAttributeToken('aria-describedby'), {\n optional: true,\n });\n private readonly writtenLabel = inject(new HostAttributeToken('aria-label'), { optional: true });\n private readonly writtenLabelledBy = inject(new HostAttributeToken('aria-labelledby'), {\n optional: true,\n });\n\n private readonly own = signal<readonly string[]>([]);\n private readonly formDisabled = signal<boolean | undefined>(undefined);\n private onChangeFn: (value: readonly string[]) => void = () => undefined;\n private onTouchedFn: () => void = () => undefined;\n\n readonly selection = computed(() => this.value() ?? this.own());\n\n readonly resolvedSize = computed(\n () =>\n this.size() ??\n this.field?.resolvedSize() ??\n this.fieldGroup?.resolvedSize() ??\n this.defaults.size,\n );\n readonly resolvedOrientation = computed(() => this.orientation() ?? this.defaults.orientation);\n readonly resolvedLabelPlacement = computed(\n () => this.labelPlacement() ?? this.defaults.labelPlacement,\n );\n /** Handed to every choice in the set: one plain box among four tiles is a\n set nobody meant to write. */\n readonly resolvedVariant = computed(() => this.variant() ?? this.defaults.variant);\n readonly resolvedDisabled = computed(\n () =>\n this.disabled() ??\n this.formDisabled() ??\n this.field?.resolvedDisabled() ??\n this.fieldDefaults().disabled,\n );\n readonly resolvedReadOnly = computed(\n () => this.readOnly() ?? this.field?.resolvedReadOnly() ?? this.fieldDefaults().readOnly,\n );\n readonly resolvedInvalid = computed(\n () => this.invalid() ?? this.field?.invalid() ?? this.fieldGroup?.invalid(),\n );\n readonly resolvedRequired = computed(\n () => this.required() ?? this.field?.required() ?? this.fieldGroup?.required(),\n );\n protected readonly resolvedRole = computed(\n () => this.writtenRole ?? (this.fieldGroup === null ? 'group' : null),\n );\n /* A group has no element a label's for can reach, so inside a field the\n field's label names it, unless the consumer named it themselves. */\n protected readonly labelledBy = computed(\n () =>\n this.writtenLabelledBy ??\n (this.writtenLabel === null ? (this.field?.ids().label ?? null) : null),\n );\n protected readonly describedBy = computed(() => {\n const merged = [this.writtenDescribedBy, this.field?.describedBy()].filter(Boolean);\n return merged.length === 0 ? null : merged.join(' ');\n });\n protected readonly ariaInvalid = computed(() =>\n this.resolvedInvalid() === true ? 'true' : null,\n );\n protected readonly ariaRequired = computed(() =>\n this.resolvedRequired() === true ? 'true' : null,\n );\n\n constructor() {\n /* The count is the group's and the place is the field's, exactly as a text\n field publishes characters to the same channel. */\n effect(() => {\n const field = this.field;\n if (field === null) return;\n if (!this.showCount()) {\n field.setCount(undefined);\n return;\n }\n field.setCount({ length: this.selection().length, max: this.allValues()?.length });\n });\n }\n\n /**\n * Angular creates every directive in a template before it binds any input, so\n * the starting selection is read here rather than in the constructor: read\n * there, `defaultValue` is always `undefined` and the group starts empty.\n */\n ngOnInit() {\n if (this.value() === undefined) this.own.set(this.defaultValue() ?? []);\n }\n\n /** Whether one value is in the selection. Read by every box in the set. */\n holds(value: string): boolean {\n return this.selection().includes(value);\n }\n\n /**\n * Asks the group to add or remove one value. Returns whether the selection\n * actually moved — false while a consumer owns it, which is what tells the\n * box to refuse the activation and let the platform put the element back.\n */\n toggle(value: string, reason: CheckboxGroupSelectionReason, source: Event): boolean {\n const current = this.selection();\n const all = this.allValues();\n const next = current.includes(value)\n ? current.filter((candidate) => candidate !== value)\n : all === undefined\n ? [...current, value]\n : all.filter((candidate) => candidate === value || current.includes(candidate));\n return this.request(next, reason, source);\n }\n\n /** Asks the group to replace its whole selection. Used by the parent box. */\n requestAll(checked: boolean, reason: CheckboxGroupSelectionReason, source: Event): boolean {\n return this.request(checked ? [...(this.allValues() ?? [])] : [], reason, source);\n }\n\n writeValue(value: readonly string[] | null | undefined) {\n this.own.set(value ?? []);\n }\n\n registerOnChange(fn: (value: readonly string[]) => void) {\n this.onChangeFn = fn;\n }\n\n registerOnTouched(fn: () => void) {\n this.onTouchedFn = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.formDisabled.set(isDisabled);\n }\n\n /** Marks the set touched, which a box calls when it loses focus. */\n markTouched() {\n this.onTouchedFn();\n }\n\n /**\n * The group owns validity over the set, which no single box can see: \"choose\n * at least one\" is a fact about the array and not about any one value.\n */\n validate(control: AbstractControl): ValidationErrors | null {\n if (this.resolvedRequired() !== true) return null;\n const value = control.value as readonly string[] | null | undefined;\n return value === null || value === undefined || value.length === 0 ? { required: true } : null;\n }\n\n private request(\n next: readonly string[],\n reason: CheckboxGroupSelectionReason,\n source: Event,\n ): boolean {\n if (this.resolvedReadOnly() === true) return false;\n\n let cancelled = false;\n const state = createControllable<readonly string[]>({\n controlled: this.value(),\n equals: sameSelection,\n initial: this.selection(),\n onRequest: (request) => {\n this.valueChange.emit(request);\n cancelled = request.cancelled;\n },\n });\n const moved = state.request(next, reason, source);\n if (cancelled || !moved) return false;\n this.own.set(next);\n this.onChangeFn(next);\n return true;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}