@dimasbaguspm/versaur 0.0.22 → 0.0.24

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.
@@ -0,0 +1,608 @@
1
+ import { c as i, j as s, a as l } from "./index-DOdDlCoL.js";
2
+ import * as v from "react";
3
+ import { forwardRef as n } from "react";
4
+ import "./image-rectangle-GA3oWX7A.js";
5
+ import "./snackbar-DH8jCh2V.js";
6
+ import { T as d } from "./text-CRsIInRA.js";
7
+ const h = i(
8
+ "w-full flex flex-wrap items-center pt-3 mb-3 gap-2 bg-white [&>[data-versaur-appbar-bottom]]:basis-full [&>[data-versaur-appbar-bottom]]:w-full [&:has([data-versaur-appbar-bottom])>[data-versaur-appbar-leading]]:pl-4 [&:has([data-versaur-appbar-bottom])>[data-versaur-appbar-trailing]]:pr-4 [&:not(:has([data-versaur-appbar-bottom]))]:px-4",
9
+ {
10
+ variants: {
11
+ variant: {
12
+ primary: "",
13
+ secondary: "",
14
+ tertiary: "",
15
+ ghost: "",
16
+ neutral: ""
17
+ }
18
+ },
19
+ defaultVariants: {
20
+ variant: "primary"
21
+ }
22
+ }
23
+ ), j = i(
24
+ "flex flex-col justify-center min-w-0 flex-grow",
25
+ {
26
+ variants: {
27
+ placement: {
28
+ start: "items-start",
29
+ center: "items-center",
30
+ end: "items-end"
31
+ }
32
+ },
33
+ defaultVariants: {
34
+ placement: "start"
35
+ }
36
+ }
37
+ ), y = n(
38
+ ({ children: t, className: a }, e) => /* @__PURE__ */ s.jsx(
39
+ "div",
40
+ {
41
+ ref: e,
42
+ "data-versaur-appbar-bottom": !0,
43
+ className: l("w-full flex items-center min-h-[2.5rem] mt-2", a),
44
+ children: t
45
+ }
46
+ )
47
+ ), B = n(
48
+ ({ children: t, className: a }, e) => /* @__PURE__ */ s.jsx(
49
+ "div",
50
+ {
51
+ ref: e,
52
+ className: l("flex items-center", a),
53
+ "data-versaur-appbar-leading": !0,
54
+ children: t
55
+ }
56
+ )
57
+ ), w = n(({ children: t, ...a }, e) => /* @__PURE__ */ s.jsx(
58
+ d,
59
+ {
60
+ ...a,
61
+ as: "h1",
62
+ ref: e,
63
+ fontSize: "lg",
64
+ fontWeight: "semibold",
65
+ ellipsis: !0,
66
+ clamp: 1,
67
+ children: t
68
+ }
69
+ )), N = n(({ children: t, ...a }, e) => /* @__PURE__ */ s.jsx(
70
+ d,
71
+ {
72
+ ...a,
73
+ ref: e,
74
+ as: "p",
75
+ fontSize: "xs",
76
+ fontWeight: "normal",
77
+ ellipsis: !0,
78
+ clamp: 1,
79
+ color: "gray",
80
+ children: t
81
+ }
82
+ )), V = n(
83
+ ({ children: t, className: a }, e) => /* @__PURE__ */ s.jsx(
84
+ "div",
85
+ {
86
+ ref: e,
87
+ className: l("flex items-center justify-end gap-2", a),
88
+ "data-versaur-appbar-trailing": !0,
89
+ children: t
90
+ }
91
+ )
92
+ ), T = n(
93
+ ({ children: t, className: a, placement: e }, r) => /* @__PURE__ */ s.jsx(
94
+ "div",
95
+ {
96
+ ref: r,
97
+ className: l(j({ placement: e }), a),
98
+ children: t
99
+ }
100
+ )
101
+ ), S = ({
102
+ children: t,
103
+ className: a,
104
+ variant: e = "primary"
105
+ }) => /* @__PURE__ */ s.jsx(
106
+ "header",
107
+ {
108
+ className: l(h({ variant: e }), a),
109
+ role: "banner",
110
+ children: t
111
+ }
112
+ ), ya = Object.assign(S, {
113
+ Leading: B,
114
+ Headline: w,
115
+ Subtitle: N,
116
+ Trailing: V,
117
+ Center: T,
118
+ Bottom: y
119
+ }), H = i(
120
+ "sticky bottom-0 left-0 w-full flex justify-between items-center bg-white border-t border-border shadow-xs z-40 safe-bottom px-8 py-1",
121
+ {
122
+ variants: {
123
+ variant: {
124
+ primary: "",
125
+ secondary: "",
126
+ ghost: "",
127
+ neutral: "",
128
+ tertiary: ""
129
+ },
130
+ size: {
131
+ sm: "h-12 text-sm",
132
+ md: "h-16 text-base",
133
+ lg: "h-20 text-lg"
134
+ }
135
+ },
136
+ defaultVariants: {
137
+ variant: "primary",
138
+ size: "md"
139
+ }
140
+ }
141
+ ), A = i(
142
+ "flex flex-col items-center justify-center gap-1 px-2 py-1",
143
+ {
144
+ variants: {
145
+ active: {
146
+ true: "font-semibold text-primary",
147
+ false: "text-ghost"
148
+ }
149
+ },
150
+ defaultVariants: {
151
+ active: !1
152
+ }
153
+ }
154
+ ), L = n(
155
+ ({ icon: t, label: a, active: e = !1, className: r, ...o }, c) => /* @__PURE__ */ s.jsxs(
156
+ "div",
157
+ {
158
+ ref: c,
159
+ "aria-current": e ? "page" : void 0,
160
+ className: A({ active: e, className: r }),
161
+ ...o,
162
+ children: [
163
+ t,
164
+ a && /* @__PURE__ */ s.jsx("span", { className: "text-xs mt-0.5", children: a })
165
+ ]
166
+ }
167
+ )
168
+ ), P = ({
169
+ children: t,
170
+ variant: a = "primary",
171
+ size: e = "md",
172
+ className: r,
173
+ ...o
174
+ }) => /* @__PURE__ */ s.jsx(
175
+ "nav",
176
+ {
177
+ role: "navigation",
178
+ "aria-label": "Bottom navigation",
179
+ className: H({ variant: a, size: e, className: r }),
180
+ ...o,
181
+ children: t
182
+ }
183
+ ), Ba = Object.assign(P, {
184
+ Item: L
185
+ }), C = i("flex", {
186
+ variants: {
187
+ orientation: {
188
+ horizontal: "flex-row",
189
+ vertical: "flex-col"
190
+ },
191
+ alignment: {
192
+ start: "justify-start",
193
+ center: "justify-center",
194
+ end: "justify-end",
195
+ between: "justify-between",
196
+ around: "justify-around",
197
+ evenly: "justify-evenly"
198
+ },
199
+ gap: {
200
+ xs: "gap-1",
201
+ sm: "gap-2",
202
+ md: "gap-3",
203
+ lg: "gap-4",
204
+ xl: "gap-6"
205
+ },
206
+ fluid: {
207
+ true: "[&>*]:flex-1",
208
+ false: ""
209
+ }
210
+ },
211
+ defaultVariants: {
212
+ orientation: "horizontal",
213
+ alignment: "start",
214
+ gap: "md",
215
+ fluid: !1
216
+ }
217
+ }), wa = n(
218
+ function({
219
+ className: a,
220
+ children: e,
221
+ orientation: r = "horizontal",
222
+ alignment: o = "start",
223
+ gap: c = "md",
224
+ fluid: p = !1,
225
+ ...m
226
+ }, x) {
227
+ return /* @__PURE__ */ s.jsx(
228
+ "div",
229
+ {
230
+ ref: x,
231
+ className: l(
232
+ C({
233
+ orientation: r,
234
+ alignment: o,
235
+ gap: c,
236
+ fluid: p
237
+ }),
238
+ a
239
+ ),
240
+ role: "group",
241
+ ...m,
242
+ children: e
243
+ }
244
+ );
245
+ }
246
+ ), z = i("w-full px-4 sm:px-6 py-6 sm:py-8"), Na = n(
247
+ ({ children: t, className: a, ...e }, r) => /* @__PURE__ */ s.jsx(
248
+ "div",
249
+ {
250
+ ref: r,
251
+ className: l(z(), a),
252
+ ...e,
253
+ children: t
254
+ }
255
+ )
256
+ ), R = i("w-full"), I = i(
257
+ "flex flex-col sm:flex-row sm:items-start sm:justify-between gap-4 px-4 sm:px-6 mb-4"
258
+ ), k = i("mb-4 px-4 sm:px-6"), F = i(
259
+ "flex-1 min-w-0 flex flex-col gap-2 w-full sm:w-auto"
260
+ ), G = i("flex items-center gap-2 flex-wrap"), O = i(
261
+ "flex flex-col sm:flex-row gap-2 sm:gap-3 w-full sm:w-auto sm:ml-auto sm:shrink-0 [&>*]:w-full sm:[&>*]:w-auto"
262
+ ), W = i(
263
+ "w-full flex items-center px-4 sm:px-6 py-0 overflow-x-auto"
264
+ ), M = n(
265
+ ({ children: t, className: a, ...e }, r) => /* @__PURE__ */ s.jsx(
266
+ "div",
267
+ {
268
+ ref: r,
269
+ className: l(I(), a),
270
+ "data-versaur-page-header-top": !0,
271
+ ...e,
272
+ children: t
273
+ }
274
+ )
275
+ ), E = n(({ children: t, className: a, ...e }, r) => /* @__PURE__ */ s.jsx(
276
+ "div",
277
+ {
278
+ ref: r,
279
+ className: l(k(), a),
280
+ "data-versaur-page-header-breadcrumbs": !0,
281
+ ...e,
282
+ children: t
283
+ }
284
+ )), $ = n(({ children: t, className: a, ...e }, r) => /* @__PURE__ */ s.jsx(
285
+ "div",
286
+ {
287
+ ref: r,
288
+ className: l(F(), a),
289
+ "data-versaur-page-header-content": !0,
290
+ ...e,
291
+ children: t
292
+ }
293
+ )), q = n((t, a) => /* @__PURE__ */ s.jsx(
294
+ d,
295
+ {
296
+ ...t,
297
+ as: "h1",
298
+ fontSize: "xl",
299
+ fontWeight: "semibold",
300
+ ellipsis: !0,
301
+ ref: a
302
+ }
303
+ )), D = n(({ className: t, ...a }, e) => /* @__PURE__ */ s.jsx(
304
+ d,
305
+ {
306
+ as: "p",
307
+ fontSize: "sm",
308
+ fontWeight: "normal",
309
+ clamp: 2,
310
+ ref: e,
311
+ className: l("mb-2 sm:clamp-3", t),
312
+ ...a
313
+ }
314
+ )), J = n(({ children: t, className: a, ...e }, r) => /* @__PURE__ */ s.jsx(
315
+ "div",
316
+ {
317
+ ref: r,
318
+ className: l(G(), a),
319
+ "data-versaur-page-header-badges": !0,
320
+ ...e,
321
+ children: t
322
+ }
323
+ )), K = n(({ children: t, className: a, ...e }, r) => /* @__PURE__ */ s.jsx(
324
+ "div",
325
+ {
326
+ ref: r,
327
+ className: l(O(), a),
328
+ "data-versaur-page-header-actions": !0,
329
+ ...e,
330
+ children: t
331
+ }
332
+ )), Q = n(({ children: t, className: a, ...e }, r) => /* @__PURE__ */ s.jsx(
333
+ "div",
334
+ {
335
+ ref: r,
336
+ className: l(W(), a),
337
+ "data-versaur-page-header-bottom": !0,
338
+ ...e,
339
+ children: t
340
+ }
341
+ )), U = n(
342
+ ({
343
+ children: t,
344
+ className: a,
345
+ title: e,
346
+ subtitle: r,
347
+ breadcrumbs: o,
348
+ badges: c,
349
+ actions: p,
350
+ tabs: m,
351
+ ...x
352
+ }, u) => {
353
+ const g = e || r || o || c || p, b = m;
354
+ return /* @__PURE__ */ s.jsxs(
355
+ "header",
356
+ {
357
+ ref: u,
358
+ className: l(R(), a),
359
+ role: "banner",
360
+ ...x,
361
+ children: [
362
+ o && /* @__PURE__ */ s.jsx(E, { children: o }),
363
+ g && /* @__PURE__ */ s.jsxs(M, { children: [
364
+ /* @__PURE__ */ s.jsxs($, { children: [
365
+ e && /* @__PURE__ */ s.jsx(q, { children: e }),
366
+ r && /* @__PURE__ */ s.jsx(D, { children: r }),
367
+ c && /* @__PURE__ */ s.jsx(J, { children: c })
368
+ ] }),
369
+ p && /* @__PURE__ */ s.jsx(K, { children: p })
370
+ ] }),
371
+ b && /* @__PURE__ */ s.jsx(Q, { children: m }),
372
+ t
373
+ ]
374
+ }
375
+ );
376
+ }
377
+ ), Va = U, X = i("w-full mx-auto relative", {
378
+ variants: {
379
+ type: {
380
+ desktop: "max-w-7xl px-6 pb-10",
381
+ tablet: "max-w-3xl px-4",
382
+ mobile: "w-full"
383
+ }
384
+ },
385
+ defaultVariants: {
386
+ type: "desktop"
387
+ }
388
+ }), Ta = v.forwardRef(
389
+ function({ type: a = "desktop", className: e, children: r, ...o }, c) {
390
+ return /* @__PURE__ */ s.jsx(
391
+ "div",
392
+ {
393
+ ref: c,
394
+ className: l(X({ type: a }), e),
395
+ ...o,
396
+ children: r
397
+ }
398
+ );
399
+ }
400
+ ), Y = i("grid w-full gap-4 grid-cols-12"), Z = i("", {
401
+ variants: {
402
+ span: {
403
+ 1: "col-span-1",
404
+ 2: "col-span-2",
405
+ 3: "col-span-3",
406
+ 4: "col-span-4",
407
+ 5: "col-span-5",
408
+ 6: "col-span-6",
409
+ 7: "col-span-7",
410
+ 8: "col-span-8",
411
+ 9: "col-span-9",
412
+ 10: "col-span-10",
413
+ 11: "col-span-11",
414
+ 12: "col-span-12"
415
+ }
416
+ },
417
+ defaultVariants: {
418
+ span: "4"
419
+ }
420
+ }), _ = n(
421
+ function({ className: a, children: e, ...r }, o) {
422
+ return /* @__PURE__ */ s.jsx(
423
+ "div",
424
+ {
425
+ ref: o,
426
+ className: l(Y(), a),
427
+ ...r,
428
+ children: e
429
+ }
430
+ );
431
+ }
432
+ ), aa = n(
433
+ function({ span: a = 4, className: e, children: r, ...o }, c) {
434
+ const p = Math.min(12, Math.max(1, a));
435
+ return /* @__PURE__ */ s.jsx(
436
+ "div",
437
+ {
438
+ ref: c,
439
+ className: l(
440
+ Z({ span: `${p}` }),
441
+ e
442
+ ),
443
+ ...o,
444
+ children: r
445
+ }
446
+ );
447
+ }
448
+ ), Sa = Object.assign(_, {
449
+ Column: aa
450
+ }), f = i(
451
+ "flex items-center gap-2 px-4 py-2 rounded-md hover:text-primary focus:outline-none transition-colors",
452
+ {
453
+ variants: {
454
+ active: {
455
+ true: "bg-primary/10 text-primary",
456
+ false: "text-ghost"
457
+ },
458
+ disabled: {
459
+ true: "opacity-50 pointer-events-none",
460
+ false: ""
461
+ }
462
+ },
463
+ defaultVariants: {
464
+ active: !1,
465
+ disabled: !1
466
+ }
467
+ }
468
+ ), ea = n(
469
+ (t, a) => {
470
+ const { icon: e, children: r, href: o, onClick: c, active: p, ...m } = t;
471
+ if (typeof o == "string") {
472
+ const u = m;
473
+ return /* @__PURE__ */ s.jsx("li", { children: /* @__PURE__ */ s.jsxs(
474
+ "a",
475
+ {
476
+ ref: a,
477
+ href: o,
478
+ className: f({
479
+ disabled: !!t["aria-disabled"],
480
+ active: p
481
+ }),
482
+ ...u,
483
+ children: [
484
+ e,
485
+ /* @__PURE__ */ s.jsx(d, { as: "span", color: "inherit", fontSize: "sm", children: r })
486
+ ]
487
+ }
488
+ ) });
489
+ } else {
490
+ const u = m;
491
+ return /* @__PURE__ */ s.jsx("li", { children: /* @__PURE__ */ s.jsxs(
492
+ "button",
493
+ {
494
+ ref: a,
495
+ type: "button",
496
+ onClick: c,
497
+ className: l(
498
+ f({ disabled: !!u.disabled, active: p }),
499
+ "w-full text-left"
500
+ ),
501
+ ...u,
502
+ children: [
503
+ e,
504
+ /* @__PURE__ */ s.jsx(d, { as: "span", color: "inherit", fontSize: "sm", children: r })
505
+ ]
506
+ }
507
+ ) });
508
+ }
509
+ }
510
+ ), ta = n(
511
+ function({ children: a, label: e, ...r }, o) {
512
+ return /* @__PURE__ */ s.jsxs("li", { ref: o, className: "flex flex-col gap-2 mt-2", ...r, children: [
513
+ /* @__PURE__ */ s.jsx(
514
+ d,
515
+ {
516
+ as: "h2",
517
+ fontSize: "xs",
518
+ fontWeight: "semibold",
519
+ color: "gray",
520
+ className: "px-2",
521
+ children: e
522
+ }
523
+ ),
524
+ /* @__PURE__ */ s.jsx("ul", { className: "flex flex-col gap-1", children: a })
525
+ ] });
526
+ }
527
+ ), sa = n(
528
+ ({ children: t, ...a }, e) => /* @__PURE__ */ s.jsx(
529
+ "nav",
530
+ {
531
+ ref: e,
532
+ className: "w-56 bg-background border-r border-border flex flex-col my-2",
533
+ "aria-label": "Sidebar",
534
+ ...a,
535
+ children: /* @__PURE__ */ s.jsx("div", { className: "flex-1 overflow-y-auto scrollbar-thin scrollbar-thumb-border scrollbar-track-background", children: /* @__PURE__ */ s.jsx("ul", { className: "flex flex-col gap-1 mx-2", children: t }) })
536
+ }
537
+ )
538
+ ), Ha = Object.assign(sa, {
539
+ Item: ea,
540
+ Group: ta
541
+ }), ra = i(
542
+ "w-full flex items-center px-6 py-4 mb-6 border-b border-border shadow-xs bg-white",
543
+ {
544
+ variants: {},
545
+ defaultVariants: {}
546
+ }
547
+ ), oa = i("flex items-center gap-3 min-w-0 flex-1"), na = i("flex items-center gap-2 ml-auto"), ia = i(
548
+ "px-2.5 py-1.5 rounded-md text-sm cursor-pointer transition-colors",
549
+ {
550
+ variants: {
551
+ active: {
552
+ true: "bg-primary/10 text-primary",
553
+ false: "hover:text-primary text-ghost"
554
+ }
555
+ },
556
+ defaultVariants: {
557
+ active: !1
558
+ }
559
+ }
560
+ ), la = i("flex items-center gap-2 ml-4"), ca = i("flex items-center gap-2 mr-4"), pa = n(
561
+ function({ children: a, className: e, ...r }, o) {
562
+ return /* @__PURE__ */ s.jsx("nav", { ref: o, className: la({ className: e }), ...r, children: a });
563
+ }
564
+ ), ma = n(
565
+ function({ children: a, className: e, ...r }, o) {
566
+ return /* @__PURE__ */ s.jsx("div", { ref: o, className: ca({ className: e }), ...r, children: a });
567
+ }
568
+ ), da = n(
569
+ function({ children: a, className: e, ...r }, o) {
570
+ return /* @__PURE__ */ s.jsx("div", { ref: o, className: oa({ className: e }), ...r, children: a });
571
+ }
572
+ ), ua = n(
573
+ function({ children: a, className: e, ...r }, o) {
574
+ return /* @__PURE__ */ s.jsx("div", { ref: o, className: na({ className: e }), ...r, children: a });
575
+ }
576
+ ), xa = n(
577
+ function({ children: a, className: e, active: r, ...o }, c) {
578
+ return /* @__PURE__ */ s.jsx(
579
+ "div",
580
+ {
581
+ ref: c,
582
+ className: ia({ active: r, className: e }),
583
+ "aria-current": r ? "page" : void 0,
584
+ ...o,
585
+ children: a
586
+ }
587
+ );
588
+ }
589
+ ), fa = n(
590
+ ({ children: t, className: a, ...e }, r) => /* @__PURE__ */ s.jsx("header", { ref: r, className: ra({ className: a }), ...e, children: t })
591
+ ), Aa = Object.assign(fa, {
592
+ Leading: da,
593
+ Trailing: ua,
594
+ NavItem: xa,
595
+ Nav: pa,
596
+ Actions: ma
597
+ });
598
+ export {
599
+ ya as A,
600
+ Ba as B,
601
+ Sa as F,
602
+ Na as P,
603
+ Ha as S,
604
+ Aa as T,
605
+ wa as a,
606
+ Va as b,
607
+ Ta as c
608
+ };
@@ -0,0 +1,27 @@
1
+ import { ButtonGroupProps } from './types';
2
+ /**
3
+ * ButtonGroup provides layout management for buttons with control over
4
+ * positioning, alignment, and fluid behavior
5
+ *
6
+ * @example
7
+ * <ButtonGroup alignment="center" gap="sm">
8
+ * <Button variant="primary">Save</Button>
9
+ * <Button variant="ghost">Cancel</Button>
10
+ * </ButtonGroup>
11
+ *
12
+ * @example
13
+ * // Vertical button group
14
+ * <ButtonGroup orientation="vertical" fluid>
15
+ * <Button variant="primary">Save</Button>
16
+ * <Button variant="secondary">Save as Draft</Button>
17
+ * <Button variant="ghost">Cancel</Button>
18
+ * </ButtonGroup>
19
+ *
20
+ * @example
21
+ * // Fluid buttons with space between
22
+ * <ButtonGroup alignment="between" fluid>
23
+ * <Button variant="ghost">Back</Button>
24
+ * <Button variant="primary">Next</Button>
25
+ * </ButtonGroup>
26
+ */
27
+ export declare const ButtonGroup: import('react').ForwardRefExoticComponent<ButtonGroupProps & import('react').RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,2 @@
1
+ export { ButtonGroup } from './button-group';
2
+ export type { ButtonGroupProps } from './types';
@@ -0,0 +1,32 @@
1
+ import { HTMLAttributes, ReactNode } from 'react';
2
+ import { VariantProps } from '../../utils/variants';
3
+ import { buttonGroupVariants } from './helpers';
4
+ /**
5
+ * Props for the ButtonGroup component
6
+ */
7
+ export interface ButtonGroupProps extends HTMLAttributes<HTMLDivElement>, VariantProps<typeof buttonGroupVariants> {
8
+ /**
9
+ * Children (should be Button components)
10
+ */
11
+ children: ReactNode;
12
+ /**
13
+ * Alignment of buttons within the group
14
+ * @default 'start'
15
+ */
16
+ alignment?: 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly';
17
+ /**
18
+ * Whether buttons should be fluid (full width)
19
+ * @default false
20
+ */
21
+ fluid?: boolean;
22
+ /**
23
+ * Orientation of the button group
24
+ * @default 'horizontal'
25
+ */
26
+ orientation?: 'horizontal' | 'vertical';
27
+ /**
28
+ * Size of the gap between buttons
29
+ * @default 'md'
30
+ */
31
+ gap?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
32
+ }
@@ -1,6 +1,9 @@
1
1
  export * from './app-bar';
2
2
  export * from './bottom-bar';
3
- export * from './top-bar';
3
+ export * from './button-group';
4
+ export * from './page-content';
5
+ export * from './page-header';
4
6
  export * from './page-layout';
5
7
  export * from './form-layout';
6
8
  export * from './side-bar';
9
+ export * from './top-bar';
@@ -0,0 +1,2 @@
1
+ export { PageContent } from './page-content';
2
+ export type { PageContentProps } from './types';
@@ -0,0 +1,15 @@
1
+ import { PageContentProps } from './types';
2
+ /**
3
+ * PageContent - Layout component for page content areas
4
+ *
5
+ * Provides consistent horizontal spacing that matches the page-header
6
+ * component, with additional vertical padding for proper content separation.
7
+ * Designed to be used as a sibling to PageHeader for consistent page layouts.
8
+ *
9
+ * Key features:
10
+ * - Horizontal padding matches page-header (px-4 sm:px-6)
11
+ * - Additional vertical padding for content separation (py-6 sm:py-8)
12
+ * - Mobile-first responsive design
13
+ * - Full width container
14
+ */
15
+ export declare const PageContent: import('react').ForwardRefExoticComponent<PageContentProps & import('react').RefAttributes<HTMLDivElement>>;