create-plasmic-app 0.0.132 → 0.0.134

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 (55) hide show
  1. package/cpa-out/nextjs-app-codegen-js/app/dynamic/[slug]/page-client.jsx +7 -0
  2. package/cpa-out/nextjs-app-codegen-js/app/dynamic/[slug]/page.jsx +45 -0
  3. package/cpa-out/nextjs-app-codegen-js/app/layout.js +28 -0
  4. package/cpa-out/nextjs-app-codegen-js/app/layout.jsx +17 -0
  5. package/cpa-out/nextjs-app-codegen-js/app/page-client.jsx +7 -0
  6. package/cpa-out/nextjs-app-codegen-js/app/page.jsx +45 -0
  7. package/cpa-out/nextjs-app-codegen-js/app/plasmic-host/page.jsx +15 -0
  8. package/cpa-out/nextjs-app-codegen-js/components/Button.jsx +11 -0
  9. package/cpa-out/nextjs-app-codegen-js/components/RandomDynamicPageButton.jsx +24 -0
  10. package/cpa-out/nextjs-app-codegen-js/components/plasmic/create_plasmic_app/PlasmicButton.jsx +595 -0
  11. package/cpa-out/nextjs-app-codegen-js/components/plasmic/create_plasmic_app/PlasmicDynamicPage.jsx +216 -0
  12. package/cpa-out/nextjs-app-codegen-js/components/plasmic/create_plasmic_app/PlasmicDynamicPageServer.jsx +56 -0
  13. package/cpa-out/nextjs-app-codegen-js/components/plasmic/create_plasmic_app/PlasmicGlobalVariant__Screen.jsx +26 -0
  14. package/cpa-out/nextjs-app-codegen-js/components/plasmic/create_plasmic_app/PlasmicHomepage.jsx +251 -0
  15. package/cpa-out/nextjs-app-codegen-js/components/plasmic/create_plasmic_app/PlasmicHomepageServer.jsx +56 -0
  16. package/cpa-out/nextjs-app-codegen-js/components/plasmic/create_plasmic_app/PlasmicRandomDynamicPageButton.jsx +159 -0
  17. package/cpa-out/nextjs-app-codegen-js/components/plasmic/create_plasmic_app/PlasmicStyleTokensProvider.jsx +15 -0
  18. package/cpa-out/nextjs-app-codegen-js/components/plasmic/create_plasmic_app/icons/PlasmicIcon__CheckSvg.jsx +39 -0
  19. package/cpa-out/nextjs-app-codegen-js/components/plasmic/create_plasmic_app/icons/PlasmicIcon__Icon.jsx +37 -0
  20. package/cpa-out/nextjs-app-codegen-js/components/plasmic/create_plasmic_app/plasmic.jsx +11 -0
  21. package/cpa-out/nextjs-app-codegen-js/package.json +22 -0
  22. package/cpa-out/nextjs-app-codegen-js/plasmic.json +148 -0
  23. package/cpa-out/nextjs-app-codegen-ts/app/dynamic/[slug]/page-client.tsx +11 -0
  24. package/cpa-out/nextjs-app-codegen-ts/app/dynamic/[slug]/page.tsx +57 -0
  25. package/cpa-out/nextjs-app-codegen-ts/app/layout.tsx +19 -0
  26. package/cpa-out/nextjs-app-codegen-ts/app/page-client.tsx +11 -0
  27. package/cpa-out/nextjs-app-codegen-ts/app/page.tsx +54 -0
  28. package/cpa-out/nextjs-app-codegen-ts/app/plasmic-host/page.tsx +15 -0
  29. package/cpa-out/nextjs-app-codegen-ts/components/Button.tsx +35 -0
  30. package/cpa-out/nextjs-app-codegen-ts/components/RandomDynamicPageButton.tsx +44 -0
  31. package/cpa-out/nextjs-app-codegen-ts/components/plasmic/create_plasmic_app/PlasmicButton.tsx +776 -0
  32. package/cpa-out/nextjs-app-codegen-ts/components/plasmic/create_plasmic_app/PlasmicDynamicPage.tsx +329 -0
  33. package/cpa-out/nextjs-app-codegen-ts/components/plasmic/create_plasmic_app/PlasmicDynamicPageServer.tsx +77 -0
  34. package/cpa-out/nextjs-app-codegen-ts/components/plasmic/create_plasmic_app/PlasmicGlobalVariant__Screen.tsx +30 -0
  35. package/cpa-out/nextjs-app-codegen-ts/components/plasmic/create_plasmic_app/PlasmicHomepage.tsx +366 -0
  36. package/cpa-out/nextjs-app-codegen-ts/components/plasmic/create_plasmic_app/PlasmicHomepageServer.tsx +75 -0
  37. package/cpa-out/nextjs-app-codegen-ts/components/plasmic/create_plasmic_app/PlasmicRandomDynamicPageButton.tsx +274 -0
  38. package/cpa-out/nextjs-app-codegen-ts/components/plasmic/create_plasmic_app/PlasmicStyleTokensProvider.tsx +19 -0
  39. package/cpa-out/nextjs-app-codegen-ts/components/plasmic/create_plasmic_app/icons/PlasmicIcon__CheckSvg.tsx +44 -0
  40. package/cpa-out/nextjs-app-codegen-ts/components/plasmic/create_plasmic_app/icons/PlasmicIcon__Icon.tsx +41 -0
  41. package/cpa-out/nextjs-app-codegen-ts/components/plasmic/create_plasmic_app/plasmic.tsx +14 -0
  42. package/cpa-out/nextjs-app-codegen-ts/package.json +26 -0
  43. package/cpa-out/nextjs-app-codegen-ts/plasmic.json +148 -0
  44. package/cpa-out/nextjs-app-codegen-ts/tsconfig.json +26 -0
  45. package/dist/index.js +31 -28
  46. package/dist/nextjs/nextjs.js +37 -11
  47. package/dist/nextjs/templates/app-codegen/layout.d.ts +2 -0
  48. package/dist/nextjs/templates/app-codegen/layout.js +27 -0
  49. package/dist/utils/file-utils.js +6 -1
  50. package/package.json +2 -2
  51. package/run-cpa.ts +8 -9
  52. package/src/index.ts +31 -34
  53. package/src/nextjs/nextjs.ts +67 -28
  54. package/src/nextjs/templates/app-codegen/layout.ts +28 -0
  55. package/src/utils/file-utils.ts +8 -1
