@dimasbaguspm/versaur 0.0.28 → 0.0.29

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,7 +1,7 @@
1
1
  import { c as u, j as n, a as l } from "./index-DOdDlCoL.js";
2
2
  import j, { useState as v, useEffect as x, createContext as S, useContext as T, forwardRef as f, useRef as M, useMemo as z } from "react";
3
3
  import { XIcon as E } from "lucide-react";
4
- import { i as H, f as D } from "./image-rectangle-C1zMt0DR.js";
4
+ import { k as H, h as D } from "./image-rectangle-CF656HIm.js";
5
5
  import "./snackbar-DH8jCh2V.js";
6
6
  import I from "react-dom";
7
7
  function P() {
@@ -1,9 +1,9 @@
1
1
  import { c as j, j as e, a as p } from "./index-DOdDlCoL.js";
2
2
  import x, { createContext as S, useContext as V, useRef as $, forwardRef as I, useState as O, useId as D, useEffect as X, useMemo as P } from "react";
3
3
  import { Check as F, Calendar as Y, SearchIcon as Z, Clock as ee, Banknote as re, MailIcon as te } from "lucide-react";
4
- import { I as z } from "./image-rectangle-C1zMt0DR.js";
4
+ import { I as z } from "./image-rectangle-CF656HIm.js";
5
5
  import "./snackbar-DH8jCh2V.js";
6
- import { M, D as E, B as R } from "./bottom-sheet-tOKkkgJA.js";
6
+ import { M, D as E, B as R } from "./bottom-sheet-BKd7WCCS.js";
7
7
  const oe = j("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-BIbHW5ME.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-DrbGhcXv.js";
2
2
  export {
3
3
  a as BottomSheetInput,
4
4
  n as CheckboxInput,
@@ -241,7 +241,224 @@ const alertVariants = cva(
241
241
  children: e
242
242
  }
243
243
  )
244
- ), avatarVariants = cva(
244
+ ), textVariants = cva("", {
245
+ variants: {
246
+ color: {
247
+ primary: "text-primary",
248
+ secondary: "text-secondary",
249
+ tertiary: "text-tertiary",
250
+ ghost: "text-ghost",
251
+ neutral: "text-ghost",
252
+ success: "text-success",
253
+ info: "text-info",
254
+ warning: "text-warning",
255
+ danger: "text-danger",
256
+ inherit: "",
257
+ gray: "text-gray-500",
258
+ black: "text-black",
259
+ white: "text-white"
260
+ },
261
+ hasUnderline: {
262
+ true: "underline",
263
+ false: ""
264
+ },
265
+ isCapitalize: {
266
+ true: "capitalize",
267
+ false: ""
268
+ },
269
+ align: {
270
+ left: "text-left",
271
+ center: "text-center",
272
+ right: "text-right",
273
+ justify: "text-justify"
274
+ },
275
+ italic: {
276
+ true: "italic",
277
+ false: ""
278
+ },
279
+ clamp: {
280
+ 1: "line-clamp-1",
281
+ 2: "line-clamp-2",
282
+ 3: "line-clamp-3",
283
+ 4: "line-clamp-4",
284
+ 5: "line-clamp-5",
285
+ none: ""
286
+ },
287
+ ellipsis: {
288
+ true: "truncate",
289
+ false: ""
290
+ },
291
+ as: {
292
+ h1: "font-bold text-4xl leading-loose",
293
+ h2: "font-semibold text-3xl leading-relaxed",
294
+ h3: "font-medium text-2xl leading-relaxed",
295
+ h4: "font-bold text-xl leading-normal",
296
+ h5: "font-semibold text-lg leading-normal",
297
+ h6: "font-medium text-base leading-normal",
298
+ p: "font-normal text-base leading-normal",
299
+ span: "font-normal text-base leading-normal",
300
+ label: "font-normal text-xs leading-normal"
301
+ }
302
+ },
303
+ defaultVariants: {
304
+ color: "neutral",
305
+ hasUnderline: !1,
306
+ isCapitalize: !1,
307
+ align: "left",
308
+ italic: !1,
309
+ clamp: "none",
310
+ ellipsis: !1,
311
+ as: "span"
312
+ }
313
+ }), Text = forwardRef(
314
+ ({
315
+ as: e = "span",
316
+ color: t = "ghost",
317
+ hasUnderline: r = !1,
318
+ isCapitalize: s = !1,
319
+ align: i = "left",
320
+ italic: n = !1,
321
+ clamp: o = "none",
322
+ ellipsis: a = !1,
323
+ fontSize: l,
324
+ fontWeight: c,
325
+ className: x,
326
+ children: h,
327
+ ...d
328
+ }, p) => {
329
+ const f = [
330
+ "h1",
331
+ "h2",
332
+ "h3",
333
+ "h4",
334
+ "h5",
335
+ "h6",
336
+ "p",
337
+ "span",
338
+ "label"
339
+ ].includes(e) ? e : "span", v = l ? `text-${l}` : "", w = c ? `font-${c}` : "";
340
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
341
+ e,
342
+ {
343
+ ref: p,
344
+ className: cn(
345
+ textVariants({
346
+ color: t,
347
+ hasUnderline: r,
348
+ isCapitalize: s,
349
+ align: i,
350
+ italic: n,
351
+ clamp: o,
352
+ ellipsis: a,
353
+ // @ts-expect-error - `as` is not a valid variant
354
+ as: f
355
+ }),
356
+ v,
357
+ w,
358
+ x
359
+ ),
360
+ ...d,
361
+ children: h
362
+ }
363
+ );
364
+ }
365
+ ), Attribute = forwardRef(
366
+ function({ title: t, children: r, className: s, ...i }, n) {
367
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { ref: n, className: cn("space-y-1", s), ...i, children: [
368
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
369
+ Text,
370
+ {
371
+ as: "h4",
372
+ fontSize: "sm",
373
+ fontWeight: "normal",
374
+ color: "gray",
375
+ className: "leading-none",
376
+ children: t
377
+ }
378
+ ),
379
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Text, { as: "p", fontSize: "base", fontWeight: "normal", children: r })
380
+ ] });
381
+ }
382
+ );
383
+ function getColSpan$1(e = 1) {
384
+ switch (e) {
385
+ case 1:
386
+ return "col-span-1";
387
+ case 2:
388
+ return "col-span-2";
389
+ case 3:
390
+ return "col-span-3";
391
+ case 4:
392
+ return "col-span-4";
393
+ case 5:
394
+ return "col-span-5";
395
+ case 6:
396
+ return "col-span-6";
397
+ case 7:
398
+ return "col-span-7";
399
+ case 8:
400
+ return "col-span-8";
401
+ case 9:
402
+ return "col-span-9";
403
+ case 10:
404
+ return "col-span-10";
405
+ case 11:
406
+ return "col-span-11";
407
+ case 12:
408
+ return "col-span-12";
409
+ default:
410
+ return "col-span-1";
411
+ }
412
+ }
413
+ function getGridCols(e = 4) {
414
+ switch (e) {
415
+ case 1:
416
+ return "grid-cols-1";
417
+ case 2:
418
+ return "grid-cols-2";
419
+ case 3:
420
+ return "grid-cols-3";
421
+ case 4:
422
+ return "grid-cols-4";
423
+ case 5:
424
+ return "grid-cols-5";
425
+ case 6:
426
+ return "grid-cols-6";
427
+ case 7:
428
+ return "grid-cols-7";
429
+ case 8:
430
+ return "grid-cols-8";
431
+ case 9:
432
+ return "grid-cols-9";
433
+ case 10:
434
+ return "grid-cols-10";
435
+ case 11:
436
+ return "grid-cols-11";
437
+ case 12:
438
+ return "grid-cols-12";
439
+ default:
440
+ return "grid-cols-4";
441
+ }
442
+ }
443
+ const AttributeListItem = forwardRef(function({ children: t, className: r, span: s = 1, title: i, ...n }, o) {
444
+ const a = getColSpan$1(s);
445
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("li", { ref: o, className: cn(a, r), ...n, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Attribute, { title: i, children: t }) });
446
+ }), AttributeListRoot = forwardRef(
447
+ function({ children: t, className: r, columns: s = 4, ...i }, n) {
448
+ const o = getGridCols(s);
449
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
450
+ "ul",
451
+ {
452
+ ref: n,
453
+ className: cn("grid gap-4", o, r),
454
+ ...i,
455
+ children: t
456
+ }
457
+ );
458
+ }
459
+ ), AttributeList = Object.assign(AttributeListRoot, {
460
+ Item: AttributeListItem
461
+ }), avatarVariants = cva(
245
462
  "inline-flex items-center justify-center font-medium text-white overflow-hidden transition-all duration-200 select-none relative",
246
463
  {
247
464
  variants: {
@@ -348,7 +565,7 @@ const alertVariants = cva(
348
565
  },
349
566
  shape: {
350
567
  rounded: "rounded-full",
351
- square: "rounded-md"
568
+ square: "rounded-xs"
352
569
  },
353
570
  size: {
354
571
  sm: "text-xs px-1 py-0.25 h-3",
@@ -365,47 +582,47 @@ const alertVariants = cva(
365
582
  {
366
583
  variant: "default",
367
584
  color: "primary",
368
- className: "bg-primary-light text-primary"
585
+ className: "bg-primary-light/60 text-primary"
369
586
  },
370
587
  {
371
588
  variant: "default",
372
589
  color: "secondary",
373
- className: "bg-secondary-light text-secondary"
590
+ className: "bg-secondary-light/70 text-secondary"
374
591
  },
375
592
  {
376
593
  variant: "default",
377
594
  color: "tertiary",
378
- className: "bg-tertiary-light text-tertiary"
595
+ className: "bg-tertiary-light/50 text-tertiary"
379
596
  },
380
597
  {
381
598
  variant: "default",
382
599
  color: "ghost",
383
- className: "bg-ghost-light text-ghost"
600
+ className: "bg-ghost/05 text-ghost"
384
601
  },
385
602
  {
386
603
  variant: "default",
387
604
  color: "neutral",
388
- className: "bg-neutral text-foreground"
605
+ className: "bg-neutral-light text-foreground"
389
606
  },
390
607
  {
391
608
  variant: "default",
392
609
  color: "success",
393
- className: "bg-success-light text-success"
610
+ className: "bg-success-light/40 text-success"
394
611
  },
395
612
  {
396
613
  variant: "default",
397
614
  color: "info",
398
- className: "bg-info-light text-info"
615
+ className: "bg-info-light/50 text-info"
399
616
  },
400
617
  {
401
618
  variant: "default",
402
619
  color: "warning",
403
- className: "bg-warning-light text-warning"
620
+ className: "bg-warning-light/50 text-warning"
404
621
  },
405
622
  {
406
623
  variant: "default",
407
624
  color: "danger",
408
- className: "bg-danger-light text-danger"
625
+ className: "bg-danger-light/40 text-danger"
409
626
  },
410
627
  // Outline variant color combinations
411
628
  {
@@ -520,9 +737,7 @@ const alertVariants = cva(
520
737
  }
521
738
  );
522
739
  }
523
- );
524
- Badge.displayName = "Badge";
525
- const SvgSpenicleSquare = (e) => /* @__PURE__ */ React.createElement("svg", { width: 32, height: 32, viewBox: "0 0 32 32", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...e }, /* @__PURE__ */ React.createElement("title", null, "Spenicle"), /* @__PURE__ */ React.createElement("rect", { width: 32, height: 32, fill: "#e07a5f" }), /* @__PURE__ */ React.createElement("g", { transform: "translate(16, 16) scale(0.625) translate(-12, -12)" }, /* @__PURE__ */ React.createElement("path", { d: "M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z", fill: "white" }))), SvgSpenicleRounded = (e) => /* @__PURE__ */ React.createElement("svg", { width: 32, height: 32, viewBox: "0 0 32 32", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...e }, /* @__PURE__ */ React.createElement("title", null, "Spenicle"), /* @__PURE__ */ React.createElement("rect", { width: 32, height: 32, rx: 8, fill: "#e07a5f" }), /* @__PURE__ */ React.createElement("g", { transform: "translate(16, 16) scale(0.625) translate(-12, -12)" }, /* @__PURE__ */ React.createElement("path", { d: "M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z", fill: "white" }))), SvgSpenicleCircle = (e) => /* @__PURE__ */ React.createElement("svg", { width: 32, height: 32, viewBox: "0 0 32 32", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...e }, /* @__PURE__ */ React.createElement("title", null, "Spenicle"), /* @__PURE__ */ React.createElement("circle", { cx: 16, cy: 16, r: 16, fill: "#e07a5f" }), /* @__PURE__ */ React.createElement("g", { transform: "translate(16, 16) scale(0.625) translate(-12, -12)" }, /* @__PURE__ */ React.createElement("path", { d: "M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z", fill: "white" }))), brandSizeClass = cva("", {
740
+ ), SvgSpenicleSquare = (e) => /* @__PURE__ */ React.createElement("svg", { width: 32, height: 32, viewBox: "0 0 32 32", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...e }, /* @__PURE__ */ React.createElement("title", null, "Spenicle"), /* @__PURE__ */ React.createElement("rect", { width: 32, height: 32, fill: "#e07a5f" }), /* @__PURE__ */ React.createElement("g", { transform: "translate(16, 16) scale(0.625) translate(-12, -12)" }, /* @__PURE__ */ React.createElement("path", { d: "M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z", fill: "white" }))), SvgSpenicleRounded = (e) => /* @__PURE__ */ React.createElement("svg", { width: 32, height: 32, viewBox: "0 0 32 32", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...e }, /* @__PURE__ */ React.createElement("title", null, "Spenicle"), /* @__PURE__ */ React.createElement("rect", { width: 32, height: 32, rx: 8, fill: "#e07a5f" }), /* @__PURE__ */ React.createElement("g", { transform: "translate(16, 16) scale(0.625) translate(-12, -12)" }, /* @__PURE__ */ React.createElement("path", { d: "M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z", fill: "white" }))), SvgSpenicleCircle = (e) => /* @__PURE__ */ React.createElement("svg", { width: 32, height: 32, viewBox: "0 0 32 32", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...e }, /* @__PURE__ */ React.createElement("title", null, "Spenicle"), /* @__PURE__ */ React.createElement("circle", { cx: 16, cy: 16, r: 16, fill: "#e07a5f" }), /* @__PURE__ */ React.createElement("g", { transform: "translate(16, 16) scale(0.625) translate(-12, -12)" }, /* @__PURE__ */ React.createElement("path", { d: "M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z", fill: "white" }))), brandSizeClass = cva("", {
526
741
  variants: {
527
742
  size: {
528
743
  xs: "h-6 w-6",
@@ -577,7 +792,7 @@ const SvgSpenicleSquare = (e) => /* @__PURE__ */ React.createElement("svg", { wi
577
792
  "secondary-outline": "border border-secondary text-secondary bg-white hover:bg-secondary hover:text-white focus-visible:ring-secondary-light focus-visible:ring-offset-white transition-all",
578
793
  "tertiary-outline": "border border-tertiary text-tertiary bg-white hover:bg-tertiary hover:text-white focus-visible:ring-tertiary-light focus-visible:ring-offset-white transition-all",
579
794
  "ghost-outline": "border border-ghost text-ghost bg-white hover:bg-ghost hover:text-white focus-visible:ring-ghost-light focus-visible:ring-offset-white transition-all",
580
- "neutral-outline": "border border-neutral text-foreground bg-white hover:bg-neutral hover:text-foreground focus-visible:ring-foreground-light focus-visible:ring-offset-white transition-all",
795
+ "neutral-outline": "border border-border text-foreground bg-white hover:bg-neutral hover:text-foreground focus-visible:ring-foreground-light focus-visible:ring-offset-white transition-all",
581
796
  // Ghost variants (subtle)
582
797
  "primary-ghost": "text-primary bg-white hover:bg-primary/20 focus-visible:ring-primary focus-visible:ring-offset-white",
583
798
  "secondary-ghost": "text-secondary bg-white hover:bg-secondary/20 focus-visible:ring-secondary focus-visible:ring-offset-white",
@@ -670,7 +885,7 @@ const SvgSpenicleSquare = (e) => /* @__PURE__ */ React.createElement("svg", { wi
670
885
  "secondary-outline": "border border-secondary text-secondary bg-white hover:bg-secondary hover:text-white focus-visible:ring-secondary-light focus-visible:ring-offset-white transition-all",
671
886
  "tertiary-outline": "border border-tertiary text-tertiary bg-white hover:bg-tertiary hover:text-white focus-visible:ring-tertiary-light focus-visible:ring-offset-white transition-all",
672
887
  "ghost-outline": "border border-ghost text-ghost bg-white hover:bg-ghost hover:text-white focus-visible:ring-ghost-light focus-visible:ring-offset-white transition-all",
673
- "neutral-outline": "border border-neutral text-foreground bg-white hover:bg-neutral hover:text-foreground focus-visible:ring-foreground-light focus-visible:ring-offset-white transition-all",
888
+ "neutral-outline": "border border-border text-foreground bg-white hover:bg-neutral hover:text-foreground focus-visible:ring-foreground-light focus-visible:ring-offset-white transition-all",
674
889
  "primary-ghost": "text-primary bg-white hover:bg-primary/20 focus-visible:ring-primary focus-visible:ring-offset-white",
675
890
  "secondary-ghost": "text-secondary bg-white hover:bg-secondary/20 focus-visible:ring-secondary focus-visible:ring-offset-white",
676
891
  "tertiary-ghost": "text-tertiary bg-white hover:bg-tertiary/20 focus-visible:ring-tertiary focus-visible:ring-offset-white",
@@ -815,7 +1030,7 @@ const buttonIconVariants = cva(
815
1030
  "secondary-outline": "border border-secondary text-secondary bg-white hover:bg-secondary hover:text-white focus-visible:ring-secondary-light focus-visible:ring-offset-white transition-all",
816
1031
  "tertiary-outline": "border border-tertiary text-tertiary bg-white hover:bg-tertiary hover:text-white focus-visible:ring-tertiary-light focus-visible:ring-offset-white transition-all",
817
1032
  "ghost-outline": "border border-ghost text-ghost bg-white hover:bg-ghost hover:text-white focus-visible:ring-ghost-light focus-visible:ring-offset-white transition-all",
818
- "neutral-outline": "border border-neutral text-foreground bg-white hover:bg-neutral hover:text-foreground focus-visible:ring-foreground-light focus-visible:ring-offset-white transition-all",
1033
+ "neutral-outline": "border border-border text-foreground bg-white hover:bg-neutral hover:text-foreground focus-visible:ring-foreground-light focus-visible:ring-offset-white transition-all",
819
1034
  "primary-ghost": "text-primary bg-white hover:bg-primary/20 focus-visible:ring-primary focus-visible:ring-offset-white",
820
1035
  "secondary-ghost": "text-secondary bg-white hover:bg-secondary/20 focus-visible:ring-secondary focus-visible:ring-offset-white",
821
1036
  "tertiary-ghost": "text-tertiary bg-white hover:bg-tertiary/20 focus-visible:ring-tertiary focus-visible:ring-offset-white",
@@ -1103,128 +1318,7 @@ const BUTTONS = [
1103
1318
  }
1104
1319
  );
1105
1320
  Calculator.displayName = "Calculator";
1106
- const textVariants = cva("", {
1107
- variants: {
1108
- color: {
1109
- primary: "text-primary",
1110
- secondary: "text-secondary",
1111
- tertiary: "text-tertiary",
1112
- ghost: "text-ghost",
1113
- neutral: "text-ghost",
1114
- success: "text-success",
1115
- info: "text-info",
1116
- warning: "text-warning",
1117
- danger: "text-danger",
1118
- inherit: "",
1119
- gray: "text-gray-500",
1120
- black: "text-black",
1121
- white: "text-white"
1122
- },
1123
- hasUnderline: {
1124
- true: "underline",
1125
- false: ""
1126
- },
1127
- isCapitalize: {
1128
- true: "capitalize",
1129
- false: ""
1130
- },
1131
- align: {
1132
- left: "text-left",
1133
- center: "text-center",
1134
- right: "text-right",
1135
- justify: "text-justify"
1136
- },
1137
- italic: {
1138
- true: "italic",
1139
- false: ""
1140
- },
1141
- clamp: {
1142
- 1: "line-clamp-1",
1143
- 2: "line-clamp-2",
1144
- 3: "line-clamp-3",
1145
- 4: "line-clamp-4",
1146
- 5: "line-clamp-5",
1147
- none: ""
1148
- },
1149
- ellipsis: {
1150
- true: "truncate",
1151
- false: ""
1152
- },
1153
- as: {
1154
- h1: "font-bold text-4xl leading-loose",
1155
- h2: "font-semibold text-3xl leading-relaxed",
1156
- h3: "font-medium text-2xl leading-relaxed",
1157
- h4: "font-bold text-xl leading-normal",
1158
- h5: "font-semibold text-lg leading-normal",
1159
- h6: "font-medium text-base leading-normal",
1160
- p: "font-normal text-base leading-normal",
1161
- span: "font-normal text-base leading-normal",
1162
- label: "font-normal text-xs leading-normal"
1163
- }
1164
- },
1165
- defaultVariants: {
1166
- color: "neutral",
1167
- hasUnderline: !1,
1168
- isCapitalize: !1,
1169
- align: "left",
1170
- italic: !1,
1171
- clamp: "none",
1172
- ellipsis: !1,
1173
- as: "span"
1174
- }
1175
- }), Text = forwardRef(
1176
- ({
1177
- as: e = "span",
1178
- color: t = "ghost",
1179
- hasUnderline: r = !1,
1180
- isCapitalize: s = !1,
1181
- align: i = "left",
1182
- italic: n = !1,
1183
- clamp: o = "none",
1184
- ellipsis: a = !1,
1185
- fontSize: l,
1186
- fontWeight: c,
1187
- className: x,
1188
- children: h,
1189
- ...d
1190
- }, p) => {
1191
- const f = [
1192
- "h1",
1193
- "h2",
1194
- "h3",
1195
- "h4",
1196
- "h5",
1197
- "h6",
1198
- "p",
1199
- "span",
1200
- "label"
1201
- ].includes(e) ? e : "span", v = l ? `text-${l}` : "", w = c ? `font-${c}` : "";
1202
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
1203
- e,
1204
- {
1205
- ref: p,
1206
- className: cn(
1207
- textVariants({
1208
- color: t,
1209
- hasUnderline: r,
1210
- isCapitalize: s,
1211
- align: i,
1212
- italic: n,
1213
- clamp: o,
1214
- ellipsis: a,
1215
- // @ts-expect-error - `as` is not a valid variant
1216
- as: f
1217
- }),
1218
- v,
1219
- w,
1220
- x
1221
- ),
1222
- ...d,
1223
- children: h
1224
- }
1225
- );
1226
- }
1227
- ), CalendarContext = createContext(null);
1321
+ const CalendarContext = createContext(null);
1228
1322
  function useCalendarContext() {
1229
1323
  const e = useContext(CalendarContext);
1230
1324
  if (!e)
@@ -1591,25 +1685,25 @@ const CalendarRoot = ({
1591
1685
  variants: {
1592
1686
  variant: {
1593
1687
  // Core variants using Versaur color system
1594
- primary: "bg-primary text-white hover:bg-primary/90 focus-visible:ring-primary-light focus-visible:ring-offset-white shadow-sm",
1595
- secondary: "bg-secondary text-white hover:bg-secondary/90 focus-visible:ring-secondary-light focus-visible:ring-offset-white shadow-sm",
1596
- tertiary: "bg-tertiary text-white hover:bg-tertiary/90 focus-visible:ring-tertiary-light focus-visible:ring-offset-white shadow-sm",
1597
- ghost: "bg-ghost-soft text-foreground hover:bg-ghost-light focus-visible:ring-ghost-light focus-visible:ring-offset-white",
1688
+ primary: "bg-primary-light text-primary hover:bg-primary-soft focus-visible:ring-primary-light focus-visible:ring-offset-white",
1689
+ secondary: "bg-secondary-light text-secondary hover:bg-secondary-soft focus-visible:ring-secondary-light focus-visible:ring-offset-white",
1690
+ tertiary: "bg-tertiary-light text-tertiary hover:bg-tertiary-soft focus-visible:ring-tertiary-light focus-visible:ring-offset-white",
1691
+ ghost: "bg-white text-foreground hover:bg-ghost-soft focus-visible:ring-ghost-light focus-visible:ring-offset-white",
1598
1692
  neutral: "bg-neutral text-foreground hover:bg-neutral/80 focus-visible:ring-foreground-light focus-visible:ring-offset-white",
1599
1693
  // Outline variants
1600
1694
  "primary-outline": "border border-primary text-primary bg-white hover:bg-primary-soft focus-visible:ring-primary-light focus-visible:ring-offset-white",
1601
1695
  "secondary-outline": "border border-secondary text-secondary bg-white hover:bg-secondary-soft focus-visible:ring-secondary-light focus-visible:ring-offset-white",
1602
1696
  "tertiary-outline": "border border-tertiary text-tertiary bg-white hover:bg-tertiary-soft focus-visible:ring-tertiary-light focus-visible:ring-offset-white",
1603
1697
  "ghost-outline": "border border-ghost text-ghost bg-white hover:bg-ghost-soft focus-visible:ring-ghost-light focus-visible:ring-offset-white",
1604
- "neutral-outline": "border border-neutral text-foreground bg-white hover:bg-neutral/20 focus-visible:ring-foreground-light focus-visible:ring-offset-white",
1698
+ "neutral-outline": "border border-border text-foreground bg-white hover:bg-neutral focus-visible:ring-foreground-light focus-visible:ring-offset-white",
1605
1699
  // Semantic variants
1606
- success: "bg-success text-white hover:bg-success/90 focus-visible:ring-success-light focus-visible:ring-offset-white shadow-sm",
1700
+ success: "bg-success text-white hover:bg-success/90 focus-visible:ring-success-light focus-visible:ring-offset-white",
1607
1701
  "success-outline": "border border-success text-success bg-white hover:bg-success-soft focus-visible:ring-success-light focus-visible:ring-offset-white",
1608
- info: "bg-info text-white hover:bg-info/90 focus-visible:ring-info-light focus-visible:ring-offset-white shadow-sm",
1702
+ info: "bg-info text-white hover:bg-info/90 focus-visible:ring-info-light focus-visible:ring-offset-white",
1609
1703
  "info-outline": "border border-info text-info bg-white hover:bg-info-soft focus-visible:ring-info-light focus-visible:ring-offset-white",
1610
- warning: "bg-warning text-white hover:bg-warning/90 focus-visible:ring-warning-light focus-visible:ring-offset-white shadow-sm",
1704
+ warning: "bg-warning text-white hover:bg-warning/90 focus-visible:ring-warning-light focus-visible:ring-offset-white",
1611
1705
  "warning-outline": "border border-warning text-warning bg-white hover:bg-warning-soft focus-visible:ring-warning-light focus-visible:ring-offset-white",
1612
- danger: "bg-danger text-white hover:bg-danger/90 focus-visible:ring-danger-light focus-visible:ring-offset-white shadow-sm",
1706
+ danger: "bg-danger text-white hover:bg-danger/90 focus-visible:ring-danger-light focus-visible:ring-offset-white",
1613
1707
  "danger-outline": "border border-danger text-danger bg-white hover:bg-danger-soft focus-visible:ring-danger-light focus-visible:ring-offset-white"
1614
1708
  },
1615
1709
  size: {
@@ -1655,9 +1749,9 @@ const CalendarRoot = ({
1655
1749
  {
1656
1750
  variants: {
1657
1751
  spacing: {
1658
- sm: "py-8",
1659
- md: "py-12",
1660
- lg: "py-16"
1752
+ sm: "py-8 px-4",
1753
+ md: "py-12 px-6",
1754
+ lg: "py-16 px-8"
1661
1755
  },
1662
1756
  hasGrayBackground: {
1663
1757
  true: "bg-neutral-soft",
@@ -1671,10 +1765,6 @@ const CalendarRoot = ({
1671
1765
  }
1672
1766
  ), noResultsHeaderVariants = cva(
1673
1767
  "flex flex-row items-center gap-3 mb-2"
1674
- ), noResultsTitleVariants = cva(
1675
- "text-lg font-semibold text-foreground"
1676
- ), noResultsSubtitleVariants = cva(
1677
- "text-foreground-light mb-6 max-w-md"
1678
1768
  ), NoResults = React__default.forwardRef(
1679
1769
  function e({ icon: t, title: r, subtitle: s, action: i, className: n, hasGrayBackground: o, ...a }, l) {
1680
1770
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
@@ -1688,9 +1778,9 @@ const CalendarRoot = ({
1688
1778
  children: [
1689
1779
  /* @__PURE__ */ jsxRuntimeExports.jsxs("header", { className: noResultsHeaderVariants(), children: [
1690
1780
  /* @__PURE__ */ jsxRuntimeExports.jsx(Icon, { as: t, size: "lg", color: "ghost", "aria-hidden": "true" }),
1691
- /* @__PURE__ */ jsxRuntimeExports.jsx(Text, { as: "h2", className: noResultsTitleVariants(), children: r })
1781
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Text, { as: "h2", fontSize: "lg", children: r })
1692
1782
  ] }),
1693
- s && /* @__PURE__ */ jsxRuntimeExports.jsx(Text, { as: "p", className: noResultsSubtitleVariants(), children: s }),
1783
+ s && /* @__PURE__ */ jsxRuntimeExports.jsx(Text, { as: "p", align: "center", color: "gray", className: "mb-4", children: s }),
1694
1784
  i && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { role: "group", "aria-label": "Available actions", children: i })
1695
1785
  ]
1696
1786
  }
@@ -2148,17 +2238,19 @@ export {
2148
2238
  NoResults as N,
2149
2239
  Table as T,
2150
2240
  Anchor as a,
2151
- Avatar as b,
2152
- Brand as c,
2153
- Button as d,
2154
- ButtonFloat as e,
2155
- ButtonIcon as f,
2156
- Calendar as g,
2157
- Card as h,
2158
- Text as i,
2159
- Tile as j,
2160
- ImageCircle as k,
2161
- ImageSquare as l,
2162
- ImageRectangle as m,
2163
- BaseImage as n
2241
+ Attribute as b,
2242
+ AttributeList as c,
2243
+ Avatar as d,
2244
+ Brand as e,
2245
+ Button as f,
2246
+ ButtonFloat as g,
2247
+ ButtonIcon as h,
2248
+ Calendar as i,
2249
+ Card as j,
2250
+ Text as k,
2251
+ Tile as l,
2252
+ ImageCircle as m,
2253
+ ImageSquare as n,
2254
+ ImageRectangle as o,
2255
+ BaseImage as p
2164
2256
  };
package/dist/js/index.js CHANGED
@@ -1,58 +1,60 @@
1
- import { L as s, P as t, S as r } from "./skeleton-BNZyaRjo.js";
2
- import { A as n, a as p, B as u, 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-BqLv8_hy.js";
3
- import { B as T, C as x, b, a as h, D as C, k as f, E as P, M as k, P as M, R as A, d as D, c as F, S as L, e as R, j as w, i as G, h as j, f as v, T as y, g as E } from "./bottom-sheet-input-BIbHW5ME.js";
4
- import { B as q, D as H, M as z } from "./bottom-sheet-tOKkkgJA.js";
5
- import { M as K, T as O } from "./tooltip-C_riAXZP.js";
6
- import { A as U, a as V, b as W, B as X, n as Y, c as Z, d as _, e as $, f as aa, C as ea, g as sa, h as ta, D as ra, F as oa, I as na, k as pa, m as ua, l as ia, N as la, T as Ia, i as ca, j as Sa } from "./image-rectangle-C1zMt0DR.js";
7
- import { S as Ba } from "./snackbar-DH8jCh2V.js";
8
- import { B as da, T as Ta } from "./tabs-CtPlBMP4.js";
9
- import { S as ba, u as ha } from "./use-snackbars-B0MaRlg1.js";
1
+ import { L as t, P as s, S as r } from "./skeleton-BNZyaRjo.js";
2
+ import { A as n, a as p, B as u, 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-B4SZ2YZC.js";
3
+ import { B as b, C as T, b as x, a as h, D as C, k as f, E as P, M as k, P as A, R as M, d as D, c as F, S as L, e as R, j as w, i as G, h as j, f as v, T as y, g as E } from "./bottom-sheet-input-DrbGhcXv.js";
4
+ import { B as q, D as H, M as z } from "./bottom-sheet-BKd7WCCS.js";
5
+ import { M as K, T as O } from "./tooltip-D1-q8Ars.js";
6
+ import { A as U, a as V, b as W, c as X, d as Y, B as Z, p as _, e as $, f as aa, g as ea, h as ta, C as sa, i as ra, j as oa, D as na, F as pa, I as ua, m as ia, o as la, n as Ia, N as ca, T as Sa, k as ma, l as Ba } from "./image-rectangle-CF656HIm.js";
7
+ import { S as da } from "./snackbar-DH8jCh2V.js";
8
+ import { B as Ta, T as xa } from "./tabs-DoiqKzR9.js";
9
+ import { S as Ca, u as fa } from "./use-snackbars-B0MaRlg1.js";
10
10
  export {
11
11
  U as Alert,
12
12
  V as Anchor,
13
13
  n as AppBar,
14
- W as Avatar,
15
- X as Badge,
14
+ W as Attribute,
15
+ X as AttributeList,
16
+ Y as Avatar,
17
+ Z as Badge,
16
18
  p as BadgeGroup,
17
- Y as BaseImage,
19
+ _ as BaseImage,
18
20
  u as BottomBar,
19
21
  q as BottomSheet,
20
- T as BottomSheetInput,
21
- Z as Brand,
22
- da as Breadcrumbs,
23
- _ as Button,
24
- $ as ButtonFloat,
22
+ b as BottomSheetInput,
23
+ $ as Brand,
24
+ Ta as Breadcrumbs,
25
+ aa as Button,
26
+ ea as ButtonFloat,
25
27
  i as ButtonGroup,
26
- aa as ButtonIcon,
27
- ea as Calculator,
28
- sa as Calendar,
29
- ta as Card,
30
- x as CheckboxInput,
31
- b as ChipMultipleInput,
28
+ ta as ButtonIcon,
29
+ sa as Calculator,
30
+ ra as Calendar,
31
+ oa as Card,
32
+ T as CheckboxInput,
33
+ x as ChipMultipleInput,
32
34
  h as ChipSingleInput,
33
35
  C as DateSinglePickerInput,
34
- ra as DescriptionList,
36
+ na as DescriptionList,
35
37
  H as Drawer,
36
38
  f as DrawerInput,
37
39
  P as EmailInput,
38
- oa as FilterChip,
40
+ pa as FilterChip,
39
41
  l as FilterChipGroup,
40
42
  I as FormLayout,
41
- na as Icon,
42
- pa as ImageCircle,
43
- ua as ImageRectangle,
44
- ia as ImageSquare,
45
- s as LoadingIndicator,
43
+ ua as Icon,
44
+ ia as ImageCircle,
45
+ la as ImageRectangle,
46
+ Ia as ImageSquare,
47
+ t as LoadingIndicator,
46
48
  K as Menu,
47
49
  z as Modal,
48
50
  k as ModalInput,
49
- la as NoResults,
51
+ ca as NoResults,
50
52
  c as PageContent,
51
53
  S as PageHeader,
52
54
  m as PageLayout,
53
- M as PriceInput,
54
- t as ProgressIndicator,
55
- A as RadioInput,
55
+ A as PriceInput,
56
+ s as ProgressIndicator,
57
+ M as RadioInput,
56
58
  D as SearchInput,
57
59
  F as SegmentMultipleInput,
58
60
  L as SegmentSingleInput,
@@ -61,17 +63,17 @@ export {
61
63
  G as SelectableSingleInput,
62
64
  B as SideBar,
63
65
  r as Skeleton,
64
- Ba as Snackbar,
65
- ba as SnackbarsProvider,
66
+ da as Snackbar,
67
+ Ca as SnackbarsProvider,
66
68
  j as SwitchInput,
67
- Ia as Table,
68
- Ta as Tabs,
69
- ca as Text,
69
+ Sa as Table,
70
+ xa as Tabs,
71
+ ma as Text,
70
72
  v as TextAreaInput,
71
73
  y as TextInput,
72
- Sa as Tile,
74
+ Ba as Tile,
73
75
  E as TimePickerInput,
74
76
  O as Tooltip,
75
77
  g as TopBar,
76
- ha as useSnackbars
78
+ fa as useSnackbars
77
79
  };
@@ -1,4 +1,4 @@
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-BqLv8_hy.js";
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-B4SZ2YZC.js";
2
2
  export {
3
3
  r as AppBar,
4
4
  e as BadgeGroup,
@@ -1,4 +1,4 @@
1
- import { B as s, T as b } from "../tabs-CtPlBMP4.js";
1
+ import { B as s, T as b } from "../tabs-DoiqKzR9.js";
2
2
  export {
3
3
  s as Breadcrumbs,
4
4
  b as Tabs
@@ -1,5 +1,5 @@
1
- import { B as e, D as r, M as t } from "../bottom-sheet-tOKkkgJA.js";
2
- import { M, T as m } from "../tooltip-C_riAXZP.js";
1
+ import { B as e, D as r, M as t } from "../bottom-sheet-BKd7WCCS.js";
2
+ import { M, T as m } from "../tooltip-D1-q8Ars.js";
3
3
  export {
4
4
  e as BottomSheet,
5
5
  r as Drawer,
@@ -1,27 +1,29 @@
1
- import { A as e, a as t, b as r, B as o, n as l, c as n, d as c, e as i, f as g, C as m, g as B, h as I, D as u, F as C, I as d, k as p, m as A, l as T, N as b, T as f, i as h, j as x } from "../image-rectangle-C1zMt0DR.js";
2
- import { S } from "../snackbar-DH8jCh2V.js";
1
+ import { A as t, a as e, b as r, c as o, d as l, B as n, p as i, e as c, f as u, g, h as m, C as B, i as I, j as A, D as C, F as b, I as d, m as p, o as T, n as f, N as h, T as x, k as F, l as S } from "../image-rectangle-CF656HIm.js";
2
+ import { S as D } from "../snackbar-DH8jCh2V.js";
3
3
  export {
4
- e as Alert,
5
- t as Anchor,
6
- r as Avatar,
7
- o as Badge,
8
- l as BaseImage,
9
- n as Brand,
10
- c as Button,
11
- i as ButtonFloat,
12
- g as ButtonIcon,
13
- m as Calculator,
14
- B as Calendar,
15
- I as Card,
16
- u as DescriptionList,
17
- C as FilterChip,
4
+ t as Alert,
5
+ e as Anchor,
6
+ r as Attribute,
7
+ o as AttributeList,
8
+ l as Avatar,
9
+ n as Badge,
10
+ i as BaseImage,
11
+ c as Brand,
12
+ u as Button,
13
+ g as ButtonFloat,
14
+ m as ButtonIcon,
15
+ B as Calculator,
16
+ I as Calendar,
17
+ A as Card,
18
+ C as DescriptionList,
19
+ b as FilterChip,
18
20
  d as Icon,
19
21
  p as ImageCircle,
20
- A as ImageRectangle,
21
- T as ImageSquare,
22
- b as NoResults,
23
- S as Snackbar,
24
- f as Table,
25
- h as Text,
26
- x as Tile
22
+ T as ImageRectangle,
23
+ f as ImageSquare,
24
+ h as NoResults,
25
+ D as Snackbar,
26
+ x as Table,
27
+ F as Text,
28
+ S as Tile
27
29
  };
@@ -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-C1zMt0DR.js";
3
+ import { I as w } from "./image-rectangle-CF656HIm.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 h, j as u, a as b } from "./index-DOdDlCoL.js";
2
2
  import { useEffect as m, useRef as c, useId as v, cloneElement as x, useState as g } from "react";
3
- import { i as j } from "./image-rectangle-C1zMt0DR.js";
3
+ import { k as j } from "./image-rectangle-CF656HIm.js";
4
4
  const I = h(
5
5
  "absolute z-30 min-w-40 bg-background rounded-lg border border-border transition-all duration-200 ease-out will-change-transform",
6
6
  {
@@ -23,8 +23,8 @@ const I = h(
23
23
  function E(t, e, r, o) {
24
24
  m(() => {
25
25
  if (!t) return;
26
- function n(i) {
27
- !e.current?.contains(i.target) && !r.current?.contains(i.target) && o();
26
+ function n(s) {
27
+ !e.current?.contains(s.target) && !r.current?.contains(s.target) && o();
28
28
  }
29
29
  return document.addEventListener("mousedown", n), () => document.removeEventListener("mousedown", n);
30
30
  }, [t, o, e, r]);
@@ -44,20 +44,20 @@ const F = ({
44
44
  content: o,
45
45
  children: n
46
46
  }) => {
47
- const i = c(null), a = c(null), s = v();
48
- return E(t, a, i, e), M(t, a), /* @__PURE__ */ u.jsxs("div", { className: "relative w-fit", children: [
47
+ const s = c(null), a = c(null), i = v();
48
+ return E(t, a, s, e), M(t, a), /* @__PURE__ */ u.jsxs("div", { className: "relative w-fit", children: [
49
49
  x(n, {
50
50
  // @ts-expect-error: ref is valid for button or forwardRef components
51
- ref: i,
51
+ ref: s,
52
52
  "aria-haspopup": "menu",
53
53
  "aria-expanded": t,
54
- "aria-controls": s,
54
+ "aria-controls": i,
55
55
  tabIndex: 0
56
56
  }),
57
57
  /* @__PURE__ */ u.jsx(
58
58
  "div",
59
59
  {
60
- id: s,
60
+ id: i,
61
61
  ref: a,
62
62
  className: b(I({ size: r, open: t })),
63
63
  role: "menu",
@@ -74,13 +74,13 @@ function z(t = "auto") {
74
74
  o(t === "auto" ? "bottom" : t);
75
75
  return;
76
76
  }
77
- const n = e.current.getBoundingClientRect(), i = window.innerWidth, a = window.innerHeight, s = {
77
+ const n = e.current.getBoundingClientRect(), s = window.innerWidth, a = window.innerHeight, i = {
78
78
  top: n.top,
79
79
  bottom: a - n.bottom,
80
80
  left: n.left,
81
- right: i - n.right
81
+ right: s - n.right
82
82
  };
83
- s.bottom > 64 ? o("bottom") : s.top > 64 ? o("top") : s.right > 128 ? o("right") : o("left");
83
+ i.bottom > 64 ? o("bottom") : i.top > 64 ? o("top") : i.right > 128 ? o("right") : o("left");
84
84
  }, [t, e]), { position: r, ref: e };
85
85
  }
86
86
  const P = h(
@@ -105,9 +105,9 @@ const P = h(
105
105
  position: r = "auto",
106
106
  popoverClassName: o,
107
107
  delay: n,
108
- ...i
108
+ ...s
109
109
  }) => {
110
- const a = v(), [s, d] = g(!1), l = c(null), p = () => {
110
+ const a = v(), [i, d] = g(!1), l = c(null), p = () => {
111
111
  n ? l.current = setTimeout(() => d(!0), n) : d(!0);
112
112
  }, f = () => {
113
113
  l.current && clearTimeout(l.current), d(!1);
@@ -122,7 +122,7 @@ const P = h(
122
122
  onFocus: p,
123
123
  onMouseLeave: f,
124
124
  onBlur: f,
125
- ...i
125
+ ...s
126
126
  }, { ref: y, position: T } = z(r);
127
127
  return /* @__PURE__ */ u.jsxs("div", { className: "relative w-fit", ref: y, children: [
128
128
  x(t, w),
@@ -133,10 +133,10 @@ const P = h(
133
133
  className: b(
134
134
  P({ position: T }),
135
135
  o,
136
- !s && "opacity-0 pointer-events-none"
136
+ !i && "opacity-0 pointer-events-none"
137
137
  ),
138
138
  role: "tooltip",
139
- "aria-hidden": !s,
139
+ "aria-hidden": !i,
140
140
  children: /* @__PURE__ */ u.jsx(j, { as: "p", fontSize: "xs", fontWeight: "normal", color: "black", children: e })
141
141
  }
142
142
  )
@@ -1,7 +1,7 @@
1
1
  import { c as i, j as r, a as l } from "./index-DOdDlCoL.js";
2
2
  import * as b from "react";
3
3
  import { forwardRef as o } from "react";
4
- import { i as u } from "./image-rectangle-C1zMt0DR.js";
4
+ import { k as u } from "./image-rectangle-CF656HIm.js";
5
5
  import "./snackbar-DH8jCh2V.js";
6
6
  const j = i(
7
7
  "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",
@@ -374,7 +374,7 @@ const j = i(
374
374
  children: t
375
375
  }
376
376
  )
377
- ), I = i("w-full mt-4"), k = i(
377
+ ), k = i("w-full mt-4"), I = i(
378
378
  "flex flex-col sm:flex-row sm:items-start sm:justify-between gap-4 px-4 sm:px-6 mb-4"
379
379
  ), F = i("mb-4 px-4 sm:px-6"), O = i(
380
380
  "flex-1 min-w-0 flex flex-col gap-2 w-full sm:w-auto"
@@ -387,7 +387,7 @@ const j = i(
387
387
  "div",
388
388
  {
389
389
  ref: s,
390
- className: l(k(), a),
390
+ className: l(I(), a),
391
391
  "data-versaur-page-header-top": !0,
392
392
  ...e,
393
393
  children: t
@@ -476,7 +476,7 @@ const j = i(
476
476
  "header",
477
477
  {
478
478
  ref: f,
479
- className: l(I(), a),
479
+ className: l(k(), a),
480
480
  role: "banner",
481
481
  ...d,
482
482
  children: [
@@ -0,0 +1,10 @@
1
+ import { AttributeProps } from './types';
2
+ /**
3
+ * Attribute component for Versaur UI
4
+ *
5
+ * A simple component that displays a title and content in a structured format.
6
+ *
7
+ * Usage:
8
+ * <Attribute title="Name">John Doe</Attribute>
9
+ */
10
+ export declare const Attribute: import('react').ForwardRefExoticComponent<AttributeProps & import('react').RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,2 @@
1
+ export { Attribute } from './attribute';
2
+ export type { AttributeProps } from './types';
@@ -0,0 +1,14 @@
1
+ import { ReactNode, HTMLAttributes } from 'react';
2
+ /**
3
+ * Props for the Attribute component
4
+ */
5
+ export interface AttributeProps extends HTMLAttributes<HTMLDivElement> {
6
+ /**
7
+ * The attribute title (displayed as h4)
8
+ */
9
+ title: string;
10
+ /**
11
+ * The attribute content (displayed as p)
12
+ */
13
+ children: ReactNode;
14
+ }
@@ -0,0 +1,5 @@
1
+ import { AttributeListItemProps } from './types';
2
+ /**
3
+ * AttributeList.Item atom
4
+ */
5
+ export declare const AttributeListItem: import('react').ForwardRefExoticComponent<AttributeListItemProps & import('react').RefAttributes<HTMLLIElement>>;
@@ -0,0 +1,4 @@
1
+ import { AttributeListProps } from './types';
2
+ export declare const AttributeList: import('react').ForwardRefExoticComponent<AttributeListProps & import('react').RefAttributes<HTMLUListElement>> & {
3
+ Item: import('react').ForwardRefExoticComponent<import('./types').AttributeListItemProps & import('react').RefAttributes<HTMLLIElement>>;
4
+ };
@@ -0,0 +1,2 @@
1
+ export { AttributeList } from './attribute';
2
+ export type { AttributeListProps, AttributeListItemProps } from './types';
@@ -0,0 +1,24 @@
1
+ import { ReactNode, HTMLAttributes } from 'react';
2
+ import { AttributeProps } from '../attribute/types';
3
+ /**
4
+ * Props for the AttributeList root component
5
+ */
6
+ export interface AttributeListProps extends HTMLAttributes<HTMLUListElement> {
7
+ /**
8
+ * Number of grid columns (default: 4)
9
+ */
10
+ columns?: number;
11
+ /**
12
+ * Children should be AttributeList.Item elements
13
+ */
14
+ children: ReactNode;
15
+ }
16
+ /**
17
+ * Props for AttributeList.Item
18
+ */
19
+ export interface AttributeListItemProps extends Omit<HTMLAttributes<HTMLLIElement>, 'title' | 'children'>, Pick<AttributeProps, 'title' | 'children'> {
20
+ /**
21
+ * Number of grid columns to span (default: 1)
22
+ */
23
+ span?: number;
24
+ }
@@ -1,5 +1,7 @@
1
1
  export * from './alert';
2
2
  export * from './anchor';
3
+ export * from './attribute';
4
+ export * from './attribute-list';
3
5
  export * from './avatar';
4
6
  export * from './badge';
5
7
  export * from './brand';
@@ -47,6 +47,8 @@ const symbolToSubpath = {
47
47
  "Tooltip": "overlays",
48
48
  "Alert": "primitive",
49
49
  "Anchor": "primitive",
50
+ "Attribute": "primitive",
51
+ "AttributeList": "primitive",
50
52
  "Avatar": "primitive",
51
53
  "Badge": "primitive",
52
54
  "Brand": "primitive",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dimasbaguspm/versaur",
3
- "version": "0.0.28",
3
+ "version": "0.0.29",
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",