@semantic-components/ui-lab 0.63.0 → 0.65.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (780) hide show
  1. package/fesm2022/semantic-components-ui-lab.mjs +36276 -0
  2. package/fesm2022/semantic-components-ui-lab.mjs.map +1 -0
  3. package/package.json +17 -3
  4. package/types/semantic-components-ui-lab.d.ts +7454 -0
  5. package/eslint.config.mjs +0 -39
  6. package/ng-package.json +0 -7
  7. package/project.json +0 -28
  8. package/src/index.ts +0 -2
  9. package/src/lib/components/accordion/README.md +0 -269
  10. package/src/lib/components/accordion/TODO.md +0 -58
  11. package/src/lib/components/accordion/accordion-content.ts +0 -31
  12. package/src/lib/components/accordion/accordion-header.ts +0 -15
  13. package/src/lib/components/accordion/accordion-item.ts +0 -17
  14. package/src/lib/components/accordion/accordion-panel.ts +0 -42
  15. package/src/lib/components/accordion/accordion-trigger-icon.ts +0 -27
  16. package/src/lib/components/accordion/accordion-trigger.ts +0 -46
  17. package/src/lib/components/accordion/accordion.ts +0 -35
  18. package/src/lib/components/accordion/index.ts +0 -7
  19. package/src/lib/components/alert/README.md +0 -117
  20. package/src/lib/components/alert/alert-action.ts +0 -17
  21. package/src/lib/components/alert/alert-description.ts +0 -20
  22. package/src/lib/components/alert/alert-title.ts +0 -20
  23. package/src/lib/components/alert/alert.ts +0 -39
  24. package/src/lib/components/alert/index.ts +0 -4
  25. package/src/lib/components/alert-dialog/ARCHITECTURE.md +0 -808
  26. package/src/lib/components/alert-dialog/README.md +0 -215
  27. package/src/lib/components/alert-dialog/alert-dialog-action.ts +0 -32
  28. package/src/lib/components/alert-dialog/alert-dialog-cancel.ts +0 -32
  29. package/src/lib/components/alert-dialog/alert-dialog-description.ts +0 -24
  30. package/src/lib/components/alert-dialog/alert-dialog-footer.ts +0 -21
  31. package/src/lib/components/alert-dialog/alert-dialog-header.ts +0 -23
  32. package/src/lib/components/alert-dialog/alert-dialog-media.ts +0 -22
  33. package/src/lib/components/alert-dialog/alert-dialog-portal.ts +0 -8
  34. package/src/lib/components/alert-dialog/alert-dialog-provider.ts +0 -135
  35. package/src/lib/components/alert-dialog/alert-dialog-title.ts +0 -20
  36. package/src/lib/components/alert-dialog/alert-dialog-trigger.ts +0 -25
  37. package/src/lib/components/alert-dialog/alert-dialog.ts +0 -77
  38. package/src/lib/components/alert-dialog/index.ts +0 -11
  39. package/src/lib/components/animated-counter/README.md +0 -102
  40. package/src/lib/components/animated-counter/animated-counter-types.ts +0 -23
  41. package/src/lib/components/animated-counter/animated-counter.ts +0 -143
  42. package/src/lib/components/animated-counter/index.ts +0 -6
  43. package/src/lib/components/aspect-ratio/README.md +0 -97
  44. package/src/lib/components/aspect-ratio/aspect-ratio.ts +0 -19
  45. package/src/lib/components/aspect-ratio/index.ts +0 -1
  46. package/src/lib/components/audio-player/README.md +0 -252
  47. package/src/lib/components/audio-player/audio-player-audio.ts +0 -32
  48. package/src/lib/components/audio-player/audio-player-cover.ts +0 -39
  49. package/src/lib/components/audio-player/audio-player-info.ts +0 -40
  50. package/src/lib/components/audio-player/audio-player-next.ts +0 -40
  51. package/src/lib/components/audio-player/audio-player-play-button.ts +0 -39
  52. package/src/lib/components/audio-player/audio-player-previous.ts +0 -40
  53. package/src/lib/components/audio-player/audio-player-progress.ts +0 -77
  54. package/src/lib/components/audio-player/audio-player-repeat.ts +0 -38
  55. package/src/lib/components/audio-player/audio-player-shuffle.ts +0 -39
  56. package/src/lib/components/audio-player/audio-player-volume.ts +0 -91
  57. package/src/lib/components/audio-player/audio-player.ts +0 -246
  58. package/src/lib/components/audio-player/index.ts +0 -11
  59. package/src/lib/components/avatar/README.md +0 -117
  60. package/src/lib/components/avatar/avatar-fallback.ts +0 -25
  61. package/src/lib/components/avatar/avatar-image.ts +0 -39
  62. package/src/lib/components/avatar/avatar.ts +0 -25
  63. package/src/lib/components/avatar/index.ts +0 -3
  64. package/src/lib/components/avatar-group/README.md +0 -94
  65. package/src/lib/components/avatar-group/avatar-group-types.ts +0 -9
  66. package/src/lib/components/avatar-group/avatar-group.ts +0 -181
  67. package/src/lib/components/avatar-group/index.ts +0 -2
  68. package/src/lib/components/backdrop/backdrop.ts +0 -75
  69. package/src/lib/components/backdrop/index.ts +0 -1
  70. package/src/lib/components/badge/README.md +0 -66
  71. package/src/lib/components/badge/badge.ts +0 -43
  72. package/src/lib/components/badge/index.ts +0 -1
  73. package/src/lib/components/barcode-scanner/README.md +0 -144
  74. package/src/lib/components/barcode-scanner/barcode-scanner-simple.ts +0 -36
  75. package/src/lib/components/barcode-scanner/barcode-scanner.ts +0 -460
  76. package/src/lib/components/barcode-scanner/index.ts +0 -3
  77. package/src/lib/components/breadcrumb/README.md +0 -80
  78. package/src/lib/components/breadcrumb/breadcrumb-ellipsis.ts +0 -46
  79. package/src/lib/components/breadcrumb/breadcrumb-item.ts +0 -17
  80. package/src/lib/components/breadcrumb/breadcrumb-link.ts +0 -17
  81. package/src/lib/components/breadcrumb/breadcrumb-list.ts +0 -20
  82. package/src/lib/components/breadcrumb/breadcrumb-page.ts +0 -20
  83. package/src/lib/components/breadcrumb/breadcrumb-separator.ts +0 -45
  84. package/src/lib/components/breadcrumb/breadcrumb.ts +0 -10
  85. package/src/lib/components/breadcrumb/index.ts +0 -7
  86. package/src/lib/components/button-group/button-group-separator.ts +0 -26
  87. package/src/lib/components/button-group/button-group-text.ts +0 -20
  88. package/src/lib/components/button-group/button-group.ts +0 -43
  89. package/src/lib/components/button-group/index.ts +0 -10
  90. package/src/lib/components/calendar/CALENDAR-VIEWS.md +0 -443
  91. package/src/lib/components/calendar/README.md +0 -227
  92. package/src/lib/components/calendar/calendar-day-view.ts +0 -310
  93. package/src/lib/components/calendar/calendar-header.ts +0 -58
  94. package/src/lib/components/calendar/calendar-month-view.ts +0 -176
  95. package/src/lib/components/calendar/calendar-year-view.ts +0 -167
  96. package/src/lib/components/calendar/calendar.ts +0 -273
  97. package/src/lib/components/calendar/index.ts +0 -1
  98. package/src/lib/components/card/README.md +0 -86
  99. package/src/lib/components/card/card-content.ts +0 -15
  100. package/src/lib/components/card/card-description.ts +0 -17
  101. package/src/lib/components/card/card-footer.ts +0 -17
  102. package/src/lib/components/card/card-header.ts +0 -17
  103. package/src/lib/components/card/card-title.ts +0 -17
  104. package/src/lib/components/card/card.ts +0 -20
  105. package/src/lib/components/card/index.ts +0 -6
  106. package/src/lib/components/chart/README.md +0 -220
  107. package/src/lib/components/chart/bar-chart.ts +0 -186
  108. package/src/lib/components/chart/chart-container.ts +0 -33
  109. package/src/lib/components/chart/chart-legend.ts +0 -42
  110. package/src/lib/components/chart/chart-tooltip.ts +0 -42
  111. package/src/lib/components/chart/chart-types.ts +0 -21
  112. package/src/lib/components/chart/donut-chart.ts +0 -35
  113. package/src/lib/components/chart/index.ts +0 -9
  114. package/src/lib/components/chart/line-chart.ts +0 -223
  115. package/src/lib/components/chart/pie-chart.ts +0 -186
  116. package/src/lib/components/checkbox/README.md +0 -293
  117. package/src/lib/components/checkbox/checkbox-field.ts +0 -78
  118. package/src/lib/components/checkbox/checkbox-indicator.ts +0 -27
  119. package/src/lib/components/checkbox/checkbox-types.ts +0 -15
  120. package/src/lib/components/checkbox/checkbox.ts +0 -74
  121. package/src/lib/components/checkbox/index.ts +0 -5
  122. package/src/lib/components/checkbox/visual-checkbox.ts +0 -47
  123. package/src/lib/components/collapsible/README.md +0 -191
  124. package/src/lib/components/collapsible/collapsible-content.ts +0 -28
  125. package/src/lib/components/collapsible/collapsible-panel.ts +0 -42
  126. package/src/lib/components/collapsible/collapsible-trigger.ts +0 -48
  127. package/src/lib/components/collapsible/collapsible.ts +0 -33
  128. package/src/lib/components/collapsible/index.ts +0 -4
  129. package/src/lib/components/color-picker/README.md +0 -218
  130. package/src/lib/components/color-picker/color-picker-area.ts +0 -107
  131. package/src/lib/components/color-picker/color-picker-eyedropper.ts +0 -76
  132. package/src/lib/components/color-picker/color-picker-hue.ts +0 -92
  133. package/src/lib/components/color-picker/color-picker-input.ts +0 -70
  134. package/src/lib/components/color-picker/color-picker-preview.ts +0 -21
  135. package/src/lib/components/color-picker/color-picker-swatches.ts +0 -60
  136. package/src/lib/components/color-picker/color-picker.ts +0 -227
  137. package/src/lib/components/color-picker/index.ts +0 -8
  138. package/src/lib/components/combobox/README.md +0 -166
  139. package/src/lib/components/combobox/combobox-empty.ts +0 -17
  140. package/src/lib/components/combobox/combobox-icon.ts +0 -20
  141. package/src/lib/components/combobox/combobox-input.ts +0 -32
  142. package/src/lib/components/combobox/combobox-item-indicator.ts +0 -20
  143. package/src/lib/components/combobox/combobox-item.ts +0 -49
  144. package/src/lib/components/combobox/combobox-list.ts +0 -40
  145. package/src/lib/components/combobox/combobox-portal.ts +0 -111
  146. package/src/lib/components/combobox/combobox-trigger.ts +0 -20
  147. package/src/lib/components/combobox/combobox.ts +0 -42
  148. package/src/lib/components/combobox/index.ts +0 -9
  149. package/src/lib/components/command/README.md +0 -161
  150. package/src/lib/components/command/command-empty.ts +0 -17
  151. package/src/lib/components/command/command-group-heading.ts +0 -20
  152. package/src/lib/components/command/command-group.ts +0 -23
  153. package/src/lib/components/command/command-input.ts +0 -67
  154. package/src/lib/components/command/command-item.ts +0 -61
  155. package/src/lib/components/command/command-list.ts +0 -19
  156. package/src/lib/components/command/command-separator.ts +0 -18
  157. package/src/lib/components/command/command-shortcut.ts +0 -20
  158. package/src/lib/components/command/command.ts +0 -35
  159. package/src/lib/components/command/index.ts +0 -9
  160. package/src/lib/components/confetti/README.md +0 -103
  161. package/src/lib/components/confetti/confetti-types.ts +0 -47
  162. package/src/lib/components/confetti/confetti.ts +0 -220
  163. package/src/lib/components/confetti/index.ts +0 -7
  164. package/src/lib/components/context-menu/README.md +0 -149
  165. package/src/lib/components/context-menu/context-menu-content.ts +0 -46
  166. package/src/lib/components/context-menu/context-menu-item.ts +0 -44
  167. package/src/lib/components/context-menu/context-menu-label.ts +0 -22
  168. package/src/lib/components/context-menu/context-menu-separator.ts +0 -18
  169. package/src/lib/components/context-menu/context-menu-shortcut.ts +0 -20
  170. package/src/lib/components/context-menu/context-menu-sub-content.ts +0 -83
  171. package/src/lib/components/context-menu/context-menu-sub-trigger.ts +0 -91
  172. package/src/lib/components/context-menu/context-menu-sub.ts +0 -38
  173. package/src/lib/components/context-menu/context-menu-trigger.ts +0 -40
  174. package/src/lib/components/context-menu/context-menu.ts +0 -106
  175. package/src/lib/components/context-menu/index.ts +0 -10
  176. package/src/lib/components/copy-button/README.md +0 -211
  177. package/src/lib/components/copy-button/copy-button-with-text.ts +0 -53
  178. package/src/lib/components/copy-button/copy-button.ts +0 -137
  179. package/src/lib/components/copy-button/copy-code.ts +0 -42
  180. package/src/lib/components/copy-button/copy-input.ts +0 -54
  181. package/src/lib/components/copy-button/index.ts +0 -4
  182. package/src/lib/components/countdown/README.md +0 -168
  183. package/src/lib/components/countdown/countdown-simple.ts +0 -118
  184. package/src/lib/components/countdown/countdown.ts +0 -235
  185. package/src/lib/components/countdown/index.ts +0 -3
  186. package/src/lib/components/data-table/README.md +0 -330
  187. package/src/lib/components/data-table/data-table-body.ts +0 -28
  188. package/src/lib/components/data-table/data-table-cell.ts +0 -20
  189. package/src/lib/components/data-table/data-table-column-toggle.ts +0 -96
  190. package/src/lib/components/data-table/data-table-filter.ts +0 -45
  191. package/src/lib/components/data-table/data-table-head.ts +0 -96
  192. package/src/lib/components/data-table/data-table-header.ts +0 -28
  193. package/src/lib/components/data-table/data-table-pagination.ts +0 -152
  194. package/src/lib/components/data-table/data-table-row.ts +0 -23
  195. package/src/lib/components/data-table/data-table.ts +0 -181
  196. package/src/lib/components/data-table/index.ts +0 -15
  197. package/src/lib/components/date-picker/README.md +0 -101
  198. package/src/lib/components/date-picker/date-picker.ts +0 -175
  199. package/src/lib/components/date-picker/index.ts +0 -1
  200. package/src/lib/components/date-range-picker/README.md +0 -148
  201. package/src/lib/components/date-range-picker/date-range-picker.ts +0 -348
  202. package/src/lib/components/date-range-picker/index.ts +0 -3
  203. package/src/lib/components/dialog/ARCHITECTURE.md +0 -792
  204. package/src/lib/components/dialog/README.md +0 -208
  205. package/src/lib/components/dialog/dialog-close.ts +0 -33
  206. package/src/lib/components/dialog/dialog-description.ts +0 -23
  207. package/src/lib/components/dialog/dialog-footer.ts +0 -20
  208. package/src/lib/components/dialog/dialog-header.ts +0 -17
  209. package/src/lib/components/dialog/dialog-portal.ts +0 -8
  210. package/src/lib/components/dialog/dialog-provider.ts +0 -175
  211. package/src/lib/components/dialog/dialog-title.ts +0 -20
  212. package/src/lib/components/dialog/dialog-trigger.ts +0 -25
  213. package/src/lib/components/dialog/dialog.ts +0 -79
  214. package/src/lib/components/dialog/index.ts +0 -9
  215. package/src/lib/components/diff-viewer/README.md +0 -172
  216. package/src/lib/components/diff-viewer/diff-algorithm.ts +0 -337
  217. package/src/lib/components/diff-viewer/diff-viewer.ts +0 -369
  218. package/src/lib/components/diff-viewer/index.ts +0 -8
  219. package/src/lib/components/dock/README.md +0 -204
  220. package/src/lib/components/dock/dock-badge.ts +0 -36
  221. package/src/lib/components/dock/dock-item.ts +0 -76
  222. package/src/lib/components/dock/dock-items.ts +0 -31
  223. package/src/lib/components/dock/dock-types.ts +0 -25
  224. package/src/lib/components/dock/dock.ts +0 -101
  225. package/src/lib/components/dock/index.ts +0 -11
  226. package/src/lib/components/drawer/ARCHITECTURE.md +0 -972
  227. package/src/lib/components/drawer/README.md +0 -205
  228. package/src/lib/components/drawer/drawer-close.ts +0 -18
  229. package/src/lib/components/drawer/drawer-description.ts +0 -17
  230. package/src/lib/components/drawer/drawer-footer.ts +0 -17
  231. package/src/lib/components/drawer/drawer-handle.ts +0 -17
  232. package/src/lib/components/drawer/drawer-header.ts +0 -17
  233. package/src/lib/components/drawer/drawer-portal.ts +0 -8
  234. package/src/lib/components/drawer/drawer-provider.ts +0 -142
  235. package/src/lib/components/drawer/drawer-title.ts +0 -17
  236. package/src/lib/components/drawer/drawer-trigger.ts +0 -24
  237. package/src/lib/components/drawer/drawer.ts +0 -77
  238. package/src/lib/components/drawer/index.ts +0 -11
  239. package/src/lib/components/emoji-picker/README.md +0 -151
  240. package/src/lib/components/emoji-picker/emoji-picker-trigger.ts +0 -48
  241. package/src/lib/components/emoji-picker/emoji-picker.ts +0 -666
  242. package/src/lib/components/emoji-picker/index.ts +0 -3
  243. package/src/lib/components/empty/README.md +0 -72
  244. package/src/lib/components/empty/empty-content.ts +0 -20
  245. package/src/lib/components/empty/empty-description.ts +0 -20
  246. package/src/lib/components/empty/empty-header.ts +0 -17
  247. package/src/lib/components/empty/empty-media.ts +0 -29
  248. package/src/lib/components/empty/empty-title.ts +0 -17
  249. package/src/lib/components/empty/empty.ts +0 -20
  250. package/src/lib/components/empty/index.ts +0 -6
  251. package/src/lib/components/field/README.md +0 -326
  252. package/src/lib/components/field/field-content.ts +0 -20
  253. package/src/lib/components/field/field-description.ts +0 -22
  254. package/src/lib/components/field/field-error.ts +0 -18
  255. package/src/lib/components/field/field-group.ts +0 -20
  256. package/src/lib/components/field/field-legend.ts +0 -24
  257. package/src/lib/components/field/field-separator.ts +0 -20
  258. package/src/lib/components/field/field-set.ts +0 -20
  259. package/src/lib/components/field/field-title.ts +0 -20
  260. package/src/lib/components/field/field.ts +0 -89
  261. package/src/lib/components/field/index.ts +0 -9
  262. package/src/lib/components/file-upload/README.md +0 -256
  263. package/src/lib/components/file-upload/file-upload-dropzone.ts +0 -100
  264. package/src/lib/components/file-upload/file-upload-item-delete.ts +0 -59
  265. package/src/lib/components/file-upload/file-upload-item-name.ts +0 -17
  266. package/src/lib/components/file-upload/file-upload-item-preview.ts +0 -52
  267. package/src/lib/components/file-upload/file-upload-item-progress.ts +0 -33
  268. package/src/lib/components/file-upload/file-upload-item-size.ts +0 -39
  269. package/src/lib/components/file-upload/file-upload-item.ts +0 -35
  270. package/src/lib/components/file-upload/file-upload-list.ts +0 -17
  271. package/src/lib/components/file-upload/file-upload-trigger.ts +0 -70
  272. package/src/lib/components/file-upload/file-upload.ts +0 -156
  273. package/src/lib/components/file-upload/index.ts +0 -11
  274. package/src/lib/components/hover-card/ARCHITECTURE.md +0 -341
  275. package/src/lib/components/hover-card/README.md +0 -118
  276. package/src/lib/components/hover-card/hover-card-portal.ts +0 -142
  277. package/src/lib/components/hover-card/hover-card-provider.ts +0 -85
  278. package/src/lib/components/hover-card/hover-card-trigger.ts +0 -75
  279. package/src/lib/components/hover-card/hover-card.ts +0 -97
  280. package/src/lib/components/hover-card/index.ts +0 -5
  281. package/src/lib/components/image-annotator/README.md +0 -132
  282. package/src/lib/components/image-annotator/image-annotator-types.ts +0 -29
  283. package/src/lib/components/image-annotator/image-annotator.ts +0 -549
  284. package/src/lib/components/image-annotator/index.ts +0 -7
  285. package/src/lib/components/image-compare/README.md +0 -239
  286. package/src/lib/components/image-compare/image-compare-after.ts +0 -39
  287. package/src/lib/components/image-compare/image-compare-before.ts +0 -30
  288. package/src/lib/components/image-compare/image-compare-container.ts +0 -119
  289. package/src/lib/components/image-compare/image-compare-label.ts +0 -34
  290. package/src/lib/components/image-compare/image-compare-slider.ts +0 -103
  291. package/src/lib/components/image-compare/image-compare.ts +0 -79
  292. package/src/lib/components/image-compare/index.ts +0 -10
  293. package/src/lib/components/image-cropper/README.md +0 -322
  294. package/src/lib/components/image-cropper/image-cropper-aspect-ratio.ts +0 -65
  295. package/src/lib/components/image-cropper/image-cropper-container.ts +0 -294
  296. package/src/lib/components/image-cropper/image-cropper-controls.ts +0 -95
  297. package/src/lib/components/image-cropper/image-cropper-preview.ts +0 -66
  298. package/src/lib/components/image-cropper/image-cropper.ts +0 -459
  299. package/src/lib/components/image-cropper/index.ts +0 -10
  300. package/src/lib/components/index.ts +0 -106
  301. package/src/lib/components/infinite-scroll/README.md +0 -134
  302. package/src/lib/components/infinite-scroll/index.ts +0 -4
  303. package/src/lib/components/infinite-scroll/infinite-scroll-end.ts +0 -9
  304. package/src/lib/components/infinite-scroll/infinite-scroll-loader.ts +0 -9
  305. package/src/lib/components/infinite-scroll/infinite-scroll.ts +0 -199
  306. package/src/lib/components/infinite-scroll/virtual-scroll.ts +0 -83
  307. package/src/lib/components/input/README.md +0 -93
  308. package/src/lib/components/input/index.ts +0 -1
  309. package/src/lib/components/input/input.ts +0 -41
  310. package/src/lib/components/input-group/README.md +0 -60
  311. package/src/lib/components/input-group/index.ts +0 -6
  312. package/src/lib/components/input-group/input-group-addon.ts +0 -46
  313. package/src/lib/components/input-group/input-group-button.ts +0 -49
  314. package/src/lib/components/input-group/input-group-input.ts +0 -20
  315. package/src/lib/components/input-group/input-group-text.ts +0 -20
  316. package/src/lib/components/input-group/input-group-textarea.ts +0 -20
  317. package/src/lib/components/input-group/input-group.ts +0 -21
  318. package/src/lib/components/kanban-board/README.md +0 -238
  319. package/src/lib/components/kanban-board/index.ts +0 -12
  320. package/src/lib/components/kanban-board/kanban-board.ts +0 -281
  321. package/src/lib/components/kanban-board/kanban-card.ts +0 -241
  322. package/src/lib/components/kanban-board/kanban-column.ts +0 -371
  323. package/src/lib/components/kanban-board/kanban-types.ts +0 -52
  324. package/src/lib/components/kbd/README.md +0 -58
  325. package/src/lib/components/kbd/index.ts +0 -2
  326. package/src/lib/components/kbd/kbd-group.ts +0 -17
  327. package/src/lib/components/kbd/kbd.ts +0 -20
  328. package/src/lib/components/label/README.md +0 -90
  329. package/src/lib/components/label/index.ts +0 -1
  330. package/src/lib/components/label/label.ts +0 -32
  331. package/src/lib/components/language-switcher/index.ts +0 -4
  332. package/src/lib/components/language-switcher/language-button.ts +0 -98
  333. package/src/lib/components/language-switcher/language-select.ts +0 -65
  334. package/src/lib/components/language-switcher/language-toggle.ts +0 -98
  335. package/src/lib/components/language-switcher/language.service.ts +0 -239
  336. package/src/lib/components/language-switcher/styles.ts +0 -16
  337. package/src/lib/components/lightbox/README.md +0 -387
  338. package/src/lib/components/lightbox/index.ts +0 -9
  339. package/src/lib/components/lightbox/lightbox-container.ts +0 -338
  340. package/src/lib/components/lightbox/lightbox-gallery.ts +0 -81
  341. package/src/lib/components/lightbox/lightbox-trigger.ts +0 -19
  342. package/src/lib/components/lightbox/lightbox.ts +0 -210
  343. package/src/lib/components/lightbox/lightbox.types.ts +0 -7
  344. package/src/lib/components/marquee/README.md +0 -183
  345. package/src/lib/components/marquee/auto-marquee.ts +0 -73
  346. package/src/lib/components/marquee/index.ts +0 -6
  347. package/src/lib/components/marquee/marquee-clone.ts +0 -17
  348. package/src/lib/components/marquee/marquee-fade.ts +0 -53
  349. package/src/lib/components/marquee/marquee-item.ts +0 -17
  350. package/src/lib/components/marquee/marquee-text.ts +0 -80
  351. package/src/lib/components/marquee/marquee.ts +0 -96
  352. package/src/lib/components/masonry-grid/README.md +0 -204
  353. package/src/lib/components/masonry-grid/index.ts +0 -4
  354. package/src/lib/components/masonry-grid/masonry-grid.ts +0 -178
  355. package/src/lib/components/masonry-grid/masonry-item.ts +0 -66
  356. package/src/lib/components/masonry-grid/masonry-types.ts +0 -24
  357. package/src/lib/components/mention-input/README.md +0 -122
  358. package/src/lib/components/mention-input/index.ts +0 -2
  359. package/src/lib/components/mention-input/mention-input.ts +0 -279
  360. package/src/lib/components/menu/README.md +0 -176
  361. package/src/lib/components/menu/index.ts +0 -11
  362. package/src/lib/components/menu/menu-item.ts +0 -32
  363. package/src/lib/components/menu/menu-portal.ts +0 -53
  364. package/src/lib/components/menu/menu-provider.ts +0 -50
  365. package/src/lib/components/menu/menu-separator.ts +0 -19
  366. package/src/lib/components/menu/menu-sub-icon.ts +0 -18
  367. package/src/lib/components/menu/menu-sub-portal.ts +0 -53
  368. package/src/lib/components/menu/menu-sub-provider.ts +0 -52
  369. package/src/lib/components/menu/menu-sub-trigger.ts +0 -34
  370. package/src/lib/components/menu/menu-sub.ts +0 -41
  371. package/src/lib/components/menu/menu-trigger.ts +0 -27
  372. package/src/lib/components/menu/menu.ts +0 -41
  373. package/src/lib/components/multi-select/README.md +0 -155
  374. package/src/lib/components/multi-select/index.ts +0 -2
  375. package/src/lib/components/multi-select/multi-select.ts +0 -394
  376. package/src/lib/components/native-checkbox/README.md +0 -113
  377. package/src/lib/components/native-checkbox/index.ts +0 -1
  378. package/src/lib/components/native-checkbox/native-checkbox.ts +0 -116
  379. package/src/lib/components/navbar/ARCHITECTURE.md +0 -605
  380. package/src/lib/components/navbar/README.md +0 -246
  381. package/src/lib/components/navbar/index.ts +0 -9
  382. package/src/lib/components/navbar/navbar-actions.ts +0 -28
  383. package/src/lib/components/navbar/navbar-brand.ts +0 -24
  384. package/src/lib/components/navbar/navbar-group.ts +0 -28
  385. package/src/lib/components/navbar/navbar-mobile-link.ts +0 -28
  386. package/src/lib/components/navbar/navbar-mobile-menu.ts +0 -71
  387. package/src/lib/components/navbar/navbar-mobile-portal.ts +0 -118
  388. package/src/lib/components/navbar/navbar-mobile-trigger.ts +0 -51
  389. package/src/lib/components/navbar/navbar-provider.ts +0 -85
  390. package/src/lib/components/navbar/navbar.ts +0 -40
  391. package/src/lib/components/navigation-menu/README.md +0 -135
  392. package/src/lib/components/navigation-menu/index.ts +0 -8
  393. package/src/lib/components/navigation-menu/navigation-menu-content.ts +0 -80
  394. package/src/lib/components/navigation-menu/navigation-menu-indicator.ts +0 -35
  395. package/src/lib/components/navigation-menu/navigation-menu-item.ts +0 -88
  396. package/src/lib/components/navigation-menu/navigation-menu-link.ts +0 -29
  397. package/src/lib/components/navigation-menu/navigation-menu-list.ts +0 -20
  398. package/src/lib/components/navigation-menu/navigation-menu-trigger.ts +0 -52
  399. package/src/lib/components/navigation-menu/navigation-menu-viewport.ts +0 -35
  400. package/src/lib/components/navigation-menu/navigation-menu.ts +0 -39
  401. package/src/lib/components/notification-center/README.md +0 -365
  402. package/src/lib/components/notification-center/index.ts +0 -20
  403. package/src/lib/components/notification-center/notification-center-container.ts +0 -226
  404. package/src/lib/components/notification-center/notification-center.ts +0 -157
  405. package/src/lib/components/notification-center/notification-group.ts +0 -198
  406. package/src/lib/components/notification-center/notification-item.ts +0 -214
  407. package/src/lib/components/notification-center/notification-types.ts +0 -52
  408. package/src/lib/components/number-field/README.md +0 -369
  409. package/src/lib/components/number-field/index.ts +0 -6
  410. package/src/lib/components/number-field/number-field-decrement.ts +0 -57
  411. package/src/lib/components/number-field/number-field-increment.ts +0 -58
  412. package/src/lib/components/number-field/number-field-input-group.ts +0 -37
  413. package/src/lib/components/number-field/number-field-input.ts +0 -87
  414. package/src/lib/components/number-field/number-field-scrub-area.ts +0 -74
  415. package/src/lib/components/number-field/number-field.ts +0 -143
  416. package/src/lib/components/opt-field/index.ts +0 -7
  417. package/src/lib/components/opt-field/opt-field-separator.ts +0 -18
  418. package/src/lib/components/opt-field/opt-field-slot-caret.ts +0 -31
  419. package/src/lib/components/opt-field/opt-field-slot-char.ts +0 -19
  420. package/src/lib/components/opt-field/opt-field-slot-group.ts +0 -17
  421. package/src/lib/components/opt-field/opt-field-slot-input.ts +0 -60
  422. package/src/lib/components/opt-field/opt-field-slot.ts +0 -111
  423. package/src/lib/components/opt-field/opt-field.ts +0 -113
  424. package/src/lib/components/org-chart/README.md +0 -265
  425. package/src/lib/components/org-chart/index.ts +0 -8
  426. package/src/lib/components/org-chart/org-chart-node.ts +0 -253
  427. package/src/lib/components/org-chart/org-chart-types.ts +0 -22
  428. package/src/lib/components/org-chart/org-chart.ts +0 -67
  429. package/src/lib/components/pagination/ACCESSIBILITY_REVIEW.md +0 -530
  430. package/src/lib/components/pagination/KEYBOARD-NAVIGATION.md +0 -356
  431. package/src/lib/components/pagination/README.md +0 -359
  432. package/src/lib/components/pagination/REVIEW_SUMMARY.md +0 -55
  433. package/src/lib/components/pagination/SMART-PAGINATION.md +0 -345
  434. package/src/lib/components/pagination/index.ts +0 -11
  435. package/src/lib/components/pagination/pagination-ellipsis.ts +0 -32
  436. package/src/lib/components/pagination/pagination-first.ts +0 -75
  437. package/src/lib/components/pagination/pagination-item.ts +0 -15
  438. package/src/lib/components/pagination/pagination-last.ts +0 -77
  439. package/src/lib/components/pagination/pagination-link.ts +0 -70
  440. package/src/lib/components/pagination/pagination-list.ts +0 -17
  441. package/src/lib/components/pagination/pagination-next.ts +0 -78
  442. package/src/lib/components/pagination/pagination-page-size-select.ts +0 -44
  443. package/src/lib/components/pagination/pagination-previous.ts +0 -78
  444. package/src/lib/components/pagination/pagination.ts +0 -190
  445. package/src/lib/components/password-field/README.md +0 -247
  446. package/src/lib/components/password-field/index.ts +0 -7
  447. package/src/lib/components/password-field/password-field-input-group.ts +0 -32
  448. package/src/lib/components/password-field/password-field-input.ts +0 -55
  449. package/src/lib/components/password-field/password-field-requirements.ts +0 -90
  450. package/src/lib/components/password-field/password-field-strength-bar.ts +0 -64
  451. package/src/lib/components/password-field/password-field-strength.ts +0 -91
  452. package/src/lib/components/password-field/password-field-toggle.ts +0 -86
  453. package/src/lib/components/password-field/password-field.ts +0 -95
  454. package/src/lib/components/pdf-viewer/README.md +0 -221
  455. package/src/lib/components/pdf-viewer/index.ts +0 -47
  456. package/src/lib/components/pdf-viewer/pdf-viewer-container.ts +0 -54
  457. package/src/lib/components/pdf-viewer/pdf-viewer-content.ts +0 -60
  458. package/src/lib/components/pdf-viewer/pdf-viewer-download.ts +0 -34
  459. package/src/lib/components/pdf-viewer/pdf-viewer-empty.ts +0 -62
  460. package/src/lib/components/pdf-viewer/pdf-viewer-error.ts +0 -73
  461. package/src/lib/components/pdf-viewer/pdf-viewer-fullscreen.ts +0 -36
  462. package/src/lib/components/pdf-viewer/pdf-viewer-loading.ts +0 -44
  463. package/src/lib/components/pdf-viewer/pdf-viewer-nav.ts +0 -30
  464. package/src/lib/components/pdf-viewer/pdf-viewer-next-page.ts +0 -38
  465. package/src/lib/components/pdf-viewer/pdf-viewer-page-info.ts +0 -53
  466. package/src/lib/components/pdf-viewer/pdf-viewer-prev-page.ts +0 -38
  467. package/src/lib/components/pdf-viewer/pdf-viewer-print.ts +0 -34
  468. package/src/lib/components/pdf-viewer/pdf-viewer-retry.ts +0 -36
  469. package/src/lib/components/pdf-viewer/pdf-viewer-root.ts +0 -239
  470. package/src/lib/components/pdf-viewer/pdf-viewer-rotate-left.ts +0 -34
  471. package/src/lib/components/pdf-viewer/pdf-viewer-rotate-right.ts +0 -34
  472. package/src/lib/components/pdf-viewer/pdf-viewer-separator.ts +0 -28
  473. package/src/lib/components/pdf-viewer/pdf-viewer-spacer.ts +0 -24
  474. package/src/lib/components/pdf-viewer/pdf-viewer-toolbar-base.ts +0 -34
  475. package/src/lib/components/pdf-viewer/pdf-viewer-toolbar.ts +0 -391
  476. package/src/lib/components/pdf-viewer/pdf-viewer-types.ts +0 -52
  477. package/src/lib/components/pdf-viewer/pdf-viewer-zoom-in.ts +0 -37
  478. package/src/lib/components/pdf-viewer/pdf-viewer-zoom-out.ts +0 -37
  479. package/src/lib/components/pdf-viewer/pdf-viewer-zoom-select.ts +0 -61
  480. package/src/lib/components/pdf-viewer/pdf-viewer-zoom.ts +0 -30
  481. package/src/lib/components/pdf-viewer/pdf-viewer.ts +0 -417
  482. package/src/lib/components/phone-input/README.md +0 -173
  483. package/src/lib/components/phone-input/countries.ts +0 -69
  484. package/src/lib/components/phone-input/index.ts +0 -4
  485. package/src/lib/components/phone-input/phone-input-simple.ts +0 -141
  486. package/src/lib/components/phone-input/phone-input.ts +0 -304
  487. package/src/lib/components/popover/ARCHITECTURE.md +0 -569
  488. package/src/lib/components/popover/README.md +0 -247
  489. package/src/lib/components/popover/index.ts +0 -6
  490. package/src/lib/components/popover/popover-close.ts +0 -29
  491. package/src/lib/components/popover/popover-portal.ts +0 -161
  492. package/src/lib/components/popover/popover-provider.ts +0 -82
  493. package/src/lib/components/popover/popover-trigger.ts +0 -27
  494. package/src/lib/components/popover/popover.ts +0 -66
  495. package/src/lib/components/progress/README.md +0 -75
  496. package/src/lib/components/progress/index.ts +0 -1
  497. package/src/lib/components/progress/progress.ts +0 -62
  498. package/src/lib/components/qr-code/README.md +0 -124
  499. package/src/lib/components/qr-code/index.ts +0 -3
  500. package/src/lib/components/qr-code/qr-code-download.ts +0 -105
  501. package/src/lib/components/qr-code/qr-code.ts +0 -121
  502. package/src/lib/components/qr-code/qr-generator.ts +0 -479
  503. package/src/lib/components/radio-group/README.md +0 -273
  504. package/src/lib/components/radio-group/index.ts +0 -3
  505. package/src/lib/components/radio-group/radio-field.ts +0 -43
  506. package/src/lib/components/radio-group/radio-group.ts +0 -18
  507. package/src/lib/components/radio-group/radio.ts +0 -30
  508. package/src/lib/components/range-slider/README.md +0 -118
  509. package/src/lib/components/range-slider/index.ts +0 -1
  510. package/src/lib/components/range-slider/range-slider.ts +0 -304
  511. package/src/lib/components/rating-field/README.md +0 -150
  512. package/src/lib/components/rating-field/index.ts +0 -3
  513. package/src/lib/components/rating-field/rating-field.ts +0 -87
  514. package/src/lib/components/rating-field/rating-item-group.ts +0 -73
  515. package/src/lib/components/rating-field/rating-item.ts +0 -89
  516. package/src/lib/components/resizable/README.md +0 -133
  517. package/src/lib/components/resizable/index.ts +0 -4
  518. package/src/lib/components/resizable/resizable-handle.ts +0 -160
  519. package/src/lib/components/resizable/resizable-panel-group.ts +0 -38
  520. package/src/lib/components/resizable/resizable-panel.ts +0 -51
  521. package/src/lib/components/resizable/resizable.types.ts +0 -1
  522. package/src/lib/components/scroll-area/README.md +0 -76
  523. package/src/lib/components/scroll-area/index.ts +0 -2
  524. package/src/lib/components/scroll-area/scroll-area.ts +0 -87
  525. package/src/lib/components/scroll-area/scroll-bar.ts +0 -207
  526. package/src/lib/components/search-input/README.md +0 -99
  527. package/src/lib/components/search-input/index.ts +0 -6
  528. package/src/lib/components/search-input/search-input-types.ts +0 -21
  529. package/src/lib/components/search-input/search-input.ts +0 -302
  530. package/src/lib/components/select/README.md +0 -175
  531. package/src/lib/components/select/index.ts +0 -9
  532. package/src/lib/components/select/select-icon.ts +0 -20
  533. package/src/lib/components/select/select-input.ts +0 -32
  534. package/src/lib/components/select/select-item-indicator.ts +0 -20
  535. package/src/lib/components/select/select-item.ts +0 -48
  536. package/src/lib/components/select/select-list.ts +0 -42
  537. package/src/lib/components/select/select-portal.ts +0 -48
  538. package/src/lib/components/select/select-trigger.ts +0 -36
  539. package/src/lib/components/select/select-value.ts +0 -32
  540. package/src/lib/components/select/select.ts +0 -57
  541. package/src/lib/components/separator/README.md +0 -59
  542. package/src/lib/components/separator/index.ts +0 -1
  543. package/src/lib/components/separator/separator.ts +0 -29
  544. package/src/lib/components/sheet/ARCHITECTURE.md +0 -915
  545. package/src/lib/components/sheet/README.md +0 -248
  546. package/src/lib/components/sheet/index.ts +0 -10
  547. package/src/lib/components/sheet/sheet-close.ts +0 -32
  548. package/src/lib/components/sheet/sheet-description.ts +0 -20
  549. package/src/lib/components/sheet/sheet-footer.ts +0 -20
  550. package/src/lib/components/sheet/sheet-header.ts +0 -17
  551. package/src/lib/components/sheet/sheet-portal.ts +0 -8
  552. package/src/lib/components/sheet/sheet-provider.ts +0 -142
  553. package/src/lib/components/sheet/sheet-title.ts +0 -20
  554. package/src/lib/components/sheet/sheet-trigger.ts +0 -24
  555. package/src/lib/components/sheet/sheet.ts +0 -92
  556. package/src/lib/components/sidebar/README.md +0 -254
  557. package/src/lib/components/sidebar/index.ts +0 -24
  558. package/src/lib/components/sidebar/sidebar-content.ts +0 -20
  559. package/src/lib/components/sidebar/sidebar-footer.ts +0 -17
  560. package/src/lib/components/sidebar/sidebar-group-action.ts +0 -24
  561. package/src/lib/components/sidebar/sidebar-group-content.ts +0 -17
  562. package/src/lib/components/sidebar/sidebar-group-label.ts +0 -23
  563. package/src/lib/components/sidebar/sidebar-group.ts +0 -17
  564. package/src/lib/components/sidebar/sidebar-header.ts +0 -17
  565. package/src/lib/components/sidebar/sidebar-input.ts +0 -20
  566. package/src/lib/components/sidebar/sidebar-inset.ts +0 -21
  567. package/src/lib/components/sidebar/sidebar-menu-action.ts +0 -31
  568. package/src/lib/components/sidebar/sidebar-menu-badge.ts +0 -25
  569. package/src/lib/components/sidebar/sidebar-menu-button.ts +0 -55
  570. package/src/lib/components/sidebar/sidebar-menu-item.ts +0 -17
  571. package/src/lib/components/sidebar/sidebar-menu-skeleton.ts +0 -40
  572. package/src/lib/components/sidebar/sidebar-menu-sub-button.ts +0 -33
  573. package/src/lib/components/sidebar/sidebar-menu-sub-item.ts +0 -15
  574. package/src/lib/components/sidebar/sidebar-menu-sub.ts +0 -21
  575. package/src/lib/components/sidebar/sidebar-menu.ts +0 -17
  576. package/src/lib/components/sidebar/sidebar-provider.ts +0 -128
  577. package/src/lib/components/sidebar/sidebar-rail.ts +0 -39
  578. package/src/lib/components/sidebar/sidebar-separator.ts +0 -21
  579. package/src/lib/components/sidebar/sidebar-state.service.ts +0 -33
  580. package/src/lib/components/sidebar/sidebar-trigger.ts +0 -38
  581. package/src/lib/components/sidebar/sidebar.ts +0 -120
  582. package/src/lib/components/signature-pad/README.md +0 -236
  583. package/src/lib/components/signature-pad/index.ts +0 -8
  584. package/src/lib/components/signature-pad/signature-pad-canvas.ts +0 -228
  585. package/src/lib/components/signature-pad/signature-pad-clear-button.ts +0 -48
  586. package/src/lib/components/signature-pad/signature-pad-color-button.ts +0 -50
  587. package/src/lib/components/signature-pad/signature-pad-controls.ts +0 -26
  588. package/src/lib/components/signature-pad/signature-pad-toolbar.ts +0 -25
  589. package/src/lib/components/signature-pad/signature-pad-undo-button.ts +0 -48
  590. package/src/lib/components/signature-pad/signature-pad-width-button.ts +0 -50
  591. package/src/lib/components/signature-pad/signature-pad.ts +0 -97
  592. package/src/lib/components/skeleton/README.md +0 -80
  593. package/src/lib/components/skeleton/index.ts +0 -1
  594. package/src/lib/components/skeleton/skeleton.ts +0 -17
  595. package/src/lib/components/slider/README.md +0 -106
  596. package/src/lib/components/slider/index.ts +0 -4
  597. package/src/lib/components/slider/slider-range.ts +0 -28
  598. package/src/lib/components/slider/slider-thumb.ts +0 -73
  599. package/src/lib/components/slider/slider-track.ts +0 -31
  600. package/src/lib/components/slider/slider.ts +0 -185
  601. package/src/lib/components/sortable-list/README.md +0 -229
  602. package/src/lib/components/sortable-list/index.ts +0 -4
  603. package/src/lib/components/sortable-list/sortable-handle.ts +0 -72
  604. package/src/lib/components/sortable-list/sortable-item.ts +0 -162
  605. package/src/lib/components/sortable-list/sortable-list.ts +0 -127
  606. package/src/lib/components/sortable-list/sortable-overlay.ts +0 -31
  607. package/src/lib/components/speed-dial/README.md +0 -259
  608. package/src/lib/components/speed-dial/index.ts +0 -7
  609. package/src/lib/components/speed-dial/speed-dial-action.ts +0 -99
  610. package/src/lib/components/speed-dial/speed-dial-types.ts +0 -14
  611. package/src/lib/components/speed-dial/speed-dial.ts +0 -224
  612. package/src/lib/components/spinner/README.md +0 -41
  613. package/src/lib/components/spinner/index.ts +0 -1
  614. package/src/lib/components/spinner/spinner.ts +0 -20
  615. package/src/lib/components/split-button/README.md +0 -99
  616. package/src/lib/components/split-button/index.ts +0 -6
  617. package/src/lib/components/split-button/split-button-types.ts +0 -14
  618. package/src/lib/components/split-button/split-button.ts +0 -240
  619. package/src/lib/components/spotlight/README.md +0 -136
  620. package/src/lib/components/spotlight/index.ts +0 -5
  621. package/src/lib/components/spotlight/spotlight-actions.ts +0 -24
  622. package/src/lib/components/spotlight/spotlight-description.ts +0 -24
  623. package/src/lib/components/spotlight/spotlight-title.ts +0 -24
  624. package/src/lib/components/spotlight/spotlight.ts +0 -367
  625. package/src/lib/components/stat-card/README.md +0 -319
  626. package/src/lib/components/stat-card/REFACTORING-COMPLETE.md +0 -250
  627. package/src/lib/components/stat-card/REFACTORING-PLAN.md +0 -471
  628. package/src/lib/components/stat-card/index.ts +0 -11
  629. package/src/lib/components/stat-card/stat-card-change.ts +0 -27
  630. package/src/lib/components/stat-card/stat-card-description.ts +0 -17
  631. package/src/lib/components/stat-card/stat-card-icon.ts +0 -28
  632. package/src/lib/components/stat-card/stat-card-label.ts +0 -27
  633. package/src/lib/components/stat-card/stat-card-types.ts +0 -3
  634. package/src/lib/components/stat-card/stat-card-value.ts +0 -27
  635. package/src/lib/components/stat-card/stat-card.ts +0 -34
  636. package/src/lib/components/stepper/README.md +0 -250
  637. package/src/lib/components/stepper/index.ts +0 -12
  638. package/src/lib/components/stepper/stepper-content.ts +0 -25
  639. package/src/lib/components/stepper/stepper-description.ts +0 -17
  640. package/src/lib/components/stepper/stepper-item.ts +0 -35
  641. package/src/lib/components/stepper/stepper-list.ts +0 -26
  642. package/src/lib/components/stepper/stepper-next.ts +0 -41
  643. package/src/lib/components/stepper/stepper-previous.ts +0 -42
  644. package/src/lib/components/stepper/stepper-separator.ts +0 -35
  645. package/src/lib/components/stepper/stepper-title.ts +0 -17
  646. package/src/lib/components/stepper/stepper-trigger.ts +0 -67
  647. package/src/lib/components/stepper/stepper-types.ts +0 -10
  648. package/src/lib/components/stepper/stepper.ts +0 -46
  649. package/src/lib/components/switch/README.md +0 -99
  650. package/src/lib/components/switch/index.ts +0 -1
  651. package/src/lib/components/switch/switch.ts +0 -56
  652. package/src/lib/components/table/README.md +0 -105
  653. package/src/lib/components/table/index.ts +0 -8
  654. package/src/lib/components/table/table-body.ts +0 -17
  655. package/src/lib/components/table/table-caption.ts +0 -17
  656. package/src/lib/components/table/table-cell.ts +0 -17
  657. package/src/lib/components/table/table-footer.ts +0 -20
  658. package/src/lib/components/table/table-header-cell.ts +0 -20
  659. package/src/lib/components/table/table-header.ts +0 -17
  660. package/src/lib/components/table/table-row.ts +0 -20
  661. package/src/lib/components/table/table.ts +0 -17
  662. package/src/lib/components/tabs/README.md +0 -169
  663. package/src/lib/components/tabs/index.ts +0 -4
  664. package/src/lib/components/tabs/tab-list.ts +0 -38
  665. package/src/lib/components/tabs/tab-panel.ts +0 -45
  666. package/src/lib/components/tabs/tab.ts +0 -45
  667. package/src/lib/components/tabs/tabs.ts +0 -28
  668. package/src/lib/components/tag-input/README.md +0 -271
  669. package/src/lib/components/tag-input/index.ts +0 -5
  670. package/src/lib/components/tag-input/tag-input-clear.ts +0 -60
  671. package/src/lib/components/tag-input/tag-input-count.ts +0 -42
  672. package/src/lib/components/tag-input/tag-input-field.ts +0 -121
  673. package/src/lib/components/tag-input/tag-input-tag.ts +0 -70
  674. package/src/lib/components/tag-input/tag-input.ts +0 -118
  675. package/src/lib/components/textarea/README.md +0 -80
  676. package/src/lib/components/textarea/index.ts +0 -1
  677. package/src/lib/components/textarea/textarea.ts +0 -41
  678. package/src/lib/components/theme-toggle/README.md +0 -258
  679. package/src/lib/components/theme-toggle/index.ts +0 -4
  680. package/src/lib/components/theme-toggle/theme-field.ts +0 -40
  681. package/src/lib/components/theme-toggle/theme-select.ts +0 -56
  682. package/src/lib/components/theme-toggle/theme-toggle.ts +0 -76
  683. package/src/lib/components/theme-toggle/theme.service.ts +0 -81
  684. package/src/lib/components/time-picker/README.md +0 -188
  685. package/src/lib/components/time-picker/index.ts +0 -5
  686. package/src/lib/components/time-picker/time-picker-clock.ts +0 -195
  687. package/src/lib/components/time-picker/time-picker-input.ts +0 -174
  688. package/src/lib/components/time-picker/time-picker-period.ts +0 -89
  689. package/src/lib/components/time-picker/time-picker-separator.ts +0 -20
  690. package/src/lib/components/time-picker/time-picker.ts +0 -87
  691. package/src/lib/components/timeline/README.md +0 -177
  692. package/src/lib/components/timeline/index.ts +0 -8
  693. package/src/lib/components/timeline/timeline-connector.ts +0 -29
  694. package/src/lib/components/timeline/timeline-content.ts +0 -26
  695. package/src/lib/components/timeline/timeline-description.ts +0 -17
  696. package/src/lib/components/timeline/timeline-dot.ts +0 -45
  697. package/src/lib/components/timeline/timeline-item.ts +0 -28
  698. package/src/lib/components/timeline/timeline-time.ts +0 -17
  699. package/src/lib/components/timeline/timeline-title.ts +0 -17
  700. package/src/lib/components/timeline/timeline.ts +0 -17
  701. package/src/lib/components/timezone/index.ts +0 -5
  702. package/src/lib/components/timezone/timezone-badge.ts +0 -85
  703. package/src/lib/components/timezone/timezone-button.ts +0 -104
  704. package/src/lib/components/timezone/timezone-display.ts +0 -105
  705. package/src/lib/components/timezone/timezone-select.ts +0 -87
  706. package/src/lib/components/timezone/timezone.service.ts +0 -233
  707. package/src/lib/components/toast/README.md +0 -151
  708. package/src/lib/components/toast/index.ts +0 -8
  709. package/src/lib/components/toast/toast-action.ts +0 -27
  710. package/src/lib/components/toast/toast-close.ts +0 -29
  711. package/src/lib/components/toast/toast-description.ts +0 -17
  712. package/src/lib/components/toast/toast-stack.ts +0 -95
  713. package/src/lib/components/toast/toast-title.ts +0 -17
  714. package/src/lib/components/toast/toast.ts +0 -64
  715. package/src/lib/components/toast/toast.types.ts +0 -24
  716. package/src/lib/components/toast/toaster.ts +0 -67
  717. package/src/lib/components/toggle/README.md +0 -72
  718. package/src/lib/components/toggle/index.ts +0 -1
  719. package/src/lib/components/toggle/toggle.ts +0 -53
  720. package/src/lib/components/toggle-group/README.md +0 -101
  721. package/src/lib/components/toggle-group/index.ts +0 -2
  722. package/src/lib/components/toggle-group/toggle-group-item.ts +0 -62
  723. package/src/lib/components/toggle-group/toggle-group.ts +0 -53
  724. package/src/lib/components/toolbar/README.md +0 -76
  725. package/src/lib/components/toolbar/index.ts +0 -4
  726. package/src/lib/components/toolbar/toolbar-separator.ts +0 -32
  727. package/src/lib/components/toolbar/toolbar-widget-group.ts +0 -35
  728. package/src/lib/components/toolbar/toolbar-widget.ts +0 -48
  729. package/src/lib/components/toolbar/toolbar.ts +0 -44
  730. package/src/lib/components/tooltip/ANIMATIONS.md +0 -274
  731. package/src/lib/components/tooltip/README.md +0 -100
  732. package/src/lib/components/tooltip/index.ts +0 -3
  733. package/src/lib/components/tooltip/tooltip-manager.ts +0 -194
  734. package/src/lib/components/tooltip/tooltip-trigger.ts +0 -148
  735. package/src/lib/components/tooltip/tooltip.ts +0 -72
  736. package/src/lib/components/tour-guide/README.md +0 -158
  737. package/src/lib/components/tour-guide/index.ts +0 -2
  738. package/src/lib/components/tour-guide/tour-guide.ts +0 -492
  739. package/src/lib/components/transfer-list/README.md +0 -98
  740. package/src/lib/components/transfer-list/index.ts +0 -5
  741. package/src/lib/components/transfer-list/transfer-list-types.ts +0 -11
  742. package/src/lib/components/transfer-list/transfer-list.ts +0 -434
  743. package/src/lib/components/tree/README.md +0 -358
  744. package/src/lib/components/tree/TODO.md +0 -94
  745. package/src/lib/components/tree/index.ts +0 -6
  746. package/src/lib/components/tree/tree-item-group.ts +0 -40
  747. package/src/lib/components/tree/tree-item-icon.ts +0 -17
  748. package/src/lib/components/tree/tree-item-trigger-icon.ts +0 -26
  749. package/src/lib/components/tree/tree-item-trigger.ts +0 -51
  750. package/src/lib/components/tree/tree-item.ts +0 -64
  751. package/src/lib/components/tree/tree.ts +0 -21
  752. package/src/lib/components/video-player/README.md +0 -275
  753. package/src/lib/components/video-player/index.ts +0 -14
  754. package/src/lib/components/video-player/video-player-big-play-button.ts +0 -35
  755. package/src/lib/components/video-player/video-player-buffering.ts +0 -36
  756. package/src/lib/components/video-player/video-player-controls.ts +0 -28
  757. package/src/lib/components/video-player/video-player-fullscreen-button.ts +0 -38
  758. package/src/lib/components/video-player/video-player-pip-button.ts +0 -37
  759. package/src/lib/components/video-player/video-player-play-button.ts +0 -37
  760. package/src/lib/components/video-player/video-player-progress.ts +0 -56
  761. package/src/lib/components/video-player/video-player-skip-button.ts +0 -44
  762. package/src/lib/components/video-player/video-player-speed-button.ts +0 -74
  763. package/src/lib/components/video-player/video-player-time.ts +0 -31
  764. package/src/lib/components/video-player/video-player-types.ts +0 -13
  765. package/src/lib/components/video-player/video-player-video.ts +0 -127
  766. package/src/lib/components/video-player/video-player-volume.ts +0 -61
  767. package/src/lib/components/video-player/video-player.ts +0 -139
  768. package/src/lib/components/virtual-list/README.md +0 -120
  769. package/src/lib/components/virtual-list/index.ts +0 -2
  770. package/src/lib/components/virtual-list/virtual-list-types.ts +0 -9
  771. package/src/lib/components/virtual-list/virtual-list.ts +0 -174
  772. package/src/lib/layouts/auth-layout.ts +0 -30
  773. package/src/lib/layouts/index.ts +0 -3
  774. package/src/lib/layouts/sidebar-layout.ts +0 -37
  775. package/src/lib/layouts/stacked-layout/README.md +0 -84
  776. package/src/lib/layouts/stacked-layout/index.ts +0 -1
  777. package/src/lib/layouts/stacked-layout/stacked-layout.ts +0 -39
  778. package/tsconfig.json +0 -28
  779. package/tsconfig.lib.json +0 -12
  780. package/tsconfig.lib.prod.json +0 -9
