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

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-filter-bar.mjs","sources":["../../filter-bar/src/filter-bar.constants.ts","../../filter-bar/src/filter-bar.ts","../../filter-bar/src/slotted-angular-filter-bar.ts"],"sourcesContent":["import { InjectionToken, inject } from '@angular/core';\nimport type { TemplateRef } from '@angular/core';\nimport type { FilterDescriptor, FilterGroup, FilterKind } from '@slotted/core/filter';\n\nexport type FilterBarApply = 'live' | 'manual';\nexport type FilterBarSize = 'sm' | 'md' | 'lg';\nexport type FilterBarValueReason =\n 'pointer' | 'keyboard' | 'clear' | 'remove' | 'select' | 'submit' | 'programmatic';\nexport type FilterBarQueryReason = 'keyboard' | 'clear' | 'submit' | 'programmatic';\nexport type FilterBarPresetReason = 'select' | 'clear' | 'programmatic';\nexport type FilterBarOpenReason =\n 'pointer' | 'keyboard' | 'escape' | 'outsidePress' | 'dismiss' | 'submit' | 'programmatic';\nexport type FilterBarRevealedReason = 'pointer' | 'keyboard' | 'programmatic';\n\n/** A value of a set field, with the word a reader sees for it. */\nexport interface FilterBarOption {\n value: string;\n label: string;\n}\n\n/**\n * One field a listing can be filtered by. `key` is what a rule names and what\n * `read(row, field)` receives; `kind` decides the operators and the operand\n * control, which is the same decision `table`'s typed filters make.\n */\nexport interface FilterBarField {\n key: string;\n label: string;\n kind: FilterKind;\n /**\n * Drawn before the field's name on its chip and in the add menu: a glyph\n * name from `@slotted/core/glyph`, or a template of the consumer's.\n */\n icon?: string | TemplateRef<unknown>;\n /** Narrows the operators the kind offers. */\n operators?: readonly string[];\n /** The operator a new rule starts with. Defaults to the kind's. */\n defaultOperator?: string;\n /**\n * Always in sight: a dashed pill while it holds no condition, a chip in the\n * same place once it does.\n */\n pinned?: boolean;\n /**\n * A field that always holds a rule: Clear returns it to `defaultValue`\n * rather than to nothing, and a rule without an operand refuses to be\n * applied or removed. A required field is pinned whether or not it says so.\n */\n required?: boolean;\n defaultValue?: FilterDescriptor | null;\n /** A heading the add menu groups the field under. */\n section?: string;\n /** Whether the global query searches this field. */\n searchable?: boolean;\n /** The values a `set` field offers. */\n options?: readonly FilterBarOption[];\n min?: number | string;\n max?: number | string;\n step?: number;\n}\n\n/** A saved view: a name and the tree it restores. */\nexport interface FilterBarPreset {\n key: string;\n label: string;\n value: FilterGroup | null;\n}\n\nexport const FILTER_BAR_DEFAULT_APPLY: FilterBarApply = 'live';\nexport const FILTER_BAR_DEFAULT_SIZE: FilterBarSize = 'md';\nexport const FILTER_BAR_DEFAULT_QUERY_DELAY = 320;\nexport const FILTER_BAR_DEFAULT_CHIP_LIMIT = 6;\n\nexport interface FilterBarDefaults {\n apply?: FilterBarApply;\n chipLimit?: number;\n queryDelay?: number;\n shortcut?: string | null;\n size?: FilterBarSize;\n}\n\nexport const FILTER_BAR_DEFAULTS_TOKEN = new InjectionToken<FilterBarDefaults>(\n 'slotted filter-bar defaults',\n { providedIn: 'root', factory: (): FilterBarDefaults => ({}) },\n);\n\n/**\n * An application decides once how its bars apply, how long the query waits,\n * how many chips show, and which key reaches the search. A bar that states any\n * of those itself still wins. Its words come from the language in force\n * (`provideSlotted`).\n */\nexport function provideFilterBarDefaults(defaults: FilterBarDefaults) {\n return { provide: FILTER_BAR_DEFAULTS_TOKEN, useValue: defaults };\n}\n\nexport function injectFilterBarDefaults(): FilterBarDefaults {\n return inject(FILTER_BAR_DEFAULTS_TOKEN);\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n afterNextRender,\n afterRenderEffect,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n contentChildren,\n DestroyRef,\n Directive,\n effect,\n ElementRef,\n forwardRef,\n HostAttributeToken,\n inject,\n Injector,\n input,\n model,\n numberAttribute,\n output,\n signal,\n TemplateRef,\n untracked,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n isPlainDate,\n isPlainDateTime,\n isPlainTime,\n parseISODate,\n parseISODateTime,\n parseISOTime,\n toISODate,\n toISODateTime,\n toISOTime,\n} from '@slotted/core/date';\nimport {\n defaultOperator as kindDefaultOperator,\n describeFilter,\n describeFilterGroup,\n emptyFilter,\n emptyFilterGroup,\n firstLevelRules,\n insertNodeAt,\n isFilterActive,\n isFilterGroup,\n normalizeFilterGroup,\n operandCount,\n operatorsFor,\n removeNodeAt,\n ruleFor,\n serializeFilterGroup,\n spokenOperator,\n updateNodeAt,\n withCondition,\n withGroupJoin,\n withoutRuleFor,\n withRuleFor,\n} from '@slotted/core/filter';\nimport type {\n FilterCondition,\n FilterDescriptor,\n FilterGroup,\n FilterJoin,\n FilterNode,\n FilterOperator,\n FilterPath,\n FilterRule,\n} from '@slotted/core/filter';\nimport { createRemovalFocus, createRovingTabindex } from '@slotted/core/focus';\nimport { filterBarMessages } from '@slotted/core/i18n';\nimport type {\n FamilyTranslator,\n FilterBarMessages,\n MessageSlots,\n PartialMessages,\n} from '@slotted/core/i18n';\nimport { getLiveAnnouncer } from '@slotted/core/live-announcer';\nimport { createControllable } from '@slotted/core/state';\nimport type { ChangeRequest } from '@slotted/core/state';\nimport { SlButton, SlButtonStart, SlIconButton } from '@slotted/angular/button';\nimport { injectMessages } from '@slotted/angular/i18n';\nimport { SlDatePicker } from '@slotted/angular/date-picker';\nimport { SlDateTimePicker } from '@slotted/angular/datetime-picker';\nimport {\n SlDrawer,\n SlDrawerBody,\n SlDrawerClose,\n SlDrawerFooter,\n SlDrawerHeader,\n SlDrawerTitle,\n} from '@slotted/angular/drawer';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\nimport { SlKbd } from '@slotted/angular/kbd';\nimport {\n SlMenu,\n SlMenuGroup,\n SlMenuItem,\n SlMenuItemIcon,\n SlMenuRadioGroup,\n SlMenuTrigger,\n} from '@slotted/angular/menu';\nimport { SlMultiSelect, SlMultiSelectItem } from '@slotted/angular/multi-select';\nimport { SlNumberField, SlNumberFieldInput } from '@slotted/angular/number-field';\nimport {\n SlPopover,\n SlPopoverBody,\n SlPopoverContent,\n SlPopoverLayer,\n SlPopoverTrigger,\n} from '@slotted/angular/popover';\nimport { SlSegment, SlSegmentedControl } from '@slotted/angular/segmented-control';\nimport { SlSelect, SlSelectItem } from '@slotted/angular/select';\nimport {\n SlTextField,\n SlTextFieldEnd,\n SlTextFieldInput,\n SlTextFieldStart,\n} from '@slotted/angular/text-field';\nimport { SlTimePicker } from '@slotted/angular/time-picker';\n\nimport {\n FILTER_BAR_DEFAULT_APPLY,\n FILTER_BAR_DEFAULT_CHIP_LIMIT,\n FILTER_BAR_DEFAULT_QUERY_DELAY,\n FILTER_BAR_DEFAULT_SIZE,\n injectFilterBarDefaults,\n type FilterBarApply,\n type FilterBarField,\n type FilterBarOpenReason,\n type FilterBarPreset,\n type FilterBarPresetReason,\n type FilterBarQueryReason,\n type FilterBarRevealedReason,\n type FilterBarSize,\n type FilterBarValueReason,\n} from './filter-bar.constants';\n\ntype Condition = FilterCondition<string, unknown>;\n\n/**\n * Every stop of the one toolbar, in DOM order: the arrows walk the pills, each\n * segment of each chip, more, add, clear and the actions, line after line. A\n * stop the stylesheet hides at this width is skipped by its visibility.\n */\nconst BAR_ITEMS = [\n 'summary',\n 'pill',\n 'chip-operator',\n 'chip-value',\n 'chip-remove',\n 'more',\n 'add',\n 'clear',\n 'reset',\n 'apply',\n]\n .map((part) => `[data-part='${part}']`)\n .join(', ');\n\nconst SEGMENTS = \"[data-part='chip-operator'], [data-part='chip-value'], [data-part='chip-remove']\";\n\n/** The bar's narrow breakpoint and the builder's sheet breakpoint, in rems — the stylesheet's. */\nconst NARROW_REM = 36;\n\nconst STICKY_TOP = '--slotted-page-sticky-top';\n\nlet counter = 0;\n\nfunction remToPx(element: Element, rem: number) {\n const size = parseFloat(\n element.ownerDocument.defaultView?.getComputedStyle(element.ownerDocument.documentElement)\n .fontSize ?? '16',\n );\n return rem * (Number.isFinite(size) ? size : 16);\n}\n\nfunction sameGroup(a: FilterGroup | null, b: FilterGroup | null) {\n return serializeFilterGroup(a) === serializeFilterGroup(b);\n}\n\nfunction fieldByKey(fields: readonly FilterBarField[], key: string) {\n return fields.find((field) => field.key === key);\n}\n\n/** The family's words in the language in force, with the bar's `messages` laid over them. */\nexport type FilterBarTranslator = FamilyTranslator<FilterBarMessages>;\n\n/**\n * A translator that calls the one an input holds at the moment it is read, so\n * an editor's template writes `t('key')` and follows both the input and a\n * change of language.\n */\nfunction follow(source: () => FilterBarTranslator): FilterBarTranslator {\n return ((key: string, slots?: MessageSlots) =>\n (source() as (key: string, slots?: MessageSlots) => string)(key, slots)) as FilterBarTranslator;\n}\n\n/** An operator's name, or the operator itself when the catalog names no such operator. */\nfunction operatorName(t: FilterBarTranslator, operator: string) {\n return operator in filterBarMessages.base.operators\n ? t(`operators.${operator as FilterOperator}`)\n : operator;\n}\n\n/**\n * A message's text on either side of one slot, for a sentence that holds a\n * control: the join chooser stands where `{join}` stands, in the order the\n * language writes it.\n */\nfunction aroundSlot(written: (mark: string) => string): [string, string] {\n const mark = '\\u0000';\n const [before = '', after = ''] = written(mark).split(mark);\n return [before.trim(), after.trim()];\n}\n\n/** The rule a field starts with: its default, else one empty condition on its default operator. */\nfunction blankRule(field: FilterBarField): FilterDescriptor {\n if (field.defaultValue) return field.defaultValue;\n const operator = field.defaultOperator ?? kindDefaultOperator(field.kind);\n return emptyFilter(field.kind, operator as never) as FilterDescriptor;\n}\n\n/**\n * A condition in the words a chip and a rule card write it with: the operator\n * as the sentence reads it, and the value — a list of more than two written as\n * its first two and a count, the whole list kept in `full` for the name and the\n * title.\n */\nfunction ruleWords(\n t: FilterBarTranslator,\n field: FilterBarField | undefined,\n filter: FilterDescriptor | null | undefined,\n): { operator: string; value: string; full: string; operands: number } {\n const kind = filter?.kind ?? field?.kind ?? 'text';\n const condition: Condition = (filter?.conditions[0] as Condition | undefined) ?? {\n operator: field ? (field.defaultOperator ?? kindDefaultOperator(field.kind)) : 'contains',\n };\n const operands = operandCount(condition.operator as FilterOperator);\n const operator = operatorName(t, spokenOperator(kind, condition));\n const write = (value: unknown) =>\n field?.options?.find((option) => option.value === value)?.label ?? String(value);\n const present = (value: unknown) =>\n value !== undefined &&\n value !== null &&\n value !== '' &&\n !(Array.isArray(value) && value.length === 0);\n if (operands === 0) return { operator, value: '', full: '', operands };\n if (kind === 'set') {\n const values = ((condition.value as readonly unknown[] | undefined) ?? []).map(write);\n const full = values.join(', ');\n const value =\n values.length > 2\n ? t('moreValues', { values: values.slice(0, 2).join(', '), count: values.length - 2 })\n : full;\n return { operator, value, full, operands };\n }\n if (operands === 2) {\n if (!present(condition.value) || !present(condition.end)) {\n return { operator, value: '', full: '', operands };\n }\n const range = `${write(condition.value)} – ${write(condition.end)}`;\n return { operator, value: range, full: range, operands };\n }\n const value = present(condition.value) ? write(condition.value) : '';\n return { operator, value, full: value, operands };\n}\n\nfunction countActive(group: FilterGroup | null): number {\n const active = normalizeFilterGroup(group);\n if (!active) return 0;\n let count = 0;\n const walk = (node: FilterNode) => {\n if (isFilterGroup(node)) node.rules.forEach(walk);\n else count += 1;\n };\n walk(active);\n return count;\n}\n\nfunction isEditable(element: Element | null) {\n if (!element) return false;\n const tag = element.tagName;\n return (\n tag === 'INPUT' ||\n tag === 'TEXTAREA' ||\n tag === 'SELECT' ||\n (element as HTMLElement).isContentEditable\n );\n}\n\n/** What a `slFilterBarOperand` template is handed for one operand. */\nexport interface FilterBarOperandContext {\n $implicit: FilterBarField;\n field: FilterBarField;\n operator: FilterOperator;\n index: 0 | 1;\n value: unknown;\n set: (value: unknown) => void;\n apply: () => void;\n label: string;\n size: FilterBarSize;\n}\n\n/**\n * Replaces the operand control of a field's rules. `slFilterBarOperand` names\n * the field, or `*` for every field. The template is rendered per rule and\n * never built for a closed surface.\n */\n@Directive({ selector: 'ng-template[slFilterBarOperand]', standalone: true })\nexport class SlFilterBarOperand {\n readonly field = input.required<string>({ alias: 'slFilterBarOperand' });\n readonly template = inject<TemplateRef<FilterBarOperandContext>>(TemplateRef);\n}\n\n/**\n * Writes this family's part name on a control another family's directive\n * owns. `slButton`, `slIconButton` and `slMenuTriggerFor` each write\n * `data-part` from their host metadata, which erases the one the template\n * wrote — the rule the briefing records for `toolbar`'s overflow control — so\n * the part is written back after the first render, where nothing writes over\n * it again.\n */\n@Directive({ selector: '[slFilterBarPart]', standalone: true })\nexport class SlFilterBarPart {\n readonly part = input.required<string>({ alias: 'slFilterBarPart' });\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n\n constructor() {\n afterNextRender(() => this.host.nativeElement.setAttribute('data-part', this.part()));\n }\n}\n\n/** The consumer's own controls, drawn in the `end` slot. */\n@Directive({ selector: '[slFilterBarEnd]', standalone: true })\nexport class SlFilterBarEnd {}\n\n/** What every editor in the family reads from the bar. */\nexport interface FilterBarEnvironment {\n fields: () => readonly FilterBarField[];\n t: FilterBarTranslator;\n size: () => FilterBarSize;\n operandTemplates: () => readonly SlFilterBarOperand[];\n}\n\n/**\n * One condition — the operator and its operands — with the operand control the\n * kind draws, the same choice `table`'s typed filters make, or the consumer's\n * own template.\n */\n@Component({\n selector: '[slFilterBarCondition]',\n standalone: true,\n imports: [\n NgTemplateOutlet,\n SlDatePicker,\n SlDateTimePicker,\n SlMultiSelect,\n SlMultiSelectItem,\n SlNumberField,\n SlNumberFieldInput,\n SlSelect,\n SlSelectItem,\n SlTextField,\n SlTextFieldInput,\n SlTimePicker,\n ],\n template: `\n @if (withOperator()) {\n <div data-part=\"operator\" [attr.id]=\"ids()?.operator ?? null\">\n <sl-select\n [size]=\"size()\"\n [fullWidth]=\"true\"\n [invalid]=\"invalid() ? true : undefined\"\n [items]=\"operatorItems()\"\n [attr.aria-label]=\"t('operator')\"\n [value]=\"condition().operator\"\n (valueChange)=\"setOperator($any($event))\"\n >\n @for (operator of operators(); track operator) {\n <sl-select-item [value]=\"operator\">{{ operatorName(operator) }}</sl-select-item>\n }\n </sl-select>\n </div>\n }\n <div data-part=\"operand\" [attr.id]=\"ids()?.operand ?? null\">\n @for (slot of slots(); track slot) {\n @if (customTemplate(); as custom) {\n <ng-container\n [ngTemplateOutlet]=\"custom.template\"\n [ngTemplateOutletContext]=\"context(slot)\"\n />\n } @else {\n @switch (field().kind) {\n @case ('number') {\n <div slNumberField [size]=\"size()\">\n <input\n slNumberFieldInput\n [value]=\"$any(operand(slot)) ?? null\"\n [attr.aria-label]=\"operandLabel(slot)\"\n [attr.placeholder]=\"operandLabel(slot)\"\n [attr.min]=\"numberBound(field().min)\"\n [attr.max]=\"numberBound(field().max)\"\n [attr.step]=\"field().step ?? null\"\n (valueChange)=\"setOperand(slot, $event.value)\"\n (keydown.enter)=\"apply()\"\n />\n </div>\n }\n @case ('date') {\n <div\n slDatePicker\n [size]=\"size()\"\n [value]=\"day(operand(slot))\"\n [min]=\"day(field().min) ?? undefined\"\n [max]=\"day(field().max) ?? undefined\"\n [attr.aria-label]=\"operandLabel(slot)\"\n (valueChange)=\"setOperand(slot, isoDay($event.value))\"\n (keydown.enter)=\"apply()\"\n ></div>\n }\n @case ('time') {\n <div\n slTimePicker\n [size]=\"size()\"\n [value]=\"time(operand(slot))\"\n [attr.aria-label]=\"operandLabel(slot)\"\n (valueChange)=\"setOperand(slot, isoTime($event.value))\"\n (keydown.enter)=\"apply()\"\n ></div>\n }\n @case ('datetime') {\n <div\n slDateTimePicker\n [size]=\"size()\"\n [value]=\"dateTime(operand(slot))\"\n [attr.aria-label]=\"operandLabel(slot)\"\n (valueChange)=\"setOperand(slot, isoDateTime($event.value))\"\n (keydown.enter)=\"apply()\"\n ></div>\n }\n @case ('boolean') {\n <sl-select\n [size]=\"size()\"\n [fullWidth]=\"true\"\n [items]=\"truths\"\n [attr.aria-label]=\"operandLabel(slot)\"\n [value]=\"operand(slot) === true ? 'true' : operand(slot) === false ? 'false' : null\"\n (valueChange)=\"setOperand(slot, $event === 'true')\"\n >\n <sl-select-item value=\"true\">true</sl-select-item>\n <sl-select-item value=\"false\">false</sl-select-item>\n </sl-select>\n }\n @case ('set') {\n <sl-multi-select\n [size]=\"size()\"\n [items]=\"field().options ?? []\"\n [placeholder]=\"operandLabel(slot)\"\n [attr.aria-label]=\"operandLabel(slot)\"\n [value]=\"$any(operand(slot)) ?? []\"\n (valueChange)=\"setOperand(slot, [...$event])\"\n >\n @for (option of field().options ?? []; track option.value) {\n <sl-multi-select-item [value]=\"option.value\" [label]=\"option.label\" />\n }\n </sl-multi-select>\n }\n @default {\n <div slTextField [size]=\"size()\">\n <input\n slTextFieldInput\n [value]=\"$any(operand(slot)) ?? ''\"\n [attr.aria-label]=\"operandLabel(slot)\"\n [attr.placeholder]=\"operandLabel(slot)\"\n (valueChange)=\"setOperand(slot, $event.value)\"\n (keydown.enter)=\"apply()\"\n />\n </div>\n }\n }\n }\n }\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { style: 'display: contents' },\n})\nexport class SlFilterBarCondition {\n readonly field = input.required<FilterBarField>();\n readonly condition = input.required<Condition>();\n /** The bar's words, which the condition speaks in. */\n readonly translator = input.required<FilterBarTranslator>();\n readonly size = input.required<FilterBarSize>();\n readonly operandTemplates = input<readonly SlFilterBarOperand[]>([]);\n /** Draws the operator control. A chip's value popover leaves it to the chip's operator segment. */\n readonly withOperator = input(true, { transform: booleanAttribute });\n /** The rule is invalid: the operator select says so itself, edge and ring. */\n readonly invalid = input(false, { transform: booleanAttribute });\n /** Ids for the two parts, which a rule card's sentence names in `aria-controls`. */\n readonly ids = input<{ operator: string; operand: string } | undefined>(undefined);\n readonly applyRequest = output<void>();\n readonly conditionChange = output<Condition>();\n\n protected readonly truths = [\n { label: 'true', value: 'true' },\n { label: 'false', value: 'false' },\n ];\n\n protected readonly operators = computed(\n () => this.field().operators ?? (operatorsFor(this.field().kind) as readonly string[]),\n );\n protected readonly operatorItems = computed(() =>\n this.operators().map((operator) => ({ label: this.operatorName(operator), value: operator })),\n );\n protected readonly slots = computed<readonly (0 | 1)[]>(() => {\n const operands = operandCount(this.condition().operator as FilterOperator);\n return operands === 0 ? [] : operands === 1 ? [0] : [0, 1];\n });\n protected readonly customTemplate = computed(() => {\n const key = this.field().key;\n const templates = this.operandTemplates();\n return (\n templates.find((entry) => entry.field() === key) ??\n templates.find((entry) => entry.field() === '*')\n );\n });\n\n protected readonly t = follow(this.translator);\n\n operatorName(operator: string) {\n return operatorName(this.t, operator);\n }\n\n protected operandLabel(slot: 0 | 1) {\n if (this.slots().length < 2) return this.t('value');\n return slot === 0 ? this.t('from') : this.t('to');\n }\n\n protected operand(slot: 0 | 1): unknown {\n const condition = this.condition();\n return (slot === 0 ? condition.value : condition.end) ?? null;\n }\n\n protected numberBound(value: number | string | undefined) {\n return typeof value === 'number' ? value : null;\n }\n\n protected day = (value: unknown) => (value ? parseISODate(String(value)) : null);\n protected time = (value: unknown) => (value ? parseISOTime(String(value)) : null);\n protected dateTime = (value: unknown) => (value ? parseISODateTime(String(value)) : null);\n protected isoDay = (value: unknown) => (isPlainDate(value) ? toISODate(value) : null);\n protected isoTime = (value: unknown) => (isPlainTime(value) ? toISOTime(value, 'minute') : null);\n protected isoDateTime = (value: unknown) =>\n isPlainDateTime(value) ? toISODateTime(value) : null;\n\n protected setOperator(operator: string) {\n const condition = this.condition();\n const before = operandCount(condition.operator as FilterOperator);\n const after = operandCount(operator as FilterOperator);\n /* An operand the new operator still takes survives the change. */\n this.conditionChange.emit({\n operator,\n ...(after >= 1 && before >= 1 ? { value: condition.value } : {}),\n ...(after === 2 && before === 2 ? { end: condition.end } : {}),\n });\n }\n\n protected setOperand(slot: 0 | 1, value: unknown) {\n const condition = this.condition();\n this.conditionChange.emit(slot === 0 ? { ...condition, value } : { ...condition, end: value });\n }\n\n protected apply() {\n this.applyRequest.emit();\n }\n\n protected context(slot: 0 | 1): FilterBarOperandContext {\n const field = this.field();\n return {\n $implicit: field,\n apply: () => this.apply(),\n field,\n index: slot,\n label: this.operandLabel(slot),\n operator: this.condition().operator as FilterOperator,\n set: (value) => this.setOperand(slot, value),\n size: this.size(),\n value: this.operand(slot),\n };\n }\n}\n\n/**\n * One rule row in the builder: its sentence, field, operator, operand, remove.\n * The sentence heads the card the stylesheet draws while the builder is\n * narrow, and pressing it expands the card.\n */\n@Component({\n selector: '[slFilterBarRule]',\n standalone: true,\n imports: [SlFilterBarCondition, SlGlyph, SlIcon, SlSelect, SlSelectItem],\n template: `\n <button\n data-part=\"rule-summary\"\n type=\"button\"\n [attr.aria-expanded]=\"isExpanded()\"\n [attr.aria-controls]=\"id + '-field ' + id + '-operator ' + id + '-operand'\"\n (click)=\"expandedChange.emit(isExpanded() ? null : key())\"\n >\n <span data-sentence\n ><span data-field>{{ label() }}</span\n >&ngsp;<span data-operator>{{ words().operator }}</span>\n @if (words().operands > 0) {\n &ngsp;<span data-value>{{ words().value || t('noValue') }}</span>\n }\n </span>\n <span slIcon><svg slGlyph name=\"chevron-down\"></svg></span>\n </button>\n <div data-part=\"field\" [id]=\"id + '-field'\">\n <sl-select\n [size]=\"size()\"\n [fullWidth]=\"true\"\n [invalid]=\"invalid() || !field() ? true : undefined\"\n [items]=\"fieldItems()\"\n [attr.aria-label]=\"t('field')\"\n [value]=\"rule().field\"\n (valueChange)=\"changeField($any($event))\"\n >\n @for (entry of fields(); track entry.key) {\n <sl-select-item [value]=\"entry.key\">{{ entry.label }}</sl-select-item>\n }\n </sl-select>\n </div>\n @if (field(); as known) {\n <div\n slFilterBarCondition\n [field]=\"known\"\n [condition]=\"condition()\"\n [translator]=\"translator()\"\n [size]=\"size()\"\n [operandTemplates]=\"operandTemplates()\"\n [ids]=\"{ operator: id + '-operator', operand: id + '-operand' }\"\n [invalid]=\"invalid()\"\n (conditionChange)=\"changeCondition($event)\"\n (applyRequest)=\"applyRequest.emit()\"\n ></div>\n } @else {\n <div data-part=\"operator\" [id]=\"id + '-operator'\"></div>\n <div data-part=\"operand\" [id]=\"id + '-operand'\"></div>\n }\n @if (removable()) {\n <button\n data-part=\"remove\"\n type=\"button\"\n [attr.aria-label]=\"t('removeRule')\"\n (click)=\"removeRequest.emit()\"\n >\n <span slIcon><svg slGlyph name=\"x\"></svg></span>\n </button>\n } @else {\n <span></span>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'rule',\n '[attr.data-kind]': 'field()?.kind ?? null',\n '[attr.data-operands]': 'operands()',\n '[attr.data-invalid]': 'invalid() || !field() ? \"\" : null',\n '[attr.data-expanded]': 'isExpanded() ? \"\" : null',\n },\n})\nexport class SlFilterBarRule {\n readonly rule = input.required<FilterRule>();\n readonly fields = input.required<readonly FilterBarField[]>();\n /** The bar's words, which the rule speaks in. */\n readonly translator = input.required<FilterBarTranslator>();\n readonly size = input.required<FilterBarSize>();\n readonly operandTemplates = input<readonly SlFilterBarOperand[]>([]);\n readonly removable = input(true, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n /** The rule's path inside the root, which names its card. */\n readonly path = input<FilterPath>([]);\n /** The one card open in the builder, by its path joined with dots. */\n readonly expanded = input<string | null>(null);\n readonly ruleChange = output<FilterRule>();\n readonly removeRequest = output<void>();\n readonly applyRequest = output<void>();\n readonly expandedChange = output<string | null>();\n\n protected readonly id = `slotted-filter-bar-rule-${(counter += 1)}`;\n protected readonly t = follow(this.translator);\n protected readonly key = computed(() => this.path().join('.'));\n protected readonly isExpanded = computed(() => this.expanded() === this.key());\n protected readonly field = computed(() => fieldByKey(this.fields(), this.rule().field));\n protected readonly condition = computed<Condition>(() => {\n const field = this.field();\n return (\n this.rule().filter.conditions[0] ?? {\n operator: field ? (field.defaultOperator ?? kindDefaultOperator(field.kind)) : 'contains',\n }\n );\n });\n protected readonly operands = computed(() =>\n this.field() ? operandCount(this.condition().operator as FilterOperator) : 0,\n );\n protected readonly fieldItems = computed(() =>\n this.fields().map((entry) => ({ label: entry.label, value: entry.key })),\n );\n protected readonly words = computed(() => ruleWords(this.t, this.field(), this.rule().filter));\n protected readonly label = computed(\n () => this.field()?.label ?? this.t('unknownField', { field: this.rule().field }),\n );\n\n protected changeField(key: string) {\n const next = fieldByKey(this.fields(), key);\n if (!next) return;\n this.ruleChange.emit({ field: key, filter: blankRule(next) });\n }\n\n protected changeCondition(condition: Condition) {\n const rule = this.rule();\n this.ruleChange.emit({\n field: rule.field,\n filter: withCondition(rule.filter, 0, condition as never),\n });\n }\n}\n\n/**\n * A group: its join, its rules and groups in order, and the controls that grow\n * it. Recursive, so a group holds a group; the depth is on the element for the\n * rail the stylesheet draws.\n */\n@Component({\n selector: 'fieldset[slFilterBarGroup]',\n standalone: true,\n imports: [\n forwardRef(() => SlFilterBarGroup),\n SlButton,\n SlButtonStart,\n SlFilterBarPart,\n SlFilterBarRule,\n SlGlyph,\n SlIcon,\n SlIconButton,\n SlSegment,\n SlSegmentedControl,\n ],\n template: `\n <legend>{{ t('matches', { join: joinWord() }) }}</legend>\n <div data-part=\"join\">\n @if (aroundJoin()[0]) {\n <span>{{ aroundJoin()[0] }}</span>\n }\n <div\n slSegmentedControl\n size=\"sm\"\n [attr.aria-label]=\"t('match')\"\n [value]=\"group().join\"\n (valueChange)=\"setJoin($event.value ?? 'and')\"\n >\n <label slSegment value=\"and\">{{ t('matchAll') }}</label>\n <label slSegment value=\"or\">{{ t('matchAny') }}</label>\n </div>\n @if (aroundJoin()[1]) {\n <span>{{ aroundJoin()[1] }}</span>\n }\n @if (path().length > 0) {\n <button\n slIconButton\n slFilterBarPart=\"remove-group\"\n type=\"button\"\n tone=\"secondary\"\n variant=\"ghost\"\n [size]=\"buttonSize()\"\n [attr.aria-label]=\"t('removeGroup')\"\n [attr.title]=\"t('removeGroup')\"\n (click)=\"rootChange.emit(removeNodeAt(root(), path()))\"\n >\n <span slIcon><svg slGlyph name=\"trash\"></svg></span>\n </button>\n }\n </div>\n <div data-part=\"rules\">\n @for (node of group().rules; track $index) {\n <span data-part=\"conjunction\">{{\n $index === 0 ? t('where') : t(group().join === 'and' ? 'joins.and' : 'joins.or')\n }}</span>\n @if (isGroup(node)) {\n <fieldset\n slFilterBarGroup\n [group]=\"$any(node)\"\n [path]=\"childPath($index)\"\n [root]=\"root()\"\n [fields]=\"fields()\"\n [translator]=\"translator()\"\n [size]=\"size()\"\n [operandTemplates]=\"operandTemplates()\"\n [expanded]=\"expanded()\"\n (expandedChange)=\"expandedChange.emit($event)\"\n (rootChange)=\"rootChange.emit($event)\"\n (applyRequest)=\"applyRequest.emit()\"\n ></fieldset>\n } @else {\n <div\n slFilterBarRule\n [rule]=\"$any(node)\"\n [path]=\"childPath($index)\"\n [fields]=\"fields()\"\n [translator]=\"translator()\"\n [size]=\"size()\"\n [operandTemplates]=\"operandTemplates()\"\n [removable]=\"!isRequired($any(node))\"\n [expanded]=\"expanded()\"\n (expandedChange)=\"expandedChange.emit($event)\"\n (ruleChange)=\"replace($index, $event)\"\n (removeRequest)=\"remove($index)\"\n (applyRequest)=\"applyRequest.emit()\"\n ></div>\n }\n }\n </div>\n <div data-part=\"actions\">\n <button\n slButton\n slFilterBarPart=\"add-rule\"\n type=\"button\"\n tone=\"secondary\"\n [variant]=\"path().length === 0 ? 'outline' : 'ghost'\"\n [size]=\"buttonSize()\"\n [disabled]=\"!firstField()\"\n (click)=\"addRule()\"\n >\n <span slButtonStart\n ><span slIcon><svg slGlyph name=\"plus\"></svg></span\n ></span>\n {{ t('addRule') }}\n </button>\n <button\n slButton\n slFilterBarPart=\"add-group\"\n type=\"button\"\n tone=\"secondary\"\n [variant]=\"path().length === 0 ? 'outline' : 'ghost'\"\n [size]=\"buttonSize()\"\n [disabled]=\"!firstField()\"\n (click)=\"addGroup()\"\n >\n <span slButtonStart\n ><span slIcon><svg slGlyph name=\"plus\"></svg></span\n ></span>\n {{ t('addGroup') }}\n </button>\n @if (path().length === 0) {\n <ng-content></ng-content>\n }\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'group',\n '[attr.data-depth]': 'path().length',\n },\n})\nexport class SlFilterBarGroup {\n readonly group = input.required<FilterGroup>();\n readonly path = input<FilterPath>([]);\n readonly root = input.required<FilterGroup>();\n readonly fields = input.required<readonly FilterBarField[]>();\n /** The bar's words, which the group speaks in. */\n readonly translator = input.required<FilterBarTranslator>();\n readonly size = input.required<FilterBarSize>();\n readonly operandTemplates = input<readonly SlFilterBarOperand[]>([]);\n /** The one rule card open in the builder, by its path joined with dots. */\n readonly expanded = input<string | null>(null);\n readonly rootChange = output<FilterGroup>();\n readonly applyRequest = output<void>();\n readonly expandedChange = output<string | null>();\n\n protected readonly t = follow(this.translator);\n protected readonly joinWord = computed(() =>\n this.group().join === 'and' ? this.t('matchAll') : this.t('matchAny'),\n );\n /** The words of `matches` before and after the join chooser, which stands in its `{join}`. */\n protected readonly aroundJoin = computed(() => aroundSlot((join) => this.t('matches', { join })));\n protected readonly removeNodeAt = removeNodeAt;\n protected readonly firstField = computed(() => this.fields()[0]);\n protected readonly buttonSize = computed(() => (this.size() === 'lg' ? 'md' : 'sm'));\n\n protected isGroup(node: FilterNode) {\n return isFilterGroup(node);\n }\n protected isRequired(rule: FilterRule) {\n return fieldByKey(this.fields(), rule.field)?.required === true;\n }\n protected childPath(index: number): FilterPath {\n return [...this.path(), index];\n }\n protected setJoin(join: string) {\n this.rootChange.emit(withGroupJoin(this.root(), this.path(), join as FilterJoin));\n }\n protected replace(index: number, rule: FilterRule) {\n this.rootChange.emit(updateNodeAt(this.root(), this.childPath(index), rule));\n }\n protected remove(index: number) {\n this.rootChange.emit(removeNodeAt(this.root(), this.childPath(index)));\n }\n /* A rule just added opens as an expanded card, where its three controls are. */\n protected addRule() {\n const field = this.firstField();\n if (!field) return;\n const at = this.group().rules.length;\n this.rootChange.emit(\n insertNodeAt(this.root(), this.path(), { field: field.key, filter: blankRule(field) }),\n );\n this.expandedChange.emit([...this.path(), at].join('.'));\n }\n protected addGroup() {\n const field = this.firstField();\n if (!field) return;\n const at = this.group().rules.length;\n this.rootChange.emit(\n insertNodeAt(this.root(), this.path(), {\n join: this.group().join === 'and' ? 'or' : 'and',\n rules: [{ field: field.key, filter: blankRule(field) }],\n }),\n );\n this.expandedChange.emit([...this.path(), at, 0].join('.'));\n }\n}\n\n/**\n * One rule in a popover. Under `live` every change is requested at once — a\n * text or number operand after `queryDelay`, so a query does not fire per\n * keystroke — and Done closes; under `manual` the change goes to the draft the\n * same way. Clear removes the rule, which a required field refuses.\n */\n@Component({\n selector: '[slFilterBarRuleEditor]',\n standalone: true,\n imports: [SlButton, SlFilterBarCondition],\n template: `\n <div\n slFilterBarCondition\n [field]=\"field()\"\n [condition]=\"condition()\"\n [translator]=\"translator()\"\n [size]=\"size()\"\n [operandTemplates]=\"operandTemplates()\"\n [withOperator]=\"withOperator()\"\n [invalid]=\"invalid()\"\n (conditionChange)=\"change($event)\"\n (applyRequest)=\"done()\"\n ></div>\n <div data-part=\"actions\">\n <button\n slButton\n type=\"button\"\n size=\"sm\"\n tone=\"secondary\"\n variant=\"ghost\"\n [disabled]=\"field().required === true\"\n (click)=\"clear()\"\n >\n {{ t('clearRule') }}\n </button>\n <button slButton type=\"button\" size=\"sm\" (click)=\"done()\">{{ t('done') }}</button>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-ui': 'filter-bar',\n 'data-part': 'rule',\n '[attr.data-kind]': 'field().kind',\n '[attr.data-invalid]': 'invalid() ? \"\" : null',\n },\n})\nexport class SlFilterBarRuleEditor {\n readonly field = input.required<FilterBarField>();\n readonly current = input<FilterDescriptor | undefined>(undefined);\n /** The bar's words, which the editor speaks in. */\n readonly translator = input.required<FilterBarTranslator>();\n readonly size = input.required<FilterBarSize>();\n readonly operandTemplates = input<readonly SlFilterBarOperand[]>([]);\n readonly queryDelay = input(0);\n readonly invalid = input(false, { transform: booleanAttribute });\n /** Draws the operator control: a chip's value popover leaves it to the chip. */\n readonly withOperator = input(true, { transform: booleanAttribute });\n readonly ruleChange = output<FilterDescriptor | null>();\n readonly doneRequest = output<void>();\n\n protected readonly t = follow(this.translator);\n private readonly destroyRef = inject(DestroyRef);\n private readonly local = signal<FilterDescriptor | null>(null);\n private timer: ReturnType<typeof setTimeout> | undefined;\n\n protected readonly draft = computed(\n () => this.local() ?? this.current() ?? blankRule(this.field()),\n );\n protected readonly condition = computed<Condition>(\n () =>\n this.draft().conditions[0] ?? {\n operator: this.field().defaultOperator ?? kindDefaultOperator(this.field().kind),\n },\n );\n\n constructor() {\n /* A change made elsewhere — the chip's operator segment — reaches the\n editor unless a keystroke is still waiting. */\n effect(() => {\n this.current();\n untracked(() => {\n if (this.timer === undefined) this.local.set(null);\n });\n });\n this.destroyRef.onDestroy(() => clearTimeout(this.timer));\n }\n\n protected change(condition: Condition) {\n const next = { ...this.draft(), conditions: [condition] } as FilterDescriptor;\n this.local.set(next);\n clearTimeout(this.timer);\n this.timer = undefined;\n const kind = this.field().kind;\n const debounced = (kind === 'text' || kind === 'number') && this.queryDelay() > 0;\n if (!debounced) {\n this.ruleChange.emit(next);\n return;\n }\n this.timer = setTimeout(() => {\n this.timer = undefined;\n this.ruleChange.emit(next);\n }, this.queryDelay());\n }\n\n protected done() {\n if (this.timer) {\n clearTimeout(this.timer);\n this.timer = undefined;\n this.ruleChange.emit(this.draft());\n }\n this.doneRequest.emit();\n }\n\n protected clear() {\n clearTimeout(this.timer);\n this.timer = undefined;\n this.local.set(null);\n this.ruleChange.emit(null);\n this.doneRequest.emit();\n }\n}\n\n/** One field's condition in the bar, as its chip draws it. */\ninterface BarChip {\n readonly kind: 'chip';\n readonly id: string;\n readonly key: string;\n readonly field: FilterBarField | undefined;\n readonly filter: FilterDescriptor;\n readonly label: string;\n /** The group's name: the field and its sentence, and whether it is incomplete. */\n readonly name: string;\n /** The operator as the sentence reads it. */\n readonly operator: string;\n /** The condition's own operator, which the operator menu checks. */\n readonly condition: string;\n readonly operators: readonly string[];\n readonly operands: number;\n readonly value: string;\n readonly valueName: string;\n readonly valueTitle: string | null;\n readonly hasValue: boolean;\n readonly pinned: boolean;\n readonly incomplete: boolean;\n readonly folded: boolean;\n readonly unknown: boolean;\n readonly removable: boolean;\n}\n\n/** A pinned field without a condition. */\ninterface BarPill {\n readonly kind: 'pill';\n readonly id: string;\n readonly field: FilterBarField;\n}\n\n/** A group at the first level, written as one sentence that opens the builder. */\ninterface BarGroup {\n readonly kind: 'group';\n readonly id: string;\n readonly path: FilterPath;\n readonly words: string;\n readonly folded: boolean;\n}\n\ntype BarMember = BarChip | BarPill | BarGroup;\n\n/**\n * A condition the reader started — from `add` or from a pinned field's pill —\n * and whose operand is not there yet. It is the bar's own and not the value's:\n * the engine would drop it as inactive anyway, so it is drawn as an incomplete\n * chip and enters the value the moment it is complete.\n */\ninterface PendingRule {\n key: string;\n filter: FilterDescriptor;\n /** Where an applied rule stood before it lost its operand, so its chip keeps its place. */\n at?: number;\n}\n\n/**\n * A bar above a listing that edits one value: a tree of conditions over the\n * listing's fields, whose leaves are the descriptor `table` edits in a column\n * header. The bar draws the first level — a search field, a pill per pinned\n * field without a condition, a chip of segments per condition — and opens a\n * drawer on the whole tree.\n *\n * The family applies nothing. It reports the tree and the query, and\n * `createFilterGroupPredicate` and `createSearchPredicate` in\n * `@slotted/core/filter` are what a consumer applies to its own rows.\n */\n@Component({\n selector: '[slFilterBar]',\n standalone: true,\n imports: [\n NgTemplateOutlet,\n SlButton,\n SlButtonStart,\n SlDrawer,\n SlDrawerBody,\n SlDrawerClose,\n SlDrawerFooter,\n SlDrawerHeader,\n SlDrawerTitle,\n SlFilterBarGroup,\n SlFilterBarPart,\n SlFilterBarRuleEditor,\n SlGlyph,\n SlIcon,\n SlIconButton,\n SlKbd,\n SlMenu,\n SlMenuGroup,\n SlMenuItem,\n SlMenuItemIcon,\n SlMenuRadioGroup,\n SlMenuTrigger,\n SlPopover,\n SlPopoverContent,\n SlPopoverBody,\n SlPopoverLayer,\n SlPopoverTrigger,\n SlSelect,\n SlSelectItem,\n SlTextField,\n SlTextFieldEnd,\n SlTextFieldStart,\n SlTextFieldInput,\n ],\n template: `\n <ng-template #fieldIcon let-icon>\n @if (isTemplate(icon)) {\n <span slIcon><ng-container [ngTemplateOutlet]=\"icon\" /></span>\n } @else if (icon) {\n <span slIcon><svg slGlyph [name]=\"icon\"></svg></span>\n }\n </ng-template>\n\n <div data-part=\"frame\">\n <div data-part=\"search\">\n <div slTextField [size]=\"sizeValue()\" [clearable]=\"true\">\n <span slTextFieldStart\n ><span slIcon><svg slGlyph name=\"search\"></svg></span\n ></span>\n <input\n #search\n slTextFieldInput\n type=\"search\"\n [value]=\"shownQuery()\"\n [attr.aria-label]=\"t('search')\"\n [attr.placeholder]=\"t('search')\"\n [disabled]=\"disabled()\"\n (valueChange)=\"typeQuery($event)\"\n (keydown)=\"onSearchKeyDown($event)\"\n />\n @if (shortcutValue(); as key) {\n <span slTextFieldEnd\n ><kbd slKbd size=\"sm\">{{ key }}</kbd></span\n >\n }\n </div>\n </div>\n\n <div\n #barRow\n data-part=\"bar\"\n role=\"toolbar\"\n [attr.aria-label]=\"t('filters')\"\n [attr.aria-description]=\"readOnly() ? t('readOnly') : null\"\n [attr.data-revealed]=\"isRevealed() ? '' : null\"\n >\n <button\n slButton\n slFilterBarPart=\"summary\"\n type=\"button\"\n tone=\"secondary\"\n variant=\"outline\"\n aria-haspopup=\"dialog\"\n [size]=\"sizeValue()\"\n [disabled]=\"disabled()\"\n (click)=\"openBuilderAt('pointer', $event)\"\n >\n <span slButtonStart\n ><span slIcon><svg slGlyph name=\"funnel\"></svg></span\n ></span>\n <span>{{ t('summary', { count: activeCount() }) }}</span>\n </button>\n\n @for (member of members(); track member.id) {\n @if (pillOf(member); as pill) {\n <button\n data-part=\"pill\"\n type=\"button\"\n aria-haspopup=\"dialog\"\n [attr.data-field]=\"pill.field.key\"\n [attr.data-invalid]=\"invalid() === pill.field.key ? '' : null\"\n [attr.aria-invalid]=\"invalid() === pill.field.key ? 'true' : null\"\n [disabled]=\"disabled()\"\n (click)=\"start(pill.field.key, $event)\"\n >\n <span slIcon><svg slGlyph name=\"plus\"></svg></span><span>{{ pill.field.label }}</span>\n </button>\n }\n @if (chipOf(member); as chip) {\n <div\n data-part=\"chip\"\n role=\"group\"\n [attr.aria-label]=\"chip.name\"\n [attr.data-field]=\"chip.key\"\n [attr.data-operands]=\"chip.operands\"\n [attr.data-pinned]=\"chip.pinned ? '' : null\"\n [attr.data-incomplete]=\"chip.incomplete ? '' : null\"\n [attr.data-folded]=\"chip.folded ? '' : null\"\n [attr.data-invalid]=\"chip.unknown || invalid() === chip.key ? '' : null\"\n (keydown)=\"onChipKeyDown($event, chip.key)\"\n >\n <span data-part=\"chip-field\"\n ><ng-container\n [ngTemplateOutlet]=\"fieldIcon\"\n [ngTemplateOutletContext]=\"{ $implicit: chip.field?.icon }\"\n /><span>{{ chip.label }}</span></span\n >\n @if (readOnly() || chip.unknown) {\n <button\n data-part=\"chip-operator\"\n type=\"button\"\n aria-disabled=\"true\"\n [disabled]=\"disabled()\"\n >\n {{ chip.operator }}\n </button>\n } @else {\n <button\n data-part=\"chip-operator\"\n slFilterBarPart=\"chip-operator\"\n type=\"button\"\n [disabled]=\"disabled()\"\n [slMenuTriggerFor]=\"operatorMenu\"\n >\n {{ chip.operator }}\n </button>\n <sl-menu #operatorMenu [aria-label]=\"t('operator')\">\n <sl-menu-radio-group\n [value]=\"chip.condition\"\n (valueChangeRequest)=\"setOperator(chip.key, chip.filter, $event.value)\"\n >\n @for (operator of chip.operators; track operator) {\n <button slMenuRadioItem [value]=\"operator\" [closeOnSelect]=\"true\">\n {{ operatorWords(operator) }}\n </button>\n }\n </sl-menu-radio-group>\n </sl-menu>\n }\n @if (chip.hasValue) {\n @if (readOnly() || chip.unknown || narrow()) {\n <button\n data-part=\"chip-value\"\n type=\"button\"\n [attr.aria-haspopup]=\"readOnly() || chip.unknown ? null : 'dialog'\"\n [attr.aria-disabled]=\"readOnly() || chip.unknown ? 'true' : null\"\n [attr.aria-label]=\"chip.valueName\"\n [attr.title]=\"chip.valueTitle\"\n [disabled]=\"disabled()\"\n (click)=\"onValueSegment(chip, $event)\"\n >\n <span data-operator>{{ chip.operator }}</span\n ><span data-value>{{ chip.value }}</span>\n </button>\n } @else if (chip.field; as field) {\n <ng-container\n slPopover\n [open]=\"valueOpen() === chip.key\"\n (openChange)=\"toggleValue(chip.key, $event)\"\n >\n <button\n slPopoverTrigger\n data-part=\"chip-value\"\n type=\"button\"\n aria-haspopup=\"dialog\"\n [attr.aria-label]=\"chip.valueName\"\n [attr.title]=\"chip.valueTitle\"\n [disabled]=\"disabled()\"\n >\n <span data-operator>{{ chip.operator }}</span\n ><span data-value>{{ chip.value }}</span>\n </button>\n <ng-template slPopoverLayer>\n <div slPopoverContent [attr.aria-label]=\"chip.label\">\n <div slPopoverBody>\n <div\n slFilterBarRuleEditor\n [field]=\"field\"\n [current]=\"chip.filter\"\n [translator]=\"t\"\n [size]=\"sizeValue()\"\n [operandTemplates]=\"operandTemplates()\"\n [queryDelay]=\"applyValue() === 'live' ? queryDelayValue() : 0\"\n [invalid]=\"invalid() === chip.key\"\n [withOperator]=\"false\"\n (ruleChange)=\"changeRule(chip.key, $event, 'keyboard')\"\n (doneRequest)=\"finishValue(chip.key)\"\n ></div>\n </div>\n </div>\n </ng-template>\n </ng-container>\n }\n }\n @if (chip.removable) {\n <button\n data-part=\"chip-remove\"\n type=\"button\"\n [attr.aria-label]=\"t('remove', { name: chip.label })\"\n [disabled]=\"disabled()\"\n (click)=\"removeField(chip.key, $event)\"\n >\n <span slIcon><svg slGlyph name=\"x\"></svg></span>\n </button>\n }\n </div>\n }\n @if (groupOf(member); as group) {\n <div\n data-part=\"chip\"\n role=\"group\"\n data-operands=\"1\"\n [attr.aria-label]=\"group.words\"\n [attr.data-folded]=\"group.folded ? '' : null\"\n (keydown)=\"onGroupKeyDown($event, group.path)\"\n >\n <button\n data-part=\"chip-value\"\n type=\"button\"\n aria-haspopup=\"dialog\"\n [attr.aria-disabled]=\"readOnly() ? 'true' : null\"\n [attr.title]=\"group.words\"\n [disabled]=\"disabled()\"\n (click)=\"readOnly() ? null : openBuilderAt('pointer', $event, { path: group.path })\"\n >\n <span data-value>{{ group.words }}</span>\n </button>\n @if (!readOnly()) {\n <button\n data-part=\"chip-remove\"\n type=\"button\"\n [attr.aria-label]=\"t('remove', { name: group.words })\"\n [disabled]=\"disabled()\"\n (click)=\"removeNode(group.path, $event)\"\n >\n <span slIcon><svg slGlyph name=\"x\"></svg></span>\n </button>\n }\n </div>\n }\n }\n\n @if (folded() > 0) {\n <button\n data-part=\"more\"\n type=\"button\"\n [attr.aria-expanded]=\"isRevealed()\"\n [disabled]=\"disabled()\"\n (click)=\"requestRevealed(!isRevealed(), 'pointer', $event)\"\n >\n {{ isRevealed() ? t('less') : t('more', { count: folded() }) }}\n </button>\n }\n\n @if (!readOnly()) {\n @if (chipCount() > 0) {\n <!-- With a chip in the bar, add is its glyph alone, in the chips' shape; the label stays its name. -->\n <button\n slIconButton\n slFilterBarPart=\"add\"\n data-compact\n type=\"button\"\n shape=\"circle\"\n tone=\"secondary\"\n variant=\"outline\"\n [size]=\"sizeValue()\"\n [attr.aria-label]=\"t('add')\"\n [attr.title]=\"t('add')\"\n [disabled]=\"disabled() || unfiltered().length === 0\"\n [slMenuTriggerFor]=\"addMenu\"\n >\n <span slIcon><svg slGlyph name=\"plus\"></svg></span>\n </button>\n } @else {\n <button\n slButton\n slFilterBarPart=\"add\"\n type=\"button\"\n tone=\"secondary\"\n variant=\"ghost\"\n [size]=\"sizeValue()\"\n [disabled]=\"disabled() || unfiltered().length === 0\"\n [slMenuTriggerFor]=\"addMenu\"\n >\n <!-- The glyph stands in the button's own box; bare in the label it has no size. -->\n <span slButtonStart\n ><span slIcon><svg slGlyph name=\"plus\"></svg></span\n ></span>\n {{ t('add') }}\n </button>\n }\n <sl-menu #addMenu [aria-label]=\"t('add')\">\n @for (section of sections(); track section.name ?? '') {\n @if (section.name === undefined) {\n @for (field of section.fields; track field.key) {\n <button slMenuItem (select)=\"start(field.key, $event.source)\">\n @if (field.icon) {\n <span slMenuItemIcon\n ><ng-container\n [ngTemplateOutlet]=\"fieldIcon\"\n [ngTemplateOutletContext]=\"{ $implicit: field.icon }\"\n /></span>\n }\n {{ field.label }}\n </button>\n }\n } @else {\n <sl-menu-group [label]=\"section.name\">\n @for (field of section.fields; track field.key) {\n <button slMenuItem (select)=\"start(field.key, $event.source)\">\n @if (field.icon) {\n <span slMenuItemIcon\n ><ng-container\n [ngTemplateOutlet]=\"fieldIcon\"\n [ngTemplateOutletContext]=\"{ $implicit: field.icon }\"\n /></span>\n }\n {{ field.label }}\n </button>\n }\n </sl-menu-group>\n }\n }\n </sl-menu>\n }\n\n @if (!readOnly() && (activeCount() > 0 || shownQuery() !== '' || pending())) {\n <button\n slButton\n slFilterBarPart=\"clear\"\n type=\"button\"\n tone=\"secondary\"\n variant=\"ghost\"\n [size]=\"sizeValue()\"\n [disabled]=\"disabled()\"\n (click)=\"clearAll($event)\"\n >\n {{ t('clear') }}\n </button>\n }\n\n @if (applyValue() === 'manual' && !readOnly()) {\n <div data-part=\"actions\">\n <button\n slButton\n slFilterBarPart=\"reset\"\n type=\"button\"\n tone=\"secondary\"\n variant=\"ghost\"\n [size]=\"sizeValue()\"\n [disabled]=\"disabled() || !dirty()\"\n (click)=\"reset()\"\n >\n {{ t('reset') }}\n </button>\n <button\n slButton\n slFilterBarPart=\"apply\"\n type=\"button\"\n [size]=\"sizeValue()\"\n [disabled]=\"disabled() || loading() || !dirty()\"\n (click)=\"submit($event)\"\n >\n {{ t('apply') }}\n </button>\n </div>\n }\n </div>\n\n <div data-part=\"end\">\n @if (presets(); as views) {\n @if (views.length > 0) {\n <!-- Clearable: leaving a preset is the control's own clear, and\n without it the one way out of a saved view is deleting it. -->\n <div data-part=\"preset\">\n <sl-select\n clearable\n [size]=\"sizeValue()\"\n [disabled]=\"disabled() || readOnly()\"\n [items]=\"presetItems()\"\n [attr.aria-label]=\"t('preset')\"\n [placeholder]=\"t('presetNone')\"\n [value]=\"currentPreset()\"\n (valueChange)=\"choosePreset($any($event))\"\n >\n @for (view of views; track view.key) {\n <sl-select-item [value]=\"view.key\">{{ view.label }}</sl-select-item>\n }\n </sl-select>\n </div>\n }\n }\n <ng-content select=\"[slFilterBarEnd]\"></ng-content>\n </div>\n\n @if (countText() !== null || loading()) {\n <p data-part=\"count\" aria-live=\"polite\" [attr.aria-busy]=\"loading() ? 'true' : null\">\n @if (loading()) {\n <span\n data-ui=\"spinner\"\n data-part=\"root\"\n data-size=\"sm\"\n role=\"progressbar\"\n [attr.aria-label]=\"t('filters')\"\n ></span>\n }\n {{ countText() }}\n </p>\n }\n </div>\n\n <sl-drawer\n [side]=\"sheet() ? 'bottom' : 'end'\"\n [size]=\"sheet() ? 'content' : 'xl'\"\n [container]=\"container()\"\n [open]=\"isOpen()\"\n (openChangeRequest)=\"onDrawerRequest($event)\"\n >\n <header slDrawerHeader>\n <h2 slDrawerTitle>{{ t('builder') }}</h2>\n <button slDrawerClose></button>\n </header>\n <div slDrawerBody>\n <div data-part=\"builder\" data-ui=\"filter-bar\" [id]=\"id + '-builder'\">\n <fieldset\n slFilterBarGroup\n [group]=\"drawerDraft() ?? empty\"\n [root]=\"drawerDraft() ?? empty\"\n [fields]=\"fields()\"\n [translator]=\"t\"\n [size]=\"sizeValue()\"\n [operandTemplates]=\"operandTemplates()\"\n [expanded]=\"expanded()\"\n (expandedChange)=\"expanded.set($event)\"\n (rootChange)=\"drawerDraft.set($event)\"\n (applyRequest)=\"commitDrawer()\"\n >\n @if (draftActive() > 0) {\n <button\n slButton\n slFilterBarPart=\"clear\"\n type=\"button\"\n size=\"sm\"\n tone=\"secondary\"\n variant=\"ghost\"\n (click)=\"drawerDraft.set(baseline())\"\n >\n {{ t('clear') }}\n </button>\n }\n @if (savePresetEnabled()) {\n <button\n slButton\n slFilterBarPart=\"save-preset\"\n type=\"button\"\n size=\"sm\"\n tone=\"secondary\"\n variant=\"ghost\"\n (click)=\"savePreset.emit(normalized(drawerDraft()))\"\n >\n {{ t('savePreset') }}\n </button>\n }\n </fieldset>\n </div>\n </div>\n <footer slDrawerFooter>\n <button\n slButton\n type=\"button\"\n size=\"sm\"\n tone=\"secondary\"\n variant=\"ghost\"\n (click)=\"requestOpen(false, 'dismiss', $event)\"\n >\n {{ t('cancel') }}\n </button>\n <button slButton type=\"button\" size=\"sm\" (click)=\"commitDrawer()\">\n {{ t('apply') }}\n </button>\n </footer>\n </sl-drawer>\n `,\n styleUrl: '../../../styles/src/filter-bar/filter-bar.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slFilterBar',\n host: {\n 'data-ui': 'filter-bar',\n 'data-part': 'root',\n role: 'search',\n '[attr.aria-label]': \"ariaLabel ?? t('bar')\",\n '[attr.data-apply]': 'applyValue()',\n '[attr.data-size]': 'sizeValue()',\n '[attr.data-disabled]': 'disabled() ? \"\" : null',\n '[attr.data-readonly]': 'readOnly() ? \"\" : null',\n '[attr.data-loading]': 'loading() ? \"\" : null',\n '[attr.data-dirty]': 'dirty() || presetDirty() ? \"\" : null',\n '[attr.data-open]': 'isOpen() ? \"\" : null',\n '[attr.data-sticky]': 'sticky() ? \"\" : null',\n },\n})\nexport class SlFilterBar {\n /** The fields the listing can be filtered by, in the order the add menu lists them. */\n readonly fields = input.required<readonly FilterBarField[]>();\n /** The tree. Present is controlled, for the life of the bar. */\n readonly value = model<FilterGroup | null | undefined>(undefined);\n /** Where an uncontrolled tree starts, read once. */\n readonly defaultValue = input<FilterGroup | null>(null);\n /** The global query. */\n readonly query = model<string | undefined>(undefined);\n readonly defaultQuery = input('');\n readonly presets = input<readonly FilterBarPreset[] | undefined>(undefined);\n readonly preset = model<string | null | undefined>(undefined);\n readonly defaultPreset = input<string | null>(null);\n /** Whether the builder is open. */\n readonly open = model<boolean | undefined>(undefined);\n readonly defaultOpen = input(false, { transform: booleanAttribute });\n /** Whether the chips past `chipLimit` are shown. */\n readonly revealed = model<boolean | undefined>(undefined);\n readonly defaultRevealed = input(false, { transform: booleanAttribute });\n\n /** The five effective values: the model when it is set, the default otherwise. */\n readonly currentValue = computed(() => this.value() ?? this.defaultValue());\n readonly currentQuery = computed(() => this.query() ?? this.defaultQuery());\n readonly currentPreset = computed(() => this.preset() ?? this.defaultPreset());\n readonly isOpen = computed(() => this.open() ?? this.defaultOpen());\n readonly isRevealed = computed(() => this.revealed() ?? this.defaultRevealed());\n readonly apply = input<FilterBarApply | undefined>(undefined);\n readonly sticky = input(false, { transform: booleanAttribute });\n /** A parent for the builder's drawer alone, instead of the shared portal root. */\n readonly container = input<Element | null | undefined>(undefined);\n readonly size = input<FilterBarSize | undefined>(undefined);\n readonly queryDelay = input<number | undefined, number | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : numberAttribute(value)),\n });\n readonly chipLimit = input<number | undefined, number | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : numberAttribute(value)),\n });\n readonly shortcut = input<string | null | undefined>(undefined);\n readonly disabled = input(false, { transform: booleanAttribute });\n /** The conditions can be read and reached, and nothing changes them. */\n readonly readOnly = input(false, { transform: booleanAttribute });\n readonly loading = input(false, { transform: booleanAttribute });\n /**\n * The number of rows the filter kept, and the number there are. Written by\n * the `count` message, or `countOnly` without a total, in the digits of the\n * language in force.\n */\n readonly count = input<number | undefined, number | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : numberAttribute(value)),\n });\n readonly total = input<number | undefined, number | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : numberAttribute(value)),\n });\n /**\n * Words laid over the catalog of the language in force, key by key: the\n * landmark's name (`bar`), the controls, the chips' names, the count and the\n * announcements.\n */\n readonly messages = input<PartialMessages<FilterBarMessages> | undefined>(undefined);\n\n /** The requests behind every committed change, each with the reason it carries. */\n readonly valueChangeRequest = output<ChangeRequest<FilterGroup | null>>();\n readonly queryChangeRequest = output<ChangeRequest<string>>();\n readonly presetChangeRequest = output<ChangeRequest<string | null>>();\n readonly openChangeRequest = output<ChangeRequest<boolean>>();\n readonly revealedChangeRequest = output<ChangeRequest<boolean>>();\n /** Draws the save-as-view control in the builder. */\n readonly savePresetEnabled = input(false, { transform: booleanAttribute });\n /** Asks the application to save the tree as a view. */\n readonly savePreset = output<FilterGroup | null>();\n\n private readonly defaults = injectFilterBarDefaults();\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly injector = inject(Injector);\n private readonly destroyRef = inject(DestroyRef);\n protected readonly ariaLabel = inject(new HostAttributeToken('aria-label'), { optional: true });\n private readonly searchInput = viewChild.required<ElementRef<HTMLInputElement>>('search');\n private readonly barElement = viewChild.required<ElementRef<HTMLDivElement>>('barRow');\n protected readonly operandTemplates = contentChildren(SlFilterBarOperand);\n protected readonly endSlot = contentChild(SlFilterBarEnd);\n\n readonly id = `slotted-filter-bar-${(counter += 1)}`;\n protected readonly empty = emptyFilterGroup();\n\n /** The family's words in the language in force, with this bar's `messages` laid over them. */\n readonly t: FilterBarTranslator = injectMessages(filterBarMessages, this.messages);\n protected readonly applyValue = computed(\n () => this.apply() ?? this.defaults.apply ?? FILTER_BAR_DEFAULT_APPLY,\n );\n protected readonly sizeValue = computed(\n () => this.size() ?? this.defaults.size ?? FILTER_BAR_DEFAULT_SIZE,\n );\n protected readonly queryDelayValue = computed(\n () => this.queryDelay() ?? this.defaults.queryDelay ?? FILTER_BAR_DEFAULT_QUERY_DELAY,\n );\n protected readonly chipLimitValue = computed(\n () => this.chipLimit() ?? this.defaults.chipLimit ?? FILTER_BAR_DEFAULT_CHIP_LIMIT,\n );\n protected readonly shortcutValue = computed(() => {\n const own = this.shortcut();\n return own === undefined ? (this.defaults.shortcut ?? null) : own;\n });\n private readonly locked = computed(() => this.disabled() || this.readOnly());\n\n /* ── State the bar owns ────────────────────────────────────────────── */\n\n private readonly draft = signal<{ value: FilterGroup | null; query: string } | null>(null);\n protected readonly invalid = signal<string | null>(null);\n protected readonly pending = signal<PendingRule | null>(null);\n /** Which chip's value popover is open, by its field key. */\n protected readonly valueOpen = signal<string | null>(null);\n /** The one rule card open in the builder's card form, by its path. */\n protected readonly expanded = signal<string | null>(null);\n protected readonly drawerDraft = signal<FilterGroup | null>(null);\n /** Whether the bar is under its narrow breakpoint: an edit then goes to the builder. */\n protected readonly narrow = signal(false);\n /** Whether the viewport is under the sheet breakpoint: the builder then comes up from the bottom. */\n protected readonly sheet = signal(false);\n private readonly typed = signal<string | null>(null);\n /** A tree the builder opens on instead of the shown one: a rule the reader just started. */\n private seed: FilterGroup | null = null;\n private timer: ReturnType<typeof setTimeout> | undefined;\n\n protected readonly shown = computed(() => {\n const draft = this.draft();\n return this.applyValue() === 'manual' && draft ? draft.value : this.currentValue();\n });\n protected readonly shownQuery = computed(() => {\n const typed = this.typed();\n if (typed !== null) return typed;\n const draft = this.draft();\n return this.applyValue() === 'manual' && draft ? draft.query : this.currentQuery();\n });\n protected readonly dirty = computed(() => {\n const draft = this.draft();\n return (\n this.applyValue() === 'manual' &&\n draft !== null &&\n (!sameGroup(draft.value, this.currentValue()) || draft.query !== this.currentQuery())\n );\n });\n protected readonly presetDirty = computed(() => {\n const chosen = this.presets()?.find((entry) => entry.key === this.currentPreset());\n return (\n chosen !== undefined && !sameGroup(normalizeFilterGroup(chosen.value), this.currentValue())\n );\n });\n\n private readonly format = computed(() => {\n const fields = this.fields();\n return {\n field: (key: string) => fieldByKey(fields, key)?.label ?? key,\n join: (join: FilterJoin) => this.t(join === 'and' ? 'joins.and' : 'joins.or'),\n operator: (operator: string) => operatorName(this.t, operator),\n };\n });\n\n protected readonly required = computed(() => this.fields().filter((field) => field.required));\n protected readonly pinned = computed(() =>\n this.fields().filter((field) => field.pinned || field.required),\n );\n private readonly pinnedKeys = computed(() => new Set(this.pinned().map((field) => field.key)));\n protected readonly activeCount = computed(() => countActive(this.shown()));\n protected readonly draftActive = computed(() => countActive(this.drawerDraft()));\n protected readonly unfiltered = computed(() => {\n const pending = this.pending()?.key;\n return this.fields().filter(\n (field) =>\n !this.pinnedKeys().has(field.key) &&\n ruleFor(this.shown(), field.key) === undefined &&\n field.key !== pending,\n );\n });\n protected readonly sections = computed(() => {\n const map = new Map<string | undefined, FilterBarField[]>();\n for (const field of this.unfiltered()) {\n const list = map.get(field.section) ?? [];\n list.push(field);\n map.set(field.section, list);\n }\n return [...map.entries()].map(([name, fields]) => ({ fields, name }));\n });\n protected readonly presetItems = computed(\n () => this.presets()?.map((entry) => ({ label: entry.label, value: entry.key })) ?? [],\n );\n\n /**\n * The bar's members in order: pinned fields as declared — a chip, or a pill\n * while they hold no condition — then the other first-level conditions, then\n * the one pending, which keeps the place an applied rule had when it lost its\n * operand.\n */\n protected readonly members = computed<readonly BarMember[]>(() => {\n const shown = this.shown();\n const pending = this.pending();\n const pinnedKeys = this.pinnedKeys();\n const limit = this.chipLimitValue();\n const readOnly = this.readOnly();\n const format = this.format();\n const members: BarMember[] = [];\n let index = 0;\n const nextFolded = () => index++ >= limit;\n for (const field of this.pinned()) {\n const rule = ruleFor(shown, field.key);\n if (rule !== undefined) {\n members.push(this.describeChip(field.key, rule, { folded: nextFolded(), pinned: true }));\n } else if (pending?.key === field.key) {\n members.push(\n this.describeChip(field.key, pending.filter, {\n folded: nextFolded(),\n incomplete: true,\n pinned: true,\n }),\n );\n } else if (!readOnly) {\n members.push({ field, id: `pill:${field.key}`, kind: 'pill' });\n }\n }\n const floating =\n pending && !pinnedKeys.has(pending.key) && ruleFor(shown, pending.key) === undefined\n ? pending\n : null;\n const pendingChip = (rule: PendingRule) =>\n this.describeChip(rule.key, rule.filter, { folded: nextFolded(), incomplete: true });\n let placed = false;\n (shown?.rules ?? []).forEach((node, at) => {\n if (floating && floating.at === at) {\n members.push(pendingChip(floating));\n placed = true;\n }\n if (isFilterGroup(node)) {\n members.push({\n folded: nextFolded(),\n id: `group:${at}`,\n kind: 'group',\n path: [at],\n words: `(${describeFilterGroup(node, format)})`,\n });\n } else if (!pinnedKeys.has(node.field)) {\n members.push(this.describeChip(node.field, node.filter, { folded: nextFolded() }));\n }\n });\n if (floating && !placed) members.push(pendingChip(floating));\n return members;\n });\n protected readonly chipCount = computed(\n () => this.members().filter((member) => member.kind !== 'pill').length,\n );\n protected readonly folded = computed(() => Math.max(0, this.chipCount() - this.chipLimitValue()));\n protected readonly countText = computed(() => {\n const count = this.count();\n if (count === undefined) return null;\n const total = this.total();\n return total === undefined ? this.t('countOnly', { count }) : this.t('count', { count, total });\n });\n\n constructor() {\n /* A controlled value that changes from outside replaces the draft: the application's value wins. */\n let last = untracked(this.currentValue);\n effect(() => {\n const value = this.currentValue();\n if (!sameGroup(last, value)) {\n last = value;\n untracked(() => this.draft.set(null));\n }\n });\n\n /* The draft the drawer edits, taken each time it opens from the tree — or\n from the seed a chip left, when the reader started a rule on a phone and\n the builder is where it is finished. */\n let wasOpen = false;\n effect(() => {\n const open = this.isOpen();\n if (open && !wasOpen) {\n untracked(() => {\n this.drawerDraft.set(this.seed ?? this.shown());\n this.seed = null;\n });\n }\n wasOpen = open;\n });\n\n /* The ring: one tab stop for the bar, arrows over every control and every\n chip segment. After render, because the items are the template's. */\n afterRenderEffect((onCleanup) => {\n const bar = this.barElement().nativeElement;\n const ring = createRovingTabindex(bar, {\n includeAriaDisabled: true,\n itemSelector: BAR_ITEMS,\n });\n /* A chip removed by the pointer: focus goes to the stop that took its place. */\n const removal = createRemovalFocus(bar, {\n fallback: () => bar.querySelector<HTMLElement>(\"[data-part='add']\") ?? null,\n itemSelector: BAR_ITEMS,\n });\n /* Read the DOM again after a chip, a pill or a control came or went. */\n const observer = new MutationObserver(() => ring.refresh());\n observer.observe(bar, { childList: true, subtree: true });\n onCleanup(() => {\n observer.disconnect();\n ring.destroy();\n removal.destroy();\n });\n });\n\n /* The narrow breakpoint, read from the root's own width, and the sheet\n breakpoint, read from the viewport — the side a drawer opens from is the\n viewport's question. A root with no box is not measured. */\n afterNextRender(() => {\n const element = this.host.nativeElement;\n const view = element.ownerDocument.defaultView;\n if (typeof ResizeObserver !== 'undefined') {\n const read = () => {\n const width = element.getBoundingClientRect().width;\n this.narrow.set(width > 0 && width < remToPx(element, NARROW_REM));\n };\n const observer = new ResizeObserver(read);\n observer.observe(element);\n read();\n this.destroyRef.onDestroy(() => observer.disconnect());\n }\n if (view?.matchMedia) {\n const query = view.matchMedia(`(max-width: ${NARROW_REM}rem)`);\n const read = () => this.sheet.set(query.matches);\n read();\n query.addEventListener?.('change', read);\n this.destroyRef.onDestroy(() => query.removeEventListener?.('change', read));\n }\n });\n\n /* The document key that reaches the search, unless the reader is typing. */\n effect((onCleanup) => {\n const key = this.shortcutValue();\n if (!key || this.disabled()) return;\n const doc = this.host.nativeElement.ownerDocument;\n const listener = (event: KeyboardEvent) => {\n if (event.defaultPrevented || event.metaKey || event.ctrlKey || event.altKey) return;\n if (event.key !== key || isEditable(doc.activeElement)) return;\n event.preventDefault();\n this.focusSearch();\n };\n doc.addEventListener('keydown', listener);\n onCleanup(() => doc.removeEventListener('keydown', listener));\n });\n\n /* Sticky: the bar reads the page property and adds its own height for what follows. */\n effect((onCleanup) => {\n if (!this.sticky() || typeof ResizeObserver === 'undefined') return;\n const element = this.host.nativeElement;\n const parent = element.parentElement;\n const view = element.ownerDocument.defaultView;\n if (!parent || !view) return;\n /* What the parent declared inline before this bar added itself: put back\n before every read, so a second measure never sums the bar twice. */\n const declared = parent.style.getPropertyValue(STICKY_TOP);\n const restore = () =>\n declared\n ? parent.style.setProperty(STICKY_TOP, declared)\n : parent.style.removeProperty(STICKY_TOP);\n const publish = () => {\n restore();\n const above = view.getComputedStyle(parent).getPropertyValue(STICKY_TOP).trim() || '0px';\n const height = element.getBoundingClientRect().height;\n element.style.setProperty(STICKY_TOP, above);\n parent.style.setProperty(STICKY_TOP, `calc(${above} + ${height}px)`);\n };\n const observer = new ResizeObserver(publish);\n observer.observe(element);\n publish();\n onCleanup(() => {\n observer.disconnect();\n element.style.removeProperty(STICKY_TOP);\n restore();\n });\n });\n\n this.destroyRef.onDestroy(() => clearTimeout(this.timer));\n }\n\n /* ── Helpers the template reads ─────────────────────────────────────── */\n\n protected pillOf(member: BarMember) {\n return member.kind === 'pill' ? member : null;\n }\n\n protected chipOf(member: BarMember) {\n return member.kind === 'chip' ? member : null;\n }\n\n protected groupOf(member: BarMember) {\n return member.kind === 'group' ? member : null;\n }\n\n protected isTemplate(icon: unknown): icon is TemplateRef<unknown> {\n return icon instanceof TemplateRef;\n }\n\n protected operatorWords(operator: string) {\n return operatorName(this.t, operator);\n }\n\n protected normalized(group: FilterGroup | null) {\n return normalizeFilterGroup(group);\n }\n\n /** One field's condition as its chip draws it. */\n private describeChip(\n key: string,\n filter: FilterDescriptor,\n flags: { pinned?: boolean; incomplete?: boolean; folded: boolean },\n ): BarChip {\n const field = fieldByKey(this.fields(), key);\n const unknown = field === undefined;\n const label = field?.label ?? key;\n const words = ruleWords(this.t, field, filter);\n const incomplete = flags.incomplete === true || !isFilterActive(filter);\n const value = words.value || this.t('noValue');\n const rule = this.t('rule', {\n condition:\n words.operands > 0\n ? this.t('condition', { operator: words.operator, value })\n : words.operator,\n field: unknown ? this.t('unknownField', { field: key }) : label,\n });\n return {\n condition: filter.conditions[0]?.operator ?? '',\n field,\n filter,\n folded: flags.folded,\n hasValue: words.operands > 0 || incomplete,\n id: `chip:${key}`,\n incomplete,\n key,\n kind: 'chip',\n label,\n name: incomplete ? this.t('incomplete', { rule }) : rule,\n operands: words.operands,\n operator: words.operator,\n operators: field?.operators ?? (field ? (operatorsFor(field.kind) as readonly string[]) : []),\n pinned: flags.pinned === true,\n removable: field?.required !== true && !this.readOnly(),\n unknown,\n value,\n valueName: this.t('condition', { operator: words.operator, value: words.full || value }),\n valueTitle: words.full && words.full !== words.value ? words.full : null,\n };\n }\n\n private sentenceOf(\n field: FilterBarField | undefined,\n filter: FilterDescriptor | null | undefined,\n ) {\n return describeFilter(filter, {\n ...this.format(),\n value: (value) =>\n field?.options?.find((option) => option.value === value)?.label ?? String(value),\n });\n }\n\n private announce(message: string) {\n getLiveAnnouncer(this.host.nativeElement.ownerDocument).announce(message);\n }\n\n /* ── The five requests ─────────────────────────────────────────────── */\n\n requestValue(next: FilterGroup | null, reason: FilterBarValueReason, source?: unknown) {\n const normalized = normalizeFilterGroup(next);\n const state = createControllable<FilterGroup | null>({\n equals: sameGroup,\n initial: this.currentValue(),\n onRequest: (request) => this.valueChangeRequest.emit(request),\n });\n if (state.request(normalized, reason, source)) this.value.set(normalized);\n }\n\n requestQuery(next: string, reason: FilterBarQueryReason, source?: unknown) {\n const state = createControllable<string>({\n initial: this.currentQuery(),\n onRequest: (request) => this.queryChangeRequest.emit(request),\n });\n if (state.request(next, reason, source)) this.query.set(next);\n }\n\n requestPreset(next: string | null, reason: FilterBarPresetReason, source?: unknown) {\n const state = createControllable<string | null>({\n initial: this.currentPreset(),\n onRequest: (request) => this.presetChangeRequest.emit(request),\n });\n if (state.request(next, reason, source)) this.preset.set(next);\n }\n\n requestOpen(next: boolean, reason: FilterBarOpenReason, source?: unknown) {\n const state = createControllable<boolean>({\n initial: this.isOpen(),\n onRequest: (request) => this.openChangeRequest.emit(request),\n });\n if (state.request(next, reason, source)) this.open.set(next);\n }\n\n requestRevealed(next: boolean, reason: FilterBarRevealedReason, source?: unknown) {\n const state = createControllable<boolean>({\n initial: this.isRevealed(),\n onRequest: (request) => this.revealedChangeRequest.emit(request),\n });\n if (state.request(next, reason, source)) this.revealed.set(next);\n }\n\n /* ── Edits ─────────────────────────────────────────────────────────── */\n\n /**\n * Every edit of the tree goes through here: under `live` it is requested at\n * once, under `manual` it goes to the draft and Apply requests it.\n */\n private edit(next: FilterGroup | null, reason: FilterBarValueReason, source?: unknown) {\n if (this.applyValue() === 'manual') {\n this.draft.set({ query: this.shownQuery(), value: next });\n return;\n }\n this.requestValue(next, reason, source);\n }\n\n /** The tree with every required field at its default, which is what Clear returns to. */\n protected baseline(): FilterGroup | null {\n let next: FilterGroup | null = null;\n for (const field of this.required()) {\n if (field.defaultValue) next = withRuleFor(next, field.key, field.defaultValue);\n }\n return normalizeFilterGroup(next);\n }\n\n private missing(tree: FilterGroup | null) {\n return this.required().filter((field) => !isFilterActive(ruleFor(tree, field.key) ?? null));\n }\n\n /** A required field refuses: data-invalid on its chip or pill, its message said, and focus on it when asked. */\n private refuse(field: FilterBarField, focus: boolean) {\n this.invalid.set(field.key);\n this.announce(this.t('required', { field: field.label }));\n if (!focus) return;\n const member = this.barElement().nativeElement.querySelector<HTMLElement>(\n `[data-field='${CSS.escape(field.key)}']`,\n );\n (member?.matches('button') ? member : member?.querySelector<HTMLElement>(SEGMENTS))?.focus();\n }\n\n /** A field chosen from `add` or pressed as a pill: its chip, incomplete, with the value popover open. */\n protected start(key: string, source?: unknown) {\n const field = fieldByKey(this.fields(), key);\n if (!field || this.locked()) return;\n if (this.narrow()) {\n this.openBuilderOn(key, source);\n return;\n }\n const filter = blankRule(field);\n if (isFilterActive(filter)) {\n this.edit(withRuleFor(this.shown(), key, filter), 'pointer', source);\n } else {\n this.pending.set({ filter, key });\n }\n this.valueOpen.set(key);\n }\n\n /** Every change to one field's rule from a chip: pending until active, then the value's. */\n protected changeRule(key: string, next: FilterDescriptor | null, reason: FilterBarValueReason) {\n const field = fieldByKey(this.fields(), key);\n const shown = this.shown();\n if (next === null) {\n if (field?.required) {\n this.refuse(field, false);\n return;\n }\n if (this.pending()?.key === key) this.pending.set(null);\n this.edit(withoutRuleFor(shown, key), 'clear');\n return;\n }\n this.invalid.set(null);\n if (!isFilterActive(next)) {\n /* A draft holds an unfinished rule as it stands; the value never does. */\n if (this.applyValue() === 'manual') {\n this.edit(withRuleFor(shown, key, next), reason);\n return;\n }\n const at = shown\n ? shown.rules.findIndex((node) => !isFilterGroup(node) && node.field === key)\n : -1;\n this.pending.set({ filter: next, key, ...(at === -1 ? {} : { at }) });\n if (at !== -1) this.edit(withoutRuleFor(shown, key), reason);\n return;\n }\n if (this.pending()?.key === key) this.pending.set(null);\n this.edit(withRuleFor(shown, key, next), reason);\n }\n\n protected setOperator(key: string, filter: FilterDescriptor, operator: string) {\n const condition = (filter.conditions[0] ?? { operator }) as Condition;\n const before = operandCount(condition.operator as FilterOperator);\n const after = operandCount(operator as FilterOperator);\n const next = withCondition(filter, 0, {\n operator,\n ...(after >= 1 && before >= 1 ? { value: condition.value } : {}),\n ...(after === 2 && before === 2 ? { end: condition.end } : {}),\n } as never);\n this.changeRule(key, next, 'pointer');\n /* An operator that wants an operand the rule lacks moves on to the value. */\n if (after > 0 && !isFilterActive(next)) this.valueOpen.set(key);\n }\n\n protected toggleValue(key: string, open: boolean) {\n const current = this.valueOpen();\n this.valueOpen.set(open ? key : current === key ? null : current);\n }\n\n /** Done in a chip's value popover: the condition is said, and the popover closes. */\n protected finishValue(key: string) {\n const field = fieldByKey(this.fields(), key);\n const rule = ruleFor(this.shown(), key);\n if (rule && isFilterActive(rule)) {\n this.announce(\n this.t('rule', { condition: this.sentenceOf(field, rule), field: field?.label ?? key }),\n );\n }\n if (this.valueOpen() === key) this.valueOpen.set(null);\n }\n\n /** The value segment drawn without its popover: under the narrow breakpoint it opens the builder. */\n protected onValueSegment(chip: BarChip, event: Event) {\n if (this.readOnly() || chip.unknown || !this.narrow()) return;\n this.openBuilderOn(chip.key, event);\n }\n\n protected removeField(key: string, source?: unknown) {\n const field = fieldByKey(this.fields(), key);\n if (field?.required) {\n this.refuse(field, false);\n return;\n }\n const pending = this.pending();\n if (pending?.key === key) {\n this.pending.set(null);\n if (ruleFor(this.shown(), key) === undefined) return;\n }\n this.edit(withoutRuleFor(this.shown(), key), 'remove', source);\n this.announce(this.t('removed', { field: field?.label ?? key }));\n }\n\n protected removeNode(path: FilterPath, source?: unknown) {\n const shown = this.shown();\n if (!shown) return;\n this.edit(removeNodeAt(shown, path), 'remove', source);\n }\n\n /**\n * `Delete` and `Backspace` on a segment remove the condition. The keyboard\n * goes to the segment of the same role on the chip that followed, else on\n * the one before, else to `add` — chosen before the removal, while both\n * neighbours are still in the DOM, and focused after the render.\n */\n protected onChipKeyDown(event: KeyboardEvent, key: string) {\n if (event.key !== 'Delete' && event.key !== 'Backspace') return;\n const segment = (event.target as HTMLElement).closest<HTMLElement>(SEGMENTS);\n if (!segment || this.locked() || event.defaultPrevented) return;\n event.preventDefault();\n if (fieldByKey(this.fields(), key)?.required) {\n this.removeField(key, event);\n return;\n }\n const bar = this.barElement().nativeElement;\n const chips = [...bar.querySelectorAll<HTMLElement>(\"[data-part='chip']\")].filter(\n (chip) => chip.checkVisibility?.() ?? true,\n );\n const here = segment.closest<HTMLElement>(\"[data-part='chip']\");\n const index = here ? chips.indexOf(here) : -1;\n const role = segment.getAttribute('data-part');\n const neighbour = chips[index + 1] ?? chips[index - 1];\n const target =\n neighbour?.querySelector<HTMLElement>(`[data-part='${role}']`) ??\n neighbour?.querySelector<HTMLElement>('button') ??\n null;\n this.focusAfterRender(target);\n this.removeField(key, event);\n }\n\n protected onGroupKeyDown(event: KeyboardEvent, path: FilterPath) {\n if ((event.key !== 'Delete' && event.key !== 'Backspace') || this.locked()) return;\n event.preventDefault();\n this.removeNode(path, event);\n }\n\n private focusAfterRender(target: HTMLElement | null) {\n afterNextRender(\n {\n write: () => {\n const bar = this.barElement().nativeElement;\n (target?.isConnected\n ? target\n : bar.querySelector<HTMLElement>(\"[data-part='add']\")\n )?.focus();\n },\n },\n { injector: this.injector },\n );\n }\n\n protected clearAll(source?: unknown) {\n const next = this.baseline();\n this.invalid.set(null);\n this.pending.set(null);\n if (this.applyValue() === 'manual') {\n this.draft.set({ query: '', value: next });\n } else {\n this.requestValue(next, 'clear', source);\n if (this.currentQuery() !== '') this.requestQuery('', 'clear', source);\n }\n this.announce(\n next\n ? this.t('clearedTo', { filters: describeFilterGroup(next, this.format()) })\n : this.t('cleared'),\n );\n }\n\n protected submit(source?: unknown) {\n const draft = this.draft();\n if (!draft) return;\n const lacking = this.missing(draft.value);\n if (lacking[0]) {\n this.refuse(lacking[0], true);\n return;\n }\n this.invalid.set(null);\n this.requestValue(draft.value, 'submit', source);\n if (draft.query !== this.currentQuery()) this.requestQuery(draft.query, 'submit', source);\n this.draft.set(null);\n const applied = normalizeFilterGroup(draft.value);\n this.announce(\n applied\n ? this.t('appliedCount', {\n count: firstLevelRules(applied).length,\n filters: describeFilterGroup(applied, this.format()),\n })\n : this.t('cleared'),\n );\n }\n\n protected reset() {\n this.draft.set(null);\n this.invalid.set(null);\n }\n\n protected choosePreset(key: string | null, source?: unknown) {\n this.requestPreset(key, key === null ? 'clear' : 'select', source);\n const chosen = this.presets()?.find((entry) => entry.key === key);\n if (chosen) {\n this.draft.set(null);\n this.requestValue(chosen.value, 'select', source);\n this.announce(chosen.label);\n }\n }\n\n /* ── The builder ───────────────────────────────────────────────────── */\n\n /** Opens the builder, with the card at `at.path` expanded, on `at.tree` when given. */\n protected openBuilderAt(\n reason: FilterBarOpenReason,\n source?: unknown,\n at?: { tree?: FilterGroup | null; path: FilterPath },\n ) {\n if (at?.tree !== undefined) this.seed = at.tree;\n this.expanded.set(at ? at.path.join('.') : null);\n this.requestOpen(true, reason, source);\n }\n\n /** The builder open on one field's rule: the applied one, the pending one, or a fresh one. */\n private openBuilderOn(key: string, source?: unknown) {\n const field = fieldByKey(this.fields(), key);\n const shown = this.shown();\n const pending = this.pending();\n const applied = shown\n ? shown.rules.findIndex((node) => !isFilterGroup(node) && node.field === key)\n : -1;\n if (applied !== -1 && pending?.key !== key) {\n this.openBuilderAt('pointer', source, { path: [applied] });\n return;\n }\n const filter = pending?.key === key ? pending.filter : field ? blankRule(field) : null;\n if (!filter) return;\n const tree = withRuleFor(shown, key, filter);\n this.pending.set(null);\n this.openBuilderAt('pointer', source, {\n path: [tree.rules.findIndex((node) => !isFilterGroup(node) && node.field === key)],\n tree,\n });\n }\n\n protected commitDrawer() {\n const next = this.drawerDraft();\n const lacking = this.missing(next);\n if (lacking[0]) {\n this.refuse(lacking[0], false);\n return;\n }\n this.invalid.set(null);\n this.edit(next, 'submit');\n const applied = normalizeFilterGroup(next);\n this.announce(\n applied\n ? this.t('appliedCount', {\n count: countActive(applied),\n filters: describeFilterGroup(applied, this.format()),\n })\n : this.t('cleared'),\n );\n this.requestOpen(false, 'submit');\n }\n\n protected onDrawerRequest(request: ChangeRequest<boolean>) {\n this.requestOpen(request.value, request.reason as FilterBarOpenReason, request.source);\n }\n\n /* ── The query ─────────────────────────────────────────────────────── */\n\n protected typeQuery(request: ChangeRequest<string>) {\n const next = request.value;\n const reason: FilterBarQueryReason = request.reason === 'clear' ? 'clear' : 'keyboard';\n if (this.applyValue() === 'manual') {\n this.draft.set({ query: next, value: this.shown() });\n return;\n }\n this.typed.set(next);\n clearTimeout(this.timer);\n if (reason === 'clear' || this.queryDelayValue() === 0) {\n this.typed.set(null);\n this.requestQuery(next, reason, request.source);\n return;\n }\n this.timer = setTimeout(() => {\n this.timer = undefined;\n this.typed.set(null);\n this.requestQuery(next, reason, request.source);\n }, this.queryDelayValue());\n }\n\n protected onSearchKeyDown(event: KeyboardEvent) {\n if (event.defaultPrevented) return;\n if (event.key === 'Escape' && this.shownQuery() !== '') {\n event.preventDefault();\n this.typeQuery({\n cancel: () => {},\n cancelled: false,\n previous: this.shownQuery(),\n reason: 'clear',\n source: event,\n value: '',\n });\n }\n if (event.key === 'Enter' && this.applyValue() === 'manual') this.submit(event);\n }\n\n /* ── Imperative ────────────────────────────────────────────────────── */\n\n /** Puts focus in the search field. */\n focusSearch() {\n this.searchInput().nativeElement.focus();\n }\n\n /**\n * Opens the builder. With a path, the rule at that path opens as the\n * expanded card. `open` is the model's name here, so the handle's `open(path)`\n * is `openBuilder(path)`.\n */\n openBuilder(path?: FilterPath) {\n this.openBuilderAt('programmatic', undefined, path ? { path } : undefined);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["kindDefaultOperator"],"mappings":"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"}