@hex-core/components 1.4.0 → 1.6.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 (127) hide show
  1. package/dist/_tsup-dts-rollup.d.ts +3556 -0
  2. package/dist/accordion.d.ts +4 -13
  3. package/dist/alert-dialog.d.ts +11 -34
  4. package/dist/alert.d.ts +4 -17
  5. package/dist/aspect-ratio.d.ts +1 -7
  6. package/dist/attachment.d.ts +4 -0
  7. package/dist/attachment.js +157 -0
  8. package/dist/attachment.js.map +1 -0
  9. package/dist/avatar.d.ts +3 -11
  10. package/dist/badge.d.ts +3 -22
  11. package/dist/breadcrumb.d.ts +7 -27
  12. package/dist/button.d.ts +3 -13
  13. package/dist/calendar.d.ts +1 -17
  14. package/dist/card.d.ts +6 -16
  15. package/dist/checkbox.d.ts +2 -11
  16. package/dist/citation.d.ts +2 -0
  17. package/dist/citation.js +70 -0
  18. package/dist/citation.js.map +1 -0
  19. package/dist/cluster.d.ts +3 -34
  20. package/dist/code-block-copy.d.ts +2 -0
  21. package/dist/code-block-copy.js +108 -0
  22. package/dist/code-block-copy.js.map +1 -0
  23. package/dist/code-block.d.ts +3 -0
  24. package/dist/code-block.js +90 -0
  25. package/dist/code-block.js.map +1 -0
  26. package/dist/collapsible.d.ts +3 -11
  27. package/dist/color-picker.d.ts +2 -44
  28. package/dist/combobox.d.ts +3 -45
  29. package/dist/command.d.ts +9 -111
  30. package/dist/composer.d.ts +2 -0
  31. package/dist/composer.js +75 -0
  32. package/dist/composer.js.map +1 -0
  33. package/dist/container.d.ts +3 -41
  34. package/dist/context-menu.d.ts +12 -37
  35. package/dist/data-table.d.ts +2 -33
  36. package/dist/date-picker.d.ts +2 -43
  37. package/dist/dialog.d.ts +11 -46
  38. package/dist/drawer.d.ts +10 -41
  39. package/dist/dropdown-menu.d.ts +13 -39
  40. package/dist/dropzone.d.ts +3 -54
  41. package/dist/dropzone.js +46 -44
  42. package/dist/dropzone.js.map +1 -1
  43. package/dist/empty.d.ts +3 -0
  44. package/dist/empty.js +94 -0
  45. package/dist/empty.js.map +1 -0
  46. package/dist/error-state.d.ts +3 -0
  47. package/dist/error-state.js +67 -0
  48. package/dist/error-state.js.map +1 -0
  49. package/dist/file-tree.d.ts +3 -53
  50. package/dist/form.d.ts +8 -45
  51. package/dist/grid.d.ts +3 -50
  52. package/dist/hover-card.d.ts +3 -11
  53. package/dist/index.d.ts +325 -179
  54. package/dist/index.js +1592 -122
  55. package/dist/index.js.map +1 -1
  56. package/dist/input-otp.d.ts +5 -19
  57. package/dist/input.d.ts +2 -6
  58. package/dist/label.d.ts +2 -11
  59. package/dist/loading-indicator.d.ts +3 -0
  60. package/dist/loading-indicator.js +64 -0
  61. package/dist/loading-indicator.js.map +1 -0
  62. package/dist/loading.d.ts +3 -0
  63. package/dist/loading.js +80 -0
  64. package/dist/loading.js.map +1 -0
  65. package/dist/markdown.d.ts +2 -0
  66. package/dist/markdown.js +28 -0
  67. package/dist/markdown.js.map +1 -0
  68. package/dist/menubar.d.ts +11 -35
  69. package/dist/message-actions.d.ts +2 -0
  70. package/dist/message-actions.js +28 -0
  71. package/dist/message-actions.js.map +1 -0
  72. package/dist/message-list.d.ts +2 -0
  73. package/dist/message-list.js +49 -0
  74. package/dist/message-list.js.map +1 -0
  75. package/dist/message.d.ts +3 -0
  76. package/dist/message.js +35 -0
  77. package/dist/message.js.map +1 -0
  78. package/dist/multi-combobox.d.ts +3 -51
  79. package/dist/navigation-menu.d.ts +9 -23
  80. package/dist/pagination.d.ts +7 -40
  81. package/dist/popover.d.ts +4 -13
  82. package/dist/progress.d.ts +1 -10
  83. package/dist/radio-group.d.ts +2 -9
  84. package/dist/reasoning.d.ts +2 -0
  85. package/dist/reasoning.js +90 -0
  86. package/dist/reasoning.js.map +1 -0
  87. package/dist/resizable.d.ts +3 -28
  88. package/dist/schemas.d.ts +79 -121
  89. package/dist/schemas.js +1649 -1
  90. package/dist/schemas.js.map +1 -1
  91. package/dist/scroll-area.d.ts +3 -18
  92. package/dist/select.d.ts +8 -21
  93. package/dist/separator.d.ts +2 -11
  94. package/dist/sheet.d.ts +10 -39
  95. package/dist/sidebar.d.ts +8 -75
  96. package/dist/skeleton.d.ts +1 -11
  97. package/dist/slider.d.ts +2 -20
  98. package/dist/sonner.d.ts +2 -14
  99. package/dist/spacer.d.ts +3 -38
  100. package/dist/stack.d.ts +3 -34
  101. package/dist/stepper.d.ts +4 -48
  102. package/dist/suggestion.d.ts +2 -0
  103. package/dist/suggestion.js +55 -0
  104. package/dist/suggestion.js.map +1 -0
  105. package/dist/switch.d.ts +2 -11
  106. package/dist/table.d.ts +8 -24
  107. package/dist/tabs.d.ts +4 -13
  108. package/dist/tag.d.ts +3 -0
  109. package/dist/tag.js +107 -0
  110. package/dist/tag.js.map +1 -0
  111. package/dist/textarea.d.ts +2 -10
  112. package/dist/time-picker.d.ts +2 -34
  113. package/dist/timeline.d.ts +4 -42
  114. package/dist/toggle-group.d.ts +2 -17
  115. package/dist/toggle.d.ts +2 -19
  116. package/dist/tool-call.d.ts +2 -0
  117. package/dist/tool-call.js +133 -0
  118. package/dist/tool-call.js.map +1 -0
  119. package/dist/toolbar.d.ts +8 -0
  120. package/dist/toolbar.js +120 -0
  121. package/dist/toolbar.js.map +1 -0
  122. package/dist/tooltip.d.ts +4 -13
  123. package/dist/tree.d.ts +3 -0
  124. package/dist/tree.js +275 -0
  125. package/dist/tree.js.map +1 -0
  126. package/package.json +5 -1
  127. package/dist/button-variants-Bx6gCUFp.d.ts +0 -19
