@akshar-technosoft/ui 1.0.3 → 1.0.5
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.
- package/dist/components/data/data-table/data-table-action-bar.d.cts +1 -1
- package/dist/components/data/data-table/data-table-action-bar.d.ts +1 -1
- package/dist/components/data/data-table/data-table-pagination.cjs +1 -1
- package/dist/components/data/data-table/data-table-pagination.cjs.map +1 -1
- package/dist/components/data/data-table/data-table-pagination.js +1 -1
- package/dist/components/data/data-table/data-table-pagination.js.map +1 -1
- package/dist/components/data/data-table/data-table-toolbar.cjs +1 -1
- package/dist/components/data/data-table/data-table-toolbar.cjs.map +1 -1
- package/dist/components/data/data-table/data-table-toolbar.js +1 -1
- package/dist/components/data/data-table/data-table-toolbar.js.map +1 -1
- package/dist/components/data/data-table/data-table-types.cjs +1 -1
- package/dist/components/data/data-table/data-table-types.cjs.map +1 -1
- package/dist/components/data/data-table/data-table-types.d.cts +4 -0
- package/dist/components/data/data-table/data-table-types.d.ts +4 -0
- package/dist/components/data/data-table/data-table.cjs +1 -1
- package/dist/components/data/data-table/data-table.cjs.map +1 -1
- package/dist/components/data/data-table/data-table.js +1 -1
- package/dist/components/data/data-table/data-table.js.map +1 -1
- package/dist/components/data/data-table/index.cjs +1 -1
- package/dist/components/data/data-table/index.cjs.map +1 -1
- package/dist/components/data/data-table/index.d.cts +1 -1
- package/dist/components/data/data-table/index.d.ts +1 -1
- package/dist/components/data/data-table/index.js +1 -1
- package/dist/components/data/data-table/index.js.map +1 -1
- package/dist/components/date-helper.cjs +3 -0
- package/dist/components/date-helper.cjs.map +1 -0
- package/dist/components/date-helper.d.cts +27 -0
- package/dist/components/date-helper.d.ts +27 -0
- package/dist/components/date-helper.js +3 -0
- package/dist/components/date-helper.js.map +1 -0
- package/dist/components/helper/date-filter.cjs +1 -1
- package/dist/components/helper/date-filter.cjs.map +1 -1
- package/dist/components/helper/date-filter.d.cts +4 -3
- package/dist/components/helper/date-filter.d.ts +4 -3
- package/dist/components/helper/date-filter.js +1 -1
- package/dist/components/helper/date-filter.js.map +1 -1
- package/dist/components/ui/badge.d.cts +2 -2
- package/dist/components/ui/badge.d.ts +2 -2
- package/dist/components/ui/button.d.cts +2 -2
- package/dist/components/ui/button.d.ts +2 -2
- package/dist/components/ui/calendar.d.cts +1 -1
- package/dist/components/ui/calendar.d.ts +1 -1
- package/dist/components/ui/toggle.d.cts +2 -2
- package/dist/components/ui/toggle.d.ts +2 -2
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use client"
|
|
2
|
+
"use strict";var c=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var d=(o,t)=>{for(var r in t)c(o,r,{get:t[r],enumerable:!0})},M=(o,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of g(t))!p.call(o,a)&&a!==r&&c(o,a,{get:()=>t[a],enumerable:!(n=l(t,a))||n.enumerable});return o};var O=o=>M(c({},"__esModule",{value:!0}),o);var b={};d(b,{DateHelper:()=>y});module.exports=O(b);var e=require("date-fns"),y=class{static MONTH_NAMES_SHORT=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];static MONTH_NAMES_FULL=["January","February","March","April","May","June","July","August","September","October","November","December"];static formatDate(t,r={}){let{format:n="short",separator:a="-",locale:i,timeFormat:u="24h",includeTime:h=!1,customFormat:D}=r,s;if(typeof t=="string"?(s=(0,e.parseISO)(t),(0,e.isValid)(s)||(s=new Date(t))):s=new Date(t),!(0,e.isValid)(s))return"";if(D)return(0,e.format)(s,D,{locale:i});switch(n){case"iso":return(0,e.formatISO)(s,{representation:"date"});case"short":return(0,e.format)(s,`dd${a}MM${a}yyyy`,{locale:i});case"medium":return(0,e.format)(s,`dd${a}MMM${a}yyyy`,{locale:i});case"long":return(0,e.format)(s,`dd${a}MMMM${a}yyyy`,{locale:i});case"full":return(0,e.format)(s,"EEEE, MMMM dd, yyyy",{locale:i});case"time":return(0,e.format)(s,u==="12h"?"hh:mm a":"HH:mm",{locale:i});case"datetime":let m=this.formatDate(t,{format:"short",separator:a,locale:i}),f=this.formatDate(t,{format:"time",timeFormat:u,locale:i});return`${m} ${f}`;default:return(0,e.format)(s,`dd${a}MM${a}yyyy`,{locale:i})}}static toLocalISOString(t){let r=typeof t=="string"?(0,e.parseISO)(t):new Date(t);return(0,e.isValid)(r)?(0,e.formatISO)(r,{representation:"date"}):""}static parseDate(t,r){if(r){let a=(0,e.parse)(t,r,new Date);return(0,e.isValid)(a)?a:null}let n=(0,e.parseISO)(t);return(0,e.isValid)(n)?n:null}static startOfDay(t){let r=typeof t=="string"?(0,e.parseISO)(t):new Date(t);return(0,e.startOfDay)(r)}static endOfDay(t){let r=typeof t=="string"?(0,e.parseISO)(t):new Date(t);return(0,e.endOfDay)(r)}static addDays(t,r){let n=typeof t=="string"?(0,e.parseISO)(t):new Date(t);return(0,e.addDays)(n,r)}static subtractDays(t,r){let n=typeof t=="string"?(0,e.parseISO)(t):new Date(t);return(0,e.subDays)(n,r)}static compareDates(t,r){let n=typeof t=="string"?(0,e.parseISO)(t):new Date(t),a=typeof r=="string"?(0,e.parseISO)(r):new Date(r);return(0,e.isBefore)(n,a)?-1:(0,e.isAfter)(n,a)?1:0}static isValidDate(t){if(!t)return!1;let r=typeof t=="string"?(0,e.parseISO)(t):new Date(t);return(0,e.isValid)(r)}static differenceInDays(t,r){let n=typeof t=="string"?(0,e.parseISO)(t):new Date(t),a=typeof r=="string"?(0,e.parseISO)(r):new Date(r);return(0,e.differenceInDays)(n,a)}static getTodayISO(){return this.toLocalISOString(new Date)}};0&&(module.exports={DateHelper});
|
|
3
|
+
//# sourceMappingURL=date-helper.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/components/date-helper.tsx"],"sourcesContent":["import {\r\n format,\r\n parseISO,\r\n isValid,\r\n formatISO,\r\n parse,\r\n startOfDay,\r\n endOfDay,\r\n addDays,\r\n subDays,\r\n isBefore,\r\n isAfter,\r\n differenceInDays,\r\n Locale\r\n} from 'date-fns';\r\n\r\nexport interface FormatDateOptions {\r\n format?: 'iso' | 'short' | 'medium' | 'long' | 'full' | 'custom' | 'time' | 'datetime';\r\n separator?: string;\r\n locale?: Locale;\r\n timeFormat?: '12h' | '24h';\r\n includeTime?: boolean;\r\n customFormat?: string;\r\n}\r\n\r\nexport class DateHelper {\r\n private static readonly MONTH_NAMES_SHORT = [\r\n 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',\r\n 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'\r\n ];\r\n\r\n private static readonly MONTH_NAMES_FULL = [\r\n 'January', 'February', 'March', 'April', 'May', 'June',\r\n 'July', 'August', 'September', 'October', 'November', 'December'\r\n ];\r\n\r\n /**\r\n * Formats a date according to specified options with timezone safety\r\n * @param input Date input (string, number, or Date object)\r\n * @param options Formatting options\r\n * @returns Formatted date string\r\n */\r\n static formatDate(\r\n input: string | number | Date,\r\n options: FormatDateOptions = {}\r\n ): string {\r\n const {\r\n format: formatType = 'short',\r\n separator = '-',\r\n locale,\r\n timeFormat = '24h',\r\n includeTime = false,\r\n customFormat\r\n } = options;\r\n\r\n let dateObj: Date;\r\n\r\n if (typeof input === 'string') {\r\n dateObj = parseISO(input);\r\n if (!isValid(dateObj)) {\r\n dateObj = new Date(input);\r\n }\r\n } else {\r\n dateObj = new Date(input);\r\n }\r\n\r\n if (!isValid(dateObj)) return '';\r\n\r\n if (customFormat) {\r\n return format(dateObj, customFormat, { locale });\r\n }\r\n\r\n switch (formatType) {\r\n case 'iso':\r\n return formatISO(dateObj, { representation: 'date' });\r\n\r\n case 'short':\r\n return format(dateObj, `dd${separator}MM${separator}yyyy`, { locale });\r\n\r\n case 'medium':\r\n return format(dateObj, `dd${separator}MMM${separator}yyyy`, { locale });\r\n\r\n case 'long':\r\n return format(dateObj, `dd${separator}MMMM${separator}yyyy`, { locale });\r\n\r\n case 'full':\r\n return format(dateObj, 'EEEE, MMMM dd, yyyy', { locale });\r\n\r\n case 'time':\r\n return format(\r\n dateObj,\r\n timeFormat === '12h' ? 'hh:mm a' : 'HH:mm',\r\n { locale }\r\n );\r\n\r\n case 'datetime':\r\n const datePart = this.formatDate(input, { format: 'short', separator, locale });\r\n const timePart = this.formatDate(input, { format: 'time', timeFormat, locale });\r\n return `${datePart} ${timePart}`;\r\n\r\n default:\r\n return format(dateObj, `dd${separator}MM${separator}yyyy`, { locale });\r\n }\r\n }\r\n\r\n /**\r\n * Converts date to local ISO string (timezone safe)\r\n */\r\n static toLocalISOString(date: Date | string): string {\r\n const d = typeof date === 'string' ? parseISO(date) : new Date(date);\r\n if (!isValid(d)) return '';\r\n\r\n return formatISO(d, { representation: 'date' });\r\n }\r\n\r\n /**\r\n * Parses a date string with format validation\r\n */\r\n static parseDate(dateString: string, formatString?: string): Date | null {\r\n if (formatString) {\r\n const parsed = parse(dateString, formatString, new Date());\r\n return isValid(parsed) ? parsed : null;\r\n }\r\n\r\n const parsed = parseISO(dateString);\r\n return isValid(parsed) ? parsed : null;\r\n }\r\n\r\n /**\r\n * Gets start of day (timezone safe)\r\n */\r\n static startOfDay(date: Date | string): Date {\r\n const d = typeof date === 'string' ? parseISO(date) : new Date(date);\r\n return startOfDay(d);\r\n }\r\n\r\n /**\r\n * Gets end of day (timezone safe)\r\n */\r\n static endOfDay(date: Date | string): Date {\r\n const d = typeof date === 'string' ? parseISO(date) : new Date(date);\r\n return endOfDay(d);\r\n }\r\n\r\n /**\r\n * Adds days to a date\r\n */\r\n static addDays(date: Date | string, days: number): Date {\r\n const d = typeof date === 'string' ? parseISO(date) : new Date(date);\r\n return addDays(d, days);\r\n }\r\n\r\n /**\r\n * Subtracts days from a date\r\n */\r\n static subtractDays(date: Date | string, days: number): Date {\r\n const d = typeof date === 'string' ? parseISO(date) : new Date(date);\r\n return subDays(d, days);\r\n }\r\n\r\n /**\r\n * Compares two dates\r\n */\r\n static compareDates(date1: Date | string, date2: Date | string): number {\r\n const d1 = typeof date1 === 'string' ? parseISO(date1) : new Date(date1);\r\n const d2 = typeof date2 === 'string' ? parseISO(date2) : new Date(date2);\r\n\r\n if (isBefore(d1, d2)) return -1;\r\n if (isAfter(d1, d2)) return 1;\r\n return 0;\r\n }\r\n\r\n /**\r\n * Checks if date is valid\r\n */\r\n static isValidDate(date: any): boolean {\r\n if (!date) return false;\r\n const d = typeof date === 'string' ? parseISO(date) : new Date(date);\r\n return isValid(d);\r\n }\r\n\r\n /**\r\n * Gets difference between two dates in days\r\n */\r\n static differenceInDays(date1: Date | string, date2: Date | string): number {\r\n const d1 = typeof date1 === 'string' ? parseISO(date1) : new Date(date1);\r\n const d2 = typeof date2 === 'string' ? parseISO(date2) : new Date(date2);\r\n return differenceInDays(d1, d2);\r\n }\r\n\r\n /**\r\n * Gets current date in local ISO format\r\n */\r\n static getTodayISO(): string {\r\n return this.toLocalISOString(new Date());\r\n }\r\n}"],"mappings":"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","names":["date_helper_exports","__export","DateHelper","__toCommonJS","import_date_fns","input","options","formatType","separator","locale","timeFormat","includeTime","customFormat","dateObj","datePart","timePart","date","d","dateString","formatString","parsed","days","date1","date2","d1","d2"]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Locale } from 'date-fns';
|
|
2
|
+
|
|
3
|
+
interface FormatDateOptions {
|
|
4
|
+
format?: 'iso' | 'short' | 'medium' | 'long' | 'full' | 'custom' | 'time' | 'datetime';
|
|
5
|
+
separator?: string;
|
|
6
|
+
locale?: Locale;
|
|
7
|
+
timeFormat?: '12h' | '24h';
|
|
8
|
+
includeTime?: boolean;
|
|
9
|
+
customFormat?: string;
|
|
10
|
+
}
|
|
11
|
+
declare class DateHelper {
|
|
12
|
+
private static readonly MONTH_NAMES_SHORT;
|
|
13
|
+
private static readonly MONTH_NAMES_FULL;
|
|
14
|
+
static formatDate(input: string | number | Date, options?: FormatDateOptions): string;
|
|
15
|
+
static toLocalISOString(date: Date | string): string;
|
|
16
|
+
static parseDate(dateString: string, formatString?: string): Date | null;
|
|
17
|
+
static startOfDay(date: Date | string): Date;
|
|
18
|
+
static endOfDay(date: Date | string): Date;
|
|
19
|
+
static addDays(date: Date | string, days: number): Date;
|
|
20
|
+
static subtractDays(date: Date | string, days: number): Date;
|
|
21
|
+
static compareDates(date1: Date | string, date2: Date | string): number;
|
|
22
|
+
static isValidDate(date: any): boolean;
|
|
23
|
+
static differenceInDays(date1: Date | string, date2: Date | string): number;
|
|
24
|
+
static getTodayISO(): string;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export { DateHelper, type FormatDateOptions };
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Locale } from 'date-fns';
|
|
2
|
+
|
|
3
|
+
interface FormatDateOptions {
|
|
4
|
+
format?: 'iso' | 'short' | 'medium' | 'long' | 'full' | 'custom' | 'time' | 'datetime';
|
|
5
|
+
separator?: string;
|
|
6
|
+
locale?: Locale;
|
|
7
|
+
timeFormat?: '12h' | '24h';
|
|
8
|
+
includeTime?: boolean;
|
|
9
|
+
customFormat?: string;
|
|
10
|
+
}
|
|
11
|
+
declare class DateHelper {
|
|
12
|
+
private static readonly MONTH_NAMES_SHORT;
|
|
13
|
+
private static readonly MONTH_NAMES_FULL;
|
|
14
|
+
static formatDate(input: string | number | Date, options?: FormatDateOptions): string;
|
|
15
|
+
static toLocalISOString(date: Date | string): string;
|
|
16
|
+
static parseDate(dateString: string, formatString?: string): Date | null;
|
|
17
|
+
static startOfDay(date: Date | string): Date;
|
|
18
|
+
static endOfDay(date: Date | string): Date;
|
|
19
|
+
static addDays(date: Date | string, days: number): Date;
|
|
20
|
+
static subtractDays(date: Date | string, days: number): Date;
|
|
21
|
+
static compareDates(date1: Date | string, date2: Date | string): number;
|
|
22
|
+
static isValidDate(date: any): boolean;
|
|
23
|
+
static differenceInDays(date1: Date | string, date2: Date | string): number;
|
|
24
|
+
static getTodayISO(): string;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export { DateHelper, type FormatDateOptions };
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use client"
|
|
2
|
+
import{format as o,parseISO as s,isValid as c,formatISO as D,parse as g,startOfDay as p,endOfDay as d,addDays as M,subDays as O,isBefore as b,isAfter as h,differenceInDays as w}from"date-fns";var m=class{static MONTH_NAMES_SHORT=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];static MONTH_NAMES_FULL=["January","February","March","April","May","June","July","August","September","October","November","December"];static formatDate(t,e={}){let{format:a="short",separator:r="-",locale:i,timeFormat:y="24h",includeTime:$=!1,customFormat:u}=e,n;if(typeof t=="string"?(n=s(t),c(n)||(n=new Date(t))):n=new Date(t),!c(n))return"";if(u)return o(n,u,{locale:i});switch(a){case"iso":return D(n,{representation:"date"});case"short":return o(n,`dd${r}MM${r}yyyy`,{locale:i});case"medium":return o(n,`dd${r}MMM${r}yyyy`,{locale:i});case"long":return o(n,`dd${r}MMMM${r}yyyy`,{locale:i});case"full":return o(n,"EEEE, MMMM dd, yyyy",{locale:i});case"time":return o(n,y==="12h"?"hh:mm a":"HH:mm",{locale:i});case"datetime":let f=this.formatDate(t,{format:"short",separator:r,locale:i}),l=this.formatDate(t,{format:"time",timeFormat:y,locale:i});return`${f} ${l}`;default:return o(n,`dd${r}MM${r}yyyy`,{locale:i})}}static toLocalISOString(t){let e=typeof t=="string"?s(t):new Date(t);return c(e)?D(e,{representation:"date"}):""}static parseDate(t,e){if(e){let r=g(t,e,new Date);return c(r)?r:null}let a=s(t);return c(a)?a:null}static startOfDay(t){let e=typeof t=="string"?s(t):new Date(t);return p(e)}static endOfDay(t){let e=typeof t=="string"?s(t):new Date(t);return d(e)}static addDays(t,e){let a=typeof t=="string"?s(t):new Date(t);return M(a,e)}static subtractDays(t,e){let a=typeof t=="string"?s(t):new Date(t);return O(a,e)}static compareDates(t,e){let a=typeof t=="string"?s(t):new Date(t),r=typeof e=="string"?s(e):new Date(e);return b(a,r)?-1:h(a,r)?1:0}static isValidDate(t){if(!t)return!1;let e=typeof t=="string"?s(t):new Date(t);return c(e)}static differenceInDays(t,e){let a=typeof t=="string"?s(t):new Date(t),r=typeof e=="string"?s(e):new Date(e);return w(a,r)}static getTodayISO(){return this.toLocalISOString(new Date)}};export{m as DateHelper};
|
|
3
|
+
//# sourceMappingURL=date-helper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/components/date-helper.tsx"],"sourcesContent":["import {\r\n format,\r\n parseISO,\r\n isValid,\r\n formatISO,\r\n parse,\r\n startOfDay,\r\n endOfDay,\r\n addDays,\r\n subDays,\r\n isBefore,\r\n isAfter,\r\n differenceInDays,\r\n Locale\r\n} from 'date-fns';\r\n\r\nexport interface FormatDateOptions {\r\n format?: 'iso' | 'short' | 'medium' | 'long' | 'full' | 'custom' | 'time' | 'datetime';\r\n separator?: string;\r\n locale?: Locale;\r\n timeFormat?: '12h' | '24h';\r\n includeTime?: boolean;\r\n customFormat?: string;\r\n}\r\n\r\nexport class DateHelper {\r\n private static readonly MONTH_NAMES_SHORT = [\r\n 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',\r\n 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'\r\n ];\r\n\r\n private static readonly MONTH_NAMES_FULL = [\r\n 'January', 'February', 'March', 'April', 'May', 'June',\r\n 'July', 'August', 'September', 'October', 'November', 'December'\r\n ];\r\n\r\n /**\r\n * Formats a date according to specified options with timezone safety\r\n * @param input Date input (string, number, or Date object)\r\n * @param options Formatting options\r\n * @returns Formatted date string\r\n */\r\n static formatDate(\r\n input: string | number | Date,\r\n options: FormatDateOptions = {}\r\n ): string {\r\n const {\r\n format: formatType = 'short',\r\n separator = '-',\r\n locale,\r\n timeFormat = '24h',\r\n includeTime = false,\r\n customFormat\r\n } = options;\r\n\r\n let dateObj: Date;\r\n\r\n if (typeof input === 'string') {\r\n dateObj = parseISO(input);\r\n if (!isValid(dateObj)) {\r\n dateObj = new Date(input);\r\n }\r\n } else {\r\n dateObj = new Date(input);\r\n }\r\n\r\n if (!isValid(dateObj)) return '';\r\n\r\n if (customFormat) {\r\n return format(dateObj, customFormat, { locale });\r\n }\r\n\r\n switch (formatType) {\r\n case 'iso':\r\n return formatISO(dateObj, { representation: 'date' });\r\n\r\n case 'short':\r\n return format(dateObj, `dd${separator}MM${separator}yyyy`, { locale });\r\n\r\n case 'medium':\r\n return format(dateObj, `dd${separator}MMM${separator}yyyy`, { locale });\r\n\r\n case 'long':\r\n return format(dateObj, `dd${separator}MMMM${separator}yyyy`, { locale });\r\n\r\n case 'full':\r\n return format(dateObj, 'EEEE, MMMM dd, yyyy', { locale });\r\n\r\n case 'time':\r\n return format(\r\n dateObj,\r\n timeFormat === '12h' ? 'hh:mm a' : 'HH:mm',\r\n { locale }\r\n );\r\n\r\n case 'datetime':\r\n const datePart = this.formatDate(input, { format: 'short', separator, locale });\r\n const timePart = this.formatDate(input, { format: 'time', timeFormat, locale });\r\n return `${datePart} ${timePart}`;\r\n\r\n default:\r\n return format(dateObj, `dd${separator}MM${separator}yyyy`, { locale });\r\n }\r\n }\r\n\r\n /**\r\n * Converts date to local ISO string (timezone safe)\r\n */\r\n static toLocalISOString(date: Date | string): string {\r\n const d = typeof date === 'string' ? parseISO(date) : new Date(date);\r\n if (!isValid(d)) return '';\r\n\r\n return formatISO(d, { representation: 'date' });\r\n }\r\n\r\n /**\r\n * Parses a date string with format validation\r\n */\r\n static parseDate(dateString: string, formatString?: string): Date | null {\r\n if (formatString) {\r\n const parsed = parse(dateString, formatString, new Date());\r\n return isValid(parsed) ? parsed : null;\r\n }\r\n\r\n const parsed = parseISO(dateString);\r\n return isValid(parsed) ? parsed : null;\r\n }\r\n\r\n /**\r\n * Gets start of day (timezone safe)\r\n */\r\n static startOfDay(date: Date | string): Date {\r\n const d = typeof date === 'string' ? parseISO(date) : new Date(date);\r\n return startOfDay(d);\r\n }\r\n\r\n /**\r\n * Gets end of day (timezone safe)\r\n */\r\n static endOfDay(date: Date | string): Date {\r\n const d = typeof date === 'string' ? parseISO(date) : new Date(date);\r\n return endOfDay(d);\r\n }\r\n\r\n /**\r\n * Adds days to a date\r\n */\r\n static addDays(date: Date | string, days: number): Date {\r\n const d = typeof date === 'string' ? parseISO(date) : new Date(date);\r\n return addDays(d, days);\r\n }\r\n\r\n /**\r\n * Subtracts days from a date\r\n */\r\n static subtractDays(date: Date | string, days: number): Date {\r\n const d = typeof date === 'string' ? parseISO(date) : new Date(date);\r\n return subDays(d, days);\r\n }\r\n\r\n /**\r\n * Compares two dates\r\n */\r\n static compareDates(date1: Date | string, date2: Date | string): number {\r\n const d1 = typeof date1 === 'string' ? parseISO(date1) : new Date(date1);\r\n const d2 = typeof date2 === 'string' ? parseISO(date2) : new Date(date2);\r\n\r\n if (isBefore(d1, d2)) return -1;\r\n if (isAfter(d1, d2)) return 1;\r\n return 0;\r\n }\r\n\r\n /**\r\n * Checks if date is valid\r\n */\r\n static isValidDate(date: any): boolean {\r\n if (!date) return false;\r\n const d = typeof date === 'string' ? parseISO(date) : new Date(date);\r\n return isValid(d);\r\n }\r\n\r\n /**\r\n * Gets difference between two dates in days\r\n */\r\n static differenceInDays(date1: Date | string, date2: Date | string): number {\r\n const d1 = typeof date1 === 'string' ? parseISO(date1) : new Date(date1);\r\n const d2 = typeof date2 === 'string' ? parseISO(date2) : new Date(date2);\r\n return differenceInDays(d1, d2);\r\n }\r\n\r\n /**\r\n * Gets current date in local ISO format\r\n */\r\n static getTodayISO(): string {\r\n return this.toLocalISOString(new Date());\r\n }\r\n}"],"mappings":"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","names":["format","parseISO","isValid","formatISO","parse","startOfDay","endOfDay","addDays","subDays","isBefore","isAfter","differenceInDays","DateHelper","input","options","formatType","separator","locale","timeFormat","includeTime","customFormat","dateObj","datePart","timePart","date","d","dateString","formatString","parsed","days","date1","date2","d1","d2"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client"
|
|
2
|
-
"use strict";var
|
|
2
|
+
"use strict";var H=Object.create;var C=Object.defineProperty;var W=Object.getOwnPropertyDescriptor;var X=Object.getOwnPropertyNames;var G=Object.getPrototypeOf,J=Object.prototype.hasOwnProperty;var K=(t,a)=>{for(var o in a)C(t,o,{get:a[o],enumerable:!0})},R=(t,a,o,n)=>{if(a&&typeof a=="object"||typeof a=="function")for(let i of X(a))!J.call(t,i)&&i!==o&&C(t,i,{get:()=>a[i],enumerable:!(n=W(a,i))||n.enumerable});return t};var Q=(t,a,o)=>(o=t!=null?H(G(t)):{},R(a||!t||!t.__esModule?C(o,"default",{value:t,enumerable:!0}):o,t)),U=t=>R(C({},"__esModule",{value:!0}),t);var E={};K(E,{DateFilter:()=>Z});module.exports=U(E);var y=require("react"),F=require("lucide-react"),b=require("date-fns");var x=require("radix-ui");var D=require("clsx"),M=require("tailwind-merge");function e(...t){return(0,M.twMerge)((0,D.clsx)(t))}var w=require("react/jsx-runtime");function B({...t}){return(0,w.jsx)(x.Popover.Root,{"data-slot":"popover",...t})}function V({...t}){return(0,w.jsx)(x.Popover.Trigger,{"data-slot":"popover-trigger",...t})}function S({className:t,align:a="center",sideOffset:o=4,...n}){return(0,w.jsx)(x.Popover.Portal,{children:(0,w.jsx)(x.Popover.Content,{"data-slot":"popover-content",align:a,sideOffset:o,className:e("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-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 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",t),...n})})}var T=require("radix-ui"),O=require("class-variance-authority");var A=require("react/jsx-runtime"),_=(0,O.cva)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",{variants:{variant:{default:"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",destructive:"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9"}},defaultVariants:{variant:"default",size:"default"}});function g({className:t,variant:a,size:o,asChild:n=!1,...i}){let u=n?T.Slot.Slot:"button";return(0,A.jsx)(u,{"data-slot":"button",className:e(_({variant:a,size:o,className:t}),"transition-none"),...i})}var k=Q(require("react"),1),v=require("lucide-react"),P=require("react-day-picker");var p=require("react/jsx-runtime");function I({className:t,classNames:a,showOutsideDays:o=!0,captionLayout:n="label",buttonVariant:i="ghost",formatters:u,components:f,...z}){let r=(0,P.getDefaultClassNames)();return(0,p.jsx)(P.DayPicker,{showOutsideDays:o,className:e("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`,t),captionLayout:n,formatters:{formatMonthDropdown:s=>s.toLocaleString("default",{month:"short"}),...u},classNames:{root:e("w-fit",r.root),months:e("flex gap-4 flex-col md:flex-row relative",r.months),month:e("flex flex-col w-full gap-4",r.month),nav:e("flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between",r.nav),button_previous:e(_({variant:i}),"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none",r.button_previous),button_next:e(_({variant:i}),"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none",r.button_next),month_caption:e("flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)",r.month_caption),dropdowns:e("w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5",r.dropdowns),dropdown_root:e("relative has-focus:border-ring border border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] rounded-md",r.dropdown_root),dropdown:e("absolute bg-popover inset-0 opacity-0",r.dropdown),caption_label:e("select-none font-medium",n==="label"?"text-sm":"rounded-md pl-2 pr-1 flex items-center gap-1 text-sm h-8 [&>svg]:text-muted-foreground [&>svg]:size-3.5",r.caption_label),table:"w-full border-collapse",weekdays:e("flex",r.weekdays),weekday:e("text-muted-foreground rounded-md flex-1 font-normal text-[0.8rem] select-none",r.weekday),week:e("flex w-full mt-2",r.week),week_number_header:e("select-none w-(--cell-size)",r.week_number_header),week_number:e("text-[0.8rem] select-none text-muted-foreground",r.week_number),day:e("relative w-full h-full p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md group/day aspect-square select-none",r.day),range_start:e("rounded-l-md bg-accent",r.range_start),range_middle:e("rounded-none",r.range_middle),range_end:e("rounded-r-md bg-accent",r.range_end),today:e("bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none",r.today),outside:e("text-muted-foreground aria-selected:text-muted-foreground",r.outside),disabled:e("text-muted-foreground opacity-50",r.disabled),hidden:e("invisible",r.hidden),...a},components:{Root:({className:s,rootRef:c,...m})=>(0,p.jsx)("div",{"data-slot":"calendar",ref:c,className:e(s),...m}),Chevron:({className:s,orientation:c,...m})=>c==="left"?(0,p.jsx)(v.ChevronLeftIcon,{className:e("size-4",s),...m}):c==="right"?(0,p.jsx)(v.ChevronRightIcon,{className:e("size-4",s),...m}):(0,p.jsx)(v.ChevronDownIcon,{className:e("size-4",s),...m}),DayButton:Y,WeekNumber:({children:s,...c})=>(0,p.jsx)("td",{...c,children:(0,p.jsx)("div",{className:"flex size-(--cell-size) items-center justify-center text-center",children:s})}),...f},...z})}function Y({className:t,day:a,modifiers:o,...n}){let i=(0,P.getDefaultClassNames)(),u=k.useRef(null);return k.useEffect(()=>{o.focused&&u.current?.focus()},[o.focused]),(0,p.jsx)(g,{ref:u,variant:"ghost",size:"icon","data-day":a.date.toLocaleDateString(),"data-selected-single":o.selected&&!o.range_start&&!o.range_end&&!o.range_middle,"data-range-start":o.range_start,"data-range-end":o.range_end,"data-range-middle":o.range_middle,className:e("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",i.day,t),...n})}var l=require("react/jsx-runtime");function Z({value:t,onChange:a,placeholder:o,mode:n,externalSearch:i,onExternalChange:u,onlyExternal:f=!1}){let[z,r]=(0,y.useState)(!1),[s,c]=(0,y.useState)(t),[m,h]=(0,y.useState)(t);(0,y.useEffect)(()=>{f||h(t)},[t,f]);let L=()=>{f||a(s),h(s),i&&u&&u(s),r(!1)},$=()=>{c(m),r(!1)},j=()=>{let d=n==="single"?null:{from:null,to:null};c(d),f||a(d),h(d),i&&u&&u(d),r(!1)},N=()=>{let d=f?m:t;return d?n==="single"?(0,b.format)(d,"PPP"):d.from&&d.to?`${(0,b.format)(d.from,"MMM dd")} - ${(0,b.format)(d.to,"MMM dd, yyyy")}`:d.from?`From ${(0,b.format)(d.from,"MMM dd, yyyy")}`:d.to?`To ${(0,b.format)(d.to,"MMM dd, yyyy")}`:o:o},q=d=>{c(n==="single"?d:d||{from:null,to:null})};return(0,l.jsxs)(B,{open:z,onOpenChange:r,children:[(0,l.jsx)(V,{asChild:!0,children:(0,l.jsxs)(g,{variant:"outline",className:e("w-full justify-start text-left font-normal h-9",!N()&&"text-muted-foreground"),children:[(0,l.jsx)(F.Calendar,{className:"mr-2 h-4 w-4"}),N()]})}),(0,l.jsxs)(S,{className:"w-auto p-0",align:"start",children:[(0,l.jsx)("div",{className:"p-3",children:(0,l.jsx)(I,{mode:n,selected:s,onSelect:q,numberOfMonths:n==="range"?2:1,className:"rounded-md border",...n==="range"&&{required:!0}})}),(0,l.jsxs)("div",{className:"flex items-center justify-between p-3 border-t",children:[(0,l.jsx)(g,{variant:"ghost",size:"sm",onClick:j,children:"Clear"}),(0,l.jsxs)("div",{className:"flex gap-2",children:[(0,l.jsx)(g,{variant:"outline",size:"sm",onClick:$,children:"Cancel"}),(0,l.jsx)(g,{size:"sm",onClick:L,disabled:n==="range"&&(!s?.from||!s?.to),children:"Apply"})]})]})]})]})}0&&(module.exports={DateFilter});
|
|
3
3
|
//# sourceMappingURL=date-filter.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/helper/date-filter.tsx","../../../src/components/ui/popover.tsx","../../../src/lib/utils.ts","../../../src/components/ui/button.tsx","../../../src/components/ui/calendar.tsx"],"sourcesContent":["import { useState } from \"react\";\r\nimport { Calendar as CalendarIcon, Check, X } from \"lucide-react\";\r\nimport { format } from \"date-fns\";\r\nimport { Popover, PopoverContent, PopoverTrigger } from \"../ui/popover\";\r\nimport { Button } from \"../ui/button\";\r\nimport { cn } from \"../../lib/utils\";\r\nimport { Calendar } from \"../ui/calendar\";\r\n\r\ninterface DateFilterProps {\r\n value: any;\r\n onChange: (value: any) => void;\r\n placeholder: string;\r\n mode: \"single\" | \"range\";\r\n externalSearch?: boolean;\r\n onExternalChange?: (value: any) => void;\r\n}\r\n\r\nexport function DateFilter({\r\n value,\r\n onChange,\r\n placeholder,\r\n mode,\r\n externalSearch,\r\n onExternalChange,\r\n}: DateFilterProps) {\r\n const [isOpen, setIsOpen] = useState(false);\r\n const [tempValue, setTempValue] = useState(value);\r\n\r\n const handleApply = () => {\r\n onChange(tempValue);\r\n if (externalSearch && onExternalChange) {\r\n onExternalChange(tempValue);\r\n }\r\n setIsOpen(false);\r\n };\r\n\r\n const handleCancel = () => {\r\n setTempValue(value);\r\n setIsOpen(false);\r\n };\r\n\r\n const handleClear = () => {\r\n const newValue = mode === \"single\" ? null : { from: null, to: null };\r\n setTempValue(newValue);\r\n onChange(newValue);\r\n if (externalSearch && onExternalChange) {\r\n onExternalChange(newValue);\r\n }\r\n setIsOpen(false);\r\n };\r\n\r\n const displayText = () => {\r\n if (!value) return placeholder;\r\n\r\n if (mode === \"single\") {\r\n return format(value, \"PPP\");\r\n }\r\n\r\n if (value.from && value.to) {\r\n return `${format(value.from, \"MMM dd\")} - ${format(value.to, \"MMM dd, yyyy\")}`;\r\n }\r\n\r\n if (value.from) {\r\n return `From ${format(value.from, \"MMM dd, yyyy\")}`;\r\n }\r\n\r\n if (value.to) {\r\n return `To ${format(value.to, \"MMM dd, yyyy\")}`;\r\n }\r\n\r\n return placeholder;\r\n };\r\n\r\n // Handle calendar selection based on mode\r\n const handleCalendarSelect = (selectedValue: any) => {\r\n if (mode === \"single\") {\r\n setTempValue(selectedValue);\r\n } else {\r\n // For range mode, ensure we have proper structure\r\n setTempValue(selectedValue || { from: null, to: null });\r\n }\r\n };\r\n\r\n return (\r\n <Popover open={isOpen} onOpenChange={setIsOpen}>\r\n <PopoverTrigger asChild>\r\n <Button\r\n variant=\"outline\"\r\n className={cn(\r\n \"w-full justify-start text-left font-normal h-9\",\r\n !value && \"text-muted-foreground\"\r\n )}\r\n >\r\n <CalendarIcon className=\"mr-2 h-4 w-4\" />\r\n {displayText()}\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\r\n <div className=\"p-3\">\r\n <Calendar\r\n mode={mode}\r\n selected={tempValue}\r\n onSelect={handleCalendarSelect}\r\n numberOfMonths={mode === \"range\" ? 2 : 1}\r\n className=\"rounded-md border\"\r\n {...(mode === \"range\" && { required: true })}\r\n />\r\n </div>\r\n <div className=\"flex items-center justify-between p-3 border-t\">\r\n <Button variant=\"ghost\" size=\"sm\" onClick={handleClear}>\r\n Clear\r\n </Button>\r\n <div className=\"flex gap-2\">\r\n <Button variant=\"outline\" size=\"sm\" onClick={handleCancel}>\r\n Cancel\r\n </Button>\r\n <Button\r\n size=\"sm\"\r\n onClick={handleApply}\r\n disabled={mode === \"range\" && (!tempValue?.from || !tempValue?.to)}\r\n >\r\n Apply\r\n </Button>\r\n </div>\r\n </div>\r\n </PopoverContent>\r\n </Popover>\r\n );\r\n}","import * as React from \"react\"\nimport { Popover as PopoverPrimitive } from \"radix-ui\"\n\nimport { cn } from \"../../lib/utils.js\"\n\nfunction Popover({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Root>) {\n return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />\n}\n\nfunction PopoverTrigger({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />\n}\n\nfunction PopoverContent({\n className,\n align = \"center\",\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Content>) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n data-slot=\"popover-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-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 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden\",\n className\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n )\n}\n\nfunction PopoverAnchor({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {\n return <PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />\n}\n\nexport { Popover, PopoverTrigger, PopoverContent, PopoverAnchor }\n","import { clsx, type ClassValue } from \"clsx\";\r\nimport { twMerge } from \"tailwind-merge\";\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs));\r\n}","import * as React from \"react\"\nimport { Slot as SlotPrimitive } from \"radix-ui\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../../lib/utils.js\"\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n {\n variants: {\n variant: {\n default:\n \"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60\",\n outline:\n \"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50\",\n secondary:\n \"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80\",\n ghost:\n \"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-9 px-4 py-2 has-[>svg]:px-3\",\n sm: \"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5\",\n lg: \"h-10 rounded-md px-6 has-[>svg]:px-4\",\n icon: \"size-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean\n }) {\n const Comp = asChild ? SlotPrimitive.Slot : \"button\"\n\n return (\n <Comp\n data-slot=\"button\"\n className={cn(buttonVariants({ variant, size, className }), \"transition-none\")}\n {...props}\n />\n )\n}\n\nexport { Button, buttonVariants }\n","import * as React from \"react\"\nimport {\n ChevronDownIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n} from \"lucide-react\"\nimport { DayButton, DayPicker, getDefaultClassNames } from \"react-day-picker\"\n\nimport { cn } from \"../../lib/utils.js\"\nimport { Button, buttonVariants } from \"../ui/button.jsx\"\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = \"label\",\n buttonVariant = \"ghost\",\n formatters,\n components,\n ...props\n}: React.ComponentProps<typeof DayPicker> & {\n buttonVariant?: React.ComponentProps<typeof Button>[\"variant\"]\n}) {\n const defaultClassNames = getDefaultClassNames()\n\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn(\n \"bg-background group/calendar p-3 [--cell-size:--spacing(8)] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent\",\n String.raw`rtl:**:[.rdp-button\\_next>svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className\n )}\n captionLayout={captionLayout}\n formatters={{\n formatMonthDropdown: (date) =>\n date.toLocaleString(\"default\", { month: \"short\" }),\n ...formatters,\n }}\n classNames={{\n root: cn(\"w-fit\", defaultClassNames.root),\n months: cn(\n \"flex gap-4 flex-col md:flex-row relative\",\n defaultClassNames.months\n ),\n month: cn(\"flex flex-col w-full gap-4\", defaultClassNames.month),\n nav: cn(\n \"flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between\",\n defaultClassNames.nav\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_previous\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_next\n ),\n month_caption: cn(\n \"flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)\",\n defaultClassNames.month_caption\n ),\n dropdowns: cn(\n \"w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5\",\n defaultClassNames.dropdowns\n ),\n dropdown_root: cn(\n \"relative has-focus:border-ring border border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] rounded-md\",\n defaultClassNames.dropdown_root\n ),\n dropdown: cn(\n \"absolute bg-popover inset-0 opacity-0\",\n defaultClassNames.dropdown\n ),\n caption_label: cn(\n \"select-none font-medium\",\n captionLayout === \"label\"\n ? \"text-sm\"\n : \"rounded-md pl-2 pr-1 flex items-center gap-1 text-sm h-8 [&>svg]:text-muted-foreground [&>svg]:size-3.5\",\n defaultClassNames.caption_label\n ),\n table: \"w-full border-collapse\",\n weekdays: cn(\"flex\", defaultClassNames.weekdays),\n weekday: cn(\n \"text-muted-foreground rounded-md flex-1 font-normal text-[0.8rem] select-none\",\n defaultClassNames.weekday\n ),\n week: cn(\"flex w-full mt-2\", defaultClassNames.week),\n week_number_header: cn(\n \"select-none w-(--cell-size)\",\n defaultClassNames.week_number_header\n ),\n week_number: cn(\n \"text-[0.8rem] select-none text-muted-foreground\",\n defaultClassNames.week_number\n ),\n day: cn(\n \"relative w-full h-full p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md group/day aspect-square select-none\",\n defaultClassNames.day\n ),\n range_start: cn(\n \"rounded-l-md bg-accent\",\n defaultClassNames.range_start\n ),\n range_middle: cn(\"rounded-none\", defaultClassNames.range_middle),\n range_end: cn(\"rounded-r-md bg-accent\", defaultClassNames.range_end),\n today: cn(\n \"bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none\",\n defaultClassNames.today\n ),\n outside: cn(\n \"text-muted-foreground aria-selected:text-muted-foreground\",\n defaultClassNames.outside\n ),\n disabled: cn(\n \"text-muted-foreground opacity-50\",\n defaultClassNames.disabled\n ),\n hidden: cn(\"invisible\", defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return (\n <div\n data-slot=\"calendar\"\n ref={rootRef}\n className={cn(className)}\n {...props}\n />\n )\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === \"left\") {\n return (\n <ChevronLeftIcon className={cn(\"size-4\", className)} {...props} />\n )\n }\n\n if (orientation === \"right\") {\n return (\n <ChevronRightIcon\n className={cn(\"size-4\", className)}\n {...props}\n />\n )\n }\n\n return (\n <ChevronDownIcon className={cn(\"size-4\", className)} {...props} />\n )\n },\n DayButton: CalendarDayButton,\n WeekNumber: ({ children, ...props }) => {\n return (\n <td {...props}>\n <div className=\"flex size-(--cell-size) items-center justify-center text-center\">\n {children}\n </div>\n </td>\n )\n },\n ...components,\n }}\n {...props}\n />\n )\n}\n\nfunction CalendarDayButton({\n className,\n day,\n modifiers,\n ...props\n}: React.ComponentProps<typeof DayButton>) {\n const defaultClassNames = getDefaultClassNames()\n\n const ref = React.useRef<HTMLButtonElement>(null)\n React.useEffect(() => {\n if (modifiers.focused) ref.current?.focus()\n }, [modifiers.focused])\n\n return (\n <Button\n ref={ref}\n variant=\"ghost\"\n size=\"icon\"\n data-day={day.date.toLocaleDateString()}\n data-selected-single={\n modifiers.selected &&\n !modifiers.range_start &&\n !modifiers.range_end &&\n !modifiers.range_middle\n }\n data-range-start={modifiers.range_start}\n data-range-end={modifiers.range_end}\n data-range-middle={modifiers.range_middle}\n className={cn(\n \"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\",\n defaultClassNames.day,\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Calendar, CalendarDayButton }\n"],"mappings":"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","names":["date_filter_exports","__export","DateFilter","__toCommonJS","import_react","import_lucide_react","import_date_fns","import_radix_ui","import_clsx","import_tailwind_merge","cn","inputs","import_jsx_runtime","Popover","props","PopoverPrimitive","PopoverTrigger","PopoverContent","className","align","sideOffset","cn","import_radix_ui","import_class_variance_authority","import_jsx_runtime","buttonVariants","Button","className","variant","size","asChild","props","Comp","SlotPrimitive","cn","React","import_lucide_react","import_react_day_picker","import_jsx_runtime","Calendar","className","classNames","showOutsideDays","captionLayout","buttonVariant","formatters","components","props","defaultClassNames","cn","date","buttonVariants","rootRef","orientation","CalendarDayButton","children","day","modifiers","ref","Button","import_jsx_runtime","DateFilter","value","onChange","placeholder","mode","externalSearch","onExternalChange","isOpen","setIsOpen","tempValue","setTempValue","handleApply","handleCancel","handleClear","newValue","displayText","handleCalendarSelect","selectedValue","Popover","PopoverTrigger","Button","cn","CalendarIcon","PopoverContent","Calendar"]}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/helper/date-filter.tsx","../../../src/components/ui/popover.tsx","../../../src/lib/utils.ts","../../../src/components/ui/button.tsx","../../../src/components/ui/calendar.tsx"],"sourcesContent":["import { useEffect, useState } from \"react\";\r\nimport { Calendar as CalendarIcon, Check, X } from \"lucide-react\";\r\nimport { format } from \"date-fns\";\r\nimport { Popover, PopoverContent, PopoverTrigger } from \"../ui/popover.js\";\r\nimport { Button } from \"../ui/button.js\";\r\nimport { cn } from \"../../lib/utils.js\";\r\nimport { Calendar } from \"../ui/calendar.js\";\r\n\r\ntype DateFilterProps = {\r\n value: any;\r\n onChange: (value: any) => void;\r\n placeholder: string;\r\n mode: \"single\" | \"range\";\r\n externalSearch?: boolean;\r\n onExternalChange?: (value: any) => void;\r\n onlyExternal?: boolean;\r\n}\r\n\r\nexport function DateFilter({\r\n value,\r\n onChange,\r\n placeholder,\r\n mode,\r\n externalSearch,\r\n onExternalChange,\r\n onlyExternal = false,\r\n}: DateFilterProps) {\r\n const [isOpen, setIsOpen] = useState(false);\r\n const [tempValue, setTempValue] = useState(value);\r\n const [displayValue, setDisplayValue] = useState(value);\r\n\r\n useEffect(() => {\r\n if (!onlyExternal) {\r\n setDisplayValue(value);\r\n }\r\n }, [value, onlyExternal]);\r\n\r\n const handleApply = () => {\r\n if (!onlyExternal) {\r\n onChange(tempValue);\r\n setDisplayValue(tempValue);\r\n } else {\r\n // For onlyExternal, update the display value but don't call onChange\r\n setDisplayValue(tempValue);\r\n }\r\n\r\n if (externalSearch && onExternalChange) {\r\n onExternalChange(tempValue);\r\n }\r\n setIsOpen(false);\r\n };\r\n\r\n const handleCancel = () => {\r\n setTempValue(displayValue); // Use displayValue instead of value\r\n setIsOpen(false);\r\n };\r\n\r\n const handleClear = () => {\r\n const newValue = mode === \"single\" ? null : { from: null, to: null };\r\n setTempValue(newValue);\r\n\r\n if (!onlyExternal) {\r\n onChange(newValue);\r\n setDisplayValue(newValue);\r\n } else {\r\n // For onlyExternal, update the display value but don't call onChange\r\n setDisplayValue(newValue);\r\n }\r\n\r\n if (externalSearch && onExternalChange) {\r\n onExternalChange(newValue);\r\n }\r\n setIsOpen(false);\r\n };\r\n\r\n const displayText = () => {\r\n const valueToDisplay = onlyExternal ? displayValue : value;\r\n\r\n if (!valueToDisplay) return placeholder;\r\n\r\n if (mode === \"single\") {\r\n return format(valueToDisplay, \"PPP\");\r\n }\r\n\r\n if (valueToDisplay.from && valueToDisplay.to) {\r\n return `${format(valueToDisplay.from, \"MMM dd\")} - ${format(valueToDisplay.to, \"MMM dd, yyyy\")}`;\r\n }\r\n\r\n if (valueToDisplay.from) {\r\n return `From ${format(valueToDisplay.from, \"MMM dd, yyyy\")}`;\r\n }\r\n\r\n if (valueToDisplay.to) {\r\n return `To ${format(valueToDisplay.to, \"MMM dd, yyyy\")}`;\r\n }\r\n\r\n return placeholder;\r\n };\r\n\r\n const handleCalendarSelect = (selectedValue: any) => {\r\n if (mode === \"single\") {\r\n setTempValue(selectedValue);\r\n } else {\r\n setTempValue(selectedValue || { from: null, to: null });\r\n }\r\n };\r\n\r\n return (\r\n <Popover open={isOpen} onOpenChange={setIsOpen}>\r\n <PopoverTrigger asChild>\r\n <Button\r\n variant=\"outline\"\r\n className={cn(\r\n \"w-full justify-start text-left font-normal h-9\",\r\n !displayText() && \"text-muted-foreground\"\r\n )}\r\n >\r\n <CalendarIcon className=\"mr-2 h-4 w-4\" />\r\n {displayText()}\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\r\n <div className=\"p-3\">\r\n <Calendar\r\n mode={mode}\r\n selected={tempValue}\r\n onSelect={handleCalendarSelect}\r\n numberOfMonths={mode === \"range\" ? 2 : 1}\r\n className=\"rounded-md border\"\r\n {...(mode === \"range\" && { required: true })}\r\n />\r\n </div>\r\n <div className=\"flex items-center justify-between p-3 border-t\">\r\n <Button variant=\"ghost\" size=\"sm\" onClick={handleClear}>\r\n Clear\r\n </Button>\r\n <div className=\"flex gap-2\">\r\n <Button variant=\"outline\" size=\"sm\" onClick={handleCancel}>\r\n Cancel\r\n </Button>\r\n <Button\r\n size=\"sm\"\r\n onClick={handleApply}\r\n disabled={mode === \"range\" && (!tempValue?.from || !tempValue?.to)}\r\n >\r\n Apply\r\n </Button>\r\n </div>\r\n </div>\r\n </PopoverContent>\r\n </Popover>\r\n );\r\n}","import * as React from \"react\"\nimport { Popover as PopoverPrimitive } from \"radix-ui\"\n\nimport { cn } from \"../../lib/utils.js\"\n\nfunction Popover({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Root>) {\n return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />\n}\n\nfunction PopoverTrigger({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />\n}\n\nfunction PopoverContent({\n className,\n align = \"center\",\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Content>) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n data-slot=\"popover-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-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 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden\",\n className\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n )\n}\n\nfunction PopoverAnchor({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {\n return <PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />\n}\n\nexport { Popover, PopoverTrigger, PopoverContent, PopoverAnchor }\n","import { clsx, type ClassValue } from \"clsx\";\r\nimport { twMerge } from \"tailwind-merge\";\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs));\r\n}","import * as React from \"react\"\nimport { Slot as SlotPrimitive } from \"radix-ui\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../../lib/utils.js\"\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n {\n variants: {\n variant: {\n default:\n \"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60\",\n outline:\n \"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50\",\n secondary:\n \"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80\",\n ghost:\n \"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-9 px-4 py-2 has-[>svg]:px-3\",\n sm: \"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5\",\n lg: \"h-10 rounded-md px-6 has-[>svg]:px-4\",\n icon: \"size-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean\n }) {\n const Comp = asChild ? SlotPrimitive.Slot : \"button\"\n\n return (\n <Comp\n data-slot=\"button\"\n className={cn(buttonVariants({ variant, size, className }), \"transition-none\")}\n {...props}\n />\n )\n}\n\nexport { Button, buttonVariants }\n","import * as React from \"react\"\nimport {\n ChevronDownIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n} from \"lucide-react\"\nimport { DayButton, DayPicker, getDefaultClassNames } from \"react-day-picker\"\n\nimport { cn } from \"../../lib/utils.js\"\nimport { Button, buttonVariants } from \"../ui/button.jsx\"\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = \"label\",\n buttonVariant = \"ghost\",\n formatters,\n components,\n ...props\n}: React.ComponentProps<typeof DayPicker> & {\n buttonVariant?: React.ComponentProps<typeof Button>[\"variant\"]\n}) {\n const defaultClassNames = getDefaultClassNames()\n\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn(\n \"bg-background group/calendar p-3 [--cell-size:--spacing(8)] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent\",\n String.raw`rtl:**:[.rdp-button\\_next>svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className\n )}\n captionLayout={captionLayout}\n formatters={{\n formatMonthDropdown: (date) =>\n date.toLocaleString(\"default\", { month: \"short\" }),\n ...formatters,\n }}\n classNames={{\n root: cn(\"w-fit\", defaultClassNames.root),\n months: cn(\n \"flex gap-4 flex-col md:flex-row relative\",\n defaultClassNames.months\n ),\n month: cn(\"flex flex-col w-full gap-4\", defaultClassNames.month),\n nav: cn(\n \"flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between\",\n defaultClassNames.nav\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_previous\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_next\n ),\n month_caption: cn(\n \"flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)\",\n defaultClassNames.month_caption\n ),\n dropdowns: cn(\n \"w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5\",\n defaultClassNames.dropdowns\n ),\n dropdown_root: cn(\n \"relative has-focus:border-ring border border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] rounded-md\",\n defaultClassNames.dropdown_root\n ),\n dropdown: cn(\n \"absolute bg-popover inset-0 opacity-0\",\n defaultClassNames.dropdown\n ),\n caption_label: cn(\n \"select-none font-medium\",\n captionLayout === \"label\"\n ? \"text-sm\"\n : \"rounded-md pl-2 pr-1 flex items-center gap-1 text-sm h-8 [&>svg]:text-muted-foreground [&>svg]:size-3.5\",\n defaultClassNames.caption_label\n ),\n table: \"w-full border-collapse\",\n weekdays: cn(\"flex\", defaultClassNames.weekdays),\n weekday: cn(\n \"text-muted-foreground rounded-md flex-1 font-normal text-[0.8rem] select-none\",\n defaultClassNames.weekday\n ),\n week: cn(\"flex w-full mt-2\", defaultClassNames.week),\n week_number_header: cn(\n \"select-none w-(--cell-size)\",\n defaultClassNames.week_number_header\n ),\n week_number: cn(\n \"text-[0.8rem] select-none text-muted-foreground\",\n defaultClassNames.week_number\n ),\n day: cn(\n \"relative w-full h-full p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md group/day aspect-square select-none\",\n defaultClassNames.day\n ),\n range_start: cn(\n \"rounded-l-md bg-accent\",\n defaultClassNames.range_start\n ),\n range_middle: cn(\"rounded-none\", defaultClassNames.range_middle),\n range_end: cn(\"rounded-r-md bg-accent\", defaultClassNames.range_end),\n today: cn(\n \"bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none\",\n defaultClassNames.today\n ),\n outside: cn(\n \"text-muted-foreground aria-selected:text-muted-foreground\",\n defaultClassNames.outside\n ),\n disabled: cn(\n \"text-muted-foreground opacity-50\",\n defaultClassNames.disabled\n ),\n hidden: cn(\"invisible\", defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return (\n <div\n data-slot=\"calendar\"\n ref={rootRef}\n className={cn(className)}\n {...props}\n />\n )\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === \"left\") {\n return (\n <ChevronLeftIcon className={cn(\"size-4\", className)} {...props} />\n )\n }\n\n if (orientation === \"right\") {\n return (\n <ChevronRightIcon\n className={cn(\"size-4\", className)}\n {...props}\n />\n )\n }\n\n return (\n <ChevronDownIcon className={cn(\"size-4\", className)} {...props} />\n )\n },\n DayButton: CalendarDayButton,\n WeekNumber: ({ children, ...props }) => {\n return (\n <td {...props}>\n <div className=\"flex size-(--cell-size) items-center justify-center text-center\">\n {children}\n </div>\n </td>\n )\n },\n ...components,\n }}\n {...props}\n />\n )\n}\n\nfunction CalendarDayButton({\n className,\n day,\n modifiers,\n ...props\n}: React.ComponentProps<typeof DayButton>) {\n const defaultClassNames = getDefaultClassNames()\n\n const ref = React.useRef<HTMLButtonElement>(null)\n React.useEffect(() => {\n if (modifiers.focused) ref.current?.focus()\n }, [modifiers.focused])\n\n return (\n <Button\n ref={ref}\n variant=\"ghost\"\n size=\"icon\"\n data-day={day.date.toLocaleDateString()}\n data-selected-single={\n modifiers.selected &&\n !modifiers.range_start &&\n !modifiers.range_end &&\n !modifiers.range_middle\n }\n data-range-start={modifiers.range_start}\n data-range-end={modifiers.range_end}\n data-range-middle={modifiers.range_middle}\n className={cn(\n \"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\",\n defaultClassNames.day,\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Calendar, CalendarDayButton }\n"],"mappings":"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","names":["date_filter_exports","__export","DateFilter","__toCommonJS","import_react","import_lucide_react","import_date_fns","import_radix_ui","import_clsx","import_tailwind_merge","cn","inputs","import_jsx_runtime","Popover","props","PopoverPrimitive","PopoverTrigger","PopoverContent","className","align","sideOffset","cn","import_radix_ui","import_class_variance_authority","import_jsx_runtime","buttonVariants","Button","className","variant","size","asChild","props","Comp","SlotPrimitive","cn","React","import_lucide_react","import_react_day_picker","import_jsx_runtime","Calendar","className","classNames","showOutsideDays","captionLayout","buttonVariant","formatters","components","props","defaultClassNames","cn","date","buttonVariants","rootRef","orientation","CalendarDayButton","children","day","modifiers","ref","Button","import_jsx_runtime","DateFilter","value","onChange","placeholder","mode","externalSearch","onExternalChange","onlyExternal","isOpen","setIsOpen","tempValue","setTempValue","displayValue","setDisplayValue","handleApply","handleCancel","handleClear","newValue","displayText","valueToDisplay","handleCalendarSelect","selectedValue","Popover","PopoverTrigger","Button","cn","CalendarIcon","PopoverContent","Calendar"]}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
type DateFilterProps = {
|
|
4
4
|
value: any;
|
|
5
5
|
onChange: (value: any) => void;
|
|
6
6
|
placeholder: string;
|
|
7
7
|
mode: "single" | "range";
|
|
8
8
|
externalSearch?: boolean;
|
|
9
9
|
onExternalChange?: (value: any) => void;
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
onlyExternal?: boolean;
|
|
11
|
+
};
|
|
12
|
+
declare function DateFilter({ value, onChange, placeholder, mode, externalSearch, onExternalChange, onlyExternal, }: DateFilterProps): react_jsx_runtime.JSX.Element;
|
|
12
13
|
|
|
13
14
|
export { DateFilter };
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
type DateFilterProps = {
|
|
4
4
|
value: any;
|
|
5
5
|
onChange: (value: any) => void;
|
|
6
6
|
placeholder: string;
|
|
7
7
|
mode: "single" | "range";
|
|
8
8
|
externalSearch?: boolean;
|
|
9
9
|
onExternalChange?: (value: any) => void;
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
onlyExternal?: boolean;
|
|
11
|
+
};
|
|
12
|
+
declare function DateFilter({ value, onChange, placeholder, mode, externalSearch, onExternalChange, onlyExternal, }: DateFilterProps): react_jsx_runtime.JSX.Element;
|
|
12
13
|
|
|
13
14
|
export { DateFilter };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client"
|
|
2
|
-
import{useState as
|
|
2
|
+
import{useEffect as X,useState as _}from"react";import{Calendar as G}from"lucide-react";import{format as b}from"date-fns";import{Popover as h}from"radix-ui";import{clsx as O}from"clsx";import{twMerge as A}from"tailwind-merge";function e(...r){return A(O(r))}import{jsx as x}from"react/jsx-runtime";function z({...r}){return x(h.Root,{"data-slot":"popover",...r})}function N({...r}){return x(h.Trigger,{"data-slot":"popover-trigger",...r})}function R({className:r,align:l="center",sideOffset:a=4,...d}){return x(h.Portal,{children:x(h.Content,{"data-slot":"popover-content",align:l,sideOffset:a,className:e("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-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 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",r),...d})})}import{Slot as I}from"radix-ui";import{cva as F}from"class-variance-authority";import{jsx as L}from"react/jsx-runtime";var w=F("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",{variants:{variant:{default:"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",destructive:"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9"}},defaultVariants:{variant:"default",size:"default"}});function f({className:r,variant:l,size:a,asChild:d=!1,...u}){let s=d?I.Slot:"button";return L(s,{"data-slot":"button",className:e(w({variant:l,size:a,className:r}),"transition-none"),...u})}import*as P from"react";import{ChevronDownIcon as $,ChevronLeftIcon as j,ChevronRightIcon as q}from"lucide-react";import{DayPicker as H,getDefaultClassNames as D}from"react-day-picker";import{jsx as p}from"react/jsx-runtime";function M({className:r,classNames:l,showOutsideDays:a=!0,captionLayout:d="label",buttonVariant:u="ghost",formatters:s,components:m,...C}){let t=D();return p(H,{showOutsideDays:a,className:e("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`,r),captionLayout:d,formatters:{formatMonthDropdown:n=>n.toLocaleString("default",{month:"short"}),...s},classNames:{root:e("w-fit",t.root),months:e("flex gap-4 flex-col md:flex-row relative",t.months),month:e("flex flex-col w-full gap-4",t.month),nav:e("flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between",t.nav),button_previous:e(w({variant:u}),"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none",t.button_previous),button_next:e(w({variant:u}),"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none",t.button_next),month_caption:e("flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)",t.month_caption),dropdowns:e("w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5",t.dropdowns),dropdown_root:e("relative has-focus:border-ring border border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] rounded-md",t.dropdown_root),dropdown:e("absolute bg-popover inset-0 opacity-0",t.dropdown),caption_label:e("select-none font-medium",d==="label"?"text-sm":"rounded-md pl-2 pr-1 flex items-center gap-1 text-sm h-8 [&>svg]:text-muted-foreground [&>svg]:size-3.5",t.caption_label),table:"w-full border-collapse",weekdays:e("flex",t.weekdays),weekday:e("text-muted-foreground rounded-md flex-1 font-normal text-[0.8rem] select-none",t.weekday),week:e("flex w-full mt-2",t.week),week_number_header:e("select-none w-(--cell-size)",t.week_number_header),week_number:e("text-[0.8rem] select-none text-muted-foreground",t.week_number),day:e("relative w-full h-full p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md group/day aspect-square select-none",t.day),range_start:e("rounded-l-md bg-accent",t.range_start),range_middle:e("rounded-none",t.range_middle),range_end:e("rounded-r-md bg-accent",t.range_end),today:e("bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none",t.today),outside:e("text-muted-foreground aria-selected:text-muted-foreground",t.outside),disabled:e("text-muted-foreground opacity-50",t.disabled),hidden:e("invisible",t.hidden),...l},components:{Root:({className:n,rootRef:i,...c})=>p("div",{"data-slot":"calendar",ref:i,className:e(n),...c}),Chevron:({className:n,orientation:i,...c})=>i==="left"?p(j,{className:e("size-4",n),...c}):i==="right"?p(q,{className:e("size-4",n),...c}):p($,{className:e("size-4",n),...c}),DayButton:W,WeekNumber:({children:n,...i})=>p("td",{...i,children:p("div",{className:"flex size-(--cell-size) items-center justify-center text-center",children:n})}),...m},...C})}function W({className:r,day:l,modifiers:a,...d}){let u=D(),s=P.useRef(null);return P.useEffect(()=>{a.focused&&s.current?.focus()},[a.focused]),p(f,{ref:s,variant:"ghost",size:"icon","data-day":l.date.toLocaleDateString(),"data-selected-single":a.selected&&!a.range_start&&!a.range_end&&!a.range_middle,"data-range-start":a.range_start,"data-range-end":a.range_end,"data-range-middle":a.range_middle,className:e("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",u.day,r),...d})}import{jsx as g,jsxs as y}from"react/jsx-runtime";function we({value:r,onChange:l,placeholder:a,mode:d,externalSearch:u,onExternalChange:s,onlyExternal:m=!1}){let[C,t]=_(!1),[n,i]=_(r),[c,v]=_(r);X(()=>{m||v(r)},[r,m]);let B=()=>{m||l(n),v(n),u&&s&&s(n),t(!1)},V=()=>{i(c),t(!1)},S=()=>{let o=d==="single"?null:{from:null,to:null};i(o),m||l(o),v(o),u&&s&&s(o),t(!1)},k=()=>{let o=m?c:r;return o?d==="single"?b(o,"PPP"):o.from&&o.to?`${b(o.from,"MMM dd")} - ${b(o.to,"MMM dd, yyyy")}`:o.from?`From ${b(o.from,"MMM dd, yyyy")}`:o.to?`To ${b(o.to,"MMM dd, yyyy")}`:a:a},T=o=>{i(d==="single"?o:o||{from:null,to:null})};return y(z,{open:C,onOpenChange:t,children:[g(N,{asChild:!0,children:y(f,{variant:"outline",className:e("w-full justify-start text-left font-normal h-9",!k()&&"text-muted-foreground"),children:[g(G,{className:"mr-2 h-4 w-4"}),k()]})}),y(R,{className:"w-auto p-0",align:"start",children:[g("div",{className:"p-3",children:g(M,{mode:d,selected:n,onSelect:T,numberOfMonths:d==="range"?2:1,className:"rounded-md border",...d==="range"&&{required:!0}})}),y("div",{className:"flex items-center justify-between p-3 border-t",children:[g(f,{variant:"ghost",size:"sm",onClick:S,children:"Clear"}),y("div",{className:"flex gap-2",children:[g(f,{variant:"outline",size:"sm",onClick:V,children:"Cancel"}),g(f,{size:"sm",onClick:B,disabled:d==="range"&&(!n?.from||!n?.to),children:"Apply"})]})]})]})]})}export{we as DateFilter};
|
|
3
3
|
//# sourceMappingURL=date-filter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/helper/date-filter.tsx","../../../src/components/ui/popover.tsx","../../../src/lib/utils.ts","../../../src/components/ui/button.tsx","../../../src/components/ui/calendar.tsx"],"sourcesContent":["import { useState } from \"react\";\r\nimport { Calendar as CalendarIcon, Check, X } from \"lucide-react\";\r\nimport { format } from \"date-fns\";\r\nimport { Popover, PopoverContent, PopoverTrigger } from \"../ui/popover\";\r\nimport { Button } from \"../ui/button\";\r\nimport { cn } from \"../../lib/utils\";\r\nimport { Calendar } from \"../ui/calendar\";\r\n\r\ninterface DateFilterProps {\r\n value: any;\r\n onChange: (value: any) => void;\r\n placeholder: string;\r\n mode: \"single\" | \"range\";\r\n externalSearch?: boolean;\r\n onExternalChange?: (value: any) => void;\r\n}\r\n\r\nexport function DateFilter({\r\n value,\r\n onChange,\r\n placeholder,\r\n mode,\r\n externalSearch,\r\n onExternalChange,\r\n}: DateFilterProps) {\r\n const [isOpen, setIsOpen] = useState(false);\r\n const [tempValue, setTempValue] = useState(value);\r\n\r\n const handleApply = () => {\r\n onChange(tempValue);\r\n if (externalSearch && onExternalChange) {\r\n onExternalChange(tempValue);\r\n }\r\n setIsOpen(false);\r\n };\r\n\r\n const handleCancel = () => {\r\n setTempValue(value);\r\n setIsOpen(false);\r\n };\r\n\r\n const handleClear = () => {\r\n const newValue = mode === \"single\" ? null : { from: null, to: null };\r\n setTempValue(newValue);\r\n onChange(newValue);\r\n if (externalSearch && onExternalChange) {\r\n onExternalChange(newValue);\r\n }\r\n setIsOpen(false);\r\n };\r\n\r\n const displayText = () => {\r\n if (!value) return placeholder;\r\n\r\n if (mode === \"single\") {\r\n return format(value, \"PPP\");\r\n }\r\n\r\n if (value.from && value.to) {\r\n return `${format(value.from, \"MMM dd\")} - ${format(value.to, \"MMM dd, yyyy\")}`;\r\n }\r\n\r\n if (value.from) {\r\n return `From ${format(value.from, \"MMM dd, yyyy\")}`;\r\n }\r\n\r\n if (value.to) {\r\n return `To ${format(value.to, \"MMM dd, yyyy\")}`;\r\n }\r\n\r\n return placeholder;\r\n };\r\n\r\n // Handle calendar selection based on mode\r\n const handleCalendarSelect = (selectedValue: any) => {\r\n if (mode === \"single\") {\r\n setTempValue(selectedValue);\r\n } else {\r\n // For range mode, ensure we have proper structure\r\n setTempValue(selectedValue || { from: null, to: null });\r\n }\r\n };\r\n\r\n return (\r\n <Popover open={isOpen} onOpenChange={setIsOpen}>\r\n <PopoverTrigger asChild>\r\n <Button\r\n variant=\"outline\"\r\n className={cn(\r\n \"w-full justify-start text-left font-normal h-9\",\r\n !value && \"text-muted-foreground\"\r\n )}\r\n >\r\n <CalendarIcon className=\"mr-2 h-4 w-4\" />\r\n {displayText()}\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\r\n <div className=\"p-3\">\r\n <Calendar\r\n mode={mode}\r\n selected={tempValue}\r\n onSelect={handleCalendarSelect}\r\n numberOfMonths={mode === \"range\" ? 2 : 1}\r\n className=\"rounded-md border\"\r\n {...(mode === \"range\" && { required: true })}\r\n />\r\n </div>\r\n <div className=\"flex items-center justify-between p-3 border-t\">\r\n <Button variant=\"ghost\" size=\"sm\" onClick={handleClear}>\r\n Clear\r\n </Button>\r\n <div className=\"flex gap-2\">\r\n <Button variant=\"outline\" size=\"sm\" onClick={handleCancel}>\r\n Cancel\r\n </Button>\r\n <Button\r\n size=\"sm\"\r\n onClick={handleApply}\r\n disabled={mode === \"range\" && (!tempValue?.from || !tempValue?.to)}\r\n >\r\n Apply\r\n </Button>\r\n </div>\r\n </div>\r\n </PopoverContent>\r\n </Popover>\r\n );\r\n}","import * as React from \"react\"\nimport { Popover as PopoverPrimitive } from \"radix-ui\"\n\nimport { cn } from \"../../lib/utils.js\"\n\nfunction Popover({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Root>) {\n return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />\n}\n\nfunction PopoverTrigger({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />\n}\n\nfunction PopoverContent({\n className,\n align = \"center\",\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Content>) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n data-slot=\"popover-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-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 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden\",\n className\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n )\n}\n\nfunction PopoverAnchor({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {\n return <PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />\n}\n\nexport { Popover, PopoverTrigger, PopoverContent, PopoverAnchor }\n","import { clsx, type ClassValue } from \"clsx\";\r\nimport { twMerge } from \"tailwind-merge\";\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs));\r\n}","import * as React from \"react\"\nimport { Slot as SlotPrimitive } from \"radix-ui\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../../lib/utils.js\"\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n {\n variants: {\n variant: {\n default:\n \"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60\",\n outline:\n \"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50\",\n secondary:\n \"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80\",\n ghost:\n \"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-9 px-4 py-2 has-[>svg]:px-3\",\n sm: \"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5\",\n lg: \"h-10 rounded-md px-6 has-[>svg]:px-4\",\n icon: \"size-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean\n }) {\n const Comp = asChild ? SlotPrimitive.Slot : \"button\"\n\n return (\n <Comp\n data-slot=\"button\"\n className={cn(buttonVariants({ variant, size, className }), \"transition-none\")}\n {...props}\n />\n )\n}\n\nexport { Button, buttonVariants }\n","import * as React from \"react\"\nimport {\n ChevronDownIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n} from \"lucide-react\"\nimport { DayButton, DayPicker, getDefaultClassNames } from \"react-day-picker\"\n\nimport { cn } from \"../../lib/utils.js\"\nimport { Button, buttonVariants } from \"../ui/button.jsx\"\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = \"label\",\n buttonVariant = \"ghost\",\n formatters,\n components,\n ...props\n}: React.ComponentProps<typeof DayPicker> & {\n buttonVariant?: React.ComponentProps<typeof Button>[\"variant\"]\n}) {\n const defaultClassNames = getDefaultClassNames()\n\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn(\n \"bg-background group/calendar p-3 [--cell-size:--spacing(8)] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent\",\n String.raw`rtl:**:[.rdp-button\\_next>svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className\n )}\n captionLayout={captionLayout}\n formatters={{\n formatMonthDropdown: (date) =>\n date.toLocaleString(\"default\", { month: \"short\" }),\n ...formatters,\n }}\n classNames={{\n root: cn(\"w-fit\", defaultClassNames.root),\n months: cn(\n \"flex gap-4 flex-col md:flex-row relative\",\n defaultClassNames.months\n ),\n month: cn(\"flex flex-col w-full gap-4\", defaultClassNames.month),\n nav: cn(\n \"flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between\",\n defaultClassNames.nav\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_previous\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_next\n ),\n month_caption: cn(\n \"flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)\",\n defaultClassNames.month_caption\n ),\n dropdowns: cn(\n \"w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5\",\n defaultClassNames.dropdowns\n ),\n dropdown_root: cn(\n \"relative has-focus:border-ring border border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] rounded-md\",\n defaultClassNames.dropdown_root\n ),\n dropdown: cn(\n \"absolute bg-popover inset-0 opacity-0\",\n defaultClassNames.dropdown\n ),\n caption_label: cn(\n \"select-none font-medium\",\n captionLayout === \"label\"\n ? \"text-sm\"\n : \"rounded-md pl-2 pr-1 flex items-center gap-1 text-sm h-8 [&>svg]:text-muted-foreground [&>svg]:size-3.5\",\n defaultClassNames.caption_label\n ),\n table: \"w-full border-collapse\",\n weekdays: cn(\"flex\", defaultClassNames.weekdays),\n weekday: cn(\n \"text-muted-foreground rounded-md flex-1 font-normal text-[0.8rem] select-none\",\n defaultClassNames.weekday\n ),\n week: cn(\"flex w-full mt-2\", defaultClassNames.week),\n week_number_header: cn(\n \"select-none w-(--cell-size)\",\n defaultClassNames.week_number_header\n ),\n week_number: cn(\n \"text-[0.8rem] select-none text-muted-foreground\",\n defaultClassNames.week_number\n ),\n day: cn(\n \"relative w-full h-full p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md group/day aspect-square select-none\",\n defaultClassNames.day\n ),\n range_start: cn(\n \"rounded-l-md bg-accent\",\n defaultClassNames.range_start\n ),\n range_middle: cn(\"rounded-none\", defaultClassNames.range_middle),\n range_end: cn(\"rounded-r-md bg-accent\", defaultClassNames.range_end),\n today: cn(\n \"bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none\",\n defaultClassNames.today\n ),\n outside: cn(\n \"text-muted-foreground aria-selected:text-muted-foreground\",\n defaultClassNames.outside\n ),\n disabled: cn(\n \"text-muted-foreground opacity-50\",\n defaultClassNames.disabled\n ),\n hidden: cn(\"invisible\", defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return (\n <div\n data-slot=\"calendar\"\n ref={rootRef}\n className={cn(className)}\n {...props}\n />\n )\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === \"left\") {\n return (\n <ChevronLeftIcon className={cn(\"size-4\", className)} {...props} />\n )\n }\n\n if (orientation === \"right\") {\n return (\n <ChevronRightIcon\n className={cn(\"size-4\", className)}\n {...props}\n />\n )\n }\n\n return (\n <ChevronDownIcon className={cn(\"size-4\", className)} {...props} />\n )\n },\n DayButton: CalendarDayButton,\n WeekNumber: ({ children, ...props }) => {\n return (\n <td {...props}>\n <div className=\"flex size-(--cell-size) items-center justify-center text-center\">\n {children}\n </div>\n </td>\n )\n },\n ...components,\n }}\n {...props}\n />\n )\n}\n\nfunction CalendarDayButton({\n className,\n day,\n modifiers,\n ...props\n}: React.ComponentProps<typeof DayButton>) {\n const defaultClassNames = getDefaultClassNames()\n\n const ref = React.useRef<HTMLButtonElement>(null)\n React.useEffect(() => {\n if (modifiers.focused) ref.current?.focus()\n }, [modifiers.focused])\n\n return (\n <Button\n ref={ref}\n variant=\"ghost\"\n size=\"icon\"\n data-day={day.date.toLocaleDateString()}\n data-selected-single={\n modifiers.selected &&\n !modifiers.range_start &&\n !modifiers.range_end &&\n !modifiers.range_middle\n }\n data-range-start={modifiers.range_start}\n data-range-end={modifiers.range_end}\n data-range-middle={modifiers.range_middle}\n className={cn(\n \"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\",\n defaultClassNames.day,\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Calendar, CalendarDayButton }\n"],"mappings":"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","names":["useState","CalendarIcon","format","PopoverPrimitive","clsx","twMerge","cn","inputs","jsx","Popover","props","PopoverPrimitive","PopoverTrigger","PopoverContent","className","align","sideOffset","cn","SlotPrimitive","cva","jsx","buttonVariants","cva","Button","className","variant","size","asChild","props","Comp","SlotPrimitive","cn","React","ChevronDownIcon","ChevronLeftIcon","ChevronRightIcon","DayPicker","getDefaultClassNames","jsx","Calendar","className","classNames","showOutsideDays","captionLayout","buttonVariant","formatters","components","props","defaultClassNames","getDefaultClassNames","DayPicker","cn","date","buttonVariants","rootRef","orientation","ChevronLeftIcon","ChevronRightIcon","ChevronDownIcon","CalendarDayButton","children","day","modifiers","ref","Button","jsx","jsxs","DateFilter","value","onChange","placeholder","mode","externalSearch","onExternalChange","isOpen","setIsOpen","useState","tempValue","setTempValue","handleApply","handleCancel","handleClear","newValue","displayText","format","handleCalendarSelect","selectedValue","Popover","PopoverTrigger","Button","cn","CalendarIcon","PopoverContent","Calendar"]}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/helper/date-filter.tsx","../../../src/components/ui/popover.tsx","../../../src/lib/utils.ts","../../../src/components/ui/button.tsx","../../../src/components/ui/calendar.tsx"],"sourcesContent":["import { useEffect, useState } from \"react\";\r\nimport { Calendar as CalendarIcon, Check, X } from \"lucide-react\";\r\nimport { format } from \"date-fns\";\r\nimport { Popover, PopoverContent, PopoverTrigger } from \"../ui/popover.js\";\r\nimport { Button } from \"../ui/button.js\";\r\nimport { cn } from \"../../lib/utils.js\";\r\nimport { Calendar } from \"../ui/calendar.js\";\r\n\r\ntype DateFilterProps = {\r\n value: any;\r\n onChange: (value: any) => void;\r\n placeholder: string;\r\n mode: \"single\" | \"range\";\r\n externalSearch?: boolean;\r\n onExternalChange?: (value: any) => void;\r\n onlyExternal?: boolean;\r\n}\r\n\r\nexport function DateFilter({\r\n value,\r\n onChange,\r\n placeholder,\r\n mode,\r\n externalSearch,\r\n onExternalChange,\r\n onlyExternal = false,\r\n}: DateFilterProps) {\r\n const [isOpen, setIsOpen] = useState(false);\r\n const [tempValue, setTempValue] = useState(value);\r\n const [displayValue, setDisplayValue] = useState(value);\r\n\r\n useEffect(() => {\r\n if (!onlyExternal) {\r\n setDisplayValue(value);\r\n }\r\n }, [value, onlyExternal]);\r\n\r\n const handleApply = () => {\r\n if (!onlyExternal) {\r\n onChange(tempValue);\r\n setDisplayValue(tempValue);\r\n } else {\r\n // For onlyExternal, update the display value but don't call onChange\r\n setDisplayValue(tempValue);\r\n }\r\n\r\n if (externalSearch && onExternalChange) {\r\n onExternalChange(tempValue);\r\n }\r\n setIsOpen(false);\r\n };\r\n\r\n const handleCancel = () => {\r\n setTempValue(displayValue); // Use displayValue instead of value\r\n setIsOpen(false);\r\n };\r\n\r\n const handleClear = () => {\r\n const newValue = mode === \"single\" ? null : { from: null, to: null };\r\n setTempValue(newValue);\r\n\r\n if (!onlyExternal) {\r\n onChange(newValue);\r\n setDisplayValue(newValue);\r\n } else {\r\n // For onlyExternal, update the display value but don't call onChange\r\n setDisplayValue(newValue);\r\n }\r\n\r\n if (externalSearch && onExternalChange) {\r\n onExternalChange(newValue);\r\n }\r\n setIsOpen(false);\r\n };\r\n\r\n const displayText = () => {\r\n const valueToDisplay = onlyExternal ? displayValue : value;\r\n\r\n if (!valueToDisplay) return placeholder;\r\n\r\n if (mode === \"single\") {\r\n return format(valueToDisplay, \"PPP\");\r\n }\r\n\r\n if (valueToDisplay.from && valueToDisplay.to) {\r\n return `${format(valueToDisplay.from, \"MMM dd\")} - ${format(valueToDisplay.to, \"MMM dd, yyyy\")}`;\r\n }\r\n\r\n if (valueToDisplay.from) {\r\n return `From ${format(valueToDisplay.from, \"MMM dd, yyyy\")}`;\r\n }\r\n\r\n if (valueToDisplay.to) {\r\n return `To ${format(valueToDisplay.to, \"MMM dd, yyyy\")}`;\r\n }\r\n\r\n return placeholder;\r\n };\r\n\r\n const handleCalendarSelect = (selectedValue: any) => {\r\n if (mode === \"single\") {\r\n setTempValue(selectedValue);\r\n } else {\r\n setTempValue(selectedValue || { from: null, to: null });\r\n }\r\n };\r\n\r\n return (\r\n <Popover open={isOpen} onOpenChange={setIsOpen}>\r\n <PopoverTrigger asChild>\r\n <Button\r\n variant=\"outline\"\r\n className={cn(\r\n \"w-full justify-start text-left font-normal h-9\",\r\n !displayText() && \"text-muted-foreground\"\r\n )}\r\n >\r\n <CalendarIcon className=\"mr-2 h-4 w-4\" />\r\n {displayText()}\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\r\n <div className=\"p-3\">\r\n <Calendar\r\n mode={mode}\r\n selected={tempValue}\r\n onSelect={handleCalendarSelect}\r\n numberOfMonths={mode === \"range\" ? 2 : 1}\r\n className=\"rounded-md border\"\r\n {...(mode === \"range\" && { required: true })}\r\n />\r\n </div>\r\n <div className=\"flex items-center justify-between p-3 border-t\">\r\n <Button variant=\"ghost\" size=\"sm\" onClick={handleClear}>\r\n Clear\r\n </Button>\r\n <div className=\"flex gap-2\">\r\n <Button variant=\"outline\" size=\"sm\" onClick={handleCancel}>\r\n Cancel\r\n </Button>\r\n <Button\r\n size=\"sm\"\r\n onClick={handleApply}\r\n disabled={mode === \"range\" && (!tempValue?.from || !tempValue?.to)}\r\n >\r\n Apply\r\n </Button>\r\n </div>\r\n </div>\r\n </PopoverContent>\r\n </Popover>\r\n );\r\n}","import * as React from \"react\"\nimport { Popover as PopoverPrimitive } from \"radix-ui\"\n\nimport { cn } from \"../../lib/utils.js\"\n\nfunction Popover({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Root>) {\n return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />\n}\n\nfunction PopoverTrigger({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />\n}\n\nfunction PopoverContent({\n className,\n align = \"center\",\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Content>) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n data-slot=\"popover-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-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 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden\",\n className\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n )\n}\n\nfunction PopoverAnchor({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {\n return <PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />\n}\n\nexport { Popover, PopoverTrigger, PopoverContent, PopoverAnchor }\n","import { clsx, type ClassValue } from \"clsx\";\r\nimport { twMerge } from \"tailwind-merge\";\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs));\r\n}","import * as React from \"react\"\nimport { Slot as SlotPrimitive } from \"radix-ui\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../../lib/utils.js\"\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n {\n variants: {\n variant: {\n default:\n \"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60\",\n outline:\n \"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50\",\n secondary:\n \"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80\",\n ghost:\n \"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-9 px-4 py-2 has-[>svg]:px-3\",\n sm: \"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5\",\n lg: \"h-10 rounded-md px-6 has-[>svg]:px-4\",\n icon: \"size-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean\n }) {\n const Comp = asChild ? SlotPrimitive.Slot : \"button\"\n\n return (\n <Comp\n data-slot=\"button\"\n className={cn(buttonVariants({ variant, size, className }), \"transition-none\")}\n {...props}\n />\n )\n}\n\nexport { Button, buttonVariants }\n","import * as React from \"react\"\nimport {\n ChevronDownIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n} from \"lucide-react\"\nimport { DayButton, DayPicker, getDefaultClassNames } from \"react-day-picker\"\n\nimport { cn } from \"../../lib/utils.js\"\nimport { Button, buttonVariants } from \"../ui/button.jsx\"\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = \"label\",\n buttonVariant = \"ghost\",\n formatters,\n components,\n ...props\n}: React.ComponentProps<typeof DayPicker> & {\n buttonVariant?: React.ComponentProps<typeof Button>[\"variant\"]\n}) {\n const defaultClassNames = getDefaultClassNames()\n\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn(\n \"bg-background group/calendar p-3 [--cell-size:--spacing(8)] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent\",\n String.raw`rtl:**:[.rdp-button\\_next>svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className\n )}\n captionLayout={captionLayout}\n formatters={{\n formatMonthDropdown: (date) =>\n date.toLocaleString(\"default\", { month: \"short\" }),\n ...formatters,\n }}\n classNames={{\n root: cn(\"w-fit\", defaultClassNames.root),\n months: cn(\n \"flex gap-4 flex-col md:flex-row relative\",\n defaultClassNames.months\n ),\n month: cn(\"flex flex-col w-full gap-4\", defaultClassNames.month),\n nav: cn(\n \"flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between\",\n defaultClassNames.nav\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_previous\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_next\n ),\n month_caption: cn(\n \"flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)\",\n defaultClassNames.month_caption\n ),\n dropdowns: cn(\n \"w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5\",\n defaultClassNames.dropdowns\n ),\n dropdown_root: cn(\n \"relative has-focus:border-ring border border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] rounded-md\",\n defaultClassNames.dropdown_root\n ),\n dropdown: cn(\n \"absolute bg-popover inset-0 opacity-0\",\n defaultClassNames.dropdown\n ),\n caption_label: cn(\n \"select-none font-medium\",\n captionLayout === \"label\"\n ? \"text-sm\"\n : \"rounded-md pl-2 pr-1 flex items-center gap-1 text-sm h-8 [&>svg]:text-muted-foreground [&>svg]:size-3.5\",\n defaultClassNames.caption_label\n ),\n table: \"w-full border-collapse\",\n weekdays: cn(\"flex\", defaultClassNames.weekdays),\n weekday: cn(\n \"text-muted-foreground rounded-md flex-1 font-normal text-[0.8rem] select-none\",\n defaultClassNames.weekday\n ),\n week: cn(\"flex w-full mt-2\", defaultClassNames.week),\n week_number_header: cn(\n \"select-none w-(--cell-size)\",\n defaultClassNames.week_number_header\n ),\n week_number: cn(\n \"text-[0.8rem] select-none text-muted-foreground\",\n defaultClassNames.week_number\n ),\n day: cn(\n \"relative w-full h-full p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md group/day aspect-square select-none\",\n defaultClassNames.day\n ),\n range_start: cn(\n \"rounded-l-md bg-accent\",\n defaultClassNames.range_start\n ),\n range_middle: cn(\"rounded-none\", defaultClassNames.range_middle),\n range_end: cn(\"rounded-r-md bg-accent\", defaultClassNames.range_end),\n today: cn(\n \"bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none\",\n defaultClassNames.today\n ),\n outside: cn(\n \"text-muted-foreground aria-selected:text-muted-foreground\",\n defaultClassNames.outside\n ),\n disabled: cn(\n \"text-muted-foreground opacity-50\",\n defaultClassNames.disabled\n ),\n hidden: cn(\"invisible\", defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return (\n <div\n data-slot=\"calendar\"\n ref={rootRef}\n className={cn(className)}\n {...props}\n />\n )\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === \"left\") {\n return (\n <ChevronLeftIcon className={cn(\"size-4\", className)} {...props} />\n )\n }\n\n if (orientation === \"right\") {\n return (\n <ChevronRightIcon\n className={cn(\"size-4\", className)}\n {...props}\n />\n )\n }\n\n return (\n <ChevronDownIcon className={cn(\"size-4\", className)} {...props} />\n )\n },\n DayButton: CalendarDayButton,\n WeekNumber: ({ children, ...props }) => {\n return (\n <td {...props}>\n <div className=\"flex size-(--cell-size) items-center justify-center text-center\">\n {children}\n </div>\n </td>\n )\n },\n ...components,\n }}\n {...props}\n />\n )\n}\n\nfunction CalendarDayButton({\n className,\n day,\n modifiers,\n ...props\n}: React.ComponentProps<typeof DayButton>) {\n const defaultClassNames = getDefaultClassNames()\n\n const ref = React.useRef<HTMLButtonElement>(null)\n React.useEffect(() => {\n if (modifiers.focused) ref.current?.focus()\n }, [modifiers.focused])\n\n return (\n <Button\n ref={ref}\n variant=\"ghost\"\n size=\"icon\"\n data-day={day.date.toLocaleDateString()}\n data-selected-single={\n modifiers.selected &&\n !modifiers.range_start &&\n !modifiers.range_end &&\n !modifiers.range_middle\n }\n data-range-start={modifiers.range_start}\n data-range-end={modifiers.range_end}\n data-range-middle={modifiers.range_middle}\n className={cn(\n \"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\",\n defaultClassNames.day,\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Calendar, CalendarDayButton }\n"],"mappings":"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","names":["useEffect","useState","CalendarIcon","format","PopoverPrimitive","clsx","twMerge","cn","inputs","jsx","Popover","props","PopoverPrimitive","PopoverTrigger","PopoverContent","className","align","sideOffset","cn","SlotPrimitive","cva","jsx","buttonVariants","cva","Button","className","variant","size","asChild","props","Comp","SlotPrimitive","cn","React","ChevronDownIcon","ChevronLeftIcon","ChevronRightIcon","DayPicker","getDefaultClassNames","jsx","Calendar","className","classNames","showOutsideDays","captionLayout","buttonVariant","formatters","components","props","defaultClassNames","getDefaultClassNames","DayPicker","cn","date","buttonVariants","rootRef","orientation","ChevronLeftIcon","ChevronRightIcon","ChevronDownIcon","CalendarDayButton","children","day","modifiers","ref","Button","jsx","jsxs","DateFilter","value","onChange","placeholder","mode","externalSearch","onExternalChange","onlyExternal","isOpen","setIsOpen","useState","tempValue","setTempValue","displayValue","setDisplayValue","useEffect","handleApply","handleCancel","handleClear","newValue","displayText","valueToDisplay","format","handleCalendarSelect","selectedValue","Popover","PopoverTrigger","Button","cn","CalendarIcon","PopoverContent","Calendar"]}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import * as
|
|
2
|
+
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import { VariantProps } from 'class-variance-authority';
|
|
5
5
|
|
|
6
6
|
declare const badgeVariants: (props?: ({
|
|
7
7
|
variant?: "default" | "destructive" | "outline" | "secondary" | null | undefined;
|
|
8
|
-
} &
|
|
8
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
9
9
|
declare function Badge({ className, variant, asChild, ...props }: React.ComponentProps<"span"> & VariantProps<typeof badgeVariants> & {
|
|
10
10
|
asChild?: boolean;
|
|
11
11
|
}): react_jsx_runtime.JSX.Element;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import * as
|
|
2
|
+
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import { VariantProps } from 'class-variance-authority';
|
|
5
5
|
|
|
6
6
|
declare const badgeVariants: (props?: ({
|
|
7
7
|
variant?: "default" | "destructive" | "outline" | "secondary" | null | undefined;
|
|
8
|
-
} &
|
|
8
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
9
9
|
declare function Badge({ className, variant, asChild, ...props }: React.ComponentProps<"span"> & VariantProps<typeof badgeVariants> & {
|
|
10
10
|
asChild?: boolean;
|
|
11
11
|
}): react_jsx_runtime.JSX.Element;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import * as
|
|
2
|
+
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import { VariantProps } from 'class-variance-authority';
|
|
5
5
|
|
|
6
6
|
declare const buttonVariants: (props?: ({
|
|
7
7
|
variant?: "default" | "destructive" | "outline" | "secondary" | "ghost" | "link" | null | undefined;
|
|
8
8
|
size?: "default" | "sm" | "lg" | "icon" | null | undefined;
|
|
9
|
-
} &
|
|
9
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
10
10
|
declare function Button({ className, variant, size, asChild, ...props }: React.ComponentProps<"button"> & VariantProps<typeof buttonVariants> & {
|
|
11
11
|
asChild?: boolean;
|
|
12
12
|
}): react_jsx_runtime.JSX.Element;
|