@kopexa/theme 1.2.0 → 1.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 (36) hide show
  1. package/dist/chunk-E5AF4JZZ.mjs +167 -0
  2. package/dist/chunk-GWY5N4AY.mjs +101 -0
  3. package/dist/chunk-HQ27V5V4.mjs +11 -0
  4. package/dist/chunk-U6ONJKJY.mjs +31 -0
  5. package/dist/{chunk-EOML76MT.mjs → chunk-YPHFKGNI.mjs} +4 -1
  6. package/dist/components/button.d.mts +65 -9
  7. package/dist/components/button.d.ts +65 -9
  8. package/dist/components/button.js +177 -18
  9. package/dist/components/button.mjs +3 -1
  10. package/dist/components/command.d.mts +18 -0
  11. package/dist/components/command.d.ts +18 -0
  12. package/dist/components/command.js +4 -1
  13. package/dist/components/command.mjs +1 -1
  14. package/dist/components/index.d.mts +1 -0
  15. package/dist/components/index.d.ts +1 -0
  16. package/dist/components/index.js +287 -25
  17. package/dist/components/index.mjs +12 -6
  18. package/dist/components/page-layout.d.mts +208 -0
  19. package/dist/components/page-layout.d.ts +208 -0
  20. package/dist/components/page-layout.js +125 -0
  21. package/dist/components/page-layout.mjs +6 -0
  22. package/dist/index.d.mts +1 -0
  23. package/dist/index.d.ts +1 -0
  24. package/dist/index.js +287 -25
  25. package/dist/index.mjs +12 -6
  26. package/dist/utils/classes.d.mts +7 -0
  27. package/dist/utils/classes.d.ts +7 -0
  28. package/dist/utils/classes.js +36 -0
  29. package/dist/utils/classes.mjs +8 -0
  30. package/dist/utils/variants.d.mts +25 -0
  31. package/dist/utils/variants.d.ts +25 -0
  32. package/dist/utils/variants.js +55 -0
  33. package/dist/utils/variants.mjs +6 -0
  34. package/package.json +2 -2
  35. package/dist/chunk-GSHMDS47.mjs +0 -37
  36. /package/dist/{chunk-QIGSYUIX.mjs → chunk-ZKEY52ZF.mjs} +0 -0
