diff --git a/projects/core/components/button/button.style.less b/projects/core/components/button/button.style.less index 23f8b7b6499d..7abf957d05d1 100644 --- a/projects/core/components/button/button.style.less +++ b/projects/core/components/button/button.style.less @@ -132,23 +132,27 @@ cursor: pointer; :host[data-size='xs'] & { - padding: 0 @padding-xs; + padding: 0 var(--tui-padding, @padding-xs); + + &:after { + border-width: 1px; + } } :host[data-size='s'] & { - padding: 0 @padding-s; + padding: 0 var(--tui-padding, @padding-s); } :host[data-size='m'] & { - padding: 0 @padding-m; + padding: 0 var(--tui-padding, @padding-m); } :host[data-size='l'] & { - padding: 0 @padding-l; + padding: 0 var(--tui-padding, @padding-l); } :host[data-size='xl'] & { - padding: 0 @padding-xl; + padding: 0 var(--tui-padding, @padding-xl); } :host[data-shape='square'] &, diff --git a/projects/demo/src/modules/components/button/button.component.ts b/projects/demo/src/modules/components/button/button.component.ts index dd5fab408402..cfe7f1499b36 100644 --- a/projects/demo/src/modules/components/button/button.component.ts +++ b/projects/demo/src/modules/components/button/button.component.ts @@ -48,6 +48,12 @@ export class ExampleTuiButtonComponent extends AbstractExampleTuiInteractive { HTML: import(`./examples/5/index.html?raw`), }; + readonly example6: TuiDocExample = { + TypeScript: import(`./examples/6/index.ts?raw`), + HTML: import(`./examples/6/index.html?raw`), + LESS: import(`./examples/6/index.less?raw`), + }; + readonly exampleModule = import(`./examples/import/import-module.md?raw`); readonly exampleHtml = import(`./examples/import/insert-template.md?raw`); readonly exampleOptions = import(`./examples/import/define-options.md?raw`); diff --git a/projects/demo/src/modules/components/button/button.module.ts b/projects/demo/src/modules/components/button/button.module.ts index b5b2617cedbf..fe3f67c71400 100644 --- a/projects/demo/src/modules/components/button/button.module.ts +++ b/projects/demo/src/modules/components/button/button.module.ts @@ -22,6 +22,7 @@ import {TuiButtonExample2} from './examples/2'; import {TuiButtonExample3} from './examples/3'; import {TuiButtonExample4} from './examples/4'; import {TuiButtonExample5} from './examples/5'; +import {TuiButtonExample6} from './examples/6'; @NgModule({ imports: [ @@ -49,6 +50,7 @@ import {TuiButtonExample5} from './examples/5'; TuiButtonExample3, TuiButtonExample4, TuiButtonExample5, + TuiButtonExample6, ], exports: [ExampleTuiButtonComponent], }) diff --git a/projects/demo/src/modules/components/button/button.template.html b/projects/demo/src/modules/components/button/button.template.html index d5f4e2d39567..2683a11cb434 100644 --- a/projects/demo/src/modules/components/button/button.template.html +++ b/projects/demo/src/modules/components/button/button.template.html @@ -74,6 +74,15 @@ > + + + + diff --git a/projects/demo/src/modules/components/button/examples/5/index.ts b/projects/demo/src/modules/components/button/examples/5/index.ts index 679402d0a298..030f710e9a27 100644 --- a/projects/demo/src/modules/components/button/examples/5/index.ts +++ b/projects/demo/src/modules/components/button/examples/5/index.ts @@ -1,11 +1,13 @@ import {Component} from '@angular/core'; import {changeDetection} from '@demo/emulate/change-detection'; +import {encapsulation} from '@demo/emulate/encapsulation'; import {TuiAppearance, tuiButtonOptionsProvider} from '@taiga-ui/core'; @Component({ selector: `tui-button-example-5`, templateUrl: `./index.html`, changeDetection, + encapsulation, providers: [ tuiButtonOptionsProvider({ shape: `rounded`, diff --git a/projects/demo/src/modules/components/button/examples/6/index.html b/projects/demo/src/modules/components/button/examples/6/index.html new file mode 100644 index 000000000000..f2c461f2cc87 --- /dev/null +++ b/projects/demo/src/modules/components/button/examples/6/index.html @@ -0,0 +1,30 @@ + + + + diff --git a/projects/demo/src/modules/components/button/examples/6/index.less b/projects/demo/src/modules/components/button/examples/6/index.less new file mode 100644 index 000000000000..922e7fd54e38 --- /dev/null +++ b/projects/demo/src/modules/components/button/examples/6/index.less @@ -0,0 +1,15 @@ +:host { + --tui-padding: 1.25rem; +} + +[tuiButton][data-size='m'] { + --tui-padding: 1rem; +} + +[tuiButton][data-size='s'] { + --tui-padding: 0.75rem; +} + +[tuiButton][data-size='xs'] { + --tui-padding: 0.5rem; +} diff --git a/projects/demo/src/modules/components/button/examples/6/index.ts b/projects/demo/src/modules/components/button/examples/6/index.ts new file mode 100644 index 000000000000..72a9023c1361 --- /dev/null +++ b/projects/demo/src/modules/components/button/examples/6/index.ts @@ -0,0 +1,12 @@ +import {Component} from '@angular/core'; +import {changeDetection} from '@demo/emulate/change-detection'; +import {encapsulation} from '@demo/emulate/encapsulation'; + +@Component({ + selector: `tui-button-example-6`, + templateUrl: `./index.html`, + styleUrls: [`./index.less`], + changeDetection, + encapsulation, +}) +export class TuiButtonExample6 {} diff --git a/projects/demo/src/modules/components/hosted-dropdown/examples/4/index.html b/projects/demo/src/modules/components/hosted-dropdown/examples/4/index.html new file mode 100644 index 000000000000..a529f6ad97d0 --- /dev/null +++ b/projects/demo/src/modules/components/hosted-dropdown/examples/4/index.html @@ -0,0 +1,33 @@ +
+ + + + + + + + + +
diff --git a/projects/demo/src/modules/components/hosted-dropdown/examples/4/index.ts b/projects/demo/src/modules/components/hosted-dropdown/examples/4/index.ts new file mode 100644 index 000000000000..5cb234043517 --- /dev/null +++ b/projects/demo/src/modules/components/hosted-dropdown/examples/4/index.ts @@ -0,0 +1,46 @@ +import {Component} from '@angular/core'; +import {FormControl, FormGroup} from '@angular/forms'; +import {changeDetection} from '@demo/emulate/change-detection'; +import {encapsulation} from '@demo/emulate/encapsulation'; +import {TUI_ARROW} from '@taiga-ui/kit'; + +@Component({ + selector: `tui-hosted-dropdown-example-4`, + templateUrl: `./index.html`, + changeDetection, + encapsulation, +}) +export class TuiHostedDropdownExample4 { + readonly form = new FormGroup({ + control: new FormControl([]), + }); + + open = false; + + readonly items = [`Drafts`, `In Progress`, `Completed`]; + + readonly arrow = TUI_ARROW; + + private get value(): readonly string[] { + return this.form.get(`control`)?.value || []; + } + + get appearance(): string { + return this.length ? `whiteblock-active` : `whiteblock`; + } + + get length(): number { + return this.value.length || 0; + } + + get text(): string { + switch (this.length) { + case 0: + return `Select`; + case 1: + return this.value[0]; + default: + return `${this.length} selected`; + } + } +} diff --git a/projects/demo/src/modules/components/hosted-dropdown/hosted-dropdown.component.ts b/projects/demo/src/modules/components/hosted-dropdown/hosted-dropdown.component.ts index 29e4afec6ffa..572be9c40fdd 100644 --- a/projects/demo/src/modules/components/hosted-dropdown/hosted-dropdown.component.ts +++ b/projects/demo/src/modules/components/hosted-dropdown/hosted-dropdown.component.ts @@ -38,6 +38,11 @@ export class ExampleTuiHostedDropdownComponent extends AbstractExampleTuiDropdow LESS: import(`./examples/3/index.less?raw`), }; + readonly example4: TuiDocExample = { + TypeScript: import(`./examples/4/index.ts?raw`), + HTML: import(`./examples/4/index.html?raw`), + }; + open = false; input = ``; diff --git a/projects/demo/src/modules/components/hosted-dropdown/hosted-dropdown.module.ts b/projects/demo/src/modules/components/hosted-dropdown/hosted-dropdown.module.ts index df3592f9f1c9..914a611bd499 100644 --- a/projects/demo/src/modules/components/hosted-dropdown/hosted-dropdown.module.ts +++ b/projects/demo/src/modules/components/hosted-dropdown/hosted-dropdown.module.ts @@ -3,7 +3,7 @@ import {NgModule} from '@angular/core'; import {FormsModule, ReactiveFormsModule} from '@angular/forms'; import {RouterModule} from '@angular/router'; import {TuiAddonDocModule, tuiGenerateRoutes} from '@taiga-ui/addon-doc'; -import {TuiActiveZoneModule} from '@taiga-ui/cdk'; +import {TuiActiveZoneModule, TuiPreventDefaultModule} from '@taiga-ui/cdk'; import { TuiButtonModule, TuiDataListModule, @@ -17,6 +17,7 @@ import { import { TuiDataListWrapperModule, TuiInputModule, + TuiMultiSelectModule, TuiSelectModule, TuiTabsModule, TuiToggleModule, @@ -27,6 +28,7 @@ import {DropdownDocumentationModule} from '../abstract/dropdown-documentation/dr import {TuiHostedDropdownExample1} from './examples/1'; import {TuiHostedDropdownExample2} from './examples/2'; import {TuiHostedDropdownExample3} from './examples/3'; +import {TuiHostedDropdownExample4} from './examples/4'; import {ExampleTuiHostedDropdownComponent} from './hosted-dropdown.component'; @NgModule({ @@ -51,12 +53,15 @@ import {ExampleTuiHostedDropdownComponent} from './hosted-dropdown.component'; DropdownDocumentationModule, TuiAddonDocModule, TuiToggleModule, + TuiMultiSelectModule, + TuiPreventDefaultModule, RouterModule.forChild(tuiGenerateRoutes(ExampleTuiHostedDropdownComponent)), ], declarations: [ TuiHostedDropdownExample1, TuiHostedDropdownExample2, TuiHostedDropdownExample3, + TuiHostedDropdownExample4, ExampleTuiHostedDropdownComponent, ], exports: [ExampleTuiHostedDropdownComponent], diff --git a/projects/demo/src/modules/components/hosted-dropdown/hosted-dropdown.template.html b/projects/demo/src/modules/components/hosted-dropdown/hosted-dropdown.template.html index cd12f64c75ec..734d0e1b9f39 100644 --- a/projects/demo/src/modules/components/hosted-dropdown/hosted-dropdown.template.html +++ b/projects/demo/src/modules/components/hosted-dropdown/hosted-dropdown.template.html @@ -46,6 +46,15 @@ > + + + +
diff --git a/projects/demo/src/modules/components/radio-block/examples/4/index.html b/projects/demo/src/modules/components/radio-block/examples/4/index.html new file mode 100644 index 000000000000..5f4fc3ff7522 --- /dev/null +++ b/projects/demo/src/modules/components/radio-block/examples/4/index.html @@ -0,0 +1,24 @@ +
+ + {{ item }} + + +
+
{{ form.value | json }}
diff --git a/projects/demo/src/modules/components/radio-block/examples/4/index.less b/projects/demo/src/modules/components/radio-block/examples/4/index.less new file mode 100644 index 000000000000..cde52d5312d6 --- /dev/null +++ b/projects/demo/src/modules/components/radio-block/examples/4/index.less @@ -0,0 +1,11 @@ +.control { + flex: initial; + + &._active .button { + display: inline-block; + } +} + +.button { + display: none; +} diff --git a/projects/demo/src/modules/components/radio-block/examples/4/index.ts b/projects/demo/src/modules/components/radio-block/examples/4/index.ts new file mode 100644 index 000000000000..59471570dbd9 --- /dev/null +++ b/projects/demo/src/modules/components/radio-block/examples/4/index.ts @@ -0,0 +1,18 @@ +import {Component} from '@angular/core'; +import {FormControl, FormGroup} from '@angular/forms'; +import {changeDetection} from '@demo/emulate/change-detection'; +import {encapsulation} from '@demo/emulate/encapsulation'; + +@Component({ + selector: `tui-radio-block-example-4`, + templateUrl: `./index.html`, + styleUrls: [`./index.less`], + changeDetection, + encapsulation, +}) +export class TuiRadioBlockExample4 { + readonly items = [`Kiwi`, `Orange`, `Apple`]; + readonly form = new FormGroup({ + control: new FormControl(this.items[1]), + }); +} diff --git a/projects/demo/src/modules/components/radio-block/radio-block.component.ts b/projects/demo/src/modules/components/radio-block/radio-block.component.ts index 8505314cae9a..9fe67111dd69 100644 --- a/projects/demo/src/modules/components/radio-block/radio-block.component.ts +++ b/projects/demo/src/modules/components/radio-block/radio-block.component.ts @@ -39,6 +39,11 @@ export class ExampleTuiRadioBlockComponent extends AbstractExampleTuiControl { LESS: import(`./examples/3/index.less?raw`), }; + readonly example4: TuiDocExample = { + TypeScript: import(`./examples/4/index.ts?raw`), + HTML: import(`./examples/4/index.html?raw`), + }; + readonly contentAlignVariants: readonly TuiHorizontalDirection[] = [`left`, `right`]; contentAlign: TuiHorizontalDirection = this.contentAlignVariants[1]; diff --git a/projects/demo/src/modules/components/radio-block/radio-block.module.ts b/projects/demo/src/modules/components/radio-block/radio-block.module.ts index c0e170f70b5c..b910fd5a5bd2 100644 --- a/projects/demo/src/modules/components/radio-block/radio-block.module.ts +++ b/projects/demo/src/modules/components/radio-block/radio-block.module.ts @@ -10,6 +10,7 @@ import {InheritedDocumentationModule} from '../abstract/inherited-documentation/ import {TuiRadioBlockExample1} from './examples/1'; import {TuiRadioBlockExample2} from './examples/2'; import {TuiRadioBlockExample3} from './examples/3'; +import {TuiRadioBlockExample4} from './examples/4'; import {ExampleTuiRadioBlockComponent} from './radio-block.component'; @NgModule({ @@ -31,6 +32,7 @@ import {ExampleTuiRadioBlockComponent} from './radio-block.component'; TuiRadioBlockExample1, TuiRadioBlockExample2, TuiRadioBlockExample3, + TuiRadioBlockExample4, ExampleTuiRadioBlockComponent, ], exports: [ExampleTuiRadioBlockComponent], diff --git a/projects/demo/src/modules/components/radio-block/radio-block.template.html b/projects/demo/src/modules/components/radio-block/radio-block.template.html index d4c9d52027c0..3639c3a49d0e 100644 --- a/projects/demo/src/modules/components/radio-block/radio-block.template.html +++ b/projects/demo/src/modules/components/radio-block/radio-block.template.html @@ -32,6 +32,15 @@ > + + + +