@@ -0,0 +1,776 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ // @ts-nocheck
4
+ /* prettier-ignore-start */
5
+
6
+ /** @jsxRuntime classic */
7
+ /** @jsx createPlasmicElementProxy */
8
+ /** @jsxFrag React.Fragment */
9
+
10
+ // This class is auto-generated by Plasmic; please do not edit!
11
+ // Plasmic Project: 47tFXWjN2C4NyHFGGpaYQ3
12
+ // Component: TQcvW_pSKi3
13
+
14
+ "use client";
15
+
16
+ import * as React from "react";
17
+
18
+ import Head from "next/head";
19
+ import Link, { LinkProps } from "next/link";
20
+ import { useRouter } from "next/navigation";
21
+
22
+ import {
23
+ Flex as Flex__,
24
+ MultiChoiceArg,
25
+ PlasmicDataSourceContextProvider as PlasmicDataSourceContextProvider__,
26
+ PlasmicIcon as PlasmicIcon__,
27
+ PlasmicImg as PlasmicImg__,
28
+ PlasmicLink as PlasmicLink__,
29
+ PlasmicPageGuard as PlasmicPageGuard__,
30
+ SingleBooleanChoiceArg,
31
+ SingleChoiceArg,
32
+ Stack as Stack__,
33
+ StrictProps,
34
+ Trans as Trans__,
35
+ classNames,
36
+ createPlasmicElementProxy,
37
+ deriveRenderOpts,
38
+ ensureGlobalVariants,
39
+ generateOnMutateForSpec,
40
+ generateStateOnChangeProp,
41
+ generateStateOnChangePropForCodeComponents,
42
+ generateStateValueProp,
43
+ get as $stateGet,
44
+ hasVariant,
45
+ initializeCodeComponentStates,
46
+ initializePlasmicStates,
47
+ makeFragment,
48
+ omit,
49
+ pick,
50
+ renderPlasmicSlot,
51
+ set as $stateSet,
52
+ useCurrentUser,
53
+ useDollarState,
54
+ usePlasmicTranslator,
55
+ useTrigger,
56
+ wrapWithClassName
57
+ } from "@plasmicapp/react-web";
58
+ import {
59
+ DataCtxReader as DataCtxReader__,
60
+ useDataEnv,
61
+ useGlobalActions
62
+ } from "@plasmicapp/host";
63
+
64
+ import * as pp from "@plasmicapp/react-web";
65
+
66
+ import { _useGlobalVariants } from "./plasmic"; // plasmic-import: 47tFXWjN2C4NyHFGGpaYQ3/projectModule
67
+ import { _useStyleTokens } from "./PlasmicStyleTokensProvider"; // plasmic-import: 47tFXWjN2C4NyHFGGpaYQ3/styleTokensProvider
68
+
69
+ import "@plasmicapp/react-web/lib/plasmic.css";
70
+
71
+ import projectcss from "./plasmic.module.css"; // plasmic-import: 47tFXWjN2C4NyHFGGpaYQ3/projectcss
72
+ import sty from "./PlasmicButton.module.css"; // plasmic-import: TQcvW_pSKi3/css
73
+
74
+ import CheckSvgIcon from "./icons/PlasmicIcon__CheckSvg"; // plasmic-import: gj-_D7n31Ho/icon
75
+ import IconIcon from "./icons/PlasmicIcon__Icon"; // plasmic-import: 6PNxx3YMyDQ/icon
76
+
77
+ createPlasmicElementProxy;
78
+
79
+ export type PlasmicButton__VariantMembers = {
80
+ showStartIcon: "showStartIcon";
81
+ showEndIcon: "showEndIcon";
82
+ isDisabled: "isDisabled";
83
+ shape: "rounded" | "round" | "sharp";
84
+ size: "compact" | "minimal";
85
+ color:
86
+ | "blue"
87
+ | "green"
88
+ | "yellow"
89
+ | "red"
90
+ | "sand"
91
+ | "white"
92
+ | "softBlue"
93
+ | "softGreen"
94
+ | "softYellow"
95
+ | "softRed"
96
+ | "softSand"
97
+ | "clear"
98
+ | "link";
99
+ };
100
+ export type PlasmicButton__VariantsArgs = {
101
+ showStartIcon?: SingleBooleanChoiceArg<"showStartIcon">;
102
+ showEndIcon?: SingleBooleanChoiceArg<"showEndIcon">;
103
+ isDisabled?: SingleBooleanChoiceArg<"isDisabled">;
104
+ shape?: SingleChoiceArg<"rounded" | "round" | "sharp">;
105
+ size?: SingleChoiceArg<"compact" | "minimal">;
106
+ color?: SingleChoiceArg<
107
+ | "blue"
108
+ | "green"
109
+ | "yellow"
110
+ | "red"
111
+ | "sand"
112
+ | "white"
113
+ | "softBlue"
114
+ | "softGreen"
115
+ | "softYellow"
116
+ | "softRed"
117
+ | "softSand"
118
+ | "clear"
119
+ | "link"
120
+ >;
121
+ };
122
+ type VariantPropType = keyof PlasmicButton__VariantsArgs;
123
+ export const PlasmicButton__VariantProps = new Array<VariantPropType>(
124
+ "showStartIcon",
125
+ "showEndIcon",
126
+ "isDisabled",
127
+ "shape",
128
+ "size",
129
+ "color"
130
+ );
131
+
132
+ export type PlasmicButton__ArgsType = {
133
+ link?: string;
134
+ submitsForm?: boolean;
135
+ target?: boolean;
136
+ startIcon?: React.ReactNode;
137
+ children?: React.ReactNode;
138
+ endIcon?: React.ReactNode;
139
+ };
140
+ type ArgPropType = keyof PlasmicButton__ArgsType;
141
+ export const PlasmicButton__ArgProps = new Array<ArgPropType>(
142
+ "link",
143
+ "submitsForm",
144
+ "target",
145
+ "startIcon",
146
+ "children",
147
+ "endIcon"
148
+ );
149
+
150
+ export type PlasmicButton__OverridesType = {
151
+ root?: Flex__<"button">;
152
+ startIconContainer?: Flex__<"div">;
153
+ contentContainer?: Flex__<"div">;
154
+ endIconContainer?: Flex__<"div">;
155
+ };
156
+
157
+ export interface DefaultButtonProps extends pp.BaseButtonProps {
158
+ submitsForm?: boolean;
159
+ target?: boolean;
160
+ shape?: SingleChoiceArg<"rounded" | "round" | "sharp">;
161
+ size?: SingleChoiceArg<"compact" | "minimal">;
162
+ color?: SingleChoiceArg<
163
+ | "blue"
164
+ | "green"
165
+ | "yellow"
166
+ | "red"
167
+ | "sand"
168
+ | "white"
169
+ | "softBlue"
170
+ | "softGreen"
171
+ | "softYellow"
172
+ | "softRed"
173
+ | "softSand"
174
+ | "clear"
175
+ | "link"
176
+ >;
177
+ }
178
+
179
+ const $$ = {};
180
+
181
+ function useNextRouter() {
182
+ try {
183
+ return useRouter();
184
+ } catch {}
185
+ return undefined;
186
+ }
187
+
188
+ function PlasmicButton__RenderFunc(props: {
189
+ variants: PlasmicButton__VariantsArgs;
190
+ args: PlasmicButton__ArgsType;
191
+ overrides: PlasmicButton__OverridesType;
192
+ forNode?: string;
193
+ }) {
194
+ const { variants, overrides, forNode } = props;
195
+
196
+ const args = React.useMemo(
197
+ () =>
198
+ Object.assign(
199
+ {},
200
+ Object.fromEntries(
201
+ Object.entries(props.args).filter(([_, v]) => v !== undefined)
202
+ )
203
+ ),
204
+ [props.args]
205
+ );
206
+
207
+ const $props = {
208
+ ...args,
209
+ ...variants
210
+ };
211
+
212
+ const __nextRouter = useNextRouter();
213
+
214
+ const $ctx = useDataEnv?.() || {};
215
+ const refsRef = React.useRef({});
216
+ const $refs = refsRef.current;
217
+
218
+ const stateSpecs: Parameters<typeof useDollarState>[0] = React.useMemo(
219
+ () => [
220
+ {
221
+ path: "showStartIcon",
222
+ type: "private",
223
+ variableType: "variant",
224
+ initFunc: ({ $props, $state, $queries, $q, $ctx }) =>
225
+ $props.showStartIcon
226
+ },
227
+ {
228
+ path: "showEndIcon",
229
+ type: "private",
230
+ variableType: "variant",
231
+ initFunc: ({ $props, $state, $queries, $q, $ctx }) => $props.showEndIcon
232
+ },
233
+ {
234
+ path: "isDisabled",
235
+ type: "private",
236
+ variableType: "variant",
237
+ initFunc: ({ $props, $state, $queries, $q, $ctx }) => $props.isDisabled
238
+ },
239
+ {
240
+ path: "shape",
241
+ type: "private",
242
+ variableType: "variant",
243
+ initFunc: ({ $props, $state, $queries, $q, $ctx }) => $props.shape
244
+ },
245
+ {
246
+ path: "size",
247
+ type: "private",
248
+ variableType: "variant",
249
+ initFunc: ({ $props, $state, $queries, $q, $ctx }) => $props.size
250
+ },
251
+ {
252
+ path: "color",
253
+ type: "private",
254
+ variableType: "variant",
255
+ initFunc: ({ $props, $state, $queries, $q, $ctx }) => $props.color
256
+ }
257
+ ],
258
+ [$props, $ctx, $refs]
259
+ );
260
+ const $state = useDollarState(stateSpecs, {
261
+ $props,
262
+ $ctx,
263
+ $queries: {},
264
+ $q: {},
265
+ $refs
266
+ });
267
+
268
+ const [isRootFocusVisibleWithin, triggerRootFocusVisibleWithinProps] =
269
+ useTrigger("useFocusVisibleWithin", {
270
+ isTextInput: false
271
+ });
272
+ const triggers = {
273
+ focusVisibleWithin_root: isRootFocusVisibleWithin
274
+ };
275
+
276
+ const styleTokensClassNames = _useStyleTokens();
277
+
278
+ return (
279
+ <button
280
+ data-plasmic-name={"root"}
281
+ data-plasmic-override={overrides.root}
282
+ data-plasmic-root={true}
283
+ data-plasmic-for-node={forNode}
284
+ className={classNames(
285
+ projectcss.all,
286
+ projectcss.button,
287
+ projectcss.root_reset,
288
+ projectcss.plasmic_default_styles,
289
+ projectcss.plasmic_mixins,
290
+ styleTokensClassNames,
291
+ sty.root,
292
+ {
293
+ [sty.root___focusVisibleWithin]: triggers.focusVisibleWithin_root,
294
+ [sty.rootcolor_blue]: hasVariant($state, "color", "blue"),
295
+ [sty.rootcolor_clear]: hasVariant($state, "color", "clear"),
296
+ [sty.rootcolor_green]: hasVariant($state, "color", "green"),
297
+ [sty.rootcolor_link]: hasVariant($state, "color", "link"),
298
+ [sty.rootcolor_link_size_minimal]:
299
+ hasVariant($state, "color", "link") &&
300
+ hasVariant($state, "size", "minimal"),
301
+ [sty.rootcolor_red]: hasVariant($state, "color", "red"),
302
+ [sty.rootcolor_sand]: hasVariant($state, "color", "sand"),
303
+ [sty.rootcolor_softBlue]: hasVariant($state, "color", "softBlue"),
304
+ [sty.rootcolor_softGreen]: hasVariant($state, "color", "softGreen"),
305
+ [sty.rootcolor_softRed]: hasVariant($state, "color", "softRed"),
306
+ [sty.rootcolor_softSand]: hasVariant($state, "color", "softSand"),
307
+ [sty.rootcolor_softYellow]: hasVariant($state, "color", "softYellow"),
308
+ [sty.rootcolor_white]: hasVariant($state, "color", "white"),
309
+ [sty.rootcolor_yellow]: hasVariant($state, "color", "yellow"),
310
+ [sty.rootisDisabled]: hasVariant($state, "isDisabled", "isDisabled"),
311
+ [sty.rootshape_round]: hasVariant($state, "shape", "round"),
312
+ [sty.rootshape_round_size_compact]:
313
+ hasVariant($state, "shape", "round") &&
314
+ hasVariant($state, "size", "compact"),
315
+ [sty.rootshape_rounded]: hasVariant($state, "shape", "rounded"),
316
+ [sty.rootshape_rounded_showStartIcon]:
317
+ hasVariant($state, "shape", "rounded") &&
318
+ hasVariant($state, "showStartIcon", "showStartIcon"),
319
+ [sty.rootshape_rounded_size_compact]:
320
+ hasVariant($state, "size", "compact") &&
321
+ hasVariant($state, "shape", "rounded"),
322
+ [sty.rootshape_sharp]: hasVariant($state, "shape", "sharp"),
323
+ [sty.rootshowEndIcon]: hasVariant(
324
+ $state,
325
+ "showEndIcon",
326
+ "showEndIcon"
327
+ ),
328
+ [sty.rootshowEndIcon_shape_rounded]:
329
+ hasVariant($state, "showEndIcon", "showEndIcon") &&
330
+ hasVariant($state, "shape", "rounded"),
331
+ [sty.rootshowEndIcon_size_compact]:
332
+ hasVariant($state, "size", "compact") &&
333
+ hasVariant($state, "showEndIcon", "showEndIcon"),
334
+ [sty.rootshowEndIcon_size_compact_showStartIcon]:
335
+ hasVariant($state, "size", "compact") &&
336
+ hasVariant($state, "showStartIcon", "showStartIcon") &&
337
+ hasVariant($state, "showEndIcon", "showEndIcon"),
338
+ [sty.rootshowStartIcon]: hasVariant(
339
+ $state,
340
+ "showStartIcon",
341
+ "showStartIcon"
342
+ ),
343
+ [sty.rootsize_compact]: hasVariant($state, "size", "compact"),
344
+ [sty.rootsize_compact_showStartIcon]:
345
+ hasVariant($state, "size", "compact") &&
346
+ hasVariant($state, "showStartIcon", "showStartIcon"),
347
+ [sty.rootsize_minimal]: hasVariant($state, "size", "minimal")
348
+ }
349
+ )}
350
+ data-plasmic-trigger-props={[triggerRootFocusVisibleWithinProps]}
351
+ >
352
+ {(hasVariant($state, "showStartIcon", "showStartIcon") ? true : false) ? (
353
+ <div
354
+ data-plasmic-name={"startIconContainer"}
355
+ data-plasmic-override={overrides.startIconContainer}
356
+ className={classNames(projectcss.all, sty.startIconContainer, {
357
+ [sty.startIconContainercolor_blue]: hasVariant(
358
+ $state,
359
+ "color",
360
+ "blue"
361
+ ),
362
+ [sty.startIconContainershape_rounded_showStartIcon]:
363
+ hasVariant($state, "shape", "rounded") &&
364
+ hasVariant($state, "showStartIcon", "showStartIcon"),
365
+ [sty.startIconContainershowStartIcon]: hasVariant(
366
+ $state,
367
+ "showStartIcon",
368
+ "showStartIcon"
369
+ )
370
+ })}
371
+ >
372
+ {renderPlasmicSlot({
373
+ defaultContents: (
374
+ <CheckSvgIcon
375
+ className={classNames(projectcss.all, sty.svg__s6Xxe)}
376
+ role={"img"}
377
+ />
378
+ ),
379
+
380
+ value: args.startIcon,
381
+ className: classNames(sty.slotTargetStartIcon, {
382
+ [sty.slotTargetStartIconcolor_blue]: hasVariant(
383
+ $state,
384
+ "color",
385
+ "blue"
386
+ ),
387
+ [sty.slotTargetStartIconcolor_clear]: hasVariant(
388
+ $state,
389
+ "color",
390
+ "clear"
391
+ ),
392
+ [sty.slotTargetStartIconcolor_link]: hasVariant(
393
+ $state,
394
+ "color",
395
+ "link"
396
+ ),
397
+ [sty.slotTargetStartIconcolor_softBlue]: hasVariant(
398
+ $state,
399
+ "color",
400
+ "softBlue"
401
+ ),
402
+ [sty.slotTargetStartIconcolor_softGreen]: hasVariant(
403
+ $state,
404
+ "color",
405
+ "softGreen"
406
+ ),
407
+ [sty.slotTargetStartIconcolor_softRed]: hasVariant(
408
+ $state,
409
+ "color",
410
+ "softRed"
411
+ ),
412
+ [sty.slotTargetStartIconcolor_softSand]: hasVariant(
413
+ $state,
414
+ "color",
415
+ "softSand"
416
+ ),
417
+ [sty.slotTargetStartIconcolor_softYellow]: hasVariant(
418
+ $state,
419
+ "color",
420
+ "softYellow"
421
+ ),
422
+ [sty.slotTargetStartIconcolor_white]: hasVariant(
423
+ $state,
424
+ "color",
425
+ "white"
426
+ ),
427
+ [sty.slotTargetStartIconcolor_yellow]: hasVariant(
428
+ $state,
429
+ "color",
430
+ "yellow"
431
+ ),
432
+ [sty.slotTargetStartIconshowStartIcon]: hasVariant(
433
+ $state,
434
+ "showStartIcon",
435
+ "showStartIcon"
436
+ )
437
+ })
438
+ })}
439
+ </div>
440
+ ) : null}
441
+ <div
442
+ data-plasmic-name={"contentContainer"}
443
+ data-plasmic-override={overrides.contentContainer}
444
+ className={classNames(projectcss.all, sty.contentContainer, {
445
+ [sty.contentContainer___focusVisibleWithin]:
446
+ triggers.focusVisibleWithin_root,
447
+ [sty.contentContainerisDisabled]: hasVariant(
448
+ $state,
449
+ "isDisabled",
450
+ "isDisabled"
451
+ ),
452
+ [sty.contentContainershape_rounded]: hasVariant(
453
+ $state,
454
+ "shape",
455
+ "rounded"
456
+ ),
457
+ [sty.contentContainershowEndIcon]: hasVariant(
458
+ $state,
459
+ "showEndIcon",
460
+ "showEndIcon"
461
+ )
462
+ })}
463
+ >
464
+ {renderPlasmicSlot({
465
+ defaultContents: "Button",
466
+ value: args.children,
467
+ className: classNames(sty.slotTargetChildren, {
468
+ [sty.slotTargetChildren___focusVisibleWithin]:
469
+ triggers.focusVisibleWithin_root,
470
+ [sty.slotTargetChildrencolor_blue]: hasVariant(
471
+ $state,
472
+ "color",
473
+ "blue"
474
+ ),
475
+ [sty.slotTargetChildrencolor_clear]: hasVariant(
476
+ $state,
477
+ "color",
478
+ "clear"
479
+ ),
480
+ [sty.slotTargetChildrencolor_green]: hasVariant(
481
+ $state,
482
+ "color",
483
+ "green"
484
+ ),
485
+ [sty.slotTargetChildrencolor_link]: hasVariant(
486
+ $state,
487
+ "color",
488
+ "link"
489
+ ),
490
+ [sty.slotTargetChildrencolor_link_size_minimal]:
491
+ hasVariant($state, "color", "link") &&
492
+ hasVariant($state, "size", "minimal"),
493
+ [sty.slotTargetChildrencolor_red]: hasVariant(
494
+ $state,
495
+ "color",
496
+ "red"
497
+ ),
498
+ [sty.slotTargetChildrencolor_sand]: hasVariant(
499
+ $state,
500
+ "color",
501
+ "sand"
502
+ ),
503
+ [sty.slotTargetChildrencolor_softBlue]: hasVariant(
504
+ $state,
505
+ "color",
506
+ "softBlue"
507
+ ),
508
+ [sty.slotTargetChildrencolor_softGreen]: hasVariant(
509
+ $state,
510
+ "color",
511
+ "softGreen"
512
+ ),
513
+ [sty.slotTargetChildrencolor_softRed]: hasVariant(
514
+ $state,
515
+ "color",
516
+ "softRed"
517
+ ),
518
+ [sty.slotTargetChildrencolor_softSand]: hasVariant(
519
+ $state,
520
+ "color",
521
+ "softSand"
522
+ ),
523
+ [sty.slotTargetChildrencolor_softYellow]: hasVariant(
524
+ $state,
525
+ "color",
526
+ "softYellow"
527
+ ),
528
+ [sty.slotTargetChildrencolor_white]: hasVariant(
529
+ $state,
530
+ "color",
531
+ "white"
532
+ ),
533
+ [sty.slotTargetChildrencolor_yellow]: hasVariant(
534
+ $state,
535
+ "color",
536
+ "yellow"
537
+ ),
538
+ [sty.slotTargetChildrenisDisabled]: hasVariant(
539
+ $state,
540
+ "isDisabled",
541
+ "isDisabled"
542
+ ),
543
+ [sty.slotTargetChildrenshape_rounded]: hasVariant(
544
+ $state,
545
+ "shape",
546
+ "rounded"
547
+ ),
548
+ [sty.slotTargetChildrenshowEndIcon]: hasVariant(
549
+ $state,
550
+ "showEndIcon",
551
+ "showEndIcon"
552
+ ),
553
+ [sty.slotTargetChildrenshowStartIcon]: hasVariant(
554
+ $state,
555
+ "showStartIcon",
556
+ "showStartIcon"
557
+ ),
558
+ [sty.slotTargetChildrensize_minimal]: hasVariant(
559
+ $state,
560
+ "size",
561
+ "minimal"
562
+ )
563
+ })
564
+ })}
565
+ </div>
566
+ {(hasVariant($state, "showEndIcon", "showEndIcon") ? true : false) ? (
567
+ <div
568
+ data-plasmic-name={"endIconContainer"}
569
+ data-plasmic-override={overrides.endIconContainer}
570
+ className={classNames(projectcss.all, sty.endIconContainer, {
571
+ [sty.endIconContainercolor_white]: hasVariant(
572
+ $state,
573
+ "color",
574
+ "white"
575
+ ),
576
+ [sty.endIconContainercolor_yellow]: hasVariant(
577
+ $state,
578
+ "color",
579
+ "yellow"
580
+ ),
581
+ [sty.endIconContainershowEndIcon]: hasVariant(
582
+ $state,
583
+ "showEndIcon",
584
+ "showEndIcon"
585
+ )
586
+ })}
587
+ >
588
+ {renderPlasmicSlot({
589
+ defaultContents: (
590
+ <IconIcon
591
+ className={classNames(projectcss.all, sty.svg__liJa)}
592
+ role={"img"}
593
+ />
594
+ ),
595
+
596
+ value: args.endIcon,
597
+ className: classNames(sty.slotTargetEndIcon, {
598
+ [sty.slotTargetEndIconcolor_clear]: hasVariant(
599
+ $state,
600
+ "color",
601
+ "clear"
602
+ ),
603
+ [sty.slotTargetEndIconcolor_link]: hasVariant(
604
+ $state,
605
+ "color",
606
+ "link"
607
+ ),
608
+ [sty.slotTargetEndIconcolor_softBlue]: hasVariant(
609
+ $state,
610
+ "color",
611
+ "softBlue"
612
+ ),
613
+ [sty.slotTargetEndIconcolor_softGreen]: hasVariant(
614
+ $state,
615
+ "color",
616
+ "softGreen"
617
+ ),
618
+ [sty.slotTargetEndIconcolor_softRed]: hasVariant(
619
+ $state,
620
+ "color",
621
+ "softRed"
622
+ ),
623
+ [sty.slotTargetEndIconcolor_softSand]: hasVariant(
624
+ $state,
625
+ "color",
626
+ "softSand"
627
+ ),
628
+ [sty.slotTargetEndIconcolor_softYellow]: hasVariant(
629
+ $state,
630
+ "color",
631
+ "softYellow"
632
+ ),
633
+ [sty.slotTargetEndIconcolor_white]: hasVariant(
634
+ $state,
635
+ "color",
636
+ "white"
637
+ ),
638
+ [sty.slotTargetEndIconcolor_yellow]: hasVariant(
639
+ $state,
640
+ "color",
641
+ "yellow"
642
+ ),
643
+ [sty.slotTargetEndIconshowEndIcon]: hasVariant(
644
+ $state,
645
+ "showEndIcon",
646
+ "showEndIcon"
647
+ )
648
+ })
649
+ })}
650
+ </div>
651
+ ) : null}
652
+ </button>
653
+ ) as React.ReactElement | null;
654
+ }
655
+
656
+ function useBehavior<P extends pp.PlumeButtonProps>(
657
+ props: P,
658
+ ref: pp.ButtonRef
659
+ ) {
660
+ const b = pp.useButton<P, typeof PlasmicButton>(
661
+ PlasmicButton,
662
+ props,
663
+ {
664
+ showStartIconVariant: {
665
+ group: "showStartIcon",
666
+ variant: "showStartIcon"
667
+ },
668
+ showEndIconVariant: { group: "showEndIcon", variant: "showEndIcon" },
669
+ isDisabledVariant: { group: "isDisabled", variant: "isDisabled" },
670
+ contentSlot: "children",
671
+ startIconSlot: "startIcon",
672
+ endIconSlot: "endIcon",
673
+ root: "root"
674
+ },
675
+ ref
676
+ );
677
+ if (b.plasmicProps.overrides.root.as === "a") {
678
+ b.plasmicProps.overrides.root.as = PlasmicLink__;
679
+ b.plasmicProps.overrides.root.props.component = Link;
680
+ b.plasmicProps.overrides.root.props.platform = "nextjs";
681
+ }
682
+ return b;
683
+ }
684
+
685
+ const PlasmicDescendants = {
686
+ root: ["root", "startIconContainer", "contentContainer", "endIconContainer"],
687
+ startIconContainer: ["startIconContainer"],
688
+ contentContainer: ["contentContainer"],
689
+ endIconContainer: ["endIconContainer"]
690
+ } as const;
691
+ type NodeNameType = keyof typeof PlasmicDescendants;
692
+ type DescendantsType<T extends NodeNameType> =
693
+ (typeof PlasmicDescendants)[T][number];
694
+ type NodeDefaultElementType = {
695
+ root: "button";
696
+ startIconContainer: "div";
697
+ contentContainer: "div";
698
+ endIconContainer: "div";
699
+ };
700
+
701
+ type ReservedPropsType = "variants" | "args" | "overrides";
702
+ type NodeOverridesType<T extends NodeNameType> = Pick<
703
+ PlasmicButton__OverridesType,
704
+ DescendantsType<T>
705
+ >;
706
+ type NodeComponentProps<T extends NodeNameType> =
707
+ // Explicitly specify variants, args, and overrides as objects
708
+ {
709
+ variants?: PlasmicButton__VariantsArgs;
710
+ args?: PlasmicButton__ArgsType;
711
+ overrides?: NodeOverridesType<T>;
712
+ } &
713
+ // Specify variants directly as props
714
+ Omit<PlasmicButton__VariantsArgs, ReservedPropsType> &
715
+ // Specify args directly as props
716
+ Omit<PlasmicButton__ArgsType, ReservedPropsType> &
717
+ // Specify overrides for each element directly as props
718
+ Omit<
719
+ NodeOverridesType<T>,
720
+ ReservedPropsType | VariantPropType | ArgPropType
721
+ > &
722
+ // Specify props for the root element
723
+ Omit<
724
+ Partial<React.ComponentProps<NodeDefaultElementType[T]>>,
725
+ ReservedPropsType | VariantPropType | ArgPropType | DescendantsType<T>
726
+ >;
727
+
728
+ function makeNodeComponent<NodeName extends NodeNameType>(nodeName: NodeName) {
729
+ type PropsType = NodeComponentProps<NodeName> & { key?: React.Key };
730
+ const func = function <T extends PropsType>(
731
+ props: T & StrictProps<T, PropsType>
732
+ ) {
733
+ const { variants, args, overrides } = React.useMemo(
734
+ () =>
735
+ deriveRenderOpts(props, {
736
+ name: nodeName,
737
+ descendantNames: PlasmicDescendants[nodeName],
738
+ internalArgPropNames: PlasmicButton__ArgProps,
739
+ internalVariantPropNames: PlasmicButton__VariantProps
740
+ }),
741
+ [props, nodeName]
742
+ );
743
+ return PlasmicButton__RenderFunc({
744
+ variants,
745
+ args,
746
+ overrides,
747
+ forNode: nodeName
748
+ });
749
+ };
750
+ if (nodeName === "root") {
751
+ func.displayName = "PlasmicButton";
752
+ } else {
753
+ func.displayName = `PlasmicButton.${nodeName}`;
754
+ }
755
+ return func;
756
+ }
757
+
758
+ export const PlasmicButton = Object.assign(
759
+ // Top-level PlasmicButton renders the root element
760
+ makeNodeComponent("root"),
761
+ {
762
+ // Helper components rendering sub-elements
763
+ startIconContainer: makeNodeComponent("startIconContainer"),
764
+ contentContainer: makeNodeComponent("contentContainer"),
765
+ endIconContainer: makeNodeComponent("endIconContainer"),
766
+
767
+ // Metadata about props expected for PlasmicButton
768
+ internalVariantProps: PlasmicButton__VariantProps,
769
+ internalArgProps: PlasmicButton__ArgProps,
770
+
771
+ useBehavior
772
+ }
773
+ );
774
+
775
+ export default PlasmicButton;
776
+ /* prettier-ignore-end */