matcha-components 1.0.6 → 1.0.7

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 (250) hide show
  1. package/package.json +1 -1
  2. package/src/documentation/presentation.mdx +105 -0
  3. package/src/foundation/borders/borders.mdx +180 -0
  4. package/src/foundation/colors/base/amber.mdx +12 -9
  5. package/src/foundation/colors/base/blue.mdx +12 -9
  6. package/src/foundation/colors/base/cyan.mdx +12 -9
  7. package/src/foundation/colors/base/deep-orange.mdx +12 -9
  8. package/src/foundation/colors/base/deep-purple.mdx +12 -9
  9. package/src/foundation/colors/base/green.mdx +12 -9
  10. package/src/foundation/colors/base/indigo.mdx +12 -9
  11. package/src/foundation/colors/base/light-blue.mdx +12 -9
  12. package/src/foundation/colors/base/light-green.mdx +12 -9
  13. package/src/foundation/colors/base/lime.mdx +12 -9
  14. package/src/foundation/colors/base/orange.mdx +12 -9
  15. package/src/foundation/colors/base/pink.mdx +12 -9
  16. package/src/foundation/colors/base/purple.mdx +12 -9
  17. package/src/foundation/colors/base/red.mdx +12 -9
  18. package/src/foundation/colors/base/teal.mdx +12 -9
  19. package/src/foundation/colors/base/yellow.mdx +12 -9
  20. package/src/foundation/colors/base-colors.mdx +21 -18
  21. package/src/foundation/colors/theme/accent.mdx +12 -9
  22. package/src/foundation/colors/theme/primary.mdx +12 -9
  23. package/src/foundation/colors/theme/warn.mdx +12 -9
  24. package/src/foundation/colors/theme-colors.mdx +11 -37
  25. package/src/foundation/spacing/margins.mdx +183 -0
  26. package/src/foundation/spacing/paddings.mdx +156 -0
  27. package/src/foundation/typography/colors.mdx +26 -0
  28. package/src/foundation/typography/font-size.mdx +57 -0
  29. package/src/foundation/typography/font-weight.mdx +65 -0
  30. package/src/foundation/typography/helpers.mdx +86 -0
  31. package/src/foundation/typography/letter-spacing.mdx +35 -0
  32. package/src/foundation/typography/line-height.mdx +52 -0
  33. package/src/foundation/typography/message-box.mdx +43 -0
  34. package/src/foundation/typography/text-align.mdx +22 -0
  35. package/src/foundation/typography/text-styles.mdx +88 -0
  36. package/src/lib/matcha-autocomplete/autocomplete.mdx +1 -1
  37. package/src/lib/matcha-autocomplete/autocomplete.stories.ts +16 -25
  38. package/src/lib/matcha-autocomplete/example/autocomplete-auto-active-first-option-example.css +9 -0
  39. package/src/lib/matcha-autocomplete/example/autocomplete-auto-active-first-option-example.html +9 -0
  40. package/src/lib/matcha-autocomplete/example/autocomplete-auto-active-first-option-example.ts +37 -0
  41. package/src/lib/matcha-autocomplete/example/autocomplete-overview-example.css +19 -0
  42. package/src/lib/matcha-autocomplete/example/autocomplete-overview-example.html +17 -0
  43. package/src/lib/matcha-autocomplete/example/autocomplete-overview-example.ts +70 -0
  44. package/src/lib/matcha-badge/badge.argtypes.ts +77 -0
  45. package/src/lib/matcha-badge/badge.directive.ts +11 -0
  46. package/src/lib/matcha-badge/badge.mdx +69 -0
  47. package/src/lib/matcha-badge/badge.module.ts +5 -10
  48. package/src/lib/matcha-badge/badge.stories.ts +79 -0
  49. package/src/lib/matcha-bottom-sheet/bottom-sheet-overview-example-sheet.html +21 -0
  50. package/src/lib/matcha-bottom-sheet/bottom-sheet-overview-example.component.ts +34 -0
  51. package/src/lib/matcha-bottom-sheet/bottom-sheet-overview-example.html +2 -0
  52. package/src/lib/matcha-bottom-sheet/bottom-sheet.argtypes.ts +117 -0
  53. package/src/lib/matcha-bottom-sheet/bottom-sheet.mdx +69 -0
  54. package/src/lib/matcha-bottom-sheet/bottom-sheet.module.ts +5 -10
  55. package/src/lib/matcha-bottom-sheet/bottom-sheet.stories.ts +39 -0
  56. package/src/lib/matcha-button/button-overview-example.component.ts +18 -0
  57. package/src/lib/matcha-button/button-overview-example.html +118 -0
  58. package/src/lib/matcha-button/button-overview-example.scss +31 -0
  59. package/src/lib/matcha-button/button.argtypes.ts +20 -0
  60. package/src/lib/matcha-button/button.directive.ts +39 -0
  61. package/src/lib/matcha-button/button.mdx +171 -0
  62. package/src/lib/matcha-button/button.module.ts +10 -0
  63. package/src/lib/matcha-button/button.stories.ts +38 -0
  64. package/src/lib/matcha-button-toggle/button-toggle.argtype.ts +115 -0
  65. package/src/lib/matcha-button-toggle/button-toggle.directive.ts +13 -0
  66. package/src/lib/matcha-button-toggle/button-toggle.mdx +63 -0
  67. package/src/lib/matcha-button-toggle/button-toggle.stories.ts +64 -0
  68. package/src/lib/matcha-button-toggle/matcha-button-toggle.directive.ts +0 -1
  69. package/src/lib/matcha-card/card-argtype.ts +54 -0
  70. package/src/lib/matcha-card/card-header.html +10 -0
  71. package/src/lib/matcha-card/card-title-group.html +12 -0
  72. package/src/lib/matcha-card/card.component.spec.ts +21 -0
  73. package/src/lib/matcha-card/card.component.ts +47 -0
  74. package/src/lib/matcha-card/card.mdx +43 -0
  75. package/src/lib/matcha-card/card.module.ts +10 -0
  76. package/src/lib/matcha-card/card.stories.ts +92 -0
  77. package/src/lib/matcha-components.module.ts +12 -47
  78. package/src/lib/matcha-dialog/confirmation-dialog.component.ts +39 -0
  79. package/src/lib/matcha-dialog/confirmation-dialog.stories.ts +21 -0
  80. package/src/lib/matcha-divider/divider.argtypes.ts +18 -0
  81. package/src/lib/matcha-divider/divider.mdx +51 -0
  82. package/src/lib/matcha-divider/divider.module.ts +5 -9
  83. package/src/lib/matcha-divider/divider.stories.ts +49 -0
  84. package/src/lib/matcha-elevation/elevation.argtypes.ts +16 -0
  85. package/src/lib/matcha-elevation/elevation.directive.ts +24 -0
  86. package/src/lib/matcha-elevation/elevation.mdx +50 -0
  87. package/src/lib/matcha-elevation/elevation.module.ts +10 -0
  88. package/src/lib/matcha-elevation/elevation.stories.ts +50 -0
  89. package/src/lib/matcha-expansion/expansion.argtypes.ts +44 -0
  90. package/src/lib/matcha-expansion/expansion.directive.ts +11 -0
  91. package/src/lib/matcha-expansion/expansion.mdx +69 -0
  92. package/src/lib/matcha-expansion/expansion.module.ts +10 -0
  93. package/src/lib/matcha-expansion/expansion.stories.ts +67 -0
  94. package/src/lib/matcha-forms/form-field-argtype.ts +60 -0
  95. package/src/lib/matcha-forms/form-field.directive.ts +11 -0
  96. package/src/lib/matcha-forms/form-field.mdx +20 -0
  97. package/src/lib/matcha-forms/{matcha-form-field.stories.ts → form-field.stories.ts} +64 -68
  98. package/src/lib/matcha-forms/forms.module.ts +5 -14
  99. package/src/lib/matcha-headers/headers.argtype.ts +14 -0
  100. package/src/lib/matcha-headers/headers.mdx +94 -0
  101. package/src/lib/matcha-headers/headers.module.ts +12 -0
  102. package/src/lib/matcha-headers/headers.stories.ts +88 -0
  103. package/src/lib/matcha-headers/headine/headline.component.html +1 -0
  104. package/src/lib/matcha-headers/headine/headline.component.ts +20 -0
  105. package/src/lib/matcha-headers/subhead/subhead.component.html +1 -0
  106. package/src/lib/matcha-headers/subhead/subhead.component.ts +20 -0
  107. package/src/lib/matcha-headers/title/title.component.html +1 -0
  108. package/src/lib/matcha-headers/title/title.component.ts +20 -0
  109. package/src/lib/matcha-icon/icon-argtype.ts +36 -0
  110. package/src/lib/matcha-icon/icon.component.html +3 -0
  111. package/src/lib/matcha-icon/icon.component.scss +0 -0
  112. package/src/lib/matcha-icon/icon.component.ts +34 -0
  113. package/src/lib/matcha-icon/icon.mdx +60 -0
  114. package/src/lib/matcha-icon/icon.module.ts +5 -14
  115. package/src/lib/matcha-icon/icon.stories.ts +416 -0
  116. package/src/lib/matcha-input/input.argtypes.ts +42 -0
  117. package/src/lib/matcha-input/input.directive.ts +11 -0
  118. package/src/lib/matcha-input/input.mdx +73 -0
  119. package/src/lib/matcha-input/input.module.ts +9 -0
  120. package/src/lib/matcha-input/input.stories.ts +97 -0
  121. package/src/lib/matcha-list/list.argtypes.ts +44 -0
  122. package/src/lib/matcha-list/{matcha-list.directive.ts → list.directive.ts} +3 -8
  123. package/src/lib/matcha-list/list.mdx +69 -0
  124. package/src/lib/matcha-list/list.module.ts +5 -9
  125. package/src/lib/matcha-list/list.stories.ts +101 -0
  126. package/src/lib/matcha-menu/menu.argtypes.ts +114 -0
  127. package/src/lib/matcha-menu/menu.mdx +59 -0
  128. package/src/lib/matcha-menu/menu.module.ts +5 -9
  129. package/src/lib/matcha-menu/menu.stories.ts +122 -0
  130. package/src/lib/matcha-paginator/paginator-overview-example.component.ts +13 -0
  131. package/src/lib/matcha-paginator/paginator-overview-example.css +0 -0
  132. package/src/lib/matcha-paginator/paginator-overview-example.html +1 -0
  133. package/src/lib/matcha-paginator/paginator.argtypes.ts +11 -0
  134. package/src/lib/matcha-paginator/paginator.mdx +53 -0
  135. package/src/lib/matcha-paginator/paginator.module.ts +5 -9
  136. package/src/lib/matcha-paginator/paginator.stories.ts +34 -0
  137. package/src/lib/matcha-progress-bar/progress-bar.mdx +1 -1
  138. package/src/lib/matcha-progress-spinner/progress-spinner.mdx +33 -13
  139. package/src/lib/matcha-progress-spinner/progress-spinner.stories.ts +8 -8
  140. package/src/lib/matcha-select/select.argtypes.ts +265 -0
  141. package/src/lib/matcha-select/{matcha-select.directive.ts → select.directive.ts} +3 -8
  142. package/src/lib/matcha-select/select.mdx +54 -0
  143. package/src/lib/matcha-select/select.module.ts +5 -7
  144. package/src/lib/matcha-select/select.stories.ts +164 -0
  145. package/src/lib/matcha-sidenav/sidenav.argtypes.ts +60 -0
  146. package/src/lib/matcha-sidenav/sidenav.directive.ts +11 -0
  147. package/src/lib/matcha-sidenav/sidenav.mdx +57 -0
  148. package/src/lib/matcha-sidenav/sidenav.module.ts +10 -0
  149. package/src/lib/matcha-sidenav/sidenav.stories.ts +79 -0
  150. package/src/lib/matcha-slide-toggle/slide-toggle.mdx +1 -1
  151. package/src/lib/matcha-slider/slider.argtypes.ts +83 -0
  152. package/src/lib/matcha-slider/slider.mdx +45 -0
  153. package/src/lib/matcha-slider/slider.stories.ts +149 -0
  154. package/src/lib/matcha-snackbar/snack-bar-overview-example.component.ts +23 -0
  155. package/src/lib/matcha-snackbar/snack-bar-overview-example.css +3 -0
  156. package/src/lib/matcha-snackbar/snack-bar-overview-example.html +11 -0
  157. package/src/lib/matcha-snackbar/snack-bar.argtypes.ts +11 -0
  158. package/src/lib/matcha-snackbar/snack-bar.directive.ts +11 -0
  159. package/src/lib/matcha-snackbar/snack-bar.mdx +53 -0
  160. package/src/lib/matcha-snackbar/snack-bar.module.ts +10 -0
  161. package/src/lib/matcha-snackbar/snack-bar.stories.ts +34 -0
  162. package/src/lib/matcha-sort-header/example/sort-overview-example.component.ts +67 -0
  163. package/src/lib/matcha-sort-header/example/sort-overview-example.css +3 -0
  164. package/src/lib/matcha-sort-header/example/sort-overview-example.html +21 -0
  165. package/src/lib/matcha-sort-header/sort-header.argtypes.ts +11 -0
  166. package/src/lib/matcha-sort-header/sort-header.mdx +78 -0
  167. package/src/lib/matcha-sort-header/sort-header.module.ts +5 -7
  168. package/src/lib/matcha-sort-header/sort-header.stories.ts +34 -0
  169. package/src/lib/matcha-stepper/stepper.argtypes.ts +92 -0
  170. package/src/lib/matcha-stepper/stepper.mdx +68 -0
  171. package/src/lib/matcha-stepper/stepper.module.ts +5 -7
  172. package/src/lib/matcha-stepper/stepper.stories.ts +163 -0
  173. package/src/lib/matcha-table/example/table-basic-example.component.ts +37 -0
  174. package/src/lib/matcha-table/example/table-basic-example.css +0 -0
  175. package/src/lib/matcha-table/example/table-basic-example.html +35 -0
  176. package/src/lib/matcha-table/table.argtypes.ts +11 -0
  177. package/src/lib/matcha-table/table.mdx +78 -0
  178. package/src/lib/matcha-table/table.module.ts +5 -7
  179. package/src/lib/matcha-table/table.stories.ts +34 -0
  180. package/src/lib/matcha-tabs/tabs.argtypes.ts +11 -0
  181. package/src/lib/matcha-tabs/tabs.mdx +69 -0
  182. package/src/lib/matcha-tabs/tabs.module.ts +5 -11
  183. package/src/lib/matcha-tabs/tabs.stories.ts +49 -0
  184. package/src/lib/matcha-toolbar/toolbar.argtypes.ts +20 -0
  185. package/src/lib/matcha-toolbar/toolbar.directive.ts +11 -0
  186. package/src/lib/matcha-toolbar/toolbar.mdx +57 -0
  187. package/src/lib/matcha-toolbar/toolbar.module.ts +10 -0
  188. package/src/lib/matcha-toolbar/toolbar.stories.ts +100 -0
  189. package/src/lib/matcha-tooltip/tooltip.argtypes.ts +11 -0
  190. package/src/lib/matcha-tooltip/tooltip.mdx +69 -0
  191. package/src/lib/matcha-tooltip/tooltip.module.ts +5 -7
  192. package/src/lib/matcha-tooltip/tooltip.stories.ts +79 -0
  193. package/src/lib/matcha-tree/tree.argtypes.ts +42 -0
  194. package/src/lib/matcha-tree/tree.mdx +49 -0
  195. package/src/lib/matcha-tree/tree.module.ts +5 -7
  196. package/src/lib/matcha-tree/tree.stories.ts +130 -0
  197. package/src/public-api.ts +27 -28
  198. package/src/lib/matcha-badge/matcha-badge.directive.ts +0 -16
  199. package/src/lib/matcha-buttons/buttons.module.ts +0 -27
  200. package/src/lib/matcha-buttons/matcha-btn-md.directive.ts +0 -16
  201. package/src/lib/matcha-buttons/matcha-btn-pill.directive.ts +0 -15
  202. package/src/lib/matcha-buttons/matcha-btn-size.directive.ts +0 -17
  203. package/src/lib/matcha-buttons/matcha-btn-xl.directive.ts +0 -15
  204. package/src/lib/matcha-card/card.mdx.txt +0 -55
  205. package/src/lib/matcha-card/matcha-card-argtype.ts +0 -123
  206. package/src/lib/matcha-card/matcha-card-content/matcha-card-content.component.html +0 -3
  207. package/src/lib/matcha-card/matcha-card-content/matcha-card-content.component.spec.ts +0 -21
  208. package/src/lib/matcha-card/matcha-card-content/matcha-card-content.component.ts +0 -10
  209. package/src/lib/matcha-card/matcha-card-footer/matcha-card-footer.component.html +0 -3
  210. package/src/lib/matcha-card/matcha-card-footer/matcha-card-footer.component.spec.ts +0 -21
  211. package/src/lib/matcha-card/matcha-card-footer/matcha-card-footer.component.ts +0 -10
  212. package/src/lib/matcha-card/matcha-card-header/matcha-card-header.component.html +0 -4
  213. package/src/lib/matcha-card/matcha-card-header/matcha-card-header.component.spec.ts +0 -21
  214. package/src/lib/matcha-card/matcha-card-header/matcha-card-header.component.ts +0 -10
  215. package/src/lib/matcha-card/matcha-card.component.scss +0 -117
  216. package/src/lib/matcha-card/matcha-card.component.spec.ts +0 -21
  217. package/src/lib/matcha-card/matcha-card.component.ts +0 -43
  218. package/src/lib/matcha-card/matcha-card.module.ts +0 -27
  219. package/src/lib/matcha-card/matcha-card.stories.ts +0 -80
  220. package/src/lib/matcha-expansion-panel/expansion-panel.module.ts +0 -14
  221. package/src/lib/matcha-expansion-panel/matcha-expansion-panel.directive.ts +0 -16
  222. package/src/lib/matcha-forms/matcha-form-field-appearance.directive.ts +0 -16
  223. package/src/lib/matcha-forms/matcha-form-field-argtype.ts +0 -73
  224. package/src/lib/matcha-forms/matcha-form-field.mdx +0 -284
  225. package/src/lib/matcha-forms/matcha-form-input-text.directive.ts +0 -16
  226. package/src/lib/matcha-icon/matcha-icon-position-pos.directive.ts +0 -15
  227. package/src/lib/matcha-icon/matcha-icon-position-pre.directive.ts +0 -15
  228. package/src/lib/matcha-menu/menu.stories.txt +0 -76
  229. package/src/lib/matcha-snackbar/matcha-snackbar.directive.ts +0 -16
  230. package/src/lib/matcha-snackbar/snackbar.module.ts +0 -12
  231. package/src/lib/matcha-title/matcha-title.component.html +0 -33
  232. package/src/lib/matcha-title/matcha-title.component.spec.ts +0 -21
  233. package/src/lib/matcha-title/matcha-title.component.ts +0 -24
  234. package/src/lib/matcha-title/matcha-title.module.ts +0 -18
  235. /package/src/lib/matcha-bottom-sheet/{matcha-bottom-sheet.directive.ts → bottom-sheet.directive.ts} +0 -0
  236. /package/src/lib/{matcha-buttons/button.stories.ts → matcha-button/button.stories.ts.TXT} +0 -0
  237. /package/src/lib/matcha-card/{matcha-card.component.html → card.component.html} +0 -0
  238. /package/src/lib/matcha-card/{matcha-card-content/matcha-card-content.component.scss → card.component.scss} +0 -0
  239. /package/src/lib/matcha-divider/{matcha-divider.directive.ts → divider.directive.ts} +0 -0
  240. /package/src/lib/{matcha-card/matcha-card-footer/matcha-card-footer.component.scss → matcha-headers/headine/headline.component.scss} +0 -0
  241. /package/src/lib/{matcha-card/matcha-card-header/matcha-card-header.component.scss → matcha-headers/subhead/subhead.component.scss} +0 -0
  242. /package/src/lib/{matcha-title/matcha-title.component.scss → matcha-headers/title/title.component.scss} +0 -0
  243. /package/src/lib/matcha-menu/{matcha-menu.directive.ts → menu.directive.ts} +0 -0
  244. /package/src/lib/matcha-paginator/{matcha-paginator.directive.ts → paginator.directive.ts} +0 -0
  245. /package/src/lib/matcha-sort-header/{matcha-sort-header.directive.ts → sort-header.directive.ts} +0 -0
  246. /package/src/lib/matcha-stepper/{matcha-stepper.directive.ts → stepper.directive.ts} +0 -0
  247. /package/src/lib/matcha-table/{matcha-table.directive.ts → table.directive.ts} +0 -0
  248. /package/src/lib/matcha-tabs/{matcha-tabs.directive.ts → tabs.directive.ts} +0 -0
  249. /package/src/lib/matcha-tooltip/{matcha-tooltip.directive.ts → tooltip.directive.ts} +0 -0
  250. /package/src/lib/matcha-tree/{matcha-tree.directive.ts → tree.directive.ts} +0 -0
