@web-my-money/primitives 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) hide show
  1. package/dist/accordion/index.d.mts +9 -0
  2. package/dist/accordion/index.d.ts +9 -0
  3. package/dist/accordion/index.js +99 -0
  4. package/dist/accordion/index.mjs +14 -0
  5. package/dist/alert-dialog/index.d.mts +22 -0
  6. package/dist/alert-dialog/index.d.ts +22 -0
  7. package/dist/alert-dialog/index.js +206 -0
  8. package/dist/alert-dialog/index.mjs +29 -0
  9. package/dist/avatar/index.d.mts +23 -0
  10. package/dist/avatar/index.d.ts +23 -0
  11. package/dist/avatar/index.js +133 -0
  12. package/dist/avatar/index.mjs +10 -0
  13. package/dist/badge/index.d.mts +15 -0
  14. package/dist/badge/index.d.ts +15 -0
  15. package/dist/badge/index.js +96 -0
  16. package/dist/badge/index.mjs +10 -0
  17. package/dist/breadcrumb/index.d.mts +20 -0
  18. package/dist/breadcrumb/index.d.ts +20 -0
  19. package/dist/breadcrumb/index.js +126 -0
  20. package/dist/breadcrumb/index.mjs +20 -0
  21. package/dist/button/index.d.mts +12 -0
  22. package/dist/button/index.d.ts +12 -0
  23. package/dist/button/index.js +88 -0
  24. package/dist/button/index.mjs +10 -0
  25. package/dist/calendar/index.d.mts +29 -0
  26. package/dist/calendar/index.d.ts +29 -0
  27. package/dist/calendar/index.js +191 -0
  28. package/dist/calendar/index.mjs +9 -0
  29. package/dist/card/index.d.mts +13 -0
  30. package/dist/card/index.d.ts +13 -0
  31. package/dist/card/index.js +141 -0
  32. package/dist/card/index.mjs +19 -0
  33. package/dist/carousel/index.d.mts +20 -0
  34. package/dist/carousel/index.d.ts +20 -0
  35. package/dist/carousel/index.js +236 -0
  36. package/dist/carousel/index.mjs +19 -0
  37. package/dist/checkbox/index.d.mts +6 -0
  38. package/dist/checkbox/index.d.ts +6 -0
  39. package/dist/checkbox/index.js +63 -0
  40. package/dist/checkbox/index.mjs +8 -0
  41. package/dist/chunk-32LEHNCH.mjs +155 -0
  42. package/dist/chunk-3ZJ4L43B.mjs +92 -0
  43. package/dist/chunk-4KQNZMKT.mjs +47 -0
  44. package/dist/chunk-4W6U222X.mjs +113 -0
  45. package/dist/chunk-556SM2PJ.mjs +40 -0
  46. package/dist/chunk-5LYTCNI6.mjs +127 -0
  47. package/dist/chunk-5N7LGYZK.mjs +137 -0
  48. package/dist/chunk-6OG237U6.mjs +54 -0
  49. package/dist/chunk-7TMIJ7HZ.mjs +149 -0
  50. package/dist/chunk-DTENOVQN.mjs +44 -0
  51. package/dist/chunk-DUGW62XX.mjs +143 -0
  52. package/dist/chunk-DWLKKYIU.mjs +156 -0
  53. package/dist/chunk-DYCSGLM5.mjs +32 -0
  54. package/dist/chunk-DZPJV6MN.mjs +66 -0
  55. package/dist/chunk-FT72MNAV.mjs +25 -0
  56. package/dist/chunk-FV6JTZAK.mjs +30 -0
  57. package/dist/chunk-GLD4KQD3.mjs +90 -0
  58. package/dist/chunk-GWVW5OI6.mjs +106 -0
  59. package/dist/chunk-JWCA4M7E.mjs +160 -0
  60. package/dist/chunk-K4UYYX45.mjs +199 -0
  61. package/dist/chunk-KVQKOJNU.mjs +52 -0
  62. package/dist/chunk-LPMRBQLR.mjs +120 -0
  63. package/dist/chunk-M6HSM6GV.mjs +68 -0
  64. package/dist/chunk-NE5LEVMC.mjs +201 -0
  65. package/dist/chunk-NGWDLZ6E.mjs +33 -0
  66. package/dist/chunk-NH5ZVHAV.mjs +36 -0
  67. package/dist/chunk-PFXSPRVI.mjs +65 -0
  68. package/dist/chunk-PJO7WJ4G.mjs +10 -0
  69. package/dist/chunk-PTXZWR7Y.mjs +76 -0
  70. package/dist/chunk-SG747CBC.mjs +34 -0
  71. package/dist/chunk-UDQDW22Y.mjs +71 -0
  72. package/dist/chunk-UGOA6M4S.mjs +120 -0
  73. package/dist/chunk-UXU54FBX.mjs +63 -0
  74. package/dist/chunk-WYBX5VJ4.mjs +49 -0
  75. package/dist/chunk-Y7DNVOKO.mjs +57 -0
  76. package/dist/chunk-YNOS3JA2.mjs +29 -0
  77. package/dist/chunk-YPTARV3T.mjs +57 -0
  78. package/dist/chunk-YYFQVSPV.mjs +17 -0
  79. package/dist/chunk-ZR3J34NX.mjs +85 -0
  80. package/dist/collapsible/index.d.mts +8 -0
  81. package/dist/collapsible/index.d.ts +8 -0
  82. package/dist/collapsible/index.js +64 -0
  83. package/dist/collapsible/index.mjs +12 -0
  84. package/dist/combobox/index.d.mts +18 -0
  85. package/dist/combobox/index.d.ts +18 -0
  86. package/dist/combobox/index.js +198 -0
  87. package/dist/combobox/index.mjs +32 -0
  88. package/dist/context-menu/index.d.mts +16 -0
  89. package/dist/context-menu/index.d.ts +16 -0
  90. package/dist/context-menu/index.js +177 -0
  91. package/dist/context-menu/index.mjs +28 -0
  92. package/dist/date-range-input/index.d.mts +17 -0
  93. package/dist/date-range-input/index.d.ts +17 -0
  94. package/dist/date-range-input/index.js +284 -0
  95. package/dist/date-range-input/index.mjs +11 -0
  96. package/dist/dialog/index.d.mts +19 -0
  97. package/dist/dialog/index.d.ts +19 -0
  98. package/dist/dialog/index.js +240 -0
  99. package/dist/dialog/index.mjs +27 -0
  100. package/dist/dropdown-menu/index.d.mts +16 -0
  101. package/dist/dropdown-menu/index.d.ts +16 -0
  102. package/dist/dropdown-menu/index.js +189 -0
  103. package/dist/dropdown-menu/index.mjs +28 -0
  104. package/dist/field/index.d.mts +24 -0
  105. package/dist/field/index.d.ts +24 -0
  106. package/dist/field/index.js +88 -0
  107. package/dist/field/index.mjs +16 -0
  108. package/dist/hover-card/index.d.mts +8 -0
  109. package/dist/hover-card/index.d.ts +8 -0
  110. package/dist/hover-card/index.js +79 -0
  111. package/dist/hover-card/index.mjs +12 -0
  112. package/dist/index.d.mts +73 -0
  113. package/dist/index.d.ts +73 -0
  114. package/dist/index.js +3167 -0
  115. package/dist/index.mjs +452 -0
  116. package/dist/input/index.d.mts +5 -0
  117. package/dist/input/index.d.ts +5 -0
  118. package/dist/input/index.js +54 -0
  119. package/dist/input/index.mjs +7 -0
  120. package/dist/kbd/index.d.mts +8 -0
  121. package/dist/kbd/index.d.ts +8 -0
  122. package/dist/kbd/index.js +64 -0
  123. package/dist/kbd/index.mjs +9 -0
  124. package/dist/lightbox/index.d.mts +17 -0
  125. package/dist/lightbox/index.d.ts +17 -0
  126. package/dist/lightbox/index.js +151 -0
  127. package/dist/lightbox/index.mjs +24 -0
  128. package/dist/pagination/index.d.mts +33 -0
  129. package/dist/pagination/index.d.ts +33 -0
  130. package/dist/pagination/index.js +212 -0
  131. package/dist/pagination/index.mjs +25 -0
  132. package/dist/popover/index.d.mts +11 -0
  133. package/dist/popover/index.d.ts +11 -0
  134. package/dist/popover/index.js +120 -0
  135. package/dist/popover/index.mjs +18 -0
  136. package/dist/progress/index.d.mts +6 -0
  137. package/dist/progress/index.d.ts +6 -0
  138. package/dist/progress/index.js +60 -0
  139. package/dist/progress/index.mjs +8 -0
  140. package/dist/radio-group/index.d.mts +8 -0
  141. package/dist/radio-group/index.d.ts +8 -0
  142. package/dist/radio-group/index.js +71 -0
  143. package/dist/radio-group/index.mjs +10 -0
  144. package/dist/resizable/index.d.mts +10 -0
  145. package/dist/resizable/index.d.ts +10 -0
  146. package/dist/resizable/index.js +80 -0
  147. package/dist/resizable/index.mjs +12 -0
  148. package/dist/scroll-area/index.d.mts +6 -0
  149. package/dist/scroll-area/index.d.ts +6 -0
  150. package/dist/scroll-area/index.js +74 -0
  151. package/dist/scroll-area/index.mjs +8 -0
  152. package/dist/select/index.d.mts +17 -0
  153. package/dist/select/index.d.ts +17 -0
  154. package/dist/select/index.js +238 -0
  155. package/dist/select/index.mjs +26 -0
  156. package/dist/separator/index.d.mts +6 -0
  157. package/dist/separator/index.d.ts +6 -0
  158. package/dist/separator/index.js +59 -0
  159. package/dist/separator/index.mjs +8 -0
  160. package/dist/sheet/index.d.mts +38 -0
  161. package/dist/sheet/index.d.ts +38 -0
  162. package/dist/sheet/index.js +212 -0
  163. package/dist/sheet/index.mjs +27 -0
  164. package/dist/skeleton/index.d.mts +17 -0
  165. package/dist/skeleton/index.d.ts +17 -0
  166. package/dist/skeleton/index.js +80 -0
  167. package/dist/skeleton/index.mjs +11 -0
  168. package/dist/slide-over/index.d.mts +92 -0
  169. package/dist/slide-over/index.d.ts +92 -0
  170. package/dist/slide-over/index.js +298 -0
  171. package/dist/slide-over/index.mjs +31 -0
  172. package/dist/slider/index.d.mts +6 -0
  173. package/dist/slider/index.d.ts +6 -0
  174. package/dist/slider/index.js +47 -0
  175. package/dist/slider/index.mjs +8 -0
  176. package/dist/switch/index.d.mts +8 -0
  177. package/dist/switch/index.d.ts +8 -0
  178. package/dist/switch/index.js +66 -0
  179. package/dist/switch/index.mjs +8 -0
  180. package/dist/tabs/index.d.mts +9 -0
  181. package/dist/tabs/index.d.ts +9 -0
  182. package/dist/tabs/index.js +96 -0
  183. package/dist/tabs/index.mjs +14 -0
  184. package/dist/toast/index.d.mts +19 -0
  185. package/dist/toast/index.d.ts +19 -0
  186. package/dist/toast/index.js +107 -0
  187. package/dist/toast/index.mjs +10 -0
  188. package/dist/toggle/index.d.mts +14 -0
  189. package/dist/toggle/index.d.ts +14 -0
  190. package/dist/toggle/index.js +89 -0
  191. package/dist/toggle/index.mjs +12 -0
  192. package/dist/tooltip/index.d.mts +9 -0
  193. package/dist/tooltip/index.d.ts +9 -0
  194. package/dist/tooltip/index.js +101 -0
  195. package/dist/tooltip/index.mjs +14 -0
  196. package/package.json +235 -0
