@zedtech/zedkit-ui 0.1.1 → 0.2.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 (106) hide show
  1. package/README.md +35 -9
  2. package/dist/alert.d.ts.map +1 -1
  3. package/dist/alert.js +1 -0
  4. package/dist/alert.js.map +1 -1
  5. package/dist/badge.d.ts.map +1 -1
  6. package/dist/badge.js.map +1 -1
  7. package/dist/button.d.ts.map +1 -1
  8. package/dist/button.js +1 -0
  9. package/dist/button.js.map +1 -1
  10. package/dist/card.d.ts.map +1 -1
  11. package/dist/card.js +1 -0
  12. package/dist/card.js.map +1 -1
  13. package/dist/checkbox.d.ts.map +1 -1
  14. package/dist/checkbox.js +1 -0
  15. package/dist/checkbox.js.map +1 -1
  16. package/dist/checkmark.d.ts +11 -0
  17. package/dist/checkmark.d.ts.map +1 -0
  18. package/dist/checkmark.js +12 -0
  19. package/dist/checkmark.js.map +1 -0
  20. package/dist/dialog.d.ts.map +1 -1
  21. package/dist/dialog.js +1 -0
  22. package/dist/dialog.js.map +1 -1
  23. package/dist/drawer.d.ts +30 -0
  24. package/dist/drawer.d.ts.map +1 -0
  25. package/dist/drawer.js +35 -0
  26. package/dist/drawer.js.map +1 -0
  27. package/dist/field.d.ts.map +1 -1
  28. package/dist/field.js +1 -0
  29. package/dist/field.js.map +1 -1
  30. package/dist/form.d.ts.map +1 -1
  31. package/dist/form.js +1 -0
  32. package/dist/form.js.map +1 -1
  33. package/dist/index.d.ts +4 -0
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +4 -0
  36. package/dist/index.js.map +1 -1
  37. package/dist/input.d.ts.map +1 -1
  38. package/dist/input.js +1 -0
  39. package/dist/input.js.map +1 -1
  40. package/dist/label.d.ts.map +1 -1
  41. package/dist/label.js +1 -0
  42. package/dist/label.js.map +1 -1
  43. package/dist/live-pulse.d.ts.map +1 -1
  44. package/dist/live-pulse.js +2 -1
  45. package/dist/live-pulse.js.map +1 -1
  46. package/dist/progress-bar.d.ts +16 -0
  47. package/dist/progress-bar.d.ts.map +1 -0
  48. package/dist/progress-bar.js +16 -0
  49. package/dist/progress-bar.js.map +1 -0
  50. package/dist/select.d.ts.map +1 -1
  51. package/dist/select.js +1 -0
  52. package/dist/select.js.map +1 -1
  53. package/dist/separator.d.ts.map +1 -1
  54. package/dist/separator.js +1 -0
  55. package/dist/separator.js.map +1 -1
  56. package/dist/skeleton.d.ts.map +1 -1
  57. package/dist/skeleton.js +1 -0
  58. package/dist/skeleton.js.map +1 -1
  59. package/dist/sonner.d.ts.map +1 -1
  60. package/dist/sonner.js +1 -0
  61. package/dist/sonner.js.map +1 -1
  62. package/dist/status-dot.d.ts +13 -0
  63. package/dist/status-dot.d.ts.map +1 -0
  64. package/dist/status-dot.js +20 -0
  65. package/dist/status-dot.js.map +1 -0
  66. package/dist/switch.d.ts.map +1 -1
  67. package/dist/switch.js +1 -0
  68. package/dist/switch.js.map +1 -1
  69. package/dist/table.d.ts.map +1 -1
  70. package/dist/table.js.map +1 -1
  71. package/dist/tabs.d.ts.map +1 -1
  72. package/dist/tabs.js +1 -0
  73. package/dist/tabs.js.map +1 -1
  74. package/dist/textarea.d.ts.map +1 -1
  75. package/dist/textarea.js +1 -0
  76. package/dist/textarea.js.map +1 -1
  77. package/dist/utils.d.ts.map +1 -1
  78. package/dist/utils.js +1 -0
  79. package/dist/utils.js.map +1 -1
  80. package/package.json +23 -3
  81. package/src/alert.tsx +1 -0
  82. package/src/badge.tsx +1 -0
  83. package/src/button.tsx +1 -0
  84. package/src/card.tsx +1 -0
  85. package/src/checkbox.tsx +1 -0
  86. package/src/checkmark.tsx +34 -0
  87. package/src/dialog.tsx +1 -0
  88. package/src/drawer.tsx +140 -0
  89. package/src/field.tsx +1 -0
  90. package/src/form.tsx +1 -0
  91. package/src/index.ts +16 -0
  92. package/src/input.tsx +1 -0
  93. package/src/label.tsx +1 -0
  94. package/src/live-pulse.tsx +2 -8
  95. package/src/progress-bar.tsx +45 -0
  96. package/src/select.tsx +1 -0
  97. package/src/separator.tsx +1 -0
  98. package/src/skeleton.tsx +1 -0
  99. package/src/sonner.tsx +1 -0
  100. package/src/status-dot.tsx +42 -0
  101. package/src/styles.css +15 -0
  102. package/src/switch.tsx +1 -0
  103. package/src/table.tsx +1 -0
  104. package/src/tabs.tsx +1 -0
  105. package/src/textarea.tsx +1 -0
  106. package/src/utils.ts +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"select.js","sourceRoot":"","sources":["../src/select.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"select.js","sourceRoot":"","sources":["../src/select.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"separator.d.ts","sourceRoot":"","sources":["../src/separator.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,kBAAkB,MAAM,2BAA2B,CAAC;AAGhE,QAAA,MAAM,SAAS,6JAoBd,CAAC;AAGF,OAAO,EAAE,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"separator.d.ts","sourceRoot":"","sources":["../src/separator.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,kBAAkB,MAAM,2BAA2B,CAAC;AAGhE,QAAA,MAAM,SAAS,6JAoBd,CAAC;AAGF,OAAO,EAAE,SAAS,EAAE,CAAC"}
package/dist/separator.js CHANGED
@@ -1,3 +1,4 @@
1
+ // Derived from shadcn/ui (separator) — see Provenance in packages/ui/README.md. Tolerated exception: migrated to custom code only when customization needs it.
1
2
  "use client";
2
3
  import { jsx as _jsx } from "react/jsx-runtime";
3
4
  import * as React from "react";
@@ -1 +1 @@
1
- {"version":3,"file":"separator.js","sourceRoot":"","sources":["../src/separator.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,kBAAkB,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAEhC,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAIhC,CACE,EAAE,SAAS,EAAE,WAAW,GAAG,YAAY,EAAE,UAAU,GAAG,IAAI,EAAE,GAAG,KAAK,EAAE,EACtE,GAAG,EACH,EAAE,CAAC,CACH,KAAC,kBAAkB,CAAC,IAAI,IACtB,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,EAAE,CACX,oBAAoB,EACpB,WAAW,KAAK,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,EAClE,SAAS,CACV,KACG,KAAK,GACT,CACH,CACF,CAAC;AACF,SAAS,CAAC,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;AAE5D,OAAO,EAAE,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"separator.js","sourceRoot":"","sources":["../src/separator.tsx"],"names":[],"mappings":"AAAA,+JAA+J;AAC/J,YAAY,CAAC;;AAEb,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,kBAAkB,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAEhC,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAIhC,CACE,EAAE,SAAS,EAAE,WAAW,GAAG,YAAY,EAAE,UAAU,GAAG,IAAI,EAAE,GAAG,KAAK,EAAE,EACtE,GAAG,EACH,EAAE,CAAC,CACH,KAAC,kBAAkB,CAAC,IAAI,IACtB,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,EAAE,CACX,oBAAoB,EACpB,WAAW,KAAK,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,EAClE,SAAS,CACV,KACG,KAAK,GACT,CACH,CACF,CAAC;AACF,SAAS,CAAC,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;AAE5D,OAAO,EAAE,SAAS,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"skeleton.d.ts","sourceRoot":"","sources":["../src/skeleton.tsx"],"names":[],"mappings":"AAEA,iBAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,+BAE9E;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"skeleton.d.ts","sourceRoot":"","sources":["../src/skeleton.tsx"],"names":[],"mappings":"AAGA,iBAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,+BAE9E;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"}
package/dist/skeleton.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
+ // Derived from shadcn/ui (skeleton) — see Provenance in packages/ui/README.md. Tolerated exception: migrated to custom code only when customization needs it.
2
3
  import { cn } from "./utils.js";
3
4
  function Skeleton({ className, ...props }) {
4
5
  return _jsx("div", { className: cn("animate-pulse rounded-md bg-muted", className), ...props });
@@ -1 +1 @@
1
- {"version":3,"file":"skeleton.js","sourceRoot":"","sources":["../src/skeleton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAEhC,SAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAwC;IAC7E,OAAO,cAAK,SAAS,EAAE,EAAE,CAAC,mCAAmC,EAAE,SAAS,CAAC,KAAM,KAAK,GAAI,CAAC;AAC3F,CAAC;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"skeleton.js","sourceRoot":"","sources":["../src/skeleton.tsx"],"names":[],"mappings":";AAAA,8JAA8J;AAC9J,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAEhC,SAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAwC;IAC7E,OAAO,cAAK,SAAS,EAAE,EAAE,CAAC,mCAAmC,EAAE,SAAS,CAAC,KAAM,KAAK,GAAI,CAAC;AAC3F,CAAC;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"sonner.d.ts","sourceRoot":"","sources":["../src/sonner.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,QAAQ,CAAC;AAE9D;;;GAGG;AACH,iBAAS,OAAO,CAAC,KAAK,EAAE,YAAY,+BAcnC;AAED,OAAO,EAAE,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"sonner.d.ts","sourceRoot":"","sources":["../src/sonner.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,QAAQ,CAAC;AAE9D;;;GAGG;AACH,iBAAS,OAAO,CAAC,KAAK,EAAE,YAAY,+BAcnC;AAED,OAAO,EAAE,OAAO,EAAE,CAAC"}
package/dist/sonner.js CHANGED
@@ -1,3 +1,4 @@
1
+ // Derived from shadcn/ui (sonner) — see Provenance in packages/ui/README.md. Tolerated exception: migrated to custom code only when customization needs it.
1
2
  "use client";
2
3
  import { jsx as _jsx } from "react/jsx-runtime";
3
4
  import { Toaster as Sonner } from "sonner";
@@ -1 +1 @@
1
- {"version":3,"file":"sonner.js","sourceRoot":"","sources":["../src/sonner.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,OAAO,IAAI,MAAM,EAAqB,MAAM,QAAQ,CAAC;AAE9D;;;GAGG;AACH,SAAS,OAAO,CAAC,KAAmB;IAClC,OAAO,CACL,KAAC,MAAM,IACL,YAAY,EAAE;YACZ,UAAU,EAAE;gBACV,KAAK,EAAE,6CAA6C;gBACpD,WAAW,EAAE,uBAAuB;gBACpC,YAAY,EAAE,oCAAoC;gBAClD,YAAY,EAAE,gCAAgC;aAC/C;SACF,KACG,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"sonner.js","sourceRoot":"","sources":["../src/sonner.tsx"],"names":[],"mappings":"AAAA,4JAA4J;AAC5J,YAAY,CAAC;;AAEb,OAAO,EAAE,OAAO,IAAI,MAAM,EAAqB,MAAM,QAAQ,CAAC;AAE9D;;;GAGG;AACH,SAAS,OAAO,CAAC,KAAmB;IAClC,OAAO,CACL,KAAC,MAAM,IACL,YAAY,EAAE;YACZ,UAAU,EAAE;gBACV,KAAK,EAAE,6CAA6C;gBACpD,WAAW,EAAE,uBAAuB;gBACpC,YAAY,EAAE,oCAAoC;gBAClD,YAAY,EAAE,gCAAgC;aAC/C;SACF,KACG,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,OAAO,EAAE,CAAC"}
@@ -0,0 +1,13 @@
1
+ export type StatusDotTone = "active" | "idle" | "success" | "warning" | "danger";
2
+ export interface StatusDotProps {
3
+ tone?: StatusDotTone;
4
+ /** Override the default ping (ongoing tones ping, others stay static). */
5
+ pulse?: boolean;
6
+ className?: string;
7
+ }
8
+ /**
9
+ * Decorative status dot: pings for ongoing tones (motion-safe), static
10
+ * otherwise. Pair with visible text (e.g. StatusLabel) — never alone.
11
+ */
12
+ export declare function StatusDot({ tone, pulse, className }: StatusDotProps): import("react").JSX.Element;
13
+ //# sourceMappingURL=status-dot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status-dot.d.ts","sourceRoot":"","sources":["../src/status-dot.tsx"],"names":[],"mappings":"AAEA,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEjF,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAYD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,EAAE,IAAe,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,cAAc,+BAgB9E"}
@@ -0,0 +1,20 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { cn } from "./utils.js";
3
+ const TONE_COLOR = {
4
+ active: "bg-primary",
5
+ idle: "bg-muted-foreground/40",
6
+ success: "bg-success",
7
+ warning: "bg-warning",
8
+ danger: "bg-destructive",
9
+ };
10
+ const PING_TONES = new Set(["active", "warning", "danger"]);
11
+ /**
12
+ * Decorative status dot: pings for ongoing tones (motion-safe), static
13
+ * otherwise. Pair with visible text (e.g. StatusLabel) — never alone.
14
+ */
15
+ export function StatusDot({ tone = "active", pulse, className }) {
16
+ const color = TONE_COLOR[tone];
17
+ const ping = pulse ?? PING_TONES.has(tone);
18
+ return (_jsxs("span", { "aria-hidden": true, className: cn("relative flex size-2", className), children: [ping ? (_jsx("span", { className: cn("absolute inline-flex h-full w-full rounded-full opacity-60 motion-safe:animate-ping", color) })) : null, _jsx("span", { className: cn("relative inline-flex size-2 rounded-full", color) })] }));
19
+ }
20
+ //# sourceMappingURL=status-dot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status-dot.js","sourceRoot":"","sources":["../src/status-dot.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAWhC,MAAM,UAAU,GAAkC;IAChD,MAAM,EAAE,YAAY;IACpB,IAAI,EAAE,wBAAwB;IAC9B,OAAO,EAAE,YAAY;IACrB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,gBAAgB;CACzB,CAAC;AAEF,MAAM,UAAU,GAA+B,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;AAExF;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,EAAE,IAAI,GAAG,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAkB;IAC7E,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,IAAI,GAAG,KAAK,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC3C,OAAO,CACL,qCAAkB,SAAS,EAAE,EAAE,CAAC,sBAAsB,EAAE,SAAS,CAAC,aAC/D,IAAI,CAAC,CAAC,CAAC,CACN,eACE,SAAS,EAAE,EAAE,CACX,qFAAqF,EACrF,KAAK,CACN,GACD,CACH,CAAC,CAAC,CAAC,IAAI,EACR,eAAM,SAAS,EAAE,EAAE,CAAC,0CAA0C,EAAE,KAAK,CAAC,GAAI,IACrE,CACR,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"switch.d.ts","sourceRoot":"","sources":["../src/switch.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,gBAAgB,MAAM,wBAAwB,CAAC;AAI3D,QAAA,MAAM,MAAM,8JAkBV,CAAC;AAGH,OAAO,EAAE,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"switch.d.ts","sourceRoot":"","sources":["../src/switch.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,gBAAgB,MAAM,wBAAwB,CAAC;AAI3D,QAAA,MAAM,MAAM,8JAkBV,CAAC;AAGH,OAAO,EAAE,MAAM,EAAE,CAAC"}
package/dist/switch.js CHANGED
@@ -1,3 +1,4 @@
1
+ // Derived from shadcn/ui (switch) — see Provenance in packages/ui/README.md. Tolerated exception: migrated to custom code only when customization needs it.
1
2
  "use client";
2
3
  import { jsx as _jsx } from "react/jsx-runtime";
3
4
  import * as React from "react";
@@ -1 +1 @@
1
- {"version":3,"file":"switch.js","sourceRoot":"","sources":["../src/switch.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,gBAAgB,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAEhC,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAG7B,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,KAAC,gBAAgB,CAAC,IAAI,IACpB,SAAS,EAAE,EAAE,CACX,6XAA6X,EAC7X,SAAS,CACV,KACG,KAAK,EACT,GAAG,EAAE,GAAG,YAER,KAAC,gBAAgB,CAAC,KAAK,IACrB,SAAS,EAAE,EAAE,CACX,4KAA4K,CAC7K,GACD,GACoB,CACzB,CAAC,CAAC;AACH,MAAM,CAAC,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC;AAEvD,OAAO,EAAE,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"switch.js","sourceRoot":"","sources":["../src/switch.tsx"],"names":[],"mappings":"AAAA,4JAA4J;AAC5J,YAAY,CAAC;;AAEb,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,gBAAgB,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAEhC,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAG7B,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,KAAC,gBAAgB,CAAC,IAAI,IACpB,SAAS,EAAE,EAAE,CACX,6XAA6X,EAC7X,SAAS,CACV,KACG,KAAK,EACT,GAAG,EAAE,GAAG,YAER,KAAC,gBAAgB,CAAC,KAAK,IACrB,SAAS,EAAE,EAAE,CACX,4KAA4K,CAC7K,GACD,GACoB,CACzB,CAAC,CAAC;AACH,MAAM,CAAC,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC;AAEvD,OAAO,EAAE,MAAM,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../src/table.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,iBAAS,KAAK,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,qBAMpE;AAED,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,qBAE1E;AAED,iBAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,qBAExE;AAED,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,qBAQ1E;AAED,iBAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,qBAQpE;AAED,iBAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,qBAWrE;AAED,iBAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,qBAQrE;AAED,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,qBAE7E;AAED,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../src/table.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,iBAAS,KAAK,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,qBAMpE;AAED,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,qBAE1E;AAED,iBAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,qBAExE;AAED,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,qBAQ1E;AAED,iBAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,qBAQpE;AAED,iBAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,qBAWrE;AAED,iBAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,qBAQrE;AAED,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,qBAE7E;AAED,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC"}
package/dist/table.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"table.js","sourceRoot":"","sources":["../src/table.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAEhC,SAAS,KAAK,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAiC;IACnE,OAAO,CACL,2BAAe,iBAAiB,EAAC,SAAS,EAAC,iCAAiC,YAC1E,6BAAiB,OAAO,EAAC,SAAS,EAAE,EAAE,CAAC,+BAA+B,EAAE,SAAS,CAAC,KAAM,KAAK,GAAI,GAC7F,CACP,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAiC;IACzE,OAAO,6BAAiB,cAAc,EAAC,SAAS,EAAE,EAAE,CAAC,iBAAiB,EAAE,SAAS,CAAC,KAAM,KAAK,GAAI,CAAC;AACpG,CAAC;AAED,SAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAiC;IACvE,OAAO,6BAAiB,YAAY,EAAC,SAAS,EAAE,EAAE,CAAC,4BAA4B,EAAE,SAAS,CAAC,KAAM,KAAK,GAAI,CAAC;AAC7G,CAAC;AAED,SAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAiC;IACzE,OAAO,CACL,6BACY,cAAc,EACxB,SAAS,EAAE,EAAE,CAAC,yDAAyD,EAAE,SAAS,CAAC,KAC/E,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA8B;IACnE,OAAO,CACL,0BACY,WAAW,EACrB,SAAS,EAAE,EAAE,CAAC,6EAA6E,EAAE,SAAS,CAAC,KACnG,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA8B;IACpE,OAAO,CACL,0BACY,YAAY,EACtB,SAAS,EAAE,EAAE,CACX,oJAAoJ,EACpJ,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA8B;IACpE,OAAO,CACL,0BACY,YAAY,EACtB,SAAS,EAAE,EAAE,CAAC,wGAAwG,EAAE,SAAS,CAAC,KAC9H,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAmC;IAC5E,OAAO,+BAAmB,eAAe,EAAC,SAAS,EAAE,EAAE,CAAC,oCAAoC,EAAE,SAAS,CAAC,KAAM,KAAK,GAAI,CAAC;AAC1H,CAAC;AAED,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"table.js","sourceRoot":"","sources":["../src/table.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAEhC,SAAS,KAAK,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAiC;IACnE,OAAO,CACL,2BAAe,iBAAiB,EAAC,SAAS,EAAC,iCAAiC,YAC1E,6BAAiB,OAAO,EAAC,SAAS,EAAE,EAAE,CAAC,+BAA+B,EAAE,SAAS,CAAC,KAAM,KAAK,GAAI,GAC7F,CACP,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAiC;IACzE,OAAO,6BAAiB,cAAc,EAAC,SAAS,EAAE,EAAE,CAAC,iBAAiB,EAAE,SAAS,CAAC,KAAM,KAAK,GAAI,CAAC;AACpG,CAAC;AAED,SAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAiC;IACvE,OAAO,6BAAiB,YAAY,EAAC,SAAS,EAAE,EAAE,CAAC,4BAA4B,EAAE,SAAS,CAAC,KAAM,KAAK,GAAI,CAAC;AAC7G,CAAC;AAED,SAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAiC;IACzE,OAAO,CACL,6BACY,cAAc,EACxB,SAAS,EAAE,EAAE,CAAC,yDAAyD,EAAE,SAAS,CAAC,KAC/E,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA8B;IACnE,OAAO,CACL,0BACY,WAAW,EACrB,SAAS,EAAE,EAAE,CAAC,6EAA6E,EAAE,SAAS,CAAC,KACnG,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA8B;IACpE,OAAO,CACL,0BACY,YAAY,EACtB,SAAS,EAAE,EAAE,CACX,oJAAoJ,EACpJ,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA8B;IACpE,OAAO,CACL,0BACY,YAAY,EACtB,SAAS,EAAE,EAAE,CAAC,wGAAwG,EAAE,SAAS,CAAC,KAC9H,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAmC;IAC5E,OAAO,+BAAmB,eAAe,EAAC,SAAS,EAAE,EAAE,CAAC,oCAAoC,EAAE,SAAS,CAAC,KAAM,KAAK,GAAI,CAAC;AAC1H,CAAC;AAED,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../src/tabs.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,aAAa,MAAM,sBAAsB,CAAC;AAItD,QAAA,MAAM,IAAI,gGAAqB,CAAC;AAEhC,QAAA,MAAM,QAAQ,uJASZ,CAAC;AAGH,QAAA,MAAM,WAAW,gKAYf,CAAC;AAGH,QAAA,MAAM,WAAW,0JAYf,CAAC;AAGH,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../src/tabs.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,aAAa,MAAM,sBAAsB,CAAC;AAItD,QAAA,MAAM,IAAI,gGAAqB,CAAC;AAEhC,QAAA,MAAM,QAAQ,uJASZ,CAAC;AAGH,QAAA,MAAM,WAAW,gKAYf,CAAC;AAGH,QAAA,MAAM,WAAW,0JAYf,CAAC;AAGH,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC"}
package/dist/tabs.js CHANGED
@@ -1,3 +1,4 @@
1
+ // Derived from shadcn/ui (tabs) — see Provenance in packages/ui/README.md. Tolerated exception: migrated to custom code only when customization needs it.
1
2
  "use client";
2
3
  import { jsx as _jsx } from "react/jsx-runtime";
3
4
  import * as React from "react";
package/dist/tabs.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.js","sourceRoot":"","sources":["../src/tabs.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,aAAa,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAEhC,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC;AAEhC,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAG/B,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,KAAC,aAAa,CAAC,IAAI,IACjB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,2FAA2F,EAAE,SAAS,CAAC,KACjH,KAAK,GACT,CACH,CAAC,CAAC;AACH,QAAQ,CAAC,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC;AAEtD,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAGlC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,KAAC,aAAa,CAAC,OAAO,IACpB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,gYAAgY,EAChY,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAC,CAAC;AACH,WAAW,CAAC,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC;AAE5D,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAGlC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,KAAC,aAAa,CAAC,OAAO,IACpB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,iIAAiI,EACjI,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAC,CAAC;AACH,WAAW,CAAC,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC;AAE5D,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"tabs.js","sourceRoot":"","sources":["../src/tabs.tsx"],"names":[],"mappings":"AAAA,0JAA0J;AAC1J,YAAY,CAAC;;AAEb,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,aAAa,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAEhC,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC;AAEhC,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAG/B,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,KAAC,aAAa,CAAC,IAAI,IACjB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,2FAA2F,EAAE,SAAS,CAAC,KACjH,KAAK,GACT,CACH,CAAC,CAAC;AACH,QAAQ,CAAC,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC;AAEtD,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAGlC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,KAAC,aAAa,CAAC,OAAO,IACpB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,gYAAgY,EAChY,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAC,CAAC;AACH,WAAW,CAAC,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC;AAE5D,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAGlC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,KAAC,aAAa,CAAC,OAAO,IACpB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,iIAAiI,EACjI,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAC,CAAC;AACH,WAAW,CAAC,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC;AAE5D,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"textarea.d.ts","sourceRoot":"","sources":["../src/textarea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,QAAA,MAAM,QAAQ,0LAab,CAAC;AAGF,OAAO,EAAE,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"textarea.d.ts","sourceRoot":"","sources":["../src/textarea.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,QAAA,MAAM,QAAQ,0LAab,CAAC;AAGF,OAAO,EAAE,QAAQ,EAAE,CAAC"}
package/dist/textarea.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
+ // Derived from shadcn/ui (textarea) — see Provenance in packages/ui/README.md. Tolerated exception: migrated to custom code only when customization needs it.
2
3
  import * as React from "react";
3
4
  import { cn } from "./utils.js";
4
5
  const Textarea = React.forwardRef(({ className, ...props }, ref) => {
@@ -1 +1 @@
1
- {"version":3,"file":"textarea.js","sourceRoot":"","sources":["../src/textarea.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAEhC,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAC/B,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE;IAC/B,OAAO,CACL,mBACE,SAAS,EAAE,EAAE,CACX,2QAA2Q,EAC3Q,SAAS,CACV,EACD,GAAG,EAAE,GAAG,KACJ,KAAK,GACT,CACH,CAAC;AACJ,CAAC,CACF,CAAC;AACF,QAAQ,CAAC,WAAW,GAAG,UAAU,CAAC;AAElC,OAAO,EAAE,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"textarea.js","sourceRoot":"","sources":["../src/textarea.tsx"],"names":[],"mappings":";AAAA,8JAA8J;AAC9J,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAEhC,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAC/B,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE;IAC/B,OAAO,CACL,mBACE,SAAS,EAAE,EAAE,CACX,2QAA2Q,EAC3Q,SAAS,CACV,EACD,GAAG,EAAE,GAAG,KACJ,KAAK,GACT,CACH,CAAC;AACJ,CAAC,CACF,CAAC;AACF,QAAQ,CAAC,WAAW,GAAG,UAAU,CAAC;AAElC,OAAO,EAAE,QAAQ,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,UAAU,EAAE,MAAM,MAAM,CAAC;AAG7C;;;;GAIG;AACH,wBAAgB,EAAE,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAElD"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,KAAK,UAAU,EAAE,MAAM,MAAM,CAAC;AAG7C;;;;GAIG;AACH,wBAAgB,EAAE,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAElD"}
package/dist/utils.js CHANGED
@@ -1,3 +1,4 @@
1
+ // Derived from shadcn/ui (utils (cn)) — see Provenance in packages/ui/README.md. Tolerated exception: migrated to custom code only when customization needs it.
1
2
  import { clsx } from "clsx";
2
3
  import { twMerge } from "tailwind-merge";
3
4
  /**
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAmB,MAAM,MAAM,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC;;;;GAIG;AACH,MAAM,UAAU,EAAE,CAAC,GAAG,MAAoB;IACxC,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC/B,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,gKAAgK;AAChK,OAAO,EAAE,IAAI,EAAmB,MAAM,MAAM,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC;;;;GAIG;AACH,MAAM,UAAU,EAAE,CAAC,GAAG,MAAoB;IACxC,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC/B,CAAC"}
package/package.json CHANGED
@@ -1,11 +1,30 @@
1
1
  {
2
2
  "name": "@zedtech/zedkit-ui",
3
- "version": "0.1.1",
3
+ "version": "0.2.0",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "registry": "https://registry.npmjs.org/"
7
7
  },
8
- "description": "Admin UI kit: design tokens, dark/light theme, shadcn/ui-based components (MIT, see THIRD_PARTY_NOTICES.md).",
8
+ "description": "Ship a calm admin UI fast: dark/light design tokens plus accessible building blocks (data tables, forms, dialogs, toasts).",
9
+ "keywords": [
10
+ "react",
11
+ "react-components",
12
+ "ui-kit",
13
+ "design-system",
14
+ "admin",
15
+ "dashboard",
16
+ "tailwindcss",
17
+ "tailwind-v4",
18
+ "radix-ui",
19
+ "shadcn",
20
+ "dark-mode",
21
+ "accessible",
22
+ "nextjs"
23
+ ],
24
+ "homepage": "https://github.com/zedtech-fr/zedkit/tree/main/packages/ui",
25
+ "bugs": {
26
+ "url": "https://github.com/zedtech-fr/zedkit/issues"
27
+ },
9
28
  "license": "MIT",
10
29
  "repository": {
11
30
  "type": "git",
@@ -58,6 +77,7 @@
58
77
  "react-hook-form": "7.91.0",
59
78
  "sonner": "2.0.8",
60
79
  "tailwind-merge": "3.7.0",
80
+ "vaul": "1.1.2",
61
81
  "zod": "4.6.7"
62
82
  },
63
83
  "devDependencies": {
@@ -72,7 +92,7 @@
72
92
  "typescript": "5.9.3",
73
93
  "vitest": "2.1.9",
74
94
  "vitest-axe": "0.1.0",
75
- "@zedtech/zedkit-core": "0.1.0"
95
+ "@zedtech/zedkit-core": "0.1.1"
76
96
  },
77
97
  "scripts": {
78
98
  "build": "tsc -p tsconfig.json",
package/src/alert.tsx CHANGED
@@ -1,3 +1,4 @@
1
+ // Derived from shadcn/ui (alert) — see Provenance in packages/ui/README.md. Tolerated exception: migrated to custom code only when customization needs it.
1
2
  import * as React from "react";
2
3
  import { cva, type VariantProps } from "class-variance-authority";
3
4
 
package/src/badge.tsx CHANGED
@@ -1,3 +1,4 @@
1
+ // Derived from shadcn/ui (badge) — see Provenance in packages/ui/README.md. Tolerated exception: migrated to custom code only when customization needs it.
1
2
  import * as React from "react";
2
3
  import { cva, type VariantProps } from "class-variance-authority";
3
4
  import { cn } from "./utils.js";
package/src/button.tsx CHANGED
@@ -1,3 +1,4 @@
1
+ // Derived from shadcn/ui (button) — see Provenance in packages/ui/README.md. Tolerated exception: migrated to custom code only when customization needs it.
1
2
  "use client";
2
3
 
3
4
  import * as React from "react";
package/src/card.tsx CHANGED
@@ -1,3 +1,4 @@
1
+ // Derived from shadcn/ui (card) — see Provenance in packages/ui/README.md. Tolerated exception: migrated to custom code only when customization needs it.
1
2
  import * as React from "react";
2
3
 
3
4
  import { cn } from "./utils.js";
package/src/checkbox.tsx CHANGED
@@ -1,3 +1,4 @@
1
+ // Derived from shadcn/ui (checkbox) — see Provenance in packages/ui/README.md. Tolerated exception: migrated to custom code only when customization needs it.
1
2
  "use client";
2
3
 
3
4
  import * as React from "react";
@@ -0,0 +1,34 @@
1
+ import { cn } from "./utils.js";
2
+
3
+ export interface CheckmarkProps {
4
+ /** Accessible name; omitted means decorative (pair with visible text). */
5
+ label?: string;
6
+ className?: string;
7
+ }
8
+
9
+ /**
10
+ * Success check that draws itself once (static full check under
11
+ * reduced motion — see `zk-check-draw` in styles.css).
12
+ */
13
+ export function Checkmark({ label, className }: CheckmarkProps) {
14
+ return (
15
+ <svg
16
+ viewBox="0 0 16 16"
17
+ fill="none"
18
+ {...(label === undefined
19
+ ? { "aria-hidden": true as const }
20
+ : { role: "img" as const, "aria-label": label })}
21
+ className={cn("size-4 text-success", className)}
22
+ >
23
+ <circle cx="8" cy="8" r="7" stroke="currentColor" strokeWidth="1.5" />
24
+ <path
25
+ d="M5.5 8.2 7.2 9.9 10.6 6.3"
26
+ stroke="currentColor"
27
+ strokeWidth="1.8"
28
+ strokeLinecap="round"
29
+ strokeLinejoin="round"
30
+ className="[stroke-dasharray:8] motion-safe:animate-[zk-check-draw_0.45s_ease-out_forwards]"
31
+ />
32
+ </svg>
33
+ );
34
+ }
package/src/dialog.tsx CHANGED
@@ -1,3 +1,4 @@
1
+ // Derived from shadcn/ui (dialog) — see Provenance in packages/ui/README.md. Tolerated exception: migrated to custom code only when customization needs it.
1
2
  "use client";
2
3
 
3
4
  import * as React from "react";
package/src/drawer.tsx ADDED
@@ -0,0 +1,140 @@
1
+ // Derived from shadcn/ui (drawer) — see Provenance in packages/ui/README.md. Adapted: direction-aware
2
+ // positioning via data variants (vaul sets data-vaul-drawer-direction on the content), drag handle and
3
+ // close left to the consumer to compose, ref-as-prop (React 19). Vaul injects its own base CSS
4
+ // (drag transitions, open/close keyframes) at import; the kit adds no drawer CSS.
5
+ "use client";
6
+
7
+ import * as React from "react";
8
+ import { Drawer as DrawerPrimitive } from "vaul";
9
+ import { cn } from "./utils.js";
10
+
11
+ const Drawer = DrawerPrimitive.Root;
12
+ const DrawerTrigger = DrawerPrimitive.Trigger;
13
+ const DrawerClose = DrawerPrimitive.Close;
14
+ const DrawerPortal = DrawerPrimitive.Portal;
15
+
16
+ function DrawerOverlay({
17
+ className,
18
+ ref,
19
+ ...props
20
+ }: React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Overlay> & {
21
+ ref?: React.Ref<HTMLDivElement>;
22
+ }) {
23
+ return (
24
+ <DrawerPrimitive.Overlay
25
+ ref={ref}
26
+ className={cn("fixed inset-0 z-50 bg-overlay/80", className)}
27
+ {...props}
28
+ />
29
+ );
30
+ }
31
+
32
+ function DrawerContent({
33
+ className,
34
+ children,
35
+ ref,
36
+ modal = true,
37
+ ...props
38
+ }: React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Content> & {
39
+ ref?: React.Ref<HTMLDivElement>;
40
+ /**
41
+ * Mirror of the `Drawer` root `modal` prop: `false` renders no
42
+ * overlay so the background stays interactive. Defaults to `true`.
43
+ */
44
+ modal?: boolean;
45
+ }) {
46
+ return (
47
+ <DrawerPortal>
48
+ {modal ? <DrawerOverlay /> : null}
49
+ <DrawerPrimitive.Content
50
+ ref={ref}
51
+ className={cn(
52
+ "fixed z-50 flex flex-col border bg-background",
53
+ "data-[vaul-drawer-direction=bottom]:inset-x-0 data-[vaul-drawer-direction=bottom]:bottom-0 data-[vaul-drawer-direction=bottom]:max-h-[96dvh] data-[vaul-drawer-direction=bottom]:rounded-t-xl",
54
+ "data-[vaul-drawer-direction=top]:inset-x-0 data-[vaul-drawer-direction=top]:top-0 data-[vaul-drawer-direction=top]:max-h-[96dvh] data-[vaul-drawer-direction=top]:rounded-b-xl",
55
+ "data-[vaul-drawer-direction=right]:inset-y-0 data-[vaul-drawer-direction=right]:right-0 data-[vaul-drawer-direction=right]:w-full data-[vaul-drawer-direction=right]:sm:max-w-md",
56
+ "data-[vaul-drawer-direction=left]:inset-y-0 data-[vaul-drawer-direction=left]:left-0 data-[vaul-drawer-direction=left]:w-full data-[vaul-drawer-direction=left]:sm:max-w-md",
57
+ className,
58
+ )}
59
+ {...props}
60
+ >
61
+ {children}
62
+ </DrawerPrimitive.Content>
63
+ </DrawerPortal>
64
+ );
65
+ }
66
+
67
+ function DrawerHandle({
68
+ className,
69
+ ref,
70
+ ...props
71
+ }: React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Handle> & {
72
+ ref?: React.Ref<HTMLDivElement>;
73
+ }) {
74
+ return (
75
+ <DrawerPrimitive.Handle
76
+ ref={ref}
77
+ className={cn("mx-auto mt-4 h-1.5 w-12 shrink-0 rounded-full bg-muted", className)}
78
+ {...props}
79
+ />
80
+ );
81
+ }
82
+
83
+ function DrawerHeader({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {
84
+ return (
85
+ <div
86
+ className={cn("flex flex-col gap-1.5 p-4 text-center sm:text-left", className)}
87
+ {...props}
88
+ />
89
+ );
90
+ }
91
+
92
+ function DrawerFooter({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {
93
+ return <div className={cn("mt-auto flex flex-col gap-2 p-4", className)} {...props} />;
94
+ }
95
+
96
+ function DrawerTitle({
97
+ className,
98
+ ref,
99
+ ...props
100
+ }: React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Title> & {
101
+ ref?: React.Ref<HTMLHeadingElement>;
102
+ }) {
103
+ return (
104
+ <DrawerPrimitive.Title
105
+ ref={ref}
106
+ className={cn("text-lg leading-none font-semibold tracking-tight", className)}
107
+ {...props}
108
+ />
109
+ );
110
+ }
111
+
112
+ function DrawerDescription({
113
+ className,
114
+ ref,
115
+ ...props
116
+ }: React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Description> & {
117
+ ref?: React.Ref<HTMLParagraphElement>;
118
+ }) {
119
+ return (
120
+ <DrawerPrimitive.Description
121
+ ref={ref}
122
+ className={cn("text-sm text-muted-foreground", className)}
123
+ {...props}
124
+ />
125
+ );
126
+ }
127
+
128
+ export {
129
+ Drawer,
130
+ DrawerClose,
131
+ DrawerContent,
132
+ DrawerDescription,
133
+ DrawerFooter,
134
+ DrawerHandle,
135
+ DrawerHeader,
136
+ DrawerOverlay,
137
+ DrawerPortal,
138
+ DrawerTitle,
139
+ DrawerTrigger,
140
+ };
package/src/field.tsx CHANGED
@@ -1,3 +1,4 @@
1
+ // Derived from shadcn/ui (field) — see Provenance in packages/ui/README.md. Tolerated exception: migrated to custom code only when customization needs it.
1
2
  "use client";
2
3
 
3
4
  import type * as React from "react";
package/src/form.tsx CHANGED
@@ -1,3 +1,4 @@
1
+ // Derived from shadcn/ui (form) — see Provenance in packages/ui/README.md. Tolerated exception: migrated to custom code only when customization needs it.
1
2
  "use client";
2
3
 
3
4
  import * as React from "react";
package/src/index.ts CHANGED
@@ -24,6 +24,19 @@ export {
24
24
  DialogTrigger,
25
25
  } from "./dialog.js";
26
26
  export { DetailPanel, type DetailItem, type DetailPanelProps } from "./detail-panel.js";
27
+ export {
28
+ Drawer,
29
+ DrawerClose,
30
+ DrawerContent,
31
+ DrawerDescription,
32
+ DrawerFooter,
33
+ DrawerHandle,
34
+ DrawerHeader,
35
+ DrawerOverlay,
36
+ DrawerPortal,
37
+ DrawerTitle,
38
+ DrawerTrigger,
39
+ } from "./drawer.js";
27
40
  export {
28
41
  Field,
29
42
  FieldContent,
@@ -52,6 +65,9 @@ export { Input } from "./input.js";
52
65
  export { Label } from "./label.js";
53
66
  export { Section, Stack, stackVariants, type SectionProps, type StackProps } from "./layout.js";
54
67
  export { LivePulse, type LivePulseProps } from "./live-pulse.js";
68
+ export { StatusDot, type StatusDotProps, type StatusDotTone } from "./status-dot.js";
69
+ export { ProgressBar, type ProgressBarProps } from "./progress-bar.js";
70
+ export { Checkmark, type CheckmarkProps } from "./checkmark.js";
55
71
  export { OptionCards, type OptionCard, type OptionCardsProps } from "./option-cards.js";
56
72
  export { PageHeader, type PageHeaderProps } from "./page-header.js";
57
73
  export { SecretField, type SecretFieldProps } from "./secret-field.js";
package/src/input.tsx CHANGED
@@ -1,3 +1,4 @@
1
+ // Derived from shadcn/ui (input) — see Provenance in packages/ui/README.md. Tolerated exception: migrated to custom code only when customization needs it.
1
2
  import * as React from "react";
2
3
  import { cn } from "./utils.js";
3
4
 
package/src/label.tsx CHANGED
@@ -1,3 +1,4 @@
1
+ // Derived from shadcn/ui (label) — see Provenance in packages/ui/README.md. Tolerated exception: migrated to custom code only when customization needs it.
1
2
  "use client";
2
3
 
3
4
  import * as React from "react";
@@ -1,3 +1,4 @@
1
+ import { StatusDot } from "./status-dot.js";
1
2
  import { cn } from "./utils.js";
2
3
 
3
4
  export interface LivePulseProps {
@@ -13,14 +14,7 @@ export function LivePulse({ active = true, label = "Live", className }: LivePuls
13
14
  aria-label={active ? label : "Idle"}
14
15
  className={cn("inline-flex items-center gap-1.5 text-xs text-muted-foreground", className)}
15
16
  >
16
- <span className="relative flex size-2">
17
- {active ? (
18
- <span className="absolute inline-flex h-full w-full animate-ping rounded-full bg-success opacity-60" />
19
- ) : null}
20
- <span
21
- className={cn("relative inline-flex size-2 rounded-full", active ? "bg-success" : "bg-muted-foreground/40")}
22
- />
23
- </span>
17
+ <StatusDot tone={active ? "success" : "idle"} pulse={active} />
24
18
  {active ? label : "Idle"}
25
19
  </span>
26
20
  );
@@ -0,0 +1,45 @@
1
+ import { cn } from "./utils.js";
2
+
3
+ export interface ProgressBarProps {
4
+ /** Current value, clamped to 0..max (`NaN` reads as empty). */
5
+ value: number;
6
+ max?: number;
7
+ /** Accessible name (kept screen-only — pair with visible text). */
8
+ label: string;
9
+ className?: string;
10
+ }
11
+
12
+ const SEGMENTS = 10;
13
+
14
+ /**
15
+ * Determinate progress as filled segments (exact value stays in
16
+ * `aria-valuenow`). No animation, so nothing to disable for reduced
17
+ * motion. Announce the operation with visible text (e.g. StatusLabel)
18
+ * next to it — the label here stays screen-only.
19
+ */
20
+ export function ProgressBar({ value, max = 100, label, className }: ProgressBarProps) {
21
+ const safeMax = Number.isFinite(max) && max > 0 ? max : 100;
22
+ const safeValue = Number.isFinite(value) ? Math.min(Math.max(value, 0), safeMax) : 0;
23
+ const filled = Math.round((safeValue / safeMax) * SEGMENTS);
24
+ return (
25
+ <div
26
+ role="progressbar"
27
+ aria-label={label}
28
+ aria-valuemin={0}
29
+ aria-valuemax={safeMax}
30
+ aria-valuenow={Math.round(safeValue)}
31
+ className={cn("flex w-full gap-0.5", className)}
32
+ >
33
+ {Array.from({ length: SEGMENTS }, (_, index) => (
34
+ <span
35
+ key={index}
36
+ aria-hidden
37
+ className={cn(
38
+ "h-1.5 flex-1 rounded-full motion-safe:transition-colors",
39
+ index < filled ? "bg-primary" : "bg-muted",
40
+ )}
41
+ />
42
+ ))}
43
+ </div>
44
+ );
45
+ }
package/src/select.tsx CHANGED
@@ -1,3 +1,4 @@
1
+ // Derived from shadcn/ui (select) — see Provenance in packages/ui/README.md. Tolerated exception: migrated to custom code only when customization needs it.
1
2
  "use client";
2
3
 
3
4
  import * as React from "react";
package/src/separator.tsx CHANGED
@@ -1,3 +1,4 @@
1
+ // Derived from shadcn/ui (separator) — see Provenance in packages/ui/README.md. Tolerated exception: migrated to custom code only when customization needs it.
1
2
  "use client";
2
3
 
3
4
  import * as React from "react";
package/src/skeleton.tsx CHANGED
@@ -1,3 +1,4 @@
1
+ // Derived from shadcn/ui (skeleton) — see Provenance in packages/ui/README.md. Tolerated exception: migrated to custom code only when customization needs it.
1
2
  import { cn } from "./utils.js";
2
3
 
3
4
  function Skeleton({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {
package/src/sonner.tsx CHANGED
@@ -1,3 +1,4 @@
1
+ // Derived from shadcn/ui (sonner) — see Provenance in packages/ui/README.md. Tolerated exception: migrated to custom code only when customization needs it.
1
2
  "use client";
2
3
 
3
4
  import { Toaster as Sonner, type ToasterProps } from "sonner";