storybook-solidjs-vite 10.3.0 → 10.4.0

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 (123) hide show
  1. package/README.md +7 -2
  2. package/dist/{SolidComponentMetaManager-KXVARPHU.js → SolidComponentMetaManager-4SWET2OG.js} +3 -3
  3. package/dist/{SolidComponentMetaManager-KXVARPHU.js.map → SolidComponentMetaManager-4SWET2OG.js.map} +1 -1
  4. package/dist/before-all-MeQv4iKF.d.ts +4 -0
  5. package/dist/{chunk-D5AOR3VU.js → chunk-4R2BK5SE.js} +83 -24
  6. package/dist/chunk-4R2BK5SE.js.map +1 -0
  7. package/dist/chunk-FGS26NTB.js +68 -0
  8. package/dist/chunk-FGS26NTB.js.map +1 -0
  9. package/dist/{chunk-QRPXDQGQ.js → chunk-KZXNQC4Q.js} +10 -10
  10. package/dist/chunk-KZXNQC4Q.js.map +1 -0
  11. package/dist/{chunk-FGHVLJAL.js → chunk-LKTA6WTO.js} +14 -7
  12. package/dist/chunk-LKTA6WTO.js.map +1 -0
  13. package/dist/chunk-NOGINBE3.js +8 -0
  14. package/dist/chunk-NOGINBE3.js.map +1 -0
  15. package/dist/{chunk-GZ3XWUGK.js → chunk-OHDHM5OZ.js} +20 -16
  16. package/dist/chunk-OHDHM5OZ.js.map +1 -0
  17. package/dist/chunk-QCGKL2ZI.js +70 -0
  18. package/dist/chunk-QCGKL2ZI.js.map +1 -0
  19. package/dist/{chunk-6566KBHG.js → chunk-TKOWB3JL.js} +6 -6
  20. package/dist/chunk-TKOWB3JL.js.map +1 -0
  21. package/dist/{chunk-H7QHQTFU.js → chunk-UQOUKQDU.js} +6 -6
  22. package/dist/chunk-UQOUKQDU.js.map +1 -0
  23. package/dist/define-preview-eX4EepPY.d.ts +41 -0
  24. package/dist/framework/preset.d.ts +3 -110
  25. package/dist/framework/preset.js +15 -922
  26. package/dist/framework/preset.js.map +1 -1
  27. package/dist/index.d.ts +10 -49
  28. package/dist/index.js +9 -19
  29. package/dist/index.js.map +1 -1
  30. package/dist/next.d.ts +10 -49
  31. package/dist/next.js +9 -19
  32. package/dist/next.js.map +1 -1
  33. package/dist/node.d.ts +8 -0
  34. package/dist/node.js +4 -0
  35. package/dist/{renderer/playwright.js → playwright.js} +1 -1
  36. package/dist/{public-types-BZgbgZlw.d.ts → public-api-CJkmyX7u.d.ts} +5 -1
  37. package/dist/{entry-preview → renderer}/argtypes.d.ts +1 -1
  38. package/dist/renderer/argtypes.js +4 -0
  39. package/dist/{entry-preview → renderer}/docs.d.ts +1 -1
  40. package/dist/{entry-preview → renderer}/docs.js +1 -1
  41. package/dist/renderer/solid-1.d.ts +16 -0
  42. package/dist/renderer/solid-1.js +5 -0
  43. package/dist/renderer/solid-2.d.ts +16 -0
  44. package/dist/renderer/solid-2.js +5 -0
  45. package/dist/renderer.d.ts +109 -2
  46. package/dist/renderer.js +948 -5
  47. package/dist/renderer.js.map +1 -1
  48. package/dist/toDocgenInfo-LDHSOTP4.js +4 -0
  49. package/dist/{toDocgenInfo-PQOQHVB2.js.map → toDocgenInfo-LDHSOTP4.js.map} +1 -1
  50. package/dist/{types-3qJHo3rN.d.ts → types-DkyU_XEU.d.ts} +1 -2
  51. package/package.json +28 -28
  52. package/src/framework/preset.ts +15 -12
  53. package/src/framework/{node.ts → public-api.ts} +2 -0
  54. package/src/framework/types.ts +0 -2
  55. package/src/index.ts +6 -4
  56. package/src/internal/componentManifest/toDocgenInfo.test.ts +39 -0
  57. package/src/{componentManifest → internal/componentManifest}/toDocgenInfo.ts +20 -5
  58. package/src/{framework → internal}/solidVersion.ts +4 -19
  59. package/src/next.ts +6 -7
  60. package/src/node.ts +2 -0
  61. package/src/{renderer/v2 → preview}/define-preview.ts +46 -8
  62. package/src/{renderer/shared/public-types.ts → preview/public-api.ts} +24 -1
  63. package/src/renderer/{docs/entry-preview-argtypes.ts → argtypes.ts} +18 -13
  64. package/src/renderer/{docs/entry-preview.ts → docs.ts} +1 -1
  65. package/src/renderer/index.ts +17 -14
  66. package/src/renderer/shared/apply-decorators.ts +10 -16
  67. package/src/renderer/shared/{preview-annotations.ts → before-all.ts} +0 -25
  68. package/src/renderer/shared/default-render.ts +16 -0
  69. package/src/renderer/shared/mount.ts +37 -0
  70. package/src/renderer/shared/render-to-canvas.ts +72 -0
  71. package/src/renderer/shared/story-store.ts +1 -1
  72. package/src/renderer/solid-1.ts +90 -0
  73. package/src/renderer/solid-2.ts +94 -0
  74. package/dist/chunk-6566KBHG.js.map +0 -1
  75. package/dist/chunk-7IQZHF5A.js +0 -87
  76. package/dist/chunk-7IQZHF5A.js.map +0 -1
  77. package/dist/chunk-D5AOR3VU.js.map +0 -1
  78. package/dist/chunk-FGHVLJAL.js.map +0 -1
  79. package/dist/chunk-GF3JOYAC.js +0 -89
  80. package/dist/chunk-GF3JOYAC.js.map +0 -1
  81. package/dist/chunk-GZ3XWUGK.js.map +0 -1
  82. package/dist/chunk-H7QHQTFU.js.map +0 -1
  83. package/dist/chunk-NNSMHFZY.js +0 -42
  84. package/dist/chunk-NNSMHFZY.js.map +0 -1
  85. package/dist/chunk-QRPXDQGQ.js.map +0 -1
  86. package/dist/chunk-T3EBLI6L.js +0 -8
  87. package/dist/chunk-T3EBLI6L.js.map +0 -1
  88. package/dist/entry-preview/argtypes.js +0 -4
  89. package/dist/entry-preview/solid-1.d.ts +0 -14
  90. package/dist/entry-preview/solid-1.js +0 -5
  91. package/dist/entry-preview/solid-2.d.ts +0 -14
  92. package/dist/entry-preview/solid-2.js +0 -5
  93. package/dist/framework/node.d.ts +0 -7
  94. package/dist/framework/node.js +0 -4
  95. package/dist/preview-annotations-CYD5LX4X.d.ts +0 -13
  96. package/dist/toDocgenInfo-PQOQHVB2.js +0 -4
  97. package/src/renderer/shared/create-define-preview.ts +0 -45
  98. package/src/renderer/v1/define-preview.ts +0 -101
  99. package/src/renderer/v1/entry-preview.ts +0 -115
  100. package/src/renderer/v1/index.ts +0 -5
  101. package/src/renderer/v1/public-api.ts +0 -29
  102. package/src/renderer/v2/entry-preview.ts +0 -116
  103. package/src/renderer/v2/index.ts +0 -5
  104. package/src/renderer/v2/public-api.ts +0 -29
  105. /package/dist/{framework/node.js.map → node.js.map} +0 -0
  106. /package/dist/{renderer/playwright.d.ts → playwright.d.ts} +0 -0
  107. /package/dist/{renderer/playwright.js.map → playwright.js.map} +0 -0
  108. /package/dist/{entry-preview → renderer}/argtypes.js.map +0 -0
  109. /package/dist/{entry-preview → renderer}/docs.js.map +0 -0
  110. /package/dist/{entry-preview → renderer}/solid-1.js.map +0 -0
  111. /package/dist/{entry-preview → renderer}/solid-2.js.map +0 -0
  112. /package/src/{codeExamples → internal/codeExamples}/enrichCsf.ts +0 -0
  113. /package/src/{codeExamples → internal/codeExamples}/generateCodeSnippet.test.ts +0 -0
  114. /package/src/{codeExamples → internal/codeExamples}/generateCodeSnippet.ts +0 -0
  115. /package/src/{codeExamples → internal/codeExamples}/invariant.ts +0 -0
  116. /package/src/{componentManifest → internal/componentManifest}/getComponents.ts +0 -0
  117. /package/src/{componentManifest → internal/componentManifest}/manifests.ts +0 -0
  118. /package/src/{componentManifest → internal/componentManifest}/solidComponentMeta/SolidComponentMetaManager.ts +0 -0
  119. /package/src/{componentManifest → internal/componentManifest}/solidComponentMeta/SolidComponentMetaProject.ts +0 -0
  120. /package/src/{componentManifest → internal/componentManifest}/solidComponentMeta/resolveProps.ts +0 -0
  121. /package/src/{componentManifest → internal/componentManifest}/solidComponentMetaPlugin.ts +0 -0
  122. /package/src/{componentManifest → internal/componentManifest}/types.ts +0 -0
  123. /package/src/{renderer/playwright.ts → playwright.ts} +0 -0
package/README.md CHANGED
@@ -82,7 +82,7 @@ framework: 'storybook-solidjs-vite/next' // Solid 2 only
82
82
 
83
83
  ```ts
84
84
  // .storybook/main.ts
85
- import { defineMain } from 'storybook-solidjs-vite/node';
85
+ import { defineMain } from 'storybook-solidjs-vite';
86
86
 
87
87
  export default defineMain({
88
88
  framework: { name: 'storybook-solidjs-vite' },
@@ -91,9 +91,14 @@ export default defineMain({
91
91
 
92
92
  ```ts
93
93
  // .storybook/preview.tsx
94
+ import addonDocs from '@storybook/addon-docs';
94
95
  import { definePreview } from 'storybook-solidjs-vite';
95
96
  // for Solid 2, use:
96
- import { definePreview } from 'storybook-solidjs-vite/next';
97
+ // import { definePreview } from 'storybook-solidjs-vite/next';
98
+
99
+ export default definePreview({
100
+ addons: [addonDocs()],
101
+ });
97
102
  ```
98
103
 
99
104
  ```ts
@@ -1,4 +1,4 @@
1
- export { DOCGEN_ENGINE, MANIFEST_DOCGEN_ENGINE, SolidComponentMetaManager, getOrCreateSolidComponentMetaManager } from './chunk-6566KBHG.js';
1
+ export { DOCGEN_ENGINE, MANIFEST_DOCGEN_ENGINE, SolidComponentMetaManager, getOrCreateSolidComponentMetaManager } from './chunk-TKOWB3JL.js';
2
2
  import './chunk-PZ5AY32C.js';
