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