@godxjp/ui 6.12.0 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/README.md +5 -0
  2. package/dist/aspect-ratio-DGoYrOry.d.ts +6 -0
  3. package/dist/avatar-D9MdXzfF.d.ts +8 -0
  4. package/dist/{checkbox-9w-eF8sM.d.ts → checkbox-CK2mYEpD.d.ts} +1 -1
  5. package/dist/{chunk-T2S3IGZG.js → chunk-6TSU4IHV.js} +1 -1
  6. package/dist/chunk-7AMHT5Z5.js +61 -0
  7. package/dist/{chunk-EE3B3TEQ.js → chunk-ARDVPIF4.js} +1 -1
  8. package/dist/chunk-B3WX53JQ.js +40 -0
  9. package/dist/{chunk-T4UT3B3K.js → chunk-EQRQM6RF.js} +127 -182
  10. package/dist/{chunk-JBEIL3VD.js → chunk-FBHN6OO4.js} +1 -1
  11. package/dist/chunk-FRU44GA2.js +18 -0
  12. package/dist/chunk-FYM3MJSK.js +59 -0
  13. package/dist/{chunk-M64MVRLS.js → chunk-HKQITNB3.js} +12 -48
  14. package/dist/{chunk-GXHZAJUA.js → chunk-O2OUNXV4.js} +10 -10
  15. package/dist/{chunk-BM5LIDCS.js → chunk-OGFWIXRO.js} +7 -16
  16. package/dist/chunk-R2W2FX5Q.js +48 -0
  17. package/dist/chunk-SEG2YBXF.js +29 -0
  18. package/dist/{chunk-XG7XDYIM.js → chunk-V3N266PT.js} +48 -2
  19. package/dist/{chunk-TW4IRRAX.js → chunk-VXXKR5U4.js} +6 -47
  20. package/dist/{chunk-SWGQX3AP.js → chunk-Y3XBNUTD.js} +1 -1
  21. package/dist/components/admin/index.d.ts +12 -10
  22. package/dist/components/admin/index.js +18 -17
  23. package/dist/components/data-display/badge.d.ts +12 -4
  24. package/dist/components/data-display/badge.js +3 -1
  25. package/dist/components/data-display/card.d.ts +5 -5
  26. package/dist/components/data-display/card.js +1 -1
  27. package/dist/components/data-display/index.d.ts +10 -22
  28. package/dist/components/data-display/index.js +24 -33
  29. package/dist/components/data-entry/autocomplete.d.ts +1 -1
  30. package/dist/components/data-entry/autocomplete.js +3 -3
  31. package/dist/components/data-entry/calendar.d.ts +1 -1
  32. package/dist/components/data-entry/cascader.d.ts +1 -1
  33. package/dist/components/data-entry/checkbox.d.ts +2 -2
  34. package/dist/components/data-entry/color-picker.d.ts +1 -1
  35. package/dist/components/data-entry/color-picker.js +2 -2
  36. package/dist/components/data-entry/command.d.ts +5 -5
  37. package/dist/components/data-entry/date-picker.d.ts +1 -1
  38. package/dist/components/data-entry/date-picker.js +2 -2
  39. package/dist/components/data-entry/date-range-picker.d.ts +1 -1
  40. package/dist/components/data-entry/date-range-picker.js +2 -2
  41. package/dist/components/data-entry/index.d.ts +18 -14
  42. package/dist/components/data-entry/index.js +18 -78
  43. package/dist/components/data-entry/radio.d.ts +1 -1
  44. package/dist/components/data-entry/select.d.ts +1 -1
  45. package/dist/components/data-entry/select.js +3 -3
  46. package/dist/components/data-entry/slider.d.ts +1 -1
  47. package/dist/components/data-entry/switch.d.ts +1 -1
  48. package/dist/components/data-entry/switch.js +1 -1
  49. package/dist/components/data-entry/time-picker.d.ts +1 -1
  50. package/dist/components/data-entry/time-picker.js +2 -2
  51. package/dist/components/data-entry/transfer.d.ts +2 -2
  52. package/dist/components/data-entry/transfer.js +2 -2
  53. package/dist/components/data-entry/tree-select.d.ts +1 -1
  54. package/dist/components/data-entry/upload.d.ts +2 -2
  55. package/dist/components/data-entry/upload.js +2 -2
  56. package/dist/components/feedback/index.d.ts +2 -1
  57. package/dist/components/feedback/index.js +6 -5
  58. package/dist/components/layout/index.d.ts +11 -38
  59. package/dist/components/layout/index.js +3 -4
  60. package/dist/components/navigation/index.d.ts +2 -3
  61. package/dist/components/navigation/index.js +6 -7
  62. package/dist/components/navigation/pagination.d.ts +1 -1
  63. package/dist/components/navigation/pagination.js +4 -4
  64. package/dist/components/navigation/steps.d.ts +2 -2
  65. package/dist/components/navigation/tabs.d.ts +14 -2
  66. package/dist/components/navigation/tabs.js +1 -1
  67. package/dist/components/ui/index.d.ts +14 -7
  68. package/dist/components/ui/index.js +22 -19
  69. package/dist/{data-display.prop-i0iaSwMV.d.ts → data-display.prop-CXP9Jfdn.d.ts} +14 -14
  70. package/dist/{data-entry.prop-Cjidhei7.d.ts → data-entry.prop-CpSx5dX6.d.ts} +1 -17
  71. package/dist/{data-table-Bg7fPpXy.d.ts → data-table-C5lcmAwE.d.ts} +7 -30
  72. package/dist/{filter-bar-BpUvE_yO.d.ts → filter-bar-zSKz7YCR.d.ts} +1 -1
  73. package/dist/index.d.ts +12 -10
  74. package/dist/index.js +18 -17
  75. package/dist/{navigation.prop-Ck5_gSfs.d.ts → navigation.prop-DAH4ysXj.d.ts} +6 -7
  76. package/dist/props/components/index.d.ts +3 -3
  77. package/dist/props/index.d.ts +3 -3
  78. package/dist/props/index.js +1 -1
  79. package/dist/props/registry.d.ts +7 -12
  80. package/dist/props/registry.js +1 -1
  81. package/dist/{search-input-mAZy3Den.d.ts → search-input-rR2XDrjv.d.ts} +1 -1
  82. package/dist/skeleton-CqFO4dRc.d.ts +20 -0
  83. package/dist/styles/badge-layout.css +2 -2
  84. package/dist/styles/card-layout.css +19 -19
  85. package/dist/styles/control.css +68 -0
  86. package/dist/styles/data-display-layout.css +23 -81
  87. package/dist/styles/layout.css +19 -71
  88. package/dist/toggle-group-BulJgKh3.d.ts +26 -0
  89. package/dist/tokens/primitives/card.css +9 -9
  90. package/dist/use-toast-Dsw3yE2S.d.ts +19 -0
  91. package/package.json +11 -7
  92. package/dist/chunk-BPSKQUL2.js +0 -68
  93. package/dist/chunk-PIIRNAXA.js +0 -26
  94. package/dist/chunk-WXW43RK5.js +0 -24
  95. package/dist/components/navigation/tabs-items.d.ts +0 -12
  96. package/dist/components/navigation/tabs-items.js +0 -3
  97. package/dist/use-toast-Dol5bdY3.d.ts +0 -34
  98. package/dist/{chunk-I3272Y2C.js → chunk-25ZZ2W3M.js} +1 -1
  99. package/dist/{chunk-AZS7553U.js → chunk-EXBWDW5E.js} +1 -1
  100. package/dist/{chunk-K27I23OA.js → chunk-NTUHJ37K.js} +1 -1
  101. package/dist/{chunk-Y7AV7QJO.js → chunk-OXKY5QMK.js} +1 -1
  102. package/dist/{chunk-ZTYEH3UW.js → chunk-TT2L7JM6.js} +1 -1
  103. package/dist/{chunk-GH7E5N6F.js → chunk-ZKIAZDVU.js} +1 -1
  104. package/dist/{chunk-YVBZ37ZE.js → chunk-ZR2TIBPG.js} +1 -1
