create-plasmic-app 0.0.99 → 0.0.101

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 (111) hide show
  1. package/cpa-out/gatsby-codegen-js/gatsby-browser.jsx +2 -1
  2. package/cpa-out/gatsby-codegen-js/gatsby-ssr.jsx +2 -1
  3. package/cpa-out/gatsby-codegen-js/package.json +4 -4
  4. package/cpa-out/gatsby-codegen-js/plasmic.json +14 -8
  5. package/cpa-out/gatsby-codegen-js/src/components/Button.jsx +1 -3
  6. package/cpa-out/gatsby-codegen-js/src/components/plasmic/create_plasmic_app/PlasmicButton.jsx +53 -100
  7. package/cpa-out/gatsby-codegen-js/src/components/plasmic/create_plasmic_app/PlasmicDynamicPage.jsx +36 -30
  8. package/cpa-out/gatsby-codegen-js/src/components/plasmic/create_plasmic_app/PlasmicGlobalVariant__Screen.jsx +3 -15
  9. package/cpa-out/gatsby-codegen-js/src/components/plasmic/create_plasmic_app/PlasmicHomepage.jsx +25 -25
  10. package/cpa-out/gatsby-codegen-js/src/components/plasmic/create_plasmic_app/PlasmicRandomDynamicPageButton.jsx +45 -59
  11. package/cpa-out/gatsby-codegen-js/src/components/plasmic/create_plasmic_app/icons/PlasmicIcon__Checksvg.jsx +3 -3
  12. package/cpa-out/gatsby-codegen-js/src/components/plasmic/create_plasmic_app/icons/PlasmicIcon__Icon.jsx +1 -1
  13. package/cpa-out/gatsby-codegen-js/src/pages/dynamic/[slug].jsx +5 -4
  14. package/cpa-out/gatsby-codegen-js/src/pages/index.jsx +5 -4
  15. package/cpa-out/gatsby-codegen-ts/gatsby-browser.tsx +2 -1
  16. package/cpa-out/gatsby-codegen-ts/gatsby-ssr.tsx +2 -1
  17. package/cpa-out/gatsby-codegen-ts/package.json +9 -9
  18. package/cpa-out/gatsby-codegen-ts/plasmic.json +14 -8
  19. package/cpa-out/gatsby-codegen-ts/src/components/Button.tsx +4 -5
  20. package/cpa-out/gatsby-codegen-ts/src/components/plasmic/create_plasmic_app/PlasmicButton.tsx +99 -75
  21. package/cpa-out/gatsby-codegen-ts/src/components/plasmic/create_plasmic_app/PlasmicDynamicPage.tsx +80 -49
  22. package/cpa-out/gatsby-codegen-ts/src/components/plasmic/create_plasmic_app/PlasmicGlobalVariant__Screen.tsx +3 -15
  23. package/cpa-out/gatsby-codegen-ts/src/components/plasmic/create_plasmic_app/PlasmicHomepage.tsx +69 -43
  24. package/cpa-out/gatsby-codegen-ts/src/components/plasmic/create_plasmic_app/PlasmicRandomDynamicPageButton.tsx +90 -77
  25. package/cpa-out/gatsby-codegen-ts/src/components/plasmic/create_plasmic_app/icons/PlasmicIcon__Checksvg.tsx +4 -4
  26. package/cpa-out/gatsby-codegen-ts/src/components/plasmic/create_plasmic_app/icons/PlasmicIcon__Icon.tsx +1 -1
  27. package/cpa-out/gatsby-codegen-ts/src/pages/dynamic/[slug].tsx +6 -5
  28. package/cpa-out/gatsby-codegen-ts/src/pages/index.tsx +6 -5
  29. package/cpa-out/gatsby-loader-js/package.json +3 -3
  30. package/cpa-out/gatsby-loader-js/src/templates/defaultPlasmicPage.jsx +1 -0
  31. package/cpa-out/gatsby-loader-ts/package.json +8 -8
  32. package/cpa-out/gatsby-loader-ts/src/templates/defaultPlasmicPage.tsx +1 -0
  33. package/cpa-out/nextjs-app-loader-js/package.json +8 -6
  34. package/cpa-out/nextjs-app-loader-js/plasmic-init.js +10 -1
  35. package/cpa-out/nextjs-app-loader-ts/package.json +12 -10
  36. package/cpa-out/nextjs-app-loader-ts/plasmic-init.ts +10 -1
  37. package/cpa-out/nextjs-app-loader-ts/tsconfig.json +2 -9
  38. package/cpa-out/nextjs-pages-codegen-js/components/plasmic/create_plasmic_app/PlasmicButton.jsx +6 -5
  39. package/cpa-out/nextjs-pages-codegen-js/components/plasmic/create_plasmic_app/PlasmicDynamicPage.jsx +1 -1
  40. package/cpa-out/nextjs-pages-codegen-js/components/plasmic/create_plasmic_app/PlasmicGlobalVariant__Screen.jsx +1 -1
  41. package/cpa-out/nextjs-pages-codegen-js/components/plasmic/create_plasmic_app/PlasmicHomepage.jsx +1 -1
  42. package/cpa-out/nextjs-pages-codegen-js/components/plasmic/create_plasmic_app/PlasmicRandomDynamicPageButton.jsx +1 -1
  43. package/cpa-out/nextjs-pages-codegen-js/components/plasmic/create_plasmic_app/icons/PlasmicIcon__Checksvg.jsx +1 -1
  44. package/cpa-out/nextjs-pages-codegen-js/components/plasmic/create_plasmic_app/icons/PlasmicIcon__Icon.jsx +1 -1
  45. package/cpa-out/nextjs-pages-codegen-js/package.json +4 -4
  46. package/cpa-out/nextjs-pages-codegen-js/pages/_app.jsx +2 -1
  47. package/cpa-out/nextjs-pages-codegen-js/plasmic.json +2 -2
  48. package/cpa-out/nextjs-pages-codegen-ts/components/plasmic/create_plasmic_app/PlasmicButton.tsx +17 -14
  49. package/cpa-out/nextjs-pages-codegen-ts/components/plasmic/create_plasmic_app/PlasmicDynamicPage.tsx +7 -7
  50. package/cpa-out/nextjs-pages-codegen-ts/components/plasmic/create_plasmic_app/PlasmicGlobalVariant__Screen.tsx +1 -1
  51. package/cpa-out/nextjs-pages-codegen-ts/components/plasmic/create_plasmic_app/PlasmicHomepage.tsx +7 -7
  52. package/cpa-out/nextjs-pages-codegen-ts/components/plasmic/create_plasmic_app/PlasmicRandomDynamicPageButton.tsx +7 -7
  53. package/cpa-out/nextjs-pages-codegen-ts/components/plasmic/create_plasmic_app/icons/PlasmicIcon__Checksvg.tsx +1 -1
  54. package/cpa-out/nextjs-pages-codegen-ts/components/plasmic/create_plasmic_app/icons/PlasmicIcon__Icon.tsx +1 -1
  55. package/cpa-out/nextjs-pages-codegen-ts/package.json +4 -4
  56. package/cpa-out/nextjs-pages-codegen-ts/pages/_app.tsx +2 -1
  57. package/cpa-out/nextjs-pages-codegen-ts/pages/dynamic/[slug].tsx +1 -0
  58. package/cpa-out/nextjs-pages-codegen-ts/pages/index.tsx +1 -0
  59. package/cpa-out/nextjs-pages-codegen-ts/plasmic.json +2 -2
  60. package/cpa-out/nextjs-pages-loader-js/package.json +3 -3
  61. package/cpa-out/nextjs-pages-loader-ts/package.json +3 -3
  62. package/cpa-out/react-codegen-js/eslint.config.js +1 -6
  63. package/cpa-out/react-codegen-js/package.json +10 -11
  64. package/cpa-out/react-codegen-js/plasmic.json +2 -2
  65. package/cpa-out/react-codegen-js/src/components/plasmic/create_plasmic_app/PlasmicButton.jsx +6 -5
  66. package/cpa-out/react-codegen-js/src/components/plasmic/create_plasmic_app/PlasmicDynamicPage.jsx +1 -1
  67. package/cpa-out/react-codegen-js/src/components/plasmic/create_plasmic_app/PlasmicGlobalVariant__Screen.jsx +1 -1
  68. package/cpa-out/react-codegen-js/src/components/plasmic/create_plasmic_app/PlasmicHomepage.jsx +1 -1
  69. package/cpa-out/react-codegen-js/src/components/plasmic/create_plasmic_app/PlasmicRandomDynamicPageButton.jsx +1 -1
  70. package/cpa-out/react-codegen-js/src/components/plasmic/create_plasmic_app/icons/PlasmicIcon__Checksvg.jsx +1 -1
  71. package/cpa-out/react-codegen-js/src/components/plasmic/create_plasmic_app/icons/PlasmicIcon__Icon.jsx +1 -1
  72. package/cpa-out/react-codegen-ts/package.json +11 -11
  73. package/cpa-out/react-codegen-ts/plasmic.json +2 -2
  74. package/cpa-out/react-codegen-ts/src/components/plasmic/create_plasmic_app/PlasmicButton.tsx +17 -14
  75. package/cpa-out/react-codegen-ts/src/components/plasmic/create_plasmic_app/PlasmicDynamicPage.tsx +7 -7
  76. package/cpa-out/react-codegen-ts/src/components/plasmic/create_plasmic_app/PlasmicGlobalVariant__Screen.tsx +1 -1
  77. package/cpa-out/react-codegen-ts/src/components/plasmic/create_plasmic_app/PlasmicHomepage.tsx +7 -7
  78. package/cpa-out/react-codegen-ts/src/components/plasmic/create_plasmic_app/PlasmicRandomDynamicPageButton.tsx +7 -7
  79. package/cpa-out/react-codegen-ts/src/components/plasmic/create_plasmic_app/icons/PlasmicIcon__Checksvg.tsx +1 -1
  80. package/cpa-out/react-codegen-ts/src/components/plasmic/create_plasmic_app/icons/PlasmicIcon__Icon.tsx +1 -1
  81. package/dist/index.js +6 -1
  82. package/dist/lib.js +3 -1
  83. package/dist/tanstack/tanstack.d.ts +2 -0
  84. package/dist/tanstack/tanstack.js +79 -0
  85. package/dist/tanstack/templates/file-router/config.d.ts +1 -0
  86. package/dist/tanstack/templates/file-router/config.js +33 -0
  87. package/dist/tanstack/templates/file-router/plasmic-host.d.ts +1 -0
  88. package/dist/tanstack/templates/file-router/plasmic-host.js +27 -0
  89. package/dist/tanstack/templates/file-router/root.d.ts +2 -0
  90. package/dist/tanstack/templates/file-router/root.js +44 -0
  91. package/dist/utils/types.d.ts +1 -1
  92. package/dist/utils/types.js +7 -1
  93. package/package.json +2 -2
  94. package/run-cpa.ts +14 -6
  95. package/src/index.ts +6 -1
  96. package/src/lib.ts +3 -1
  97. package/src/tanstack/tanstack.ts +82 -0
  98. package/src/tanstack/templates/file-router/config.ts +29 -0
  99. package/src/tanstack/templates/file-router/plasmic-host.ts +23 -0
  100. package/src/tanstack/templates/file-router/root.ts +42 -0
  101. package/src/utils/types.ts +8 -2
  102. package/cpa-out/nextjs-app-loader-js/app/[[...catchall]]/page.jsx +0 -56
  103. package/cpa-out/nextjs-app-loader-js/app/api/hello/route.js +0 -3
  104. package/cpa-out/nextjs-app-loader-js/app/layout.js +0 -14
  105. package/cpa-out/nextjs-app-loader-js/app/plasmic-host/page.jsx +0 -6
  106. package/cpa-out/nextjs-app-loader-js/plasmic-init-client.jsx +0 -65
  107. package/cpa-out/nextjs-app-loader-ts/app/[[...catchall]]/page.tsx +0 -59
  108. package/cpa-out/nextjs-app-loader-ts/app/api/hello/route.ts +0 -3
  109. package/cpa-out/nextjs-app-loader-ts/app/layout.tsx +0 -18
  110. package/cpa-out/nextjs-app-loader-ts/app/plasmic-host/page.tsx +0 -6
  111. package/cpa-out/nextjs-app-loader-ts/plasmic-init-client.tsx +0 -65
