matcha-components 1.0.5 → 1.0.6

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.
Files changed (177) hide show
  1. package/README.md +239 -2
  2. package/assets/open_in_new.png +0 -0
  3. package/ng-package.json +7 -0
  4. package/package.json +10 -23
  5. package/src/foundation/colors/base/amber.mdx +232 -0
  6. package/src/foundation/colors/base/blue.mdx +232 -0
  7. package/src/foundation/colors/base/cyan.mdx +232 -0
  8. package/src/foundation/colors/base/deep-orange.mdx +232 -0
  9. package/src/foundation/colors/base/deep-purple.mdx +232 -0
  10. package/src/foundation/colors/base/green.mdx +232 -0
  11. package/src/foundation/colors/base/indigo.mdx +232 -0
  12. package/src/foundation/colors/base/light-blue.mdx +232 -0
  13. package/src/foundation/colors/base/light-green.mdx +232 -0
  14. package/src/foundation/colors/base/lime.mdx +232 -0
  15. package/src/foundation/colors/base/orange.mdx +232 -0
  16. package/src/foundation/colors/base/pink.mdx +232 -0
  17. package/src/foundation/colors/base/purple.mdx +232 -0
  18. package/src/foundation/colors/base/red.mdx +232 -0
  19. package/src/foundation/colors/base/teal.mdx +232 -0
  20. package/src/foundation/colors/base/yellow.mdx +232 -0
  21. package/src/foundation/colors/base-colors.mdx +141 -0
  22. package/src/foundation/colors/surface-colors.mdx +93 -0
  23. package/src/foundation/colors/theme/accent.mdx +232 -0
  24. package/src/foundation/colors/theme/primary.mdx +232 -0
  25. package/src/foundation/colors/theme/warn.mdx +232 -0
  26. package/src/foundation/colors/theme-colors.mdx +159 -0
  27. package/src/foundation/sizes/heights.mdx +232 -0
  28. package/src/foundation/sizes/max-heights.mdx +237 -0
  29. package/src/foundation/sizes/max-width.mdx +236 -0
  30. package/src/foundation/sizes/min-heights.mdx +237 -0
  31. package/src/foundation/sizes/min-width.mdx +236 -0
  32. package/src/foundation/sizes/sizes.mdx +219 -0
  33. package/src/foundation/sizes/widths.mdx +234 -0
  34. package/src/lib/matcha-autocomplete/autocomplete-overview.directive.ts +16 -0
  35. package/src/lib/matcha-autocomplete/autocomplete.argtypes.ts +64 -0
  36. package/src/lib/matcha-autocomplete/autocomplete.directive.ts +14 -0
  37. package/src/lib/matcha-autocomplete/autocomplete.mdx +112 -0
  38. package/src/lib/matcha-autocomplete/autocomplete.module.ts +14 -0
  39. package/src/lib/matcha-autocomplete/autocomplete.stories.ts +113 -0
  40. package/src/lib/matcha-badge/badge.module.ts +14 -0
  41. package/src/lib/matcha-badge/matcha-badge.directive.ts +16 -0
  42. package/src/lib/matcha-bottom-sheet/bottom-sheet.module.ts +14 -0
  43. package/src/lib/matcha-bottom-sheet/matcha-bottom-sheet.directive.ts +16 -0
  44. package/src/lib/matcha-button-toggle/button-toggle.module.ts +14 -0
  45. package/src/lib/matcha-button-toggle/matcha-button-toggle.directive.ts +16 -0
  46. package/src/lib/matcha-buttons/button.stories.ts +111 -0
  47. package/src/lib/matcha-buttons/buttons.module.ts +27 -0
  48. package/src/lib/matcha-buttons/matcha-btn-md.directive.ts +16 -0
  49. package/src/lib/matcha-buttons/matcha-btn-pill.directive.ts +15 -0
  50. package/src/lib/matcha-buttons/matcha-btn-size.directive.ts +17 -0
  51. package/src/lib/matcha-buttons/matcha-btn-xl.directive.ts +15 -0
  52. package/src/lib/matcha-card/card.mdx.txt +55 -0
  53. package/src/lib/matcha-card/matcha-card-argtype.ts +123 -0
  54. package/src/lib/matcha-card/matcha-card-content/matcha-card-content.component.html +3 -0
  55. package/src/lib/matcha-card/matcha-card-content/matcha-card-content.component.scss +0 -0
  56. package/src/lib/matcha-card/matcha-card-content/matcha-card-content.component.spec.ts +21 -0
  57. package/src/lib/matcha-card/matcha-card-content/matcha-card-content.component.ts +10 -0
  58. package/src/lib/matcha-card/matcha-card-footer/matcha-card-footer.component.html +3 -0
  59. package/src/lib/matcha-card/matcha-card-footer/matcha-card-footer.component.scss +0 -0
  60. package/src/lib/matcha-card/matcha-card-footer/matcha-card-footer.component.spec.ts +21 -0
  61. package/src/lib/matcha-card/matcha-card-footer/matcha-card-footer.component.ts +10 -0
  62. package/src/lib/matcha-card/matcha-card-header/matcha-card-header.component.html +4 -0
  63. package/src/lib/matcha-card/matcha-card-header/matcha-card-header.component.scss +0 -0
  64. package/src/lib/matcha-card/matcha-card-header/matcha-card-header.component.spec.ts +21 -0
  65. package/src/lib/matcha-card/matcha-card-header/matcha-card-header.component.ts +10 -0
  66. package/src/lib/matcha-card/matcha-card.component.html +3 -0
  67. package/src/lib/matcha-card/matcha-card.component.scss +117 -0
  68. package/src/lib/matcha-card/matcha-card.component.spec.ts +21 -0
  69. package/src/lib/matcha-card/matcha-card.component.ts +43 -0
  70. package/src/lib/matcha-card/matcha-card.module.ts +27 -0
  71. package/src/lib/matcha-card/matcha-card.stories.ts +80 -0
  72. package/src/lib/matcha-checkbox/checkbox.argtype.ts +79 -0
  73. package/src/lib/matcha-checkbox/checkbox.directive.ts +14 -0
  74. package/src/lib/matcha-checkbox/checkbox.mdx +76 -0
  75. package/src/lib/matcha-checkbox/checkbox.module.ts +9 -0
  76. package/src/lib/matcha-checkbox/checkbox.stories.ts +161 -0
  77. package/src/lib/matcha-checkbox/checkbox.stories.txt +74 -0
  78. package/src/lib/matcha-chips/chips.module.ts +12 -0
  79. package/src/lib/matcha-chips/matcha-chips.directive.ts +16 -0
  80. package/src/lib/matcha-components.module.ts +78 -0
  81. package/src/lib/matcha-datepicker/datepicker.argtypes.ts +63 -0
  82. package/src/lib/matcha-datepicker/datepicker.directive.ts +14 -0
  83. package/src/lib/matcha-datepicker/datepicker.mdx +73 -0
  84. package/src/lib/matcha-datepicker/datepicker.module.ts +9 -0
  85. package/src/lib/matcha-datepicker/datepicker.stories.ts +277 -0
  86. package/src/lib/matcha-dialog/dialog.module.ts +14 -0
  87. package/src/lib/matcha-dialog/matcha-dialog.directive.ts +16 -0
  88. package/src/lib/matcha-dialog2/confirmation-dialog.component.ts.txt +54 -0
  89. package/src/lib/matcha-dialog2/confirmation-dialog.stories.ts.txt +24 -0
  90. package/src/lib/matcha-divider/divider.module.ts +14 -0
  91. package/src/lib/matcha-divider/matcha-divider.directive.ts +16 -0
  92. package/src/lib/matcha-expansion-panel/expansion-panel.module.ts +14 -0
  93. package/src/lib/matcha-expansion-panel/matcha-expansion-panel.directive.ts +16 -0
  94. package/src/lib/matcha-forms/forms.module.ts +19 -0
  95. package/src/lib/matcha-forms/matcha-form-field-appearance.directive.ts +16 -0
  96. package/src/lib/matcha-forms/matcha-form-field-argtype.ts +73 -0
  97. package/src/lib/matcha-forms/matcha-form-field.mdx +284 -0
  98. package/src/lib/matcha-forms/matcha-form-field.stories.ts +345 -0
  99. package/src/lib/matcha-forms/matcha-form-input-text.directive.ts +16 -0
  100. package/src/lib/matcha-icon/icon.module.ts +19 -0
  101. package/src/lib/matcha-icon/matcha-icon-position-pos.directive.ts +15 -0
  102. package/src/lib/matcha-icon/matcha-icon-position-pre.directive.ts +15 -0
  103. package/src/lib/matcha-list/list.module.ts +14 -0
  104. package/src/lib/matcha-list/matcha-list.directive.ts +16 -0
  105. package/src/lib/matcha-menu/matcha-menu.directive.ts +16 -0
  106. package/src/lib/matcha-menu/menu.module.ts +14 -0
  107. package/src/lib/matcha-menu/menu.stories.txt +76 -0
  108. package/src/lib/matcha-paginator/matcha-paginator.directive.ts +16 -0
  109. package/src/lib/matcha-paginator/paginator.module.ts +14 -0
  110. package/src/lib/matcha-progress-bar/progress-bar.argtype.ts +48 -0
  111. package/src/lib/matcha-progress-bar/progress-bar.directive.ts +16 -0
  112. package/src/lib/matcha-progress-bar/progress-bar.mdx +95 -0
  113. package/src/lib/matcha-progress-bar/progress-bar.module.ts +14 -0
  114. package/src/lib/matcha-progress-bar/progress-bar.stories.ts +89 -0
  115. package/src/lib/matcha-progress-spinner/progress-spinner.argtype.ts +65 -0
  116. package/src/lib/matcha-progress-spinner/progress-spinner.directive.ts +16 -0
  117. package/src/lib/matcha-progress-spinner/progress-spinner.mdx +23 -0
  118. package/src/lib/matcha-progress-spinner/progress-spinner.module.ts +14 -0
  119. package/src/lib/matcha-progress-spinner/progress-spinner.stories.ts +44 -0
  120. package/src/lib/matcha-radio-button/matcha-radio-button.argtype.ts +85 -0
  121. package/src/lib/matcha-radio-button/matcha-radio-button.directive.ts +16 -0
  122. package/src/lib/matcha-radio-button/matcha-radio-button.stories.ts +44 -0
  123. package/src/lib/matcha-radio-button/radio-button.module.ts +12 -0
  124. package/src/lib/matcha-select/matcha-select.directive.ts +16 -0
  125. package/src/lib/matcha-select/select.module.ts +12 -0
  126. package/src/lib/matcha-select/select.stories.txt +109 -0
  127. package/src/lib/matcha-slide-toggle/slide-toggle.argtype.ts +66 -0
  128. package/src/lib/matcha-slide-toggle/slide-toggle.directive.ts +16 -0
  129. package/src/lib/matcha-slide-toggle/slide-toggle.mdx +92 -0
  130. package/src/lib/matcha-slide-toggle/slide-toggle.module.ts +12 -0
  131. package/src/lib/matcha-slide-toggle/slide-toggle.stories.ts +167 -0
  132. package/src/lib/matcha-slider/matcha-slider.directive.ts +16 -0
  133. package/src/lib/matcha-slider/slider.module.ts +12 -0
  134. package/src/lib/matcha-snackbar/matcha-snackbar.directive.ts +16 -0
  135. package/src/lib/matcha-snackbar/snackbar.module.ts +12 -0
  136. package/src/lib/matcha-sort-header/matcha-sort-header.directive.ts +16 -0
  137. package/src/lib/matcha-sort-header/sort-header.module.ts +12 -0
  138. package/src/lib/matcha-stepper/matcha-stepper.directive.ts +16 -0
  139. package/src/lib/matcha-stepper/stepper.module.ts +12 -0
  140. package/src/lib/matcha-table/matcha-table.directive.ts +16 -0
  141. package/src/lib/matcha-table/table.module.ts +12 -0
  142. package/src/lib/matcha-tabs/matcha-tabs.directive.ts +17 -0
  143. package/src/lib/matcha-tabs/tabs.module.ts +16 -0
  144. package/src/lib/matcha-tabs/tabs.stories.txt +18 -0
  145. package/src/lib/matcha-title/matcha-title.component.html +33 -0
  146. package/src/lib/matcha-title/matcha-title.component.scss +0 -0
  147. package/src/lib/matcha-title/matcha-title.component.spec.ts +21 -0
  148. package/src/lib/matcha-title/matcha-title.component.ts +24 -0
  149. package/src/lib/matcha-title/matcha-title.module.ts +18 -0
  150. package/src/lib/matcha-tooltip/matcha-tooltip.directive.ts +16 -0
  151. package/src/lib/matcha-tooltip/tooltip.module.ts +12 -0
  152. package/src/lib/matcha-tree/matcha-tree.directive.ts +16 -0
  153. package/src/lib/matcha-tree/tree.module.ts +12 -0
  154. package/src/public-api.ts +93 -0
  155. package/tsconfig.lib.json +18 -0
  156. package/tsconfig.lib.prod.json +10 -0
  157. package/tsconfig.spec.json +14 -0
  158. package/esm2022/lib/matcha-button/matcha-button.component.mjs +0 -12
  159. package/esm2022/lib/matcha-card/matcha-card-content/matcha-card-content.component.mjs +0 -12
  160. package/esm2022/lib/matcha-card/matcha-card-footer/matcha-card-footer.component.mjs +0 -12
  161. package/esm2022/lib/matcha-card/matcha-card-header/matcha-card-header.component.mjs +0 -12
  162. package/esm2022/lib/matcha-card/matcha-card.component.mjs +0 -12
  163. package/esm2022/lib/matcha-card/matcha-card.module.mjs +0 -40
  164. package/esm2022/lib/matcha-components.module.mjs +0 -27
  165. package/esm2022/matcha-components.mjs +0 -5
  166. package/esm2022/public-api.mjs +0 -20
  167. package/fesm2022/matcha-components.mjs +0 -113
  168. package/fesm2022/matcha-components.mjs.map +0 -1
  169. package/index.d.ts +0 -5
  170. package/lib/matcha-button/matcha-button.component.d.ts +0 -5
  171. package/lib/matcha-card/matcha-card-content/matcha-card-content.component.d.ts +0 -5
  172. package/lib/matcha-card/matcha-card-footer/matcha-card-footer.component.d.ts +0 -5
  173. package/lib/matcha-card/matcha-card-header/matcha-card-header.component.d.ts +0 -5
  174. package/lib/matcha-card/matcha-card.component.d.ts +0 -5
  175. package/lib/matcha-card/matcha-card.module.d.ts +0 -11
  176. package/lib/matcha-components.module.d.ts +0 -8
  177. package/public-api.d.ts +0 -7
