@dimasbaguspm/versaur 0.0.40 → 0.0.41

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.
@@ -1,6 +1,6 @@
1
1
  import { c as f, j as r, a as l } from "./index-DOdDlCoL.js";
2
2
  import j, { useState as p, useEffect as x, createContext as V, useContext as B, forwardRef as u, useRef as z, useMemo as M } from "react";
3
- import { O as S, n as P, k as N, H as D } from "./image-rectangle-DGO9R_ox.js";
3
+ import { O as S, n as P, k as N, H as D } from "./image-rectangle-S0pOfTm5.js";
4
4
  import { XIcon as R } from "lucide-react";
5
5
  import "./snackbar-DH8jCh2V.js";
6
6
  function F() {
@@ -1,9 +1,9 @@
1
1
  import { c as v, j as e, a as m } from "./index-DOdDlCoL.js";
2
2
  import x, { createContext as N, useContext as z, useId as F, forwardRef as j, useRef as B, useState as R, useEffect as U, useMemo as E } from "react";
3
- import { I as C } from "./image-rectangle-DGO9R_ox.js";
3
+ import { I as C } from "./image-rectangle-S0pOfTm5.js";
4
4
  import { Calendar as X, SearchIcon as Y, Clock as Z, Banknote as ee, MailIcon as re, Check as P } from "lucide-react";
5
5
  import "./snackbar-DH8jCh2V.js";
6
- import { M as O, D as M, B as V } from "./bottom-sheet-BjNMFNXp.js";
6
+ import { M as O, D as M, B as V } from "./bottom-sheet-Da41OlDM.js";
7
7
  const te = v("space-y-2", {
8
8
  variants: {
9
9
  direction: {
@@ -1,4 +1,4 @@
1
- import { B as a, C as n, b as p, a as u, D as s, k as I, E as i, M as l, P as S, R as c, d as r, c as g, S as h, e as o, j as m, i as M, h as b, f as k, T as x, g as C } from "../bottom-sheet-input-BnuL4Cci.js";
1
+ import { B as a, C as n, b as p, a as u, D as s, k as I, E as i, M as l, P as S, R as c, d as r, c as g, S as h, e as o, j as m, i as M, h as b, f as k, T as x, g as C } from "../bottom-sheet-input-BB3FZtpr.js";
2
2
  export {
3
3
  a as BottomSheetInput,
4
4
  n as CheckboxInput,
@@ -2046,11 +2046,12 @@ const cardVariants = cva(
2046
2046
  {
2047
2047
  variants: {
2048
2048
  size: {
2049
- xs: "p-2",
2050
- sm: "p-3",
2051
- md: "p-4",
2052
- lg: "p-6",
2053
- xl: "p-8"
2049
+ none: "p-0",
2050
+ xs: "p-2 sm:p-2",
2051
+ sm: "p-2 sm:p-3",
2052
+ md: "p-3 sm:p-4",
2053
+ lg: "p-4 sm:p-6",
2054
+ xl: "p-6 sm:p-8"
2054
2055
  },
2055
2056
  shape: {
2056
2057
  rounded: "rounded-lg",
@@ -2072,7 +2073,7 @@ const cardVariants = cva(
2072
2073
  "ul",
2073
2074
  {
2074
2075
  ref: t,
2075
- className: "flex items-center min-w-0 overflow-hidden w-full",
2076
+ className: "flex flex-wrap items-center min-w-0 overflow-hidden w-full gap-x-0",
2076
2077
  children: e
2077
2078
  }
2078
2079
  )
@@ -2081,8 +2082,8 @@ const cardVariants = cva(
2081
2082
  "li",
2082
2083
  {
2083
2084
  ref: t,
2084
- className: "flex items-center min-w-0 flex-shrink after:content-[''] after:inline-block after:mx-2 after:w-1 after:h-1 after:rounded-full after:bg-ghost last:after:hidden after:flex-shrink-0",
2085
- children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "truncate min-w-0", children: e })
2085
+ className: "flex items-center min-w-0 flex-shrink-0 after:content-[''] after:inline-block after:mx-1.5 sm:after:mx-2 after:w-1 after:h-1 after:rounded-full after:bg-ghost last:after:hidden after:flex-shrink-0",
2086
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(Text, { as: "span", fontSize: "sm", color: "gray", ellipsis: !0, clamp: 1, children: e })
2086
2087
  }
2087
2088
  )
2088
2089
  ), CardRoot = forwardRef(
@@ -2105,28 +2106,37 @@ const cardVariants = cva(
2105
2106
  ref: d,
2106
2107
  className: cn(cardVariants({ size: e, shape: t, bordered: u }), f),
2107
2108
  ...n,
2108
- children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-start gap-4 w-full", children: [
2109
+ children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-start gap-3 sm:gap-4 w-full", children: [
2109
2110
  r && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex-shrink-0", children: r }),
2110
2111
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "w-full min-w-0", children: [
2111
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "mb-2", children: [
2112
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex justify-between", children: [
2112
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "mb-2", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-start justify-between gap-2", children: [
2113
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex-1 min-w-0", children: [
2113
2114
  /* @__PURE__ */ jsxRuntimeExports.jsx(
2114
2115
  Text,
2115
2116
  {
2116
2117
  as: "h3",
2117
2118
  fontSize: "base",
2118
2119
  fontWeight: "semibold",
2119
- className: "truncate",
2120
+ className: "break-words leading-tight",
2120
2121
  children: i
2121
2122
  }
2122
2123
  ),
2123
- l && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: l })
2124
+ s && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "mt-1", children: typeof s == "string" ? /* @__PURE__ */ jsxRuntimeExports.jsx(Text, { as: "p", fontSize: "sm", color: "gray", children: s }) : /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "min-w-0 overflow-hidden", children: s }) })
2124
2125
  ] }),
2125
- s && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: cn(l && "-mt-3"), children: typeof s == "string" ? /* @__PURE__ */ jsxRuntimeExports.jsx(Text, { as: "p", fontSize: "sm", color: "gray", children: s }) : /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "min-w-0 overflow-hidden", children: s }) })
2126
- ] }),
2127
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex justify-between items-center gap-2 flex-wrap ", children: [
2128
- o && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "mr-auto flex-shrink-0 flex-wrap", children: o }),
2129
- a && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "ml-auto flex-shrink-0", children: typeof a == "string" ? /* @__PURE__ */ jsxRuntimeExports.jsx(Text, { as: "p", fontSize: "sm", color: "gray", children: a }) : /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: a }) })
2126
+ l && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex-shrink-0 ml-2 -mt-1", children: l })
2127
+ ] }) }),
2128
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-2 sm:flex-row sm:justify-between sm:items-center", children: [
2129
+ o && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex-shrink-0 order-1 sm:order-none overflow-hidden", children: o }),
2130
+ a && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex-shrink-0 order-2 sm:order-none sm:ml-auto", children: typeof a == "string" ? /* @__PURE__ */ jsxRuntimeExports.jsx(
2131
+ Text,
2132
+ {
2133
+ as: "p",
2134
+ fontSize: "sm",
2135
+ color: "gray",
2136
+ className: "truncate",
2137
+ children: a
2138
+ }
2139
+ ) : /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "overflow-hidden", children: a }) })
2130
2140
  ] })