@@ -0,0 +1,177 @@
1
+ "use strict";
2
+ "use client";
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
+
21
+ // src/context-menu/index.tsx
22
+ var context_menu_exports = {};
23
+ __export(context_menu_exports, {
24
+ ContextMenu: () => ContextMenu,
25
+ ContextMenuCheckboxItem: () => ContextMenuCheckboxItem,
26
+ ContextMenuContent: () => ContextMenuContent,
27
+ ContextMenuGroup: () => ContextMenuGroup,
28
+ ContextMenuItem: () => ContextMenuItem,
29
+ ContextMenuLabel: () => ContextMenuLabel,
30
+ ContextMenuSeparator: () => ContextMenuSeparator,
31
+ ContextMenuSub: () => ContextMenuSub,
32
+ ContextMenuSubContent: () => ContextMenuSubContent,
33
+ ContextMenuSubTrigger: () => ContextMenuSubTrigger,
34
+ ContextMenuTrigger: () => ContextMenuTrigger
35
+ });
36
+ module.exports = __toCommonJS(context_menu_exports);
37
+ var import_context_menu = require("@base-ui/react/context-menu");
38
+ var import_lucide_react = require("lucide-react");
39
+
40
+ // src/utils.ts
41
+ var import_clsx = require("clsx");
42
+ var import_tailwind_merge = require("tailwind-merge");
43
+ function cn(...inputs) {
44
+ return (0, import_tailwind_merge.twMerge)((0, import_clsx.clsx)(inputs));
45
+ }
46
+
47
+ // src/context-menu/index.tsx
48
+ var import_jsx_runtime = require("react/jsx-runtime");
49
+ function ContextMenu({ ...props }) {
50
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_context_menu.ContextMenu.Root, { "data-slot": "context-menu", ...props });
51
+ }
52
+ function ContextMenuTrigger({ ...props }) {
53
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_context_menu.ContextMenu.Trigger, { "data-slot": "context-menu-trigger", ...props });
54
+ }
55
+ function ContextMenuGroup({ ...props }) {
56
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_context_menu.ContextMenu.Group, { "data-slot": "context-menu-group", ...props });
57
+ }
58
+ var popupClasses = "z-50 min-w-40 origin-(--transform-origin) rounded-lg bg-popover p-1 text-sm text-popover-foreground shadow-md ring-1 ring-foreground/10 outline-hidden duration-100 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95";
59
+ function ContextMenuContent({
60
+ className,
61
+ ...props
62
+ }) {
63
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_context_menu.ContextMenu.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_context_menu.ContextMenu.Positioner, { className: "isolate z-50", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
64
+ import_context_menu.ContextMenu.Popup,
65
+ {
66
+ "data-slot": "context-menu-content",
67
+ className: cn(popupClasses, className),
68
+ ...props
69
+ }
70
+ ) }) });
71
+ }
72
+ var itemClasses = "relative flex cursor-default select-none items-center gap-2 rounded-md px-2 py-1.5 text-sm outline-hidden data-highlighted:bg-muted data-highlighted:text-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:size-4 [&_svg]:shrink-0";
73
+ function ContextMenuItem({
74
+ className,
75
+ ...props
76
+ }) {
77
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
78
+ import_context_menu.ContextMenu.Item,
79
+ {
80
+ "data-slot": "context-menu-item",
81
+ className: cn(itemClasses, className),
82
+ ...props
83
+ }
84
+ );
85
+ }
86
+ function ContextMenuCheckboxItem({
87
+ className,
88
+ children,
89
+ ...props
90
+ }) {
91
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
92
+ import_context_menu.ContextMenu.CheckboxItem,
93
+ {
94
+ "data-slot": "context-menu-checkbox-item",
95
+ className: cn(itemClasses, "pl-7", className),
96
+ ...props,
97
+ children: [
98
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "absolute left-1.5 flex size-4 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_context_menu.ContextMenu.CheckboxItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.Check, { className: "size-3.5" }) }) }),
99
+ children
100
+ ]
101
+ }
102
+ );
103
+ }
104
+ function ContextMenuLabel({
105
+ className,
106
+ ...props
107
+ }) {
108
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
109
+ import_context_menu.ContextMenu.GroupLabel,
110
+ {
111
+ "data-slot": "context-menu-label",
112
+ className: cn("px-2 py-1.5 text-xs font-medium text-muted-foreground", className),
113
+ ...props
114
+ }
115
+ );
116
+ }
117
+ function ContextMenuSeparator({
118
+ className,
119
+ ...props
120
+ }) {
121
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
122
+ import_context_menu.ContextMenu.Separator,
123
+ {
124
+ "data-slot": "context-menu-separator",
125
+ className: cn("-mx-1 my-1 h-px bg-border", className),
126
+ ...props
127
+ }
128
+ );
129
+ }
130
+ function ContextMenuSub({ ...props }) {
131
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_context_menu.ContextMenu.SubmenuRoot, { ...props });
132
+ }
133
+ function ContextMenuSubTrigger({
134
+ className,
135
+ children,
136
+ ...props
137
+ }) {
138
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
139
+ import_context_menu.ContextMenu.SubmenuTrigger,
140
+ {
141
+ "data-slot": "context-menu-sub-trigger",
142
+ className: cn(itemClasses, "data-popup-open:bg-muted", className),
143
+ ...props,
144
+ children: [
145
+ children,
146
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.ChevronRight, { className: "ml-auto size-4" })
147
+ ]
148
+ }
149
+ );
150
+ }
151
+ function ContextMenuSubContent({
152
+ className,
153
+ ...props
154
+ }) {
155
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_context_menu.ContextMenu.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_context_menu.ContextMenu.Positioner, { className: "isolate z-50", side: "inline-end", sideOffset: 4, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
156
+ import_context_menu.ContextMenu.Popup,
157
+ {
158
+ "data-slot": "context-menu-sub-content",
159
+ className: cn(popupClasses, className),
160
+ ...props
161
+ }
162
+ ) }) });
163
+ }
164
+ // Annotate the CommonJS export names for ESM import in node:
165
+ 0 && (module.exports = {
166
+ ContextMenu,
167
+ ContextMenuCheckboxItem,
168
+ ContextMenuContent,
169
+ ContextMenuGroup,
170
+ ContextMenuItem,
171
+ ContextMenuLabel,
172
+ ContextMenuSeparator,
173
+ ContextMenuSub,
174
+ ContextMenuSubContent,
175
+ ContextMenuSubTrigger,
176
+ ContextMenuTrigger
177
+ });
@@ -0,0 +1,28 @@
1
+ "use client";
2
+ import {
3
+ ContextMenu,
4
+ ContextMenuCheckboxItem,
5
+ ContextMenuContent,
6
+ ContextMenuGroup,
7
+ ContextMenuItem,
8
+ ContextMenuLabel,
9
+ ContextMenuSeparator,
10
+ ContextMenuSub,
11
+ ContextMenuSubContent,
12
+ ContextMenuSubTrigger,
13
+ ContextMenuTrigger
14
+ } from "../chunk-5N7LGYZK.mjs";
15
+ import "../chunk-PJO7WJ4G.mjs";
16
+ export {
17
+ ContextMenu,
18
+ ContextMenuCheckboxItem,
19
+ ContextMenuContent,
20
+ ContextMenuGroup,
21
+ ContextMenuItem,
22
+ ContextMenuLabel,
23
+ ContextMenuSeparator,
24
+ ContextMenuSub,
25
+ ContextMenuSubContent,
26
+ ContextMenuSubTrigger,
27
+ ContextMenuTrigger
28
+ };
@@ -0,0 +1,17 @@
1
+ import * as React from 'react';
2
+ import { DateRange } from '../calendar/index.mjs';
3
+
4
+ interface DateRangeInputProps {
5
+ value?: DateRange;
6
+ onChange?: (range: DateRange) => void;
7
+ placeholder?: string;
8
+ minDate?: Date;
9
+ maxDate?: Date;
10
+ disabled?: boolean;
11
+ className?: string;
12
+ /** Custom date formatter — defaults to `toLocaleDateString`. */
13
+ formatDate?: (date: Date) => string;
14
+ }
15
+ declare function DateRangeInput({ value, onChange, placeholder, minDate, maxDate, disabled, className, formatDate, }: DateRangeInputProps): React.JSX.Element;
16
+
17
+ export { DateRange, DateRangeInput, type DateRangeInputProps };
@@ -0,0 +1,17 @@
1
+ import * as React from 'react';
2
+ import { DateRange } from '../calendar/index.js';
3
+
4
+ interface DateRangeInputProps {
5
+ value?: DateRange;
6
+ onChange?: (range: DateRange) => void;
7
+ placeholder?: string;
8
+ minDate?: Date;
9
+ maxDate?: Date;
10
+ disabled?: boolean;
11
+ className?: string;
12
+ /** Custom date formatter — defaults to `toLocaleDateString`. */
13
+ formatDate?: (date: Date) => string;
14
+ }
15
+ declare function DateRangeInput({ value, onChange, placeholder, minDate, maxDate, disabled, className, formatDate, }: DateRangeInputProps): React.JSX.Element;
16
+
17
+ export { DateRange, DateRangeInput, type DateRangeInputProps };
@@ -0,0 +1,284 @@
1
+ "use strict";
2
+ "use client";
3
+ var __create = Object.create;
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getProtoOf = Object.getPrototypeOf;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __export = (target, all) => {
10
+ for (var name in all)
11
+ __defProp(target, name, { get: all[name], enumerable: true });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from))
16
+ if (!__hasOwnProp.call(to, key) && key !== except)
17
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
18
+ }
19
+ return to;
20
+ };
21
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
22
+ // If the importer is in node compatibility mode or this is not an ESM
23
+ // file that has been converted to a CommonJS file using a Babel-
24
+ // compatible transform (i.e. "__esModule" has not been set), then set
25
+ // "default" to the CommonJS "module.exports" for node compatibility.
26
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
27
+ mod
28
+ ));
29
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
+
31
+ // src/date-range-input/index.tsx
32
+ var date_range_input_exports = {};
33
+ __export(date_range_input_exports, {
34
+ DateRangeInput: () => DateRangeInput
35
+ });
36
+ module.exports = __toCommonJS(date_range_input_exports);
37
+ var React2 = __toESM(require("react"));
38
+ var import_lucide_react2 = require("lucide-react");
39
+
40
+ // src/utils.ts
41
+ var import_clsx = require("clsx");
42
+ var import_tailwind_merge = require("tailwind-merge");
43
+ function cn(...inputs) {
44
+ return (0, import_tailwind_merge.twMerge)((0, import_clsx.clsx)(inputs));
45
+ }
46
+
47
+ // src/button/index.tsx
48
+ var import_button = require("@base-ui/react/button");
49
+ var import_class_variance_authority = require("class-variance-authority");
50
+ var import_jsx_runtime = require("react/jsx-runtime");
51
+ var buttonVariants = (0, import_class_variance_authority.cva)(
52
+ "group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
53
+ {
54
+ variants: {
55
+ variant: {
56
+ default: "bg-primary text-primary-foreground [a]:hover:bg-primary/80",
57
+ outline: "border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",
58
+ secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",
59
+ ghost: "hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",
60
+ destructive: "bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",
61
+ link: "text-primary underline-offset-4 hover:underline"
62
+ },
63
+ size: {
64
+ default: "h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",
65
+ xs: "h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",
66
+ sm: "h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5",
67
+ lg: "h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3",
68
+ icon: "size-8",
69
+ "icon-xs": "size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3",
70
+ "icon-sm": "size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg",
71
+ "icon-lg": "size-9"
72
+ }
73
+ },
74
+ defaultVariants: {
75
+ variant: "default",
76
+ size: "default"
77
+ }
78
+ }
79
+ );
80
+
81
+ // src/popover/index.tsx
82
+ var import_popover = require("@base-ui/react/popover");
83
+ var import_jsx_runtime2 = require("react/jsx-runtime");
84
+ function Popover({ ...props }) {
85
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_popover.Popover.Root, { "data-slot": "popover", ...props });
86
+ }
87
+ function PopoverTrigger({ ...props }) {
88
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_popover.Popover.Trigger, { "data-slot": "popover-trigger", ...props });
89
+ }
90
+ function PopoverContent({
91
+ className,
92
+ align = "center",
93
+ alignOffset = 0,
94
+ side = "bottom",
95
+ sideOffset = 4,
96
+ ...props
97
+ }) {
98
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_popover.Popover.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
99
+ import_popover.Popover.Positioner,
100
+ {
101
+ align,
102
+ alignOffset,
103
+ side,
104
+ sideOffset,
105
+ className: "isolate z-50",
106
+ children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
107
+ import_popover.Popover.Popup,
108
+ {
109
+ "data-slot": "popover-content",
110
+ className: cn(
111
+ "z-50 flex w-72 origin-(--transform-origin) flex-col gap-2.5 rounded-lg bg-popover p-2.5 text-sm text-popover-foreground shadow-md ring-1 ring-foreground/10 outline-hidden duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
112
+ className
113
+ ),
114
+ ...props
115
+ }
116
+ )
117
+ }
118
+ ) });
119
+ }
120
+
121
+ // src/calendar/index.tsx
122
+ var React = __toESM(require("react"));
123
+ var import_lucide_react = require("lucide-react");
124
+ var import_jsx_runtime3 = require("react/jsx-runtime");
125
+ var WEEKDAY_LABELS = ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"];
126
+ function startOfDay(d) {
127
+ return new Date(d.getFullYear(), d.getMonth(), d.getDate());
128
+ }
129
+ function isSameDay(a, b) {
130
+ return !!a && !!b && startOfDay(a).getTime() === startOfDay(b).getTime();
131
+ }
132
+ function isBetween(d, from, to) {
133
+ if (!from || !to) return false;
134
+ const t = startOfDay(d).getTime();
135
+ return t > startOfDay(from).getTime() && t < startOfDay(to).getTime();
136
+ }
137
+ function getMonthGrid(year, month) {
138
+ const first = new Date(year, month, 1);
139
+ const gridStart = new Date(year, month, 1 - first.getDay());
140
+ return Array.from({ length: 42 }, (_, i) => {
141
+ const d = new Date(gridStart);
142
+ d.setDate(gridStart.getDate() + i);
143
+ return d;
144
+ });
145
+ }
146
+ function Calendar(props) {
147
+ const { className, minDate, maxDate, disabled } = props;
148
+ const [uncontrolledMonth, setUncontrolledMonth] = React.useState(
149
+ () => props.defaultMonth ?? props.month ?? /* @__PURE__ */ new Date()
150
+ );
151
+ const month = props.month ?? uncontrolledMonth;
152
+ const setMonth = (next) => {
153
+ setUncontrolledMonth(next);
154
+ props.onMonthChange?.(next);
155
+ };
156
+ const isDisabled = (d) => {
157
+ if (minDate && startOfDay(d) < startOfDay(minDate)) return true;
158
+ if (maxDate && startOfDay(d) > startOfDay(maxDate)) return true;
159
+ return disabled?.(d) ?? false;
160
+ };
161
+ const handleSelect = (d) => {
162
+ if (isDisabled(d)) return;
163
+ if (props.mode === "range") {
164
+ const current = props.selected;
165
+ if (!current?.from || current.from && current.to) {
166
+ props.onSelect?.({ from: d, to: void 0 });
167
+ } else if (startOfDay(d) < startOfDay(current.from)) {
168
+ props.onSelect?.({ from: d, to: current.from });
169
+ } else {
170
+ props.onSelect?.({ from: current.from, to: d });
171
+ }
172
+ } else {
173
+ props.onSelect?.(isSameDay(props.selected, d) ? void 0 : d);
174
+ }
175
+ };
176
+ const grid = getMonthGrid(month.getFullYear(), month.getMonth());
177
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { "data-slot": "calendar", className: cn("w-fit p-2", className), children: [
178
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { "data-slot": "calendar-header", className: "flex items-center justify-between px-1 pb-2", children: [
179
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
180
+ "button",
181
+ {
182
+ type: "button",
183
+ "aria-label": "Previous month",
184
+ onClick: () => setMonth(new Date(month.getFullYear(), month.getMonth() - 1, 1)),
185
+ className: cn(buttonVariants({ variant: "ghost", size: "icon-sm" })),
186
+ children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_lucide_react.ChevronLeft, { className: "size-4" })
187
+ }
188
+ ),
189
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { "data-slot": "calendar-label", className: "text-sm font-medium", children: month.toLocaleDateString(void 0, { month: "long", year: "numeric" }) }),
190
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
191
+ "button",
192
+ {
193
+ type: "button",
194
+ "aria-label": "Next month",
195
+ onClick: () => setMonth(new Date(month.getFullYear(), month.getMonth() + 1, 1)),
196
+ className: cn(buttonVariants({ variant: "ghost", size: "icon-sm" })),
197
+ children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_lucide_react.ChevronRight, { className: "size-4" })
198
+ }
199
+ )
200
+ ] }),
201
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { "data-slot": "calendar-weekdays", className: "grid grid-cols-7 gap-0.5 px-1", children: WEEKDAY_LABELS.map((w) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "flex h-8 items-center justify-center text-xs font-medium text-muted-foreground", children: w }, w)) }),
202
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { "data-slot": "calendar-grid", className: "grid grid-cols-7 gap-0.5 px-1", children: grid.map((d) => {
203
+ const outsideMonth = d.getMonth() !== month.getMonth();
204
+ const isSelected = props.mode === "range" ? isSameDay(d, props.selected?.from) || isSameDay(d, props.selected?.to) : isSameDay(d, props.selected);
205
+ const inRange = props.mode === "range" && isBetween(d, props.selected?.from, props.selected?.to);
206
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
207
+ "button",
208
+ {
209
+ type: "button",
210
+ "data-slot": "calendar-day",
211
+ "data-selected": isSelected || void 0,
212
+ "data-outside-month": outsideMonth || void 0,
213
+ disabled: isDisabled(d),
214
+ "aria-label": d.toDateString(),
215
+ "aria-current": isSameDay(d, /* @__PURE__ */ new Date()) ? "date" : void 0,
216
+ onClick: () => handleSelect(d),
217
+ className: cn(
218
+ "flex h-8 w-8 items-center justify-center rounded-md text-sm transition-colors hover:bg-muted disabled:pointer-events-none disabled:opacity-40",
219
+ outsideMonth && "text-muted-foreground/50",
220
+ inRange && "rounded-none bg-primary/10",
221
+ isSelected && "bg-primary text-primary-foreground hover:bg-primary/90"
222
+ ),
223
+ children: d.getDate()
224
+ },
225
+ d.toISOString()
226
+ );
227
+ }) })
228
+ ] });
229
+ }
230
+
231
+ // src/date-range-input/index.tsx
232
+ var import_jsx_runtime4 = require("react/jsx-runtime");
233
+ function defaultFormat(d) {
234
+ return d.toLocaleDateString(void 0, { month: "short", day: "numeric", year: "numeric" });
235
+ }
236
+ function DateRangeInput({
237
+ value,
238
+ onChange,
239
+ placeholder = "Pick a date range",
240
+ minDate,
241
+ maxDate,
242
+ disabled,
243
+ className,
244
+ formatDate = defaultFormat
245
+ }) {
246
+ const [open, setOpen] = React2.useState(false);
247
+ const label = value?.from ? value.to ? `${formatDate(value.from)} \u2013 ${formatDate(value.to)}` : formatDate(value.from) : placeholder;
248
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(Popover, { open, onOpenChange: setOpen, children: [
249
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
250
+ PopoverTrigger,
251
+ {
252
+ "data-slot": "date-range-input-trigger",
253
+ disabled,
254
+ className: cn(
255
+ buttonVariants({ variant: "outline" }),
256
+ "w-full justify-start gap-2 font-normal",
257
+ !value?.from && "text-muted-foreground",
258
+ className
259
+ ),
260
+ children: [
261
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_lucide_react2.CalendarDays, { className: "size-4" }),
262
+ label
263
+ ]
264
+ }
265
+ ),
266
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(PopoverContent, { align: "start", className: "w-auto p-0", children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
267
+ Calendar,
268
+ {
269
+ mode: "range",
270
+ selected: value ?? { from: void 0, to: void 0 },
271
+ onSelect: (range) => {
272
+ onChange?.(range);
273
+ if (range.from && range.to) setOpen(false);
274
+ },
275
+ minDate,
276
+ maxDate
277
+ }
278
+ ) })
279
+ ] });
280
+ }
281
+ // Annotate the CommonJS export names for ESM import in node:
282
+ 0 && (module.exports = {
283
+ DateRangeInput
284
+ });
@@ -0,0 +1,11 @@
1
+ "use client";
2
+ import {
3
+ DateRangeInput
4
+ } from "../chunk-UDQDW22Y.mjs";
5
+ import "../chunk-ZR3J34NX.mjs";
6
+ import "../chunk-UGOA6M4S.mjs";
7
+ import "../chunk-YPTARV3T.mjs";
8
+ import "../chunk-PJO7WJ4G.mjs";
9
+ export {
10
+ DateRangeInput
11
+ };
@@ -0,0 +1,19 @@
1
+ import * as React from 'react';
2
+ import { Dialog as Dialog$1 } from '@base-ui/react/dialog';
3
+
4
+ declare function Dialog({ ...props }: Dialog$1.Root.Props): React.JSX.Element;
5
+ declare function DialogTrigger({ ...props }: Dialog$1.Trigger.Props): React.JSX.Element;
6
+ declare function DialogPortal({ ...props }: Dialog$1.Portal.Props): React.JSX.Element;
7
+ declare function DialogClose({ ...props }: Dialog$1.Close.Props): React.JSX.Element;
8
+ declare function DialogOverlay({ className, ...props }: Dialog$1.Backdrop.Props): React.JSX.Element;
9
+ declare function DialogContent({ className, children, showCloseButton, ...props }: Dialog$1.Popup.Props & {
10
+ showCloseButton?: boolean;
11
+ }): React.JSX.Element;
12
+ declare function DialogHeader({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
13
+ declare function DialogFooter({ className, showCloseButton, children, ...props }: React.ComponentProps<"div"> & {
14
+ showCloseButton?: boolean;
15
+ }): React.JSX.Element;
16
+ declare function DialogTitle({ className, ...props }: Dialog$1.Title.Props): React.JSX.Element;
17
+ declare function DialogDescription({ className, ...props }: Dialog$1.Description.Props): React.JSX.Element;
18
+
19
+ export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger };
@@ -0,0 +1,19 @@
1
+ import * as React from 'react';
2
+ import { Dialog as Dialog$1 } from '@base-ui/react/dialog';
3
+
4
+ declare function Dialog({ ...props }: Dialog$1.Root.Props): React.JSX.Element;
5
+ declare function DialogTrigger({ ...props }: Dialog$1.Trigger.Props): React.JSX.Element;
6
+ declare function DialogPortal({ ...props }: Dialog$1.Portal.Props): React.JSX.Element;
7
+ declare function DialogClose({ ...props }: Dialog$1.Close.Props): React.JSX.Element;
8
+ declare function DialogOverlay({ className, ...props }: Dialog$1.Backdrop.Props): React.JSX.Element;
9
+ declare function DialogContent({ className, children, showCloseButton, ...props }: Dialog$1.Popup.Props & {
10
+ showCloseButton?: boolean;
11
+ }): React.JSX.Element;
12
+ declare function DialogHeader({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
13
+ declare function DialogFooter({ className, showCloseButton, children, ...props }: React.ComponentProps<"div"> & {
14
+ showCloseButton?: boolean;
15
+ }): React.JSX.Element;
16
+ declare function DialogTitle({ className, ...props }: Dialog$1.Title.Props): React.JSX.Element;
17
+ declare function DialogDescription({ className, ...props }: Dialog$1.Description.Props): React.JSX.Element;
18
+
19
+ export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger };