@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,915 +0,0 @@
1
- # Sheet Architecture
2
-
3
- ## Overview
4
-
5
- The sheet 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 sheet content and backdrop using a signal counter to track completion of both animations.
6
-
7
- **Sheet-Specific Feature:** Unlike dialog which uses zoom animations, sheets slide in from different sides (top, right, bottom, left) with directional slide animations.
8
-
9
- ## Component Structure
10
-
11
- ```
12
- ScSheetProvider (Root State Manager + CDK Overlay Manager)
13
- ├── ScSheetTrigger (Opens sheet)
14
- └── ng-template[scSheetPortal] (Lazy content, portaled to CDK overlay)
15
-
16
- Inside CDK Overlay (managed by Provider):
17
- ├── CDK Backdrop (Transparent - click blocking only)
18
- ├── ScBackdrop (Visual backdrop with animations)
19
- └── ScSheet (Sheet Content - slides from configured side)
20
- ├── ScSheetHeader
21
- │ └── ScSheetTitle
22
- │ └── ScSheetDescription
23
- └── ScSheetFooter
24
- └── ScSheetClose
25
- ```
26
-
27
- ### ScSheetPortal Directive
28
-
29
- `ScSheetPortal` 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[scSheetPortal]',
34
- })
35
- export class ScSheetPortal {
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 ScSheetProvider
44
- protected readonly sheetPortal = contentChild.required(ScSheetPortal);
45
-
46
- // In provider's overlay template
47
- <ng-container [ngTemplateOutlet]="sheetPortal().templateRef" />
48
- ```
49
-
50
- ### Why a Directive?
51
-
52
- - **Explicit**: A bare `<ng-template>` is ambiguous; `scSheetPortal` 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 -- `ScSheet` can inject `ScSheetProvider`
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 sheet _should_ be doing
64
-
65
- ```typescript
66
- // In ScSheetProvider
67
- readonly open = model<boolean>(false);
68
- ```
69
-
70
- **Responsibilities:**
71
-
72
- - Represents user intent ("should the sheet 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 ScSheetProvider
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 ScSheetProvider (private)
99
- private readonly animationsCompleted = signal<number>(0);
100
- ```
101
-
102
- **Responsibilities:**
103
-
104
- - Counts completed animations during close sequence
105
- - Target count: 2 (sheet + 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
-
156
- 2. **ScBackdrop Component** (300ms fade animation)
157
- - Reusable component from `components/backdrop`
158
- - Fade effect via Tailwind animate classes
159
- - Positioned with `-z-10` (behind sheet)
160
- - Emits `animationComplete` output when close animation finishes
161
-
162
- 3. **Sheet Content Animation** (300ms directional slide)
163
- - Slide animations from configured side (top/right/bottom/left)
164
- - Managed by Tailwind animate classes
165
- - Completion detected via `animationend` event (triggers cleanup)
166
-
167
- ### Synchronization
168
-
169
- Both ScBackdrop and Sheet animations:
170
-
171
- - Start simultaneously when `open` changes
172
- - Use same duration (300ms)
173
- - Respond to same `data-state` attribute
174
- - Inside same overlay (removed together)
175
-
176
- ### Sheet Content Animations
177
-
178
- Applied via Tailwind classes in `sheet.ts`:
179
-
180
- ```typescript
181
- const sideAnimationClasses: Record<SheetSide, string> = {
182
- top: 'slide-in-from-top data-[state=closed]:slide-out-to-top',
183
- right: 'slide-in-from-right data-[state=closed]:slide-out-to-right',
184
- bottom: 'slide-in-from-bottom data-[state=closed]:slide-out-to-bottom',
185
- left: 'slide-in-from-left data-[state=closed]:slide-out-to-left',
186
- };
187
-
188
- protected readonly class = computed(() => {
189
- const side = this.sheetProvider.side();
190
-
191
- return cn(
192
- // Base styles
193
- 'bg-background fixed z-50 flex flex-col gap-4 p-6 shadow-lg',
194
- sidePositionClasses[side],
195
-
196
- // Entry animation (fade + slide)
197
- 'animate-in fade-in-0 duration-300',
198
- sideAnimationClasses[side],
199
-
200
- // Exit animation (triggered by data-state="closed")
201
- 'data-[state=closed]:animate-out',
202
- 'data-[state=closed]:fade-out-0',
203
- 'data-[state=closed]:duration-300',
204
- );
205
- });
206
- ```
207
-
208
- **Animation Flow:**
209
-
210
- 1. `state` signal changes from `'open'` to `'closed'`
211
- 2. `data-state` attribute updates to `"closed"`
212
- 3. Tailwind applies exit animation classes (fade + slide to configured side)
213
- 4. Animation plays for 300ms
214
- 5. `animationend` event fires
215
-
216
- **Directional Slide Animations:**
217
-
218
- The sheet uses different slide directions based on the `side` input:
219
-
220
- - **top**: Slides in from top, slides out to top
221
- - **right**: Slides in from right, slides out to right
222
- - **bottom**: Slides in from bottom, slides out to bottom
223
- - **left**: Slides in from left, slides out to left
224
-
225
- Each direction uses Tailwind's directional slide utilities combined with fade for smooth entry/exit.
226
-
227
- ### ScBackdrop Component Animations
228
-
229
- Managed via ScBackdrop component from `components/backdrop`:
230
-
231
- ```typescript
232
- // In backdrop.ts
233
- protected readonly class = computed(() =>
234
- cn(
235
- 'fixed inset-0 -z-10 bg-black/10',
236
- 'supports-backdrop-filter:backdrop-blur-xs',
237
- 'animate-in fade-in-0 duration-300',
238
- 'data-[state=closed]:animate-out',
239
- 'data-[state=closed]:fade-out-0',
240
- 'data-[state=closed]:duration-300',
241
- ),
242
- );
243
- ```
244
-
245
- **Animation Flow:**
246
-
247
- 1. Provider renders: `<div sc-backdrop [open]="open()" (animationComplete)="onBackdropAnimationComplete()"></div>`
248
- 2. ScBackdrop receives `open` input
249
- 3. Sets `data-state` based on `open` value
250
- 4. Tailwind applies appropriate animation classes
251
- 5. Animation plays for 300ms
252
- 6. On `animationend`, emits `animationComplete` output
253
- 7. Provider handles the event directly for coordination
254
-
255
- **Why Separate Component?**
256
-
257
- - Reusable across dialog, drawer, sheet, etc.
258
- - Consistent animation pattern
259
- - Single responsibility (visual layer only)
260
- - CDK backdrop handles functionality separately
261
-
262
- ## Complete Animation Timeline
263
-
264
- ### Opening Sequence
265
-
266
- ```
267
- User clicks trigger:
268
- |
269
- +-- t=0ms: Trigger calls open.set(true)
270
- | |
271
- | +-- Provider effect 1:
272
- | | +-- overlayOpen.set(true) <- Mount DOM immediately
273
- | | +-- animationsCompleted.set(0) <- Reset for next cycle
274
- | |
275
- | +-- Provider effect 3 (triggered by overlayOpen):
276
- | +-- attachSheet() <- CDK overlay attached
277
- | +-- TemplatePortal(overlayTemplate, viewContainerRef)
278
- | +-- ScBackdrop rendered with [open]="open()"
279
- | +-- ng-template outlet stamps scSheetPortal content
280
- |
281
- +-- t=0ms: CDK adds .cdk-overlay-backdrop-showing
282
- | +-- Backdrop: opacity 0 -> 1 (300ms)
283
- |
284
- +-- t=0ms: Sheet effect (triggered by open):
285
- | +-- state.set('open')
286
- | +-- data-state="open" -> Entry animation starts
287
- | +-- fade-in-0
288
- | +-- slide-in-from-{side}
289
- | +-- duration-300
290
- |
291
- +-- t=0-300ms: Both animations play
292
- |
293
- +-- t=300ms: Animations complete, sheet visible
294
- ```
295
-
296
- ### Closing Sequence (Coordinated Completion)
297
-
298
- ```
299
- User clicks close/backdrop/escape:
300
- |
301
- +-- t=0ms: Provider calls open.set(false)
302
- | |
303
- | +-- Sheet effect (triggered by open):
304
- | | +-- state.set('closed') <- Triggers animation
305
- | | +-- data-state="closed" -> Exit animation starts
306
- | | +-- animate-out
307
- | | +-- fade-out-0
308
- | | +-- slide-out-to-{side}
309
- | | +-- duration-300
310
- | |
311
- | +-- Backdrop receives [open]="false" input:
312
- | +-- state.set('closed') <- Triggers backdrop animation
313
- | +-- data-state="closed" -> Backdrop fade-out (300ms)
314
- |
315
- +-- IMPORTANT: overlayOpen is STILL true!
316
- | +-- DOM remains mounted so animations can play
317
- | +-- animationsCompleted = 0 (waiting for both)
318
- |
319
- +-- t=0-300ms: Both animations play simultaneously
320
- |
321
- +-- t=~300ms: Sheet animation completes
322
- | +-- onAnimationEnd(event) fires
323
- | +-- if (state === 'closed' && target === element):
324
- | +-- provider.onSheetAnimationComplete()
325
- | +-- animationsCompleted.update(n => n + 1) <- Count = 1
326
- |
327
- +-- t=~300ms: Backdrop animation completes
328
- | +-- backdrop emits (animationComplete)
329
- | +-- provider.onBackdropAnimationComplete()
330
- | +-- animationsCompleted.update(n => n + 1) <- Count = 2
331
- |
332
- +-- Provider effect 2 detects: animationsCompleted === 2 && !open()
333
- | +-- overlayOpen.set(false) <- Cleanup triggered!
334
- | +-- animationsCompleted.set(0) <- Reset for next cycle
335
- |
336
- +-- t=~300ms: Provider effect 3 (triggered by overlayOpen):
337
- +-- detachSheet() <- DOM removed cleanly after BOTH complete
338
- ```
339
-
340
- ## Why Track Both Animations?
341
-
342
- **Question:** Why coordinate two separate animations instead of using a single timer?
343
-
344
- **Answer:** Explicit animation tracking is more robust and event-driven:
345
-
346
- ### The Problem with Single Timers
347
-
348
- ```typescript
349
- // Old approach - assumes both animations finish together
350
- onSheetAnimationComplete(): void {
351
- setTimeout(() => {
352
- this.overlayOpen.set(false);
353
- }, 300); // Hope backdrop finishes too!
354
- }
355
- ```
356
-
357
- **Issues:**
358
-
359
- - Assumes backdrop takes exactly 300ms
360
- - Browser rendering variations can cause timing differences
361
- - Backdrop might take 305ms, getting cut off at 300ms
362
- - No way to know if backdrop actually completed
363
- - Might wait longer than necessary if backdrop finishes early
364
-
365
- ### The Solution: Signal Counter Pattern
366
-
367
- ```typescript
368
- // New approach - explicitly track both completions
369
- private readonly animationsCompleted = signal<number>(0);
370
-
371
- onSheetAnimationComplete(): void {
372
- this.animationsCompleted.update(n => n + 1); // Count = 1
373
- }
374
-
375
- onBackdropAnimationComplete(): void {
376
- this.animationsCompleted.update(n => n + 1); // Count = 2
377
- }
378
-
379
- effect(() => {
380
- if (this.animationsCompleted() === 2 && !this.open()) {
381
- this.overlayOpen.set(false); // Both confirmed complete!
382
- }
383
- });
384
- ```
385
-
386
- **Benefits:**
387
-
388
- 1. **Event-driven**: Waits for actual completion, not estimated time
389
- 2. **Robust**: Handles browser timing variations (300ms vs 305ms)
390
- 3. **Accurate**: Both animations explicitly signal completion
391
- 4. **Extensible**: Easy to add more animations (just increase target count)
392
- 5. **No race conditions**: Counter resets on open for clean cycles
393
-
394
- ## State Synchronization
395
-
396
- ### Provider Constructor Effects
397
-
398
- ```typescript
399
- constructor() {
400
- // Effect 1: Sync overlayOpen with open for OPENING
401
- effect(() => {
402
- if (this.open()) {
403
- // Opening: Mount DOM immediately
404
- this.overlayOpen.set(true);
405
- // Reset counter for next close cycle
406
- this.animationsCompleted.set(0);
407
- }
408
- // Note: When closing, overlayOpen stays true!
409
- // It will be set to false by the coordination effect below
410
- });
411
-
412
- // Effect 2: Close overlay when both animations complete
413
- effect(() => {
414
- const completed = this.animationsCompleted();
415
- if (completed === 2 && !this.open()) {
416
- // Both animations confirmed complete
417
- this.overlayOpen.set(false);
418
- // Reset for next cycle
419
- this.animationsCompleted.set(0);
420
- }
421
- });
422
-
423
- // Effect 3: Attach/detach CDK overlay based on overlayOpen
424
- effect(() => {
425
- if (this.overlayOpen()) {
426
- this.attachSheet();
427
- } else {
428
- this.detachSheet();
429
- }
430
- });
431
- }
432
- ```
433
-
434
- ### Provider Overlay Template
435
-
436
- The provider's template includes the backdrop and focus trap, projecting the consumer's `scSheetPortal` template via `ngTemplateOutlet`:
437
-
438
- ```html
439
- <ng-content />
440
- <ng-template #overlayTemplate>
441
- <div sc-backdrop [open]="open()" (animationComplete)="onBackdropAnimationComplete()"></div>
442
- <div cdkTrapFocus [cdkTrapFocusAutoCapture]="true">
443
- <ng-container [ngTemplateOutlet]="sheetPortal().templateRef" />
444
- </div>
445
- </ng-template>
446
- ```
447
-
448
- ### Sheet Constructor Effects
449
-
450
- ```typescript
451
- constructor() {
452
- // Effect: Sync animation state with logical state
453
- effect(() => {
454
- const isOpen = this.sheetProvider.open();
455
- this.state.set(isOpen ? 'open' : 'closed');
456
- });
457
- }
458
- ```
459
-
460
- ## Animation Completion Handling
461
-
462
- ### Sheet Component
463
-
464
- ```typescript
465
- protected onAnimationEnd(event: AnimationEvent): void {
466
- // Only trigger cleanup when close animation completes
467
- if (
468
- this.state() === 'closed' &&
469
- event.target === this.elementRef.nativeElement
470
- ) {
471
- this.sheetProvider.onSheetAnimationComplete();
472
- }
473
- }
474
- ```
475
-
476
- **Why check `event.target`?**
477
-
478
- - `animationend` bubbles from child elements
479
- - We only care about the sheet's own animation
480
- - Prevents false triggers from child element animations
481
-
482
- ### Provider Component
483
-
484
- The provider directly handles backdrop animation completion in its template -- no intermediary needed:
485
-
486
- ```html
487
- <!-- In provider's overlay template -->
488
- <div sc-backdrop [open]="open()" (animationComplete)="onBackdropAnimationComplete()"></div>
489
- ```
490
-
491
- ```typescript
492
- // In ScSheetProvider
493
- onSheetAnimationComplete(): void {
494
- if (!this.open()) {
495
- this.animationsCompleted.update(n => n + 1);
496
- }
497
- }
498
-
499
- onBackdropAnimationComplete(): void {
500
- if (!this.open()) {
501
- this.animationsCompleted.update(n => n + 1);
502
- }
503
- }
504
- ```
505
-
506
- **Why check `!this.open()` before incrementing?**
507
-
508
- - User might have reopened sheet during close animation
509
- - Prevents counter from incrementing during new open cycle
510
- - Guards against race conditions
511
- - Example: User clicks close (close starts), then immediately clicks trigger again (reopens)
512
- - Without this check, the counter would incorrectly increment for the new cycle
513
-
514
- **Why use `update()` instead of `set()`?**
515
-
516
- - Increment is relative to current value
517
- - Safe if multiple updates happen
518
- - Immutable update pattern
519
- - Consistent with Angular signals best practices
520
-
521
- ## Comparison: Evolution of Animation Coordination
522
-
523
- ### Approach 1: Single Timer (Previous Implementation)
524
-
525
- ```typescript
526
- // Problems:
527
- private async detachSheetWithAnimation() {
528
- if (this.overlayRef.hasAttached()) {
529
- const backdrop = this.overlayRef.backdropElement;
530
- backdrop?.classList.add('sc-backdrop-hiding');
531
-
532
- // Wait arbitrary 300ms
533
- await firstValueFrom(timer(300));
534
-
535
- this.overlayRef.detach(); // Might cut off sheet animation!
536
- }
537
- }
538
- ```
539
-
540
- **Issues:**
541
-
542
- 1. Single hardcoded timer for all animations
543
- 2. No detection of actual animation completion
544
- 3. Sheet animation might take longer or shorter
545
- 4. Not coordinated with sheet state
546
- 5. No way to cancel if reopened
547
-
548
- ### Approach 2: Signal Counter (Current Implementation)
549
-
550
- ```typescript
551
- // Both animations explicitly tracked:
552
- private readonly animationsCompleted = signal<number>(0);
553
-
554
- constructor() {
555
- // Effect 1: Open and reset
556
- effect(() => {
557
- if (this.open()) {
558
- this.overlayOpen.set(true);
559
- this.animationsCompleted.set(0);
560
- }
561
- });
562
-
563
- // Effect 2: Close when both complete
564
- effect(() => {
565
- if (this.animationsCompleted() === 2 && !this.open()) {
566
- this.overlayOpen.set(false);
567
- this.animationsCompleted.set(0);
568
- }
569
- });
570
-
571
- // Effect 3: Attach/detach CDK overlay
572
- effect(() => {
573
- if (this.overlayOpen()) {
574
- this.attachSheet();
575
- } else {
576
- this.detachSheet();
577
- }
578
- });
579
- }
580
-
581
- // Both animations signal completion
582
- onSheetAnimationComplete(): void {
583
- if (!this.open()) {
584
- this.animationsCompleted.update(n => n + 1);
585
- }
586
- }
587
-
588
- onBackdropAnimationComplete(): void {
589
- if (!this.open()) {
590
- this.animationsCompleted.update(n => n + 1);
591
- }
592
- }
593
- ```
594
-
595
- **Improvements:**
596
-
597
- 1. Both animations event-driven
598
- 2. No timing assumptions
599
- 3. Handles browser rendering variations
600
- 4. Explicit completion signals
601
- 5. Extensible (easy to add more animations)
602
- 6. Signal-based reactivity
603
- 7. Clean cycle management
604
-
605
- ## Key Design Decisions
606
-
607
- ### 1. Provider Owns Everything
608
-
609
- **Decision:** `ScSheetProvider` manages state, overlay lifecycle, backdrop, and focus trap
610
-
611
- **Why:**
612
-
613
- - Provider controls _when_ content appears (open state)
614
- - Provider controls _where_ content appears (CDK overlay)
615
- - Single component owns the full lifecycle -- no coordination between sibling components
616
- - `ScSheetPortal` directive just marks _what_ content to portal -- no logic
617
- - Backdrop click and Escape key are handled directly by the provider via CDK overlay events
618
-
619
- ### 2. `display: contents` on Provider
620
-
621
- **Decision:** Provider uses `display: contents` (via Tailwind class) to be invisible to CSS layout
622
-
623
- **Why:**
624
-
625
- - Provider is a `<div>` (required for CDK overlay's `ViewContainerRef`)
626
- - But it should not affect the consumer's layout
627
- - `display: contents` makes the element's box disappear while keeping children in flow
628
- - Consumer can place trigger and other content without layout interference
629
-
630
- ### 3. Separation of Logical and Physical State
631
-
632
- **Decision:** Split logical state (`open`) from physical state (`overlayOpen`)
633
-
634
- **Why:**
635
-
636
- - Logical state drives animations
637
- - Physical state drives DOM lifecycle
638
- - Animations need time to complete before DOM removal
639
- - Clean separation makes flow easier to understand
640
-
641
- ### 4. Signal Counter Pattern
642
-
643
- **Decision:** Use signal counter to track multiple animation completions
644
-
645
- **Why:**
646
-
647
- - Both animations explicitly signal completion
648
- - No timing assumptions or hardcoded delays
649
- - Reactive: effect triggers when counter reaches target
650
- - Extensible: easy to add more animations (increase target)
651
- - Debuggable: counter value visible in Angular DevTools
652
-
653
- ### 5. Event-Driven Completion
654
-
655
- **Decision:** Both sheet and backdrop emit completion events
656
-
657
- **Why:**
658
-
659
- - Precise: no guessing when animations finish
660
- - Robust: handles browser timing variations
661
- - Decoupled: backdrop component remains reusable
662
- - No arbitrary timeouts or magic numbers
663
-
664
- ### 6. Guard Pattern for Counter Increments
665
-
666
- **Decision:** Check `!open()` before incrementing animation counter
667
-
668
- **Why:**
669
-
670
- - Prevents counter increments during new open cycle
671
- - User might reopen during close animation
672
- - Without guard, counter would increment incorrectly for new cycle
673
- - Example: Close starts -> sheet completes -> user reopens -> backdrop completes would incorrectly increment counter for new open
674
- - Effect checks both counter AND `!open()` for safety
675
-
676
- ### 7. Effect-Based Reactivity
677
-
678
- **Decision:** Use Angular effects instead of manual subscriptions
679
-
680
- **Why:**
681
-
682
- - Automatic cleanup on component destruction
683
- - Declarative: describes "what" not "how"
684
- - Runs automatically when dependencies change
685
- - Easier to reason about than imperative code
686
-
687
- ### 8. Directional Animation System
688
-
689
- **Decision:** Use `side` input to determine animation direction dynamically
690
-
691
- **Why:**
692
-
693
- - Single component handles all four directions
694
- - Animation classes computed based on side
695
- - Maintains consistency across all directions
696
- - Easy to add new sides if needed
697
-
698
- ## Animation Classes Reference
699
-
700
- ### Sheet Content Classes
701
-
702
- ```typescript
703
- // Position classes (fixed to specific side)
704
- const sidePositionClasses: Record<SheetSide, string> = {
705
- top: 'inset-x-0 top-0 border-b',
706
- right: 'inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm',
707
- bottom: 'inset-x-0 bottom-0 border-t',
708
- left: 'inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm',
709
- };
710
-
711
- // Directional animation classes
712
- const sideAnimationClasses: Record<SheetSide, string> = {
713
- top: 'slide-in-from-top data-[state=closed]:slide-out-to-top',
714
- right: 'slide-in-from-right data-[state=closed]:slide-out-to-right',
715
- bottom: 'slide-in-from-bottom data-[state=closed]:slide-out-to-bottom',
716
- left: 'slide-in-from-left data-[state=closed]:slide-out-to-left',
717
- };
718
-
719
- // Entry animation (fade + slide based on side)
720
- ('animate-in fade-in-0 duration-300');
721
- sideAnimationClasses[side];
722
-
723
- // Exit animation (via data-state="closed")
724
- ('data-[state=closed]:animate-out');
725
- ('data-[state=closed]:fade-out-0');
726
- ('data-[state=closed]:duration-300');
727
- ```
728
-
729
- ### Backdrop Classes
730
-
731
- ```typescript
732
- // Entry animation
733
- 'animate-in fade-in-0 duration-300';
734
-
735
- // Exit animation (via data-state="closed")
736
- 'data-[state=closed]:animate-out';
737
- 'data-[state=closed]:fade-out-0';
738
- 'data-[state=closed]:duration-300';
739
- ```
740
-
741
- ## Accessibility Considerations
742
-
743
- The animation system preserves accessibility:
744
-
745
- 1. **Focus Management:** Sheet auto-focuses on mount via `cdkTrapFocus` with `cdkTrapFocusAutoCapture`
746
- 2. **ARIA Attributes:** Set before animations start (`role="dialog"`, `aria-modal="true"`)
747
- 3. **Screen Readers:** Announce sheet immediately (not after animation)
748
- 4. **Keyboard:** Escape key closes the sheet (via CDK overlay keydown events)
749
- 5. **Backdrop Click:** Click outside closes the sheet (via CDK overlay backdrop click)
750
- 6. **Reduced Motion:** Could add `@media (prefers-reduced-motion)` support
751
-
752
- ## Performance Considerations
753
-
754
- ### Efficient Rendering
755
-
756
- - Uses `ChangeDetectionStrategy.OnPush` everywhere
757
- - Effects only run when dependencies change
758
- - No manual subscriptions to manage
759
- - Single overlay instance reused
760
-
761
- ### Animation Performance
762
-
763
- - CSS animations (GPU accelerated)
764
- - Opacity and transform (composited properties)
765
- - No layout thrashing
766
- - Minimal JavaScript during animation
767
-
768
- ### Memory Management
769
-
770
- - Effects auto-cleanup on destroy
771
- - No timeout leaks (event-driven approach)
772
- - Overlay detached after use
773
- - No memory leaks
774
-
775
- ## Consumer API
776
-
777
- ```html
778
- <div sc-sheet-provider [(open)]="isOpen" side="right">
779
- <button sc-sheet-trigger sc-button>Open</button>
780
- <ng-template scSheetPortal>
781
- <div sc-sheet>
782
- <button sc-sheet-close>...</button>
783
- <div sc-sheet-header>
784
- <h2 sc-sheet-title>Title</h2>
785
- <p sc-sheet-description>Description</p>
786
- </div>
787
- <!-- content -->
788
- <div sc-sheet-footer>
789
- <button sc-button>Save</button>
790
- </div>
791
- </div>
792
- </ng-template>
793
- </div>
794
- ```
795
-
796
- **Key points:**
797
-
798
- - `scSheetPortal` on `ng-template` marks lazy content
799
- - Content is only instantiated when sheet opens
800
- - `ScSheetPortal` must be imported in the consumer's `imports` array
801
- - `[(open)]` provides two-way binding for programmatic control
802
-
803
- ## Future Enhancements
804
-
805
- ### Potential Improvements
806
-
807
- 1. **Variable Animation Durations:**
808
- - Input property for animation duration
809
- - Provider passes duration to sheet and backdrop
810
- - Configurable timing for different use cases
811
-
812
- 2. **Animation Events:**
813
- - Output events for animation start/end
814
- - External components can react to animation state
815
-
816
- 3. **Reduced Motion Support:**
817
- - Detect `prefers-reduced-motion`
818
- - Instant show/hide if user prefers
819
- - Keep accessibility benefits
820
-
821
- 4. **Stacking Context:**
822
- - Support multiple overlapping sheets
823
- - z-index management
824
- - Close all vs close top
825
-
826
- 5. **Custom Animations:**
827
- - Allow custom animation classes via input
828
- - Support different animation styles per side
829
-
830
- ## Testing Considerations
831
-
832
- ### What to Test
833
-
834
- 1. **State Transitions:**
835
- - open: false -> true -> false
836
- - overlayOpen follows correctly
837
- - state syncs with open
838
-
839
- 2. **Animation Timing:**
840
- - Animations play for full duration
841
- - DOM not removed early
842
- - Backdrop fades correctly
843
- - Sheet slides in correct direction
844
-
845
- 3. **All Sides:**
846
- - Test each side (top, right, bottom, left)
847
- - Verify correct slide direction
848
- - Ensure consistent timing across all sides
849
-
850
- 4. **Edge Cases:**
851
- - Rapid open/close
852
- - Open during close animation
853
- - Close during open animation
854
- - Changing side while open
855
-
856
- 5. **Cleanup:**
857
- - No memory leaks
858
- - Effects unsubscribe
859
- - No hanging timeouts
860
-
861
- ### Testing Strategy
862
-
863
- ```typescript
864
- // Example test structure
865
- describe('Sheet Animations', () => {
866
- it('should keep DOM mounted during close animation', async () => {
867
- // Open sheet
868
- provider.open.set(true);
869
- fixture.detectChanges();
870
-
871
- // Close sheet
872
- provider.open.set(false);
873
- fixture.detectChanges();
874
-
875
- // Immediately after close - DOM should still exist
876
- expect(overlayRef.hasAttached()).toBe(true);
877
-
878
- // After animations complete - DOM should be removed
879
- await delay(400); // Buffer for 300ms animation
880
- expect(overlayRef.hasAttached()).toBe(false);
881
- });
882
-
883
- it('should slide from correct side', () => {
884
- provider.side.set('left');
885
- provider.open.set(true);
886
- fixture.detectChanges();
887
-
888
- const sheet = fixture.debugElement.query(By.css('[sc-sheet]'));
889
- expect(sheet.nativeElement.classList.contains('slide-in-from-left')).toBe(true);
890
- });
891
- });
892
- ```
893
-
894
- ## Summary
895
-
896
- The sheet animation architecture achieves smooth, reliable animations through:
897
-
898
- 1. **Two-signal pattern:** Separates intent (`open`) from DOM lifecycle (`overlayOpen`)
899
- 2. **Signal counter coordination:** Tracks completion of multiple animations (`animationsCompleted`)
900
- 3. **Event-driven completion:** Both sheet and backdrop explicitly signal when done
901
- 4. **Reactive updates:** Effects respond to state changes automatically
902
- 5. **Robust timing:** No assumptions, handles browser variations
903
- 6. **Directional animations:** Dynamically applies correct slide direction based on `side` input
904
- 7. **Centralized ownership:** Provider owns all lifecycle logic; portal directive is just a content marker
905
-
906
- This architecture provides:
907
-
908
- - Reliable animation completion detection
909
- - Clean separation of concerns
910
- - Extensibility (easy to add more animations)
911
- - No race conditions or timing assumptions
912
- - Debuggable signal-based state
913
- - Better user experience (smooth, never cut off)
914
- - Flexible directional animations (top, right, bottom, left)
915
- - Lazy content instantiation via `ng-template`