2131
2141
  ] })
2132
2142
  ] })
package/dist/js/index.js CHANGED
@@ -1,82 +1,83 @@
1
- import { L as e, P as s, S as r } from "./skeleton-BNZyaRjo.js";
2
- import { A as n, a as u, B as p, b as i, F as l, e as I, P as c, c as S, d as m, S as B, T as g } from "./top-bar-D8P4uwtN.js";
3
- import { B as b, C as T, b as x, a as h, D as f, k as C, E as M, M as P, P as A, R as k, d as F, c as D, S as L, e as H, j as R, i as w, h as G, f as j, T as q, g as v } from "./bottom-sheet-input-BnuL4Cci.js";
4
- import { B as E, D as N, M as z } from "./bottom-sheet-BjNMFNXp.js";
5
- import { A as K, a as O, b as Q, c as U, d as V, e as W, B as X, s as Y, f as Z, g as _, j as $, k as aa, h as ta, i as ea, C as sa, l as ra, F as oa, H as na, m as ua, I as pa, p as ia, r as la, q as Ia, M as ca, N as Sa, T as ma, n as Ba, o as ga } from "./image-rectangle-DGO9R_ox.js";
6
- import { T as ba } from "./tooltip-uCpYAX_O.js";
7
- import { S as xa } from "./snackbar-DH8jCh2V.js";
8
- import { B as fa, T as Ca } from "./tabs-lPDgArjA.js";
9
- import { S as Pa, u as Aa } from "./use-snackbars-CKi6BQDT.js";
1
+ import { L as t, P as s, S as r } from "./skeleton-BNZyaRjo.js";
2
+ import { A as n, a as u, B as p, b as i, F as l, f as I, P as c, c as S, d as m, e as B, S as g, T as d } from "./top-bar-DYbS1NgD.js";
3
+ import { B as T, C as x, b as f, a as h, D as P, k as C, E as M, M as A, P as k, R as F, d as L, c as D, S as H, e as R, j as w, i as G, h as j, f as q, T as v, g as y } from "./bottom-sheet-input-BB3FZtpr.js";
4
+ import { B as N, D as z, M as J } from "./bottom-sheet-Da41OlDM.js";
5
+ import { A as O, a as Q, b as U, c as V, d as W, e as X, B as Y, s as Z, f as _, g as $, j as aa, k as ea, h as ta, i as sa, C as ra, l as oa, F as na, H as ua, m as pa, I as ia, p as la, r as Ia, q as ca, M as Sa, N as ma, T as Ba, n as ga, o as da } from "./image-rectangle-S0pOfTm5.js";
6
+ import { T as Ta } from "./tooltip-VV9T0wn6.js";
7
+ import { S as fa } from "./snackbar-DH8jCh2V.js";
8
+ import { B as Pa, T as Ca } from "./tabs-C8iGcy7x.js";
9
+ import { S as Aa, u as ka } from "./use-snackbars-Cou8L41F.js";
10
10
  export {
11
- K as Accordion,
12
- O as Alert,
13
- Q as Anchor,
11
+ O as Accordion,
12
+ Q as Alert,
13
+ U as Anchor,
14
14
  n as AppBar,
15
- U as Attribute,
16
- V as AttributeList,
17
- W as Avatar,
18
- X as Badge,
15
+ V as Attribute,
16
+ W as AttributeList,
17
+ X as Avatar,
18
+ Y as Badge,
19
19
  u as BadgeGroup,
20
- Y as BaseImage,
20
+ Z as BaseImage,
21
21
  p as BottomBar,
22
- E as BottomSheet,
23
- b as BottomSheetInput,
24
- Z as Brand,
25
- fa as Breadcrumbs,
26
- _ as Button,
27
- $ as ButtonFloat,
22
+ N as BottomSheet,
23
+ T as BottomSheetInput,
24
+ _ as Brand,
25
+ Pa as Breadcrumbs,
26
+ $ as Button,
27
+ aa as ButtonFloat,
28
28
  i as ButtonGroup,
29
- aa as ButtonIcon,
29
+ ea as ButtonIcon,
30
30
  ta as ButtonMenu,
31
- ea as ButtonMenuIcon,
32
- sa as Calculator,
33
- ra as Card,
34
- T as CheckboxInput,
35
- x as ChipMultipleInput,
31
+ sa as ButtonMenuIcon,
32
+ ra as Calculator,
33
+ oa as Card,
34
+ x as CheckboxInput,
35
+ f as ChipMultipleInput,
36
36
  h as ChipSingleInput,
37
- f as DateSinglePickerInput,
38
- N as Drawer,
37
+ P as DateSinglePickerInput,
38
+ z as Drawer,
39
39
  C as DrawerInput,
40
40
  M as EmailInput,
41
- oa as FilterChip,
41
+ na as FilterChip,
42
42
  l as FilterChipGroup,
43
43
  I as FormLayout,
44
- na as Heading,
45
- ua as Hr,
46
- pa as Icon,
47
- ia as ImageCircle,
48
- la as ImageRectangle,
49
- Ia as ImageSquare,
50
- e as LoadingIndicator,
51
- ca as Menu,
52
- z as Modal,
53
- P as ModalInput,
54
- Sa as NoResults,
44
+ ua as Heading,
45
+ pa as Hr,
46
+ ia as Icon,
47
+ la as ImageCircle,
48
+ Ia as ImageRectangle,
49
+ ca as ImageSquare,
50
+ t as LoadingIndicator,
51
+ Sa as Menu,
52
+ J as Modal,
53
+ A as ModalInput,
54
+ ma as NoResults,
55
55
  c as PageContent,
56
56
  S as PageHeader,
57
57
  m as PageLayout,
58
- A as PriceInput,
58
+ B as PageLoader,
59
+ k as PriceInput,
59
60
  s as ProgressIndicator,
60
- k as RadioInput,
61
- F as SearchInput,
61
+ F as RadioInput,
62
+ L as SearchInput,
62
63
  D as SegmentMultipleInput,
63
- L as SegmentSingleInput,
64
- H as SelectInput,
65
- R as SelectableMultipleInput,
66
- w as SelectableSingleInput,
67
- B as SideBar,
64
+ H as SegmentSingleInput,
65
+ R as SelectInput,
66
+ w as SelectableMultipleInput,
67
+ G as SelectableSingleInput,
68
+ g as SideBar,
68
69
  r as Skeleton,
69
- xa as Snackbar,
70
- Pa as SnackbarsProvider,
71
- G as SwitchInput,
72
- ma as Table,
70
+ fa as Snackbar,
71
+ Aa as SnackbarsProvider,
72
+ j as SwitchInput,
73
+ Ba as Table,
73
74
  Ca as Tabs,
74
- Ba as Text,
75
- j as TextAreaInput,
76
- q as TextInput,
77
- ga as Tile,
78
- v as TimePickerInput,
79
- ba as Tooltip,
80
- g as TopBar,
81
- Aa as useSnackbars
75
+ ga as Text,
76
+ q as TextAreaInput,
77
+ v as TextInput,
78
+ da as Tile,
79
+ y as TimePickerInput,
80
+ Ta as Tooltip,
81
+ d as TopBar,
82
+ ka as useSnackbars
82
83
  };
