{ "$schema": "https://shadcn-vue.com/schema/registry-item.json", "name": "date-time-range-picker", "title": "Date Time Range Picker", "description": "A component for selecting date and time ranges with presets support.", "dependencies": [ "date-fns", "@lucide/vue" ], "registryDependencies": [ "range-calendar", "popover", "input", "button" ], "files": [ { "path": "src/components/date-time-range-picker/DateInput.vue", "content": "\n\n\n", "type": "registry:component" }, { "path": "src/components/date-time-range-picker/TimeInput.vue", "content": "\n\n\n", "type": "registry:component" }, { "path": "src/components/date-time-range-picker/DateTimeInput.vue", "content": "\n\n\n", "type": "registry:component" }, { "path": "src/components/date-time-range-picker/DatePicker.vue", "content": "\n\n\n", "type": "registry:component" }, { "path": "src/components/date-time-range-picker/DateRangePicker.vue", "content": "\n\n\n", "type": "registry:component" }, { "path": "src/components/date-time-range-picker/DateTimeRangePicker.vue", "content": "\n\n\n", "type": "registry:component" }, { "path": "src/components/date-time-range-picker/types.ts", "content": "export type DateRange = {\n from: Date | undefined;\n to: Date | undefined;\n};\n\nexport type DateTimeRange = {\n from: Date | undefined;\n to: Date | undefined;\n};\n\nexport type Preset = {\n name: string;\n label: string;\n};\n\nexport const PRESETS: Preset[] = [\n { name: \"today\", label: \"Today\" },\n { name: \"yesterday\", label: \"Yesterday\" },\n { name: \"last7\", label: \"Last 7 days\" },\n { name: \"last14\", label: \"Last 14 days\" },\n { name: \"last30\", label: \"Last 30 days\" },\n { name: \"thisWeek\", label: \"This Week\" },\n { name: \"lastWeek\", label: \"Last Week\" },\n { name: \"thisMonth\", label: \"This Month\" },\n { name: \"lastMonth\", label: \"Last Month\" },\n];\n\nexport type DateParts = {\n day: number;\n month: number;\n year: number;\n};\n\nexport type TimeParts = {\n hours: number;\n minutes: number;\n ampm: \"AM\" | \"PM\";\n};\n", "type": "registry:component" }, { "path": "src/components/date-time-range-picker/locales.ts", "content": "export type Locale = \"en\" | \"zhHans\";\n\nconst translations = {\n en: {\n cancel: \"Cancel\",\n confirm: \"Confirm\",\n start: \"Start\",\n end: \"End\",\n presets: \"Presets\",\n apply: \"Apply\",\n selectDate: \"Select date\",\n today: \"Today\",\n yesterday: \"Yesterday\",\n last7: \"Last 7 days\",\n last14: \"Last 14 days\",\n last30: \"Last 30 days\",\n thisWeek: \"This Week\",\n lastWeek: \"Last Week\",\n thisMonth: \"This Month\",\n lastMonth: \"Last Month\",\n month: \"M\",\n day: \"D\",\n year: \"YYYY\",\n am: \"AM\",\n pm: \"PM\",\n },\n zhHans: {\n cancel: \"取消\",\n confirm: \"确认\",\n start: \"开始\",\n end: \"结束\",\n presets: \"快捷选项\",\n apply: \"应用\",\n selectDate: \"选择日期\",\n today: \"今天\",\n yesterday: \"昨天\",\n last7: \"最近 7 天\",\n last14: \"最近 14 天\",\n last30: \"最近 30 天\",\n thisWeek: \"本周\",\n lastWeek: \"上周\",\n thisMonth: \"本月\",\n lastMonth: \"上月\",\n month: \"月\",\n day: \"日\",\n year: \"年\",\n am: \"上午\",\n pm: \"下午\",\n },\n} as const;\n\nexport function GetI18nText(key: keyof typeof translations.en, locale: Locale) {\n return translations[locale][key] || translations.en[key];\n}\n", "type": "registry:component" }, { "path": "src/components/date-time-range-picker/index.ts", "content": "export { default as DateInput } from \"./DateInput.vue\";\nexport { default as TimeInput } from \"./TimeInput.vue\";\nexport { default as DateTimeInput } from \"./DateTimeInput.vue\";\nexport { default as DatePicker } from \"./DatePicker.vue\";\nexport { default as DateRangePicker } from \"./DateRangePicker.vue\";\nexport { default as DateTimeRangePicker } from \"./DateTimeRangePicker.vue\";\n\nexport type {\n DateRange,\n DateTimeRange,\n Preset,\n DateParts,\n TimeParts,\n} from \"./types\";\nexport { PRESETS } from \"./types\";\n", "type": "registry:component" } ], "type": "registry:component" }