@tablecraft/table 0.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 (205) hide show
  1. package/dist/auto/auto-columns.d.ts +9 -0
  2. package/dist/auto/auto-columns.d.ts.map +1 -0
  3. package/dist/auto/auto-columns.js +39 -0
  4. package/dist/auto/auto-columns.js.map +1 -0
  5. package/dist/auto/auto-filters.d.ts +22 -0
  6. package/dist/auto/auto-filters.d.ts.map +1 -0
  7. package/dist/auto/auto-filters.js +15 -0
  8. package/dist/auto/auto-filters.js.map +1 -0
  9. package/dist/auto/rest-adapter.d.ts +34 -0
  10. package/dist/auto/rest-adapter.d.ts.map +1 -0
  11. package/dist/auto/rest-adapter.js +31 -0
  12. package/dist/auto/rest-adapter.js.map +1 -0
  13. package/dist/auto/static-adapter.d.ts +21 -0
  14. package/dist/auto/static-adapter.d.ts.map +1 -0
  15. package/dist/auto/static-adapter.js +116 -0
  16. package/dist/auto/static-adapter.js.map +1 -0
  17. package/dist/auto/tablecraft-adapter.d.ts +26 -0
  18. package/dist/auto/tablecraft-adapter.d.ts.map +1 -0
  19. package/dist/auto/tablecraft-adapter.js +143 -0
  20. package/dist/auto/tablecraft-adapter.js.map +1 -0
  21. package/dist/auto/use-auto-columns.d.ts +13 -0
  22. package/dist/auto/use-auto-columns.d.ts.map +1 -0
  23. package/dist/auto/use-auto-columns.js +53 -0
  24. package/dist/auto/use-auto-columns.js.map +1 -0
  25. package/dist/column-header.d.ts +8 -0
  26. package/dist/column-header.d.ts.map +1 -0
  27. package/dist/column-header.js +33 -0
  28. package/dist/column-header.js.map +1 -0
  29. package/dist/components/button.d.ts +12 -0
  30. package/dist/components/button.d.ts.map +1 -0
  31. package/dist/components/button.js +35 -0
  32. package/dist/components/button.js.map +1 -0
  33. package/dist/components/calendar-date-picker.d.ts +21 -0
  34. package/dist/components/calendar-date-picker.d.ts.map +1 -0
  35. package/dist/components/calendar-date-picker.js +333 -0
  36. package/dist/components/calendar-date-picker.js.map +1 -0
  37. package/dist/components/calendar.d.ts +9 -0
  38. package/dist/components/calendar.d.ts.map +1 -0
  39. package/dist/components/calendar.js +77 -0
  40. package/dist/components/calendar.js.map +1 -0
  41. package/dist/components/checkbox.d.ts +5 -0
  42. package/dist/components/checkbox.d.ts.map +1 -0
  43. package/dist/components/checkbox.js +10 -0
  44. package/dist/components/checkbox.js.map +1 -0
  45. package/dist/components/command.d.ts +79 -0
  46. package/dist/components/command.d.ts.map +1 -0
  47. package/dist/components/command.js +26 -0
  48. package/dist/components/command.js.map +1 -0
  49. package/dist/components/popover.d.ts +11 -0
  50. package/dist/components/popover.d.ts.map +1 -0
  51. package/dist/components/popover.js +27 -0
  52. package/dist/components/popover.js.map +1 -0
  53. package/dist/components/select.d.ts +14 -0
  54. package/dist/components/select.d.ts.map +1 -0
  55. package/dist/components/select.js +28 -0
  56. package/dist/components/select.js.map +1 -0
  57. package/dist/components/table-dropdown.d.ts +26 -0
  58. package/dist/components/table-dropdown.d.ts.map +1 -0
  59. package/dist/components/table-dropdown.js +52 -0
  60. package/dist/components/table-dropdown.js.map +1 -0
  61. package/dist/core/table-config.d.ts +12 -0
  62. package/dist/core/table-config.d.ts.map +1 -0
  63. package/dist/core/table-config.js +33 -0
  64. package/dist/core/table-config.js.map +1 -0
  65. package/dist/core/use-column-resize.d.ts +10 -0
  66. package/dist/core/use-column-resize.d.ts.map +1 -0
  67. package/dist/core/use-column-resize.js +83 -0
  68. package/dist/core/use-column-resize.js.map +1 -0
  69. package/dist/core/use-conditional-state.d.ts +14 -0
  70. package/dist/core/use-conditional-state.d.ts.map +1 -0
  71. package/dist/core/use-conditional-state.js +27 -0
  72. package/dist/core/use-conditional-state.js.map +1 -0
  73. package/dist/core/use-table-data.d.ts +64 -0
  74. package/dist/core/use-table-data.d.ts.map +1 -0
  75. package/dist/core/use-table-data.js +141 -0
  76. package/dist/core/use-table-data.js.map +1 -0
  77. package/dist/core/use-url-state.d.ts +14 -0
  78. package/dist/core/use-url-state.d.ts.map +1 -0
  79. package/dist/core/use-url-state.js +269 -0
  80. package/dist/core/use-url-state.js.map +1 -0
  81. package/dist/data-table.d.ts +3 -0
  82. package/dist/data-table.d.ts.map +1 -0
  83. package/dist/data-table.js +278 -0
  84. package/dist/data-table.js.map +1 -0
  85. package/dist/expand-icon.d.ts +9 -0
  86. package/dist/expand-icon.d.ts.map +1 -0
  87. package/dist/expand-icon.js +13 -0
  88. package/dist/expand-icon.js.map +1 -0
  89. package/dist/export.d.ts +13 -0
  90. package/dist/export.d.ts.map +1 -0
  91. package/dist/export.js +122 -0
  92. package/dist/export.js.map +1 -0
  93. package/dist/index.d.ts +34 -0
  94. package/dist/index.d.ts.map +1 -0
  95. package/dist/index.js +35 -0
  96. package/dist/index.js.map +1 -0
  97. package/dist/pagination.d.ts +11 -0
  98. package/dist/pagination.d.ts.map +1 -0
  99. package/dist/pagination.js +49 -0
  100. package/dist/pagination.js.map +1 -0
  101. package/dist/renderers/actions.d.ts +8 -0
  102. package/dist/renderers/actions.d.ts.map +1 -0
  103. package/dist/renderers/actions.js +10 -0
  104. package/dist/renderers/actions.js.map +1 -0
  105. package/dist/renderers/badge.d.ts +3 -0
  106. package/dist/renderers/badge.d.ts.map +1 -0
  107. package/dist/renderers/badge.js +18 -0
  108. package/dist/renderers/badge.js.map +1 -0
  109. package/dist/renderers/boolean.d.ts +3 -0
  110. package/dist/renderers/boolean.d.ts.map +1 -0
  111. package/dist/renderers/boolean.js +10 -0
  112. package/dist/renderers/boolean.js.map +1 -0
  113. package/dist/renderers/date.d.ts +3 -0
  114. package/dist/renderers/date.d.ts.map +1 -0
  115. package/dist/renderers/date.js +56 -0
  116. package/dist/renderers/date.js.map +1 -0
  117. package/dist/renderers/image.d.ts +3 -0
  118. package/dist/renderers/image.d.ts.map +1 -0
  119. package/dist/renderers/image.js +18 -0
  120. package/dist/renderers/image.js.map +1 -0
  121. package/dist/renderers/index.d.ts +23 -0
  122. package/dist/renderers/index.d.ts.map +1 -0
  123. package/dist/renderers/index.js +43 -0
  124. package/dist/renderers/index.js.map +1 -0
  125. package/dist/renderers/link.d.ts +3 -0
  126. package/dist/renderers/link.d.ts.map +1 -0
  127. package/dist/renderers/link.js +9 -0
  128. package/dist/renderers/link.js.map +1 -0
  129. package/dist/renderers/number.d.ts +3 -0
  130. package/dist/renderers/number.d.ts.map +1 -0
  131. package/dist/renderers/number.js +29 -0
  132. package/dist/renderers/number.js.map +1 -0
  133. package/dist/renderers/progress.d.ts +3 -0
  134. package/dist/renderers/progress.d.ts.map +1 -0
  135. package/dist/renderers/progress.js +10 -0
  136. package/dist/renderers/progress.js.map +1 -0
  137. package/dist/renderers/tags.d.ts +3 -0
  138. package/dist/renderers/tags.d.ts.map +1 -0
  139. package/dist/renderers/tags.js +28 -0
  140. package/dist/renderers/tags.js.map +1 -0
  141. package/dist/renderers/text.d.ts +3 -0
  142. package/dist/renderers/text.d.ts.map +1 -0
  143. package/dist/renderers/text.js +8 -0
  144. package/dist/renderers/text.js.map +1 -0
  145. package/dist/resizer.d.ts +6 -0
  146. package/dist/resizer.d.ts.map +1 -0
  147. package/dist/resizer.js +10 -0
  148. package/dist/resizer.js.map +1 -0
  149. package/dist/row-actions.d.ts +10 -0
  150. package/dist/row-actions.d.ts.map +1 -0
  151. package/dist/row-actions.js +36 -0
  152. package/dist/row-actions.js.map +1 -0
  153. package/dist/toolbar.d.ts +35 -0
  154. package/dist/toolbar.d.ts.map +1 -0
  155. package/dist/toolbar.js +119 -0
  156. package/dist/toolbar.js.map +1 -0
  157. package/dist/types.d.ts +230 -0
  158. package/dist/types.d.ts.map +1 -0
  159. package/dist/types.js +2 -0
  160. package/dist/types.js.map +1 -0
  161. package/dist/utils/cn.d.ts +3 -0
  162. package/dist/utils/cn.d.ts.map +1 -0
  163. package/dist/utils/cn.js +6 -0
  164. package/dist/utils/cn.js.map +1 -0
  165. package/dist/utils/column-sizing.d.ts +18 -0
  166. package/dist/utils/column-sizing.d.ts.map +1 -0
  167. package/dist/utils/column-sizing.js +78 -0
  168. package/dist/utils/column-sizing.js.map +1 -0
  169. package/dist/utils/date-format.d.ts +13 -0
  170. package/dist/utils/date-format.d.ts.map +1 -0
  171. package/dist/utils/date-format.js +30 -0
  172. package/dist/utils/date-format.js.map +1 -0
  173. package/dist/utils/deep-utils.d.ts +15 -0
  174. package/dist/utils/deep-utils.d.ts.map +1 -0
  175. package/dist/utils/deep-utils.js +111 -0
  176. package/dist/utils/deep-utils.js.map +1 -0
  177. package/dist/utils/export-utils.d.ts +25 -0
  178. package/dist/utils/export-utils.d.ts.map +1 -0
  179. package/dist/utils/export-utils.js +170 -0
  180. package/dist/utils/export-utils.js.map +1 -0
  181. package/dist/utils/history-sync.d.ts +11 -0
  182. package/dist/utils/history-sync.d.ts.map +1 -0
  183. package/dist/utils/history-sync.js +45 -0
  184. package/dist/utils/history-sync.js.map +1 -0
  185. package/dist/utils/keyboard-navigation.d.ts +11 -0
  186. package/dist/utils/keyboard-navigation.d.ts.map +1 -0
  187. package/dist/utils/keyboard-navigation.js +39 -0
  188. package/dist/utils/keyboard-navigation.js.map +1 -0
  189. package/dist/utils/search.d.ts +10 -0
  190. package/dist/utils/search.d.ts.map +1 -0
  191. package/dist/utils/search.js +33 -0
  192. package/dist/utils/search.js.map +1 -0
  193. package/dist/utils/size-variants.d.ts +15 -0
  194. package/dist/utils/size-variants.d.ts.map +1 -0
  195. package/dist/utils/size-variants.js +42 -0
  196. package/dist/utils/size-variants.js.map +1 -0
  197. package/dist/utils/url-events.d.ts +2 -0
  198. package/dist/utils/url-events.d.ts.map +1 -0
  199. package/dist/utils/url-events.js +4 -0
  200. package/dist/utils/url-events.js.map +1 -0
  201. package/dist/view-options.d.ts +10 -0
  202. package/dist/view-options.d.ts.map +1 -0
  203. package/dist/view-options.js +104 -0
  204. package/dist/view-options.js.map +1 -0
  205. package/package.json +69 -0