@@ -1,6 +1,6 @@
1
- // @ts-nocheck
2
1
  /* eslint-disable */
3
2
  /* tslint:disable */
3
+ // @ts-nocheck
4
4
  /* prettier-ignore-start */
5
5
  import * as React from "react";
6
6
  import { createUseScreenVariants } from "@plasmicapp/react-web";
@@ -1,6 +1,6 @@
1
- // @ts-nocheck
2
1
  /* eslint-disable */
3
2
  /* tslint:disable */
3
+ // @ts-nocheck
4
4
  /* prettier-ignore-start */
5
5
  /** @jsxRuntime classic */
6
6
  /** @jsx createPlasmicElementProxy */
@@ -1,6 +1,6 @@
1
- // @ts-nocheck
2
1
  /* eslint-disable */
3
2
  /* tslint:disable */
3
+ // @ts-nocheck
4
4
  /* prettier-ignore-start */
5
5
  /** @jsxRuntime classic */
6
6
  /** @jsx createPlasmicElementProxy */
@@ -1,6 +1,6 @@
1
- // @ts-nocheck
2
1
  /* eslint-disable */
3
2
  /* tslint:disable */
3
+ // @ts-nocheck
4
4
  /* prettier-ignore-start */
5
5
  import React from "react";
6
6
  import { classNames } from "@plasmicapp/react-web";
