@rt-tools/ui-kit-v2 0.16.0 → 0.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +25 -0
- package/fesm2022/rt-tools-ui-kit-v2-accordion.mjs +79 -0
- package/fesm2022/rt-tools-ui-kit-v2-accordion.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-action-bar.mjs +227 -0
- package/fesm2022/rt-tools-ui-kit-v2-action-bar.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-aside-section.mjs +47 -0
- package/fesm2022/rt-tools-ui-kit-v2-aside-section.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-aside.mjs +702 -0
- package/fesm2022/rt-tools-ui-kit-v2-aside.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-autocomplete.mjs +214 -0
- package/fesm2022/rt-tools-ui-kit-v2-autocomplete.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-bar-list.mjs +53 -0
- package/fesm2022/rt-tools-ui-kit-v2-bar-list.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-bottom-sheet.mjs +88 -0
- package/fesm2022/rt-tools-ui-kit-v2-bottom-sheet.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-button.mjs +365 -0
- package/fesm2022/rt-tools-ui-kit-v2-button.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-calendar.mjs +152 -0
- package/fesm2022/rt-tools-ui-kit-v2-calendar.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-card.mjs +72 -0
- package/fesm2022/rt-tools-ui-kit-v2-card.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-checkbox.mjs +111 -0
- package/fesm2022/rt-tools-ui-kit-v2-checkbox.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-collapsible-text.mjs +76 -0
- package/fesm2022/rt-tools-ui-kit-v2-collapsible-text.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-confirm-popover.mjs +255 -0
- package/fesm2022/rt-tools-ui-kit-v2-confirm-popover.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-container.mjs +1326 -0
- package/fesm2022/rt-tools-ui-kit-v2-container.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-core.mjs +2590 -0
- package/fesm2022/rt-tools-ui-kit-v2-core.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-counter-row.mjs +45 -0
- package/fesm2022/rt-tools-ui-kit-v2-counter-row.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-counter.mjs +158 -0
- package/fesm2022/rt-tools-ui-kit-v2-counter.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-data-list.mjs +894 -0
- package/fesm2022/rt-tools-ui-kit-v2-data-list.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-data-table.mjs +1217 -0
- package/fesm2022/rt-tools-ui-kit-v2-data-table.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-date-picker.mjs +779 -0
- package/fesm2022/rt-tools-ui-kit-v2-date-picker.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-date-range.mjs +573 -0
- package/fesm2022/rt-tools-ui-kit-v2-date-range.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-delta-view.mjs +141 -0
- package/fesm2022/rt-tools-ui-kit-v2-delta-view.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-detail-list.mjs +68 -0
- package/fesm2022/rt-tools-ui-kit-v2-detail-list.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-dialog.mjs +478 -0
- package/fesm2022/rt-tools-ui-kit-v2-dialog.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-dot-field.mjs +183 -0
- package/fesm2022/rt-tools-ui-kit-v2-dot-field.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-download-link.mjs +44 -0
- package/fesm2022/rt-tools-ui-kit-v2-download-link.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-dynamic-list.mjs +260 -0
- package/fesm2022/rt-tools-ui-kit-v2-dynamic-list.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-dynamic-selector.mjs +937 -0
- package/fesm2022/rt-tools-ui-kit-v2-dynamic-selector.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-empty-state.mjs +56 -0
- package/fesm2022/rt-tools-ui-kit-v2-empty-state.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-expansion-panel.mjs +107 -0
- package/fesm2022/rt-tools-ui-kit-v2-expansion-panel.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-field.mjs +183 -0
- package/fesm2022/rt-tools-ui-kit-v2-field.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-file-card.mjs +219 -0
- package/fesm2022/rt-tools-ui-kit-v2-file-card.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-file-drop.mjs +214 -0
- package/fesm2022/rt-tools-ui-kit-v2-file-drop.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-file-input.mjs +117 -0
- package/fesm2022/rt-tools-ui-kit-v2-file-input.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-file-list.mjs +32 -0
- package/fesm2022/rt-tools-ui-kit-v2-file-list.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-filter-control.mjs +91 -0
- package/fesm2022/rt-tools-ui-kit-v2-filter-control.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-form-control.mjs +220 -0
- package/fesm2022/rt-tools-ui-kit-v2-form-control.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-header.mjs +72 -0
- package/fesm2022/rt-tools-ui-kit-v2-header.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-icon-button.mjs +163 -0
- package/fesm2022/rt-tools-ui-kit-v2-icon-button.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-icon.mjs +674 -0
- package/fesm2022/rt-tools-ui-kit-v2-icon.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-image-cropper.mjs +540 -0
- package/fesm2022/rt-tools-ui-kit-v2-image-cropper.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-image-upload.mjs +227 -0
- package/fesm2022/rt-tools-ui-kit-v2-image-upload.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-info-item.mjs +37 -0
- package/fesm2022/rt-tools-ui-kit-v2-info-item.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-input-number.mjs +361 -0
- package/fesm2022/rt-tools-ui-kit-v2-input-number.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-input.mjs +143 -0
- package/fesm2022/rt-tools-ui-kit-v2-input.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-live-badge.mjs +49 -0
- package/fesm2022/rt-tools-ui-kit-v2-live-badge.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-logo.mjs +97 -0
- package/fesm2022/rt-tools-ui-kit-v2-logo.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-markdown-text.mjs +57 -0
- package/fesm2022/rt-tools-ui-kit-v2-markdown-text.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-menu.mjs +537 -0
- package/fesm2022/rt-tools-ui-kit-v2-menu.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-message.mjs +105 -0
- package/fesm2022/rt-tools-ui-kit-v2-message.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-money-list.mjs +71 -0
- package/fesm2022/rt-tools-ui-kit-v2-money-list.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-multiselect.mjs +315 -0
- package/fesm2022/rt-tools-ui-kit-v2-multiselect.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-night-grid.mjs +51 -0
- package/fesm2022/rt-tools-ui-kit-v2-night-grid.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-note.mjs +44 -0
- package/fesm2022/rt-tools-ui-kit-v2-note.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-notifications-bell.mjs +54 -0
- package/fesm2022/rt-tools-ui-kit-v2-notifications-bell.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-page-header.mjs +339 -0
- package/fesm2022/rt-tools-ui-kit-v2-page-header.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-pagination.mjs +187 -0
- package/fesm2022/rt-tools-ui-kit-v2-pagination.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-photo-viewer.mjs +170 -0
- package/fesm2022/rt-tools-ui-kit-v2-photo-viewer.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-popover.mjs +312 -0
- package/fesm2022/rt-tools-ui-kit-v2-popover.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-radio-button.mjs +174 -0
- package/fesm2022/rt-tools-ui-kit-v2-radio-button.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-radius.mjs +56 -0
- package/fesm2022/rt-tools-ui-kit-v2-radius.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-rich-editor.mjs +96 -41
- package/fesm2022/rt-tools-ui-kit-v2-rich-editor.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-ripple.mjs +118 -0
- package/fesm2022/rt-tools-ui-kit-v2-ripple.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-scroll-area.mjs +290 -0
- package/fesm2022/rt-tools-ui-kit-v2-scroll-area.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-section-nav.mjs +37 -0
- package/fesm2022/rt-tools-ui-kit-v2-section-nav.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-select.mjs +495 -0
- package/fesm2022/rt-tools-ui-kit-v2-select.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-side-menu.mjs +1493 -0
- package/fesm2022/rt-tools-ui-kit-v2-side-menu.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-skeleton-wrapper.mjs +49 -0
- package/fesm2022/rt-tools-ui-kit-v2-skeleton-wrapper.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-skeleton.mjs +123 -0
- package/fesm2022/rt-tools-ui-kit-v2-skeleton.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-spinner.mjs +70 -0
- package/fesm2022/rt-tools-ui-kit-v2-spinner.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-split-button.mjs +92 -0
- package/fesm2022/rt-tools-ui-kit-v2-split-button.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-stat-tile.mjs +147 -0
- package/fesm2022/rt-tools-ui-kit-v2-stat-tile.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-stepper.mjs +117 -0
- package/fesm2022/rt-tools-ui-kit-v2-stepper.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-table.mjs +1636 -0
- package/fesm2022/rt-tools-ui-kit-v2-table.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-tabs.mjs +350 -0
- package/fesm2022/rt-tools-ui-kit-v2-tabs.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-tag.mjs +122 -0
- package/fesm2022/rt-tools-ui-kit-v2-tag.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-textarea.mjs +85 -0
- package/fesm2022/rt-tools-ui-kit-v2-textarea.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-theme-toggle.mjs +73 -0
- package/fesm2022/rt-tools-ui-kit-v2-theme-toggle.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-thread-list.mjs +196 -0
- package/fesm2022/rt-tools-ui-kit-v2-thread-list.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-timeline.mjs +39 -0
- package/fesm2022/rt-tools-ui-kit-v2-timeline.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-toast.mjs +338 -0
- package/fesm2022/rt-tools-ui-kit-v2-toast.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-toggle-button-group.mjs +132 -0
- package/fesm2022/rt-tools-ui-kit-v2-toggle-button-group.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-toggle-switch.mjs +162 -0
- package/fesm2022/rt-tools-ui-kit-v2-toggle-switch.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-toolbar.mjs +135 -0
- package/fesm2022/rt-tools-ui-kit-v2-toolbar.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-tooltip.mjs +214 -0
- package/fesm2022/rt-tools-ui-kit-v2-tooltip.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-welcome-dialog.mjs +64 -0
- package/fesm2022/rt-tools-ui-kit-v2-welcome-dialog.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-workspace-details.mjs +263 -0
- package/fesm2022/rt-tools-ui-kit-v2-workspace-details.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-workspace.mjs +296 -0
- package/fesm2022/rt-tools-ui-kit-v2-workspace.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2.mjs +91 -23164
- package/fesm2022/rt-tools-ui-kit-v2.mjs.map +1 -1
- package/package.json +349 -1
- package/rt-tools-ui-kit-v2-0.18.0.tgz +0 -0
- package/src/lib/components/action-bar/CONTEXT.md +5 -0
- package/src/lib/components/action-bar/rt-action-bar.component.scss +30 -16
- package/src/lib/components/aside/CONTEXT.md +9 -1
- package/src/lib/components/aside/footer/rt-aside-footer.component.scss +7 -8
- package/src/lib/components/aside/header/rt-aside-header.component.scss +16 -1
- package/src/lib/components/aside/rt-aside.component.scss +17 -1
- package/src/lib/components/button/CONTEXT.md +12 -11
- package/src/lib/components/button/rt-button.directive.scss +36 -0
- package/src/lib/components/data-list/settings/rt-data-list-settings-aside.component.scss +2 -2
- package/src/lib/components/data-table/cell/rt-data-table-cell.component.scss +1 -1
- package/src/lib/components/data-table/filter-cell/rt-data-table-filter-cell.component.scss +1 -1
- package/src/lib/components/data-table/rt-data-table.component.scss +1 -1
- package/src/lib/components/dialog/CONTEXT.md +9 -0
- package/src/lib/components/dialog/content/rt-dialog-content.component.scss +20 -0
- package/src/lib/components/dialog/footer/rt-dialog-footer.component.scss +18 -2
- package/src/lib/components/dialog/header/rt-dialog-header.component.scss +21 -3
- package/src/lib/components/dialog/rt-dialog.component.scss +9 -3
- package/src/lib/components/dot-field/CONTEXT.md +31 -0
- package/src/lib/components/dot-field/rt-dot-field.component.scss +20 -0
- package/src/lib/components/dot-field/stories/component/CONTEXT.md +14 -0
- package/src/lib/components/dot-field/stories/component/test-dot-field.component.scss +31 -0
- package/src/lib/components/dynamic-selector/CONTEXT.md +6 -0
- package/src/lib/components/field/CONTEXT.md +18 -2
- package/src/lib/components/header/CONTEXT.md +2 -2
- package/src/lib/components/icon/CONTEXT.md +11 -7
- package/src/lib/components/icon/rt-icon.component.scss +47 -0
- package/src/lib/components/icon-button/CONTEXT.md +27 -20
- package/src/lib/components/icon-button/rt-icon-button.component.scss +51 -25
- package/src/lib/components/image-upload/CONTEXT.md +20 -15
- package/src/lib/components/image-upload/rt-image-upload.component.scss +14 -2
- package/src/lib/components/pagination/rt-pagination.component.scss +1 -1
- package/src/lib/components/scroll-area/CONTEXT.md +2 -0
- package/src/lib/components/scroll-area/rt-scroll-area.component.scss +20 -3
- package/src/lib/components/select/rt-select.component.scss +4 -0
- package/src/lib/components/side-menu/CONTEXT.md +7 -2
- package/src/lib/components/spinner/CONTEXT.md +15 -8
- package/src/lib/components/spinner/rt-spinner.component.scss +108 -9
- package/src/lib/components/tag/rt-tag.component.scss +43 -23
- package/src/lib/components/toast/CONTEXT.md +8 -0
- package/src/lib/components/toast/rt-toast.component.scss +74 -15
- package/src/lib/components/toast/rt-toaster.component.scss +5 -1
- package/src/lib/components/toggle-button-group/rt-toggle-button-group.component.scss +35 -37
- package/src/lib/components/toggle-switch/CONTEXT.md +11 -3
- package/src/lib/components/toggle-switch/rt-toggle-switch.component.scss +53 -14
- package/src/lib/components/toolbar/rt-toolbar.component.scss +15 -4
- package/src/lib/components/tooltip/CONTEXT.md +5 -5
- package/src/rich-editor/lib/components/chat/CONTEXT.md +7 -2
- package/src/rich-editor/lib/components/chat/rt-chat.component.scss +25 -0
- package/src/styles/_semantic.scss +1 -1
- package/styles/tokens.css +43 -8
- package/types/rt-tools-ui-kit-v2-accordion.d.ts +30 -0
- package/types/rt-tools-ui-kit-v2-action-bar.d.ts +140 -0
- package/types/rt-tools-ui-kit-v2-aside-section.d.ts +25 -0
- package/types/rt-tools-ui-kit-v2-aside.d.ts +436 -0
- package/types/rt-tools-ui-kit-v2-autocomplete.d.ts +78 -0
- package/types/rt-tools-ui-kit-v2-bar-list.d.ts +41 -0
- package/types/rt-tools-ui-kit-v2-bottom-sheet.d.ts +20 -0
- package/types/rt-tools-ui-kit-v2-button.d.ts +76 -0
- package/types/rt-tools-ui-kit-v2-calendar.d.ts +96 -0
- package/types/rt-tools-ui-kit-v2-card.d.ts +38 -0
- package/types/rt-tools-ui-kit-v2-checkbox.d.ts +46 -0
- package/types/rt-tools-ui-kit-v2-collapsible-text.d.ts +20 -0
- package/types/rt-tools-ui-kit-v2-confirm-popover.d.ts +85 -0
- package/types/rt-tools-ui-kit-v2-container.d.ts +425 -0
- package/types/rt-tools-ui-kit-v2-core.d.ts +1222 -0
- package/types/rt-tools-ui-kit-v2-counter-row.d.ts +22 -0
- package/types/rt-tools-ui-kit-v2-counter.d.ts +70 -0
- package/types/rt-tools-ui-kit-v2-data-list.d.ts +334 -0
- package/types/rt-tools-ui-kit-v2-data-table.d.ts +494 -0
- package/types/rt-tools-ui-kit-v2-date-picker.d.ts +181 -0
- package/types/rt-tools-ui-kit-v2-date-range.d.ts +98 -0
- package/types/rt-tools-ui-kit-v2-delta-view.d.ts +20 -0
- package/types/rt-tools-ui-kit-v2-detail-list.d.ts +33 -0
- package/types/rt-tools-ui-kit-v2-dialog.d.ts +287 -0
- package/types/rt-tools-ui-kit-v2-dot-field.d.ts +17 -0
- package/types/rt-tools-ui-kit-v2-download-link.d.ts +17 -0
- package/types/rt-tools-ui-kit-v2-dynamic-list.d.ts +139 -0
- package/types/rt-tools-ui-kit-v2-dynamic-selector.d.ts +384 -0
- package/types/rt-tools-ui-kit-v2-empty-state.d.ts +29 -0
- package/types/rt-tools-ui-kit-v2-expansion-panel.d.ts +57 -0
- package/types/rt-tools-ui-kit-v2-field.d.ts +82 -0
- package/types/rt-tools-ui-kit-v2-file-card.d.ts +114 -0
- package/types/rt-tools-ui-kit-v2-file-drop.d.ts +75 -0
- package/types/rt-tools-ui-kit-v2-file-input.d.ts +48 -0
- package/types/rt-tools-ui-kit-v2-file-list.d.ts +13 -0
- package/types/rt-tools-ui-kit-v2-filter-control.d.ts +72 -0
- package/types/rt-tools-ui-kit-v2-form-control.d.ts +74 -0
- package/types/rt-tools-ui-kit-v2-header.d.ts +40 -0
- package/types/rt-tools-ui-kit-v2-icon-button.d.ts +113 -0
- package/types/rt-tools-ui-kit-v2-icon.d.ts +238 -0
- package/types/rt-tools-ui-kit-v2-image-cropper.d.ts +168 -0
- package/types/rt-tools-ui-kit-v2-image-upload.d.ts +102 -0
- package/types/rt-tools-ui-kit-v2-info-item.d.ts +13 -0
- package/types/rt-tools-ui-kit-v2-input-number.d.ts +67 -0
- package/types/rt-tools-ui-kit-v2-input.d.ts +54 -0
- package/types/rt-tools-ui-kit-v2-live-badge.d.ts +23 -0
- package/types/rt-tools-ui-kit-v2-logo.d.ts +58 -0
- package/types/rt-tools-ui-kit-v2-markdown-text.d.ts +30 -0
- package/types/rt-tools-ui-kit-v2-menu.d.ts +217 -0
- package/types/rt-tools-ui-kit-v2-message.d.ts +56 -0
- package/types/rt-tools-ui-kit-v2-money-list.d.ts +34 -0
- package/types/rt-tools-ui-kit-v2-multiselect.d.ts +93 -0
- package/types/rt-tools-ui-kit-v2-night-grid.d.ts +39 -0
- package/types/rt-tools-ui-kit-v2-note.d.ts +21 -0
- package/types/rt-tools-ui-kit-v2-notifications-bell.d.ts +23 -0
- package/types/rt-tools-ui-kit-v2-page-header.d.ts +173 -0
- package/types/rt-tools-ui-kit-v2-pagination.d.ts +64 -0
- package/types/rt-tools-ui-kit-v2-photo-viewer.d.ts +98 -0
- package/types/rt-tools-ui-kit-v2-popover.d.ts +79 -0
- package/types/rt-tools-ui-kit-v2-radio-button.d.ts +61 -0
- package/types/rt-tools-ui-kit-v2-radius.d.ts +37 -0
- package/types/rt-tools-ui-kit-v2-rich-editor.d.ts +16 -20
- package/types/rt-tools-ui-kit-v2-ripple.d.ts +39 -0
- package/types/rt-tools-ui-kit-v2-scroll-area.d.ts +91 -0
- package/types/rt-tools-ui-kit-v2-section-nav.d.ts +23 -0
- package/types/rt-tools-ui-kit-v2-select.d.ts +215 -0
- package/types/rt-tools-ui-kit-v2-side-menu.d.ts +483 -0
- package/types/rt-tools-ui-kit-v2-skeleton-wrapper.d.ts +32 -0
- package/types/rt-tools-ui-kit-v2-skeleton.d.ts +41 -0
- package/types/rt-tools-ui-kit-v2-spinner.d.ts +56 -0
- package/types/rt-tools-ui-kit-v2-split-button.d.ts +72 -0
- package/types/rt-tools-ui-kit-v2-stat-tile.d.ts +81 -0
- package/types/rt-tools-ui-kit-v2-stepper.d.ts +51 -0
- package/types/rt-tools-ui-kit-v2-table.d.ts +739 -0
- package/types/rt-tools-ui-kit-v2-tabs.d.ts +153 -0
- package/types/rt-tools-ui-kit-v2-tag.d.ts +70 -0
- package/types/rt-tools-ui-kit-v2-textarea.d.ts +36 -0
- package/types/rt-tools-ui-kit-v2-theme-toggle.d.ts +43 -0
- package/types/rt-tools-ui-kit-v2-thread-list.d.ts +111 -0
- package/types/rt-tools-ui-kit-v2-timeline.d.ts +35 -0
- package/types/rt-tools-ui-kit-v2-toast.d.ts +103 -0
- package/types/rt-tools-ui-kit-v2-toggle-button-group.d.ts +109 -0
- package/types/rt-tools-ui-kit-v2-toggle-switch.d.ts +85 -0
- package/types/rt-tools-ui-kit-v2-toolbar.d.ts +66 -0
- package/types/rt-tools-ui-kit-v2-tooltip.d.ts +74 -0
- package/types/rt-tools-ui-kit-v2-welcome-dialog.d.ts +33 -0
- package/types/rt-tools-ui-kit-v2-workspace-details.d.ts +128 -0
- package/types/rt-tools-ui-kit-v2-workspace.d.ts +84 -0
- package/types/rt-tools-ui-kit-v2.d.ts +87 -9290
- package/rt-tools-ui-kit-v2-0.16.0.tgz +0 -0
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { TemplateRef, Signal, ModelSignal, InputSignalWithTransform, InputSignal } from '@angular/core';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Тело `rt-expansion-panel`, собираемое лениво: ставится на `<ng-template>` внутри панели, и его
|
|
6
|
+
* содержимое создаётся при раскрытии и уходит после сворачивания. Сворачивание при этом доигрывает
|
|
7
|
+
* движение до конца: тело уходит вместе со своим содержимым, а не пустым.
|
|
8
|
+
*/
|
|
9
|
+
declare class RtExpansionPanelContentDirective {
|
|
10
|
+
readonly templateRef: TemplateRef<unknown>;
|
|
11
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RtExpansionPanelContentDirective, never>;
|
|
12
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RtExpansionPanelContentDirective, "ng-template[rtExpansionPanelContent]", never, {}, {}, never, never, true, never>;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
declare namespace IRtExpansionPanel {
|
|
16
|
+
/**
|
|
17
|
+
* Вид панели: `card` — отдельная карточка на фоне поверхности с тенью, как панель Material;
|
|
18
|
+
* `plain` — без фона, тени и отступов, для панели внутри списка, который рисует строки сам.
|
|
19
|
+
*/
|
|
20
|
+
type Appearance = 'card' | 'plain';
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Раскрывающаяся панель: заголовок-кнопка во всю ширину с шевроном у правого края и тело под ним.
|
|
25
|
+
* Нажатие на заголовок раскрывает и сворачивает тело, раскрытие и сворачивание идут с движением.
|
|
26
|
+
* Заменяет во втором ките панель раскрытия Material первого кита.
|
|
27
|
+
*
|
|
28
|
+
* Заголовок — содержимое панели без отметки. Тело — узел с `rtExpansionPanelBody`, созданный сразу,
|
|
29
|
+
* или `<ng-template rtExpansionPanelContent>`, созданный при раскрытии.
|
|
30
|
+
*
|
|
31
|
+
* Состояние раскрытия — `expanded`, двусторонняя привязка: панель пишет в него сама, а владелец
|
|
32
|
+
* может держать его в своём сигнале и менять извне.
|
|
33
|
+
*/
|
|
34
|
+
declare class RtExpansionPanelComponent {
|
|
35
|
+
#private;
|
|
36
|
+
/** Ленивое тело: шаблон создаётся при раскрытии. */
|
|
37
|
+
protected readonly lazyContent: Signal<RtExpansionPanelContentDirective | undefined>;
|
|
38
|
+
protected readonly bodyId: string;
|
|
39
|
+
protected readonly headerDomId: Signal<string>;
|
|
40
|
+
/** Тело раскрыто. Двусторонняя привязка: нажатие на заголовок пишет сюда. */
|
|
41
|
+
readonly expanded: ModelSignal<boolean>;
|
|
42
|
+
/** Заголовок не нажимается, тело остаётся как было. */
|
|
43
|
+
readonly disabled: InputSignalWithTransform<boolean, unknown>;
|
|
44
|
+
/** Шеврона нет: раскрытие читается по содержимому или его нечего раскрывать. */
|
|
45
|
+
readonly hideToggle: InputSignalWithTransform<boolean, unknown>;
|
|
46
|
+
readonly appearance: InputSignal<IRtExpansionPanel.Appearance>;
|
|
47
|
+
/** Id кнопки заголовка. Нужен владельцу, который ищет заголовок по своему номеру; иначе — свой. */
|
|
48
|
+
readonly headerId: InputSignal<string | null>;
|
|
49
|
+
/** Имя кнопки заголовка для вспомогательных средств, когда видимой подписи мало. */
|
|
50
|
+
readonly ariaLabel: InputSignal<string | null>;
|
|
51
|
+
/** Нажатие на заголовок: раскрывает свёрнутую панель и сворачивает раскрытую. */
|
|
52
|
+
toggle(): void;
|
|
53
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RtExpansionPanelComponent, never>;
|
|
54
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<RtExpansionPanelComponent, "rt-expansion-panel", never, { "expanded": { "alias": "expanded"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "hideToggle": { "alias": "hideToggle"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "headerId": { "alias": "headerId"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "expanded": "expandedChange"; }, ["lazyContent"], ["*", "[rtExpansionPanelBody]"], true, never>;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export { IRtExpansionPanel, RtExpansionPanelComponent, RtExpansionPanelContentDirective };
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { AfterContentInit, Signal, InputSignal, InputSignalWithTransform } from '@angular/core';
|
|
3
|
+
import { BooleanInput } from '@angular/cdk/coercion';
|
|
4
|
+
import { TRtKitLabelKey, TRtKitLabelMap } from '@rt-tools/ui-kit-v2/core';
|
|
5
|
+
import { RtFormControlBase } from '@rt-tools/ui-kit-v2/form-control';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Маркер проецируемого hint'а для rt-field. Нужен, когда подсказке требуется
|
|
9
|
+
* разметка (`<strong>`, интерполяция значений), которую плоский string-input
|
|
10
|
+
* `[hint]` передать не может. Если проецируемый hint присутствует — rt-field
|
|
11
|
+
* рендерит его вместо строкового `[hint]` (тот остаётся fallback'ом).
|
|
12
|
+
*/
|
|
13
|
+
declare class RtFieldHintDirective {
|
|
14
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RtFieldHintDirective, never>;
|
|
15
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RtFieldHintDirective, "[rtFieldHint]", never, {}, {}, never, never, true, never>;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/** Контракт поля-обёртки common/ui. */
|
|
19
|
+
declare namespace IRtField {
|
|
20
|
+
/** Карта validatorKey → человекочитаемое сообщение. */
|
|
21
|
+
type ErrorMessages = Record<string, string>;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Ключи сообщений об ошибках по имени валидатора (перекрываются input'ом
|
|
25
|
+
* [errors] поштучно, уже готовым текстом).
|
|
26
|
+
*
|
|
27
|
+
* Здесь ключи, а не переводы: карта собирается при загрузке модуля, когда язык
|
|
28
|
+
* страницы ещё неизвестен, и готовый текст остался бы на языке по умолчанию
|
|
29
|
+
* даже под переведённой подписью поля. Переводит сам компонент поля.
|
|
30
|
+
*/
|
|
31
|
+
declare const RT_FIELD_DEFAULT_ERROR_KEYS: Readonly<Record<string, TRtKitLabelKey>>;
|
|
32
|
+
/** Текст-плейсхолдер read-only поля без значения. */
|
|
33
|
+
declare const RT_FIELD_EMPTY_VALUE: string;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Обёртка единой анатомии поля: label (+ опц. help-иконка с popover, + авто «*»
|
|
37
|
+
* для required) сверху, спроецированный rt-контрол посередине, hint/error снизу.
|
|
38
|
+
* `required` объявляет поле обязательным там, где валидатора на контроле нет (шаблонная форма).
|
|
39
|
+
* `hideRequiredMark` глушит авто-«*» — для форм, где все поля обязательны и
|
|
40
|
+
* маркер лишний (логин).
|
|
41
|
+
* `reserveHintSpace` держит под контролом строку высотой в одно сообщение даже
|
|
42
|
+
* когда ни ошибки, ни hint нет — чтобы появление ошибки не сдвигало форму вниз
|
|
43
|
+
* (нужно для полей без постоянного hint, напр. логин).
|
|
44
|
+
*
|
|
45
|
+
* Читает контрол через contentChild(RtFormControlBase): авто-связывает label[for],
|
|
46
|
+
* прокидывает read-only режим, показывает текст ошибки/required-маркер. На loading
|
|
47
|
+
* оборачивает зону контрола в rt-skeleton-wrapper (label/hint остаются видимыми) —
|
|
48
|
+
* нужно для route-aside, где поля рендерятся до прихода данных.
|
|
49
|
+
*/
|
|
50
|
+
declare class RtFieldComponent implements AfterContentInit {
|
|
51
|
+
#private;
|
|
52
|
+
protected readonly t: Signal<TRtKitLabelMap>;
|
|
53
|
+
protected readonly projectedControl: Signal<RtFormControlBase<unknown> | undefined>;
|
|
54
|
+
protected readonly projectedHint: Signal<RtFieldHintDirective | undefined>;
|
|
55
|
+
/** Итоговый id: явный controlId контрола важнее авто-id. */
|
|
56
|
+
protected readonly controlId: Signal<string>;
|
|
57
|
+
protected readonly isRequired: Signal<boolean>;
|
|
58
|
+
protected readonly showError: Signal<boolean>;
|
|
59
|
+
/** Сообщение об ошибке: текст, переданный формой, важнее умолчания */
|
|
60
|
+
protected readonly errorText: Signal<string>;
|
|
61
|
+
protected readonly emptyValue: string;
|
|
62
|
+
readonly label: InputSignal<string>;
|
|
63
|
+
readonly hint: InputSignal<string>;
|
|
64
|
+
readonly help: InputSignal<string>;
|
|
65
|
+
readonly readonly: InputSignalWithTransform<boolean, BooleanInput>;
|
|
66
|
+
readonly loading: InputSignalWithTransform<boolean, BooleanInput>;
|
|
67
|
+
/**
|
|
68
|
+
* Поле обязательно, хотя валидатора на контроле нет: шаблонная форма его не кладёт. Даёт «*» и
|
|
69
|
+
* ошибку под тронутым пустым полем. Форму недействительной не делает — решение о записи
|
|
70
|
+
* остаётся у формы.
|
|
71
|
+
*/
|
|
72
|
+
readonly required: InputSignalWithTransform<boolean, BooleanInput>;
|
|
73
|
+
readonly hideRequiredMark: InputSignalWithTransform<boolean, BooleanInput>;
|
|
74
|
+
readonly reserveHintSpace: InputSignalWithTransform<boolean, BooleanInput>;
|
|
75
|
+
readonly errors: InputSignal<IRtField.ErrorMessages>;
|
|
76
|
+
constructor();
|
|
77
|
+
ngAfterContentInit(): void;
|
|
78
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RtFieldComponent, never>;
|
|
79
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<RtFieldComponent, "rt-field", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "help": { "alias": "help"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "hideRequiredMark": { "alias": "hideRequiredMark"; "required": false; "isSignal": true; }; "reserveHintSpace": { "alias": "reserveHintSpace"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; }, {}, ["projectedControl", "projectedHint"], ["*", "[rtFieldHint]"], true, never>;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
export { IRtField, RT_FIELD_DEFAULT_ERROR_KEYS, RT_FIELD_EMPTY_VALUE, RtFieldComponent, RtFieldHintDirective };
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { BooleanInput } from '@angular/cdk/coercion';
|
|
2
|
+
import * as i0 from '@angular/core';
|
|
3
|
+
import { Signal, InputSignal, InputSignalWithTransform, OutputEmitterRef, PipeTransform } from '@angular/core';
|
|
4
|
+
import { TRtKitLabelMap, IRtIcon } from '@rt-tools/ui-kit-v2/core';
|
|
5
|
+
import { IRtIconButton } from '@rt-tools/ui-kit-v2/icon-button';
|
|
6
|
+
import * as i1 from '@rt-tools/ui-kit-v2/radius';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Модель `<rt-file-card>`: один корневой неймспейс с префиксом `I`.
|
|
10
|
+
*/
|
|
11
|
+
declare namespace IRtFileCard {
|
|
12
|
+
/**
|
|
13
|
+
* Плотность карточки. Меняет только метрики — отступы, кегли и размеры
|
|
14
|
+
* иконок; состав остаётся прежним, как у `rt-icon-button`. Маппинг на
|
|
15
|
+
* пиксели — в SCSS (`--rt-file-card-*`) и в карте размеров иконок.
|
|
16
|
+
*/
|
|
17
|
+
type Size = 'sm' | 'md' | 'lg';
|
|
18
|
+
/**
|
|
19
|
+
* Нормализованное представление файла для карточки. Источник может быть разным
|
|
20
|
+
* (локальный `File`, сохранённый DTO, вложение сообщения) — caller сводит
|
|
21
|
+
* его к этой форме.
|
|
22
|
+
*/
|
|
23
|
+
interface Model {
|
|
24
|
+
/** Имя файла с расширением — из него выводятся заголовок и иконка типа. */
|
|
25
|
+
name: string;
|
|
26
|
+
/** Размер в байтах. `null` → бейдж размера скрыт (размер неизвестен). */
|
|
27
|
+
sizeBytes: number | null;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Карточка загруженного файла: цветная иконка типа, заголовок (выведенный из имени),
|
|
33
|
+
* усечённое по середине имя файла, бейдж размера и опциональные действия справа
|
|
34
|
+
* (скачать / переименовать / удалить).
|
|
35
|
+
*
|
|
36
|
+
* Презентационный компонент: сам ничего не решает, только эмиттит события действий.
|
|
37
|
+
* Кнопки включаются точечно через `showDownload`/`showRemove`/`showRename` — в режиме
|
|
38
|
+
* загрузки обычно нужен только remove, при показе сохранённых файлов — download.
|
|
39
|
+
*
|
|
40
|
+
* `showRename` по умолчанию выключен и сейчас нигде не включается: бэкенд не
|
|
41
|
+
* поддерживает переименование (`original_name` неизменяем после создания). Вход
|
|
42
|
+
* оставлен, чтобы кнопку можно было включить без правки компонента, когда появится API.
|
|
43
|
+
*/
|
|
44
|
+
declare class RtFileCardComponent {
|
|
45
|
+
/** Имя цветной иконки типа файла по расширению. */
|
|
46
|
+
protected readonly t: Signal<TRtKitLabelMap>;
|
|
47
|
+
protected readonly iconName: Signal<IRtIcon.Name>;
|
|
48
|
+
/** Заголовок карточки, выведенный из имени файла (без расширения, разделители → пробелы). */
|
|
49
|
+
protected readonly title: Signal<string>;
|
|
50
|
+
/** Отформатированный размер; пустая строка → размер неизвестен. */
|
|
51
|
+
protected readonly sizeLabel: Signal<string>;
|
|
52
|
+
/** Показывать ли бейдж размера. */
|
|
53
|
+
protected readonly hasSize: Signal<boolean>;
|
|
54
|
+
/** Размер иконки типа файла — маппится от размера карточки. */
|
|
55
|
+
protected readonly iconSize: Signal<IRtIcon.Size>;
|
|
56
|
+
/** Размер кнопок действий — маппится от размера карточки. */
|
|
57
|
+
protected readonly actionSize: Signal<IRtIconButton.Size>;
|
|
58
|
+
/** Имя файла с расширением — обязательно. */
|
|
59
|
+
readonly name: InputSignal<string>;
|
|
60
|
+
/** Размер в байтах. `null` → бейдж размера скрыт. */
|
|
61
|
+
readonly sizeBytes: InputSignal<number | null>;
|
|
62
|
+
/** Плотность карточки: `sm` для тесных мест вроде композера, `lg` — для страниц. */
|
|
63
|
+
readonly size: InputSignal<IRtFileCard.Size>;
|
|
64
|
+
/** Показывать кнопку скачивания. */
|
|
65
|
+
readonly showDownload: InputSignalWithTransform<boolean, BooleanInput>;
|
|
66
|
+
/** Показывать кнопку удаления. */
|
|
67
|
+
readonly showRemove: InputSignalWithTransform<boolean, BooleanInput>;
|
|
68
|
+
/** Показывать кнопку переименования (отключена до появления API на бэке). */
|
|
69
|
+
readonly showRename: InputSignalWithTransform<boolean, BooleanInput>;
|
|
70
|
+
/** Блокирует кнопки действий (например, во время сабмита формы). */
|
|
71
|
+
readonly disabled: InputSignalWithTransform<boolean, BooleanInput>;
|
|
72
|
+
/** Запрошено скачивание файла. */
|
|
73
|
+
readonly download: OutputEmitterRef<void>;
|
|
74
|
+
/** Запрошено удаление файла. */
|
|
75
|
+
readonly removed: OutputEmitterRef<void>;
|
|
76
|
+
/** Запрошено переименование файла. */
|
|
77
|
+
readonly rename: OutputEmitterRef<void>;
|
|
78
|
+
protected onDownload(): void;
|
|
79
|
+
protected onRemove(): void;
|
|
80
|
+
protected onRename(): void;
|
|
81
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RtFileCardComponent, never>;
|
|
82
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<RtFileCardComponent, "rt-file-card", never, { "name": { "alias": "name"; "required": true; "isSignal": true; }; "sizeBytes": { "alias": "sizeBytes"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "showDownload": { "alias": "showDownload"; "required": false; "isSignal": true; }; "showRemove": { "alias": "showRemove"; "required": false; "isSignal": true; }; "showRename": { "alias": "showRename"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "download": "download"; "removed": "removed"; "rename": "rename"; }, never, never, true, [{ directive: typeof i1.RtRadiusDirective; inputs: { "radius": "radius"; }; outputs: {}; }]>;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Усекает длинное имя файла по середине, сохраняя расширение видимым:
|
|
87
|
+
* `10588-1_EvaluationSearchReport.pdf` → `10588-1_EvaluationSearchRe...pdf`.
|
|
88
|
+
*
|
|
89
|
+
* Обычный CSS `text-overflow: ellipsis` режет хвост и теряет расширение —
|
|
90
|
+
* поэтому усечение по середине делается здесь, а не в стилях. Усечение
|
|
91
|
+
* посимвольное (не по ширине контейнера): предсказуемо и без измерений DOM.
|
|
92
|
+
*
|
|
93
|
+
* Pure-pipe: пересчитывается только при смене входа.
|
|
94
|
+
*/
|
|
95
|
+
declare class RtTruncateMiddlePipe implements PipeTransform {
|
|
96
|
+
transform(value: string | null | undefined, maxLength?: number): string;
|
|
97
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RtTruncateMiddlePipe, never>;
|
|
98
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<RtTruncateMiddlePipe, "rtTruncateMiddle", true>;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Возвращает имя иконки типа файла по его имени (берётся расширение после
|
|
103
|
+
* последней точки). Неизвестное/отсутствующее расширение → нейтральный `attach-other`.
|
|
104
|
+
*/
|
|
105
|
+
declare function getFileTypeIcon(fileName: string): IRtIcon.Name;
|
|
106
|
+
/**
|
|
107
|
+
* Выводит читаемый заголовок из имени файла: отбрасывает расширение и заменяет
|
|
108
|
+
* разделители `_`/`-` на пробелы (CamelCase намеренно НЕ разбивается — это давало
|
|
109
|
+
* бы непредсказуемый результат на произвольных именах). Если после очистки строка
|
|
110
|
+
* пустая (например имя было `.pdf`) — возвращается исходное имя.
|
|
111
|
+
*/
|
|
112
|
+
declare function deriveFileTitle(fileName: string): string;
|
|
113
|
+
|
|
114
|
+
export { IRtFileCard, RtFileCardComponent, RtTruncateMiddlePipe, deriveFileTitle, getFileTypeIcon };
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { BooleanInput } from '@angular/cdk/coercion';
|
|
2
|
+
import * as i0 from '@angular/core';
|
|
3
|
+
import { WritableSignal, Signal, InputSignalWithTransform, InputSignal, OutputEmitterRef } from '@angular/core';
|
|
4
|
+
import * as i1 from '@rt-tools/ui-kit-v2/radius';
|
|
5
|
+
|
|
6
|
+
/** Контракты rt-file-drop: мультизонный оверлей и адресный drop. */
|
|
7
|
+
declare namespace IRtFileDrop {
|
|
8
|
+
/** Зона drop-оверлея; зоны рисуются вертикальной стопкой равной высоты. */
|
|
9
|
+
interface Zone {
|
|
10
|
+
id: string;
|
|
11
|
+
label: string;
|
|
12
|
+
/** Вторая строка подсказки (акцентная, под label). */
|
|
13
|
+
sublabel?: string;
|
|
14
|
+
}
|
|
15
|
+
/** Результат drop'а при мультизонном режиме: файлы + зона, куда их бросили. */
|
|
16
|
+
interface ZoneDrop {
|
|
17
|
+
zoneId: string;
|
|
18
|
+
files: File[];
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Зона перетаскивания файлов: оборачивает произвольный контент через
|
|
24
|
+
* content-projection и превращает его в drop-зону. При перетаскивании файла над
|
|
25
|
+
* областью рисует приглушающий оверлей-приглашение поверх контента, на drop —
|
|
26
|
+
* эмитит выброшенные файлы через `(filesDropped)`.
|
|
27
|
+
*
|
|
28
|
+
* Мультизонный режим: при непустом `zones` оверлей делится на вертикальную стопку
|
|
29
|
+
* равных зон с подписями; зона под курсором подсвечивается, drop эмитится через
|
|
30
|
+
* `(zoneFilesDropped)` с id зоны (а `(filesDropped)` в этом режиме НЕ эмитится).
|
|
31
|
+
* Зона курсора вычисляется по Y-координате против host-rect — оверлей остаётся
|
|
32
|
+
* pointer-events:none, drag-события продолжают идти в host-listener'ы.
|
|
33
|
+
*
|
|
34
|
+
* `accept` (формат как у нативного input[accept]) отфильтровывает неподходящие
|
|
35
|
+
* файлы до эмита — drop в обход файл-пикера не проносит запрещённые расширения;
|
|
36
|
+
* отбрасывание молчаливое, как у самого пикера.
|
|
37
|
+
*
|
|
38
|
+
* Слушает drag-события на собственном host'е (всплывают со всего спроецированного
|
|
39
|
+
* контента), гасит браузерный навигейт по файлу и принимает только перетаскивание
|
|
40
|
+
* файлов (а не внутренний drag элементов формы). Потребитель управляет приёмом
|
|
41
|
+
* через `[disabled]` (например «активна вкладка файлов и форма редактируема») и
|
|
42
|
+
* сам решает, что делать с файлами — компонент состояние файлов не хранит.
|
|
43
|
+
*
|
|
44
|
+
* Оверлей `pointer-events: none` — не перехватывает drag/drop, события доходят до
|
|
45
|
+
* host-listener'ов.
|
|
46
|
+
*/
|
|
47
|
+
declare class RtFileDropComponent {
|
|
48
|
+
#private;
|
|
49
|
+
/** Активна ли подсветка drop-зоны (файл тащат над областью). */
|
|
50
|
+
protected readonly isDragging: WritableSignal<boolean>;
|
|
51
|
+
/** Зона под курсором в мультизонном режиме (id из `zones`). */
|
|
52
|
+
protected readonly activeZoneId: WritableSignal<string | null>;
|
|
53
|
+
protected readonly hasZones: Signal<boolean>;
|
|
54
|
+
protected readonly overlayText: Signal<string>;
|
|
55
|
+
/** Приём drop'а выключен (потребитель решает по своему контексту). */
|
|
56
|
+
readonly disabled: InputSignalWithTransform<boolean, BooleanInput>;
|
|
57
|
+
/** Пусто — берётся переведённая подпись по умолчанию */
|
|
58
|
+
readonly overlayLabel: InputSignal<string>;
|
|
59
|
+
/** Мультизонный режим: непустой список зон делит оверлей на стопку целей. */
|
|
60
|
+
readonly zones: InputSignal<readonly IRtFileDrop.Zone[]>;
|
|
61
|
+
/** Фильтр расширений/MIME (формат нативного input[accept]); пусто — без фильтра. */
|
|
62
|
+
readonly accept: InputSignal<string>;
|
|
63
|
+
readonly filesDropped: OutputEmitterRef<File[]>;
|
|
64
|
+
/** Drop в мультизонном режиме: файлы + id зоны, куда их бросили. */
|
|
65
|
+
readonly zoneFilesDropped: OutputEmitterRef<IRtFileDrop.ZoneDrop>;
|
|
66
|
+
readonly draggingChange: OutputEmitterRef<boolean>;
|
|
67
|
+
constructor();
|
|
68
|
+
protected onDragOver(event: DragEvent): void;
|
|
69
|
+
protected onDragLeave(event: DragEvent): void;
|
|
70
|
+
protected onDrop(event: DragEvent): void;
|
|
71
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RtFileDropComponent, never>;
|
|
72
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<RtFileDropComponent, "rt-file-drop", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "overlayLabel": { "alias": "overlayLabel"; "required": false; "isSignal": true; }; "zones": { "alias": "zones"; "required": false; "isSignal": true; }; "accept": { "alias": "accept"; "required": false; "isSignal": true; }; }, { "filesDropped": "filesDropped"; "zoneFilesDropped": "zoneFilesDropped"; "draggingChange": "draggingChange"; }, never, ["*"], true, [{ directive: typeof i1.RtRadiusDirective; inputs: { "radius": "radius"; }; outputs: {}; }]>;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export { IRtFileDrop, RtFileDropComponent };
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { BooleanInput } from '@angular/cdk/coercion';
|
|
2
|
+
import * as i0 from '@angular/core';
|
|
3
|
+
import { Signal, ElementRef, InputSignalWithTransform, InputSignal } from '@angular/core';
|
|
4
|
+
import { RtFormControlBase } from '@rt-tools/ui-kit-v2/form-control';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Поле выбора файлов: кнопка «выбрать» + список выбранных файлов карточками
|
|
8
|
+
* `rt-file-card` (иконка типа, имя, размер, удаление). Скрывает нативный
|
|
9
|
+
* `<input type="file">`, value хранит как `File[]` (одиночный режим = максимум
|
|
10
|
+
* один файл). CVA через общий `RtFormControlBase`. Read-only представление —
|
|
11
|
+
* имена файлов через запятую.
|
|
12
|
+
*
|
|
13
|
+
* Без drag-drop (MVP). `accept` пробрасывается в нативный input, `multiple`
|
|
14
|
+
* включает множественный выбор.
|
|
15
|
+
*/
|
|
16
|
+
declare class RtFileInputComponent extends RtFormControlBase<File[]> {
|
|
17
|
+
#private;
|
|
18
|
+
protected readonly fileEl: Signal<ElementRef<HTMLInputElement> | undefined>;
|
|
19
|
+
protected readonly buttonText: Signal<string>;
|
|
20
|
+
protected readonly hasValue: Signal<boolean>;
|
|
21
|
+
readonly displayText: Signal<string>;
|
|
22
|
+
readonly multiple: InputSignalWithTransform<boolean, BooleanInput>;
|
|
23
|
+
readonly accept: InputSignal<string | null>;
|
|
24
|
+
/**
|
|
25
|
+
* Выбор каталога целиком вместо отдельных файлов. Браузер отдаёт
|
|
26
|
+
* относительные пути (`webkitRelativePath`), по ним вызывающая сторона
|
|
27
|
+
* восстанавливает структуру — иначе пользователю пришлось бы выбирать
|
|
28
|
+
* десятки файлов по одному.
|
|
29
|
+
*/
|
|
30
|
+
readonly directory: InputSignalWithTransform<boolean, BooleanInput>;
|
|
31
|
+
/** Пусто — берётся переведённая подпись по умолчанию */
|
|
32
|
+
readonly buttonLabel: InputSignal<string>;
|
|
33
|
+
protected getEmptyValue(): File[];
|
|
34
|
+
protected focusAfterClear(): void;
|
|
35
|
+
protected openPicker(): void;
|
|
36
|
+
protected onFiles(event: Event): void;
|
|
37
|
+
protected removeFile(index: number): void;
|
|
38
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RtFileInputComponent, never>;
|
|
39
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<RtFileInputComponent, "rt-file-input", never, { "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "accept": { "alias": "accept"; "required": false; "isSignal": true; }; "directory": { "alias": "directory"; "required": false; "isSignal": true; }; "buttonLabel": { "alias": "buttonLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/** Контракт rt-file-input. */
|
|
43
|
+
declare namespace IRtFileInput {
|
|
44
|
+
/** value контрола — всегда массив (одиночный режим = максимум 1 файл). */
|
|
45
|
+
type Value = File[];
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export { IRtFileInput, RtFileInputComponent };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Вертикальный контейнер для карточек файлов (`rt-file-card`): задаёт отступы между
|
|
5
|
+
* карточками и растягивает их по ширине. Чисто презентационный — содержимое
|
|
6
|
+
* проецируется через `<ng-content />`, логику списка держит caller.
|
|
7
|
+
*/
|
|
8
|
+
declare class RtFileListComponent {
|
|
9
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RtFileListComponent, never>;
|
|
10
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<RtFileListComponent, "rt-file-list", never, {}, {}, never, ["*"], true, never>;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export { RtFileListComponent };
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { BooleanInput } from '@angular/cdk/coercion';
|
|
2
|
+
import * as i0 from '@angular/core';
|
|
3
|
+
import { Signal, InputSignal, InputSignalWithTransform, OutputEmitterRef } from '@angular/core';
|
|
4
|
+
import { IRtSelect } from '@rt-tools/ui-kit-v2/select';
|
|
5
|
+
import { IRtIcon } from '@rt-tools/ui-kit-v2/core';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Модель `<rt-filter-control>`: один корневой неймспейс с
|
|
9
|
+
* префиксом `I`. Форма опции повторяет `IRtToggleButtonGroup.Option`, поэтому
|
|
10
|
+
* существующие массивы фильтров присваиваются структурно, без кастов. Generic
|
|
11
|
+
* `T` пробрасывается в `Option<T>`.
|
|
12
|
+
*/
|
|
13
|
+
declare namespace IRtFilterControl {
|
|
14
|
+
/** Размерный тир — совпадает с rt-toggle-button-group / rt-select. */
|
|
15
|
+
type Size = 'sm' | 'md' | 'lg';
|
|
16
|
+
/**
|
|
17
|
+
* Описание одной опции фильтра.
|
|
18
|
+
*
|
|
19
|
+
* - `value` — эмитится в `valueChange`.
|
|
20
|
+
* - `label` — текстовая подпись.
|
|
21
|
+
* - `icon` / `title` — используются только сегментами (десктоп); rt-select
|
|
22
|
+
* в узком режиме их игнорирует.
|
|
23
|
+
*/
|
|
24
|
+
interface Option<T = string> {
|
|
25
|
+
readonly value: T;
|
|
26
|
+
readonly label: string;
|
|
27
|
+
readonly icon?: IRtIcon.Name;
|
|
28
|
+
readonly title?: string;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Адаптивный фильтр-контрол для тулбаров list-страниц.
|
|
34
|
+
*
|
|
35
|
+
* Один и тот же набор опций рендерится двумя способами по ширине вьюпорта:
|
|
36
|
+
* - десктоп (> 1080px) — развёрнутые сегменты `rt-toggle-button-group`;
|
|
37
|
+
* - узкий экран (≤ 1080px, `BreakpointsService.narrow`) — компактный
|
|
38
|
+
* `rt-select` с `clearable=false` (сброс — через явную опцию «Все»).
|
|
39
|
+
*
|
|
40
|
+
* API повторяет controlled-контракт rt-toggle-button-group (`[options]` /
|
|
41
|
+
* `[value]` / `(valueChange)`), поэтому миграция потребителя — смена селектора
|
|
42
|
+
* без правки хендлеров. Sentinel «нет фильтра» задаёт сам потребитель реальным
|
|
43
|
+
* значением опции («»/false), а не `null`/`undefined` — rt-select всегда
|
|
44
|
+
* показывает выбранную опцию.
|
|
45
|
+
*
|
|
46
|
+
* Generic `<T = string>` сохраняет типизацию по value (union'ы, enum'ы).
|
|
47
|
+
*/
|
|
48
|
+
declare class RtFilterControlComponent<T = string> {
|
|
49
|
+
#private;
|
|
50
|
+
protected readonly isNarrow: Signal<boolean>;
|
|
51
|
+
/** Проекция опций фильтра в форму rt-select (icon/title отбрасываются). */
|
|
52
|
+
protected readonly selectOptions: Signal<ReadonlyArray<IRtSelect.Option<T>>>;
|
|
53
|
+
readonly options: InputSignal<ReadonlyArray<IRtFilterControl.Option<T>>>;
|
|
54
|
+
readonly value: InputSignal<T | undefined>;
|
|
55
|
+
readonly ariaLabel: InputSignal<string | null>;
|
|
56
|
+
readonly placeholder: InputSignal<string>;
|
|
57
|
+
/**
|
|
58
|
+
* Размер сегментов (десктоп). На узком экране select всегда рендерится в md,
|
|
59
|
+
* чтобы совпадать по высоте и ширине со строкой поиска list-страницы.
|
|
60
|
+
*/
|
|
61
|
+
readonly size: InputSignal<IRtFilterControl.Size>;
|
|
62
|
+
readonly disabled: InputSignalWithTransform<boolean, BooleanInput>;
|
|
63
|
+
/** Растягивает сегменты на всю ширину контейнера (только десктоп-вариант). */
|
|
64
|
+
readonly fullWidth: InputSignalWithTransform<boolean, BooleanInput>;
|
|
65
|
+
readonly valueChange: OutputEmitterRef<T>;
|
|
66
|
+
protected onValueChange(value: T): void;
|
|
67
|
+
protected onSelectionChange(value: T | null): void;
|
|
68
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RtFilterControlComponent<any>, never>;
|
|
69
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<RtFilterControlComponent<any>, "rt-filter-control", never, { "options": { "alias": "options"; "required": true; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "fullWidth": { "alias": "fullWidth"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export { IRtFilterControl, RtFilterControlComponent };
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { BooleanInput } from '@angular/cdk/coercion';
|
|
2
|
+
import * as i0 from '@angular/core';
|
|
3
|
+
import { OnInit, WritableSignal, Signal, InputSignal, InputSignalWithTransform } from '@angular/core';
|
|
4
|
+
import { ControlValueAccessor, ValidationErrors } from '@angular/forms';
|
|
5
|
+
import { IRtInput } from '@rt-tools/ui-kit-v2/core';
|
|
6
|
+
|
|
7
|
+
declare abstract class RtFormControlBase<TValue> implements ControlValueAccessor, OnInit {
|
|
8
|
+
#private;
|
|
9
|
+
protected readonly value: WritableSignal<TValue>;
|
|
10
|
+
/**
|
|
11
|
+
* Отключение: вход и форма — два независимых источника, поле отключено,
|
|
12
|
+
* если так сказал любой из них. Сводить их в один signal нельзя: форма
|
|
13
|
+
* зовёт `setDisabledState` при связывании контрола, то есть раньше, чем
|
|
14
|
+
* поле впервые обновит своё вью, и мирроринг входа затирал бы её слово —
|
|
15
|
+
* контрол, созданный отключённым, оказывался бы редактируемым.
|
|
16
|
+
*/
|
|
17
|
+
protected readonly isDisabled: Signal<boolean>;
|
|
18
|
+
protected readonly isInvalid: Signal<boolean>;
|
|
19
|
+
/** Видимость кнопки очистки: включена, есть значение, поле активно. */
|
|
20
|
+
protected readonly showClearButton: Signal<boolean>;
|
|
21
|
+
/** Есть ли в поле значение — гейт видимости крестика. */
|
|
22
|
+
protected abstract readonly hasValue: Signal<boolean>;
|
|
23
|
+
readonly size: InputSignal<IRtInput.Size>;
|
|
24
|
+
readonly disabled: InputSignalWithTransform<boolean, BooleanInput>;
|
|
25
|
+
readonly controlId: InputSignal<string | null>;
|
|
26
|
+
readonly ariaLabel: InputSignal<string | null>;
|
|
27
|
+
readonly clearable: InputSignalWithTransform<boolean, BooleanInput>;
|
|
28
|
+
/**
|
|
29
|
+
* Видимая resting-рамка контрола. По умолчанию `true` — рамка видна на обеих
|
|
30
|
+
* темах. `false` снимает только resting-рамку; focus/invalid состояния свою
|
|
31
|
+
* рамку показывают всё равно, read-only остаётся плоским.
|
|
32
|
+
*/
|
|
33
|
+
readonly bordered: InputSignalWithTransform<boolean, BooleanInput>;
|
|
34
|
+
/** Итоговый id поля: явный input важнее авто-id, назначенного rt-field. */
|
|
35
|
+
readonly effectiveControlId: Signal<string | null>;
|
|
36
|
+
/** Read-only режим (плоский текст вместо контрола); включается rt-field'ом. */
|
|
37
|
+
readonly isReadonly: Signal<boolean>;
|
|
38
|
+
/** Публичный invalid для rt-field (touched/dirty учтён в состоянии). */
|
|
39
|
+
readonly invalid: Signal<boolean>;
|
|
40
|
+
/** Текущие ошибки связанного контрола — источник текста ошибки в rt-field. */
|
|
41
|
+
readonly errors: Signal<ValidationErrors | null>;
|
|
42
|
+
/** Обязателен ли контрол — по валидатору формы или по слову rt-field. Для авто-«*». */
|
|
43
|
+
readonly required: Signal<boolean>;
|
|
44
|
+
/** Текст read-only представления. Реализуется конкретным контролом. */
|
|
45
|
+
abstract readonly displayText: Signal<string>;
|
|
46
|
+
constructor();
|
|
47
|
+
ngOnInit(): void;
|
|
48
|
+
writeValue(value: TValue | null): void;
|
|
49
|
+
registerOnChange(fn: (value: TValue) => void): void;
|
|
50
|
+
registerOnTouched(fn: () => void): void;
|
|
51
|
+
setDisabledState(isDisabled: boolean): void;
|
|
52
|
+
/** Назначить авто-id (rt-field), когда у контрола нет явного controlId. */
|
|
53
|
+
assignControlId(id: string): void;
|
|
54
|
+
/** Включить/выключить read-only режим — вызывает родительский rt-field. */
|
|
55
|
+
setReadonly(value: boolean): void;
|
|
56
|
+
/** Объявить контрол обязательным — вызывает родительский rt-field. */
|
|
57
|
+
setRequired(value: boolean): void;
|
|
58
|
+
/** Очистка значения по кнопке-крестику + возврат фокуса в поле. */
|
|
59
|
+
protected clear(event?: Event): void;
|
|
60
|
+
/** Сбрасывает значение к пустому. Поля с display-сигналом расширяют. */
|
|
61
|
+
protected clearValue(): void;
|
|
62
|
+
/** Прокидывает change наружу — для обработчиков пользовательского ввода. */
|
|
63
|
+
protected emitChange(value: TValue): void;
|
|
64
|
+
/** Помечает контрол touched — для blur/close-обработчиков. */
|
|
65
|
+
protected markTouched(): void;
|
|
66
|
+
/** Пустое значение поля (тип-специфично: "", null, []). */
|
|
67
|
+
protected abstract getEmptyValue(): TValue;
|
|
68
|
+
/** Возврат фокуса после очистки (в input или на trigger-кнопку). */
|
|
69
|
+
protected abstract focusAfterClear(): void;
|
|
70
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RtFormControlBase<any>, never>;
|
|
71
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RtFormControlBase<any>, never, never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "controlId": { "alias": "controlId"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "bordered": { "alias": "bordered"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export { RtFormControlBase };
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { BooleanInput } from '@angular/cdk/coercion';
|
|
2
|
+
import * as i0 from '@angular/core';
|
|
3
|
+
import { Signal, InputSignalWithTransform, OutputEmitterRef } from '@angular/core';
|
|
4
|
+
import { TRtKitLabelMap } from '@rt-tools/ui-kit-v2/core';
|
|
5
|
+
import * as i1 from '@rt-tools/ui-kit-v2/radius';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Общий хедер приложения.
|
|
9
|
+
*
|
|
10
|
+
* Слева — slot 35×45 под back-button (rt-icon-button arrow-left, ghost variant),
|
|
11
|
+
* который виден по входному сигналу `canGoBack` и эмитит `backClick`. Когда
|
|
12
|
+
* `canGoBack=false` (default) — slot полностью скрыт через display:none, wordmark
|
|
13
|
+
* выравнивается слева.
|
|
14
|
+
*
|
|
15
|
+
* Далее — wordmark, справа — action-иконки (rt-icon-button шагом md): опциональная «Пригласить пользователя»
|
|
16
|
+
* (`showInvite`), слот колокольчика и профиль.
|
|
17
|
+
*
|
|
18
|
+
* Колокольчик уведомлений — проекция `[rtHeaderBell]`: домен кладёт в слот
|
|
19
|
+
* `rt-notifications-bell` (общий попап-компонент), хедер про его устройство не знает.
|
|
20
|
+
*
|
|
21
|
+
* Темизация — через семантические `--rt-color-bg-surface` / `--rt-color-text-primary`,
|
|
22
|
+
* dark override карточного фона выполняется в SCSS (header navy совпадает с фоном
|
|
23
|
+
* страницы в dark).
|
|
24
|
+
*/
|
|
25
|
+
declare class RtHeaderComponent {
|
|
26
|
+
protected readonly t: Signal<TRtKitLabelMap>;
|
|
27
|
+
readonly canGoBack: InputSignalWithTransform<boolean, BooleanInput>;
|
|
28
|
+
/** Показывать action-иконку «Пригласить пользователя» слева от колокола. */
|
|
29
|
+
readonly showInvite: InputSignalWithTransform<boolean, boolean | string>;
|
|
30
|
+
readonly backClick: OutputEmitterRef<void>;
|
|
31
|
+
readonly inviteClick: OutputEmitterRef<void>;
|
|
32
|
+
readonly profileClick: OutputEmitterRef<void>;
|
|
33
|
+
protected onBackClick(): void;
|
|
34
|
+
protected onInviteClick(): void;
|
|
35
|
+
protected onProfileClick(): void;
|
|
36
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RtHeaderComponent, never>;
|
|
37
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<RtHeaderComponent, "rt-header", never, { "canGoBack": { "alias": "canGoBack"; "required": false; "isSignal": true; }; "showInvite": { "alias": "showInvite"; "required": false; "isSignal": true; }; }, { "backClick": "backClick"; "inviteClick": "inviteClick"; "profileClick": "profileClick"; }, never, ["[rtHeaderBell]"], true, [{ directive: typeof i1.RtRadiusDirective; inputs: { "radius": "radius"; }; outputs: {}; }]>;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export { RtHeaderComponent };
|