@@ -1,7 +1,7 @@
1
- import { A as r, a as e, B as s, b as t, F as p, e as B, P as u, c as d, d as g, S as P, T as i } from "../top-bar-D8P4uwtN.js";
1
+ import { A as e, a as r, B as s, b as t, F as p, f as B, P as u, c as d, d as g, e as P, S as i, T as m } from "../top-bar-DYbS1NgD.js";
2
2
  export {
3
- r as AppBar,
4
- e as BadgeGroup,
3
+ e as AppBar,
4
+ r as BadgeGroup,
5
5
  s as BottomBar,
6
6
  t as ButtonGroup,
7
7
  p as FilterChipGroup,
@@ -9,6 +9,7 @@ export {
9
9
  u as PageContent,
10
10
  d as PageHeader,
11
11
  g as PageLayout,
12
- P as SideBar,
13
- i as TopBar
12
+ P as PageLoader,
13
+ i as SideBar,
14
+ m as TopBar
14
15
  };
@@ -1,4 +1,4 @@
1
- import { B as s, T as b } from "../tabs-lPDgArjA.js";
1
+ import { B as s, T as b } from "../tabs-C8iGcy7x.js";
2
2
  export {
3
3
  s as Breadcrumbs,
4
4
  b as Tabs
@@ -1,6 +1,6 @@
1
- import { B as a, D as e, M as t } from "../bottom-sheet-BjNMFNXp.js";
2
- import { M as m } from "../image-rectangle-DGO9R_ox.js";
3
- import { T as M } from "../tooltip-uCpYAX_O.js";
1
+ import { B as a, D as e, M as t } from "../bottom-sheet-Da41OlDM.js";
2
+ import { M as m } from "../image-rectangle-S0pOfTm5.js";
3
+ import { T as M } from "../tooltip-VV9T0wn6.js";
4
4
  export {
5
5
  a as BottomSheet,
6
6
  e as Drawer,
@@ -1,4 +1,4 @@
1
- import { A as t, a as e, b as o, c as r, d as n, e as u, B as c, s as l, f as i, g as B, j as g, k as I, h as m, i as A, C as d, l as b, F as C, H as p, m as T, I as f, p as h, r as x, q as F, N as H, T as S, n as k, o as q } from "../image-rectangle-DGO9R_ox.js";
1
+ import { A as t, a as e, b as o, c as r, d as n, e as u, B as c, s as l, f as i, g as B, j as g, k as I, h as m, i as A, C as d, l as b, F as C, H as p, m as T, I as f, p as h, r as x, q as F, N as H, T as S, n as k, o as q } from "../image-rectangle-S0pOfTm5.js";
2
2
  import { S as N } from "../snackbar-DH8jCh2V.js";
3
3
  export {
4
4
  t as Accordion,
@@ -1,4 +1,4 @@
1
- import { S as s, u as e } from "../use-snackbars-CKi6BQDT.js";
1
+ import { S as s, u as e } from "../use-snackbars-Cou8L41F.js";
2
2
  export {
3
3
  s as SnackbarsProvider,
4
4
  e as useSnackbars
@@ -1,6 +1,6 @@
1
1
  import { c as d, j as s, a as u } from "./index-DOdDlCoL.js";
2
2
  import { forwardRef as f, createContext as x, useContext as g, useState as p, useLayoutEffect as y, useRef as h } from "react";
3
- import { I as w } from "./image-rectangle-DGO9R_ox.js";
3
+ import { I as w } from "./image-rectangle-S0pOfTm5.js";
4
4
  import "./snackbar-DH8jCh2V.js";
5
5
  import { ChevronRight as T } from "lucide-react";
6
6
  const j = d(
@@ -1,6 +1,6 @@
1
1
  import { c as v, j as c, a as w } from "./index-DOdDlCoL.js";
2
2
  import { useRef as m, useState as d, useEffect as h, useId as T, cloneElement as j } from "react";
3
- import { n as y } from "./image-rectangle-DGO9R_ox.js";
3
+ import { n as y } from "./image-rectangle-S0pOfTm5.js";
4
4
  function P(e = "auto") {
5
5
  const n = m(null), [a, t] = d("bottom");
6
6
  return h(() => {
@@ -1,9 +1,10 @@
1
- import { c as i, j as r, a as l } from "./index-DOdDlCoL.js";
1
+ import { c as i, j as s, a as l } from "./index-DOdDlCoL.js";
2
2
  import * as v from "react";
3
3
  import { forwardRef as o } from "react";
4
- import { n as f } from "./image-rectangle-DGO9R_ox.js";
4
+ import { n as f } from "./image-rectangle-S0pOfTm5.js";
5
5
  import "./snackbar-DH8jCh2V.js";
6
- const h = i(
6
+ import { L as h } from "./skeleton-BNZyaRjo.js";
7
+ const j = i(
7
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",
8
9
  {
9
10
  variants: {
@@ -19,7 +20,7 @@ const h = i(
19
20
  variant: "primary"
20
21
  }
21
22
  }
22
- ), j = i(
23
+ ), y = i(
23
24
  "flex flex-col justify-center min-w-0 flex-grow",
24
25
  {
25
26
  variants: {
@@ -33,8 +34,8 @@ const h = i(
33
34
  placement: "start"
34
35
  }
35
36
  }
36
- ), y = o(
37
- ({ children: t, className: a }, e) => /* @__PURE__ */ r.jsx(
37
+ ), w = o(
38
+ ({ children: t, className: a }, e) => /* @__PURE__ */ s.jsx(
38
39
  "div",
39
40
  {
40
41
  ref: e,
@@ -44,7 +45,7 @@ const h = i(
44
45
  }
45
46
  )
46
47
  ), B = o(
47
- ({ children: t, className: a }, e) => /* @__PURE__ */ r.jsx(
48
+ ({ children: t, className: a }, e) => /* @__PURE__ */ s.jsx(
48
49
  "div",
49
50
  {
50
51
  ref: e,
@@ -53,7 +54,7 @@ const h = i(
53
54
  children: t
54
55
  }
55
56
  )
56
- ), w = o(({ children: t, ...a }, e) => /* @__PURE__ */ r.jsx(
57
+ ), N = o(({ children: t, ...a }, e) => /* @__PURE__ */ s.jsx(
57
58
  f,
58
59
  {
59
60
  ...a,
@@ -65,7 +66,7 @@ const h = i(
65
66
  clamp: 1,
66
67
  children: t
67
68
  }
68
- )), N = o(({ children: t, ...a }, e) => /* @__PURE__ */ r.jsx(
69
+ )), V = o(({ children: t, ...a }, e) => /* @__PURE__ */ s.jsx(
69
70
  f,
70
71
  {
71
72
  ...a,
@@ -78,8 +79,8 @@ const h = i(
78
79
  color: "gray",
79
80
  children: t
80
81
  }
81
- )), V = o(
82
- ({ children: t, className: a }, e) => /* @__PURE__ */ r.jsx(
82
+ )), S = o(
83
+ ({ children: t, className: a }, e) => /* @__PURE__ */ s.jsx(
83
84
  "div",
84
85
  {
85
86
  ref: e,
@@ -88,33 +89,33 @@ const h = i(
88
89
  children: t
89
90
  }
90
91
  )
91
- ), S = o(
92
- ({ children: t, className: a, placement: e }, s) => /* @__PURE__ */ r.jsx(
92
+ ), T = o(
93
+ ({ children: t, className: a, placement: e }, r) => /* @__PURE__ */ s.jsx(
93
94
  "div",
94
95
  {
95
- ref: s,
96
- className: l(j({ placement: e }), a),
96
+ ref: r,
97
+ className: l(y({ placement: e }), a),
97
98
  children: t
98
99
  }
99
100
  )
100
- ), T = ({
101
+ ), L = ({
101
102
  children: t,
102
103
  className: a,
103
104
  variant: e = "primary"
104
- }) => /* @__PURE__ */ r.jsx(
105
+ }) => /* @__PURE__ */ s.jsx(
105
106
  "header",
106
107
  {
107
- className: l(h({ variant: e }), a),
108
+ className: l(j({ variant: e }), a),
108
109
  role: "banner",
109
110
  children: t
110
111
  }
111
- ), Na = Object.assign(T, {
112
+ ), La = Object.assign(L, {
112
113
  Leading: B,
113
- Headline: w,
114
- Subtitle: N,
115
- Trailing: V,
116
- Center: S,
117
- Bottom: y
114
+ Headline: N,
115
+ Subtitle: V,
116
+ Trailing: S,
117
+ Center: T,
118
+ Bottom: w
118
119
  }), H = i(
119
120
  "sticky bottom-0 w-full flex justify-around items-center bg-white border-t border-border shadow-xs z-40 safe-bottom gap-4 select-none px-8",
120
121
  {
@@ -155,46 +156,46 @@ const h = i(
155
156
  as: "button"
156
157
  }
157
158
  }
158
- ), A = o(
159
+ ), P = o(
159
160
  ({
160
161
  as: t = "button",
161
162
  icon: a,
162
163
  label: e,
163
- active: s = !1,
164
+ active: r = !1,
164
165
  className: n,
165
166
  children: c,
166
167
  ...p
167
- }, d) => /* @__PURE__ */ r.jsxs(
168
+ }, d) => /* @__PURE__ */ s.jsxs(
168
169
  t,
169
170
  {
170
171
  ref: d,
171
- "aria-current": s ? "page" : void 0,
172
- className: z({ active: s, className: n, as: t }),
172
+ "aria-current": r ? "page" : void 0,
173
+ className: z({ active: r, className: n, as: t }),
173
174
  ...p,
174
175
  children: [
175
176
  a && a,
176
177
  c && c,
177
- e && /* @__PURE__ */ r.jsx("span", { className: "text-xs mt-0.5", children: e })
178
+ e && /* @__PURE__ */ s.jsx("span", { className: "text-xs mt-0.5", children: e })
178
179
  ]
179
180
  }
180
181
  )
181
- ), P = ({
182
+ ), A = ({
182
183
  children: t,
183
184
  variant: a = "primary",
184
185
  size: e = "md",
185
- className: s,
186
+ className: r,
186
187
  ...n
187
- }) => /* @__PURE__ */ r.jsx(
188
+ }) => /* @__PURE__ */ s.jsx(
188
189
  "nav",
189
190
  {
190
191
  role: "navigation",
191
192
  "aria-label": "Bottom navigation",
192
- className: H({ variant: a, size: e, className: s }),
193
+ className: H({ variant: a, size: e, className: r }),
193
194
  ...n,
194
195
  children: t
195
196
  }
196
- ), Va = Object.assign(P, {
197
- Item: A
197
+ ), Ha = Object.assign(A, {
198
+ Item: P
198
199
  }), C = i("flex", {
199
200
  variants: {
200
201
  orientation: {
@@ -227,24 +228,24 @@ const h = i(
227
228
  gap: "md",
228
229
  fluid: !1
229
230
  }
230
- }), Sa = o(
231
+ }), za = o(
231
232
  function({
232
233
  className: a,
233
234
  children: e,
234
- orientation: s = "horizontal",
235
+ orientation: r = "horizontal",
235
236
  alignment: n = "start",
236
237
  gap: c = "md",
237
238
  fluid: p = !1,
238
239
  hasMargin: d,
239
240
  ...u
240
241
  }, m) {
241
- return /* @__PURE__ */ r.jsx(
242
+ return /* @__PURE__ */ s.jsx(
242
243
  "div",
243
244
  {
244
245
  ref: m,
245
246
  className: l(
246
247
  C({
247
- orientation: s,
248
+ orientation: r,
248
249
  alignment: n,
249
250
  gap: c,
250
251
  fluid: p
@@ -258,7 +259,7 @@ const h = i(
258
259
  }
259
260
  );
260
261
  }
261
- ), L = i("flex", {
262
+ ), R = i("flex", {
262
263
  variants: {
263
264
  orientation: {
264
265
  horizontal: "flex-row",
@@ -290,24 +291,24 @@ const h = i(
290
291
  gap: "md",
291
292
  fluid: !1
292
293
  }
293
- }), Ta = o(
294
+ }), Pa = o(
294
295
  function({
295
296
  className: a,
296
297
  children: e,
297
- orientation: s = "horizontal",
298
+ orientation: r = "horizontal",
298
299
  alignment: n = "start",
299
300
  gap: c = "md",
300
301
  fluid: p = !1,
301
302
  hasMargin: d,
302
303
  ...u
303
304
  }, m) {
304
- return /* @__PURE__ */ r.jsx(
305
+ return /* @__PURE__ */ s.jsx(
305
306
  "div",
306
307
  {
307
308
  ref: m,
308
309
  className: l(
309
- L({
310
- orientation: s,
310
+ R({
311
+ orientation: r,
311
312
  alignment: n,
312
313
  gap: c,
313
314
  fluid: p
@@ -353,24 +354,24 @@ const h = i(
353
354
  gap: "md",
354
355
  fluid: !1
355
356
  }
356
- }), Ha = o(
357
+ }), Aa = o(
357
358
  function({
358
359
  className: a,
359
360
  children: e,
360
- orientation: s = "horizontal",
361
+ orientation: r = "horizontal",
361
362
  alignment: n = "start",
362
363
  gap: c = "md",
363
364
  fluid: p = !1,
364
365
  hasMargin: d,
365
366
  ...u
366
367
  }, m) {
367
- return /* @__PURE__ */ r.jsx(
368
+ return /* @__PURE__ */ s.jsx(
368
369
  "div",
369
370
  {
370
371
  ref: m,
371
372
  className: l(
372
373
  G({
373
- orientation: s,
374
+ orientation: r,
374
375
  alignment: n,
375
376
  gap: c,
376
377
  fluid: p
@@ -384,54 +385,54 @@ const h = i(
384
385
  }
385
386
  );
386
387
  }
387
- ), R = i("w-full px-4 sm:px-6 py-6 sm:py-8"), za = o(
388
- ({ children: t, className: a, ...e }, s) => /* @__PURE__ */ r.jsx(
388
+ ), I = i("w-full px-4 sm:px-6 py-6 sm:py-8"), Ca = o(
389
+ ({ children: t, className: a, ...e }, r) => /* @__PURE__ */ s.jsx(
389
390
  "div",
390
391
  {
391
- ref: s,
392
- className: l(R(), a),
392
+ ref: r,
393
+ className: l(I(), a),
393
394
  ...e,
394
395
  children: t
395
396
  }
396
397
  )
397
- ), I = i("w-full mt-4"), k = i(
398
+ ), k = i("w-full mt-4"), F = i(
398
399
  "flex flex-col sm:flex-row sm:items-start sm:justify-between gap-4 px-4 sm:px-6 mb-4"
399
- ), F = i("mb-4 px-4 sm:px-6"), O = i(
400
+ ), O = i("mb-4 px-4 sm:px-6"), W = i(
400
401
  "flex-1 min-w-0 flex flex-col gap-2 w-full sm:w-auto"
401
- ), W = i("flex items-center gap-2 flex-wrap"), M = i(
402
+ ), M = i("flex items-center gap-2 flex-wrap"), E = i(
402
403
  "hidden md:flex flex-col sm:flex-row gap-2 sm:gap-3 w-full w-auto sm:ml-auto sm:shrink-0 [&>*]:w-full sm:[&>*]:w-auto"
403
- ), E = i("md:hidden"), $ = i(
404
+ ), $ = i("md:hidden"), q = i(
404
405
  "w-full flex items-center px-4 sm:px-6 py-0 overflow-x-auto"
405
- ), q = o(
406
- ({ children: t, className: a, ...e }, s) => /* @__PURE__ */ r.jsx(
406
+ ), D = o(
407
+ ({ children: t, className: a, ...e }, r) => /* @__PURE__ */ s.jsx(
407
408
  "div",
408
409
  {
409
- ref: s,
410
- className: l(k(), a),
410
+ ref: r,
411
+ className: l(F(), a),
411
412
  "data-versaur-page-header-top": !0,
412
413
  ...e,
413
414
  children: t
414
415
  }
415
416
  )
416
- ), D = o(({ children: t, className: a, ...e }, s) => /* @__PURE__ */ r.jsx(
417
+ ), J = o(({ children: t, className: a, ...e }, r) => /* @__PURE__ */ s.jsx(
417
418
  "div",
418
419
  {
419
- ref: s,
420
- className: l(F(), a),
420
+ ref: r,
421
+ className: l(O(), a),
421
422
  "data-versaur-page-header-breadcrumbs": !0,
422
423
  ...e,
423
424
  children: t
424
425
  }
425
- )), J = o(({ children: t, className: a, ...e }, s) => /* @__PURE__ */ r.jsx(
426
+ )), K = o(({ children: t, className: a, ...e }, r) => /* @__PURE__ */ s.jsx(
426
427
  "div",
427
428
  {
428
- ref: s,
429
- className: l(O(), a),
429
+ ref: r,
430
+ className: l(W(), a),
430
431
  "data-versaur-page-header-content": !0,
431
432
  ...e,
432
433
  children: t
433
434
  }
434
- )), K = o((t, a) => /* @__PURE__ */ r.jsx(
435
+ )), Q = o((t, a) => /* @__PURE__ */ s.jsx(
435
436
  f,
436
437
  {
437
438
  ...t,
@@ -441,7 +442,7 @@ const h = i(
441
442
  ellipsis: !0,
442
443
  ref: a
443
444
  }
444
- )), Q = o(({ className: t, ...a }, e) => /* @__PURE__ */ r.jsx(
445
+ )), U = o(({ className: t, ...a }, e) => /* @__PURE__ */ s.jsx(
445
446
  f,
446
447
  {
447
448
  as: "p",
@@ -452,83 +453,83 @@ const h = i(
452
453
  className: l("mb-2 sm:clamp-3", t),
453
454
  ...a
454
455
  }
455
- )), U = o(({ children: t, className: a, ...e }, s) => /* @__PURE__ */ r.jsx(
456
+ )), X = o(({ children: t, className: a, ...e }, r) => /* @__PURE__ */ s.jsx(
456
457
  "div",
457
458
  {
458
- ref: s,
459
- className: l(W(), a),
459
+ ref: r,
460
+ className: l(M(), a),
460
461
  "data-versaur-page-header-badges": !0,
461
462
  ...e,
462
463
  children: t
463
464
  }
464
- )), X = o(({ children: t, className: a, ...e }, s) => /* @__PURE__ */ r.jsx(
465
+ )), Y = o(({ children: t, className: a, ...e }, r) => /* @__PURE__ */ s.jsx(
465
466
  "div",
466
467
  {
467
- ref: s,
468
- className: l(M(), a),
468
+ ref: r,
469
+ className: l(E(), a),
469
470
  "data-versaur-page-header-actions": !0,
470
471
  ...e,
471
472
  children: t
472
473
  }
473
- )), Y = o(({ children: t, className: a, ...e }, s) => /* @__PURE__ */ r.jsx(
474
+ )), Z = o(({ children: t, className: a, ...e }, r) => /* @__PURE__ */ s.jsx(
474
475
  "div",
475
476
  {
476
- ref: s,
477
- className: l(E(), a),
477
+ ref: r,
478
+ className: l($(), a),
478
479
  "data-versaur-page-header-mobile-actions": !0,
479
480
  ...e,
480
481
  children: t
481
482
  }
482
- )), Z = o(({ children: t, className: a, ...e }, s) => /* @__PURE__ */ r.jsx(
483
+ )), _ = o(({ children: t, className: a, ...e }, r) => /* @__PURE__ */ s.jsx(
483
484
  "div",
484
485
  {
485
- ref: s,
486
- className: l($(), a),
486
+ ref: r,
487
+ className: l(q(), a),
487
488
  "data-versaur-page-header-bottom": !0,
488
489
  ...e,
489
490
  children: t
490
491
  }
491
- )), _ = o(
492
+ )), aa = o(
492
493
  ({
493
494
  children: t,
494
495
  className: a,
495
496
  title: e,
496
- subtitle: s,
497
+ subtitle: r,
497
498
  breadcrumbs: n,
498
499
  badges: c,
499
500
  actions: p,
500
501
  mobileActions: d,
501
502
  tabs: u,
502
503
  ...m
503
- }, g) => {
504
+ }, x) => {
504
505
  const b = u;
505
- return /* @__PURE__ */ r.jsxs(
506
+ return /* @__PURE__ */ s.jsxs(
506
507
  "header",
507
508
  {
508
- ref: g,
509
- className: l(I(), a),
509
+ ref: x,
510
+ className: l(k(), a),
510
511
  role: "banner",
511
512
  ...m,
512
513
  children: [
513
- n && /* @__PURE__ */ r.jsx(D, { children: n }),
514
- /* @__PURE__ */ r.jsxs(q, { children: [
515
- /* @__PURE__ */ r.jsxs(J, { children: [
516
- /* @__PURE__ */ r.jsxs("div", { className: "flex items-center justify-between", children: [
517
- /* @__PURE__ */ r.jsx(K, { children: e }),
518
- d && /* @__PURE__ */ r.jsx(Y, { children: d })
514
+ n && /* @__PURE__ */ s.jsx(J, { children: n }),
515
+ /* @__PURE__ */ s.jsxs(D, { children: [
516
+ /* @__PURE__ */ s.jsxs(K, { children: [
517
+ /* @__PURE__ */ s.jsxs("div", { className: "flex items-center justify-between", children: [
518
+ /* @__PURE__ */ s.jsx(Q, { children: e }),
519
+ d && /* @__PURE__ */ s.jsx(Z, { children: d })
519
520
  ] }),
520
- s && /* @__PURE__ */ r.jsx(Q, { children: s }),
521
- c && /* @__PURE__ */ r.jsx(U, { children: c })
521
+ r && /* @__PURE__ */ s.jsx(U, { children: r }),
522
+ c && /* @__PURE__ */ s.jsx(X, { children: c })
522
523
  ] }),
523
- p && /* @__PURE__ */ r.jsx(X, { children: p })
524
+ p && /* @__PURE__ */ s.jsx(Y, { children: p })
524
525
  ] }),
525
- b && /* @__PURE__ */ r.jsx(Z, { children: u }),
526
+ b && /* @__PURE__ */ s.jsx(_, { children: u }),
526
527
  t
527
528
  ]
528
529
  }
529
530
  );
530
531
  }
531
- ), Aa = _, aa = i("w-full mx-auto relative", {
532
+ ), Ra = aa, ea = i("w-full mx-auto relative", {
532
533
  variants: {
533
534
  type: {
534
535
  desktop: "max-w-7xl px-6 pb-10",
@@ -539,19 +540,89 @@ const h = i(
539
540
  defaultVariants: {
540
541
  type: "desktop"
541
542
  }
542
- }), Pa = v.forwardRef(
543
- function({ type: a = "desktop", className: e, children: s, ...n }, c) {
544
- return /* @__PURE__ */ r.jsx(
543
+ }), Ga = v.forwardRef(
544
+ function({ type: a = "desktop", className: e, children: r, ...n }, c) {
545
+ return /* @__PURE__ */ s.jsx(
545
546
  "div",
546
547
  {
547
548
  ref: c,
548
- className: l(aa({ type: a }), e),
549
+ className: l(ea({ type: a }), e),
549
550
  ...n,
550
- children: s
551
+ children: r
552
+ }
553
+ );
554
+ }
555
+ ), ta = i(
556
+ [
557
+ // Base styles: flex container that centers content
558
+ "flex",
559
+ "items-center",
560
+ "justify-center",
561
+ "flex-col",
562
+ "gap-3",
563
+ // Ensure it takes available space
564
+ "flex-grow",
565
+ "w-full"
566
+ ],
567
+ {
568
+ variants: {
569
+ minimal: {
570
+ false: [
571
+ // Full height for standalone page loading
572
+ "min-h-96",
573
+ "h-full"
574
+ ],
575
+ true: [
576
+ // Minimal height for inline loading states
577
+ "min-h-32",
578
+ "py-8"
579
+ ]
580
+ }
581
+ },
582
+ defaultVariants: {
583
+ minimal: !1
584
+ }
585
+ }
586
+ ), sa = i([
587
+ "text-foreground-light",
588
+ "text-sm",
589
+ "text-center",
590
+ "max-w-xs"
591
+ ]), Ia = v.forwardRef(
592
+ function({
593
+ type: a = "bar",
594
+ size: e = "sm",
595
+ color: r = "primary",
596
+ ariaLabel: n = "Loading page",
597
+ message: c,
598
+ minimal: p = !1,
599
+ className: d,
600
+ children: u,
601
+ ...m
602
+ }, x) {
603
+ return /* @__PURE__ */ s.jsxs(
604
+ "div",
605
+ {
606
+ ref: x,
607
+ className: l(ta({ minimal: p }), d),
608
+ ...m,
609
+ children: [
610
+ /* @__PURE__ */ s.jsx("div", { className: "max-w-xs w-full flex justify-center", children: /* @__PURE__ */ s.jsx(
611
+ h,
612
+ {
613
+ type: a,
614
+ size: e,
615
+ color: r,
616
+ ariaLabel: n
617
+ }
618
+ ) }),
619
+ c && /* @__PURE__ */ s.jsx("p", { className: sa(), "aria-live": "polite", children: c }),
620
+ u
621
+ ]
551
622
  }
552
623
  );
553
624
  }
554
- ), ea = i("grid w-full gap-4 grid-cols-12"), ta = i("", {
625
+ ), ra = i("grid w-full gap-4 grid-cols-12"), na = i("", {
555
626
  variants: {
556
627
  span: {
557
628
  1: "col-span-1",
@@ -571,37 +642,37 @@ const h = i(
571
642
  defaultVariants: {
572
643
  span: "4"
573
644
  }
574
- }), sa = o(
575
- function({ className: a, children: e, ...s }, n) {
576
- return /* @__PURE__ */ r.jsx(
645
+ }), oa = o(
646
+ function({ className: a, children: e, ...r }, n) {
647
+ return /* @__PURE__ */ s.jsx(
577
648
  "div",
578
649
  {
579
650
  ref: n,
580
- className: l(ea(), a),
581
- ...s,
651
+ className: l(ra(), a),
652
+ ...r,
582
653
  children: e
583
654
  }
584
655
  );
585
656
  }
586
- ), ra = o(
587
- function({ span: a = 4, className: e, children: s, ...n }, c) {
657
+ ), ia = o(
658
+ function({ span: a = 4, className: e, children: r, ...n }, c) {
588
659
  const p = Math.min(12, Math.max(1, a));
589
- return /* @__PURE__ */ r.jsx(
660
+ return /* @__PURE__ */ s.jsx(
590
661
  "div",
591
662
  {
592
663
  ref: c,
593
664
  className: l(
594
- ta({ span: `${p}` }),
665
+ na({ span: `${p}` }),
595
666
  e
596
667
  ),
597
668
  ...n,
598
- children: s
669
+ children: r
599
670
  }
600
671
  );
601
672
  }
602
- ), Ca = Object.assign(sa, {
603
- Column: ra
604
- }), x = i(
673
+ ), ka = Object.assign(oa, {
674
+ Column: ia
675
+ }), g = i(
605
676
  "flex items-center gap-2 px-4 py-2 rounded-md hover:text-primary focus:outline-none transition-colors",
606
677
  {
607
678
  variants: {
@@ -619,52 +690,52 @@ const h = i(
619
690
  disabled: !1
620
691
  }
621
692
  }
622
- ), na = o(
693
+ ), la = o(
623
694
  (t, a) => {
624
- const { icon: e, children: s, href: n, onClick: c, active: p, ...d } = t;
695
+ const { icon: e, children: r, href: n, onClick: c, active: p, ...d } = t;
625
696
  if (typeof n == "string") {
626
697
  const m = d;
627
- return /* @__PURE__ */ r.jsx("li", { children: /* @__PURE__ */ r.jsxs(
698
+ return /* @__PURE__ */ s.jsx("li", { children: /* @__PURE__ */ s.jsxs(
628
699
  "a",
629
700
  {
630
701
  ref: a,
631
702
  href: n,
632
- className: x({
703
+ className: g({
633
704
  disabled: !!t["aria-disabled"],
634
705
  active: p
635
706
  }),
636
707
  ...m,
637
708
  children: [
638
709
  e,
639
- /* @__PURE__ */ r.jsx(f, { as: "span", color: "inherit", fontSize: "sm", children: s })
710
+ /* @__PURE__ */ s.jsx(f, { as: "span", color: "inherit", fontSize: "sm", children: r })
640
711
  ]
641
712
  }
642
713
  ) });
643
714
  } else {
644
715
  const m = d;
645
- return /* @__PURE__ */ r.jsx("li", { children: /* @__PURE__ */ r.jsxs(
716
+ return /* @__PURE__ */ s.jsx("li", { children: /* @__PURE__ */ s.jsxs(
646
717
  "button",
647
718
  {
648
719
  ref: a,
649
720
  type: "button",
650
721
  onClick: c,
651
722
  className: l(
652
- x({ disabled: !!m.disabled, active: p }),
723
+ g({ disabled: !!m.disabled, active: p }),
653
724
  "w-full text-left"
654
725
  ),
655
726
  ...m,
656
727
  children: [
657
728
  e,
658
- /* @__PURE__ */ r.jsx(f, { as: "span", color: "inherit", fontSize: "sm", children: s })
729
+ /* @__PURE__ */ s.jsx(f, { as: "span", color: "inherit", fontSize: "sm", children: r })
659
730
  ]
660
731
  }
661
732
  ) });
662
733
  }
663
734
  }
664
- ), oa = o(
665
- function({ children: a, label: e, ...s }, n) {
666
- return /* @__PURE__ */ r.jsxs("li", { ref: n, className: "flex flex-col gap-2 mt-2", ...s, children: [
667
- /* @__PURE__ */ r.jsx(
735
+ ), ca = o(
736
+ function({ children: a, label: e, ...r }, n) {
737
+ return /* @__PURE__ */ s.jsxs("li", { ref: n, className: "flex flex-col gap-2 mt-2", ...r, children: [
738
+ /* @__PURE__ */ s.jsx(
668
739
  f,
669
740
  {
670
741
  as: "h2",
@@ -675,30 +746,30 @@ const h = i(
675
746
  children: e
676
747
  }
677
748
  ),
678
- /* @__PURE__ */ r.jsx("ul", { className: "flex flex-col gap-1", children: a })
749
+ /* @__PURE__ */ s.jsx("ul", { className: "flex flex-col gap-1", children: a })
679
750
  ] });
680
751
  }
681
- ), ia = o(
682
- ({ children: t, ...a }, e) => /* @__PURE__ */ r.jsx(
752
+ ), pa = o(
753
+ ({ children: t, ...a }, e) => /* @__PURE__ */ s.jsx(
683
754
  "nav",
684
755
  {
685
756
  ref: e,
686
757
  className: "w-56 bg-background border-r border-border flex flex-col my-2",
687
758
  "aria-label": "Sidebar",
688
759
  ...a,
689
- children: /* @__PURE__ */ r.jsx("div", { className: "flex-1 overflow-y-auto scrollbar-thin scrollbar-thumb-border scrollbar-track-background", children: /* @__PURE__ */ r.jsx("ul", { className: "flex flex-col gap-1 mx-2", children: t }) })
760
+ 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 }) })
690
761
  }
691
762
  )
692
- ), La = Object.assign(ia, {
693
- Item: na,
694
- Group: oa
695
- }), la = i(
763
+ ), Fa = Object.assign(pa, {
764
+ Item: la,
765
+ Group: ca
766
+ }), da = i(
696
767
  "w-full flex items-center px-6 py-4 mb-6 border-b border-border shadow-xs bg-white",
697
768
  {
698
769
  variants: {},
699
770
  defaultVariants: {}
700
771
  }
701
- ), ca = i("flex items-center gap-3 min-w-0 flex-1"), pa = i("flex items-center gap-2 ml-auto"), da = i(
772
+ ), ma = i("flex items-center gap-3 min-w-0 flex-1"), ua = i("flex items-center gap-2 ml-auto"), fa = i(
702
773
  "px-2.5 py-1.5 rounded-md text-sm cursor-pointer transition-colors",
703
774
  {
704
775
  variants: {
@@ -711,54 +782,55 @@ const h = i(
711
782
  active: !1
712
783
  }
713
784
  }
714
- ), ma = i("flex items-center gap-2 ml-4"), ua = i("flex items-center gap-2 mr-4"), fa = o(
715
- function({ children: a, className: e, ...s }, n) {
716
- return /* @__PURE__ */ r.jsx("nav", { ref: n, className: ma({ className: e }), ...s, children: a });
785
+ ), xa = i("flex items-center gap-2 ml-4"), ga = i("flex items-center gap-2 mr-4"), va = o(
786
+ function({ children: a, className: e, ...r }, n) {
787
+ return /* @__PURE__ */ s.jsx("nav", { ref: n, className: xa({ className: e }), ...r, children: a });
717
788
  }
718
- ), xa = o(
719
- function({ children: a, className: e, ...s }, n) {
720
- return /* @__PURE__ */ r.jsx("div", { ref: n, className: ua({ className: e }), ...s, children: a });
789
+ ), ba = o(
790
+ function({ children: a, className: e, ...r }, n) {
791
+ return /* @__PURE__ */ s.jsx("div", { ref: n, className: ga({ className: e }), ...r, children: a });
721
792
  }
722
- ), ga = o(
723
- function({ children: a, className: e, ...s }, n) {
724
- return /* @__PURE__ */ r.jsx("div", { ref: n, className: ca({ className: e }), ...s, children: a });
793
+ ), ha = o(
794
+ function({ children: a, className: e, ...r }, n) {
795
+ return /* @__PURE__ */ s.jsx("div", { ref: n, className: ma({ className: e }), ...r, children: a });
725
796
  }
726
- ), ba = o(
727
- function({ children: a, className: e, ...s }, n) {
728
- return /* @__PURE__ */ r.jsx("div", { ref: n, className: pa({ className: e }), ...s, children: a });
797
+ ), ja = o(
798
+ function({ children: a, className: e, ...r }, n) {
799
+ return /* @__PURE__ */ s.jsx("div", { ref: n, className: ua({ className: e }), ...r, children: a });
729
800
  }
730
- ), va = o(
731
- function({ children: a, className: e, active: s, ...n }, c) {
732
- return /* @__PURE__ */ r.jsx(
801
+ ), ya = o(
802
+ function({ children: a, className: e, active: r, ...n }, c) {
803
+ return /* @__PURE__ */ s.jsx(
733
804
  "div",
734
805
  {
735
806
  ref: c,
736
- className: da({ active: s, className: e }),
737
- "aria-current": s ? "page" : void 0,
807
+ className: fa({ active: r, className: e }),
808
+ "aria-current": r ? "page" : void 0,
738
809
  ...n,
739
810
  children: a
740
811
  }
741
812
  );
742
813
  }
743
- ), ha = o(
744
- ({ children: t, className: a, ...e }, s) => /* @__PURE__ */ r.jsx("header", { ref: s, className: la({ className: a }), ...e, children: t })
745
- ), Ga = Object.assign(ha, {
746
- Leading: ga,
747
- Trailing: ba,
748
- NavItem: va,
749
- Nav: fa,
750
- Actions: xa
814
+ ), wa = o(
815
+ ({ children: t, className: a, ...e }, r) => /* @__PURE__ */ s.jsx("header", { ref: r, className: da({ className: a }), ...e, children: t })
816
+ ), Oa = Object.assign(wa, {
817
+ Leading: ha,
818
+ Trailing: ja,
819
+ NavItem: ya,
820
+ Nav: va,
821
+ Actions: ba
751
822
  });
752
823
  export {
753
- Na as A,
754
- Va as B,
755
- Ha as F,
756
- za as P,
757
- La as S,
758
- Ga as T,
759
- Sa as a,
760
- Ta as b,
761
- Aa as c,
762
- Pa as d,
763
- Ca as e
824
+ La as A,
825
+ Ha as B,
826
+ Aa as F,
827
+ Ca as P,
828
+ Fa as S,
829
+ Oa as T,
830
+ za as a,
831
+ Pa as b,
832
+ Ra as c,
833
+ Ga as d,
834
+ Ia as e,
835
+ ka as f
764
836
  };
@@ -6,10 +6,7 @@ const f = x(
6
6
  ), j = d(
7
7
  [
8
8
  "fixed z-100 flex flex-col gap-2 px-0 pb-2",
9
- "w-[80vw] left-0 top-4",
10
- // mobile: full width
11
- "sm:w-auto sm:left-4 sm:bottom-4 sm:max-w-sm"
12
- // desktop/tablet
9
+ "w-[80vw] left-0 top-4 md:w-auto md:left-4 md:top-auto md:bottom-4 md:max-w-sm"
13
10
  ].join(" ")
14
11
  ), T = d("", {
15
12
  variants: {
@@ -23,18 +20,18 @@ const f = x(
23
20
  }
24
21
  }), C = 4e3;
25
22
  function E() {
26
- const [a, s] = p([]), t = k({}), n = m((e) => {
27
- s((r) => r.filter((o) => o.id !== e)), t.current[e] && (clearTimeout(t.current[e]), delete t.current[e]);
23
+ const [a, o] = p([]), t = k({}), n = m((e) => {
24
+ o((r) => r.filter((s) => s.id !== e)), t.current[e] && (clearTimeout(t.current[e]), delete t.current[e]);
28
25
  }, []), i = m(
29
- (e, r, o) => {
30
- const u = `${Date.now()}-${Math.random()}`, l = o?.duration ?? C;
31
- s((b) => [
26
+ (e, r, s) => {
27
+ const u = `${Date.now()}-${Math.random()}`, l = s?.duration ?? C;
28
+ o((b) => [
32
29
  ...b,
33
30
  {
34
31
  id: u,
35
32
  color: e,
36
33
  message: r,
37
- ...o,
34
+ ...s,
38
35
  duration: l
39
36
  }
40
37
  ]), t.current[u] = setTimeout(() => {
@@ -48,7 +45,7 @@ function E() {
48
45
  }, []), { queue: a, showSnack: i, removeSnack: n };
49
46
  }
50
47
  const V = ({ children: a }) => {
51
- const { queue: s, showSnack: t, removeSnack: n } = E(), i = v(() => ({ showSnack: t }), [t]);
48
+ const { queue: o, showSnack: t, removeSnack: n } = E(), i = v(() => ({ showSnack: t }), [t]);
52
49
  return /* @__PURE__ */ c.jsxs(f.Provider, { value: i, children: [
53
50
  a,
54
51
  /* @__PURE__ */ c.jsx(
@@ -57,7 +54,7 @@ const V = ({ children: a }) => {
57
54
  className: j(),
58
55
  "aria-live": "polite",
59
56
  "aria-atomic": "true",
60
- children: s.map((e, r) => /* @__PURE__ */ c.jsx(
57
+ children: o.map((e, r) => /* @__PURE__ */ c.jsx(
61
58
  "div",
62
59
  {
63
60
  className: T({
@@ -6,6 +6,7 @@ export * from './filter-chip-group';
6
6
  export * from './page-content';
7
7
  export * from './page-header';
8
8
  export * from './page-layout';
9
+ export * from './page-loader';
9
10
  export * from './form-layout';
10
11
  export * from './side-bar';
11
12
  export * from './top-bar';
@@ -0,0 +1,2 @@
1
+ export { PageLoader } from './page-loader';
2
+ export type { PageLoaderProps } from './types';
@@ -0,0 +1,11 @@
1
+ import { PageLoaderProps } from './types';
2
+ import * as React from 'react';
3
+ /**
4
+ * PageLoader component that centers a loading indicator within a flex container
5
+ *
6
+ * This component wraps the LoadingIndicator with layout styling to center it
7
+ * within the available container space, making it ideal for full-page loading states.
8
+ *
9
+ * @group Layout
10
+ */
11
+ export declare const PageLoader: React.ForwardRefExoticComponent<PageLoaderProps & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,36 @@
1
+ import { HTMLAttributes } from 'react';
2
+ import { LoadingIndicatorProps } from '../../feedbacks/loading-indicator';
3
+ /**
4
+ * PageLoaderProps defines the props for the PageLoader component
5
+ * Extends LoadingIndicatorProps to support all loading indicator configurations
6
+ * while adding layout-specific functionality
7
+ */
8
+ export interface PageLoaderProps extends HTMLAttributes<HTMLDivElement> {
9
+ /**
10
+ * Type of loading indicator: spinner (default), bar
11
+ * Spinner is recommended for page loading states
12
+ */
13
+ type?: LoadingIndicatorProps['type'];
14
+ /**
15
+ * Size of the indicator: sm, md, lg
16
+ */
17
+ size?: LoadingIndicatorProps['size'];
18
+ /**
19
+ * Color variant based on Versaur color system
20
+ * Core: primary, secondary, tertiary, ghost, neutral
21
+ * Semantic: success, info, warning, danger
22
+ */
23
+ color?: LoadingIndicatorProps['color'];
24
+ /**
25
+ * Accessible label for screen readers
26
+ */
27
+ ariaLabel?: LoadingIndicatorProps['ariaLabel'];
28
+ /**
29
+ * Optional loading message to display below the indicator
30
+ */
31
+ message?: string;
32
+ /**
33
+ * Whether to use a minimal height (useful for inline loading states)
34
+ */
35
+ minimal?: boolean;
36
+ }
@@ -9,7 +9,7 @@ export interface CardProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>,
9
9
  * Size variant affecting padding
10
10
  * @default 'md'
11
11
  */
12
- size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
12
+ size?: 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl';
13
13
  /**
14
14
  * Shape variant affecting border radius
15
15
  * @default 'rounded'
@@ -36,6 +36,7 @@ const symbolToSubpath = {
36
36
  "PageContent": "layouts",
37
37
  "PageHeader": "layouts",
38
38
  "PageLayout": "layouts",
39
+ "PageLoader": "layouts",
39
40
  "SideBar": "layouts",
40
41
  "TopBar": "layouts",
41
42
  "Breadcrumbs": "navigation",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dimasbaguspm/versaur",
3
- "version": "0.0.40",
3
+ "version": "0.0.41",
4
4
  "description": "React UI library with Tailwind CSS",
5
5
  "author": "Dimas Bagus Prayogo Mukti<dimas.bagus.pm@gmail.com>",
6
6
  "license": "MIT",