From b06f76319e158c224563f1b013df04870af0aaad Mon Sep 17 00:00:00 2001 From: ichiesov Date: Thu, 24 Sep 2026 14:30:14 +0700 Subject: [PATCH 1/2] ~fix dialog sizes story --- .../dialog/examples/dialog-basic.component.ts | 16 +++-- .../dialog/examples/dialog-sizes.component.ts | 63 +++++++++++-------- 2 files changed, 49 insertions(+), 30 deletions(-) diff --git a/src/stories/components/dialog/examples/dialog-basic.component.ts b/src/stories/components/dialog/examples/dialog-basic.component.ts index 5aca054f..9b0482af 100644 --- a/src/stories/components/dialog/examples/dialog-basic.component.ts +++ b/src/stories/components/dialog/examples/dialog-basic.component.ts @@ -1,7 +1,7 @@ -import { ChangeDetectionStrategy, Component, signal } from '@angular/core'; +import { ChangeDetectionStrategy, Component, Input, signal } from '@angular/core'; import { StoryObj } from '@storybook/angular'; import { ExtraButtonComponent } from '../../../../lib/components/button/button.component'; -import { ExtraDialogComponent } from '../../../../lib/components/dialog/dialog.component'; +import { ExtraDialogComponent, ExtraDialogSize } from '../../../../lib/components/dialog/dialog.component'; import { ExtraDialogTemplateDirective } from '../../../../lib/components/dialog/dialog-template.directive'; const template = ` @@ -10,6 +10,7 @@ const template = ` ([]); @@ -43,8 +47,12 @@ export class DialogBasicComponent { } export const Basic: StoryObj = { - render: () => ({ - template: `` + args: { + size: 'default' + }, + render: (args) => ({ + props: args, + template: `` }), parameters: { docs: { diff --git a/src/stories/components/dialog/examples/dialog-sizes.component.ts b/src/stories/components/dialog/examples/dialog-sizes.component.ts index 1e21b98e..ae25b21f 100644 --- a/src/stories/components/dialog/examples/dialog-sizes.component.ts +++ b/src/stories/components/dialog/examples/dialog-sizes.component.ts @@ -1,25 +1,32 @@ import { ChangeDetectionStrategy, Component } from '@angular/core'; import { StoryObj } from '@storybook/angular'; import { ExtraButtonComponent } from '../../../../lib/components/button/button.component'; -import { ExtraDialogComponent } from '../../../../lib/components/dialog/dialog.component'; +import { ExtraDialogComponent, ExtraDialogSize } from '../../../../lib/components/dialog/dialog.component'; const template = ` -
- - - - +
+
+ @for (s of sizes; track s) { + + } +
- @for (s of sizes; track s) { - -

Окно размера {{ s }}. Содержимое одинаковое — меняется ширина окна.

-
- } +
+ +
+ + +

Окно размера {{ size }}. Содержимое одинаковое — меняется ширина окна.

+
`; @@ -31,8 +38,9 @@ const template = ` template }) export class DialogSizesComponent { - sizes = ['sm', 'default', 'lg', 'xlg']; - size: string | null = null; + sizes: ExtraDialogSize[] = ['sm', 'default', 'lg', 'xlg']; + size: ExtraDialogSize = 'default'; + visible = false; } export const Sizes: StoryObj = { @@ -42,29 +50,32 @@ export const Sizes: StoryObj = { parameters: { docs: { description: { - story: 'Размеры окна: sm, default, lg, xlg (ширина задаётся дизайн-токенами).' + story: + 'Размеры окна: sm (280px), default (350px), lg (420px), xlg (630px) — ширина задаётся дизайн-токенами. Размер выбирается до открытия: отметьте нужный и нажмите «Открыть окно». Чтобы посмотреть другой размер, закройте окно и выберите заново.' }, source: { language: 'ts', code: ` import { Component } from '@angular/core'; -import { ExtraDialogComponent } from '@cdek-it/angular-ui-kit'; +import { ExtraDialogComponent, ExtraDialogSize } from '@cdek-it/angular-ui-kit'; @Component({ selector: 'app-dialog-sizes', standalone: true, imports: [ExtraDialogComponent], template: \` - -

Маленькое окно

-
- - -

Очень широкое окно

+ +

Окно размера {{ size }}

\`, }) export class DialogSizesComponent { + size: ExtraDialogSize = 'default'; visible = false; } ` From a59b346209d51e1876731f54dd37d32f802e4d2d Mon Sep 17 00:00:00 2001 From: ichiesov Date: Thu, 24 Sep 2026 14:41:10 +0700 Subject: [PATCH 2/2] ~fluid prop to select button --- docs/components-api/selectbutton.md | 1 + .../select-button/select-button.component.ts | 9 +++ .../select-button/select-button.figma.md | 14 ++++ .../examples/select-button-fluid.component.ts | 79 +++++++++++++++++++ .../select-button/select-button.stories.ts | 17 ++++ 5 files changed, 120 insertions(+) create mode 100644 src/stories/components/select-button/examples/select-button-fluid.component.ts diff --git a/docs/components-api/selectbutton.md b/docs/components-api/selectbutton.md index 372c894d..00891a4f 100644 --- a/docs/components-api/selectbutton.md +++ b/docs/components-api/selectbutton.md @@ -12,6 +12,7 @@ | `optionLabel` | наименование поля, содержащего отображаемое значение | `string` | | `multiple` | множественный выбор | `boolean` | | `size` | размер кнопок | `sm \| base \| lg \| xlg` | +| `fluid` | растягивает группу на всю ширину контейнера | `boolean` | # События diff --git a/src/lib/components/select-button/select-button.component.ts b/src/lib/components/select-button/select-button.component.ts index 5297abd1..b8b6f5ef 100644 --- a/src/lib/components/select-button/select-button.component.ts +++ b/src/lib/components/select-button/select-button.component.ts @@ -21,6 +21,12 @@ export type ExtraSelectButtonSize = 'sm' | 'base' | 'lg' | 'xlg'; selector: 'extra-select-button', standalone: true, imports: [SelectButton, SharedModule, FormsModule], + // В обычном режиме хост остаётся inline (группа встаёт в строку рядом с другими элементами). + // В режиме fluid делаем его блоком: сам p-selectbutton — inline-flex, и без блочного хоста + // его width: 100% считается не от контейнера-родителя. + host: { + '[style.display]': "fluid ? 'block' : null" + }, template: `