matcha-components 1.0.5 → 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 (288) 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/documentation/presentation.mdx +105 -0
  6. package/src/foundation/borders/borders.mdx +180 -0
  7. package/src/foundation/colors/base/amber.mdx +235 -0
  8. package/src/foundation/colors/base/blue.mdx +235 -0
  9. package/src/foundation/colors/base/cyan.mdx +235 -0
  10. package/src/foundation/colors/base/deep-orange.mdx +235 -0
  11. package/src/foundation/colors/base/deep-purple.mdx +235 -0
  12. package/src/foundation/colors/base/green.mdx +235 -0
  13. package/src/foundation/colors/base/indigo.mdx +235 -0
  14. package/src/foundation/colors/base/light-blue.mdx +235 -0
  15. package/src/foundation/colors/base/light-green.mdx +235 -0
  16. package/src/foundation/colors/base/lime.mdx +235 -0
  17. package/src/foundation/colors/base/orange.mdx +235 -0
  18. package/src/foundation/colors/base/pink.mdx +235 -0
  19. package/src/foundation/colors/base/purple.mdx +235 -0
  20. package/src/foundation/colors/base/red.mdx +235 -0
  21. package/src/foundation/colors/base/teal.mdx +235 -0
  22. package/src/foundation/colors/base/yellow.mdx +235 -0
  23. package/src/foundation/colors/base-colors.mdx +144 -0
  24. package/src/foundation/colors/surface-colors.mdx +93 -0
  25. package/src/foundation/colors/theme/accent.mdx +235 -0
  26. package/src/foundation/colors/theme/primary.mdx +235 -0
  27. package/src/foundation/colors/theme/warn.mdx +235 -0
  28. package/src/foundation/colors/theme-colors.mdx +133 -0
  29. package/src/foundation/sizes/heights.mdx +232 -0
  30. package/src/foundation/sizes/max-heights.mdx +237 -0
  31. package/src/foundation/sizes/max-width.mdx +236 -0
  32. package/src/foundation/sizes/min-heights.mdx +237 -0
  33. package/src/foundation/sizes/min-width.mdx +236 -0
  34. package/src/foundation/sizes/sizes.mdx +219 -0
  35. package/src/foundation/sizes/widths.mdx +234 -0
  36. package/src/foundation/spacing/margins.mdx +183 -0
  37. package/src/foundation/spacing/paddings.mdx +156 -0
  38. package/src/foundation/typography/colors.mdx +26 -0
  39. package/src/foundation/typography/font-size.mdx +57 -0
  40. package/src/foundation/typography/font-weight.mdx +65 -0
  41. package/src/foundation/typography/helpers.mdx +86 -0
  42. package/src/foundation/typography/letter-spacing.mdx +35 -0
  43. package/src/foundation/typography/line-height.mdx +52 -0
  44. package/src/foundation/typography/message-box.mdx +43 -0
  45. package/src/foundation/typography/text-align.mdx +22 -0
  46. package/src/foundation/typography/text-styles.mdx +88 -0
  47. package/src/lib/matcha-autocomplete/autocomplete-overview.directive.ts +16 -0
  48. package/src/lib/matcha-autocomplete/autocomplete.argtypes.ts +64 -0
  49. package/src/lib/matcha-autocomplete/autocomplete.directive.ts +14 -0
  50. package/src/lib/matcha-autocomplete/autocomplete.mdx +112 -0
  51. package/src/lib/matcha-autocomplete/autocomplete.module.ts +14 -0
  52. package/src/lib/matcha-autocomplete/autocomplete.stories.ts +104 -0
  53. package/src/lib/matcha-autocomplete/example/autocomplete-auto-active-first-option-example.css +9 -0
  54. package/src/lib/matcha-autocomplete/example/autocomplete-auto-active-first-option-example.html +9 -0
  55. package/src/lib/matcha-autocomplete/example/autocomplete-auto-active-first-option-example.ts +37 -0
  56. package/src/lib/matcha-autocomplete/example/autocomplete-overview-example.css +19 -0
  57. package/src/lib/matcha-autocomplete/example/autocomplete-overview-example.html +17 -0
  58. package/src/lib/matcha-autocomplete/example/autocomplete-overview-example.ts +70 -0
  59. package/src/lib/matcha-badge/badge.argtypes.ts +77 -0
  60. package/src/lib/matcha-badge/badge.directive.ts +11 -0
  61. package/src/lib/matcha-badge/badge.mdx +69 -0
  62. package/src/lib/matcha-badge/badge.module.ts +9 -0
  63. package/src/lib/matcha-badge/badge.stories.ts +79 -0
  64. package/src/lib/matcha-bottom-sheet/bottom-sheet-overview-example-sheet.html +21 -0
  65. package/src/lib/matcha-bottom-sheet/bottom-sheet-overview-example.component.ts +34 -0
  66. package/src/lib/matcha-bottom-sheet/bottom-sheet-overview-example.html +2 -0
  67. package/src/lib/matcha-bottom-sheet/bottom-sheet.argtypes.ts +117 -0
  68. package/src/lib/matcha-bottom-sheet/bottom-sheet.directive.ts +16 -0
  69. package/src/lib/matcha-bottom-sheet/bottom-sheet.mdx +69 -0
  70. package/src/lib/matcha-bottom-sheet/bottom-sheet.module.ts +9 -0
  71. package/src/lib/matcha-bottom-sheet/bottom-sheet.stories.ts +39 -0
  72. package/src/lib/matcha-button/button-overview-example.component.ts +18 -0
  73. package/src/lib/matcha-button/button-overview-example.html +118 -0
  74. package/src/lib/matcha-button/button-overview-example.scss +31 -0
  75. package/src/lib/matcha-button/button.argtypes.ts +20 -0
  76. package/src/lib/matcha-button/button.directive.ts +39 -0
  77. package/src/lib/matcha-button/button.mdx +171 -0
  78. package/src/lib/matcha-button/button.module.ts +10 -0
  79. package/src/lib/matcha-button/button.stories.ts +38 -0
  80. package/src/lib/matcha-button/button.stories.ts.TXT +111 -0
  81. package/src/lib/matcha-button-toggle/button-toggle.argtype.ts +115 -0
  82. package/src/lib/matcha-button-toggle/button-toggle.directive.ts +13 -0
  83. package/src/lib/matcha-button-toggle/button-toggle.mdx +63 -0
  84. package/src/lib/matcha-button-toggle/button-toggle.module.ts +14 -0
  85. package/src/lib/matcha-button-toggle/button-toggle.stories.ts +64 -0
  86. package/src/lib/matcha-button-toggle/matcha-button-toggle.directive.ts +15 -0
  87. package/src/lib/matcha-card/card-argtype.ts +54 -0
  88. package/src/lib/matcha-card/card-header.html +10 -0
  89. package/src/lib/matcha-card/card-title-group.html +12 -0
  90. package/src/lib/matcha-card/card.component.html +3 -0
  91. package/src/lib/matcha-card/card.component.scss +0 -0
  92. package/src/lib/matcha-card/card.component.spec.ts +21 -0
  93. package/src/lib/matcha-card/card.component.ts +47 -0
  94. package/src/lib/matcha-card/card.mdx +43 -0
  95. package/src/lib/matcha-card/card.module.ts +10 -0
  96. package/src/lib/matcha-card/card.stories.ts +92 -0
  97. package/src/lib/matcha-checkbox/checkbox.argtype.ts +79 -0
  98. package/src/lib/matcha-checkbox/checkbox.directive.ts +14 -0
  99. package/src/lib/matcha-checkbox/checkbox.mdx +76 -0
  100. package/src/lib/matcha-checkbox/checkbox.module.ts +9 -0
  101. package/src/lib/matcha-checkbox/checkbox.stories.ts +161 -0
  102. package/src/lib/matcha-checkbox/checkbox.stories.txt +74 -0
  103. package/src/lib/matcha-chips/chips.module.ts +12 -0
  104. package/src/lib/matcha-chips/matcha-chips.directive.ts +16 -0
  105. package/src/lib/matcha-components.module.ts +43 -0
  106. package/src/lib/matcha-datepicker/datepicker.argtypes.ts +63 -0
  107. package/src/lib/matcha-datepicker/datepicker.directive.ts +14 -0
  108. package/src/lib/matcha-datepicker/datepicker.mdx +73 -0
  109. package/src/lib/matcha-datepicker/datepicker.module.ts +9 -0
  110. package/src/lib/matcha-datepicker/datepicker.stories.ts +277 -0
  111. package/src/lib/matcha-dialog/confirmation-dialog.component.ts +39 -0
  112. package/src/lib/matcha-dialog/confirmation-dialog.stories.ts +21 -0
  113. package/src/lib/matcha-dialog/dialog.module.ts +14 -0
  114. package/src/lib/matcha-dialog/matcha-dialog.directive.ts +16 -0
  115. package/src/lib/matcha-dialog2/confirmation-dialog.component.ts.txt +54 -0
  116. package/src/lib/matcha-dialog2/confirmation-dialog.stories.ts.txt +24 -0
  117. package/src/lib/matcha-divider/divider.argtypes.ts +18 -0
  118. package/src/lib/matcha-divider/divider.directive.ts +16 -0
  119. package/src/lib/matcha-divider/divider.mdx +51 -0
  120. package/src/lib/matcha-divider/divider.module.ts +10 -0
  121. package/src/lib/matcha-divider/divider.stories.ts +49 -0
  122. package/src/lib/matcha-elevation/elevation.argtypes.ts +16 -0
  123. package/src/lib/matcha-elevation/elevation.directive.ts +24 -0
  124. package/src/lib/matcha-elevation/elevation.mdx +50 -0
  125. package/src/lib/matcha-elevation/elevation.module.ts +10 -0
  126. package/src/lib/matcha-elevation/elevation.stories.ts +50 -0
  127. package/src/lib/matcha-expansion/expansion.argtypes.ts +44 -0
  128. package/src/lib/matcha-expansion/expansion.directive.ts +11 -0
  129. package/src/lib/matcha-expansion/expansion.mdx +69 -0
  130. package/src/lib/matcha-expansion/expansion.module.ts +10 -0
  131. package/src/lib/matcha-expansion/expansion.stories.ts +67 -0
  132. package/src/lib/matcha-forms/form-field-argtype.ts +60 -0
  133. package/src/lib/matcha-forms/form-field.directive.ts +11 -0
  134. package/src/lib/matcha-forms/form-field.mdx +20 -0
  135. package/src/lib/matcha-forms/form-field.stories.ts +341 -0
  136. package/src/lib/matcha-forms/forms.module.ts +10 -0
  137. package/src/lib/matcha-headers/headers.argtype.ts +14 -0
  138. package/src/lib/matcha-headers/headers.mdx +94 -0
  139. package/src/lib/matcha-headers/headers.module.ts +12 -0
  140. package/src/lib/matcha-headers/headers.stories.ts +88 -0
  141. package/src/lib/matcha-headers/headine/headline.component.html +1 -0
  142. package/src/lib/matcha-headers/headine/headline.component.scss +0 -0
  143. package/src/lib/matcha-headers/headine/headline.component.ts +20 -0
  144. package/src/lib/matcha-headers/subhead/subhead.component.html +1 -0
  145. package/src/lib/matcha-headers/subhead/subhead.component.scss +0 -0
  146. package/src/lib/matcha-headers/subhead/subhead.component.ts +20 -0
  147. package/src/lib/matcha-headers/title/title.component.html +1 -0
  148. package/src/lib/matcha-headers/title/title.component.scss +0 -0
  149. package/src/lib/matcha-headers/title/title.component.ts +20 -0
  150. package/src/lib/matcha-icon/icon-argtype.ts +36 -0
  151. package/src/lib/matcha-icon/icon.component.html +3 -0
  152. package/src/lib/matcha-icon/icon.component.scss +0 -0
  153. package/src/lib/matcha-icon/icon.component.ts +34 -0
  154. package/src/lib/matcha-icon/icon.mdx +60 -0
  155. package/src/lib/matcha-icon/icon.module.ts +10 -0
  156. package/src/lib/matcha-icon/icon.stories.ts +416 -0
  157. package/src/lib/matcha-input/input.argtypes.ts +42 -0
  158. package/src/lib/matcha-input/input.directive.ts +11 -0
  159. package/src/lib/matcha-input/input.mdx +73 -0
  160. package/src/lib/matcha-input/input.module.ts +9 -0
  161. package/src/lib/matcha-input/input.stories.ts +97 -0
  162. package/src/lib/matcha-list/list.argtypes.ts +44 -0
  163. package/src/lib/matcha-list/list.directive.ts +11 -0
  164. package/src/lib/matcha-list/list.mdx +69 -0
  165. package/src/lib/matcha-list/list.module.ts +10 -0
  166. package/src/lib/matcha-list/list.stories.ts +101 -0
  167. package/src/lib/matcha-menu/menu.argtypes.ts +114 -0
  168. package/src/lib/matcha-menu/menu.directive.ts +16 -0
  169. package/src/lib/matcha-menu/menu.mdx +59 -0
  170. package/src/lib/matcha-menu/menu.module.ts +10 -0
  171. package/src/lib/matcha-menu/menu.stories.ts +122 -0
  172. package/src/lib/matcha-paginator/paginator-overview-example.component.ts +13 -0
  173. package/src/lib/matcha-paginator/paginator-overview-example.css +0 -0
  174. package/src/lib/matcha-paginator/paginator-overview-example.html +1 -0
  175. package/src/lib/matcha-paginator/paginator.argtypes.ts +11 -0
  176. package/src/lib/matcha-paginator/paginator.directive.ts +16 -0
  177. package/src/lib/matcha-paginator/paginator.mdx +53 -0
  178. package/src/lib/matcha-paginator/paginator.module.ts +10 -0
  179. package/src/lib/matcha-paginator/paginator.stories.ts +34 -0
  180. package/src/lib/matcha-progress-bar/progress-bar.argtype.ts +48 -0
  181. package/src/lib/matcha-progress-bar/progress-bar.directive.ts +16 -0
  182. package/src/lib/matcha-progress-bar/progress-bar.mdx +95 -0
  183. package/src/lib/matcha-progress-bar/progress-bar.module.ts +14 -0
  184. package/src/lib/matcha-progress-bar/progress-bar.stories.ts +89 -0
  185. package/src/lib/matcha-progress-spinner/progress-spinner.argtype.ts +65 -0
  186. package/src/lib/matcha-progress-spinner/progress-spinner.directive.ts +16 -0
  187. package/src/lib/matcha-progress-spinner/progress-spinner.mdx +43 -0
  188. package/src/lib/matcha-progress-spinner/progress-spinner.module.ts +14 -0
  189. package/src/lib/matcha-progress-spinner/progress-spinner.stories.ts +44 -0
  190. package/src/lib/matcha-radio-button/matcha-radio-button.argtype.ts +85 -0
  191. package/src/lib/matcha-radio-button/matcha-radio-button.directive.ts +16 -0
  192. package/src/lib/matcha-radio-button/matcha-radio-button.stories.ts +44 -0
  193. package/src/lib/matcha-radio-button/radio-button.module.ts +12 -0
  194. package/src/lib/matcha-select/select.argtypes.ts +265 -0
  195. package/src/lib/matcha-select/select.directive.ts +11 -0
  196. package/src/lib/matcha-select/select.mdx +54 -0
  197. package/src/lib/matcha-select/select.module.ts +10 -0
  198. package/src/lib/matcha-select/select.stories.ts +164 -0
  199. package/src/lib/matcha-select/select.stories.txt +109 -0
  200. package/src/lib/matcha-sidenav/sidenav.argtypes.ts +60 -0
  201. package/src/lib/matcha-sidenav/sidenav.directive.ts +11 -0
  202. package/src/lib/matcha-sidenav/sidenav.mdx +57 -0
  203. package/src/lib/matcha-sidenav/sidenav.module.ts +10 -0
  204. package/src/lib/matcha-sidenav/sidenav.stories.ts +79 -0
  205. package/src/lib/matcha-slide-toggle/slide-toggle.argtype.ts +66 -0
  206. package/src/lib/matcha-slide-toggle/slide-toggle.directive.ts +16 -0
  207. package/src/lib/matcha-slide-toggle/slide-toggle.mdx +92 -0
  208. package/src/lib/matcha-slide-toggle/slide-toggle.module.ts +12 -0
  209. package/src/lib/matcha-slide-toggle/slide-toggle.stories.ts +167 -0
  210. package/src/lib/matcha-slider/matcha-slider.directive.ts +16 -0
  211. package/src/lib/matcha-slider/slider.argtypes.ts +83 -0
  212. package/src/lib/matcha-slider/slider.mdx +45 -0
  213. package/src/lib/matcha-slider/slider.module.ts +12 -0
  214. package/src/lib/matcha-slider/slider.stories.ts +149 -0
  215. package/src/lib/matcha-snackbar/snack-bar-overview-example.component.ts +23 -0
  216. package/src/lib/matcha-snackbar/snack-bar-overview-example.css +3 -0
  217. package/src/lib/matcha-snackbar/snack-bar-overview-example.html +11 -0
  218. package/src/lib/matcha-snackbar/snack-bar.argtypes.ts +11 -0
  219. package/src/lib/matcha-snackbar/snack-bar.directive.ts +11 -0
  220. package/src/lib/matcha-snackbar/snack-bar.mdx +53 -0
  221. package/src/lib/matcha-snackbar/snack-bar.module.ts +10 -0
  222. package/src/lib/matcha-snackbar/snack-bar.stories.ts +34 -0
  223. package/src/lib/matcha-sort-header/example/sort-overview-example.component.ts +67 -0
  224. package/src/lib/matcha-sort-header/example/sort-overview-example.css +3 -0
  225. package/src/lib/matcha-sort-header/example/sort-overview-example.html +21 -0
  226. package/src/lib/matcha-sort-header/sort-header.argtypes.ts +11 -0
  227. package/src/lib/matcha-sort-header/sort-header.directive.ts +16 -0
  228. package/src/lib/matcha-sort-header/sort-header.mdx +78 -0
  229. package/src/lib/matcha-sort-header/sort-header.module.ts +10 -0
  230. package/src/lib/matcha-sort-header/sort-header.stories.ts +34 -0
  231. package/src/lib/matcha-stepper/stepper.argtypes.ts +92 -0
  232. package/src/lib/matcha-stepper/stepper.directive.ts +16 -0
  233. package/src/lib/matcha-stepper/stepper.mdx +68 -0
  234. package/src/lib/matcha-stepper/stepper.module.ts +10 -0
  235. package/src/lib/matcha-stepper/stepper.stories.ts +163 -0
  236. package/src/lib/matcha-table/example/table-basic-example.component.ts +37 -0
  237. package/src/lib/matcha-table/example/table-basic-example.css +0 -0
  238. package/src/lib/matcha-table/example/table-basic-example.html +35 -0
  239. package/src/lib/matcha-table/table.argtypes.ts +11 -0
  240. package/src/lib/matcha-table/table.directive.ts +16 -0
  241. package/src/lib/matcha-table/table.mdx +78 -0
  242. package/src/lib/matcha-table/table.module.ts +10 -0
  243. package/src/lib/matcha-table/table.stories.ts +34 -0
  244. package/src/lib/matcha-tabs/tabs.argtypes.ts +11 -0
  245. package/src/lib/matcha-tabs/tabs.directive.ts +17 -0
  246. package/src/lib/matcha-tabs/tabs.mdx +69 -0
  247. package/src/lib/matcha-tabs/tabs.module.ts +10 -0
  248. package/src/lib/matcha-tabs/tabs.stories.ts +49 -0
  249. package/src/lib/matcha-tabs/tabs.stories.txt +18 -0
  250. package/src/lib/matcha-toolbar/toolbar.argtypes.ts +20 -0
  251. package/src/lib/matcha-toolbar/toolbar.directive.ts +11 -0
  252. package/src/lib/matcha-toolbar/toolbar.mdx +57 -0
  253. package/src/lib/matcha-toolbar/toolbar.module.ts +10 -0
  254. package/src/lib/matcha-toolbar/toolbar.stories.ts +100 -0
  255. package/src/lib/matcha-tooltip/tooltip.argtypes.ts +11 -0
  256. package/src/lib/matcha-tooltip/tooltip.directive.ts +16 -0
  257. package/src/lib/matcha-tooltip/tooltip.mdx +69 -0
  258. package/src/lib/matcha-tooltip/tooltip.module.ts +10 -0
  259. package/src/lib/matcha-tooltip/tooltip.stories.ts +79 -0
  260. package/src/lib/matcha-tree/tree.argtypes.ts +42 -0
  261. package/src/lib/matcha-tree/tree.directive.ts +16 -0
  262. package/src/lib/matcha-tree/tree.mdx +49 -0
  263. package/src/lib/matcha-tree/tree.module.ts +10 -0
  264. package/src/lib/matcha-tree/tree.stories.ts +130 -0
  265. package/src/public-api.ts +92 -0
  266. package/tsconfig.lib.json +18 -0
  267. package/tsconfig.lib.prod.json +10 -0
  268. package/tsconfig.spec.json +14 -0
  269. package/esm2022/lib/matcha-button/matcha-button.component.mjs +0 -12
  270. package/esm2022/lib/matcha-card/matcha-card-content/matcha-card-content.component.mjs +0 -12
  271. package/esm2022/lib/matcha-card/matcha-card-footer/matcha-card-footer.component.mjs +0 -12
  272. package/esm2022/lib/matcha-card/matcha-card-header/matcha-card-header.component.mjs +0 -12
  273. package/esm2022/lib/matcha-card/matcha-card.component.mjs +0 -12
  274. package/esm2022/lib/matcha-card/matcha-card.module.mjs +0 -40
  275. package/esm2022/lib/matcha-components.module.mjs +0 -27
  276. package/esm2022/matcha-components.mjs +0 -5
  277. package/esm2022/public-api.mjs +0 -20
  278. package/fesm2022/matcha-components.mjs +0 -113
  279. package/fesm2022/matcha-components.mjs.map +0 -1
  280. package/index.d.ts +0 -5
  281. package/lib/matcha-button/matcha-button.component.d.ts +0 -5
  282. package/lib/matcha-card/matcha-card-content/matcha-card-content.component.d.ts +0 -5
  283. package/lib/matcha-card/matcha-card-footer/matcha-card-footer.component.d.ts +0 -5
  284. package/lib/matcha-card/matcha-card-header/matcha-card-header.component.d.ts +0 -5
  285. package/lib/matcha-card/matcha-card.component.d.ts +0 -5
  286. package/lib/matcha-card/matcha-card.module.d.ts +0 -11
  287. package/lib/matcha-components.module.d.ts +0 -8
  288. package/public-api.d.ts +0 -7
