@goodhood-web/ui 0.0.6-alpha.5 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (293) hide show
  1. package/.babelrc +12 -0
  2. package/.eslintrc.json +25 -0
  3. package/.storybook/main.ts +31 -0
  4. package/.storybook/manager-head.html +1 -0
  5. package/.storybook/manager.ts +7 -0
  6. package/.storybook/nebenanTheme.ts +17 -0
  7. package/.storybook/preview.ts +9 -0
  8. package/.stylelintrc.json +14 -0
  9. package/README.md +7 -0
  10. package/__mocks__/svg.js +2 -0
  11. package/images/favicon.ico +0 -0
  12. package/images/logo.svg +11 -0
  13. package/jest.config.ts +16 -0
  14. package/package.json +5 -1
  15. package/project.json +95 -0
  16. package/release.config.js +30 -0
  17. package/{index.d.ts → src/index.ts} +24 -1
  18. package/src/lib/BaseButton/BaseButton.module.scss +11 -0
  19. package/src/lib/BaseButton/BaseButton.spec.tsx +12 -0
  20. package/src/lib/BaseButton/BaseButton.stories.tsx +26 -0
  21. package/src/lib/BaseButton/BaseButton.tsx +39 -0
  22. package/src/lib/Card/Card.module.scss +15 -0
  23. package/src/lib/Card/Card.spec.tsx +15 -0
  24. package/src/lib/Card/Card.stories.tsx +159 -0
  25. package/src/lib/Card/Card.tsx +31 -0
  26. package/src/lib/Card/Card.types.ts +12 -0
  27. package/src/lib/Card/Card.utils.spec.tsx +51 -0
  28. package/src/lib/Card/Card.utils.ts +23 -0
  29. package/src/lib/Card/CardBody/CardBody.module.scss +4 -0
  30. package/src/lib/Card/CardBody/CardBody.spec.tsx +15 -0
  31. package/src/lib/Card/CardBody/CardBody.stories.tsx +108 -0
  32. package/src/lib/Card/CardBody/CardBody.tsx +9 -0
  33. package/src/lib/Card/CardBody/CardBody.types.ts +4 -0
  34. package/src/lib/Card/CardHeader/CardHeader.module.scss +12 -0
  35. package/src/lib/Card/CardHeader/CardHeader.spec.tsx +72 -0
  36. package/src/lib/Card/CardHeader/CardHeader.stories.tsx +77 -0
  37. package/src/lib/Card/CardHeader/CardHeader.tsx +29 -0
  38. package/src/lib/Card/CardHeader/CardHeader.type.ts +14 -0
  39. package/src/lib/ContentCreatorButton/ContentCreatorButton.module.scss +14 -0
  40. package/src/lib/ContentCreatorButton/ContentCreatorButton.spec.tsx +14 -0
  41. package/src/lib/ContentCreatorButton/ContentCreatorButton.stories.tsx +29 -0
  42. package/src/lib/ContentCreatorButton/ContentCreatorButton.tsx +35 -0
  43. package/{lib/ContentCreatorButton/ContentCreatorButton.types.d.ts → src/lib/ContentCreatorButton/ContentCreatorButton.types.ts} +3 -2
  44. package/src/lib/Divider/Divider.module.scss +10 -0
  45. package/src/lib/Divider/Divider.spec.tsx +46 -0
  46. package/src/lib/Divider/Divider.stories.tsx +35 -0
  47. package/src/lib/Divider/Divider.tsx +17 -0
  48. package/src/lib/Divider/Divider.types.ts +6 -0
  49. package/src/lib/Fieldset/Fieldset.module.scss +3 -0
  50. package/src/lib/Fieldset/Fieldset.spec.tsx +68 -0
  51. package/src/lib/Fieldset/Fieldset.stories.tsx +60 -0
  52. package/src/lib/Fieldset/Fieldset.tsx +28 -0
  53. package/src/lib/Fieldset/Fieldset.types.ts +7 -0
  54. package/src/lib/Form/Form.spec.tsx +15 -0
  55. package/src/lib/Form/Form.stories.tsx +53 -0
  56. package/src/lib/Form/Form.tsx +14 -0
  57. package/src/lib/Form/Form.types.ts +11 -0
  58. package/src/lib/Icon/Icon.module.scss +7 -0
  59. package/src/lib/Icon/Icon.spec.tsx +33 -0
  60. package/src/lib/Icon/Icon.stories.tsx +88 -0
  61. package/src/lib/Icon/Icon.tsx +29 -0
  62. package/src/lib/Icon/Icon.types.ts +23 -0
  63. package/src/lib/Icon/icons/24x24/index.ts +89 -0
  64. package/src/lib/Icon/icons/24x24/svg/arrow_left.svg +1 -0
  65. package/src/lib/Icon/icons/24x24/svg/arrow_right.svg +1 -0
  66. package/src/lib/Icon/icons/24x24/svg/bookmark.svg +1 -0
  67. package/src/lib/Icon/icons/24x24/svg/bookmarked.svg +1 -0
  68. package/src/lib/Icon/icons/24x24/svg/burger_menu.svg +1 -0
  69. package/src/lib/Icon/icons/24x24/svg/camera.svg +1 -0
  70. package/src/lib/Icon/icons/24x24/svg/checkmark.svg +1 -0
  71. package/src/lib/Icon/icons/24x24/svg/checkmark_circle.svg +1 -0
  72. package/src/lib/Icon/icons/24x24/svg/chevron_down.svg +1 -0
  73. package/src/lib/Icon/icons/24x24/svg/chevron_left.svg +1 -0
  74. package/src/lib/Icon/icons/24x24/svg/chevron_right.svg +1 -0
  75. package/src/lib/Icon/icons/24x24/svg/chevron_up.svg +1 -0
  76. package/src/lib/Icon/icons/24x24/svg/comment_bubble.svg +1 -0
  77. package/src/lib/Icon/icons/24x24/svg/cross.svg +1 -0
  78. package/src/lib/Icon/icons/24x24/svg/cross_circle.svg +1 -0
  79. package/src/lib/Icon/icons/24x24/svg/envelope.svg +1 -0
  80. package/src/lib/Icon/icons/24x24/svg/event_calendar.svg +1 -0
  81. package/src/lib/Icon/icons/24x24/svg/external_link.svg +1 -0
  82. package/src/lib/Icon/icons/24x24/svg/eye.svg +1 -0
  83. package/src/lib/Icon/icons/24x24/svg/eye_crossed.svg +1 -0
  84. package/src/lib/Icon/icons/24x24/svg/filter.svg +1 -0
  85. package/src/lib/Icon/icons/24x24/svg/globe.svg +1 -0
  86. package/src/lib/Icon/icons/24x24/svg/heart.svg +1 -0
  87. package/src/lib/Icon/icons/24x24/svg/image.svg +1 -0
  88. package/src/lib/Icon/icons/24x24/svg/loudspeaker.svg +1 -0
  89. package/src/lib/Icon/icons/24x24/svg/marketplace.svg +1 -0
  90. package/src/lib/Icon/icons/24x24/svg/more_dots.svg +1 -0
  91. package/src/lib/Icon/icons/24x24/svg/more_dots_alt.svg +1 -0
  92. package/src/lib/Icon/icons/24x24/svg/mute.svg +1 -0
  93. package/src/lib/Icon/icons/24x24/svg/notification_bell.svg +1 -0
  94. package/src/lib/Icon/icons/24x24/svg/paperclip.svg +1 -0
  95. package/src/lib/Icon/icons/24x24/svg/pencil.svg +1 -0
  96. package/src/lib/Icon/icons/24x24/svg/pin.svg +1 -0
  97. package/src/lib/Icon/icons/24x24/svg/plus.svg +1 -0
  98. package/src/lib/Icon/icons/24x24/svg/plus_circle.svg +1 -0
  99. package/src/lib/Icon/icons/24x24/svg/privacy_lock.svg +1 -0
  100. package/src/lib/Icon/icons/24x24/svg/search.svg +1 -0
  101. package/src/lib/Icon/icons/24x24/svg/share_arrow.svg +1 -0
  102. package/src/lib/Icon/icons/24x24/svg/share_arrow_outline.svg +1 -0
  103. package/src/lib/Icon/icons/24x24/svg/sort.svg +1 -0
  104. package/src/lib/Icon/icons/24x24/svg/thanks.svg +1 -0
  105. package/src/lib/Icon/icons/24x24/svg/trash_can.svg +1 -0
  106. package/src/lib/Icon/icons/32x32/index.ts +179 -0
  107. package/src/lib/Icon/icons/32x32/svg/address_book.svg +1 -0
  108. package/src/lib/Icon/icons/32x32/svg/baby_toy.svg +1 -0
  109. package/src/lib/Icon/icons/32x32/svg/bicycle.svg +1 -0
  110. package/src/lib/Icon/icons/32x32/svg/bookmark.svg +1 -0
  111. package/src/lib/Icon/icons/32x32/svg/books.svg +1 -0
  112. package/src/lib/Icon/icons/32x32/svg/bubble_heart_filled.svg +1 -0
  113. package/src/lib/Icon/icons/32x32/svg/bubble_heart_outline.svg +1 -0
  114. package/src/lib/Icon/icons/32x32/svg/buildings.svg +1 -0
  115. package/src/lib/Icon/icons/32x32/svg/burger_menu.svg +1 -0
  116. package/src/lib/Icon/icons/32x32/svg/business.svg +1 -0
  117. package/src/lib/Icon/icons/32x32/svg/business_profile.svg +1 -0
  118. package/src/lib/Icon/icons/32x32/svg/camera.svg +1 -0
  119. package/src/lib/Icon/icons/32x32/svg/camera_crossed.svg +1 -0
  120. package/src/lib/Icon/icons/32x32/svg/car.svg +1 -0
  121. package/src/lib/Icon/icons/32x32/svg/carrot.svg +1 -0
  122. package/src/lib/Icon/icons/32x32/svg/chat.svg +1 -0
  123. package/src/lib/Icon/icons/32x32/svg/checkmark_circle.svg +1 -0
  124. package/src/lib/Icon/icons/32x32/svg/christmas_tree.svg +1 -0
  125. package/src/lib/Icon/icons/32x32/svg/clipboard.svg +1 -0
  126. package/src/lib/Icon/icons/32x32/svg/clothing.svg +1 -0
  127. package/src/lib/Icon/icons/32x32/svg/cocktail.svg +1 -0
  128. package/src/lib/Icon/icons/32x32/svg/comment_bubble.svg +1 -0
  129. package/src/lib/Icon/icons/32x32/svg/compass.svg +1 -0
  130. package/src/lib/Icon/icons/32x32/svg/computer.svg +1 -0
  131. package/src/lib/Icon/icons/32x32/svg/couch.svg +1 -0
  132. package/src/lib/Icon/icons/32x32/svg/credit_card.svg +1 -0
  133. package/src/lib/Icon/icons/32x32/svg/cross_circle.svg +1 -0
  134. package/src/lib/Icon/icons/32x32/svg/cutlery.svg +1 -0
  135. package/src/lib/Icon/icons/32x32/svg/drill_tool.svg +1 -0
  136. package/src/lib/Icon/icons/32x32/svg/email.svg +1 -0
  137. package/src/lib/Icon/icons/32x32/svg/envelope.svg +1 -0
  138. package/src/lib/Icon/icons/32x32/svg/event_calendar_check.svg +1 -0
  139. package/src/lib/Icon/icons/32x32/svg/event_calendar_date.svg +1 -0
  140. package/src/lib/Icon/icons/32x32/svg/event_calendar_plus.svg +1 -0
  141. package/src/lib/Icon/icons/32x32/svg/exchange.svg +1 -0
  142. package/src/lib/Icon/icons/32x32/svg/eye.svg +1 -0
  143. package/src/lib/Icon/icons/32x32/svg/eye_crossed.svg +1 -0
  144. package/src/lib/Icon/icons/32x32/svg/gift.svg +1 -0
  145. package/src/lib/Icon/icons/32x32/svg/group.svg +1 -0
  146. package/src/lib/Icon/icons/32x32/svg/healthcare.svg +1 -0
  147. package/src/lib/Icon/icons/32x32/svg/heart.svg +1 -0
  148. package/src/lib/Icon/icons/32x32/svg/house.svg +1 -0
  149. package/src/lib/Icon/icons/32x32/svg/image.svg +1 -0
  150. package/src/lib/Icon/icons/32x32/svg/info.svg +1 -0
  151. package/src/lib/Icon/icons/32x32/svg/invite_neighbour.svg +1 -0
  152. package/src/lib/Icon/icons/32x32/svg/key.svg +1 -0
  153. package/src/lib/Icon/icons/32x32/svg/kitchen_pot.svg +1 -0
  154. package/src/lib/Icon/icons/32x32/svg/list.svg +1 -0
  155. package/src/lib/Icon/icons/32x32/svg/log_out.svg +1 -0
  156. package/src/lib/Icon/icons/32x32/svg/loudspeaker.svg +1 -0
  157. package/src/lib/Icon/icons/32x32/svg/map.svg +1 -0
  158. package/src/lib/Icon/icons/32x32/svg/marketplace.svg +1 -0
  159. package/src/lib/Icon/icons/32x32/svg/miscellaneous_other.svg +1 -0
  160. package/src/lib/Icon/icons/32x32/svg/more_dots.svg +1 -0
  161. package/src/lib/Icon/icons/32x32/svg/more_dots_alt.svg +1 -0
  162. package/src/lib/Icon/icons/32x32/svg/music.svg +1 -0
  163. package/src/lib/Icon/icons/32x32/svg/nebenan.de.svg +1 -0
  164. package/src/lib/Icon/icons/32x32/svg/neighbour.svg +1 -0
  165. package/src/lib/Icon/icons/32x32/svg/notification_bell.svg +1 -0
  166. package/src/lib/Icon/icons/32x32/svg/organisation.svg +1 -0
  167. package/src/lib/Icon/icons/32x32/svg/paper_form_empty.svg +1 -0
  168. package/src/lib/Icon/icons/32x32/svg/paper_form_filled.svg +1 -0
  169. package/src/lib/Icon/icons/32x32/svg/paperclip.svg +1 -0
  170. package/src/lib/Icon/icons/32x32/svg/paw.svg +1 -0
  171. package/src/lib/Icon/icons/32x32/svg/pencil.svg +1 -0
  172. package/src/lib/Icon/icons/32x32/svg/pin.svg +1 -0
  173. package/src/lib/Icon/icons/32x32/svg/pins.svg +1 -0
  174. package/src/lib/Icon/icons/32x32/svg/plant.svg +1 -0
  175. package/src/lib/Icon/icons/32x32/svg/plus.svg +1 -0
  176. package/src/lib/Icon/icons/32x32/svg/plus_circle.svg +1 -0
  177. package/src/lib/Icon/icons/32x32/svg/post.svg +1 -0
  178. package/src/lib/Icon/icons/32x32/svg/privacy_lock.svg +1 -0
  179. package/src/lib/Icon/icons/32x32/svg/qr_code.svg +1 -0
  180. package/src/lib/Icon/icons/32x32/svg/search.svg +1 -0
  181. package/src/lib/Icon/icons/32x32/svg/settings_cog.svg +1 -0
  182. package/src/lib/Icon/icons/32x32/svg/shopping_bag.svg +1 -0
  183. package/src/lib/Icon/icons/32x32/svg/shopping_cart.svg +1 -0
  184. package/src/lib/Icon/icons/32x32/svg/special_place.svg +1 -0
  185. package/src/lib/Icon/icons/32x32/svg/suitcase.svg +1 -0
  186. package/src/lib/Icon/icons/32x32/svg/supporter.svg +1 -0
  187. package/src/lib/Icon/icons/32x32/svg/tennis_ball.svg +1 -0
  188. package/src/lib/Icon/icons/32x32/svg/thanks.svg +1 -0
  189. package/src/lib/Icon/icons/32x32/svg/trash_can.svg +1 -0
  190. package/src/lib/Icon/icons/32x32/svg/truck.svg +1 -0
  191. package/src/lib/Icon/icons/32x32/svg/user.svg +1 -0
  192. package/src/lib/Icon/icons/32x32/svg/user_profile.svg +1 -0
  193. package/src/lib/Icon/icons/32x32/svg/wellness.svg +1 -0
  194. package/src/lib/Icon/icons/index.ts +9 -0
  195. package/src/lib/IconButton/IconButton.module.scss +37 -0
  196. package/src/lib/IconButton/IconButton.spec.tsx +56 -0
  197. package/src/lib/IconButton/IconButton.stories.tsx +36 -0
  198. package/src/lib/IconButton/IconButton.tsx +25 -0
  199. package/{lib/IconButton/IconButton.types.d.ts → src/lib/IconButton/IconButton.types.ts} +10 -12
  200. package/src/lib/IconButton/utils.ts +6 -0
  201. package/src/lib/Image/Image.spec.tsx +10 -0
  202. package/src/lib/Image/Image.tsx +7 -0
  203. package/src/lib/Image/Image.type.tsx +5 -0
  204. package/src/lib/LabelPill/LabelPill.module.scss +33 -0
  205. package/src/lib/LabelPill/LabelPill.spec.tsx +23 -0
  206. package/src/lib/LabelPill/LabelPill.stories.tsx +31 -0
  207. package/src/lib/LabelPill/LabelPill.tsx +16 -0
  208. package/src/lib/LabelPill/LabelPill.types.ts +4 -0
  209. package/src/lib/Legend/Legend.module.scss +9 -0
  210. package/src/lib/Legend/Legend.spec.tsx +35 -0
  211. package/src/lib/Legend/Legend.stories.ts +39 -0
  212. package/src/lib/Legend/Legend.tsx +19 -0
  213. package/src/lib/Legend/Legend.types.ts +5 -0
  214. package/src/lib/MenuItem/MenuItem.module.scss +73 -0
  215. package/src/lib/MenuItem/MenuItem.spec.tsx +47 -0
  216. package/src/lib/MenuItem/MenuItem.stories.tsx +97 -0
  217. package/src/lib/MenuItem/MenuItem.tsx +34 -0
  218. package/src/lib/MenuItem/MenuItem.types.ts +10 -0
  219. package/src/lib/NotificationBubble/NotificationBubble.module.scss +30 -0
  220. package/src/lib/NotificationBubble/NotificationBubble.spec.tsx +36 -0
  221. package/src/lib/NotificationBubble/NotificationBubble.stories.tsx +56 -0
  222. package/src/lib/NotificationBubble/NotificationBubble.tsx +34 -0
  223. package/{lib/NotificationBubble/NotificationBubble.types.d.ts → src/lib/NotificationBubble/NotificationBubble.types.tsx} +3 -2
  224. package/src/lib/Thumbnail/Thumbnail.module.scss +68 -0
  225. package/src/lib/Thumbnail/Thumbnail.spec.tsx +51 -0
  226. package/src/lib/Thumbnail/Thumbnail.stories.tsx +242 -0
  227. package/src/lib/Thumbnail/Thumbnail.tsx +28 -0
  228. package/{lib/Thumbnail/Thumbnail.type.d.ts → src/lib/Thumbnail/Thumbnail.type.tsx} +9 -6
  229. package/src/lib/Toggle/Toggle.module.scss +53 -0
  230. package/src/lib/Toggle/Toggle.spec.tsx +23 -0
  231. package/src/lib/Toggle/Toggle.stories.tsx +38 -0
  232. package/src/lib/Toggle/Toggle.tsx +32 -0
  233. package/{lib/Toggle/Toggle.types.d.ts → src/lib/Toggle/Toggle.types.ts} +3 -2
  234. package/src/lib/ToggleInput/ToggleInput.module.scss +32 -0
  235. package/src/lib/ToggleInput/ToggleInput.spec.tsx +45 -0
  236. package/src/lib/ToggleInput/ToggleInput.stories.tsx +62 -0
  237. package/src/lib/ToggleInput/ToggleInput.tsx +40 -0
  238. package/{lib/ToggleInput/ToggleInput.types.d.ts → src/lib/ToggleInput/ToggleInput.types.ts} +5 -3
  239. package/src/lib/Typography/Typography.module.scss +61 -0
  240. package/src/lib/Typography/Typography.spec.tsx +60 -0
  241. package/src/lib/Typography/Typography.stories.tsx +45 -0
  242. package/src/lib/Typography/Typography.tsx +26 -0
  243. package/src/lib/Typography/Typography.types.ts +28 -0
  244. package/src/styles/_design-tokens.scss +1 -0
  245. package/src/styles/_fonts.scss +0 -0
  246. package/src/styles/_functions.scss +17 -0
  247. package/src/styles/_mixins.scss +33 -0
  248. package/src/styles/index.scss +3 -0
  249. package/src/styles/reset.scss +67 -0
  250. package/tsconfig.json +24 -0
  251. package/tsconfig.lib.json +35 -0
  252. package/tsconfig.spec.json +20 -0
  253. package/tsconfig.storybook.json +31 -0
  254. package/vite.config.ts +57 -0
  255. package/index.js +0 -48
  256. package/index.mjs +0 -2341
  257. package/lib/BaseButton/BaseButton.d.ts +0 -11
  258. package/lib/Card/Card.d.ts +0 -3
  259. package/lib/Card/Card.types.d.ts +0 -10
  260. package/lib/Card/Card.utils.d.ts +0 -3
  261. package/lib/Card/CardBody/CardBody.d.ts +0 -3
  262. package/lib/Card/CardBody/CardBody.types.d.ts +0 -5
  263. package/lib/Card/CardHeader/CardHeader.d.ts +0 -3
  264. package/lib/Card/CardHeader/CardHeader.type.d.ts +0 -12
  265. package/lib/ContentCreatorButton/ContentCreatorButton.d.ts +0 -3
  266. package/lib/Divider/Divider.d.ts +0 -3
  267. package/lib/Divider/Divider.types.d.ts +0 -6
  268. package/lib/Fieldset/Fieldset.d.ts +0 -3
  269. package/lib/Fieldset/Fieldset.types.d.ts +0 -8
  270. package/lib/Form/Form.d.ts +0 -3
  271. package/lib/Form/Form.types.d.ts +0 -10
  272. package/lib/Icon/Icon.d.ts +0 -4
  273. package/lib/Icon/Icon.types.d.ts +0 -18
  274. package/lib/Icon/icons/24x24/index.d.ts +0 -130
  275. package/lib/Icon/icons/32x32/index.d.ts +0 -265
  276. package/lib/Icon/icons/index.d.ts +0 -395
  277. package/lib/IconButton/IconButton.d.ts +0 -3
  278. package/lib/IconButton/utils.d.ts +0 -3
  279. package/lib/Image/Image.d.ts +0 -3
  280. package/lib/Image/Image.type.d.ts +0 -5
  281. package/lib/LabelPill/LabelPill.d.ts +0 -3
  282. package/lib/LabelPill/LabelPill.types.d.ts +0 -4
  283. package/lib/Legend/Legend.d.ts +0 -3
  284. package/lib/Legend/Legend.types.d.ts +0 -5
  285. package/lib/MenuItem/MenuItem.d.ts +0 -3
  286. package/lib/MenuItem/MenuItem.types.d.ts +0 -9
  287. package/lib/NotificationBubble/NotificationBubble.d.ts +0 -3
  288. package/lib/Thumbnail/Thumbnail.d.ts +0 -3
  289. package/lib/Toggle/Toggle.d.ts +0 -3
  290. package/lib/ToggleInput/ToggleInput.d.ts +0 -3
  291. package/lib/Typography/Typography.d.ts +0 -3
  292. package/lib/Typography/Typography.types.d.ts +0 -8
  293. package/style.css +0 -629
