@jongh/ui 1.6.5

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 (267) hide show
  1. package/.storybook/index.css +1 -0
  2. package/.storybook/main.ts +40 -0
  3. package/.storybook/preview.ts +16 -0
  4. package/.storybook/vitest.setup.ts +9 -0
  5. package/.turbo/turbo-build.log +79 -0
  6. package/CHANGELOG.md +54 -0
  7. package/chromatic.config.json +6 -0
  8. package/eslint.config.mjs +14 -0
  9. package/index.html +13 -0
  10. package/package.json +58 -0
  11. package/panda.config.ts +13 -0
  12. package/postcss.config.cjs +3 -0
  13. package/preset.ts +134 -0
  14. package/src/component/accordion/ui/index.tsx +80 -0
  15. package/src/component/accordion/ui/recipe.ts +65 -0
  16. package/src/component/avatar/ui/index.tsx +47 -0
  17. package/src/component/avatar/ui/recipe.ts +30 -0
  18. package/src/component/button/ui/index.tsx +29 -0
  19. package/src/component/button/ui/recipe.ts +102 -0
  20. package/src/component/chip/ui/index.tsx +30 -0
  21. package/src/component/chip/ui/recipe.ts +112 -0
  22. package/src/component/dialog/ui/index.tsx +73 -0
  23. package/src/component/dialog/ui/recipe.ts +92 -0
  24. package/src/component/select/ui/index.tsx +128 -0
  25. package/src/component/select/ui/recipe.ts +142 -0
  26. package/src/component/slider/ui/index.tsx +61 -0
  27. package/src/component/slider/ui/recipe.ts +52 -0
  28. package/src/component/tabs/ui/index.tsx +61 -0
  29. package/src/component/tabs/ui/recipe.ts +59 -0
  30. package/src/hooks/createContext.tsx +34 -0
  31. package/src/hooks/useComposedRefs.ts +20 -0
  32. package/src/hooks/useControllableState.ts +87 -0
  33. package/src/hooks/useKeyboardEvent.ts +58 -0
  34. package/src/stories/accordion.stories.tsx +63 -0
  35. package/src/stories/avatar.stories.tsx +33 -0
  36. package/src/stories/button.stories.tsx +53 -0
  37. package/src/stories/chip.stories.tsx +69 -0
  38. package/src/stories/dialog.stories.tsx +134 -0
  39. package/src/stories/select.stories.tsx +35 -0
  40. package/src/stories/slider.stories.tsx +31 -0
  41. package/src/stories/tabs.stories.tsx +63 -0
  42. package/src/test/accordion.test.tsx +66 -0
  43. package/src/test/tabs.test.tsx +30 -0
  44. package/src/types/index.ts +1 -0
  45. package/src/utils/createStyleContext.tsx +108 -0
  46. package/src/utils/defineSafe.ts +46 -0
  47. package/src/utils/getObjectKeys.ts +20 -0
  48. package/src/vite-env.d.ts +1 -0
  49. package/storybook-static/assets/Color-F6OSRLHC-CrKta8Qx.js +1 -0
  50. package/storybook-static/assets/DocsRenderer-CFRXHY34-Crd9Mepd.js +586 -0
  51. package/storybook-static/assets/_commonjsHelpers-Cpj98o6Y.js +1 -0
  52. package/storybook-static/assets/accordion.stories-0Om0AnMm.js +50 -0
  53. package/storybook-static/assets/avatar.stories-DMDsrSks.js +16 -0
  54. package/storybook-static/assets/axe-Dzet_oDA.js +30 -0
  55. package/storybook-static/assets/button.stories-CuVC-3x-.js +40 -0
  56. package/storybook-static/assets/chip.stories-FBIp8XNi.js +48 -0
  57. package/storybook-static/assets/chunk-XP5HYGXS-D5tuasO7.js +1 -0
  58. package/storybook-static/assets/createLucideIcon-DmXe7Z8R.js +21 -0
  59. package/storybook-static/assets/dialog.stories-3WsEvXt4.js +106 -0
  60. package/storybook-static/assets/entry-preview-Bkgdgq1b.js +10 -0
  61. package/storybook-static/assets/entry-preview-docs-zLz1Es7d.js +46 -0
  62. package/storybook-static/assets/iframe-LPPPXabV.js +199 -0
  63. package/storybook-static/assets/index-Bklpsb39.js +1 -0
  64. package/storybook-static/assets/index-BrlJLjep.js +24 -0
  65. package/storybook-static/assets/index-C2tRLqin.js +41 -0
  66. package/storybook-static/assets/index-CBft-ReK.js +8 -0
  67. package/storybook-static/assets/index-CSbWd7UJ.js +1 -0
  68. package/storybook-static/assets/index-ClcD9ViR.js +9 -0
  69. package/storybook-static/assets/index-Cu4lwwaE.js +1 -0
  70. package/storybook-static/assets/index-Cvkemp2J.js +1 -0
  71. package/storybook-static/assets/index-D59aU5s_.js +240 -0
  72. package/storybook-static/assets/index-DNo8LKN3.js +1 -0
  73. package/storybook-static/assets/index-DUy19JZU.js +1 -0
  74. package/storybook-static/assets/index-D_35mznO.js +1 -0
  75. package/storybook-static/assets/index-DrFu-skq.js +6 -0
  76. package/storybook-static/assets/index-DvbTp2M2.js +1 -0
  77. package/storybook-static/assets/index-rtmQni2k.js +1 -0
  78. package/storybook-static/assets/jsx-runtime-BYYWji4R.js +9 -0
  79. package/storybook-static/assets/matchers-57EZJSQE-oeXCqs4p.js +14 -0
  80. package/storybook-static/assets/preview-1l6V4UsQ.js +1 -0
  81. package/storybook-static/assets/preview-B3PTUHS7.js +1 -0
  82. package/storybook-static/assets/preview-BBWR9nbA.js +1 -0
  83. package/storybook-static/assets/preview-BCV5r-Ja.js +1 -0
  84. package/storybook-static/assets/preview-BWzBA1C2.js +396 -0
  85. package/storybook-static/assets/preview-Bb56VplF.js +2 -0
  86. package/storybook-static/assets/preview-Bl8rsKRy.js +1 -0
  87. package/storybook-static/assets/preview-Bm-a94Ct.js +2 -0
  88. package/storybook-static/assets/preview-Br-h4d84.js +1 -0
  89. package/storybook-static/assets/preview-D77C14du.js +34 -0
  90. package/storybook-static/assets/preview-DC8N7cZb.css +1 -0
  91. package/storybook-static/assets/preview-DGUiP6tS.js +7 -0
  92. package/storybook-static/assets/react-18-BPs3tMGP.js +1 -0
  93. package/storybook-static/assets/select.stories-AN8Hb81Z.js +20 -0
  94. package/storybook-static/assets/slider.stories-CxOczq0y.js +12 -0
  95. package/storybook-static/assets/tabs.stories-BbTU4QU3.js +28 -0
  96. package/storybook-static/favicon.svg +1 -0
  97. package/storybook-static/iframe.html +666 -0
  98. package/storybook-static/index.html +193 -0
  99. package/storybook-static/index.json +1 -0
  100. package/storybook-static/nunito-sans-bold-italic.woff2 +0 -0
  101. package/storybook-static/nunito-sans-bold.woff2 +0 -0
  102. package/storybook-static/nunito-sans-italic.woff2 +0 -0
  103. package/storybook-static/nunito-sans-regular.woff2 +0 -0
  104. package/storybook-static/project.json +1 -0
  105. package/storybook-static/sb-addons/a11y-12/manager-bundle.js +3 -0
  106. package/storybook-static/sb-addons/a11y-12/manager-bundle.js.LEGAL.txt +0 -0
  107. package/storybook-static/sb-addons/chromatic-com-storybook-10/manager-bundle.js +331 -0
  108. package/storybook-static/sb-addons/chromatic-com-storybook-10/manager-bundle.js.LEGAL.txt +51 -0
  109. package/storybook-static/sb-addons/controls-11/manager-bundle.js +391 -0
  110. package/storybook-static/sb-addons/controls-11/manager-bundle.js.LEGAL.txt +0 -0
  111. package/storybook-static/sb-addons/essentials-actions-3/manager-bundle.js +3 -0
  112. package/storybook-static/sb-addons/essentials-actions-3/manager-bundle.js.LEGAL.txt +0 -0
  113. package/storybook-static/sb-addons/essentials-backgrounds-5/manager-bundle.js +12 -0
  114. package/storybook-static/sb-addons/essentials-backgrounds-5/manager-bundle.js.LEGAL.txt +0 -0
  115. package/storybook-static/sb-addons/essentials-controls-2/manager-bundle.js +391 -0
  116. package/storybook-static/sb-addons/essentials-controls-2/manager-bundle.js.LEGAL.txt +0 -0
  117. package/storybook-static/sb-addons/essentials-docs-4/manager-bundle.js +230 -0
  118. package/storybook-static/sb-addons/essentials-docs-4/manager-bundle.js.LEGAL.txt +0 -0
  119. package/storybook-static/sb-addons/essentials-measure-8/manager-bundle.js +3 -0
  120. package/storybook-static/sb-addons/essentials-measure-8/manager-bundle.js.LEGAL.txt +0 -0
  121. package/storybook-static/sb-addons/essentials-outline-9/manager-bundle.js +3 -0
  122. package/storybook-static/sb-addons/essentials-outline-9/manager-bundle.js.LEGAL.txt +0 -0
  123. package/storybook-static/sb-addons/essentials-toolbars-7/manager-bundle.js +3 -0
  124. package/storybook-static/sb-addons/essentials-toolbars-7/manager-bundle.js.LEGAL.txt +0 -0
  125. package/storybook-static/sb-addons/essentials-viewport-6/manager-bundle.js +3 -0
  126. package/storybook-static/sb-addons/essentials-viewport-6/manager-bundle.js.LEGAL.txt +0 -0
  127. package/storybook-static/sb-addons/links-1/manager-bundle.js +3 -0
  128. package/storybook-static/sb-addons/links-1/manager-bundle.js.LEGAL.txt +0 -0
  129. package/storybook-static/sb-addons/storybook-core-core-server-presets-0/common-manager-bundle.js +3 -0
  130. package/storybook-static/sb-addons/storybook-core-core-server-presets-0/common-manager-bundle.js.LEGAL.txt +0 -0
  131. package/storybook-static/sb-addons/storybook-experimental-addon-test-13/manager-bundle.js +211 -0
  132. package/storybook-static/sb-addons/storybook-experimental-addon-test-13/manager-bundle.js.LEGAL.txt +0 -0
  133. package/storybook-static/sb-common-assets/favicon.svg +1 -0
  134. package/storybook-static/sb-common-assets/nunito-sans-bold-italic.woff2 +0 -0
  135. package/storybook-static/sb-common-assets/nunito-sans-bold.woff2 +0 -0
  136. package/storybook-static/sb-common-assets/nunito-sans-italic.woff2 +0 -0
  137. package/storybook-static/sb-common-assets/nunito-sans-regular.woff2 +0 -0
  138. package/storybook-static/sb-manager/globals-module-info.js +1037 -0
  139. package/storybook-static/sb-manager/globals-runtime.js +40857 -0
  140. package/storybook-static/sb-manager/globals.js +48 -0
  141. package/storybook-static/sb-manager/runtime.js +11963 -0
  142. package/styled-system/css/conditions.mjs +36 -0
  143. package/styled-system/css/css.d.ts +22 -0
  144. package/styled-system/css/css.mjs +45 -0
  145. package/styled-system/css/cva.d.ts +6 -0
  146. package/styled-system/css/cva.mjs +87 -0
  147. package/styled-system/css/cx.d.ts +5 -0
  148. package/styled-system/css/cx.mjs +15 -0
  149. package/styled-system/css/index.d.ts +5 -0
  150. package/styled-system/css/index.mjs +4 -0
  151. package/styled-system/css/sva.d.ts +4 -0
  152. package/styled-system/css/sva.mjs +41 -0
  153. package/styled-system/helpers.mjs +336 -0
  154. package/styled-system/jsx/aspect-ratio.d.ts +10 -0
  155. package/styled-system/jsx/aspect-ratio.mjs +14 -0
  156. package/styled-system/jsx/bleed.d.ts +10 -0
  157. package/styled-system/jsx/bleed.mjs +14 -0
  158. package/styled-system/jsx/box.d.ts +10 -0
  159. package/styled-system/jsx/box.mjs +14 -0
  160. package/styled-system/jsx/center.d.ts +10 -0
  161. package/styled-system/jsx/center.mjs +14 -0
  162. package/styled-system/jsx/circle.d.ts +10 -0
  163. package/styled-system/jsx/circle.mjs +14 -0
  164. package/styled-system/jsx/container.d.ts +10 -0
  165. package/styled-system/jsx/container.mjs +14 -0
  166. package/styled-system/jsx/cq.d.ts +10 -0
  167. package/styled-system/jsx/cq.mjs +14 -0
  168. package/styled-system/jsx/divider.d.ts +10 -0
  169. package/styled-system/jsx/divider.mjs +14 -0
  170. package/styled-system/jsx/factory-helper.mjs +22 -0
  171. package/styled-system/jsx/factory.d.ts +3 -0
  172. package/styled-system/jsx/factory.mjs +80 -0
  173. package/styled-system/jsx/flex.d.ts +10 -0
  174. package/styled-system/jsx/flex.mjs +14 -0
  175. package/styled-system/jsx/float.d.ts +10 -0
  176. package/styled-system/jsx/float.mjs +14 -0
  177. package/styled-system/jsx/grid-item.d.ts +10 -0
  178. package/styled-system/jsx/grid-item.mjs +14 -0
  179. package/styled-system/jsx/grid.d.ts +10 -0
  180. package/styled-system/jsx/grid.mjs +14 -0
  181. package/styled-system/jsx/hstack.d.ts +10 -0
  182. package/styled-system/jsx/hstack.mjs +14 -0
  183. package/styled-system/jsx/index.d.ts +24 -0
  184. package/styled-system/jsx/index.mjs +22 -0
  185. package/styled-system/jsx/is-valid-prop.d.ts +11 -0
  186. package/styled-system/jsx/is-valid-prop.mjs +17 -0
  187. package/styled-system/jsx/link-overlay.d.ts +10 -0
  188. package/styled-system/jsx/link-overlay.mjs +14 -0
  189. package/styled-system/jsx/spacer.d.ts +10 -0
  190. package/styled-system/jsx/spacer.mjs +14 -0
  191. package/styled-system/jsx/square.d.ts +10 -0
  192. package/styled-system/jsx/square.mjs +14 -0
  193. package/styled-system/jsx/stack.d.ts +10 -0
  194. package/styled-system/jsx/stack.mjs +14 -0
  195. package/styled-system/jsx/visually-hidden.d.ts +10 -0
  196. package/styled-system/jsx/visually-hidden.mjs +14 -0
  197. package/styled-system/jsx/vstack.d.ts +10 -0
  198. package/styled-system/jsx/vstack.mjs +14 -0
  199. package/styled-system/jsx/wrap.d.ts +10 -0
  200. package/styled-system/jsx/wrap.mjs +14 -0
  201. package/styled-system/patterns/aspect-ratio.d.ts +21 -0
  202. package/styled-system/patterns/aspect-ratio.mjs +38 -0
  203. package/styled-system/patterns/bleed.d.ts +22 -0
  204. package/styled-system/patterns/bleed.mjs +24 -0
  205. package/styled-system/patterns/box.d.ts +21 -0
  206. package/styled-system/patterns/box.mjs +15 -0
  207. package/styled-system/patterns/center.d.ts +21 -0
  208. package/styled-system/patterns/center.mjs +21 -0
  209. package/styled-system/patterns/circle.d.ts +21 -0
  210. package/styled-system/patterns/circle.mjs +25 -0
  211. package/styled-system/patterns/container.d.ts +21 -0
  212. package/styled-system/patterns/container.mjs +21 -0
  213. package/styled-system/patterns/cq.d.ts +22 -0
  214. package/styled-system/patterns/cq.mjs +21 -0
  215. package/styled-system/patterns/divider.d.ts +23 -0
  216. package/styled-system/patterns/divider.mjs +25 -0
  217. package/styled-system/patterns/flex.d.ts +27 -0
  218. package/styled-system/patterns/flex.mjs +26 -0
  219. package/styled-system/patterns/float.d.ts +24 -0
  220. package/styled-system/patterns/float.mjs +52 -0
  221. package/styled-system/patterns/grid-item.d.ts +26 -0
  222. package/styled-system/patterns/grid-item.mjs +25 -0
  223. package/styled-system/patterns/grid.d.ts +25 -0
  224. package/styled-system/patterns/grid.mjs +27 -0
  225. package/styled-system/patterns/hstack.d.ts +22 -0
  226. package/styled-system/patterns/hstack.mjs +24 -0
  227. package/styled-system/patterns/index.d.ts +21 -0
  228. package/styled-system/patterns/index.mjs +20 -0
  229. package/styled-system/patterns/link-overlay.d.ts +21 -0
  230. package/styled-system/patterns/link-overlay.mjs +24 -0
  231. package/styled-system/patterns/spacer.d.ts +21 -0
  232. package/styled-system/patterns/spacer.mjs +21 -0
  233. package/styled-system/patterns/square.d.ts +21 -0
  234. package/styled-system/patterns/square.mjs +24 -0
  235. package/styled-system/patterns/stack.d.ts +24 -0
  236. package/styled-system/patterns/stack.mjs +24 -0
  237. package/styled-system/patterns/visually-hidden.d.ts +21 -0
  238. package/styled-system/patterns/visually-hidden.mjs +18 -0
  239. package/styled-system/patterns/vstack.d.ts +22 -0
  240. package/styled-system/patterns/vstack.mjs +24 -0
  241. package/styled-system/patterns/wrap.d.ts +25 -0
  242. package/styled-system/patterns/wrap.mjs +25 -0
  243. package/styled-system/tokens/index.d.ts +9 -0
  244. package/styled-system/tokens/index.mjs +1992 -0
  245. package/styled-system/tokens/tokens.d.ts +60 -0
  246. package/styled-system/types/composition.d.ts +164 -0
  247. package/styled-system/types/conditions.d.ts +274 -0
  248. package/styled-system/types/csstype.d.ts +21298 -0
  249. package/styled-system/types/global.d.ts +20 -0
  250. package/styled-system/types/index.d.ts +8 -0
  251. package/styled-system/types/jsx.d.ts +52 -0
  252. package/styled-system/types/parts.d.ts +8 -0
  253. package/styled-system/types/pattern.d.ts +78 -0
  254. package/styled-system/types/prop-type.d.ts +235 -0
  255. package/styled-system/types/recipe.d.ts +181 -0
  256. package/styled-system/types/selectors.d.ts +59 -0
  257. package/styled-system/types/static-css.d.ts +56 -0
  258. package/styled-system/types/style-props.d.ts +7468 -0
  259. package/styled-system/types/system-types.d.ts +109 -0
  260. package/tsconfig.json +13 -0
  261. package/turbo/generators/config.cjs +7 -0
  262. package/turbo/generators/stories.cjs +23 -0
  263. package/turbo/generators/templates/stories.tsx.hbs +16 -0
  264. package/turbo/generators/templates/ui.tsx.hbs +8 -0
  265. package/turbo/generators/ui.cjs +19 -0
  266. package/vite.config.ts +7 -0
  267. package/vitest.config.ts +45 -0