@@ -24,6 +24,7 @@ __export(components_exports, {
24
24
  command: () => command,
25
25
  dialog: () => dialog,
26
26
  drawer: () => drawer,
27
+ pageLayout: () => pageLayout,
27
28
  popover: () => popover,
28
29
  spinner: () => spinner,
29
30
  tooltip: () => tooltip
@@ -32,36 +33,195 @@ module.exports = __toCommonJS(components_exports);
32
33
 
33
34
  // src/components/button.ts
34
35
  var import_tailwind_variants = require("tailwind-variants");
36
+
37
+ // src/utils/classes.ts
38
+ var focusVisibleClasses = [
39
+ "focus-visible:outline-2 focus-visible:outline-ring focus-visible:outline-offset-2"
40
+ //"focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
41
+ ];
42
+
43
+ // src/utils/variants.ts
44
+ var solid = {
45
+ primary: "bg-primary text-primary-foreground",
46
+ secondary: "bg-secondary text-secondary-foreground",
47
+ destructive: "bg-destructive text-destructive-foreground",
48
+ warning: "bg-warning text-warning-foreground",
49
+ success: "bg-success text-success-foreground"
50
+ };
51
+ var outline = {
52
+ primary: "bg-transparent border-primary text-primary",
53
+ secondary: "bg-transparent border-secondary text-secondary",
54
+ destructive: "bg-transparent border-destructive text-destructive",
55
+ warning: "bg-transparent border-warning text-warning",
56
+ success: "bg-transparent border-success text-success"
57
+ };
58
+ var ghost = {
59
+ primary: "bg-transparent text-primary",
60
+ secondary: "bg-transparent text-secondary",
61
+ destructive: "bg-transparent text-destructive",
62
+ warning: "bg-transparent text-warning",
63
+ success: "bg-transparent text-success"
64
+ };
65
+ var colorVariants = {
66
+ solid,
67
+ ghost,
68
+ outline
69
+ };
70
+
71
+ // src/components/button.ts
35
72
  var button = (0, import_tailwind_variants.tv)({
36
73
  base: [
37
- "relative inline-flex group items-center justify-center select-none",
38
- "box-border appearance-none min-w-max subpixel-antialiased overflow-hidden cursor-pointer",
39
- "gap-2",
40
- "whitespace-nowrap rounded-md transition-all disabled:pointer-events-none disabled:opacity-50",
41
- "shrink-0 [&_svg]:shrink-0 outline-none",
42
- "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
43
- "[&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4",
74
+ "group relative inline-flex items-center justify-center select-none",
75
+ "box-border appearance-none",
76
+ "whitespace-nowrap min-w-max font-normal subpixel-antialiased",
77
+ "transform-gpu cursor-pointer hover:opacity-80",
78
+ ...focusVisibleClasses,
79
+ // shadcn below
80
+ "disabled:pointer-events-none disabled:opacity-50",
81
+ "shrink-0 [&_svg]:shrink-0",
82
+ "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
44
83
  "text-sm font-medium"
45
84
  ],
46
85
  variants: {
47
86
  variant: {
48
- solid: "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",
49
- destructive: "bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
50
- outline: "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
51
- secondary: "bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",
52
- ghost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
53
- link: "text-primary underline-offset-4 hover:underline"
87
+ solid: "shadow-xs",
88
+ ghost: "",
89
+ outline: "border-2 bg-transparent",
90
+ link: ""
91
+ // destructive:
92
+ // "bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
93
+ // outline:
94
+ // "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
95
+ // secondary:
96
+ // "bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",
97
+ // ghost:
98
+ // "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
99
+ // link: "text-primary underline-offset-4 hover:underline",
54
100
  },
55
101
  size: {
56
- sm: "h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",
57
- md: "h-9 px-4 py-2 has-[>svg]:px-3",
58
- lg: "h-10 rounded-md px-6 has-[>svg]:px-4"
102
+ sm: "px-3 min-w-16 h-8 text-xs gap-2 rounded-sm has-[>svg]:px-2.5",
103
+ md: "px-4 min-w-20 h-10 text-sm gap-2 rounded-md has-[>svg]:px-3",
104
+ lg: "px-6 min-w-24 h-12 text-base gap-3 rounded-lg has-[>svg]:px-4"
105
+ },
106
+ color: {
107
+ primary: "",
108
+ secondary: "",
109
+ destructive: "",
110
+ warning: "",
111
+ success: ""
112
+ },
113
+ radius: {},
114
+ fullWidth: {
115
+ true: "w-full"
116
+ },
117
+ isIconOnly: {
118
+ true: "px-0 !gap-0",
119
+ false: "[&>svg]:max-w-[theme(spacing.8)]"
59
120
  }
60
121
  },
61
122
  defaultVariants: {
123
+ size: "md",
62
124
  variant: "solid",
63
- size: "sm"
64
- }
125
+ color: "primary",
126
+ fullWidth: false,
127
+ isIconOnly: false
128
+ },
129
+ compoundVariants: [
130
+ // primary color
131
+ {
132
+ variant: "solid",
133
+ color: "primary",
134
+ class: colorVariants.solid.primary
135
+ },
136
+ {
137
+ variant: "solid",
138
+ color: "secondary",
139
+ class: colorVariants.solid.secondary
140
+ },
141
+ {
142
+ variant: "solid",
143
+ color: "destructive",
144
+ class: colorVariants.solid.destructive
145
+ },
146
+ {
147
+ variant: "solid",
148
+ color: "warning",
149
+ class: colorVariants.solid.warning
150
+ },
151
+ {
152
+ variant: "solid",
153
+ color: "success",
154
+ class: colorVariants.solid.success
155
+ },
156
+ // ghost color
157
+ {
158
+ variant: "ghost",
159
+ color: "primary",
160
+ class: colorVariants.ghost.primary
161
+ },
162
+ {
163
+ variant: "ghost",
164
+ color: "secondary",
165
+ class: colorVariants.ghost.secondary
166
+ },
167
+ {
168
+ variant: "ghost",
169
+ color: "destructive",
170
+ class: colorVariants.ghost.destructive
171
+ },
172
+ {
173
+ variant: "ghost",
174
+ color: "warning",
175
+ class: colorVariants.ghost.warning
176
+ },
177
+ {
178
+ variant: "ghost",
179
+ color: "success",
180
+ class: colorVariants.ghost.success
181
+ },
182
+ // outline color
183
+ {
184
+ variant: "outline",
185
+ color: "primary",
186
+ class: colorVariants.outline.primary
187
+ },
188
+ {
189
+ variant: "outline",
190
+ color: "secondary",
191
+ class: colorVariants.outline.secondary
192
+ },
193
+ {
194
+ variant: "outline",
195
+ color: "destructive",
196
+ class: colorVariants.outline.destructive
197
+ },
198
+ {
199
+ variant: "outline",
200
+ color: "warning",
201
+ class: colorVariants.outline.warning
202
+ },
203
+ {
204
+ variant: "outline",
205
+ color: "success",
206
+ class: colorVariants.outline.success
207
+ },
208
+ // icon
209
+ {
210
+ isIconOnly: true,
211
+ size: "sm",
212
+ class: "min-w-8 w-8 h-8 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-3.5"
213
+ },
214
+ {
215
+ isIconOnly: true,
216
+ size: "md",
217
+ class: "min-w-10 w-10 h-10 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4"
218
+ },
219
+ {
220
+ isIconOnly: true,
221
+ size: "lg",
222
+ class: "min-w-12 w-12 h-12 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-5"
223
+ }
224
+ ]
65
225
  });
66
226
 
67
227
  // src/components/command.ts
@@ -77,7 +237,10 @@ var command = (0, import_tailwind_variants2.tv)({
77
237
  group: "text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium",
78
238
  separator: "bg-border -mx-1 h-px",
79
239
  item: "data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
80
- shortcut: "text-muted-foreground ml-auto text-xs tracking-widest"
240
+ shortcut: "text-muted-foreground ml-auto text-xs tracking-widest",
241
+ header: "flex flex-col items-start justify-between px-3 py-2 border-b",
242
+ title: "text-sm font-semibold",
243
+ description: "text-xs text-muted-foreground"
81
244
  }
82
245
  });