@@ -1,6 +1,6 @@
1
- // @ts-nocheck
2
1
  /* eslint-disable */
3
2
  /* tslint:disable */
3
+ // @ts-nocheck
4
4
  /* prettier-ignore-start */
5
5
  import React from "react";
6
6
  import { classNames } from "@plasmicapp/react-web";
@@ -10,22 +10,22 @@
10
10
  "preview": "vite preview"
11
11
  },
12
12
  "dependencies": {
13
- "@plasmicapp/cli": "^0.1.335",
14
- "@plasmicapp/react-web": "^0.2.366",
13
+ "@plasmicapp/cli": "^0.1.337",
14
+ "@plasmicapp/react-web": "^0.2.381",
15
15
  "react": "^19.0.0",
16
16
  "react-dom": "^19.0.0"
17
17
  },
18
18
  "devDependencies": {
19
- "@eslint/js": "^9.19.0",
20
- "@types/react": "^19.0.8",
21
- "@types/react-dom": "^19.0.3",
19
+ "@eslint/js": "^9.22.0",
20
+ "@types/react": "^19.0.10",
21
+ "@types/react-dom": "^19.0.4",
22
22
  "@vitejs/plugin-react": "^4.3.4",
23
- "eslint": "^9.19.0",
24
- "eslint-plugin-react-hooks": "^5.0.0",
25
- "eslint-plugin-react-refresh": "^0.4.18",
26
- "globals": "^15.14.0",
23
+ "eslint": "^9.22.0",
24
+ "eslint-plugin-react-hooks": "^5.2.0",
25
+ "eslint-plugin-react-refresh": "^0.4.19",
26
+ "globals": "^16.0.0",
27
27
  "typescript": "~5.7.2",
28
- "typescript-eslint": "^8.22.0",
29
- "vite": "^6.1.0"
28
+ "typescript-eslint": "^8.26.1",
29
+ "vite": "^6.3.1"
30
30
  }