@@ -1,9 +1,8 @@
1
1
  import { tableCellPaddingClass, tableRowHeightClass } from './chunk-ICM6XBST.js';
2
2
  import { cn } from './chunk-U7N2A7A3.js';
3
3
  import { jsx, jsxs } from 'react/jsx-runtime';
4
- import { toast as toast$1 } from 'sonner';
5
4
 
6
- function SkeletonBlock({ className, ...props }) {
5
+ function Skeleton({ className, ...props }) {
7
6
  return /* @__PURE__ */ jsx(
8
7
  "div",
9
8
  {
@@ -16,7 +15,7 @@ function SkeletonBlock({ className, ...props }) {
16
15
  }
17
16
  function SkeletonRows({ rows = 6, columns = 4, className }) {
18
17
  return /* @__PURE__ */ jsx("div", { className: cn("ui-skeleton-rows", className), "aria-busy": "true", children: Array.from({ length: rows }).map((_, i) => /* @__PURE__ */ jsx("div", { className: "ui-skeleton-row", children: Array.from({ length: columns }).map((_2, j) => /* @__PURE__ */ jsx(
19
- SkeletonBlock,
18
+ Skeleton,
20
19
  {
21
20
  className: cn("h-4", j === 0 ? "w-1/4" : j === columns - 1 ? "w-1/6" : "flex-1")
22
21
  },
@@ -25,12 +24,12 @@ function SkeletonRows({ rows = 6, columns = 4, className }) {
25
24
  }
26
25
  function SkeletonTable({ rows = 8, columns = 5 }) {
27
26
  return /* @__PURE__ */ jsxs("div", { className: "ui-skeleton-table", "aria-busy": "true", children: [
28
- /* @__PURE__ */ jsx("div", { className: cn("ui-skeleton-table-head", tableCellPaddingClass, tableRowHeightClass), children: Array.from({ length: columns }).map((_, j) => /* @__PURE__ */ jsx(SkeletonBlock, { className: cn("h-3", j === 0 ? "w-1/5" : "flex-1") }, j)) }),
27
+ /* @__PURE__ */ jsx("div", { className: cn("ui-skeleton-table-head", tableCellPaddingClass, tableRowHeightClass), children: Array.from({ length: columns }).map((_, j) => /* @__PURE__ */ jsx(Skeleton, { className: cn("h-3", j === 0 ? "w-1/5" : "flex-1") }, j)) }),
29
28
  /* @__PURE__ */ jsx("div", { className: "ui-skeleton-table-body", children: Array.from({ length: rows }).map((_, i) => /* @__PURE__ */ jsx(
30
29
  "div",
31
30
  {
32
31
  className: cn("ui-skeleton-table-row", tableCellPaddingClass, tableRowHeightClass),
33
- children: Array.from({ length: columns }).map((_2, j) => /* @__PURE__ */ jsx(SkeletonBlock, { className: cn("h-4", j === 0 ? "w-1/5" : "flex-1") }, j))
32
+ children: Array.from({ length: columns }).map((_2, j) => /* @__PURE__ */ jsx(Skeleton, { className: cn("h-4", j === 0 ? "w-1/5" : "flex-1") }, j))
34
33
  },
35
34
  i
36
35
  )) })
@@ -38,55 +37,20 @@ function SkeletonTable({ rows = 8, columns = 5 }) {
38
37
  }
39
38
  function SkeletonDetail() {
40
39
  return /* @__PURE__ */ jsxs("div", { className: "ui-skeleton-detail ui-skeleton-detail-stack", "aria-busy": "true", children: [
41
- /* @__PURE__ */ jsx(SkeletonBlock, { className: "h-7 w-1/3" }),
42
- /* @__PURE__ */ jsx(SkeletonBlock, { className: "h-4 w-1/2" }),
40
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-7 w-1/3" }),
41
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-1/2" }),
43
42
  /* @__PURE__ */ jsx("div", { className: "ui-skeleton-detail-box ui-skeleton-detail-stack", children: Array.from({ length: 6 }).map((_, i) => /* @__PURE__ */ jsxs("div", { className: "ui-skeleton-detail-stack", children: [
44
- /* @__PURE__ */ jsx(SkeletonBlock, { className: "h-3 w-24" }),
45
- /* @__PURE__ */ jsx(SkeletonBlock, { className: "h-4 w-full max-w-md" })
43
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-3 w-24" }),
44
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-full max-w-md" })
46
45
  ] }, i)) })
47
46
  ] });
48
47
  }
49
48
  function SkeletonCard() {
50
49
  return /* @__PURE__ */ jsxs("div", { className: "ui-skeleton-card", "aria-busy": "true", children: [
51
- /* @__PURE__ */ jsx(SkeletonBlock, { className: "h-3 w-24" }),
52
- /* @__PURE__ */ jsx(SkeletonBlock, { className: "h-[length:var(--control-height)] w-32" }),
53
- /* @__PURE__ */ jsx(SkeletonBlock, { className: "h-3 w-20" })
50
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-3 w-24" }),
51
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-[length:var(--control-height)] w-32" }),
52
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-3 w-20" })
54
53
  ] });
55
54
  }
56
- function nodeText(value) {
57
- if (value == null) return "";
58
- if (typeof value === "string") return value;
59
- if (typeof value === "number" || typeof value === "boolean") return String(value);
60
- return "";
61
- }
62
- function legacyToast(options) {
63
- const { title, description, variant, ...rest } = options;
64
- const titleText = nodeText(title);
65
- const descText = nodeText(description);
66
- const message = titleText || descText;
67
- const desc = titleText && descText ? descText : void 0;
68
- const sonnerOptions = { ...rest, description: desc };
69
- switch (variant) {
70
- case "destructive":
71
- return toast$1.error(message, sonnerOptions);
72
- case "success":
73
- return toast$1.success(message, sonnerOptions);
74
- default:
75
- return toast$1(message, sonnerOptions);
76
- }
77
- }
78
- var toast = Object.assign((messageOrOptions) => {
79
- if (typeof messageOrOptions === "string") {
80
- return toast$1(messageOrOptions);
81
- }
82
- return legacyToast(messageOrOptions);
83
- }, toast$1);
84
- function useToast() {
85
- return {
86
- toast: (options) => legacyToast(options),
87
- dismiss: toast$1.dismiss,
88
- toasts: []
89
- };
90
- }
91
55
 
92
- export { SkeletonCard, SkeletonDetail, SkeletonRows, SkeletonTable, toast, useToast };
56
+ export { Skeleton, SkeletonCard, SkeletonDetail, SkeletonRows, SkeletonTable };
@@ -86,7 +86,7 @@ function getDeltaTone(delta, inverse) {
86
86
  const semanticPositive = inverse ? !isPositive : isPositive;
87
87
  return semanticPositive ? "positive" : "negative";
88
88
  }
89
- function CardStat({
89
+ function StatCard({
90
90
  label,
91
91
  value,
92
92
  hint,
@@ -103,23 +103,23 @@ function CardStat({
103
103
  Card,
104
104
  {
105
105
  size: size ?? "compact",
106
- className,
106
+ className: cn("ui-stat-card", className),
107
107
  "data-stat-card": "",
108
108
  "data-stat-layout": layout,
109
109
  "data-stat-align": align,
110
110
  ...props,
111
111
  children: [
112
- /* @__PURE__ */ jsxs("div", { "data-slot": "card-stat-body", children: [
113
- /* @__PURE__ */ jsx("div", { "data-slot": "card-stat-label", children: label }),
114
- hint && layout === "inline" ? /* @__PURE__ */ jsx("div", { "data-slot": "card-stat-hint", children: hint }) : null
112
+ /* @__PURE__ */ jsxs("div", { "data-slot": "stat-card-body", children: [
113
+ /* @__PURE__ */ jsx("div", { "data-slot": "stat-card-label", children: label }),
114
+ hint && layout === "inline" ? /* @__PURE__ */ jsx("div", { "data-slot": "stat-card-hint", children: hint }) : null
115
115
  ] }),
116
116
  /* @__PURE__ */ jsxs("div", { children: [
117
- /* @__PURE__ */ jsxs("div", { "data-slot": "card-stat-value-row", children: [
118
- /* @__PURE__ */ jsx("span", { "data-slot": "card-stat-value", children: value }),
117
+ /* @__PURE__ */ jsxs("div", { "data-slot": "stat-card-value-row", children: [
118
+ /* @__PURE__ */ jsx("span", { "data-slot": "stat-card-value", children: value }),
119
119
  delta ? /* @__PURE__ */ jsx(
120
120
  "span",
121
121
  {
122
- "data-slot": "card-stat-delta",
122
+ "data-slot": "stat-card-delta",
123
123
  "data-delta-tone": deltaTone,
124
124
  className: cn(
125
125
  deltaTone === "positive" && "text-success",
@@ -129,7 +129,7 @@ function CardStat({
129
129
  }
130
130
  ) : null
131
131
  ] }),
132
- hint && layout !== "inline" ? /* @__PURE__ */ jsx("div", { "data-slot": "card-stat-hint", children: hint }) : null
132
+ hint && layout !== "inline" ? /* @__PURE__ */ jsx("div", { "data-slot": "stat-card-hint", children: hint }) : null
133
133
  ] })
134
134
  ]
135
135
  }
@@ -140,4 +140,4 @@ var CardAction = React.forwardRef(
140
140
  );
141
141
  CardAction.displayName = "CardAction";
142
142
 
143
- export { Card, CardAction, CardContent, CardCover, CardDescription, CardFooter, CardHeader, CardStat, CardTitle };
143
+ export { Card, CardAction, CardContent, CardCover, CardDescription, CardFooter, CardHeader, CardTitle, StatCard };
@@ -188,7 +188,7 @@ var VOCABULARY_REGISTRY = {
188
188
  StatusToneProp: {
189
189
  file: "vocabulary/interaction.prop.ts",
190
190
  category: "interaction",
191
- description: "StatusBadge color tone"
191
+ description: "Badge color tone"
192
192
  },
193
193
  AlertVariantProp: {
194
194
  file: "vocabulary/interaction.prop.ts",
@@ -374,18 +374,10 @@ var COMPONENT_PROP_REGISTRY = {
374
374
  file: "components/data-entry.prop.ts",
375
375
  vocabulary: ["DisabledProp"]
376
376
  },
377
- SwitchFieldProp: {
377
+ ChoiceFieldProp: {
378
378
  group: "data-entry",
379
379
  file: "components/data-entry.prop.ts",
380
- vocabulary: [
381
- "IdProp",
382
- "LabelProp",
383
- "RequiredProp",
384
- "HelperProp",
385
- "ErrorProp",
386
- "DisabledProp",
387
- "ClassNameProp"
388
- ]
380
+ vocabulary: ["IdProp", "LabelProp", "ClassNameProp"]
389
381
  },
390
382
  SliderProp: {
391
383
  group: "data-entry",
@@ -512,22 +504,21 @@ var COMPONENT_PROP_REGISTRY = {
512
504
  file: "components/data-display.prop.ts",
513
505
  vocabulary: ["IconProp", "TitleProp", "DescriptionProp", "ActionProp"]
514
506
  },
515
- KeyValueGridProp: {
507
+ DescriptionsProp: {
516
508
  group: "data-display",
517
509
  file: "components/data-display.prop.ts",
518
510
  vocabulary: []
519
511
  },
520
- StatusBadgeProp: {
512
+ BadgeProp: {
521
513
  group: "data-display",
522
514
  file: "components/data-display.prop.ts",
523
- vocabulary: ["StatusToneProp"]
515
+ vocabulary: ["ChildrenProp", "ClassNameProp"]
524
516
  },
525
517
  DataTableProp: {
526
518
  group: "data-display",
527
519
  file: "components/data-display.prop.ts",
528
520
  vocabulary: ["ColumnDefProp", "TableDensityProp", "SortStateProp", "SelectedIdsProp"]
529
521
  },
530
- BadgeProp: { group: "data-display", file: "components/data-display.prop.ts", vocabulary: [] },
531
522
  DialogConfirmProp: {
532
523
  group: "feedback",
533
524
  file: "components/feedback.prop.ts",
@@ -609,7 +600,7 @@ var COMPONENT_PROP_REGISTRY = {
609
600
  },
610
601
  StepItemProp: { group: "navigation", file: "components/navigation.prop.ts", vocabulary: [] },
611
602
  StepStatusProp: { group: "navigation", file: "components/navigation.prop.ts", vocabulary: [] },
612
- TabsItemsProp: {
603
+ TabsProp: {
613
604
  group: "navigation",
614
605
  file: "components/navigation.prop.ts",
615
606
  vocabulary: ["ClassNameProp"]
@@ -0,0 +1,48 @@
1
+ import { cn } from './chunk-U7N2A7A3.js';
2
+ import * as React from 'react';
3
+ import * as SwitchPrimitive from '@radix-ui/react-switch';
4
+ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
5
+
6
+ var Switch = React.forwardRef(
7
+ ({
8
+ className,
9
+ size = "default",
10
+ name,
11
+ checked,
12
+ defaultChecked = false,
13
+ onCheckedChange,
14
+ ...props
15
+ }, ref) => {
16
+ const [internalChecked, setInternalChecked] = React.useState(defaultChecked);
17
+ const isControlled = checked !== void 0;
18
+ const isChecked = isControlled ? checked : internalChecked;
19
+ const handleCheckedChange = (next) => {
20
+ if (!isControlled) {
21
+ setInternalChecked(next);
22
+ }
23
+ onCheckedChange?.(next);
24
+ };
25
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
26
+ name ? /* @__PURE__ */ jsx("input", { type: "hidden", name, value: isChecked ? "1" : "0", readOnly: true }) : null,
27
+ /* @__PURE__ */ jsx(
28
+ SwitchPrimitive.Root,
29
+ {
30
+ ref,
31
+ "data-slot": "switch",
32
+ "data-size": size,
33
+ checked: isChecked,
34
+ onCheckedChange: handleCheckedChange,
35
+ className: cn(
36
+ "peer ui-switch focus-visible:border-ring focus-visible:ring-ring/50 shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",
37
+ className
38
+ ),
39
+ ...props,
40
+ children: /* @__PURE__ */ jsx(SwitchPrimitive.Thumb, { "data-slot": "switch-thumb", className: "ui-switch-thumb" })
41
+ }
42
+ )
43
+ ] });
44
+ }
45
+ );
46
+ Switch.displayName = SwitchPrimitive.Root.displayName;
47
+
48
+ export { Switch };
@@ -0,0 +1,29 @@
1
+ import { cn } from './chunk-U7N2A7A3.js';
2
+ import * as React from 'react';
3
+ import * as AvatarPrimitive from '@radix-ui/react-avatar';
4
+ import { jsx } from 'react/jsx-runtime';
5
+
6
+ var Avatar = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(AvatarPrimitive.Root, { ref, "data-slot": "avatar", className: cn("ui-avatar", className), ...props }));
7
+ Avatar.displayName = AvatarPrimitive.Root.displayName;
8
+ var AvatarImage = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
9
+ AvatarPrimitive.Image,
10
+ {
11
+ ref,
12
+ "data-slot": "avatar-image",
13
+ className: cn("ui-avatar-image", className),
14
+ ...props
15
+ }
16
+ ));
17
+ AvatarImage.displayName = AvatarPrimitive.Image.displayName;
18
+ var AvatarFallback = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
19
+ AvatarPrimitive.Fallback,
20
+ {
21
+ ref,
22
+ "data-slot": "avatar-fallback",
23
+ className: cn("ui-avatar-fallback", className),
24
+ ...props
25
+ }
26
+ ));
27
+ AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;
28
+
29
+ export { Avatar, AvatarFallback, AvatarImage };
@@ -1,21 +1,67 @@
1
1
  import { cn } from './chunk-U7N2A7A3.js';
2
2
  import * as React from 'react';
3
3
  import * as TabsPrimitive from '@radix-ui/react-tabs';
4
- import { jsx } from 'react/jsx-runtime';
4
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
5
5
 
6
6
  function Tabs({
7
7
  className,
8
8
  orientation = "horizontal",
9
+ items,
10
+ value,
11
+ defaultValue,
12
+ variant = "default",
13
+ listClassName,
14
+ contentClassName,
9
15
  ...props
10
16
  }) {
17
+ const firstValue = items?.[0]?.value;
18
+ const resolvedDefault = defaultValue ?? firstValue;
11
19
  return /* @__PURE__ */ jsx(
12
20
  TabsPrimitive.Root,
13
21
  {
14
22
  "data-slot": "tabs",
15
23
  "data-orientation": orientation,
16
24
  orientation,
25
+ value,
26
+ defaultValue: value === void 0 ? resolvedDefault : void 0,
17
27
  className: cn("group/tabs flex gap-2 data-[orientation=horizontal]:flex-col", className),
18
- ...props
28
+ ...props,
29
+ children: items ? /* @__PURE__ */ jsxs(Fragment, { children: [
30
+ /* @__PURE__ */ jsx(
31
+ TabsList,
32
+ {
33
+ "data-slot": "tabs-list",
34
+ className: cn(
35
+ variant === "line" && "h-auto w-full justify-start rounded-none border-b bg-transparent p-0",
36
+ variant === "card" && "w-full justify-start",
37
+ listClassName
38
+ ),
39
+ children: items.map((item) => /* @__PURE__ */ jsx(
40
+ TabsTrigger,
41
+ {
42
+ value: item.value,
43
+ disabled: item.disabled,
44
+ className: cn(
45
+ variant === "line" && "data-[state=active]:border-primary rounded-none border-b-2 border-transparent bg-transparent px-4 py-2 shadow-none data-[state=active]:bg-transparent data-[state=active]:shadow-none",
46
+ variant === "card" && "data-[state=active]:shadow-sm"
47
+ ),
48
+ children: item.label
49
+ },
50
+ item.value
51
+ ))
52
+ }
53
+ ),
54
+ items.map((item) => /* @__PURE__ */ jsx(
55
+ TabsContent,
56
+ {
57
+ value: item.value,
58
+ "data-slot": "tabs-panel",
59
+ className: cn(variant === "line" && "mt-0", contentClassName),
60
+ children: item.content
61
+ },
62
+ item.value
63
+ ))
64
+ ] }) : props.children
19
65
  }
20
66
  );
21
67
  }
@@ -1,12 +1,12 @@
1
- import { Inline, densityClass } from './chunk-S66TJXJU.js';
2
1
  import { Table, TableHeader, TableRow, TableHead, TableBody, TableCell } from './chunk-ZS6DTAM2.js';
3
- import { tableCellPaddingClass, tableRowHeightClass, controlIconSmClass, toneNeutralClass, toneInfoClass, toneDestructiveClass, toneWarningClass, toneSuccessClass } from './chunk-ICM6XBST.js';
2
+ import { tableCellPaddingClass, tableRowHeightClass, controlIconSmClass } from './chunk-ICM6XBST.js';
3
+ import { Inline, densityClass } from './chunk-S66TJXJU.js';
4
4
  import { Button } from './chunk-HJEBRCXL.js';
5
5
  import { useTranslation } from './chunk-RLGHEV4A.js';
6
6
  import { cn } from './chunk-U7N2A7A3.js';
7
7
  import { jsx, jsxs } from 'react/jsx-runtime';
8
- import { Layers, Layers2, ArrowUp, ArrowDown, ChevronsUpDown, MoreHorizontal, XCircle, Pause, CheckCircle2, Circle, Trash2, AlertCircle, Clock, Play } from 'lucide-react';
9
8
  import * as React from 'react';
9
+ import { Layers, Layers2, ArrowUp, ArrowDown, ChevronsUpDown, MoreHorizontal } from 'lucide-react';
10
10
 
11
11
  function EmptyState({ icon: Icon, title, description, action, className }) {
12
12
  return /* @__PURE__ */ jsxs("div", { "data-slot": "empty-state", className: cn("ui-empty-state", className), children: [
@@ -16,52 +16,11 @@ function EmptyState({ icon: Icon, title, description, action, className }) {
16
16
  action && /* @__PURE__ */ jsx("div", { children: action })
17
17
  ] });
18
18
  }
19
- var STATUS_MAP = {
20
- active: { tone: "success", icon: CheckCircle2 },
21
- completed: { tone: "success", icon: CheckCircle2 },
22
- delivered: { tone: "success", icon: CheckCircle2 },
23
- done: { tone: "success", icon: CheckCircle2 },
24
- permanent: { tone: "success", icon: CheckCircle2 },
25
- succeeded: { tone: "success", icon: CheckCircle2 },
26
- draft: { tone: "neutral", icon: Circle },
27
- pending: { tone: "warning", icon: Clock },
28
- scheduled: { tone: "info", icon: Clock },
29
- sending: { tone: "info", icon: Play },
30
- temporary: { tone: "warning", icon: Clock },
31
- bounced: { tone: "destructive", icon: AlertCircle },
32
- cancelled: { tone: "neutral", icon: Pause },
33
- deleted: { tone: "destructive", icon: Trash2 },
34
- failed: { tone: "destructive", icon: XCircle },
35
- private: { tone: "neutral", icon: Circle },
36
- internal: { tone: "info", icon: Circle },
37
- public: { tone: "info", icon: Circle },
38
- ASSIGNMENT_STATUS_ACTIVE: { tone: "success", icon: CheckCircle2 },
39
- ASSIGNMENT_STATUS_SUSPENDED: { tone: "warning", icon: Pause },
40
- ASSIGNMENT_STATUS_TERMINATED: { tone: "destructive", icon: XCircle }
41
- };
42
- var TONE_CLASSES = {
43
- success: toneSuccessClass,
44
- warning: toneWarningClass,
45
- destructive: toneDestructiveClass,
46
- info: toneInfoClass,
47
- neutral: toneNeutralClass
48
- };
49
- function StatusBadge({ status, className, label: labelOverride, tone, icon }) {
50
- const { t } = useTranslation();
51
- const def = STATUS_MAP[status] ?? { tone: "neutral", icon: Circle };
52
- const resolvedTone = tone ?? def.tone;
53
- const ResolvedIcon = icon === void 0 ? def.icon : icon;
54
- const resolvedLabel = labelOverride ?? (status in STATUS_MAP ? t(`status.${status}`) : status);
55
- return /* @__PURE__ */ jsxs("span", { "data-slot": "status-badge", className: cn(TONE_CLASSES[resolvedTone], className), children: [
56
- ResolvedIcon ? /* @__PURE__ */ jsx(ResolvedIcon, { "data-slot": "status-badge-icon", "aria-hidden": "true" }) : null,
57
- /* @__PURE__ */ jsx("span", { children: resolvedLabel })
58
- ] });
59
- }
60
- function KeyValueGrid({ columns = 2, className, children }) {
19
+ function Descriptions({ columns = 2, className, children }) {
61
20
  const colsClass = columns === 1 ? "grid-cols-1" : columns === 3 ? "grid-cols-1 sm:grid-cols-2 lg:grid-cols-3" : "grid-cols-1 sm:grid-cols-2";
62
21
  return /* @__PURE__ */ jsx("dl", { className: cn("grid gap-x-6 gap-y-3", colsClass, className), children });
63
22
  }
64
- KeyValueGrid.Item = function KeyValueGridItem({
23
+ Descriptions.Item = function DescriptionsItem({
65
24
  label,
66
25
  mono,
67
26
  span,
@@ -412,4 +371,4 @@ DataTable.RowActions = function DataTableRowActions({ ariaLabel, children }) {
412
371
  };
413
372
  DataTable.RowActions.displayName = "DataTable.RowActions";
414
373
 
415
- export { DataTable, EmptyState, KeyValueGrid, StatusBadge };
374
+ export { DataTable, Descriptions, EmptyState };
@@ -1,4 +1,4 @@
1
- import { SearchSelect } from './chunk-Y7AV7QJO.js';
1
+ import { SearchSelect } from './chunk-OXKY5QMK.js';
2
2
  import { jsx } from 'react/jsx-runtime';
3
3
 
4
4
  function Autocomplete({
@@ -1,10 +1,11 @@
1
1
  export { B as BreadcrumbItem } from '../../navigation.prop-Hu7s7MJa.js';
2
2
  export { I as InlineProp, P as PageContainerProp, P as PageContainerProps, a as PageHeaderProp, f as StackProp } from '../../layout.prop-MwHm4-Zl.js';
3
- export { F as FilterBar, a as FilterGroup, P as PageHeader } from '../../filter-bar-BpUvE_yO.js';
3
+ export { F as FilterBar, a as FilterGroup, P as PageHeader } from '../../filter-bar-zSKz7YCR.js';
4
4
  export { I as Inline, P as PageContainer, S as Stack } from '../../inline-CV3A46np.js';
5
- export { C as ColumnDef, D as DataTable, a as Density, E as EmptyState, K as KeyValueGrid, S as StatusBadge } from '../../data-table-Bg7fPpXy.js';
6
- export { F as FormField, S as SearchInput } from '../../search-input-mAZy3Den.js';
7
- export { L as LegacyToastOptions, S as SkeletonCard, a as SkeletonDetail, b as SkeletonRows, c as SkeletonTable, t as toast, u as useToast } from '../../use-toast-Dol5bdY3.js';
5
+ export { C as ColumnDef, D as DataTable, a as Density, b as Descriptions, E as EmptyState } from '../../data-table-C5lcmAwE.js';
6
+ export { Badge } from '../data-display/badge.js';
7
+ export { F as FormField, S as SearchInput } from '../../search-input-rR2XDrjv.js';
8
+ export { a as SkeletonCard, b as SkeletonDetail, d as SkeletonRows, e as SkeletonTable } from '../../skeleton-CqFO4dRc.js';
8
9
  export { DataState, InfiniteQueryState, MutationFeedback, PrefetchLink, QueryRefetchButton, flattenItemPages } from '../query/index.js';
9
10
  export { Alert, AlertActions, AlertContent, AlertDescription, AlertQueryError, AlertTitle } from '../feedback/alert.js';
10
11
  export { Upload, useUploadDraft } from '../data-entry/upload.js';
@@ -12,25 +13,25 @@ export { Cascader } from '../data-entry/cascader.js';
12
13
  export { TreeSelect } from '../data-entry/tree-select.js';
13
14
  export { Transfer } from '../data-entry/transfer.js';
14
15
  export { Tabs, TabsContent, TabsList, TabsTrigger } from '../navigation/tabs.js';
15
- export { TabsItems } from '../navigation/tabs-items.js';
16
16
  export { Pagination } from '../navigation/pagination.js';
17
17
  export { Steps } from '../navigation/steps.js';
18
18
  export { Dialog, DialogConfirm, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger } from '../feedback/dialog.js';
19
19
  export { Toaster } from '../feedback/sonner.js';
20
+ export { L as LegacyToastOptions, t as toast, u as useToast } from '../../use-toast-Dsw3yE2S.js';
20
21
  import { b as FormatDatetimeOptions, a as FormatDateOptions } from '../../format-date-ByyZoqI5.js';
21
22
  export { j as formatDate } from '../../format-date-ByyZoqI5.js';
22
- export { K as collectUploadCommitActions, L as createUploadItem } from '../../data-entry.prop-Cjidhei7.js';
23
+ export { J as collectUploadCommitActions, K as createUploadItem } from '../../data-entry.prop-CpSx5dX6.js';
23
24
  import '../../shared.prop-BNRJc9K0.js';
24
25
  import 'react';
25
26
  import '../../content.prop-DrV_zDy-.js';
26
27
  import '../../layout.prop-4TCNvyQZ.js';
27
28
  import 'react/jsx-runtime';
28
- import '../../navigation.prop-Ck5_gSfs.js';
29
+ import '../../navigation.prop-DAH4ysXj.js';
29
30
  import '../../data.prop-BmLaGLb7.js';
30
31
  import '../../interaction.prop-Cdn7wOtq.js';
31
- import '../../data-display.prop-i0iaSwMV.js';
32
- import 'lucide-react';
33
- import 'sonner';
32
+ import '../../data-display.prop-CXP9Jfdn.js';
33
+ import 'class-variance-authority/types';
34
+ import 'class-variance-authority';
34
35
  import '../../query.prop-hIPrk2zI.js';
35
36
  import '@tanstack/react-query';
36
37
  import 'react-router-dom';
@@ -44,6 +45,7 @@ import 'react-day-picker';
44
45
  import '@radix-ui/react-tabs';
45
46
  import '@radix-ui/react-dialog';
46
47
  import '@radix-ui/react-alert-dialog';
48
+ import 'sonner';
47
49
  import 'date-fns';
48
50
  import '../../types-mvzYGrma.js';
49
51
 
@@ -1,38 +1,39 @@
1
1
  import '../../chunk-LDSLS6HE.js';
2
2
  export { DataState, InfiniteQueryState, MutationFeedback, PrefetchLink, QueryRefetchButton, flattenItemPages } from '../../chunk-2QG3OVAD.js';
3
- export { FilterBar, FilterGroup, PageHeader } from '../../chunk-T2S3IGZG.js';
4
- export { Pagination } from '../../chunk-JBEIL3VD.js';
3
+ export { FilterBar, FilterGroup, PageHeader } from '../../chunk-6TSU4IHV.js';
4
+ export { Pagination } from '../../chunk-FBHN6OO4.js';
5
5
  export { Steps } from '../../chunk-L6J44O74.js';
6
- export { TabsItems } from '../../chunk-BPSKQUL2.js';
7
- export { Tabs, TabsContent, TabsList, TabsTrigger } from '../../chunk-XG7XDYIM.js';
6
+ export { Tabs, TabsContent, TabsList, TabsTrigger } from '../../chunk-V3N266PT.js';
8
7
  export { TreeSelect } from '../../chunk-JJCGMCTL.js';
9
- export { Upload, collectUploadCommitActions, createUploadItem, useUploadDraft } from '../../chunk-K27I23OA.js';
10
- import '../../chunk-EE3B3TEQ.js';
8
+ export { Upload, collectUploadCommitActions, createUploadItem, useUploadDraft } from '../../chunk-NTUHJ37K.js';
9
+ import '../../chunk-ARDVPIF4.js';
11
10
  import '../../chunk-CRERCLIZ.js';
12
- export { SearchInput, Transfer, useDebouncedValue, useTimeoutFlag } from '../../chunk-YVBZ37ZE.js';
11
+ export { SearchInput, Transfer, useDebouncedValue, useTimeoutFlag } from '../../chunk-ZR2TIBPG.js';
13
12
  export { Cascader } from '../../chunk-RVY4F7LK.js';
14
13
  import '../../chunk-SMLKNECP.js';
15
14
  import '../../chunk-E76QIYSY.js';
16
15
  import '../../chunk-CQBADMFG.js';
17
- export { SkeletonCard, SkeletonDetail, SkeletonRows, SkeletonTable, toast, useToast } from '../../chunk-M64MVRLS.js';
18
- export { Alert, AlertActions, AlertContent, AlertDescription, AlertQueryError, AlertTitle } from '../../chunk-6UFKWOEW.js';
19
- export { formatBytes, formatCurrency, formatDateLong, formatDateTime, formatRelative, humanError, shortId } from '../../chunk-4R7QL3MW.js';
20
- export { Dialog, DialogConfirm, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger } from '../../chunk-2HLWHQJA.js';
16
+ export { toast, useToast } from '../../chunk-B3WX53JQ.js';
17
+ export { SkeletonCard, SkeletonDetail, SkeletonRows, SkeletonTable } from '../../chunk-HKQITNB3.js';
21
18
  export { Toaster } from '../../chunk-TO7URV7U.js';
22
- export { PageContainer, Stack } from '../../chunk-T4UT3B3K.js';
19
+ export { PageContainer, Stack } from '../../chunk-EQRQM6RF.js';
20
+ import '../../chunk-FRU44GA2.js';
23
21
  import '../../chunk-TO33OY4L.js';
24
22
  import '../../chunk-32WO3YLB.js';
25
- import '../../chunk-Y7AV7QJO.js';
23
+ import '../../chunk-OXKY5QMK.js';
26
24
  import '../../chunk-V6UWJKZF.js';
27
- import '../../chunk-VOHTRR5X.js';
28
- export { DataTable, EmptyState, KeyValueGrid, StatusBadge } from '../../chunk-TW4IRRAX.js';
25
+ export { DataTable, Descriptions, EmptyState } from '../../chunk-VXXKR5U4.js';
29
26
  import '../../chunk-DV52WNXO.js';
30
- export { Inline } from '../../chunk-S66TJXJU.js';
31
- import '../../chunk-PIIRNAXA.js';
27
+ export { Badge } from '../../chunk-7AMHT5Z5.js';
32
28
  import '../../chunk-DY5C44UP.js';
33
29
  import '../../chunk-3KPEZ5CF.js';
34
30
  import '../../chunk-ZS6DTAM2.js';
35
31
  import '../../chunk-ICM6XBST.js';
32
+ export { Alert, AlertActions, AlertContent, AlertDescription, AlertQueryError, AlertTitle } from '../../chunk-6UFKWOEW.js';
33
+ export { formatBytes, formatCurrency, formatDateLong, formatDateTime, formatRelative, humanError, shortId } from '../../chunk-4R7QL3MW.js';
34
+ export { Inline } from '../../chunk-S66TJXJU.js';
35
+ export { Dialog, DialogConfirm, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger } from '../../chunk-2HLWHQJA.js';
36
+ import '../../chunk-VOHTRR5X.js';
36
37
  import '../../chunk-HJEBRCXL.js';
37
38
  export { FormField } from '../../chunk-F7PG4OEV.js';
38
39
  import '../../chunk-7PWBC4BY.js';
@@ -1,12 +1,20 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as class_variance_authority_types from 'class-variance-authority/types';
3
+ import * as React from 'react';
3
4
  import { VariantProps } from 'class-variance-authority';
4
5
 
6
+ type BadgeVariant = "default" | "secondary" | "outline" | "success" | "warning" | "destructive" | "info" | "neutral";
5
7
  declare const badgeVariants: (props?: ({
6
- variant?: "default" | "destructive" | "outline" | "secondary" | "success" | "warning" | null | undefined;
8
+ variant?: "default" | "destructive" | "outline" | "secondary" | "success" | "warning" | "info" | "neutral" | null | undefined;
7
9
  } & class_variance_authority_types.ClassProp) | undefined) => string;
8
- interface BadgeProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> {
10
+ interface BadgeProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "children">, Omit<VariantProps<typeof badgeVariants>, "variant"> {
11
+ variant?: BadgeVariant | null;
12
+ icon?: React.ComponentType<{
13
+ className?: string;
14
+ }> | null;
15
+ status?: string;
16
+ children?: React.ReactNode;
9
17
  }
10
- declare function Badge({ className, variant, ...props }: BadgeProps): react_jsx_runtime.JSX.Element;
18
+ declare function Badge({ className, variant, icon, status, children, ...props }: BadgeProps): react_jsx_runtime.JSX.Element;
11
19
 
12
- export { Badge, type BadgeProps };
20
+ export { Badge, type BadgeProps, type BadgeVariant };
@@ -1,3 +1,5 @@
1
- export { Badge } from '../../chunk-PIIRNAXA.js';
1
+ export { Badge } from '../../chunk-7AMHT5Z5.js';
2
2
  import '../../chunk-ICM6XBST.js';
3
+ import '../../chunk-RLGHEV4A.js';
4
+ import '../../chunk-FXFJF4YA.js';
3
5
  import '../../chunk-U7N2A7A3.js';
@@ -11,7 +11,7 @@ type CardVariant = "default" | "muted" | "outline" | "featured";
11
11
  /** Padding density — base 16px · tight 12px · cozy 20px. */
12
12
  type CardDensity = "tight" | "cozy";
13
13
  declare const cardVariants: (props?: ({
14
- size?: "default" | "compact" | null | undefined;
14
+ size?: "compact" | "default" | null | undefined;
15
15
  } & class_variance_authority_types.ClassProp) | undefined) => string;
16
16
  type CardProps = React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof cardVariants> & {
17
17
  size?: CardSize;
@@ -20,7 +20,7 @@ type CardProps = React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof card
20
20
  density?: CardDensity;
21
21
  };
22
22
  declare const Card: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & VariantProps<(props?: ({
23
- size?: "default" | "compact" | null | undefined;
23
+ size?: "compact" | "default" | null | undefined;
24
24
  } & class_variance_authority_types.ClassProp) | undefined) => string> & {
25
25
  size?: CardSize;
26
26
  accent?: CardAccent;
@@ -68,7 +68,7 @@ declare const CardFooter: React.ForwardRefExoticComponent<React.HTMLAttributes<H
68
68
  /** Full-bleed footer (Ant Design `actions` bar). */
69
69
  flush?: boolean;
70
70
  } & React.RefAttributes<HTMLDivElement>>;
71
- type CardStatProps = React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof cardVariants> & {
71
+ type StatCardProps = React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof cardVariants> & {
72
72
  label: React.ReactNode;
73
73
  value: React.ReactNode;
74
74
  hint?: React.ReactNode;
@@ -82,8 +82,8 @@ type CardStatProps = React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof
82
82
  inverse?: boolean;
83
83
  };
84
84
  /** KPI / stat tile — token-driven layout aligned to dashboard KPI cards. */
85
- declare function CardStat({ label, value, hint, delta, layout, align, inverse, className, size, ...props }: CardStatProps): react_jsx_runtime.JSX.Element;
85
+ declare function StatCard({ label, value, hint, delta, layout, align, inverse, className, size, ...props }: StatCardProps): react_jsx_runtime.JSX.Element;
86
86
  /** Header actions slot — pair with `CardHeader className="flex flex-row …"`. */
87
87
  declare const CardAction: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
88
88
 
89
- export { Card, CardAction, CardContent, type CardContentProps, CardCover, type CardCoverProps, CardDescription, CardFooter, type CardFooterProps, CardHeader, type CardHeaderProps, type CardProps, CardStat, type CardStatProps, CardTitle };
89
+ export { Card, CardAction, CardContent, type CardContentProps, CardCover, type CardCoverProps, CardDescription, CardFooter, type CardFooterProps, CardHeader, type CardHeaderProps, type CardProps, CardTitle, StatCard, type StatCardProps };
@@ -1,2 +1,2 @@
1
- export { Card, CardAction, CardContent, CardCover, CardDescription, CardFooter, CardHeader, CardStat, CardTitle } from '../../chunk-GXHZAJUA.js';
1
+ export { Card, CardAction, CardContent, CardCover, CardDescription, CardFooter, CardHeader, CardTitle, StatCard } from '../../chunk-O2OUNXV4.js';
2
2
  import '../../chunk-U7N2A7A3.js';