3
- //# sourceMappingURL=SolidComponentMetaManager-KXVARPHU.js.map
4
- //# sourceMappingURL=SolidComponentMetaManager-KXVARPHU.js.map
3
+ //# sourceMappingURL=SolidComponentMetaManager-4SWET2OG.js.map
4
+ //# sourceMappingURL=SolidComponentMetaManager-4SWET2OG.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"SolidComponentMetaManager-KXVARPHU.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"SolidComponentMetaManager-4SWET2OG.js"}
@@ -0,0 +1,4 @@
1
+ /** Configures `storybook/test` wrappers so Solid updates flush after async play steps. */
2
+ declare const beforeAll: () => Promise<void>;
3
+
4
+ export { beforeAll as b };
@@ -1,10 +1,15 @@
1
1
  import { defaultDecorateStory } from 'storybook/preview-api';
2
- import { global } from '@storybook/global';
3
- import { createComponent } from 'solid-js';
4
2
  import { configure } from 'storybook/test';
5
3
 
6
- // src/renderer/shared/public-types.ts
4
+ // src/preview/public-api.ts
7
5
  var IS_SOLID_JSX_FLAG = "__isJSX";
6
+ var createDecorator = (decorator) => {
7
+ return decorator;
8
+ };
9
+ var createJSXDecorator = (decorator) => {
10
+ decorator[IS_SOLID_JSX_FLAG] = true;
11
+ return decorator;
12
+ };
8
13
 
9
14
  // src/renderer/shared/story-store.ts
10
15
  var getStoryId = (context) => {
@@ -67,7 +72,9 @@ function createStoryState(createStore) {
67
72
  }
68
73
  };
69
74
  }