31
31
  }
@@ -128,6 +128,6 @@
128
128
  ]
129
129
  },
130
130
  "wrapPagesWithGlobalContexts": true,
131
- "cliVersion": "0.1.335",
132
- "$schema": "https://unpkg.com/@plasmicapp/cli@0.1.335/dist/plasmic.schema.json"
131
+ "cliVersion": "0.1.337",
132
+ "$schema": "https://unpkg.com/@plasmicapp/cli@0.1.337/dist/plasmic.schema.json"
133
133
  }
@@ -1,6 +1,6 @@
1
- // @ts-nocheck
2
1
  /* eslint-disable */
3
2
  /* tslint:disable */
3
+ // @ts-nocheck
4
4
  /* prettier-ignore-start */
5
5
 
6
6
  /** @jsxRuntime classic */
@@ -121,19 +121,21 @@ export const PlasmicButton__VariantProps = new Array<VariantPropType>(
121
121
  );
122
122
 
123
123
  export type PlasmicButton__ArgsType = {
124
- children?: React.ReactNode;
125
- startIcon?: React.ReactNode;
126
- endIcon?: React.ReactNode;
127
124
  link?: string;
128
125
  submitsForm?: boolean;
126
+ target?: boolean;
127
+ startIcon?: React.ReactNode;
128
+ children?: React.ReactNode;
129
+ endIcon?: React.ReactNode;
129
130
  };
130
131
  type ArgPropType = keyof PlasmicButton__ArgsType;
131
132
  export const PlasmicButton__ArgProps = new Array<ArgPropType>(
132
- "children",
133
- "startIcon",
134
- "endIcon",
135
133
  "link",
136
- "submitsForm"
134
+ "submitsForm",
135
+ "target",
136
+ "startIcon",
137
+ "children",
138
+ "endIcon"
137
139
  );
138
140
 
139
141
  export type PlasmicButton__OverridesType = {
@@ -145,6 +147,7 @@ export type PlasmicButton__OverridesType = {
145
147
 
146
148
  export interface DefaultButtonProps extends pp.BaseButtonProps {
147
149
  submitsForm?: boolean;
150
+ target?: boolean;
148
151
  shape?: SingleChoiceArg<"rounded" | "round" | "sharp">;
149
152
  size?: SingleChoiceArg<"compact" | "minimal">;
150
153
  color?: SingleChoiceArg<
@@ -683,15 +686,15 @@ type NodeComponentProps<T extends NodeNameType> =
683
686
  args?: PlasmicButton__ArgsType;
684
687
  overrides?: NodeOverridesType<T>;
685
688
  } & Omit<PlasmicButton__VariantsArgs, ReservedPropsType> & // Specify variants directly as props
686
- /* Specify args directly as props*/ Omit<
687
- PlasmicButton__ArgsType,
688
- ReservedPropsType
689
- > &
690
- /* Specify overrides for each element directly as props*/ Omit<
689
+ // Specify args directly as props
690
+ Omit<PlasmicButton__ArgsType, ReservedPropsType> &
691
+ // Specify overrides for each element directly as props
692
+ Omit<
691
693
  NodeOverridesType<T>,
692
694
  ReservedPropsType | VariantPropType | ArgPropType
693
695
  > &
694
- /* Specify props for the root element*/ Omit<
696
+ // Specify props for the root element
697
+ Omit<
695
698
  Partial<React.ComponentProps<NodeDefaultElementType[T]>>,
696
699
  ReservedPropsType | VariantPropType | ArgPropType | DescendantsType<T>
697
700
  >;
@@ -1,6 +1,6 @@
1
- // @ts-nocheck
2
1
  /* eslint-disable */
3
2
  /* tslint:disable */
3
+ // @ts-nocheck
4
4
  /* prettier-ignore-start */
5
5
 
6
6
  /** @jsxRuntime classic */
@@ -207,15 +207,15 @@ type NodeComponentProps<T extends NodeNameType> =
207
207
  args?: PlasmicDynamicPage__ArgsType;
208
208
  overrides?: NodeOverridesType<T>;
209
209
  } & Omit<PlasmicDynamicPage__VariantsArgs, ReservedPropsType> & // Specify variants directly as props
210
- /* Specify args directly as props*/ Omit<
211
- PlasmicDynamicPage__ArgsType,
212
- ReservedPropsType
213
- > &
214
- /* Specify overrides for each element directly as props*/ Omit<
210
+ // Specify args directly as props
211
+ Omit<PlasmicDynamicPage__ArgsType, ReservedPropsType> &
212
+ // Specify overrides for each element directly as props
213
+ Omit<
215
214
  NodeOverridesType<T>,
216
215
  ReservedPropsType | VariantPropType | ArgPropType
217
216
  > &
218
- /* Specify props for the root element*/ Omit<
217
+ // Specify props for the root element
218
+ Omit<
219
219
  Partial<React.ComponentProps<NodeDefaultElementType[T]>>,
220
220
  ReservedPropsType | VariantPropType | ArgPropType | DescendantsType<T>
221
221
  >;
@@ -1,6 +1,6 @@
1
- // @ts-nocheck
2
1
  /* eslint-disable */
3
2
  /* tslint:disable */
3
+ // @ts-nocheck
4
4
  /* prettier-ignore-start */
5
5
 
6
6
  import * as React from "react";
@@ -1,6 +1,6 @@
1
- // @ts-nocheck
2
1
  /* eslint-disable */
3
2
  /* tslint:disable */
3
+ // @ts-nocheck
4
4
  /* prettier-ignore-start */
5
5
 
6
6
  /** @jsxRuntime classic */
@@ -247,15 +247,15 @@ type NodeComponentProps<T extends NodeNameType> =
247
247
  args?: PlasmicHomepage__ArgsType;
248
248
  overrides?: NodeOverridesType<T>;
249
249
  } & Omit<PlasmicHomepage__VariantsArgs, ReservedPropsType> & // Specify variants directly as props