package/.babelrc ADDED
@@ -0,0 +1,12 @@
1
+ {
2
+ "presets": [
3
+ [
4
+ "@nx/react/babel",
5
+ {
6
+ "runtime": "automatic",
7
+ "useBuiltIns": "usage"
8
+ }
9
+ ]
10
+ ],
11
+ "plugins": []
12
+ }
package/.eslintrc.json ADDED
@@ -0,0 +1,25 @@
1
+ {
2
+ "extends": [
3
+ "plugin:@nx/react",
4
+ "plugin:react/recommended",
5
+ "plugin:react-hooks/recommended",
6
+ "plugin:@typescript-eslint/strict",
7
+ "../../.eslintrc.json"
8
+ ],
9
+ "ignorePatterns": ["!**/*"],
10
+ "overrides": [
11
+ {
12
+ "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
13
+ "rules": {},
14
+ "extends": ["../../eslintrc-custom-overrides.json"]
15
+ },
16
+ {
17
+ "files": ["*.ts", "*.tsx"],
18
+ "rules": {}
19
+ },
20
+ {
21
+ "files": ["*.js", "*.jsx"],
22
+ "rules": {}
23
+ }
24
+ ]
25
+ }
@@ -0,0 +1,31 @@
1
+ import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
2
+ import type { StorybookConfig } from '@storybook/react-vite';
3
+ import { mergeConfig } from 'vite';
4
+ import svgr from 'vite-plugin-svgr';
5
+
6
+ const config: StorybookConfig = {
7
+ addons: [
8
+ '@storybook/addon-essentials',
9
+ '@storybook/addon-actions',
10
+ '@storybook/addon-a11y',
11
+ '@storybook/addon-designs',
12
+ 'storybook-addon-pseudo-states',
13
+ ],
14
+ framework: {
15
+ name: '@storybook/react-vite',
16
+ options: {},
17
+ },
18
+ staticDirs: [{ from: '../images', to: '/assets' }],
19
+ stories: ['../src/lib/**/*.stories.@(js|jsx|ts|tsx|mdx)'],
20
+
21
+ viteFinal: async (config) =>
22
+ mergeConfig(config, {
23
+ plugins: [nxViteTsPaths(), svgr({ svgrOptions: { ref: true } })],
24
+ }),
25
+ };
26
+
27
+ export default config;
28
+
29
+ // To customize your Vite configuration you can use the viteFinal field.
30
+ // Check https://storybook.js.org/docs/react/builders/vite#configuration
31
+ // and https://nx.dev/packages/storybook/documents/custom-builder-configs
@@ -0,0 +1 @@
1
+ <link rel="icon" type="image/png" href="./assets/favicon.ico" />
@@ -0,0 +1,7 @@
1
+ import { addons } from '@storybook/manager-api';
2
+
3
+ import nebenanTheme from './nebenanTheme';
4
+
5
+ addons.setConfig({
6
+ theme: nebenanTheme,
7
+ });
@@ -0,0 +1,17 @@
1
+ import { create } from '@storybook/theming/create';
2
+
3
+ export default create({
4
+ appBorderColor: '#D2D0DB',
5
+ barTextColor: '#201649',
6
+
7
+ base: 'light',
8
+ brandImage: './assets/logo.svg',
9
+ brandTarget: '_blank',
10
+ brandTitle: 'Nebenan.de',
11
+
12
+ brandUrl: 'https://nebenan.de',
13
+ colorPrimary: '#201649',
14
+
15
+ colorSecondary: '#b5d622',
16
+ fontBase: "'Inter', arial, sans-serif",
17
+ });
@@ -0,0 +1,9 @@
1
+ import '../src/styles/reset.scss';
2
+
3
+ const preview = {
4
+ parameters: {
5
+ controls: { expanded: true },
6
+ },
7
+ };
8
+
9
+ export default preview;
@@ -0,0 +1,14 @@
1
+ {
2
+ "extends": ["../../.stylelintrc.json"],
3
+ "ignoreFiles": ["!**/*"],
4
+ "overrides": [
5
+ {
6
+ "files": ["**/*.css"],
7
+ "rules": {}
8
+ },
9
+ {
10
+ "files": ["**/*.scss"],
11
+ "rules": {}
12
+ }
13
+ ]
14
+ }
package/README.md ADDED
@@ -0,0 +1,7 @@
1
+ # ui
2
+
3
+ This library was generated with [Nx](https://nx.dev).
4
+
5
+ ## Running unit tests
6
+
7
+ Run `nx test ui` to execute the unit tests via [Jest](https://jestjs.io).
@@ -0,0 +1,2 @@
1
+ export default 'svg';
2
+ export const ReactComponent = 'svg';
Binary file
@@ -0,0 +1,11 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="102" height="28" viewBox="0 0 102 28" fill="none">
2
+ <g clip-path="url(#clip0_11694_2107)">
3
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M52.3154 11.8938C51.3978 11.8626 50.5297 12.3101 50.0229 13.0758H49.9924C50.0222 12.8717 50.0367 12.6656 50.0357 12.4593V9.79491C50.0573 9.62588 49.9987 9.45644 49.8772 9.33694C49.7557 9.21744 49.5853 9.16164 49.4167 9.18612H48.7824C48.6114 9.15888 48.4375 9.21296 48.3121 9.33235C48.1867 9.45175 48.1242 9.6228 48.1431 9.79491V18.8122C48.1242 18.9801 48.1839 19.1474 48.3049 19.2654C48.4259 19.3834 48.5946 19.4389 48.762 19.4159H49.2715C49.6816 19.4159 49.8879 19.2121 49.8879 18.9064V18.6772C49.8902 18.571 49.8799 18.465 49.8573 18.3613H49.8879C49.8879 18.3613 50.4942 19.5993 52.1804 19.5993C54.1265 19.5993 55.6116 18.0862 55.6116 15.7376C55.6167 13.4655 54.2946 11.8938 52.3052 11.8938H52.3154ZM51.8238 18.048C50.6019 18.0449 49.9745 16.9357 49.9745 15.7555C49.9745 14.1864 50.8992 13.4782 51.8748 13.4782C52.965 13.4782 53.7266 14.4029 53.7266 15.7707C53.7164 17.2254 52.8684 18.0453 51.8238 18.048ZM51.8238 18.048L51.8289 18.048H51.8187L51.8238 18.048ZM66.1292 13.4528C66.6514 12.4702 67.6837 11.8668 68.7961 11.8938C70.4595 11.8938 71.4172 12.737 71.4198 14.6907V18.8122C71.4408 18.9806 71.3817 19.1492 71.2602 19.2677C71.1387 19.3863 70.9687 19.4411 70.8008 19.4159H70.1665C69.9993 19.4391 69.8307 19.3835 69.7101 19.2654C69.5894 19.1472 69.5303 18.9799 69.5501 18.8122V15.0652C69.5501 14.1736 69.3107 13.5674 68.3707 13.5674C67.0436 13.5674 66.2056 14.6474 66.2056 15.9745V18.8122C66.2277 18.9781 66.1712 19.1448 66.0528 19.2631C65.9345 19.3815 65.7678 19.4379 65.6019 19.4159H64.9549C64.7886 19.4388 64.6211 19.3827 64.5021 19.2643C64.3831 19.1458 64.3264 18.9786 64.3486 18.8122V12.6733C64.3287 12.5072 64.3861 12.3411 64.5044 12.2228C64.6227 12.1045 64.7888 12.0471 64.9549 12.0671H65.5255C65.6914 12.0469 65.8573 12.1044 65.9753 12.2228C66.0932 12.3413 66.15 12.5075 66.1292 12.6733V13.1191C66.1275 13.2308 66.1181 13.3423 66.1011 13.4528H66.1292ZM81.9144 13.4528C82.4367 12.4702 83.469 11.8668 84.5814 11.8938C86.2447 11.8938 87.2025 12.737 87.2127 14.6907V18.8122C87.2346 18.9804 87.1762 19.1491 87.055 19.2677C86.9339 19.3864 86.764 19.4413 86.5963 19.4159H85.9594C85.7922 19.4391 85.6236 19.3835 85.503 19.2654C85.3823 19.1472 85.3233 18.9799 85.343 18.8122V15.0652C85.343 14.1736 85.1087 13.5674 84.1662 13.5674C82.8391 13.5674 81.9985 14.6474 81.9985 15.9745V18.8122C82.0206 18.9781 81.9641 19.1448 81.8458 19.2631C81.7274 19.3815 81.5607 19.4379 81.3948 19.4159H80.7478C80.5819 19.4379 80.4152 19.3815 80.2968 19.2631C80.1785 19.1448 80.122 18.9781 80.1441 18.8122V12.6733C80.1233 12.5075 80.18 12.3413 80.298 12.2228C80.4159 12.1044 80.5819 12.0469 80.7478 12.0671H81.3133C81.4788 12.0478 81.644 12.1056 81.7613 12.2239C81.8786 12.3423 81.9351 12.5079 81.9144 12.6733V13.1191C81.9128 13.2308 81.9034 13.3423 81.8864 13.4528H81.9144ZM95.4836 12.0467H95.0124C94.8931 12.0326 94.7739 12.0739 94.689 12.1589C94.604 12.2438 94.5627 12.363 94.5768 12.4822V14.4615C94.5769 14.5628 94.5837 14.6641 94.5971 14.7646H94.5768C94.5768 14.7646 94.1845 14.0004 92.9898 14.0004C91.5532 14.0004 90.5292 15.0983 90.5292 16.7845C90.5292 18.4301 91.4793 19.5636 92.9491 19.5636C93.6425 19.5945 94.297 19.2423 94.6532 18.6466H94.6736C94.6603 18.7085 94.6535 18.7717 94.6532 18.8351V19.044C94.6532 19.2987 94.8009 19.4388 95.0862 19.4388H95.4836C95.6033 19.455 95.7238 19.4143 95.8093 19.3289C95.8947 19.2434 95.9354 19.123 95.9192 19.0032V12.4822C95.9333 12.363 95.8919 12.2438 95.807 12.1589C95.722 12.0739 95.6029 12.0326 95.4836 12.0467ZM93.2471 18.4555C92.4473 18.4555 91.892 17.7984 91.892 16.7896C91.892 15.7376 92.5211 15.1441 93.2573 15.1441C94.1743 15.1441 94.6073 15.9542 94.6073 16.7795C94.6073 17.9563 93.9501 18.4555 93.2471 18.4555ZM101.821 16.5375C101.821 15.0779 100.958 14.0055 99.414 14.0055C97.7812 14.0055 96.6553 15.1543 96.6553 16.7896C96.6553 18.3002 97.771 19.5687 99.5745 19.5687C100.226 19.5675 100.864 19.384 101.416 19.0389C101.521 18.9885 101.598 18.8943 101.626 18.7817C101.655 18.6691 101.632 18.5497 101.564 18.4555L101.437 18.2492C101.299 17.9945 101.108 17.9767 100.84 18.1015C100.489 18.3211 100.083 18.4401 99.6687 18.4453C98.8158 18.4917 98.0864 17.8386 98.0385 16.9858H101.35C101.603 16.9887 101.811 16.7899 101.821 16.5375ZM98.069 16.1859C98.199 15.4753 98.688 15.0066 99.3809 15.0066C99.9973 15.0066 100.456 15.4447 100.476 16.1859H98.069ZM89.4823 18.1117H89.0161C88.7156 18.1117 88.5678 18.2594 88.5678 18.537V19.0083C88.5518 19.1304 88.5943 19.2528 88.6826 19.3386C88.7709 19.4244 88.8946 19.4634 89.0161 19.4439H89.4823C89.6034 19.4612 89.7257 19.4215 89.8134 19.3362C89.9012 19.251 89.9445 19.1298 89.9306 19.0083V18.537C89.9421 18.4169 89.8977 18.2982 89.8101 18.2151C89.7226 18.132 89.6017 18.0939 89.4823 18.1117ZM73.2054 12.5001C73.9661 12.1063 74.8094 11.8986 75.666 11.8938H75.6737C77.6172 11.8938 78.7788 12.9611 78.7711 14.8206V18.8223C78.7932 18.9911 78.7345 19.1603 78.6127 19.2791C78.4909 19.3979 78.3202 19.4524 78.1521 19.426H77.6554C77.4891 19.449 77.3216 19.3929 77.2027 19.2745C77.0837 19.156 77.0269 18.9888 77.0492 18.8223V18.5345C77.0472 18.4268 77.0566 18.3192 77.0772 18.2136H77.0492C76.5678 19.0621 75.671 19.59 74.6955 19.5993C73.3226 19.5993 72.2043 18.7332 72.2043 17.3933C72.2043 15.2486 74.9146 14.8894 76.5932 14.8894H76.9014V14.7162C76.9014 13.7508 76.2672 13.4196 75.503 13.4196C74.9567 13.4326 74.4214 13.5759 73.9415 13.8374C73.5747 13.9851 73.292 13.9291 73.1162 13.5827L72.971 13.3076C72.8745 13.1745 72.8448 13.0043 72.8906 12.8465C72.9364 12.6886 73.0526 12.5608 73.2054 12.5001ZM75.205 18.1906C76.2494 18.1906 76.9269 17.1565 76.9269 16.2598V15.9873H76.6187C75.6762 15.9873 74.0715 16.1299 74.0715 17.2278C74.0715 17.7168 74.4408 18.1906 75.205 18.1906ZM60.031 11.8938C62.1656 11.8938 63.3603 13.3789 63.3603 15.3988C63.3438 15.7472 63.0543 16.0198 62.7057 16.0153H58.1206C58.2403 17.3424 59.2414 18.0327 60.3749 18.0327C60.9491 18.0247 61.5102 17.86 61.9975 17.5564C62.3643 17.3831 62.6292 17.4265 62.8228 17.7601L62.9986 18.048C63.0919 18.1783 63.1228 18.3432 63.083 18.4985C63.0432 18.6538 62.9368 18.7835 62.7923 18.8529C62.0292 19.3326 61.1464 19.5878 60.245 19.5891C57.7589 19.5891 56.2102 17.8315 56.2102 15.7427C56.2102 13.4808 57.7767 11.8938 60.031 11.8938ZM59.9852 13.2795C59.03 13.2795 58.3499 13.9291 58.1741 14.9047H61.5135C61.4728 13.8832 60.8411 13.2795 59.9852 13.2795ZM43.8433 11.8938C45.9779 11.8938 47.1725 13.3789 47.1725 15.3988H47.1624C47.1463 15.7389 46.8685 16.0077 46.5281 16.0127H41.9431C42.0628 17.3398 43.0638 18.0301 44.1974 18.0301C44.7715 18.0218 45.3324 17.8571 45.82 17.5538C46.1868 17.3806 46.4517 17.4239 46.6453 17.7576L46.821 18.0454C46.9143 18.1758 46.9452 18.3407 46.9054 18.496C46.8656 18.6513 46.7592 18.781 46.6147 18.8504C45.8488 19.3324 44.9623 19.5885 44.0573 19.5891C41.5686 19.5891 40.0224 17.8315 40.0224 15.7427C40.0224 13.4808 41.5915 11.8938 43.8433 11.8938ZM43.8 13.2795C42.8422 13.2795 42.1647 13.9291 41.9864 14.9047H45.3283C45.2876 13.8832 44.6559 13.2795 43.8 13.2795ZM33.8224 13.4528C34.3443 12.4698 35.3769 11.8662 36.4894 11.8938C38.1528 11.8938 39.1105 12.737 39.1105 14.6907V18.8122C39.1315 18.9806 39.0725 19.1492 38.951 19.2677C38.8294 19.3863 38.6594 19.4411 38.4915 19.4159H37.8573C37.6898 19.4389 37.5211 19.3834 37.4001 19.2654C37.2792 19.1474 37.2194 18.9801 37.2383 18.8122V15.0652C37.2383 14.1736 37.004 13.5674 36.0615 13.5674C34.7344 13.5674 33.8963 14.6474 33.8963 15.9745V18.8122C33.9184 18.9781 33.8619 19.1448 33.7436 19.2631C33.6252 19.3815 33.4585 19.4379 33.2926 19.4159H32.6431C32.4772 19.4379 32.3104 19.3815 32.1921 19.2631C32.0737 19.1448 32.0173 18.9781 32.0394 18.8122V12.6733C32.0185 12.5075 32.0753 12.3413 32.1932 12.2228C32.3112 12.1044 32.4771 12.0469 32.6431 12.0671H33.2213C33.3868 12.0478 33.552 12.1056 33.6693 12.2239C33.7867 12.3423 33.8431 12.5079 33.8224 12.6733V13.1191C33.8208 13.2308 33.8114 13.3423 33.7944 13.4528H33.8224Z" fill="#201649"/>
4
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M23.9696 6.12937L14.0506 0.372597C13.1954 -0.124199 12.1395 -0.124199 11.2843 0.372597L1.37042 6.12937C0.523765 6.62301 0.0022172 7.52845 0 8.5085V19.4948C0.00142842 20.4737 0.523427 21.378 1.37042 21.8688L5.50969 24.2734V17.8824L7.57551 19.0694C7.65817 19.1212 7.70899 19.2113 7.71051 19.3088V25.5521L11.2767 27.6307C12.1348 28.1231 13.1899 28.1231 14.0481 27.6307L17.6142 25.5521V19.3088C17.6163 19.2101 17.6693 19.1196 17.7543 19.0694L19.8176 17.8824V24.2734L23.9594 21.8688C24.8058 21.3777 25.3269 20.4733 25.3273 19.4948V8.5085C25.3282 7.53091 24.8117 6.62583 23.9696 6.12937ZM11.8421 26.0437L9.36367 24.6045V19.3088C9.36498 18.6216 8.99999 17.9858 8.40591 17.6404L5.311 15.8573C5.01284 15.6852 4.64545 15.6853 4.34744 15.8577C4.04942 16.0301 3.86613 16.3485 3.86672 16.6928V21.3976L2.19827 20.4449C1.86178 20.2464 1.65467 19.8854 1.65316 19.4948V8.83454L11.8421 14.7492V26.0437ZM2.47083 7.38771L11.8421 12.8414V1.95698L2.47083 7.38771ZM13.5004 1.95698L22.8692 7.38771L13.5004 12.8414V1.95698ZM23.1392 20.4449C23.4784 20.2484 23.6878 19.8867 23.6894 19.4948V8.83454L13.5004 14.7492V26.0437L15.9712 24.6045V19.3114C15.9741 18.6226 16.3427 17.9873 16.9392 17.6429L20.0392 15.8598C20.3372 15.689 20.7036 15.6899 21.0008 15.8621C21.298 16.0343 21.481 16.3518 21.4809 16.6953V21.3976L23.1392 20.4449Z" fill="#201649"/>
5
+ </g>
6
+ <defs>
7
+ <clipPath id="clip0_11694_2107">
8
+ <rect width="102" height="28" fill="#201649"/>
9
+ </clipPath>
10
+ </defs>
11
+ </svg>
package/jest.config.ts ADDED
@@ -0,0 +1,16 @@
1
+ /* eslint-disable */
2
+ export default {
3
+ displayName: 'ui',
4
+ preset: '../../jest.preset.js',
5
+ transform: {
6
+ '^(?!.*\\.(js|jsx|ts|tsx|css|json)$)': '@nx/react/plugins/jest',
7
+ '^.+\\.[tj]sx?$': ['babel-jest', { presets: ['@nx/react/babel'] }],
8
+ },
9
+ moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'],
10
+ moduleNameMapper: {
11
+ '\\.svg(\\?react)?$': '<rootDir>/__mocks__/svg.js',
12
+ },
13
+ coverageDirectory: '../../coverage/libs/ui',
14
+ clearMocks: true,
15
+ setupFilesAfterEnv: ['@testing-library/jest-dom'],
16
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@goodhood-web/ui",
3
- "version": "0.0.6-alpha.5",
3
+ "version": "0.0.6",
4
4
  "main": "./index.js",
5
5
  "types": "./index.d.ts",
6
6
  "exports": {
@@ -8,5 +8,9 @@
8
8
  "import": "./index.mjs",
9
9
  "require": "./index.js"
10
10
  }
11
+ },
12
+ "publishConfig": {
13
+ "registry": "https://registry.npmjs.org/",
14
+ "access": "public"
11
15
  }
12
16
  }
package/project.json ADDED
@@ -0,0 +1,95 @@
1
+ {
2
+ "name": "ui",
3
+ "$schema": "../../node_modules/nx/schemas/project-schema.json",
4
+ "sourceRoot": "libs/ui/src",
5
+ "projectType": "library",
6
+ "tags": [],
7
+ "targets": {
8
+ "lint": {
9
+ "executor": "@nx/eslint:lint",
10
+ "outputs": ["{options.outputFile}"],
11
+ "options": {
12
+ "lintFilePatterns": ["libs/ui/**/*.{ts,tsx,js,jsx}"]
13
+ }
14
+ },
15
+ "typecheck": {
16
+ "executor": "nx:run-commands",
17
+ "options": {
18
+ "commands": ["tsc -p tsconfig.json --noEmit"],
19
+ "cwd": "libs/ui",
20
+ "forwardAllArgs": false
21
+ }
22
+ },
23
+ "build": {
24
+ "executor": "@nx/vite:build",
25
+ "outputs": ["{options.outputPath}"],
26
+ "updateBuildableProjectDepsInPackageJson": true,
27
+ "buildableProjectDepsInPackageJsonType": "dependencies",
28
+ "options": {
29
+ "outputPath": "dist/libs/ui"
30
+ },
31
+ "configurations": {
32
+ "development": {
33
+ "mode": "development"
34
+ },
35
+ "production": {
36
+ "mode": "production"
37
+ }
38
+ }
39
+ },
40
+ "test": {
41
+ "executor": "@nx/jest:jest",
42
+ "outputs": ["{workspaceRoot}/coverage/{projectRoot}"],
43
+ "defaultConfiguration": "production",
44
+ "options": {
45
+ "jestConfig": "libs/ui/jest.config.ts",
46
+ "codeCoverage": true,
47
+ "coverageReporters": ["lcov"]
48
+ },
49
+ "configurations": {
50
+ "ci": {
51
+ "ci": true
52
+ }
53
+ }
54
+ },
55
+ "storybook": {
56
+ "executor": "@nx/storybook:storybook",
57
+ "options": {
58
+ "port": 4400,
59
+ "configDir": "libs/ui/.storybook"
60
+ },
61
+ "configurations": {
62
+ "ci": {
63
+ "quiet": true
64
+ }
65
+ }
66
+ },
67
+ "build-storybook": {
68
+ "executor": "@nx/storybook:build",
69
+ "outputs": ["{options.outputDir}"],
70
+ "options": {
71
+ "outputDir": "dist/storybook/ui",
72
+ "configDir": "libs/ui/.storybook"
73
+ },
74
+ "configurations": {
75
+ "ci": {
76
+ "quiet": true
77
+ }
78
+ }
79
+ },
80
+ "stylelint": {
81
+ "executor": "nx-stylelint:lint",
82
+ "outputs": ["{options.outputFile}"],
83
+ "options": {
84
+ "lintFilePatterns": ["libs/ui/**/*.css", "libs/ui/**/*.scss"]
85
+ }
86
+ },
87
+ "release": {
88
+ "executor": "nx:run-commands",
89
+ "outputs": [],
90
+ "options": {
91
+ "command": "npx semantic-release-plus --extends ./libs/ui/release.config.js"
92
+ }
93
+ }
94
+ }
95
+ }
@@ -0,0 +1,30 @@
1
+ const name = 'ui';
2
+ const srcRoot = `libs/${name}`;
3
+
4
+ module.exports = {
5
+ commitPaths: [`${srcRoot}/*`],
6
+ extends: 'release.config.base.js',
7
+ pkgRoot: `dist/${srcRoot}`,
8
+
9
+ plugins: [
10
+ '@semantic-release/commit-analyzer',
11
+ '@semantic-release/release-notes-generator',
12
+ [
13
+ '@semantic-release/changelog',
14
+ {
15
+ changelogFile: `${srcRoot}/CHANGELOG.md`,
16
+ },
17
+ ],
18
+ '@semantic-release/npm',
19
+ [
20
+ '@semantic-release/git',
21
+ {
22
+ assets: [`${srcRoot}/package.json`, `${srcRoot}/CHANGELOG.md`],
23
+ message:
24
+ `release(version): Release ${name} ` +
25
+ '${nextRelease.version} [skip ci]\n\n${nextRelease.notes}',
26
+ },
27
+ ],
28
+ ],
29
+ tagFormat: name + '-v${version}',
30
+ };
@@ -1,3 +1,5 @@
1
+ /// <reference types="vite-plugin-svgr/client" />
2
+
1
3
  import BaseButton from './lib/BaseButton/BaseButton';
2
4
  import Card from './lib/Card/Card';
3
5
  import CardBody from './lib/Card/CardBody/CardBody';
@@ -17,4 +19,25 @@ import Thumbnail from './lib/Thumbnail/Thumbnail';
17
19
  import Toggle from './lib/Toggle/Toggle';
18
20
  import ToggleInput from './lib/ToggleInput/ToggleInput';
19
21
  import Typography from './lib/Typography/Typography';
20
- export { BaseButton, Card, CardBody, CardHeader, ContentCreatorButton, Divider, Fieldset, Form, Icon, IconButton, Image, LabelPill, Legend, NotificationBubble, Thumbnail, Toggle, ToggleInput, Typography, MenuItem, };
22
+
23
+ export {
24
+ BaseButton,
25
+ Card,
26
+ CardBody,
27
+ CardHeader,
28
+ ContentCreatorButton,
29
+ Divider,
30
+ Fieldset,
31
+ Form,
32
+ Icon,
33
+ IconButton,
34
+ Image,
35
+ LabelPill,
36
+ Legend,
37
+ NotificationBubble,
38
+ Thumbnail,
39
+ Toggle,
40
+ ToggleInput,
41
+ MenuItem,
42
+ Typography,
43
+ };
@@ -0,0 +1,11 @@
1
+ .baseBtn {
2
+ min-width: 2rem;
3
+ min-height: 2rem;
4
+ border: none;
5
+ border-radius: 0;
6
+ cursor: pointer;
7
+
8
+ &--active {
9
+ background: #b1b1b1;
10
+ }
11
+ }
@@ -0,0 +1,12 @@
1
+ import { render } from '@testing-library/react';
2
+
3
+ import BaseButton from './BaseButton';
4
+
5
+ describe('BaseButton', () => {
6
+ it('should render successfully', () => {
7
+ const { baseElement } = render(
8
+ <BaseButton onClick={() => {}}>Render successfully</BaseButton>,
9
+ );
10
+ expect(baseElement).toBeTruthy();
11
+ });
12
+ });
@@ -0,0 +1,26 @@
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+
3
+ import BaseButton from './BaseButton';
4
+
5
+ const meta: Meta<typeof BaseButton> = {
6
+ argTypes: {
7
+ onClick: { action: 'clicked', description: 'On click event callback' },
8
+ },
9
+ component: BaseButton,
10
+ title: 'BaseButton',
11
+ };
12
+ export default meta;
13
+ type Story = StoryObj<typeof BaseButton>;
14
+
15
+ export const Primary: Story = {
16
+ args: {
17
+ children: 'Welcome to BaseButton!',
18
+ disabled: false,
19
+ },
20
+ parameters: {
21
+ design: {
22
+ type: 'figma',
23
+ url: 'https://www.figma.com/file/PBPtYOEh3AvPce2CsnzcgL/Design-System-(Legacy)?node-id=892%3A214&mode=dev',
24
+ },
25
+ },
26
+ };
@@ -0,0 +1,39 @@
1
+ 'use client';
2
+ import { ButtonOwnProps, useButton } from '@mui/base';
3
+ import clsx from 'clsx';
4
+
5
+ import styles from './BaseButton.module.scss';
6
+
7
+ export interface BaseButtonProps extends ButtonOwnProps {
8
+ ariaLabel?: string;
9
+ ariaLabelledBy?: string;
10
+ className?: string;
11
+ onClick: () => void;
12
+ ref?: React.ForwardedRef<null>;
13
+ }
14
+
15
+ const BaseButton = (props: BaseButtonProps) => {
16
+ const { ariaLabel, ariaLabelledBy, children, className } = props;
17
+ const { active, focusVisible, getRootProps } = useButton({
18
+ ...props,
19
+ rootRef: props.ref,
20
+ });
21
+
22
+ const classes = {
23
+ [styles['baseBtn--active']]: active,
24
+ [styles['baseBtn--focusVisible']]: focusVisible,
25
+ };
26
+
27
+ return (
28
+ <button
29
+ {...getRootProps()}
30
+ aria-label={ariaLabel}
31
+ aria-labelledby={ariaLabelledBy}
32
+ className={clsx(styles.baseBtn, classes, className)}
33
+ >
34
+ {children}
35
+ </button>
36
+ );
37
+ };
38
+
39
+ export default BaseButton;
@@ -0,0 +1,15 @@
1
+ .root {
2
+ display: flex;
3
+ overflow: hidden;
4
+ width: 100%;
5
+ flex-direction: column;
6
+ padding: getSpacing('lg');
7
+ background: getSemanticColor('primitive', 'White');
8
+ background-color: getSemanticColor('surface', 'surface');
9
+ box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.1);
10
+ color: getSemanticColor('surface', 'onSurface');
11
+
12
+ &--border-radius {
13
+ border-radius: getBorderRadius(('sm'));
14
+ }
15
+ }
@@ -0,0 +1,15 @@
1
+ import { render } from '@testing-library/react';
2
+
3
+ import Card from './Card';
4
+ import CardBody from './CardBody/CardBody';
5
+
6
+ describe('Card', () => {
7
+ it('should render successfully', () => {
8
+ const { baseElement } = render(
9
+ <Card>
10
+ <CardBody>valid Child</CardBody>
11
+ </Card>,
12
+ );
13
+ expect(baseElement).toBeTruthy();
14
+ });
15
+ });
@@ -0,0 +1,159 @@
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+
3
+ import Icon from '../Icon/Icon';
4
+
5
+ import Card from './Card';
6
+ import { CardProps } from './Card.types';
7
+ import CardBody from './CardBody/CardBody';
8
+ import CardHeader from './CardHeader/CardHeader';
9
+
10
+ const meta: Meta<typeof Card> = {
11
+ component: Card,
12
+ title: 'Components/Card',
13
+ };
14
+
15
+ export default meta;
16
+
17
+ type Story = StoryObj<typeof Card>;
18
+
19
+ const CardComponent = (args: CardProps) => {
20
+ return (
21
+ <div style={{ width: '560px' }}>
22
+ <Card
23
+ as={args.as}
24
+ borderRadius={args.borderRadius}
25
+ ariaLabel={args.ariaLabel}
26
+ role={args.role}
27
+ >
28
+ <CardHeader
29
+ headline="Einstellungen"
30
+ leftElement={<Icon name="chevron_left" size="24" />}
31
+ />
32
+ <CardBody>
33
+ <p
34
+ style={{
35
+ color: '#201649',
36
+ fontFamily: 'sans-serif',
37
+ fontSize: '14px',
38
+ marginBottom: '16px',
39
+ }}
40
+ >
41
+ Warum hältst du den Inhalt für problematisch?
42
+ </p>
43
+ <div
44
+ style={{
45
+ border: 'solid 1px #A6A2B6',
46
+ borderRadius: '16px',
47
+ fontFamily: 'sans-serif',
48
+ padding: '16px',
49
+ }}
50
+ >
51
+ <p
52
+ style={{
53
+ color: '#201649',
54
+ fontFamily: 'sans-serif',
55
+ fontSize: '16px',
56
+ fontWeight: 500,
57
+ }}
58
+ >
59
+ Haustiere & Zubehör
60
+ </p>
61
+ </div>
62
+ </CardBody>
63
+ <CardBody>
64
+ <p
65
+ style={{
66
+ color: '#635C80',
67
+ fontFamily: 'sans-serif',
68
+ fontSize: '12px',
69
+ fontWeight: 500,
70
+ lineHeight: '16px',
71
+ }}
72
+ >
73
+ Mit Klick auf &quot;Absenden&quot; bestätigst du, in gutem Glauben davon
74
+ überzeugt zu sein, dass die in der Meldung enthaltenen Angaben und Anführungen
75
+ richtig und vollständig sind.
76
+ </p>
77
+ <p
78
+ style={{
79
+ color: '#635C80',
80
+ fontFamily: 'sans-serif',
81
+ fontSize: '12px',
82
+ fontWeight: 500,
83
+ lineHeight: '16px',
84
+ }}
85
+ >
86
+ Weitere Informationen zum Meldeprozess und Beschwerdegründen in den{' '}
87
+ <span
88
+ style={{
89
+ color: '#01819C',
90
+ fontFamily: 'sans-serif',
91
+ fontWeight: 700,
92
+ }}
93
+ >
94
+ Beitragsrichtlinien
95
+ </span>{' '}
96
+ und zur Verarbeitung personenbezogener Daten in den{' '}
97
+ <span
98
+ style={{
99
+ color: '#01819C',
100
+ fontFamily: 'sans-serif',
101
+ fontWeight: 700,
102
+ }}
103
+ >
104
+ Datenschutzbestimmungen
105
+ </span>
106
+ .
107
+ </p>
108
+ </CardBody>
109
+ </Card>
110
+ </div>
111
+ );
112
+ };
113
+ export const Primary: Story = {
114
+ args: {
115
+ ariaLabel: 'ariaLabel',
116
+ as: 'section',
117
+ borderRadius: false,
118
+ role: 'section',
119
+ },
120
+ parameters: {
121
+ design: {
122
+ type: 'figma',
123
+ url: 'https://www.figma.com/file/hN7xJ3rRAemUJT9T0uEfUS/Product-Design-System?node-id=6105%3A12944&mode=dev',
124
+ },
125
+ },
126
+ render: (args) => CardComponent(args),
127
+ };
128
+
129
+ const argTypes = {
130
+ ariaLabel: {
131
+ description:
132
+ "The aria-label attribute in web development is used to provide a text label that describes the purpose or meaning of an HTML element, especially for elements like icons or interactive components that don't have visible text. It's used to improve accessibility by ensuring that screen readers and assistive technologies can convey the element's purpose to users with disabilities.",
133
+ },
134
+ as: {
135
+ control: {
136
+ type: 'select',
137
+ },
138
+ defaultValue: { summary: '"section"' },
139
+ description: `Dynamically Setting the HTML Element: The as property allows you to specify an HTML element as a string. The component will then render as that HTML element. For example, if you set as to 'div', the component will render as a 'div' element.`,
140
+ },
141
+
142
+ borderRadius: {
143
+ description:
144
+ 'The borderRadius prop allows you to control the appearance of the card by adding border-radius',
145
+ },
146
+
147
+ children: {
148
+ control: { readonly: true, type: 'string' },
149
+ description:
150
+ 'In the Card component, the children prop is designed to accept CardBody and CardFooter components, allowing you to structure and customize the content of the card with these specific components.',
151
+ },
152
+
153
+ role: {
154
+ description:
155
+ 'The role attribute is used to define the purpose or function of an HTML element for accessibility.',
156
+ },
157
+ };
158
+
159
+ Primary.argTypes = argTypes;