@appcorp/shadcn 1.0.37 → 1.1.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 (147) hide show
  1. package/components/audio.js +3 -3
  2. package/components/dashboard.js +2 -2
  3. package/components/enhanced-checkbox.d.ts +9 -0
  4. package/components/{checkbox.js → enhanced-checkbox.js} +10 -11
  5. package/components/{combobox.d.ts → enhanced-combobox.d.ts} +2 -2
  6. package/components/{combobox.js → enhanced-combobox.js} +11 -11
  7. package/components/enhanced-dropzone.js +2 -2
  8. package/components/enhanced-input.d.ts +8 -0
  9. package/components/{input.js → enhanced-input.js} +8 -7
  10. package/components/enhanced-label.d.ts +7 -0
  11. package/components/{label.js → enhanced-label.js} +4 -4
  12. package/components/enhanced-select.d.ts +25 -0
  13. package/components/enhanced-select.js +81 -0
  14. package/components/enhanced-switch.d.ts +10 -0
  15. package/components/{switch.js → enhanced-switch.js} +9 -11
  16. package/components/enhanced-table-footer-action.js +1 -1
  17. package/components/enhanced-table-footer-pagination.js +1 -1
  18. package/components/enhanced-table-header-action.js +2 -2
  19. package/components/enhanced-table-header-search.js +1 -1
  20. package/components/enhanced-table.js +6 -5
  21. package/components/enhanced-textarea.d.ts +8 -0
  22. package/components/{textarea.js → enhanced-textarea.js} +10 -7
  23. package/components/field.d.ts +1 -1
  24. package/components/field.js +2 -2
  25. package/components/nav-main.js +1 -1
  26. package/components/nav-projects.js +1 -1
  27. package/components/nav-user.js +2 -2
  28. package/components/shadcn-example/coming-soon/index.js +2 -2
  29. package/components/shadcn-io/color-picker/index.d.ts +2 -2
  30. package/components/shadcn-io/color-picker/index.js +5 -5
  31. package/components/shadcn-io/dropzone/index.js +1 -1
  32. package/components/shadcn-io/gantt/index.js +2 -2
  33. package/components/shadcn-io/table/index.js +3 -3
  34. package/components/sidebar.d.ts +3 -3
  35. package/components/sidebar.js +5 -5
  36. package/components/team-switcher.js +2 -2
  37. package/components/{accordion.js → ui/accordion.js} +1 -1
  38. package/components/ui/alert-dialog.d.ts +20 -0
  39. package/components/ui/alert-dialog.js +120 -0
  40. package/components/ui/alert.d.ts +8 -0
  41. package/components/ui/alert.js +90 -0
  42. package/components/ui/aspect-ratio.d.ts +3 -0
  43. package/components/ui/aspect-ratio.js +40 -0
  44. package/components/ui/avatar.d.ts +6 -0
  45. package/components/{avatar.js → ui/avatar.js} +17 -17
  46. package/components/{badge.d.ts → ui/badge.d.ts} +3 -3
  47. package/components/{badge.js → ui/badge.js} +8 -10
  48. package/components/ui/breadcrumb.d.ts +19 -0
  49. package/components/{breadcrumb.js → ui/breadcrumb.js} +39 -31
  50. package/components/{button.d.ts → ui/button.d.ts} +3 -2
  51. package/components/{button.js → ui/button.js} +17 -16
  52. package/components/ui/calendar.d.ts +8 -0
  53. package/components/ui/calendar.js +109 -0
  54. package/components/ui/card.d.ts +8 -0
  55. package/components/{card.js → ui/card.js} +32 -30
  56. package/components/ui/carousel.d.ts +18 -0
  57. package/components/{carousel.js → ui/carousel.js} +42 -39
  58. package/components/ui/checkbox.d.ts +4 -0
  59. package/components/ui/checkbox.js +71 -0
  60. package/components/ui/collapsible.d.ts +5 -0
  61. package/components/ui/collapsible.js +44 -0
  62. package/components/ui/combobox.d.ts +2 -0
  63. package/components/ui/combobox.js +88 -0
  64. package/components/ui/command.d.ts +80 -0
  65. package/components/{command.js → ui/command.js} +50 -47
  66. package/components/ui/context-menu.d.ts +27 -0
  67. package/components/ui/context-menu.js +141 -0
  68. package/components/ui/dialog.d.ts +19 -0
  69. package/components/{dialog.js → ui/dialog.js} +46 -51
  70. package/components/ui/drawer.d.ts +22 -0
  71. package/components/{drawer.js → ui/drawer.js} +45 -46
  72. package/components/ui/dropdown-menu.d.ts +27 -0
  73. package/components/ui/dropdown-menu.js +143 -0
  74. package/components/{form.d.ts → ui/form.d.ts} +5 -6
  75. package/components/{form.js → ui/form.js} +37 -30
  76. package/components/ui/hover-card.d.ts +6 -0
  77. package/components/ui/hover-card.js +72 -0
  78. package/components/ui/input-otp.d.ts +34 -0
  79. package/components/ui/input-otp.js +93 -0
  80. package/components/ui/input.d.ts +3 -0
  81. package/components/ui/input.js +66 -0
  82. package/components/ui/label.d.ts +5 -0
  83. package/components/{collapsible.js → ui/label.js} +12 -20
  84. package/components/ui/menubar.d.ts +28 -0
  85. package/components/ui/menubar.js +165 -0
  86. package/components/ui/navigation-menu.d.ts +12 -0
  87. package/components/ui/navigation-menu.js +114 -0
  88. package/components/ui/pagination.d.ts +28 -0
  89. package/components/ui/pagination.js +113 -0
  90. package/components/ui/popover.d.ts +7 -0
  91. package/components/{popover.js → ui/popover.js} +12 -19
  92. package/components/ui/progress.d.ts +4 -0
  93. package/components/ui/progress.js +69 -0
  94. package/components/ui/radio-group.d.ts +5 -0
  95. package/components/ui/radio-group.js +77 -0
  96. package/components/ui/resizable.d.ts +24 -0
  97. package/components/ui/resizable.js +79 -0
  98. package/components/ui/scroll-area.d.ts +5 -0
  99. package/components/ui/scroll-area.js +80 -0
  100. package/components/ui/select.d.ts +13 -0
  101. package/components/{select.js → ui/select.js} +53 -53
  102. package/components/ui/separator.d.ts +4 -0
  103. package/components/{separator.js → ui/separator.js} +7 -5
  104. package/components/ui/sheet.d.ts +25 -0
  105. package/components/ui/sheet.js +127 -0
  106. package/components/ui/skeleton.d.ts +3 -0
  107. package/components/{skeleton.js → ui/skeleton.js} +2 -2
  108. package/components/ui/slider.d.ts +4 -0
  109. package/components/ui/slider.js +71 -0
  110. package/components/{sonner.d.ts → ui/sonner.d.ts} +2 -1
  111. package/components/{sonner.js → ui/sonner.js} +5 -14
  112. package/components/ui/switch.d.ts +4 -0
  113. package/components/ui/switch.js +69 -0
  114. package/components/ui/table.d.ts +10 -0
  115. package/components/{table.js → ui/table.js} +43 -35
  116. package/components/ui/tabs.d.ts +7 -0
  117. package/components/ui/tabs.js +82 -0
  118. package/components/ui/textarea.d.ts +3 -0
  119. package/components/ui/textarea.js +66 -0
  120. package/components/ui/toggle.d.ts +12 -0
  121. package/components/ui/toggle.js +87 -0
  122. package/package.json +26 -7
  123. package/components/avatar.d.ts +0 -6
  124. package/components/breadcrumb.d.ts +0 -11
  125. package/components/card.d.ts +0 -9
  126. package/components/carousel.d.ts +0 -19
  127. package/components/checkbox.d.ts +0 -9
  128. package/components/collapsible.d.ts +0 -6
  129. package/components/command.d.ts +0 -18
  130. package/components/context-menu.d.ts +0 -25
  131. package/components/context-menu.js +0 -148
  132. package/components/dialog.d.ts +0 -15
  133. package/components/drawer.d.ts +0 -13
  134. package/components/dropdown-menu.d.ts +0 -25
  135. package/components/dropdown-menu.js +0 -148
  136. package/components/input.d.ts +0 -8
  137. package/components/label.d.ts +0 -7
  138. package/components/popover.d.ts +0 -7
  139. package/components/select.d.ts +0 -15
  140. package/components/separator.d.ts +0 -4
  141. package/components/sheet.d.ts +0 -13
  142. package/components/sheet.js +0 -120
  143. package/components/skeleton.d.ts +0 -3
  144. package/components/switch.d.ts +0 -10
  145. package/components/table.d.ts +0 -10
  146. package/components/textarea.d.ts +0 -8
  147. /package/components/{accordion.d.ts → ui/accordion.d.ts} +0 -0