@@ -0,0 +1,44 @@
1
+ import { Meta, moduleMetadata, StoryObj } from '@storybook/angular';
2
+
3
+ import { MatRadioModule } from '@angular/material/radio';
4
+
5
+ import { matchaRadioButtonArgtypes } from './matcha-radio-button.argtype';
6
+ import { MatchaRadioButtonDirective } from './matcha-radio-button.directive';
7
+
8
+ /** Este é o card principal */
9
+ export default {
10
+ title: 'Atoms/Radio Button',
11
+ decorators: [
12
+ moduleMetadata({
13
+ imports: [MatRadioModule],
14
+ declarations: [MatchaRadioButtonDirective],
15
+ }),
16
+ ],
17
+ tags: ['autodocs'],
18
+ args: {
19
+ color: 'primary',
20
+ diameter: 50,
21
+ strokeWidth: 5,
22
+ value: 70,
23
+ },
24
+ argTypes: matchaRadioButtonArgtypes,
25
+ parameters: {
26
+ controls: {
27
+ expanded: true,
28
+ exclude: ['mode'],
29
+ },
30
+ },
31
+ } as Meta;
32
+
33
+ export const WithBasicUsage: StoryObj = {
34
+ render: (args) => ({
35
+ props: args,
36
+ template: `
37
+ <mat-radio-group aria-label="Select an option" matchaRadioButton>
38
+ <mat-radio-button value="1">Option 1</mat-radio-button>
39
+ <mat-radio-button value="2">Option 2</mat-radio-button>
40
+ </mat-radio-group>
41
+ `,
42
+ }),
43
+ name: 'basic usage',
44
+ };
@@ -0,0 +1,12 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { MatchaRadioButtonDirective } from './matcha-radio-button.directive';
4
+
5
+ @NgModule({
6
+ declarations: [MatchaRadioButtonDirective],
7
+ imports: [
8
+ CommonModule
9
+ ],
10
+ exports:[MatchaRadioButtonDirective]
11
+ })
12
+ export class MatchaRadioButtonModule { }
@@ -0,0 +1,265 @@
1
+ export const selectArgtypes = {
2
+ 'aria-label': {
3
+ description: 'Aria label of the select.',
4
+ control: 'text',
5
+ defaultValue: '',
6
+ table: {
7
+ type: { summary: 'string' },
8
+ },
9
+ },
10
+ 'aria-labelledby': {
11
+ description: 'Input that can be used to specify the aria-labelledby attribute.',
12
+ control: 'text',
13
+ defaultValue: '',
14
+ table: {
15
+ type: { summary: 'string' },
16
+ },
17
+ },
18
+ compareWith: {
19
+ description: 'Function to compare the option values with the selected values.',
20
+ control: null, // Como é uma função, não é necessário um controle.
21
+ table: {
22
+ disable: true,
23
+ },
24
+ },
25
+ disableOptionCentering: {
26
+ description: 'Whether to center the active option over the trigger.',
27
+ control: 'boolean',
28
+ defaultValue: false,
29
+ table: {
30
+ type: { summary: 'boolean' },
31
+ },
32
+ },
33
+ disableRipple: {
34
+ description: 'Whether ripples are disabled.',
35
+ control: 'boolean',
36
+ defaultValue: false,
37
+ table: {
38
+ type: { summary: 'boolean' },
39
+ },
40
+ },
41
+ disabled: {
42
+ description: 'Whether the component is disabled.',
43
+ control: 'boolean',
44
+ defaultValue: false,
45
+ table: {
46
+ type: { summary: 'boolean' },
47
+ },
48
+ },
49
+ errorStateMatcher: {
50
+ description: 'Object used to control when error messages are shown.',
51
+ control: null, // Como é um objeto, não é necessário um controle.
52
+ table: {
53
+ disable: true,
54
+ },
55
+ },
56
+ hideSingleSelectionIndicator: {
57
+ description: 'Whether checkmark indicator for single-selection options is hidden.',
58
+ control: 'boolean',
59
+ defaultValue: false,
60
+ table: {
61
+ type: { summary: 'boolean' },
62
+ },
63
+ },
64
+ id: {
65
+ description: 'Unique id of the element.',
66
+ control: 'text',
67
+ defaultValue: '',
68
+ table: {
69
+ type: { summary: 'string' },
70
+ },
71
+ },
72
+ multiple: {
73
+ description: 'Whether the user should be allowed to select multiple options.',
74
+ control: 'boolean',
75
+ defaultValue: false,
76
+ table: {
77
+ type: { summary: 'boolean' },
78
+ },
79
+ },
80
+ panelClass: {
81
+ description: 'Classes to be passed to the select panel.',
82
+ control: 'text',
83
+ defaultValue: '',
84
+ table: {
85
+ type: { summary: 'string' },
86
+ },
87
+ },
88
+ panelWidth: {
89
+ description: 'Width of the panel.',
90
+ control: 'text',
91
+ defaultValue: 'auto',
92
+ table: {
93
+ type: { summary: 'string' },
94
+ },
95
+ },
96
+ placeholder: {
97
+ description: 'Placeholder to be shown if no value has been selected.',
98
+ control: 'text',
99
+ defaultValue: '',
100
+ table: {
101
+ type: { summary: 'string' },
102
+ },
103
+ },
104
+ required: {
105
+ description: 'Whether the component is required.',
106
+ control: 'boolean',
107
+ defaultValue: false,
108
+ table: {
109
+ type: { summary: 'boolean' },
110
+ },
111
+ },
112
+ sortComparator: {
113
+ description: 'Function used to sort the values in a select in multiple mode.',
114
+ control: null, // Como é uma função, não é necessário um controle.
115
+ table: {
116
+ disable: true,
117
+ },
118
+ },
119
+ typeaheadDebounceInterval: {
120
+ description: 'Time to wait in milliseconds after the last keystroke before moving focus to an item.',
121
+ control: 'number',
122
+ defaultValue: 200,
123
+ table: {
124
+ type: { summary: 'number' },
125
+ },
126
+ },
127
+ value: {
128
+ description: 'Value of the select control.',
129
+ control: 'text',
130
+ defaultValue: '',
131
+ table: {
132
+ type: { summary: 'any' },
133
+ },
134
+ },
135
+ openedChange: {
136
+ description: 'Event emitted when the select panel has been toggled.',
137
+ action: 'openedChange',
138
+ },
139
+ selectionChange: {
140
+ description: 'Event emitted when the selected value has been changed by the user.',
141
+ action: 'selectionChange',
142
+ },
143
+ controlType: {
144
+ description: 'A name for this control that can be used by mat-form-field.',
145
+ control: 'text',
146
+ defaultValue: 'mat-select',
147
+ table: {
148
+ type: { summary: 'string' },
149
+ },
150
+ },
151
+ customTrigger: {
152
+ description: 'Custom trigger for the select.',
153
+ control: null, // Como é um componente, não é necessário um controle.
154
+ table: {
155
+ disable: true,
156
+ },
157
+ },
158
+ defaultTabIndex: {
159
+ description: 'Tabindex to which to fall back to if no value is set.',
160
+ control: 'number',
161
+ defaultValue: 0,
162
+ table: {
163
+ type: { summary: 'number' },
164
+ },
165
+ },
166
+ empty: {
167
+ description: 'Whether the select has a value.',
168
+ control: 'boolean',
169
+ defaultValue: false,
170
+ table: {
171
+ type: { summary: 'boolean' },
172
+ },
173
+ },
174
+ errorState: {
175
+ description: 'Whether the component is in an error state.',
176
+ control: 'boolean',
177
+ defaultValue: false,
178
+ table: {
179
+ type: { summary: 'boolean' },
180
+ },
181
+ },
182
+ focused: {
183
+ description: 'Whether the select is focused.',
184
+ control: 'boolean',
185
+ defaultValue: false,
186
+ table: {
187
+ type: { summary: 'boolean' },
188
+ },
189
+ },
190
+ optionGroups: {
191
+ description: 'Option groups within the select.',
192
+ control: null, // Como é uma QueryList, não é necessário um controle.
193
+ table: {
194
+ disable: true,
195
+ },
196
+ },
197
+ optionSelectionChanges: {
198
+ description: "Combined stream of all of the child options' change events.",
199
+ control: null, // Como é um Observable, não é necessário um controle.
200
+ table: {
201
+ disable: true,
202
+ },
203
+ },
204
+ options: {
205
+ description: 'List of child options.',
206
+ control: null, // Como é uma QueryList, não é necessário um controle.
207
+ table: {
208
+ disable: true,
209
+ },
210
+ },
211
+ panel: {
212
+ description: 'Panel containing the select options.',
213
+ control: null, // Como é um ElementRef, não é necessário um controle.
214
+ table: {
215
+ disable: true,
216
+ },
217
+ },
218
+ panelOpen: {
219
+ description: 'Whether or not the overlay panel is open.',
220
+ control: 'boolean',
221
+ defaultValue: false,
222
+ table: {
223
+ type: { summary: 'boolean' },
224
+ },
225
+ },
226
+ selected: {
227
+ description: 'The currently selected option.',
228
+ control: null, // Como é um MatOption ou MatOption[], não é necessário um controle.
229
+ table: {
230
+ disable: true,
231
+ },
232
+ },
233
+ shouldLabelFloat: {
234
+ description: 'Whether the label should float when the select has a value.',
235
+ control: 'boolean',
236
+ defaultValue: true,
237
+ table: {
238
+ type: { summary: 'boolean' },
239
+ },
240
+ },
241
+ trigger: {
242
+ description: 'Trigger that opens the select.',
243
+ control: null, // Como é um ElementRef, não é necessário um controle.
244
+ table: {
245
+ disable: true,
246
+ },
247
+ },
248
+ triggerValue: {
249
+ description: 'The value displayed in the trigger.',
250
+ control: 'text',
251
+ defaultValue: '',
252
+ table: {
253
+ type: { summary: 'string' },
254
+ },
255
+ },
256
+ color: {
257
+ description: 'Theme color palette',
258
+ control: 'select',
259
+ defaultValue: 'accent',
260
+ table: {
261
+ defaultValue: { summary: 'accent' },
262
+ },
263
+ options: ['primary', 'accent', 'warn'],
264
+ },
265
+ };
@@ -0,0 +1,11 @@
1
+ import { Directive, ElementRef, Renderer2 } from '@angular/core';
2
+
3
+ @Directive({
4
+ selector: '[matcha-select]',
5
+ })
6
+ export class MatchaSelectDirective {
7
+ constructor(private _elementRef: ElementRef, private _renderer: Renderer2) {
8
+ //this._elementRef.nativeElement.style.backgroundColor = 'grey';
9
+ this._renderer.addClass(this._elementRef.nativeElement, 'matcha-select');
10
+ }
11
+ }
@@ -0,0 +1,54 @@
1
+ import { Story } from "@storybook/blocks";
2
+ import { Meta } from "@storybook/addon-docs";
3
+ import * as ComponentStories from "./select.stories";
4
+
5
+ <Meta title="Atoms / Select / Documentação" />
6
+
7
+ # Select
8
+
9
+ > _select_ "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">Select - Date range picker comparison ranges</span>
19
+ <div class="matcha-card background-bg">
20
+ <Story of={ComponentStories.SelectBasic} />
21
+ </div>
22
+
23
+ <div class="d-flex-column">
24
+
25
+ ```html
26
+ <form>
27
+ <mat-form-field appearance="outline">
28
+
29
+ <mat-label>Choose an option</mat-label>
30
+ <mat-select [disabled]="disableSelect.value">
31
+ <mat-option value="option1">Option 1</mat-option>
32
+ <mat-option value="option2" disabled>Option 2 (disabled)</mat-option>
33
+ <mat-option value="option3">Option 3</mat-option>
34
+ </mat-select>
35
+
36
+ </mat-form-field>
37
+ </form>
38
+ ```
39
+
40
+ </div>
41
+ </div>
42
+ </div>
43
+
44
+ </div>
45
+
46
+ <br />
47
+
48
+ ### Installation
49
+
50
+ `import {MatSelectModule} from '@angular/material/select';`
51
+
52
+ [Official documentation](https://https://material.angular.io/components/select/overview)
53
+
54
+ <br />
@@ -0,0 +1,10 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { MatchaSelectDirective } from './select.directive';
4
+
5
+ @NgModule({
6
+ declarations: [MatchaSelectDirective],
7
+ imports: [CommonModule],
8
+ exports: [MatchaSelectDirective],
9
+ })
10
+ export class MatchaSelectModule {}
@@ -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,109 @@
1
+ import {storiesOf} from '@storybook/angular';
2
+ import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
3
+ import {MatFormFieldModule} from '@angular/material/form-field';
4
+ import {MatSelectModule} from '@angular/material/select';
5
+ import {array, boolean, text, object} from 'storybook-addon-knobs-color-options';
6
+ import {action} from '@storybook/addon-actions';
7
+
8
+ storiesOf('Select', module)
9
+ .add('Single Select', () => ({
10
+ template: `
11
+ <div>
12
+ <mat-form-field>
13
+ <mat-select (change)="onChange($event)" [placeholder]="placeholder" [disabled]="disabled">
14
+ <mat-option *ngFor="let food of foods" [value]="food">
15
+ {{food}}
16
+ </mat-option>
17
+ </mat-select>
18
+ </mat-form-field>
19
+ </div>
20
+ `,
21
+ props: {
22
+ foods: array('foods', [
23
+ 'Pizza',
24
+ 'Burgers',
25
+ 'Steak',
26
+ 'Tacos'
27
+ ]),
28
+ placeholder: text('placeholder', 'Favorite food'),
29
+ disabled: boolean('disabled', false),
30
+ onChange: action('change')
31
+ },
32
+ moduleMetadata: {
33
+ imports: [MatFormFieldModule, BrowserAnimationsModule, MatSelectModule]
34
+ }
35
+ }))
36
+ .add('Multi Select', () => ({
37
+ template: `
38
+ <div>
39
+ <mat-form-field>
40
+ <mat-select (change)="onChange($event)" [placeholder]="placeholder" multiple [disabled]="disabled">
41
+ <mat-option *ngFor="let food of foods" [value]="food">
42
+ {{food}}
43
+ </mat-option>
44
+ </mat-select>
45
+ </mat-form-field>
46
+ </div>
47
+ `,
48
+ props: {
49
+ foods: array('foods', [
50
+ 'Pizza',
51
+ 'Burgers',
52
+ 'Steak',
53
+ 'Tacos'
54
+ ]),
55
+ placeholder: text('placeholder', 'Favorite food'),
56
+ disabled: boolean('disabled', false),
57
+ onChange: action('change')
58
+ },
59
+ moduleMetadata: {
60
+ imports: [MatFormFieldModule, BrowserAnimationsModule, MatSelectModule]
61
+ }
62
+ }))
63
+ .add('Groups', () => ({
64
+ template: `
65
+ <div>
66
+ <mat-form-field>
67
+ <mat-select (change)="onChange($event)" [placeholder]="placeholder" [disabled]="disabled">
68
+ <mat-option>-- None --</mat-option>
69
+ <mat-optgroup *ngFor="let group of foodGroups" [label]="group.name">
70
+ <mat-option *ngFor="let food of group.foods" [value]="food">
71
+ {{food}}
72
+ </mat-option>
73
+ </mat-optgroup>
74
+ </mat-select>
75
+ </mat-form-field>
76
+ </div>
77
+ `,
78
+ props: {
79
+ foodGroups: object('foodGroups', [
80
+ {
81
+ name: 'Fruit',
82
+ foods: [
83
+ 'Apple',
84
+ 'Orange'
85
+ ]
86
+ },
87
+ {
88
+ name: 'Vegetables',
89
+ foods: [
90
+ 'Lettuce',
91
+ 'Broccoli'
92
+ ]
93
+ },
94
+ {
95
+ name: 'Meats',
96
+ foods: [
97
+ 'Steak',
98
+ 'Chicken'
99
+ ]
100
+ }
101
+ ]),
102
+ disabled: boolean('disabled', false),
103
+ placeholder: text('placeholder', 'Foods'),
104
+ onChange: action('change')
105
+ },
106
+ moduleMetadata: {
107
+ imports: [MatFormFieldModule, BrowserAnimationsModule, MatSelectModule]
108
+ }
109
+ }));