@rt-tools/ui-kit-v2 0.18.0 → 0.19.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 +3 -2
- package/fesm2022/rt-tools-ui-kit-v2-accordion.mjs +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-accordion.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-action-bar.mjs +14 -8
- package/fesm2022/rt-tools-ui-kit-v2-action-bar.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-ai-run-status.mjs +97 -0
- package/fesm2022/rt-tools-ui-kit-v2-ai-run-status.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-aside.mjs +10 -3
- package/fesm2022/rt-tools-ui-kit-v2-aside.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-autocomplete.mjs +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-autocomplete.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-bar-list.mjs +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-bar-list.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-checkbox.mjs +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-checkbox.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-copy-value.mjs +81 -0
- package/fesm2022/rt-tools-ui-kit-v2-copy-value.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-core.mjs +98 -0
- package/fesm2022/rt-tools-ui-kit-v2-core.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-data-list.mjs +5 -5
- package/fesm2022/rt-tools-ui-kit-v2-data-list.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-data-table.mjs +2 -2
- package/fesm2022/rt-tools-ui-kit-v2-data-table.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-download-link.mjs +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-download-link.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-dynamic-selector.mjs +124 -25
- package/fesm2022/rt-tools-ui-kit-v2-dynamic-selector.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-empty-state.mjs +3 -3
- package/fesm2022/rt-tools-ui-kit-v2-empty-state.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-expansion-panel.mjs +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-expansion-panel.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-field.mjs +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-field.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-file-card.mjs +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-file-card.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-icon-button.mjs +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-icon-button.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-icon.mjs +64 -27
- package/fesm2022/rt-tools-ui-kit-v2-icon.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-input-number.mjs +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-input-number.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-input.mjs +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-input.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-menu.mjs +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-menu.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-message.mjs +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-message.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-multiselect.mjs +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-multiselect.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-notifications-bell.mjs +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-notifications-bell.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-page-header.mjs +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-page-header.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-prompt-suggestion.mjs +46 -0
- package/fesm2022/rt-tools-ui-kit-v2-prompt-suggestion.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-rich-editor.mjs +336 -12
- package/fesm2022/rt-tools-ui-kit-v2-rich-editor.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-scroll-area.mjs +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-scroll-area.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-section-nav.mjs +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-section-nav.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-select.mjs +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-select.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-side-menu.mjs +3 -3
- package/fesm2022/rt-tools-ui-kit-v2-side-menu.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-stat-tile.mjs +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-stat-tile.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-table.mjs +2 -2
- package/fesm2022/rt-tools-ui-kit-v2-table.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-tabs.mjs +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-tabs.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-tag.mjs +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-tag.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-thread-list.mjs +31 -5
- package/fesm2022/rt-tools-ui-kit-v2-thread-list.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-toast.mjs +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-toast.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-toggle-button-group.mjs +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-toggle-button-group.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-toggle-switch.mjs +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-toggle-switch.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-toolbar.mjs +2 -2
- package/fesm2022/rt-tools-ui-kit-v2-toolbar.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2.mjs +3 -0
- package/fesm2022/rt-tools-ui-kit-v2.mjs.map +1 -1
- package/package.json +13 -1
- package/rt-tools-ui-kit-v2-0.19.0.tgz +0 -0
- package/src/assets/icons/sparkle.svg +9 -0
- package/src/assets/icons/thumb-down.svg +10 -0
- package/src/assets/icons/thumb-up.svg +9 -0
- package/src/assets/icons/trash-x.svg +7 -0
- package/src/assets/icons-material/sparkle.fill.svg +5 -0
- package/src/assets/icons-material/sparkle.svg +5 -0
- package/src/assets/icons-material/thumb-down.fill.svg +5 -0
- package/src/assets/icons-material/thumb-down.svg +5 -0
- package/src/assets/icons-material/thumb-up.fill.svg +5 -0
- package/src/assets/icons-material/thumb-up.svg +5 -0
- package/src/assets/icons-material/trash-x.fill.svg +5 -0
- package/src/assets/icons-material/trash-x.svg +5 -0
- package/src/lib/components/action-bar/CONTEXT.md +8 -2
- package/src/lib/components/action-bar/rt-action-bar-holder.component.scss +10 -7
- package/src/lib/components/action-bar/rt-action-bar.component.scss +82 -34
- package/src/lib/components/ai-run-status/CONTEXT.md +36 -0
- package/src/lib/components/ai-run-status/rt-ai-run-status.component.scss +119 -0
- package/src/lib/components/aside/CONTEXT.md +1 -0
- package/src/lib/components/aside/header/rt-aside-header.component.scss +27 -11
- package/src/lib/components/copy-value/CONTEXT.md +31 -0
- package/src/lib/components/copy-value/rt-copy-value.component.scss +39 -0
- package/src/lib/components/data-list/settings/rt-data-list-settings-aside.component.scss +5 -5
- package/src/lib/components/dynamic-selector/CONTEXT.md +18 -0
- package/src/lib/components/dynamic-selector/list/rt-dynamic-selector-list.component.scss +29 -1
- package/src/lib/components/dynamic-selector/popup/rt-dynamic-selector-popup.component.scss +84 -25
- package/src/lib/components/empty-state/CONTEXT.md +2 -1
- package/src/lib/components/empty-state/rt-empty-state.component.scss +4 -2
- package/src/lib/components/icon/CONTEXT.md +16 -12
- package/src/lib/components/icon/rt-icon.component.scss +13 -3
- package/src/lib/components/prompt-suggestion/CONTEXT.md +29 -0
- package/src/lib/components/prompt-suggestion/rt-prompt-suggestion.component.scss +58 -0
- package/src/lib/components/thread-list/CONTEXT.md +4 -0
- package/src/lib/components/thread-list/rt-thread-list.component.scss +29 -0
- package/src/lib/components/toolbar/CONTEXT.md +4 -0
- package/src/lib/components/toolbar/rt-toolbar.component.scss +7 -0
- package/src/rich-editor/lib/components/ai-chat/CONTEXT.md +58 -0
- package/src/rich-editor/lib/components/ai-chat/answer/rt-ai-chat-answer.component.scss +12 -0
- package/src/rich-editor/lib/components/ai-chat/rt-ai-chat.component.scss +222 -0
- package/src/rich-editor/lib/components/rich-editor/rt-rich-editor.component.scss +3 -0
- package/src/styles/_scrollbar.scss +9 -0
- package/styles/tokens.css +3 -0
- package/types/rt-tools-ui-kit-v2-action-bar.d.ts +11 -2
- package/types/rt-tools-ui-kit-v2-ai-run-status.d.ts +49 -0
- package/types/rt-tools-ui-kit-v2-aside.d.ts +9 -1
- package/types/rt-tools-ui-kit-v2-copy-value.d.ts +29 -0
- package/types/rt-tools-ui-kit-v2-core.d.ts +93 -53
- package/types/rt-tools-ui-kit-v2-dynamic-selector.d.ts +44 -5
- package/types/rt-tools-ui-kit-v2-icon.d.ts +12 -4
- package/types/rt-tools-ui-kit-v2-prompt-suggestion.d.ts +21 -0
- package/types/rt-tools-ui-kit-v2-rich-editor.d.ts +186 -2
- package/types/rt-tools-ui-kit-v2-thread-list.d.ts +15 -2
- package/types/rt-tools-ui-kit-v2.d.ts +3 -0
- package/rt-tools-ui-kit-v2-0.18.0.tgz +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rt-tools-ui-kit-v2-toggle-switch.mjs","sources":["../../../projects/ui-kit-v2/src/lib/components/toggle-switch/rt-toggle-switch.component.ts","../../../projects/ui-kit-v2/src/lib/components/toggle-switch/rt-toggle-switch.component.html","../../../projects/ui-kit-v2/src/lib/components/toggle-switch/rt-toggle-switch.model.ts","../../../projects/ui-kit-v2/src/lib/components/toggle-switch/rt-tools-ui-kit-v2-toggle-switch.ts"],"sourcesContent":["import { BooleanInput } from '@angular/cdk/coercion';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n input,\n InputSignal,\n InputSignalWithTransform,\n Signal,\n signal,\n ViewEncapsulation,\n WritableSignal,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { BlockDirective, ElemDirective, ModDirective } from '@rt-tools/core';\n\nimport { RtIconComponent } from '@rt-tools/ui-kit-v2/icon';\nimport { IRtIcon } from '@rt-tools/ui-kit-v2/core';\nimport { RtRadiusDirective } from '@rt-tools/ui-kit-v2/radius';\nimport { IRtToggleSwitch } from './rt-toggle-switch.model';\n\nconst BEM_BLOCK: string = 'rt-toggle-switch';\n\n/** Счётчик для авто-id (связка подписи с кнопкой, когда `inputId` не задан). */\nlet uidSeed: number = 0;\n\nfunction nextAutoId(): string {\n uidSeed += 1;\n return `rt-toggle-switch-${uidSeed}`;\n}\n\n/**\n * On/off switch с `role=\"switch\"` + `aria-checked` — более правильный a11y\n * pattern чем `<input type=\"checkbox\">` для toggle (screen readers произносят\n * \"switch off/on\" вместо \"checkbox checked/unchecked\").\n *\n * Реализует `ControlValueAccessor` для `boolean` value через\n * `useExisting: forwardRef(...)` — `useClass` на self-reference вызывает\n * NG0200 cycle при boot'е.\n *\n * Отключение складывается из двух независимых источников: входа `disabled` и\n * слова формы (CVA `setDisabledState`). Отключено, если так сказал любой из\n * них. Сводить их в один signal нельзя: форма зовёт `setDisabledState` при\n * связывании контрола, то есть раньше, чем переключатель впервые обновит своё\n * вью, и мирроринг входа затирал бы её слово — контрол, созданный отключённым,\n * оказывался бы кликабельным.\n *\n * Опциональные иконки `iconOff` / `iconOn` рисуются внутри трека статично:\n * off-иконка в начальной половине, on-иконка в конечной. Бегунок непрозрачен\n * и наезжает на иконку активного состояния, так что видна всегда иконка того\n * состояния, куда переключится контрол.\n *\n * Вход `label` рисует подпись после кнопки — элементом `<label>`, связанным с\n * кнопкой: нажатие на подпись переключает, и она же называет переключатель\n * скринридеру через `aria-labelledby`.\n *\n * Размер и отключение выводятся модификаторами и на хост: свойства размеров\n * объявлены на хосте, чтобы правило приложения на теге их переопределяло, а\n * прозрачность отключения гасит переключатель вместе с подписью.\n *\n * ViewEncapsulation.None — стили таргетируют имя элемента и BEM-класс блока.\n */\n@Component({\n selector: 'rt-toggle-switch',\n templateUrl: './rt-toggle-switch.component.html',\n styleUrl: './rt-toggle-switch.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n // standalone components / directives\n RtIconComponent,\n BlockDirective,\n ElemDirective,\n ModDirective,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef((): typeof RtToggleSwitchComponent => RtToggleSwitchComponent),\n multi: true,\n },\n ],\n hostDirectives: [{ directive: RtRadiusDirective, inputs: ['radius'] }],\n host: {\n class: BEM_BLOCK,\n '[class.rt-toggle-switch--md]': \"size() === 'md'\",\n '[class.rt-toggle-switch--lg]': \"size() === 'lg'\",\n '[class.rt-toggle-switch--on]': 'isOn()',\n '[class.rt-toggle-switch--disabled]': 'isDisabled()',\n },\n})\nexport class RtToggleSwitchComponent implements ControlValueAccessor {\n #onChange: (value: boolean) => void = (): void => undefined;\n #onTouched: () => void = (): void => undefined;\n\n /** Отключение, назначенное формой через CVA (`setDisabledState`). */\n readonly #disabledByForm: WritableSignal<boolean> = signal<boolean>(false);\n\n readonly #autoId: string = nextAutoId();\n\n protected readonly isOn: WritableSignal<boolean> = signal<boolean>(false);\n protected readonly isDisabled: Signal<boolean> = computed((): boolean => this.disabled() || this.#disabledByForm());\n\n /** Id кнопки: заданный входом или свой — на него указывает подпись. */\n protected readonly controlId: Signal<string> = computed((): string => this.inputId() ?? this.#autoId);\n\n protected readonly labelId: string = `${this.#autoId}-label`;\n\n /**\n * BEM-модификаторы для `[rtMod]`. Собираем в .ts, потому что\n * Angular template-parser не поддерживает computed property keys\n * в inline-объектах, а размер приходит ключом.\n */\n protected readonly bemMods: Signal<Record<string, boolean>> = computed((): Record<string, boolean> => ({\n [this.size()]: true,\n on: this.isOn(),\n disabled: this.isDisabled(),\n withIcons: this.iconOff() !== null || this.iconOn() !== null,\n }));\n\n public readonly inputId: InputSignal<string | null> = input<string | null>(null);\n\n public readonly ariaLabel: InputSignal<string | null> = input<string | null>(null);\n\n /** Подпись после переключателя. Пусто — без подписи, как раньше. */\n public readonly label: InputSignal<string | null> = input<string | null>(null);\n\n /** Размерный тир трека. */\n public readonly size: InputSignal<IRtToggleSwitch.Size> = input<IRtToggleSwitch.Size>('sm');\n\n /** Иконка выключенного состояния — в начальной половине трека. Пусто — без иконки. */\n public readonly iconOff: InputSignal<IRtIcon.Name | null> = input<IRtIcon.Name | null>(null);\n\n /** Иконка включённого состояния — в конечной половине трека. Пусто — без иконки. */\n public readonly iconOn: InputSignal<IRtIcon.Name | null> = input<IRtIcon.Name | null>(null);\n\n public readonly disabled: InputSignalWithTransform<boolean, BooleanInput> = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute,\n });\n\n public writeValue(value: boolean | null | undefined): void {\n this.isOn.set(value === true);\n }\n\n public registerOnChange(fn: (value: boolean) => void): void {\n this.#onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.#onTouched = fn;\n }\n\n public setDisabledState(disabled: boolean): void {\n this.#disabledByForm.set(disabled);\n }\n\n protected toggle(): void {\n if (this.isDisabled()) {\n return;\n }\n const next: boolean = !this.isOn();\n this.isOn.set(next);\n this.#onChange(next);\n this.#onTouched();\n }\n}\n","<ng-container rtBlock=\"rt-toggle-switch\">\n <button\n rtBlock=\"rt-toggle-switch\"\n qa-dataid=\"toggle-switch-control\"\n type=\"button\"\n role=\"switch\"\n [rtMod]=\"bemMods()\"\n [attr.id]=\"label() ? controlId() : inputId()\"\n [attr.aria-checked]=\"isOn()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"label() ? labelId : null\"\n [disabled]=\"isDisabled()\"\n (click)=\"toggle()\">\n <span rtElem=\"track\">\n @if (iconOff(); as iconOffName) {\n <rt-icon rtElem=\"icon-off\" size=\"sm\" [name]=\"iconOffName\" />\n }\n @if (iconOn(); as iconOnName) {\n <rt-icon rtElem=\"icon-on\" size=\"sm\" [name]=\"iconOnName\" />\n }\n <span rtElem=\"thumb\"></span>\n </span>\n </button>\n @if (label(); as labelText) {\n <label rtElem=\"label\" qa-dataid=\"toggle-switch-label\" [attr.id]=\"labelId\" [attr.for]=\"controlId()\">{{ labelText }}</label>\n }\n</ng-container>\n","/**\n * Модель `<rt-toggle-switch>`: один корневой неймспейс с префиксом `I`.\n */\n\nexport namespace IRtToggleSwitch {\n /**\n * Размерный тир трека. Маппинг на пиксели — в SCSS\n * (`--rt-toggle-track-width` / `-height` / `--rt-toggle-thumb-size`).\n * Default — `sm`: он совпадает по высоте с плотными контролами формы,\n * где тоггл стоит в ряду с текстом.\n */\n export type Size = 'sm' | 'md' | 'lg';\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rt-tools-ui-kit-v2-toggle-switch.mjs","sources":["../../../projects/ui-kit-v2/src/lib/components/toggle-switch/rt-toggle-switch.component.ts","../../../projects/ui-kit-v2/src/lib/components/toggle-switch/rt-toggle-switch.component.html","../../../projects/ui-kit-v2/src/lib/components/toggle-switch/rt-toggle-switch.model.ts","../../../projects/ui-kit-v2/src/lib/components/toggle-switch/rt-tools-ui-kit-v2-toggle-switch.ts"],"sourcesContent":["import { BooleanInput } from '@angular/cdk/coercion';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n input,\n InputSignal,\n InputSignalWithTransform,\n Signal,\n signal,\n ViewEncapsulation,\n WritableSignal,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { BlockDirective, ElemDirective, ModDirective } from '@rt-tools/core';\n\nimport { RtIconComponent } from '@rt-tools/ui-kit-v2/icon';\nimport { IRtIcon } from '@rt-tools/ui-kit-v2/core';\nimport { RtRadiusDirective } from '@rt-tools/ui-kit-v2/radius';\nimport { IRtToggleSwitch } from './rt-toggle-switch.model';\n\nconst BEM_BLOCK: string = 'rt-toggle-switch';\n\n/** Счётчик для авто-id (связка подписи с кнопкой, когда `inputId` не задан). */\nlet uidSeed: number = 0;\n\nfunction nextAutoId(): string {\n uidSeed += 1;\n return `rt-toggle-switch-${uidSeed}`;\n}\n\n/**\n * On/off switch с `role=\"switch\"` + `aria-checked` — более правильный a11y\n * pattern чем `<input type=\"checkbox\">` для toggle (screen readers произносят\n * \"switch off/on\" вместо \"checkbox checked/unchecked\").\n *\n * Реализует `ControlValueAccessor` для `boolean` value через\n * `useExisting: forwardRef(...)` — `useClass` на self-reference вызывает\n * NG0200 cycle при boot'е.\n *\n * Отключение складывается из двух независимых источников: входа `disabled` и\n * слова формы (CVA `setDisabledState`). Отключено, если так сказал любой из\n * них. Сводить их в один signal нельзя: форма зовёт `setDisabledState` при\n * связывании контрола, то есть раньше, чем переключатель впервые обновит своё\n * вью, и мирроринг входа затирал бы её слово — контрол, созданный отключённым,\n * оказывался бы кликабельным.\n *\n * Опциональные иконки `iconOff` / `iconOn` рисуются внутри трека статично:\n * off-иконка в начальной половине, on-иконка в конечной. Бегунок непрозрачен\n * и наезжает на иконку активного состояния, так что видна всегда иконка того\n * состояния, куда переключится контрол.\n *\n * Вход `label` рисует подпись после кнопки — элементом `<label>`, связанным с\n * кнопкой: нажатие на подпись переключает, и она же называет переключатель\n * скринридеру через `aria-labelledby`.\n *\n * Размер и отключение выводятся модификаторами и на хост: свойства размеров\n * объявлены на хосте, чтобы правило приложения на теге их переопределяло, а\n * прозрачность отключения гасит переключатель вместе с подписью.\n *\n * ViewEncapsulation.None — стили таргетируют имя элемента и BEM-класс блока.\n */\n@Component({\n selector: 'rt-toggle-switch',\n templateUrl: './rt-toggle-switch.component.html',\n styleUrl: './rt-toggle-switch.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n // standalone components / directives\n RtIconComponent,\n BlockDirective,\n ElemDirective,\n ModDirective,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef((): typeof RtToggleSwitchComponent => RtToggleSwitchComponent),\n multi: true,\n },\n ],\n hostDirectives: [{ directive: RtRadiusDirective, inputs: ['radius'] }],\n host: {\n class: BEM_BLOCK,\n '[class.rt-toggle-switch--md]': \"size() === 'md'\",\n '[class.rt-toggle-switch--lg]': \"size() === 'lg'\",\n '[class.rt-toggle-switch--on]': 'isOn()',\n '[class.rt-toggle-switch--disabled]': 'isDisabled()',\n },\n})\nexport class RtToggleSwitchComponent implements ControlValueAccessor {\n #onChange: (value: boolean) => void = (): void => undefined;\n #onTouched: () => void = (): void => undefined;\n\n /** Отключение, назначенное формой через CVA (`setDisabledState`). */\n readonly #disabledByForm: WritableSignal<boolean> = signal<boolean>(false);\n\n readonly #autoId: string = nextAutoId();\n\n protected readonly isOn: WritableSignal<boolean> = signal<boolean>(false);\n protected readonly isDisabled: Signal<boolean> = computed((): boolean => this.disabled() || this.#disabledByForm());\n\n /** Id кнопки: заданный входом или свой — на него указывает подпись. */\n protected readonly controlId: Signal<string> = computed((): string => this.inputId() ?? this.#autoId);\n\n protected readonly labelId: string = `${this.#autoId}-label`;\n\n /**\n * BEM-модификаторы для `[rtMod]`. Собираем в .ts, потому что\n * Angular template-parser не поддерживает computed property keys\n * в inline-объектах, а размер приходит ключом.\n */\n protected readonly bemMods: Signal<Record<string, boolean>> = computed((): Record<string, boolean> => ({\n [this.size()]: true,\n on: this.isOn(),\n disabled: this.isDisabled(),\n withIcons: this.iconOff() !== null || this.iconOn() !== null,\n }));\n\n public readonly inputId: InputSignal<string | null> = input<string | null>(null);\n\n public readonly ariaLabel: InputSignal<string | null> = input<string | null>(null);\n\n /** Подпись после переключателя. Пусто — без подписи, как раньше. */\n public readonly label: InputSignal<string | null> = input<string | null>(null);\n\n /** Размерный тир трека. */\n public readonly size: InputSignal<IRtToggleSwitch.Size> = input<IRtToggleSwitch.Size>('sm');\n\n /** Иконка выключенного состояния — в начальной половине трека. Пусто — без иконки. */\n public readonly iconOff: InputSignal<IRtIcon.Name | null> = input<IRtIcon.Name | null>(null);\n\n /** Иконка включённого состояния — в конечной половине трека. Пусто — без иконки. */\n public readonly iconOn: InputSignal<IRtIcon.Name | null> = input<IRtIcon.Name | null>(null);\n\n public readonly disabled: InputSignalWithTransform<boolean, BooleanInput> = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute,\n });\n\n public writeValue(value: boolean | null | undefined): void {\n this.isOn.set(value === true);\n }\n\n public registerOnChange(fn: (value: boolean) => void): void {\n this.#onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.#onTouched = fn;\n }\n\n public setDisabledState(disabled: boolean): void {\n this.#disabledByForm.set(disabled);\n }\n\n protected toggle(): void {\n if (this.isDisabled()) {\n return;\n }\n const next: boolean = !this.isOn();\n this.isOn.set(next);\n this.#onChange(next);\n this.#onTouched();\n }\n}\n","<ng-container rtBlock=\"rt-toggle-switch\">\n <button\n rtBlock=\"rt-toggle-switch\"\n qa-dataid=\"toggle-switch-control\"\n type=\"button\"\n role=\"switch\"\n [rtMod]=\"bemMods()\"\n [attr.id]=\"label() ? controlId() : inputId()\"\n [attr.aria-checked]=\"isOn()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"label() ? labelId : null\"\n [disabled]=\"isDisabled()\"\n (click)=\"toggle()\">\n <span rtElem=\"track\">\n @if (iconOff(); as iconOffName) {\n <rt-icon rtElem=\"icon-off\" size=\"sm\" [name]=\"iconOffName\" />\n }\n @if (iconOn(); as iconOnName) {\n <rt-icon rtElem=\"icon-on\" size=\"sm\" [name]=\"iconOnName\" />\n }\n <span rtElem=\"thumb\"></span>\n </span>\n </button>\n @if (label(); as labelText) {\n <label rtElem=\"label\" qa-dataid=\"toggle-switch-label\" [attr.id]=\"labelId\" [attr.for]=\"controlId()\">{{ labelText }}</label>\n }\n</ng-container>\n","/**\n * Модель `<rt-toggle-switch>`: один корневой неймспейс с префиксом `I`.\n */\n\nexport namespace IRtToggleSwitch {\n /**\n * Размерный тир трека. Маппинг на пиксели — в SCSS\n * (`--rt-toggle-track-width` / `-height` / `--rt-toggle-thumb-size`).\n * Default — `sm`: он совпадает по высоте с плотными контролами формы,\n * где тоггл стоит в ряду с текстом.\n */\n export type Size = 'sm' | 'md' | 'lg';\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -106,7 +106,7 @@ class RtToolbarComponent {
|
|
|
106
106
|
this.dense = input(false, { ...(ngDevMode ? { debugName: "dense" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
107
107
|
}
|
|
108
108
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: RtToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
109
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: RtToolbarComponent, isStandalone: true, selector: "rt-toolbar", inputs: { dense: { classPropertyName: "dense", publicName: "dense", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.rt-toolbar--dense": "dense()" }, classAttribute: "rt-toolbar" }, queries: [{ propertyName: "leftTpl", first: true, predicate: RtToolbarLeftDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "centerTpl", first: true, predicate: RtToolbarCenterDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "rightTpl", first: true, predicate: RtToolbarRightDirective, descendants: true, read: TemplateRef, isSignal: true }], ngImport: i0, template: "@if (leftTpl() || centerTpl() || rightTpl()) {\n <ng-container rtBlock=\"rt-toolbar\">\n <div rtElem=\"bars\">\n @if (leftTpl()) {\n <div rtElem=\"bar\" qa-dataid=\"toolbar-bar\" data-slot=\"left\" [rtMod]=\"{ left: true }\">\n <ng-container [ngTemplateOutlet]=\"leftTpl() ?? null\" />\n </div>\n }\n\n @if (centerTpl()) {\n <div rtElem=\"bar\" qa-dataid=\"toolbar-bar\" data-slot=\"center\" [rtMod]=\"{ center: true }\">\n <ng-container [ngTemplateOutlet]=\"centerTpl() ?? null\" />\n </div>\n }\n\n @if (rightTpl()) {\n <div rtElem=\"bar\" qa-dataid=\"toolbar-bar\" data-slot=\"right\" [rtMod]=\"{ right: true }\">\n <ng-container [ngTemplateOutlet]=\"rightTpl() ?? null\" />\n </div>\n }\n </div>\n </ng-container>\n}\n", styles: ["@charset \"UTF-8\";@layer rt-kit.components{.rt-toolbar{--rt-toolbar-padding-top: var(--rt-space-2);--rt-toolbar-padding-bottom: var(--rt-space-2);--rt-toolbar-padding-inline: 0;--rt-toolbar-height: auto;--rt-toolbar-border-bottom: none;--rt-toolbar-gap: var(--rt-space-2);--rt-toolbar-center-justify: flex-end;--rt-toolbar-center-overflow: visible;display:block}.rt-toolbar__bars{display:flex;width:100%;min-height:var(--rt-toolbar-height);box-sizing:border-box;flex-direction:row;align-items:center;justify-content:space-between;padding:var(--rt-toolbar-padding-top) var(--rt-toolbar-padding-inline) var(--rt-toolbar-padding-bottom);border-bottom:var(--rt-toolbar-border-bottom);gap:var(--rt-toolbar-gap)}.rt-toolbar__bar{display:flex;align-items:center}.rt-toolbar__bar--left{flex:0 0 auto;gap:var(--rt-space-2)}.rt-toolbar__bar--center{overflow:var(--rt-toolbar-center-overflow);flex:1 1 auto;justify-content:var(--rt-toolbar-center-justify);gap:var(--rt-space-2)}.rt-toolbar__bar--center rt-input,.rt-toolbar__bar--center rt-select{width:100%}.rt-toolbar__bar--right{flex:0 1 auto;margin-left:auto;gap:var(--rt-space-sm)}@media(width<=768px){.rt-toolbar:not(.rt-toolbar--dense) .rt-toolbar__bars{flex-direction:column;align-items:stretch;gap:var(--rt-space-sm)}.rt-toolbar:not(.rt-toolbar--dense) .rt-toolbar__bar{flex-wrap:wrap}.rt-toolbar:not(.rt-toolbar--dense) .rt-toolbar__bar--center{justify-content:stretch}.rt-toolbar:not(.rt-toolbar--dense) .rt-toolbar__bar--right{justify-content:flex-end;margin-left:0}}}\n"], dependencies: [{ kind: "directive", type:
|
|
109
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: RtToolbarComponent, isStandalone: true, selector: "rt-toolbar", inputs: { dense: { classPropertyName: "dense", publicName: "dense", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.rt-toolbar--dense": "dense()" }, classAttribute: "rt-toolbar" }, queries: [{ propertyName: "leftTpl", first: true, predicate: RtToolbarLeftDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "centerTpl", first: true, predicate: RtToolbarCenterDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "rightTpl", first: true, predicate: RtToolbarRightDirective, descendants: true, read: TemplateRef, isSignal: true }], ngImport: i0, template: "@if (leftTpl() || centerTpl() || rightTpl()) {\n <ng-container rtBlock=\"rt-toolbar\">\n <div rtElem=\"bars\">\n @if (leftTpl()) {\n <div rtElem=\"bar\" qa-dataid=\"toolbar-bar\" data-slot=\"left\" [rtMod]=\"{ left: true }\">\n <ng-container [ngTemplateOutlet]=\"leftTpl() ?? null\" />\n </div>\n }\n\n @if (centerTpl()) {\n <div rtElem=\"bar\" qa-dataid=\"toolbar-bar\" data-slot=\"center\" [rtMod]=\"{ center: true }\">\n <ng-container [ngTemplateOutlet]=\"centerTpl() ?? null\" />\n </div>\n }\n\n @if (rightTpl()) {\n <div rtElem=\"bar\" qa-dataid=\"toolbar-bar\" data-slot=\"right\" [rtMod]=\"{ right: true }\">\n <ng-container [ngTemplateOutlet]=\"rightTpl() ?? null\" />\n </div>\n }\n </div>\n </ng-container>\n}\n", styles: ["@charset \"UTF-8\";@layer rt-kit.components{.rt-toolbar{--rt-toolbar-padding-top: var(--rt-space-2);--rt-toolbar-padding-bottom: var(--rt-space-2);--rt-toolbar-padding-inline: 0;--rt-toolbar-height: auto;--rt-toolbar-border-bottom: none;--rt-toolbar-gap: var(--rt-space-2);--rt-toolbar-center-justify: flex-end;--rt-toolbar-center-overflow: visible;display:block}.rt-toolbar__bars{display:flex;width:100%;min-height:var(--rt-toolbar-height);box-sizing:border-box;flex-direction:row;align-items:center;justify-content:space-between;padding:var(--rt-toolbar-padding-top) var(--rt-toolbar-padding-inline) var(--rt-toolbar-padding-bottom);border-bottom:var(--rt-toolbar-border-bottom);gap:var(--rt-toolbar-gap)}.rt-toolbar__bar{display:flex;align-items:center}.rt-toolbar__bar--left{flex:0 0 auto;gap:var(--rt-space-2)}.rt-toolbar__bar--center{overflow:var(--rt-toolbar-center-overflow);flex:1 1 auto;justify-content:var(--rt-toolbar-center-justify);gap:var(--rt-space-2)}.rt-toolbar__bar--center rt-input,.rt-toolbar__bar--center rt-select{width:100%}.rt-toolbar__bar--right{flex:0 1 auto;margin-left:auto;gap:var(--rt-space-sm)}.rt-toolbar--dense .rt-toolbar__bar--left{min-width:0;flex:0 1 auto}@media(width<=768px){.rt-toolbar:not(.rt-toolbar--dense) .rt-toolbar__bars{flex-direction:column;align-items:stretch;gap:var(--rt-space-sm)}.rt-toolbar:not(.rt-toolbar--dense) .rt-toolbar__bar{flex-wrap:wrap}.rt-toolbar:not(.rt-toolbar--dense) .rt-toolbar__bar--center{justify-content:stretch}.rt-toolbar:not(.rt-toolbar--dense) .rt-toolbar__bar--right{justify-content:flex-end;margin-left:0}}}\n"], dependencies: [{ kind: "directive", type:
|
|
110
110
|
// Angular
|
|
111
111
|
NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type:
|
|
112
112
|
// standalone components / directives
|
|
@@ -124,7 +124,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImpor
|
|
|
124
124
|
], host: {
|
|
125
125
|
class: BEM_BLOCK,
|
|
126
126
|
'[class.rt-toolbar--dense]': 'dense()',
|
|
127
|
-
}, template: "@if (leftTpl() || centerTpl() || rightTpl()) {\n <ng-container rtBlock=\"rt-toolbar\">\n <div rtElem=\"bars\">\n @if (leftTpl()) {\n <div rtElem=\"bar\" qa-dataid=\"toolbar-bar\" data-slot=\"left\" [rtMod]=\"{ left: true }\">\n <ng-container [ngTemplateOutlet]=\"leftTpl() ?? null\" />\n </div>\n }\n\n @if (centerTpl()) {\n <div rtElem=\"bar\" qa-dataid=\"toolbar-bar\" data-slot=\"center\" [rtMod]=\"{ center: true }\">\n <ng-container [ngTemplateOutlet]=\"centerTpl() ?? null\" />\n </div>\n }\n\n @if (rightTpl()) {\n <div rtElem=\"bar\" qa-dataid=\"toolbar-bar\" data-slot=\"right\" [rtMod]=\"{ right: true }\">\n <ng-container [ngTemplateOutlet]=\"rightTpl() ?? null\" />\n </div>\n }\n </div>\n </ng-container>\n}\n", styles: ["@charset \"UTF-8\";@layer rt-kit.components{.rt-toolbar{--rt-toolbar-padding-top: var(--rt-space-2);--rt-toolbar-padding-bottom: var(--rt-space-2);--rt-toolbar-padding-inline: 0;--rt-toolbar-height: auto;--rt-toolbar-border-bottom: none;--rt-toolbar-gap: var(--rt-space-2);--rt-toolbar-center-justify: flex-end;--rt-toolbar-center-overflow: visible;display:block}.rt-toolbar__bars{display:flex;width:100%;min-height:var(--rt-toolbar-height);box-sizing:border-box;flex-direction:row;align-items:center;justify-content:space-between;padding:var(--rt-toolbar-padding-top) var(--rt-toolbar-padding-inline) var(--rt-toolbar-padding-bottom);border-bottom:var(--rt-toolbar-border-bottom);gap:var(--rt-toolbar-gap)}.rt-toolbar__bar{display:flex;align-items:center}.rt-toolbar__bar--left{flex:0 0 auto;gap:var(--rt-space-2)}.rt-toolbar__bar--center{overflow:var(--rt-toolbar-center-overflow);flex:1 1 auto;justify-content:var(--rt-toolbar-center-justify);gap:var(--rt-space-2)}.rt-toolbar__bar--center rt-input,.rt-toolbar__bar--center rt-select{width:100%}.rt-toolbar__bar--right{flex:0 1 auto;margin-left:auto;gap:var(--rt-space-sm)}@media(width<=768px){.rt-toolbar:not(.rt-toolbar--dense) .rt-toolbar__bars{flex-direction:column;align-items:stretch;gap:var(--rt-space-sm)}.rt-toolbar:not(.rt-toolbar--dense) .rt-toolbar__bar{flex-wrap:wrap}.rt-toolbar:not(.rt-toolbar--dense) .rt-toolbar__bar--center{justify-content:stretch}.rt-toolbar:not(.rt-toolbar--dense) .rt-toolbar__bar--right{justify-content:flex-end;margin-left:0}}}\n"] }]
|
|
127
|
+
}, template: "@if (leftTpl() || centerTpl() || rightTpl()) {\n <ng-container rtBlock=\"rt-toolbar\">\n <div rtElem=\"bars\">\n @if (leftTpl()) {\n <div rtElem=\"bar\" qa-dataid=\"toolbar-bar\" data-slot=\"left\" [rtMod]=\"{ left: true }\">\n <ng-container [ngTemplateOutlet]=\"leftTpl() ?? null\" />\n </div>\n }\n\n @if (centerTpl()) {\n <div rtElem=\"bar\" qa-dataid=\"toolbar-bar\" data-slot=\"center\" [rtMod]=\"{ center: true }\">\n <ng-container [ngTemplateOutlet]=\"centerTpl() ?? null\" />\n </div>\n }\n\n @if (rightTpl()) {\n <div rtElem=\"bar\" qa-dataid=\"toolbar-bar\" data-slot=\"right\" [rtMod]=\"{ right: true }\">\n <ng-container [ngTemplateOutlet]=\"rightTpl() ?? null\" />\n </div>\n }\n </div>\n </ng-container>\n}\n", styles: ["@charset \"UTF-8\";@layer rt-kit.components{.rt-toolbar{--rt-toolbar-padding-top: var(--rt-space-2);--rt-toolbar-padding-bottom: var(--rt-space-2);--rt-toolbar-padding-inline: 0;--rt-toolbar-height: auto;--rt-toolbar-border-bottom: none;--rt-toolbar-gap: var(--rt-space-2);--rt-toolbar-center-justify: flex-end;--rt-toolbar-center-overflow: visible;display:block}.rt-toolbar__bars{display:flex;width:100%;min-height:var(--rt-toolbar-height);box-sizing:border-box;flex-direction:row;align-items:center;justify-content:space-between;padding:var(--rt-toolbar-padding-top) var(--rt-toolbar-padding-inline) var(--rt-toolbar-padding-bottom);border-bottom:var(--rt-toolbar-border-bottom);gap:var(--rt-toolbar-gap)}.rt-toolbar__bar{display:flex;align-items:center}.rt-toolbar__bar--left{flex:0 0 auto;gap:var(--rt-space-2)}.rt-toolbar__bar--center{overflow:var(--rt-toolbar-center-overflow);flex:1 1 auto;justify-content:var(--rt-toolbar-center-justify);gap:var(--rt-space-2)}.rt-toolbar__bar--center rt-input,.rt-toolbar__bar--center rt-select{width:100%}.rt-toolbar__bar--right{flex:0 1 auto;margin-left:auto;gap:var(--rt-space-sm)}.rt-toolbar--dense .rt-toolbar__bar--left{min-width:0;flex:0 1 auto}@media(width<=768px){.rt-toolbar:not(.rt-toolbar--dense) .rt-toolbar__bars{flex-direction:column;align-items:stretch;gap:var(--rt-space-sm)}.rt-toolbar:not(.rt-toolbar--dense) .rt-toolbar__bar{flex-wrap:wrap}.rt-toolbar:not(.rt-toolbar--dense) .rt-toolbar__bar--center{justify-content:stretch}.rt-toolbar:not(.rt-toolbar--dense) .rt-toolbar__bar--right{justify-content:flex-end;margin-left:0}}}\n"] }]
|
|
128
128
|
}], propDecorators: { leftTpl: [{ type: i0.ContentChild, args: [i0.forwardRef(() => RtToolbarLeftDirective), { ...{ read: TemplateRef }, isSignal: true }] }], centerTpl: [{ type: i0.ContentChild, args: [i0.forwardRef(() => RtToolbarCenterDirective), { ...{ read: TemplateRef }, isSignal: true }] }], rightTpl: [{ type: i0.ContentChild, args: [i0.forwardRef(() => RtToolbarRightDirective), { ...{ read: TemplateRef }, isSignal: true }] }], dense: [{ type: i0.Input, args: [{ isSignal: true, alias: "dense", required: false }] }] } });
|
|
129
129
|
|
|
130
130
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rt-tools-ui-kit-v2-toolbar.mjs","sources":["../../../projects/ui-kit-v2/src/lib/components/toolbar/rt-toolbar.component.ts","../../../projects/ui-kit-v2/src/lib/components/toolbar/rt-toolbar.component.html","../../../projects/ui-kit-v2/src/lib/components/toolbar/rt-tools-ui-kit-v2-toolbar.ts"],"sourcesContent":["import { NgTemplateOutlet } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n contentChild,\n Directive,\n input,\n InputSignalWithTransform,\n Signal,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { BlockDirective, ElemDirective, ModDirective } from '@rt-tools/core';\n\n/**\n * Маркер-директива для контента в левой секции тулбара.\n *\n * @example\n * ```html\n * <rt-toolbar>\n * <ng-template rtToolbarLeft>\n * <button rtButton label=\"Создать\" />\n * </ng-template>\n * </rt-toolbar>\n * ```\n */\n@Directive({\n selector: '[rtToolbarLeft]',\n})\nexport class RtToolbarLeftDirective {}\n\n/**\n * Маркер-директива для контента в центральной секции тулбара.\n *\n * @example\n * ```html\n * <rt-toolbar>\n * <ng-template rtToolbarCenter>\n * <span>Заголовок страницы</span>\n * </ng-template>\n * </rt-toolbar>\n * ```\n */\n@Directive({\n selector: '[rtToolbarCenter]',\n})\nexport class RtToolbarCenterDirective {}\n\n/**\n * Маркер-директива для контента в правой секции тулбара.\n *\n * @example\n * ```html\n * <rt-toolbar>\n * <ng-template rtToolbarRight>\n * <input type=\"search\" placeholder=\"Поиск\" />\n * </ng-template>\n * </rt-toolbar>\n * ```\n */\n@Directive({\n selector: '[rtToolbarRight]',\n})\nexport class RtToolbarRightDirective {}\n\n/**\n * Универсальный тулбар с тремя секциями: left, center, right.\n * Секции задаются `<ng-template>` с директивами-маркерами и подставляются через `ngTemplateOutlet`.\n * Каждый модуль/фича подключает `rt-toolbar` в своём layout и наполняет нужные секции.\n *\n * @example\n * ```html\n * <rt-toolbar>\n * <ng-template rtToolbarLeft>\n * <button rtButton label=\"Создать\" />\n * <button rtButton label=\"Удалить\" appearance=\"text\" />\n * </ng-template>\n *\n * <ng-template rtToolbarCenter>\n * <span>Заявки</span>\n * </ng-template>\n *\n * <ng-template rtToolbarRight>\n * <input type=\"search\" [formControl]=\"searchCtrl\" />\n * </ng-template>\n * </rt-toolbar>\n * ```\n */\nconst BEM_BLOCK: string = 'rt-toolbar';\n\n@Component({\n selector: 'rt-toolbar',\n templateUrl: './rt-toolbar.component.html',\n styleUrls: ['./rt-toolbar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n // Angular\n NgTemplateOutlet,\n\n // standalone components / directives\n BlockDirective,\n ElemDirective,\n ModDirective,\n ],\n host: {\n class: BEM_BLOCK,\n '[class.rt-toolbar--dense]': 'dense()',\n },\n})\nexport class RtToolbarComponent {\n protected readonly leftTpl: Signal<TemplateRef<unknown> | undefined> = contentChild(RtToolbarLeftDirective, { read: TemplateRef });\n\n protected readonly centerTpl: Signal<TemplateRef<unknown> | undefined> = contentChild(RtToolbarCenterDirective, { read: TemplateRef });\n\n protected readonly rightTpl: Signal<TemplateRef<unknown> | undefined> = contentChild(RtToolbarRightDirective, { read: TemplateRef });\n\n /**\n * Компактная шапка (заголовок + иконки-действия): зоны остаются в одну строку\n * даже на мобилке. Без этого трёхзонный list-тулбар стекается в колонку на\n * ≤768px, что для узкой шапки (напр. rt-chat) неверно.\n */\n public readonly dense: InputSignalWithTransform<boolean, boolean | string> = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n}\n","@if (leftTpl() || centerTpl() || rightTpl()) {\n <ng-container rtBlock=\"rt-toolbar\">\n <div rtElem=\"bars\">\n @if (leftTpl()) {\n <div rtElem=\"bar\" qa-dataid=\"toolbar-bar\" data-slot=\"left\" [rtMod]=\"{ left: true }\">\n <ng-container [ngTemplateOutlet]=\"leftTpl() ?? null\" />\n </div>\n }\n\n @if (centerTpl()) {\n <div rtElem=\"bar\" qa-dataid=\"toolbar-bar\" data-slot=\"center\" [rtMod]=\"{ center: true }\">\n <ng-container [ngTemplateOutlet]=\"centerTpl() ?? null\" />\n </div>\n }\n\n @if (rightTpl()) {\n <div rtElem=\"bar\" qa-dataid=\"toolbar-bar\" data-slot=\"right\" [rtMod]=\"{ right: true }\">\n <ng-container [ngTemplateOutlet]=\"rightTpl() ?? null\" />\n </div>\n }\n </div>\n </ng-container>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"rt-tools-ui-kit-v2-toolbar.mjs","sources":["../../../projects/ui-kit-v2/src/lib/components/toolbar/rt-toolbar.component.ts","../../../projects/ui-kit-v2/src/lib/components/toolbar/rt-toolbar.component.html","../../../projects/ui-kit-v2/src/lib/components/toolbar/rt-tools-ui-kit-v2-toolbar.ts"],"sourcesContent":["import { NgTemplateOutlet } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n contentChild,\n Directive,\n input,\n InputSignalWithTransform,\n Signal,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { BlockDirective, ElemDirective, ModDirective } from '@rt-tools/core';\n\n/**\n * Маркер-директива для контента в левой секции тулбара.\n *\n * @example\n * ```html\n * <rt-toolbar>\n * <ng-template rtToolbarLeft>\n * <button rtButton label=\"Создать\" />\n * </ng-template>\n * </rt-toolbar>\n * ```\n */\n@Directive({\n selector: '[rtToolbarLeft]',\n})\nexport class RtToolbarLeftDirective {}\n\n/**\n * Маркер-директива для контента в центральной секции тулбара.\n *\n * @example\n * ```html\n * <rt-toolbar>\n * <ng-template rtToolbarCenter>\n * <span>Заголовок страницы</span>\n * </ng-template>\n * </rt-toolbar>\n * ```\n */\n@Directive({\n selector: '[rtToolbarCenter]',\n})\nexport class RtToolbarCenterDirective {}\n\n/**\n * Маркер-директива для контента в правой секции тулбара.\n *\n * @example\n * ```html\n * <rt-toolbar>\n * <ng-template rtToolbarRight>\n * <input type=\"search\" placeholder=\"Поиск\" />\n * </ng-template>\n * </rt-toolbar>\n * ```\n */\n@Directive({\n selector: '[rtToolbarRight]',\n})\nexport class RtToolbarRightDirective {}\n\n/**\n * Универсальный тулбар с тремя секциями: left, center, right.\n * Секции задаются `<ng-template>` с директивами-маркерами и подставляются через `ngTemplateOutlet`.\n * Каждый модуль/фича подключает `rt-toolbar` в своём layout и наполняет нужные секции.\n *\n * @example\n * ```html\n * <rt-toolbar>\n * <ng-template rtToolbarLeft>\n * <button rtButton label=\"Создать\" />\n * <button rtButton label=\"Удалить\" appearance=\"text\" />\n * </ng-template>\n *\n * <ng-template rtToolbarCenter>\n * <span>Заявки</span>\n * </ng-template>\n *\n * <ng-template rtToolbarRight>\n * <input type=\"search\" [formControl]=\"searchCtrl\" />\n * </ng-template>\n * </rt-toolbar>\n * ```\n */\nconst BEM_BLOCK: string = 'rt-toolbar';\n\n@Component({\n selector: 'rt-toolbar',\n templateUrl: './rt-toolbar.component.html',\n styleUrls: ['./rt-toolbar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n // Angular\n NgTemplateOutlet,\n\n // standalone components / directives\n BlockDirective,\n ElemDirective,\n ModDirective,\n ],\n host: {\n class: BEM_BLOCK,\n '[class.rt-toolbar--dense]': 'dense()',\n },\n})\nexport class RtToolbarComponent {\n protected readonly leftTpl: Signal<TemplateRef<unknown> | undefined> = contentChild(RtToolbarLeftDirective, { read: TemplateRef });\n\n protected readonly centerTpl: Signal<TemplateRef<unknown> | undefined> = contentChild(RtToolbarCenterDirective, { read: TemplateRef });\n\n protected readonly rightTpl: Signal<TemplateRef<unknown> | undefined> = contentChild(RtToolbarRightDirective, { read: TemplateRef });\n\n /**\n * Компактная шапка (заголовок + иконки-действия): зоны остаются в одну строку\n * даже на мобилке. Без этого трёхзонный list-тулбар стекается в колонку на\n * ≤768px, что для узкой шапки (напр. rt-chat) неверно.\n */\n public readonly dense: InputSignalWithTransform<boolean, boolean | string> = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n}\n","@if (leftTpl() || centerTpl() || rightTpl()) {\n <ng-container rtBlock=\"rt-toolbar\">\n <div rtElem=\"bars\">\n @if (leftTpl()) {\n <div rtElem=\"bar\" qa-dataid=\"toolbar-bar\" data-slot=\"left\" [rtMod]=\"{ left: true }\">\n <ng-container [ngTemplateOutlet]=\"leftTpl() ?? null\" />\n </div>\n }\n\n @if (centerTpl()) {\n <div rtElem=\"bar\" qa-dataid=\"toolbar-bar\" data-slot=\"center\" [rtMod]=\"{ center: true }\">\n <ng-container [ngTemplateOutlet]=\"centerTpl() ?? null\" />\n </div>\n }\n\n @if (rightTpl()) {\n <div rtElem=\"bar\" qa-dataid=\"toolbar-bar\" data-slot=\"right\" [rtMod]=\"{ right: true }\">\n <ng-container [ngTemplateOutlet]=\"rightTpl() ?? null\" />\n </div>\n }\n </div>\n </ng-container>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAgBA;;;;;;;;;;;AAWG;MAIU,sBAAsB,CAAA;8GAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,iBAAiB;AAC9B,iBAAA;;AAGD;;;;;;;;;;;AAWG;MAIU,wBAAwB,CAAA;8GAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAHpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,mBAAmB;AAChC,iBAAA;;AAGD;;;;;;;;;;;AAWG;MAIU,uBAAuB,CAAA;8GAAvB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,kBAAkB;AAC/B,iBAAA;;AAGD;;;;;;;;;;;;;;;;;;;;;;AAsBG;AACH,MAAM,SAAS,GAAW,YAAY;MAsBzB,kBAAkB,CAAA;AApB/B,IAAA,WAAA,GAAA;QAqBuB,IAAA,CAAA,OAAO,GAA6C,YAAY,CAAC,sBAAsB,+EAAI,IAAI,EAAE,WAAW,EAAA,CAAG;QAE/G,IAAA,CAAA,SAAS,GAA6C,YAAY,CAAC,wBAAwB,iFAAI,IAAI,EAAE,WAAW,EAAA,CAAG;QAEnH,IAAA,CAAA,QAAQ,GAA6C,YAAY,CAAC,uBAAuB,gFAAI,IAAI,EAAE,WAAW,EAAA,CAAG;AAEpI;;;;AAIG;QACa,IAAA,CAAA,KAAK,GAAwD,KAAK,CAA4B,KAAK,6EAC/G,SAAS,EAAE,gBAAgB,EAAA,CAC7B;AACL,IAAA;8GAfY,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,yBAAA,EAAA,SAAA,EAAA,EAAA,cAAA,EAAA,YAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EACyD,sBAAsB,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAU,WAAW,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAEzC,wBAAwB,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAU,WAAW,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAE9C,uBAAuB,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAU,WAAW,6CCrHrI,67BAuBA,EAAA,MAAA,EAAA,CAAA,wjDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA;;gBD6EQ,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA;;gBAGhB,cAAc,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACd,aAAa,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACb,YAAY,EAAA,QAAA,EAAA,SAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAOP,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBApB9B,SAAS;+BACI,YAAY,EAAA,eAAA,EAGL,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B;;wBAEL,gBAAgB;;wBAGhB,cAAc;wBACd,aAAa;wBACb,YAAY;qBACf,EAAA,IAAA,EACK;AACF,wBAAA,KAAK,EAAE,SAAS;AAChB,wBAAA,2BAA2B,EAAE,SAAS;AACzC,qBAAA,EAAA,QAAA,EAAA,67BAAA,EAAA,MAAA,EAAA,CAAA,wjDAAA,CAAA,EAAA;4FAGmF,sBAAsB,CAAA,EAAA,EAAA,GAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAE3C,wBAAwB,CAAA,EAAA,EAAA,GAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAEhD,uBAAuB,QAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;AErHvI;;AAEG;;;;"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export * from '@rt-tools/ui-kit-v2/core';
|
|
2
2
|
export * from '@rt-tools/ui-kit-v2/accordion';
|
|
3
|
+
export * from '@rt-tools/ui-kit-v2/ai-run-status';
|
|
3
4
|
export * from '@rt-tools/ui-kit-v2/action-bar';
|
|
4
5
|
export * from '@rt-tools/ui-kit-v2/aside-section';
|
|
5
6
|
export * from '@rt-tools/ui-kit-v2/aside';
|
|
@@ -13,6 +14,7 @@ export * from '@rt-tools/ui-kit-v2/checkbox';
|
|
|
13
14
|
export * from '@rt-tools/ui-kit-v2/collapsible-text';
|
|
14
15
|
export * from '@rt-tools/ui-kit-v2/confirm-popover';
|
|
15
16
|
export * from '@rt-tools/ui-kit-v2/container';
|
|
17
|
+
export * from '@rt-tools/ui-kit-v2/copy-value';
|
|
16
18
|
export * from '@rt-tools/ui-kit-v2/counter-row';
|
|
17
19
|
export * from '@rt-tools/ui-kit-v2/counter';
|
|
18
20
|
export * from '@rt-tools/ui-kit-v2/data-list';
|
|
@@ -57,6 +59,7 @@ export * from '@rt-tools/ui-kit-v2/page-header';
|
|
|
57
59
|
export * from '@rt-tools/ui-kit-v2/pagination';
|
|
58
60
|
export * from '@rt-tools/ui-kit-v2/photo-viewer';
|
|
59
61
|
export * from '@rt-tools/ui-kit-v2/popover';
|
|
62
|
+
export * from '@rt-tools/ui-kit-v2/prompt-suggestion';
|
|
60
63
|
export * from '@rt-tools/ui-kit-v2/radio-button';
|
|
61
64
|
export * from '@rt-tools/ui-kit-v2/radius';
|
|
62
65
|
export * from '@rt-tools/ui-kit-v2/ripple';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rt-tools-ui-kit-v2.mjs","sources":["../../../projects/ui-kit-v2/src/public-api.ts","../../../projects/ui-kit-v2/src/rt-tools-ui-kit-v2.ts"],"sourcesContent":["/**\n * Public API Surface of @rt-tools/ui-kit-v2\n *\n * Корень переотдаёт точки входа пакета. Каждый компонент собран своей точкой входа, поэтому\n * приложение получает в кусок бандла только то, что импортировало.\n */\n\n// ядро: настройки, словари, среда исполнения, токены, пайпы, прокрутка, чистые функции\nexport * from '@rt-tools/ui-kit-v2/core';\n\n// компоненты\nexport * from '@rt-tools/ui-kit-v2/accordion';\nexport * from '@rt-tools/ui-kit-v2/action-bar';\nexport * from '@rt-tools/ui-kit-v2/aside-section';\nexport * from '@rt-tools/ui-kit-v2/aside';\nexport * from '@rt-tools/ui-kit-v2/autocomplete';\nexport * from '@rt-tools/ui-kit-v2/bar-list';\nexport * from '@rt-tools/ui-kit-v2/bottom-sheet';\nexport * from '@rt-tools/ui-kit-v2/button';\nexport * from '@rt-tools/ui-kit-v2/calendar';\nexport * from '@rt-tools/ui-kit-v2/card';\nexport * from '@rt-tools/ui-kit-v2/checkbox';\nexport * from '@rt-tools/ui-kit-v2/collapsible-text';\nexport * from '@rt-tools/ui-kit-v2/confirm-popover';\nexport * from '@rt-tools/ui-kit-v2/container';\nexport * from '@rt-tools/ui-kit-v2/counter-row';\nexport * from '@rt-tools/ui-kit-v2/counter';\nexport * from '@rt-tools/ui-kit-v2/data-list';\nexport * from '@rt-tools/ui-kit-v2/data-table';\nexport * from '@rt-tools/ui-kit-v2/date-picker';\nexport * from '@rt-tools/ui-kit-v2/date-range';\nexport * from '@rt-tools/ui-kit-v2/delta-view';\nexport * from '@rt-tools/ui-kit-v2/detail-list';\nexport * from '@rt-tools/ui-kit-v2/dialog';\nexport * from '@rt-tools/ui-kit-v2/dot-field';\nexport * from '@rt-tools/ui-kit-v2/download-link';\nexport * from '@rt-tools/ui-kit-v2/dynamic-list';\nexport * from '@rt-tools/ui-kit-v2/dynamic-selector';\nexport * from '@rt-tools/ui-kit-v2/empty-state';\nexport * from '@rt-tools/ui-kit-v2/expansion-panel';\nexport * from '@rt-tools/ui-kit-v2/field';\nexport * from '@rt-tools/ui-kit-v2/file-card';\nexport * from '@rt-tools/ui-kit-v2/file-drop';\nexport * from '@rt-tools/ui-kit-v2/file-input';\nexport * from '@rt-tools/ui-kit-v2/file-list';\nexport * from '@rt-tools/ui-kit-v2/filter-control';\nexport * from '@rt-tools/ui-kit-v2/form-control';\nexport * from '@rt-tools/ui-kit-v2/header';\nexport * from '@rt-tools/ui-kit-v2/icon-button';\nexport * from '@rt-tools/ui-kit-v2/icon';\nexport * from '@rt-tools/ui-kit-v2/image-cropper';\nexport * from '@rt-tools/ui-kit-v2/image-upload';\nexport * from '@rt-tools/ui-kit-v2/info-item';\nexport * from '@rt-tools/ui-kit-v2/input-number';\nexport * from '@rt-tools/ui-kit-v2/input';\nexport * from '@rt-tools/ui-kit-v2/live-badge';\nexport * from '@rt-tools/ui-kit-v2/logo';\nexport * from '@rt-tools/ui-kit-v2/markdown-text';\nexport * from '@rt-tools/ui-kit-v2/menu';\nexport * from '@rt-tools/ui-kit-v2/message';\nexport * from '@rt-tools/ui-kit-v2/money-list';\nexport * from '@rt-tools/ui-kit-v2/multiselect';\nexport * from '@rt-tools/ui-kit-v2/night-grid';\nexport * from '@rt-tools/ui-kit-v2/note';\nexport * from '@rt-tools/ui-kit-v2/notifications-bell';\nexport * from '@rt-tools/ui-kit-v2/page-header';\nexport * from '@rt-tools/ui-kit-v2/pagination';\nexport * from '@rt-tools/ui-kit-v2/photo-viewer';\nexport * from '@rt-tools/ui-kit-v2/popover';\nexport * from '@rt-tools/ui-kit-v2/radio-button';\nexport * from '@rt-tools/ui-kit-v2/radius';\nexport * from '@rt-tools/ui-kit-v2/ripple';\nexport * from '@rt-tools/ui-kit-v2/scroll-area';\nexport * from '@rt-tools/ui-kit-v2/section-nav';\nexport * from '@rt-tools/ui-kit-v2/select';\nexport * from '@rt-tools/ui-kit-v2/side-menu';\nexport * from '@rt-tools/ui-kit-v2/skeleton-wrapper';\nexport * from '@rt-tools/ui-kit-v2/skeleton';\nexport * from '@rt-tools/ui-kit-v2/spinner';\nexport * from '@rt-tools/ui-kit-v2/split-button';\nexport * from '@rt-tools/ui-kit-v2/stat-tile';\nexport * from '@rt-tools/ui-kit-v2/stepper';\nexport * from '@rt-tools/ui-kit-v2/table';\nexport * from '@rt-tools/ui-kit-v2/tabs';\nexport * from '@rt-tools/ui-kit-v2/tag';\nexport * from '@rt-tools/ui-kit-v2/textarea';\nexport * from '@rt-tools/ui-kit-v2/theme-toggle';\nexport * from '@rt-tools/ui-kit-v2/thread-list';\nexport * from '@rt-tools/ui-kit-v2/timeline';\nexport * from '@rt-tools/ui-kit-v2/toast';\nexport * from '@rt-tools/ui-kit-v2/toggle-button-group';\nexport * from '@rt-tools/ui-kit-v2/toggle-switch';\nexport * from '@rt-tools/ui-kit-v2/toolbar';\nexport * from '@rt-tools/ui-kit-v2/tooltip';\nexport * from '@rt-tools/ui-kit-v2/welcome-dialog';\nexport * from '@rt-tools/ui-kit-v2/workspace-details';\nexport * from '@rt-tools/ui-kit-v2/workspace';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"rt-tools-ui-kit-v2.mjs","sources":["../../../projects/ui-kit-v2/src/public-api.ts","../../../projects/ui-kit-v2/src/rt-tools-ui-kit-v2.ts"],"sourcesContent":["/**\n * Public API Surface of @rt-tools/ui-kit-v2\n *\n * Корень переотдаёт точки входа пакета. Каждый компонент собран своей точкой входа, поэтому\n * приложение получает в кусок бандла только то, что импортировало.\n */\n\n// ядро: настройки, словари, среда исполнения, токены, пайпы, прокрутка, чистые функции\nexport * from '@rt-tools/ui-kit-v2/core';\n\n// компоненты\nexport * from '@rt-tools/ui-kit-v2/accordion';\nexport * from '@rt-tools/ui-kit-v2/ai-run-status';\nexport * from '@rt-tools/ui-kit-v2/action-bar';\nexport * from '@rt-tools/ui-kit-v2/aside-section';\nexport * from '@rt-tools/ui-kit-v2/aside';\nexport * from '@rt-tools/ui-kit-v2/autocomplete';\nexport * from '@rt-tools/ui-kit-v2/bar-list';\nexport * from '@rt-tools/ui-kit-v2/bottom-sheet';\nexport * from '@rt-tools/ui-kit-v2/button';\nexport * from '@rt-tools/ui-kit-v2/calendar';\nexport * from '@rt-tools/ui-kit-v2/card';\nexport * from '@rt-tools/ui-kit-v2/checkbox';\nexport * from '@rt-tools/ui-kit-v2/collapsible-text';\nexport * from '@rt-tools/ui-kit-v2/confirm-popover';\nexport * from '@rt-tools/ui-kit-v2/container';\nexport * from '@rt-tools/ui-kit-v2/copy-value';\nexport * from '@rt-tools/ui-kit-v2/counter-row';\nexport * from '@rt-tools/ui-kit-v2/counter';\nexport * from '@rt-tools/ui-kit-v2/data-list';\nexport * from '@rt-tools/ui-kit-v2/data-table';\nexport * from '@rt-tools/ui-kit-v2/date-picker';\nexport * from '@rt-tools/ui-kit-v2/date-range';\nexport * from '@rt-tools/ui-kit-v2/delta-view';\nexport * from '@rt-tools/ui-kit-v2/detail-list';\nexport * from '@rt-tools/ui-kit-v2/dialog';\nexport * from '@rt-tools/ui-kit-v2/dot-field';\nexport * from '@rt-tools/ui-kit-v2/download-link';\nexport * from '@rt-tools/ui-kit-v2/dynamic-list';\nexport * from '@rt-tools/ui-kit-v2/dynamic-selector';\nexport * from '@rt-tools/ui-kit-v2/empty-state';\nexport * from '@rt-tools/ui-kit-v2/expansion-panel';\nexport * from '@rt-tools/ui-kit-v2/field';\nexport * from '@rt-tools/ui-kit-v2/file-card';\nexport * from '@rt-tools/ui-kit-v2/file-drop';\nexport * from '@rt-tools/ui-kit-v2/file-input';\nexport * from '@rt-tools/ui-kit-v2/file-list';\nexport * from '@rt-tools/ui-kit-v2/filter-control';\nexport * from '@rt-tools/ui-kit-v2/form-control';\nexport * from '@rt-tools/ui-kit-v2/header';\nexport * from '@rt-tools/ui-kit-v2/icon-button';\nexport * from '@rt-tools/ui-kit-v2/icon';\nexport * from '@rt-tools/ui-kit-v2/image-cropper';\nexport * from '@rt-tools/ui-kit-v2/image-upload';\nexport * from '@rt-tools/ui-kit-v2/info-item';\nexport * from '@rt-tools/ui-kit-v2/input-number';\nexport * from '@rt-tools/ui-kit-v2/input';\nexport * from '@rt-tools/ui-kit-v2/live-badge';\nexport * from '@rt-tools/ui-kit-v2/logo';\nexport * from '@rt-tools/ui-kit-v2/markdown-text';\nexport * from '@rt-tools/ui-kit-v2/menu';\nexport * from '@rt-tools/ui-kit-v2/message';\nexport * from '@rt-tools/ui-kit-v2/money-list';\nexport * from '@rt-tools/ui-kit-v2/multiselect';\nexport * from '@rt-tools/ui-kit-v2/night-grid';\nexport * from '@rt-tools/ui-kit-v2/note';\nexport * from '@rt-tools/ui-kit-v2/notifications-bell';\nexport * from '@rt-tools/ui-kit-v2/page-header';\nexport * from '@rt-tools/ui-kit-v2/pagination';\nexport * from '@rt-tools/ui-kit-v2/photo-viewer';\nexport * from '@rt-tools/ui-kit-v2/popover';\nexport * from '@rt-tools/ui-kit-v2/prompt-suggestion';\nexport * from '@rt-tools/ui-kit-v2/radio-button';\nexport * from '@rt-tools/ui-kit-v2/radius';\nexport * from '@rt-tools/ui-kit-v2/ripple';\nexport * from '@rt-tools/ui-kit-v2/scroll-area';\nexport * from '@rt-tools/ui-kit-v2/section-nav';\nexport * from '@rt-tools/ui-kit-v2/select';\nexport * from '@rt-tools/ui-kit-v2/side-menu';\nexport * from '@rt-tools/ui-kit-v2/skeleton-wrapper';\nexport * from '@rt-tools/ui-kit-v2/skeleton';\nexport * from '@rt-tools/ui-kit-v2/spinner';\nexport * from '@rt-tools/ui-kit-v2/split-button';\nexport * from '@rt-tools/ui-kit-v2/stat-tile';\nexport * from '@rt-tools/ui-kit-v2/stepper';\nexport * from '@rt-tools/ui-kit-v2/table';\nexport * from '@rt-tools/ui-kit-v2/tabs';\nexport * from '@rt-tools/ui-kit-v2/tag';\nexport * from '@rt-tools/ui-kit-v2/textarea';\nexport * from '@rt-tools/ui-kit-v2/theme-toggle';\nexport * from '@rt-tools/ui-kit-v2/thread-list';\nexport * from '@rt-tools/ui-kit-v2/timeline';\nexport * from '@rt-tools/ui-kit-v2/toast';\nexport * from '@rt-tools/ui-kit-v2/toggle-button-group';\nexport * from '@rt-tools/ui-kit-v2/toggle-switch';\nexport * from '@rt-tools/ui-kit-v2/toolbar';\nexport * from '@rt-tools/ui-kit-v2/tooltip';\nexport * from '@rt-tools/ui-kit-v2/welcome-dialog';\nexport * from '@rt-tools/ui-kit-v2/workspace-details';\nexport * from '@rt-tools/ui-kit-v2/workspace';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;AAKG;AAEH;;ACPA;;AAEG"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rt-tools/ui-kit-v2",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.19.0",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"author": "Yauheni Krumin",
|
|
6
6
|
"type": "module",
|
|
@@ -57,6 +57,10 @@
|
|
|
57
57
|
"types": "./types/rt-tools-ui-kit-v2-action-bar.d.ts",
|
|
58
58
|
"default": "./fesm2022/rt-tools-ui-kit-v2-action-bar.mjs"
|
|
59
59
|
},
|
|
60
|
+
"./ai-run-status": {
|
|
61
|
+
"types": "./types/rt-tools-ui-kit-v2-ai-run-status.d.ts",
|
|
62
|
+
"default": "./fesm2022/rt-tools-ui-kit-v2-ai-run-status.mjs"
|
|
63
|
+
},
|
|
60
64
|
"./aside": {
|
|
61
65
|
"types": "./types/rt-tools-ui-kit-v2-aside.d.ts",
|
|
62
66
|
"default": "./fesm2022/rt-tools-ui-kit-v2-aside.mjs"
|
|
@@ -105,6 +109,10 @@
|
|
|
105
109
|
"types": "./types/rt-tools-ui-kit-v2-container.d.ts",
|
|
106
110
|
"default": "./fesm2022/rt-tools-ui-kit-v2-container.mjs"
|
|
107
111
|
},
|
|
112
|
+
"./copy-value": {
|
|
113
|
+
"types": "./types/rt-tools-ui-kit-v2-copy-value.d.ts",
|
|
114
|
+
"default": "./fesm2022/rt-tools-ui-kit-v2-copy-value.mjs"
|
|
115
|
+
},
|
|
108
116
|
"./core": {
|
|
109
117
|
"types": "./types/rt-tools-ui-kit-v2-core.d.ts",
|
|
110
118
|
"default": "./fesm2022/rt-tools-ui-kit-v2-core.mjs"
|
|
@@ -285,6 +293,10 @@
|
|
|
285
293
|
"types": "./types/rt-tools-ui-kit-v2-popover.d.ts",
|
|
286
294
|
"default": "./fesm2022/rt-tools-ui-kit-v2-popover.mjs"
|
|
287
295
|
},
|
|
296
|
+
"./prompt-suggestion": {
|
|
297
|
+
"types": "./types/rt-tools-ui-kit-v2-prompt-suggestion.d.ts",
|
|
298
|
+
"default": "./fesm2022/rt-tools-ui-kit-v2-prompt-suggestion.mjs"
|
|
299
|
+
},
|
|
288
300
|
"./radio-button": {
|
|
289
301
|
"types": "./types/rt-tools-ui-kit-v2-radio-button.d.ts",
|
|
290
302
|
"default": "./fesm2022/rt-tools-ui-kit-v2-radio-button.mjs"
|
|
Binary file
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" aria-hidden="true">
|
|
2
|
+
<path
|
|
3
|
+
d="M10 6q1 6 7 7-6 1-7 7-1-6-7-7 6-1 7-7ZM18 2q.4 2.6 3 3-2.6.4-3 3-.4-2.6-3-3 2.6-.4 3-3Z"
|
|
4
|
+
fill="none"
|
|
5
|
+
stroke="currentColor"
|
|
6
|
+
stroke-width="1.94"
|
|
7
|
+
stroke-linecap="round"
|
|
8
|
+
stroke-linejoin="round" />
|
|
9
|
+
</svg>
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" aria-hidden="true">
|
|
2
|
+
<path
|
|
3
|
+
transform="rotate(180 12 12)"
|
|
4
|
+
d="M7 10l3.6-6.6a1.8 1.8 0 0 1 3.4 1.1L13.3 9H19a2 2 0 0 1 2 2.3l-1.4 8a2 2 0 0 1-2 1.7H4a1 1 0 0 1-1-1v-9a1 1 0 0 1 1-1h3ZM7 10v11"
|
|
5
|
+
fill="none"
|
|
6
|
+
stroke="currentColor"
|
|
7
|
+
stroke-width="1.94"
|
|
8
|
+
stroke-linecap="round"
|
|
9
|
+
stroke-linejoin="round" />
|
|
10
|
+
</svg>
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" aria-hidden="true">
|
|
2
|
+
<path
|
|
3
|
+
d="M7 10l3.6-6.6a1.8 1.8 0 0 1 3.4 1.1L13.3 9H19a2 2 0 0 1 2 2.3l-1.4 8a2 2 0 0 1-2 1.7H4a1 1 0 0 1-1-1v-9a1 1 0 0 1 1-1h3ZM7 10v11"
|
|
4
|
+
fill="none"
|
|
5
|
+
stroke="currentColor"
|
|
6
|
+
stroke-width="1.94"
|
|
7
|
+
stroke-linecap="round"
|
|
8
|
+
stroke-linejoin="round" />
|
|
9
|
+
</svg>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true">
|
|
2
|
+
<g transform="translate(2.0042 1.9992) scale(1.000081 1.000080) matrix(1 0 0 -1 0 20.000000)">
|
|
3
|
+
<path
|
|
4
|
+
d="M19.1333 13.7709H0.856714C0.383567 13.7709 0 14.1545 0 14.6276C0 15.1008 0.383567 15.4844 0.856714 15.4844H19.1333C19.6064 15.4844 19.99 15.1008 19.99 14.6276C19.99 14.1545 19.6064 13.7709 19.1333 13.7709ZM15.0668 0.00639854H4.92327C4.86732 0.00232915 4.80202 0 4.73621 0C3.27613 0 2.08265 1.14141 1.99936 2.58058L1.99901 2.58795V14.5705C1.99901 15.0437 2.38258 15.4272 2.85572 15.4272C3.32887 15.4272 3.71244 15.0437 3.71244 14.5705V2.58795C3.71244 2.11962 4.2493 1.7198 4.85473 1.7198H14.9982C15.6379 1.7198 16.1405 2.11959 16.1405 2.58795V14.5705C16.1405 15.0815 16.5548 15.4958 17.0658 15.4958C17.5768 15.4958 17.991 15.0815 17.991 14.5705V2.58795C17.9074 1.14138 16.7139 0 15.2539 0C15.188 0 15.1227 0.00232909 15.0581 0.00688038L15.0668 0.00639854ZM15.2038 14.8561C15.2004 14.856 15.1964 14.856 15.1923 14.856C14.7255 14.856 14.347 15.2345 14.347 15.7013C14.347 15.7053 14.3471 15.7094 14.3471 15.7134V15.7128V17.4148C14.3471 17.8831 13.7988 18.2829 13.2048 18.2829H6.81945C6.19118 18.2829 5.67715 17.8831 5.67715 17.4148V15.7128C5.67715 15.2396 5.29358 14.8561 4.82044 14.8561C4.34729 14.8561 3.96372 15.2396 3.96372 15.7128V17.4148C4.05547 18.8606 5.25056 19.9985 6.71142 19.9985C6.74941 19.9985 6.78721 19.9977 6.82483 19.9962L6.81945 19.9963H13.1706C13.213 19.9987 13.2627 20 13.3128 20C14.7741 20 15.9696 18.8613 16.0602 17.4227L16.0606 17.4148V15.7128C16.0606 15.7094 16.0606 15.7053 16.0606 15.7013C16.0606 15.2282 15.6771 14.8446 15.2039 14.8446C15.2039 14.8446 15.2039 14.8446 15.2038 14.8446V14.8561ZM6.789 5.606L11.989 10.806A0.857 0.857 0 0 0 13.201 9.594L8.001 4.394A0.857 0.857 0 0 0 6.789 5.606ZM11.989 4.394L6.789 9.594A0.857 0.857 0 0 0 8.001 10.806L13.201 5.606A0.857 0.857 0 0 0 11.989 4.394Z"
|
|
5
|
+
fill="currentColor" />
|
|
6
|
+
</g>
|
|
7
|
+
</svg>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<svg viewBox="0 0 48 48" xmlns="http://www.w3.org/2000/svg" height="24" width="24">
|
|
2
|
+
<path
|
|
3
|
+
fill="currentColor"
|
|
4
|
+
d="m38.7 17.35-2.55-5.75-5.95-2.65 5.95-2.6L38.7.85l2.45 5.5 5.95 2.6-5.95 2.65Zm0 29.75-2.55-5.55-5.95-2.6 5.95-2.6 2.55-5.8 2.45 5.8 5.95 2.6-5.95 2.6Zm-21.8-7.4-5.05-10.8-11-4.95 11-4.95L16.9 8.25 22 19l10.9 4.95L22 28.9Z" />
|
|
5
|
+
</svg>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<svg viewBox="0 0 48 48" xmlns="http://www.w3.org/2000/svg" height="24" width="24">
|
|
2
|
+
<path
|
|
3
|
+
fill="currentColor"
|
|
4
|
+
d="m38.7 17.35-2.55-5.75-5.95-2.65 5.95-2.6L38.7.85l2.45 5.5 5.95 2.6-5.95 2.65Zm0 29.75-2.55-5.55-5.95-2.6 5.95-2.6 2.55-5.8 2.45 5.8 5.95 2.6-5.95 2.6Zm-21.8-7.4-5.05-10.8-11-4.95 11-4.95L16.9 8.25 22 19l10.9 4.95L22 28.9Zm0-8.8 2.4-4.8 4.9-2.15-4.9-2.15-2.4-4.8-2.35 4.8-4.95 2.15 4.95 2.15Zm0-6.95Z" />
|
|
5
|
+
</svg>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 -960 960 960" width="24">
|
|
2
|
+
<path
|
|
3
|
+
fill="currentColor"
|
|
4
|
+
d="M242-814h472v541L447 3l-53-38q-13-9-18.5-23T370-89v-2l42-182H100q-36 0-65-29T6-368v-36q0-13 3-29.5t8-28.5l121-281q11-29 41-50t63-21Zm532 541v-541h125v541H774Z" />
|
|
5
|
+
</svg>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 -960 960 960" width="24">
|
|
2
|
+
<path
|
|
3
|
+
fill="currentColor"
|
|
4
|
+
d="M245-814h449v541L427 3l-59.18-42.4Q359-46 354.5-59 350-72 350-89v-2l42-182H103q-37 0-65.5-29.2T9-368v-35.84q0-8.99-1.5-18.57Q6-432 10-440l131-303q11.88-30.25 42.19-50.63Q213.5-814 245-814Zm365 95H232L105-415v47h392l-44 212 157-168v-395Zm0 395v-395 395Zm84 51v-95h109v-351H694v-95h204v541H694Z" />
|
|
5
|
+
</svg>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 -960 960 960" width="24">
|
|
2
|
+
<path
|
|
3
|
+
fill="currentColor"
|
|
4
|
+
d="M702-77H231v-540l267-277 52 38q13 10 19 23.5t6 31.5v1l-43 183h312q37 0 66 29t29 65v37q0 13-3.5 29.5T927-429L807-148q-12 30-42 50.5T702-77ZM171-617v540H46v-540h125Z" />
|
|
5
|
+
</svg>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 -960 960 960" width="24">
|
|
2
|
+
<path
|
|
3
|
+
fill="currentColor"
|
|
4
|
+
d="M697-77H249v-540l267-277 58.5 42.44q8.73 6.6 13.61 19.56 4.89 12.96 4.89 31v1l-43 183h289q36.6 0 65.8 28.5Q934-560 934-523v36.84q0 8.99 1 18.57 1 9.59-3 16.59L802-148q-12.47 30.33-42.39 50.67Q729.69-77 697-77Zm-365-94h378l128-304v-48H445l44-212-157 168v396Zm0-396v396-396Zm-83-50v94H139v352h110v94H45v-540h204Z" />
|
|
5
|
+
</svg>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 -960 960 960" width="24">
|
|
2
|
+
<path
|
|
3
|
+
fill="currentColor"
|
|
4
|
+
d="m363-289 117-118 118 118 60-60-117-119 117-119-60-61-118 119-117-119-60 61 117 119-117 119 60 60ZM253-95q-39.46 0-67.23-27.47Q158-149.95 158-189v-553h-58v-94h231v-48h297v48h232v94h-58v553q0 39.05-27.77 66.53Q746.46-95 707-95H253Z" />
|
|
5
|
+
</svg>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 -960 960 960" width="24">
|
|
2
|
+
<path
|
|
3
|
+
fill="currentColor"
|
|
4
|
+
d="m363-289 117-118 118 118 60-60-117-119 117-119-60-61-118 119-117-119-60 61 117 119-117 119 60 60ZM253-95q-39.46 0-67.23-27.47Q158-149.95 158-189v-553h-58v-94h231v-48h297v48h232v94h-58v553q0 39.05-27.77 66.53Q746.46-95 707-95H253Zm454-647H253v553h454v-553Zm-454 0v553-553Z" />
|
|
5
|
+
</svg>
|
|
@@ -40,8 +40,14 @@
|
|
|
40
40
|
|
|
41
41
|
- **Меню действия со списком живёт в оверлее, вне полосы.** Свойства полосы до него не доходят,
|
|
42
42
|
поэтому `--rt-action-bar-menu-*` читаются с запасным значением и задаются на корне страницы. Без
|
|
43
|
-
них меню скруглено ступенью `md
|
|
44
|
-
|
|
43
|
+
них меню скруглено ступенью `md`, отбрасывает тень карточки, держит отступ `--rt-space-2`, пункты
|
|
44
|
+
стоят без зазора, а шрифт пункта — ступень `--rt-text-sm`.
|
|
45
|
+
- **Свойства полосы и держателя задаются на любом предке.** На блоках объявлены только умолчания
|
|
46
|
+
`--rt-action-bar-*-default`, а `--rt-action-bar-*` и `--rt-action-bar-holder-*` читаются с запасным
|
|
47
|
+
значением — это ручки приложения из списка `tools/tokens-handles.json`. Объявленное на самой
|
|
48
|
+
полосе под публичным именем перебивало правило предка.
|
|
49
|
+
- **У действия значок задаётся именем кита `icon` или именем Material `glyph`;** у крестика — входом
|
|
50
|
+
`closeIcon` полосы и держателя.
|
|
45
51
|
|
|
46
52
|
## Края
|
|
47
53
|
|
|
@@ -5,30 +5,33 @@
|
|
|
5
5
|
.rt-action-bar-holder {
|
|
6
6
|
// Номер слоя берётся шкалой: номер, написанный числом в файле компонента, ни в одну
|
|
7
7
|
// шкалу не попадает, и следующий узел над страницей возьмёт тот же, о том не узнав.
|
|
8
|
-
|
|
9
|
-
--rt-action-bar-holder-
|
|
10
|
-
--rt-action-bar-holder-
|
|
11
|
-
--rt-action-bar-holder-
|
|
8
|
+
// Как у полосы: на держателе только умолчания, а приложение задаёт свойства на любом предке.
|
|
9
|
+
--rt-action-bar-holder-bottom-default: var(--rt-space-6);
|
|
10
|
+
--rt-action-bar-holder-inline-default: var(--rt-space-4);
|
|
11
|
+
--rt-action-bar-holder-enter-duration-default: 300ms;
|
|
12
|
+
--rt-action-bar-holder-leave-duration-default: 300ms;
|
|
12
13
|
|
|
13
14
|
position: fixed;
|
|
14
15
|
z-index: var(--rt-z-fixed);
|
|
15
16
|
display: flex;
|
|
16
17
|
justify-content: center;
|
|
17
|
-
inset: auto var(--rt-action-bar-holder-inline
|
|
18
|
+
inset: auto var(--rt-action-bar-holder-inline, var(--rt-action-bar-holder-inline-default))
|
|
19
|
+
var(--rt-action-bar-holder-bottom, var(--rt-action-bar-holder-bottom-default));
|
|
18
20
|
pointer-events: none;
|
|
19
21
|
|
|
20
22
|
// Полоса ловит нажатия, а держатель — нет: он тянется на всю ширину страницы, и без
|
|
21
23
|
// этого перекрыл бы всё, что лежит под ним по краям от полосы.
|
|
22
24
|
&__bar {
|
|
23
25
|
max-width: 100%;
|
|
24
|
-
animation: rt-action-bar-enter var(--rt-action-bar-holder-enter-duration);
|
|
26
|
+
animation: rt-action-bar-enter var(--rt-action-bar-holder-enter-duration, var(--rt-action-bar-holder-enter-duration-default));
|
|
25
27
|
pointer-events: auto;
|
|
26
28
|
}
|
|
27
29
|
|
|
28
30
|
// `forwards`: полоса держится за нижней кромкой до того мига, когда её снимет разметка.
|
|
29
31
|
// Без него она возвращается на место в конце ухода и успевает мигнуть на своём месте.
|
|
30
32
|
&__bar--leaving {
|
|
31
|
-
animation: rt-action-bar-leave var(--rt-action-bar-holder-leave-duration)
|
|
33
|
+
animation: rt-action-bar-leave var(--rt-action-bar-holder-leave-duration, var(--rt-action-bar-holder-leave-duration-default))
|
|
34
|
+
forwards;
|
|
32
35
|
}
|
|
33
36
|
}
|
|
34
37
|
|