250
- /* Specify args directly as props*/ Omit<
251
- PlasmicHomepage__ArgsType,
252
- ReservedPropsType
253
- > &
254
- /* Specify overrides for each element directly as props*/ Omit<
250
+ // Specify args directly as props
251
+ Omit<PlasmicHomepage__ArgsType, ReservedPropsType> &
252
+ // Specify overrides for each element directly as props
253
+ Omit<
255
254
  NodeOverridesType<T>,
256
255
  ReservedPropsType | VariantPropType | ArgPropType
257
256
  > &
258
- /* Specify props for the root element*/ Omit<
257
+ // Specify props for the root element
258
+ Omit<
259
259
  Partial<React.ComponentProps<NodeDefaultElementType[T]>>,
260
260
  ReservedPropsType | VariantPropType | ArgPropType | DescendantsType<T>
261
261
  >;
@@ -1,6 +1,6 @@
1
- // @ts-nocheck
2
1
  /* eslint-disable */
3
2
  /* tslint:disable */
3
+ // @ts-nocheck
4
4
  /* prettier-ignore-start */
5
5
 
6
6
  /** @jsxRuntime classic */
@@ -194,15 +194,15 @@ type NodeComponentProps<T extends NodeNameType> =
194
194
  args?: PlasmicRandomDynamicPageButton__ArgsType;
195
195
  overrides?: NodeOverridesType<T>;
196
196
  } & Omit<PlasmicRandomDynamicPageButton__VariantsArgs, ReservedPropsType> & // Specify variants directly as props
197
- /* Specify args directly as props*/ Omit<
198
- PlasmicRandomDynamicPageButton__ArgsType,
199
- ReservedPropsType
200
- > &
201
- /* Specify overrides for each element directly as props*/ Omit<
197
+ // Specify args directly as props
198
+ Omit<PlasmicRandomDynamicPageButton__ArgsType, ReservedPropsType> &
199
+ // Specify overrides for each element directly as props
200
+ Omit<
202
201
  NodeOverridesType<T>,
203
202
  ReservedPropsType | VariantPropType | ArgPropType
204
203
  > &
205
- /* Specify props for the root element*/ Omit<
204
+ // Specify props for the root element
205
+ Omit<
206
206
  Partial<React.ComponentProps<NodeDefaultElementType[T]>>,
207
207
  ReservedPropsType | VariantPropType | ArgPropType | DescendantsType<T>
208
208
  >;
@@ -1,6 +1,6 @@
1
- // @ts-nocheck
2
1
  /* eslint-disable */
3
2
  /* tslint:disable */
3
+ // @ts-nocheck
4
4
  /* prettier-ignore-start */
5
5
  import React from "react";
6
6
  import { classNames } from "@plasmicapp/react-web";
@@ -1,6 +1,6 @@
1
- // @ts-nocheck
2
1
  /* eslint-disable */
3
2
  /* tslint:disable */
3
+ // @ts-nocheck
4
4
  /* prettier-ignore-start */