@@ -0,0 +1,33 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { ArrowDown, ArrowUp, ChevronsUpDown, EyeOff, } from "lucide-react";
4
+ import { cn } from "./utils/cn";
5
+ import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, } from "./components/table-dropdown";
6
+ export function DataTableColumnHeader({ column, title, className, }) {
7
+ if (!column.getCanSort()) {
8
+ return _jsx("div", { className: cn(className), children: title });
9
+ }
10
+ // Get the current sort direction for this column
11
+ const currentDirection = column.getIsSorted();
12
+ // Use direct method to set sort with an explicit direction
13
+ const setSorting = (direction) => {
14
+ // If we're clearing sort, use an empty array
15
+ if (direction === false) {
16
+ column.toggleSorting(undefined, false);
17
+ return;
18
+ }
19
+ // Set explicit sort with the direction
20
+ // The second param (false) prevents multi-sort
21
+ column.toggleSorting(direction === "desc", false);
22
+ };
23
+ return (_jsx("div", { className: cn("flex items-center space-x-2", className), children: _jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsxs("button", { className: cn(
24
+ // Button base styles (matching shadcn/ui Button)
25
+ "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
26
+ // Variant "ghost"
27
+ "hover:bg-accent hover:text-accent-foreground",
28
+ // Size "sm"
29
+ "-ml-2 h-8 px-2",
30
+ // Custom overrides from tnks-data-table
31
+ "data-[state=open]:bg-accent focus-visible:ring-0 focus-visible:ring-offset-0"), children: [_jsx("span", { children: title }), currentDirection === "desc" ? (_jsx(ArrowDown, { className: "ml-2 h-4 w-4" })) : currentDirection === "asc" ? (_jsx(ArrowUp, { className: "ml-2 h-4 w-4" })) : (_jsx(ChevronsUpDown, { className: "ml-2 h-4 w-4" }))] }) }), _jsxs(DropdownMenuContent, { align: "start", children: [_jsxs(DropdownMenuItem, { onClick: () => setSorting("asc"), children: [_jsx(ArrowUp, { className: "mr-2 h-3.5 w-3.5 text-muted-foreground/70" }), "Asc"] }), _jsxs(DropdownMenuItem, { onClick: () => setSorting("desc"), children: [_jsx(ArrowDown, { className: "mr-2 h-3.5 w-3.5 text-muted-foreground/70" }), "Desc"] }), _jsx(DropdownMenuSeparator, {}), _jsxs(DropdownMenuItem, { onClick: () => column.toggleVisibility(false), children: [_jsx(EyeOff, { className: "mr-2 h-3.5 w-3.5 text-muted-foreground/70" }), "Hide"] })] })] }) }));
32
+ }
33
+ //# sourceMappingURL=column-header.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"column-header.js","sourceRoot":"","sources":["../src/column-header.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EACL,SAAS,EACT,OAAO,EACP,cAAc,EACd,MAAM,GACP,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAChC,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,6BAA6B,CAAC;AAQrC,MAAM,UAAU,qBAAqB,CAAgB,EACnD,MAAM,EACN,KAAK,EACL,SAAS,GACiC;IAC1C,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC;QACzB,OAAO,cAAK,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,YAAG,KAAK,GAAO,CAAC;IACtD,CAAC;IAED,iDAAiD;IACjD,MAAM,gBAAgB,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IAE9C,2DAA2D;IAC3D,MAAM,UAAU,GAAG,CAAC,SAAiC,EAAE,EAAE;QACvD,6CAA6C;QAC7C,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;YACxB,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YACvC,OAAO;QACT,CAAC;QAED,uCAAuC;QACvC,+CAA+C;QAC/C,MAAM,CAAC,aAAa,CAAC,SAAS,KAAK,MAAM,EAAE,KAAK,CAAC,CAAC;IACpD,CAAC,CAAC;IAEF,OAAO,CACL,cAAK,SAAS,EAAE,EAAE,CAAC,6BAA6B,EAAE,SAAS,CAAC,YAC1D,MAAC,YAAY,eACX,KAAC,mBAAmB,IAAC,OAAO,kBAC1B,kBACE,SAAS,EAAE,EAAE;wBACX,iDAAiD;wBACjD,wRAAwR;wBACxR,kBAAkB;wBAClB,8CAA8C;wBAC9C,YAAY;wBACZ,gBAAgB;wBAChB,wCAAwC;wBACxC,8EAA8E,CAC/E,aAED,yBAAO,KAAK,GAAQ,EACnB,gBAAgB,KAAK,MAAM,CAAC,CAAC,CAAC,CAC7B,KAAC,SAAS,IAAC,SAAS,EAAC,cAAc,GAAG,CACvC,CAAC,CAAC,CAAC,gBAAgB,KAAK,KAAK,CAAC,CAAC,CAAC,CAC/B,KAAC,OAAO,IAAC,SAAS,EAAC,cAAc,GAAG,CACrC,CAAC,CAAC,CAAC,CACF,KAAC,cAAc,IAAC,SAAS,EAAC,cAAc,GAAG,CAC5C,IACM,GACW,EACtB,MAAC,mBAAmB,IAAC,KAAK,EAAC,OAAO,aAChC,MAAC,gBAAgB,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,aAChD,KAAC,OAAO,IAAC,SAAS,EAAC,2CAA2C,GAAG,WAEhD,EACnB,MAAC,gBAAgB,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,aACjD,KAAC,SAAS,IAAC,SAAS,EAAC,2CAA2C,GAAG,YAElD,EACnB,KAAC,qBAAqB,KAAG,EACzB,MAAC,gBAAgB,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,aAC7D,KAAC,MAAM,IAAC,SAAS,EAAC,2CAA2C,GAAG,YAE/C,IACC,IACT,GACX,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,12 @@
1
+ import * as React from "react";
2
+ import { type VariantProps } from "class-variance-authority";
3
+ declare const buttonVariants: (props?: ({
4
+ variant?: "link" | "default" | "destructive" | "outline" | "secondary" | "ghost" | null | undefined;
5
+ size?: "default" | "sm" | "lg" | "icon" | null | undefined;
6
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
+ export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
8
+ asChild?: boolean;
9
+ }
10
+ declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
11
+ export { Button, buttonVariants };
12
+ //# sourceMappingURL=button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../src/components/button.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAIlE,QAAA,MAAM,cAAc;;;8EA2BnB,CAAC;AAEF,MAAM,WAAW,WACf,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EACnD,YAAY,CAAC,OAAO,cAAc,CAAC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,QAAA,MAAM,MAAM,uFAWX,CAAC;AAGF,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,35 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import * as React from "react";
4
+ import { Slot } from "@radix-ui/react-slot";
5
+ import { cva } from "class-variance-authority";
6
+ import { cn } from "../utils/cn";
7
+ const buttonVariants = cva("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", {
8
+ variants: {
9
+ variant: {
10
+ default: "bg-primary text-primary-foreground hover:bg-primary/90",
11
+ destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
12
+ outline: "border border-input bg-background hover:bg-accent hover:text-accent-foreground",
13
+ secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
14
+ ghost: "hover:bg-accent hover:text-accent-foreground",
15
+ link: "text-primary underline-offset-4 hover:underline",
16
+ },
17
+ size: {
18
+ default: "h-9 px-3 py-2",
19
+ sm: "h-8 rounded-md px-3 text-xs",
20
+ lg: "h-10 rounded-md px-4",
21
+ icon: "size-9",
22
+ },
23
+ },
24
+ defaultVariants: {
25
+ variant: "default",
26
+ size: "default",
27
+ },
28
+ });
29
+ const Button = React.forwardRef(({ className, variant, size, asChild = false, ...props }, ref) => {
30
+ const Comp = asChild ? Slot : "button";
31
+ return (_jsx(Comp, { className: cn(buttonVariants({ variant, size, className })), ref: ref, ...props }));
32
+ });
33
+ Button.displayName = "Button";
34
+ export { Button, buttonVariants };
35
+ //# sourceMappingURL=button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.js","sourceRoot":"","sources":["../../src/components/button.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAC;AAElE,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEjC,MAAM,cAAc,GAAG,GAAG,CACxB,0VAA0V,EAC1V;IACE,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,OAAO,EAAE,wDAAwD;YACjE,WAAW,EACT,oEAAoE;YACtE,OAAO,EACL,gFAAgF;YAClF,SAAS,EACP,8DAA8D;YAChE,KAAK,EAAE,8CAA8C;YACrD,IAAI,EAAE,iDAAiD;SACxD;QACD,IAAI,EAAE;YACJ,OAAO,EAAE,eAAe;YACxB,EAAE,EAAE,6BAA6B;YACjC,EAAE,EAAE,sBAAsB;YAC1B,IAAI,EAAE,QAAQ;SACf;KACF;IACD,eAAe,EAAE;QACf,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,SAAS;KAChB;CACF,CACF,CAAC;AAQF,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAC7B,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE;IAC/D,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;IACvC,OAAO,CACL,KAAC,IAAI,IACH,SAAS,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,EAC3D,GAAG,EAAE,GAAG,KACJ,KAAK,GACT,CACH,CAAC;AACJ,CAAC,CACF,CAAC;AACF,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC;AAE9B,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,21 @@
1
+ import * as React from "react";
2
+ import type { DateRange } from "react-day-picker";
3
+ import { type VariantProps } from "class-variance-authority";
4
+ declare const multiSelectVariants: (props?: ({
5
+ variant?: "link" | "default" | "destructive" | "outline" | "secondary" | "ghost" | null | undefined;
6
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
+ interface CalendarDatePickerProps extends React.HTMLAttributes<HTMLButtonElement>, VariantProps<typeof multiSelectVariants> {
8
+ id?: string;
9
+ className?: string;
10
+ date: DateRange;
11
+ closeOnSelect?: boolean;
12
+ numberOfMonths?: 1 | 2;
13
+ yearsRange?: number;
14
+ onDateSelect: (range: {
15
+ from: Date;
16
+ to: Date;
17
+ }) => void;
18
+ }
19
+ export declare const CalendarDatePicker: React.ForwardRefExoticComponent<CalendarDatePickerProps & React.RefAttributes<HTMLButtonElement>>;
20
+ export {};
21
+ //# sourceMappingURL=calendar-date-picker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar-date-picker.d.ts","sourceRoot":"","sources":["../../src/components/calendar-date-picker.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAe/B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAiClE,QAAA,MAAM,mBAAmB;;8EAoBxB,CAAC;AAEF,UAAU,uBACR,SAAQ,KAAK,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAC7C,YAAY,CAAC,OAAO,mBAAmB,CAAC;IAC1C,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,SAAS,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,EAAE,EAAE,IAAI,CAAA;KAAE,KAAK,IAAI,CAAC;CACzD;AAED,eAAO,MAAM,kBAAkB,mGAsmB9B,CAAC"}
@@ -0,0 +1,333 @@
1
+ "use client";
2
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import * as React from "react";
4
+ import { CalendarIcon } from "lucide-react";
5
+ import { startOfWeek, endOfWeek, subDays, subYears, startOfMonth, endOfMonth, startOfYear, endOfYear, startOfDay, endOfDay, } from "date-fns";
6
+ import { toDate, formatInTimeZone } from "date-fns-tz";
7
+ import { cva } from "class-variance-authority";
8
+ import { cn } from "../utils/cn";
9
+ import { Button } from "./button";
10
+ import { Popover, PopoverContent, PopoverTrigger, } from "./popover";
11
+ import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "./select";
12
+ import { Calendar } from "./calendar";
13
+ const months = [
14
+ "January",
15
+ "February",
16
+ "March",
17
+ "April",
18
+ "May",
19
+ "June",
20
+ "July",
21
+ "August",
22
+ "September",
23
+ "October",
24
+ "November",
25
+ "December",
26
+ ];
27
+ const multiSelectVariants = cva("flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium text-foreground ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50", {
28
+ variants: {
29
+ variant: {
30
+ default: "bg-primary text-primary-foreground hover:bg-primary/90",
31
+ destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
32
+ outline: "border border-input bg-background hover:bg-accent hover:text-accent-foreground",
33
+ secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
34
+ ghost: "hover:bg-accent hover:text-accent-foreground text-background",
35
+ link: " underline-offset-4 hover:underline text-background",
36
+ },
37
+ },
38
+ defaultVariants: {
39
+ variant: "default",
40
+ },
41
+ });
42
+ export const CalendarDatePicker = React.forwardRef(({ id = "calendar-date-picker", className, date, closeOnSelect = false, numberOfMonths = 2, yearsRange = 10, onDateSelect, variant, ...props }, ref) => {
43
+ const [isPopoverOpen, setIsPopoverOpen] = React.useState(false);
44
+ const [selectedRange, setSelectedRange] = React.useState(numberOfMonths === 2 ? "This Year" : "Today");
45
+ const [monthFrom, setMonthFrom] = React.useState(date?.from);
46
+ const [yearFrom, setYearFrom] = React.useState(date?.from?.getFullYear());
47
+ const [monthTo, setMonthTo] = React.useState(numberOfMonths === 2 ? date?.to : date?.from);
48
+ const [yearTo, setYearTo] = React.useState(numberOfMonths === 2
49
+ ? date?.to?.getFullYear()
50
+ : date?.from?.getFullYear());
51
+ const [highlightedPart, setHighlightedPart] = React.useState(null);
52
+ const timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
53
+ const handleClose = () => setIsPopoverOpen(false);
54
+ const handleTogglePopover = () => setIsPopoverOpen((prev) => !prev);
55
+ const selectDateRange = (from, to, range) => {
56
+ const startDate = startOfDay(toDate(from, { timeZone }));
57
+ const endDate = numberOfMonths === 2 ? endOfDay(toDate(to, { timeZone })) : startDate;
58
+ onDateSelect({ from: startDate, to: endDate });
59
+ setSelectedRange(range);
60
+ setMonthFrom(from);
61
+ setYearFrom(from.getFullYear());
62
+ setMonthTo(to);
63
+ setYearTo(to.getFullYear());
64
+ closeOnSelect && setIsPopoverOpen(false);
65
+ };
66
+ const handleDateSelect = (range) => {
67
+ if (range) {
68
+ let from = startOfDay(toDate(range.from, { timeZone }));
69
+ let to = range.to ? endOfDay(toDate(range.to, { timeZone })) : from;
70
+ if (numberOfMonths === 1) {
71
+ if (range.from !== date.from) {
72
+ to = from;
73
+ }
74
+ else {
75
+ from = startOfDay(toDate(range.to, { timeZone }));
76
+ }
77
+ }
78
+ onDateSelect({ from, to });
79
+ setMonthFrom(from);
80
+ setYearFrom(from.getFullYear());
81
+ setMonthTo(to);
82
+ setYearTo(to.getFullYear());
83
+ }
84
+ setSelectedRange(null);
85
+ };
86
+ const handleMonthChange = (newMonthIndex, part) => {
87
+ setSelectedRange(null);
88
+ if (part === "from") {
89
+ if (yearFrom !== undefined) {
90
+ if (newMonthIndex < 0 || newMonthIndex > 11)
91
+ return;
92
+ const newMonth = new Date(yearFrom, newMonthIndex, 1);
93
+ const from = numberOfMonths === 2
94
+ ? startOfMonth(toDate(newMonth, { timeZone }))
95
+ : date?.from
96
+ ? new Date(date.from.getFullYear(), newMonth.getMonth(), date.from.getDate())
97
+ : newMonth;
98
+ const to = numberOfMonths === 2
99
+ ? date.to
100
+ ? endOfDay(toDate(date.to, { timeZone }))
101
+ : endOfMonth(toDate(newMonth, { timeZone }))
102
+ : from;
103
+ if (from <= to) {
104
+ onDateSelect({ from, to });
105
+ setMonthFrom(newMonth);
106
+ setMonthTo(date.to);
107
+ }
108
+ }
109
+ }
110
+ else {
111
+ if (yearTo !== undefined) {
112
+ if (newMonthIndex < 0 || newMonthIndex > 11)
113
+ return;
114
+ const newMonth = new Date(yearTo, newMonthIndex, 1);
115
+ const from = date.from
116
+ ? startOfDay(toDate(date.from, { timeZone }))
117
+ : startOfMonth(toDate(newMonth, { timeZone }));
118
+ const to = numberOfMonths === 2
119
+ ? endOfMonth(toDate(newMonth, { timeZone }))
120
+ : from;
121
+ if (from <= to) {
122
+ onDateSelect({ from, to });
123
+ setMonthTo(newMonth);
124
+ setMonthFrom(date.from);
125
+ }
126
+ }
127
+ }
128
+ };
129
+ const handleYearChange = (newYear, part) => {
130
+ setSelectedRange(null);
131
+ if (part === "from") {
132
+ if (years.includes(newYear)) {
133
+ const newMonth = monthFrom
134
+ ? new Date(newYear, monthFrom ? monthFrom.getMonth() : 0, 1)
135
+ : new Date(newYear, 0, 1);
136
+ const from = numberOfMonths === 2
137
+ ? startOfMonth(toDate(newMonth, { timeZone }))
138
+ : date.from
139
+ ? new Date(newYear, newMonth.getMonth(), date.from.getDate())
140
+ : newMonth;
141
+ const to = numberOfMonths === 2
142
+ ? date.to
143
+ ? endOfDay(toDate(date.to, { timeZone }))
144
+ : endOfMonth(toDate(newMonth, { timeZone }))
145
+ : from;
146
+ if (from <= to) {
147
+ onDateSelect({ from, to });
148
+ setYearFrom(newYear);
149
+ setMonthFrom(newMonth);
150
+ setYearTo(date.to?.getFullYear());
151
+ setMonthTo(date.to);
152
+ }
153
+ }
154
+ }
155
+ else {
156
+ if (years.includes(newYear)) {
157
+ const newMonth = monthTo
158
+ ? new Date(newYear, monthTo.getMonth(), 1)
159
+ : new Date(newYear, 0, 1);
160
+ const from = date.from
161
+ ? startOfDay(toDate(date.from, { timeZone }))
162
+ : startOfMonth(toDate(newMonth, { timeZone }));
163
+ const to = numberOfMonths === 2
164
+ ? endOfMonth(toDate(newMonth, { timeZone }))
165
+ : from;
166
+ if (from <= to) {
167
+ onDateSelect({ from, to });
168
+ setYearTo(newYear);
169
+ setMonthTo(newMonth);
170
+ setYearFrom(date.from?.getFullYear());
171
+ setMonthFrom(date.from);
172
+ }
173
+ }
174
+ }
175
+ };
176
+ const today = new Date();
177
+ const years = Array.from({ length: yearsRange + 1 }, (_, i) => today.getFullYear() - yearsRange / 2 + i);
178
+ const dateRanges = [
179
+ { label: "Today", start: today, end: today },
180
+ { label: "Yesterday", start: subDays(today, 1), end: subDays(today, 1) },
181
+ {
182
+ label: "This Week",
183
+ start: startOfWeek(today, { weekStartsOn: 1 }),
184
+ end: endOfWeek(today, { weekStartsOn: 1 }),
185
+ },
186
+ {
187
+ label: "Last Week",
188
+ start: subDays(startOfWeek(today, { weekStartsOn: 1 }), 7),
189
+ end: subDays(endOfWeek(today, { weekStartsOn: 1 }), 7),
190
+ },
191
+ { label: "Last 7 Days", start: subDays(today, 6), end: today },
192
+ {
193
+ label: "This Month",
194
+ start: startOfMonth(today),
195
+ end: endOfMonth(today),
196
+ },
197
+ {
198
+ label: "Last Month",
199
+ start: startOfMonth(subDays(today, today.getDate())),
200
+ end: endOfMonth(subDays(today, today.getDate())),
201
+ },
202
+ { label: "This Year", start: startOfYear(today), end: endOfYear(today) },
203
+ {
204
+ label: "Last Year",
205
+ start: startOfYear(subYears(today, 1)),
206
+ end: endOfYear(subYears(today, 1)),
207
+ },
208
+ ];
209
+ const handleMouseOver = (part) => {
210
+ setHighlightedPart(part);
211
+ };
212
+ const handleMouseLeave = () => {
213
+ setHighlightedPart(null);
214
+ };
215
+ const handleWheel = (event, _part) => {
216
+ event.preventDefault();
217
+ setSelectedRange(null);
218
+ if (highlightedPart === "firstDay") {
219
+ const newDate = new Date(date.from);
220
+ const increment = event.deltaY > 0 ? -1 : 1;
221
+ newDate.setDate(newDate.getDate() + increment);
222
+ if (newDate <= date.to) {
223
+ numberOfMonths === 2
224
+ ? onDateSelect({ from: newDate, to: new Date(date.to) })
225
+ : onDateSelect({ from: newDate, to: newDate });
226
+ setMonthFrom(newDate);
227
+ }
228
+ else if (newDate > date.to && numberOfMonths === 1) {
229
+ onDateSelect({ from: newDate, to: newDate });
230
+ setMonthFrom(newDate);
231
+ }
232
+ }
233
+ else if (highlightedPart === "firstMonth") {
234
+ const currentMonth = monthFrom ? monthFrom.getMonth() : 0;
235
+ const newMonthIndex = currentMonth + (event.deltaY > 0 ? -1 : 1);
236
+ handleMonthChange(newMonthIndex, "from");
237
+ }
238
+ else if (highlightedPart === "firstYear" && yearFrom !== undefined) {
239
+ const newYear = yearFrom + (event.deltaY > 0 ? -1 : 1);
240
+ handleYearChange(newYear, "from");
241
+ }
242
+ else if (highlightedPart === "secondDay") {
243
+ const newDate = new Date(date.to);
244
+ const increment = event.deltaY > 0 ? -1 : 1;
245
+ newDate.setDate(newDate.getDate() + increment);
246
+ if (newDate >= date.from) {
247
+ onDateSelect({ from: new Date(date.from), to: newDate });
248
+ setMonthTo(newDate);
249
+ }
250
+ }
251
+ else if (highlightedPart === "secondMonth") {
252
+ const currentMonth = monthTo ? monthTo.getMonth() : 0;
253
+ const newMonthIndex = currentMonth + (event.deltaY > 0 ? -1 : 1);
254
+ handleMonthChange(newMonthIndex, "to");
255
+ }
256
+ else if (highlightedPart === "secondYear" && yearTo !== undefined) {
257
+ const newYear = yearTo + (event.deltaY > 0 ? -1 : 1);
258
+ handleYearChange(newYear, "to");
259
+ }
260
+ };
261
+ const handleWheelRef = React.useRef(handleWheel);
262
+ handleWheelRef.current = handleWheel;
263
+ React.useEffect(() => {
264
+ const firstDayElement = document.getElementById(`firstDay-${id}`);
265
+ const firstMonthElement = document.getElementById(`firstMonth-${id}`);
266
+ const firstYearElement = document.getElementById(`firstYear-${id}`);
267
+ const secondDayElement = document.getElementById(`secondDay-${id}`);
268
+ const secondMonthElement = document.getElementById(`secondMonth-${id}`);
269
+ const secondYearElement = document.getElementById(`secondYear-${id}`);
270
+ const elements = [
271
+ firstDayElement,
272
+ firstMonthElement,
273
+ firstYearElement,
274
+ secondDayElement,
275
+ secondMonthElement,
276
+ secondYearElement,
277
+ ];
278
+ const wheelHandler = (e) => {
279
+ handleWheelRef.current(e, "");
280
+ };
281
+ const addPassiveEventListener = (element) => {
282
+ if (element) {
283
+ element.addEventListener("wheel", wheelHandler, {
284
+ passive: false,
285
+ });
286
+ }
287
+ };
288
+ elements.forEach(addPassiveEventListener);
289
+ return () => {
290
+ elements.forEach((element) => {
291
+ if (element) {
292
+ element.removeEventListener("wheel", wheelHandler);
293
+ }
294
+ });
295
+ };
296
+ }, [id]);
297
+ const formatWithTz = (date, fmt) => formatInTimeZone(date, timeZone, fmt);
298
+ return (_jsxs(_Fragment, { children: [_jsx("style", { children: `
299
+ .date-part {
300
+ touch-action: none;
301
+ }
302
+ ` }), _jsxs(Popover, { open: isPopoverOpen, onOpenChange: setIsPopoverOpen, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsxs(Button, { id: "date", ref: ref, ...props, className: cn("w-auto", multiSelectVariants({ variant, className })), size: "default", onClick: handleTogglePopover, suppressHydrationWarning: true, children: [_jsx(CalendarIcon, { className: "mr-2 h-4 w-4" }), _jsx("span", { children: date?.from ? (date.to ? (_jsxs(_Fragment, { children: [_jsx("span", { id: `firstDay-${id}`, className: cn("date-part", highlightedPart === "firstDay" &&
303
+ "underline font-bold"), onMouseOver: () => handleMouseOver("firstDay"), onMouseLeave: handleMouseLeave, children: formatWithTz(date.from, "dd") }), " ", _jsx("span", { id: `firstMonth-${id}`, className: cn("date-part", highlightedPart === "firstMonth" &&
304
+ "underline font-bold"), onMouseOver: () => handleMouseOver("firstMonth"), onMouseLeave: handleMouseLeave, children: formatWithTz(date.from, "LLL") }), ",", " ", _jsx("span", { id: `firstYear-${id}`, className: cn("date-part", highlightedPart === "firstYear" &&
305
+ "underline font-bold"), onMouseOver: () => handleMouseOver("firstYear"), onMouseLeave: handleMouseLeave, children: formatWithTz(date.from, "y") }), numberOfMonths === 2 && (_jsxs(_Fragment, { children: [" - ", _jsx("span", { id: `secondDay-${id}`, className: cn("date-part", highlightedPart === "secondDay" &&
306
+ "underline font-bold"), onMouseOver: () => handleMouseOver("secondDay"), onMouseLeave: handleMouseLeave, children: formatWithTz(date.to, "dd") }), " ", _jsx("span", { id: `secondMonth-${id}`, className: cn("date-part", highlightedPart === "secondMonth" &&
307
+ "underline font-bold"), onMouseOver: () => handleMouseOver("secondMonth"), onMouseLeave: handleMouseLeave, children: formatWithTz(date.to, "LLL") }), ",", " ", _jsx("span", { id: `secondYear-${id}`, className: cn("date-part", highlightedPart === "secondYear" &&
308
+ "underline font-bold"), onMouseOver: () => handleMouseOver("secondYear"), onMouseLeave: handleMouseLeave, children: formatWithTz(date.to, "y") })] }))] })) : (_jsxs(_Fragment, { children: [_jsx("span", { id: "day", className: cn("date-part", highlightedPart === "day" && "underline font-bold"), onMouseOver: () => handleMouseOver("day"), onMouseLeave: handleMouseLeave, children: formatWithTz(date.from, "dd") }), " ", _jsx("span", { id: "month", className: cn("date-part", highlightedPart === "month" && "underline font-bold"), onMouseOver: () => handleMouseOver("month"), onMouseLeave: handleMouseLeave, children: formatWithTz(date.from, "LLL") }), ",", " ", _jsx("span", { id: "year", className: cn("date-part", highlightedPart === "year" && "underline font-bold"), onMouseOver: () => handleMouseOver("year"), onMouseLeave: handleMouseLeave, children: formatWithTz(date.from, "y") })] }))) : (_jsx("span", { children: "Select a date" })) })] }) }), isPopoverOpen && (_jsx(PopoverContent, { className: "w-auto", align: "start", avoidCollisions: false, onInteractOutside: handleClose, onEscapeKeyDown: handleClose, style: {
309
+ maxHeight: "var(--radix-popover-content-available-height)",
310
+ overflowY: "auto",
311
+ }, children: _jsxs("div", { className: "flex", children: [numberOfMonths === 2 && (_jsx("div", { className: "flex flex-col gap-1 pr-4 text-left border-r border-foreground/10", children: dateRanges.map(({ label, start, end }) => (_jsx(Button, { variant: "ghost", size: "default", className: cn("justify-start hover:bg-primary/90 hover:text-background", selectedRange === label &&
312
+ "bg-primary text-background hover:bg-primary/90 hover:text-background"), onClick: () => {
313
+ selectDateRange(start, end, label);
314
+ setMonthFrom(start);
315
+ setYearFrom(start.getFullYear());
316
+ setMonthTo(end);
317
+ setYearTo(end.getFullYear());
318
+ }, children: label }, label))) })), _jsxs("div", { className: "flex flex-col", children: [_jsxs("div", { className: "flex items-center gap-4", children: [_jsxs("div", { className: "flex gap-2 ml-3", children: [_jsxs(Select, { onValueChange: (value) => {
319
+ handleMonthChange(months.indexOf(value), "from");
320
+ setSelectedRange(null);
321
+ }, value: monthFrom ? months[monthFrom.getMonth()] : undefined, children: [_jsx(SelectTrigger, { className: "w-[122px] focus:ring-0 focus:ring-offset-0 font-medium hover:bg-accent hover:text-accent-foreground", children: _jsx(SelectValue, { placeholder: "Month" }) }), _jsx(SelectContent, { children: months.map((month, idx) => (_jsx(SelectItem, { value: month, children: month }, idx))) })] }), _jsxs(Select, { onValueChange: (value) => {
322
+ handleYearChange(Number(value), "from");
323
+ setSelectedRange(null);
324
+ }, value: yearFrom ? yearFrom.toString() : undefined, children: [_jsx(SelectTrigger, { className: "w-[122px] focus:ring-0 focus:ring-offset-0 font-medium hover:bg-accent hover:text-accent-foreground", children: _jsx(SelectValue, { placeholder: "Year" }) }), _jsx(SelectContent, { children: years.map((year, idx) => (_jsx(SelectItem, { value: year.toString(), children: year }, idx))) })] })] }), numberOfMonths === 2 && (_jsxs("div", { className: "flex gap-2", children: [_jsxs(Select, { onValueChange: (value) => {
325
+ handleMonthChange(months.indexOf(value), "to");
326
+ setSelectedRange(null);
327
+ }, value: monthTo ? months[monthTo.getMonth()] : undefined, children: [_jsx(SelectTrigger, { className: "w-[122px] focus:ring-0 focus:ring-offset-0 font-medium hover:bg-accent hover:text-accent-foreground", children: _jsx(SelectValue, { placeholder: "Month" }) }), _jsx(SelectContent, { children: months.map((month, idx) => (_jsx(SelectItem, { value: month, children: month }, idx))) })] }), _jsxs(Select, { onValueChange: (value) => {
328
+ handleYearChange(Number(value), "to");
329
+ setSelectedRange(null);
330
+ }, value: yearTo ? yearTo.toString() : undefined, children: [_jsx(SelectTrigger, { className: "w-[122px] focus:ring-0 focus:ring-offset-0 font-medium hover:bg-accent hover:text-accent-foreground", children: _jsx(SelectValue, { placeholder: "Year" }) }), _jsx(SelectContent, { children: years.map((year, idx) => (_jsx(SelectItem, { value: year.toString(), children: year }, idx))) })] })] }))] }), _jsx("div", { className: "flex", children: _jsx(Calendar, { mode: "range", defaultMonth: monthFrom, month: monthFrom, onMonthChange: setMonthFrom, selected: date, onSelect: handleDateSelect, numberOfMonths: numberOfMonths, showOutsideDays: false, className: className }) })] })] }) }))] })] }));
331
+ });
332
+ CalendarDatePicker.displayName = "CalendarDatePicker";
333
+ //# sourceMappingURL=calendar-date-picker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar-date-picker.js","sourceRoot":"","sources":["../../src/components/calendar-date-picker.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import * as React from "react";
2
+ import { DayPicker, type DayButton } from "react-day-picker";
3
+ import { Button } from "./button";
4
+ declare function Calendar({ className, classNames, showOutsideDays, captionLayout, buttonVariant, formatters, components, ...props }: React.ComponentProps<typeof DayPicker> & {
5
+ buttonVariant?: React.ComponentProps<typeof Button>["variant"];
6
+ }): import("react/jsx-runtime").JSX.Element;
7
+ declare function CalendarDayButton({ className, day, modifiers, ...props }: React.ComponentProps<typeof DayButton>): import("react/jsx-runtime").JSX.Element;
8
+ export { Calendar, CalendarDayButton };
9
+ //# sourceMappingURL=calendar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../../src/components/calendar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,EACL,SAAS,EAET,KAAK,SAAS,EACf,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,MAAM,EAAkB,MAAM,UAAU,CAAC;AAElD,iBAAS,QAAQ,CAAC,EAChB,SAAS,EACT,UAAU,EACV,eAAsB,EACtB,aAAuB,EACvB,aAAuB,EACvB,UAAU,EACV,UAAU,EACV,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,SAAS,CAAC,GAAG;IAC1C,aAAa,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC;CAChE,2CAuJA;AAED,iBAAS,iBAAiB,CAAC,EACzB,SAAS,EACT,GAAG,EACH,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,SAAS,CAAC,2CA+BxC;AAED,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC"}
@@ -0,0 +1,77 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import * as React from "react";
4
+ import { ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, } from "lucide-react";
5
+ import { DayPicker, getDefaultClassNames, } from "react-day-picker";
6
+ import { cn } from "../utils/cn";
7
+ import { Button, buttonVariants } from "./button";
8
+ function Calendar({ className, classNames, showOutsideDays = true, captionLayout = "label", buttonVariant = "ghost", formatters, components, ...props }) {
9
+ const defaultClassNames = getDefaultClassNames();
10
+ return (_jsx(DayPicker, { showOutsideDays: showOutsideDays, className: cn("bg-background group/calendar p-3 [--cell-size:--spacing(8)] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent", String.raw `rtl:**:[.rdp-button\_next>svg]:rotate-180`, String.raw `rtl:**:[.rdp-button\_previous>svg]:rotate-180`, className), captionLayout: captionLayout, formatters: {
11
+ formatMonthDropdown: (date) => date.toLocaleString("default", { month: "short" }),
12
+ ...formatters,
13
+ }, classNames: {
14
+ root: cn("w-fit", defaultClassNames.root),
15
+ months: cn("flex gap-4 flex-col md:flex-row relative", defaultClassNames.months),
16
+ month: cn("flex flex-col w-full gap-4", defaultClassNames.month),
17
+ nav: cn("flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between", defaultClassNames.nav),
18
+ button_previous: cn(buttonVariants({ variant: buttonVariant }), "size-(--cell-size) aria-disabled:opacity-50 p-0 select-none", defaultClassNames.button_previous),
19
+ button_next: cn(buttonVariants({ variant: buttonVariant }), "size-(--cell-size) aria-disabled:opacity-50 p-0 select-none", defaultClassNames.button_next),
20
+ month_caption: cn("flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)", defaultClassNames.month_caption),
21
+ dropdowns: cn("w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5", defaultClassNames.dropdowns),
22
+ dropdown_root: cn("relative has-focus:border-ring border border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] rounded-md", defaultClassNames.dropdown_root),
23
+ dropdown: cn("absolute bg-popover inset-0 opacity-0", defaultClassNames.dropdown),
24
+ caption_label: cn("select-none font-medium", captionLayout === "label"
25
+ ? "text-sm"
26
+ : "rounded-md pl-2 pr-1 flex items-center gap-1 text-sm h-8 [&>svg]:text-muted-foreground [&>svg]:size-3.5", defaultClassNames.caption_label),
27
+ table: "w-full border-collapse",
28
+ weekdays: cn("flex", defaultClassNames.weekdays),
29
+ weekday: cn("text-muted-foreground rounded-md flex-1 font-normal text-[0.8rem] select-none", defaultClassNames.weekday),
30
+ week: cn("flex w-full mt-2", defaultClassNames.week),
31
+ week_number_header: cn("select-none w-(--cell-size)", defaultClassNames.week_number_header),
32
+ week_number: cn("text-[0.8rem] select-none text-muted-foreground", defaultClassNames.week_number),
33
+ day: cn("relative w-full h-full p-0 text-center [&:last-child[data-selected=true]_button]:rounded-r-md group/day aspect-square select-none", props.showWeekNumber
34
+ ? "[&:nth-child(2)[data-selected=true]_button]:rounded-l-md"
35
+ : "[&:first-child[data-selected=true]_button]:rounded-l-md", defaultClassNames.day),
36
+ range_start: cn("rounded-l-md bg-accent", defaultClassNames.range_start),
37
+ range_middle: cn("rounded-none", defaultClassNames.range_middle),
38
+ range_end: cn("rounded-r-md bg-accent", defaultClassNames.range_end),
39
+ today: cn("bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none", defaultClassNames.today),
40
+ outside: cn("text-muted-foreground aria-selected:text-muted-foreground", defaultClassNames.outside),
41
+ disabled: cn("text-muted-foreground opacity-50", defaultClassNames.disabled),
42
+ hidden: cn("invisible", defaultClassNames.hidden),
43
+ ...classNames,
44
+ }, components: {
45
+ Root: ({ className, rootRef, ...props }) => {
46
+ return (_jsx("div", { "data-slot": "calendar", ref: rootRef, className: cn(className), ...props }));
47
+ },
48
+ Chevron: ({ className, orientation, ...props }) => {
49
+ if (orientation === "left") {
50
+ return (_jsx(ChevronLeftIcon, { className: cn("size-4", className), ...props }));
51
+ }
52
+ if (orientation === "right") {
53
+ return (_jsx(ChevronRightIcon, { className: cn("size-4", className), ...props }));
54
+ }
55
+ return (_jsx(ChevronDownIcon, { className: cn("size-4", className), ...props }));
56
+ },
57
+ DayButton: CalendarDayButton,
58
+ WeekNumber: ({ children, ...props }) => {
59
+ return (_jsx("td", { ...props, children: _jsx("div", { className: "flex size-(--cell-size) items-center justify-center text-center", children: children }) }));
60
+ },
61
+ ...components,
62
+ }, ...props }));
63
+ }
64
+ function CalendarDayButton({ className, day, modifiers, ...props }) {
65
+ const defaultClassNames = getDefaultClassNames();
66
+ const ref = React.useRef(null);
67
+ React.useEffect(() => {
68
+ if (modifiers.focused)
69
+ ref.current?.focus();
70
+ }, [modifiers.focused]);
71
+ return (_jsx(Button, { ref: ref, variant: "ghost", size: "icon", "data-day": day.date.toLocaleDateString(), "data-selected-single": modifiers.selected &&
72
+ !modifiers.range_start &&
73
+ !modifiers.range_end &&
74
+ !modifiers.range_middle, "data-range-start": modifiers.range_start, "data-range-end": modifiers.range_end, "data-range-middle": modifiers.range_middle, className: cn("data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 dark:hover:text-accent-foreground flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] data-[range-end=true]:rounded-md data-[range-end=true]:rounded-r-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md data-[range-start=true]:rounded-l-md [&>span]:text-xs [&>span]:opacity-70", defaultClassNames.day_button, className), ...props }));
75
+ }
76
+ export { Calendar, CalendarDayButton };
77
+ //# sourceMappingURL=calendar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar.js","sourceRoot":"","sources":["../../src/components/calendar.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import * as React from "react";
2
+ import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
3
+ declare const Checkbox: React.ForwardRefExoticComponent<Omit<CheckboxPrimitive.CheckboxProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
4
+ export { Checkbox };
5
+ //# sourceMappingURL=checkbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox.d.ts","sourceRoot":"","sources":["../../src/components/checkbox.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,iBAAiB,MAAM,0BAA0B,CAAA;AAK7D,QAAA,MAAM,QAAQ,iKAoBZ,CAAA;AAGF,OAAO,EAAE,QAAQ,EAAE,CAAA"}