@@ -0,0 +1,109 @@
1
+ /* eslint-disable */
2
+ import type { ConditionalValue, Nested } from './conditions';
3
+ import type { AtRule, PropertiesFallback } from './csstype';
4
+ import type { SystemProperties, CssVarProperties } from './style-props';
5
+
6
+ type String = string & {}
7
+ type Number = number & {}
8
+
9
+ export type Pretty<T> = { [K in keyof T]: T[K] } & {}
10
+
11
+ export type DistributiveOmit<T, K extends keyof any> = T extends unknown ? Omit<T, K> : never
12
+
13
+ export type DistributiveUnion<T, U> = {
14
+ [K in keyof T]: K extends keyof U ? U[K] | T[K] : T[K]
15
+ } & DistributiveOmit<U, keyof T>
16
+
17
+ export type Assign<T, U> = {
18
+ [K in keyof T]: K extends keyof U ? U[K] : T[K]
19
+ } & U
20
+
21
+ /* -----------------------------------------------------------------------------
22
+ * Native css properties
23
+ * -----------------------------------------------------------------------------*/
24
+
25
+ export type CssProperty = keyof PropertiesFallback
26
+
27
+ export interface CssProperties extends PropertiesFallback<String | Number>, CssVarProperties {}
28
+
29
+ export interface CssKeyframes {
30
+ [name: string]: {
31
+ [time: string]: CssProperties
32
+ }
33
+ }
34
+
35
+ /* -----------------------------------------------------------------------------
36
+ * Conditional css properties
37
+ * -----------------------------------------------------------------------------*/
38
+
39
+ interface GenericProperties {
40
+ [key: string]: ConditionalValue<String | Number | boolean>
41
+ }
42
+
43
+ /* -----------------------------------------------------------------------------
44
+ * Native css props
45
+ * -----------------------------------------------------------------------------*/
46
+
47
+ export type NestedCssProperties = Nested<CssProperties>
48
+
49
+ export type SystemStyleObject = Omit<Nested<SystemProperties & CssVarProperties>, 'base'>
50
+
51
+ export interface GlobalStyleObject {
52
+ [selector: string]: SystemStyleObject
53
+ }
54
+ export interface ExtendableGlobalStyleObject {
55
+ [selector: string]: SystemStyleObject | undefined
56
+ extend?: GlobalStyleObject | undefined
57
+ }
58
+
59
+ /* -----------------------------------------------------------------------------
60
+ * Composition (text styles, layer styles)
61
+ * -----------------------------------------------------------------------------*/
62
+
63
+ type FilterStyleObject<P extends string> = {
64
+ [K in P]?: K extends keyof SystemStyleObject ? SystemStyleObject[K] : unknown
65
+ }
66
+
67
+ export type CompositionStyleObject<Property extends string> = Nested<FilterStyleObject<Property> & CssVarProperties>
68
+
69
+ /* -----------------------------------------------------------------------------
70
+ * Font face
71
+ * -----------------------------------------------------------------------------*/
72
+
73
+ export type GlobalFontfaceRule = Omit<AtRule.FontFaceFallback, 'src'> & Required<Pick<AtRule.FontFaceFallback, 'src'>>
74
+
75
+ export type FontfaceRule = Omit<GlobalFontfaceRule, 'fontFamily'>
76
+
77
+ export interface GlobalFontface {
78
+ [name: string]: FontfaceRule | FontfaceRule[]
79
+ }
80
+
81
+ export interface ExtendableGlobalFontface {
82
+ [name: string]: FontfaceRule | FontfaceRule[] | GlobalFontface | undefined
83
+ extend?: GlobalFontface | undefined
84
+ }
85
+
86
+ /* -----------------------------------------------------------------------------
87
+ * Jsx style props
88
+ * -----------------------------------------------------------------------------*/
89
+ interface WithCss {
90
+ css?: SystemStyleObject | SystemStyleObject[]
91
+ }
92
+
93
+ export type JsxStyleProps = SystemStyleObject & WithCss
94
+
95
+ export interface PatchedHTMLProps {
96
+ htmlWidth?: string | number
97
+ htmlHeight?: string | number
98
+ htmlTranslate?: 'yes' | 'no' | undefined
99
+ htmlContent?: string
100
+ }
101
+
102
+ export type OmittedHTMLProps = 'color' | 'translate' | 'transition' | 'width' | 'height' | 'content'
103
+
104
+ type WithHTMLProps<T> = DistributiveOmit<T, OmittedHTMLProps> & PatchedHTMLProps
105
+
106
+ export type JsxHTMLProps<T extends Record<string, any>, P extends Record<string, any> = {}> = Assign<
107
+ WithHTMLProps<T>,
108
+ P
109
+ >
package/tsconfig.json ADDED
@@ -0,0 +1,13 @@
1
+ {
2
+ "extends": "@jongh/tsconfig/react.json",
3
+ "compilerOptions": {
4
+ "outDir": "dist",
5
+ "baseUrl": "./",
6
+ "paths": {
7
+ "@styled-system/*": ["styled-system/*"],
8
+ "@utils/*": ["./src/utils/*"],
9
+ "@/*": ["./src/*"]
10
+ }
11
+ },
12
+ "exclude": ["node_modules", "dist"]
13
+ }
@@ -0,0 +1,7 @@
1
+ /* eslint-disable @typescript-eslint/no-require-imports */
2
+ const storyGen = require("./stories.cjs")
3
+ const uiGen = require("./ui.cjs")
4
+ module.exports = function generator(plop) {
5
+ storyGen(plop)
6
+ uiGen(plop)
7
+ }
@@ -0,0 +1,23 @@
1
+ module.exports = function generator(plop) {
2
+ plop.setGenerator("stories", {
3
+ description: "create new storybook template",
4
+ prompts: [
5
+ {
6
+ type: "input",
7
+ name: "name",
8
+ message: "What is the name of the new file to create?",
9
+ validate: (input) => {
10
+ console.log(input)
11
+ return true
12
+ },
13
+ },
14
+ ],
15
+ actions: [
16
+ {
17
+ type: "add",
18
+ path: "src/stories/{{camelCase name}}.stories.tsx",
19
+ templateFile: "templates/stories.tsx.hbs",
20
+ },
21
+ ],
22
+ })
23
+ }
@@ -0,0 +1,16 @@
1
+ import type { Meta, StoryObj } from "@storybook/react"
2
+
3
+ import { {{pascalCase name}} } from "../components/{{pascalCase name}}/{{pascalCase name}}.tsx"
4
+
5
+ const meta = {
6
+ title: "{{pascalCase name}}",
7
+ tags: ["autodocs"],
8
+ } satisfies Meta<typeof {{pascalCase name}}>
9
+
10
+ export default meta
11
+
12
+ type Story = StoryObj<typeof meta>
13
+
14
+ export const Primary: Story = {
15
+ args: {},
16
+ }
@@ -0,0 +1,8 @@
1
+ import type { ReactNode } from "react"
2
+
3
+ export type {{pascalCase name}}Props = {
4
+ children?: ReactNode
5
+ }
6
+ export const {{pascalCase name}} = ({ children }: {{pascalCase name}}Props) => {
7
+ return <div></div>
8
+ }
@@ -0,0 +1,19 @@
1
+ module.exports = function generator(plop) {
2
+ plop.setGenerator("component", {
3
+ description: "Create a new React component",
4
+ prompts: [
5
+ {
6
+ type: "input",
7
+ name: "name",
8
+ message: "What is the name of the component?",
9
+ },
10
+ ],
11
+ actions: [
12
+ {
13
+ type: "add",
14
+ path: "src/component/{{camelCase name}}/ui/index.tsx",
15
+ templateFile: "templates/ui.tsx.hbs",
16
+ },
17
+ ],
18
+ })
19
+ }
package/vite.config.ts ADDED
@@ -0,0 +1,7 @@
1
+ import react from "@vitejs/plugin-react"
2
+ import { defineConfig } from "vite"
3
+ import tsconfigPaths from "vite-tsconfig-paths"
4
+
5
+ export default defineConfig({
6
+ plugins: [react(), tsconfigPaths({ root: "./" })],
7
+ })
@@ -0,0 +1,45 @@
1
+ import path from "node:path"
2
+ import { fileURLToPath } from "node:url"
3
+
4
+ import { storybookTest } from "@storybook/experimental-addon-test/vitest-plugin"
5
+ import { defineConfig, defineProject, mergeConfig } from "vitest/config"
6
+
7
+ const dirname =
8
+ typeof __dirname !== "undefined"
9
+ ? __dirname
10
+ : path.dirname(fileURLToPath(import.meta.url))
11
+
12
+ // 👇 If you're using Next.js, apply this framework plugin as well
13
+ // import { storybookNextJsPlugin } from '@storybook/experimental-nextjs-vite/vite-plugin';
14
+ import viteConfig from "./vite.config"
15
+
16
+ export default defineProject(
17
+ mergeConfig(
18
+ viteConfig,
19
+ defineConfig({
20
+ plugins: [
21
+ storybookTest({
22
+ configDir: path.join(dirname, ".storybook"),
23
+ storybookScript: "pnpm storybook --ci",
24
+ }),
25
+ ],
26
+ test: {
27
+ browser: {
28
+ instances: [
29
+ {
30
+ browser: "chromium",
31
+ },
32
+ ],
33
+ enabled: true,
34
+ provider: "playwright",
35
+ headless: true,
36
+ },
37
+ // Speed up tests and better match how they run in Storybook itself
38
+ // https://vitest.dev/config/#isolate
39
+ // Consider removing this if you have flaky tests
40
+ isolate: false,
41
+ setupFiles: ["./.storybook/vitest.setup.ts"],
42
+ },
43
+ }),
44
+ ),
45
+ )