@@ -0,0 +1,164 @@
1
+ import { applicationConfig, Meta, moduleMetadata, StoryObj } from '@storybook/angular';
2
+ import { action } from '@storybook/addon-actions';
3
+
4
+ import { NgIf, NgFor } from '@angular/common';
5
+ import { CommonModule } from '@angular/common';
6
+ import { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';
7
+ import { provideAnimations } from '@angular/platform-browser/animations';
8
+
9
+ import { MatSelectModule } from '@angular/material/select';
10
+ import { MatFormFieldModule } from '@angular/material/form-field';
11
+
12
+ import { selectArgtypes } from './select.argtypes';
13
+
14
+ export default {
15
+ title: 'Atoms / Select',
16
+ decorators: [
17
+ applicationConfig({
18
+ providers: [provideAnimations()],
19
+ }),
20
+
21
+ moduleMetadata({
22
+ imports: [CommonModule, FormsModule, MatFormFieldModule, MatSelectModule, ReactiveFormsModule, NgIf, NgFor],
23
+ }),
24
+ ],
25
+ args: {
26
+ color: 'accent',
27
+ required: true,
28
+ placeholder: 'Selecione uma opção',
29
+ panelWidth: 'auto',
30
+ panelClass: 'background-accent-alpha',
31
+ multiple: true,
32
+ id: 'select',
33
+ hideSingleSelectionIndicator: false,
34
+ errorStateMatcher: null,
35
+ disabled: false,
36
+ disableRipple: false,
37
+ disableOptionCentering: false,
38
+ sortComparator: null,
39
+ typeaheadDebounceInterval: 200,
40
+ value: '',
41
+ controlType: 'mat-select',
42
+ defaultTabIndex: 0,
43
+ empty: false,
44
+ errorState: false,
45
+ focused: false,
46
+ panelOpen: false,
47
+ shouldLabelFloat: true,
48
+ triggerValue: '',
49
+ openedChange: action('openedChange'),
50
+ selectionChange: action('selectionChange'),
51
+ },
52
+ argTypes: selectArgtypes,
53
+ parameters: {
54
+ controls: { expanded: true },
55
+ },
56
+ } as Meta;
57
+
58
+ export const SelectBasic: StoryObj = {
59
+ render: (args) => ({
60
+ props: {
61
+ ...args,
62
+ required: {
63
+ table: {
64
+ disable: true,
65
+ },
66
+ },
67
+ },
68
+ parameters: {
69
+ controls: {
70
+ controls: { expanded: false },
71
+ exclude: ['required', 'placeholder', 'panelWidth', 'panelClass', 'multiple', 'id', 'hideSingleSelectionIndicator', 'errorStateMatcher', 'disabled', 'disableRipple', 'disableOptionCentering', 'sortComparator', 'typeaheadDebounceInterval', 'value', 'controlType', 'defaultTabIndex', 'empty', 'errorState', 'focused', 'panelOpen', 'shouldLabelFloat', 'triggerValue'],
72
+ },
73
+ },
74
+ template: `
75
+ <div class="d-flex-center-center">
76
+ <form class="matcha-card background-surface d-flex-column gap-16 max-w-256 w-256">
77
+ <mat-form-field appearance="outline" [color]="color">
78
+
79
+ <mat-label>Choose an option</mat-label>
80
+ <mat-select (click)="openedChange($event)" (onchange)="selectionChange($event)">
81
+ <mat-option value="option1">Option 1</mat-option>
82
+ <mat-option value="option2" disabled>Option 2 (disabled)</mat-option>
83
+ <mat-option value="option3">Option 3</mat-option>
84
+ </mat-select>
85
+
86
+ </mat-form-field>
87
+ </form>
88
+ </div>
89
+ `,
90
+ }),
91
+ name: 'Basic',
92
+ };
93
+
94
+ const toppings = new FormControl('');
95
+ const toppingList: string[] = ['Extra cheese', 'Mushroom', 'Onion', 'Pepperoni', 'Sausage', 'Tomato'];
96
+
97
+ export const SelectMultiple: StoryObj = {
98
+ render: (args) => ({
99
+ props: {
100
+ ...args,
101
+ toppings,
102
+ toppingList,
103
+ },
104
+ parameters: {
105
+ controls: {
106
+ exclude: ['color', 'required', 'placeholder', 'panelWidth', 'panelClass', 'multiple', 'id', 'hideSingleSelectionIndicator', 'errorStateMatcher', 'disabled', 'disableRipple', 'disableOptionCentering', 'sortComparator', 'typeaheadDebounceInterval', 'value', 'controlType', 'defaultTabIndex', 'empty', 'errorState', 'focused', 'panelOpen', 'shouldLabelFloat', 'triggerValue'],
107
+ },
108
+ },
109
+ template: `
110
+ <div class="d-flex-center-center">
111
+ <form class="matcha-card background-surface d-flex-column gap-16 max-w-256 w-256">
112
+ <mat-form-field appearance="outline" [color]="color">
113
+
114
+ <mat-label>Toppings</mat-label>
115
+ <mat-select [formControl]="toppings" multiple="true" (click)="openedChange($event)" (onChange)="selectionChange($event)">
116
+ <mat-select-trigger>
117
+ {{toppings.value?.[0] || ''}}
118
+ <span *ngIf="(toppings.value?.length || 0) > 1" class="example-additional-selection">
119
+ (+{{(toppings.value?.length || 0) - 1}} {{toppings.value?.length === 2 ? 'other' : 'others'}})
120
+ </span>
121
+ </mat-select-trigger>
122
+ <mat-option *ngFor="let topping of toppingList" [value]="topping">{{topping}}</mat-option>
123
+ </mat-select>
124
+
125
+ </mat-form-field>
126
+ </form>
127
+ </div>
128
+ `,
129
+ }),
130
+ name: 'Multiple Select',
131
+ };
132
+
133
+ const toppingsControls = new FormControl('');
134
+
135
+ export const SelectControls: StoryObj = {
136
+ render: (args) => ({
137
+ props: {
138
+ ...args,
139
+ toppingsControls,
140
+ toppingList,
141
+ },
142
+ template: `
143
+ <div class="d-flex-center-center">
144
+ <form class="matcha-card background-surface d-flex-column gap-16 max-w-256 w-256">
145
+ <mat-form-field appearance="outline" [color]="color">
146
+
147
+ <mat-label>Toppings</mat-label>
148
+ <mat-select [formControl]="toppingsControls" [multiple]="multiple" [required]="required" [placeholder]="placeholder" [panelWidth]="panelWidth" [panelClass]="panelClass" [id]="id" [hideSingleSelectionIndicator]="hideSingleSelectionIndicator" [errorStateMatcher]="errorStateMatcher" [disabled]="disabled" [disableRipple]="disableRipple" [disableOptionCentering]="disableOptionCentering" [sortComparator]="sortComparator" [typeaheadDebounceInterval]="typeaheadDebounceInterval" [value]="value" [controlType]="controlType" [defaultTabIndex]="defaultTabIndex" [empty]="empty" [errorState]="errorState" [focused]="focused" [panelOpen]="panelOpen" [shouldLabelFloat]="shouldLabelFloat" [triggerValue]="triggerValue" >
149
+ <mat-select-trigger>
150
+ {{toppingsControls.value?.[0] || ''}}
151
+ <span *ngIf="(toppingsControls.value?.length || 0) > 1" class="example-additional-selection">
152
+ (+{{(toppingsControls.value?.length || 0) - 1}} {{toppingsControls.value?.length === 2 ? 'other' : 'others'}})
153
+ </span>
154
+ </mat-select-trigger>
155
+ <mat-option *ngFor="let topping of toppingList" [value]="topping">{{topping}}</mat-option>
156
+ </mat-select>
157
+
158
+ </mat-form-field>
159
+ </form>
160
+ </div>
161
+ `,
162
+ }),
163
+ name: 'Controls',
164
+ };
@@ -0,0 +1,60 @@
1
+ export const sidenavArgtypes = {
2
+ autoFocus: {
3
+ description: 'Whether the drawer should focus the first focusable element automatically when opened.',
4
+ control: 'boolean',
5
+ defaultValue: false,
6
+ table: {
7
+ type: { summary: 'boolean' },
8
+ },
9
+ },
10
+ disableClose: {
11
+ description: 'Whether the drawer can be closed with the escape key or by clicking on the backdrop.',
12
+ control: 'boolean',
13
+ defaultValue: false,
14
+ table: {
15
+ type: { summary: 'boolean' },
16
+ },
17
+ },
18
+ mode: {
19
+ description: 'Mode of the drawer; one of "over", "push", or "side".',
20
+ control: 'select',
21
+ options: ['over', 'push', 'side'],
22
+ defaultValue: 'over',
23
+ table: {
24
+ type: { summary: 'MatDrawerMode' },
25
+ },
26
+ },
27
+ opened: {
28
+ description: 'Whether the drawer is opened.',
29
+ control: 'boolean',
30
+ defaultValue: false,
31
+ table: {
32
+ type: { summary: 'boolean' },
33
+ },
34
+ },
35
+ position: {
36
+ description: 'The side that the drawer is attached to.',
37
+ control: 'select',
38
+ options: ['start', 'end'],
39
+ defaultValue: 'start',
40
+ table: {
41
+ type: { summary: '"start" | "end"' },
42
+ },
43
+ },
44
+ closedStart: {
45
+ description: 'Event emitted when the drawer has started closing.',
46
+ action: 'closedStart',
47
+ },
48
+ onPositionChanged: {
49
+ description: "Event emitted when the drawer's position changes.",
50
+ action: 'onPositionChanged',
51
+ },
52
+ openedChange: {
53
+ description: 'Event emitted when the drawer open state is changed.',
54
+ action: 'openedChange',
55
+ },
56
+ openedStart: {
57
+ description: 'Event emitted when the drawer has started opening.',
58
+ action: 'openedStart',
59
+ },
60
+ };
@@ -0,0 +1,11 @@
1
+ import { Directive, ElementRef, Renderer2 } from '@angular/core';
2
+
3
+ @Directive({
4
+ selector: '[matcha-sidenav]',
5
+ })
6
+ export class MatchaSidenavDirective {
7
+ constructor(private _elementRef: ElementRef, private _renderer: Renderer2) {
8
+ //this._elementRef.nativeElement.style.backgroundColor = 'grey';
9
+ this._renderer.addClass(this._elementRef.nativeElement, 'matcha-sidenav');
10
+ }
11
+ }
@@ -0,0 +1,57 @@
1
+ import { Story } from "@storybook/blocks";
2
+ import { Meta } from "@storybook/addon-docs";
3
+ import * as ComponentStories from "./sidenav.stories";
4
+
5
+ <Meta title="Atoms / Sidenav / Documentação" />
6
+
7
+ # Sidenav
8
+
9
+ > _sidenav_ "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">Autosize Sidenav</span>
19
+ <div class="matcha-card background-bg">
20
+ <Story of={ComponentStories.AutosizeSidenav} />
21
+ </div>
22
+
23
+ <div class="d-flex-column">
24
+
25
+ ```html
26
+ <mat-drawer-container class="example-container" autosize>
27
+ <mat-drawer #drawer class="example-sidenav" mode="side">
28
+ <p>Auto-resizing sidenav</p>
29
+ <p *ngIf="showFiller">Lorem, ipsum dolor sit amet consectetur.</p>
30
+ <button (click)="showFiller = !showFiller" mat-raised-button>
31
+ Toggle extra text
32
+ </button>
33
+ </mat-drawer>
34
+
35
+ <div class="example-sidenav-content">
36
+ <button type="button" mat-button (click)="drawer.toggle()">
37
+ Toggle sidenav
38
+ </button>
39
+ </div>
40
+ </mat-drawer-container>
41
+ ```
42
+
43
+ </div>
44
+ </div>
45
+ </div>
46
+
47
+ </div>
48
+
49
+ <br />
50
+
51
+ ### Installation
52
+
53
+ `import {MatSidenavModule} from '@angular/material/sidenav';`
54
+
55
+ [Official documentation](https://https://material.angular.io/components/sidenav/overview)
56
+
57
+ <br />
@@ -0,0 +1,10 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { MatchaSidenavDirective } from './sidenav.directive';
4
+
5
+ @NgModule({
6
+ declarations: [MatchaSidenavDirective],
7
+ imports: [CommonModule],
8
+ exports: [MatchaSidenavDirective],
9
+ })
10
+ export class MatchaSidenavModule {}
@@ -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 { MatSidenavModule } from '@angular/material/sidenav';
6
+ import { MatButtonModule } from '@angular/material/button';
7
+ import { provideAnimations } from '@angular/platform-browser/animations';
8
+ import { sidenavArgtypes } from './sidenav.argtypes';
9
+
10
+ export default {
11
+ title: 'Atoms / Sidenav',
12
+ decorators: [
13
+ applicationConfig({
14
+ providers: [provideAnimations()],
15
+ }),
16
+
17
+ moduleMetadata({
18
+ imports: [CommonModule, MatIconModule, MatSidenavModule, MatButtonModule, NgIf, JsonPipe, NgFor, AsyncPipe],
19
+ }),
20
+ ],
21
+ args: {
22
+ color: 'accent',
23
+ },
24
+ argTypes: sidenavArgtypes,
25
+ parameters: {
26
+ controls: { expanded: true },
27
+ },
28
+ } as Meta;
29
+
30
+ const showFiller = false;
31
+ export const AutosizeSidenav: StoryObj = {
32
+ render: (args) => ({
33
+ props: {
34
+ ...args,
35
+ showFiller,
36
+ },
37
+ template: `
38
+ <style>
39
+ .example-container {
40
+ width: 500px;
41
+ height: 300px;
42
+ border: 1px solid rgba(0, 0, 0, 0.5);
43
+ }
44
+
45
+ .example-sidenav-content {
46
+ display: flex;
47
+ height: 100%;
48
+ align-items: center;
49
+ justify-content: center;
50
+ }
51
+
52
+ .example-sidenav {
53
+ padding: 20px;
54
+ }
55
+ </style>
56
+ <div class="d-flex-center-center">
57
+ <div class="matcha-card background-surface d-flex-column gap-16">
58
+ <mat-drawer-container class="example-container" autosize>
59
+ <mat-drawer #drawer class="example-sidenav" mode="side">
60
+ <p>Auto-resizing sidenav</p>
61
+ <p *ngIf="showFiller">Lorem, ipsum dolor sit amet consectetur.</p>
62
+ <button (click)="showFiller = !showFiller" mat-raised-button>
63
+ Toggle extra text
64
+ </button>
65
+ </mat-drawer>
66
+
67
+ <div class="example-sidenav-content">
68
+ <button type="button" mat-button (click)="drawer.toggle()">
69
+ Toggle sidenav
70
+ </button>
71
+ </div>
72
+ </mat-drawer-container>
73
+ </div>
74
+ </div>
75
+
76
+ `,
77
+ }),
78
+ name: 'Autosize sidenav',
79
+ };
@@ -6,7 +6,7 @@ import * as ComponentStories from "./slide-toggle.stories";
6
6
 
7
7
  # Slide Toggle
8
8
 
9
- > _mat-slide-toggle_ is an on/off control that can be toggled via clicking.
9
+ > _mat-slide-toggle_ "ESCREVER DEFINIÇÃO DO ATÔMICO"
10
10
 
11
11
  ---
12
12
 
@@ -0,0 +1,83 @@
1
+ export const sliderArgtypes = {
2
+ color: {
3
+ description: 'Theme color palette for the component.',
4
+ control: 'select',
5
+ options: ['primary', 'accent', 'warn'],
6
+ defaultValue: 'accent',
7
+ table: {
8
+ type: { summary: 'ThemePalette' },
9
+ },
10
+ },
11
+ disableRipple: {
12
+ description: 'Whether ripples are disabled.',
13
+ control: 'boolean',
14
+ defaultValue: false,
15
+ table: {
16
+ type: { summary: 'boolean' },
17
+ },
18
+ },
19
+ disabled: {
20
+ description: 'Whether the slider is disabled.',
21
+ control: 'boolean',
22
+ defaultValue: false,
23
+ table: {
24
+ type: { summary: 'boolean' },
25
+ },
26
+ },
27
+ discrete: {
28
+ description: 'Whether the slider displays a numeric value label upon pressing the thumb.',
29
+ control: 'boolean',
30
+ defaultValue: false,
31
+ table: {
32
+ type: { summary: 'boolean' },
33
+ },
34
+ },
35
+ displayWith: {
36
+ description: 'Function that will be used to format the value before it is displayed in the thumb label.',
37
+ control: null, // Como é uma função, não é necessário um controle.
38
+ table: {
39
+ disable: true,
40
+ },
41
+ },
42
+ max: {
43
+ description: 'The maximum value that the slider can have.',
44
+ control: 'number',
45
+ defaultValue: 100,
46
+ table: {
47
+ type: { summary: 'number' },
48
+ },
49
+ },
50
+ min: {
51
+ description: 'The minimum value that the slider can have.',
52
+ control: 'number',
53
+ defaultValue: 0,
54
+ table: {
55
+ type: { summary: 'number' },
56
+ },
57
+ },
58
+ showTickMarks: {
59
+ description: 'Whether the slider displays tick marks along the slider track.',
60
+ control: 'boolean',
61
+ defaultValue: false,
62
+ table: {
63
+ type: { summary: 'boolean' },
64
+ },
65
+ },
66
+ step: {
67
+ description: 'The values at which the thumb will snap.',
68
+ control: 'number',
69
+ defaultValue: 1,
70
+ table: {
71
+ type: { summary: 'number' },
72
+ },
73
+ },
74
+ defaultColor: {
75
+ description: 'Default color to fall back to if no value is set.',
76
+ control: 'select',
77
+ options: ['primary', 'accent', 'warn', 'undefined'],
78
+ defaultValue: 'undefined',
79
+ table: {
80
+ type: { summary: 'ThemePalette | undefined' },
81
+ },
82
+ },
83
+ };
@@ -0,0 +1,45 @@
1
+ import { Story } from "@storybook/blocks";
2
+ import { Meta } from "@storybook/addon-docs";
3
+ import * as ComponentStories from "./slider.stories";
4
+
5
+ <Meta title="Atoms / Slider / Documentação" />
6
+
7
+ # Slider
8
+
9
+ > _slider_ "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">Slider - Basic slider</span>
19
+ <div class="matcha-card background-bg">
20
+ <Story of={ComponentStories.SliderBasic} />
21
+ </div>
22
+
23
+ <div class="d-flex-column">
24
+
25
+ ```html
26
+ <form>
27
+
28
+ </form>
29
+ ```
30
+
31
+ </div>
32
+ </div>
33
+ </div>
34
+
35
+ </div>
36
+
37
+ <br />
38
+
39
+ ### Installation
40
+
41
+ `import {MatSliderModule} from '@angular/material/slider';`
42
+
43
+ [Official documentation](https://https://material.angular.io/components/slider/overview)
44
+
45
+ <br />
@@ -0,0 +1,149 @@
1
+ import { applicationConfig, Meta, moduleMetadata, StoryObj } from '@storybook/angular';
2
+
3
+ import { NgIf, NgFor } from '@angular/common';
4
+ import { CommonModule } from '@angular/common';
5
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
6
+ import { provideAnimations } from '@angular/platform-browser/animations';
7
+
8
+ import { MatCheckboxModule } from '@angular/material/checkbox';
9
+ import { MatInputModule } from '@angular/material/input';
10
+ import { MatSliderModule } from '@angular/material/slider';
11
+ import { MatFormFieldModule } from '@angular/material/form-field';
12
+ import { MatchaCardModule } from 'matcha-components';
13
+
14
+ import { sliderArgtypes } from './slider.argtypes';
15
+
16
+ export default {
17
+ title: 'Atoms / Slider',
18
+ decorators: [
19
+ applicationConfig({
20
+ providers: [provideAnimations()],
21
+ }),
22
+
23
+ moduleMetadata({
24
+ imports: [CommonModule, FormsModule, MatFormFieldModule, MatSliderModule, MatCheckboxModule, MatchaCardModule, MatInputModule, ReactiveFormsModule, NgIf, NgFor],
25
+ }),
26
+ ],
27
+ args: {
28
+ color: 'accent',
29
+ disableRipple: false,
30
+ disabled: false,
31
+ discrete: false,
32
+ max: 100,
33
+ min: 0,
34
+ showTickMarks: false,
35
+ step: 1,
36
+ defaultColor: 'accent',
37
+ },
38
+ argTypes: sliderArgtypes,
39
+ parameters: {
40
+ controls: { expanded: true },
41
+ },
42
+ } as Meta;
43
+
44
+ export const SliderBasic: StoryObj = {
45
+ render: (args) => ({
46
+ props: args,
47
+ template: `
48
+ <div class="d-flex-center-center">
49
+ <form class="matcha-card background-surface d-flex-column gap-16 max-w-256 w-256">
50
+ <mat-slider>
51
+ <input matSliderThumb>
52
+ </mat-slider>
53
+ </form>
54
+ </div>
55
+ `,
56
+ }),
57
+ name: 'Basic',
58
+ };
59
+
60
+ export const RangeSlider: StoryObj = {
61
+ render: (args) => ({
62
+ props: args,
63
+ template: `
64
+ <div class="d-flex-center-center">
65
+ <form class="matcha-card background-surface d-flex-column gap-16 max-w-256 w-256">
66
+ <mat-slider min="200" max="500">
67
+ <input value="300" matSliderStartThumb>
68
+ <input value="400" matSliderEndThumb>
69
+ </mat-slider>
70
+ </form>
71
+ </div>
72
+ `,
73
+ }),
74
+ name: 'Range Slider',
75
+ };
76
+
77
+ const disabled = false;
78
+ const max = 100;
79
+ const min = 0;
80
+ const showTicks = false;
81
+ const step = 1;
82
+ const thumbLabel = false;
83
+ const value = 0;
84
+ export const SliderWithLabel: StoryObj = {
85
+ render: (args) => ({
86
+ props: args,
87
+ template: `
88
+ <div class="matcha-card background-surface d-flex-column gap-16">
89
+ <div class="matcha-card background-bg d-flex-column gap-16">
90
+ <div class="matcha-card background-surface d-flex-column gap-16">
91
+ <h2>Configuration</h2>
92
+ <section class="grid-md-4 gap-16">
93
+ <mat-form-field appearance="outline" [color]="color">
94
+ <mat-label>Value</mat-label>
95
+ <input matInput type="number" [(ngModel)]="value">
96
+ </mat-form-field>
97
+ <mat-form-field appearance="outline" [color]="color">
98
+ <mat-label>Min value</mat-label>
99
+ <input matInput type="number" [(ngModel)]="min">
100
+ </mat-form-field>
101
+ <mat-form-field appearance="outline" [color]="color">
102
+ <mat-label>Max value</mat-label>
103
+ <input matInput type="number" [(ngModel)]="max">
104
+ </mat-form-field>
105
+ <mat-form-field appearance="outline" [color]="color">
106
+ <mat-label>Step size</mat-label>
107
+ <input matInput type="number" [(ngModel)]="step">
108
+ </mat-form-field>
109
+ </section>
110
+
111
+ <section class="example-section">
112
+ <mat-checkbox [(ngModel)]="showTicks">Show ticks</mat-checkbox>
113
+ </section>
114
+
115
+ <section class="example-section">
116
+ <mat-checkbox [(ngModel)]="thumbLabel">Show thumb label</mat-checkbox>
117
+ </section>
118
+
119
+ <section class="example-section">
120
+ <mat-checkbox [(ngModel)]="disabled">Disabled</mat-checkbox>
121
+ </section>
122
+ </div>
123
+ </div>
124
+
125
+ <div class="matcha-card background-bg d-flex-column gap-16">
126
+ <div class="matcha-card background-surface d-flex-column gap-16">
127
+ <h2>Result</h2>
128
+
129
+ <div class="example-label-container">
130
+ <label id="example-name-label" class="example-name-label">Value</label>
131
+ <label class="example-value-label">{{slider.value}}</label>
132
+ </div>
133
+ <mat-slider
134
+ class="example-margin"
135
+ [disabled]="disabled"
136
+ [max]="max"
137
+ [min]="min"
138
+ [step]="step"
139
+ [discrete]="thumbLabel"
140
+ [showTickMarks]="showTicks">
141
+ <input matSliderThumb [(ngModel)]="value" #slider>
142
+ </mat-slider>
143
+ </div>
144
+ </div>
145
+ </div>
146
+ `,
147
+ }),
148
+ name: 'With Label',
149
+ };