5
5
  import React from "react";
6
6
  import { classNames } from "@plasmicapp/react-web";
package/dist/index.js CHANGED
@@ -62,7 +62,7 @@ const argv = yargs_1.default
62
62
  })
63
63
  .option("platform", {
64
64
  describe: "Target platform",
65
- choices: ["", "nextjs", "gatsby", "react"],
65
+ choices: ["", "nextjs", "gatsby", "react", "tanstack"],
66
66
  })
67
67
  .option("scheme", {
68
68
  describe: "Plasmic integration scheme",
@@ -185,6 +185,11 @@ function run() {
185
185
  name: "Gatsby",
186
186
  value: "gatsby",
187
187
  },
188
+ {
189
+ name: "TanStack Start",
190
+ short: "TanStack Start",
191
+ value: "tanstack",
192
+ },
188
193
  {
189
194
  name: "React (Vite)",
190
195
  short: "React (Vite)",
package/dist/lib.js CHANGED
@@ -51,6 +51,8 @@ function getCPAStrategy(platform) {
51
51
  return (yield Promise.resolve().then(() => __importStar(require("./gatsby/gatsby")))).gatsbyStrategy;
52
52
  case "react":
53
53
  return (yield Promise.resolve().then(() => __importStar(require("./react/react")))).reactStrategy;
54
+ case "tanstack":
55
+ return (yield Promise.resolve().then(() => __importStar(require("./tanstack/tanstack")))).tanstackStrategy;
54
56
  }
55
57
  });
56
58
  }
@@ -82,7 +84,7 @@ function create(args) {
82
84
  }
83
85
  // Calling `npx create-XXX` means we don't have to keep these dependencies up to date
84
86
  banner("CREATING THE PROJECT");