@@ -6,12 +6,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.AudioControl = void 0;
8
8
  var react_1 = __importDefault(require("react"));
9
- var button_1 = require("./button");
10
- var label_1 = require("./label");
9
+ var button_1 = require("./ui/button");
10
+ var enhanced_label_1 = require("./enhanced-label");
11
11
  var AudioControl = function (_a) {
12
12
  var audioUrl = _a.audioUrl, id = _a.id, label = _a.label, onDelete = _a.onDelete, onGenerate = _a.onGenerate, _b = _a.required, required = _b === void 0 ? false : _b;
13
13
  return (react_1.default.createElement("div", { className: "space-y-2" },
14
- label && (react_1.default.createElement(label_1.Label, { htmlFor: id, required: required }, label)),
14
+ label && (react_1.default.createElement(enhanced_label_1.EnhancedLabel, { htmlFor: id, required: required }, label)),
15
15
  !audioUrl && (react_1.default.createElement("div", { className: "flex gap-2" },
16
16
  react_1.default.createElement(button_1.Button, { type: "button", onClick: onGenerate, variant: "outline", className: "flex-1" }, "Generate Audio"),
17
17
  react_1.default.createElement(button_1.Button, { type: "button", onClick: onDelete, variant: "destructive", className: "flex-1" }, "Delete Audio"))),
@@ -36,8 +36,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.Dashboard = void 0;
37
37
  var react_1 = __importStar(require("react"));
38
38
  var app_sidebar_1 = require("./app-sidebar");
39
- var breadcrumb_1 = require("./breadcrumb");
40
- var separator_1 = require("./separator");
39
+ var breadcrumb_1 = require("./ui/breadcrumb");
40
+ var separator_1 = require("./ui/separator");
41
41
  var sidebar_1 = require("./sidebar");
42
42
  var Dashboard = function (_a) {
43
43
  var apps = _a.apps, avatar = _a.avatar, breadcrumbs = _a.breadcrumbs, children = _a.children, email = _a.email, members = _a.members, navItems = _a.navItems, username = _a.username;
@@ -0,0 +1,9 @@
1
+ import * as React from "react";
2
+ import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
3
+ interface EnhancedCheckboxProps extends React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root> {
4
+ error?: string;
5
+ info?: string;
6
+ label?: string;
7
+ }
8
+ declare const EnhancedCheckbox: React.ForwardRefExoticComponent<EnhancedCheckboxProps & React.RefAttributes<HTMLButtonElement>>;
9
+ export { EnhancedCheckbox };
@@ -56,32 +56,31 @@ var __rest = (this && this.__rest) || function (s, e) {
56
56
  return t;
57
57
  };
58
58
  Object.defineProperty(exports, "__esModule", { value: true });
59
- exports.Checkbox = Checkbox;
59
+ exports.EnhancedCheckbox = void 0;
60
60
  var React = __importStar(require("react"));
61
- var CheckboxPrimitive = __importStar(require("@radix-ui/react-checkbox"));
62
- var lucide_react_1 = require("lucide-react");
63
61
  var utils_1 = require("../lib/utils");
64
- var label_1 = require("./label");
65
- function Checkbox(_a) {
62
+ var checkbox_1 = require("./ui/checkbox");
63
+ var enhanced_label_1 = require("./enhanced-label");
64
+ var EnhancedCheckbox = React.forwardRef(function (_a, ref) {
66
65
  var className = _a.className, error = _a.error, info = _a.info, label = _a.label, id = _a.id, props = __rest(_a, ["className", "error", "info", "label", "id"]);
67
66
  // Determine if there's an error (for aria-invalid and styling)
68
67
  var hasError = Boolean(error);
69
- var checkboxElement = (React.createElement(CheckboxPrimitive.Root, __assign({ id: id, "data-slot": "checkbox", "aria-invalid": hasError, className: (0, utils_1.cn)("peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",
68
+ var checkboxElement = (React.createElement(checkbox_1.Checkbox, __assign({ ref: ref, id: id, "data-slot": "checkbox", "aria-invalid": hasError, className: (0, utils_1.cn)(
70
69
  // Error state styling
71
70
  hasError &&
72
- "data-[state=checked]:bg-destructive data-[state=unchecked]:bg-destructive/20 border-destructive focus-visible:border-destructive focus-visible:ring-destructive/20", className) }, props),
73
- React.createElement(CheckboxPrimitive.Indicator, { "data-slot": "checkbox-indicator", className: "flex items-center justify-center text-current transition-none" },
74
- React.createElement(lucide_react_1.CheckIcon, { className: "size-3.5" }))));
71
+ "data-[state=checked]:bg-destructive data-[state=unchecked]:bg-destructive/20 border-destructive focus-visible:border-destructive focus-visible:ring-destructive/20", className) }, props)));
75
72
  // If label is provided, render the complete checkbox with label structure
76
73
  if (label) {
77
74
  return (React.createElement("div", { className: "w-full space-y-2" },
78
75
  React.createElement("div", { className: "flex items-center space-x-2" },
79
76
  checkboxElement,
80
- React.createElement(label_1.Label, { htmlFor: id, className: "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70" }, label)),
77
+ React.createElement(enhanced_label_1.EnhancedLabel, { htmlFor: id, className: "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70" }, label)),
81
78
  (error || info) && (React.createElement("div", null, error ? (React.createElement("p", { className: "text-xs text-destructive" }, error)) : info ? (React.createElement("p", { className: "text-xs text-blue-600 dark:text-blue-400" }, info)) : null))));
82
79
  }
83
80
  // If no label, render just the checkbox with messages (backward compatibility)
84
81
  return (React.createElement("div", { className: "w-full" },
85
82
  checkboxElement,
86
83
  (error || info) && (React.createElement("div", null, error ? (React.createElement("p", { className: "text-xs text-destructive" }, error)) : info ? (React.createElement("p", { className: "text-xs text-blue-600 dark:text-blue-400" }, info)) : null))));
87
- }
84
+ });
85
+ exports.EnhancedCheckbox = EnhancedCheckbox;
86
+ EnhancedCheckbox.displayName = "EnhancedCheckbox";
@@ -4,7 +4,7 @@ export interface ComboboxOption {
4
4
  label: string;
5
5
  id?: string;
6
6
  }
7
- interface ComboboxProps {
7
+ interface EnhancedComboboxProps {
8
8
  options: ComboboxOption[];
9
9
  value?: string;
10
10
  onValueChange: (value: string) => void;
@@ -24,7 +24,7 @@ interface ComboboxProps {
24
24
  info?: string;
25
25
  error?: string;
26
26
  }
27
- export declare function Combobox({ className, disabled, emptyText, error, id, info, label, loading, maxHeight, onSearchChange, onValueChange, options, placeholder, required, searchPlaceholder, showScrollIndicators, value, virtualizeThreshold, }: ComboboxProps): React.JSX.Element;
27
+ export declare function EnhancedCombobox({ className, disabled, emptyText, error, id, info, label, loading, maxHeight, onSearchChange, onValueChange, options, placeholder, required, searchPlaceholder, showScrollIndicators, value, virtualizeThreshold, }: EnhancedComboboxProps): React.JSX.Element;
28
28
  interface CompanyComboboxProps {
29
29
  companies: Array<{
30
30
  id?: string;
@@ -34,16 +34,16 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  };
35
35
  })();
36
36
  Object.defineProperty(exports, "__esModule", { value: true });
37
- exports.Combobox = Combobox;
37
+ exports.EnhancedCombobox = EnhancedCombobox;
38
38
  exports.CompanyCombobox = CompanyCombobox;
39
39
  exports.CountryCombobox = CountryCombobox;
40
40
  var react_1 = __importStar(require("react"));
41
41
  var lucide_react_1 = require("lucide-react");
42
42
  var utils_1 = require("../lib/utils");
43
- var button_1 = require("./button");
44
- var label_1 = require("./label");
45
- var command_1 = require("./command");
46
- var popover_1 = require("./popover");
43
+ var button_1 = require("./ui/button");
44
+ var enhanced_label_1 = require("./enhanced-label");
45
+ var command_1 = require("./ui/command");
46
+ var popover_1 = require("./ui/popover");
47
47
  function VirtualizedList(_a) {
48
48
  var options = _a.options, selectedValue = _a.selectedValue, onSelect = _a.onSelect, scrollContainer = _a.scrollContainer;
49
49
  var _b = (0, react_1.useState)({
@@ -128,7 +128,7 @@ function VirtualizedList(_a) {
128
128
  react_1.default.createElement("span", { className: "truncate" }, option.label))); }),
129
129
  bottomSpacer > 0 && react_1.default.createElement("div", { style: { height: bottomSpacer } })));
130
130
  }
131
- function Combobox(_a) {
131
+ function EnhancedCombobox(_a) {
132
132
  var className = _a.className, _b = _a.disabled, disabled = _b === void 0 ? false : _b, _c = _a.emptyText, emptyText = _c === void 0 ? "No options found." : _c, error = _a.error, id = _a.id, info = _a.info, label = _a.label, _d = _a.loading, loading = _d === void 0 ? false : _d, _e = _a.maxHeight, maxHeight = _e === void 0 ? 256 : _e, onSearchChange = _a.onSearchChange, onValueChange = _a.onValueChange, _f = _a.options, options = _f === void 0 ? [] : _f, _g = _a.placeholder, placeholder = _g === void 0 ? "Select option..." : _g, _h = _a.required, required = _h === void 0 ? false : _h, _j = _a.searchPlaceholder, searchPlaceholder = _j === void 0 ? "Search..." : _j, _k = _a.showScrollIndicators, showScrollIndicators = _k === void 0 ? true : _k, value = _a.value, _l = _a.virtualizeThreshold, virtualizeThreshold = _l === void 0 ? 50 : _l;
133
133
  var _m = (0, react_1.useState)(false), open = _m[0], setOpen = _m[1];
134
134
  var _o = (0, react_1.useState)(""), searchValue = _o[0], setSearchValue = _o[1];
@@ -206,8 +206,8 @@ function Combobox(_a) {
206
206
  react_1.default.createElement(lucide_react_1.ChevronsUpDown, { className: "ml-2 h-4 w-4 shrink-0 opacity-50" }))),
207
207
  react_1.default.createElement(popover_1.PopoverContent, { className: "w-[var(--radix-popover-trigger-width)] p-0", side: "bottom", align: "start", avoidCollisions: true, collisionPadding: 8, style: { zIndex: 1000 }, onOpenAutoFocus: function (e) { return e.preventDefault(); } },
208
208
  react_1.default.createElement(command_1.Command, { shouldFilter: false },
209
- react_1.default.createElement(command_1.CommandInput, { placeholder: searchPlaceholder, value: searchValue, onValueChange: handleSearchChange }),
210
- react_1.default.createElement(command_1.CommandEmpty, null, loading ? (react_1.default.createElement("div", { className: "flex items-center justify-center py-6" },
209
+ react_1.default.createElement(command_1.CommandInput, { "data-slot": "command-input", placeholder: searchPlaceholder, value: searchValue, onValueChange: handleSearchChange }),
210
+ react_1.default.createElement(command_1.CommandEmpty, { "data-slot": "command-empty" }, loading ? (react_1.default.createElement("div", { className: "flex items-center justify-center py-6" },
211
211
  react_1.default.createElement("div", { className: "animate-spin rounded-full h-4 w-4 border-b-2 border-primary" }),
212
212
  react_1.default.createElement("span", { className: "ml-2 text-sm" }, "Searching..."))) : (emptyText)),
213
213
  react_1.default.createElement("div", { className: "relative" },
@@ -229,7 +229,7 @@ function Combobox(_a) {
229
229
  // If label is provided, render the complete combobox with label structure
230
230
  if (label) {
231
231
  return (react_1.default.createElement("div", { className: "w-full space-y-2" },
232
- react_1.default.createElement(label_1.Label, { htmlFor: id, required: required }, label),
232
+ react_1.default.createElement(enhanced_label_1.EnhancedLabel, { htmlFor: id, required: required }, label),
233
233
  comboboxElement,
234
234
  error && (react_1.default.createElement("p", { className: "text-xs text-destructive dark:text-red-400" }, error)),
235
235
  info && !error && (react_1.default.createElement("p", { className: "text-xs text-blue-600 dark:text-blue-400" }, info))));
@@ -247,7 +247,7 @@ function CompanyCombobox(_a) {
247
247
  id: (_b = company.id) === null || _b === void 0 ? void 0 : _b.toString(),
248
248
  });
249
249
  });
250
- return (react_1.default.createElement(Combobox, { options: options, value: value, onValueChange: onValueChange, onSearchChange: onSearchChange, placeholder: placeholder, searchPlaceholder: "Search companies...", emptyText: "No companies found.", loading: loading, className: className, maxHeight: maxHeight, showScrollIndicators: showScrollIndicators, virtualizeThreshold: 100, label: label, required: required, id: id, info: info, error: error }));
250
+ return (react_1.default.createElement(EnhancedCombobox, { options: options, value: value, onValueChange: onValueChange, onSearchChange: onSearchChange, placeholder: placeholder, searchPlaceholder: "Search companies...", emptyText: "No companies found.", loading: loading, className: className, maxHeight: maxHeight, showScrollIndicators: showScrollIndicators, virtualizeThreshold: 100, label: label, required: required, id: id, info: info, error: error }));
251
251
  }
252
252
  function CountryCombobox(_a) {
253
253
  var _b = _a.countries, countries = _b === void 0 ? [] : _b, value = _a.value, onValueChange = _a.onValueChange, onSearchChange = _a.onSearchChange, _c = _a.loading, loading = _c === void 0 ? false : _c, _d = _a.placeholder, placeholder = _d === void 0 ? "Select country..." : _d, className = _a.className, _e = _a.maxHeight, maxHeight = _e === void 0 ? 280 : _e, _f = _a.showScrollIndicators, showScrollIndicators = _f === void 0 ? true : _f, label = _a.label, _g = _a.required, required = _g === void 0 ? false : _g, id = _a.id, info = _a.info, error = _a.error;
@@ -311,5 +311,5 @@ function CountryCombobox(_a) {
311
311
  value: country.name,
312
312
  label: country.name,
313
313
  }); });
314
- return (react_1.default.createElement(Combobox, { options: options, value: value, onValueChange: onValueChange, onSearchChange: onSearchChange, placeholder: placeholder, searchPlaceholder: "Search countries...", emptyText: "No countries found.", loading: loading, className: className, maxHeight: maxHeight, showScrollIndicators: showScrollIndicators, virtualizeThreshold: 30, label: label, required: required, id: id, info: info, error: error }));
314
+ return (react_1.default.createElement(EnhancedCombobox, { options: options, value: value, onValueChange: onValueChange, onSearchChange: onSearchChange, placeholder: placeholder, searchPlaceholder: "Search countries...", emptyText: "No countries found.", loading: loading, className: className, maxHeight: maxHeight, showScrollIndicators: showScrollIndicators, virtualizeThreshold: 30, label: label, required: required, id: id, info: info, error: error }));
315
315
  }
@@ -58,8 +58,8 @@ exports.EnhancedDropzone = void 0;
58
58
  var react_1 = __importStar(require("react"));
59
59
  var react_dropzone_1 = require("react-dropzone");
60
60
  var utils_1 = require("../lib/utils");
61
- var carousel_1 = require("./carousel");
62
- var button_1 = require("./button");
61
+ var carousel_1 = require("./ui/carousel");
62
+ var button_1 = require("./ui/button");
63
63
  var lucide_react_1 = require("lucide-react");
64
64
  var EnhancedDropzone = function (_a) {
65
65
  var id = _a.id, label = _a.label, info = _a.info, error = _a.error, accept = _a.accept, _b = _a.maxFiles, maxFiles = _b === void 0 ? 10 : _b, maxSize = _a.maxSize, minSize = _a.minSize, disabled = _a.disabled, _c = _a.value, value = _c === void 0 ? [] : _c, onChange = _a.onChange, onRemoveRemote = _a.onRemoveRemote, className = _a.className;
@@ -0,0 +1,8 @@
1
+ import * as React from "react";
2
+ interface EnhancedInputProps extends React.ComponentProps<"input"> {
3
+ error?: string;
4
+ info?: string;
5
+ label?: string;
6
+ }
7
+ declare const EnhancedInput: React.ForwardRefExoticComponent<Omit<EnhancedInputProps, "ref"> & React.RefAttributes<HTMLInputElement>>;
8
+ export { EnhancedInput };
@@ -55,15 +55,16 @@ var __rest = (this && this.__rest) || function (s, e) {
55
55
  return t;
56
56
  };
57
57
  Object.defineProperty(exports, "__esModule", { value: true });
58
- exports.Input = void 0;
58
+ exports.EnhancedInput = void 0;
59
59
  var React = __importStar(require("react"));
60
60
  var utils_1 = require("../lib/utils");
61
- var label_1 = require("./label");
62
- var Input = React.forwardRef(function (_a, ref) {
61
+ var enhanced_label_1 = require("./enhanced-label");
62
+ var input_1 = require("./ui/input");
63
+ var EnhancedInput = React.forwardRef(function (_a, ref) {
63
64
  var className = _a.className, type = _a.type, error = _a.error, info = _a.info, label = _a.label, required = _a.required, id = _a.id, props = __rest(_a, ["className", "type", "error", "info", "label", "required", "id"]);
64
65
  // Determine if there's an error (for aria-invalid and styling)
65
66
  var hasError = Boolean(error);
66
- var inputElement = (React.createElement("input", __assign({ type: type, ref: ref, id: id, "data-slot": "input", "aria-invalid": hasError, required: required, className: (0, utils_1.cn)("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
67
+ var inputElement = (React.createElement(input_1.Input, __assign({ type: type, ref: ref, id: id, "aria-invalid": hasError, required: required, className: (0, utils_1.cn)(
67
68
  // Error state styling
68
69
  hasError &&
69
70
  "border-destructive focus-visible:border-destructive focus-visible:ring-destructive/20",
@@ -73,7 +74,7 @@ var Input = React.forwardRef(function (_a, ref) {
73
74
  // If label is provided, render the complete input with label structure
74
75
  if (label) {
75
76
  return (React.createElement("div", { className: "w-full space-y-2" },
76
- React.createElement(label_1.Label, { htmlFor: id, required: required }, label),
77
+ React.createElement(enhanced_label_1.EnhancedLabel, { htmlFor: id, required: required }, label),
77
78
  inputElement,
78
79
  (error || info) && (React.createElement("div", null, error ? (React.createElement("p", { className: "text-xs text-destructive" }, error)) : info ? (React.createElement("p", { className: "text-xs text-blue-600 dark:text-blue-400" }, info)) : null))));
79
80
  }
@@ -82,5 +83,5 @@ var Input = React.forwardRef(function (_a, ref) {
82
83
  inputElement,
83
84
  (error || info) && (React.createElement("div", null, error ? (React.createElement("p", { className: "text-xs text-destructive" }, error)) : info ? (React.createElement("p", { className: "text-xs text-blue-600 dark:text-blue-400" }, info)) : null))));
84
85
  });
85
- exports.Input = Input;
86
- Input.displayName = "Input";
86
+ exports.EnhancedInput = EnhancedInput;
87
+ EnhancedInput.displayName = "EnhancedInput";
@@ -0,0 +1,7 @@
1
+ import * as React from "react";
2
+ import * as LabelPrimitive from "@radix-ui/react-label";
3
+ interface EnhancedLabelProps extends React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> {
4
+ required?: boolean;
5
+ }
6
+ declare function EnhancedLabel({ className, required, children, ...props }: EnhancedLabelProps): React.JSX.Element;
7
+ export { EnhancedLabel };
@@ -56,13 +56,13 @@ var __rest = (this && this.__rest) || function (s, e) {
56
56
  return t;
57
57
  };
58
58
  Object.defineProperty(exports, "__esModule", { value: true });
59
- exports.Label = Label;
59
+ exports.EnhancedLabel = EnhancedLabel;
60
60
  var React = __importStar(require("react"));
61
- var LabelPrimitive = __importStar(require("@radix-ui/react-label"));
62
61
  var utils_1 = require("../lib/utils");
63
- function Label(_a) {
62
+ var label_1 = require("./ui/label");
63
+ function EnhancedLabel(_a) {
64
64
  var className = _a.className, _b = _a.required, required = _b === void 0 ? false : _b, children = _a.children, props = __rest(_a, ["className", "required", "children"]);
65
- return (React.createElement(LabelPrimitive.Root, __assign({ "data-slot": "label", className: (0, utils_1.cn)("flex items-center gap-1 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50 min-h-5", className) }, props),
65
+ return (React.createElement(label_1.Label, __assign({ "data-slot": "label", className: (0, utils_1.cn)("flex items-center gap-1 select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 min-h-5", className) }, props),
66
66
  children,
67
67
  required && (React.createElement("span", { className: "text-destructive text-sm", "aria-label": "required" }, "*"))));
68
68
  }
@@ -0,0 +1,25 @@
1
+ import * as React from "react";
2
+ import * as SelectPrimitive from "@radix-ui/react-select";
3
+ interface EnhancedSelectProps {
4
+ error?: string;
5
+ info?: string;
6
+ label?: string;
7
+ required?: boolean;
8
+ id?: string;
9
+ children?: React.ReactNode;
10
+ value?: string;
11
+ defaultValue?: string;
12
+ onValueChange?: (value: string) => void;
13
+ disabled?: boolean;
14
+ name?: string;
15
+ dir?: "ltr" | "rtl";
16
+ open?: boolean;
17
+ defaultOpen?: boolean;
18
+ onOpenChange?: (open: boolean) => void;
19
+ }
20
+ interface EnhancedSelectTriggerProps extends React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger> {
21
+ error?: string;
22
+ }
23
+ declare const EnhancedSelect: ({ error, info, label, required, id, children, ...selectProps }: EnhancedSelectProps) => React.JSX.Element;
24
+ declare const EnhancedSelectTrigger: React.ForwardRefExoticComponent<EnhancedSelectTriggerProps & React.RefAttributes<HTMLButtonElement>>;
25
+ export { EnhancedSelect, EnhancedSelectTrigger };
@@ -0,0 +1,81 @@
1
+ "use client";
2
+ "use strict";
3
+ var __assign = (this && this.__assign) || function () {
4
+ __assign = Object.assign || function(t) {
5
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
6
+ s = arguments[i];
7
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
8
+ t[p] = s[p];
9
+ }
10
+ return t;
11
+ };
12
+ return __assign.apply(this, arguments);
13
+ };
14
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ var desc = Object.getOwnPropertyDescriptor(m, k);
17
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
18
+ desc = { enumerable: true, get: function() { return m[k]; } };
19
+ }
20
+ Object.defineProperty(o, k2, desc);
21
+ }) : (function(o, m, k, k2) {
22
+ if (k2 === undefined) k2 = k;
23
+ o[k2] = m[k];
24
+ }));
25
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
26
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
27
+ }) : function(o, v) {
28
+ o["default"] = v;
29
+ });
30
+ var __importStar = (this && this.__importStar) || (function () {
31
+ var ownKeys = function(o) {
32
+ ownKeys = Object.getOwnPropertyNames || function (o) {
33
+ var ar = [];
34
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
35
+ return ar;
36
+ };
37
+ return ownKeys(o);
38
+ };
39
+ return function (mod) {
40
+ if (mod && mod.__esModule) return mod;
41
+ var result = {};
42
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
43
+ __setModuleDefault(result, mod);
44
+ return result;
45
+ };
46
+ })();
47
+ var __rest = (this && this.__rest) || function (s, e) {
48
+ var t = {};
49
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
50
+ t[p] = s[p];
51
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
52
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
53
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
54
+ t[p[i]] = s[p[i]];
55
+ }
56
+ return t;
57
+ };
58
+ Object.defineProperty(exports, "__esModule", { value: true });
59
+ exports.EnhancedSelectTrigger = exports.EnhancedSelect = void 0;
60
+ var React = __importStar(require("react"));
61
+ var utils_1 = require("../lib/utils");
62
+ var select_1 = require("./ui/select");
63
+ var enhanced_label_1 = require("./enhanced-label");
64
+ var EnhancedSelect = function (_a) {
65
+ var error = _a.error, info = _a.info, label = _a.label, required = _a.required, id = _a.id, children = _a.children, selectProps = __rest(_a, ["error", "info", "label", "required", "id", "children"]);
66
+ return (React.createElement("div", { className: "w-full space-y-2" },
67
+ label && (React.createElement(enhanced_label_1.EnhancedLabel, { htmlFor: id, required: required }, label)),
68
+ React.createElement(select_1.Select, __assign({}, selectProps), children),
69
+ (error || info) && (React.createElement("div", null, error ? (React.createElement("p", { className: "text-xs text-destructive" }, error)) : info ? (React.createElement("p", { className: "text-xs text-blue-600 dark:text-blue-400" }, info)) : null))));
70
+ };
71
+ exports.EnhancedSelect = EnhancedSelect;
72
+ var EnhancedSelectTrigger = React.forwardRef(function (_a, ref) {
73
+ var className = _a.className, error = _a.error, children = _a.children, props = __rest(_a, ["className", "error", "children"]);
74
+ var hasError = Boolean(error);
75
+ return (React.createElement(select_1.SelectTrigger, __assign({ ref: ref, "aria-invalid": hasError, className: (0, utils_1.cn)(
76
+ // Error state styling
77
+ hasError &&
78
+ "border-destructive focus:ring-destructive/20 focus:border-destructive", className) }, props), children));
79
+ });
80
+ exports.EnhancedSelectTrigger = EnhancedSelectTrigger;
81
+ EnhancedSelectTrigger.displayName = "EnhancedSelectTrigger";
@@ -0,0 +1,10 @@
1
+ import * as React from "react";
2
+ import * as SwitchPrimitives from "@radix-ui/react-switch";
3
+ interface EnhancedSwitchProps extends React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root> {
4
+ error?: string;
5
+ info?: string;
6
+ label?: string;
7
+ description?: string;
8
+ }
9
+ declare const EnhancedSwitch: React.ForwardRefExoticComponent<EnhancedSwitchProps & React.RefAttributes<HTMLButtonElement>>;
10
+ export { EnhancedSwitch };
@@ -56,28 +56,26 @@ var __rest = (this && this.__rest) || function (s, e) {
56
56
  return t;
57
57
  };
58
58
  Object.defineProperty(exports, "__esModule", { value: true });
59
- exports.Switch = void 0;
59
+ exports.EnhancedSwitch = void 0;
60
60
  var React = __importStar(require("react"));
61
- var SwitchPrimitive = __importStar(require("@radix-ui/react-switch"));
61
+ var SwitchPrimitives = __importStar(require("@radix-ui/react-switch"));
62
62
  var utils_1 = require("../lib/utils");
63
- var label_1 = require("./label");
64
- var Switch = React.forwardRef(function (_a, ref) {
63
+ var enhanced_label_1 = require("./enhanced-label");
64
+ var EnhancedSwitch = React.forwardRef(function (_a, ref) {
65
65
  var className = _a.className, error = _a.error, info = _a.info, label = _a.label, required = _a.required, id = _a.id, description = _a.description, props = __rest(_a, ["className", "error", "info", "label", "required", "id", "description"]);
66
66
  // Determine if there's an error (for aria-invalid and styling)
67
67
  var hasError = Boolean(error);
68
- var switchElement = (React.createElement(SwitchPrimitive.Root, __assign({ ref: ref, id: id, "data-slot": "switch", "aria-invalid": hasError, required: required, className: (0, utils_1.cn)("peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",
68
+ var switchElement = (React.createElement(SwitchPrimitives.Root, __assign({ ref: ref, id: id, "data-slot": "switch", "aria-invalid": hasError, required: required, className: (0, utils_1.cn)("peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",
69
69
  // Error state styling
70
70
  hasError &&
71
71
  "data-[state=checked]:bg-destructive data-[state=unchecked]:bg-destructive/20 border-destructive focus-visible:border-destructive focus-visible:ring-destructive/20", className) }, props),
72
- React.createElement(SwitchPrimitive.Thumb, { "data-slot": "switch-thumb", className: (0, utils_1.cn)("bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0",
73
- // Error state thumb styling
74
- hasError && "dark:data-[state=checked]:bg-destructive-foreground") })));
72
+ React.createElement(SwitchPrimitives.Thumb, { "data-slot": "switch-thumb", className: (0, utils_1.cn)("pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0") })));
75
73
  // If label is provided, render the complete switch with label structure
76
74
  if (label) {
77
75
  return (React.createElement("div", { className: "w-full space-y-2" },
78
76
  React.createElement("div", { className: "flex items-center justify-between space-x-2" },
79
77
  React.createElement("div", null,
80
- React.createElement(label_1.Label, { htmlFor: id, required: required }, label),
78
+ React.createElement(enhanced_label_1.EnhancedLabel, { htmlFor: id, required: required }, label),
81
79
  description && (React.createElement("p", { className: "text-sm text-gray-400" }, description))),
82
80
  switchElement),
83
81
  (error || info) && (React.createElement("div", null, error ? (React.createElement("p", { className: "text-xs text-destructive" }, error)) : info ? (React.createElement("p", { className: "text-xs text-blue-600 dark:text-blue-400" }, info)) : null))));
@@ -87,5 +85,5 @@ var Switch = React.forwardRef(function (_a, ref) {
87
85
  switchElement,
88
86
  (error || info) && (React.createElement("div", null, error ? (React.createElement("p", { className: "text-xs text-destructive" }, error)) : info ? (React.createElement("p", { className: "text-xs text-blue-600 dark:text-blue-400" }, info)) : null))));
89
87
  });
90
- exports.Switch = Switch;
91
- Switch.displayName = SwitchPrimitive.Root.displayName;
88
+ exports.EnhancedSwitch = EnhancedSwitch;
89
+ EnhancedSwitch.displayName = "EnhancedSwitch";
@@ -20,7 +20,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
20
20
  exports.EnhancedTableFooterAction = void 0;
21
21
  var react_1 = __importDefault(require("react"));
22
22
  var lucide_react_1 = require("lucide-react");
23
- var button_1 = require("./button");
23
+ var button_1 = require("./ui/button");
24
24
  var EnhancedTableFooterAction = function (_a) {
25
25
  var handleNextOnClick = _a.handleNextOnClick, handlePreviousOnClick = _a.handlePreviousOnClick, isNextDisabled = _a.isNextDisabled, isPreviousDisabled = _a.isPreviousDisabled, _b = _a.isRTL, isRTL = _b === void 0 ? false : _b, loading = _a.loading, _c = _a.nextPageLabel, nextPageLabel = _c === void 0 ? "Next page" : _c, _d = _a.previousPageLabel, previousPageLabel = _d === void 0 ? "Previous page" : _d;
26
26
  // In RTL, arrows should be swapped:
@@ -18,7 +18,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
18
18
  };
19
19
  Object.defineProperty(exports, "__esModule", { value: true });
20
20
  exports.EnhancedTableFooterPagination = void 0;
21
- var select_1 = require("./select");
21
+ var select_1 = require("./ui/select");
22
22
  var react_1 = __importDefault(require("react"));
23
23
  var EnhancedTableFooterPagination = function (_a) {
24
24
  var handleOnSelect = _a.handleOnSelect, _b = _a.isRTL, isRTL = _b === void 0 ? false : _b, listOptions = _a.listOptions, loading = _a.loading, nodeSelectKey = _a.nodeSelectKey, pageLimit = _a.pageLimit, _c = _a.rowsPerPageLabel, rowsPerPageLabel = _c === void 0 ? "Rows per page:" : _c, _d = _a.className, className = _d === void 0 ? "" : _d;
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.EnhancedTableHeaderAction = void 0;
7
7
  var react_1 = __importDefault(require("react"));
8
8
  var lucide_react_1 = require("lucide-react");
9
- var button_1 = require("./button");
10
- var badge_1 = require("./badge");
9
+ var button_1 = require("./ui/button");
10
+ var badge_1 = require("./ui/badge");
11
11
  var EnhancedTableHeaderAction = function (_a) {
12
12
  var headerActions = _a.headerActions, numberOfFilters = _a.numberOfFilters, onClearFilters = _a.onClearFilters;
13
13
  return (react_1.default.createElement(react_1.default.Fragment, null, headerActions.length > 0 && (react_1.default.createElement("div", { className: "flex gap-2" }, headerActions
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.EnhancedTableHeaderSearch = void 0;
7
7
  var react_1 = __importDefault(require("react"));
8
8
  var lucide_react_1 = require("lucide-react");
9
- var input_1 = require("./input");
9
+ var input_1 = require("./ui/input");
10
10
  var EnhancedTableHeaderSearch = function (_a) {
11
11
  var handleSearchInput = _a.handleSearchInput, loading = _a.loading, _b = _a.searchDisabled, searchDisabled = _b === void 0 ? false : _b, _c = _a.searchEnabled, searchEnabled = _c === void 0 ? true : _c, _d = _a.searchId, searchId = _d === void 0 ? "table-search" : _d, _e = _a.searchPlaceholder, searchPlaceholder = _e === void 0 ? "Search..." : _e, searchValue = _a.searchValue;
12
12
  return (react_1.default.createElement(react_1.default.Fragment, null, searchEnabled && (react_1.default.createElement("div", { className: "flex items-center gap-2 max-w-xl" },
@@ -18,16 +18,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.EnhancedTable = exports.COMPONENT_TYPE = void 0;
19
19
  var react_1 = __importDefault(require("react"));
20
20
  var lucide_react_1 = require("lucide-react");
21
- var table_1 = require("./table");
22
- var dropdown_menu_1 = require("./dropdown-menu");
21
+ var table_1 = require("./ui/table");
22
+ var dropdown_menu_1 = require("./ui/dropdown-menu");
23
23
  var utils_1 = require("../lib/utils");
24
24
  var enhanced_table_footer_action_1 = require("./enhanced-table-footer-action");
25
25
  var enhanced_table_footer_page_1 = require("./enhanced-table-footer-page");
26
26
  var enhanced_table_footer_pagination_1 = require("./enhanced-table-footer-pagination");
27
- var popover_1 = require("./popover");
27
+ var popover_1 = require("./ui/popover");
28
28
  var enhanced_table_header_action_1 = require("./enhanced-table-header-action");
29
29
  var enhanced_table_header_search_1 = require("./enhanced-table-header-search");
30
- var badge_1 = require("./badge");
30
+ var badge_1 = require("./ui/badge");
31
31
  // Centralized component type values for table cell rendering
32
32
  var COMPONENT_TYPE;
33
33
  (function (COMPONENT_TYPE) {
@@ -127,7 +127,8 @@ var EnhancedTable = function (_a) {
127
127
  react_1.default.createElement(dropdown_menu_1.DropdownMenuContent, { align: "end" }, rowActions
128
128
  .filter(function (action) { return action.enabled !== false; })
129
129
  .sort(function (a, b) { return (a.order || 0) - (b.order || 0); })
130
- .map(function (action, index) { return (react_1.default.createElement(dropdown_menu_1.DropdownMenuItem, { key: action.id || action.key || index, variant: action.variant, onClick: function () {
130
+ .map(function (action, index) { return (react_1.default.createElement(dropdown_menu_1.DropdownMenuItem, { key: action.id || action.key || index, className: (0, utils_1.cn)(action.variant === "destructive" &&
131
+ "text-destructive focus:text-destructive"), onClick: function () {
131
132
  if (action.onClick)
132
133
  action.onClick(row);
133
134
  if (action.handleOnClick)
@@ -0,0 +1,8 @@
1
+ import * as React from "react";
2
+ interface EnhancedTextareaProps extends React.ComponentProps<"textarea"> {
3
+ error?: string;
4
+ info?: string;
5
+ label?: string;
6
+ }
7
+ declare const EnhancedTextarea: React.ForwardRefExoticComponent<Omit<EnhancedTextareaProps, "ref"> & React.RefAttributes<HTMLTextAreaElement>>;
8
+ export { EnhancedTextarea };
@@ -55,15 +55,16 @@ var __rest = (this && this.__rest) || function (s, e) {
55
55
  return t;
56
56
  };
57
57
  Object.defineProperty(exports, "__esModule", { value: true });
58
- exports.Textarea = void 0;
58
+ exports.EnhancedTextarea = void 0;
59
59
  var React = __importStar(require("react"));
60
60
  var utils_1 = require("../lib/utils");
61
- var label_1 = require("./label");
62
- var Textarea = React.forwardRef(function (_a, ref) {
61
+ var label_1 = require("./ui/label");
62
+ var textarea_1 = require("./ui/textarea");
63
+ var EnhancedTextarea = React.forwardRef(function (_a, ref) {
63
64
  var className = _a.className, error = _a.error, info = _a.info, label = _a.label, required = _a.required, id = _a.id, props = __rest(_a, ["className", "error", "info", "label", "required", "id"]);
64
65
  // Determine if there's an error (for aria-invalid and styling)
65
66
  var hasError = Boolean(error);
66
- var textareaElement = (React.createElement("textarea", __assign({ ref: ref, id: id, "data-slot": "textarea", "aria-invalid": hasError, required: required, className: (0, utils_1.cn)("placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input min-h-[80px] w-full min-w-0 rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none resize-vertical disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
67
+ var textareaElement = (React.createElement(textarea_1.Textarea, __assign({ ref: ref, id: id, "aria-invalid": hasError, required: required, className: (0, utils_1.cn)(
67
68
  // Error state styling
68
69
  hasError &&
69
70
  "border-destructive focus-visible:border-destructive focus-visible:ring-destructive/20",
@@ -73,7 +74,9 @@ var Textarea = React.forwardRef(function (_a, ref) {
73
74
  // If label is provided, render the complete textarea with label structure
74
75
  if (label) {
75
76
  return (React.createElement("div", { className: "w-full space-y-2" },
76
- React.createElement(label_1.Label, { htmlFor: id, required: required }, label),
77
+ React.createElement(label_1.Label, { htmlFor: id },
78
+ label,
79
+ required && (React.createElement("span", { className: "text-destructive text-sm ml-1", "aria-label": "required" }, "*"))),
77
80
  textareaElement,
78
81
  (error || info) && (React.createElement("div", null, error ? (React.createElement("p", { className: "text-xs text-destructive" }, error)) : info ? (React.createElement("p", { className: "text-xs text-blue-600 dark:text-blue-400" }, info)) : null))));
79
82
  }
@@ -82,5 +85,5 @@ var Textarea = React.forwardRef(function (_a, ref) {
82
85
  textareaElement,
83
86
  (error || info) && (React.createElement("div", null, error ? (React.createElement("p", { className: "text-xs text-destructive" }, error)) : info ? (React.createElement("p", { className: "text-xs text-blue-600 dark:text-blue-400" }, info)) : null))));
84
87
  });
85
- exports.Textarea = Textarea;
86
- Textarea.displayName = "Textarea";
88
+ exports.EnhancedTextarea = EnhancedTextarea;
89
+ EnhancedTextarea.displayName = "EnhancedTextarea";
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
2
  import { type VariantProps } from "class-variance-authority";
3
- import { Label } from "./label";
3
+ import { Label } from "./ui/label";
4
4
  declare function FieldSet({ className, ...props }: React.ComponentProps<"fieldset">): React.JSX.Element;
5
5
  declare function FieldLegend({ className, variant, ...props }: React.ComponentProps<"legend"> & {
6
6
  variant?: "legend" | "label";
@@ -69,8 +69,8 @@ exports.FieldTitle = FieldTitle;
69
69
  var react_1 = __importStar(require("react"));
70
70
  var class_variance_authority_1 = require("class-variance-authority");
71
71
  var utils_1 = require("../lib/utils");
72
- var label_1 = require("./label");
73
- var separator_1 = require("./separator");
72
+ var label_1 = require("./ui/label");
73
+ var separator_1 = require("./ui/separator");
74
74
  function FieldSet(_a) {
75
75
  var className = _a.className, props = __rest(_a, ["className"]);
76
76
  return (react_1.default.createElement("fieldset", __assign({ "data-slot": "field-set", className: (0, utils_1.cn)("flex flex-col gap-6", "has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3", className) }, props)));
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.NavMain = NavMain;
8
8
  var react_1 = __importDefault(require("react"));
9
9
  var lucide_react_1 = require("lucide-react");
10
- var collapsible_1 = require("./collapsible");
10
+ var collapsible_1 = require("./ui/collapsible");
11
11
  var sidebar_1 = require("./sidebar");
12
12
  function NavMain(_a) {
13
13
  var items = _a.items;
@@ -6,7 +6,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.NavProjects = void 0;
8
8
  var lucide_react_1 = require("lucide-react");
9
- var dropdown_menu_1 = require("./dropdown-menu");
9
+ var dropdown_menu_1 = require("./ui/dropdown-menu");
10
10
  var sidebar_1 = require("./sidebar");
11
11
  var react_1 = __importDefault(require("react"));
12
12
  var NavProjects = function (_a) {