@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.
- package/fesm2022/semantic-components-ui-lab.mjs +36276 -0
- package/fesm2022/semantic-components-ui-lab.mjs.map +1 -0
- package/package.json +17 -3
- package/types/semantic-components-ui-lab.d.ts +7454 -0
- package/eslint.config.mjs +0 -39
- package/ng-package.json +0 -7
- package/project.json +0 -28
- package/src/index.ts +0 -2
- package/src/lib/components/accordion/README.md +0 -269
- package/src/lib/components/accordion/TODO.md +0 -58
- package/src/lib/components/accordion/accordion-content.ts +0 -31
- package/src/lib/components/accordion/accordion-header.ts +0 -15
- package/src/lib/components/accordion/accordion-item.ts +0 -17
- package/src/lib/components/accordion/accordion-panel.ts +0 -42
- package/src/lib/components/accordion/accordion-trigger-icon.ts +0 -27
- package/src/lib/components/accordion/accordion-trigger.ts +0 -46
- package/src/lib/components/accordion/accordion.ts +0 -35
- package/src/lib/components/accordion/index.ts +0 -7
- package/src/lib/components/alert/README.md +0 -117
- package/src/lib/components/alert/alert-action.ts +0 -17
- package/src/lib/components/alert/alert-description.ts +0 -20
- package/src/lib/components/alert/alert-title.ts +0 -20
- package/src/lib/components/alert/alert.ts +0 -39
- package/src/lib/components/alert/index.ts +0 -4
- package/src/lib/components/alert-dialog/ARCHITECTURE.md +0 -808
- package/src/lib/components/alert-dialog/README.md +0 -215
- package/src/lib/components/alert-dialog/alert-dialog-action.ts +0 -32
- package/src/lib/components/alert-dialog/alert-dialog-cancel.ts +0 -32
- package/src/lib/components/alert-dialog/alert-dialog-description.ts +0 -24
- package/src/lib/components/alert-dialog/alert-dialog-footer.ts +0 -21
- package/src/lib/components/alert-dialog/alert-dialog-header.ts +0 -23
- package/src/lib/components/alert-dialog/alert-dialog-media.ts +0 -22
- package/src/lib/components/alert-dialog/alert-dialog-portal.ts +0 -8
- package/src/lib/components/alert-dialog/alert-dialog-provider.ts +0 -135
- package/src/lib/components/alert-dialog/alert-dialog-title.ts +0 -20
- package/src/lib/components/alert-dialog/alert-dialog-trigger.ts +0 -25
- package/src/lib/components/alert-dialog/alert-dialog.ts +0 -77
- package/src/lib/components/alert-dialog/index.ts +0 -11
- package/src/lib/components/animated-counter/README.md +0 -102
- package/src/lib/components/animated-counter/animated-counter-types.ts +0 -23
- package/src/lib/components/animated-counter/animated-counter.ts +0 -143
- package/src/lib/components/animated-counter/index.ts +0 -6
- package/src/lib/components/aspect-ratio/README.md +0 -97
- package/src/lib/components/aspect-ratio/aspect-ratio.ts +0 -19
- package/src/lib/components/aspect-ratio/index.ts +0 -1
- package/src/lib/components/audio-player/README.md +0 -252
- package/src/lib/components/audio-player/audio-player-audio.ts +0 -32
- package/src/lib/components/audio-player/audio-player-cover.ts +0 -39
- package/src/lib/components/audio-player/audio-player-info.ts +0 -40
- package/src/lib/components/audio-player/audio-player-next.ts +0 -40
- package/src/lib/components/audio-player/audio-player-play-button.ts +0 -39
- package/src/lib/components/audio-player/audio-player-previous.ts +0 -40
- package/src/lib/components/audio-player/audio-player-progress.ts +0 -77
- package/src/lib/components/audio-player/audio-player-repeat.ts +0 -38
- package/src/lib/components/audio-player/audio-player-shuffle.ts +0 -39
- package/src/lib/components/audio-player/audio-player-volume.ts +0 -91
- package/src/lib/components/audio-player/audio-player.ts +0 -246
- package/src/lib/components/audio-player/index.ts +0 -11
- package/src/lib/components/avatar/README.md +0 -117
- package/src/lib/components/avatar/avatar-fallback.ts +0 -25
- package/src/lib/components/avatar/avatar-image.ts +0 -39
- package/src/lib/components/avatar/avatar.ts +0 -25
- package/src/lib/components/avatar/index.ts +0 -3
- package/src/lib/components/avatar-group/README.md +0 -94
- package/src/lib/components/avatar-group/avatar-group-types.ts +0 -9
- package/src/lib/components/avatar-group/avatar-group.ts +0 -181
- package/src/lib/components/avatar-group/index.ts +0 -2
- package/src/lib/components/backdrop/backdrop.ts +0 -75
- package/src/lib/components/backdrop/index.ts +0 -1
- package/src/lib/components/badge/README.md +0 -66
- package/src/lib/components/badge/badge.ts +0 -43
- package/src/lib/components/badge/index.ts +0 -1
- package/src/lib/components/barcode-scanner/README.md +0 -144
- package/src/lib/components/barcode-scanner/barcode-scanner-simple.ts +0 -36
- package/src/lib/components/barcode-scanner/barcode-scanner.ts +0 -460
- package/src/lib/components/barcode-scanner/index.ts +0 -3
- package/src/lib/components/breadcrumb/README.md +0 -80
- package/src/lib/components/breadcrumb/breadcrumb-ellipsis.ts +0 -46
- package/src/lib/components/breadcrumb/breadcrumb-item.ts +0 -17
- package/src/lib/components/breadcrumb/breadcrumb-link.ts +0 -17
- package/src/lib/components/breadcrumb/breadcrumb-list.ts +0 -20
- package/src/lib/components/breadcrumb/breadcrumb-page.ts +0 -20
- package/src/lib/components/breadcrumb/breadcrumb-separator.ts +0 -45
- package/src/lib/components/breadcrumb/breadcrumb.ts +0 -10
- package/src/lib/components/breadcrumb/index.ts +0 -7
- package/src/lib/components/button-group/button-group-separator.ts +0 -26
- package/src/lib/components/button-group/button-group-text.ts +0 -20
- package/src/lib/components/button-group/button-group.ts +0 -43
- package/src/lib/components/button-group/index.ts +0 -10
- package/src/lib/components/calendar/CALENDAR-VIEWS.md +0 -443
- package/src/lib/components/calendar/README.md +0 -227
- package/src/lib/components/calendar/calendar-day-view.ts +0 -310
- package/src/lib/components/calendar/calendar-header.ts +0 -58
- package/src/lib/components/calendar/calendar-month-view.ts +0 -176
- package/src/lib/components/calendar/calendar-year-view.ts +0 -167
- package/src/lib/components/calendar/calendar.ts +0 -273
- package/src/lib/components/calendar/index.ts +0 -1
- package/src/lib/components/card/README.md +0 -86
- package/src/lib/components/card/card-content.ts +0 -15
- package/src/lib/components/card/card-description.ts +0 -17
- package/src/lib/components/card/card-footer.ts +0 -17
- package/src/lib/components/card/card-header.ts +0 -17
- package/src/lib/components/card/card-title.ts +0 -17
- package/src/lib/components/card/card.ts +0 -20
- package/src/lib/components/card/index.ts +0 -6
- package/src/lib/components/chart/README.md +0 -220
- package/src/lib/components/chart/bar-chart.ts +0 -186
- package/src/lib/components/chart/chart-container.ts +0 -33
- package/src/lib/components/chart/chart-legend.ts +0 -42
- package/src/lib/components/chart/chart-tooltip.ts +0 -42
- package/src/lib/components/chart/chart-types.ts +0 -21
- package/src/lib/components/chart/donut-chart.ts +0 -35
- package/src/lib/components/chart/index.ts +0 -9
- package/src/lib/components/chart/line-chart.ts +0 -223
- package/src/lib/components/chart/pie-chart.ts +0 -186
- package/src/lib/components/checkbox/README.md +0 -293
- package/src/lib/components/checkbox/checkbox-field.ts +0 -78
- package/src/lib/components/checkbox/checkbox-indicator.ts +0 -27
- package/src/lib/components/checkbox/checkbox-types.ts +0 -15
- package/src/lib/components/checkbox/checkbox.ts +0 -74
- package/src/lib/components/checkbox/index.ts +0 -5
- package/src/lib/components/checkbox/visual-checkbox.ts +0 -47
- package/src/lib/components/collapsible/README.md +0 -191
- package/src/lib/components/collapsible/collapsible-content.ts +0 -28
- package/src/lib/components/collapsible/collapsible-panel.ts +0 -42
- package/src/lib/components/collapsible/collapsible-trigger.ts +0 -48
- package/src/lib/components/collapsible/collapsible.ts +0 -33
- package/src/lib/components/collapsible/index.ts +0 -4
- package/src/lib/components/color-picker/README.md +0 -218
- package/src/lib/components/color-picker/color-picker-area.ts +0 -107
- package/src/lib/components/color-picker/color-picker-eyedropper.ts +0 -76
- package/src/lib/components/color-picker/color-picker-hue.ts +0 -92
- package/src/lib/components/color-picker/color-picker-input.ts +0 -70
- package/src/lib/components/color-picker/color-picker-preview.ts +0 -21
- package/src/lib/components/color-picker/color-picker-swatches.ts +0 -60
- package/src/lib/components/color-picker/color-picker.ts +0 -227
- package/src/lib/components/color-picker/index.ts +0 -8
- package/src/lib/components/combobox/README.md +0 -166
- package/src/lib/components/combobox/combobox-empty.ts +0 -17
- package/src/lib/components/combobox/combobox-icon.ts +0 -20
- package/src/lib/components/combobox/combobox-input.ts +0 -32
- package/src/lib/components/combobox/combobox-item-indicator.ts +0 -20
- package/src/lib/components/combobox/combobox-item.ts +0 -49
- package/src/lib/components/combobox/combobox-list.ts +0 -40
- package/src/lib/components/combobox/combobox-portal.ts +0 -111
- package/src/lib/components/combobox/combobox-trigger.ts +0 -20
- package/src/lib/components/combobox/combobox.ts +0 -42
- package/src/lib/components/combobox/index.ts +0 -9
- package/src/lib/components/command/README.md +0 -161
- package/src/lib/components/command/command-empty.ts +0 -17
- package/src/lib/components/command/command-group-heading.ts +0 -20
- package/src/lib/components/command/command-group.ts +0 -23
- package/src/lib/components/command/command-input.ts +0 -67
- package/src/lib/components/command/command-item.ts +0 -61
- package/src/lib/components/command/command-list.ts +0 -19
- package/src/lib/components/command/command-separator.ts +0 -18
- package/src/lib/components/command/command-shortcut.ts +0 -20
- package/src/lib/components/command/command.ts +0 -35
- package/src/lib/components/command/index.ts +0 -9
- package/src/lib/components/confetti/README.md +0 -103
- package/src/lib/components/confetti/confetti-types.ts +0 -47
- package/src/lib/components/confetti/confetti.ts +0 -220
- package/src/lib/components/confetti/index.ts +0 -7
- package/src/lib/components/context-menu/README.md +0 -149
- package/src/lib/components/context-menu/context-menu-content.ts +0 -46
- package/src/lib/components/context-menu/context-menu-item.ts +0 -44
- package/src/lib/components/context-menu/context-menu-label.ts +0 -22
- package/src/lib/components/context-menu/context-menu-separator.ts +0 -18
- package/src/lib/components/context-menu/context-menu-shortcut.ts +0 -20
- package/src/lib/components/context-menu/context-menu-sub-content.ts +0 -83
- package/src/lib/components/context-menu/context-menu-sub-trigger.ts +0 -91
- package/src/lib/components/context-menu/context-menu-sub.ts +0 -38
- package/src/lib/components/context-menu/context-menu-trigger.ts +0 -40
- package/src/lib/components/context-menu/context-menu.ts +0 -106
- package/src/lib/components/context-menu/index.ts +0 -10
- package/src/lib/components/copy-button/README.md +0 -211
- package/src/lib/components/copy-button/copy-button-with-text.ts +0 -53
- package/src/lib/components/copy-button/copy-button.ts +0 -137
- package/src/lib/components/copy-button/copy-code.ts +0 -42
- package/src/lib/components/copy-button/copy-input.ts +0 -54
- package/src/lib/components/copy-button/index.ts +0 -4
- package/src/lib/components/countdown/README.md +0 -168
- package/src/lib/components/countdown/countdown-simple.ts +0 -118
- package/src/lib/components/countdown/countdown.ts +0 -235
- package/src/lib/components/countdown/index.ts +0 -3
- package/src/lib/components/data-table/README.md +0 -330
- package/src/lib/components/data-table/data-table-body.ts +0 -28
- package/src/lib/components/data-table/data-table-cell.ts +0 -20
- package/src/lib/components/data-table/data-table-column-toggle.ts +0 -96
- package/src/lib/components/data-table/data-table-filter.ts +0 -45
- package/src/lib/components/data-table/data-table-head.ts +0 -96
- package/src/lib/components/data-table/data-table-header.ts +0 -28
- package/src/lib/components/data-table/data-table-pagination.ts +0 -152
- package/src/lib/components/data-table/data-table-row.ts +0 -23
- package/src/lib/components/data-table/data-table.ts +0 -181
- package/src/lib/components/data-table/index.ts +0 -15
- package/src/lib/components/date-picker/README.md +0 -101
- package/src/lib/components/date-picker/date-picker.ts +0 -175
- package/src/lib/components/date-picker/index.ts +0 -1
- package/src/lib/components/date-range-picker/README.md +0 -148
- package/src/lib/components/date-range-picker/date-range-picker.ts +0 -348
- package/src/lib/components/date-range-picker/index.ts +0 -3
- package/src/lib/components/dialog/ARCHITECTURE.md +0 -792
- package/src/lib/components/dialog/README.md +0 -208
- package/src/lib/components/dialog/dialog-close.ts +0 -33
- package/src/lib/components/dialog/dialog-description.ts +0 -23
- package/src/lib/components/dialog/dialog-footer.ts +0 -20
- package/src/lib/components/dialog/dialog-header.ts +0 -17
- package/src/lib/components/dialog/dialog-portal.ts +0 -8
- package/src/lib/components/dialog/dialog-provider.ts +0 -175
- package/src/lib/components/dialog/dialog-title.ts +0 -20
- package/src/lib/components/dialog/dialog-trigger.ts +0 -25
- package/src/lib/components/dialog/dialog.ts +0 -79
- package/src/lib/components/dialog/index.ts +0 -9
- package/src/lib/components/diff-viewer/README.md +0 -172
- package/src/lib/components/diff-viewer/diff-algorithm.ts +0 -337
- package/src/lib/components/diff-viewer/diff-viewer.ts +0 -369
- package/src/lib/components/diff-viewer/index.ts +0 -8
- package/src/lib/components/dock/README.md +0 -204
- package/src/lib/components/dock/dock-badge.ts +0 -36
- package/src/lib/components/dock/dock-item.ts +0 -76
- package/src/lib/components/dock/dock-items.ts +0 -31
- package/src/lib/components/dock/dock-types.ts +0 -25
- package/src/lib/components/dock/dock.ts +0 -101
- package/src/lib/components/dock/index.ts +0 -11
- package/src/lib/components/drawer/ARCHITECTURE.md +0 -972
- package/src/lib/components/drawer/README.md +0 -205
- package/src/lib/components/drawer/drawer-close.ts +0 -18
- package/src/lib/components/drawer/drawer-description.ts +0 -17
- package/src/lib/components/drawer/drawer-footer.ts +0 -17
- package/src/lib/components/drawer/drawer-handle.ts +0 -17
- package/src/lib/components/drawer/drawer-header.ts +0 -17
- package/src/lib/components/drawer/drawer-portal.ts +0 -8
- package/src/lib/components/drawer/drawer-provider.ts +0 -142
- package/src/lib/components/drawer/drawer-title.ts +0 -17
- package/src/lib/components/drawer/drawer-trigger.ts +0 -24
- package/src/lib/components/drawer/drawer.ts +0 -77
- package/src/lib/components/drawer/index.ts +0 -11
- package/src/lib/components/emoji-picker/README.md +0 -151
- package/src/lib/components/emoji-picker/emoji-picker-trigger.ts +0 -48
- package/src/lib/components/emoji-picker/emoji-picker.ts +0 -666
- package/src/lib/components/emoji-picker/index.ts +0 -3
- package/src/lib/components/empty/README.md +0 -72
- package/src/lib/components/empty/empty-content.ts +0 -20
- package/src/lib/components/empty/empty-description.ts +0 -20
- package/src/lib/components/empty/empty-header.ts +0 -17
- package/src/lib/components/empty/empty-media.ts +0 -29
- package/src/lib/components/empty/empty-title.ts +0 -17
- package/src/lib/components/empty/empty.ts +0 -20
- package/src/lib/components/empty/index.ts +0 -6
- package/src/lib/components/field/README.md +0 -326
- package/src/lib/components/field/field-content.ts +0 -20
- package/src/lib/components/field/field-description.ts +0 -22
- package/src/lib/components/field/field-error.ts +0 -18
- package/src/lib/components/field/field-group.ts +0 -20
- package/src/lib/components/field/field-legend.ts +0 -24
- package/src/lib/components/field/field-separator.ts +0 -20
- package/src/lib/components/field/field-set.ts +0 -20
- package/src/lib/components/field/field-title.ts +0 -20
- package/src/lib/components/field/field.ts +0 -89
- package/src/lib/components/field/index.ts +0 -9
- package/src/lib/components/file-upload/README.md +0 -256
- package/src/lib/components/file-upload/file-upload-dropzone.ts +0 -100
- package/src/lib/components/file-upload/file-upload-item-delete.ts +0 -59
- package/src/lib/components/file-upload/file-upload-item-name.ts +0 -17
- package/src/lib/components/file-upload/file-upload-item-preview.ts +0 -52
- package/src/lib/components/file-upload/file-upload-item-progress.ts +0 -33
- package/src/lib/components/file-upload/file-upload-item-size.ts +0 -39
- package/src/lib/components/file-upload/file-upload-item.ts +0 -35
- package/src/lib/components/file-upload/file-upload-list.ts +0 -17
- package/src/lib/components/file-upload/file-upload-trigger.ts +0 -70
- package/src/lib/components/file-upload/file-upload.ts +0 -156
- package/src/lib/components/file-upload/index.ts +0 -11
- package/src/lib/components/hover-card/ARCHITECTURE.md +0 -341
- package/src/lib/components/hover-card/README.md +0 -118
- package/src/lib/components/hover-card/hover-card-portal.ts +0 -142
- package/src/lib/components/hover-card/hover-card-provider.ts +0 -85
- package/src/lib/components/hover-card/hover-card-trigger.ts +0 -75
- package/src/lib/components/hover-card/hover-card.ts +0 -97
- package/src/lib/components/hover-card/index.ts +0 -5
- package/src/lib/components/image-annotator/README.md +0 -132
- package/src/lib/components/image-annotator/image-annotator-types.ts +0 -29
- package/src/lib/components/image-annotator/image-annotator.ts +0 -549
- package/src/lib/components/image-annotator/index.ts +0 -7
- package/src/lib/components/image-compare/README.md +0 -239
- package/src/lib/components/image-compare/image-compare-after.ts +0 -39
- package/src/lib/components/image-compare/image-compare-before.ts +0 -30
- package/src/lib/components/image-compare/image-compare-container.ts +0 -119
- package/src/lib/components/image-compare/image-compare-label.ts +0 -34
- package/src/lib/components/image-compare/image-compare-slider.ts +0 -103
- package/src/lib/components/image-compare/image-compare.ts +0 -79
- package/src/lib/components/image-compare/index.ts +0 -10
- package/src/lib/components/image-cropper/README.md +0 -322
- package/src/lib/components/image-cropper/image-cropper-aspect-ratio.ts +0 -65
- package/src/lib/components/image-cropper/image-cropper-container.ts +0 -294
- package/src/lib/components/image-cropper/image-cropper-controls.ts +0 -95
- package/src/lib/components/image-cropper/image-cropper-preview.ts +0 -66
- package/src/lib/components/image-cropper/image-cropper.ts +0 -459
- package/src/lib/components/image-cropper/index.ts +0 -10
- package/src/lib/components/index.ts +0 -106
- package/src/lib/components/infinite-scroll/README.md +0 -134
- package/src/lib/components/infinite-scroll/index.ts +0 -4
- package/src/lib/components/infinite-scroll/infinite-scroll-end.ts +0 -9
- package/src/lib/components/infinite-scroll/infinite-scroll-loader.ts +0 -9
- package/src/lib/components/infinite-scroll/infinite-scroll.ts +0 -199
- package/src/lib/components/infinite-scroll/virtual-scroll.ts +0 -83
- package/src/lib/components/input/README.md +0 -93
- package/src/lib/components/input/index.ts +0 -1
- package/src/lib/components/input/input.ts +0 -41
- package/src/lib/components/input-group/README.md +0 -60
- package/src/lib/components/input-group/index.ts +0 -6
- package/src/lib/components/input-group/input-group-addon.ts +0 -46
- package/src/lib/components/input-group/input-group-button.ts +0 -49
- package/src/lib/components/input-group/input-group-input.ts +0 -20
- package/src/lib/components/input-group/input-group-text.ts +0 -20
- package/src/lib/components/input-group/input-group-textarea.ts +0 -20
- package/src/lib/components/input-group/input-group.ts +0 -21
- package/src/lib/components/kanban-board/README.md +0 -238
- package/src/lib/components/kanban-board/index.ts +0 -12
- package/src/lib/components/kanban-board/kanban-board.ts +0 -281
- package/src/lib/components/kanban-board/kanban-card.ts +0 -241
- package/src/lib/components/kanban-board/kanban-column.ts +0 -371
- package/src/lib/components/kanban-board/kanban-types.ts +0 -52
- package/src/lib/components/kbd/README.md +0 -58
- package/src/lib/components/kbd/index.ts +0 -2
- package/src/lib/components/kbd/kbd-group.ts +0 -17
- package/src/lib/components/kbd/kbd.ts +0 -20
- package/src/lib/components/label/README.md +0 -90
- package/src/lib/components/label/index.ts +0 -1
- package/src/lib/components/label/label.ts +0 -32
- package/src/lib/components/language-switcher/index.ts +0 -4
- package/src/lib/components/language-switcher/language-button.ts +0 -98
- package/src/lib/components/language-switcher/language-select.ts +0 -65
- package/src/lib/components/language-switcher/language-toggle.ts +0 -98
- package/src/lib/components/language-switcher/language.service.ts +0 -239
- package/src/lib/components/language-switcher/styles.ts +0 -16
- package/src/lib/components/lightbox/README.md +0 -387
- package/src/lib/components/lightbox/index.ts +0 -9
- package/src/lib/components/lightbox/lightbox-container.ts +0 -338
- package/src/lib/components/lightbox/lightbox-gallery.ts +0 -81
- package/src/lib/components/lightbox/lightbox-trigger.ts +0 -19
- package/src/lib/components/lightbox/lightbox.ts +0 -210
- package/src/lib/components/lightbox/lightbox.types.ts +0 -7
- package/src/lib/components/marquee/README.md +0 -183
- package/src/lib/components/marquee/auto-marquee.ts +0 -73
- package/src/lib/components/marquee/index.ts +0 -6
- package/src/lib/components/marquee/marquee-clone.ts +0 -17
- package/src/lib/components/marquee/marquee-fade.ts +0 -53
- package/src/lib/components/marquee/marquee-item.ts +0 -17
- package/src/lib/components/marquee/marquee-text.ts +0 -80
- package/src/lib/components/marquee/marquee.ts +0 -96
- package/src/lib/components/masonry-grid/README.md +0 -204
- package/src/lib/components/masonry-grid/index.ts +0 -4
- package/src/lib/components/masonry-grid/masonry-grid.ts +0 -178
- package/src/lib/components/masonry-grid/masonry-item.ts +0 -66
- package/src/lib/components/masonry-grid/masonry-types.ts +0 -24
- package/src/lib/components/mention-input/README.md +0 -122
- package/src/lib/components/mention-input/index.ts +0 -2
- package/src/lib/components/mention-input/mention-input.ts +0 -279
- package/src/lib/components/menu/README.md +0 -176
- package/src/lib/components/menu/index.ts +0 -11
- package/src/lib/components/menu/menu-item.ts +0 -32
- package/src/lib/components/menu/menu-portal.ts +0 -53
- package/src/lib/components/menu/menu-provider.ts +0 -50
- package/src/lib/components/menu/menu-separator.ts +0 -19
- package/src/lib/components/menu/menu-sub-icon.ts +0 -18
- package/src/lib/components/menu/menu-sub-portal.ts +0 -53
- package/src/lib/components/menu/menu-sub-provider.ts +0 -52
- package/src/lib/components/menu/menu-sub-trigger.ts +0 -34
- package/src/lib/components/menu/menu-sub.ts +0 -41
- package/src/lib/components/menu/menu-trigger.ts +0 -27
- package/src/lib/components/menu/menu.ts +0 -41
- package/src/lib/components/multi-select/README.md +0 -155
- package/src/lib/components/multi-select/index.ts +0 -2
- package/src/lib/components/multi-select/multi-select.ts +0 -394
- package/src/lib/components/native-checkbox/README.md +0 -113
- package/src/lib/components/native-checkbox/index.ts +0 -1
- package/src/lib/components/native-checkbox/native-checkbox.ts +0 -116
- package/src/lib/components/navbar/ARCHITECTURE.md +0 -605
- package/src/lib/components/navbar/README.md +0 -246
- package/src/lib/components/navbar/index.ts +0 -9
- package/src/lib/components/navbar/navbar-actions.ts +0 -28
- package/src/lib/components/navbar/navbar-brand.ts +0 -24
- package/src/lib/components/navbar/navbar-group.ts +0 -28
- package/src/lib/components/navbar/navbar-mobile-link.ts +0 -28
- package/src/lib/components/navbar/navbar-mobile-menu.ts +0 -71
- package/src/lib/components/navbar/navbar-mobile-portal.ts +0 -118
- package/src/lib/components/navbar/navbar-mobile-trigger.ts +0 -51
- package/src/lib/components/navbar/navbar-provider.ts +0 -85
- package/src/lib/components/navbar/navbar.ts +0 -40
- package/src/lib/components/navigation-menu/README.md +0 -135
- package/src/lib/components/navigation-menu/index.ts +0 -8
- package/src/lib/components/navigation-menu/navigation-menu-content.ts +0 -80
- package/src/lib/components/navigation-menu/navigation-menu-indicator.ts +0 -35
- package/src/lib/components/navigation-menu/navigation-menu-item.ts +0 -88
- package/src/lib/components/navigation-menu/navigation-menu-link.ts +0 -29
- package/src/lib/components/navigation-menu/navigation-menu-list.ts +0 -20
- package/src/lib/components/navigation-menu/navigation-menu-trigger.ts +0 -52
- package/src/lib/components/navigation-menu/navigation-menu-viewport.ts +0 -35
- package/src/lib/components/navigation-menu/navigation-menu.ts +0 -39
- package/src/lib/components/notification-center/README.md +0 -365
- package/src/lib/components/notification-center/index.ts +0 -20
- package/src/lib/components/notification-center/notification-center-container.ts +0 -226
- package/src/lib/components/notification-center/notification-center.ts +0 -157
- package/src/lib/components/notification-center/notification-group.ts +0 -198
- package/src/lib/components/notification-center/notification-item.ts +0 -214
- package/src/lib/components/notification-center/notification-types.ts +0 -52
- package/src/lib/components/number-field/README.md +0 -369
- package/src/lib/components/number-field/index.ts +0 -6
- package/src/lib/components/number-field/number-field-decrement.ts +0 -57
- package/src/lib/components/number-field/number-field-increment.ts +0 -58
- package/src/lib/components/number-field/number-field-input-group.ts +0 -37
- package/src/lib/components/number-field/number-field-input.ts +0 -87
- package/src/lib/components/number-field/number-field-scrub-area.ts +0 -74
- package/src/lib/components/number-field/number-field.ts +0 -143
- package/src/lib/components/opt-field/index.ts +0 -7
- package/src/lib/components/opt-field/opt-field-separator.ts +0 -18
- package/src/lib/components/opt-field/opt-field-slot-caret.ts +0 -31
- package/src/lib/components/opt-field/opt-field-slot-char.ts +0 -19
- package/src/lib/components/opt-field/opt-field-slot-group.ts +0 -17
- package/src/lib/components/opt-field/opt-field-slot-input.ts +0 -60
- package/src/lib/components/opt-field/opt-field-slot.ts +0 -111
- package/src/lib/components/opt-field/opt-field.ts +0 -113
- package/src/lib/components/org-chart/README.md +0 -265
- package/src/lib/components/org-chart/index.ts +0 -8
- package/src/lib/components/org-chart/org-chart-node.ts +0 -253
- package/src/lib/components/org-chart/org-chart-types.ts +0 -22
- package/src/lib/components/org-chart/org-chart.ts +0 -67
- package/src/lib/components/pagination/ACCESSIBILITY_REVIEW.md +0 -530
- package/src/lib/components/pagination/KEYBOARD-NAVIGATION.md +0 -356
- package/src/lib/components/pagination/README.md +0 -359
- package/src/lib/components/pagination/REVIEW_SUMMARY.md +0 -55
- package/src/lib/components/pagination/SMART-PAGINATION.md +0 -345
- package/src/lib/components/pagination/index.ts +0 -11
- package/src/lib/components/pagination/pagination-ellipsis.ts +0 -32
- package/src/lib/components/pagination/pagination-first.ts +0 -75
- package/src/lib/components/pagination/pagination-item.ts +0 -15
- package/src/lib/components/pagination/pagination-last.ts +0 -77
- package/src/lib/components/pagination/pagination-link.ts +0 -70
- package/src/lib/components/pagination/pagination-list.ts +0 -17
- package/src/lib/components/pagination/pagination-next.ts +0 -78
- package/src/lib/components/pagination/pagination-page-size-select.ts +0 -44
- package/src/lib/components/pagination/pagination-previous.ts +0 -78
- package/src/lib/components/pagination/pagination.ts +0 -190
- package/src/lib/components/password-field/README.md +0 -247
- package/src/lib/components/password-field/index.ts +0 -7
- package/src/lib/components/password-field/password-field-input-group.ts +0 -32
- package/src/lib/components/password-field/password-field-input.ts +0 -55
- package/src/lib/components/password-field/password-field-requirements.ts +0 -90
- package/src/lib/components/password-field/password-field-strength-bar.ts +0 -64
- package/src/lib/components/password-field/password-field-strength.ts +0 -91
- package/src/lib/components/password-field/password-field-toggle.ts +0 -86
- package/src/lib/components/password-field/password-field.ts +0 -95
- package/src/lib/components/pdf-viewer/README.md +0 -221
- package/src/lib/components/pdf-viewer/index.ts +0 -47
- package/src/lib/components/pdf-viewer/pdf-viewer-container.ts +0 -54
- package/src/lib/components/pdf-viewer/pdf-viewer-content.ts +0 -60
- package/src/lib/components/pdf-viewer/pdf-viewer-download.ts +0 -34
- package/src/lib/components/pdf-viewer/pdf-viewer-empty.ts +0 -62
- package/src/lib/components/pdf-viewer/pdf-viewer-error.ts +0 -73
- package/src/lib/components/pdf-viewer/pdf-viewer-fullscreen.ts +0 -36
- package/src/lib/components/pdf-viewer/pdf-viewer-loading.ts +0 -44
- package/src/lib/components/pdf-viewer/pdf-viewer-nav.ts +0 -30
- package/src/lib/components/pdf-viewer/pdf-viewer-next-page.ts +0 -38
- package/src/lib/components/pdf-viewer/pdf-viewer-page-info.ts +0 -53
- package/src/lib/components/pdf-viewer/pdf-viewer-prev-page.ts +0 -38
- package/src/lib/components/pdf-viewer/pdf-viewer-print.ts +0 -34
- package/src/lib/components/pdf-viewer/pdf-viewer-retry.ts +0 -36
- package/src/lib/components/pdf-viewer/pdf-viewer-root.ts +0 -239
- package/src/lib/components/pdf-viewer/pdf-viewer-rotate-left.ts +0 -34
- package/src/lib/components/pdf-viewer/pdf-viewer-rotate-right.ts +0 -34
- package/src/lib/components/pdf-viewer/pdf-viewer-separator.ts +0 -28
- package/src/lib/components/pdf-viewer/pdf-viewer-spacer.ts +0 -24
- package/src/lib/components/pdf-viewer/pdf-viewer-toolbar-base.ts +0 -34
- package/src/lib/components/pdf-viewer/pdf-viewer-toolbar.ts +0 -391
- package/src/lib/components/pdf-viewer/pdf-viewer-types.ts +0 -52
- package/src/lib/components/pdf-viewer/pdf-viewer-zoom-in.ts +0 -37
- package/src/lib/components/pdf-viewer/pdf-viewer-zoom-out.ts +0 -37
- package/src/lib/components/pdf-viewer/pdf-viewer-zoom-select.ts +0 -61
- package/src/lib/components/pdf-viewer/pdf-viewer-zoom.ts +0 -30
- package/src/lib/components/pdf-viewer/pdf-viewer.ts +0 -417
- package/src/lib/components/phone-input/README.md +0 -173
- package/src/lib/components/phone-input/countries.ts +0 -69
- package/src/lib/components/phone-input/index.ts +0 -4
- package/src/lib/components/phone-input/phone-input-simple.ts +0 -141
- package/src/lib/components/phone-input/phone-input.ts +0 -304
- package/src/lib/components/popover/ARCHITECTURE.md +0 -569
- package/src/lib/components/popover/README.md +0 -247
- package/src/lib/components/popover/index.ts +0 -6
- package/src/lib/components/popover/popover-close.ts +0 -29
- package/src/lib/components/popover/popover-portal.ts +0 -161
- package/src/lib/components/popover/popover-provider.ts +0 -82
- package/src/lib/components/popover/popover-trigger.ts +0 -27
- package/src/lib/components/popover/popover.ts +0 -66
- package/src/lib/components/progress/README.md +0 -75
- package/src/lib/components/progress/index.ts +0 -1
- package/src/lib/components/progress/progress.ts +0 -62
- package/src/lib/components/qr-code/README.md +0 -124
- package/src/lib/components/qr-code/index.ts +0 -3
- package/src/lib/components/qr-code/qr-code-download.ts +0 -105
- package/src/lib/components/qr-code/qr-code.ts +0 -121
- package/src/lib/components/qr-code/qr-generator.ts +0 -479
- package/src/lib/components/radio-group/README.md +0 -273
- package/src/lib/components/radio-group/index.ts +0 -3
- package/src/lib/components/radio-group/radio-field.ts +0 -43
- package/src/lib/components/radio-group/radio-group.ts +0 -18
- package/src/lib/components/radio-group/radio.ts +0 -30
- package/src/lib/components/range-slider/README.md +0 -118
- package/src/lib/components/range-slider/index.ts +0 -1
- package/src/lib/components/range-slider/range-slider.ts +0 -304
- package/src/lib/components/rating-field/README.md +0 -150
- package/src/lib/components/rating-field/index.ts +0 -3
- package/src/lib/components/rating-field/rating-field.ts +0 -87
- package/src/lib/components/rating-field/rating-item-group.ts +0 -73
- package/src/lib/components/rating-field/rating-item.ts +0 -89
- package/src/lib/components/resizable/README.md +0 -133
- package/src/lib/components/resizable/index.ts +0 -4
- package/src/lib/components/resizable/resizable-handle.ts +0 -160
- package/src/lib/components/resizable/resizable-panel-group.ts +0 -38
- package/src/lib/components/resizable/resizable-panel.ts +0 -51
- package/src/lib/components/resizable/resizable.types.ts +0 -1
- package/src/lib/components/scroll-area/README.md +0 -76
- package/src/lib/components/scroll-area/index.ts +0 -2
- package/src/lib/components/scroll-area/scroll-area.ts +0 -87
- package/src/lib/components/scroll-area/scroll-bar.ts +0 -207
- package/src/lib/components/search-input/README.md +0 -99
- package/src/lib/components/search-input/index.ts +0 -6
- package/src/lib/components/search-input/search-input-types.ts +0 -21
- package/src/lib/components/search-input/search-input.ts +0 -302
- package/src/lib/components/select/README.md +0 -175
- package/src/lib/components/select/index.ts +0 -9
- package/src/lib/components/select/select-icon.ts +0 -20
- package/src/lib/components/select/select-input.ts +0 -32
- package/src/lib/components/select/select-item-indicator.ts +0 -20
- package/src/lib/components/select/select-item.ts +0 -48
- package/src/lib/components/select/select-list.ts +0 -42
- package/src/lib/components/select/select-portal.ts +0 -48
- package/src/lib/components/select/select-trigger.ts +0 -36
- package/src/lib/components/select/select-value.ts +0 -32
- package/src/lib/components/select/select.ts +0 -57
- package/src/lib/components/separator/README.md +0 -59
- package/src/lib/components/separator/index.ts +0 -1
- package/src/lib/components/separator/separator.ts +0 -29
- package/src/lib/components/sheet/ARCHITECTURE.md +0 -915
- package/src/lib/components/sheet/README.md +0 -248
- package/src/lib/components/sheet/index.ts +0 -10
- package/src/lib/components/sheet/sheet-close.ts +0 -32
- package/src/lib/components/sheet/sheet-description.ts +0 -20
- package/src/lib/components/sheet/sheet-footer.ts +0 -20
- package/src/lib/components/sheet/sheet-header.ts +0 -17
- package/src/lib/components/sheet/sheet-portal.ts +0 -8
- package/src/lib/components/sheet/sheet-provider.ts +0 -142
- package/src/lib/components/sheet/sheet-title.ts +0 -20
- package/src/lib/components/sheet/sheet-trigger.ts +0 -24
- package/src/lib/components/sheet/sheet.ts +0 -92
- package/src/lib/components/sidebar/README.md +0 -254
- package/src/lib/components/sidebar/index.ts +0 -24
- package/src/lib/components/sidebar/sidebar-content.ts +0 -20
- package/src/lib/components/sidebar/sidebar-footer.ts +0 -17
- package/src/lib/components/sidebar/sidebar-group-action.ts +0 -24
- package/src/lib/components/sidebar/sidebar-group-content.ts +0 -17
- package/src/lib/components/sidebar/sidebar-group-label.ts +0 -23
- package/src/lib/components/sidebar/sidebar-group.ts +0 -17
- package/src/lib/components/sidebar/sidebar-header.ts +0 -17
- package/src/lib/components/sidebar/sidebar-input.ts +0 -20
- package/src/lib/components/sidebar/sidebar-inset.ts +0 -21
- package/src/lib/components/sidebar/sidebar-menu-action.ts +0 -31
- package/src/lib/components/sidebar/sidebar-menu-badge.ts +0 -25
- package/src/lib/components/sidebar/sidebar-menu-button.ts +0 -55
- package/src/lib/components/sidebar/sidebar-menu-item.ts +0 -17
- package/src/lib/components/sidebar/sidebar-menu-skeleton.ts +0 -40
- package/src/lib/components/sidebar/sidebar-menu-sub-button.ts +0 -33
- package/src/lib/components/sidebar/sidebar-menu-sub-item.ts +0 -15
- package/src/lib/components/sidebar/sidebar-menu-sub.ts +0 -21
- package/src/lib/components/sidebar/sidebar-menu.ts +0 -17
- package/src/lib/components/sidebar/sidebar-provider.ts +0 -128
- package/src/lib/components/sidebar/sidebar-rail.ts +0 -39
- package/src/lib/components/sidebar/sidebar-separator.ts +0 -21
- package/src/lib/components/sidebar/sidebar-state.service.ts +0 -33
- package/src/lib/components/sidebar/sidebar-trigger.ts +0 -38
- package/src/lib/components/sidebar/sidebar.ts +0 -120
- package/src/lib/components/signature-pad/README.md +0 -236
- package/src/lib/components/signature-pad/index.ts +0 -8
- package/src/lib/components/signature-pad/signature-pad-canvas.ts +0 -228
- package/src/lib/components/signature-pad/signature-pad-clear-button.ts +0 -48
- package/src/lib/components/signature-pad/signature-pad-color-button.ts +0 -50
- package/src/lib/components/signature-pad/signature-pad-controls.ts +0 -26
- package/src/lib/components/signature-pad/signature-pad-toolbar.ts +0 -25
- package/src/lib/components/signature-pad/signature-pad-undo-button.ts +0 -48
- package/src/lib/components/signature-pad/signature-pad-width-button.ts +0 -50
- package/src/lib/components/signature-pad/signature-pad.ts +0 -97
- package/src/lib/components/skeleton/README.md +0 -80
- package/src/lib/components/skeleton/index.ts +0 -1
- package/src/lib/components/skeleton/skeleton.ts +0 -17
- package/src/lib/components/slider/README.md +0 -106
- package/src/lib/components/slider/index.ts +0 -4
- package/src/lib/components/slider/slider-range.ts +0 -28
- package/src/lib/components/slider/slider-thumb.ts +0 -73
- package/src/lib/components/slider/slider-track.ts +0 -31
- package/src/lib/components/slider/slider.ts +0 -185
- package/src/lib/components/sortable-list/README.md +0 -229
- package/src/lib/components/sortable-list/index.ts +0 -4
- package/src/lib/components/sortable-list/sortable-handle.ts +0 -72
- package/src/lib/components/sortable-list/sortable-item.ts +0 -162
- package/src/lib/components/sortable-list/sortable-list.ts +0 -127
- package/src/lib/components/sortable-list/sortable-overlay.ts +0 -31
- package/src/lib/components/speed-dial/README.md +0 -259
- package/src/lib/components/speed-dial/index.ts +0 -7
- package/src/lib/components/speed-dial/speed-dial-action.ts +0 -99
- package/src/lib/components/speed-dial/speed-dial-types.ts +0 -14
- package/src/lib/components/speed-dial/speed-dial.ts +0 -224
- package/src/lib/components/spinner/README.md +0 -41
- package/src/lib/components/spinner/index.ts +0 -1
- package/src/lib/components/spinner/spinner.ts +0 -20
- package/src/lib/components/split-button/README.md +0 -99
- package/src/lib/components/split-button/index.ts +0 -6
- package/src/lib/components/split-button/split-button-types.ts +0 -14
- package/src/lib/components/split-button/split-button.ts +0 -240
- package/src/lib/components/spotlight/README.md +0 -136
- package/src/lib/components/spotlight/index.ts +0 -5
- package/src/lib/components/spotlight/spotlight-actions.ts +0 -24
- package/src/lib/components/spotlight/spotlight-description.ts +0 -24
- package/src/lib/components/spotlight/spotlight-title.ts +0 -24
- package/src/lib/components/spotlight/spotlight.ts +0 -367
- package/src/lib/components/stat-card/README.md +0 -319
- package/src/lib/components/stat-card/REFACTORING-COMPLETE.md +0 -250
- package/src/lib/components/stat-card/REFACTORING-PLAN.md +0 -471
- package/src/lib/components/stat-card/index.ts +0 -11
- package/src/lib/components/stat-card/stat-card-change.ts +0 -27
- package/src/lib/components/stat-card/stat-card-description.ts +0 -17
- package/src/lib/components/stat-card/stat-card-icon.ts +0 -28
- package/src/lib/components/stat-card/stat-card-label.ts +0 -27
- package/src/lib/components/stat-card/stat-card-types.ts +0 -3
- package/src/lib/components/stat-card/stat-card-value.ts +0 -27
- package/src/lib/components/stat-card/stat-card.ts +0 -34
- package/src/lib/components/stepper/README.md +0 -250
- package/src/lib/components/stepper/index.ts +0 -12
- package/src/lib/components/stepper/stepper-content.ts +0 -25
- package/src/lib/components/stepper/stepper-description.ts +0 -17
- package/src/lib/components/stepper/stepper-item.ts +0 -35
- package/src/lib/components/stepper/stepper-list.ts +0 -26
- package/src/lib/components/stepper/stepper-next.ts +0 -41
- package/src/lib/components/stepper/stepper-previous.ts +0 -42
- package/src/lib/components/stepper/stepper-separator.ts +0 -35
- package/src/lib/components/stepper/stepper-title.ts +0 -17
- package/src/lib/components/stepper/stepper-trigger.ts +0 -67
- package/src/lib/components/stepper/stepper-types.ts +0 -10
- package/src/lib/components/stepper/stepper.ts +0 -46
- package/src/lib/components/switch/README.md +0 -99
- package/src/lib/components/switch/index.ts +0 -1
- package/src/lib/components/switch/switch.ts +0 -56
- package/src/lib/components/table/README.md +0 -105
- package/src/lib/components/table/index.ts +0 -8
- package/src/lib/components/table/table-body.ts +0 -17
- package/src/lib/components/table/table-caption.ts +0 -17
- package/src/lib/components/table/table-cell.ts +0 -17
- package/src/lib/components/table/table-footer.ts +0 -20
- package/src/lib/components/table/table-header-cell.ts +0 -20
- package/src/lib/components/table/table-header.ts +0 -17
- package/src/lib/components/table/table-row.ts +0 -20
- package/src/lib/components/table/table.ts +0 -17
- package/src/lib/components/tabs/README.md +0 -169
- package/src/lib/components/tabs/index.ts +0 -4
- package/src/lib/components/tabs/tab-list.ts +0 -38
- package/src/lib/components/tabs/tab-panel.ts +0 -45
- package/src/lib/components/tabs/tab.ts +0 -45
- package/src/lib/components/tabs/tabs.ts +0 -28
- package/src/lib/components/tag-input/README.md +0 -271
- package/src/lib/components/tag-input/index.ts +0 -5
- package/src/lib/components/tag-input/tag-input-clear.ts +0 -60
- package/src/lib/components/tag-input/tag-input-count.ts +0 -42
- package/src/lib/components/tag-input/tag-input-field.ts +0 -121
- package/src/lib/components/tag-input/tag-input-tag.ts +0 -70
- package/src/lib/components/tag-input/tag-input.ts +0 -118
- package/src/lib/components/textarea/README.md +0 -80
- package/src/lib/components/textarea/index.ts +0 -1
- package/src/lib/components/textarea/textarea.ts +0 -41
- package/src/lib/components/theme-toggle/README.md +0 -258
- package/src/lib/components/theme-toggle/index.ts +0 -4
- package/src/lib/components/theme-toggle/theme-field.ts +0 -40
- package/src/lib/components/theme-toggle/theme-select.ts +0 -56
- package/src/lib/components/theme-toggle/theme-toggle.ts +0 -76
- package/src/lib/components/theme-toggle/theme.service.ts +0 -81
- package/src/lib/components/time-picker/README.md +0 -188
- package/src/lib/components/time-picker/index.ts +0 -5
- package/src/lib/components/time-picker/time-picker-clock.ts +0 -195
- package/src/lib/components/time-picker/time-picker-input.ts +0 -174
- package/src/lib/components/time-picker/time-picker-period.ts +0 -89
- package/src/lib/components/time-picker/time-picker-separator.ts +0 -20
- package/src/lib/components/time-picker/time-picker.ts +0 -87
- package/src/lib/components/timeline/README.md +0 -177
- package/src/lib/components/timeline/index.ts +0 -8
- package/src/lib/components/timeline/timeline-connector.ts +0 -29
- package/src/lib/components/timeline/timeline-content.ts +0 -26
- package/src/lib/components/timeline/timeline-description.ts +0 -17
- package/src/lib/components/timeline/timeline-dot.ts +0 -45
- package/src/lib/components/timeline/timeline-item.ts +0 -28
- package/src/lib/components/timeline/timeline-time.ts +0 -17
- package/src/lib/components/timeline/timeline-title.ts +0 -17
- package/src/lib/components/timeline/timeline.ts +0 -17
- package/src/lib/components/timezone/index.ts +0 -5
- package/src/lib/components/timezone/timezone-badge.ts +0 -85
- package/src/lib/components/timezone/timezone-button.ts +0 -104
- package/src/lib/components/timezone/timezone-display.ts +0 -105
- package/src/lib/components/timezone/timezone-select.ts +0 -87
- package/src/lib/components/timezone/timezone.service.ts +0 -233
- package/src/lib/components/toast/README.md +0 -151
- package/src/lib/components/toast/index.ts +0 -8
- package/src/lib/components/toast/toast-action.ts +0 -27
- package/src/lib/components/toast/toast-close.ts +0 -29
- package/src/lib/components/toast/toast-description.ts +0 -17
- package/src/lib/components/toast/toast-stack.ts +0 -95
- package/src/lib/components/toast/toast-title.ts +0 -17
- package/src/lib/components/toast/toast.ts +0 -64
- package/src/lib/components/toast/toast.types.ts +0 -24
- package/src/lib/components/toast/toaster.ts +0 -67
- package/src/lib/components/toggle/README.md +0 -72
- package/src/lib/components/toggle/index.ts +0 -1
- package/src/lib/components/toggle/toggle.ts +0 -53
- package/src/lib/components/toggle-group/README.md +0 -101
- package/src/lib/components/toggle-group/index.ts +0 -2
- package/src/lib/components/toggle-group/toggle-group-item.ts +0 -62
- package/src/lib/components/toggle-group/toggle-group.ts +0 -53
- package/src/lib/components/toolbar/README.md +0 -76
- package/src/lib/components/toolbar/index.ts +0 -4
- package/src/lib/components/toolbar/toolbar-separator.ts +0 -32
- package/src/lib/components/toolbar/toolbar-widget-group.ts +0 -35
- package/src/lib/components/toolbar/toolbar-widget.ts +0 -48
- package/src/lib/components/toolbar/toolbar.ts +0 -44
- package/src/lib/components/tooltip/ANIMATIONS.md +0 -274
- package/src/lib/components/tooltip/README.md +0 -100
- package/src/lib/components/tooltip/index.ts +0 -3
- package/src/lib/components/tooltip/tooltip-manager.ts +0 -194
- package/src/lib/components/tooltip/tooltip-trigger.ts +0 -148
- package/src/lib/components/tooltip/tooltip.ts +0 -72
- package/src/lib/components/tour-guide/README.md +0 -158
- package/src/lib/components/tour-guide/index.ts +0 -2
- package/src/lib/components/tour-guide/tour-guide.ts +0 -492
- package/src/lib/components/transfer-list/README.md +0 -98
- package/src/lib/components/transfer-list/index.ts +0 -5
- package/src/lib/components/transfer-list/transfer-list-types.ts +0 -11
- package/src/lib/components/transfer-list/transfer-list.ts +0 -434
- package/src/lib/components/tree/README.md +0 -358
- package/src/lib/components/tree/TODO.md +0 -94
- package/src/lib/components/tree/index.ts +0 -6
- package/src/lib/components/tree/tree-item-group.ts +0 -40
- package/src/lib/components/tree/tree-item-icon.ts +0 -17
- package/src/lib/components/tree/tree-item-trigger-icon.ts +0 -26
- package/src/lib/components/tree/tree-item-trigger.ts +0 -51
- package/src/lib/components/tree/tree-item.ts +0 -64
- package/src/lib/components/tree/tree.ts +0 -21
- package/src/lib/components/video-player/README.md +0 -275
- package/src/lib/components/video-player/index.ts +0 -14
- package/src/lib/components/video-player/video-player-big-play-button.ts +0 -35
- package/src/lib/components/video-player/video-player-buffering.ts +0 -36
- package/src/lib/components/video-player/video-player-controls.ts +0 -28
- package/src/lib/components/video-player/video-player-fullscreen-button.ts +0 -38
- package/src/lib/components/video-player/video-player-pip-button.ts +0 -37
- package/src/lib/components/video-player/video-player-play-button.ts +0 -37
- package/src/lib/components/video-player/video-player-progress.ts +0 -56
- package/src/lib/components/video-player/video-player-skip-button.ts +0 -44
- package/src/lib/components/video-player/video-player-speed-button.ts +0 -74
- package/src/lib/components/video-player/video-player-time.ts +0 -31
- package/src/lib/components/video-player/video-player-types.ts +0 -13
- package/src/lib/components/video-player/video-player-video.ts +0 -127
- package/src/lib/components/video-player/video-player-volume.ts +0 -61
- package/src/lib/components/video-player/video-player.ts +0 -139
- package/src/lib/components/virtual-list/README.md +0 -120
- package/src/lib/components/virtual-list/index.ts +0 -2
- package/src/lib/components/virtual-list/virtual-list-types.ts +0 -9
- package/src/lib/components/virtual-list/virtual-list.ts +0 -174
- package/src/lib/layouts/auth-layout.ts +0 -30
- package/src/lib/layouts/index.ts +0 -3
- package/src/lib/layouts/sidebar-layout.ts +0 -37
- package/src/lib/layouts/stacked-layout/README.md +0 -84
- package/src/lib/layouts/stacked-layout/index.ts +0 -1
- package/src/lib/layouts/stacked-layout/stacked-layout.ts +0 -39
- package/tsconfig.json +0 -28
- package/tsconfig.lib.json +0 -12
- package/tsconfig.lib.prod.json +0 -9
|
@@ -1,569 +0,0 @@
|
|
|
1
|
-
# Popover Architecture
|
|
2
|
-
|
|
3
|
-
## Overview
|
|
4
|
-
|
|
5
|
-
The popover component uses a simplified two-signal architecture pattern to ensure smooth animations before DOM cleanup. Unlike dialog/sheet/drawer components, popover has **no backdrop** and uses `cdkConnectedOverlay` for positioning relative to a trigger element.
|
|
6
|
-
|
|
7
|
-
**Popover-Specific Features:**
|
|
8
|
-
|
|
9
|
-
- Uses `cdkConnectedOverlay` directive for trigger-relative positioning
|
|
10
|
-
- No backdrop (closes on outside click via `overlayOutsideClick`)
|
|
11
|
-
- Positioned dynamically based on `side` and `align` inputs
|
|
12
|
-
- Lightweight fade + zoom animations (200ms)
|
|
13
|
-
|
|
14
|
-
## Component Structure
|
|
15
|
-
|
|
16
|
-
```
|
|
17
|
-
ScPopoverProvider (Root State Manager)
|
|
18
|
-
└── ScPopoverTrigger (Trigger Element - provides CdkOverlayOrigin)
|
|
19
|
-
└── ScPopoverPortal (CDK Connected Overlay Manager)
|
|
20
|
-
└── ScPopover (Popover Content - positioned relative to trigger)
|
|
21
|
-
└── ScPopoverClose (Optional)
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
## The Two-Signal Pattern
|
|
25
|
-
|
|
26
|
-
Since popover has no backdrop, we only need to coordinate **one animation** (the popover itself). This simplifies the pattern to just two signals.
|
|
27
|
-
|
|
28
|
-
### Signal 1: `open` (Logical State)
|
|
29
|
-
|
|
30
|
-
**Purpose:** Controls what the popover _should_ be doing
|
|
31
|
-
|
|
32
|
-
```typescript
|
|
33
|
-
// In ScPopoverProvider
|
|
34
|
-
readonly open = model<boolean>(false);
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
**Responsibilities:**
|
|
38
|
-
|
|
39
|
-
- Represents user intent ("should the popover be visible?")
|
|
40
|
-
- Triggers animation state changes
|
|
41
|
-
- When `true`: Triggers entry animation
|
|
42
|
-
- When `false`: Triggers exit animation
|
|
43
|
-
|
|
44
|
-
### Signal 2: `overlayOpen` (Physical State)
|
|
45
|
-
|
|
46
|
-
**Purpose:** Controls whether DOM exists via `cdkConnectedOverlayOpen`
|
|
47
|
-
|
|
48
|
-
```typescript
|
|
49
|
-
// In ScPopoverProvider
|
|
50
|
-
readonly overlayOpen = signal<boolean>(false);
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
**Responsibilities:**
|
|
54
|
-
|
|
55
|
-
- Controls CDK connected overlay attachment/detachment
|
|
56
|
-
- Stays `true` during close animation (critical!)
|
|
57
|
-
- Only becomes `false` after animation completes
|
|
58
|
-
- Ensures animation can play before DOM removal
|
|
59
|
-
- Bound to `[cdkConnectedOverlayOpen]` in the portal template
|
|
60
|
-
|
|
61
|
-
### Why Both Are Needed
|
|
62
|
-
|
|
63
|
-
**The Problem:**
|
|
64
|
-
|
|
65
|
-
CDK connected overlay's lifecycle is tied to the `cdkConnectedOverlayOpen` input:
|
|
66
|
-
|
|
67
|
-
```typescript
|
|
68
|
-
// ❌ This doesn't work:
|
|
69
|
-
<ng-template [cdkConnectedOverlayOpen]="open()">
|
|
70
|
-
<!-- Content appears/disappears instantly -->
|
|
71
|
-
<!-- No time for close animation to play! -->
|
|
72
|
-
</ng-template>
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
**The Solution:**
|
|
76
|
-
|
|
77
|
-
Separate signals allow animation completion:
|
|
78
|
-
|
|
79
|
-
```typescript
|
|
80
|
-
// ✅ This works:
|
|
81
|
-
<ng-template [cdkConnectedOverlayOpen]="overlayOpen()">
|
|
82
|
-
<!-- Physical state - removed AFTER animation -->
|
|
83
|
-
</ng-template>
|
|
84
|
-
|
|
85
|
-
// Meanwhile, open() controls animations:
|
|
86
|
-
if (open()) {
|
|
87
|
-
// Logical state
|
|
88
|
-
state = 'open'; // Entry animation
|
|
89
|
-
} else {
|
|
90
|
-
state = 'closed'; // Exit animation (DOM still mounted!)
|
|
91
|
-
}
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
## Animation Architecture
|
|
95
|
-
|
|
96
|
-
### Single Animated Layer
|
|
97
|
-
|
|
98
|
-
Unlike dialog/sheet/drawer, popover has only **one animated element**:
|
|
99
|
-
|
|
100
|
-
1. **Popover Content** (200ms fade + zoom)
|
|
101
|
-
- Zoom + Fade effects
|
|
102
|
-
- Managed by Tailwind animate classes
|
|
103
|
-
- Completion detected via `animationend` event
|
|
104
|
-
- No backdrop to coordinate with
|
|
105
|
-
|
|
106
|
-
### Popover Content Animations
|
|
107
|
-
|
|
108
|
-
Applied via Tailwind classes in `popover.ts`:
|
|
109
|
-
|
|
110
|
-
```typescript
|
|
111
|
-
protected readonly class = computed(() =>
|
|
112
|
-
cn(
|
|
113
|
-
// Base styles
|
|
114
|
-
'bg-popover text-popover-foreground z-50 w-72 rounded-md border p-4 shadow-md outline-none',
|
|
115
|
-
|
|
116
|
-
// Entry animation (fade + zoom in)
|
|
117
|
-
'animate-in fade-in-0 zoom-in-95 duration-200',
|
|
118
|
-
|
|
119
|
-
// Exit animation (triggered by data-state="closed")
|
|
120
|
-
'data-[state=closed]:animate-out',
|
|
121
|
-
'data-[state=closed]:fade-out-0',
|
|
122
|
-
'data-[state=closed]:zoom-out-95',
|
|
123
|
-
'data-[state=closed]:duration-200',
|
|
124
|
-
),
|
|
125
|
-
);
|
|
126
|
-
```
|
|
127
|
-
|
|
128
|
-
**Animation Flow:**
|
|
129
|
-
|
|
130
|
-
1. `state` signal changes from `'open'` to `'closed'`
|
|
131
|
-
2. `data-state` attribute updates to `"closed"`
|
|
132
|
-
3. Tailwind applies exit animation classes
|
|
133
|
-
4. Animation plays for 200ms
|
|
134
|
-
5. `animationend` event fires
|
|
135
|
-
6. Provider sets `overlayOpen = false`
|
|
136
|
-
7. CDK removes the overlay from DOM
|
|
137
|
-
|
|
138
|
-
**Why Shorter Duration (200ms vs 300ms)?**
|
|
139
|
-
|
|
140
|
-
Popovers are lightweight UI elements that should appear/disappear quickly. The shorter 200ms duration makes them feel more responsive while still providing smooth visual feedback.
|
|
141
|
-
|
|
142
|
-
## Complete Animation Timeline
|
|
143
|
-
|
|
144
|
-
### Opening Sequence
|
|
145
|
-
|
|
146
|
-
```
|
|
147
|
-
User clicks trigger:
|
|
148
|
-
│
|
|
149
|
-
├─ t=0ms: Trigger calls open.set(true)
|
|
150
|
-
│ │
|
|
151
|
-
│ └─ Provider effect:
|
|
152
|
-
│ └─ overlayOpen.set(true) ← Effect responds immediately
|
|
153
|
-
│ └─ cdkConnectedOverlayOpen becomes true
|
|
154
|
-
│ └─ CDK attaches connected overlay ← DOM mounted
|
|
155
|
-
│
|
|
156
|
-
├─ t=0ms: Popover effect (triggered by open):
|
|
157
|
-
│ └─ state.set('open')
|
|
158
|
-
│ └─ data-state="open" → Entry animation starts
|
|
159
|
-
│ ├─ fade-in-0
|
|
160
|
-
│ ├─ zoom-in-95
|
|
161
|
-
│ └─ duration-200
|
|
162
|
-
│
|
|
163
|
-
├─ t=0-200ms: Animation plays
|
|
164
|
-
│
|
|
165
|
-
└─ t=200ms: Animation complete, popover visible
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
### Closing Sequence
|
|
169
|
-
|
|
170
|
-
```
|
|
171
|
-
User clicks outside/presses Escape/clicks close button:
|
|
172
|
-
│
|
|
173
|
-
├─ t=0ms: Portal calls open.set(false)
|
|
174
|
-
│ │
|
|
175
|
-
│ └─ Popover effect (triggered by open):
|
|
176
|
-
│ └─ state.set('closed') ← Triggers animation
|
|
177
|
-
│ └─ data-state="closed" → Exit animation starts
|
|
178
|
-
│ ├─ animate-out
|
|
179
|
-
│ ├─ fade-out-0
|
|
180
|
-
│ ├─ zoom-out-95
|
|
181
|
-
│ └─ duration-200
|
|
182
|
-
│
|
|
183
|
-
├─ IMPORTANT: overlayOpen is STILL true!
|
|
184
|
-
│ └─ DOM remains mounted so animation can play
|
|
185
|
-
│ └─ cdkConnectedOverlayOpen still true
|
|
186
|
-
│
|
|
187
|
-
├─ t=0-200ms: Animation plays
|
|
188
|
-
│
|
|
189
|
-
├─ t=~200ms: Popover animation completes
|
|
190
|
-
│ └─ onAnimationEnd(event) fires
|
|
191
|
-
│ └─ if (state === 'closed' && target === element):
|
|
192
|
-
│ └─ provider.onPopoverAnimationComplete()
|
|
193
|
-
│ └─ overlayOpen.set(false) ← Cleanup triggered!
|
|
194
|
-
│
|
|
195
|
-
└─ t=~200ms: cdkConnectedOverlayOpen becomes false
|
|
196
|
-
└─ CDK detaches overlay ← DOM removed cleanly after animation
|
|
197
|
-
```
|
|
198
|
-
|
|
199
|
-
## No Backdrop Coordination
|
|
200
|
-
|
|
201
|
-
Unlike dialog/sheet/drawer, popover doesn't need to coordinate multiple animations:
|
|
202
|
-
|
|
203
|
-
- ❌ No backdrop animation
|
|
204
|
-
- ❌ No `animationsCompleted` counter
|
|
205
|
-
- ✅ Single animation to track (popover itself)
|
|
206
|
-
- ✅ Simpler cleanup logic
|
|
207
|
-
|
|
208
|
-
```typescript
|
|
209
|
-
// Popover (simplified - no counter needed)
|
|
210
|
-
onPopoverAnimationComplete(): void {
|
|
211
|
-
if (!this.open()) {
|
|
212
|
-
this.overlayOpen.set(false); // Direct cleanup
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
```
|
|
216
|
-
|
|
217
|
-
Compare with dialog/sheet/drawer:
|
|
218
|
-
|
|
219
|
-
```typescript
|
|
220
|
-
// Dialog/Sheet/Drawer (complex - counter needed)
|
|
221
|
-
onDialogAnimationComplete(): void {
|
|
222
|
-
if (!this.open()) {
|
|
223
|
-
this.animationsCompleted.update(n => n + 1); // Increment counter
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
onBackdropAnimationComplete(): void {
|
|
228
|
-
if (!this.open()) {
|
|
229
|
-
this.animationsCompleted.update(n => n + 1); // Wait for both
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
```
|
|
233
|
-
|
|
234
|
-
## State Synchronization
|
|
235
|
-
|
|
236
|
-
### Provider Constructor Effects
|
|
237
|
-
|
|
238
|
-
```typescript
|
|
239
|
-
constructor() {
|
|
240
|
-
// Effect: Sync overlayOpen with open for OPENING
|
|
241
|
-
effect(() => {
|
|
242
|
-
if (this.open()) {
|
|
243
|
-
// Opening: Mount DOM immediately so animation can start
|
|
244
|
-
this.overlayOpen.set(true);
|
|
245
|
-
}
|
|
246
|
-
// Note: When closing (open = false), overlayOpen stays true
|
|
247
|
-
// until animation completes (handled by onPopoverAnimationComplete)
|
|
248
|
-
});
|
|
249
|
-
}
|
|
250
|
-
```
|
|
251
|
-
|
|
252
|
-
**Why no second effect?**
|
|
253
|
-
|
|
254
|
-
Unlike dialog/sheet/drawer, popover doesn't need a second effect to check animation counter completion. Instead, `onPopoverAnimationComplete()` directly sets `overlayOpen = false`.
|
|
255
|
-
|
|
256
|
-
### Popover Constructor Effects
|
|
257
|
-
|
|
258
|
-
```typescript
|
|
259
|
-
constructor() {
|
|
260
|
-
// Effect: Sync animation state with logical state
|
|
261
|
-
effect(() => {
|
|
262
|
-
const isOpen = this.popover.open();
|
|
263
|
-
this.state.set(isOpen ? 'open' : 'closed');
|
|
264
|
-
});
|
|
265
|
-
}
|
|
266
|
-
```
|
|
267
|
-
|
|
268
|
-
### Portal Template Binding
|
|
269
|
-
|
|
270
|
-
```typescript
|
|
271
|
-
// Portal template
|
|
272
|
-
<ng-template
|
|
273
|
-
[cdkConnectedOverlayOpen]="popover.overlayOpen()"
|
|
274
|
-
[cdkConnectedOverlay]="{ origin, usePopover: 'inline' }"
|
|
275
|
-
[cdkConnectedOverlayPositions]="[position()]"
|
|
276
|
-
(overlayOutsideClick)="closePopover()"
|
|
277
|
-
(overlayKeydown)="onKeydown($event)"
|
|
278
|
-
>
|
|
279
|
-
<ng-content />
|
|
280
|
-
</ng-template>
|
|
281
|
-
```
|
|
282
|
-
|
|
283
|
-
**Key Binding:**
|
|
284
|
-
|
|
285
|
-
- `[cdkConnectedOverlayOpen]="popover.overlayOpen()"` - Uses **physical state**, not logical state
|
|
286
|
-
- This delays DOM removal until animation completes
|
|
287
|
-
|
|
288
|
-
## Animation Completion Handling
|
|
289
|
-
|
|
290
|
-
### Popover Component
|
|
291
|
-
|
|
292
|
-
```typescript
|
|
293
|
-
protected onAnimationEnd(event: AnimationEvent): void {
|
|
294
|
-
// Only trigger cleanup when close animation completes
|
|
295
|
-
if (
|
|
296
|
-
this.state() === 'closed' &&
|
|
297
|
-
event.target === this.elementRef.nativeElement
|
|
298
|
-
) {
|
|
299
|
-
this.popover.onPopoverAnimationComplete();
|
|
300
|
-
}
|
|
301
|
-
}
|
|
302
|
-
```
|
|
303
|
-
|
|
304
|
-
**Why check `event.target`?**
|
|
305
|
-
|
|
306
|
-
- `animationend` bubbles from child elements
|
|
307
|
-
- We only care about the popover's own animation
|
|
308
|
-
- Prevents false triggers from child element animations
|
|
309
|
-
|
|
310
|
-
### Provider Component
|
|
311
|
-
|
|
312
|
-
```typescript
|
|
313
|
-
/**
|
|
314
|
-
* Called by popover when its close animation completes
|
|
315
|
-
*/
|
|
316
|
-
onPopoverAnimationComplete(): void {
|
|
317
|
-
if (!this.open()) {
|
|
318
|
-
this.overlayOpen.set(false); // Direct cleanup (no counter)
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
|
-
```
|
|
322
|
-
|
|
323
|
-
**Why check `!this.open()` before setting?**
|
|
324
|
-
|
|
325
|
-
- User might have reopened popover during close animation
|
|
326
|
-
- Guards against race conditions
|
|
327
|
-
- Example: User clicks outside (close starts), then immediately clicks trigger again (reopens)
|
|
328
|
-
- Without this check, overlayOpen would incorrectly be set to false for the new open cycle
|
|
329
|
-
|
|
330
|
-
## Comparison: Popover vs Dialog/Sheet/Drawer
|
|
331
|
-
|
|
332
|
-
### Similarities
|
|
333
|
-
|
|
334
|
-
Both use the two-signal pattern:
|
|
335
|
-
|
|
336
|
-
- ✅ Logical state (`open`) drives animations
|
|
337
|
-
- ✅ Physical state (`overlayOpen`) controls DOM lifecycle
|
|
338
|
-
- ✅ Event-driven animation completion
|
|
339
|
-
- ✅ Guard pattern to prevent race conditions
|
|
340
|
-
|
|
341
|
-
### Differences
|
|
342
|
-
|
|
343
|
-
| Feature | Popover | Dialog/Sheet/Drawer |
|
|
344
|
-
| ----------------- | -------------------------------------- | ----------------------- |
|
|
345
|
-
| **Backdrop** | ❌ None | ✅ ScBackdrop component |
|
|
346
|
-
| **Positioning** | Trigger-relative (cdkConnectedOverlay) | Global (Overlay.create) |
|
|
347
|
-
| **Animations** | 1 (popover only) | 2 (content + backdrop) |
|
|
348
|
-
| **Coordination** | Direct cleanup | Signal counter |
|
|
349
|
-
| **Duration** | 200ms | 300ms |
|
|
350
|
-
| **Outside Click** | overlayOutsideClick | backdropClick |
|
|
351
|
-
|
|
352
|
-
## Key Design Decisions
|
|
353
|
-
|
|
354
|
-
### 1. Separation of Concerns
|
|
355
|
-
|
|
356
|
-
**Decision:** Split logical state (`open`) from physical state (`overlayOpen`)
|
|
357
|
-
|
|
358
|
-
**Why:**
|
|
359
|
-
|
|
360
|
-
- Logical state drives animations
|
|
361
|
-
- Physical state drives DOM lifecycle (via cdkConnectedOverlayOpen)
|
|
362
|
-
- Animation needs time to complete before DOM removal
|
|
363
|
-
- Clean separation makes flow easier to understand
|
|
364
|
-
|
|
365
|
-
### 2. Direct Cleanup (No Counter)
|
|
366
|
-
|
|
367
|
-
**Decision:** Set `overlayOpen = false` directly in animation complete handler
|
|
368
|
-
|
|
369
|
-
**Why:**
|
|
370
|
-
|
|
371
|
-
- Only one animation to track (no backdrop)
|
|
372
|
-
- No need for counter complexity
|
|
373
|
-
- Simpler code, easier to understand
|
|
374
|
-
- Still uses guard pattern for safety
|
|
375
|
-
|
|
376
|
-
### 3. Guard Pattern
|
|
377
|
-
|
|
378
|
-
**Decision:** Check `!open()` before setting `overlayOpen = false`
|
|
379
|
-
|
|
380
|
-
**Why:**
|
|
381
|
-
|
|
382
|
-
- User might reopen during close animation
|
|
383
|
-
- Prevents overlayOpen from being set to false during new open cycle
|
|
384
|
-
- Same guard pattern as dialog/sheet/drawer for consistency
|
|
385
|
-
|
|
386
|
-
### 4. Effect-Based Reactivity
|
|
387
|
-
|
|
388
|
-
**Decision:** Use Angular effects instead of manual subscriptions
|
|
389
|
-
|
|
390
|
-
**Why:**
|
|
391
|
-
|
|
392
|
-
- Automatic cleanup on component destruction
|
|
393
|
-
- Declarative: describes "what" not "how"
|
|
394
|
-
- Runs automatically when dependencies change
|
|
395
|
-
- Easier to reason about than imperative code
|
|
396
|
-
|
|
397
|
-
### 5. Shorter Animation Duration
|
|
398
|
-
|
|
399
|
-
**Decision:** Use 200ms instead of 300ms for animations
|
|
400
|
-
|
|
401
|
-
**Why:**
|
|
402
|
-
|
|
403
|
-
- Popovers are lightweight, ephemeral UI elements
|
|
404
|
-
- Should feel snappy and responsive
|
|
405
|
-
- Still long enough for smooth visual feedback
|
|
406
|
-
- Consistent with typical popover/tooltip timing
|
|
407
|
-
|
|
408
|
-
## Animation Classes Reference
|
|
409
|
-
|
|
410
|
-
### Popover Content Classes
|
|
411
|
-
|
|
412
|
-
```typescript
|
|
413
|
-
// Entry animation
|
|
414
|
-
'animate-in fade-in-0 zoom-in-95 duration-200';
|
|
415
|
-
|
|
416
|
-
// Exit animation (via data-state="closed")
|
|
417
|
-
'data-[state=closed]:animate-out';
|
|
418
|
-
'data-[state=closed]:fade-out-0';
|
|
419
|
-
'data-[state=closed]:zoom-out-95';
|
|
420
|
-
'data-[state=closed]:duration-200';
|
|
421
|
-
```
|
|
422
|
-
|
|
423
|
-
## Accessibility Considerations
|
|
424
|
-
|
|
425
|
-
The animation system preserves accessibility:
|
|
426
|
-
|
|
427
|
-
1. **Focus Management:** Popover receives tabindex="-1" for programmatic focus
|
|
428
|
-
2. **ARIA Attributes:** `role="dialog"` set before animations start
|
|
429
|
-
3. **Screen Readers:** Announce popover immediately (not after animation)
|
|
430
|
-
4. **Keyboard:** Escape key works during animations to trigger close
|
|
431
|
-
5. **Outside Click:** Click outside works during animations to trigger close
|
|
432
|
-
6. **Reduced Motion:** Could add `@media (prefers-reduced-motion)` support
|
|
433
|
-
|
|
434
|
-
## Performance Considerations
|
|
435
|
-
|
|
436
|
-
### Efficient Rendering
|
|
437
|
-
|
|
438
|
-
- Uses `ChangeDetectionStrategy.OnPush` everywhere
|
|
439
|
-
- Effects only run when dependencies change
|
|
440
|
-
- No manual subscriptions to manage
|
|
441
|
-
- CDK handles overlay lifecycle efficiently
|
|
442
|
-
|
|
443
|
-
### Animation Performance
|
|
444
|
-
|
|
445
|
-
- CSS animations (GPU accelerated)
|
|
446
|
-
- Opacity and transform (composited properties)
|
|
447
|
-
- No layout thrashing
|
|
448
|
-
- Minimal JavaScript during animation
|
|
449
|
-
|
|
450
|
-
### Memory Management
|
|
451
|
-
|
|
452
|
-
- Effects auto-cleanup on destroy
|
|
453
|
-
- No timeout leaks (event-driven approach)
|
|
454
|
-
- CDK detaches overlay after use
|
|
455
|
-
- No memory leaks
|
|
456
|
-
|
|
457
|
-
## Connected Overlay Benefits
|
|
458
|
-
|
|
459
|
-
Using `cdkConnectedOverlay` provides:
|
|
460
|
-
|
|
461
|
-
1. **Automatic Positioning**: Positions relative to trigger with collision detection
|
|
462
|
-
2. **Flexible Alignment**: Configure side (top/right/bottom/left) and align (start/center/end)
|
|
463
|
-
3. **Scroll Handling**: Repositions on scroll automatically
|
|
464
|
-
4. **Viewport Constraints**: Stays within viewport bounds
|
|
465
|
-
5. **Direction Detection**: Can flip to opposite side if not enough space
|
|
466
|
-
|
|
467
|
-
## Future Enhancements
|
|
468
|
-
|
|
469
|
-
### Potential Improvements
|
|
470
|
-
|
|
471
|
-
1. **Variable Animation Durations:**
|
|
472
|
-
- Input property for animation duration
|
|
473
|
-
- Configurable timing for different use cases
|
|
474
|
-
|
|
475
|
-
2. **Animation Events:**
|
|
476
|
-
- Output events for animation start/end
|
|
477
|
-
- External components can react to animation state
|
|
478
|
-
|
|
479
|
-
3. **Reduced Motion Support:**
|
|
480
|
-
- Detect `prefers-reduced-motion`
|
|
481
|
-
- Instant show/hide if user prefers
|
|
482
|
-
- Keep accessibility benefits
|
|
483
|
-
|
|
484
|
-
4. **Custom Positioning:**
|
|
485
|
-
- Support for custom ConnectedPosition configurations
|
|
486
|
-
- Fine-grained offset control
|
|
487
|
-
|
|
488
|
-
5. **Hover Triggers:**
|
|
489
|
-
- Support for hover-to-open (with delay)
|
|
490
|
-
- Tooltip-like behavior option
|
|
491
|
-
|
|
492
|
-
## Testing Considerations
|
|
493
|
-
|
|
494
|
-
### What to Test
|
|
495
|
-
|
|
496
|
-
1. **State Transitions:**
|
|
497
|
-
- open: false → true → false
|
|
498
|
-
- overlayOpen follows correctly
|
|
499
|
-
- state syncs with open
|
|
500
|
-
|
|
501
|
-
2. **Animation Timing:**
|
|
502
|
-
- Animation plays for full duration (200ms)
|
|
503
|
-
- DOM not removed early
|
|
504
|
-
- Popover fades and zooms correctly
|
|
505
|
-
|
|
506
|
-
3. **Positioning:**
|
|
507
|
-
- All side/align combinations work
|
|
508
|
-
- Collision detection repositions correctly
|
|
509
|
-
- Stays within viewport bounds
|
|
510
|
-
|
|
511
|
-
4. **Interaction:**
|
|
512
|
-
- Outside click closes popover
|
|
513
|
-
- Escape key closes popover
|
|
514
|
-
- Trigger reopens after close
|
|
515
|
-
|
|
516
|
-
5. **Edge Cases:**
|
|
517
|
-
- Rapid open/close
|
|
518
|
-
- Open during close animation
|
|
519
|
-
- Close during open animation
|
|
520
|
-
|
|
521
|
-
6. **Cleanup:**
|
|
522
|
-
- No memory leaks
|
|
523
|
-
- Effects unsubscribe
|
|
524
|
-
- No hanging timeouts
|
|
525
|
-
|
|
526
|
-
### Testing Strategy
|
|
527
|
-
|
|
528
|
-
```typescript
|
|
529
|
-
// Example test structure
|
|
530
|
-
describe('Popover Animations', () => {
|
|
531
|
-
it('should keep DOM mounted during close animation', async () => {
|
|
532
|
-
// Open popover
|
|
533
|
-
provider.open.set(true);
|
|
534
|
-
fixture.detectChanges();
|
|
535
|
-
|
|
536
|
-
// Close popover
|
|
537
|
-
provider.open.set(false);
|
|
538
|
-
fixture.detectChanges();
|
|
539
|
-
|
|
540
|
-
// Immediately after close - overlayOpen should still be true
|
|
541
|
-
expect(provider.overlayOpen()).toBe(true);
|
|
542
|
-
|
|
543
|
-
// After animation completes - overlayOpen should be false
|
|
544
|
-
await delay(300); // Buffer for 200ms animation
|
|
545
|
-
expect(provider.overlayOpen()).toBe(false);
|
|
546
|
-
});
|
|
547
|
-
});
|
|
548
|
-
```
|
|
549
|
-
|
|
550
|
-
## Summary
|
|
551
|
-
|
|
552
|
-
The popover animation architecture achieves smooth, reliable animations through:
|
|
553
|
-
|
|
554
|
-
1. **Two-signal pattern:** Separates intent (`open`) from DOM lifecycle (`overlayOpen`)
|
|
555
|
-
2. **Event-driven completion:** Popover explicitly signals when animation is done
|
|
556
|
-
3. **Direct cleanup:** No counter needed (only one animation)
|
|
557
|
-
4. **Reactive updates:** Effects respond to state changes automatically
|
|
558
|
-
5. **Robust timing:** No assumptions, handles browser variations
|
|
559
|
-
6. **CDK integration:** Works seamlessly with `cdkConnectedOverlay`
|
|
560
|
-
|
|
561
|
-
This architecture provides:
|
|
562
|
-
|
|
563
|
-
- ✅ Reliable animation completion detection
|
|
564
|
-
- ✅ Clean separation of concerns
|
|
565
|
-
- ✅ Simpler than multi-animation overlay components
|
|
566
|
-
- ✅ No race conditions or timing assumptions
|
|
567
|
-
- ✅ Debuggable signal-based state
|
|
568
|
-
- ✅ Better user experience (smooth, never cut off)
|
|
569
|
-
- ✅ Lightweight and performant (200ms animations)
|