@slotted/angular 0.1.0-beta.7 → 0.1.0-beta.9
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/docs/calendar.json +1 -1
- package/docs/code-block.json +92 -92
- package/docs/code-block.md +69 -69
- package/docs/currency-field.json +7 -0
- package/docs/currency-field.md +1 -0
- package/docs/data-grid.examples.md +1 -1
- package/docs/data-grid.json +21 -4
- package/docs/data-grid.md +1 -1
- package/docs/data-grid.props.md +5 -3
- package/docs/dialog.examples.md +138 -136
- package/docs/dialog.json +8 -8
- package/docs/filter-bar.json +118 -118
- package/docs/filter-bar.md +79 -79
- package/docs/guidelines/async-feedback.md +10 -0
- package/docs/guidelines/composition.md +11 -7
- package/docs/guidelines/index.md +6 -1
- package/docs/guidelines/list-pages.md +30 -0
- package/docs/guidelines/overviews.md +10 -0
- package/docs/markdown.json +79 -79
- package/docs/markdown.md +65 -65
- package/docs/page-header.json +1 -1
- package/docs/skills/compose-screen/SKILL.md +22 -10
- package/docs/skills/review-screen/SKILL.md +6 -0
- package/docs/skills/waiting-states/SKILL.md +4 -1
- package/docs/tags-input.json +28 -2
- package/docs/tags-input.md +4 -1
- package/docs/timeline.json +131 -131
- package/docs/timeline.md +123 -123
- package/fesm2022/slotted-angular-accordion.mjs +4 -2
- package/fesm2022/slotted-angular-accordion.mjs.map +1 -1
- package/fesm2022/slotted-angular-action-bar.mjs +21 -10
- package/fesm2022/slotted-angular-action-bar.mjs.map +1 -1
- package/fesm2022/slotted-angular-action-sheet.mjs +42 -29
- package/fesm2022/slotted-angular-action-sheet.mjs.map +1 -1
- package/fesm2022/slotted-angular-alert.mjs +17 -11
- package/fesm2022/slotted-angular-alert.mjs.map +1 -1
- package/fesm2022/slotted-angular-app-shell.mjs +52 -40
- 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 +9 -6
- 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 +53 -25
- package/fesm2022/slotted-angular-button.mjs.map +1 -1
- package/fesm2022/slotted-angular-calendar.mjs +82 -30
- 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 +158 -64
- package/fesm2022/slotted-angular-cascader.mjs.map +1 -1
- package/fesm2022/slotted-angular-chart.mjs +4 -2
- 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 +13 -8
- 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 +77 -31
- package/fesm2022/slotted-angular-combobox.mjs.map +1 -1
- package/fesm2022/slotted-angular-command-palette.mjs +150 -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 +98 -32
- package/fesm2022/slotted-angular-currency-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-dashboard-grid.mjs +127 -44
- package/fesm2022/slotted-angular-dashboard-grid.mjs.map +1 -1
- package/fesm2022/slotted-angular-data-grid.mjs +309 -104
- 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 +40 -14
- package/fesm2022/slotted-angular-date-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-date-picker.mjs +19 -9
- package/fesm2022/slotted-angular-date-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-date-range-picker.mjs +41 -16
- 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 +37 -23
- package/fesm2022/slotted-angular-datetime-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-datetime-range-picker.mjs +111 -42
- 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 +29 -18
- package/fesm2022/slotted-angular-detail-panel.mjs.map +1 -1
- package/fesm2022/slotted-angular-dialog.mjs +61 -28
- 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 +38 -26
- package/fesm2022/slotted-angular-drawer.mjs.map +1 -1
- package/fesm2022/slotted-angular-entity-picker.mjs +195 -67
- package/fesm2022/slotted-angular-entity-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-event-calendar.mjs +259 -102
- 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 +104 -43
- 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 +167 -99
- package/fesm2022/slotted-angular-import-export-center.mjs.map +1 -1
- package/fesm2022/slotted-angular-inline-message.mjs +10 -8
- 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 +14 -10
- 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 +41 -27
- 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 +28 -15
- package/fesm2022/slotted-angular-message-scroller.mjs.map +1 -1
- package/fesm2022/slotted-angular-message.mjs +113 -51
- package/fesm2022/slotted-angular-message.mjs.map +1 -1
- package/fesm2022/slotted-angular-multi-select.mjs +133 -57
- 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 +107 -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 +72 -42
- package/fesm2022/slotted-angular-page-header.mjs.map +1 -1
- package/fesm2022/slotted-angular-page.mjs +18 -9
- 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 +25 -18
- package/fesm2022/slotted-angular-popover.mjs.map +1 -1
- package/fesm2022/slotted-angular-progress-indicator.mjs +122 -30
- package/fesm2022/slotted-angular-progress-indicator.mjs.map +1 -1
- package/fesm2022/slotted-angular-prompt-composer.mjs +24 -18
- 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 +9 -5
- package/fesm2022/slotted-angular-scroll-area.mjs.map +1 -1
- package/fesm2022/slotted-angular-section.mjs +34 -15
- package/fesm2022/slotted-angular-section.mjs.map +1 -1
- package/fesm2022/slotted-angular-segmented-control.mjs +15 -9
- package/fesm2022/slotted-angular-segmented-control.mjs.map +1 -1
- package/fesm2022/slotted-angular-select.mjs +135 -53
- 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 +29 -13
- package/fesm2022/slotted-angular-sparkline.mjs.map +1 -1
- package/fesm2022/slotted-angular-split-button.mjs +25 -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 +135 -72
- package/fesm2022/slotted-angular-table.mjs.map +1 -1
- package/fesm2022/slotted-angular-tabs.mjs +31 -14
- 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 +49 -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 +28 -14
- package/fesm2022/slotted-angular-time-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-time-range-picker.mjs +109 -40
- package/fesm2022/slotted-angular-time-range-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-timeline.mjs +135 -64
- package/fesm2022/slotted-angular-timeline.mjs.map +1 -1
- package/fesm2022/slotted-angular-toast.mjs +42 -31
- package/fesm2022/slotted-angular-toast.mjs.map +1 -1
- package/fesm2022/slotted-angular-toggle-group.mjs +10 -6
- 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 +21 -10
- package/fesm2022/slotted-angular-toolbar.mjs.map +1 -1
- package/fesm2022/slotted-angular-tooltip.mjs +8 -5
- 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 +46 -21
- 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 +74 -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.map +1 -1
- package/types/slotted-angular-action-sheet.d.ts.map +1 -1
- package/types/slotted-angular-alert.d.ts +1 -1
- package/types/slotted-angular-alert.d.ts.map +1 -1
- 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.map +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.map +1 -1
- package/types/slotted-angular-button.d.ts.map +1 -1
- package/types/slotted-angular-calendar.d.ts +2 -0
- 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.map +1 -1
- package/types/slotted-angular-checkbox-group.d.ts.map +1 -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 +1 -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 +39 -13
- 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 +26 -2
- 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.map +1 -1
- package/types/slotted-angular-date-picker.d.ts.map +1 -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.map +1 -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 +2 -1
- 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.map +1 -1
- package/types/slotted-angular-entity-picker.d.ts.map +1 -1
- 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 +1 -1
- 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 +1 -1
- 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.map +1 -1
- 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.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.map +1 -1
- package/types/slotted-angular-multi-select.d.ts +1 -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.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 +1 -1
- 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.map +1 -1
- 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.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.map +1 -1
- package/types/slotted-angular-segmented-control.d.ts.map +1 -1
- package/types/slotted-angular-select.d.ts +1 -1
- 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.map +1 -1
- 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.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.map +1 -1
- package/types/slotted-angular-tabs.d.ts.map +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-time-field.d.ts.map +1 -1
- package/types/slotted-angular-time-picker.d.ts.map +1 -1
- package/types/slotted-angular-time-range-picker.d.ts.map +1 -1
- package/types/slotted-angular-timeline.d.ts.map +1 -1
- package/types/slotted-angular-toast.d.ts +2 -2
- package/types/slotted-angular-toast.d.ts.map +1 -1
- package/types/slotted-angular-toggle-group.d.ts.map +1 -1
- package/types/slotted-angular-toggle.d.ts.map +1 -1
- 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.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
|
@@ -290,26 +290,27 @@ class SlCodeBlock {
|
|
|
290
290
|
this.body().reveal(element);
|
|
291
291
|
}
|
|
292
292
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlCodeBlock, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
293
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.7", type: SlCodeBlock, isStandalone: true, selector: "[slCodeBlock]", inputs: { code: { classPropertyName: "code", publicName: "code", isSignal: true, isRequired: true, transformFunction: null }, language: { classPropertyName: "language", publicName: "language", isSignal: true, isRequired: false, transformFunction: null }, highlight: { classPropertyName: "highlight", publicName: "highlight", isSignal: true, isRequired: false, transformFunction: null }, tokens: { classPropertyName: "tokens", publicName: "tokens", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, fileName: { classPropertyName: "fileName", publicName: "fileName", isSignal: true, isRequired: false, transformFunction: null }, lineNumbers: { classPropertyName: "lineNumbers", publicName: "lineNumbers", isSignal: true, isRequired: false, transformFunction: null }, start: { classPropertyName: "start", publicName: "start", isSignal: true, isRequired: false, transformFunction: null }, marks: { classPropertyName: "marks", publicName: "marks", isSignal: true, isRequired: false, transformFunction: null }, wrap: { classPropertyName: "wrap", publicName: "wrap", isSignal: true, isRequired: false, transformFunction: null }, defaultWrap: { classPropertyName: "defaultWrap", publicName: "defaultWrap", isSignal: true, isRequired: false, transformFunction: null }, collapseAfter: { classPropertyName: "collapseAfter", publicName: "collapseAfter", isSignal: true, isRequired: false, transformFunction: null }, revealed: { classPropertyName: "revealed", publicName: "revealed", isSignal: true, isRequired: false, transformFunction: null }, defaultRevealed: { classPropertyName: "defaultRevealed", publicName: "defaultRevealed", isSignal: true, isRequired: false, transformFunction: null }, maxLines: { classPropertyName: "maxLines", publicName: "maxLines", isSignal: true, isRequired: false, transformFunction: null }, copy: { classPropertyName: "copy", publicName: "copy", isSignal: true, isRequired: false, transformFunction: null }, copyRemoved: { classPropertyName: "copyRemoved", publicName: "copyRemoved", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, messages: { classPropertyName: "messages", publicName: "messages", isSignal: true, isRequired: false, transformFunction: null }, tabSize: { classPropertyName: "tabSize", publicName: "tabSize", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { wrap: "wrapChange", revealed: "revealedChange", wrapChangeRequest: "wrapChangeRequest", revealedChangeRequest: "revealedChangeRequest", copyRequest: "copyRequest", highlightError: "highlightError" }, host: { attributes: { "data-ui": "code-block", "data-part": "root" }, listeners: { "keydown": "onKeyDown($event)" }, properties: { "attr.data-language": "language()", "attr.data-wrap": "isWrapped() ? \"\" : null", "attr.data-revealed": "isRevealed() ? \"\" : null", "attr.data-collapse": "collapses() ? \"\" : null", "attr.data-line-numbers": "lineNumbersValue() ? \"\" : null", "attr.data-loading": "loading() ? \"\" : null", "attr.aria-busy": "loading() ? \"true\" : null", "attr.data-empty": "code() === \"\" ? \"\" : null", "attr.data-marks": "hasMarks() ? \"\" : null", "attr.data-overflow": "overflow() ? \"\" : null", "style.--slotted-code-block-digits": "digits()", "style.--slotted-code-block-collapse": "collapses() ? collapseAfter() : null", "style.--slotted-code-block-max-lines": "maxLines() ?? null" } }, queries: [{ propertyName: "lineTemplate", first: true, predicate: SlCodeBlockLine, descendants: true, isSignal: true }, { propertyName: "action", first: true, predicate: SlCodeBlockAction, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "body", first: true, predicate: ["body"], descendants: true, isSignal: true }], exportAs: ["slCodeBlock"], ngImport: i0, template: `
|
|
293
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.7", type: SlCodeBlock, isStandalone: true, selector: "[slCodeBlock]", inputs: { code: { classPropertyName: "code", publicName: "code", isSignal: true, isRequired: true, transformFunction: null }, language: { classPropertyName: "language", publicName: "language", isSignal: true, isRequired: false, transformFunction: null }, highlight: { classPropertyName: "highlight", publicName: "highlight", isSignal: true, isRequired: false, transformFunction: null }, tokens: { classPropertyName: "tokens", publicName: "tokens", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, fileName: { classPropertyName: "fileName", publicName: "fileName", isSignal: true, isRequired: false, transformFunction: null }, lineNumbers: { classPropertyName: "lineNumbers", publicName: "lineNumbers", isSignal: true, isRequired: false, transformFunction: null }, start: { classPropertyName: "start", publicName: "start", isSignal: true, isRequired: false, transformFunction: null }, marks: { classPropertyName: "marks", publicName: "marks", isSignal: true, isRequired: false, transformFunction: null }, wrap: { classPropertyName: "wrap", publicName: "wrap", isSignal: true, isRequired: false, transformFunction: null }, defaultWrap: { classPropertyName: "defaultWrap", publicName: "defaultWrap", isSignal: true, isRequired: false, transformFunction: null }, collapseAfter: { classPropertyName: "collapseAfter", publicName: "collapseAfter", isSignal: true, isRequired: false, transformFunction: null }, revealed: { classPropertyName: "revealed", publicName: "revealed", isSignal: true, isRequired: false, transformFunction: null }, defaultRevealed: { classPropertyName: "defaultRevealed", publicName: "defaultRevealed", isSignal: true, isRequired: false, transformFunction: null }, maxLines: { classPropertyName: "maxLines", publicName: "maxLines", isSignal: true, isRequired: false, transformFunction: null }, copy: { classPropertyName: "copy", publicName: "copy", isSignal: true, isRequired: false, transformFunction: null }, copyRemoved: { classPropertyName: "copyRemoved", publicName: "copyRemoved", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, messages: { classPropertyName: "messages", publicName: "messages", isSignal: true, isRequired: false, transformFunction: null }, tabSize: { classPropertyName: "tabSize", publicName: "tabSize", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { wrap: "wrapChange", revealed: "revealedChange", wrapChangeRequest: "wrapChangeRequest", revealedChangeRequest: "revealedChangeRequest", copyRequest: "copyRequest", highlightError: "highlightError" }, host: { attributes: { "data-ui": "code-block", "data-ui-code-block": "", "data-part": "root", "data-part-root": "" }, listeners: { "keydown": "onKeyDown($event)" }, properties: { "attr.data-language": "language()", "attr.data-wrap": "isWrapped() ? \"\" : null", "attr.data-revealed": "isRevealed() ? \"\" : null", "attr.data-collapse": "collapses() ? \"\" : null", "attr.data-line-numbers": "lineNumbersValue() ? \"\" : null", "attr.data-loading": "loading() ? \"\" : null", "attr.aria-busy": "loading() ? \"true\" : null", "attr.data-empty": "code() === \"\" ? \"\" : null", "attr.data-marks": "hasMarks() ? \"\" : null", "attr.data-overflow": "overflow() ? \"\" : null", "style.--slotted-code-block-digits": "digits()", "style.--slotted-code-block-collapse": "collapses() ? collapseAfter() : null", "style.--slotted-code-block-max-lines": "maxLines() ?? null" } }, queries: [{ propertyName: "lineTemplate", first: true, predicate: SlCodeBlockLine, descendants: true, isSignal: true }, { propertyName: "action", first: true, predicate: SlCodeBlockAction, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "body", first: true, predicate: ["body"], descendants: true, isSignal: true }], exportAs: ["slCodeBlock"], ngImport: i0, template: `
|
|
294
294
|
@if (hasHeader()) {
|
|
295
|
-
<div data-part="header">
|
|
295
|
+
<div data-part="header" data-part-header="">
|
|
296
296
|
@if (icon(); as glyph) {
|
|
297
|
-
<span aria-hidden="true" data-part="icon"
|
|
297
|
+
<span aria-hidden="true" data-part="icon" data-part-icon=""
|
|
298
298
|
><span slIcon><svg slGlyph [name]="glyph"></svg></span
|
|
299
299
|
></span>
|
|
300
300
|
}
|
|
301
301
|
@if (title(); as words) {
|
|
302
|
-
<span data-part="title" [id]="id + '-title'">{{ words }}</span>
|
|
302
|
+
<span data-part="title" data-part-title="" [id]="id + '-title'">{{ words }}</span>
|
|
303
303
|
}
|
|
304
304
|
@if (language() !== 'text') {
|
|
305
|
-
<span data-part="language">{{ language() }}</span>
|
|
305
|
+
<span data-part="language" data-part-language="">{{ language() }}</span>
|
|
306
306
|
}
|
|
307
307
|
@if (!loading()) {
|
|
308
|
-
<div data-part="actions">
|
|
308
|
+
<div data-part="actions" data-part-actions="">
|
|
309
309
|
<ng-content select="[slCodeBlockAction]"></ng-content>
|
|
310
310
|
@if (overflow() || isWrapped()) {
|
|
311
311
|
<button
|
|
312
312
|
data-part="wrap"
|
|
313
|
+
data-part-wrap=""
|
|
313
314
|
type="button"
|
|
314
315
|
[attr.aria-label]="t(isWrapped() ? 'unwrap' : 'wrap')"
|
|
315
316
|
[attr.aria-pressed]="isWrapped()"
|
|
@@ -323,6 +324,7 @@ class SlCodeBlock {
|
|
|
323
324
|
@if (copyControl()) {
|
|
324
325
|
<button
|
|
325
326
|
data-part="copy"
|
|
327
|
+
data-part-copy=""
|
|
326
328
|
type="button"
|
|
327
329
|
[attr.aria-label]="t('copy')"
|
|
328
330
|
[attr.data-complete]="copied() ? '' : null"
|
|
@@ -341,6 +343,8 @@ class SlCodeBlock {
|
|
|
341
343
|
#body
|
|
342
344
|
slScrollArea
|
|
343
345
|
data-part="body"
|
|
346
|
+
data-part-body=""
|
|
347
|
+
[attr.data-part-root]="null"
|
|
344
348
|
[axis]="maxLines() === undefined ? 'inline' : 'both'"
|
|
345
349
|
fade="both"
|
|
346
350
|
gutter="auto"
|
|
@@ -352,12 +356,14 @@ class SlCodeBlock {
|
|
|
352
356
|
<div slScrollAreaContent>
|
|
353
357
|
<pre
|
|
354
358
|
data-part="pre"
|
|
355
|
-
|
|
359
|
+
data-part-pre=""
|
|
360
|
+
><code data-part="code" data-part-code="" [class]="'language-' + language()">@if (loading()) {@for (width of skeletonWidths; track $index) {<span slSkeleton shape="text" aria-hidden="true" [style.inline-size]="width + '%'"></span>}} @else {@for (line of rows(); track $index) {<span data-part="line" data-part-line="" [attr.data-line]="line.number" [attr.data-mark]="line.mark ?? null" [attr.data-dim]="line.dim ? '' : null" [style.--slotted-code-block-indent]="line.indent > 0 ? line.indent : null"><span aria-hidden="true" data-part="number" data-part-number="">@if (lineNumbersValue()) {{{ line.number }}}</span><span aria-hidden="true" data-part="marker" data-part-marker=""></span><span data-part="text" data-part-text="">@if (lineTemplate(); as custom) {<ng-container [ngTemplateOutlet]="custom.template" [ngTemplateOutletContext]="{ $implicit: line.tokens, number: line.number, mark: line.mark, dim: line.dim }" />} @else {@for (token of line.tokens; track $index) {@if (token.scope) {<span data-part="token" data-part-token="" [attr.data-token]="token.scope">{{ token.text }}</span>} @else {{{ token.text }}}}}</span></span>}}</code></pre>
|
|
356
361
|
</div>
|
|
357
362
|
</div>
|
|
358
363
|
@if (collapses()) {
|
|
359
364
|
<button
|
|
360
365
|
data-part="reveal"
|
|
366
|
+
data-part-reveal=""
|
|
361
367
|
type="button"
|
|
362
368
|
[attr.aria-controls]="id + '-body'"
|
|
363
369
|
[attr.aria-expanded]="isRevealed()"
|
|
@@ -367,30 +373,31 @@ class SlCodeBlock {
|
|
|
367
373
|
{{ isRevealed() ? t('collapse') : t('reveal', { count: hiddenCount() }) }}
|
|
368
374
|
</button>
|
|
369
375
|
}
|
|
370
|
-
`, isInline: true, styles: ["@layer slotted.components{[data-ui=code-block]{--_ground: var(--slotted-code-block-surface, var(--slotted-surface-sunken, Canvas));--_edge: var(--slotted-code-block-border-color, var(--slotted-border-subtle, GrayText));--_ink: var(--slotted-code-block-color, var(--slotted-text, CanvasText));--_muted: var(--slotted-code-block-color-muted, var(--slotted-text-muted, GrayText));--_radius: var(--slotted-code-block-radius, var(--slotted-radius-md, 6px));--_inset-block: var(--slotted-code-block-inset-block, var(--slotted-space-5, .75rem));--_inset-inline: var(--slotted-code-block-inset-inline, var(--slotted-space-6, 1rem));--_font-size: var(--slotted-code-block-font-size, var(--slotted-font-size-sm, .8125rem));--_line-height: var(--slotted-code-block-line-height, var(--slotted-line-height-md, 1.5));--_line: calc(var(--_font-size) * var(--_line-height));--_icon: var(--slotted-control-icon-size-md, 16px);--_hit: calc((var(--slotted-target-min, 24px) - var(--_icon)) / 2);--_duration: var(--slotted-control-transition-duration, var(--slotted-duration-short));--_easing: var(--slotted-control-transition-easing, var(--slotted-easing-standard));--_digits: var(--slotted-code-block-digits, 1);--_gutter: calc(var(--_digits) * 1ch + var(--slotted-space-4, .5rem) * 2);--_tint: var(--slotted-highlight-tint-opacity, .075);background-color:var(--_ground);border:var(--slotted-border-width-thin, 1px) solid var(--_edge);border-radius:var(--_radius);box-sizing:border-box;color:var(--_ink);display:grid;font-family:var(--slotted-code-block-font-family, var(--slotted-font-family-mono, monospace));font-size:var(--_font-size);grid-template-rows:auto minmax(0,1fr) auto;line-height:var(--_line-height);min-inline-size:0;position:relative}[data-ui=code-block]>[data-part=header]{align-items:center;border-block-end:var(--slotted-border-width-thin, 1px) solid var(--_edge);display:flex;font-family:var(--slotted-font-family-sans, inherit);font-size:var(--slotted-font-size-sm, .8125rem);gap:var(--slotted-control-gap-sm, 6px);min-inline-size:0;padding-block:var(--slotted-space-3, .375rem);padding-inline:var(--_inset-inline) var(--slotted-space-4, .5rem)}[data-ui=code-block]>[data-part=header]>[data-part=icon]{--slotted-icon-size: var(--_icon);block-size:var(--_icon);color:var(--_muted);display:flex;flex:none;inline-size:var(--_icon)}[data-ui=code-block]>[data-part=header]>[data-part=title]{font-family:var(--slotted-code-block-font-family, var(--slotted-font-family-mono, monospace));min-inline-size:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}[data-ui=code-block]>[data-part=header]>[data-part=language]{color:var(--_muted);font-size:var(--slotted-font-size-xs, .75rem);letter-spacing:.02em;margin-inline-start:auto;text-transform:uppercase}[data-ui=code-block]>[data-part=header]>[data-part=title]+[data-part=language],[data-ui=code-block]>[data-part=header]>[data-part=icon]+[data-part=language]{margin-inline-start:auto}[data-ui=code-block]>[data-part=header]>[data-part=actions]{align-items:center;display:flex;gap:var(--slotted-space-1, .125rem);margin-inline-start:auto}[data-ui=code-block]>[data-part=header]>[data-part=language]+[data-part=actions]{margin-inline-start:var(--slotted-space-3, .375rem)}[data-ui=code-block]>[data-part=actions]{align-items:center;background-color:var(--_ground);border-radius:var(--slotted-control-radius, 4px);display:flex;gap:var(--slotted-space-1, .125rem);inset-block-start:var(--slotted-space-2, .25rem);inset-inline-end:var(--slotted-space-2, .25rem);position:absolute;z-index:1}[data-ui=code-block] :is([data-part=copy],[data-part=wrap]){--slotted-icon-size: var(--_icon);align-items:center;appearance:none;background:none;block-size:var(--slotted-target-min, 24px);border:0;border-radius:var(--slotted-control-radius, var(--slotted-radius-sm, 4px));color:var(--_muted);cursor:pointer;display:inline-flex;font:inherit;inline-size:var(--slotted-target-min, 24px);justify-content:center;padding:var(--_hit);transition:color var(--_duration) var(--_easing),background-color var(--_duration) var(--_easing)}@media(pointer:coarse){[data-ui=code-block] :is([data-part=copy],[data-part=wrap]){position:relative}[data-ui=code-block] :is([data-part=copy],[data-part=wrap]):before{content:\"\";inset:min(0px,calc((100% - var(--slotted-target-comfortable, 44px)) / 2));position:absolute}[data-ui=code-block] [data-part=wrap]:has(+[data-part=copy]):before{inset-inline-end:0}[data-ui=code-block] [data-part=wrap]+[data-part=copy]:before{inset-inline-start:0}}[data-ui=code-block] :is([data-part=copy],[data-part=wrap]):enabled:not([data-complete]):hover{background-color:var(--slotted-tone-secondary-subtle-hover, ButtonFace);color:var(--_ink)}[data-ui=code-block] :is([data-part=copy],[data-part=wrap]):enabled:not([data-complete]):active{background-color:var(--slotted-tone-secondary-subtle-active, ButtonFace)}[data-ui=code-block] [data-part=wrap][data-pressed]{background-color:var(--slotted-tone-accent-surface, Canvas);color:var(--slotted-tone-accent-text, CanvasText)}[data-ui=code-block] [data-part=copy][data-complete]{color:var(--slotted-tone-success-text, CanvasText)}[data-ui=code-block] :is([data-part=copy],[data-part=wrap],[data-part=reveal]):focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:var(--slotted-focus-ring-offset, 2px)}[data-ui=code-block]>[data-part=body]{border-radius:0 0 var(--_radius) var(--_radius);min-inline-size:0}[data-ui=code-block]>[data-part=body]:first-child{border-radius:var(--_radius)}[data-ui=code-block]>[data-part=body][data-max-lines]>[data-part=viewport]{max-block-size:calc(var(--slotted-code-block-max-lines) * var(--_line) + var(--_inset-block) * 2)}[data-ui=code-block]>[data-part=body]>[data-part=viewport]:focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:calc(var(--slotted-focus-ring-offset, 2px) * -1)}[data-ui=code-block] [data-part=pre]{direction:ltr;font:inherit;margin:0;min-inline-size:max-content;padding-block:var(--_inset-block);tab-size:var(--slotted-code-block-tab-size, 2);white-space:pre}[data-ui=code-block][data-wrap] [data-part=pre]{min-inline-size:0;overflow-wrap:anywhere;white-space:pre-wrap}[data-ui=code-block] [data-part=code]{display:grid;font:inherit;grid-template-columns:minmax(0,1fr)}[data-ui=code-block] [data-part=line]{--_indent: calc(var(--slotted-code-block-indent, 0) * 1ch);box-sizing:border-box;display:grid;grid-template-columns:var(--_number, 0px) var(--_marker, 0px) minmax(0,1fr);min-block-size:var(--_line);padding-inline:var(--_inset-inline);position:relative}[data-ui=code-block][data-line-numbers] [data-part=line]{--_number: var(--_gutter);padding-inline-start:0}[data-ui=code-block]:not([data-line-numbers]) [data-part=number]{display:none}[data-ui=code-block][data-marks] [data-part=line]{--_marker: var(--slotted-space-6, 1rem)}[data-ui=code-block] [data-part=number]{color:var(--_muted);font-variant-numeric:tabular-nums;grid-column:1;padding-inline-end:var(--slotted-space-4, .5rem);text-align:end;-webkit-user-select:none;user-select:none}[data-ui=code-block] [data-part=marker]{grid-column:2;text-align:center;-webkit-user-select:none;user-select:none}[data-ui=code-block] [data-part=line]>[data-part=token],[data-ui=code-block] [data-part=line]>[data-part=text]{grid-column:3}[data-ui=code-block] [data-part=line]>[data-part=text]{display:block;min-inline-size:0}[data-ui=code-block][data-wrap] [data-part=line]>[data-part=text]{padding-inline-start:var(--_indent);text-indent:calc(var(--_indent) * -1)}[data-ui=code-block] [data-token=comment]{color:var(--slotted-code-comment, var(--slotted-text-muted, GrayText));font-style:italic}[data-ui=code-block] [data-token=keyword]{color:var(--slotted-code-keyword, var(--slotted-text, CanvasText))}[data-ui=code-block] [data-token=string]{color:var(--slotted-code-string, var(--slotted-text, CanvasText))}[data-ui=code-block] [data-token=number]{color:var(--slotted-code-number, var(--slotted-text, CanvasText))}[data-ui=code-block] [data-token=function]{color:var(--slotted-code-function, var(--slotted-text, CanvasText))}[data-ui=code-block] [data-token=type]{color:var(--slotted-code-type, var(--slotted-text, CanvasText))}[data-ui=code-block] [data-token=variable]{color:var(--slotted-code-variable, var(--slotted-text, CanvasText))}[data-ui=code-block] [data-token=property]{color:var(--slotted-code-property, var(--slotted-text, CanvasText))}[data-ui=code-block] [data-token=punctuation]{color:var(--slotted-code-punctuation, var(--slotted-text, CanvasText))}[data-ui=code-block] [data-token=tag]{color:var(--slotted-code-tag, var(--slotted-text, CanvasText))}[data-ui=code-block] [data-token=attribute]{color:var(--slotted-code-attribute, var(--slotted-text, CanvasText))}[data-ui=code-block] [data-token=constant]{color:var(--slotted-code-constant, var(--slotted-text, CanvasText))}[data-ui=code-block] [data-part=line][data-mark]{--_tone: var(--slotted-tone-accent-text, CanvasText);background-color:color-mix(in srgb,var(--_tone) calc(var(--_tint) * 100%),transparent)}[data-ui=code-block] [data-part=line]:is([data-mark=highlight],[data-mark=error],[data-mark=warning]):before{background-color:var(--_tone);content:\"\";inline-size:var(--slotted-border-width-thick, 2px);inset-block:0;inset-inline-start:0;position:absolute}[data-ui=code-block] [data-part=line][data-mark=add]{--_tone: var(--slotted-tone-success-text, CanvasText)}[data-ui=code-block] [data-part=line][data-mark=remove],[data-ui=code-block] [data-part=line][data-mark=error]{--_tone: var(--slotted-tone-danger-text, CanvasText)}[data-ui=code-block] [data-part=line][data-mark=warning]{--_tone: var(--slotted-tone-warning-text, CanvasText)}[data-ui=code-block] [data-part=line][data-mark=add]>[data-part=marker]:before{color:var(--_tone);content:\"+\"}[data-ui=code-block] [data-part=line][data-mark=remove]>[data-part=marker]:before{color:var(--_tone);content:\"\\2212\"}[data-ui=code-block] [data-part=line][data-mark=remove]>[data-part=text]{opacity:.72}[data-ui=code-block] [data-part=line][data-dim]{color:var(--_muted);filter:blur(1px);transition:filter var(--slotted-duration-medium) var(--slotted-easing-standard),color var(--slotted-duration-medium) var(--slotted-easing-standard)}[data-ui=code-block] [data-part=line][data-dim] [data-part=token]{color:inherit}[data-ui=code-block]:not([data-loading]):is(:hover,:focus-within) [data-part=line][data-dim]{color:var(--_ink);filter:none}[data-ui=code-block]:not([data-loading]):is(:hover,:focus-within) [data-part=line][data-dim] [data-part=token]{color:revert-layer}[data-ui=code-block][data-collapse]:not([data-revealed])>[data-part=body]>[data-part=viewport]{--_visible: calc(var(--slotted-code-block-collapse) * var(--_line) + var(--_inset-block));-webkit-mask-image:linear-gradient(to bottom,#000 calc(var(--_visible) - var(--_line)),transparent var(--_visible));mask-image:linear-gradient(to bottom,#000 calc(var(--_visible) - var(--_line)),transparent var(--_visible));max-block-size:var(--_visible);overflow-y:hidden}[data-ui=code-block]>[data-part=reveal]{appearance:none;background:none;border:0;border-block-start:var(--slotted-border-width-thin, 1px) solid var(--_edge);color:var(--slotted-tone-accent-text, LinkText);cursor:pointer;font-family:var(--slotted-font-family-sans, inherit);font-size:var(--slotted-font-size-sm, .8125rem);font-weight:var(--slotted-font-weight-medium, 500);min-block-size:var(--slotted-control-height-sm, 30px);padding-block:0;padding-inline:var(--_inset-inline);text-align:start;transition:background-color var(--_duration) var(--_easing)}[data-ui=code-block]>[data-part=reveal]:focus-visible{border-end-end-radius:var(--_radius);border-end-start-radius:var(--_radius);outline-offset:calc(var(--slotted-focus-ring-offset, 2px) * -1)}[data-ui=code-block]>[data-part=reveal]:enabled:hover{background-color:var(--slotted-tone-accent-subtle-hover, ButtonFace)}[data-ui=code-block]>[data-part=reveal]:enabled:active{background-color:var(--slotted-tone-accent-subtle-active, ButtonFace)}[data-ui=code-block][data-loading] [data-part=code]{gap:var(--slotted-space-3, .375rem);padding-inline:var(--_inset-inline)}[data-ui=code-block][data-loading] [data-part=code]>[data-ui=skeleton]{block-size:var(--_font-size)}@media(prefers-reduced-motion:reduce){[data-ui=code-block] [data-part=line][data-dim]{filter:none}}@media(forced-colors:active){[data-ui=code-block] [data-part=line][data-mark]{background-color:transparent}[data-ui=code-block] [data-part=line][data-dim]{color:inherit;filter:none}}@media print{[data-ui=code-block] [data-part=pre]{min-inline-size:0;overflow-wrap:anywhere;white-space:pre-wrap}[data-ui=code-block][data-collapse]>[data-part=body]>[data-part=viewport]{-webkit-mask-image:none;mask-image:none;max-block-size:none}[data-ui=code-block]>[data-part=reveal],[data-ui=code-block] [data-part=wrap]{display:none}}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SlGlyph, selector: "svg[slGlyph]", inputs: ["name", "solid"] }, { kind: "component", type: SlIcon, selector: "[slIcon]", inputs: ["directional", "label", "size", "tone"], exportAs: ["slIcon"] }, { kind: "component", type: SlScrollArea, selector: "[slScrollArea]", inputs: ["axis", "scrollbars", "gutter", "fade", "overscroll", "maxBlockSize", "maxInlineSize", "tabbable", "labelledBy", "messages"], outputs: ["scrollChange", "overflowChange"], exportAs: ["slScrollArea"] }, { kind: "directive", type: SlScrollAreaContent, selector: "[slScrollAreaContent]", exportAs: ["slScrollAreaContent"] }, { kind: "component", type: SlSkeleton, selector: "[slSkeleton]", inputs: ["shape", "size", "animation", "loading", "inlineSize", "blockSize"], exportAs: ["slSkeleton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
376
|
+
`, isInline: true, styles: ["@layer slotted.components{[data-ui-code-block]{--_ground: var(--slotted-code-block-surface, var(--slotted-surface-sunken, Canvas));--_edge: var(--slotted-code-block-border-color, var(--slotted-border-subtle, GrayText));--_ink: var(--slotted-code-block-color, var(--slotted-text, CanvasText));--_muted: var(--slotted-code-block-color-muted, var(--slotted-text-muted, GrayText));--_radius: var(--slotted-code-block-radius, var(--slotted-radius-md, 6px));--_inset-block: var(--slotted-code-block-inset-block, var(--slotted-space-5, .75rem));--_inset-inline: var(--slotted-code-block-inset-inline, var(--slotted-space-6, 1rem));--_font-size: var(--slotted-code-block-font-size, var(--slotted-font-size-sm, .8125rem));--_line-height: var(--slotted-code-block-line-height, var(--slotted-line-height-md, 1.5));--_line: calc(var(--_font-size) * var(--_line-height));--_icon: var(--slotted-control-icon-size-md, 16px);--_hit: calc((var(--slotted-target-min, 24px) - var(--_icon)) / 2);--_duration: var(--slotted-control-transition-duration, var(--slotted-duration-short));--_easing: var(--slotted-control-transition-easing, var(--slotted-easing-standard));--_digits: var(--slotted-code-block-digits, 1);--_gutter: calc(var(--_digits) * 1ch + var(--slotted-space-4, .5rem) * 2);--_tint: var(--slotted-highlight-tint-opacity, .075);background-color:var(--_ground);border:var(--slotted-border-width-thin, 1px) solid var(--_edge);border-radius:var(--_radius);box-sizing:border-box;color:var(--_ink);display:grid;font-family:var(--slotted-code-block-font-family, var(--slotted-font-family-mono, monospace));font-size:var(--_font-size);grid-template-rows:auto minmax(0,1fr) auto;line-height:var(--_line-height);min-inline-size:0;position:relative}[data-ui-code-block]>[data-part-header]{align-items:center;border-block-end:var(--slotted-border-width-thin, 1px) solid var(--_edge);display:flex;font-family:var(--slotted-font-family-sans, inherit);font-size:var(--slotted-font-size-sm, .8125rem);gap:var(--slotted-control-gap-sm, 6px);min-inline-size:0;padding-block:var(--slotted-space-3, .375rem);padding-inline:var(--_inset-inline) var(--slotted-space-4, .5rem)}[data-ui-code-block]>[data-part-header]>[data-part-icon]{--slotted-icon-size: var(--_icon);block-size:var(--_icon);color:var(--_muted);display:flex;flex:none;inline-size:var(--_icon)}[data-ui-code-block]>[data-part-header]>[data-part-title]{font-family:var(--slotted-code-block-font-family, var(--slotted-font-family-mono, monospace));min-inline-size:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}[data-ui-code-block]>[data-part-header]>[data-part-language]{color:var(--_muted);font-size:var(--slotted-font-size-xs, .75rem);letter-spacing:.02em;margin-inline-start:auto;text-transform:uppercase}[data-ui-code-block]>[data-part-header]>[data-part-title]+[data-part-language],[data-ui-code-block]>[data-part-header]>[data-part-icon]+[data-part-language]{margin-inline-start:auto}[data-ui-code-block]>[data-part-header]>[data-part-actions]{align-items:center;display:flex;gap:var(--slotted-space-1, .125rem);margin-inline-start:auto}[data-ui-code-block]>[data-part-header]>[data-part-language]+[data-part-actions]{margin-inline-start:var(--slotted-space-3, .375rem)}[data-ui-code-block]>[data-part-actions]{align-items:center;background-color:var(--_ground);border-radius:var(--slotted-control-radius, 4px);display:flex;gap:var(--slotted-space-1, .125rem);inset-block-start:var(--slotted-space-2, .25rem);inset-inline-end:var(--slotted-space-2, .25rem);position:absolute;z-index:1}[data-ui-code-block] :is([data-part-copy],[data-part-wrap]){--slotted-icon-size: var(--_icon);align-items:center;appearance:none;background:none;block-size:var(--slotted-target-min, 24px);border:0;border-radius:var(--slotted-control-radius, var(--slotted-radius-sm, 4px));color:var(--_muted);cursor:pointer;display:inline-flex;font:inherit;inline-size:var(--slotted-target-min, 24px);justify-content:center;padding:var(--_hit);transition:color var(--_duration) var(--_easing),background-color var(--_duration) var(--_easing)}@media(pointer:coarse){[data-ui-code-block] :is([data-part-copy],[data-part-wrap]){position:relative}[data-ui-code-block] :is([data-part-copy],[data-part-wrap]):before{content:\"\";inset:min(0px,calc((100% - var(--slotted-target-comfortable, 44px)) / 2));position:absolute}[data-ui-code-block] [data-part-wrap]:has(+[data-part-copy]):before{inset-inline-end:0}[data-ui-code-block] [data-part-wrap]+[data-part-copy]:before{inset-inline-start:0}}[data-ui-code-block] :is([data-part-copy],[data-part-wrap]):enabled:not([data-complete]):hover{background-color:var(--slotted-tone-secondary-subtle-hover, ButtonFace);color:var(--_ink)}[data-ui-code-block] :is([data-part-copy],[data-part-wrap]):enabled:not([data-complete]):active{background-color:var(--slotted-tone-secondary-subtle-active, ButtonFace)}[data-ui-code-block] [data-part-wrap][data-pressed]{background-color:var(--slotted-tone-accent-surface, Canvas);color:var(--slotted-tone-accent-text, CanvasText)}[data-ui-code-block] [data-part-copy][data-complete]{color:var(--slotted-tone-success-text, CanvasText)}[data-ui-code-block] :is([data-part-copy],[data-part-wrap],[data-part-reveal]):focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:var(--slotted-focus-ring-offset, 2px)}[data-ui-code-block]>[data-part-body]{border-radius:0 0 var(--_radius) var(--_radius);min-inline-size:0}[data-ui-code-block]>[data-part-body]:first-child{border-radius:var(--_radius)}[data-ui-code-block]>[data-part-body][data-max-lines]>[data-part-viewport]{max-block-size:calc(var(--slotted-code-block-max-lines) * var(--_line) + var(--_inset-block) * 2)}[data-ui-code-block]>[data-part-body]>[data-part-viewport]:focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:calc(var(--slotted-focus-ring-offset, 2px) * -1)}[data-ui-code-block] [data-part-pre]{direction:ltr;font:inherit;margin:0;min-inline-size:max-content;padding-block:var(--_inset-block);tab-size:var(--slotted-code-block-tab-size, 2);white-space:pre}[data-ui-code-block][data-wrap] [data-part-pre]{min-inline-size:0;overflow-wrap:anywhere;white-space:pre-wrap}[data-ui-code-block] [data-part-code]{display:grid;font:inherit;grid-template-columns:minmax(0,1fr)}[data-ui-code-block] [data-part-line]{--_indent: calc(var(--slotted-code-block-indent, 0) * 1ch);box-sizing:border-box;display:grid;grid-template-columns:var(--_number, 0px) var(--_marker, 0px) minmax(0,1fr);min-block-size:var(--_line);padding-inline:var(--_inset-inline);position:relative}[data-ui-code-block][data-line-numbers] [data-part-line]{--_number: var(--_gutter);padding-inline-start:0}[data-ui-code-block]:not([data-line-numbers]) [data-part-number]{display:none}[data-ui-code-block][data-marks] [data-part-line]{--_marker: var(--slotted-space-6, 1rem)}[data-ui-code-block] [data-part-number]{color:var(--_muted);font-variant-numeric:tabular-nums;grid-column:1;padding-inline-end:var(--slotted-space-4, .5rem);text-align:end;-webkit-user-select:none;user-select:none}[data-ui-code-block] [data-part-marker]{grid-column:2;text-align:center;-webkit-user-select:none;user-select:none}[data-ui-code-block] [data-part-line]>[data-part-token],[data-ui-code-block] [data-part-line]>[data-part-text]{grid-column:3}[data-ui-code-block] [data-part-line]>[data-part-text]{display:block;min-inline-size:0}[data-ui-code-block][data-wrap] [data-part-line]>[data-part-text]{padding-inline-start:var(--_indent);text-indent:calc(var(--_indent) * -1)}[data-ui-code-block] [data-token=comment]{color:var(--slotted-code-comment, var(--slotted-text-muted, GrayText));font-style:italic}[data-ui-code-block] [data-token=keyword]{color:var(--slotted-code-keyword, var(--slotted-text, CanvasText))}[data-ui-code-block] [data-token=string]{color:var(--slotted-code-string, var(--slotted-text, CanvasText))}[data-ui-code-block] [data-token=number]{color:var(--slotted-code-number, var(--slotted-text, CanvasText))}[data-ui-code-block] [data-token=function]{color:var(--slotted-code-function, var(--slotted-text, CanvasText))}[data-ui-code-block] [data-token=type]{color:var(--slotted-code-type, var(--slotted-text, CanvasText))}[data-ui-code-block] [data-token=variable]{color:var(--slotted-code-variable, var(--slotted-text, CanvasText))}[data-ui-code-block] [data-token=property]{color:var(--slotted-code-property, var(--slotted-text, CanvasText))}[data-ui-code-block] [data-token=punctuation]{color:var(--slotted-code-punctuation, var(--slotted-text, CanvasText))}[data-ui-code-block] [data-token=tag]{color:var(--slotted-code-tag, var(--slotted-text, CanvasText))}[data-ui-code-block] [data-token=attribute]{color:var(--slotted-code-attribute, var(--slotted-text, CanvasText))}[data-ui-code-block] [data-token=constant]{color:var(--slotted-code-constant, var(--slotted-text, CanvasText))}[data-ui-code-block] [data-part-line][data-mark]{--_tone: var(--slotted-tone-accent-text, CanvasText);background-color:color-mix(in srgb,var(--_tone) calc(var(--_tint) * 100%),transparent)}[data-ui-code-block] [data-part-line]:is([data-mark=highlight],[data-mark=error],[data-mark=warning]):before{background-color:var(--_tone);content:\"\";inline-size:var(--slotted-border-width-thick, 2px);inset-block:0;inset-inline-start:0;position:absolute}[data-ui-code-block] [data-part-line][data-mark=add]{--_tone: var(--slotted-tone-success-text, CanvasText)}[data-ui-code-block] [data-part-line][data-mark=remove],[data-ui-code-block] [data-part-line][data-mark=error]{--_tone: var(--slotted-tone-danger-text, CanvasText)}[data-ui-code-block] [data-part-line][data-mark=warning]{--_tone: var(--slotted-tone-warning-text, CanvasText)}[data-ui-code-block] [data-part-line][data-mark=add]>[data-part-marker]:before{color:var(--_tone);content:\"+\"}[data-ui-code-block] [data-part-line][data-mark=remove]>[data-part-marker]:before{color:var(--_tone);content:\"\\2212\"}[data-ui-code-block] [data-part-line][data-mark=remove]>[data-part-text]{opacity:.72}[data-ui-code-block] [data-part-line][data-dim]{color:var(--_muted);filter:blur(1px);transition:filter var(--slotted-duration-medium) var(--slotted-easing-standard),color var(--slotted-duration-medium) var(--slotted-easing-standard)}[data-ui-code-block] [data-part-line][data-dim] [data-part-token]{color:inherit}[data-ui-code-block]:not([data-loading]):is(:hover,:focus-within) [data-part-line][data-dim]{color:var(--_ink);filter:none}[data-ui-code-block]:not([data-loading]):is(:hover,:focus-within) [data-part-line][data-dim] [data-part-token]{color:revert-layer}[data-ui-code-block][data-collapse]:not([data-revealed])>[data-part-body]>[data-part-viewport]{--_visible: calc(var(--slotted-code-block-collapse) * var(--_line) + var(--_inset-block));-webkit-mask-image:linear-gradient(to bottom,#000 calc(var(--_visible) - var(--_line)),transparent var(--_visible));mask-image:linear-gradient(to bottom,#000 calc(var(--_visible) - var(--_line)),transparent var(--_visible));max-block-size:var(--_visible);overflow-y:hidden}[data-ui-code-block]>[data-part-reveal]{appearance:none;background:none;border:0;border-block-start:var(--slotted-border-width-thin, 1px) solid var(--_edge);color:var(--slotted-tone-accent-text, LinkText);cursor:pointer;font-family:var(--slotted-font-family-sans, inherit);font-size:var(--slotted-font-size-sm, .8125rem);font-weight:var(--slotted-font-weight-medium, 500);min-block-size:var(--slotted-control-height-sm, 30px);padding-block:0;padding-inline:var(--_inset-inline);text-align:start;transition:background-color var(--_duration) var(--_easing)}[data-ui-code-block]>[data-part-reveal]:focus-visible{border-end-end-radius:var(--_radius);border-end-start-radius:var(--_radius);outline-offset:calc(var(--slotted-focus-ring-offset, 2px) * -1)}[data-ui-code-block]>[data-part-reveal]:enabled:hover{background-color:var(--slotted-tone-accent-subtle-hover, ButtonFace)}[data-ui-code-block]>[data-part-reveal]:enabled:active{background-color:var(--slotted-tone-accent-subtle-active, ButtonFace)}[data-ui-code-block][data-loading] [data-part-code]{gap:var(--slotted-space-3, .375rem);padding-inline:var(--_inset-inline)}[data-ui-code-block][data-loading] [data-part-code]>[data-ui-skeleton]{block-size:var(--_font-size)}@media(prefers-reduced-motion:reduce){[data-ui-code-block] [data-part-line][data-dim]{filter:none}}@media(forced-colors:active){[data-ui-code-block] [data-part-line][data-mark]{background-color:transparent}[data-ui-code-block] [data-part-line][data-dim]{color:inherit;filter:none}}@media print{[data-ui-code-block] [data-part-pre]{min-inline-size:0;overflow-wrap:anywhere;white-space:pre-wrap}[data-ui-code-block][data-collapse]>[data-part-body]>[data-part-viewport]{-webkit-mask-image:none;mask-image:none;max-block-size:none}[data-ui-code-block]>[data-part-reveal],[data-ui-code-block] [data-part-wrap]{display:none}}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SlGlyph, selector: "svg[slGlyph]", inputs: ["name", "solid"] }, { kind: "component", type: SlIcon, selector: "[slIcon]", inputs: ["directional", "label", "size", "tone"], exportAs: ["slIcon"] }, { kind: "component", type: SlScrollArea, selector: "[slScrollArea]", inputs: ["axis", "scrollbars", "gutter", "fade", "overscroll", "maxBlockSize", "maxInlineSize", "tabbable", "labelledBy", "messages"], outputs: ["scrollChange", "overflowChange"], exportAs: ["slScrollArea"] }, { kind: "directive", type: SlScrollAreaContent, selector: "[slScrollAreaContent]", exportAs: ["slScrollAreaContent"] }, { kind: "component", type: SlSkeleton, selector: "[slSkeleton]", inputs: ["shape", "size", "animation", "loading", "inlineSize", "blockSize"], exportAs: ["slSkeleton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
371
377
|
}
|
|
372
378
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlCodeBlock, decorators: [{
|
|
373
379
|
type: Component,
|
|
374
380
|
args: [{ selector: '[slCodeBlock]', standalone: true, imports: [NgTemplateOutlet, SlGlyph, SlIcon, SlScrollArea, SlScrollAreaContent, SlSkeleton], template: `
|
|
375
381
|
@if (hasHeader()) {
|
|
376
|
-
<div data-part="header">
|
|
382
|
+
<div data-part="header" data-part-header="">
|
|
377
383
|
@if (icon(); as glyph) {
|
|
378
|
-
<span aria-hidden="true" data-part="icon"
|
|
384
|
+
<span aria-hidden="true" data-part="icon" data-part-icon=""
|
|
379
385
|
><span slIcon><svg slGlyph [name]="glyph"></svg></span
|
|
380
386
|
></span>
|
|
381
387
|
}
|
|
382
388
|
@if (title(); as words) {
|
|
383
|
-
<span data-part="title" [id]="id + '-title'">{{ words }}</span>
|
|
389
|
+
<span data-part="title" data-part-title="" [id]="id + '-title'">{{ words }}</span>
|
|
384
390
|
}
|
|
385
391
|
@if (language() !== 'text') {
|
|
386
|
-
<span data-part="language">{{ language() }}</span>
|
|
392
|
+
<span data-part="language" data-part-language="">{{ language() }}</span>
|
|
387
393
|
}
|
|
388
394
|
@if (!loading()) {
|
|
389
|
-
<div data-part="actions">
|
|
395
|
+
<div data-part="actions" data-part-actions="">
|
|
390
396
|
<ng-content select="[slCodeBlockAction]"></ng-content>
|
|
391
397
|
@if (overflow() || isWrapped()) {
|
|
392
398
|
<button
|
|
393
399
|
data-part="wrap"
|
|
400
|
+
data-part-wrap=""
|
|
394
401
|
type="button"
|
|
395
402
|
[attr.aria-label]="t(isWrapped() ? 'unwrap' : 'wrap')"
|
|
396
403
|
[attr.aria-pressed]="isWrapped()"
|
|
@@ -404,6 +411,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
|
|
|
404
411
|
@if (copyControl()) {
|
|
405
412
|
<button
|
|
406
413
|
data-part="copy"
|
|
414
|
+
data-part-copy=""
|
|
407
415
|
type="button"
|
|
408
416
|
[attr.aria-label]="t('copy')"
|
|
409
417
|
[attr.data-complete]="copied() ? '' : null"
|
|
@@ -422,6 +430,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
|
|
|
422
430
|
#body
|
|
423
431
|
slScrollArea
|
|
424
432
|
data-part="body"
|
|
433
|
+
data-part-body=""
|
|
434
|
+
[attr.data-part-root]="null"
|
|
425
435
|
[axis]="maxLines() === undefined ? 'inline' : 'both'"
|
|
426
436
|
fade="both"
|
|
427
437
|
gutter="auto"
|
|
@@ -433,12 +443,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
|
|
|
433
443
|
<div slScrollAreaContent>
|
|
434
444
|
<pre
|
|
435
445
|
data-part="pre"
|
|
436
|
-
|
|
446
|
+
data-part-pre=""
|
|
447
|
+
><code data-part="code" data-part-code="" [class]="'language-' + language()">@if (loading()) {@for (width of skeletonWidths; track $index) {<span slSkeleton shape="text" aria-hidden="true" [style.inline-size]="width + '%'"></span>}} @else {@for (line of rows(); track $index) {<span data-part="line" data-part-line="" [attr.data-line]="line.number" [attr.data-mark]="line.mark ?? null" [attr.data-dim]="line.dim ? '' : null" [style.--slotted-code-block-indent]="line.indent > 0 ? line.indent : null"><span aria-hidden="true" data-part="number" data-part-number="">@if (lineNumbersValue()) {{{ line.number }}}</span><span aria-hidden="true" data-part="marker" data-part-marker=""></span><span data-part="text" data-part-text="">@if (lineTemplate(); as custom) {<ng-container [ngTemplateOutlet]="custom.template" [ngTemplateOutletContext]="{ $implicit: line.tokens, number: line.number, mark: line.mark, dim: line.dim }" />} @else {@for (token of line.tokens; track $index) {@if (token.scope) {<span data-part="token" data-part-token="" [attr.data-token]="token.scope">{{ token.text }}</span>} @else {{{ token.text }}}}}</span></span>}}</code></pre>
|
|
437
448
|
</div>
|
|
438
449
|
</div>
|
|
439
450
|
@if (collapses()) {
|
|
440
451
|
<button
|
|
441
452
|
data-part="reveal"
|
|
453
|
+
data-part-reveal=""
|
|
442
454
|
type="button"
|
|
443
455
|
[attr.aria-controls]="id + '-body'"
|
|
444
456
|
[attr.aria-expanded]="isRevealed()"
|
|
@@ -450,7 +462,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
|
|
|
450
462
|
}
|
|
451
463
|
`, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, exportAs: 'slCodeBlock', host: {
|
|
452
464
|
'data-ui': 'code-block',
|
|
465
|
+
'data-ui-code-block': '',
|
|
453
466
|
'data-part': 'root',
|
|
467
|
+
'data-part-root': '',
|
|
454
468
|
'[attr.data-language]': 'language()',
|
|
455
469
|
'[attr.data-wrap]': 'isWrapped() ? "" : null',
|
|
456
470
|
'[attr.data-revealed]': 'isRevealed() ? "" : null',
|
|
@@ -465,7 +479,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
|
|
|
465
479
|
'[style.--slotted-code-block-collapse]': 'collapses() ? collapseAfter() : null',
|
|
466
480
|
'[style.--slotted-code-block-max-lines]': 'maxLines() ?? null',
|
|
467
481
|
'(keydown)': 'onKeyDown($event)',
|
|
468
|
-
}, styles: ["@layer slotted.components{[data-ui=code-block]{--_ground: var(--slotted-code-block-surface, var(--slotted-surface-sunken, Canvas));--_edge: var(--slotted-code-block-border-color, var(--slotted-border-subtle, GrayText));--_ink: var(--slotted-code-block-color, var(--slotted-text, CanvasText));--_muted: var(--slotted-code-block-color-muted, var(--slotted-text-muted, GrayText));--_radius: var(--slotted-code-block-radius, var(--slotted-radius-md, 6px));--_inset-block: var(--slotted-code-block-inset-block, var(--slotted-space-5, .75rem));--_inset-inline: var(--slotted-code-block-inset-inline, var(--slotted-space-6, 1rem));--_font-size: var(--slotted-code-block-font-size, var(--slotted-font-size-sm, .8125rem));--_line-height: var(--slotted-code-block-line-height, var(--slotted-line-height-md, 1.5));--_line: calc(var(--_font-size) * var(--_line-height));--_icon: var(--slotted-control-icon-size-md, 16px);--_hit: calc((var(--slotted-target-min, 24px) - var(--_icon)) / 2);--_duration: var(--slotted-control-transition-duration, var(--slotted-duration-short));--_easing: var(--slotted-control-transition-easing, var(--slotted-easing-standard));--_digits: var(--slotted-code-block-digits, 1);--_gutter: calc(var(--_digits) * 1ch + var(--slotted-space-4, .5rem) * 2);--_tint: var(--slotted-highlight-tint-opacity, .075);background-color:var(--_ground);border:var(--slotted-border-width-thin, 1px) solid var(--_edge);border-radius:var(--_radius);box-sizing:border-box;color:var(--_ink);display:grid;font-family:var(--slotted-code-block-font-family, var(--slotted-font-family-mono, monospace));font-size:var(--_font-size);grid-template-rows:auto minmax(0,1fr) auto;line-height:var(--_line-height);min-inline-size:0;position:relative}[data-ui=code-block]>[data-part=header]{align-items:center;border-block-end:var(--slotted-border-width-thin, 1px) solid var(--_edge);display:flex;font-family:var(--slotted-font-family-sans, inherit);font-size:var(--slotted-font-size-sm, .8125rem);gap:var(--slotted-control-gap-sm, 6px);min-inline-size:0;padding-block:var(--slotted-space-3, .375rem);padding-inline:var(--_inset-inline) var(--slotted-space-4, .5rem)}[data-ui=code-block]>[data-part=header]>[data-part=icon]{--slotted-icon-size: var(--_icon);block-size:var(--_icon);color:var(--_muted);display:flex;flex:none;inline-size:var(--_icon)}[data-ui=code-block]>[data-part=header]>[data-part=title]{font-family:var(--slotted-code-block-font-family, var(--slotted-font-family-mono, monospace));min-inline-size:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}[data-ui=code-block]>[data-part=header]>[data-part=language]{color:var(--_muted);font-size:var(--slotted-font-size-xs, .75rem);letter-spacing:.02em;margin-inline-start:auto;text-transform:uppercase}[data-ui=code-block]>[data-part=header]>[data-part=title]+[data-part=language],[data-ui=code-block]>[data-part=header]>[data-part=icon]+[data-part=language]{margin-inline-start:auto}[data-ui=code-block]>[data-part=header]>[data-part=actions]{align-items:center;display:flex;gap:var(--slotted-space-1, .125rem);margin-inline-start:auto}[data-ui=code-block]>[data-part=header]>[data-part=language]+[data-part=actions]{margin-inline-start:var(--slotted-space-3, .375rem)}[data-ui=code-block]>[data-part=actions]{align-items:center;background-color:var(--_ground);border-radius:var(--slotted-control-radius, 4px);display:flex;gap:var(--slotted-space-1, .125rem);inset-block-start:var(--slotted-space-2, .25rem);inset-inline-end:var(--slotted-space-2, .25rem);position:absolute;z-index:1}[data-ui=code-block] :is([data-part=copy],[data-part=wrap]){--slotted-icon-size: var(--_icon);align-items:center;appearance:none;background:none;block-size:var(--slotted-target-min, 24px);border:0;border-radius:var(--slotted-control-radius, var(--slotted-radius-sm, 4px));color:var(--_muted);cursor:pointer;display:inline-flex;font:inherit;inline-size:var(--slotted-target-min, 24px);justify-content:center;padding:var(--_hit);transition:color var(--_duration) var(--_easing),background-color var(--_duration) var(--_easing)}@media(pointer:coarse){[data-ui=code-block] :is([data-part=copy],[data-part=wrap]){position:relative}[data-ui=code-block] :is([data-part=copy],[data-part=wrap]):before{content:\"\";inset:min(0px,calc((100% - var(--slotted-target-comfortable, 44px)) / 2));position:absolute}[data-ui=code-block] [data-part=wrap]:has(+[data-part=copy]):before{inset-inline-end:0}[data-ui=code-block] [data-part=wrap]+[data-part=copy]:before{inset-inline-start:0}}[data-ui=code-block] :is([data-part=copy],[data-part=wrap]):enabled:not([data-complete]):hover{background-color:var(--slotted-tone-secondary-subtle-hover, ButtonFace);color:var(--_ink)}[data-ui=code-block] :is([data-part=copy],[data-part=wrap]):enabled:not([data-complete]):active{background-color:var(--slotted-tone-secondary-subtle-active, ButtonFace)}[data-ui=code-block] [data-part=wrap][data-pressed]{background-color:var(--slotted-tone-accent-surface, Canvas);color:var(--slotted-tone-accent-text, CanvasText)}[data-ui=code-block] [data-part=copy][data-complete]{color:var(--slotted-tone-success-text, CanvasText)}[data-ui=code-block] :is([data-part=copy],[data-part=wrap],[data-part=reveal]):focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:var(--slotted-focus-ring-offset, 2px)}[data-ui=code-block]>[data-part=body]{border-radius:0 0 var(--_radius) var(--_radius);min-inline-size:0}[data-ui=code-block]>[data-part=body]:first-child{border-radius:var(--_radius)}[data-ui=code-block]>[data-part=body][data-max-lines]>[data-part=viewport]{max-block-size:calc(var(--slotted-code-block-max-lines) * var(--_line) + var(--_inset-block) * 2)}[data-ui=code-block]>[data-part=body]>[data-part=viewport]:focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:calc(var(--slotted-focus-ring-offset, 2px) * -1)}[data-ui=code-block] [data-part=pre]{direction:ltr;font:inherit;margin:0;min-inline-size:max-content;padding-block:var(--_inset-block);tab-size:var(--slotted-code-block-tab-size, 2);white-space:pre}[data-ui=code-block][data-wrap] [data-part=pre]{min-inline-size:0;overflow-wrap:anywhere;white-space:pre-wrap}[data-ui=code-block] [data-part=code]{display:grid;font:inherit;grid-template-columns:minmax(0,1fr)}[data-ui=code-block] [data-part=line]{--_indent: calc(var(--slotted-code-block-indent, 0) * 1ch);box-sizing:border-box;display:grid;grid-template-columns:var(--_number, 0px) var(--_marker, 0px) minmax(0,1fr);min-block-size:var(--_line);padding-inline:var(--_inset-inline);position:relative}[data-ui=code-block][data-line-numbers] [data-part=line]{--_number: var(--_gutter);padding-inline-start:0}[data-ui=code-block]:not([data-line-numbers]) [data-part=number]{display:none}[data-ui=code-block][data-marks] [data-part=line]{--_marker: var(--slotted-space-6, 1rem)}[data-ui=code-block] [data-part=number]{color:var(--_muted);font-variant-numeric:tabular-nums;grid-column:1;padding-inline-end:var(--slotted-space-4, .5rem);text-align:end;-webkit-user-select:none;user-select:none}[data-ui=code-block] [data-part=marker]{grid-column:2;text-align:center;-webkit-user-select:none;user-select:none}[data-ui=code-block] [data-part=line]>[data-part=token],[data-ui=code-block] [data-part=line]>[data-part=text]{grid-column:3}[data-ui=code-block] [data-part=line]>[data-part=text]{display:block;min-inline-size:0}[data-ui=code-block][data-wrap] [data-part=line]>[data-part=text]{padding-inline-start:var(--_indent);text-indent:calc(var(--_indent) * -1)}[data-ui=code-block] [data-token=comment]{color:var(--slotted-code-comment, var(--slotted-text-muted, GrayText));font-style:italic}[data-ui=code-block] [data-token=keyword]{color:var(--slotted-code-keyword, var(--slotted-text, CanvasText))}[data-ui=code-block] [data-token=string]{color:var(--slotted-code-string, var(--slotted-text, CanvasText))}[data-ui=code-block] [data-token=number]{color:var(--slotted-code-number, var(--slotted-text, CanvasText))}[data-ui=code-block] [data-token=function]{color:var(--slotted-code-function, var(--slotted-text, CanvasText))}[data-ui=code-block] [data-token=type]{color:var(--slotted-code-type, var(--slotted-text, CanvasText))}[data-ui=code-block] [data-token=variable]{color:var(--slotted-code-variable, var(--slotted-text, CanvasText))}[data-ui=code-block] [data-token=property]{color:var(--slotted-code-property, var(--slotted-text, CanvasText))}[data-ui=code-block] [data-token=punctuation]{color:var(--slotted-code-punctuation, var(--slotted-text, CanvasText))}[data-ui=code-block] [data-token=tag]{color:var(--slotted-code-tag, var(--slotted-text, CanvasText))}[data-ui=code-block] [data-token=attribute]{color:var(--slotted-code-attribute, var(--slotted-text, CanvasText))}[data-ui=code-block] [data-token=constant]{color:var(--slotted-code-constant, var(--slotted-text, CanvasText))}[data-ui=code-block] [data-part=line][data-mark]{--_tone: var(--slotted-tone-accent-text, CanvasText);background-color:color-mix(in srgb,var(--_tone) calc(var(--_tint) * 100%),transparent)}[data-ui=code-block] [data-part=line]:is([data-mark=highlight],[data-mark=error],[data-mark=warning]):before{background-color:var(--_tone);content:\"\";inline-size:var(--slotted-border-width-thick, 2px);inset-block:0;inset-inline-start:0;position:absolute}[data-ui=code-block] [data-part=line][data-mark=add]{--_tone: var(--slotted-tone-success-text, CanvasText)}[data-ui=code-block] [data-part=line][data-mark=remove],[data-ui=code-block] [data-part=line][data-mark=error]{--_tone: var(--slotted-tone-danger-text, CanvasText)}[data-ui=code-block] [data-part=line][data-mark=warning]{--_tone: var(--slotted-tone-warning-text, CanvasText)}[data-ui=code-block] [data-part=line][data-mark=add]>[data-part=marker]:before{color:var(--_tone);content:\"+\"}[data-ui=code-block] [data-part=line][data-mark=remove]>[data-part=marker]:before{color:var(--_tone);content:\"\\2212\"}[data-ui=code-block] [data-part=line][data-mark=remove]>[data-part=text]{opacity:.72}[data-ui=code-block] [data-part=line][data-dim]{color:var(--_muted);filter:blur(1px);transition:filter var(--slotted-duration-medium) var(--slotted-easing-standard),color var(--slotted-duration-medium) var(--slotted-easing-standard)}[data-ui=code-block] [data-part=line][data-dim] [data-part=token]{color:inherit}[data-ui=code-block]:not([data-loading]):is(:hover,:focus-within) [data-part=line][data-dim]{color:var(--_ink);filter:none}[data-ui=code-block]:not([data-loading]):is(:hover,:focus-within) [data-part=line][data-dim] [data-part=token]{color:revert-layer}[data-ui=code-block][data-collapse]:not([data-revealed])>[data-part=body]>[data-part=viewport]{--_visible: calc(var(--slotted-code-block-collapse) * var(--_line) + var(--_inset-block));-webkit-mask-image:linear-gradient(to bottom,#000 calc(var(--_visible) - var(--_line)),transparent var(--_visible));mask-image:linear-gradient(to bottom,#000 calc(var(--_visible) - var(--_line)),transparent var(--_visible));max-block-size:var(--_visible);overflow-y:hidden}[data-ui=code-block]>[data-part=reveal]{appearance:none;background:none;border:0;border-block-start:var(--slotted-border-width-thin, 1px) solid var(--_edge);color:var(--slotted-tone-accent-text, LinkText);cursor:pointer;font-family:var(--slotted-font-family-sans, inherit);font-size:var(--slotted-font-size-sm, .8125rem);font-weight:var(--slotted-font-weight-medium, 500);min-block-size:var(--slotted-control-height-sm, 30px);padding-block:0;padding-inline:var(--_inset-inline);text-align:start;transition:background-color var(--_duration) var(--_easing)}[data-ui=code-block]>[data-part=reveal]:focus-visible{border-end-end-radius:var(--_radius);border-end-start-radius:var(--_radius);outline-offset:calc(var(--slotted-focus-ring-offset, 2px) * -1)}[data-ui=code-block]>[data-part=reveal]:enabled:hover{background-color:var(--slotted-tone-accent-subtle-hover, ButtonFace)}[data-ui=code-block]>[data-part=reveal]:enabled:active{background-color:var(--slotted-tone-accent-subtle-active, ButtonFace)}[data-ui=code-block][data-loading] [data-part=code]{gap:var(--slotted-space-3, .375rem);padding-inline:var(--_inset-inline)}[data-ui=code-block][data-loading] [data-part=code]>[data-ui=skeleton]{block-size:var(--_font-size)}@media(prefers-reduced-motion:reduce){[data-ui=code-block] [data-part=line][data-dim]{filter:none}}@media(forced-colors:active){[data-ui=code-block] [data-part=line][data-mark]{background-color:transparent}[data-ui=code-block] [data-part=line][data-dim]{color:inherit;filter:none}}@media print{[data-ui=code-block] [data-part=pre]{min-inline-size:0;overflow-wrap:anywhere;white-space:pre-wrap}[data-ui=code-block][data-collapse]>[data-part=body]>[data-part=viewport]{-webkit-mask-image:none;mask-image:none;max-block-size:none}[data-ui=code-block]>[data-part=reveal],[data-ui=code-block] [data-part=wrap]{display:none}}}\n"] }]
|
|
482
|
+
}, styles: ["@layer slotted.components{[data-ui-code-block]{--_ground: var(--slotted-code-block-surface, var(--slotted-surface-sunken, Canvas));--_edge: var(--slotted-code-block-border-color, var(--slotted-border-subtle, GrayText));--_ink: var(--slotted-code-block-color, var(--slotted-text, CanvasText));--_muted: var(--slotted-code-block-color-muted, var(--slotted-text-muted, GrayText));--_radius: var(--slotted-code-block-radius, var(--slotted-radius-md, 6px));--_inset-block: var(--slotted-code-block-inset-block, var(--slotted-space-5, .75rem));--_inset-inline: var(--slotted-code-block-inset-inline, var(--slotted-space-6, 1rem));--_font-size: var(--slotted-code-block-font-size, var(--slotted-font-size-sm, .8125rem));--_line-height: var(--slotted-code-block-line-height, var(--slotted-line-height-md, 1.5));--_line: calc(var(--_font-size) * var(--_line-height));--_icon: var(--slotted-control-icon-size-md, 16px);--_hit: calc((var(--slotted-target-min, 24px) - var(--_icon)) / 2);--_duration: var(--slotted-control-transition-duration, var(--slotted-duration-short));--_easing: var(--slotted-control-transition-easing, var(--slotted-easing-standard));--_digits: var(--slotted-code-block-digits, 1);--_gutter: calc(var(--_digits) * 1ch + var(--slotted-space-4, .5rem) * 2);--_tint: var(--slotted-highlight-tint-opacity, .075);background-color:var(--_ground);border:var(--slotted-border-width-thin, 1px) solid var(--_edge);border-radius:var(--_radius);box-sizing:border-box;color:var(--_ink);display:grid;font-family:var(--slotted-code-block-font-family, var(--slotted-font-family-mono, monospace));font-size:var(--_font-size);grid-template-rows:auto minmax(0,1fr) auto;line-height:var(--_line-height);min-inline-size:0;position:relative}[data-ui-code-block]>[data-part-header]{align-items:center;border-block-end:var(--slotted-border-width-thin, 1px) solid var(--_edge);display:flex;font-family:var(--slotted-font-family-sans, inherit);font-size:var(--slotted-font-size-sm, .8125rem);gap:var(--slotted-control-gap-sm, 6px);min-inline-size:0;padding-block:var(--slotted-space-3, .375rem);padding-inline:var(--_inset-inline) var(--slotted-space-4, .5rem)}[data-ui-code-block]>[data-part-header]>[data-part-icon]{--slotted-icon-size: var(--_icon);block-size:var(--_icon);color:var(--_muted);display:flex;flex:none;inline-size:var(--_icon)}[data-ui-code-block]>[data-part-header]>[data-part-title]{font-family:var(--slotted-code-block-font-family, var(--slotted-font-family-mono, monospace));min-inline-size:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}[data-ui-code-block]>[data-part-header]>[data-part-language]{color:var(--_muted);font-size:var(--slotted-font-size-xs, .75rem);letter-spacing:.02em;margin-inline-start:auto;text-transform:uppercase}[data-ui-code-block]>[data-part-header]>[data-part-title]+[data-part-language],[data-ui-code-block]>[data-part-header]>[data-part-icon]+[data-part-language]{margin-inline-start:auto}[data-ui-code-block]>[data-part-header]>[data-part-actions]{align-items:center;display:flex;gap:var(--slotted-space-1, .125rem);margin-inline-start:auto}[data-ui-code-block]>[data-part-header]>[data-part-language]+[data-part-actions]{margin-inline-start:var(--slotted-space-3, .375rem)}[data-ui-code-block]>[data-part-actions]{align-items:center;background-color:var(--_ground);border-radius:var(--slotted-control-radius, 4px);display:flex;gap:var(--slotted-space-1, .125rem);inset-block-start:var(--slotted-space-2, .25rem);inset-inline-end:var(--slotted-space-2, .25rem);position:absolute;z-index:1}[data-ui-code-block] :is([data-part-copy],[data-part-wrap]){--slotted-icon-size: var(--_icon);align-items:center;appearance:none;background:none;block-size:var(--slotted-target-min, 24px);border:0;border-radius:var(--slotted-control-radius, var(--slotted-radius-sm, 4px));color:var(--_muted);cursor:pointer;display:inline-flex;font:inherit;inline-size:var(--slotted-target-min, 24px);justify-content:center;padding:var(--_hit);transition:color var(--_duration) var(--_easing),background-color var(--_duration) var(--_easing)}@media(pointer:coarse){[data-ui-code-block] :is([data-part-copy],[data-part-wrap]){position:relative}[data-ui-code-block] :is([data-part-copy],[data-part-wrap]):before{content:\"\";inset:min(0px,calc((100% - var(--slotted-target-comfortable, 44px)) / 2));position:absolute}[data-ui-code-block] [data-part-wrap]:has(+[data-part-copy]):before{inset-inline-end:0}[data-ui-code-block] [data-part-wrap]+[data-part-copy]:before{inset-inline-start:0}}[data-ui-code-block] :is([data-part-copy],[data-part-wrap]):enabled:not([data-complete]):hover{background-color:var(--slotted-tone-secondary-subtle-hover, ButtonFace);color:var(--_ink)}[data-ui-code-block] :is([data-part-copy],[data-part-wrap]):enabled:not([data-complete]):active{background-color:var(--slotted-tone-secondary-subtle-active, ButtonFace)}[data-ui-code-block] [data-part-wrap][data-pressed]{background-color:var(--slotted-tone-accent-surface, Canvas);color:var(--slotted-tone-accent-text, CanvasText)}[data-ui-code-block] [data-part-copy][data-complete]{color:var(--slotted-tone-success-text, CanvasText)}[data-ui-code-block] :is([data-part-copy],[data-part-wrap],[data-part-reveal]):focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:var(--slotted-focus-ring-offset, 2px)}[data-ui-code-block]>[data-part-body]{border-radius:0 0 var(--_radius) var(--_radius);min-inline-size:0}[data-ui-code-block]>[data-part-body]:first-child{border-radius:var(--_radius)}[data-ui-code-block]>[data-part-body][data-max-lines]>[data-part-viewport]{max-block-size:calc(var(--slotted-code-block-max-lines) * var(--_line) + var(--_inset-block) * 2)}[data-ui-code-block]>[data-part-body]>[data-part-viewport]:focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:calc(var(--slotted-focus-ring-offset, 2px) * -1)}[data-ui-code-block] [data-part-pre]{direction:ltr;font:inherit;margin:0;min-inline-size:max-content;padding-block:var(--_inset-block);tab-size:var(--slotted-code-block-tab-size, 2);white-space:pre}[data-ui-code-block][data-wrap] [data-part-pre]{min-inline-size:0;overflow-wrap:anywhere;white-space:pre-wrap}[data-ui-code-block] [data-part-code]{display:grid;font:inherit;grid-template-columns:minmax(0,1fr)}[data-ui-code-block] [data-part-line]{--_indent: calc(var(--slotted-code-block-indent, 0) * 1ch);box-sizing:border-box;display:grid;grid-template-columns:var(--_number, 0px) var(--_marker, 0px) minmax(0,1fr);min-block-size:var(--_line);padding-inline:var(--_inset-inline);position:relative}[data-ui-code-block][data-line-numbers] [data-part-line]{--_number: var(--_gutter);padding-inline-start:0}[data-ui-code-block]:not([data-line-numbers]) [data-part-number]{display:none}[data-ui-code-block][data-marks] [data-part-line]{--_marker: var(--slotted-space-6, 1rem)}[data-ui-code-block] [data-part-number]{color:var(--_muted);font-variant-numeric:tabular-nums;grid-column:1;padding-inline-end:var(--slotted-space-4, .5rem);text-align:end;-webkit-user-select:none;user-select:none}[data-ui-code-block] [data-part-marker]{grid-column:2;text-align:center;-webkit-user-select:none;user-select:none}[data-ui-code-block] [data-part-line]>[data-part-token],[data-ui-code-block] [data-part-line]>[data-part-text]{grid-column:3}[data-ui-code-block] [data-part-line]>[data-part-text]{display:block;min-inline-size:0}[data-ui-code-block][data-wrap] [data-part-line]>[data-part-text]{padding-inline-start:var(--_indent);text-indent:calc(var(--_indent) * -1)}[data-ui-code-block] [data-token=comment]{color:var(--slotted-code-comment, var(--slotted-text-muted, GrayText));font-style:italic}[data-ui-code-block] [data-token=keyword]{color:var(--slotted-code-keyword, var(--slotted-text, CanvasText))}[data-ui-code-block] [data-token=string]{color:var(--slotted-code-string, var(--slotted-text, CanvasText))}[data-ui-code-block] [data-token=number]{color:var(--slotted-code-number, var(--slotted-text, CanvasText))}[data-ui-code-block] [data-token=function]{color:var(--slotted-code-function, var(--slotted-text, CanvasText))}[data-ui-code-block] [data-token=type]{color:var(--slotted-code-type, var(--slotted-text, CanvasText))}[data-ui-code-block] [data-token=variable]{color:var(--slotted-code-variable, var(--slotted-text, CanvasText))}[data-ui-code-block] [data-token=property]{color:var(--slotted-code-property, var(--slotted-text, CanvasText))}[data-ui-code-block] [data-token=punctuation]{color:var(--slotted-code-punctuation, var(--slotted-text, CanvasText))}[data-ui-code-block] [data-token=tag]{color:var(--slotted-code-tag, var(--slotted-text, CanvasText))}[data-ui-code-block] [data-token=attribute]{color:var(--slotted-code-attribute, var(--slotted-text, CanvasText))}[data-ui-code-block] [data-token=constant]{color:var(--slotted-code-constant, var(--slotted-text, CanvasText))}[data-ui-code-block] [data-part-line][data-mark]{--_tone: var(--slotted-tone-accent-text, CanvasText);background-color:color-mix(in srgb,var(--_tone) calc(var(--_tint) * 100%),transparent)}[data-ui-code-block] [data-part-line]:is([data-mark=highlight],[data-mark=error],[data-mark=warning]):before{background-color:var(--_tone);content:\"\";inline-size:var(--slotted-border-width-thick, 2px);inset-block:0;inset-inline-start:0;position:absolute}[data-ui-code-block] [data-part-line][data-mark=add]{--_tone: var(--slotted-tone-success-text, CanvasText)}[data-ui-code-block] [data-part-line][data-mark=remove],[data-ui-code-block] [data-part-line][data-mark=error]{--_tone: var(--slotted-tone-danger-text, CanvasText)}[data-ui-code-block] [data-part-line][data-mark=warning]{--_tone: var(--slotted-tone-warning-text, CanvasText)}[data-ui-code-block] [data-part-line][data-mark=add]>[data-part-marker]:before{color:var(--_tone);content:\"+\"}[data-ui-code-block] [data-part-line][data-mark=remove]>[data-part-marker]:before{color:var(--_tone);content:\"\\2212\"}[data-ui-code-block] [data-part-line][data-mark=remove]>[data-part-text]{opacity:.72}[data-ui-code-block] [data-part-line][data-dim]{color:var(--_muted);filter:blur(1px);transition:filter var(--slotted-duration-medium) var(--slotted-easing-standard),color var(--slotted-duration-medium) var(--slotted-easing-standard)}[data-ui-code-block] [data-part-line][data-dim] [data-part-token]{color:inherit}[data-ui-code-block]:not([data-loading]):is(:hover,:focus-within) [data-part-line][data-dim]{color:var(--_ink);filter:none}[data-ui-code-block]:not([data-loading]):is(:hover,:focus-within) [data-part-line][data-dim] [data-part-token]{color:revert-layer}[data-ui-code-block][data-collapse]:not([data-revealed])>[data-part-body]>[data-part-viewport]{--_visible: calc(var(--slotted-code-block-collapse) * var(--_line) + var(--_inset-block));-webkit-mask-image:linear-gradient(to bottom,#000 calc(var(--_visible) - var(--_line)),transparent var(--_visible));mask-image:linear-gradient(to bottom,#000 calc(var(--_visible) - var(--_line)),transparent var(--_visible));max-block-size:var(--_visible);overflow-y:hidden}[data-ui-code-block]>[data-part-reveal]{appearance:none;background:none;border:0;border-block-start:var(--slotted-border-width-thin, 1px) solid var(--_edge);color:var(--slotted-tone-accent-text, LinkText);cursor:pointer;font-family:var(--slotted-font-family-sans, inherit);font-size:var(--slotted-font-size-sm, .8125rem);font-weight:var(--slotted-font-weight-medium, 500);min-block-size:var(--slotted-control-height-sm, 30px);padding-block:0;padding-inline:var(--_inset-inline);text-align:start;transition:background-color var(--_duration) var(--_easing)}[data-ui-code-block]>[data-part-reveal]:focus-visible{border-end-end-radius:var(--_radius);border-end-start-radius:var(--_radius);outline-offset:calc(var(--slotted-focus-ring-offset, 2px) * -1)}[data-ui-code-block]>[data-part-reveal]:enabled:hover{background-color:var(--slotted-tone-accent-subtle-hover, ButtonFace)}[data-ui-code-block]>[data-part-reveal]:enabled:active{background-color:var(--slotted-tone-accent-subtle-active, ButtonFace)}[data-ui-code-block][data-loading] [data-part-code]{gap:var(--slotted-space-3, .375rem);padding-inline:var(--_inset-inline)}[data-ui-code-block][data-loading] [data-part-code]>[data-ui-skeleton]{block-size:var(--_font-size)}@media(prefers-reduced-motion:reduce){[data-ui-code-block] [data-part-line][data-dim]{filter:none}}@media(forced-colors:active){[data-ui-code-block] [data-part-line][data-mark]{background-color:transparent}[data-ui-code-block] [data-part-line][data-dim]{color:inherit;filter:none}}@media print{[data-ui-code-block] [data-part-pre]{min-inline-size:0;overflow-wrap:anywhere;white-space:pre-wrap}[data-ui-code-block][data-collapse]>[data-part-body]>[data-part-viewport]{-webkit-mask-image:none;mask-image:none;max-block-size:none}[data-ui-code-block]>[data-part-reveal],[data-ui-code-block] [data-part-wrap]{display:none}}}\n"] }]
|
|
469
483
|
}], ctorParameters: () => [], propDecorators: { code: [{ type: i0.Input, args: [{ isSignal: true, alias: "code", required: true }] }], language: [{ type: i0.Input, args: [{ isSignal: true, alias: "language", required: false }] }], highlight: [{ type: i0.Input, args: [{ isSignal: true, alias: "highlight", required: false }] }], tokens: [{ type: i0.Input, args: [{ isSignal: true, alias: "tokens", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], fileName: [{ type: i0.Input, args: [{ isSignal: true, alias: "fileName", required: false }] }], lineNumbers: [{ type: i0.Input, args: [{ isSignal: true, alias: "lineNumbers", required: false }] }], start: [{ type: i0.Input, args: [{ isSignal: true, alias: "start", required: false }] }], marks: [{ type: i0.Input, args: [{ isSignal: true, alias: "marks", required: false }] }], wrap: [{ type: i0.Input, args: [{ isSignal: true, alias: "wrap", required: false }] }, { type: i0.Output, args: ["wrapChange"] }], defaultWrap: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultWrap", required: false }] }], collapseAfter: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapseAfter", required: false }] }], revealed: [{ type: i0.Input, args: [{ isSignal: true, alias: "revealed", required: false }] }, { type: i0.Output, args: ["revealedChange"] }], defaultRevealed: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultRevealed", required: false }] }], maxLines: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxLines", required: false }] }], copy: [{ type: i0.Input, args: [{ isSignal: true, alias: "copy", required: false }] }], copyRemoved: [{ type: i0.Input, args: [{ isSignal: true, alias: "copyRemoved", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], messages: [{ type: i0.Input, args: [{ isSignal: true, alias: "messages", required: false }] }], tabSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "tabSize", required: false }] }], wrapChangeRequest: [{ type: i0.Output, args: ["wrapChangeRequest"] }], revealedChangeRequest: [{ type: i0.Output, args: ["revealedChangeRequest"] }], copyRequest: [{ type: i0.Output, args: ["copyRequest"] }], highlightError: [{ type: i0.Output, args: ["highlightError"] }], body: [{ type: i0.ViewChild, args: ['body', { isSignal: true }] }], lineTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SlCodeBlockLine), { isSignal: true }] }], action: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SlCodeBlockAction), { isSignal: true }] }] } });
|
|
470
484
|
|
|
471
485
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slotted-angular-code-block.mjs","sources":["../../code-block/src/code-block.constants.ts","../../code-block/src/code-block.ts","../../code-block/src/slotted-angular-code-block.ts"],"sourcesContent":["import { InjectionToken, inject } from '@angular/core';\nimport type { CodeHighlighter, CodeMark } from '@slotted/core/code';\n\nexport type CodeBlockWrapReason = 'pointer' | 'keyboard' | 'programmatic';\nexport type CodeBlockRevealedReason = 'pointer' | 'keyboard' | 'escape' | 'programmatic';\nexport type { CodeMark };\n\nexport interface CodeBlockCopyRequest {\n readonly value: string;\n readonly reason: 'pointer' | 'keyboard';\n readonly copied: boolean;\n readonly source?: Event | undefined;\n}\n\nexport interface CodeBlockDefaults {\n highlight?: CodeHighlighter;\n lineNumbers?: boolean;\n copy?: boolean;\n}\n\nexport const CODE_BLOCK_DEFAULTS_TOKEN = new InjectionToken<CodeBlockDefaults>(\n 'slotted code-block defaults',\n { providedIn: 'root', factory: (): CodeBlockDefaults => ({}) },\n);\n\n/**\n * An application that has loaded an engine once hands it to every block here,\n * along with whether blocks number their lines and carry a copy control. A\n * block that states any of those itself still wins. Its words come from the\n * language in force (`provideSlotted`).\n */\nexport function provideCodeBlockDefaults(defaults: CodeBlockDefaults) {\n return { provide: CODE_BLOCK_DEFAULTS_TOKEN, useValue: defaults };\n}\n\nexport function injectCodeBlockDefaults(): CodeBlockDefaults {\n return inject(CODE_BLOCK_DEFAULTS_TOKEN);\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n DestroyRef,\n Directive,\n effect,\n ElementRef,\n HostAttributeToken,\n inject,\n input,\n model,\n numberAttribute,\n output,\n signal,\n TemplateRef,\n untracked,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { injectMessages } from '@slotted/angular/i18n';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\nimport type { GlyphName } from '@slotted/angular/icon';\nimport { writeToClipboard } from '@slotted/core/clipboard';\nimport {\n copyText,\n gutterDigits,\n leadingColumns,\n lineMarks,\n lineText,\n plainLines,\n} from '@slotted/core/code';\nimport type { CodeHighlighter, CodeLine, CodeMarks, LineMark } from '@slotted/core/code';\nimport {\n codeBlockMessages,\n type CodeBlockMessages,\n type PartialMessages,\n} from '@slotted/core/i18n';\nimport { getLiveAnnouncer } from '@slotted/core/live-announcer';\nimport { createControllable } from '@slotted/core/state';\nimport type { ChangeRequest } from '@slotted/core/state';\nimport { fileKind } from '@slotted/core/upload';\nimport { SlScrollArea, SlScrollAreaContent } from '@slotted/angular/scroll-area';\nimport type { ScrollEdgesState } from '@slotted/angular/scroll-area';\nimport { SlSkeleton } from '@slotted/angular/skeleton';\n\nimport {\n injectCodeBlockDefaults,\n type CodeBlockCopyRequest,\n type CodeBlockRevealedReason,\n type CodeBlockWrapReason,\n} from './code-block.constants';\n\n/** How long the check stays in place of the sheets. */\nconst COPIED_FOR = 2000;\n\nconst KIND_ICON: Record<string, GlyphName> = {\n archive: 'file-archive',\n audio: 'file-audio',\n document: 'file-type',\n image: 'file-image',\n pdf: 'file-text',\n presentation: 'presentation',\n spreadsheet: 'file-spreadsheet',\n video: 'file-video',\n};\n\nlet counter = 0;\n\n/** A control of the consumer's own, projected beside copy and wrap. */\n@Directive({ selector: '[slCodeBlockAction]', standalone: true })\nexport class SlCodeBlockAction {}\n\n/** What a `slCodeBlockLine` template is handed for one line. */\nexport interface CodeBlockLineContext {\n $implicit: CodeLine;\n number: number;\n mark: LineMark['mark'];\n dim: boolean;\n}\n\n/** Replaces the run of tokens a line draws. The gutter stays the family's. */\n@Directive({ selector: 'ng-template[slCodeBlockLine]', standalone: true })\nexport class SlCodeBlockLine {\n readonly template = inject<TemplateRef<CodeBlockLineContext>>(TemplateRef);\n}\n\n/**\n * A block of source: a header that names the file and holds the two controls,\n * a body that is a `scroll-area`, and inside it a `pre` whose every line is a\n * grid row. Tokens come in from an engine outside the family and are drawn as\n * text in spans; HTML never does.\n */\n@Component({\n selector: '[slCodeBlock]',\n standalone: true,\n imports: [NgTemplateOutlet, SlGlyph, SlIcon, SlScrollArea, SlScrollAreaContent, SlSkeleton],\n template: `\n @if (hasHeader()) {\n <div data-part=\"header\">\n @if (icon(); as glyph) {\n <span aria-hidden=\"true\" data-part=\"icon\"\n ><span slIcon><svg slGlyph [name]=\"glyph\"></svg></span\n ></span>\n }\n @if (title(); as words) {\n <span data-part=\"title\" [id]=\"id + '-title'\">{{ words }}</span>\n }\n @if (language() !== 'text') {\n <span data-part=\"language\">{{ language() }}</span>\n }\n @if (!loading()) {\n <div data-part=\"actions\">\n <ng-content select=\"[slCodeBlockAction]\"></ng-content>\n @if (overflow() || isWrapped()) {\n <button\n data-part=\"wrap\"\n type=\"button\"\n [attr.aria-label]=\"t(isWrapped() ? 'unwrap' : 'wrap')\"\n [attr.aria-pressed]=\"isWrapped()\"\n [attr.data-pressed]=\"isWrapped() ? '' : null\"\n (click)=\"toggleWrap($event)\"\n (keydown)=\"remember($event)\"\n >\n <span slIcon><svg slGlyph name=\"text-wrap\"></svg></span>\n </button>\n }\n @if (copyControl()) {\n <button\n data-part=\"copy\"\n type=\"button\"\n [attr.aria-label]=\"t('copy')\"\n [attr.data-complete]=\"copied() ? '' : null\"\n (click)=\"copyFromControl($event)\"\n (keydown)=\"remember($event)\"\n >\n <!-- The check stands in for the sheets while the copy is confirmed. -->\n <span slIcon><svg slGlyph [name]=\"copied() ? 'check' : 'copy'\"></svg></span>\n </button>\n }\n </div>\n }\n </div>\n }\n <div\n #body\n slScrollArea\n data-part=\"body\"\n [axis]=\"maxLines() === undefined ? 'inline' : 'both'\"\n fade=\"both\"\n gutter=\"auto\"\n [id]=\"id + '-body'\"\n [messages]=\"{ label: regionName() }\"\n [attr.data-max-lines]=\"maxLines() === undefined ? null : ''\"\n (overflowChange)=\"onOverflow($event)\"\n >\n <div slScrollAreaContent>\n <pre\n data-part=\"pre\"\n ><code data-part=\"code\" [class]=\"'language-' + language()\">@if (loading()) {@for (width of skeletonWidths; track $index) {<span slSkeleton shape=\"text\" aria-hidden=\"true\" [style.inline-size]=\"width + '%'\"></span>}} @else {@for (line of rows(); track $index) {<span data-part=\"line\" [attr.data-line]=\"line.number\" [attr.data-mark]=\"line.mark ?? null\" [attr.data-dim]=\"line.dim ? '' : null\" [style.--slotted-code-block-indent]=\"line.indent > 0 ? line.indent : null\"><span aria-hidden=\"true\" data-part=\"number\">@if (lineNumbersValue()) {{{ line.number }}}</span><span aria-hidden=\"true\" data-part=\"marker\"></span><span data-part=\"text\">@if (lineTemplate(); as custom) {<ng-container [ngTemplateOutlet]=\"custom.template\" [ngTemplateOutletContext]=\"{ $implicit: line.tokens, number: line.number, mark: line.mark, dim: line.dim }\" />} @else {@for (token of line.tokens; track $index) {@if (token.scope) {<span data-part=\"token\" [attr.data-token]=\"token.scope\">{{ token.text }}</span>} @else {{{ token.text }}}}}</span></span>}}</code></pre>\n </div>\n </div>\n @if (collapses()) {\n <button\n data-part=\"reveal\"\n type=\"button\"\n [attr.aria-controls]=\"id + '-body'\"\n [attr.aria-expanded]=\"isRevealed()\"\n (click)=\"toggleRevealed($event)\"\n (keydown)=\"remember($event)\"\n >\n {{ isRevealed() ? t('collapse') : t('reveal', { count: hiddenCount() }) }}\n </button>\n }\n `,\n styleUrl: '../../../styles/src/code-block/code-block.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slCodeBlock',\n host: {\n 'data-ui': 'code-block',\n 'data-part': 'root',\n '[attr.data-language]': 'language()',\n '[attr.data-wrap]': 'isWrapped() ? \"\" : null',\n '[attr.data-revealed]': 'isRevealed() ? \"\" : null',\n '[attr.data-collapse]': 'collapses() ? \"\" : null',\n '[attr.data-line-numbers]': 'lineNumbersValue() ? \"\" : null',\n '[attr.data-loading]': 'loading() ? \"\" : null',\n '[attr.aria-busy]': 'loading() ? \"true\" : null',\n '[attr.data-empty]': 'code() === \"\" ? \"\" : null',\n '[attr.data-marks]': 'hasMarks() ? \"\" : null',\n '[attr.data-overflow]': 'overflow() ? \"\" : null',\n '[style.--slotted-code-block-digits]': 'digits()',\n '[style.--slotted-code-block-collapse]': 'collapses() ? collapseAfter() : null',\n '[style.--slotted-code-block-max-lines]': 'maxLines() ?? null',\n '(keydown)': 'onKeyDown($event)',\n },\n})\nexport class SlCodeBlock {\n /** The source, as text. Never HTML. */\n readonly code = input.required<string>();\n readonly language = input('text');\n /** The engine, outside the family. `null` refuses the one the provider set. */\n readonly highlight = input<CodeHighlighter | null | undefined>(undefined);\n /** Already-tokenised lines, when the consumer ran the engine itself. */\n readonly tokens = input<readonly CodeLine[] | undefined>(undefined);\n readonly title = input<string | undefined>(undefined);\n /** The file's name, for the glyph beside the title. Defaults to `title`. */\n readonly fileName = input<string | undefined>(undefined);\n readonly lineNumbers = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n readonly start = input(1, { transform: numberAttribute });\n readonly marks = input<CodeMarks | undefined>(undefined);\n /** Present is controlled, for the life of the block. */\n readonly wrap = model<boolean | undefined>(undefined);\n /** Where an uncontrolled block starts, read once. */\n readonly defaultWrap = input(false, { transform: booleanAttribute });\n readonly collapseAfter = input<number | undefined, number | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : numberAttribute(value)),\n });\n readonly revealed = model<boolean | undefined>(undefined);\n readonly defaultRevealed = input(false, { transform: booleanAttribute });\n readonly isWrapped = computed(() => this.wrap() ?? this.defaultWrap());\n readonly isRevealed = computed(() => this.revealed() ?? this.defaultRevealed());\n readonly maxLines = input<number | undefined, number | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : numberAttribute(value)),\n });\n readonly copy = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n readonly copyRemoved = input(false, { transform: booleanAttribute });\n readonly loading = input(false, { transform: booleanAttribute });\n /**\n * Words laid over the catalog of the language in force, key by key: the\n * scroll region's name when the block has no title (`region`), the controls,\n * and the announcements.\n */\n readonly messages = input<PartialMessages<CodeBlockMessages> | undefined>(undefined);\n readonly tabSize = input(2, { transform: numberAttribute });\n\n /** The request behind a wrap change, with the reason it carries. */\n readonly wrapChangeRequest = output<ChangeRequest<boolean>>();\n readonly revealedChangeRequest = output<ChangeRequest<boolean>>();\n /** What the copy control wrote, and whether the platform took it. */\n readonly copyRequest = output<CodeBlockCopyRequest>();\n readonly highlightError = output<unknown>();\n\n private readonly defaults = injectCodeBlockDefaults();\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly destroyRef = inject(DestroyRef);\n private readonly ariaLabel = inject(new HostAttributeToken('aria-label'), { optional: true });\n private readonly body = viewChild.required<SlScrollArea>('body');\n protected readonly lineTemplate = contentChild(SlCodeBlockLine);\n private readonly action = contentChild(SlCodeBlockAction);\n\n readonly id = `slotted-code-block-${(counter += 1)}`;\n protected readonly skeletonWidths = [62, 78, 44, 70];\n\n /** The family's words in the language in force, with this block's `messages` laid over them. */\n readonly t = injectMessages(codeBlockMessages, this.messages);\n protected readonly lineNumbersValue = computed(\n () => this.lineNumbers() ?? this.defaults.lineNumbers ?? false,\n );\n protected readonly copyControl = computed(() => this.copy() ?? this.defaults.copy ?? true);\n private readonly engine = computed(() => {\n const own = this.highlight();\n return own === null ? undefined : (own ?? this.defaults.highlight);\n });\n\n private readonly resolved = signal<{ code: string; lines: readonly CodeLine[] } | null>(null);\n protected readonly copied = signal(false);\n protected readonly overflow = signal(false);\n private timer: ReturnType<typeof setTimeout> | undefined;\n private keyed = false;\n\n private readonly lines = computed<readonly CodeLine[]>(() => {\n const tokens = this.tokens();\n if (tokens) return tokens;\n const resolved = this.resolved();\n return resolved && resolved.code === this.code() ? resolved.lines : plainLines(this.code());\n });\n\n private readonly marksByLine = computed(() => lineMarks(this.marks(), this.lines().length));\n protected readonly hasMarks = computed(() =>\n this.marksByLine().some((entry) => entry.mark !== undefined || entry.dim),\n );\n\n protected readonly rows = computed(() => {\n const marks = this.marksByLine();\n const start = this.start();\n const wrap = this.isWrapped();\n const tabSize = this.tabSize();\n return this.lines().map((tokens, index) => ({\n dim: marks[index]?.dim ?? false,\n indent: wrap ? leadingColumns(lineText(tokens), tabSize) : 0,\n mark: marks[index]?.mark,\n number: start + index,\n tokens,\n }));\n });\n\n protected readonly digits = computed(() => gutterDigits(this.lines().length, this.start()));\n protected readonly collapses = computed(() => {\n const after = this.collapseAfter();\n return after !== undefined && this.lines().length > after;\n });\n protected readonly hiddenCount = computed(() =>\n this.collapses() ? this.lines().length - (this.collapseAfter() ?? 0) : 0,\n );\n protected readonly hasHeader = computed(\n () =>\n this.title() !== undefined ||\n this.language() !== 'text' ||\n this.copyControl() ||\n this.action() !== undefined,\n );\n protected readonly icon = computed(() => {\n const name = this.fileName() ?? this.title();\n if (!name || this.title() === undefined) return undefined;\n return KIND_ICON[fileKind({ name, type: '' })] ?? 'file';\n });\n protected readonly regionName = computed(\n () => this.title() ?? this.ariaLabel ?? this.t('region'),\n );\n\n constructor() {\n /* The engine runs after the first paint and its lines are swapped in. */\n effect((onCleanup) => {\n const engine = this.engine();\n const code = this.code();\n const language = this.language();\n if (!engine || this.tokens()) return;\n let live = true;\n onCleanup(() => {\n live = false;\n });\n Promise.resolve()\n .then(() => engine(code, language))\n .then((lines) => {\n if (live) this.resolved.set({ code, lines });\n })\n .catch((error: unknown) => {\n if (live) this.highlightError.emit(error);\n });\n });\n this.destroyRef.onDestroy(() => clearTimeout(this.timer));\n }\n\n protected onOverflow(state: ScrollEdgesState) {\n this.overflow.set(state.inline.overflowing);\n }\n\n /** `Enter` and `Space` both end in a click; whether a key came first decides the reason. */\n protected remember(event: KeyboardEvent) {\n this.keyed = event.key === 'Enter' || event.key === ' ';\n }\n\n private takeReason(): 'pointer' | 'keyboard' {\n const reason = this.keyed ? 'keyboard' : 'pointer';\n this.keyed = false;\n return reason;\n }\n\n protected toggleWrap(event?: Event) {\n this.requestWrap(!this.isWrapped(), this.takeReason(), event);\n }\n\n requestWrap(next: boolean, reason: CodeBlockWrapReason, source?: Event) {\n const state = createControllable<boolean>({\n initial: this.isWrapped(),\n onRequest: (request) => this.wrapChangeRequest.emit(request),\n });\n if (state.request(next, reason, source)) this.wrap.set(next);\n }\n\n protected toggleRevealed(event?: Event) {\n this.requestRevealed(!this.isRevealed(), this.takeReason(), event);\n }\n\n requestRevealed(next: boolean, reason: CodeBlockRevealedReason, source?: Event) {\n const state = createControllable<boolean>({\n initial: this.isRevealed(),\n onRequest: (request) => this.revealedChangeRequest.emit(request),\n });\n if (state.request(next, reason, source)) this.revealed.set(next);\n }\n\n protected onKeyDown(event: KeyboardEvent) {\n if (event.defaultPrevented || event.key !== 'Escape') return;\n if (!untracked(this.collapses) || !untracked(this.revealed)) return;\n event.preventDefault();\n this.requestRevealed(false, 'escape', event);\n this.body().focus();\n }\n\n protected copyFromControl(event: Event) {\n void this.write(this.takeReason(), event);\n }\n\n /** Writes the code to the clipboard, as the control does. */\n copyCode(): Promise<boolean> {\n return this.write('keyboard');\n }\n\n private async write(reason: 'pointer' | 'keyboard', source?: Event): Promise<boolean> {\n const value = copyText(this.code(), this.marks(), { includeRemoved: this.copyRemoved() });\n const done = (await writeToClipboard(value)) !== 'refused';\n if (done) {\n this.copied.set(true);\n clearTimeout(this.timer);\n this.timer = setTimeout(() => this.copied.set(false), COPIED_FOR);\n }\n getLiveAnnouncer(this.host.nativeElement.ownerDocument).announce(\n this.t(done ? 'copied' : 'copyFailed'),\n );\n this.copyRequest.emit({ copied: done, reason, source, value });\n return done;\n }\n\n /** Brings a one-based line into view. */\n scrollToLine(line: number) {\n const element = this.host.nativeElement.querySelector<HTMLElement>(`[data-line='${line}']`);\n if (element) this.body().reveal(element);\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-code-block.mjs","sources":["../../code-block/src/code-block.constants.ts","../../code-block/src/code-block.ts","../../code-block/src/slotted-angular-code-block.ts"],"sourcesContent":["import { InjectionToken, inject } from '@angular/core';\nimport type { CodeHighlighter, CodeMark } from '@slotted/core/code';\n\nexport type CodeBlockWrapReason = 'pointer' | 'keyboard' | 'programmatic';\nexport type CodeBlockRevealedReason = 'pointer' | 'keyboard' | 'escape' | 'programmatic';\nexport type { CodeMark };\n\nexport interface CodeBlockCopyRequest {\n readonly value: string;\n readonly reason: 'pointer' | 'keyboard';\n readonly copied: boolean;\n readonly source?: Event | undefined;\n}\n\nexport interface CodeBlockDefaults {\n highlight?: CodeHighlighter;\n lineNumbers?: boolean;\n copy?: boolean;\n}\n\nexport const CODE_BLOCK_DEFAULTS_TOKEN = new InjectionToken<CodeBlockDefaults>(\n 'slotted code-block defaults',\n { providedIn: 'root', factory: (): CodeBlockDefaults => ({}) },\n);\n\n/**\n * An application that has loaded an engine once hands it to every block here,\n * along with whether blocks number their lines and carry a copy control. A\n * block that states any of those itself still wins. Its words come from the\n * language in force (`provideSlotted`).\n */\nexport function provideCodeBlockDefaults(defaults: CodeBlockDefaults) {\n return { provide: CODE_BLOCK_DEFAULTS_TOKEN, useValue: defaults };\n}\n\nexport function injectCodeBlockDefaults(): CodeBlockDefaults {\n return inject(CODE_BLOCK_DEFAULTS_TOKEN);\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n DestroyRef,\n Directive,\n effect,\n ElementRef,\n HostAttributeToken,\n inject,\n input,\n model,\n numberAttribute,\n output,\n signal,\n TemplateRef,\n untracked,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { injectMessages } from '@slotted/angular/i18n';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\nimport type { GlyphName } from '@slotted/angular/icon';\nimport { writeToClipboard } from '@slotted/core/clipboard';\nimport {\n copyText,\n gutterDigits,\n leadingColumns,\n lineMarks,\n lineText,\n plainLines,\n} from '@slotted/core/code';\nimport type { CodeHighlighter, CodeLine, CodeMarks, LineMark } from '@slotted/core/code';\nimport {\n codeBlockMessages,\n type CodeBlockMessages,\n type PartialMessages,\n} from '@slotted/core/i18n';\nimport { getLiveAnnouncer } from '@slotted/core/live-announcer';\nimport { createControllable } from '@slotted/core/state';\nimport type { ChangeRequest } from '@slotted/core/state';\nimport { fileKind } from '@slotted/core/upload';\nimport { SlScrollArea, SlScrollAreaContent } from '@slotted/angular/scroll-area';\nimport type { ScrollEdgesState } from '@slotted/angular/scroll-area';\nimport { SlSkeleton } from '@slotted/angular/skeleton';\n\nimport {\n injectCodeBlockDefaults,\n type CodeBlockCopyRequest,\n type CodeBlockRevealedReason,\n type CodeBlockWrapReason,\n} from './code-block.constants';\n\n/** How long the check stays in place of the sheets. */\nconst COPIED_FOR = 2000;\n\nconst KIND_ICON: Record<string, GlyphName> = {\n archive: 'file-archive',\n audio: 'file-audio',\n document: 'file-type',\n image: 'file-image',\n pdf: 'file-text',\n presentation: 'presentation',\n spreadsheet: 'file-spreadsheet',\n video: 'file-video',\n};\n\nlet counter = 0;\n\n/** A control of the consumer's own, projected beside copy and wrap. */\n@Directive({ selector: '[slCodeBlockAction]', standalone: true })\nexport class SlCodeBlockAction {}\n\n/** What a `slCodeBlockLine` template is handed for one line. */\nexport interface CodeBlockLineContext {\n $implicit: CodeLine;\n number: number;\n mark: LineMark['mark'];\n dim: boolean;\n}\n\n/** Replaces the run of tokens a line draws. The gutter stays the family's. */\n@Directive({ selector: 'ng-template[slCodeBlockLine]', standalone: true })\nexport class SlCodeBlockLine {\n readonly template = inject<TemplateRef<CodeBlockLineContext>>(TemplateRef);\n}\n\n/**\n * A block of source: a header that names the file and holds the two controls,\n * a body that is a `scroll-area`, and inside it a `pre` whose every line is a\n * grid row. Tokens come in from an engine outside the family and are drawn as\n * text in spans; HTML never does.\n */\n@Component({\n selector: '[slCodeBlock]',\n standalone: true,\n imports: [NgTemplateOutlet, SlGlyph, SlIcon, SlScrollArea, SlScrollAreaContent, SlSkeleton],\n template: `\n @if (hasHeader()) {\n <div data-part=\"header\" data-part-header=\"\">\n @if (icon(); as glyph) {\n <span aria-hidden=\"true\" data-part=\"icon\" data-part-icon=\"\"\n ><span slIcon><svg slGlyph [name]=\"glyph\"></svg></span\n ></span>\n }\n @if (title(); as words) {\n <span data-part=\"title\" data-part-title=\"\" [id]=\"id + '-title'\">{{ words }}</span>\n }\n @if (language() !== 'text') {\n <span data-part=\"language\" data-part-language=\"\">{{ language() }}</span>\n }\n @if (!loading()) {\n <div data-part=\"actions\" data-part-actions=\"\">\n <ng-content select=\"[slCodeBlockAction]\"></ng-content>\n @if (overflow() || isWrapped()) {\n <button\n data-part=\"wrap\"\n data-part-wrap=\"\"\n type=\"button\"\n [attr.aria-label]=\"t(isWrapped() ? 'unwrap' : 'wrap')\"\n [attr.aria-pressed]=\"isWrapped()\"\n [attr.data-pressed]=\"isWrapped() ? '' : null\"\n (click)=\"toggleWrap($event)\"\n (keydown)=\"remember($event)\"\n >\n <span slIcon><svg slGlyph name=\"text-wrap\"></svg></span>\n </button>\n }\n @if (copyControl()) {\n <button\n data-part=\"copy\"\n data-part-copy=\"\"\n type=\"button\"\n [attr.aria-label]=\"t('copy')\"\n [attr.data-complete]=\"copied() ? '' : null\"\n (click)=\"copyFromControl($event)\"\n (keydown)=\"remember($event)\"\n >\n <!-- The check stands in for the sheets while the copy is confirmed. -->\n <span slIcon><svg slGlyph [name]=\"copied() ? 'check' : 'copy'\"></svg></span>\n </button>\n }\n </div>\n }\n </div>\n }\n <div\n #body\n slScrollArea\n data-part=\"body\"\n data-part-body=\"\"\n [attr.data-part-root]=\"null\"\n [axis]=\"maxLines() === undefined ? 'inline' : 'both'\"\n fade=\"both\"\n gutter=\"auto\"\n [id]=\"id + '-body'\"\n [messages]=\"{ label: regionName() }\"\n [attr.data-max-lines]=\"maxLines() === undefined ? null : ''\"\n (overflowChange)=\"onOverflow($event)\"\n >\n <div slScrollAreaContent>\n <pre\n data-part=\"pre\"\n data-part-pre=\"\"\n ><code data-part=\"code\" data-part-code=\"\" [class]=\"'language-' + language()\">@if (loading()) {@for (width of skeletonWidths; track $index) {<span slSkeleton shape=\"text\" aria-hidden=\"true\" [style.inline-size]=\"width + '%'\"></span>}} @else {@for (line of rows(); track $index) {<span data-part=\"line\" data-part-line=\"\" [attr.data-line]=\"line.number\" [attr.data-mark]=\"line.mark ?? null\" [attr.data-dim]=\"line.dim ? '' : null\" [style.--slotted-code-block-indent]=\"line.indent > 0 ? line.indent : null\"><span aria-hidden=\"true\" data-part=\"number\" data-part-number=\"\">@if (lineNumbersValue()) {{{ line.number }}}</span><span aria-hidden=\"true\" data-part=\"marker\" data-part-marker=\"\"></span><span data-part=\"text\" data-part-text=\"\">@if (lineTemplate(); as custom) {<ng-container [ngTemplateOutlet]=\"custom.template\" [ngTemplateOutletContext]=\"{ $implicit: line.tokens, number: line.number, mark: line.mark, dim: line.dim }\" />} @else {@for (token of line.tokens; track $index) {@if (token.scope) {<span data-part=\"token\" data-part-token=\"\" [attr.data-token]=\"token.scope\">{{ token.text }}</span>} @else {{{ token.text }}}}}</span></span>}}</code></pre>\n </div>\n </div>\n @if (collapses()) {\n <button\n data-part=\"reveal\"\n data-part-reveal=\"\"\n type=\"button\"\n [attr.aria-controls]=\"id + '-body'\"\n [attr.aria-expanded]=\"isRevealed()\"\n (click)=\"toggleRevealed($event)\"\n (keydown)=\"remember($event)\"\n >\n {{ isRevealed() ? t('collapse') : t('reveal', { count: hiddenCount() }) }}\n </button>\n }\n `,\n styleUrl: '../../../styles/src/code-block/code-block.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slCodeBlock',\n host: {\n 'data-ui': 'code-block',\n 'data-ui-code-block': '',\n 'data-part': 'root',\n 'data-part-root': '',\n '[attr.data-language]': 'language()',\n '[attr.data-wrap]': 'isWrapped() ? \"\" : null',\n '[attr.data-revealed]': 'isRevealed() ? \"\" : null',\n '[attr.data-collapse]': 'collapses() ? \"\" : null',\n '[attr.data-line-numbers]': 'lineNumbersValue() ? \"\" : null',\n '[attr.data-loading]': 'loading() ? \"\" : null',\n '[attr.aria-busy]': 'loading() ? \"true\" : null',\n '[attr.data-empty]': 'code() === \"\" ? \"\" : null',\n '[attr.data-marks]': 'hasMarks() ? \"\" : null',\n '[attr.data-overflow]': 'overflow() ? \"\" : null',\n '[style.--slotted-code-block-digits]': 'digits()',\n '[style.--slotted-code-block-collapse]': 'collapses() ? collapseAfter() : null',\n '[style.--slotted-code-block-max-lines]': 'maxLines() ?? null',\n '(keydown)': 'onKeyDown($event)',\n },\n})\nexport class SlCodeBlock {\n /** The source, as text. Never HTML. */\n readonly code = input.required<string>();\n readonly language = input('text');\n /** The engine, outside the family. `null` refuses the one the provider set. */\n readonly highlight = input<CodeHighlighter | null | undefined>(undefined);\n /** Already-tokenised lines, when the consumer ran the engine itself. */\n readonly tokens = input<readonly CodeLine[] | undefined>(undefined);\n readonly title = input<string | undefined>(undefined);\n /** The file's name, for the glyph beside the title. Defaults to `title`. */\n readonly fileName = input<string | undefined>(undefined);\n readonly lineNumbers = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n readonly start = input(1, { transform: numberAttribute });\n readonly marks = input<CodeMarks | undefined>(undefined);\n /** Present is controlled, for the life of the block. */\n readonly wrap = model<boolean | undefined>(undefined);\n /** Where an uncontrolled block starts, read once. */\n readonly defaultWrap = input(false, { transform: booleanAttribute });\n readonly collapseAfter = input<number | undefined, number | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : numberAttribute(value)),\n });\n readonly revealed = model<boolean | undefined>(undefined);\n readonly defaultRevealed = input(false, { transform: booleanAttribute });\n readonly isWrapped = computed(() => this.wrap() ?? this.defaultWrap());\n readonly isRevealed = computed(() => this.revealed() ?? this.defaultRevealed());\n readonly maxLines = input<number | undefined, number | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : numberAttribute(value)),\n });\n readonly copy = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n readonly copyRemoved = input(false, { transform: booleanAttribute });\n readonly loading = input(false, { transform: booleanAttribute });\n /**\n * Words laid over the catalog of the language in force, key by key: the\n * scroll region's name when the block has no title (`region`), the controls,\n * and the announcements.\n */\n readonly messages = input<PartialMessages<CodeBlockMessages> | undefined>(undefined);\n readonly tabSize = input(2, { transform: numberAttribute });\n\n /** The request behind a wrap change, with the reason it carries. */\n readonly wrapChangeRequest = output<ChangeRequest<boolean>>();\n readonly revealedChangeRequest = output<ChangeRequest<boolean>>();\n /** What the copy control wrote, and whether the platform took it. */\n readonly copyRequest = output<CodeBlockCopyRequest>();\n readonly highlightError = output<unknown>();\n\n private readonly defaults = injectCodeBlockDefaults();\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly destroyRef = inject(DestroyRef);\n private readonly ariaLabel = inject(new HostAttributeToken('aria-label'), { optional: true });\n private readonly body = viewChild.required<SlScrollArea>('body');\n protected readonly lineTemplate = contentChild(SlCodeBlockLine);\n private readonly action = contentChild(SlCodeBlockAction);\n\n readonly id = `slotted-code-block-${(counter += 1)}`;\n protected readonly skeletonWidths = [62, 78, 44, 70];\n\n /** The family's words in the language in force, with this block's `messages` laid over them. */\n readonly t = injectMessages(codeBlockMessages, this.messages);\n protected readonly lineNumbersValue = computed(\n () => this.lineNumbers() ?? this.defaults.lineNumbers ?? false,\n );\n protected readonly copyControl = computed(() => this.copy() ?? this.defaults.copy ?? true);\n private readonly engine = computed(() => {\n const own = this.highlight();\n return own === null ? undefined : (own ?? this.defaults.highlight);\n });\n\n private readonly resolved = signal<{ code: string; lines: readonly CodeLine[] } | null>(null);\n protected readonly copied = signal(false);\n protected readonly overflow = signal(false);\n private timer: ReturnType<typeof setTimeout> | undefined;\n private keyed = false;\n\n private readonly lines = computed<readonly CodeLine[]>(() => {\n const tokens = this.tokens();\n if (tokens) return tokens;\n const resolved = this.resolved();\n return resolved && resolved.code === this.code() ? resolved.lines : plainLines(this.code());\n });\n\n private readonly marksByLine = computed(() => lineMarks(this.marks(), this.lines().length));\n protected readonly hasMarks = computed(() =>\n this.marksByLine().some((entry) => entry.mark !== undefined || entry.dim),\n );\n\n protected readonly rows = computed(() => {\n const marks = this.marksByLine();\n const start = this.start();\n const wrap = this.isWrapped();\n const tabSize = this.tabSize();\n return this.lines().map((tokens, index) => ({\n dim: marks[index]?.dim ?? false,\n indent: wrap ? leadingColumns(lineText(tokens), tabSize) : 0,\n mark: marks[index]?.mark,\n number: start + index,\n tokens,\n }));\n });\n\n protected readonly digits = computed(() => gutterDigits(this.lines().length, this.start()));\n protected readonly collapses = computed(() => {\n const after = this.collapseAfter();\n return after !== undefined && this.lines().length > after;\n });\n protected readonly hiddenCount = computed(() =>\n this.collapses() ? this.lines().length - (this.collapseAfter() ?? 0) : 0,\n );\n protected readonly hasHeader = computed(\n () =>\n this.title() !== undefined ||\n this.language() !== 'text' ||\n this.copyControl() ||\n this.action() !== undefined,\n );\n protected readonly icon = computed(() => {\n const name = this.fileName() ?? this.title();\n if (!name || this.title() === undefined) return undefined;\n return KIND_ICON[fileKind({ name, type: '' })] ?? 'file';\n });\n protected readonly regionName = computed(\n () => this.title() ?? this.ariaLabel ?? this.t('region'),\n );\n\n constructor() {\n /* The engine runs after the first paint and its lines are swapped in. */\n effect((onCleanup) => {\n const engine = this.engine();\n const code = this.code();\n const language = this.language();\n if (!engine || this.tokens()) return;\n let live = true;\n onCleanup(() => {\n live = false;\n });\n Promise.resolve()\n .then(() => engine(code, language))\n .then((lines) => {\n if (live) this.resolved.set({ code, lines });\n })\n .catch((error: unknown) => {\n if (live) this.highlightError.emit(error);\n });\n });\n this.destroyRef.onDestroy(() => clearTimeout(this.timer));\n }\n\n protected onOverflow(state: ScrollEdgesState) {\n this.overflow.set(state.inline.overflowing);\n }\n\n /** `Enter` and `Space` both end in a click; whether a key came first decides the reason. */\n protected remember(event: KeyboardEvent) {\n this.keyed = event.key === 'Enter' || event.key === ' ';\n }\n\n private takeReason(): 'pointer' | 'keyboard' {\n const reason = this.keyed ? 'keyboard' : 'pointer';\n this.keyed = false;\n return reason;\n }\n\n protected toggleWrap(event?: Event) {\n this.requestWrap(!this.isWrapped(), this.takeReason(), event);\n }\n\n requestWrap(next: boolean, reason: CodeBlockWrapReason, source?: Event) {\n const state = createControllable<boolean>({\n initial: this.isWrapped(),\n onRequest: (request) => this.wrapChangeRequest.emit(request),\n });\n if (state.request(next, reason, source)) this.wrap.set(next);\n }\n\n protected toggleRevealed(event?: Event) {\n this.requestRevealed(!this.isRevealed(), this.takeReason(), event);\n }\n\n requestRevealed(next: boolean, reason: CodeBlockRevealedReason, source?: Event) {\n const state = createControllable<boolean>({\n initial: this.isRevealed(),\n onRequest: (request) => this.revealedChangeRequest.emit(request),\n });\n if (state.request(next, reason, source)) this.revealed.set(next);\n }\n\n protected onKeyDown(event: KeyboardEvent) {\n if (event.defaultPrevented || event.key !== 'Escape') return;\n if (!untracked(this.collapses) || !untracked(this.revealed)) return;\n event.preventDefault();\n this.requestRevealed(false, 'escape', event);\n this.body().focus();\n }\n\n protected copyFromControl(event: Event) {\n void this.write(this.takeReason(), event);\n }\n\n /** Writes the code to the clipboard, as the control does. */\n copyCode(): Promise<boolean> {\n return this.write('keyboard');\n }\n\n private async write(reason: 'pointer' | 'keyboard', source?: Event): Promise<boolean> {\n const value = copyText(this.code(), this.marks(), { includeRemoved: this.copyRemoved() });\n const done = (await writeToClipboard(value)) !== 'refused';\n if (done) {\n this.copied.set(true);\n clearTimeout(this.timer);\n this.timer = setTimeout(() => this.copied.set(false), COPIED_FOR);\n }\n getLiveAnnouncer(this.host.nativeElement.ownerDocument).announce(\n this.t(done ? 'copied' : 'copyFailed'),\n );\n this.copyRequest.emit({ copied: done, reason, source, value });\n return done;\n }\n\n /** Brings a one-based line into view. */\n scrollToLine(line: number) {\n const element = this.host.nativeElement.querySelector<HTMLElement>(`[data-line='${line}']`);\n if (element) this.body().reveal(element);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|