@@ -0,0 +1,74 @@
1
+ import {Meta, moduleMetadata} from '@storybook/angular';
2
+ import {MatCheckbox, MatCheckboxModule} from '@angular/material/checkbox';
3
+ import {action} from '@storybook/addon-actions';
4
+ import {boolean, text} from '@storybook/addon-knobs';
5
+ import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
6
+ import { MatchaCheckboxDirective } from './matcha-checkbox.directive';
7
+
8
+
9
+ export default {
10
+ title: 'Componentes/Matcha Checkbox',
11
+ component: MatCheckbox,
12
+ decorators: [
13
+ moduleMetadata({
14
+ imports: [MatCheckboxModule, BrowserAnimationsModule],
15
+ declarations: [MatchaCheckboxDirective],
16
+ }),
17
+ ],
18
+ args: {
19
+ disabled: boolean('disabled', false),
20
+ label: text('label', 'Check me'),
21
+ onChange: action('change')
22
+ },
23
+ argTypes: {
24
+ disabled: { control: 'boolean' },
25
+ label: { control: 'text' },
26
+ onChange: { control: 'boolean' }
27
+ }
28
+ } as Meta;
29
+
30
+ export const checkbox = () => ({
31
+ component: MatCheckbox,
32
+ template: `
33
+ <div>
34
+ <mat-checkbox [disabled]="disabled" (change)="onChange($event)">
35
+ {{label}}
36
+ </mat-checkbox>
37
+ </div>
38
+ `,
39
+ props: {
40
+ text: 'Botão com ícone',
41
+ icon: 'favorite',
42
+ onClick: action('Botão com ícone clicado'),
43
+ },
44
+ });
45
+
46
+
47
+ // export default MATCHA_CARD;
48
+
49
+ // export const Default2: MatCheckbox = {
50
+ // render: (args: any) => ({
51
+ // props: args,
52
+ // }),
53
+ // };
54
+
55
+
56
+
57
+ // storiesOf('Checkbox', module)
58
+ // .add('Basic', () => ({
59
+ // template: `
60
+ // <div>
61
+ // <mat-checkbox [disabled]="disabled" (change)="onChange($event)">
62
+ // {{label}}
63
+ // </mat-checkbox>
64
+ // </div>
65
+ // `,
66
+ // props: {
67
+ // disabled: boolean('disabled', false),
68
+ // label: text('label', 'Check me'),
69
+ // onChange: action('change')
70
+ // },
71
+ // moduleMetadata: {
72
+ // imports: [MatCheckboxModule]
73
+ // }
74
+ // }));
@@ -0,0 +1,12 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { MatchaChipsDirective } from './matcha-chips.directive';
3
+
4
+ @NgModule({
5
+ declarations: [MatchaChipsDirective],
6
+ imports: [
7
+ ],
8
+ exports:[
9
+ MatchaChipsDirective
10
+ ]
11
+ })
12
+ export class MatchaChipsModule { }
@@ -0,0 +1,16 @@
1
+ import { Directive, ElementRef, Renderer2 } from '@angular/core';
2
+
3
+ @Directive({
4
+ selector: '[matchaChips]'
5
+ })
6
+ export class MatchaChipsDirective {
7
+
8
+ constructor(
9
+ private _elementRef: ElementRef,
10
+ private _renderer: Renderer2
11
+ ) {
12
+ //this._elementRef.nativeElement.style.backgroundColor = 'grey';
13
+ this._renderer.addClass(this._elementRef.nativeElement,'matcha-chips')
14
+ }
15
+
16
+ }
@@ -0,0 +1,78 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { MatchaCardModule } from './matcha-card/matcha-card.module';
3
+ import { MatchaTitleModule } from './matcha-title/matcha-title.module';
4
+
5
+ import { MatchaAutocompleteModule } from './matcha-autocomplete/autocomplete.module';
6
+ import { MatchaBadgeModule } from './matcha-badge/badge.module';
7
+ import { MatchaTabsModule } from './matcha-tabs/tabs.module';
8
+ import { MatchaBottomSheetModule } from './matcha-bottom-sheet/bottom-sheet.module';
9
+ import { MatchaButtonToggleModule } from './matcha-button-toggle/button-toggle.module';
10
+ import { MatchaButtonsModule } from './matcha-buttons/buttons.module';
11
+ import { MatchaCheckboxModule } from './matcha-checkbox/checkbox.module';
12
+ import { MatchaChipsModule } from './matcha-chips/chips.module';
13
+ import { MatchaDatepickerModule } from './matcha-datepicker/datepicker.module';
14
+ import { MatchaDialogModule } from './matcha-dialog/dialog.module';
15
+ import { MatchaDividerModule } from './matcha-divider/divider.module';
16
+ import { MatchaExpansionPanelModule } from './matcha-expansion-panel/expansion-panel.module';
17
+ import { MatchaFormsModule } from './matcha-forms/forms.module';
18
+ import { MatchaIconModule } from './matcha-icon/icon.module';
19
+ import { MatchaListModule } from './matcha-list/list.module';
20
+ import { MatchaMenuModule } from './matcha-menu/menu.module';
21
+ import { MatchaPaginatorModule } from './matcha-paginator/paginator.module';
22
+ import { MatchaProgressBarModule } from './matcha-progress-bar/progress-bar.module';
23
+ import { MatchaProgressSpinnerModule } from './matcha-progress-spinner/progress-spinner.module';
24
+ import { MatchaRadioButtonModule } from './matcha-radio-button/radio-button.module';
25
+ import { MatchaSelectModule } from './matcha-select/select.module';
26
+ import { MatchaSlideToggleModule } from './matcha-slide-toggle/slide-toggle.module';
27
+ import { MatchaSliderModule } from './matcha-slider/slider.module';
28
+ import { MatchaSnackbarModule } from './matcha-snackbar/snackbar.module';
29
+ import { MatchaSortHeaderModule } from './matcha-sort-header/sort-header.module';
30
+ import { MatchaStepperModule } from './matcha-stepper/stepper.module';
31
+ import { MatchaTableModule } from './matcha-table/table.module';
32
+ import { MatchaTooltipModule } from './matcha-tooltip/tooltip.module';
33
+ import { MatchaTreeModule } from './matcha-tree/tree.module';
34
+
35
+
36
+ @NgModule({
37
+ declarations: [],
38
+ imports: [
39
+ MatchaCardModule,
40
+ MatchaTitleModule,
41
+ ],
42
+ exports: [
43
+ MatchaCardModule,
44
+ MatchaTitleModule,
45
+
46
+ MatchaAutocompleteModule,
47
+ MatchaBadgeModule,
48
+ MatchaTabsModule,
49
+ MatchaBottomSheetModule,
50
+ MatchaButtonToggleModule,
51
+ MatchaButtonsModule,
52
+ MatchaCheckboxModule,
53
+ MatchaChipsModule,
54
+ MatchaDatepickerModule,
55
+ MatchaDialogModule,
56
+ MatchaDividerModule,
57
+ MatchaExpansionPanelModule,
58
+ MatchaFormsModule,
59
+ MatchaIconModule,
60
+ MatchaListModule,
61
+ MatchaMenuModule,
62
+ MatchaPaginatorModule,
63
+ MatchaProgressBarModule,
64
+ MatchaProgressSpinnerModule,
65
+ MatchaRadioButtonModule,
66
+ MatchaSelectModule,
67
+ MatchaSlideToggleModule,
68
+ MatchaSliderModule,
69
+ MatchaSnackbarModule,
70
+ MatchaSortHeaderModule,
71
+ MatchaStepperModule,
72
+ MatchaTableModule,
73
+ MatchaTabsModule,
74
+ MatchaTooltipModule,
75
+ MatchaTreeModule,
76
+ ]
77
+ })
78
+ export class MatchaComponentsModule { }
@@ -0,0 +1,63 @@
1
+ export const datepickerArgtypes = {
2
+ disabled: {
3
+ description: 'Whether the datepicker-input is disabled.',
4
+ control: 'boolean',
5
+ defaultValue: true,
6
+ table: {
7
+ defaultValue: { summary: true },
8
+ },
9
+ },
10
+ dateFilter: {
11
+ description:
12
+ 'Function that can be used to filter out dates within the datepicker.',
13
+ control: 'function',
14
+ table: {
15
+ type: { summary: 'DateFilterFn<D>' },
16
+ },
17
+ },
18
+ matDatepicker: {
19
+ description: 'The datepicker that this input is associated with.',
20
+ control: null, // Como é uma referência a um componente MatDatepicker, não precisa de um controle.
21
+ table: {
22
+ disable: true, // Desativamos a tabela para evitar a exibição de informações desnecessárias.
23
+ },
24
+ },
25
+ max: {
26
+ description: 'The maximum valid date.',
27
+ control: 'date',
28
+ table: {
29
+ type: { summary: 'D | null' },
30
+ },
31
+ },
32
+ min: {
33
+ description: 'The minimum valid date.',
34
+ control: 'date',
35
+ table: {
36
+ type: { summary: 'D | null' },
37
+ },
38
+ },
39
+ value: {
40
+ description: 'The value of the input.',
41
+ control: 'date',
42
+ table: {
43
+ type: { summary: 'D | null' },
44
+ },
45
+ },
46
+ dateChange: {
47
+ description: 'Emits when a change event is fired on this <input>.',
48
+ action: 'dateChange',
49
+ },
50
+ dateInput: {
51
+ description: 'Emits when a change event is fired on this <input>.',
52
+ action: 'dateInput',
53
+ },
54
+ color: {
55
+ description: 'Theme color palette',
56
+ control: 'select',
57
+ defaultValue: 'accent',
58
+ table: {
59
+ defaultValue: { summary: 'accent' },
60
+ },
61
+ options: ['primary', 'accent', 'warn'],
62
+ },
63
+ };
@@ -0,0 +1,14 @@
1
+ import { Directive, ElementRef, Renderer2 } from '@angular/core';
2
+
3
+ @Directive({
4
+ selector: '[matcha-datepicker]',
5
+ })
6
+ export class MatchaDatepickerDirective {
7
+ constructor(private _elementRef: ElementRef, private _renderer: Renderer2) {
8
+ //this._elementRef.nativeElement.style.backgroundColor = 'grey';
9
+ this._renderer.addClass(
10
+ this._elementRef.nativeElement,
11
+ 'matcha-datepicker'
12
+ );
13
+ }
14
+ }
@@ -0,0 +1,73 @@
1
+ import { Story } from "@storybook/blocks";
2
+ import { Meta } from "@storybook/addon-docs";
3
+ import * as ComponentStories from "./datepicker.stories";
4
+
5
+ <Meta title="Atoms / Datepicker / Documentação" />
6
+
7
+ # Datepicker
8
+
9
+ > _datepicker_ permite que os usuários insiram uma data por meio de entrada de texto ou escolhendo uma data no calendário. É composto por vários componentes, diretivas e módulo de implementação de datas que funcionam em conjunto.
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">Datepicker - Date range picker comparison ranges</span>
19
+ <div class="matcha-card background-bg">
20
+ <Story of={ComponentStories.DatepickerComparison} />
21
+ </div>
22
+
23
+ <div class="d-flex-column">
24
+
25
+ ```html
26
+ <form>
27
+ <mat-form-field matcha-datepicker appearance="outline" [color]="color">
28
+ <mat-label>First campaign</mat-label>
29
+ <mat-date-range-input
30
+ [formGroup]="campaignOne"
31
+ [rangePicker]="campaignOnePicker"
32
+ [comparisonStart]="campaignTwo.value.start"
33
+ [comparisonEnd]="campaignTwo.value.end">
34
+ <input matStartDate placeholder="Start date" formControlName="start">
35
+ <input matEndDate placeholder="End date" formControlName="end">
36
+ </mat-date-range-input>
37
+ <mat-hint>MM/DD/YYYY - MM/DD/YYYY</mat-hint>
38
+ <mat-datepicker-toggle matIconSuffix [for]="campaignOnePicker"></mat-datepicker-toggle>
39
+ <mat-date-range-picker #campaignOnePicker></mat-date-range-picker>
40
+ </mat-form-field>
41
+
42
+ <mat-form-field matcha-datepicker appearance="outline" [color]="color">
43
+ <mat-label>Second campaign</mat-label>
44
+ <mat-date-range-input
45
+ [formGroup]="campaignTwo"
46
+ [rangePicker]="campaignTwoPicker"
47
+ [comparisonStart]="campaignOne.value.start"
48
+ [comparisonEnd]="campaignOne.value.end">
49
+ <input matStartDate placeholder="Start date" formControlName="start">
50
+ <input matEndDate placeholder="End date" formControlName="end">
51
+ </mat-date-range-input>
52
+ <mat-datepicker-toggle matIconSuffix [for]="campaignTwoPicker"></mat-datepicker-toggle>
53
+ <mat-hint>MM/DD/YYYY - MM/DD/YYYY</mat-hint>
54
+ <mat-date-range-picker #campaignTwoPicker></mat-date-range-picker>
55
+ </mat-form-field>
56
+ </form>
57
+ ```
58
+
59
+ </div>
60
+ </div>
61
+ </div>
62
+
63
+ </div>
64
+
65
+ <br />
66
+
67
+ ### Installation
68
+
69
+ `import {MatDatepickerModule} from '@angular/material/datepicker';`
70
+
71
+ [Official documentation](https://https://material.angular.io/components/datepicker/overview)
72
+
73
+ <br />
@@ -0,0 +1,9 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { MatchaDatepickerDirective } from './datepicker.directive';
3
+
4
+ @NgModule({
5
+ declarations: [MatchaDatepickerDirective],
6
+ imports: [],
7
+ exports: [MatchaDatepickerDirective],
8
+ })
9
+ export class MatchaDatepickerModule {}
@@ -0,0 +1,277 @@
1
+ import {
2
+ applicationConfig,
3
+ Meta,
4
+ moduleMetadata,
5
+ StoryObj,
6
+ } from '@storybook/angular';
7
+ import { NgIf, NgFor, AsyncPipe, JsonPipe } from '@angular/common';
8
+ import { CommonModule } from '@angular/common';
9
+ import {
10
+ FormControl,
11
+ FormGroup,
12
+ FormsModule,
13
+ ReactiveFormsModule,
14
+ } from '@angular/forms';
15
+ import { MatFormFieldModule } from '@angular/material/form-field';
16
+ import { MatInputModule } from '@angular/material/input';
17
+ import { MatButtonModule } from '@angular/material/button';
18
+ import { provideAnimations } from '@angular/platform-browser/animations';
19
+ import {
20
+ MatCalendarCellClassFunction,
21
+ MatDatepickerModule,
22
+ } from '@angular/material/datepicker';
23
+ import { MatNativeDateModule } from '@angular/material/core';
24
+ import { MatchaDatepickerDirective } from './datepicker.directive';
25
+ import { datepickerArgtypes } from './datepicker.argtypes';
26
+
27
+ export default {
28
+ title: 'Atoms / Datepicker',
29
+ decorators: [
30
+ applicationConfig({
31
+ providers: [provideAnimations()],
32
+ }),
33
+ moduleMetadata({
34
+ imports: [
35
+ CommonModule,
36
+ FormsModule,
37
+ MatFormFieldModule,
38
+ MatInputModule,
39
+ MatDatepickerModule,
40
+ MatNativeDateModule,
41
+ MatButtonModule,
42
+ ReactiveFormsModule,
43
+ NgIf,
44
+ JsonPipe,
45
+ NgFor,
46
+ AsyncPipe,
47
+ ],
48
+ declarations: [MatchaDatepickerDirective],
49
+ }),
50
+ ],
51
+ args: {
52
+ color: 'accent',
53
+ },
54
+ argTypes: datepickerArgtypes,
55
+ parameters: {
56
+ controls: { expanded: true },
57
+ },
58
+ } as Meta;
59
+
60
+ const today = new Date();
61
+ const month = today.getMonth();
62
+ const year = today.getFullYear();
63
+
64
+ const campaignOne = new FormGroup({
65
+ start: new FormControl(new Date(year, month, 13)),
66
+ end: new FormControl(new Date(year, month, 16)),
67
+ });
68
+ const campaignTwo = new FormGroup({
69
+ start: new FormControl(new Date(year, month, 15)),
70
+ end: new FormControl(new Date(year, month, 19)),
71
+ });
72
+
73
+ export const DatepickerComparison: StoryObj = {
74
+ render: (args) => ({
75
+ props: {
76
+ ...args,
77
+ campaignOne,
78
+ campaignTwo,
79
+ },
80
+ template: `
81
+ <div class="d-flex-center-center">
82
+ <form class="matcha-card background-surface d-flex-column gap-16 max-w-256">
83
+ <mat-form-field matcha-datepicker appearance="outline" [color]="color">
84
+ <mat-label>First campaign</mat-label>
85
+ <mat-date-range-input
86
+ [formGroup]="campaignOne"
87
+ [rangePicker]="campaignOnePicker"
88
+ [comparisonStart]="campaignTwo.value.start"
89
+ [comparisonEnd]="campaignTwo.value.end">
90
+ <input matStartDate placeholder="Start date" formControlName="start">
91
+ <input matEndDate placeholder="End date" formControlName="end">
92
+ </mat-date-range-input>
93
+ <mat-hint>MM/DD/YYYY - MM/DD/YYYY</mat-hint>
94
+ <mat-datepicker-toggle matIconSuffix [for]="campaignOnePicker"></mat-datepicker-toggle>
95
+ <mat-date-range-picker #campaignOnePicker></mat-date-range-picker>
96
+ </mat-form-field>
97
+
98
+ <mat-form-field matcha-datepicker appearance="outline" [color]="color">
99
+ <mat-label>Second campaign</mat-label>
100
+ <mat-date-range-input
101
+ [formGroup]="campaignTwo"
102
+ [rangePicker]="campaignTwoPicker"
103
+ [comparisonStart]="campaignOne.value.start"
104
+ [comparisonEnd]="campaignOne.value.end">
105
+ <input matStartDate placeholder="Start date" formControlName="start">
106
+ <input matEndDate placeholder="End date" formControlName="end">
107
+ </mat-date-range-input>
108
+ <mat-datepicker-toggle matIconSuffix [for]="campaignTwoPicker"></mat-datepicker-toggle>
109
+ <mat-hint>MM/DD/YYYY - MM/DD/YYYY</mat-hint>
110
+ <mat-date-range-picker #campaignTwoPicker></mat-date-range-picker>
111
+ </mat-form-field>
112
+ </form>
113
+ </div>
114
+ `,
115
+ }),
116
+ name: 'Datepicker comparison',
117
+ };
118
+
119
+ const range = new FormGroup({
120
+ start: new FormControl<Date | null>(null),
121
+ end: new FormControl<Date | null>(null),
122
+ });
123
+
124
+ export const DatepickerIntegration: StoryObj = {
125
+ render: (args) => ({
126
+ props: {
127
+ ...args,
128
+ range,
129
+ },
130
+ template: `
131
+ <div class="d-flex-center-center">
132
+ <form class="matcha-card background-surface d-flex-column gap-16 max-w-256">
133
+ <mat-form-field matcha-datepicker appearance="outline" [color]="color">
134
+
135
+ <mat-label>Enter a date range</mat-label>
136
+ <mat-date-range-input [formGroup]="range" [rangePicker]="picker">
137
+ <input matStartDate formControlName="start" placeholder="Start date">
138
+ <input matEndDate formControlName="end" placeholder="End date">
139
+ </mat-date-range-input>
140
+ <mat-hint>MM/DD/YYYY - MM/DD/YYYY</mat-hint>
141
+ <mat-datepicker-toggle matIconSuffix [for]="picker"></mat-datepicker-toggle>
142
+ <mat-date-range-picker #picker></mat-date-range-picker>
143
+
144
+ <mat-error *ngIf="range.controls.start.hasError('matStartDateInvalid')">Invalid start date</mat-error>
145
+ <mat-error *ngIf="range.controls.end.hasError('matEndDateInvalid')">Invalid end date</mat-error>
146
+
147
+ </mat-form-field>
148
+ <p>Selected range: {{range.value | json}}</p>
149
+ </form>
150
+ </div>
151
+ `,
152
+ }),
153
+ name: 'Datepicker Integration',
154
+ };
155
+
156
+ export const DatepickerOpenMethod: StoryObj = {
157
+ render: (args) => ({
158
+ props: {
159
+ ...args,
160
+ range,
161
+ },
162
+ template: `
163
+ <div class="d-flex-center-center">
164
+ <form class="matcha-card background-surface d-flex-column gap-16 max-w-256">
165
+ <mat-form-field matcha-datepicker appearance="outline" [color]="color">
166
+ <mat-label>Choose a date</mat-label>
167
+ <input matInput [matDatepicker]="picker">
168
+ <mat-hint>MM/DD/YYYY</mat-hint>
169
+ <mat-datepicker #picker></mat-datepicker>
170
+ </mat-form-field>
171
+ <button mat-raised-button (click)="picker.open()">Open</button>
172
+ </form>
173
+ </div>
174
+ `,
175
+ }),
176
+ name: 'Datepicker Open Method',
177
+ };
178
+
179
+ export const DatepickerBasic: StoryObj = {
180
+ render: (args) => ({
181
+ props: args,
182
+ template: `
183
+ <div class="d-flex-center-center">
184
+ <form class="matcha-card background-surface d-flex-column gap-16 max-w-256">
185
+ <mat-form-field appearance="outline" [color]="color">
186
+ <mat-label>Enter a date range</mat-label>
187
+ <mat-date-range-input [rangePicker]="picker">
188
+ <input matStartDate placeholder="Start date">
189
+ <input matEndDate placeholder="End date">
190
+ </mat-date-range-input>
191
+ <mat-hint>MM/DD/YYYY - MM/DD/YYYY</mat-hint>
192
+ <mat-datepicker-toggle matIconSuffix [for]="picker"></mat-datepicker-toggle>
193
+ <mat-date-range-picker #picker></mat-date-range-picker>
194
+ </mat-form-field>
195
+ </form>
196
+ </div>
197
+ `,
198
+ }),
199
+ name: 'Basic Datepicker',
200
+ };
201
+
202
+ export const DatepickerActionButtons: StoryObj = {
203
+ render: (args) => ({
204
+ props: args,
205
+ template: `
206
+ <div class="d-flex-center-center">
207
+ <form class="matcha-card background-surface d-flex-column gap-16 max-w-256">
208
+ <mat-form-field appearance="outline" [color]="color">
209
+ <mat-label>Choose a date</mat-label>
210
+ <input matInput [matDatepicker]="datepicker">
211
+ <mat-hint>MM/DD/YYYY</mat-hint>
212
+ <mat-datepicker-toggle matIconSuffix [for]="datepicker"></mat-datepicker-toggle>
213
+ <mat-datepicker #datepicker>
214
+ <mat-datepicker-actions>
215
+ <button mat-button matDatepickerCancel>Cancel</button>
216
+ <button mat-raised-button color="primary" matDatepickerApply>Apply</button>
217
+ </mat-datepicker-actions>
218
+ </mat-datepicker>
219
+ </mat-form-field>
220
+
221
+ <mat-form-field appearance="outline" [color]="color">
222
+ <mat-label>Enter a date range</mat-label>
223
+ <mat-date-range-input [rangePicker]="rangePicker">
224
+ <input matStartDate placeholder="Start date">
225
+ <input matEndDate placeholder="End date">
226
+ </mat-date-range-input>
227
+ <mat-hint>MM/DD/YYYY - MM/DD/YYYY</mat-hint>
228
+ <mat-datepicker-toggle matIconSuffix [for]="rangePicker"></mat-datepicker-toggle>
229
+ <mat-date-range-picker #rangePicker>
230
+ <mat-date-range-picker-actions>
231
+ <button mat-button matDateRangePickerCancel>Cancel</button>
232
+ <button mat-raised-button color="primary" matDateRangePickerApply>Apply</button>
233
+ </mat-date-range-picker-actions>
234
+ </mat-date-range-picker>
235
+ </mat-form-field>
236
+ </form>
237
+ </div>
238
+ `,
239
+ }),
240
+ name: 'Action Buttons',
241
+ };
242
+
243
+ const dateClass: MatCalendarCellClassFunction<Date> = (cellDate, view) => {
244
+ // Only highligh dates inside the month view.
245
+ if (view === 'month') {
246
+ const date = cellDate.getDate();
247
+ // Highlight the 1st and 20th day of each month.
248
+ return date === 1 || date === 20
249
+ ? 'background-accent-alpha border-radius-circle'
250
+ : '';
251
+ }
252
+ return '';
253
+ };
254
+ export const DatepickerCustomDateHighlight: StoryObj = {
255
+ render: (args) => ({
256
+ props: {
257
+ ...args,
258
+ dateClass,
259
+ },
260
+ template: `
261
+ <div class="d-flex-center-center">
262
+ <form class="matcha-card background-surface d-flex-column gap-16 max-w-256">
263
+ <mat-form-field appearance="outline" [color]="color">
264
+
265
+ <mat-label>Choose a date</mat-label>
266
+ <input matInput [matDatepicker]="picker">
267
+ <mat-hint>MM/DD/YYYY</mat-hint>
268
+ <mat-datepicker-toggle matIconSuffix [for]="picker"></mat-datepicker-toggle>
269
+ <mat-datepicker [dateClass]="dateClass" #picker></mat-datepicker>
270
+
271
+ </mat-form-field>
272
+ </form>
273
+ </div>
274
+ `,
275
+ }),
276
+ name: 'Custom Date Highlight',
277
+ };
@@ -0,0 +1,14 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { MatchaDialogDirective } from './matcha-dialog.directive';
4
+
5
+ @NgModule({
6
+ declarations: [MatchaDialogDirective],
7
+ imports: [
8
+ CommonModule
9
+ ],
10
+ exports:[
11
+ MatchaDialogDirective
12
+ ]
13
+ })
14
+ export class MatchaDialogModule { }
@@ -0,0 +1,16 @@
1
+ import { Directive, ElementRef, Renderer2 } from '@angular/core';
2
+
3
+ @Directive({
4
+ selector: '[matchaDialog]'
5
+ })
6
+ export class MatchaDialogDirective {
7
+
8
+ constructor(
9
+ private _elementRef: ElementRef,
10
+ private _renderer: Renderer2
11
+ ) {
12
+ //this._elementRef.nativeElement.style.backgroundColor = 'grey';
13
+ this._renderer.addClass(this._elementRef.nativeElement,'matcha-dialog')
14
+ }
15
+
16
+ }