70
- function createApplyDecorators(store, createComponent2) {
75
+ function createApplyDecorators({
76
+ storyStore
77
+ }) {
71
78
  return (storyFn, rawDecorators) => {
72
79
  const decorators = rawDecorators.map(
73
80
  (decorator) => {
@@ -78,7 +85,7 @@ function createApplyDecorators(store, createComponent2) {
78
85
  return (StoryFn, context) => {
79
86
  if (isJSX) {
80
87
  const storyId = getStoryId(context);
81
- if (storyId && store.isStoryRendered(storyId)) {
88
+ if (storyId && storyStore.isStoryRendered(storyId)) {
82
89
  return StoryFn(context);
83
90
  }
84
91
  }
@@ -88,27 +95,13 @@ function createApplyDecorators(store, createComponent2) {
88
95
  );
89
96
  return defaultDecorateStory((context) => {
90
97
  const storyId = getStoryId(context);
91
- if (storyId && store.isStoryRendered(storyId)) {
98
+ if (storyId && storyStore.isStoryRendered(storyId)) {
92
99
  return null;
93
100
  }
94
- return createComponent2(storyFn, context);
101
+ return storyFn(context);
95
102
  }, decorators);
96
103
  };
97
104
  }
98
- if (global.window) {
99
- global.window.STORYBOOK_ENV = "solid";
100
- }
101
- var parameters = {
102
- renderer: "solid"
103
- };
104
- var render = (_, context) => {
105
- if (!context.component) {
106
- throw new Error(
107
- `Unable to render story ${context.id} as the component annotation is missing from the default export`
108
- );
109
- }
110
- return createComponent(context.component, context.args);
111
- };
112
105
  var beforeAll = async () => {
113
106
  try {
114
107
  configure({
@@ -129,6 +122,72 @@ var beforeAll = async () => {
129
122
  }
130
123
  };
131
124
 
132
- export { IS_SOLID_JSX_FLAG, beforeAll, createApplyDecorators, createStoryState, getStoryId, parameters, render };
133
- //# sourceMappingURL=chunk-D5AOR3VU.js.map
134
- //# sourceMappingURL=chunk-D5AOR3VU.js.map
125
+ // src/renderer/shared/default-render.ts
126
+ function createDefaultRender(createComponent) {
127
+ return (_, context) => {
128
+ if (!context.component) {
129
+ throw new Error(
130
+ `Unable to render story ${context.id} as the component annotation is missing from the default export`
131
+ );
132
+ }
133
+ return createComponent(context.component, context.args);
134
+ };
135
+ }
136
+
137
+ // src/renderer/shared/mount.ts
138
+ function createMount({ storyStore }) {
139
+ return (context) => {
140
+ const storyId = getStoryId(context);
141
+ const { forceRemount } = context;
142
+ if (!storyId) {
143
+ throw new Error("Story ID is required");
144
+ }
145
+ return async (ui) => {
146
+ if (ui != null) {
147
+ context.originalStoryFn = () => ui;
148
+ }
149
+ if (forceRemount) {
150
+ storyStore.disposeStory(storyId);
151
+ }
152
+ if (!storyStore.isStoryRendered(storyId) || forceRemount) {
153
+ storyStore.resetStory(storyId);
154
+ }
155
+ storyStore.makeContextReactive(context);
156
+ await context.renderToCanvas();
157
+ return context.canvas;
158
+ };
159
+ };
160
+ }
161
+
162
+ // src/renderer/shared/render-to-canvas.ts
163
+ function createRenderToCanvas(options) {
164
+ const { storyStore, createComponent, render, createStoryApp } = options;
165
+ return async (renderContext, canvasElement) => {
166
+ const storyId = getStoryId({ ...renderContext, canvasElement });
167
+ if (!storyId) {
168
+ throw new Error("Story ID is required");
169
+ }
170
+ const { storyContext, storyFn: StoryFn, showMain, showException } = renderContext;
171
+ if (!storyStore.isStoryRendered(storyId)) {
172
+ const App = createStoryApp({
173
+ Story: StoryFn,
174
+ storyContext,
175
+ showMain,
176
+ showException,
177
+ storyId
178
+ });
179
+ const disposeFn = render(() => createComponent(App, {}), canvasElement);
180
+ storyStore.setDisposeFn(storyId, disposeFn);
181
+ } else {
182
+ StoryFn();
183
+ }
184
+ return () => {
185
+ storyStore.disposeStory(storyId);
186
+ storyStore.resetStory(storyId);
187
+ };
188
+ };
189
+ }
190
+
191
+ export { IS_SOLID_JSX_FLAG, beforeAll, createApplyDecorators, createDecorator, createDefaultRender, createJSXDecorator, createMount, createRenderToCanvas, createStoryState };
192
+ //# sourceMappingURL=chunk-4R2BK5SE.js.map
193
+ //# sourceMappingURL=chunk-4R2BK5SE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/preview/public-api.ts","../src/renderer/shared/story-store.ts","../src/renderer/shared/apply-decorators.ts","../src/renderer/shared/before-all.ts","../src/renderer/shared/default-render.ts","../src/renderer/shared/mount.ts","../src/renderer/shared/render-to-canvas.ts"],"names":[],"mappings":";;;;AA8BO,IAAM,iBAAA,GAAoB;AAgF1B,IAAM,eAAA,GAAkB,CAC3B,SAAA,KACY;AACZ,EAAA,OAAO,SAAA;AACX;AAGO,IAAM,kBAAA,GAAqB,CAC9B,SAAA,KACY;AACZ,EAAC,SAAA,CAAwB,iBAAiB,CAAA,GAAI,IAAA;AAE9C,EAAA,OAAO,SAAA;AACX;;;ACpGO,IAAM,UAAA,GAAa,CAAC,OAAA,KAAkF;AACzG,EAAA,MAAM,QAAA,GAAW,QAAQ,aAAA,EAAe,EAAA;AAExC,EAAA,IAAI,CAAC,QAAA,IAAY,QAAA,KAAa,gBAAA,EAAkB;AAC5C,IAAA,OAAO,OAAA,CAAQ,EAAA;AAAA,EACnB;AAEA,EAAA,OAAO,QAAA;AACX,CAAA;AAEO,SAAS,iBAAiB,WAAA,EAA6C;AAC1E,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAI,WAAA,CAAqB,EAAE,CAAA;AACrD,EAAA,MAAM,eAAA,uBAAsB,GAAA,EAAY;AACxC,EAAA,MAAM,UAAA,uBAAiB,GAAA,EAA8B;AACrD,EAAA,MAAM,SAAA,uBAAgB,GAAA,EAAwB;AAE9C,EAAA,MAAM,YAAA,GAAe,CAAC,OAAA,KAAsC;AACxD,IAAA,IAAI,KAAA,GAAQ,UAAA,CAAW,GAAA,CAAI,OAAO,CAAA;AAElC,IAAA,IAAI,CAAC,KAAA,EAAO;AACR,MAAA,KAAA,GAAQ,WAAA,CAAY,EAAU,CAAA;AAC9B,MAAA,UAAA,CAAW,GAAA,CAAI,SAAS,KAAK,CAAA;AAAA,IACjC;AAEA,IAAA,OAAO,KAAA;AAAA,EACX,CAAA;AAEA,EAAA,OAAO;AAAA,IACH,gBAAgB,OAAA,EAAS;AACrB,MAAA,OAAO,eAAA,CAAgB,IAAI,OAAO,CAAA;AAAA,IACtC,CAAA;AAAA,IAEA,WAAW,OAAA,EAAS;AAChB,MAAA,eAAA,CAAgB,OAAO,OAAO,CAAA;AAC9B,MAAA,SAAA,CAAU,OAAO,OAAO,CAAA;AACxB,MAAA,UAAA,CAAW,OAAO,OAAO,CAAA;AAAA,IAC7B,CAAA;AAAA,IAEA,WAAA,CAAY,SAAS,UAAA,EAAY;AAC7B,MAAA,IAAI,UAAA,EAAY;AACZ,QAAA,eAAA,CAAgB,IAAI,OAAO,CAAA;AAAA,MAC/B,CAAA,MACK;AACD,QAAA,eAAA,CAAgB,OAAO,OAAO,CAAA;AAAA,MAClC;AAAA,IACJ,CAAA;AAAA,IAEA,YAAA,CAAa,SAAS,SAAA,EAAW;AAC7B,MAAA,IAAI,SAAA,EAAW;AACX,QAAA,SAAA,CAAU,GAAA,CAAI,SAAS,SAAS,CAAA;AAAA,MACpC,CAAA,MACK;AACD,QAAA,SAAA,CAAU,OAAO,OAAO,CAAA;AAAA,MAC5B;AAAA,IACJ,CAAA;AAAA,IAEA,oBAAoB,OAAA,EAAS;AACzB,MAAA,MAAM,OAAA,GAAU,WAAW,OAAO,CAAA;AAElC,MAAA,IAAI,CAAC,OAAA,EAAS;AACV,QAAA,MAAM,IAAI,MAAM,sBAAsB,CAAA;AAAA,MAC1C;AAEA,MAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAI,aAAa,OAAO,CAAA;AAG5C,MAAA,OAAA,CAAQ,MAAM,QAAQ,IAAI,CAAA;AAC1B,MAAA,UAAA,CAAW,MAAM,QAAQ,OAAO,CAAA;AAGhC,MAAA,OAAA,CAAQ,IAAA,GAAO,IAAA;AACf,MAAA,OAAA,CAAQ,OAAA,GAAU,OAAA;AAAA,IACtB,CAAA;AAAA,IAEA,aAAa,OAAA,EAAS;AAClB,MAAA,SAAA,CAAU,GAAA,CAAI,OAAO,CAAA,IAAI;AACzB,MAAA,SAAA,CAAU,OAAO,OAAO,CAAA;AAAA,IAC5B;AAAA,GACJ;AACJ;AC9FO,SAAS,qBAAA,CAAsB;AAAA,EAClC;AACJ,CAAA,EAKkC;AAC9B,EAAA,OAAO,CAAC,SAAS,aAAA,KAAkB;AAC/B,IAAA,MAAM,aAAa,aAAA,CAAc,GAAA;AAAA,MAC7B,CAAC,SAAA,KAAyB;AACtB,QAAA,MAAM,aAAc,SAAA,CAAqD,UAAA;AACzE,QAAA,MAAM,KAAA,GAAQ,OAAA;AAAA,UACV,SAAA,CAAU,iBAAiB,CAAA,IAAK,UAAA,GAAa,iBAAiB;AAAA,SAClE;AAEA,QAAA,OAAO,CAAC,SAAS,OAAA,KAAY;AACzB,UAAA,IAAI,KAAA,EAAO;AACP,YAAA,MAAM,OAAA,GAAU,WAAW,OAAO,CAAA;AAElC,YAAA,IAAI,OAAA,IAAW,UAAA,CAAW,eAAA,CAAgB,OAAO,CAAA,EAAG;AAChD,cAAA,OAAO,QAAQ,OAAO,CAAA;AAAA,YAC1B;AAAA,UACJ;AAEA,UAAA,OAAO,SAAA,CAAU,SAAS,OAAO,CAAA;AAAA,QACrC,CAAA;AAAA,MACJ;AAAA,KACJ;AAEA,IAAA,OAAO,oBAAA,CAAqB,CAAC,OAAA,KAAY;AACrC,MAAA,MAAM,OAAA,GAAU,WAAW,OAAO,CAAA;AAElC,MAAA,IAAI,OAAA,IAAW,UAAA,CAAW,eAAA,CAAgB,OAAO,CAAA,EAAG;AAChD,QAAA,OAAO,IAAA;AAAA,MACX;AAEA,MAAA,OAAO,QAAQ,OAAO,CAAA;AAAA,IAC1B,GAAG,UAAU,CAAA;AAAA,EACjB,CAAA;AACJ;AC7CO,IAAM,YAAY,YAAW;AAChC,EAAA,IAAI;AACA,IAAA,SAAA,CAAU;AAAA,MACN,6BAAA,EAA+B,CAAC,EAAA,KAAkB,EAAA,EAAG;AAAA,MACrD,YAAA,EAAc,OAAM,EAAA,KAAkB;AAClC,QAAA,MAAM,MAAA,GAAS,MAAM,EAAA,EAAG;AAExB,QAAA,MAAM,IAAI,OAAA,CAAc,CAAC,OAAA,KAAY;AACjC,UAAA,UAAA,CAAW,MAAM,OAAA,EAAQ,EAAG,CAAC,CAAA;AAG7B,UAAA,IAAI,OAAO,IAAA,KAAS,WAAA,IAAe,IAAA,IAAQ,SAAU,UAAA,CAAmB,eAAA,KAAoB,IAAA,IAAQ,MAAA,CAAO,SAAA,CAAU,cAAA,CAAe,IAAA,CAAK,UAAA,EAAY,OAAO,CAAA,CAAA,EAAI;AAE5J,YAAA,IAAA,CAAM,oBAAoB,CAAC,CAAA;AAAA,UAC/B;AAAA,QACJ,CAAC,CAAA;AAED,QAAA,OAAO,MAAA;AAAA,MACX,CAAA;AAAA,MACA,YAAA,EAAc,CAAC,EAAA,KAAkB,EAAA;AAAG,KACvC,CAAA;AAAA,EACL,CAAA,CAAA,MACM;AAAA,EAEN;AACJ;;;ACvBO,SAAS,oBAAoB,eAAA,EAA0E;AAC1G,EAAA,OAAO,CAAC,GAAG,OAAA,KAAY;AACnB,IAAA,IAAI,CAAC,QAAQ,SAAA,EAAW;AACpB,MAAA,MAAM,IAAI,KAAA;AAAA,QACN,CAAA,uBAAA,EAA2B,QAAQ,EAAG,CAAA,+DAAA;AAAA,OAC1C;AAAA,IACJ;AAEA,IAAA,OAAO,eAAA,CAAgB,OAAA,CAAQ,SAAA,EAAW,OAAA,CAAQ,IAAI,CAAA;AAAA,EAC1D,CAAA;AACJ;;;ACRO,SAAS,WAAA,CAAY,EAAE,UAAA,EAAW,EAAoC;AACzE,EAAA,OAAO,CAAC,OAAA,KAAgC;AACpC,IAAA,MAAM,OAAA,GAAU,WAAW,OAAO,CAAA;AAClC,IAAA,MAAM,EAAE,cAAa,GAAI,OAAA;AAEzB,IAAA,IAAI,CAAC,OAAA,EAAS;AACV,MAAA,MAAM,IAAI,MAAM,sBAAsB,CAAA;AAAA,IAC1C;AAEA,IAAA,OAAO,OAAM,EAAA,KAA0B;AACnC,MAAA,IAAI,MAAM,IAAA,EAAM;AACZ,QAAA,OAAA,CAAQ,kBAAkB,MAAM,EAAA;AAAA,MACpC;AAEA,MAAA,IAAI,YAAA,EAAc;AACd,QAAA,UAAA,CAAW,aAAa,OAAO,CAAA;AAAA,MACnC;AAEA,MAAA,IAAI,CAAC,UAAA,CAAW,eAAA,CAAgB,OAAO,KAAK,YAAA,EAAc;AACtD,QAAA,UAAA,CAAW,WAAW,OAAO,CAAA;AAAA,MACjC;AAEA,MAAA,UAAA,CAAW,oBAAoB,OAAO,CAAA;AAEtC,MAAA,MAAM,QAAQ,cAAA,EAAe;AAE7B,MAAA,OAAO,OAAA,CAAQ,MAAA;AAAA,IACnB,CAAA;AAAA,EACJ,CAAA;AACJ;;;ACFO,SAAS,qBAAqB,OAAA,EAAgC;AACjE,EAAA,MAAM,EAAE,UAAA,EAAY,eAAA,EAAiB,MAAA,EAAQ,gBAAe,GAAI,OAAA;AAEhE,EAAA,OAAO,OACH,eACA,aAAA,KACC;AACD,IAAA,MAAM,UAAU,UAAA,CAAW,EAAE,GAAG,aAAA,EAAe,eAAe,CAAA;AAE9D,IAAA,IAAI,CAAC,OAAA,EAAS;AACV,MAAA,MAAM,IAAI,MAAM,sBAAsB,CAAA;AAAA,IAC1C;AAEA,IAAA,MAAM,EAAE,YAAA,EAAc,OAAA,EAAS,OAAA,EAAS,QAAA,EAAU,eAAc,GAAI,aAAA;AAEpE,IAAA,IAAI,CAAC,UAAA,CAAW,eAAA,CAAgB,OAAO,CAAA,EAAG;AACtC,MAAA,MAAM,MAAM,cAAA,CAAe;AAAA,QACvB,KAAA,EAAO,OAAA;AAAA,QACP,YAAA;AAAA,QACA,QAAA;AAAA,QACA,aAAA;AAAA,QACA;AAAA,OACH,CAAA;AAED,MAAA,MAAM,SAAA,GAAY,OAAO,MAAM,eAAA,CAAgB,KAAK,EAAE,GAAG,aAAa,CAAA;AAEtE,MAAA,UAAA,CAAW,YAAA,CAAa,SAAS,SAAS,CAAA;AAAA,IAC9C,CAAA,MACK;AACD,MAAA,OAAA,EAAQ;AAAA,IACZ;AAEA,IAAA,OAAO,MAAM;AACT,MAAA,UAAA,CAAW,aAAa,OAAO,CAAA;AAC/B,MAAA,UAAA,CAAW,WAAW,OAAO,CAAA;AAAA,IACjC,CAAA;AAAA,EACJ,CAAA;AACJ","file":"chunk-4R2BK5SE.js","sourcesContent":["import type { Component, ComponentProps } from 'solid-js';\nimport type {\n AnnotatedStoryFn,\n Args,\n ArgsFromMeta,\n ArgsStoryFn,\n Canvas,\n ComponentAnnotations,\n DecoratorFunction,\n RenderContext as GenericRenderContext,\n StoryContext as GenericStoryContext,\n LoaderFunction,\n ProjectAnnotations,\n StoryAnnotations,\n StrictArgs,\n WebRenderer,\n} from 'storybook/internal/types';\nimport type { SetOptional, Simplify } from 'type-fest';\n\nexport type {\n DefinePreviewInput,\n SolidMeta,\n SolidPreview,\n SolidStory,\n} from './define-preview';\n\n/**\n * Marks decorators that return JSX so they are not re-run on every Storybook update.\n * Prefer `createJSXDecorator` over setting this flag manually.\n */\nexport const IS_SOLID_JSX_FLAG = '__isJSX';\n\n/**\n * Meta `args` when `preview.meta()` omits `args`. Matches `@storybook/react`'s `{}` sentinel:\n * `keyof` is `never`, so `AddMocks` does not match every component prop key.\n */\nexport type EmptyMetaArgs = { [Key in never]: never };\n\n// This performs a downcast to function types that are mocks, when a mock fn is given to meta args.\nexport type AddMocks<TArgs, DefaultArgs> = Simplify<{\n [T in keyof TArgs]: T extends keyof DefaultArgs\n ? DefaultArgs[T] extends (...args: any) => any & { mock: object }\n ? DefaultArgs[T]\n : TArgs[T]\n : TArgs[T];\n}>;\n\nexport type SolidComponent<P extends Record<string, any> = Record<string, any>> = Component<P>;\nexport type SolidComponentProps<T extends SolidComponent> = ComponentProps<T>;\n\nexport type StoryFnReturnType = ReturnType<SolidComponent>;\n\nexport interface SolidRenderer extends WebRenderer {\n component: SolidComponent<any>;\n storyResult: StoryFnReturnType;\n mount: (ui?: StoryFnReturnType) => Promise<Canvas>;\n}\n\nexport interface SolidParameters {\n /** Solid renderer configuration */\n solid?: Record<string, never>;\n}\n\n/** Mirroring React's `ReactTypes`. */\nexport interface SolidTypes extends SolidRenderer {\n parameters: SolidParameters;\n}\n\nexport type Meta<TCmpOrArgs = Args> = [TCmpOrArgs] extends [SolidComponent<any>]\n ? ComponentAnnotations<SolidRenderer, SolidComponentProps<TCmpOrArgs>>\n : ComponentAnnotations<SolidRenderer, TCmpOrArgs>;\n\nexport type StoryFn<TCmpOrArgs = Args> = [TCmpOrArgs] extends [SolidComponent<any>]\n ? AnnotatedStoryFn<SolidRenderer, SolidComponentProps<TCmpOrArgs>>\n : AnnotatedStoryFn<SolidRenderer, TCmpOrArgs>;\n\nexport type StoryObj<TMetaOrCmpOrArgs = Args> = [TMetaOrCmpOrArgs] extends [\n {\n render?: ArgsStoryFn<SolidRenderer, any>;\n component?: infer Cmp;\n args?: infer DefaultArgs;\n }\n]\n ? Simplify<\n (Cmp extends SolidComponent<any> ? SolidComponentProps<Cmp> : unknown)\n & ArgsFromMeta<SolidRenderer, TMetaOrCmpOrArgs>\n > extends infer TArgs\n ? StoryAnnotations<\n SolidRenderer,\n AddMocks<TArgs, DefaultArgs>,\n SetOptional<TArgs, keyof TArgs & keyof DefaultArgs>\n >\n : never\n : [TMetaOrCmpOrArgs] extends [SolidComponent<any>]\n ? StoryAnnotations<SolidRenderer, SolidComponentProps<TMetaOrCmpOrArgs>>\n : StoryAnnotations<SolidRenderer, TMetaOrCmpOrArgs>;\n\nexport type Decorator<TArgs = StrictArgs> = DecoratorFunction<SolidRenderer, TArgs> & {\n [IS_SOLID_JSX_FLAG]?: boolean;\n};\n\nexport type Loader<TArgs = StrictArgs> = LoaderFunction<SolidRenderer, TArgs>;\nexport type Preview = ProjectAnnotations<SolidRenderer>;\nexport type StoryContext<TArgs = StrictArgs> = GenericStoryContext<SolidRenderer, TArgs> & {\n renderToCanvas: () => Promise<void>;\n};\n\nexport type RenderContext = GenericRenderContext<SolidRenderer>;\n\n/** Use for decorators that do not return JSX (e.g. they only call `Story()`). */\nexport const createDecorator = (\n decorator: DecoratorFunction<SolidRenderer>\n): Decorator => {\n return decorator as Decorator;\n};\n\n/** Use for decorators that return JSX. Ensures they run only once per story mount. */\nexport const createJSXDecorator = (\n decorator: DecoratorFunction<SolidRenderer>\n): Decorator => {\n (decorator as Decorator)[IS_SOLID_JSX_FLAG] = true;\n\n return decorator as Decorator;\n};\n\nexport type { Args, ArgTypes, Parameters, StrictArgs } from 'storybook/internal/types';\n","import type { Args, Globals, StoryContext as InternalStoryContext } from 'storybook/internal/types';\nimport type { SolidRenderer } from '../../preview/public-api';\n\n/** Update store via `(prev) => next` (version layer applies reconcile/draft setter). */\ntype SetStoreFn<T extends object> = (update: (prev: T) => T) => void;\n\n/** Reactive store tuple returned by `createStore` (state + setter). */\ntype SolidStore<T extends object> = readonly [\n state: T,\n setState: SetStoreFn<T>\n];\n\ntype CreateStoreFn = <T extends object>(initial: T) => SolidStore<T>;\n\nexport interface StoryStateStore {\n isStoryRendered: (storyId: string) => boolean;\n resetStory: (storyId: string) => void;\n setRendered: (storyId: string, rendered: boolean) => void;\n setDisposeFn: (storyId: string, disposeFn: (() => void) | null) => void;\n makeContextReactive: (context: InternalStoryContext<SolidRenderer, Args>) => void;\n disposeStory: (storyId: string) => void;\n}\n\nexport const getStoryId = (context: { id?: string; canvasElement?: { id?: string } }): string | undefined => {\n const canvasId = context.canvasElement?.id;\n\n if (!canvasId || canvasId === 'storybook-root') {\n return context.id;\n }\n\n return canvasId;\n};\n\nexport function createStoryState(createStore: CreateStoreFn): StoryStateStore {\n const [globals, setGlobals] = createStore<Globals>({});\n const renderedStories = new Set<string>();\n const argsStores = new Map<string, SolidStore<Args>>();\n const disposers = new Map<string, () => void>();\n\n const getArgsStore = (storyId: string): SolidStore<Args> => {\n let store = argsStores.get(storyId);\n\n if (!store) {\n store = createStore({} as Args);\n argsStores.set(storyId, store);\n }\n\n return store;\n };\n\n return {\n isStoryRendered(storyId) {\n return renderedStories.has(storyId);\n },\n\n resetStory(storyId) {\n renderedStories.delete(storyId);\n disposers.delete(storyId);\n argsStores.delete(storyId);\n },\n\n setRendered(storyId, isRendered) {\n if (isRendered) {\n renderedStories.add(storyId);\n }\n else {\n renderedStories.delete(storyId);\n }\n },\n\n setDisposeFn(storyId, disposeFn) {\n if (disposeFn) {\n disposers.set(storyId, disposeFn);\n }\n else {\n disposers.delete(storyId);\n }\n },\n\n makeContextReactive(context) {\n const storyId = getStoryId(context);\n\n if (!storyId) {\n throw new Error('Story ID is required');\n }\n\n const [args, setArgs] = getArgsStore(storyId);\n\n // Update reactive stores with the new values\n setArgs(() => context.args);\n setGlobals(() => context.globals);\n\n // Sync the reactive stores to the context\n context.args = args;\n context.globals = globals;\n },\n\n disposeStory(storyId) {\n disposers.get(storyId)?.();\n disposers.delete(storyId);\n },\n };\n}\n","import { defaultDecorateStory } from 'storybook/preview-api';\n\nimport { IS_SOLID_JSX_FLAG, type Decorator, type SolidRenderer } from '../../preview/public-api';\nimport { getStoryId } from './story-store';\n\nimport type { LegacyStoryFn } from 'storybook/internal/types';\nimport type { StoryStateStore } from './story-store';\n\nexport function createApplyDecorators({\n storyStore,\n}: {\n storyStore: StoryStateStore;\n}): (\n storyFn: LegacyStoryFn<SolidRenderer>,\n rawDecorators: Decorator[]\n) => LegacyStoryFn<SolidRenderer> {\n return (storyFn, rawDecorators) => {\n const decorators = rawDecorators.map(\n (decorator): Decorator => {\n const originalFn = (decorator as Decorator & { originalFn?: Decorator }).originalFn;\n const isJSX = Boolean(\n decorator[IS_SOLID_JSX_FLAG] || originalFn?.[IS_SOLID_JSX_FLAG]\n );\n\n return (StoryFn, context) => {\n if (isJSX) {\n const storyId = getStoryId(context);\n\n if (storyId && storyStore.isStoryRendered(storyId)) {\n return StoryFn(context);\n }\n }\n\n return decorator(StoryFn, context);\n };\n }\n );\n\n return defaultDecorateStory((context) => {\n const storyId = getStoryId(context);\n\n if (storyId && storyStore.isStoryRendered(storyId)) {\n return null;\n }\n\n return storyFn(context);\n }, decorators);\n };\n}\n","import { configure } from 'storybook/test';\n\n/** Configures `storybook/test` wrappers so Solid updates flush after async play steps. */\nexport const beforeAll = async() => {\n try {\n configure({\n unstable_advanceTimersWrapper: (cb: () => any) => cb(),\n asyncWrapper: async(cb: () => any) => {\n const result = await cb();\n\n await new Promise<void>((resolve) => {\n setTimeout(() => resolve(), 0);\n\n // @ts-expect-error global jest\n if (typeof jest !== 'undefined' && jest != null && ((setTimeout as any)._isMockFunction === true || Object.prototype.hasOwnProperty.call(setTimeout, 'clock'))) {\n // @ts-expect-error global jest\n jest!.advanceTimersByTime(0);\n }\n });\n\n return result;\n },\n eventWrapper: (cb: () => any) => cb(),\n });\n }\n catch {\n // storybook/test might not be available; noop\n }\n};\n","import type { ArgsStoryFn } from 'storybook/internal/types';\nimport type { SolidRenderer } from '../../preview/public-api';\nimport type { SolidRuntimeCreateComponent } from './render-to-canvas';\n\n/** Default render for meta/stories with `component` + `args` and no custom `render` (CSF 3+). */\nexport function createDefaultRender(createComponent: SolidRuntimeCreateComponent): ArgsStoryFn<SolidRenderer> {\n return (_, context) => {\n if (!context.component) {\n throw new Error(\n `Unable to render story ${ context.id } as the component annotation is missing from the default export`\n );\n }\n\n return createComponent(context.component, context.args);\n };\n}\n","import { getStoryId } from './story-store';\n\nimport type { Args } from 'storybook/internal/types';\nimport type { StoryContext, StoryFnReturnType } from '../../preview/public-api';\nimport type { StoryStateStore } from './story-store';\n\n/** Play/mount API: sync reactive args and globals, then render via `renderToCanvas`. */\nexport function createMount({ storyStore }: { storyStore: StoryStateStore }) {\n return (context: StoryContext<Args>) => {\n const storyId = getStoryId(context);\n const { forceRemount } = context;\n\n if (!storyId) {\n throw new Error('Story ID is required');\n }\n\n return async(ui: StoryFnReturnType) => {\n if (ui != null) {\n context.originalStoryFn = () => ui;\n }\n\n if (forceRemount) {\n storyStore.disposeStory(storyId);\n }\n\n if (!storyStore.isStoryRendered(storyId) || forceRemount) {\n storyStore.resetStory(storyId);\n }\n\n storyStore.makeContextReactive(context);\n\n await context.renderToCanvas();\n\n return context.canvas;\n };\n };\n}\n","import { getStoryId } from './story-store';\n\nimport type { RenderContext, SolidComponent, SolidRenderer } from '../../preview/public-api';\nimport type { StoryStateStore } from './story-store';\n\nexport type SolidRuntimeCreateComponent = (\n component: SolidComponent,\n props: object\n) => SolidRenderer['storyResult'];\n\nexport type SolidRendererRuntime = {\n storyStore: StoryStateStore;\n createComponent: SolidRuntimeCreateComponent;\n render: (\n renderFn: () => SolidRenderer['storyResult'],\n canvasElement: SolidRenderer['canvasElement']\n ) => () => void;\n};\n\nexport type StoryThunk = () => SolidRenderer['storyResult'];\n\nexport type StoryAppContext = {\n Story: StoryThunk;\n storyContext: RenderContext['storyContext'];\n showMain: RenderContext['showMain'];\n showException: RenderContext['showException'];\n storyId: string;\n};\n\ntype RenderToCanvasOptions = SolidRendererRuntime & {\n createStoryApp: (context: StoryAppContext) => SolidComponent;\n};\n\n/** Mounts or updates the story in the preview canvas. Returns cleanup when the story changes. */\nexport function createRenderToCanvas(options: RenderToCanvasOptions) {\n const { storyStore, createComponent, render, createStoryApp } = options;\n\n return async(\n renderContext: RenderContext,\n canvasElement: SolidRenderer['canvasElement']\n ) => {\n const storyId = getStoryId({ ...renderContext, canvasElement });\n\n if (!storyId) {\n throw new Error('Story ID is required');\n }\n\n const { storyContext, storyFn: StoryFn, showMain, showException } = renderContext;\n\n if (!storyStore.isStoryRendered(storyId)) {\n const App = createStoryApp({\n Story: StoryFn,\n storyContext,\n showMain,\n showException,\n storyId,\n });\n\n const disposeFn = render(() => createComponent(App, {}), canvasElement);\n\n storyStore.setDisposeFn(storyId, disposeFn);\n }\n else {\n StoryFn();\n }\n\n return () => {\n storyStore.disposeStory(storyId);\n storyStore.resetStory(storyId);\n };\n };\n}\n"]}
@@ -0,0 +1,68 @@
1
+ import { createRenderToCanvas, createDefaultRender, createMount, beforeAll, createApplyDecorators, createStoryState } from './chunk-4R2BK5SE.js';
2
+ import { __export } from './chunk-PZ5AY32C.js';
3
+ import { global } from '@storybook/global';
4
+ import { createComponent, onMount, onCleanup, ErrorBoundary } from 'solid-js';
5
+ import { createStore as createStore$1, reconcile } from 'solid-js/store';
6
+ import { render as render$1 } from 'solid-js/web';
7
+
8
+ // src/renderer/solid-1.ts
9
+ var solid_1_exports = {};
10
+ __export(solid_1_exports, {
11
+ applyDecorators: () => applyDecorators,
12
+ beforeAll: () => beforeAll,
13
+ mount: () => mount,
14
+ parameters: () => parameters,
15
+ render: () => render,
16
+ renderToCanvas: () => renderToCanvas
17
+ });
18
+ if (global.window) {
19
+ global.window.STORYBOOK_ENV = "solid";
20
+ }
21
+ var createStore = (initial) => {
22
+ const [state, setStore] = createStore$1(initial);
23
+ const setState = (update) => {
24
+ setStore(reconcile(update(state)));
25
+ };
26
+ return [state, setState];
27
+ };
28
+ var storyStore = createStoryState(createStore);
29
+ var runtime = {
30
+ storyStore,
31
+ createComponent,
32
+ render: render$1
33
+ };
34
+ var applyDecorators = createApplyDecorators({ storyStore });
35
+ var mount = createMount(runtime);
36
+ var render = createDefaultRender(runtime.createComponent);
37
+ var renderToCanvas = createRenderToCanvas({
38
+ ...runtime,
39
+ createStoryApp: ({ Story, storyContext, showMain, showException, storyId }) => {
40
+ const App = () => {
41
+ onMount(() => {
42
+ showMain();
43
+ storyStore.setRendered(storyId, true);
44
+ });
45
+ onCleanup(() => {
46
+ storyStore.setRendered(storyId, false);
47
+ });
48
+ if (storyContext?.parameters?.["__isPortableStory"]) {
49
+ return createComponent(() => Story(), {});
50
+ }
51
+ return createComponent(ErrorBoundary, {
52
+ fallback: (err) => {
53
+ showException(err);
54
+ return err;
55
+ },
56
+ children: createComponent(() => Story(), {})
57
+ });
58
+ };
59
+ return App;
60
+ }
61
+ });
62
+ var parameters = {
63
+ renderer: "solid"
64
+ };
65
+
66
+ export { applyDecorators, mount, parameters, render, renderToCanvas, solid_1_exports };
67
+ //# sourceMappingURL=chunk-FGS26NTB.js.map
68
+ //# sourceMappingURL=chunk-FGS26NTB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/renderer/solid-1.ts"],"names":["solidCreateStore","solidRender"],"mappings":";;;;;;;;AAAA,IAAA,eAAA,GAAA;AAAA,QAAA,CAAA,eAAA,EAAA;AAAA,EAAA,eAAA,EAAA,MAAA,eAAA;AAAA,EAAA,SAAA,EAAA,MAAA,SAAA;AAAA,EAAA,KAAA,EAAA,MAAA,KAAA;AAAA,EAAA,UAAA,EAAA,MAAA,UAAA;AAAA,EAAA,MAAA,EAAA,MAAA,MAAA;AAAA,EAAA,cAAA,EAAA,MAAA;AAAA,CAAA,CAAA;AAoBA,IAAI,OAAO,MAAA,EAAQ;AACf,EAAA,MAAA,CAAO,OAAO,aAAA,GAAgB,OAAA;AAClC;AAEA,IAAM,WAAA,GAAc,CAAmB,OAAA,KAAe;AAClD,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAIA,cAAoB,OAAO,CAAA;AAErD,EAAA,MAAM,QAAA,GAAW,CAAC,MAAA,KAA2B;AACzC,IAAA,QAAA,CAAS,SAAA,CAAU,MAAA,CAAO,KAAK,CAAC,CAAC,CAAA;AAAA,EACrC,CAAA;AAEA,EAAA,OAAO,CAAC,OAAO,QAAQ,CAAA;AAC3B,CAAA;AAEA,IAAM,UAAA,GAAa,iBAAiB,WAAW,CAAA;AAE/C,IAAM,OAAA,GAAgC;AAAA,EAClC,UAAA;AAAA,EACA,eAAA;AAAA,EACA,MAAA,EAAQC;AACZ,CAAA;AAEA,IAAM,eAAA,GAAkB,qBAAA,CAAsB,EAAE,UAAA,EAAY;AAC5D,IAAM,KAAA,GAAQ,YAAY,OAAO;AACjC,IAAM,MAAA,GAAS,mBAAA,CAAoB,OAAA,CAAQ,eAAe;AAC1D,IAAM,iBAAiB,oBAAA,CAAqB;AAAA,EACxC,GAAG,OAAA;AAAA,EACH,cAAA,EAAgB,CAAC,EAAE,KAAA,EAAO,cAAc,QAAA,EAAU,aAAA,EAAe,SAAQ,KAAM;AAC3E,IAAA,MAAM,MAAsB,MAAM;AAC9B,MAAA,OAAA,CAAQ,MAAM;AACV,QAAA,QAAA,EAAS;AACT,QAAA,UAAA,CAAW,WAAA,CAAY,SAAS,IAAI,CAAA;AAAA,MACxC,CAAC,CAAA;AAED,MAAA,SAAA,CAAU,MAAM;AACZ,QAAA,UAAA,CAAW,WAAA,CAAY,SAAS,KAAK,CAAA;AAAA,MACzC,CAAC,CAAA;AAGD,MAAA,IAAI,YAAA,EAAc,UAAA,GAAa,mBAAmB,CAAA,EAAG;AACjD,QAAA,OAAO,eAAA,CAAgB,MAAM,KAAA,EAAM,EAAG,EAAE,CAAA;AAAA,MAC5C;AAEA,MAAA,OAAO,gBAAgB,aAAA,EAAe;AAAA,QAClC,QAAA,EAAU,CAAC,GAAA,KAAe;AACtB,UAAA,aAAA,CAAc,GAAG,CAAA;AAEjB,UAAA,OAAO,GAAA;AAAA,QACX,CAAA;AAAA,QACA,UAAU,eAAA,CAAgB,MAAM,KAAA,EAAM,EAAG,EAAE;AAAA,OAC9C,CAAA;AAAA,IACL,CAAA;AAEA,IAAA,OAAO,GAAA;AAAA,EACX;AACJ,CAAC;AAGD,IAAM,UAAA,GAAa;AAAA,EACf,QAAA,EAAU;AACd","file":"chunk-FGS26NTB.js","sourcesContent":["import { global } from '@storybook/global';\nimport {\n createComponent,\n ErrorBoundary,\n onCleanup,\n onMount,\n} from 'solid-js';\nimport { reconcile, createStore as solidCreateStore } from 'solid-js/store';\nimport { render as solidRender } from 'solid-js/web';\n\nimport { createApplyDecorators } from './shared/apply-decorators';\nimport { beforeAll } from './shared/before-all';\nimport { createDefaultRender } from './shared/default-render';\nimport { createMount } from './shared/mount';\nimport { createRenderToCanvas } from './shared/render-to-canvas';\nimport { createStoryState } from './shared/story-store';\n\nimport type { SolidComponent } from '../preview/public-api';\nimport type { SolidRendererRuntime } from './shared/render-to-canvas';\n\nif (global.window) {\n global.window.STORYBOOK_ENV = 'solid';\n}\n\nconst createStore = <T extends object>(initial: T) => {\n const [state, setStore] = solidCreateStore<T>(initial);\n\n const setState = (update: (prev: T) => T) => {\n setStore(reconcile(update(state)));\n };\n\n return [state, setState] as const;\n};\n\nconst storyStore = createStoryState(createStore);\n\nconst runtime: SolidRendererRuntime = {\n storyStore,\n createComponent,\n render: solidRender,\n};\n\nconst applyDecorators = createApplyDecorators({ storyStore });\nconst mount = createMount(runtime);\nconst render = createDefaultRender(runtime.createComponent);\nconst renderToCanvas = createRenderToCanvas({\n ...runtime,\n createStoryApp: ({ Story, storyContext, showMain, showException, storyId }) => {\n const App: SolidComponent = () => {\n onMount(() => {\n showMain();\n storyStore.setRendered(storyId, true);\n });\n\n onCleanup(() => {\n storyStore.setRendered(storyId, false);\n });\n\n\n if (storyContext?.parameters?.['__isPortableStory']) {\n return createComponent(() => Story(), {});\n }\n\n return createComponent(ErrorBoundary, {\n fallback: (err: Error) => {\n showException(err);\n\n return err as any;\n },\n children: createComponent(() => Story(), {}),\n });\n };\n\n return App;\n },\n});\n\n/** Preview-wide parameters for the Solid renderer. */\nconst parameters = {\n renderer: 'solid',\n};\n\nexport {\n applyDecorators,\n beforeAll,\n mount,\n parameters,\n render,\n renderToCanvas,\n};\n"]}
@@ -1,16 +1,16 @@
1
- import { entry_preview_argtypes_exports } from './chunk-GZ3XWUGK.js';
2
- import { entry_preview_exports } from './chunk-H7QHQTFU.js';
1
+ import { argtypes_exports } from './chunk-OHDHM5OZ.js';
2
+ import { docs_exports } from './chunk-UQOUKQDU.js';
3
3
  import { definePreview } from 'storybook/internal/csf';
4
4
 
5
- function createDefinePreview(solidAnnotations) {
6
- return function definePreview$1(input) {
5
+ function createSolidDefinePreview(solidAnnotations) {
6
+ return ((input) => {
7
7
  const { addons, ...projectAnnotations } = input;
8
8
  const preview = definePreview({
9
9
  ...projectAnnotations,
10
10
  addons: [
11
11
  solidAnnotations,
12
- entry_preview_argtypes_exports,
13
- entry_preview_exports,
12
+ argtypes_exports,
13
+ docs_exports,
14
14
  ...addons ?? []
15
15
  ]
16
16
  });
@@ -26,9 +26,9 @@ function createDefinePreview(solidAnnotations) {
26
26
  return meta;
27
27
  };
28
28
  return preview;
29
- };
29
+ });
30
30
  }
31
31
 
32
- export { createDefinePreview };
33
- //# sourceMappingURL=chunk-QRPXDQGQ.js.map
34
- //# sourceMappingURL=chunk-QRPXDQGQ.js.map
32
+ export { createSolidDefinePreview };
33
+ //# sourceMappingURL=chunk-KZXNQC4Q.js.map
34
+ //# sourceMappingURL=chunk-KZXNQC4Q.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/preview/define-preview.ts"],"names":["definePreviewBase"],"mappings":";;;;AAkGO,SAAS,yBAAyB,gBAAA,EAAuC;AAC5E,EAAA,QAAQ,CACJ,KAAA,KACC;AACD,IAAA,MAAM,EAAE,MAAA,EAAQ,GAAG,kBAAA,EAAmB,GAAI,KAAA;AAE1C,IAAA,MAAM,UAAUA,aAAA,CAAkB;AAAA,MAC9B,GAAG,kBAAA;AAAA,MACH,MAAA,EAAQ;AAAA,QACJ,gBAAA;AAAA,QACA,gBAAA;AAAA,QACA,YAAA;AAAA,QACA,GAAI,UAAU;AAAC;AACnB,KACH,CAAA;AAED,IAAA,MAAM,UAAA,GAAa,OAAA,CAAQ,IAAA,CAAK,IAAA,CAAK,OAAO,CAAA;AAE5C,IAAA,OAAA,CAAQ,IAAA,GAAO,CAAC,MAAA,KAAW;AACvB,MAAA,MAAM,IAAA,GAAO,WAAW,MAAM,CAAA;AAC9B,MAAA,MAAM,WAAA,GAAc,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,IAAI,CAAA;AAExC,MAAA,IAAA,CAAK,KAAA,GAAQ,CAAC,OAAA,KAAiB;AAC3B,QAAA,MAAM,KAAA,GAAQ,YAAY,OAAO,CAAA;AAGjC,QAAA,KAAA,CAAM,SAAA,GAAY,MAAM,SAAA,EAAU;AAElC,QAAA,OAAO,KAAA;AAAA,MACX,CAAA;AAEA,MAAA,OAAO,IAAA;AAAA,IACX,CAAA;AAEA,IAAA,OAAO,OAAA;AAAA,EACX,CAAA;AAKJ","file":"chunk-KZXNQC4Q.js","sourcesContent":["import { definePreview as definePreviewBase } from 'storybook/internal/csf';\n\nimport * as solidArgTypesAnnotations from '../renderer/argtypes';\nimport * as solidDocsAnnotations from '../renderer/docs';\n\nimport type { AddonTypes, InferTypes, Meta, Preview, PreviewAddon, Story } from 'storybook/internal/csf';\nimport type {\n Args,\n ArgsStoryFn,\n ComponentAnnotations,\n DecoratorFunction,\n ProjectAnnotations,\n Renderer,\n StoryAnnotations,\n} from 'storybook/internal/types';\nimport type { OmitIndexSignature, SetOptional, Simplify, UnionToIntersection } from 'type-fest';\nimport type { AddMocks, EmptyMetaArgs, SolidComponent, SolidTypes } from './public-api';\n\n/** Extracts and unions all args types from an array of decorators. */\ntype DecoratorsArgs<TRenderer extends Renderer, Decorators> = UnionToIntersection<\n Decorators extends DecoratorFunction<TRenderer, infer TArgs> ? TArgs : unknown\n>;\n\ntype InferArgs<TArgs, T, Decorators> = Simplify<\n TArgs & Simplify<OmitIndexSignature<DecoratorsArgs<SolidTypes & T, Decorators>>>\n>;\n\ntype InferSolidTypes<T, TArgs, Decorators> = SolidTypes & T & {\n args: Simplify<InferArgs<TArgs, T, Decorators>>;\n};\n\nexport type DefinePreviewInput<Addons extends PreviewAddon<never>[] = []> = {\n addons?: Addons;\n} & ProjectAnnotations<SolidTypes & InferTypes<Addons>>;\n\n/** @ts-expect-error We cannot implement the meta faithfully here, but that is okay. */\nexport interface SolidPreview<T extends AddonTypes> extends Preview<SolidTypes & T> {\n type: <R>() => SolidPreview<T & R>;\n\n meta: <\n TArgs extends Args,\n Decorators extends DecoratorFunction<SolidTypes & T, any>,\n TMetaArgs extends Partial<TArgs & T['args']>\n >(\n meta: {\n render?: ArgsStoryFn<SolidTypes & T, TArgs & T['args']>;\n component?: SolidComponent<TArgs>;\n decorators?: Decorators | Decorators[];\n args?: TMetaArgs;\n } & Omit<\n ComponentAnnotations<SolidTypes & T, TArgs>,\n 'decorators' | 'component' | 'args' | 'render'\n >\n ) => SolidMeta<\n InferSolidTypes<T, TArgs, Decorators>,\n Omit<ComponentAnnotations<InferSolidTypes<T, TArgs, Decorators>>, 'args'> & {\n args: Partial<TArgs> extends TMetaArgs ? EmptyMetaArgs : TMetaArgs;\n }\n >;\n}\n\nexport interface SolidMeta<T extends SolidTypes, MetaInput extends ComponentAnnotations<T>>\n /** @ts-expect-error SolidMeta requires two type parameters, but Meta's constraints differ */\n extends Meta<T, MetaInput> {\n story: (<\n TInput extends\n | (() => SolidTypes['storyResult'])\n | (StoryAnnotations<T, T['args']> & {\n render: () => SolidTypes['storyResult'];\n })\n >(\n story: TInput\n ) => SolidStory<T, TInput extends () => SolidTypes['storyResult'] ? { render: TInput } : TInput>) & (<\n TInput extends Simplify<\n StoryAnnotations<\n T,\n AddMocks<T['args'], MetaInput['args']>,\n SetOptional<T['args'], keyof T['args'] & keyof MetaInput['args']>\n >\n >\n >(\n story: TInput\n /** @ts-expect-error hard */\n ) => SolidStory<T, TInput>) & ((\n ..._args: Partial<T['args']> extends SetOptional<\n T['args'],\n keyof T['args'] & keyof MetaInput['args']\n >\n ? []\n : [never]\n ) => SolidStory<T, EmptyMetaArgs>);\n}\n\nexport interface SolidStory<T extends SolidTypes, TInput extends StoryAnnotations<T, T['args']>>\n extends Story<T, TInput> {\n Component: SolidComponent<Partial<T['args']>>;\n}\n\nexport function createSolidDefinePreview(solidAnnotations: PreviewAddon<never>) {\n return (<Addons extends PreviewAddon<never>[] = []>(\n input: DefinePreviewInput<Addons>\n ) => {\n const { addons, ...projectAnnotations } = input;\n\n const preview = definePreviewBase({\n ...projectAnnotations,\n addons: [\n solidAnnotations,\n solidArgTypesAnnotations,\n solidDocsAnnotations,\n ...(addons ?? []),\n ],\n });\n\n const defineMeta = preview.meta.bind(preview);\n\n preview.meta = (_input) => {\n const meta = defineMeta(_input);\n const defineStory = meta.story.bind(meta);\n\n meta.story = (__input: any) => {\n const story = defineStory(__input);\n\n // @ts-ignore this is a private property used only here\n story.Component = story.__compose();\n\n return story;\n };\n\n return meta;\n };\n\n return preview;\n }) as unknown as <\n Addons extends PreviewAddon<never>[] = []\n >(\n input: DefinePreviewInput<Addons>\n ) => SolidPreview<SolidTypes & InferTypes<Addons>>;\n}\n"]}
@@ -1,4 +1,14 @@
1
- // src/componentManifest/toDocgenInfo.ts
1
+ // src/internal/componentManifest/toDocgenInfo.ts
2
+ function serializeDocgenPropType(type) {
3
+ const docgenType = {
4
+ name: type.name,
5
+ raw: type.raw ?? type.name
6
+ };
7
+ if (type.value != null) {
8
+ docgenType.value = type.value;
9
+ }
10
+ return docgenType;
11
+ }
2
12
  function solidComponentDocToDocgenInfo(doc) {
3
13
  return {
4
14
  ...doc.displayName !== void 0 ? { displayName: doc.displayName } : {},
@@ -8,10 +18,7 @@ function solidComponentDocToDocgenInfo(doc) {
8
18
  const entry = {
9
19
  name: prop.name,
10
20
  required: prop.required,
11
- type: {
12
- name: prop.type.name,
13
- raw: prop.type.raw ?? prop.type.name
14
- },
21
+ type: serializeDocgenPropType(prop.type),
15
22
  defaultValue: prop.defaultValue ?? null
16
23
  };
17
24
  if (prop.description !== void 0) {
@@ -38,5 +45,5 @@ function solidComponentDocToArgTypesData(doc) {
38
45
  }
39
46
 
40
47
  export { solidComponentDocToArgTypesData, solidComponentDocToDocgenInfo };
41
- //# sourceMappingURL=chunk-FGHVLJAL.js.map
42
- //# sourceMappingURL=chunk-FGHVLJAL.js.map
48
+ //# sourceMappingURL=chunk-LKTA6WTO.js.map
49
+ //# sourceMappingURL=chunk-LKTA6WTO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/internal/componentManifest/toDocgenInfo.ts"],"names":[],"mappings":";AAqBA,SAAS,wBAAwB,IAAA,EAAkD;AAC/E,EAAA,MAAM,UAAA,GAAkD;AAAA,IACpD,MAAM,IAAA,CAAK,IAAA;AAAA,IACX,GAAA,EAAK,IAAA,CAAK,GAAA,IAAO,IAAA,CAAK;AAAA,GAC1B;AAEA,EAAA,IAAI,IAAA,CAAK,SAAS,IAAA,EAAM;AACpB,IAAA,UAAA,CAAW,QAAQ,IAAA,CAAK,KAAA;AAAA,EAC5B;AAEA,EAAA,OAAO,UAAA;AACX;AAEO,SAAS,8BAA8B,GAAA,EAAoC;AAC9E,EAAA,OAAO;AAAA,IACH,GAAI,IAAI,WAAA,KAAgB,MAAA,GAAY,EAAE,WAAA,EAAa,GAAA,CAAI,WAAA,EAAY,GAAI,EAAC;AAAA,IACxE,GAAI,IAAI,WAAA,KAAgB,MAAA,GAAY,EAAE,WAAA,EAAa,GAAA,CAAI,WAAA,EAAY,GAAI,EAAC;AAAA,IACxE,OAAO,MAAA,CAAO,WAAA;AAAA,MACV,MAAA,CAAO,OAAA,CAAQ,GAAA,CAAI,KAAK,CAAA,CAAE,IAAI,CAAC,CAAC,IAAA,EAAM,IAAI,CAAA,KAAM;AAC5C,QAAA,MAAM,KAAA,GAAqC;AAAA,UACvC,MAAM,IAAA,CAAK,IAAA;AAAA,UACX,UAAU,IAAA,CAAK,QAAA;AAAA,UACf,IAAA,EAAM,uBAAA,CAAwB,IAAA,CAAK,IAAI,CAAA;AAAA,UACvC,YAAA,EAAc,KAAK,YAAA,IAAgB;AAAA,SACvC;AAEA,QAAA,IAAI,IAAA,CAAK,gBAAgB,MAAA,EAAW;AAChC,UAAA,KAAA,CAAM,cAAc,IAAA,CAAK,WAAA;AAAA,QAC7B;AAEA,QAAA,OAAO,CAAC,MAAM,KAAK,CAAA;AAAA,MACvB,CAAC;AAAA;AACL,GACJ;AACJ;AAEO,SAAS,gCAAgC,GAAA,EAAiD;AAC7F,EAAA,MAAM,UAAA,GAAa,8BAA8B,GAAG,CAAA;AAEpD,EAAA,OAAO,MAAA,CAAO,WAAA;AAAA,IACV,MAAA,CAAO,OAAA,CAAQ,UAAA,CAAW,KAAK,CAAA,CAAE,IAAI,CAAC,CAAC,IAAA,EAAM,IAAI,CAAA,KAAM;AAAA,MACnD,IAAA;AAAA,MACA;AAAA,QACI,IAAA;AAAA,QACA,IAAA,EAAM,KAAK,IAAA,CAAK,IAAA;AAAA,QAChB,QAAA,EAAU,KAAK,QAAA,IAAY,KAAA;AAAA,QAC3B,aAAa,IAAA,CAAK;AAAA;AACtB,KACH;AAAA,GACL;AACJ","file":"chunk-LKTA6WTO.js","sourcesContent":["import type { SolidComponentDoc } from './types';\n\n/** Maps Solid component-meta (RCM) output to the `__docgenInfo` shape consumed by `storybook/internal/docs-tools`. */\nexport type DocgenInfo = {\n displayName?: string;\n description?: string;\n props: Record<string, {\n name: string;\n description?: string;\n required?: boolean;\n type: {\n name: string;\n raw?: string;\n value?: unknown;\n computed?: boolean;\n };\n defaultValue?: { value: string } | null;\n parent?: { name: string; fileName: string };\n }>;\n};\n\nfunction serializeDocgenPropType(type: SolidComponentDoc['props'][string]['type']) {\n const docgenType: DocgenInfo['props'][string]['type'] = {\n name: type.name,\n raw: type.raw ?? type.name,\n };\n\n if (type.value != null) {\n docgenType.value = type.value;\n }\n\n return docgenType;\n}\n\nexport function solidComponentDocToDocgenInfo(doc: SolidComponentDoc): DocgenInfo {\n return {\n ...(doc.displayName !== undefined ? { displayName: doc.displayName } : {}),\n ...(doc.description !== undefined ? { description: doc.description } : {}),\n props: Object.fromEntries(\n Object.entries(doc.props).map(([name, prop]) => {\n const entry: DocgenInfo['props'][string] = {\n name: prop.name,\n required: prop.required,\n type: serializeDocgenPropType(prop.type),\n defaultValue: prop.defaultValue ?? null,\n };\n\n if (prop.description !== undefined) {\n entry.description = prop.description;\n }\n\n return [name, entry];\n })\n ),\n };\n}\n\nexport function solidComponentDocToArgTypesData(doc: SolidComponentDoc): Record<string, unknown> {\n const docgenInfo = solidComponentDocToDocgenInfo(doc);\n\n return Object.fromEntries(\n Object.entries(docgenInfo.props).map(([name, prop]) => [\n name,\n {\n name,\n type: prop.type.name,\n required: prop.required ?? false,\n description: prop.description,\n },\n ])\n );\n}\n"]}
@@ -0,0 +1,8 @@
1
+ // src/framework/public-api.ts
2
+ function defineMain(config) {
3
+ return config;
4
+ }
5
+
6
+ export { defineMain };
7
+ //# sourceMappingURL=chunk-NOGINBE3.js.map
8
+ //# sourceMappingURL=chunk-NOGINBE3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/framework/public-api.ts"],"names":[],"mappings":";AAEO,SAAS,WAAW,MAAA,EAAyB;AAChD,EAAA,OAAO,MAAA;AACX","file":"chunk-NOGINBE3.js","sourcesContent":["import type { StorybookConfig } from './types';\n\nexport function defineMain(config: StorybookConfig) {\n return config;\n}\n\nexport type * from './types';\n"]}
@@ -1,9 +1,9 @@
1
1
  import { __export } from './chunk-PZ5AY32C.js';
2
2
  import { extractComponentDescription, enhanceArgTypes, hasDocgen, extractComponentProps } from 'storybook/internal/docs-tools';
3
3
 
4
- // src/renderer/docs/entry-preview-argtypes.ts
5
- var entry_preview_argtypes_exports = {};
6
- __export(entry_preview_argtypes_exports, {
4
+ // src/renderer/argtypes.ts
5
+ var argtypes_exports = {};
6
+ __export(argtypes_exports, {
7
7
  argTypesEnhancers: () => argTypesEnhancers,
8
8
  parameters: () => parameters
9
9
  });
@@ -39,18 +39,22 @@ var extractArgTypes = (component) => {
39
39
  if (!component) {
40
40
  return null;
41
41
  }
42
- let processedComponent = component;
43
- if (!hasDocgen(component) && component.type != null) {
44
- processedComponent = component.type;
45
- }
46
- const extractedProps = extractComponentProps(processedComponent, "props");
47
- if (!extractedProps.length) {
42
+ try {
43
+ let processedComponent = component;
44
+ if (!hasDocgen(component) && component.type != null) {
45
+ processedComponent = component.type;
46
+ }
47
+ const extractedProps = extractComponentProps(processedComponent, "props");
48
+ if (!Array.isArray(extractedProps) || extractedProps.length === 0) {
49
+ return null;
50
+ }
51
+ return extractedProps.reduce((acc, { propDef }) => {
52
+ acc[propDef.name] = propDefToInputType(propDef);
53
+ return acc;
54
+ }, {});
55
+ } catch {
48
56
  return null;
49
57
  }
50
- return extractedProps.reduce((acc, { propDef }) => {
51
- acc[propDef.name] = propDefToInputType(propDef);
52
- return acc;
53
- }, {});
54
58
  };
55
59
  var parameters = {
56
60
  docs: {
@@ -60,6 +64,6 @@ var parameters = {
60
64
  };
61
65
  var argTypesEnhancers = [enhanceArgTypes];
62
66
 
63
- export { argTypesEnhancers, entry_preview_argtypes_exports, parameters };
64
- //# sourceMappingURL=chunk-GZ3XWUGK.js.map
65
- //# sourceMappingURL=chunk-GZ3XWUGK.js.map
67
+ export { argTypesEnhancers, argtypes_exports, parameters };
68
+ //# sourceMappingURL=chunk-OHDHM5OZ.js.map
69
+ //# sourceMappingURL=chunk-OHDHM5OZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/renderer/argtypes.ts"],"names":[],"mappings":";;;;AAAA,IAAA,gBAAA,GAAA;AAAA,QAAA,CAAA,gBAAA,EAAA;AAAA,EAAA,iBAAA,EAAA,MAAA,iBAAA;AAAA,EAAA,UAAA,EAAA,MAAA;AAAA,CAAA,CAAA;AAaA,SAAS,mBAAmB,GAAA,EAA+B;AACvD,EAAA,MAAM;AAAA,IACF,IAAA;AAAA,IACA,WAAA;AAAA,IACA,IAAA;AAAA,IACA,MAAA;AAAA,IACA,YAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,GACJ,GAAI,GAAA;AAEJ,EAAA,MAAM,MAAA,GAA0B;AAAA,IAC5B,IAAA;AAAA,IACA,IAAA,EAAM,EAAE,QAAA,EAAU,GAAG,MAAA,EAAO;AAAA,IAC5B,KAAA,EAAO;AAAA,MACH;AAAA;AACJ,GACJ;AAEA,EAAA,IAAI,eAAe,IAAA,EAAM;AACrB,IAAA,MAAA,CAAO,WAAA,GAAc,WAAA;AAAA,EACzB;AAEA,EAAA,IAAI,QAAQ,IAAA,EAAM;AACd,IAAA,MAAA,CAAO,MAAO,IAAA,GAAO,IAAA;AAAA,EACzB;AAEA,EAAA,IAAI,gBAAgB,IAAA,EAAM;AACtB,IAAA,MAAA,CAAO,MAAO,YAAA,GAAe,YAAA;AAAA,EACjC;AAEA,EAAA,OAAO,MAAA;AACX;AAGA,IAAM,eAAA,GAAqC,CAAC,SAAA,KAAqC;AAC7E,EAAA,IAAI,CAAC,SAAA,EAAW;AACZ,IAAA,OAAO,IAAA;AAAA,EACX;AAEA,EAAA,IAAI;AACA,IAAA,IAAI,kBAAA,GAAgC,SAAA;AAEpC,IAAA,IAAI,CAAC,SAAA,CAAU,SAAS,CAAA,IAAK,SAAA,CAAU,QAAQ,IAAA,EAAM;AACjD,MAAA,kBAAA,GAAqB,SAAA,CAAU,IAAA;AAAA,IACnC;AAEA,IAAA,MAAM,cAAA,GAAiB,qBAAA,CAAsB,kBAAA,EAAoB,OAAO,CAAA;AAExE,IAAA,IAAI,CAAC,KAAA,CAAM,OAAA,CAAQ,cAAc,CAAA,IAAK,cAAA,CAAe,WAAW,CAAA,EAAG;AAC/D,MAAA,OAAO,IAAA;AAAA,IACX;AAEA,IAAA,OAAO,eAAe,MAAA,CAAO,CAAC,GAAA,EAAqB,EAAE,SAAQ,KAAM;AAC/D,MAAA,GAAA,CAAI,OAAA,CAAQ,IAAI,CAAA,GAAI,kBAAA,CAAmB,OAAO,CAAA;AAE9C,MAAA,OAAO,GAAA;AAAA,IACX,CAAA,EAAG,EAAE,CAAA;AAAA,EACT,CAAA,CAAA,MACM;AACF,IAAA,OAAO,IAAA;AAAA,EACX;AACJ,CAAA;AAEO,IAAM,UAAA,GAAa;AAAA,EACtB,IAAA,EAAM;AAAA,IACF,eAAA;AAAA,IACA;AAAA;AAER;AAEO,IAAM,iBAAA,GAAuD,CAAC,eAAe","file":"chunk-OHDHM5OZ.js","sourcesContent":["import {\n enhanceArgTypes,\n extractComponentDescription,\n extractComponentProps,\n hasDocgen,\n type ArgTypesExtractor,\n type Component,\n type PropDef,\n} from 'storybook/internal/docs-tools';\n\nimport type { ArgTypesEnhancer, StrictArgTypes, StrictInputType } from 'storybook/internal/types';\nimport type { SolidRenderer } from '../preview/public-api';\n\nfunction propDefToInputType(row: PropDef): StrictInputType {\n const {\n name,\n description,\n type,\n sbType,\n defaultValue,\n jsDocTags,\n required,\n } = row;\n\n const result: StrictInputType = {\n name,\n type: { required, ...sbType },\n table: {\n jsDocTags,\n },\n };\n\n if (description != null) {\n result.description = description;\n }\n\n if (type != null) {\n result.table!.type = type;\n }\n\n if (defaultValue != null) {\n result.table!.defaultValue = defaultValue;\n }\n\n return result;\n}\n\n/** Reads `__docgenInfo` injected at build time by solid-component-meta. */\nconst extractArgTypes: ArgTypesExtractor = (component): StrictArgTypes | null => {\n if (!component) {\n return null;\n }\n\n try {\n let processedComponent: Component = component;\n\n if (!hasDocgen(component) && component.type != null) {\n processedComponent = component.type;\n }\n\n const extractedProps = extractComponentProps(processedComponent, 'props');\n\n if (!Array.isArray(extractedProps) || extractedProps.length === 0) {\n return null;\n }\n\n return extractedProps.reduce((acc: StrictArgTypes, { propDef }) => {\n acc[propDef.name] = propDefToInputType(propDef);\n\n return acc;\n }, {});\n }\n catch {\n return null;\n }\n};\n\nexport const parameters = {\n docs: {\n extractArgTypes,\n extractComponentDescription,\n },\n};\n\nexport const argTypesEnhancers: ArgTypesEnhancer<SolidRenderer>[] = [enhanceArgTypes];\n"]}
@@ -0,0 +1,70 @@
1
+ import { createRenderToCanvas, createDefaultRender, createMount, beforeAll, createApplyDecorators, createStoryState } from './chunk-4R2BK5SE.js';
2
+ import { __export } from './chunk-PZ5AY32C.js';
3
+ import { render as render$1 } from '@solidjs/web';
4
+ import { global } from '@storybook/global';
5
+ import { createStore, createComponent, onSettled, Errored, createMemo } from 'solid-js';
6
+
7
+ // src/renderer/solid-2.ts
8
+ var solid_2_exports = {};
9
+ __export(solid_2_exports, {
10
+ applyDecorators: () => applyDecorators,
11
+ beforeAll: () => beforeAll,
12
+ mount: () => mount,
13
+ parameters: () => parameters,
14
+ render: () => render,
15
+ renderToCanvas: () => renderToCanvas
16
+ });
17
+ if (global.window) {
18
+ global.window.STORYBOOK_ENV = "solid";
19
+ }
20
+ function trackStory(story) {
21
+ return createMemo(story);
22
+ }
23
+ var storyStore = createStoryState((initial) => {
24
+ const [state, setStore] = createStore(initial);
25
+ const setState = (update) => {
26
+ setStore(() => update(state));
27
+ };
28
+ return [state, setState];
29
+ });
30
+ var runtime = {
31
+ storyStore,
32
+ render: render$1,
33
+ createComponent
34
+ };
35
+ var applyDecorators = createApplyDecorators({ storyStore });
36
+ var mount = createMount(runtime);
37
+ var render = createDefaultRender(runtime.createComponent);
38
+ var renderToCanvas = createRenderToCanvas({
39
+ ...runtime,
40
+ createStoryApp: ({ Story, storyContext, showMain, showException, storyId }) => {
41
+ const renderStory = () => createComponent(() => trackStory(Story), {});
42
+ return (() => {
43
+ onSettled(() => {
44
+ showMain();
45
+ storyStore.setRendered(storyId, true);
46
+ return () => {
47
+ storyStore.setRendered(storyId, false);
48
+ };
49
+ });
50
+ if (storyContext?.parameters?.["__isPortableStory"]) {
51
+ return renderStory();
52
+ }
53
+ return createComponent(Errored, {
54
+ fallback: (err, _reset) => {
55
+ const error = err();
56
+ showException(error);
57
+ return error;
58
+ },
59
+ children: renderStory()
60
+ });
61
+ });
62
+ }
63
+ });
64
+ var parameters = {
65
+ renderer: "solid"
66
+ };
67
+
68
+ export { applyDecorators, mount, parameters, render, renderToCanvas, solid_2_exports };
69
+ //# sourceMappingURL=chunk-QCGKL2ZI.js.map
70
+ //# sourceMappingURL=chunk-QCGKL2ZI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/renderer/solid-2.ts"],"names":["solidRender"],"mappings":";;;;;;;AAAA,IAAA,eAAA,GAAA;AAAA,QAAA,CAAA,eAAA,EAAA;AAAA,EAAA,eAAA,EAAA,MAAA,eAAA;AAAA,EAAA,SAAA,EAAA,MAAA,SAAA;AAAA,EAAA,KAAA,EAAA,MAAA,KAAA;AAAA,EAAA,UAAA,EAAA,MAAA,UAAA;AAAA,EAAA,MAAA,EAAA,MAAA,MAAA;AAAA,EAAA,cAAA,EAAA,MAAA;AAAA,CAAA,CAAA;AAoBA,IAAI,OAAO,MAAA,EAAQ;AACf,EAAA,MAAA,CAAO,OAAO,aAAA,GAAgB,OAAA;AAClC;AAEA,SAAS,WAAW,KAAA,EAAiD;AACjE,EAAA,OAAO,WAAW,KAAK,CAAA;AAC3B;AAEA,IAAM,UAAA,GAAa,gBAAA,CAAiB,CAAC,OAAA,KAAiB;AAClD,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAI,YAAY,OAAO,CAAA;AAE7C,EAAA,MAAM,QAAA,GAAW,CAAC,MAAA,KAA+B;AAC7C,IAAA,QAAA,CAAS,MAAM,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,EAChC,CAAA;AAEA,EAAA,OAAO,CAAC,OAAO,QAAQ,CAAA;AAC3B,CAAC,CAAA;AAED,IAAM,OAAA,GAAgC;AAAA,EAClC,UAAA;AAAA,EACA,MAAA,EAAQA,QAAA;AAAA,EACR;AACJ,CAAA;AAEA,IAAM,eAAA,GAAkB,qBAAA,CAAsB,EAAE,UAAA,EAAY;AAC5D,IAAM,KAAA,GAAQ,YAAY,OAAO;AACjC,IAAM,MAAA,GAAS,mBAAA,CAAoB,OAAA,CAAQ,eAAe;AAC1D,IAAM,iBAAiB,oBAAA,CAAqB;AAAA,EACxC,GAAG,OAAA;AAAA,EACH,cAAA,EAAgB,CAAC,EAAE,KAAA,EAAO,cAAc,QAAA,EAAU,aAAA,EAAe,SAAQ,KAAM;AAC3E,IAAA,MAAM,WAAA,GAAc,MAAM,eAAA,CAAgB,MAAM,WAAW,KAAK,CAAA,EAAG,EAAE,CAAA;AAErE,IAAA,QAAQ,MAAM;AACV,MAAA,SAAA,CAAU,MAAM;AACZ,QAAA,QAAA,EAAS;AACT,QAAA,UAAA,CAAW,WAAA,CAAY,SAAS,IAAI,CAAA;AAEpC,QAAA,OAAO,MAAM;AACT,UAAA,UAAA,CAAW,WAAA,CAAY,SAAS,KAAK,CAAA;AAAA,QACzC,CAAA;AAAA,MACJ,CAAC,CAAA;AAGD,MAAA,IAAI,YAAA,EAAc,UAAA,GAAa,mBAAmB,CAAA,EAAG;AACjD,QAAA,OAAO,WAAA,EAAY;AAAA,MACvB;AAEA,MAAA,OAAO,gBAAgB,OAAA,EAAS;AAAA,QAC5B,QAAA,EAAU,CAAC,GAAA,EAAoB,MAAA,KAAuB;AAClD,UAAA,MAAM,QAAQ,GAAA,EAAI;AAElB,UAAA,aAAA,CAAc,KAAK,CAAA;AAEnB,UAAA,OAAO,KAAA;AAAA,QACX,CAAA;AAAA,QACA,UAAU,WAAA;AAAY,OACzB,CAAA;AAAA,IACL,CAAA;AAAA,EACJ;AACJ,CAAC;AAGD,IAAM,UAAA,GAAa;AAAA,EACf,QAAA,EAAU;AACd","file":"chunk-QCGKL2ZI.js","sourcesContent":["import { render as solidRender } from '@solidjs/web';\nimport { global } from '@storybook/global';\nimport {\n createComponent,\n createMemo,\n createStore,\n Errored,\n onSettled,\n} from 'solid-js-next';\n\nimport { createApplyDecorators } from './shared/apply-decorators';\nimport { beforeAll } from './shared/before-all';\nimport { createDefaultRender } from './shared/default-render';\nimport { createMount } from './shared/mount';\nimport { createRenderToCanvas } from './shared/render-to-canvas';\nimport { createStoryState } from './shared/story-store';\n\nimport type { SolidComponent, SolidRenderer } from '../preview/public-api';\nimport type { SolidRendererRuntime, StoryThunk } from './shared/render-to-canvas';\n\nif (global.window) {\n global.window.STORYBOOK_ENV = 'solid';\n}\n\nfunction trackStory(story: StoryThunk): SolidRenderer['storyResult'] {\n return createMemo(story) as unknown as SolidRenderer['storyResult'];\n}\n\nconst storyStore = createStoryState((initial: any) => {\n const [state, setStore] = createStore(initial);\n\n const setState = (update: (prev: any) => any) => {\n setStore(() => update(state));\n };\n\n return [state, setState];\n});\n\nconst runtime: SolidRendererRuntime = {\n storyStore,\n render: solidRender,\n createComponent: createComponent as SolidRendererRuntime['createComponent'],\n};\n\nconst applyDecorators = createApplyDecorators({ storyStore });\nconst mount = createMount(runtime);\nconst render = createDefaultRender(runtime.createComponent);\nconst renderToCanvas = createRenderToCanvas({\n ...runtime,\n createStoryApp: ({ Story, storyContext, showMain, showException, storyId }) => {\n const renderStory = () => createComponent(() => trackStory(Story), {});\n\n return (() => {\n onSettled(() => {\n showMain();\n storyStore.setRendered(storyId, true);\n\n return () => {\n storyStore.setRendered(storyId, false);\n };\n });\n\n\n if (storyContext?.parameters?.['__isPortableStory']) {\n return renderStory();\n }\n\n return createComponent(Errored, {\n fallback: (err: () => unknown, _reset: () => void) => {\n const error = err() as Error;\n\n showException(error);\n\n return error as any;\n },\n children: renderStory(),\n });\n }) as SolidComponent;\n },\n});\n\n/** Preview-wide parameters for the Solid renderer. */\nconst parameters = {\n renderer: 'solid',\n};\n\nexport {\n applyDecorators,\n beforeAll,\n mount,\n parameters,\n render,\n renderToCanvas,\n};\n"]}
@@ -5,9 +5,9 @@ import ts from 'typescript';
5
5
  import { createLanguage, FileMap } from '@volar/language-core';
6
6
  import { resolveFileLanguageId, createLanguageServiceHost } from '@volar/typescript';
7
7
 
8
- // src/componentManifest/solidComponentMeta/SolidComponentMetaManager.ts
8
+ // src/internal/componentManifest/solidComponentMeta/SolidComponentMetaManager.ts
9
9
 
10
- // src/componentManifest/solidComponentMeta/resolveProps.ts
10
+ // src/internal/componentManifest/solidComponentMeta/resolveProps.ts
11
11
  function resolvePropsFromComponentType(typescript, checker, componentType) {
12
12
  const callSigs = componentType.getCallSignatures();
13
13
  if (callSigs.length > 0) {
@@ -314,7 +314,7 @@ function serializeComponentDoc(typescript, checker, {
314
314
  };
315
315
  }
316
316
 
317
- // src/componentManifest/solidComponentMeta/SolidComponentMetaProject.ts
317
+ // src/internal/componentManifest/solidComponentMeta/SolidComponentMetaProject.ts
318
318
  function arrayItemsEqual(a, b) {
319
319
  if (a.length !== b.length) {
320
320
  return false;
@@ -617,7 +617,7 @@ var SolidComponentMetaProject = class {
617
617
  }
618
618
  };
619
619
 
620
- // src/componentManifest/solidComponentMeta/SolidComponentMetaManager.ts
620
+ // src/internal/componentManifest/solidComponentMeta/SolidComponentMetaManager.ts
621
621
  var ROOT_TS_CONFIG_NAMES = ["tsconfig.json", "jsconfig.json"];
622
622
  var DEFAULT_INFERRED_OPTIONS = {
623
623
  strict: true,
@@ -812,5 +812,5 @@ var DOCGEN_ENGINE = "solid-component-meta";
812
812
  var MANIFEST_DOCGEN_ENGINE = "react-component-meta";
813
813
 
814
814
  export { DOCGEN_ENGINE, MANIFEST_DOCGEN_ENGINE, SolidComponentMetaManager, getOrCreateSolidComponentMetaManager };
815
- //# sourceMappingURL=chunk-6566KBHG.js.map
816
- //# sourceMappingURL=chunk-6566KBHG.js.map
815
+ //# sourceMappingURL=chunk-TKOWB3JL.js.map
816
+ //# sourceMappingURL=chunk-TKOWB3JL.js.map