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.
Files changed (251) hide show
  1. package/index.ts +1 -0
  2. package/package.json +1 -1
  3. package/src/documentation/presentation.mdx +105 -0
  4. package/src/foundation/borders/borders.mdx +180 -0
  5. package/src/foundation/colors/base/amber.mdx +12 -9
  6. package/src/foundation/colors/base/blue.mdx +12 -9
  7. package/src/foundation/colors/base/cyan.mdx +12 -9
  8. package/src/foundation/colors/base/deep-orange.mdx +12 -9
  9. package/src/foundation/colors/base/deep-purple.mdx +12 -9
  10. package/src/foundation/colors/base/green.mdx +12 -9
  11. package/src/foundation/colors/base/indigo.mdx +12 -9
  12. package/src/foundation/colors/base/light-blue.mdx +12 -9
  13. package/src/foundation/colors/base/light-green.mdx +12 -9
  14. package/src/foundation/colors/base/lime.mdx +12 -9
  15. package/src/foundation/colors/base/orange.mdx +12 -9
  16. package/src/foundation/colors/base/pink.mdx +12 -9
  17. package/src/foundation/colors/base/purple.mdx +12 -9
  18. package/src/foundation/colors/base/red.mdx +12 -9
  19. package/src/foundation/colors/base/teal.mdx +12 -9
  20. package/src/foundation/colors/base/yellow.mdx +12 -9
  21. package/src/foundation/colors/base-colors.mdx +21 -18
  22. package/src/foundation/colors/theme/accent.mdx +12 -9
  23. package/src/foundation/colors/theme/primary.mdx +12 -9
  24. package/src/foundation/colors/theme/warn.mdx +12 -9
  25. package/src/foundation/colors/theme-colors.mdx +11 -37
  26. package/src/foundation/spacing/margins.mdx +183 -0
  27. package/src/foundation/spacing/paddings.mdx +156 -0
  28. package/src/foundation/typography/colors.mdx +26 -0
  29. package/src/foundation/typography/font-size.mdx +57 -0
  30. package/src/foundation/typography/font-weight.mdx +65 -0
  31. package/src/foundation/typography/helpers.mdx +86 -0
  32. package/src/foundation/typography/letter-spacing.mdx +35 -0
  33. package/src/foundation/typography/line-height.mdx +52 -0
  34. package/src/foundation/typography/message-box.mdx +43 -0
  35. package/src/foundation/typography/text-align.mdx +22 -0
  36. package/src/foundation/typography/text-styles.mdx +88 -0
  37. package/src/lib/matcha-autocomplete/autocomplete.mdx +1 -1
  38. package/src/lib/matcha-autocomplete/autocomplete.stories.ts +16 -25
  39. package/src/lib/matcha-autocomplete/example/autocomplete-auto-active-first-option-example.css +9 -0
  40. package/src/lib/matcha-autocomplete/example/autocomplete-auto-active-first-option-example.html +9 -0
  41. package/src/lib/matcha-autocomplete/example/autocomplete-auto-active-first-option-example.ts +37 -0
  42. package/src/lib/matcha-autocomplete/example/autocomplete-overview-example.css +19 -0
  43. package/src/lib/matcha-autocomplete/example/autocomplete-overview-example.html +17 -0
  44. package/src/lib/matcha-autocomplete/example/autocomplete-overview-example.ts +70 -0
  45. package/src/lib/matcha-badge/badge.argtypes.ts +77 -0
  46. package/src/lib/matcha-badge/badge.directive.ts +11 -0
  47. package/src/lib/matcha-badge/badge.mdx +69 -0
  48. package/src/lib/matcha-badge/badge.module.ts +5 -10
  49. package/src/lib/matcha-badge/badge.stories.ts +79 -0
  50. package/src/lib/matcha-bottom-sheet/bottom-sheet-overview-example-sheet.html +21 -0
  51. package/src/lib/matcha-bottom-sheet/bottom-sheet-overview-example.component.ts +34 -0
  52. package/src/lib/matcha-bottom-sheet/bottom-sheet-overview-example.html +2 -0
  53. package/src/lib/matcha-bottom-sheet/bottom-sheet.argtypes.ts +117 -0
  54. package/src/lib/matcha-bottom-sheet/bottom-sheet.mdx +69 -0
  55. package/src/lib/matcha-bottom-sheet/bottom-sheet.module.ts +5 -10
  56. package/src/lib/matcha-bottom-sheet/bottom-sheet.stories.ts +39 -0
  57. package/src/lib/matcha-button/button-overview-example.component.ts +18 -0
  58. package/src/lib/matcha-button/button-overview-example.html +118 -0
  59. package/src/lib/matcha-button/button-overview-example.scss +31 -0
  60. package/src/lib/matcha-button/button.argtypes.ts +20 -0
  61. package/src/lib/matcha-button/button.directive.ts +39 -0
  62. package/src/lib/matcha-button/button.mdx +171 -0
  63. package/src/lib/matcha-button/button.module.ts +10 -0
  64. package/src/lib/matcha-button/button.stories.ts +38 -0
  65. package/src/lib/matcha-button-toggle/button-toggle.argtype.ts +115 -0
  66. package/src/lib/matcha-button-toggle/button-toggle.directive.ts +13 -0
  67. package/src/lib/matcha-button-toggle/button-toggle.mdx +63 -0
  68. package/src/lib/matcha-button-toggle/button-toggle.stories.ts +64 -0
  69. package/src/lib/matcha-button-toggle/matcha-button-toggle.directive.ts +0 -1
  70. package/src/lib/matcha-card/card-argtype.ts +54 -0
  71. package/src/lib/matcha-card/card-header.html +10 -0
  72. package/src/lib/matcha-card/card-title-group.html +12 -0
  73. package/src/lib/matcha-card/card.component.spec.ts +21 -0
  74. package/src/lib/matcha-card/card.component.ts +47 -0
  75. package/src/lib/matcha-card/card.mdx +43 -0
  76. package/src/lib/matcha-card/card.module.ts +10 -0
  77. package/src/lib/matcha-card/card.stories.ts +92 -0
  78. package/src/lib/matcha-components.module.ts +12 -47
  79. package/src/lib/matcha-dialog/confirmation-dialog.component.ts +39 -0
  80. package/src/lib/matcha-dialog/confirmation-dialog.stories.ts +21 -0
  81. package/src/lib/matcha-divider/divider.argtypes.ts +18 -0
  82. package/src/lib/matcha-divider/divider.mdx +51 -0
  83. package/src/lib/matcha-divider/divider.module.ts +5 -9
  84. package/src/lib/matcha-divider/divider.stories.ts +49 -0
  85. package/src/lib/matcha-elevation/elevation.argtypes.ts +16 -0
  86. package/src/lib/matcha-elevation/elevation.directive.ts +24 -0
  87. package/src/lib/matcha-elevation/elevation.mdx +50 -0
  88. package/src/lib/matcha-elevation/elevation.module.ts +10 -0
  89. package/src/lib/matcha-elevation/elevation.stories.ts +50 -0
  90. package/src/lib/matcha-expansion/expansion.argtypes.ts +44 -0
  91. package/src/lib/matcha-expansion/expansion.directive.ts +11 -0
  92. package/src/lib/matcha-expansion/expansion.mdx +69 -0
  93. package/src/lib/matcha-expansion/expansion.module.ts +10 -0
  94. package/src/lib/matcha-expansion/expansion.stories.ts +67 -0
  95. package/src/lib/matcha-forms/form-field-argtype.ts +60 -0
  96. package/src/lib/matcha-forms/form-field.directive.ts +11 -0
  97. package/src/lib/matcha-forms/form-field.mdx +20 -0
  98. package/src/lib/matcha-forms/{matcha-form-field.stories.ts → form-field.stories.ts} +64 -68
  99. package/src/lib/matcha-forms/forms.module.ts +5 -14
  100. package/src/lib/matcha-headers/headers.argtype.ts +14 -0
  101. package/src/lib/matcha-headers/headers.mdx +94 -0
  102. package/src/lib/matcha-headers/headers.module.ts +12 -0
  103. package/src/lib/matcha-headers/headers.stories.ts +88 -0
  104. package/src/lib/matcha-headers/headine/headline.component.html +1 -0
  105. package/src/lib/matcha-headers/headine/headline.component.ts +20 -0
  106. package/src/lib/matcha-headers/subhead/subhead.component.html +1 -0
  107. package/src/lib/matcha-headers/subhead/subhead.component.ts +20 -0
  108. package/src/lib/matcha-headers/title/title.component.html +1 -0
  109. package/src/lib/matcha-headers/title/title.component.ts +20 -0
  110. package/src/lib/matcha-icon/icon-argtype.ts +36 -0
  111. package/src/lib/matcha-icon/icon.component.html +3 -0
  112. package/src/lib/matcha-icon/icon.component.scss +0 -0
  113. package/src/lib/matcha-icon/icon.component.ts +34 -0
  114. package/src/lib/matcha-icon/icon.mdx +60 -0
  115. package/src/lib/matcha-icon/icon.module.ts +5 -14
  116. package/src/lib/matcha-icon/icon.stories.ts +423 -0
  117. package/src/lib/matcha-input/input.argtypes.ts +42 -0
  118. package/src/lib/matcha-input/input.directive.ts +11 -0
  119. package/src/lib/matcha-input/input.mdx +73 -0
  120. package/src/lib/matcha-input/input.module.ts +9 -0
  121. package/src/lib/matcha-input/input.stories.ts +97 -0
  122. package/src/lib/matcha-list/list.argtypes.ts +44 -0
  123. package/src/lib/matcha-list/{matcha-list.directive.ts → list.directive.ts} +3 -8
  124. package/src/lib/matcha-list/list.mdx +69 -0
  125. package/src/lib/matcha-list/list.module.ts +5 -9
  126. package/src/lib/matcha-list/list.stories.ts +101 -0
  127. package/src/lib/matcha-menu/menu.argtypes.ts +114 -0
  128. package/src/lib/matcha-menu/menu.mdx +59 -0
  129. package/src/lib/matcha-menu/menu.module.ts +5 -9
  130. package/src/lib/matcha-menu/menu.stories.ts +122 -0
  131. package/src/lib/matcha-paginator/paginator-overview-example.component.ts +13 -0
  132. package/src/lib/matcha-paginator/paginator-overview-example.css +0 -0
  133. package/src/lib/matcha-paginator/paginator-overview-example.html +1 -0
  134. package/src/lib/matcha-paginator/paginator.argtypes.ts +11 -0
  135. package/src/lib/matcha-paginator/paginator.mdx +53 -0
  136. package/src/lib/matcha-paginator/paginator.module.ts +5 -9
  137. package/src/lib/matcha-paginator/paginator.stories.ts +34 -0
  138. package/src/lib/matcha-progress-bar/progress-bar.mdx +1 -1
  139. package/src/lib/matcha-progress-spinner/progress-spinner.mdx +33 -13
  140. package/src/lib/matcha-progress-spinner/progress-spinner.stories.ts +8 -8
  141. package/src/lib/matcha-select/select.argtypes.ts +265 -0
  142. package/src/lib/matcha-select/{matcha-select.directive.ts → select.directive.ts} +3 -8
  143. package/src/lib/matcha-select/select.mdx +54 -0
  144. package/src/lib/matcha-select/select.module.ts +5 -7
  145. package/src/lib/matcha-select/select.stories.ts +164 -0
  146. package/src/lib/matcha-sidenav/sidenav.argtypes.ts +60 -0
  147. package/src/lib/matcha-sidenav/sidenav.directive.ts +11 -0
  148. package/src/lib/matcha-sidenav/sidenav.mdx +57 -0
  149. package/src/lib/matcha-sidenav/sidenav.module.ts +10 -0
  150. package/src/lib/matcha-sidenav/sidenav.stories.ts +79 -0
  151. package/src/lib/matcha-slide-toggle/slide-toggle.mdx +1 -1
  152. package/src/lib/matcha-slider/slider.argtypes.ts +83 -0
  153. package/src/lib/matcha-slider/slider.mdx +45 -0
  154. package/src/lib/matcha-slider/slider.stories.ts +149 -0
  155. package/src/lib/matcha-snackbar/snack-bar-overview-example.component.ts +23 -0
  156. package/src/lib/matcha-snackbar/snack-bar-overview-example.css +3 -0
  157. package/src/lib/matcha-snackbar/snack-bar-overview-example.html +11 -0
  158. package/src/lib/matcha-snackbar/snack-bar.argtypes.ts +11 -0
  159. package/src/lib/matcha-snackbar/snack-bar.directive.ts +11 -0
  160. package/src/lib/matcha-snackbar/snack-bar.mdx +53 -0
  161. package/src/lib/matcha-snackbar/snack-bar.module.ts +10 -0
  162. package/src/lib/matcha-snackbar/snack-bar.stories.ts +34 -0
  163. package/src/lib/matcha-sort-header/example/sort-overview-example.component.ts +67 -0
  164. package/src/lib/matcha-sort-header/example/sort-overview-example.css +3 -0
  165. package/src/lib/matcha-sort-header/example/sort-overview-example.html +21 -0
  166. package/src/lib/matcha-sort-header/sort-header.argtypes.ts +11 -0
  167. package/src/lib/matcha-sort-header/sort-header.mdx +78 -0
  168. package/src/lib/matcha-sort-header/sort-header.module.ts +5 -7
  169. package/src/lib/matcha-sort-header/sort-header.stories.ts +34 -0
  170. package/src/lib/matcha-stepper/stepper.argtypes.ts +92 -0
  171. package/src/lib/matcha-stepper/stepper.mdx +68 -0
  172. package/src/lib/matcha-stepper/stepper.module.ts +5 -7
  173. package/src/lib/matcha-stepper/stepper.stories.ts +163 -0
  174. package/src/lib/matcha-table/example/table-basic-example.component.ts +37 -0
  175. package/src/lib/matcha-table/example/table-basic-example.css +0 -0
  176. package/src/lib/matcha-table/example/table-basic-example.html +35 -0
  177. package/src/lib/matcha-table/table.argtypes.ts +11 -0
  178. package/src/lib/matcha-table/table.mdx +78 -0
  179. package/src/lib/matcha-table/table.module.ts +5 -7
  180. package/src/lib/matcha-table/table.stories.ts +34 -0
  181. package/src/lib/matcha-tabs/tabs.argtypes.ts +11 -0
  182. package/src/lib/matcha-tabs/tabs.mdx +69 -0
  183. package/src/lib/matcha-tabs/tabs.module.ts +5 -11
  184. package/src/lib/matcha-tabs/tabs.stories.ts +49 -0
  185. package/src/lib/matcha-toolbar/toolbar.argtypes.ts +20 -0
  186. package/src/lib/matcha-toolbar/toolbar.directive.ts +11 -0
  187. package/src/lib/matcha-toolbar/toolbar.mdx +57 -0
  188. package/src/lib/matcha-toolbar/toolbar.module.ts +10 -0
  189. package/src/lib/matcha-toolbar/toolbar.stories.ts +100 -0
  190. package/src/lib/matcha-tooltip/tooltip.argtypes.ts +11 -0
  191. package/src/lib/matcha-tooltip/tooltip.mdx +69 -0
  192. package/src/lib/matcha-tooltip/tooltip.module.ts +5 -7
  193. package/src/lib/matcha-tooltip/tooltip.stories.ts +79 -0
  194. package/src/lib/matcha-tree/tree.argtypes.ts +42 -0
  195. package/src/lib/matcha-tree/tree.mdx +49 -0
  196. package/src/lib/matcha-tree/tree.module.ts +5 -7
  197. package/src/lib/matcha-tree/tree.stories.ts +130 -0
  198. package/src/public-api.ts +27 -28
  199. package/src/lib/matcha-badge/matcha-badge.directive.ts +0 -16
  200. package/src/lib/matcha-buttons/buttons.module.ts +0 -27
  201. package/src/lib/matcha-buttons/matcha-btn-md.directive.ts +0 -16
  202. package/src/lib/matcha-buttons/matcha-btn-pill.directive.ts +0 -15
  203. package/src/lib/matcha-buttons/matcha-btn-size.directive.ts +0 -17
  204. package/src/lib/matcha-buttons/matcha-btn-xl.directive.ts +0 -15
  205. package/src/lib/matcha-card/card.mdx.txt +0 -55
  206. package/src/lib/matcha-card/matcha-card-argtype.ts +0 -123
  207. package/src/lib/matcha-card/matcha-card-content/matcha-card-content.component.html +0 -3
  208. package/src/lib/matcha-card/matcha-card-content/matcha-card-content.component.spec.ts +0 -21
  209. package/src/lib/matcha-card/matcha-card-content/matcha-card-content.component.ts +0 -10
  210. package/src/lib/matcha-card/matcha-card-footer/matcha-card-footer.component.html +0 -3
  211. package/src/lib/matcha-card/matcha-card-footer/matcha-card-footer.component.spec.ts +0 -21
  212. package/src/lib/matcha-card/matcha-card-footer/matcha-card-footer.component.ts +0 -10
  213. package/src/lib/matcha-card/matcha-card-header/matcha-card-header.component.html +0 -4
  214. package/src/lib/matcha-card/matcha-card-header/matcha-card-header.component.spec.ts +0 -21
  215. package/src/lib/matcha-card/matcha-card-header/matcha-card-header.component.ts +0 -10
  216. package/src/lib/matcha-card/matcha-card.component.scss +0 -117
  217. package/src/lib/matcha-card/matcha-card.component.spec.ts +0 -21
  218. package/src/lib/matcha-card/matcha-card.component.ts +0 -43
  219. package/src/lib/matcha-card/matcha-card.module.ts +0 -27
  220. package/src/lib/matcha-card/matcha-card.stories.ts +0 -80
  221. package/src/lib/matcha-expansion-panel/expansion-panel.module.ts +0 -14
  222. package/src/lib/matcha-expansion-panel/matcha-expansion-panel.directive.ts +0 -16
  223. package/src/lib/matcha-forms/matcha-form-field-appearance.directive.ts +0 -16
  224. package/src/lib/matcha-forms/matcha-form-field-argtype.ts +0 -73
  225. package/src/lib/matcha-forms/matcha-form-field.mdx +0 -284
  226. package/src/lib/matcha-forms/matcha-form-input-text.directive.ts +0 -16
  227. package/src/lib/matcha-icon/matcha-icon-position-pos.directive.ts +0 -15
  228. package/src/lib/matcha-icon/matcha-icon-position-pre.directive.ts +0 -15
  229. package/src/lib/matcha-menu/menu.stories.txt +0 -76
  230. package/src/lib/matcha-snackbar/matcha-snackbar.directive.ts +0 -16
  231. package/src/lib/matcha-snackbar/snackbar.module.ts +0 -12
  232. package/src/lib/matcha-title/matcha-title.component.html +0 -33
  233. package/src/lib/matcha-title/matcha-title.component.spec.ts +0 -21
  234. package/src/lib/matcha-title/matcha-title.component.ts +0 -24
  235. package/src/lib/matcha-title/matcha-title.module.ts +0 -18
  236. /package/src/lib/matcha-bottom-sheet/{matcha-bottom-sheet.directive.ts → bottom-sheet.directive.ts} +0 -0
  237. /package/src/lib/{matcha-buttons/button.stories.ts → matcha-button/button.stories.ts.TXT} +0 -0
  238. /package/src/lib/matcha-card/{matcha-card.component.html → card.component.html} +0 -0
  239. /package/src/lib/matcha-card/{matcha-card-content/matcha-card-content.component.scss → card.component.scss} +0 -0
  240. /package/src/lib/matcha-divider/{matcha-divider.directive.ts → divider.directive.ts} +0 -0
  241. /package/src/lib/{matcha-card/matcha-card-footer/matcha-card-footer.component.scss → matcha-headers/headine/headline.component.scss} +0 -0
  242. /package/src/lib/{matcha-card/matcha-card-header/matcha-card-header.component.scss → matcha-headers/subhead/subhead.component.scss} +0 -0
  243. /package/src/lib/{matcha-title/matcha-title.component.scss → matcha-headers/title/title.component.scss} +0 -0
  244. /package/src/lib/matcha-menu/{matcha-menu.directive.ts → menu.directive.ts} +0 -0
  245. /package/src/lib/matcha-paginator/{matcha-paginator.directive.ts → paginator.directive.ts} +0 -0
  246. /package/src/lib/matcha-sort-header/{matcha-sort-header.directive.ts → sort-header.directive.ts} +0 -0
  247. /package/src/lib/matcha-stepper/{matcha-stepper.directive.ts → stepper.directive.ts} +0 -0
  248. /package/src/lib/matcha-table/{matcha-table.directive.ts → table.directive.ts} +0 -0
  249. /package/src/lib/matcha-tabs/{matcha-tabs.directive.ts → tabs.directive.ts} +0 -0
  250. /package/src/lib/matcha-tooltip/{matcha-tooltip.directive.ts → tooltip.directive.ts} +0 -0
  251. /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,2 @@
1
+ <p>You have received a file called "cat-picture.jpeg".</p>
2
+ <button mat-raised-button (click)="openBottomSheet()">Open file</button>
@@ -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 './matcha-bottom-sheet.directive';
2
+ import { MatchaBottomSheetDirective } from './bottom-sheet.directive';
3
3
 
4
4
  @NgModule({
5
- declarations: [
6
- MatchaBottomSheetDirective
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
+ }