85
- if (!["nextjs", "gatsby", "react"].includes(platform)) {
87
+ if (!["nextjs", "gatsby", "react", "tanstack"].includes(platform)) {
86
88
  throw new Error(`Unrecognized platform: ${platform}`);
87
89
  }
88
90
  if (!["codegen", "loader"].includes(scheme)) {
@@ -0,0 +1,2 @@
1
+ import { CPAStrategy } from "../utils/strategy";
2
+ export declare const tanstackStrategy: CPAStrategy;
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.tanstackStrategy = void 0;
16
+ const fs_1 = require("fs");
17
+ const path_1 = __importDefault(require("path"));
18
+ const cmd_utils_1 = require("../utils/cmd-utils");
19
+ const codegen_1 = require("../utils/codegen");
20
+ const file_utils_1 = require("../utils/file-utils");
21
+ const config_1 = require("./templates/file-router/config");
22
+ const plasmic_host_1 = require("./templates/file-router/plasmic-host");
23
+ const root_1 = require("./templates/file-router/root");
24
+ exports.tanstackStrategy = {
25
+ create: (args) => __awaiter(void 0, void 0, void 0, function* () {
26
+ const { projectPath } = args;
27
+ const createCommand = `npx create-tsrouter-app@latest ${projectPath} --template file-router --add-ons start`;
28
+ yield (0, cmd_utils_1.spawnOrFail)(createCommand);
29
+ }),
30
+ installDeps: ({ scheme, projectPath }) => __awaiter(void 0, void 0, void 0, function* () {
31
+ if (scheme === "loader") {
32
+ throw new Error("Plasmic loader scheme is not supported for TanStack platform. Please use the codegen scheme instead.");
33
+ }
34
+ else {
35
+ return yield (0, codegen_1.installCodegenDeps)({ projectPath });
36
+ }
37
+ }),
38
+ overwriteConfig: (args) => __awaiter(void 0, void 0, void 0, function* () {
39
+ const { projectPath, jsOrTs } = args;
40
+ /* We need to provide @plasmicapp/* packages in noExternal ssr packages for
41
+ * them to work properly during ssr phase.
42
+ */
43
+ if (jsOrTs === "ts") {
44
+ yield fs_1.promises.writeFile(path_1.default.join(projectPath, "app.config.ts"), (0, config_1.makeCustomAppConfig_file_router_codegen)());
45
+ }
46
+ }),
47
+ generateFiles: (args) => {
48
+ return generateFilesFileRouterTemplate(args);
49
+ },
50
+ build: (args) => __awaiter(void 0, void 0, void 0, function* () {
51
+ const { npmRunCmd, projectPath } = args;
52
+ yield (0, cmd_utils_1.spawnOrFail)(`${npmRunCmd} build`, projectPath);
53
+ }),
54
+ };
55
+ function generateFilesFileRouterTemplate(args) {
56
+ return __awaiter(this, void 0, void 0, function* () {
57
+ const { projectPath, scheme, jsOrTs, projectId, projectApiToken } = args;
58
+ // Delete existing pages
59
+ (0, file_utils_1.deleteGlob)(path_1.default.join(projectPath, "src/routes", "*.*"));
60
+ if (scheme === "loader") {
61
+ throw new Error("Plasmic loader scheme is not supported for TanStack platform. Please use the codegen scheme instead.");
62
+ }
63
+ else {
64
+ // ./src/routes/__root.tsx
65
+ yield fs_1.promises.writeFile(path_1.default.join(projectPath, "src/routes", `__root.${jsOrTs}x`), (0, root_1.makeCustomRoot_file_router_codegen)(jsOrTs));
66
+ // ./src/routes/plasmic-host.tsx
67
+ yield fs_1.promises.writeFile(path_1.default.join(projectPath, "src/routes", `plasmic-host.${jsOrTs}x`), (0, plasmic_host_1.makePlasmicHostPage_fileRouter_codegen)());
68
+ // This should generate
69
+ // ./plasmic.json
70
+ // ./routes/index.tsx
71
+ // ./components/plasmic/**
72
+ yield (0, codegen_1.runCodegenSync)({
73
+ projectId,
74
+ projectApiToken,
75
+ projectPath,
76
+ });
77
+ }
78
+ });
79
+ }
@@ -0,0 +1 @@
1
+ export declare function makeCustomAppConfig_file_router_codegen(): string;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeCustomAppConfig_file_router_codegen = void 0;
4
+ function makeCustomAppConfig_file_router_codegen() {
5
+ return `import { defineConfig } from "@tanstack/react-start/config";
6
+ import viteTsConfigPaths from "vite-tsconfig-paths";
7
+ import tailwindcss from "@tailwindcss/vite";
8
+
9
+ export default defineConfig({
10
+ tsr: {
11
+ appDirectory: "src",
12
+ },
13
+ vite: {
14
+ plugins: [
15
+ // this is the plugin that enables path aliases
16
+ viteTsConfigPaths({
17
+ projects: ["./tsconfig.json"],
18
+ }),
19
+ tailwindcss(),
20
+ ],
21
+ ssr: {
22
+ noExternal: [
23
+ "@plasmicapp/data-sources",
24
+ "@plasmicapp/data-sources-context",
25
+ "@plasmicapp/prepass",
26
+ "@plasmicapp/query",
27
+ "@plasmicapp/react-web",
28
+ ],
29
+ },
30
+ },
31
+ })`;
32
+ }
33
+ exports.makeCustomAppConfig_file_router_codegen = makeCustomAppConfig_file_router_codegen;
@@ -0,0 +1 @@
1
+ export declare function makePlasmicHostPage_fileRouter_codegen(): string;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makePlasmicHostPage_fileRouter_codegen = void 0;
4
+ function makePlasmicHostPage_fileRouter_codegen() {
5
+ return `import { createFileRoute } from '@tanstack/react-router'
6
+ import { PlasmicCanvasHost, registerComponent } from '@plasmicapp/react-web/lib/host';
7
+
8
+ export const Route = createFileRoute('/plasmic-host')({
9
+ component: PlasmicHostRouteComponent,
10
+ })
11
+
12
+
13
+ // You can register any code components that you want to use here; see
14
+ // https://docs.plasmic.app/learn/code-components-ref/
15
+ // And configure your Plasmic project to use the host url pointing at
16
+ // the /plasmic-host page of your nextjs app (for example,
17
+ // http://localhost:3000/plasmic-host). See
18
+ // https://docs.plasmic.app/learn/app-hosting/#set-a-plasmic-project-to-use-your-app-host
19
+
20
+ // registerComponent(...)
21
+
22
+ function PlasmicHostRouteComponent() {
23
+ return <PlasmicCanvasHost />
24
+ }
25
+ `;
26
+ }
27
+ exports.makePlasmicHostPage_fileRouter_codegen = makePlasmicHostPage_fileRouter_codegen;
@@ -0,0 +1,2 @@
1
+ import { JsOrTs } from "../../../utils/types";
2
+ export declare function makeCustomRoot_file_router_codegen(_jsOrTs: JsOrTs): string;
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeCustomRoot_file_router_codegen = void 0;
4
+ function makeCustomRoot_file_router_codegen(_jsOrTs) {
5
+ return `import { createRootRoute, HeadContent, Outlet, Scripts, Link } from '@tanstack/react-router'
6
+ import { TanStackRouterDevtools } from '@tanstack/react-router-devtools'
7
+ import { PlasmicRootProvider } from "@plasmicapp/react-web"
8
+ import appCss from "../styles.css?url";
9
+
10
+ export const Route = createRootRoute({
11
+ head: () => ({
12
+ links: [
13
+ {
14
+ rel: 'stylesheet',
15
+ href: appCss,
16
+ },
17
+ ],
18
+ }),
19
+ component: () => (
20
+ <RootDocument>
21
+ <PlasmicRootProvider Link={Link}>
22
+ <Outlet />
23
+ <TanStackRouterDevtools />
24
+ </PlasmicRootProvider>
25
+ </RootDocument>
26
+ ),
27
+ })
28
+
29
+ function RootDocument({ children }: { children: React.ReactNode }) {
30
+ return (
31
+ <html lang="en">
32
+ <head>
33
+ <HeadContent />
34
+ </head>
35
+ <body>
36
+ {children}
37
+ <Scripts />
38
+ </body>
39
+ </html>
40
+ )
41
+ }
42
+ `;
43
+ }
44
+ exports.makeCustomRoot_file_router_codegen = makeCustomRoot_file_router_codegen;
@@ -1,5 +1,5 @@
1
1
  export type JsOrTs = "js" | "ts";
2
- export type PlatformType = "nextjs" | "gatsby" | "react";
2
+ export type PlatformType = "nextjs" | "gatsby" | "react" | "tanstack";
3
3
  export type PlatformOptions = {
4
4
  nextjs?: {
5
5
  appDir: boolean;
@@ -2,6 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.platformTypeToString = void 0;
4
4
  function platformTypeToString(s) {
5
- return s === "nextjs" ? "Next.js" : s === "gatsby" ? "Gatsby" : "React";
5
+ return s === "nextjs"
6
+ ? "Next.js"
7
+ : s === "gatsby"
8
+ ? "Gatsby"
9
+ : s === "tanstack"
10
+ ? "TanStack"
11
+ : "React";
6
12
  }
7
13
  exports.platformTypeToString = platformTypeToString;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-plasmic-app",
3
- "version": "0.0.99",
3
+ "version": "0.0.101",
4
4
  "description": "Create Plasmic-powered React apps",
5
5
  "main": "./dist/lib.js",
6
6
  "types": "./dist/lib.d.ts",
@@ -46,5 +46,5 @@
46
46
  "validate-npm-package-name": "^3.0.0",
47
47
  "yargs": "^16.2.0"
48
48
  },
49
- "gitHead": "951909f9952ffe42fefb6e15a1797cdc1aee1197"
49
+ "gitHead": "7199e5b0c2c94b6e95c81c8120d9861faf98d7ee"
50
50
  }
package/run-cpa.ts CHANGED
@@ -30,11 +30,19 @@ async function run() {
30
30
  scheme,
31
31
  typescript,
32
32
  });
33
- allArgSets.push({
34
- platform: "react",
35
- scheme,
36
- typescript,
37
- });
33
+ if (scheme === "codegen") {
34
+ allArgSets.push({
35
+ platform: "tanstack",
36
+ scheme,
37
+ typescript,
38
+ });
39
+
40
+ allArgSets.push({
41
+ platform: "react",
42
+ scheme,
43
+ typescript,
44
+ });
45
+ }
38
46
  });
