matcha-components 1.0.6 → 1.0.8
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/index.ts +1 -0
- package/package.json +1 -1
- package/src/documentation/presentation.mdx +105 -0
- package/src/foundation/borders/borders.mdx +180 -0
- package/src/foundation/colors/base/amber.mdx +12 -9
- package/src/foundation/colors/base/blue.mdx +12 -9
- package/src/foundation/colors/base/cyan.mdx +12 -9
- package/src/foundation/colors/base/deep-orange.mdx +12 -9
- package/src/foundation/colors/base/deep-purple.mdx +12 -9
- package/src/foundation/colors/base/green.mdx +12 -9
- package/src/foundation/colors/base/indigo.mdx +12 -9
- package/src/foundation/colors/base/light-blue.mdx +12 -9
- package/src/foundation/colors/base/light-green.mdx +12 -9
- package/src/foundation/colors/base/lime.mdx +12 -9
- package/src/foundation/colors/base/orange.mdx +12 -9
- package/src/foundation/colors/base/pink.mdx +12 -9
- package/src/foundation/colors/base/purple.mdx +12 -9
- package/src/foundation/colors/base/red.mdx +12 -9
- package/src/foundation/colors/base/teal.mdx +12 -9
- package/src/foundation/colors/base/yellow.mdx +12 -9
- package/src/foundation/colors/base-colors.mdx +21 -18
- package/src/foundation/colors/theme/accent.mdx +12 -9
- package/src/foundation/colors/theme/primary.mdx +12 -9
- package/src/foundation/colors/theme/warn.mdx +12 -9
- package/src/foundation/colors/theme-colors.mdx +11 -37
- package/src/foundation/spacing/margins.mdx +183 -0
- package/src/foundation/spacing/paddings.mdx +156 -0
- package/src/foundation/typography/colors.mdx +26 -0
- package/src/foundation/typography/font-size.mdx +57 -0
- package/src/foundation/typography/font-weight.mdx +65 -0
- package/src/foundation/typography/helpers.mdx +86 -0
- package/src/foundation/typography/letter-spacing.mdx +35 -0
- package/src/foundation/typography/line-height.mdx +52 -0
- package/src/foundation/typography/message-box.mdx +43 -0
- package/src/foundation/typography/text-align.mdx +22 -0
- package/src/foundation/typography/text-styles.mdx +88 -0
- package/src/lib/matcha-autocomplete/autocomplete.mdx +1 -1
- package/src/lib/matcha-autocomplete/autocomplete.stories.ts +16 -25
- package/src/lib/matcha-autocomplete/example/autocomplete-auto-active-first-option-example.css +9 -0
- package/src/lib/matcha-autocomplete/example/autocomplete-auto-active-first-option-example.html +9 -0
- package/src/lib/matcha-autocomplete/example/autocomplete-auto-active-first-option-example.ts +37 -0
- package/src/lib/matcha-autocomplete/example/autocomplete-overview-example.css +19 -0
- package/src/lib/matcha-autocomplete/example/autocomplete-overview-example.html +17 -0
- package/src/lib/matcha-autocomplete/example/autocomplete-overview-example.ts +70 -0
- package/src/lib/matcha-badge/badge.argtypes.ts +77 -0
- package/src/lib/matcha-badge/badge.directive.ts +11 -0
- package/src/lib/matcha-badge/badge.mdx +69 -0
- package/src/lib/matcha-badge/badge.module.ts +5 -10
- package/src/lib/matcha-badge/badge.stories.ts +79 -0
- package/src/lib/matcha-bottom-sheet/bottom-sheet-overview-example-sheet.html +21 -0
- package/src/lib/matcha-bottom-sheet/bottom-sheet-overview-example.component.ts +34 -0
- package/src/lib/matcha-bottom-sheet/bottom-sheet-overview-example.html +2 -0
- package/src/lib/matcha-bottom-sheet/bottom-sheet.argtypes.ts +117 -0
- package/src/lib/matcha-bottom-sheet/bottom-sheet.mdx +69 -0
- package/src/lib/matcha-bottom-sheet/bottom-sheet.module.ts +5 -10
- package/src/lib/matcha-bottom-sheet/bottom-sheet.stories.ts +39 -0
- package/src/lib/matcha-button/button-overview-example.component.ts +18 -0
- package/src/lib/matcha-button/button-overview-example.html +118 -0
- package/src/lib/matcha-button/button-overview-example.scss +31 -0
- package/src/lib/matcha-button/button.argtypes.ts +20 -0
- package/src/lib/matcha-button/button.directive.ts +39 -0
- package/src/lib/matcha-button/button.mdx +171 -0
- package/src/lib/matcha-button/button.module.ts +10 -0
- package/src/lib/matcha-button/button.stories.ts +38 -0
- package/src/lib/matcha-button-toggle/button-toggle.argtype.ts +115 -0
- package/src/lib/matcha-button-toggle/button-toggle.directive.ts +13 -0
- package/src/lib/matcha-button-toggle/button-toggle.mdx +63 -0
- package/src/lib/matcha-button-toggle/button-toggle.stories.ts +64 -0
- package/src/lib/matcha-button-toggle/matcha-button-toggle.directive.ts +0 -1
- package/src/lib/matcha-card/card-argtype.ts +54 -0
- package/src/lib/matcha-card/card-header.html +10 -0
- package/src/lib/matcha-card/card-title-group.html +12 -0
- package/src/lib/matcha-card/card.component.spec.ts +21 -0
- package/src/lib/matcha-card/card.component.ts +47 -0
- package/src/lib/matcha-card/card.mdx +43 -0
- package/src/lib/matcha-card/card.module.ts +10 -0
- package/src/lib/matcha-card/card.stories.ts +92 -0
- package/src/lib/matcha-components.module.ts +12 -47
- package/src/lib/matcha-dialog/confirmation-dialog.component.ts +39 -0
- package/src/lib/matcha-dialog/confirmation-dialog.stories.ts +21 -0
- package/src/lib/matcha-divider/divider.argtypes.ts +18 -0
- package/src/lib/matcha-divider/divider.mdx +51 -0
- package/src/lib/matcha-divider/divider.module.ts +5 -9
- package/src/lib/matcha-divider/divider.stories.ts +49 -0
- package/src/lib/matcha-elevation/elevation.argtypes.ts +16 -0
- package/src/lib/matcha-elevation/elevation.directive.ts +24 -0
- package/src/lib/matcha-elevation/elevation.mdx +50 -0
- package/src/lib/matcha-elevation/elevation.module.ts +10 -0
- package/src/lib/matcha-elevation/elevation.stories.ts +50 -0
- package/src/lib/matcha-expansion/expansion.argtypes.ts +44 -0
- package/src/lib/matcha-expansion/expansion.directive.ts +11 -0
- package/src/lib/matcha-expansion/expansion.mdx +69 -0
- package/src/lib/matcha-expansion/expansion.module.ts +10 -0
- package/src/lib/matcha-expansion/expansion.stories.ts +67 -0
- package/src/lib/matcha-forms/form-field-argtype.ts +60 -0
- package/src/lib/matcha-forms/form-field.directive.ts +11 -0
- package/src/lib/matcha-forms/form-field.mdx +20 -0
- package/src/lib/matcha-forms/{matcha-form-field.stories.ts → form-field.stories.ts} +64 -68
- package/src/lib/matcha-forms/forms.module.ts +5 -14
- package/src/lib/matcha-headers/headers.argtype.ts +14 -0
- package/src/lib/matcha-headers/headers.mdx +94 -0
- package/src/lib/matcha-headers/headers.module.ts +12 -0
- package/src/lib/matcha-headers/headers.stories.ts +88 -0
- package/src/lib/matcha-headers/headine/headline.component.html +1 -0
- package/src/lib/matcha-headers/headine/headline.component.ts +20 -0
- package/src/lib/matcha-headers/subhead/subhead.component.html +1 -0
- package/src/lib/matcha-headers/subhead/subhead.component.ts +20 -0
- package/src/lib/matcha-headers/title/title.component.html +1 -0
- package/src/lib/matcha-headers/title/title.component.ts +20 -0
- package/src/lib/matcha-icon/icon-argtype.ts +36 -0
- package/src/lib/matcha-icon/icon.component.html +3 -0
- package/src/lib/matcha-icon/icon.component.scss +0 -0
- package/src/lib/matcha-icon/icon.component.ts +34 -0
- package/src/lib/matcha-icon/icon.mdx +60 -0
- package/src/lib/matcha-icon/icon.module.ts +5 -14
- package/src/lib/matcha-icon/icon.stories.ts +423 -0
- package/src/lib/matcha-input/input.argtypes.ts +42 -0
- package/src/lib/matcha-input/input.directive.ts +11 -0
- package/src/lib/matcha-input/input.mdx +73 -0
- package/src/lib/matcha-input/input.module.ts +9 -0
- package/src/lib/matcha-input/input.stories.ts +97 -0
- package/src/lib/matcha-list/list.argtypes.ts +44 -0
- package/src/lib/matcha-list/{matcha-list.directive.ts → list.directive.ts} +3 -8
- package/src/lib/matcha-list/list.mdx +69 -0
- package/src/lib/matcha-list/list.module.ts +5 -9
- package/src/lib/matcha-list/list.stories.ts +101 -0
- package/src/lib/matcha-menu/menu.argtypes.ts +114 -0
- package/src/lib/matcha-menu/menu.mdx +59 -0
- package/src/lib/matcha-menu/menu.module.ts +5 -9
- package/src/lib/matcha-menu/menu.stories.ts +122 -0
- package/src/lib/matcha-paginator/paginator-overview-example.component.ts +13 -0
- package/src/lib/matcha-paginator/paginator-overview-example.css +0 -0
- package/src/lib/matcha-paginator/paginator-overview-example.html +1 -0
- package/src/lib/matcha-paginator/paginator.argtypes.ts +11 -0
- package/src/lib/matcha-paginator/paginator.mdx +53 -0
- package/src/lib/matcha-paginator/paginator.module.ts +5 -9
- package/src/lib/matcha-paginator/paginator.stories.ts +34 -0
- package/src/lib/matcha-progress-bar/progress-bar.mdx +1 -1
- package/src/lib/matcha-progress-spinner/progress-spinner.mdx +33 -13
- package/src/lib/matcha-progress-spinner/progress-spinner.stories.ts +8 -8
- package/src/lib/matcha-select/select.argtypes.ts +265 -0
- package/src/lib/matcha-select/{matcha-select.directive.ts → select.directive.ts} +3 -8
- package/src/lib/matcha-select/select.mdx +54 -0
- package/src/lib/matcha-select/select.module.ts +5 -7
- package/src/lib/matcha-select/select.stories.ts +164 -0
- package/src/lib/matcha-sidenav/sidenav.argtypes.ts +60 -0
- package/src/lib/matcha-sidenav/sidenav.directive.ts +11 -0
- package/src/lib/matcha-sidenav/sidenav.mdx +57 -0
- package/src/lib/matcha-sidenav/sidenav.module.ts +10 -0
- package/src/lib/matcha-sidenav/sidenav.stories.ts +79 -0
- package/src/lib/matcha-slide-toggle/slide-toggle.mdx +1 -1
- package/src/lib/matcha-slider/slider.argtypes.ts +83 -0
- package/src/lib/matcha-slider/slider.mdx +45 -0
- package/src/lib/matcha-slider/slider.stories.ts +149 -0
- package/src/lib/matcha-snackbar/snack-bar-overview-example.component.ts +23 -0
- package/src/lib/matcha-snackbar/snack-bar-overview-example.css +3 -0
- package/src/lib/matcha-snackbar/snack-bar-overview-example.html +11 -0
- package/src/lib/matcha-snackbar/snack-bar.argtypes.ts +11 -0
- package/src/lib/matcha-snackbar/snack-bar.directive.ts +11 -0
- package/src/lib/matcha-snackbar/snack-bar.mdx +53 -0
- package/src/lib/matcha-snackbar/snack-bar.module.ts +10 -0
- package/src/lib/matcha-snackbar/snack-bar.stories.ts +34 -0
- package/src/lib/matcha-sort-header/example/sort-overview-example.component.ts +67 -0
- package/src/lib/matcha-sort-header/example/sort-overview-example.css +3 -0
- package/src/lib/matcha-sort-header/example/sort-overview-example.html +21 -0
- package/src/lib/matcha-sort-header/sort-header.argtypes.ts +11 -0
- package/src/lib/matcha-sort-header/sort-header.mdx +78 -0
- package/src/lib/matcha-sort-header/sort-header.module.ts +5 -7
- package/src/lib/matcha-sort-header/sort-header.stories.ts +34 -0
- package/src/lib/matcha-stepper/stepper.argtypes.ts +92 -0
- package/src/lib/matcha-stepper/stepper.mdx +68 -0
- package/src/lib/matcha-stepper/stepper.module.ts +5 -7
- package/src/lib/matcha-stepper/stepper.stories.ts +163 -0
- package/src/lib/matcha-table/example/table-basic-example.component.ts +37 -0
- package/src/lib/matcha-table/example/table-basic-example.css +0 -0
- package/src/lib/matcha-table/example/table-basic-example.html +35 -0
- package/src/lib/matcha-table/table.argtypes.ts +11 -0
- package/src/lib/matcha-table/table.mdx +78 -0
- package/src/lib/matcha-table/table.module.ts +5 -7
- package/src/lib/matcha-table/table.stories.ts +34 -0
- package/src/lib/matcha-tabs/tabs.argtypes.ts +11 -0
- package/src/lib/matcha-tabs/tabs.mdx +69 -0
- package/src/lib/matcha-tabs/tabs.module.ts +5 -11
- package/src/lib/matcha-tabs/tabs.stories.ts +49 -0
- package/src/lib/matcha-toolbar/toolbar.argtypes.ts +20 -0
- package/src/lib/matcha-toolbar/toolbar.directive.ts +11 -0
- package/src/lib/matcha-toolbar/toolbar.mdx +57 -0
- package/src/lib/matcha-toolbar/toolbar.module.ts +10 -0
- package/src/lib/matcha-toolbar/toolbar.stories.ts +100 -0
- package/src/lib/matcha-tooltip/tooltip.argtypes.ts +11 -0
- package/src/lib/matcha-tooltip/tooltip.mdx +69 -0
- package/src/lib/matcha-tooltip/tooltip.module.ts +5 -7
- package/src/lib/matcha-tooltip/tooltip.stories.ts +79 -0
- package/src/lib/matcha-tree/tree.argtypes.ts +42 -0
- package/src/lib/matcha-tree/tree.mdx +49 -0
- package/src/lib/matcha-tree/tree.module.ts +5 -7
- package/src/lib/matcha-tree/tree.stories.ts +130 -0
- package/src/public-api.ts +27 -28
- package/src/lib/matcha-badge/matcha-badge.directive.ts +0 -16
- package/src/lib/matcha-buttons/buttons.module.ts +0 -27
- package/src/lib/matcha-buttons/matcha-btn-md.directive.ts +0 -16
- package/src/lib/matcha-buttons/matcha-btn-pill.directive.ts +0 -15
- package/src/lib/matcha-buttons/matcha-btn-size.directive.ts +0 -17
- package/src/lib/matcha-buttons/matcha-btn-xl.directive.ts +0 -15
- package/src/lib/matcha-card/card.mdx.txt +0 -55
- package/src/lib/matcha-card/matcha-card-argtype.ts +0 -123
- package/src/lib/matcha-card/matcha-card-content/matcha-card-content.component.html +0 -3
- package/src/lib/matcha-card/matcha-card-content/matcha-card-content.component.spec.ts +0 -21
- package/src/lib/matcha-card/matcha-card-content/matcha-card-content.component.ts +0 -10
- package/src/lib/matcha-card/matcha-card-footer/matcha-card-footer.component.html +0 -3
- package/src/lib/matcha-card/matcha-card-footer/matcha-card-footer.component.spec.ts +0 -21
- package/src/lib/matcha-card/matcha-card-footer/matcha-card-footer.component.ts +0 -10
- package/src/lib/matcha-card/matcha-card-header/matcha-card-header.component.html +0 -4
- package/src/lib/matcha-card/matcha-card-header/matcha-card-header.component.spec.ts +0 -21
- package/src/lib/matcha-card/matcha-card-header/matcha-card-header.component.ts +0 -10
- package/src/lib/matcha-card/matcha-card.component.scss +0 -117
- package/src/lib/matcha-card/matcha-card.component.spec.ts +0 -21
- package/src/lib/matcha-card/matcha-card.component.ts +0 -43
- package/src/lib/matcha-card/matcha-card.module.ts +0 -27
- package/src/lib/matcha-card/matcha-card.stories.ts +0 -80
- package/src/lib/matcha-expansion-panel/expansion-panel.module.ts +0 -14
- package/src/lib/matcha-expansion-panel/matcha-expansion-panel.directive.ts +0 -16
- package/src/lib/matcha-forms/matcha-form-field-appearance.directive.ts +0 -16
- package/src/lib/matcha-forms/matcha-form-field-argtype.ts +0 -73
- package/src/lib/matcha-forms/matcha-form-field.mdx +0 -284
- package/src/lib/matcha-forms/matcha-form-input-text.directive.ts +0 -16
- package/src/lib/matcha-icon/matcha-icon-position-pos.directive.ts +0 -15
- package/src/lib/matcha-icon/matcha-icon-position-pre.directive.ts +0 -15
- package/src/lib/matcha-menu/menu.stories.txt +0 -76
- package/src/lib/matcha-snackbar/matcha-snackbar.directive.ts +0 -16
- package/src/lib/matcha-snackbar/snackbar.module.ts +0 -12
- package/src/lib/matcha-title/matcha-title.component.html +0 -33
- package/src/lib/matcha-title/matcha-title.component.spec.ts +0 -21
- package/src/lib/matcha-title/matcha-title.component.ts +0 -24
- package/src/lib/matcha-title/matcha-title.module.ts +0 -18
- /package/src/lib/matcha-bottom-sheet/{matcha-bottom-sheet.directive.ts → bottom-sheet.directive.ts} +0 -0
- /package/src/lib/{matcha-buttons/button.stories.ts → matcha-button/button.stories.ts.TXT} +0 -0
- /package/src/lib/matcha-card/{matcha-card.component.html → card.component.html} +0 -0
- /package/src/lib/matcha-card/{matcha-card-content/matcha-card-content.component.scss → card.component.scss} +0 -0
- /package/src/lib/matcha-divider/{matcha-divider.directive.ts → divider.directive.ts} +0 -0
- /package/src/lib/{matcha-card/matcha-card-footer/matcha-card-footer.component.scss → matcha-headers/headine/headline.component.scss} +0 -0
- /package/src/lib/{matcha-card/matcha-card-header/matcha-card-header.component.scss → matcha-headers/subhead/subhead.component.scss} +0 -0
- /package/src/lib/{matcha-title/matcha-title.component.scss → matcha-headers/title/title.component.scss} +0 -0
- /package/src/lib/matcha-menu/{matcha-menu.directive.ts → menu.directive.ts} +0 -0
- /package/src/lib/matcha-paginator/{matcha-paginator.directive.ts → paginator.directive.ts} +0 -0
- /package/src/lib/matcha-sort-header/{matcha-sort-header.directive.ts → sort-header.directive.ts} +0 -0
- /package/src/lib/matcha-stepper/{matcha-stepper.directive.ts → stepper.directive.ts} +0 -0
- /package/src/lib/matcha-table/{matcha-table.directive.ts → table.directive.ts} +0 -0
- /package/src/lib/matcha-tabs/{matcha-tabs.directive.ts → tabs.directive.ts} +0 -0
- /package/src/lib/matcha-tooltip/{matcha-tooltip.directive.ts → tooltip.directive.ts} +0 -0
- /package/src/lib/matcha-tree/{matcha-tree.directive.ts → tree.directive.ts} +0 -0
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { applicationConfig, Meta, moduleMetadata, StoryObj } from '@storybook/angular';
|
|
2
|
+
import { NgIf, NgFor, AsyncPipe, JsonPipe } from '@angular/common';
|
|
3
|
+
import { CommonModule } from '@angular/common';
|
|
4
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
5
|
+
import { MatBadgeModule } from '@angular/material/badge';
|
|
6
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
7
|
+
import { provideAnimations } from '@angular/platform-browser/animations';
|
|
8
|
+
import { badgeArgtypes } from './badge.argtypes';
|
|
9
|
+
|
|
10
|
+
export default {
|
|
11
|
+
title: 'Atoms / Badge',
|
|
12
|
+
decorators: [
|
|
13
|
+
applicationConfig({
|
|
14
|
+
providers: [provideAnimations()],
|
|
15
|
+
}),
|
|
16
|
+
|
|
17
|
+
moduleMetadata({
|
|
18
|
+
imports: [CommonModule, MatIconModule, MatBadgeModule, MatButtonModule, NgIf, JsonPipe, NgFor, AsyncPipe],
|
|
19
|
+
}),
|
|
20
|
+
],
|
|
21
|
+
args: {
|
|
22
|
+
matBadgeColor: 'primary',
|
|
23
|
+
},
|
|
24
|
+
argTypes: badgeArgtypes,
|
|
25
|
+
parameters: {
|
|
26
|
+
controls: { expanded: true },
|
|
27
|
+
},
|
|
28
|
+
} as Meta;
|
|
29
|
+
|
|
30
|
+
let hidden = false;
|
|
31
|
+
function toggleBadgeVisibility() {
|
|
32
|
+
hidden = !hidden;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export const BadgeOverview: StoryObj = {
|
|
36
|
+
render: (args) => ({
|
|
37
|
+
props: {
|
|
38
|
+
...args,
|
|
39
|
+
},
|
|
40
|
+
template: `
|
|
41
|
+
<div class="d-flex-column w-500 gap-16">
|
|
42
|
+
<div class="d-flex">
|
|
43
|
+
<div matBadge="4" matBadgeOverlap="false" class="demo-section">Text with a badge</div>
|
|
44
|
+
</div>
|
|
45
|
+
<div class="d-flex">
|
|
46
|
+
<div matBadge="1" matBadgeSize="large" class="demo-section">Text with large badge</div>
|
|
47
|
+
</div>
|
|
48
|
+
<div class="d-flex">
|
|
49
|
+
<div class="demo-section">
|
|
50
|
+
Button with a badge on the left
|
|
51
|
+
<button mat-raised-button [color]="color"
|
|
52
|
+
matBadge="8" matBadgePosition="before" matBadgeColor="accent">
|
|
53
|
+
Action
|
|
54
|
+
</button>
|
|
55
|
+
</div>
|
|
56
|
+
</div>
|
|
57
|
+
<div class="d-flex">
|
|
58
|
+
<div class="demo-section">
|
|
59
|
+
Button toggles badge visibility
|
|
60
|
+
<button mat-raised-button matBadge="7" [matBadgeHidden]="hidden" (click)="toggleBadgeVisibility()">
|
|
61
|
+
Hide
|
|
62
|
+
</button>
|
|
63
|
+
</div>
|
|
64
|
+
</div>
|
|
65
|
+
<div class="d-flex">
|
|
66
|
+
<div class="demo-section">
|
|
67
|
+
Icon with a badge
|
|
68
|
+
<span class="i-matcha-home" matBadge="15" matBadgeColor="warn"></span>
|
|
69
|
+
<!-- Include text description of the icon's meaning for screen-readers -->
|
|
70
|
+
<span class="cdk-visually-hidden">
|
|
71
|
+
Example with a home icon with overlaid badge showing the number 15
|
|
72
|
+
</span>
|
|
73
|
+
</div>
|
|
74
|
+
</div>
|
|
75
|
+
</div>
|
|
76
|
+
`,
|
|
77
|
+
}),
|
|
78
|
+
name: ' Badge Overview',
|
|
79
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<mat-nav-list>
|
|
2
|
+
<a href="https://keep.google.com/" mat-list-item (click)="openLink($event)">
|
|
3
|
+
<span matListItemTitle>Google Keep</span>
|
|
4
|
+
<span matLine>Add to a note</span>
|
|
5
|
+
</a>
|
|
6
|
+
|
|
7
|
+
<a href="https://docs.google.com/" mat-list-item (click)="openLink($event)">
|
|
8
|
+
<span matListItemTitle>Google Docs</span>
|
|
9
|
+
<span matLine>Embed in a document</span>
|
|
10
|
+
</a>
|
|
11
|
+
|
|
12
|
+
<a href="https://plus.google.com/" mat-list-item (click)="openLink($event)">
|
|
13
|
+
<span matListItemTitle>Google Plus</span>
|
|
14
|
+
<span matLine>Share with your friends</span>
|
|
15
|
+
</a>
|
|
16
|
+
|
|
17
|
+
<a href="https://hangouts.google.com/" mat-list-item (click)="openLink($event)">
|
|
18
|
+
<span matListItemTitle>Google Hangouts</span>
|
|
19
|
+
<span matLine>Show to your coworkers</span>
|
|
20
|
+
</a>
|
|
21
|
+
</mat-nav-list>
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { MatBottomSheet, MatBottomSheetModule, MatBottomSheetRef } from '@angular/material/bottom-sheet';
|
|
3
|
+
import { MatListModule } from '@angular/material/list';
|
|
4
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
5
|
+
|
|
6
|
+
@Component({
|
|
7
|
+
selector: 'bottom-sheet-overview-example',
|
|
8
|
+
template: `<p>You have received a file called "cat-picture.jpeg".</p>
|
|
9
|
+
<button mat-raised-button (click)="openBottomSheet()">Open file</button>`,
|
|
10
|
+
standalone: true,
|
|
11
|
+
imports: [MatButtonModule, MatBottomSheetModule],
|
|
12
|
+
})
|
|
13
|
+
export class BottomSheetOverviewExample {
|
|
14
|
+
constructor(private _bottomSheet: MatBottomSheet) {}
|
|
15
|
+
|
|
16
|
+
openBottomSheet(): void {
|
|
17
|
+
this._bottomSheet.open(BottomSheetOverviewExampleSheet);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
@Component({
|
|
22
|
+
selector: 'bottom-sheet-overview-example-sheet',
|
|
23
|
+
templateUrl: 'bottom-sheet-overview-example-sheet.html',
|
|
24
|
+
standalone: true,
|
|
25
|
+
imports: [MatListModule],
|
|
26
|
+
})
|
|
27
|
+
export class BottomSheetOverviewExampleSheet {
|
|
28
|
+
constructor(private _bottomSheetRef: MatBottomSheetRef<BottomSheetOverviewExampleSheet>) {}
|
|
29
|
+
|
|
30
|
+
openLink(event: MouseEvent): void {
|
|
31
|
+
this._bottomSheetRef.dismiss();
|
|
32
|
+
event.preventDefault();
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
export const bottomSheetArgtypes = {
|
|
2
|
+
ariaLabel: {
|
|
3
|
+
description: 'Aria label to assign to the bottom sheet element.',
|
|
4
|
+
control: 'text',
|
|
5
|
+
defaultValue: null,
|
|
6
|
+
table: {
|
|
7
|
+
type: { summary: 'string | null' },
|
|
8
|
+
},
|
|
9
|
+
},
|
|
10
|
+
ariaModal: {
|
|
11
|
+
description: 'Whether this is a modal bottom sheet. Used to set the aria-modal attribute.',
|
|
12
|
+
control: 'boolean',
|
|
13
|
+
defaultValue: false,
|
|
14
|
+
table: {
|
|
15
|
+
type: { summary: 'boolean' },
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
autoFocus: {
|
|
19
|
+
description: 'Where the bottom sheet should focus on open.',
|
|
20
|
+
control: 'select',
|
|
21
|
+
options: ['auto', 'first-tabbable', 'manual', 'none'],
|
|
22
|
+
defaultValue: 'auto',
|
|
23
|
+
table: {
|
|
24
|
+
type: { summary: 'AutoFocusTarget | string | boolean' },
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
backdropClass: {
|
|
28
|
+
description: 'Custom class for the backdrop.',
|
|
29
|
+
control: 'text',
|
|
30
|
+
defaultValue: '',
|
|
31
|
+
table: {
|
|
32
|
+
type: { summary: 'string' },
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
closeOnNavigation: {
|
|
36
|
+
description: 'Whether the bottom sheet should close when the user goes backwards/forwards in history.',
|
|
37
|
+
control: 'boolean',
|
|
38
|
+
defaultValue: true,
|
|
39
|
+
table: {
|
|
40
|
+
type: { summary: 'boolean' },
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
data: {
|
|
44
|
+
description: 'Data being injected into the child component.',
|
|
45
|
+
control: 'object',
|
|
46
|
+
defaultValue: null,
|
|
47
|
+
table: {
|
|
48
|
+
type: { summary: 'D | null' },
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
direction: {
|
|
52
|
+
description: 'Text layout direction for the bottom sheet.',
|
|
53
|
+
control: 'select',
|
|
54
|
+
options: ['ltr', 'rtl'],
|
|
55
|
+
defaultValue: 'ltr',
|
|
56
|
+
table: {
|
|
57
|
+
type: { summary: 'Direction' },
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
disableClose: {
|
|
61
|
+
description: 'Whether the user can use escape or clicking outside to close the bottom sheet.',
|
|
62
|
+
control: 'boolean',
|
|
63
|
+
defaultValue: false,
|
|
64
|
+
table: {
|
|
65
|
+
type: { summary: 'boolean' },
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
hasBackdrop: {
|
|
69
|
+
description: 'Whether the bottom sheet has a backdrop.',
|
|
70
|
+
control: 'boolean',
|
|
71
|
+
defaultValue: true,
|
|
72
|
+
table: {
|
|
73
|
+
type: { summary: 'boolean' },
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
panelClass: {
|
|
77
|
+
description: 'Extra CSS classes to be added to the bottom sheet container.',
|
|
78
|
+
control: 'text',
|
|
79
|
+
defaultValue: '',
|
|
80
|
+
table: {
|
|
81
|
+
type: { summary: 'string | string[]' },
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
restoreFocus: {
|
|
85
|
+
description: "Whether the bottom sheet should restore focus to the previously-focused element, after it's closed.",
|
|
86
|
+
control: 'boolean',
|
|
87
|
+
defaultValue: true,
|
|
88
|
+
table: {
|
|
89
|
+
type: { summary: 'boolean' },
|
|
90
|
+
},
|
|
91
|
+
},
|
|
92
|
+
scrollStrategy: {
|
|
93
|
+
description: 'Scroll strategy to be used for the bottom sheet.',
|
|
94
|
+
control: 'text',
|
|
95
|
+
defaultValue: 'reposition',
|
|
96
|
+
table: {
|
|
97
|
+
type: { summary: 'ScrollStrategy' },
|
|
98
|
+
},
|
|
99
|
+
},
|
|
100
|
+
viewContainerRef: {
|
|
101
|
+
description: 'The view container to place the overlay for the bottom sheet into.',
|
|
102
|
+
control: 'object',
|
|
103
|
+
defaultValue: null,
|
|
104
|
+
table: {
|
|
105
|
+
type: { summary: 'ViewContainerRef' },
|
|
106
|
+
},
|
|
107
|
+
},
|
|
108
|
+
color: {
|
|
109
|
+
description: 'Theme color palette',
|
|
110
|
+
control: 'select',
|
|
111
|
+
defaultValue: 'accent',
|
|
112
|
+
table: {
|
|
113
|
+
defaultValue: { summary: 'accent' },
|
|
114
|
+
},
|
|
115
|
+
options: ['primary', 'accent', 'warn'],
|
|
116
|
+
},
|
|
117
|
+
};
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { Story } from "@storybook/blocks";
|
|
2
|
+
import { Meta } from "@storybook/addon-docs";
|
|
3
|
+
import * as ComponentStories from "./bottom-sheet.stories";
|
|
4
|
+
|
|
5
|
+
<Meta title="Atoms / BottomSheet / Documentação" />
|
|
6
|
+
|
|
7
|
+
# BottomSheet
|
|
8
|
+
|
|
9
|
+
> _bottomSheet_ "ESCREVER DEFINIÇÃO DO ATÔMICO"
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
### Modes
|
|
14
|
+
|
|
15
|
+
<div class="d-flex-column gap-16">
|
|
16
|
+
<div class="d-flex-column">
|
|
17
|
+
<div class="matcha-card background-surface d-flex-column gap-16">
|
|
18
|
+
<span class="h5">BottomSheet overview</span>
|
|
19
|
+
<div class="matcha-card background-bg">
|
|
20
|
+
<Story of={ComponentStories.BottomSheetOverview} />
|
|
21
|
+
</div>
|
|
22
|
+
|
|
23
|
+
<div class="d-flex-column">
|
|
24
|
+
|
|
25
|
+
```html
|
|
26
|
+
<div matBottomSheet="4" matBottomSheetOverlap="false" class="demo-section">Text with a badge</div>
|
|
27
|
+
|
|
28
|
+
<div matBottomSheet="1" matBottomSheetSize="large" class="demo-section">Text with large badge</div>
|
|
29
|
+
|
|
30
|
+
<div class="demo-section">
|
|
31
|
+
Button with a badge on the left
|
|
32
|
+
<button mat-raised-button color="primary"
|
|
33
|
+
matBottomSheet="8" matBottomSheetPosition="before" matBottomSheetColor="accent">
|
|
34
|
+
Action
|
|
35
|
+
</button>
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
<div class="demo-section">
|
|
39
|
+
Button toggles badge visibility
|
|
40
|
+
<button mat-raised-button matBottomSheet="7" [matBottomSheetHidden]="hidden" (click)="toggleBottomSheetVisibility()">
|
|
41
|
+
Hide
|
|
42
|
+
</button>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
<div class="demo-section">
|
|
46
|
+
Icon with a badge
|
|
47
|
+
<mat-icon matBottomSheet="15" matBottomSheetColor="warn">home</mat-icon>
|
|
48
|
+
<!-- Include text description of the icon's meaning for screen-readers -->
|
|
49
|
+
<span class="cdk-visually-hidden">
|
|
50
|
+
Example with a home icon with overlaid badge showing the number 15
|
|
51
|
+
</span>
|
|
52
|
+
</div>
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
</div>
|
|
56
|
+
</div>
|
|
57
|
+
</div>
|
|
58
|
+
|
|
59
|
+
</div>
|
|
60
|
+
|
|
61
|
+
<br />
|
|
62
|
+
|
|
63
|
+
### Installation
|
|
64
|
+
|
|
65
|
+
`import {MatBottomSheetModule} from '@angular/material/bottom-sheet';`
|
|
66
|
+
|
|
67
|
+
[Official documentation](https://https://material.angular.io/components/bottom-sheet/overview)
|
|
68
|
+
|
|
69
|
+
<br />
|
|
@@ -1,14 +1,9 @@
|
|
|
1
1
|
import { NgModule } from '@angular/core';
|
|
2
|
-
import { MatchaBottomSheetDirective } from './
|
|
2
|
+
import { MatchaBottomSheetDirective } from './bottom-sheet.directive';
|
|
3
3
|
|
|
4
4
|
@NgModule({
|
|
5
|
-
declarations: [
|
|
6
|
-
|
|
7
|
-
],
|
|
8
|
-
imports: [
|
|
9
|
-
],
|
|
10
|
-
exports: [
|
|
11
|
-
MatchaBottomSheetDirective
|
|
12
|
-
]
|
|
5
|
+
declarations: [MatchaBottomSheetDirective],
|
|
6
|
+
imports: [],
|
|
7
|
+
exports: [MatchaBottomSheetDirective],
|
|
13
8
|
})
|
|
14
|
-
export class MatchaBottomSheetModule {
|
|
9
|
+
export class MatchaBottomSheetModule {}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { applicationConfig, Meta, moduleMetadata, StoryObj } from '@storybook/angular';
|
|
2
|
+
import { NgIf, NgFor, AsyncPipe, JsonPipe } from '@angular/common';
|
|
3
|
+
import { CommonModule } from '@angular/common';
|
|
4
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
5
|
+
import { MatListModule } from '@angular/material/list';
|
|
6
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
7
|
+
import { provideAnimations } from '@angular/platform-browser/animations';
|
|
8
|
+
import { bottomSheetArgtypes } from './bottom-sheet.argtypes';
|
|
9
|
+
import { BottomSheetOverviewExample } from './bottom-sheet-overview-example.component';
|
|
10
|
+
import { MatchaBottomSheetModule } from './bottom-sheet.module';
|
|
11
|
+
|
|
12
|
+
export default {
|
|
13
|
+
title: 'Atoms / BottomSheet',
|
|
14
|
+
component: BottomSheetOverviewExample,
|
|
15
|
+
decorators: [
|
|
16
|
+
applicationConfig({
|
|
17
|
+
providers: [provideAnimations()],
|
|
18
|
+
}),
|
|
19
|
+
|
|
20
|
+
moduleMetadata({
|
|
21
|
+
imports: [CommonModule, MatIconModule, MatButtonModule, MatchaBottomSheetModule, NgIf, JsonPipe, MatListModule, NgFor, AsyncPipe],
|
|
22
|
+
declarations: [],
|
|
23
|
+
}),
|
|
24
|
+
],
|
|
25
|
+
args: {},
|
|
26
|
+
argTypes: bottomSheetArgtypes,
|
|
27
|
+
parameters: {
|
|
28
|
+
controls: { expanded: true },
|
|
29
|
+
},
|
|
30
|
+
} as Meta;
|
|
31
|
+
|
|
32
|
+
export const BottomSheetOverview: StoryObj<BottomSheetOverviewExample> = {
|
|
33
|
+
render: (args) => ({
|
|
34
|
+
props: {
|
|
35
|
+
...args,
|
|
36
|
+
},
|
|
37
|
+
}),
|
|
38
|
+
name: 'BottomSheet Overview',
|
|
39
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
3
|
+
import { MatDividerModule } from '@angular/material/divider';
|
|
4
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
5
|
+
import { MatchaButtonModule } from './button.module';
|
|
6
|
+
import { MatchaIconModule } from '../matcha-icon/icon.module';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @title Basic buttons
|
|
10
|
+
*/
|
|
11
|
+
@Component({
|
|
12
|
+
selector: 'button-overview-example',
|
|
13
|
+
templateUrl: 'button-overview-example.html',
|
|
14
|
+
styleUrls: ['button-overview-example.scss'],
|
|
15
|
+
standalone: true,
|
|
16
|
+
imports: [MatButtonModule, MatDividerModule, MatIconModule, MatchaButtonModule, MatchaIconModule],
|
|
17
|
+
})
|
|
18
|
+
export class ButtonOverviewExample {}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
<section>
|
|
2
|
+
<div class="example-label">Basic</div>
|
|
3
|
+
<div class="example-button-row">
|
|
4
|
+
<button matcha-button [size]="size" [pill]="pill" mat-button matcha-btn-xl>Basic</button>
|
|
5
|
+
<button matcha-button [size]="size" [pill]="pill" mat-button [color]="color">{{color}}</button>
|
|
6
|
+
<button matcha-button [size]="size" [pill]="pill" mat-button disabled>Disabled</button>
|
|
7
|
+
<a matcha-button [size]="size" [pill]="pill" mat-button href="https://www.google.com/" target="_blank">Link</a>
|
|
8
|
+
</div>
|
|
9
|
+
</section>
|
|
10
|
+
<mat-divider></mat-divider>
|
|
11
|
+
<section>
|
|
12
|
+
<div class="example-label">Raised</div>
|
|
13
|
+
<div class="example-button-row">
|
|
14
|
+
<button matcha-button [size]="size" [pill]="pill" mat-raised-button>Basic</button>
|
|
15
|
+
<button matcha-button [size]="size" [pill]="pill" mat-raised-button [color]="color">{{color}}</button>
|
|
16
|
+
<button matcha-button [size]="size" [pill]="pill" mat-raised-button disabled>Disabled</button>
|
|
17
|
+
<a matcha-button [size]="size" [pill]="pill" mat-raised-button href="https://www.google.com/" target="_blank">Link</a>
|
|
18
|
+
</div>
|
|
19
|
+
</section>
|
|
20
|
+
<mat-divider></mat-divider>
|
|
21
|
+
<section>
|
|
22
|
+
<div class="example-label">Stroked</div>
|
|
23
|
+
<div class="example-button-row">
|
|
24
|
+
<button matcha-button [size]="size" [pill]="pill" mat-stroked-button>Basic</button>
|
|
25
|
+
<button matcha-button [size]="size" [pill]="pill" mat-stroked-button [color]="color">{{color}}</button>
|
|
26
|
+
<button matcha-button [size]="size" [pill]="pill" mat-stroked-button disabled>Disabled</button>
|
|
27
|
+
<a matcha-button [size]="size" [pill]="pill" mat-stroked-button href="https://www.google.com/" target="_blank">Link</a>
|
|
28
|
+
</div>
|
|
29
|
+
</section>
|
|
30
|
+
<mat-divider></mat-divider>
|
|
31
|
+
<section>
|
|
32
|
+
<div class="example-label">Flat</div>
|
|
33
|
+
<div class="example-button-row">
|
|
34
|
+
<button matcha-button [size]="size" [pill]="pill" mat-flat-button>Basic</button>
|
|
35
|
+
<button matcha-button [size]="size" [pill]="pill" mat-flat-button [color]="color">{{color}}</button>
|
|
36
|
+
<button matcha-button [size]="size" [pill]="pill" mat-flat-button disabled>Disabled</button>
|
|
37
|
+
<a matcha-button [size]="size" [pill]="pill" mat-flat-button href="https://www.google.com/" target="_blank">Link</a>
|
|
38
|
+
</div>
|
|
39
|
+
</section>
|
|
40
|
+
<mat-divider></mat-divider>
|
|
41
|
+
<section>
|
|
42
|
+
<div class="example-label">Icon</div>
|
|
43
|
+
<div class="example-button-row">
|
|
44
|
+
<div class="example-flex-container">
|
|
45
|
+
<button mat-icon-button aria-label="Example icon button with a vertical three dot icon">
|
|
46
|
+
<matcha-icon [size]="size" icon="action_options"></matcha-icon>
|
|
47
|
+
</button>
|
|
48
|
+
<button mat-icon-button color="primary" aria-label="Example icon button with a home icon">
|
|
49
|
+
<matcha-icon [size]="size" icon="home"></matcha-icon>
|
|
50
|
+
</button>
|
|
51
|
+
<button mat-icon-button color="accent" aria-label="Example icon button with a menu icon">
|
|
52
|
+
<matcha-icon [size]="size" icon="menu"></matcha-icon>
|
|
53
|
+
</button>
|
|
54
|
+
<button mat-icon-button color="warn" aria-label="Example icon button with a heart icon">
|
|
55
|
+
<matcha-icon [size]="size" icon="favorite"></matcha-icon>
|
|
56
|
+
</button>
|
|
57
|
+
<button mat-icon-button disabled aria-label="Example icon button with a open in new tab icon">
|
|
58
|
+
<matcha-icon [size]="size" icon="smile"></matcha-icon>
|
|
59
|
+
</button>
|
|
60
|
+
</div>
|
|
61
|
+
</div>
|
|
62
|
+
</section>
|
|
63
|
+
<mat-divider></mat-divider>
|
|
64
|
+
<section>
|
|
65
|
+
<div class="example-label">FAB</div>
|
|
66
|
+
<div class="example-button-row">
|
|
67
|
+
<div class="example-flex-container">
|
|
68
|
+
<div class="example-button-container">
|
|
69
|
+
<button mat-fab color="primary" aria-label="Example icon button with a delete icon">
|
|
70
|
+
<matcha-icon [size]="size" icon="home"></matcha-icon>
|
|
71
|
+
</button>
|
|
72
|
+
</div>
|
|
73
|
+
<div class="example-button-container">
|
|
74
|
+
<button mat-fab color="accent" aria-label="Example icon button with a bookmark icon">
|
|
75
|
+
<matcha-icon [size]="size" icon="menu"></matcha-icon>
|
|
76
|
+
</button>
|
|
77
|
+
</div>
|
|
78
|
+
<div class="example-button-container">
|
|
79
|
+
<button mat-fab color="warn" aria-label="Example icon button with a home icon">
|
|
80
|
+
<matcha-icon [size]="size" icon="favorite"></matcha-icon>
|
|
81
|
+
</button>
|
|
82
|
+
</div>
|
|
83
|
+
<div class="example-button-container">
|
|
84
|
+
<button mat-fab disabled aria-label="Example icon button with a heart icon">
|
|
85
|
+
<matcha-icon [size]="size" icon="smile"></matcha-icon>
|
|
86
|
+
</button>
|
|
87
|
+
</div>
|
|
88
|
+
</div>
|
|
89
|
+
</div>
|
|
90
|
+
</section>
|
|
91
|
+
<mat-divider></mat-divider>
|
|
92
|
+
<section>
|
|
93
|
+
<div class="example-label">Mini FAB</div>
|
|
94
|
+
<div class="example-button-row">
|
|
95
|
+
<div class="example-flex-container">
|
|
96
|
+
<div class="example-button-container">
|
|
97
|
+
<button mat-mini-fab color="primary" aria-label="Example icon button with a menu icon">
|
|
98
|
+
<matcha-icon [size]="size" icon="home"></matcha-icon>
|
|
99
|
+
</button>
|
|
100
|
+
</div>
|
|
101
|
+
<div class="example-button-container">
|
|
102
|
+
<button mat-mini-fab color="accent" aria-label="Example icon button with a plus one icon">
|
|
103
|
+
<matcha-icon [size]="size" icon="menu"></matcha-icon>
|
|
104
|
+
</button>
|
|
105
|
+
</div>
|
|
106
|
+
<div class="example-button-container">
|
|
107
|
+
<button mat-mini-fab color="warn" aria-label="Example icon button with a filter list icon">
|
|
108
|
+
<matcha-icon [size]="size" icon="favorite"></matcha-icon>
|
|
109
|
+
</button>
|
|
110
|
+
</div>
|
|
111
|
+
<div class="example-button-container">
|
|
112
|
+
<button mat-mini-fab disabled aria-label="Example icon button with a home icon">
|
|
113
|
+
<matcha-icon [size]="size" icon="smile"></matcha-icon>
|
|
114
|
+
</button>
|
|
115
|
+
</div>
|
|
116
|
+
</div>
|
|
117
|
+
</div>
|
|
118
|
+
</section>
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
section {
|
|
2
|
+
display: table;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
.example-label {
|
|
6
|
+
display: table-cell;
|
|
7
|
+
font-size: 14px;
|
|
8
|
+
margin-left: 8px;
|
|
9
|
+
min-width: 120px;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.example-button-row {
|
|
13
|
+
display: table-cell;
|
|
14
|
+
max-width: 600px;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.example-button-row .mat-mdc-button-base {
|
|
18
|
+
margin: 8px 8px 8px 0;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.example-flex-container {
|
|
22
|
+
display: flex;
|
|
23
|
+
justify-content: space-between;
|
|
24
|
+
flex-wrap: wrap;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.example-button-container {
|
|
28
|
+
display: flex;
|
|
29
|
+
justify-content: center;
|
|
30
|
+
width: 120px;
|
|
31
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export const buttonArgtypes = {
|
|
2
|
+
color: {
|
|
3
|
+
description: 'Theme color palette',
|
|
4
|
+
control: 'select',
|
|
5
|
+
defaultValue: 'accent',
|
|
6
|
+
table: {
|
|
7
|
+
defaultValue: { summary: 'accent' },
|
|
8
|
+
},
|
|
9
|
+
options: ['primary', 'accent', 'warn'],
|
|
10
|
+
},
|
|
11
|
+
size: {
|
|
12
|
+
description: 'size of the button',
|
|
13
|
+
control: 'select',
|
|
14
|
+
defaultValue: 'md',
|
|
15
|
+
table: {
|
|
16
|
+
defaultValue: { summary: 'md' },
|
|
17
|
+
},
|
|
18
|
+
options: ['xs', 'sm', 'md', 'lg', 'xl'],
|
|
19
|
+
},
|
|
20
|
+
};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Directive, ElementRef, Input, Renderer2 } from '@angular/core';
|
|
2
|
+
|
|
3
|
+
@Directive({
|
|
4
|
+
selector: '[matcha-button]',
|
|
5
|
+
standalone: false,
|
|
6
|
+
})
|
|
7
|
+
export class MatchaButtonDirective {
|
|
8
|
+
@Input('pill') pill: boolean = false;
|
|
9
|
+
@Input('size') size: string | null = null;
|
|
10
|
+
|
|
11
|
+
constructor(private _elementRef: ElementRef, private _renderer: Renderer2) {}
|
|
12
|
+
|
|
13
|
+
ngOnInit() {
|
|
14
|
+
this._setConfig();
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
ngOnChanges() {
|
|
18
|
+
this._setConfig();
|
|
19
|
+
console.log(this.size);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
private _setConfig() {
|
|
23
|
+
// Remove todas as classes relacionadas ao tamanho
|
|
24
|
+
['xs', 'sm', 'md', 'lg', 'xl'].forEach((size) => {
|
|
25
|
+
this._renderer.removeClass(this._elementRef.nativeElement, `matcha-button-${size}`);
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
// Adicione a classe correspondente ao novo tamanho (se houver)
|
|
29
|
+
if (this.size) {
|
|
30
|
+
this._renderer.addClass(this._elementRef.nativeElement, `matcha-button-${this.size}`);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
if (this.pill) {
|
|
34
|
+
this._renderer.addClass(this._elementRef.nativeElement, `matcha-button-pill`);
|
|
35
|
+
} else {
|
|
36
|
+
this._renderer.removeClass(this._elementRef.nativeElement, `matcha-button-pill`);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|