@slotted/angular 0.1.0-beta.1 → 0.1.0-beta.11
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/README.md +4 -0
- package/docs/AGENTS.snippet.md +12 -0
- package/docs/action-bar.json +4 -4
- package/docs/action-bar.md +3 -3
- package/docs/alert.json +7 -1
- package/docs/alert.md +3 -3
- package/docs/app-shell.examples.md +1 -1
- package/docs/app-shell.json +5 -5
- package/docs/app-shell.md +2 -2
- package/docs/avatar.json +22 -1
- package/docs/avatar.md +5 -3
- package/docs/badge.json +7 -1
- package/docs/badge.md +3 -3
- package/docs/button-group.json +2 -0
- package/docs/button-group.md +1 -1
- package/docs/button.json +51 -11
- package/docs/button.md +10 -6
- package/docs/calendar.json +8 -1
- package/docs/calendar.md +3 -2
- package/docs/cascader.json +1 -0
- package/docs/cascader.md +1 -1
- package/docs/chart.examples.md +1 -1
- package/docs/chart.json +10 -1
- package/docs/chart.md +3 -2
- package/docs/checkbox.json +7 -0
- package/docs/checkbox.md +1 -0
- package/docs/code-block.json +92 -92
- package/docs/code-block.md +69 -69
- package/docs/combobox.json +1 -0
- package/docs/combobox.md +1 -1
- package/docs/command-palette.json +1 -0
- package/docs/command-palette.md +1 -1
- package/docs/currency-field.json +40 -1
- package/docs/currency-field.md +5 -1
- package/docs/data-grid.examples.md +2 -2
- package/docs/data-grid.json +45 -7
- package/docs/data-grid.md +3 -1
- package/docs/data-grid.props.md +7 -4
- package/docs/data-list.json +2 -1
- package/docs/data-list.md +1 -1
- package/docs/date-field.json +9 -1
- package/docs/date-field.md +3 -2
- package/docs/date-picker.examples.md +36 -0
- package/docs/date-picker.json +20 -5
- package/docs/date-picker.md +5 -4
- package/docs/datetime-field.json +1 -0
- package/docs/datetime-field.md +1 -1
- package/docs/detail-panel.json +4 -2
- package/docs/detail-panel.md +8 -3
- package/docs/dialog.examples.md +158 -136
- package/docs/dialog.json +36 -11
- package/docs/dialog.md +4 -2
- package/docs/dialog.props.md +1 -1
- package/docs/drawer.json +11 -4
- package/docs/drawer.md +4 -3
- package/docs/entity-picker.json +19 -4
- package/docs/entity-picker.md +8 -6
- package/docs/event-calendar.json +7 -0
- package/docs/event-calendar.md +3 -2
- package/docs/filter-bar.json +118 -118
- package/docs/filter-bar.md +79 -79
- package/docs/form.json +2 -1
- package/docs/form.md +1 -1
- package/docs/guidelines/README.md +27 -0
- package/docs/guidelines/async-feedback.md +129 -0
- package/docs/guidelines/browsing.md +74 -0
- package/docs/guidelines/builders.md +97 -0
- package/docs/guidelines/composition.md +143 -0
- package/docs/guidelines/conversations.md +59 -0
- package/docs/guidelines/errors-and-conflicts.md +71 -0
- package/docs/guidelines/forms.md +202 -0
- package/docs/guidelines/index.md +130 -0
- package/docs/guidelines/layout-alignment.md +105 -0
- package/docs/guidelines/ledgers.md +45 -0
- package/docs/guidelines/list-pages.md +206 -0
- package/docs/guidelines/overviews.md +76 -0
- package/docs/guidelines/own-elements.md +115 -0
- package/docs/guidelines/reading-permissions.md +55 -0
- package/docs/guidelines/record-pages.md +178 -0
- package/docs/guidelines/reports.md +123 -0
- package/docs/guidelines/shell-composition.md +94 -0
- package/docs/guidelines/workspaces.md +46 -0
- package/docs/icon.json +3 -1
- package/docs/icon.md +3 -3
- package/docs/index.md +12 -0
- package/docs/inline-message.json +14 -2
- package/docs/inline-message.md +4 -3
- package/docs/list-item.json +9 -1
- package/docs/list-item.md +3 -3
- package/docs/list.json +19 -1
- package/docs/list.md +3 -1
- package/docs/markdown.json +79 -79
- package/docs/markdown.md +65 -65
- package/docs/menu.json +12 -0
- package/docs/menu.md +2 -0
- package/docs/message.json +7 -1
- package/docs/message.md +3 -3
- package/docs/multi-select.json +1 -0
- package/docs/multi-select.md +1 -1
- package/docs/notification-center.json +4 -0
- package/docs/notification-center.md +2 -2
- package/docs/number-field.json +1 -0
- package/docs/number-field.md +1 -1
- package/docs/otp-input.json +1 -0
- package/docs/otp-input.md +1 -1
- package/docs/page-header.json +22 -5
- package/docs/page-header.md +6 -4
- package/docs/page.json +2 -0
- package/docs/page.md +2 -1
- package/docs/popover.json +1 -1
- package/docs/progress-indicator.json +4 -3
- package/docs/progress-indicator.md +4 -4
- package/docs/prompt-composer.json +41 -1
- package/docs/prompt-composer.md +5 -1
- package/docs/rating.json +5 -3
- package/docs/rating.md +6 -6
- package/docs/section.json +28 -16
- package/docs/section.md +12 -10
- package/docs/segmented-control.json +36 -12
- package/docs/segmented-control.md +17 -1
- package/docs/select.json +1 -0
- package/docs/select.md +1 -1
- package/docs/side-navigation.json +1 -0
- package/docs/side-navigation.md +1 -1
- package/docs/skills/build-own-element/SKILL.md +90 -0
- package/docs/skills/compose-screen/SKILL.md +103 -0
- package/docs/skills/index.md +9 -0
- package/docs/skills/review-screen/SKILL.md +79 -0
- package/docs/skills/theme-app/SKILL.md +98 -0
- package/docs/skills/waiting-states/SKILL.md +143 -0
- package/docs/sparkline.json +5 -2
- package/docs/sparkline.md +4 -4
- package/docs/split-button.json +4 -1
- package/docs/split-button.md +3 -3
- package/docs/stat-card.json +5 -1
- package/docs/stat-card.md +3 -3
- package/docs/table.examples.md +3 -3
- package/docs/table.json +85 -3
- package/docs/table.md +12 -1
- package/docs/tabs.json +17 -7
- package/docs/tabs.md +3 -2
- package/docs/tag.json +14 -4
- package/docs/tag.md +6 -6
- package/docs/tags-input.json +29 -2
- package/docs/tags-input.md +4 -1
- package/docs/text-field.json +2 -1
- package/docs/text-field.md +2 -2
- package/docs/textarea.json +1 -0
- package/docs/textarea.md +1 -1
- package/docs/time-field.json +1 -0
- package/docs/time-field.md +1 -1
- package/docs/timeline.json +138 -132
- package/docs/timeline.md +125 -125
- package/docs/toast.json +8 -1
- package/docs/toast.md +3 -3
- package/docs/toggle-group.json +14 -3
- package/docs/toggle-group.md +3 -3
- package/docs/toggle.json +12 -3
- package/docs/toggle.md +3 -3
- package/docs/tokens.md +467 -0
- package/docs/toolbar.json +1 -1
- package/docs/toolbar.md +1 -1
- package/docs/tour.json +1 -1
- package/docs/typography.json +4 -2
- package/docs/typography.md +5 -5
- package/fesm2022/slotted-angular-accordion.mjs +4 -2
- package/fesm2022/slotted-angular-accordion.mjs.map +1 -1
- package/fesm2022/slotted-angular-action-bar.mjs +27 -12
- package/fesm2022/slotted-angular-action-bar.mjs.map +1 -1
- package/fesm2022/slotted-angular-action-sheet.mjs +48 -29
- package/fesm2022/slotted-angular-action-sheet.mjs.map +1 -1
- package/fesm2022/slotted-angular-alert.mjs +18 -11
- package/fesm2022/slotted-angular-alert.mjs.map +1 -1
- package/fesm2022/slotted-angular-app-shell.mjs +111 -61
- package/fesm2022/slotted-angular-app-shell.mjs.map +1 -1
- package/fesm2022/slotted-angular-aspect-ratio.mjs +4 -2
- package/fesm2022/slotted-angular-aspect-ratio.mjs.map +1 -1
- package/fesm2022/slotted-angular-attachment.mjs +31 -20
- package/fesm2022/slotted-angular-attachment.mjs.map +1 -1
- package/fesm2022/slotted-angular-avatar-group.mjs +9 -6
- package/fesm2022/slotted-angular-avatar-group.mjs.map +1 -1
- package/fesm2022/slotted-angular-avatar.mjs +14 -7
- package/fesm2022/slotted-angular-avatar.mjs.map +1 -1
- package/fesm2022/slotted-angular-badge.mjs +14 -10
- package/fesm2022/slotted-angular-badge.mjs.map +1 -1
- package/fesm2022/slotted-angular-breadcrumb.mjs +26 -18
- package/fesm2022/slotted-angular-breadcrumb.mjs.map +1 -1
- package/fesm2022/slotted-angular-button-group.mjs +7 -4
- package/fesm2022/slotted-angular-button-group.mjs.map +1 -1
- package/fesm2022/slotted-angular-button.mjs +120 -29
- package/fesm2022/slotted-angular-button.mjs.map +1 -1
- package/fesm2022/slotted-angular-calendar.mjs +235 -58
- package/fesm2022/slotted-angular-calendar.mjs.map +1 -1
- package/fesm2022/slotted-angular-card.mjs +18 -16
- package/fesm2022/slotted-angular-card.mjs.map +1 -1
- package/fesm2022/slotted-angular-carousel.mjs +22 -11
- package/fesm2022/slotted-angular-carousel.mjs.map +1 -1
- package/fesm2022/slotted-angular-cascader.mjs +180 -66
- package/fesm2022/slotted-angular-cascader.mjs.map +1 -1
- package/fesm2022/slotted-angular-chart.mjs +53 -20
- package/fesm2022/slotted-angular-chart.mjs.map +1 -1
- package/fesm2022/slotted-angular-checkbox-group.mjs +5 -3
- package/fesm2022/slotted-angular-checkbox-group.mjs.map +1 -1
- package/fesm2022/slotted-angular-checkbox.mjs +23 -9
- package/fesm2022/slotted-angular-checkbox.mjs.map +1 -1
- package/fesm2022/slotted-angular-code-block.mjs +29 -15
- package/fesm2022/slotted-angular-code-block.mjs.map +1 -1
- package/fesm2022/slotted-angular-collapsible.mjs +20 -15
- package/fesm2022/slotted-angular-collapsible.mjs.map +1 -1
- package/fesm2022/slotted-angular-color-picker.mjs +77 -22
- package/fesm2022/slotted-angular-color-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-column-manager.mjs +68 -31
- package/fesm2022/slotted-angular-column-manager.mjs.map +1 -1
- package/fesm2022/slotted-angular-combobox.mjs +118 -39
- package/fesm2022/slotted-angular-combobox.mjs.map +1 -1
- package/fesm2022/slotted-angular-command-palette.mjs +162 -54
- package/fesm2022/slotted-angular-command-palette.mjs.map +1 -1
- package/fesm2022/slotted-angular-container.mjs +6 -4
- package/fesm2022/slotted-angular-container.mjs.map +1 -1
- package/fesm2022/slotted-angular-context-menu.mjs +5 -4
- package/fesm2022/slotted-angular-context-menu.mjs.map +1 -1
- package/fesm2022/slotted-angular-currency-field.mjs +149 -32
- package/fesm2022/slotted-angular-currency-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-dashboard-grid.mjs +142 -63
- package/fesm2022/slotted-angular-dashboard-grid.mjs.map +1 -1
- package/fesm2022/slotted-angular-data-grid.mjs +480 -129
- package/fesm2022/slotted-angular-data-grid.mjs.map +1 -1
- package/fesm2022/slotted-angular-data-list.mjs +83 -50
- package/fesm2022/slotted-angular-data-list.mjs.map +1 -1
- package/fesm2022/slotted-angular-date-field.mjs +74 -25
- package/fesm2022/slotted-angular-date-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-date-picker.mjs +112 -40
- package/fesm2022/slotted-angular-date-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-date-range-picker.mjs +45 -22
- package/fesm2022/slotted-angular-date-range-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-datetime-field.mjs +48 -16
- package/fesm2022/slotted-angular-datetime-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-datetime-picker.mjs +41 -29
- package/fesm2022/slotted-angular-datetime-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-datetime-range-picker.mjs +115 -48
- package/fesm2022/slotted-angular-datetime-range-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-description-list.mjs +33 -19
- package/fesm2022/slotted-angular-description-list.mjs.map +1 -1
- package/fesm2022/slotted-angular-detail-panel.mjs +48 -30
- package/fesm2022/slotted-angular-detail-panel.mjs.map +1 -1
- package/fesm2022/slotted-angular-dialog.mjs +72 -30
- package/fesm2022/slotted-angular-dialog.mjs.map +1 -1
- package/fesm2022/slotted-angular-divider.mjs +7 -5
- package/fesm2022/slotted-angular-divider.mjs.map +1 -1
- package/fesm2022/slotted-angular-drawer.mjs +91 -37
- package/fesm2022/slotted-angular-drawer.mjs.map +1 -1
- package/fesm2022/slotted-angular-entity-picker.mjs +474 -75
- package/fesm2022/slotted-angular-entity-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-event-calendar.mjs +275 -108
- package/fesm2022/slotted-angular-event-calendar.mjs.map +1 -1
- package/fesm2022/slotted-angular-field-group.mjs +14 -7
- package/fesm2022/slotted-angular-field-group.mjs.map +1 -1
- package/fesm2022/slotted-angular-field.mjs +35 -15
- package/fesm2022/slotted-angular-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-filter-bar.mjs +118 -51
- package/fesm2022/slotted-angular-filter-bar.mjs.map +1 -1
- package/fesm2022/slotted-angular-form.mjs +18 -10
- package/fesm2022/slotted-angular-form.mjs.map +1 -1
- package/fesm2022/slotted-angular-fullscreen.mjs +14 -8
- package/fesm2022/slotted-angular-fullscreen.mjs.map +1 -1
- package/fesm2022/slotted-angular-grid.mjs +4 -2
- package/fesm2022/slotted-angular-grid.mjs.map +1 -1
- package/fesm2022/slotted-angular-highlight.mjs +5 -3
- package/fesm2022/slotted-angular-highlight.mjs.map +1 -1
- package/fesm2022/slotted-angular-hover-card.mjs +5 -4
- package/fesm2022/slotted-angular-hover-card.mjs.map +1 -1
- package/fesm2022/slotted-angular-icon.mjs +6 -3
- package/fesm2022/slotted-angular-icon.mjs.map +1 -1
- package/fesm2022/slotted-angular-image.mjs +13 -10
- package/fesm2022/slotted-angular-image.mjs.map +1 -1
- package/fesm2022/slotted-angular-import-export-center.mjs +175 -99
- package/fesm2022/slotted-angular-import-export-center.mjs.map +1 -1
- package/fesm2022/slotted-angular-inline-message.mjs +88 -13
- package/fesm2022/slotted-angular-inline-message.mjs.map +1 -1
- package/fesm2022/slotted-angular-inline.mjs +4 -2
- package/fesm2022/slotted-angular-inline.mjs.map +1 -1
- package/fesm2022/slotted-angular-kbd.mjs +11 -7
- package/fesm2022/slotted-angular-kbd.mjs.map +1 -1
- package/fesm2022/slotted-angular-link.mjs +5 -3
- package/fesm2022/slotted-angular-link.mjs.map +1 -1
- package/fesm2022/slotted-angular-list-item.mjs +21 -18
- package/fesm2022/slotted-angular-list-item.mjs.map +1 -1
- package/fesm2022/slotted-angular-list.mjs +37 -22
- package/fesm2022/slotted-angular-list.mjs.map +1 -1
- package/fesm2022/slotted-angular-listbox.mjs +39 -21
- package/fesm2022/slotted-angular-listbox.mjs.map +1 -1
- package/fesm2022/slotted-angular-loading-overlay.mjs +59 -22
- package/fesm2022/slotted-angular-loading-overlay.mjs.map +1 -1
- package/fesm2022/slotted-angular-markdown.mjs +31 -19
- package/fesm2022/slotted-angular-markdown.mjs.map +1 -1
- package/fesm2022/slotted-angular-menu.mjs +51 -29
- package/fesm2022/slotted-angular-menu.mjs.map +1 -1
- package/fesm2022/slotted-angular-menubar.mjs +4 -2
- package/fesm2022/slotted-angular-menubar.mjs.map +1 -1
- package/fesm2022/slotted-angular-message-scroller.mjs +34 -15
- package/fesm2022/slotted-angular-message-scroller.mjs.map +1 -1
- package/fesm2022/slotted-angular-message.mjs +119 -51
- package/fesm2022/slotted-angular-message.mjs.map +1 -1
- package/fesm2022/slotted-angular-multi-select.mjs +195 -87
- package/fesm2022/slotted-angular-multi-select.mjs.map +1 -1
- package/fesm2022/slotted-angular-navigation-menu.mjs +34 -26
- package/fesm2022/slotted-angular-navigation-menu.mjs.map +1 -1
- package/fesm2022/slotted-angular-notification-center.mjs +108 -65
- package/fesm2022/slotted-angular-notification-center.mjs.map +1 -1
- package/fesm2022/slotted-angular-number-field.mjs +23 -11
- package/fesm2022/slotted-angular-number-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-otp-input.mjs +13 -8
- package/fesm2022/slotted-angular-otp-input.mjs.map +1 -1
- package/fesm2022/slotted-angular-page-header.mjs +90 -48
- package/fesm2022/slotted-angular-page-header.mjs.map +1 -1
- package/fesm2022/slotted-angular-page.mjs +38 -10
- package/fesm2022/slotted-angular-page.mjs.map +1 -1
- package/fesm2022/slotted-angular-pagination.mjs +35 -22
- package/fesm2022/slotted-angular-pagination.mjs.map +1 -1
- package/fesm2022/slotted-angular-popover.mjs +32 -19
- package/fesm2022/slotted-angular-popover.mjs.map +1 -1
- package/fesm2022/slotted-angular-progress-indicator.mjs +236 -52
- package/fesm2022/slotted-angular-progress-indicator.mjs.map +1 -1
- package/fesm2022/slotted-angular-prompt-composer.mjs +57 -20
- package/fesm2022/slotted-angular-prompt-composer.mjs.map +1 -1
- package/fesm2022/slotted-angular-prose.mjs +14 -11
- package/fesm2022/slotted-angular-prose.mjs.map +1 -1
- package/fesm2022/slotted-angular-radio-group.mjs +15 -9
- package/fesm2022/slotted-angular-radio-group.mjs.map +1 -1
- package/fesm2022/slotted-angular-rating.mjs +138 -82
- package/fesm2022/slotted-angular-rating.mjs.map +1 -1
- package/fesm2022/slotted-angular-result-state.mjs +16 -12
- package/fesm2022/slotted-angular-result-state.mjs.map +1 -1
- package/fesm2022/slotted-angular-saved-views.mjs +43 -16
- package/fesm2022/slotted-angular-saved-views.mjs.map +1 -1
- package/fesm2022/slotted-angular-scroll-area.mjs +13 -5
- package/fesm2022/slotted-angular-scroll-area.mjs.map +1 -1
- package/fesm2022/slotted-angular-section.mjs +53 -18
- package/fesm2022/slotted-angular-section.mjs.map +1 -1
- package/fesm2022/slotted-angular-segmented-control.mjs +37 -11
- package/fesm2022/slotted-angular-segmented-control.mjs.map +1 -1
- package/fesm2022/slotted-angular-select.mjs +190 -94
- package/fesm2022/slotted-angular-select.mjs.map +1 -1
- package/fesm2022/slotted-angular-side-navigation.mjs +46 -35
- package/fesm2022/slotted-angular-side-navigation.mjs.map +1 -1
- package/fesm2022/slotted-angular-skeleton.mjs +32 -16
- package/fesm2022/slotted-angular-skeleton.mjs.map +1 -1
- package/fesm2022/slotted-angular-slider.mjs +31 -11
- package/fesm2022/slotted-angular-slider.mjs.map +1 -1
- package/fesm2022/slotted-angular-sparkline.mjs +41 -14
- package/fesm2022/slotted-angular-sparkline.mjs.map +1 -1
- package/fesm2022/slotted-angular-split-button.mjs +37 -11
- package/fesm2022/slotted-angular-split-button.mjs.map +1 -1
- package/fesm2022/slotted-angular-splitter.mjs +11 -9
- package/fesm2022/slotted-angular-splitter.mjs.map +1 -1
- package/fesm2022/slotted-angular-stack.mjs +4 -2
- package/fesm2022/slotted-angular-stack.mjs.map +1 -1
- package/fesm2022/slotted-angular-stat-card.mjs +35 -28
- package/fesm2022/slotted-angular-stat-card.mjs.map +1 -1
- package/fesm2022/slotted-angular-status-indicator.mjs +22 -8
- package/fesm2022/slotted-angular-status-indicator.mjs.map +1 -1
- package/fesm2022/slotted-angular-stepper.mjs +40 -15
- package/fesm2022/slotted-angular-stepper.mjs.map +1 -1
- package/fesm2022/slotted-angular-switch.mjs +15 -10
- package/fesm2022/slotted-angular-switch.mjs.map +1 -1
- package/fesm2022/slotted-angular-table-of-contents.mjs +29 -21
- package/fesm2022/slotted-angular-table-of-contents.mjs.map +1 -1
- package/fesm2022/slotted-angular-table.mjs +243 -73
- package/fesm2022/slotted-angular-table.mjs.map +1 -1
- package/fesm2022/slotted-angular-tabs.mjs +42 -18
- package/fesm2022/slotted-angular-tabs.mjs.map +1 -1
- package/fesm2022/slotted-angular-tag.mjs +19 -12
- package/fesm2022/slotted-angular-tag.mjs.map +1 -1
- package/fesm2022/slotted-angular-tags-input.mjs +253 -28
- package/fesm2022/slotted-angular-tags-input.mjs.map +1 -1
- package/fesm2022/slotted-angular-text-field.mjs +55 -15
- package/fesm2022/slotted-angular-text-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-textarea.mjs +5 -3
- package/fesm2022/slotted-angular-textarea.mjs.map +1 -1
- package/fesm2022/slotted-angular-time-field.mjs +48 -14
- package/fesm2022/slotted-angular-time-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-time-picker.mjs +32 -20
- package/fesm2022/slotted-angular-time-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-time-range-picker.mjs +113 -46
- package/fesm2022/slotted-angular-time-range-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-timeline.mjs +147 -64
- package/fesm2022/slotted-angular-timeline.mjs.map +1 -1
- package/fesm2022/slotted-angular-toast.mjs +43 -31
- package/fesm2022/slotted-angular-toast.mjs.map +1 -1
- package/fesm2022/slotted-angular-toggle-group.mjs +25 -8
- package/fesm2022/slotted-angular-toggle-group.mjs.map +1 -1
- package/fesm2022/slotted-angular-toggle.mjs +9 -4
- package/fesm2022/slotted-angular-toggle.mjs.map +1 -1
- package/fesm2022/slotted-angular-toolbar.mjs +27 -12
- package/fesm2022/slotted-angular-toolbar.mjs.map +1 -1
- package/fesm2022/slotted-angular-tooltip.mjs +15 -6
- package/fesm2022/slotted-angular-tooltip.mjs.map +1 -1
- package/fesm2022/slotted-angular-top-navigation.mjs +64 -44
- package/fesm2022/slotted-angular-top-navigation.mjs.map +1 -1
- package/fesm2022/slotted-angular-tour.mjs +47 -22
- package/fesm2022/slotted-angular-tour.mjs.map +1 -1
- package/fesm2022/slotted-angular-transfer.mjs +69 -30
- package/fesm2022/slotted-angular-transfer.mjs.map +1 -1
- package/fesm2022/slotted-angular-tree.mjs +80 -26
- package/fesm2022/slotted-angular-tree.mjs.map +1 -1
- package/fesm2022/slotted-angular-typography.mjs +8 -4
- package/fesm2022/slotted-angular-typography.mjs.map +1 -1
- package/fesm2022/slotted-angular-upload.mjs +125 -57
- package/fesm2022/slotted-angular-upload.mjs.map +1 -1
- package/fesm2022/slotted-angular-visually-hidden.mjs +4 -2
- package/fesm2022/slotted-angular-visually-hidden.mjs.map +1 -1
- package/fesm2022/slotted-angular-wizard.mjs +163 -65
- package/fesm2022/slotted-angular-wizard.mjs.map +1 -1
- package/package.json +3 -3
- package/types/slotted-angular-accordion.d.ts.map +1 -1
- package/types/slotted-angular-action-bar.d.ts +2 -0
- package/types/slotted-angular-action-bar.d.ts.map +1 -1
- package/types/slotted-angular-action-sheet.d.ts.map +1 -1
- package/types/slotted-angular-alert.d.ts +2 -2
- package/types/slotted-angular-alert.d.ts.map +1 -1
- package/types/slotted-angular-app-shell.d.ts +11 -3
- package/types/slotted-angular-app-shell.d.ts.map +1 -1
- package/types/slotted-angular-aspect-ratio.d.ts.map +1 -1
- package/types/slotted-angular-attachment.d.ts +1 -1
- package/types/slotted-angular-attachment.d.ts.map +1 -1
- package/types/slotted-angular-avatar-group.d.ts.map +1 -1
- package/types/slotted-angular-avatar.d.ts +11 -3
- package/types/slotted-angular-avatar.d.ts.map +1 -1
- package/types/slotted-angular-badge.d.ts +1 -1
- package/types/slotted-angular-badge.d.ts.map +1 -1
- package/types/slotted-angular-breadcrumb.d.ts.map +1 -1
- package/types/slotted-angular-button-group.d.ts +1 -1
- package/types/slotted-angular-button-group.d.ts.map +1 -1
- package/types/slotted-angular-button.d.ts +33 -13
- package/types/slotted-angular-button.d.ts.map +1 -1
- package/types/slotted-angular-calendar.d.ts +30 -2
- package/types/slotted-angular-calendar.d.ts.map +1 -1
- package/types/slotted-angular-card.d.ts.map +1 -1
- package/types/slotted-angular-carousel.d.ts.map +1 -1
- package/types/slotted-angular-cascader.d.ts.map +1 -1
- package/types/slotted-angular-chart.d.ts +10 -0
- package/types/slotted-angular-chart.d.ts.map +1 -1
- package/types/slotted-angular-checkbox-group.d.ts.map +1 -1
- package/types/slotted-angular-checkbox.d.ts +7 -1
- package/types/slotted-angular-checkbox.d.ts.map +1 -1
- package/types/slotted-angular-code-block.d.ts +1 -1
- package/types/slotted-angular-code-block.d.ts.map +1 -1
- package/types/slotted-angular-collapsible.d.ts +1 -1
- package/types/slotted-angular-collapsible.d.ts.map +1 -1
- package/types/slotted-angular-color-picker.d.ts.map +1 -1
- package/types/slotted-angular-column-manager.d.ts.map +1 -1
- package/types/slotted-angular-combobox.d.ts +5 -1
- package/types/slotted-angular-combobox.d.ts.map +1 -1
- package/types/slotted-angular-command-palette.d.ts +10 -1
- package/types/slotted-angular-command-palette.d.ts.map +1 -1
- package/types/slotted-angular-container.d.ts.map +1 -1
- package/types/slotted-angular-context-menu.d.ts.map +1 -1
- package/types/slotted-angular-currency-field.d.ts +63 -15
- package/types/slotted-angular-currency-field.d.ts.map +1 -1
- package/types/slotted-angular-dashboard-grid.d.ts.map +1 -1
- package/types/slotted-angular-data-grid.d.ts +72 -4
- package/types/slotted-angular-data-grid.d.ts.map +1 -1
- package/types/slotted-angular-data-list.d.ts.map +1 -1
- package/types/slotted-angular-date-field.d.ts +11 -1
- package/types/slotted-angular-date-field.d.ts.map +1 -1
- package/types/slotted-angular-date-picker.d.ts +38 -12
- package/types/slotted-angular-date-picker.d.ts.map +1 -1
- package/types/slotted-angular-date-range-picker.d.ts +0 -1
- package/types/slotted-angular-date-range-picker.d.ts.map +1 -1
- package/types/slotted-angular-datetime-field.d.ts.map +1 -1
- package/types/slotted-angular-datetime-picker.d.ts +0 -1
- package/types/slotted-angular-datetime-picker.d.ts.map +1 -1
- package/types/slotted-angular-datetime-range-picker.d.ts +0 -1
- package/types/slotted-angular-datetime-range-picker.d.ts.map +1 -1
- package/types/slotted-angular-description-list.d.ts.map +1 -1
- package/types/slotted-angular-detail-panel.d.ts.map +1 -1
- package/types/slotted-angular-dialog.d.ts +10 -3
- package/types/slotted-angular-dialog.d.ts.map +1 -1
- package/types/slotted-angular-divider.d.ts.map +1 -1
- package/types/slotted-angular-drawer.d.ts +12 -1
- package/types/slotted-angular-drawer.d.ts.map +1 -1
- package/types/slotted-angular-entity-picker.d.ts +63 -15
- package/types/slotted-angular-entity-picker.d.ts.map +1 -1
- package/types/slotted-angular-event-calendar.d.ts +9 -2
- package/types/slotted-angular-event-calendar.d.ts.map +1 -1
- package/types/slotted-angular-field-group.d.ts.map +1 -1
- package/types/slotted-angular-field.d.ts.map +1 -1
- package/types/slotted-angular-filter-bar.d.ts.map +1 -1
- package/types/slotted-angular-form.d.ts.map +1 -1
- package/types/slotted-angular-fullscreen.d.ts.map +1 -1
- package/types/slotted-angular-grid.d.ts.map +1 -1
- package/types/slotted-angular-highlight.d.ts.map +1 -1
- package/types/slotted-angular-hover-card.d.ts.map +1 -1
- package/types/slotted-angular-icon.d.ts +2 -2
- package/types/slotted-angular-icon.d.ts.map +1 -1
- package/types/slotted-angular-image.d.ts.map +1 -1
- package/types/slotted-angular-import-export-center.d.ts.map +1 -1
- package/types/slotted-angular-inline-message.d.ts +25 -25
- package/types/slotted-angular-inline-message.d.ts.map +1 -1
- package/types/slotted-angular-inline.d.ts.map +1 -1
- package/types/slotted-angular-kbd.d.ts.map +1 -1
- package/types/slotted-angular-link.d.ts.map +1 -1
- package/types/slotted-angular-list-item.d.ts +1 -1
- package/types/slotted-angular-list-item.d.ts.map +1 -1
- package/types/slotted-angular-list.d.ts +42 -27
- package/types/slotted-angular-list.d.ts.map +1 -1
- package/types/slotted-angular-listbox.d.ts.map +1 -1
- package/types/slotted-angular-loading-overlay.d.ts.map +1 -1
- package/types/slotted-angular-markdown.d.ts.map +1 -1
- package/types/slotted-angular-menu.d.ts +11 -2
- package/types/slotted-angular-menu.d.ts.map +1 -1
- package/types/slotted-angular-menubar.d.ts.map +1 -1
- package/types/slotted-angular-message-scroller.d.ts.map +1 -1
- package/types/slotted-angular-message.d.ts +1 -1
- package/types/slotted-angular-message.d.ts.map +1 -1
- package/types/slotted-angular-multi-select.d.ts +15 -1
- package/types/slotted-angular-multi-select.d.ts.map +1 -1
- package/types/slotted-angular-navigation-menu.d.ts.map +1 -1
- package/types/slotted-angular-notification-center.d.ts +1 -1
- package/types/slotted-angular-notification-center.d.ts.map +1 -1
- package/types/slotted-angular-number-field.d.ts.map +1 -1
- package/types/slotted-angular-otp-input.d.ts.map +1 -1
- package/types/slotted-angular-page-header.d.ts +15 -6
- package/types/slotted-angular-page-header.d.ts.map +1 -1
- package/types/slotted-angular-page.d.ts.map +1 -1
- package/types/slotted-angular-pagination.d.ts.map +1 -1
- package/types/slotted-angular-popover.d.ts.map +1 -1
- package/types/slotted-angular-progress-indicator.d.ts +8 -1
- package/types/slotted-angular-progress-indicator.d.ts.map +1 -1
- package/types/slotted-angular-prompt-composer.d.ts +11 -2
- package/types/slotted-angular-prompt-composer.d.ts.map +1 -1
- package/types/slotted-angular-prose.d.ts.map +1 -1
- package/types/slotted-angular-radio-group.d.ts.map +1 -1
- package/types/slotted-angular-rating.d.ts +1 -1
- package/types/slotted-angular-rating.d.ts.map +1 -1
- package/types/slotted-angular-result-state.d.ts.map +1 -1
- package/types/slotted-angular-saved-views.d.ts.map +1 -1
- package/types/slotted-angular-scroll-area.d.ts.map +1 -1
- package/types/slotted-angular-section.d.ts +11 -3
- package/types/slotted-angular-section.d.ts.map +1 -1
- package/types/slotted-angular-segmented-control.d.ts +15 -2
- package/types/slotted-angular-segmented-control.d.ts.map +1 -1
- package/types/slotted-angular-select.d.ts +12 -2
- package/types/slotted-angular-select.d.ts.map +1 -1
- package/types/slotted-angular-side-navigation.d.ts.map +1 -1
- package/types/slotted-angular-skeleton.d.ts.map +1 -1
- package/types/slotted-angular-slider.d.ts.map +1 -1
- package/types/slotted-angular-sparkline.d.ts +7 -1
- package/types/slotted-angular-sparkline.d.ts.map +1 -1
- package/types/slotted-angular-split-button.d.ts +2 -2
- package/types/slotted-angular-split-button.d.ts.map +1 -1
- package/types/slotted-angular-splitter.d.ts.map +1 -1
- package/types/slotted-angular-stack.d.ts.map +1 -1
- package/types/slotted-angular-stat-card.d.ts +1 -1
- package/types/slotted-angular-stat-card.d.ts.map +1 -1
- package/types/slotted-angular-status-indicator.d.ts +1 -1
- package/types/slotted-angular-status-indicator.d.ts.map +1 -1
- package/types/slotted-angular-stepper.d.ts +1 -1
- package/types/slotted-angular-stepper.d.ts.map +1 -1
- package/types/slotted-angular-switch.d.ts.map +1 -1
- package/types/slotted-angular-table-of-contents.d.ts.map +1 -1
- package/types/slotted-angular-table.d.ts +63 -6
- package/types/slotted-angular-table.d.ts.map +1 -1
- package/types/slotted-angular-tabs.d.ts +3 -4
- package/types/slotted-angular-tabs.d.ts.map +1 -1
- package/types/slotted-angular-tag.d.ts +1 -1
- package/types/slotted-angular-tag.d.ts.map +1 -1
- package/types/slotted-angular-tags-input.d.ts +33 -1
- package/types/slotted-angular-tags-input.d.ts.map +1 -1
- package/types/slotted-angular-text-field.d.ts.map +1 -1
- package/types/slotted-angular-textarea.d.ts.map +1 -1
- package/types/slotted-angular-theme.d.ts +1 -1
- package/types/slotted-angular-time-field.d.ts.map +1 -1
- package/types/slotted-angular-time-picker.d.ts +0 -1
- package/types/slotted-angular-time-picker.d.ts.map +1 -1
- package/types/slotted-angular-time-range-picker.d.ts +0 -1
- package/types/slotted-angular-time-range-picker.d.ts.map +1 -1
- package/types/slotted-angular-timeline.d.ts +1 -1
- package/types/slotted-angular-timeline.d.ts.map +1 -1
- package/types/slotted-angular-toast.d.ts +3 -3
- package/types/slotted-angular-toast.d.ts.map +1 -1
- package/types/slotted-angular-toggle-group.d.ts +8 -2
- package/types/slotted-angular-toggle-group.d.ts.map +1 -1
- package/types/slotted-angular-toggle.d.ts +1 -1
- package/types/slotted-angular-toggle.d.ts.map +1 -1
- package/types/slotted-angular-toolbar.d.ts +2 -0
- package/types/slotted-angular-toolbar.d.ts.map +1 -1
- package/types/slotted-angular-tooltip.d.ts.map +1 -1
- package/types/slotted-angular-top-navigation.d.ts.map +1 -1
- package/types/slotted-angular-tour.d.ts.map +1 -1
- package/types/slotted-angular-transfer.d.ts.map +1 -1
- package/types/slotted-angular-tree.d.ts.map +1 -1
- package/types/slotted-angular-typography.d.ts +1 -1
- package/types/slotted-angular-typography.d.ts.map +1 -1
- package/types/slotted-angular-upload.d.ts +2 -2
- package/types/slotted-angular-upload.d.ts.map +1 -1
- package/types/slotted-angular-visually-hidden.d.ts.map +1 -1
- package/types/slotted-angular-wizard.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slotted-angular-markdown.mjs","sources":["../../markdown/src/markdown-defaults.ts","../../markdown/src/markdown.ts","../../markdown/src/slotted-angular-markdown.ts"],"sourcesContent":["import { inject, InjectionToken } from '@angular/core';\nimport type { MarkdownNode, MarkdownUrlKind } from '@slotted/core/markdown';\n\n/** Where a link that leaves the application opens. */\nexport type MarkdownExternal = 'new-tab' | 'same-tab';\n\n/** What an application sets once for every document under it. */\nexport interface MarkdownDefaults {\n alerts?: boolean | undefined;\n allow?: readonly string[] | undefined;\n external?: MarkdownExternal | undefined;\n headingAnchors?: boolean | undefined;\n isExternal?: ((href: string) => boolean) | undefined;\n transformUrl?:\n ((url: string, kind: MarkdownUrlKind, node: MarkdownNode) => string | null) | undefined;\n}\n\nexport const MARKDOWN_DEFAULTS = new InjectionToken<MarkdownDefaults>('slotted markdown defaults', {\n providedIn: 'root',\n factory: (): MarkdownDefaults => ({}),\n});\n\n/**\n * An application decides once how its documents treat links, alerts, anchors\n * and URLs. A document that states any of them itself still wins. Its words\n * come from the language in force (`provideSlotted`).\n */\nexport function provideMarkdownDefaults(defaults: MarkdownDefaults) {\n return { provide: MARKDOWN_DEFAULTS, useValue: defaults };\n}\n\nexport function injectMarkdownDefaults(): MarkdownDefaults {\n return inject(MARKDOWN_DEFAULTS);\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChildren,\n DestroyRef,\n Directive,\n effect,\n inject,\n input,\n numberAttribute,\n output,\n signal,\n TemplateRef,\n untracked,\n viewChild,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\nimport { initialLoadingVisibility, nextLoadingVisibility } from '@slotted/core/loading';\nimport { prepareMarkdown } from '@slotted/core/markdown';\nimport type {\n MarkdownAlertElement,\n MarkdownElement,\n MarkdownFootnote,\n MarkdownItemElement,\n MarkdownKind,\n MarkdownNode,\n MarkdownUrlKind,\n} from '@slotted/core/markdown';\nimport type { ChangeRequest } from '@slotted/core/state';\nimport { injectMessages } from '@slotted/angular/i18n';\nimport { markdownMessages, type MarkdownMessages, type PartialMessages } from '@slotted/core/i18n';\nimport { SlAlert, SlAlertContent, SlAlertDescription, SlAlertTitle } from '@slotted/angular/alert';\nimport { SlButton } from '@slotted/angular/button';\nimport { SlCheckbox } from '@slotted/angular/checkbox';\nimport { SlCodeBlock } from '@slotted/angular/code-block';\nimport { SlInlineMessage } from '@slotted/angular/inline-message';\nimport { SlLink } from '@slotted/angular/link';\nimport type { ProseFlow, ProseSize } from '@slotted/angular/prose';\nimport {\n injectProseDefaults,\n SlProse,\n SlProseAnchor,\n SlProseFootnotes,\n SlProseScroll,\n} from '@slotted/angular/prose';\nimport {\n injectSkeletonDefaults,\n SlSkeletonRegion,\n SlSkeletonText,\n} from '@slotted/angular/skeleton';\nimport { SlVisuallyHidden } from '@slotted/angular/visually-hidden';\n\nimport { injectMarkdownDefaults, type MarkdownExternal } from './markdown-defaults';\n\n/** Whether the source arrived. `loading` is separate, because a refresh keeps what is on screen. */\nexport type MarkdownStatus = 'ready' | 'error';\n\n/** What a task checkbox asks for; the box moves when the consumer's tree does. */\nexport interface MarkdownTaskChange {\n index: number;\n checked: boolean;\n offset: number | null;\n request: ChangeRequest<boolean>;\n}\n\n/** Whether the retry was a press with a pointer or with a key. */\nexport type MarkdownRetryReason = 'pointer' | 'keyboard';\n\ntype KeysOf<U> = U extends unknown ? keyof U : never;\ntype ValueOf<U, K extends PropertyKey> = U extends unknown\n ? K extends keyof U\n ? U[K]\n : never\n : never;\n\n/**\n * A prepared element as a template reads it: every field any kind carries,\n * optional. A template names one kind, and Angular's type checker cannot\n * narrow a union on the string the directive was given, so the fields of the\n * kind it names have to be reachable without a cast.\n */\nexport type MarkdownTemplateElement = { readonly kind: MarkdownKind; readonly key: string } & {\n readonly [K in Exclude<KeysOf<MarkdownElement>, 'kind' | 'key'>]?: ValueOf<MarkdownElement, K>;\n};\n\n/** What a node template receives. */\nexport interface MarkdownNodeContext {\n $implicit: MarkdownTemplateElement;\n}\n\n/**\n * Replaces the family's element for one kind — `link`, `code`, `image` — or\n * renders a node type the family does not know — `math`, `html`, a directive\n * — by the node's own `type`. The template receives the prepared element; its\n * children are rendered with `slMarkdownChildren`.\n */\n@Directive({ selector: 'ng-template[slMarkdownNode]', standalone: true })\nexport class SlMarkdownNode {\n readonly kind = input.required<string>({ alias: 'slMarkdownNode' });\n readonly template = inject<TemplateRef<MarkdownNodeContext>>(TemplateRef);\n\n static ngTemplateContextGuard(\n _directive: SlMarkdownNode,\n context: unknown,\n ): context is MarkdownNodeContext {\n return context !== null;\n }\n}\n\n/** The empty part's content, projected in place of `messages.empty`. */\n@Directive({ selector: '[slMarkdownEmpty]', standalone: true })\nexport class SlMarkdownEmpty {}\n\nconst KINDS = new Set<string>([\n 'heading',\n 'paragraph',\n 'blockquote',\n 'alert',\n 'list',\n 'item',\n 'code',\n 'thematicBreak',\n 'table',\n 'text',\n 'emphasis',\n 'strong',\n 'delete',\n 'inlineCode',\n 'break',\n 'link',\n 'image',\n 'footnoteReference',\n] satisfies MarkdownKind[]);\n\n/**\n * A document rendered from a tree, in `prose`'s typography.\n *\n * The family never receives HTML. It takes mdast — remark's output as it is,\n * or marked's through `fromMarkedTokens` — and `prepareMarkdown` from\n * `@slotted/core/markdown` decides everything that is not an element. This\n * component maps each prepared kind to an element, or to the family that\n * already owns it: `slLink`, `slCodeBlock`, `slAlert`, `slCheckbox`.\n *\n * The document is one recursive `ng-template` rendered through\n * `NgTemplateOutlet`, never a recursive component: a component host between\n * a `ul` and its `li`, or between the region and its first block, would break\n * `prose`'s child combinators.\n */\n@Component({\n selector: '[slMarkdown]',\n standalone: true,\n exportAs: 'slMarkdown',\n imports: [\n NgTemplateOutlet,\n SlAlert,\n SlAlertContent,\n SlAlertDescription,\n SlAlertTitle,\n SlButton,\n SlCheckbox,\n SlCodeBlock,\n SlGlyph,\n SlIcon,\n SlInlineMessage,\n SlLink,\n SlProse,\n SlProseAnchor,\n SlProseFootnotes,\n SlProseScroll,\n SlSkeletonRegion,\n SlSkeletonText,\n SlVisuallyHidden,\n ],\n template: `\n @if (status() === 'error') {\n <div data-part=\"error\">\n <p slInlineMessage tone=\"danger\">{{ t('error') }}</p>\n @if (retryable()) {\n <button\n slButton\n type=\"button\"\n size=\"sm\"\n tone=\"secondary\"\n variant=\"outline\"\n (click)=\"retry.emit($event.detail === 0 ? 'keyboard' : 'pointer')\"\n >\n {{ t('retry') }}\n </button>\n }\n </div>\n } @else if (painted()) {\n <div slSkeletonRegion [delay]=\"0\" [minDuration]=\"0\" [messages]=\"{ label: t('loading') }\">\n <div slProse [flow]=\"resolvedFlow()\" [size]=\"size()\">\n <div slSkeletonText lastLineSize=\"62%\" [lines]=\"3\"></div>\n </div>\n </div>\n } @else if (document().empty) {\n @if (!loading()) {\n <p data-part=\"empty\">\n <ng-content select=\"[slMarkdownEmpty]\">{{ t('empty') }}</ng-content>\n </p>\n }\n } @else {\n <div slProse [flow]=\"resolvedFlow()\" [size]=\"size()\">\n <ng-container *ngTemplateOutlet=\"nodes; context: { $implicit: document().children }\" />\n @if (document().footnotes.length > 0) {\n <section slProseFootnotes>\n <h2 slVisuallyHidden [id]=\"document().footnoteLabelId\">\n {{ t('footnotes') }}\n </h2>\n <ol>\n @for (footnote of document().footnotes; track footnote.key) {\n <li [id]=\"footnote.id\">\n <ng-container\n *ngTemplateOutlet=\"nodes; context: { $implicit: footnoteLead(footnote) }\"\n />\n @if (footnoteTail(footnote); as last) {\n <p>\n <ng-container\n *ngTemplateOutlet=\"nodes; context: { $implicit: last.children }\"\n /><ng-container\n *ngTemplateOutlet=\"backrefs; context: { $implicit: footnote }\"\n />\n </p>\n } @else {\n <ng-container *ngTemplateOutlet=\"backrefs; context: { $implicit: footnote }\" />\n }\n </li>\n }\n </ol>\n </section>\n }\n </div>\n }\n\n <ng-template #backrefs let-footnote>\n @for (reference of footnote.references; track reference; let index = $index) {\n <a\n data-part=\"backref\"\n [href]=\"'#' + reference\"\n [attr.aria-label]=\"t('backReference', { number: footnote.number, occurrence: index + 1 })\"\n ><span slIcon><svg slGlyph name=\"arrow-left\"></svg></span\n ></a>\n }\n </ng-template>\n\n <ng-template #nodes let-elements>\n @for (element of elements; track element.key) {\n @if (templateFor(element); as custom) {\n <ng-container *ngTemplateOutlet=\"custom; context: { $implicit: element }\" />\n } @else {\n @switch (element.kind) {\n @case ('text') {\n <ng-container>{{ element.value }}</ng-container>\n }\n @case ('inlineCode') {\n <code>{{ element.value }}</code>\n }\n @case ('break') {\n <br />\n }\n @case ('thematicBreak') {\n <hr />\n }\n @case ('paragraph') {\n <p>\n <ng-container *ngTemplateOutlet=\"nodes; context: { $implicit: element.children }\" />\n </p>\n }\n @case ('emphasis') {\n <em\n ><ng-container *ngTemplateOutlet=\"nodes; context: { $implicit: element.children }\"\n /></em>\n }\n @case ('strong') {\n <strong\n ><ng-container *ngTemplateOutlet=\"nodes; context: { $implicit: element.children }\"\n /></strong>\n }\n @case ('delete') {\n <del\n ><ng-container *ngTemplateOutlet=\"nodes; context: { $implicit: element.children }\"\n /></del>\n }\n @case ('blockquote') {\n <blockquote>\n <ng-container *ngTemplateOutlet=\"nodes; context: { $implicit: element.children }\" />\n </blockquote>\n }\n @case ('heading') {\n @switch (element.level) {\n @case (1) {\n <h1 [id]=\"element.id\">\n <ng-container *ngTemplateOutlet=\"heading; context: { $implicit: element }\" />\n </h1>\n }\n @case (2) {\n <h2 [id]=\"element.id\">\n <ng-container *ngTemplateOutlet=\"heading; context: { $implicit: element }\" />\n </h2>\n }\n @case (3) {\n <h3 [id]=\"element.id\">\n <ng-container *ngTemplateOutlet=\"heading; context: { $implicit: element }\" />\n </h3>\n }\n @case (4) {\n <h4 [id]=\"element.id\">\n <ng-container *ngTemplateOutlet=\"heading; context: { $implicit: element }\" />\n </h4>\n }\n @case (5) {\n <h5 [id]=\"element.id\">\n <ng-container *ngTemplateOutlet=\"heading; context: { $implicit: element }\" />\n </h5>\n }\n @default {\n <h6 [id]=\"element.id\">\n <ng-container *ngTemplateOutlet=\"heading; context: { $implicit: element }\" />\n </h6>\n }\n }\n }\n @case ('alert') {\n <div data-part=\"embed\">\n <section slAlert reach=\"section\" live=\"off\" [tone]=\"element.tone\">\n <div slAlertContent>\n <div slAlertTitle>{{ alertTitle(element) }}</div>\n <div slAlertDescription>\n <div data-part=\"alert-body\">\n <ng-container\n *ngTemplateOutlet=\"nodes; context: { $implicit: element.children }\"\n />\n </div>\n </div>\n </div>\n </section>\n </div>\n }\n @case ('list') {\n @if (element.ordered) {\n <ol\n [attr.data-part]=\"element.task ? 'task-list' : null\"\n [attr.start]=\"element.start\"\n >\n <ng-container\n *ngTemplateOutlet=\"nodes; context: { $implicit: element.children }\"\n />\n </ol>\n } @else {\n <ul [attr.data-part]=\"element.task ? 'task-list' : null\">\n <ng-container\n *ngTemplateOutlet=\"nodes; context: { $implicit: element.children }\"\n />\n </ul>\n }\n }\n @case ('item') {\n @if (element.checked === null) {\n <li>\n <ng-container\n *ngTemplateOutlet=\"nodes; context: { $implicit: element.children }\"\n />\n </li>\n } @else {\n <li data-part=\"task\">\n <div\n slCheckbox\n [checked]=\"element.checked\"\n [readOnly]=\"!editableTasks() || undefined\"\n (checkedChange)=\"onTask(element, $event)\"\n >\n <span slVisuallyHidden>{{ element.label }}</span>\n </div>\n <div data-part=\"task-body\">\n <ng-container\n *ngTemplateOutlet=\"nodes; context: { $implicit: element.children }\"\n />\n </div>\n </li>\n }\n }\n @case ('code') {\n <div data-part=\"embed\">\n <div\n slCodeBlock\n [code]=\"element.code\"\n [language]=\"element.language ?? 'text'\"\n [title]=\"element.title ?? undefined\"\n [lineNumbers]=\"element.lineNumbers || undefined\"\n [marks]=\"\n element.highlight === null ? undefined : { highlight: element.highlight }\n \"\n ></div>\n </div>\n }\n @case ('table') {\n <div slProseScroll>\n <table>\n <thead>\n <tr>\n @for (cell of element.head; track cell.key) {\n <th scope=\"col\" [attr.data-align]=\"cell.align\">\n <ng-container\n *ngTemplateOutlet=\"nodes; context: { $implicit: cell.children }\"\n />\n </th>\n }\n </tr>\n </thead>\n @if (element.rows.length > 0) {\n <tbody>\n @for (row of element.rows; track $index) {\n <tr>\n @for (cell of row; track cell.key) {\n <td [attr.data-align]=\"cell.align\">\n <ng-container\n *ngTemplateOutlet=\"nodes; context: { $implicit: cell.children }\"\n />\n </td>\n }\n </tr>\n }\n </tbody>\n }\n </table>\n </div>\n }\n @case ('link') {\n @if (element.external && resolvedExternal() === 'new-tab') {\n <a slLink external [href]=\"element.href\" [attr.title]=\"element.title\"\n ><ng-container\n *ngTemplateOutlet=\"nodes; context: { $implicit: element.children }\"\n /></a>\n } @else {\n <a [href]=\"element.href\" [attr.title]=\"element.title\"\n ><ng-container\n *ngTemplateOutlet=\"nodes; context: { $implicit: element.children }\"\n /></a>\n }\n }\n @case ('image') {\n <img\n [src]=\"element.src\"\n [alt]=\"element.alt\"\n [attr.title]=\"element.title\"\n loading=\"lazy\"\n decoding=\"async\"\n />\n }\n @case ('footnoteReference') {\n <sup\n ><a\n data-footnote-ref=\"\"\n [id]=\"element.id\"\n [href]=\"'#' + element.target\"\n [attr.aria-describedby]=\"document().footnoteLabelId\"\n >{{ element.number }}</a\n ></sup\n >\n }\n @case ('custom') {\n <ng-container *ngTemplateOutlet=\"nodes; context: { $implicit: element.children }\" />\n }\n }\n }\n }\n </ng-template>\n\n <ng-template #heading let-element>\n <ng-container *ngTemplateOutlet=\"nodes; context: { $implicit: element.children }\" />\n @if (resolvedHeadingAnchors()) {\n <a\n slProseAnchor\n [href]=\"'#' + element.id\"\n [attr.aria-label]=\"t('anchor', { heading: element.text })\"\n >#</a\n >\n }\n </ng-template>\n `,\n styleUrl: '../../../styles/src/markdown/markdown.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-ui': 'markdown',\n 'data-part': 'root',\n '[attr.data-status]': 'status()',\n '[attr.data-flow]': 'resolvedFlow()',\n '[attr.data-loading]': \"painted() ? '' : null\",\n '[attr.data-empty]': \"status() === 'ready' && !painted() && document().empty ? '' : null\",\n '[attr.data-streaming]': \"streaming() ? '' : null\",\n '[attr.aria-busy]': \"streaming() || painted() ? 'true' : null\",\n },\n})\nexport class SlMarkdown {\n /** The document, as mdast — remark's `fromMarkdown`, or `fromMarkedTokens(marked.lexer(source))`. */\n readonly tree = input<MarkdownNode | null | undefined>(undefined);\n readonly size = input<ProseSize | undefined>(undefined);\n readonly flow = input<ProseFlow | undefined>(undefined);\n readonly status = input<MarkdownStatus>('ready');\n readonly loading = input(false, { transform: booleanAttribute });\n readonly streaming = input(false, { transform: booleanAttribute });\n readonly external = input<MarkdownExternal | undefined>(undefined);\n readonly headingAnchors = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n readonly headingOffset = input(0, { transform: numberAttribute });\n readonly idPrefix = input('');\n readonly alerts = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n readonly allow = input<readonly string[] | undefined>(undefined);\n readonly unwrapDisallowed = input(false, { transform: booleanAttribute });\n readonly transformUrl = input<\n ((url: string, kind: MarkdownUrlKind, node: MarkdownNode) => string | null) | undefined\n >(undefined);\n readonly isExternal = input<((href: string) => boolean) | undefined>(undefined);\n /**\n * Words laid over the catalog of the language in force, key by key: the\n * empty, error, retry and loading texts, the footnotes heading, the back\n * link, the heading permalink, and each alert's title (`alerts.note`).\n */\n readonly messages = input<PartialMessages<MarkdownMessages> | undefined>(undefined);\n /**\n * Enables the task checkboxes. React reads the presence of its handler; an\n * Angular output cannot tell whether anyone listens, so the template says so.\n */\n readonly editableTasks = input(false, { transform: booleanAttribute });\n /** Draws the retry button in the error part, for the same reason. */\n readonly retryable = input(false, { transform: booleanAttribute });\n\n /** A task the reader ticked, with its index; the box moves when the tree does. */\n readonly taskChange = output<MarkdownTaskChange>();\n readonly retry = output<MarkdownRetryReason>();\n\n private readonly templates = contentChildren(SlMarkdownNode);\n private readonly nodesTemplate = viewChild.required<TemplateRef<unknown>>('nodes');\n\n private readonly defaults = injectMarkdownDefaults();\n private readonly proseDefaults = injectProseDefaults();\n private readonly skeletonDefaults = injectSkeletonDefaults();\n\n protected readonly resolvedFlow = computed(() => this.flow() ?? this.proseDefaults.flow);\n protected readonly resolvedExternal = computed(\n () => this.external() ?? this.defaults.external ?? 'new-tab',\n );\n protected readonly resolvedHeadingAnchors = computed(\n () => this.headingAnchors() ?? this.defaults.headingAnchors ?? false,\n );\n /** The family's words in the language in force, with this document's `messages` laid over them. */\n readonly t = injectMessages(markdownMessages, this.messages);\n\n private readonly templateMap = computed(() => {\n const map = new Map<string, TemplateRef<MarkdownNodeContext>>();\n for (const node of this.templates()) map.set(node.kind(), node.template);\n return map;\n });\n\n /** The prepared document: headings, footnotes and the outline a table of contents reads. */\n readonly document = computed(() =>\n prepareMarkdown(this.tree(), {\n alerts: this.alerts() ?? this.defaults.alerts ?? true,\n allow: this.allow() ?? this.defaults.allow,\n custom: [...this.templateMap().keys()].filter((kind) => !KINDS.has(kind)),\n headingOffset: this.headingOffset(),\n idPrefix: this.idPrefix(),\n isExternal: this.isExternal() ?? this.defaults.isExternal,\n transformUrl: this.transformUrl() ?? this.defaults.transformUrl,\n unwrapDisallowed: this.unwrapDisallowed(),\n }),\n );\n\n /*\n * The placeholder and the document are two different trees, so the family\n * decides which one is on screen with the machine `skeleton` uses, reading\n * `skeleton`'s own defaults for how long to wait and how long to hold.\n */\n protected readonly painted = signal(false);\n private visibility = initialLoadingVisibility;\n private timer: ReturnType<typeof setTimeout> | undefined;\n\n constructor() {\n effect(() => {\n const loading = this.loading();\n untracked(() => this.tick(loading));\n });\n inject(DestroyRef).onDestroy(() => clearTimeout(this.timer));\n }\n\n /** @internal The template a node's children render through, for `slMarkdownChildren`. */\n childrenTemplate(): TemplateRef<unknown> {\n return this.nodesTemplate();\n }\n\n protected alertTitle(element: MarkdownAlertElement): string {\n return this.t(`alerts.${element.type}`);\n }\n\n protected templateFor(element: MarkdownElement): TemplateRef<MarkdownNodeContext> | undefined {\n return this.templateMap().get(element.kind === 'custom' ? element.type : element.kind);\n }\n\n protected footnoteLead(footnote: MarkdownFootnote): readonly MarkdownElement[] {\n return footnote.children.at(-1)?.kind === 'paragraph'\n ? footnote.children.slice(0, -1)\n : footnote.children;\n }\n\n protected footnoteTail(footnote: MarkdownFootnote) {\n const last = footnote.children.at(-1);\n return last?.kind === 'paragraph' ? last : null;\n }\n\n protected onTask(element: MarkdownItemElement, request: ChangeRequest<boolean>): void {\n this.taskChange.emit({\n checked: request.value,\n index: element.task ?? 0,\n offset: element.offset,\n request,\n });\n }\n\n private tick(loading: boolean): void {\n const answer = nextLoadingVisibility({\n delay: this.skeletonDefaults.delay ?? 0,\n loading,\n minDuration: this.skeletonDefaults.minDuration ?? 0,\n now: Date.now(),\n state: this.visibility,\n });\n this.visibility = answer.state;\n this.painted.set(answer.state.visible);\n clearTimeout(this.timer);\n if (answer.wait !== null) {\n this.timer = setTimeout(() => this.tick(this.loading()), answer.wait);\n }\n }\n}\n\n/**\n * Renders an element's children inside a node template, adding no element of\n * its own: `<ng-container [slMarkdownChildren]=\"element\" />`.\n */\n@Directive({ selector: '[slMarkdownChildren]', standalone: true })\nexport class SlMarkdownChildren {\n readonly element = input.required<{ readonly children?: readonly MarkdownElement[] }>({\n alias: 'slMarkdownChildren',\n });\n private readonly markdown = inject(SlMarkdown);\n private readonly container = inject(ViewContainerRef);\n\n constructor() {\n effect(() => {\n const children = this.element().children ?? [];\n untracked(() => {\n this.container.clear();\n this.container.createEmbeddedView(this.markdown.childrenTemplate(), {\n $implicit: children,\n });\n });\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"slotted-angular-markdown.mjs","sources":["../../markdown/src/markdown-defaults.ts","../../markdown/src/markdown.ts","../../markdown/src/slotted-angular-markdown.ts"],"sourcesContent":["import { inject, InjectionToken } from '@angular/core';\nimport type { MarkdownNode, MarkdownUrlKind } from '@slotted/core/markdown';\n\n/** Where a link that leaves the application opens. */\nexport type MarkdownExternal = 'new-tab' | 'same-tab';\n\n/** What an application sets once for every document under it. */\nexport interface MarkdownDefaults {\n alerts?: boolean | undefined;\n allow?: readonly string[] | undefined;\n external?: MarkdownExternal | undefined;\n headingAnchors?: boolean | undefined;\n isExternal?: ((href: string) => boolean) | undefined;\n transformUrl?:\n ((url: string, kind: MarkdownUrlKind, node: MarkdownNode) => string | null) | undefined;\n}\n\nexport const MARKDOWN_DEFAULTS = new InjectionToken<MarkdownDefaults>('slotted markdown defaults', {\n providedIn: 'root',\n factory: (): MarkdownDefaults => ({}),\n});\n\n/**\n * An application decides once how its documents treat links, alerts, anchors\n * and URLs. A document that states any of them itself still wins. Its words\n * come from the language in force (`provideSlotted`).\n */\nexport function provideMarkdownDefaults(defaults: MarkdownDefaults) {\n return { provide: MARKDOWN_DEFAULTS, useValue: defaults };\n}\n\nexport function injectMarkdownDefaults(): MarkdownDefaults {\n return inject(MARKDOWN_DEFAULTS);\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChildren,\n DestroyRef,\n Directive,\n effect,\n inject,\n input,\n numberAttribute,\n output,\n signal,\n TemplateRef,\n untracked,\n viewChild,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\nimport { initialLoadingVisibility, nextLoadingVisibility } from '@slotted/core/loading';\nimport { prepareMarkdown } from '@slotted/core/markdown';\nimport type {\n MarkdownAlertElement,\n MarkdownElement,\n MarkdownFootnote,\n MarkdownItemElement,\n MarkdownKind,\n MarkdownNode,\n MarkdownUrlKind,\n} from '@slotted/core/markdown';\nimport type { ChangeRequest } from '@slotted/core/state';\nimport { injectMessages } from '@slotted/angular/i18n';\nimport { markdownMessages, type MarkdownMessages, type PartialMessages } from '@slotted/core/i18n';\nimport { SlAlert, SlAlertContent, SlAlertDescription, SlAlertTitle } from '@slotted/angular/alert';\nimport { SlButton } from '@slotted/angular/button';\nimport { SlCheckbox } from '@slotted/angular/checkbox';\nimport { SlCodeBlock } from '@slotted/angular/code-block';\nimport { SlInlineMessage } from '@slotted/angular/inline-message';\nimport { SlLink } from '@slotted/angular/link';\nimport type { ProseFlow, ProseSize } from '@slotted/angular/prose';\nimport {\n injectProseDefaults,\n SlProse,\n SlProseAnchor,\n SlProseFootnotes,\n SlProseScroll,\n} from '@slotted/angular/prose';\nimport {\n injectSkeletonDefaults,\n SlSkeletonRegion,\n SlSkeletonText,\n} from '@slotted/angular/skeleton';\nimport { SlVisuallyHidden } from '@slotted/angular/visually-hidden';\n\nimport { injectMarkdownDefaults, type MarkdownExternal } from './markdown-defaults';\n\n/** Whether the source arrived. `loading` is separate, because a refresh keeps what is on screen. */\nexport type MarkdownStatus = 'ready' | 'error';\n\n/** What a task checkbox asks for; the box moves when the consumer's tree does. */\nexport interface MarkdownTaskChange {\n index: number;\n checked: boolean;\n offset: number | null;\n request: ChangeRequest<boolean>;\n}\n\n/** Whether the retry was a press with a pointer or with a key. */\nexport type MarkdownRetryReason = 'pointer' | 'keyboard';\n\ntype KeysOf<U> = U extends unknown ? keyof U : never;\ntype ValueOf<U, K extends PropertyKey> = U extends unknown\n ? K extends keyof U\n ? U[K]\n : never\n : never;\n\n/**\n * A prepared element as a template reads it: every field any kind carries,\n * optional. A template names one kind, and Angular's type checker cannot\n * narrow a union on the string the directive was given, so the fields of the\n * kind it names have to be reachable without a cast.\n */\nexport type MarkdownTemplateElement = { readonly kind: MarkdownKind; readonly key: string } & {\n readonly [K in Exclude<KeysOf<MarkdownElement>, 'kind' | 'key'>]?: ValueOf<MarkdownElement, K>;\n};\n\n/** What a node template receives. */\nexport interface MarkdownNodeContext {\n $implicit: MarkdownTemplateElement;\n}\n\n/**\n * Replaces the family's element for one kind — `link`, `code`, `image` — or\n * renders a node type the family does not know — `math`, `html`, a directive\n * — by the node's own `type`. The template receives the prepared element; its\n * children are rendered with `slMarkdownChildren`.\n */\n@Directive({ selector: 'ng-template[slMarkdownNode]', standalone: true })\nexport class SlMarkdownNode {\n readonly kind = input.required<string>({ alias: 'slMarkdownNode' });\n readonly template = inject<TemplateRef<MarkdownNodeContext>>(TemplateRef);\n\n static ngTemplateContextGuard(\n _directive: SlMarkdownNode,\n context: unknown,\n ): context is MarkdownNodeContext {\n return context !== null;\n }\n}\n\n/** The empty part's content, projected in place of `messages.empty`. */\n@Directive({ selector: '[slMarkdownEmpty]', standalone: true })\nexport class SlMarkdownEmpty {}\n\nconst KINDS = new Set<string>([\n 'heading',\n 'paragraph',\n 'blockquote',\n 'alert',\n 'list',\n 'item',\n 'code',\n 'thematicBreak',\n 'table',\n 'text',\n 'emphasis',\n 'strong',\n 'delete',\n 'inlineCode',\n 'break',\n 'link',\n 'image',\n 'footnoteReference',\n] satisfies MarkdownKind[]);\n\n/**\n * A document rendered from a tree, in `prose`'s typography.\n *\n * The family never receives HTML. It takes mdast — remark's output as it is,\n * or marked's through `fromMarkedTokens` — and `prepareMarkdown` from\n * `@slotted/core/markdown` decides everything that is not an element. This\n * component maps each prepared kind to an element, or to the family that\n * already owns it: `slLink`, `slCodeBlock`, `slAlert`, `slCheckbox`.\n *\n * The document is one recursive `ng-template` rendered through\n * `NgTemplateOutlet`, never a recursive component: a component host between\n * a `ul` and its `li`, or between the region and its first block, would break\n * `prose`'s child combinators.\n */\n@Component({\n selector: '[slMarkdown]',\n standalone: true,\n exportAs: 'slMarkdown',\n imports: [\n NgTemplateOutlet,\n SlAlert,\n SlAlertContent,\n SlAlertDescription,\n SlAlertTitle,\n SlButton,\n SlCheckbox,\n SlCodeBlock,\n SlGlyph,\n SlIcon,\n SlInlineMessage,\n SlLink,\n SlProse,\n SlProseAnchor,\n SlProseFootnotes,\n SlProseScroll,\n SlSkeletonRegion,\n SlSkeletonText,\n SlVisuallyHidden,\n ],\n template: `\n @if (status() === 'error') {\n <div data-part=\"error\" data-part-error=\"\">\n <p slInlineMessage tone=\"danger\">{{ t('error') }}</p>\n @if (retryable()) {\n <button\n slButton\n type=\"button\"\n size=\"sm\"\n tone=\"secondary\"\n variant=\"outline\"\n (click)=\"retry.emit($event.detail === 0 ? 'keyboard' : 'pointer')\"\n >\n {{ t('retry') }}\n </button>\n }\n </div>\n } @else if (painted()) {\n <div slSkeletonRegion [delay]=\"0\" [minDuration]=\"0\" [messages]=\"{ label: t('loading') }\">\n <div slProse [flow]=\"resolvedFlow()\" [size]=\"size()\">\n <div slSkeletonText lastLineSize=\"62%\" [lines]=\"3\"></div>\n </div>\n </div>\n } @else if (document().empty) {\n @if (!loading()) {\n <p data-part=\"empty\" data-part-empty=\"\">\n <ng-content select=\"[slMarkdownEmpty]\">{{ t('empty') }}</ng-content>\n </p>\n }\n } @else {\n <div slProse [flow]=\"resolvedFlow()\" [size]=\"size()\">\n <ng-container *ngTemplateOutlet=\"nodes; context: { $implicit: document().children }\" />\n @if (document().footnotes.length > 0) {\n <section slProseFootnotes>\n <h2 slVisuallyHidden [id]=\"document().footnoteLabelId\">\n {{ t('footnotes') }}\n </h2>\n <ol>\n @for (footnote of document().footnotes; track footnote.key) {\n <li [id]=\"footnote.id\">\n <ng-container\n *ngTemplateOutlet=\"nodes; context: { $implicit: footnoteLead(footnote) }\"\n />\n @if (footnoteTail(footnote); as last) {\n <p>\n <ng-container\n *ngTemplateOutlet=\"nodes; context: { $implicit: last.children }\"\n /><ng-container\n *ngTemplateOutlet=\"backrefs; context: { $implicit: footnote }\"\n />\n </p>\n } @else {\n <ng-container *ngTemplateOutlet=\"backrefs; context: { $implicit: footnote }\" />\n }\n </li>\n }\n </ol>\n </section>\n }\n </div>\n }\n\n <ng-template #backrefs let-footnote>\n @for (reference of footnote.references; track reference; let index = $index) {\n <a\n data-part=\"backref\"\n data-part-backref=\"\"\n [href]=\"'#' + reference\"\n [attr.aria-label]=\"t('backReference', { number: footnote.number, occurrence: index + 1 })\"\n ><span slIcon><svg slGlyph name=\"arrow-left\"></svg></span\n ></a>\n }\n </ng-template>\n\n <ng-template #nodes let-elements>\n @for (element of elements; track element.key) {\n @if (templateFor(element); as custom) {\n <ng-container *ngTemplateOutlet=\"custom; context: { $implicit: element }\" />\n } @else {\n @switch (element.kind) {\n @case ('text') {\n <ng-container>{{ element.value }}</ng-container>\n }\n @case ('inlineCode') {\n <code>{{ element.value }}</code>\n }\n @case ('break') {\n <br />\n }\n @case ('thematicBreak') {\n <hr />\n }\n @case ('paragraph') {\n <p>\n <ng-container *ngTemplateOutlet=\"nodes; context: { $implicit: element.children }\" />\n </p>\n }\n @case ('emphasis') {\n <em\n ><ng-container *ngTemplateOutlet=\"nodes; context: { $implicit: element.children }\"\n /></em>\n }\n @case ('strong') {\n <strong\n ><ng-container *ngTemplateOutlet=\"nodes; context: { $implicit: element.children }\"\n /></strong>\n }\n @case ('delete') {\n <del\n ><ng-container *ngTemplateOutlet=\"nodes; context: { $implicit: element.children }\"\n /></del>\n }\n @case ('blockquote') {\n <blockquote>\n <ng-container *ngTemplateOutlet=\"nodes; context: { $implicit: element.children }\" />\n </blockquote>\n }\n @case ('heading') {\n @switch (element.level) {\n @case (1) {\n <h1 [id]=\"element.id\">\n <ng-container *ngTemplateOutlet=\"heading; context: { $implicit: element }\" />\n </h1>\n }\n @case (2) {\n <h2 [id]=\"element.id\">\n <ng-container *ngTemplateOutlet=\"heading; context: { $implicit: element }\" />\n </h2>\n }\n @case (3) {\n <h3 [id]=\"element.id\">\n <ng-container *ngTemplateOutlet=\"heading; context: { $implicit: element }\" />\n </h3>\n }\n @case (4) {\n <h4 [id]=\"element.id\">\n <ng-container *ngTemplateOutlet=\"heading; context: { $implicit: element }\" />\n </h4>\n }\n @case (5) {\n <h5 [id]=\"element.id\">\n <ng-container *ngTemplateOutlet=\"heading; context: { $implicit: element }\" />\n </h5>\n }\n @default {\n <h6 [id]=\"element.id\">\n <ng-container *ngTemplateOutlet=\"heading; context: { $implicit: element }\" />\n </h6>\n }\n }\n }\n @case ('alert') {\n <div data-part=\"embed\" data-part-embed=\"\">\n <section slAlert reach=\"section\" live=\"off\" [tone]=\"element.tone\">\n <div slAlertContent>\n <div slAlertTitle>{{ alertTitle(element) }}</div>\n <div slAlertDescription>\n <div data-part=\"alert-body\" data-part-alert-body=\"\">\n <ng-container\n *ngTemplateOutlet=\"nodes; context: { $implicit: element.children }\"\n />\n </div>\n </div>\n </div>\n </section>\n </div>\n }\n @case ('list') {\n @if (element.ordered) {\n <ol\n [attr.data-part]=\"element.task ? 'task-list' : null\"\n [attr.data-part-task-list]=\"element.task ? '' : null\"\n [attr.start]=\"element.start\"\n >\n <ng-container\n *ngTemplateOutlet=\"nodes; context: { $implicit: element.children }\"\n />\n </ol>\n } @else {\n <ul\n [attr.data-part]=\"element.task ? 'task-list' : null\"\n [attr.data-part-task-list]=\"element.task ? '' : null\"\n >\n <ng-container\n *ngTemplateOutlet=\"nodes; context: { $implicit: element.children }\"\n />\n </ul>\n }\n }\n @case ('item') {\n @if (element.checked === null) {\n <li>\n <ng-container\n *ngTemplateOutlet=\"nodes; context: { $implicit: element.children }\"\n />\n </li>\n } @else {\n <li data-part=\"task\" data-part-task=\"\">\n <div\n slCheckbox\n [checked]=\"element.checked\"\n [readOnly]=\"!editableTasks() || undefined\"\n (checkedChange)=\"onTask(element, $event)\"\n >\n <span slVisuallyHidden>{{ element.label }}</span>\n </div>\n <div data-part=\"task-body\" data-part-task-body=\"\">\n <ng-container\n *ngTemplateOutlet=\"nodes; context: { $implicit: element.children }\"\n />\n </div>\n </li>\n }\n }\n @case ('code') {\n <div data-part=\"embed\" data-part-embed=\"\">\n <div\n slCodeBlock\n [code]=\"element.code\"\n [language]=\"element.language ?? 'text'\"\n [title]=\"element.title ?? undefined\"\n [lineNumbers]=\"element.lineNumbers || undefined\"\n [marks]=\"\n element.highlight === null ? undefined : { highlight: element.highlight }\n \"\n ></div>\n </div>\n }\n @case ('table') {\n <div slProseScroll>\n <table>\n <thead>\n <tr>\n @for (cell of element.head; track cell.key) {\n <th scope=\"col\" [attr.data-align]=\"cell.align\">\n <ng-container\n *ngTemplateOutlet=\"nodes; context: { $implicit: cell.children }\"\n />\n </th>\n }\n </tr>\n </thead>\n @if (element.rows.length > 0) {\n <tbody>\n @for (row of element.rows; track $index) {\n <tr>\n @for (cell of row; track cell.key) {\n <td [attr.data-align]=\"cell.align\">\n <ng-container\n *ngTemplateOutlet=\"nodes; context: { $implicit: cell.children }\"\n />\n </td>\n }\n </tr>\n }\n </tbody>\n }\n </table>\n </div>\n }\n @case ('link') {\n @if (element.external && resolvedExternal() === 'new-tab') {\n <a slLink external [href]=\"element.href\" [attr.title]=\"element.title\"\n ><ng-container\n *ngTemplateOutlet=\"nodes; context: { $implicit: element.children }\"\n /></a>\n } @else {\n <a [href]=\"element.href\" [attr.title]=\"element.title\"\n ><ng-container\n *ngTemplateOutlet=\"nodes; context: { $implicit: element.children }\"\n /></a>\n }\n }\n @case ('image') {\n <img\n [src]=\"element.src\"\n [alt]=\"element.alt\"\n [attr.title]=\"element.title\"\n loading=\"lazy\"\n decoding=\"async\"\n />\n }\n @case ('footnoteReference') {\n <sup\n ><a\n data-footnote-ref=\"\"\n [id]=\"element.id\"\n [href]=\"'#' + element.target\"\n [attr.aria-describedby]=\"document().footnoteLabelId\"\n >{{ element.number }}</a\n ></sup\n >\n }\n @case ('custom') {\n <ng-container *ngTemplateOutlet=\"nodes; context: { $implicit: element.children }\" />\n }\n }\n }\n }\n </ng-template>\n\n <ng-template #heading let-element>\n <ng-container *ngTemplateOutlet=\"nodes; context: { $implicit: element.children }\" />\n @if (resolvedHeadingAnchors()) {\n <a\n slProseAnchor\n [href]=\"'#' + element.id\"\n [attr.aria-label]=\"t('anchor', { heading: element.text })\"\n >#</a\n >\n }\n </ng-template>\n `,\n styleUrl: '../../../styles/src/markdown/markdown.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-ui': 'markdown',\n 'data-ui-markdown': '',\n 'data-part': 'root',\n 'data-part-root': '',\n '[attr.data-status]': 'status()',\n '[attr.data-flow]': 'resolvedFlow()',\n '[attr.data-loading]': \"painted() ? '' : null\",\n '[attr.data-empty]': \"status() === 'ready' && !painted() && document().empty ? '' : null\",\n '[attr.data-streaming]': \"streaming() ? '' : null\",\n '[attr.aria-busy]': \"streaming() || painted() ? 'true' : null\",\n },\n})\nexport class SlMarkdown {\n /** The document, as mdast — remark's `fromMarkdown`, or `fromMarkedTokens(marked.lexer(source))`. */\n readonly tree = input<MarkdownNode | null | undefined>(undefined);\n readonly size = input<ProseSize | undefined>(undefined);\n readonly flow = input<ProseFlow | undefined>(undefined);\n readonly status = input<MarkdownStatus>('ready');\n readonly loading = input(false, { transform: booleanAttribute });\n readonly streaming = input(false, { transform: booleanAttribute });\n readonly external = input<MarkdownExternal | undefined>(undefined);\n readonly headingAnchors = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n readonly headingOffset = input(0, { transform: numberAttribute });\n readonly idPrefix = input('');\n readonly alerts = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n readonly allow = input<readonly string[] | undefined>(undefined);\n readonly unwrapDisallowed = input(false, { transform: booleanAttribute });\n readonly transformUrl = input<\n ((url: string, kind: MarkdownUrlKind, node: MarkdownNode) => string | null) | undefined\n >(undefined);\n readonly isExternal = input<((href: string) => boolean) | undefined>(undefined);\n /**\n * Words laid over the catalog of the language in force, key by key: the\n * empty, error, retry and loading texts, the footnotes heading, the back\n * link, the heading permalink, and each alert's title (`alerts.note`).\n */\n readonly messages = input<PartialMessages<MarkdownMessages> | undefined>(undefined);\n /**\n * Enables the task checkboxes. React reads the presence of its handler; an\n * Angular output cannot tell whether anyone listens, so the template says so.\n */\n readonly editableTasks = input(false, { transform: booleanAttribute });\n /** Draws the retry button in the error part, for the same reason. */\n readonly retryable = input(false, { transform: booleanAttribute });\n\n /** A task the reader ticked, with its index; the box moves when the tree does. */\n readonly taskChange = output<MarkdownTaskChange>();\n readonly retry = output<MarkdownRetryReason>();\n\n private readonly templates = contentChildren(SlMarkdownNode);\n private readonly nodesTemplate = viewChild.required<TemplateRef<unknown>>('nodes');\n\n private readonly defaults = injectMarkdownDefaults();\n private readonly proseDefaults = injectProseDefaults();\n private readonly skeletonDefaults = injectSkeletonDefaults();\n\n protected readonly resolvedFlow = computed(() => this.flow() ?? this.proseDefaults.flow);\n protected readonly resolvedExternal = computed(\n () => this.external() ?? this.defaults.external ?? 'new-tab',\n );\n protected readonly resolvedHeadingAnchors = computed(\n () => this.headingAnchors() ?? this.defaults.headingAnchors ?? false,\n );\n /** The family's words in the language in force, with this document's `messages` laid over them. */\n readonly t = injectMessages(markdownMessages, this.messages);\n\n private readonly templateMap = computed(() => {\n const map = new Map<string, TemplateRef<MarkdownNodeContext>>();\n for (const node of this.templates()) map.set(node.kind(), node.template);\n return map;\n });\n\n /** The prepared document: headings, footnotes and the outline a table of contents reads. */\n readonly document = computed(() =>\n prepareMarkdown(this.tree(), {\n alerts: this.alerts() ?? this.defaults.alerts ?? true,\n allow: this.allow() ?? this.defaults.allow,\n custom: [...this.templateMap().keys()].filter((kind) => !KINDS.has(kind)),\n headingOffset: this.headingOffset(),\n idPrefix: this.idPrefix(),\n isExternal: this.isExternal() ?? this.defaults.isExternal,\n transformUrl: this.transformUrl() ?? this.defaults.transformUrl,\n unwrapDisallowed: this.unwrapDisallowed(),\n }),\n );\n\n /*\n * The placeholder and the document are two different trees, so the family\n * decides which one is on screen with the machine `skeleton` uses, reading\n * `skeleton`'s own defaults for how long to wait and how long to hold.\n */\n protected readonly painted = signal(false);\n private visibility = initialLoadingVisibility;\n private timer: ReturnType<typeof setTimeout> | undefined;\n\n constructor() {\n effect(() => {\n const loading = this.loading();\n untracked(() => this.tick(loading));\n });\n inject(DestroyRef).onDestroy(() => clearTimeout(this.timer));\n }\n\n /** @internal The template a node's children render through, for `slMarkdownChildren`. */\n childrenTemplate(): TemplateRef<unknown> {\n return this.nodesTemplate();\n }\n\n protected alertTitle(element: MarkdownAlertElement): string {\n return this.t(`alerts.${element.type}`);\n }\n\n protected templateFor(element: MarkdownElement): TemplateRef<MarkdownNodeContext> | undefined {\n return this.templateMap().get(element.kind === 'custom' ? element.type : element.kind);\n }\n\n protected footnoteLead(footnote: MarkdownFootnote): readonly MarkdownElement[] {\n return footnote.children.at(-1)?.kind === 'paragraph'\n ? footnote.children.slice(0, -1)\n : footnote.children;\n }\n\n protected footnoteTail(footnote: MarkdownFootnote) {\n const last = footnote.children.at(-1);\n return last?.kind === 'paragraph' ? last : null;\n }\n\n protected onTask(element: MarkdownItemElement, request: ChangeRequest<boolean>): void {\n this.taskChange.emit({\n checked: request.value,\n index: element.task ?? 0,\n offset: element.offset,\n request,\n });\n }\n\n private tick(loading: boolean): void {\n const answer = nextLoadingVisibility({\n delay: this.skeletonDefaults.delay ?? 0,\n loading,\n minDuration: this.skeletonDefaults.minDuration ?? 0,\n now: Date.now(),\n state: this.visibility,\n });\n this.visibility = answer.state;\n this.painted.set(answer.state.visible);\n clearTimeout(this.timer);\n if (answer.wait !== null) {\n this.timer = setTimeout(() => this.tick(this.loading()), answer.wait);\n }\n }\n}\n\n/**\n * Renders an element's children inside a node template, adding no element of\n * its own: `<ng-container [slMarkdownChildren]=\"element\" />`.\n */\n@Directive({ selector: '[slMarkdownChildren]', standalone: true })\nexport class SlMarkdownChildren {\n readonly element = input.required<{ readonly children?: readonly MarkdownElement[] }>({\n alias: 'slMarkdownChildren',\n });\n private readonly markdown = inject(SlMarkdown);\n private readonly container = inject(ViewContainerRef);\n\n constructor() {\n effect(() => {\n const children = this.element().children ?? [];\n untracked(() => {\n this.container.clear();\n this.container.createEmbeddedView(this.markdown.childrenTemplate(), {\n $implicit: children,\n });\n });\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|