39
47
 
40
48
  allArgSets.push({
@@ -69,7 +77,7 @@ Valid arg sets:\n\tall\n\t${allArgSetNames.join("\n\t")}`,
69
77
  message: "Select arg sets:",
70
78
  choices: allArgSetNames,
71
79
  pageSize: allArgSetNames.length,
72
- validate: (input) => {
80
+ validate: (input: string[]) => {
73
81
  if (input.length === 0) {
74
82
  return "Please select at least 1 arg set.";
75
83
  }
package/src/index.ts CHANGED
@@ -33,7 +33,7 @@ const argv = yargs
33
33
  )
34
34
  .option("platform", {
35
35
  describe: "Target platform",
36
- choices: ["", "nextjs", "gatsby", "react"],
36
+ choices: ["", "nextjs", "gatsby", "react", "tanstack"],
37
37
  })
38
38
  .option("scheme", {
39
39
  describe: "Plasmic integration scheme",
@@ -173,6 +173,11 @@ async function run(): Promise<void> {
173
173
  name: "Gatsby",
174
174
  value: "gatsby",
175
175
  },
176
+ {
177
+ name: "TanStack Start",
178
+ short: "TanStack Start",
179
+ value: "tanstack",
180
+ },
176
181
  {
177
182
  name: "React (Vite)",
178
183
  short: "React (Vite)",
package/src/lib.ts CHANGED
@@ -20,6 +20,8 @@ async function getCPAStrategy(platform: PlatformType): Promise<CPAStrategy> {
20
20
  return (await import("./gatsby/gatsby")).gatsbyStrategy;
21
21
  case "react":
22
22
  return (await import("./react/react")).reactStrategy;
23
+ case "tanstack":
24
+ return (await import("./tanstack/tanstack")).tanstackStrategy;
23
25
  }
24
26
  }
25
27
 
@@ -72,7 +74,7 @@ export async function create(args: CreatePlasmicAppArgs): Promise<void> {
72
74
 
73
75
  // Calling `npx create-XXX` means we don't have to keep these dependencies up to date
74
76
  banner("CREATING THE PROJECT");
75
- if (!["nextjs", "gatsby", "react"].includes(platform)) {
77
+ if (!["nextjs", "gatsby", "react", "tanstack"].includes(platform)) {
76
78
  throw new Error(`Unrecognized platform: ${platform}`);
77
79
  }
78
80