package/dist/empty.js ADDED
@@ -0,0 +1,94 @@
1
+ "use client";
2
+ import { cva } from 'class-variance-authority';
3
+ import * as React from 'react';
4
+ import { clsx } from 'clsx';
5
+ import { twMerge } from 'tailwind-merge';
6
+ import { jsxs, jsx } from 'react/jsx-runtime';
7
+
8
+ // src/primitives/empty/empty.tsx
9
+ function cn(...inputs) {
10
+ return twMerge(clsx(inputs));
11
+ }
12
+ var emptyVariants = cva(
13
+ [
14
+ "flex flex-col items-center justify-center text-center",
15
+ "rounded-md border border-dashed border-border bg-muted/30"
16
+ ].join(" "),
17
+ {
18
+ variants: {
19
+ size: {
20
+ sm: "gap-[var(--space-2,0.5rem)] px-[var(--space-4,1rem)] py-[var(--space-6,1.5rem)] text-sm",
21
+ default: "gap-[var(--space-3,0.75rem)] px-[var(--space-6,1.5rem)] py-[var(--space-8,2rem)]",
22
+ lg: "gap-[var(--space-4,1rem)] px-[var(--space-8,2rem)] py-[var(--space-12,3rem)]"
23
+ }
24
+ },
25
+ defaultVariants: { size: "default" }
26
+ }
27
+ );
28
+ var emptyIconWrapperVariants = cva(
29
+ "flex shrink-0 items-center justify-center rounded-full bg-muted text-muted-foreground [&_svg]:size-5",
30
+ {
31
+ variants: {
32
+ size: {
33
+ sm: "h-9 w-9",
34
+ default: "h-12 w-12 [&_svg]:size-6",
35
+ lg: "h-16 w-16 [&_svg]:size-7"
36
+ }
37
+ },
38
+ defaultVariants: { size: "default" }
39
+ }
40
+ );
41
+ var emptyTitleVariants = cva("font-semibold text-foreground", {
42
+ variants: {
43
+ size: {
44
+ sm: "text-sm",
45
+ default: "text-base",
46
+ lg: "text-lg"
47
+ }
48
+ },
49
+ defaultVariants: { size: "default" }
50
+ });
51
+ var emptyDescriptionVariants = cva("max-w-md text-muted-foreground", {
52
+ variants: {
53
+ size: {
54
+ sm: "text-xs",
55
+ default: "text-sm",
56
+ lg: "text-base"
57
+ }
58
+ },
59
+ defaultVariants: { size: "default" }
60
+ });
61
+ function Empty({
62
+ className,
63
+ size,
64
+ icon,
65
+ title,
66
+ description,
67
+ action,
68
+ titleAs = "h3",
69
+ ref,
70
+ ...props
71
+ }) {
72
+ const titleId = React.useId();
73
+ const TitleComp = titleAs;
74
+ return /* @__PURE__ */ jsxs(
75
+ "div",
76
+ {
77
+ ref,
78
+ role: "region",
79
+ "aria-labelledby": titleId,
80
+ className: cn(emptyVariants({ size }), className),
81
+ ...props,
82
+ children: [
83
+ icon ? /* @__PURE__ */ jsx("div", { className: emptyIconWrapperVariants({ size }), "aria-hidden": "true", children: icon }) : null,
84
+ /* @__PURE__ */ jsx(TitleComp, { id: titleId, className: emptyTitleVariants({ size }), children: title }),
85
+ description ? /* @__PURE__ */ jsx("div", { className: emptyDescriptionVariants({ size }), children: description }) : null,
86
+ action ? /* @__PURE__ */ jsx("div", { className: "mt-[var(--space-2,0.5rem)]", children: action }) : null
87
+ ]
88
+ }
89
+ );
90
+ }
91
+
92
+ export { Empty, emptyVariants };
93
+ //# sourceMappingURL=empty.js.map
94
+ //# sourceMappingURL=empty.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/lib/utils.ts","../src/primitives/empty/empty.tsx"],"names":[],"mappings":"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","file":"empty.js","sourcesContent":["import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\n/**\n * Merge class names with Tailwind CSS conflict resolution.\n * @param inputs - Class values (strings, arrays, objects) to merge\n * @returns A single merged class string with Tailwind conflicts resolved\n */\nexport function cn(...inputs: ClassValue[]) {\n\treturn twMerge(clsx(inputs));\n}\n","import { type VariantProps, cva } from \"class-variance-authority\";\nimport * as React from \"react\";\nimport { cn } from \"../../lib/utils.js\";\n\nconst emptyVariants = cva(\n\t[\n\t\t\"flex flex-col items-center justify-center text-center\",\n\t\t\"rounded-md border border-dashed border-border bg-muted/30\",\n\t].join(\" \"),\n\t{\n\t\tvariants: {\n\t\t\tsize: {\n\t\t\t\tsm: \"gap-[var(--space-2,0.5rem)] px-[var(--space-4,1rem)] py-[var(--space-6,1.5rem)] text-sm\",\n\t\t\t\tdefault: \"gap-[var(--space-3,0.75rem)] px-[var(--space-6,1.5rem)] py-[var(--space-8,2rem)]\",\n\t\t\t\tlg: \"gap-[var(--space-4,1rem)] px-[var(--space-8,2rem)] py-[var(--space-12,3rem)]\",\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: { size: \"default\" },\n\t},\n);\n\nconst emptyIconWrapperVariants = cva(\n\t\"flex shrink-0 items-center justify-center rounded-full bg-muted text-muted-foreground [&_svg]:size-5\",\n\t{\n\t\tvariants: {\n\t\t\tsize: {\n\t\t\t\tsm: \"h-9 w-9\",\n\t\t\t\tdefault: \"h-12 w-12 [&_svg]:size-6\",\n\t\t\t\tlg: \"h-16 w-16 [&_svg]:size-7\",\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: { size: \"default\" },\n\t},\n);\n\nconst emptyTitleVariants = cva(\"font-semibold text-foreground\", {\n\tvariants: {\n\t\tsize: {\n\t\t\tsm: \"text-sm\",\n\t\t\tdefault: \"text-base\",\n\t\t\tlg: \"text-lg\",\n\t\t},\n\t},\n\tdefaultVariants: { size: \"default\" },\n});\n\nconst emptyDescriptionVariants = cva(\"max-w-md text-muted-foreground\", {\n\tvariants: {\n\t\tsize: {\n\t\t\tsm: \"text-xs\",\n\t\t\tdefault: \"text-sm\",\n\t\t\tlg: \"text-base\",\n\t\t},\n\t},\n\tdefaultVariants: { size: \"default\" },\n});\n\n/** Heading element used to render the Empty title. Defaults to `h3`. */\ntype EmptyTitleAs = \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"p\";\n\nexport interface EmptyProps\n\textends Omit<React.HTMLAttributes<HTMLDivElement>, \"title\">,\n\t\tVariantProps<typeof emptyVariants> {\n\t/** Forwarded ref onto the root region element. */\n\tref?: React.Ref<HTMLDivElement>;\n\t/** Optional icon (typically an `<svg>`) rendered in a circular muted container. */\n\ticon?: React.ReactNode;\n\t/** Required heading copy. Becomes the region's accessible name via `aria-labelledby`. */\n\ttitle: React.ReactNode;\n\t/** Optional supporting copy that explains why the slot is empty + what to do next. */\n\tdescription?: React.ReactNode;\n\t/** Optional call-to-action — typically a `<Button>` that creates the missing record. */\n\taction?: React.ReactNode;\n\t/** Heading level for the title — pick to match surrounding hierarchy (default `h3`). */\n\ttitleAs?: EmptyTitleAs;\n}\n\n/**\n * A \"zero-state\" surface for lists, dashboards, and search results that have\n * no content to show. Use to explain *why* the slot is empty and *what to do*\n * next; pair the `action` slot with a button that creates the missing record.\n *\n * Distinct from {@link Loading} (transient, has a measurable wait) and\n * {@link ErrorState} (something failed and may need a retry). If you're\n * thinking \"show a message because the request just hasn't returned yet,\"\n * reach for `Loading` — Empty is for \"the request returned, and there's\n * nothing to show.\"\n *\n * @example\n * ```tsx\n * <Empty\n * icon={<InboxIcon />}\n * title=\"No messages yet\"\n * description=\"When someone sends you a message, it'll show up here.\"\n * action={<Button>Compose</Button>}\n * />\n * ```\n *\n * @returns A region landmark labeled by the title.\n */\nfunction Empty({\n\tclassName,\n\tsize,\n\ticon,\n\ttitle,\n\tdescription,\n\taction,\n\ttitleAs = \"h3\",\n\tref,\n\t...props\n}: EmptyProps) {\n\tconst titleId = React.useId();\n\tconst TitleComp = titleAs;\n\treturn (\n\t\t<div\n\t\t\tref={ref}\n\t\t\trole=\"region\"\n\t\t\taria-labelledby={titleId}\n\t\t\tclassName={cn(emptyVariants({ size }), className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{icon ? (\n\t\t\t\t<div className={emptyIconWrapperVariants({ size })} aria-hidden=\"true\">\n\t\t\t\t\t{icon}\n\t\t\t\t</div>\n\t\t\t) : null}\n\t\t\t<TitleComp id={titleId} className={emptyTitleVariants({ size })}>\n\t\t\t\t{title}\n\t\t\t</TitleComp>\n\t\t\t{description ? (\n\t\t\t\t<div className={emptyDescriptionVariants({ size })}>{description}</div>\n\t\t\t) : null}\n\t\t\t{action ? <div className=\"mt-[var(--space-2,0.5rem)]\">{action}</div> : null}\n\t\t</div>\n\t);\n}\n\nexport { Empty, emptyVariants };\n"]}
@@ -0,0 +1,3 @@
1
+ export { ErrorStateProps_alias_1 as ErrorStateProps } from './_tsup-dts-rollup.js';
2
+ export { ErrorState_alias_1 as ErrorState } from './_tsup-dts-rollup.js';
3
+ export { errorStateVariants_alias_1 as errorStateVariants } from './_tsup-dts-rollup.js';
@@ -0,0 +1,67 @@
1
+ "use client";
2
+ import { cva } from 'class-variance-authority';
3
+ import { clsx } from 'clsx';
4
+ import { twMerge } from 'tailwind-merge';
5
+ import { jsxs, jsx } from 'react/jsx-runtime';
6
+
7
+ // src/primitives/error-state/error-state.tsx
8
+ function cn(...inputs) {
9
+ return twMerge(clsx(inputs));
10
+ }
11
+ var errorStateVariants = cva(
12
+ [
13
+ "flex flex-col items-center justify-center text-center",
14
+ "rounded-md border px-[var(--space-6,1.5rem)] py-[var(--space-8,2rem)] gap-[var(--space-3,0.75rem)]"
15
+ ].join(" "),
16
+ {
17
+ variants: {
18
+ variant: {
19
+ default: "border-border bg-muted/30",
20
+ destructive: "border-destructive/30 bg-destructive/5"
21
+ }
22
+ },
23
+ defaultVariants: { variant: "default" }
24
+ }
25
+ );
26
+ var errorIconWrapperVariants = cva(
27
+ "flex h-12 w-12 shrink-0 items-center justify-center rounded-full [&_svg]:size-6",
28
+ {
29
+ variants: {
30
+ variant: {
31
+ default: "bg-muted text-muted-foreground",
32
+ destructive: "bg-destructive/10 text-destructive"
33
+ }
34
+ },
35
+ defaultVariants: { variant: "default" }
36
+ }
37
+ );
38
+ function ErrorState({
39
+ className,
40
+ variant,
41
+ icon,
42
+ title = "Something went wrong",
43
+ message,
44
+ action,
45
+ ref,
46
+ ...props
47
+ }) {
48
+ return /* @__PURE__ */ jsxs(
49
+ "div",
50
+ {
51
+ ref,
52
+ role: "alert",
53
+ className: cn(errorStateVariants({ variant }), className),
54
+ ...props,
55
+ children: [
56
+ icon ? /* @__PURE__ */ jsx("div", { className: errorIconWrapperVariants({ variant }), "aria-hidden": "true", children: icon }) : null,
57
+ /* @__PURE__ */ jsx("div", { className: "font-semibold text-foreground", children: title }),
58
+ /* @__PURE__ */ jsx("div", { className: "max-w-md text-sm text-muted-foreground", children: message }),
59
+ action ? /* @__PURE__ */ jsx("div", { className: "mt-[var(--space-2,0.5rem)]", children: action }) : null
60
+ ]
61
+ }
62
+ );
63
+ }
64
+
65
+ export { ErrorState, errorStateVariants };
66
+ //# sourceMappingURL=error-state.js.map
67
+ //# sourceMappingURL=error-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/lib/utils.ts","../src/primitives/error-state/error-state.tsx"],"names":[],"mappings":";;;;;;AAQO,SAAS,MAAM,MAAA,EAAsB;AAC3C,EAAA,OAAO,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAC,CAAA;AAC5B;ACNA,IAAM,kBAAA,GAAqB,GAAA;AAAA,EAC1B;AAAA,IACC,uDAAA;AAAA,IACA;AAAA,GACD,CAAE,KAAK,GAAG,CAAA;AAAA,EACV;AAAA,IACC,QAAA,EAAU;AAAA,MACT,OAAA,EAAS;AAAA,QACR,OAAA,EAAS,2BAAA;AAAA,QACT,WAAA,EAAa;AAAA;AACd,KACD;AAAA,IACA,eAAA,EAAiB,EAAE,OAAA,EAAS,SAAA;AAAU;AAExC;AAEA,IAAM,wBAAA,GAA2B,GAAA;AAAA,EAChC,iFAAA;AAAA,EACA;AAAA,IACC,QAAA,EAAU;AAAA,MACT,OAAA,EAAS;AAAA,QACR,OAAA,EAAS,gCAAA;AAAA,QACT,WAAA,EAAa;AAAA;AACd,KACD;AAAA,IACA,eAAA,EAAiB,EAAE,OAAA,EAAS,SAAA;AAAU;AAExC,CAAA;AA6CA,SAAS,UAAA,CAAW;AAAA,EACnB,SAAA;AAAA,EACA,OAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA,GAAQ,sBAAA;AAAA,EACR,OAAA;AAAA,EACA,MAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAG;AACJ,CAAA,EAAoB;AACnB,EAAA,uBACC,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,GAAA;AAAA,MACA,IAAA,EAAK,OAAA;AAAA,MACL,WAAW,EAAA,CAAG,kBAAA,CAAmB,EAAE,OAAA,EAAS,GAAG,SAAS,CAAA;AAAA,MACvD,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,IAAA,mBACA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,wBAAA,CAAyB,EAAE,OAAA,EAAS,CAAA,EAAG,aAAA,EAAY,MAAA,EACjE,QAAA,EAAA,IAAA,EACF,CAAA,GACG,IAAA;AAAA,wBACJ,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,+BAAA,EAAiC,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,wBACtD,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,wCAAA,EAA0C,QAAA,EAAA,OAAA,EAAQ,CAAA;AAAA,QAChE,yBAAS,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,4BAAA,EAA8B,kBAAO,CAAA,GAAS;AAAA;AAAA;AAAA,GACxE;AAEF","file":"error-state.js","sourcesContent":["import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\n/**\n * Merge class names with Tailwind CSS conflict resolution.\n * @param inputs - Class values (strings, arrays, objects) to merge\n * @returns A single merged class string with Tailwind conflicts resolved\n */\nexport function cn(...inputs: ClassValue[]) {\n\treturn twMerge(clsx(inputs));\n}\n","import { type VariantProps, cva } from \"class-variance-authority\";\nimport * as React from \"react\";\nimport { cn } from \"../../lib/utils.js\";\n\nconst errorStateVariants = cva(\n\t[\n\t\t\"flex flex-col items-center justify-center text-center\",\n\t\t\"rounded-md border px-[var(--space-6,1.5rem)] py-[var(--space-8,2rem)] gap-[var(--space-3,0.75rem)]\",\n\t].join(\" \"),\n\t{\n\t\tvariants: {\n\t\t\tvariant: {\n\t\t\t\tdefault: \"border-border bg-muted/30\",\n\t\t\t\tdestructive: \"border-destructive/30 bg-destructive/5\",\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: { variant: \"default\" },\n\t},\n);\n\nconst errorIconWrapperVariants = cva(\n\t\"flex h-12 w-12 shrink-0 items-center justify-center rounded-full [&_svg]:size-6\",\n\t{\n\t\tvariants: {\n\t\t\tvariant: {\n\t\t\t\tdefault: \"bg-muted text-muted-foreground\",\n\t\t\t\tdestructive: \"bg-destructive/10 text-destructive\",\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: { variant: \"default\" },\n\t},\n);\n\nexport interface ErrorStateProps\n\textends Omit<React.HTMLAttributes<HTMLDivElement>, \"title\">,\n\t\tVariantProps<typeof errorStateVariants> {\n\t/** Forwarded ref onto the alert region. */\n\tref?: React.Ref<HTMLDivElement>;\n\t/** Optional icon (typically an alert / x-circle SVG). */\n\ticon?: React.ReactNode;\n\t/** Optional heading copy. Falls back to a generic \"Something went wrong\" if omitted. */\n\ttitle?: React.ReactNode;\n\t/** Required body copy explaining what failed. */\n\tmessage: React.ReactNode;\n\t/**\n\t * Optional call-to-action — typically a `<Button>` with `onClick={refetch}`.\n\t * Slot pattern (matching `Empty.action`) so consumers control the button's\n\t * variant / loading state / asChild composition without ErrorState\n\t * re-implementing those concerns.\n\t */\n\taction?: React.ReactNode;\n}\n\n/**\n * A surface for rendering a failed-fetch / failed-action state. Visually\n * similar to {@link Empty} but ships with a destructive-tone bias and\n * mounts with `role=\"alert\"` so screen readers announce the failure on\n * first render.\n *\n * Distinct from {@link Empty} (request returned, no items) and\n * {@link Loading} (request still in flight). For inline form-field\n * errors, use Form's `<FormMessage>` instead. For blocking destructive\n * confirmations, use AlertDialog.\n *\n * @example\n * ```tsx\n * <ErrorState\n * icon={<AlertCircleIcon />}\n * title=\"Couldn't load messages\"\n * message=\"The server didn't respond. Check your connection and try again.\"\n * action={<Button onClick={refetch}>Retry</Button>}\n * />\n * ```\n *\n * @returns A `role=\"alert\"` region with an optional action slot.\n */\nfunction ErrorState({\n\tclassName,\n\tvariant,\n\ticon,\n\ttitle = \"Something went wrong\",\n\tmessage,\n\taction,\n\tref,\n\t...props\n}: ErrorStateProps) {\n\treturn (\n\t\t<div\n\t\t\tref={ref}\n\t\t\trole=\"alert\"\n\t\t\tclassName={cn(errorStateVariants({ variant }), className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{icon ? (\n\t\t\t\t<div className={errorIconWrapperVariants({ variant })} aria-hidden=\"true\">\n\t\t\t\t\t{icon}\n\t\t\t\t</div>\n\t\t\t) : null}\n\t\t\t<div className=\"font-semibold text-foreground\">{title}</div>\n\t\t\t<div className=\"max-w-md text-sm text-muted-foreground\">{message}</div>\n\t\t\t{action ? <div className=\"mt-[var(--space-2,0.5rem)]\">{action}</div> : null}\n\t\t</div>\n\t);\n}\n\nexport { ErrorState, errorStateVariants };\n"]}
@@ -1,53 +1,3 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import * as React from 'react';
3
-
4
- interface FileTreeNode {
5
- /** Stable unique id used as React key + ARIA target. */
6
- id: string;
7
- /** Display name (file or folder). */
8
- name: string;
9
- /** Nested children. Presence (even if empty array) marks the node as a folder. */
10
- children?: FileTreeNode[];
11
- /** Optional icon override. Default chooses folder/file based on `children`. */
12
- icon?: React.ReactNode;
13
- /** Disable selection + expand toggle. */
14
- disabled?: boolean;
15
- }
16
- interface FileTreeProps {
17
- /** Root nodes. */
18
- nodes: FileTreeNode[];
19
- /** Uncontrolled initial expanded ids. */
20
- defaultExpanded?: string[];
21
- /** Controlled expanded ids. */
22
- expanded?: string[];
23
- /** Fired when expanded set changes (array of ids). */
24
- onExpandedChange?: (ids: string[]) => void;
25
- /** Controlled selected node id. */
26
- selected?: string;
27
- /** Fired when the user activates a node (click, Enter, or Space). */
28
- onSelect?: (id: string) => void;
29
- /** Required accessible name for the tree container. */
30
- "aria-label": string;
31
- /** Extra class names on the root tree element. */
32
- className?: string;
33
- }
34
- /**
35
- * Hierarchical tree view for files, folders, settings sections, or any nested
36
- * navigation. Built on the WAI-ARIA tree pattern: `role="tree"` root,
37
- * `role="treeitem"` per node, `role="group"` per child group, with
38
- * `aria-level` / `aria-expanded` / `aria-selected` reflecting state.
39
- *
40
- * Keyboard: Up/Down move between visible items; Right expands a folder or
41
- * moves to the first child; Left collapses or moves to the parent;
42
- * Enter/Space activate the focused node; Home/End jump to the first/last.
43
- *
44
- * Expanded state is uncontrolled by default (`defaultExpanded`). Pass
45
- * `expanded` + `onExpandedChange` for controlled mode.
46
- * @returns A keyboard-accessible nested tree.
47
- */
48
- declare function FileTree({ nodes, defaultExpanded, expanded: expandedProp, onExpandedChange, selected, onSelect, "aria-label": ariaLabel, className, }: FileTreeProps): react_jsx_runtime.JSX.Element;
49
- declare namespace FileTree {
50
- var displayName: string;
51
- }
52
-
53
- export { FileTree, type FileTreeNode, type FileTreeProps };
1
+ export { FileTree_alias_1 as FileTree } from './_tsup-dts-rollup.js';
2
+ export { FileTreeNode_alias_1 as FileTreeNode } from './_tsup-dts-rollup.js';
3
+ export { FileTreeProps_alias_1 as FileTreeProps } from './_tsup-dts-rollup.js';
package/dist/form.d.ts CHANGED
@@ -1,45 +1,8 @@
1
- import * as _radix_ui_react_slot from '@radix-ui/react-slot';
2
- import * as react_jsx_runtime from 'react/jsx-runtime';
3
- import * as react_hook_form from 'react-hook-form';
4
- import { FieldValues, FieldPath, ControllerProps } from 'react-hook-form';
5
- import * as LabelPrimitive from '@radix-ui/react-label';
6
- import * as React from 'react';
7
-
8
- /** Root form provider. Wraps react-hook-form's FormProvider. */
9
- declare const Form: <TFieldValues extends FieldValues, TContext = any, TTransformedValues = TFieldValues>(props: react_hook_form.FormProviderProps<TFieldValues, TContext, TTransformedValues>) => React.JSX.Element;
10
- /**
11
- * Binds a field name to a react-hook-form Controller.
12
- * Provides context so FormItem children can access field state.
13
- * @param props - Controller props including name, control, render
14
- * @returns A Controller with FormFieldContext
15
- */
16
- declare const FormField: <TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ ...props }: ControllerProps<TFieldValues, TName>) => react_jsx_runtime.JSX.Element;
17
- /**
18
- * Hook that returns the current field's id, name, error, and derived aria ids.
19
- * Must be called inside a FormField + FormItem subtree.
20
- * @returns Field state + aria descriptors
21
- */
22
- declare function useFormField(): {
23
- invalid: boolean;
24
- isDirty: boolean;
25
- isTouched: boolean;
26
- isValidating: boolean;
27
- error?: react_hook_form.FieldError;
28
- id: string;
29
- name: string;
30
- formItemId: string;
31
- formDescriptionId: string;
32
- formMessageId: string;
33
- };
34
- /** Wraps a single form field (label + control + description + message). */
35
- declare const FormItem: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
36
- /** Accessible label wired to the FormItem's control. Turns red on error. */
37
- declare const FormLabel: React.ForwardRefExoticComponent<Omit<LabelPrimitive.LabelProps & React.RefAttributes<HTMLLabelElement>, "ref"> & React.RefAttributes<HTMLLabelElement>>;
38
- /** Wraps the form control and wires id + aria-describedby + aria-invalid. */
39
- declare const FormControl: React.ForwardRefExoticComponent<Omit<_radix_ui_react_slot.SlotProps & React.RefAttributes<HTMLElement>, "ref"> & React.RefAttributes<HTMLElement>>;
40
- /** Optional helper text below the control. */
41
- declare const FormDescription: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
42
- /** Validation error message. Renders the error string when the field is invalid. */
43
- declare const FormMessage: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
44
-
45
- export { Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, useFormField };
1
+ export { useFormField_alias_1 as useFormField } from './_tsup-dts-rollup.js';
2
+ export { Form_alias_1 as Form } from './_tsup-dts-rollup.js';
3
+ export { FormItem_alias_1 as FormItem } from './_tsup-dts-rollup.js';
4
+ export { FormLabel_alias_1 as FormLabel } from './_tsup-dts-rollup.js';
5
+ export { FormControl_alias_1 as FormControl } from './_tsup-dts-rollup.js';
6
+ export { FormDescription_alias_1 as FormDescription } from './_tsup-dts-rollup.js';
7
+ export { FormMessage_alias_1 as FormMessage } from './_tsup-dts-rollup.js';
8
+ export { FormField_alias_1 as FormField } from './_tsup-dts-rollup.js';
package/dist/grid.d.ts CHANGED
@@ -1,50 +1,3 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import * as class_variance_authority_types from 'class-variance-authority/types';
3
- import { VariantProps } from 'class-variance-authority';
4
- import * as React from 'react';
5
-
6
- /**
7
- * CVA variants for Grid — CSS grid with column-count presets and shared `gap`.
8
- * `cols` accepts 1/2/3/4/6 fixed columns or `"auto-fit"` for responsive auto-sizing
9
- * (in which case the consumer should pass `minColWidth` for the min track size).
10
- *
11
- * `cols` keys are TypeScript numeric literals (`cols={3}`) at the type level;
12
- * the schema's `enumValues` serializes them as strings for JSON-shape parity.
13
- */
14
- declare const gridVariants: (props?: ({
15
- cols?: 1 | 2 | 3 | 4 | 6 | "auto-fit" | null | undefined;
16
- gap?: "sm" | "lg" | "md" | "xl" | "xs" | null | undefined;
17
- align?: "center" | "start" | "end" | "stretch" | null | undefined;
18
- } & class_variance_authority_types.ClassProp) | undefined) => string;
19
- /** Props for the Grid component. */
20
- interface GridProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof gridVariants> {
21
- /**
22
- * Minimum column width for `cols="auto-fit"`. Tracks repeat to fill the container,
23
- * never shrinking below this value. Ignored when `cols` is a fixed integer.
24
- * @default "16rem"
25
- */
26
- minColWidth?: string;
27
- }
28
- /**
29
- * CSS grid with column-count presets and consistent gap. Use for card grids,
30
- * dashboards, image galleries, and any layout where children should align to
31
- * shared row/column tracks.
32
- *
33
- * Pass `cols="auto-fit"` and `minColWidth` for responsive grids that fit as
34
- * many columns as the viewport allows without media queries.
35
- *
36
- * @param props - Grid props including `cols`, `gap`, `align`, and `minColWidth`.
37
- * @returns A CSS grid container.
38
- * @example
39
- * ```tsx
40
- * <Grid cols={3} gap="md">
41
- * {items.map((i) => <Card key={i.id}>{i.title}</Card>)}
42
- * </Grid>
43
- * <Grid cols="auto-fit" minColWidth="20rem" gap="lg">
44
- * {responsiveItems.map(...)}
45
- * </Grid>
46
- * ```
47
- */
48
- declare function Grid({ className, cols, gap, align, minColWidth, style, ...props }: GridProps): react_jsx_runtime.JSX.Element;
49
-
50
- export { Grid, type GridProps, gridVariants };
1
+ export { GridProps_alias_1 as GridProps } from './_tsup-dts-rollup.js';
2
+ export { Grid_alias_1 as Grid } from './_tsup-dts-rollup.js';
3
+ export { gridVariants_alias_1 as gridVariants } from './_tsup-dts-rollup.js';
@@ -1,11 +1,3 @@
1
- import * as HoverCardPrimitive from '@radix-ui/react-hover-card';
2
- import * as React from 'react';
3
-
4
- /** Root container for a hover-card. */
5
- declare const HoverCard: React.FC<HoverCardPrimitive.HoverCardProps>;
6
- /** The element that reveals the card on hover/focus. */
7
- declare const HoverCardTrigger: React.ForwardRefExoticComponent<HoverCardPrimitive.HoverCardTriggerProps & React.RefAttributes<HTMLAnchorElement>>;
8
- /** The floating hover-card content panel. Richer than a tooltip. */
9
- declare const HoverCardContent: React.ForwardRefExoticComponent<Omit<HoverCardPrimitive.HoverCardContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
10
-
11
- export { HoverCard, HoverCardContent, HoverCardTrigger };
1
+ export { HoverCard_alias_1 as HoverCard } from './_tsup-dts-rollup.js';
2
+ export { HoverCardTrigger_alias_1 as HoverCardTrigger } from './_tsup-dts-rollup.js';
3
+ export { HoverCardContent_alias_1 as HoverCardContent } from './_tsup-dts-rollup.js';