83
246
 
@@ -253,9 +416,107 @@ var drawer = (0, import_tailwind_variants4.tv)({
253
416
  }
254
417
  });
255
418
 
256
- // src/components/popover.ts
419
+ // src/components/page-layout.ts
257
420
  var import_tailwind_variants5 = require("tailwind-variants");
258
- var popover = (0, import_tailwind_variants5.tv)({
421
+ var pageLayout = (0, import_tailwind_variants5.tv)({
422
+ slots: {
423
+ root: "",
424
+ wrapper: "flex mx-auto flex-wrap",
425
+ baseContent: "flex flex-1 flex-wrap max-w-full",
426
+ header: "w-full",
427
+ footerWrapper: "w-full",
428
+ footerContent: "",
429
+ paneWrapper: [
430
+ "flex w-full mx-auto",
431
+ // order start + mt-6
432
+ "data-[position=start]:flex-col",
433
+ // order? + mb-6
434
+ "data-[position=end]:flex-col-reverse",
435
+ // md+
436
+ "md:w-auto md:mt-0 md:mb-0",
437
+ "md:data-[sticky=true]:sticky md:data-[sticky=true]:top-2 md:data-[sticky=true]:max-h-[calc(100dvh-0.5rem)]",
438
+ "md:data-[position=end]:flex-row-reverse",
439
+ "md:data-[position=start]:flex-row"
440
+ ],
441
+ pane: "w-[var(--pane-width-size)] md:overflow-auto",
442
+ contentWrapper: "flex min-w-px flex-col basis-0 grow shrink",
443
+ content: "w-full mx-auto grow"
444
+ },
445
+ variants: {
446
+ gap: {
447
+ none: "",
448
+ condensed: {
449
+ header: "mb-4",
450
+ footerWrapper: "mt-4",
451
+ paneWrapper: [
452
+ "max-md:data-[position=start]:mb-4 md:data-[position=start]:mr-4",
453
+ "max-md:data-[position=end]:mt-4 md:data-[position=end]:ml-4"
454
+ ]
455
+ },
456
+ normal: {
457
+ header: "mb-4 lg:mb-6",
458
+ footerWrapper: "mt-4 lg:mt-6",
459
+ paneWrapper: [
460
+ "max-md:data-[position=start]:mb-4 md:data-[position=start]:mr-6",
461
+ "max-md:data-[position=end]:mt-4 md:data-[position=end]:ml-6"
462
+ ]
463
+ }
464
+ },
465
+ width: {
466
+ full: {
467
+ wrapper: "max-w-full",
468
+ content: "max-w-full"
469
+ },
470
+ md: {
471
+ wrapper: "max-w-3xl",
472
+ content: "max-w-3xl"
473
+ },
474
+ lg: {
475
+ wrapper: "max-w-5xl"
476
+ },
477
+ xl: {
478
+ wrapper: "max-w-7xl",
479
+ content: "max-w-7xl"
480
+ }
481
+ },
482
+ paneWidth: {
483
+ sm: {
484
+ pane: "w-full md:w-60 lg:w-64"
485
+ },
486
+ md: {
487
+ pane: "w-full md:w-64 lg:w-74"
488
+ },
489
+ lg: {
490
+ pane: "w-full md:w-72 lg:w-80"
491
+ }
492
+ },
493
+ spacing: {
494
+ none: "",
495
+ condensed: {
496
+ header: "p-4",
497
+ content: "p-4",
498
+ pane: "p-4",
499
+ footerContent: "p-4"
500
+ },
501
+ // 1.5rem
502
+ normal: {
503
+ header: "p-4 md:p-6",
504
+ content: "p-4 md:p-6",
505
+ pane: "p-4 md:p-6"
506
+ }
507
+ }
508
+ },
509
+ defaultVariants: {
510
+ width: "xl",
511
+ spacing: "normal",
512
+ paneWidth: "md",
513
+ gap: "normal"
514
+ }
515
+ });
516
+
517
+ // src/components/popover.ts
518
+ var import_tailwind_variants6 = require("tailwind-variants");
519
+ var popover = (0, import_tailwind_variants6.tv)({
259
520
  slots: {
260
521
  content: [
261
522
  "bg-popover text-popover-foreground z-50 w-72",
@@ -266,8 +527,8 @@ var popover = (0, import_tailwind_variants5.tv)({
266
527
  });
267
528
 
268
529
  // src/components/spinner.ts
269
- var import_tailwind_variants6 = require("tailwind-variants");
270
- var spinner = (0, import_tailwind_variants6.tv)({
530
+ var import_tailwind_variants7 = require("tailwind-variants");
531
+ var spinner = (0, import_tailwind_variants7.tv)({
271
532
  slots: {
272
533
  base: "relative inline-flex flex-col gap-2 items-center justify-center",
273
534
  wrapper: "relative flex",
@@ -377,8 +638,8 @@ var spinner = (0, import_tailwind_variants6.tv)({
377
638
  });
378
639
 
379
640
  // src/components/tooltip.ts
380
- var import_tailwind_variants7 = require("tailwind-variants");
381
- var tooltip = (0, import_tailwind_variants7.tv)({
641
+ var import_tailwind_variants8 = require("tailwind-variants");
642
+ var tooltip = (0, import_tailwind_variants8.tv)({
382
643
  slots: {
383
644
  content: [
384
645
  "bg-primary text-primary-foreground",
@@ -394,6 +655,7 @@ var tooltip = (0, import_tailwind_variants7.tv)({
394
655
  command,
395
656
  dialog,
396
657
  drawer,
658
+ pageLayout,
397
659
  popover,
398
660
  spinner,
399
661
  tooltip
@@ -1,30 +1,36 @@
1
- import "../chunk-QIGSYUIX.mjs";
1
+ import "../chunk-ZKEY52ZF.mjs";
2
+ import {
3
+ spinner
4
+ } from "../chunk-IL3JFLE2.mjs";
2
5
  import {
3
6
  tooltip
4
7
  } from "../chunk-SVCFD7RR.mjs";
5
8
  import {
6
9
  button
7
- } from "../chunk-GSHMDS47.mjs";
10
+ } from "../chunk-E5AF4JZZ.mjs";
11
+ import "../chunk-HQ27V5V4.mjs";
12
+ import "../chunk-U6ONJKJY.mjs";
8
13
  import {
9
14
  command
10
- } from "../chunk-EOML76MT.mjs";
15
+ } from "../chunk-YPHFKGNI.mjs";
11
16
  import {
12
17
  drawer
13
18
  } from "../chunk-V74N5X6Z.mjs";
14
19
  import {
15
20
  dialog
16
21
  } from "../chunk-OEVKY5EP.mjs";
22
+ import {
23
+ pageLayout
24
+ } from "../chunk-GWY5N4AY.mjs";
17
25
  import {
18
26
  popover
19
27
  } from "../chunk-J35D7RWA.mjs";
20
- import {
21
- spinner
22
- } from "../chunk-IL3JFLE2.mjs";
23
28
  export {
24
29
  button,
25
30
  command,
26
31
  dialog,
27
32
  drawer,
33
+ pageLayout,
28
34
  popover,
29
35
  spinner,
30
36
  tooltip
@@ -0,0 +1,208 @@
1
+ import * as tailwind_variants from 'tailwind-variants';
2
+ import { VariantProps } from 'tailwind-variants';
3
+
4
+ declare const pageLayout: tailwind_variants.TVReturnType<{
5
+ gap: {
6
+ none: string;
7
+ condensed: {
8
+ header: string;
9
+ footerWrapper: string;
10
+ paneWrapper: string[];
11
+ };
12
+ normal: {
13
+ header: string;
14
+ footerWrapper: string;
15
+ paneWrapper: string[];
16
+ };
17
+ };
18
+ width: {
19
+ full: {
20
+ wrapper: string;
21
+ content: string;
22
+ };
23
+ md: {
24
+ wrapper: string;
25
+ content: string;
26
+ };
27
+ lg: {
28
+ wrapper: string;
29
+ };
30
+ xl: {
31
+ wrapper: string;
32
+ content: string;
33
+ };
34
+ };
35
+ paneWidth: {
36
+ sm: {
37
+ pane: string;
38
+ };
39
+ md: {
40
+ pane: string;
41
+ };
42
+ lg: {
43
+ pane: string;
44
+ };
45
+ };
46
+ spacing: {
47
+ none: string;
48
+ condensed: {
49
+ header: string;
50
+ content: string;
51
+ pane: string;
52
+ footerContent: string;
53
+ };
54
+ normal: {
55
+ header: string;
56
+ content: string;
57
+ pane: string;
58
+ };
59
+ };
60
+ }, {
61
+ root: string;
62
+ wrapper: string;
63
+ baseContent: string;
64
+ header: string;
65
+ footerWrapper: string;
66
+ footerContent: string;
67
+ paneWrapper: string[];
68
+ pane: string;
69
+ contentWrapper: string;
70
+ content: string;
71
+ }, undefined, {
72
+ gap: {
73
+ none: string;
74
+ condensed: {
75
+ header: string;
76
+ footerWrapper: string;
77
+ paneWrapper: string[];
78
+ };
79
+ normal: {
80
+ header: string;
81
+ footerWrapper: string;
82
+ paneWrapper: string[];
83
+ };
84
+ };
85
+ width: {
86
+ full: {
87
+ wrapper: string;
88
+ content: string;
89
+ };
90
+ md: {
91
+ wrapper: string;
92
+ content: string;
93
+ };
94
+ lg: {
95
+ wrapper: string;
96
+ };
97
+ xl: {
98
+ wrapper: string;
99
+ content: string;
100
+ };
101
+ };
102
+ paneWidth: {
103
+ sm: {
104
+ pane: string;
105
+ };
106
+ md: {
107
+ pane: string;
108
+ };
109
+ lg: {
110
+ pane: string;
111
+ };
112
+ };
113
+ spacing: {
114
+ none: string;
115
+ condensed: {
116
+ header: string;
117
+ content: string;
118
+ pane: string;
119
+ footerContent: string;
120
+ };
121
+ normal: {
122
+ header: string;
123
+ content: string;
124
+ pane: string;
125
+ };
126
+ };
127
+ }, {
128
+ root: string;
129
+ wrapper: string;
130
+ baseContent: string;
131
+ header: string;
132
+ footerWrapper: string;
133
+ footerContent: string;
134
+ paneWrapper: string[];
135
+ pane: string;
136
+ contentWrapper: string;
137
+ content: string;
138
+ }, tailwind_variants.TVReturnType<{
139
+ gap: {
140
+ none: string;
141
+ condensed: {
142
+ header: string;
143
+ footerWrapper: string;
144
+ paneWrapper: string[];
145
+ };
146
+ normal: {
147
+ header: string;
148
+ footerWrapper: string;
149
+ paneWrapper: string[];
150
+ };
151
+ };
152
+ width: {
153
+ full: {
154
+ wrapper: string;
155
+ content: string;
156
+ };
157
+ md: {
158
+ wrapper: string;
159
+ content: string;
160
+ };
161
+ lg: {
162
+ wrapper: string;
163
+ };
164
+ xl: {
165
+ wrapper: string;
166
+ content: string;
167
+ };
168
+ };
169
+ paneWidth: {
170
+ sm: {
171
+ pane: string;
172
+ };
173
+ md: {
174
+ pane: string;
175
+ };
176
+ lg: {
177
+ pane: string;
178
+ };
179
+ };
180
+ spacing: {
181
+ none: string;
182
+ condensed: {
183
+ header: string;
184
+ content: string;
185
+ pane: string;
186
+ footerContent: string;
187
+ };
188
+ normal: {
189
+ header: string;
190
+ content: string;
191
+ pane: string;
192
+ };
193
+ };
194
+ }, {
195
+ root: string;
196
+ wrapper: string;
197
+ baseContent: string;
198
+ header: string;
199
+ footerWrapper: string;
200
+ footerContent: string;
201
+ paneWrapper: string[];
202
+ pane: string;
203
+ contentWrapper: string;
204
+ content: string;
205
+ }, undefined, unknown, unknown, undefined>>;
206
+ type PageLayoutVariantProps = VariantProps<typeof pageLayout>;
207
+
208
+ export { type PageLayoutVariantProps, pageLayout };