@@ -1,808 +0,0 @@
1
- # Alert Dialog Architecture
2
-
3
- ## Overview
4
-
5
- The alert-dialog component uses a multi-signal architecture pattern to ensure smooth, complete animations before DOM cleanup. This document focuses on how animations are coordinated across the dialog content and backdrop using a signal counter to track completion of both animations.
6
-
7
- ## Component Structure
8
-
9
- ```
10
- ScAlertDialogProvider (Root State Manager + CDK Overlay Manager)
11
- ├── ScAlertDialogTrigger (Opens dialog)
12
- └── ng-template[scAlertDialogPortal] (Lazy content, portaled to CDK overlay)
13
-
14
- Inside CDK Overlay (managed by Provider):
15
- ├── CDK Backdrop (Transparent - click blocking only)
16
- ├── ScBackdrop (Visual backdrop with animations)
17
- └── ScAlertDialog (Dialog Content)
18
- ├── ScAlertDialogHeader
19
- │ ├── ScAlertDialogMedia (Optional)
20
- │ └── ScAlertDialogTitle
21
- │ └── ScAlertDialogDescription
22
- └── ScAlertDialogFooter
23
- ├── ScAlertDialogCancel
24
- └── ScAlertDialogAction
25
- ```
26
-
27
- ### ScAlertDialogPortal Directive
28
-
29
- `ScAlertDialogPortal` is a structural directive on `ng-template` that marks the lazy content to be portaled into the CDK overlay. It holds a reference to the `TemplateRef` which the provider reads via `contentChild`.
30
-
31
- ```typescript
32
- @Directive({
33
- selector: 'ng-template[scAlertDialogPortal]',
34
- })
35
- export class ScAlertDialogPortal {
36
- readonly templateRef = inject(TemplateRef);
37
- }
38
- ```
39
-
40
- The provider queries it and projects the template into the overlay:
41
-
42
- ```typescript
43
- // In ScAlertDialogProvider
44
- protected readonly alertDialogPortal = contentChild.required(ScAlertDialogPortal);
45
-
46
- // In provider's overlay template
47
- <ng-container [ngTemplateOutlet]="alertDialogPortal().templateRef" />
48
- ```
49
-
50
- ### Why a Directive?
51
-
52
- - **Explicit**: A bare `<ng-template>` is ambiguous; `scAlertDialogPortal` communicates intent
53
- - **Lazy**: Content inside `ng-template` is not instantiated until the provider stamps it
54
- - **Provider owns lifecycle**: The provider decides _when_ to stamp the template (on open)
55
- - **DI preserved**: Using `TemplatePortal(overlayTemplate, viewContainerRef)` with the provider's own `ViewContainerRef` keeps the injector chain intact — `ScAlertDialog` can inject `ScAlertDialogProvider`
56
-
57
- ## The Multi-Signal Pattern
58
-
59
- The core of the animation architecture is the separation of **logical state** from **physical state**, with a **coordination signal** to track animation completions.
60
-
61
- ### Signal 1: `open` (Logical State)
62
-
63
- **Purpose:** Controls what the dialog _should_ be doing
64
-
65
- ```typescript
66
- // In ScAlertDialogProvider
67
- readonly open = model<boolean>(false);
68
- ```
69
-
70
- **Responsibilities:**
71
-
72
- - Represents user intent ("should the dialog be visible?")
73
- - Triggers animation state changes
74
- - When `true`: Triggers entry animations
75
- - When `false`: Triggers exit animations
76
-
77
- ### Signal 2: `overlayOpen` (Physical State)
78
-
79
- **Purpose:** Controls whether DOM exists
80
-
81
- ```typescript
82
- // In ScAlertDialogProvider
83
- readonly overlayOpen = signal<boolean>(false);
84
- ```
85
-
86
- **Responsibilities:**
87
-
88
- - Controls CDK overlay attachment/detachment
89
- - Stays `true` during close animations (critical!)
90
- - Only becomes `false` after animations complete
91
- - Ensures animations can play before DOM removal
92
-
93
- ### Signal 3: `animationsCompleted` (Animation Coordination)
94
-
95
- **Purpose:** Tracks completion of multiple animations
96
-
97
- ```typescript
98
- // In ScAlertDialogProvider (private)
99
- private readonly animationsCompleted = signal<number>(0);
100
- ```
101
-
102
- **Responsibilities:**
103
-
104
- - Counts completed animations during close sequence
105
- - Target count: 2 (dialog + backdrop)
106
- - Resets to 0 when opening (for next cycle)
107
- - Triggers overlay closure when target reached
108
-
109
- ### Why Both Are Needed
110
-
111
- **The Problem:**
112
-
113
- CDK overlay's lifecycle is tied to DOM presence:
114
-
115
- ```typescript
116
- // ❌ This doesn't work:
117
- if (open()) {
118
- overlayRef.attach(portal); // DOM mounted
119
- } else {
120
- overlayRef.detach(); // DOM removed IMMEDIATELY
121
- // Animation never plays - element is gone!
122
- }
123
- ```
124
-
125
- **The Solution:**
126
-
127
- Separate signals allow animation completion:
128
-
129
- ```typescript
130
- // ✅ This works:
131
- if (overlayOpen()) {
132
- // Physical state
133
- overlayRef.attach(portal); // DOM mounted
134
- } else {
135
- overlayRef.detach(); // DOM removed AFTER animations
136
- }
137
-
138
- // Meanwhile, open() controls animations:
139
- if (open()) {
140
- // Logical state
141
- state = 'open'; // Entry animation
142
- } else {
143
- state = 'closed'; // Exit animation (DOM still mounted!)
144
- }
145
- ```
146
-
147
- ## Animation Architecture
148
-
149
- ### Three Layers (Separated by Concern)
150
-
151
- 1. **CDK Backdrop** (Transparent - No Animation)
152
- - Class: `cdk-overlay-transparent-backdrop`
153
- - Purpose: Click blocking and scroll prevention
154
- - Functional layer only, no visual styling
155
- - Note: No `backdropClick` handler — alert dialog requires explicit dismissal
156
-
157
- 2. **ScBackdrop Component** (100ms fade animation)
158
- - Reusable component from `components/backdrop`
159
- - Three-state model (`idle` / `open` / `closed`) with `data-idle`, `data-open`, `data-closed` attributes
160
- - Fade effect via Tailwind animate classes
161
- - Positioned with `fixed inset-0 -z-50` (behind dialog, behind CDK overlay)
162
- - Emits `animationComplete` output when close animation finishes
163
-
164
- 3. **Dialog Content Animation** (100ms)
165
- - Zoom + Fade effects
166
- - Three-state model (`idle` / `open` / `closed`) with `data-idle`, `data-open`, `data-closed` attributes
167
- - Managed by Tailwind animate classes
168
- - Completion detected via `animationend` event (triggers cleanup)
169
-
170
- ### Synchronization
171
-
172
- Both ScBackdrop and Dialog animations:
173
-
174
- - Start simultaneously when `open` changes
175
- - Use same duration (100ms)
176
- - Use same three-state model (`idle` → `open` → `closed` → `idle`)
177
- - Inside same overlay (removed together)
178
-
179
- ### Dialog Three-State Model
180
-
181
- The dialog uses three states to prevent a flash of content on first render:
182
-
183
- ```typescript
184
- type ScAlertDialogState = 'idle' | 'open' | 'closed';
185
- ```
186
-
187
- | State | Data Attribute | Purpose |
188
- | -------- | -------------- | -------------------------------------------------------- |
189
- | `idle` | `data-idle` | Hidden (`opacity-0`), resting state |
190
- | `open` | `data-open` | Entry animation (`fade-in`, `zoom-in`) |
191
- | `closed` | `data-closed` | Exit animation (`fade-out`, `zoom-out`) → back to `idle` |
192
-
193
- Flow: `idle` → `open` → `closed` → `idle`
194
-
195
- ### Dialog Content Animations
196
-
197
- Applied via Tailwind classes in `alert-dialog.ts`:
198
-
199
- ```typescript
200
- protected readonly class = computed(() =>
201
- cn(
202
- // Idle state: hidden
203
- 'data-idle:opacity-0',
204
-
205
- // Entry animation (triggered by data-open)
206
- 'data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95',
207
-
208
- // Exit animation (triggered by data-closed)
209
- 'data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95',
210
-
211
- // Base styles
212
- 'bg-background ring-foreground/10 grid max-w-sm gap-4 rounded-xl p-4 text-sm ring-1 duration-100 ...',
213
- ),
214
- );
215
- ```
216
-
217
- **Animation Flow:**
218
-
219
- 1. `state` signal changes from `'idle'` to `'open'`
220
- 2. `data-open` attribute set → entry animation starts
221
- 3. User clicks cancel/action → `state` changes to `'closed'`
222
- 4. `data-closed` attribute set → exit animation starts
223
- 5. `animationend` event fires → `state` resets to `'idle'` (`opacity-0`)
224
-
225
- ### ScBackdrop Component Animations
226
-
227
- Managed via ScBackdrop component from `components/backdrop`. Uses the same three-state model as the dialog:
228
-
229
- ```typescript
230
- // In backdrop.ts
231
- type ScBackdropState = 'idle' | 'open' | 'closed';
232
-
233
- protected readonly class = computed(() =>
234
- cn(
235
- 'pointer-events-none fixed inset-0 -z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs',
236
- 'data-idle:opacity-0',
237
- 'data-open:animate-in data-open:fade-in-0',
238
- 'data-closed:animate-out data-closed:fade-out-0',
239
- this.classInput(),
240
- ),
241
- );
242
- ```
243
-
244
- **Animation Flow:**
245
-
246
- 1. Provider renders: `<div sc-backdrop [open]="open()" (animationComplete)="onBackdropAnimationComplete()"></div>`
247
- 2. ScBackdrop receives `open` input
248
- 3. Effect sets `state` to `'open'` or `'closed'` based on `open` value
249
- 4. Data attribute (`data-open` / `data-closed`) triggers Tailwind animation classes
250
- 5. Animation plays for 100ms
251
- 6. On `animationend`, if closing: state resets to `'idle'` (hidden), emits `animationComplete` output
252
- 7. Provider handles the event directly for coordination
253
-
254
- **Why Separate Component?**
255
-
256
- - Reusable across dialog, drawer, sheet, alert-dialog, etc.
257
- - Consistent animation pattern
258
- - Single responsibility (visual layer only)
259
- - CDK backdrop handles functionality separately
260
-
261
- ## Complete Animation Timeline
262
-
263
- ### Opening Sequence
264
-
265
- ```
266
- User clicks trigger:
267
-
268
- ├─ t=0ms: Trigger calls open.set(true)
269
- │ │
270
- │ ├─ Provider effect 1:
271
- │ │ ├─ overlayOpen.set(true) ← Mount DOM immediately
272
- │ │ └─ animationsCompleted.set(0) ← Reset for next cycle
273
- │ │
274
- │ └─ Provider effect 3 (triggered by overlayOpen):
275
- │ └─ attachDialog() ← CDK overlay attached
276
- │ └─ TemplatePortal(overlayTemplate, viewContainerRef)
277
- │ ├─ ScBackdrop rendered with [open]="open()"
278
- │ └─ ng-template outlet stamps scAlertDialogPortal content
279
-
280
- ├─ t=0ms: CDK adds .cdk-overlay-backdrop-showing
281
- │ └─ Backdrop: state → 'open' (data-open set, 100ms fade-in)
282
-
283
- ├─ t=0ms: Dialog effect (triggered by open):
284
- │ └─ state.set('open')
285
- │ └─ data-open set → Entry animation starts
286
- │ ├─ fade-in-0
287
- │ ├─ zoom-in-95
288
- │ └─ duration-100
289
-
290
- ├─ t=0-100ms: Both animations play
291
-
292
- └─ t=100ms: Animations complete, dialog visible
293
- ```
294
-
295
- ### Closing Sequence (Coordinated Completion)
296
-
297
- ```
298
- User clicks cancel/action button:
299
-
300
- ├─ t=0ms: Button calls open.set(false)
301
- │ │
302
- │ ├─ Dialog effect (triggered by open):
303
- │ │ └─ state.set('closed') ← Triggers animation
304
- │ │ └─ data-closed set → Exit animation starts
305
- │ │ ├─ animate-out
306
- │ │ ├─ fade-out-0
307
- │ │ └─ zoom-out-95
308
- │ │
309
- │ └─ Backdrop receives [open]="false" input:
310
- │ └─ state.set('closed') ← Triggers backdrop animation
311
- │ └─ data-closed set → Backdrop fade-out
312
-
313
- ├─ IMPORTANT: overlayOpen is STILL true!
314
- │ └─ DOM remains mounted so animations can play
315
- │ └─ animationsCompleted = 0 (waiting for both)
316
-
317
- ├─ t=0-100ms: Both animations play simultaneously
318
-
319
- ├─ t=~100ms: Dialog animation completes
320
- │ └─ onAnimationEnd(event) fires
321
- │ └─ if (state === 'closed' && target === element):
322
- │ ├─ state.set('idle') ← Reset to hidden resting state
323
- │ └─ provider.onDialogAnimationComplete()
324
- │ └─ animationsCompleted.update(n => n + 1) ← Count = 1
325
-
326
- ├─ t=~100ms: Backdrop animation completes
327
- │ └─ backdrop emits (animationComplete)
328
- │ └─ provider.onBackdropAnimationComplete()
329
- │ └─ animationsCompleted.update(n => n + 1) ← Count = 2
330
-
331
- ├─ Provider effect 2 detects: animationsCompleted === 2 && !open()
332
- │ └─ overlayOpen.set(false) ← Cleanup triggered!
333
- │ └─ animationsCompleted.set(0) ← Reset for next cycle
334
-
335
- └─ t=~100ms: Provider effect 3 (triggered by overlayOpen):
336
- └─ detachDialog() ← DOM removed cleanly after BOTH complete
337
- ```
338
-
339
- ## Why Track Both Animations?
340
-
341
- **Question:** Why coordinate two separate animations instead of using a single timer?
342
-
343
- **Answer:** Explicit animation tracking is more robust and event-driven:
344
-
345
- ### The Problem with Single Timers
346
-
347
- ```typescript
348
- // ❌ Old approach - assumes both animations finish together
349
- onDialogAnimationComplete(): void {
350
- setTimeout(() => {
351
- this.overlayOpen.set(false);
352
- }, 100); // Hope backdrop finishes too!
353
- }
354
- ```
355
-
356
- **Issues:**
357
-
358
- - Assumes backdrop takes exactly 100ms
359
- - Browser rendering variations can cause timing differences
360
- - Backdrop might take 105ms, getting cut off at 100ms
361
- - No way to know if backdrop actually completed
362
- - Might wait longer than necessary if backdrop finishes early
363
-
364
- ### The Solution: Signal Counter Pattern
365
-
366
- ```typescript
367
- // ✅ New approach - explicitly track both completions
368
- private readonly animationsCompleted = signal<number>(0);
369
-
370
- onDialogAnimationComplete(): void {
371
- this.animationsCompleted.update(n => n + 1); // Count = 1
372
- }
373
-
374
- onBackdropAnimationComplete(): void {
375
- this.animationsCompleted.update(n => n + 1); // Count = 2
376
- }
377
-
378
- effect(() => {
379
- if (this.animationsCompleted() === 2 && !this.open()) {
380
- this.overlayOpen.set(false); // Both confirmed complete!
381
- }
382
- });
383
- ```
384
-
385
- **Benefits:**
386
-
387
- 1. **Event-driven**: Waits for actual completion, not estimated time
388
- 2. **Robust**: Handles browser timing variations (100ms vs 105ms)
389
- 3. **Accurate**: Both animations explicitly signal completion
390
- 4. **Extensible**: Easy to add more animations (just increase target count)
391
- 5. **No race conditions**: Counter resets on open for clean cycles
392
-
393
- ## State Synchronization
394
-
395
- ### Provider Constructor Effects
396
-
397
- ```typescript
398
- constructor() {
399
- // Effect 1: Sync overlayOpen with open for OPENING
400
- effect(() => {
401
- if (this.open()) {
402
- // Opening: Mount DOM immediately
403
- this.overlayOpen.set(true);
404
- // Reset counter for next close cycle
405
- this.animationsCompleted.set(0);
406
- }
407
- // Note: When closing, overlayOpen stays true!
408
- // It will be set to false by the coordination effect below
409
- });
410
-
411
- // Effect 2: Close overlay when both animations complete
412
- effect(() => {
413
- const completed = this.animationsCompleted();
414
- if (completed === 2 && !this.open()) {
415
- // Both animations confirmed complete
416
- this.overlayOpen.set(false);
417
- // Reset for next cycle
418
- this.animationsCompleted.set(0);
419
- }
420
- });
421
-
422
- // Effect 3: Attach/detach CDK overlay based on overlayOpen
423
- effect(() => {
424
- if (this.overlayOpen()) {
425
- this.attachDialog();
426
- } else {
427
- this.detachDialog();
428
- }
429
- });
430
- }
431
- ```
432
-
433
- ### Provider Overlay Template
434
-
435
- The provider's template includes the backdrop and focus trap, projecting the consumer's `scAlertDialogPortal` template via `ngTemplateOutlet`:
436
-
437
- ```html
438
- <ng-content />
439
- <ng-template #overlayTemplate>
440
- <div sc-backdrop [open]="open()" (animationComplete)="onBackdropAnimationComplete()"></div>
441
- <div cdkTrapFocus [cdkTrapFocusAutoCapture]="true">
442
- <ng-container [ngTemplateOutlet]="alertDialogPortal().templateRef" />
443
- </div>
444
- </ng-template>
445
- ```
446
-
447
- Note: Unlike the Dialog provider, there are no `backdropClick` or `keydownEvents` handlers. An alert dialog requires the user to explicitly choose an action (Cancel or Action) to dismiss it.
448
-
449
- ### Dialog Constructor Effects
450
-
451
- ```typescript
452
- constructor() {
453
- // Effect: Sync animation state with logical state
454
- effect(() => {
455
- const isOpen = this.alertDialogProvider.open();
456
- this.state.set(isOpen ? 'open' : 'closed');
457
- });
458
- }
459
- ```
460
-
461
- ## Animation Completion Handling
462
-
463
- ### Dialog Component
464
-
465
- ```typescript
466
- protected onAnimationEnd(event: AnimationEvent): void {
467
- // Only trigger cleanup when close animation completes
468
- if (
469
- this.state() === 'closed' &&
470
- event.target === this.elementRef.nativeElement
471
- ) {
472
- this.state.set('idle'); // Reset to hidden resting state
473
- this.alertDialogProvider.onDialogAnimationComplete();
474
- }
475
- }
476
- ```
477
-
478
- **Why check `event.target`?**
479
-
480
- - `animationend` bubbles from child elements
481
- - We only care about the dialog's own animation
482
- - Prevents false triggers from child element animations
483
-
484
- ### Provider Component
485
-
486
- The provider directly handles backdrop animation completion in its template — no intermediary needed:
487
-
488
- ```html
489
- <!-- In provider's overlay template -->
490
- <div sc-backdrop [open]="open()" (animationComplete)="onBackdropAnimationComplete()"></div>
491
- ```
492
-
493
- ```typescript
494
- // In ScAlertDialogProvider
495
- onDialogAnimationComplete(): void {
496
- if (!this.open()) {
497
- this.animationsCompleted.update(n => n + 1);
498
- }
499
- }
500
-
501
- onBackdropAnimationComplete(): void {
502
- if (!this.open()) {
503
- this.animationsCompleted.update(n => n + 1);
504
- }
505
- }
506
- ```
507
-
508
- **Why check `!this.open()` before incrementing?**
509
-
510
- - User might have reopened dialog during close animation
511
- - Prevents counter from incrementing during new open cycle
512
- - Guards against race conditions
513
- - Example: User clicks cancel (close starts), then immediately clicks trigger again (reopens)
514
- - Without this check, the counter would incorrectly increment for the new cycle
515
-
516
- **Why use `update()` instead of `set()`?**
517
-
518
- - Increment is relative to current value
519
- - Safe if multiple updates happen
520
- - Immutable update pattern
521
- - Consistent with Angular signals best practices
522
-
523
- ## Comparison: Evolution of Animation Coordination
524
-
525
- ### Approach 1: Single Timer (Previous Implementation)
526
-
527
- ```typescript
528
- // ❌ Problems:
529
- private async detachDialogWithAnimation() {
530
- if (this.overlayRef.hasAttached()) {
531
- const backdrop = this.overlayRef.backdropElement;
532
- backdrop?.classList.add('sc-backdrop-hiding');
533
-
534
- // Wait arbitrary time
535
- await firstValueFrom(timer(100));
536
-
537
- this.overlayRef.detach(); // Might cut off dialog animation!
538
- }
539
- }
540
- ```
541
-
542
- **Issues:**
543
-
544
- 1. Single hardcoded timer for all animations
545
- 2. No detection of actual animation completion
546
- 3. Dialog animation might take longer or shorter
547
- 4. Not coordinated with dialog state
548
- 5. No way to cancel if reopened
549
-
550
- ### Approach 2: Signal Counter (Current Implementation)
551
-
552
- ```typescript
553
- // ✅ Both animations explicitly tracked:
554
- private readonly animationsCompleted = signal<number>(0);
555
-
556
- constructor() {
557
- // Effect 1: Open and reset
558
- effect(() => {
559
- if (this.open()) {
560
- this.overlayOpen.set(true);
561
- this.animationsCompleted.set(0);
562
- }
563
- });
564
-
565
- // Effect 2: Close when both complete
566
- effect(() => {
567
- if (this.animationsCompleted() === 2 && !this.open()) {
568
- this.overlayOpen.set(false);
569
- this.animationsCompleted.set(0);
570
- }
571
- });
572
-
573
- // Effect 3: Attach/detach CDK overlay
574
- effect(() => {
575
- if (this.overlayOpen()) {
576
- this.attachDialog();
577
- } else {
578
- this.detachDialog();
579
- }
580
- });
581
- }
582
-
583
- // Both animations signal completion
584
- onDialogAnimationComplete(): void {
585
- if (!this.open()) {
586
- this.animationsCompleted.update(n => n + 1);
587
- }
588
- }
589
-
590
- onBackdropAnimationComplete(): void {
591
- if (!this.open()) {
592
- this.animationsCompleted.update(n => n + 1);
593
- }
594
- }
595
- ```
596
-
597
- **Improvements:**
598
-
599
- 1. Both animations event-driven
600
- 2. No timing assumptions
601
- 3. Handles browser rendering variations
602
- 4. Explicit completion signals
603
- 5. Extensible (easy to add more animations)
604
- 6. Signal-based reactivity
605
- 7. Clean cycle management
606
-
607
- ## Key Design Decisions
608
-
609
- ### 1. Provider Owns Everything
610
-
611
- **Decision:** `ScAlertDialogProvider` manages state, overlay lifecycle, backdrop, and focus trap
612
-
613
- **Why:**
614
-
615
- - Provider controls _when_ content appears (open state)
616
- - Provider controls _where_ content appears (CDK overlay)
617
- - Single component owns the full lifecycle — no coordination between sibling components
618
- - `ScAlertDialogPortal` directive just marks _what_ content to portal — no logic
619
-
620
- ### 2. `display: contents` on Provider
621
-
622
- **Decision:** Provider uses `display: contents` to be invisible to CSS layout
623
-
624
- **Why:**
625
-
626
- - Provider is a `<div>` (required for CDK overlay's `ViewContainerRef`)
627
- - But it shouldn't affect the consumer's layout
628
- - `display: contents` makes the element's box disappear while keeping children in flow
629
- - Consumer can place trigger and other content without layout interference
630
-
631
- ### 3. No Backdrop Click / Escape Handlers
632
-
633
- **Decision:** Alert dialog does not close on backdrop click or Escape key
634
-
635
- **Why:**
636
-
637
- - Alert dialogs require explicit user action (Cancel or Action button)
638
- - This follows WAI-ARIA alert dialog best practices
639
- - Prevents accidental dismissal of critical confirmations
640
- - Unlike `ScDialogProvider`, the provider does not subscribe to `overlayRef.backdropClick()` or `overlayRef.keydownEvents()`
641
-
642
- ### 4. Separation of Logical and Physical State
643
-
644
- **Decision:** Split logical state (`open`) from physical state (`overlayOpen`)
645
-
646
- **Why:**
647
-
648
- - Logical state drives animations
649
- - Physical state drives DOM lifecycle
650
- - Animations need time to complete before DOM removal
651
- - Clean separation makes flow easier to understand
652
-
653
- ### 5. Signal Counter Pattern
654
-
655
- **Decision:** Use signal counter to track multiple animation completions
656
-
657
- **Why:**
658
-
659
- - Both animations explicitly signal completion
660
- - No timing assumptions or hardcoded delays
661
- - Reactive: effect triggers when counter reaches target
662
- - Extensible: easy to add more animations (increase target)
663
- - Debuggable: counter value visible in Angular DevTools
664
-
665
- ### 6. Event-Driven Completion
666
-
667
- **Decision:** Both dialog and backdrop emit completion events
668
-
669
- **Why:**
670
-
671
- - Precise: no guessing when animations finish
672
- - Robust: handles browser timing variations
673
- - Decoupled: backdrop component remains reusable
674
- - No arbitrary timeouts or magic numbers
675
-
676
- ### 7. Guard Pattern for Counter Increments
677
-
678
- **Decision:** Check `!open()` before incrementing animation counter
679
-
680
- **Why:**
681
-
682
- - Prevents counter increments during new open cycle
683
- - User might reopen during close animation
684
- - Without guard, counter would increment incorrectly for new cycle
685
- - Example: Close starts → dialog completes → user reopens → backdrop completes would incorrectly increment counter for new open
686
- - Effect checks both counter AND `!open()` for safety
687
-
688
- ### 8. Effect-Based Reactivity
689
-
690
- **Decision:** Use Angular effects instead of manual subscriptions
691
-
692
- **Why:**
693
-
694
- - Automatic cleanup on component destruction
695
- - Declarative: describes "what" not "how"
696
- - Runs automatically when dependencies change
697
- - Easier to reason about than imperative code
698
-
699
- ## Animation Classes Reference
700
-
701
- ### Dialog Content Classes
702
-
703
- ```typescript
704
- // Idle state (hidden)
705
- 'data-idle:opacity-0';
706
-
707
- // Entry animation (via data-open)
708
- 'data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95';
709
-
710
- // Exit animation (via data-closed)
711
- 'data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95';
712
- ```
713
-
714
- ### Backdrop Classes
715
-
716
- ```typescript
717
- // Idle state (hidden)
718
- 'data-idle:opacity-0';
719
-
720
- // Entry animation (via data-open)
721
- 'data-open:animate-in data-open:fade-in-0';
722
-
723
- // Exit animation (via data-closed)
724
- 'data-closed:animate-out data-closed:fade-out-0';
725
- ```
726
-
727
- ## Accessibility Considerations
728
-
729
- The animation system preserves accessibility:
730
-
731
- 1. **Focus Management:** Dialog auto-focuses on mount via `cdkTrapFocus` with `cdkTrapFocusAutoCapture`
732
- 2. **ARIA Attributes:** Set before animations start (`role="alertdialog"`, `aria-modal="true"`)
733
- 3. **Screen Readers:** Announce dialog immediately (not after animation)
734
- 4. **No Escape Dismiss:** Escape key does NOT close the alert dialog — user must choose an action
735
- 5. **No Backdrop Dismiss:** Clicking outside does NOT close the alert dialog — user must choose an action
736
- 6. **Reduced Motion:** Could add `@media (prefers-reduced-motion)` support
737
-
738
- ## Performance Considerations
739
-
740
- ### Efficient Rendering
741
-
742
- - Uses `ChangeDetectionStrategy.OnPush` everywhere
743
- - Effects only run when dependencies change
744
- - No manual subscriptions to manage
745
- - Single overlay instance reused
746
-
747
- ### Animation Performance
748
-
749
- - CSS animations (GPU accelerated)
750
- - Opacity and transform (composited properties)
751
- - No layout thrashing
752
- - Minimal JavaScript during animation
753
-
754
- ### Memory Management
755
-
756
- - Effects auto-cleanup on destroy
757
- - No timeout leaks (event-driven approach)
758
- - Overlay detached after use
759
- - No memory leaks
760
-
761
- ## Consumer API
762
-
763
- ```html
764
- <div sc-alert-dialog-provider [(open)]="isOpen">
765
- <button sc-alert-dialog-trigger sc-button>Delete</button>
766
- <ng-template scAlertDialogPortal>
767
- <div sc-alert-dialog>
768
- <div sc-alert-dialog-header>
769
- <h2 sc-alert-dialog-title>Are you sure?</h2>
770
- <p sc-alert-dialog-description>This action cannot be undone.</p>
771
- </div>
772
- <div sc-alert-dialog-footer>
773
- <button sc-alert-dialog-cancel sc-button>Cancel</button>
774
- <button sc-alert-dialog-action sc-button>Continue</button>
775
- </div>
776
- </div>
777
- </ng-template>
778
- </div>
779
- ```
780
-
781
- **Key points:**
782
-
783
- - `scAlertDialogPortal` on `ng-template` marks lazy content
784
- - Content is only instantiated when dialog opens
785
- - `ScAlertDialogPortal` must be imported in the consumer's `imports` array
786
- - `[(open)]` provides two-way binding for programmatic control
787
- - No close button, escape, or backdrop click — user must choose Cancel or Action
788
-
789
- ## Summary
790
-
791
- The alert-dialog animation architecture achieves smooth, reliable animations through:
792
-
793
- 1. **Two-signal pattern:** Separates intent (`open`) from DOM lifecycle (`overlayOpen`)
794
- 2. **Signal counter coordination:** Tracks completion of multiple animations (`animationsCompleted`)
795
- 3. **Event-driven completion:** Both dialog and backdrop explicitly signal when done
796
- 4. **Reactive updates:** Effects respond to state changes automatically
797
- 5. **Robust timing:** No assumptions, handles browser variations
798
- 6. **Centralized ownership:** Provider owns all lifecycle logic; portal directive is just a content marker
799
-
800
- This architecture provides:
801
-
802
- - Reliable animation completion detection
803
- - Clean separation of concerns
804
- - Extensibility (easy to add more animations)
805
- - No race conditions or timing assumptions
806
- - Debuggable signal-based state
807
- - Better user experience (smooth, never cut off)
808
- - Lazy content instantiation via `ng-template`