@egose/shadcn-theme 0.0.15 → 0.0.17

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.
@@ -24,46 +24,72 @@ var _react = require('react'); var _react2 = _interopRequireDefault(_react);
24
24
  var _datefns = require('date-fns');
25
25
  var _lucidereact = require('lucide-react');
26
26
  var _kebabCase2 = require('lodash-es/kebabCase'); var _kebabCase3 = _interopRequireDefault(_kebabCase2);
27
- var _isNil2 = require('lodash-es/isNil'); var _isNil3 = _interopRequireDefault(_isNil2);
27
+ var _isUndefined2 = require('lodash-es/isUndefined'); var _isUndefined3 = _interopRequireDefault(_isUndefined2);
28
28
  var _isString2 = require('lodash-es/isString'); var _isString3 = _interopRequireDefault(_isString2);
29
29
  function formatDate(date) {
30
30
  return _datefns.format.call(void 0, date, "LLL dd, y");
31
31
  }
32
+ function getStartOfDay(date) {
33
+ const startOfDay = new Date(date.getFullYear(), date.getMonth(), date.getDate());
34
+ return startOfDay;
35
+ }
32
36
  function FormDatePicker({
33
37
  id,
34
38
  name,
35
39
  label,
36
40
  required = false,
37
41
  disabled = false,
38
- value: initialValue,
42
+ initialValue,
43
+ value,
39
44
  onChange,
40
45
  classNames
41
46
  }) {
42
- const dt = _isNil3.default.call(void 0, initialValue) ? /* @__PURE__ */ new Date() : _isString3.default.call(void 0, initialValue) ? new Date(initialValue) : initialValue;
43
- const startOfDay = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate());
44
- const [value, setValue] = _react.useState.call(void 0, startOfDay);
47
+ const [date, setDate] = _react.useState.call(void 0, void 0);
48
+ const [initialized, setInitialized] = _react.useState.call(void 0, false);
49
+ _react.useEffect.call(void 0, () => {
50
+ if (!initialized) {
51
+ const dt = initialValue ? getStartOfDay(new Date(initialValue)) : getStartOfDay(/* @__PURE__ */ new Date());
52
+ setDate(dt);
53
+ setInitialized(true);
54
+ }
55
+ }, [initialized, initialValue]);
45
56
  _react.useEffect.call(void 0, () => {
46
- onChange(value);
57
+ if (_isUndefined3.default.call(void 0, value)) {
58
+ if (!_isUndefined3.default.call(void 0, date)) {
59
+ setDate(void 0);
60
+ }
61
+ } else {
62
+ const dt = _isString3.default.call(void 0, value) ? new Date(value) : value;
63
+ if (!_chunkAIRT3G2Fjs.isEqualDate.call(void 0, date, dt)) {
64
+ setDate(getStartOfDay(dt));
65
+ }
66
+ }
47
67
  }, [value]);
68
+ _react.useEffect.call(void 0, () => {
69
+ if (initialized) {
70
+ onChange(date);
71
+ }
72
+ }, [date, initialized]);
48
73
  if (!id) id = _kebabCase3.default.call(void 0, name);
74
+ const display = !initialized ? /* @__PURE__ */ _react2.default.createElement("span", null) : date ? /* @__PURE__ */ _react2.default.createElement(_react2.default.Fragment, null, formatDate(date)) : /* @__PURE__ */ _react2.default.createElement("span", null, "Pick a date");
49
75
  return /* @__PURE__ */ _react2.default.createElement("div", { className: _chunkB2G2EZ4Pjs.cn.call(void 0, "date-picker", classNames == null ? void 0 : classNames.wrapper) }, label && /* @__PURE__ */ _react2.default.createElement(_chunkAXZDZXCYjs.Label, { htmlFor: id, className: classNames == null ? void 0 : classNames.label, required }, label), /* @__PURE__ */ _react2.default.createElement("div", { className: _chunkB2G2EZ4Pjs.cn.call(void 0, "grid gap-2") }, /* @__PURE__ */ _react2.default.createElement(_chunkZ33UILCVjs.Popover, null, /* @__PURE__ */ _react2.default.createElement(_chunkZ33UILCVjs.PopoverTrigger, { asChild: true }, /* @__PURE__ */ _react2.default.createElement(
50
76
  _chunkY2EVJJLMjs.Button,
51
77
  {
52
- variant: value ? "secondary" : "muted",
78
+ variant: date ? "secondary" : "muted",
53
79
  outline: true,
54
- className: _chunkB2G2EZ4Pjs.cn.call(void 0, "w-[300px] justify-start text-left font-normal")
80
+ className: _chunkB2G2EZ4Pjs.cn.call(void 0, "min-w-[145px] justify-start text-left font-normal", classNames == null ? void 0 : classNames.button)
55
81
  },
56
82
  /* @__PURE__ */ _react2.default.createElement(_lucidereact.CalendarIcon, null),
57
- value ? /* @__PURE__ */ _react2.default.createElement(_react2.default.Fragment, null, formatDate(value)) : /* @__PURE__ */ _react2.default.createElement("span", null, "Pick a date")
83
+ display
58
84
  )), /* @__PURE__ */ _react2.default.createElement(_chunkZ33UILCVjs.PopoverContent, { className: "w-auto p-0", align: "start" }, /* @__PURE__ */ _react2.default.createElement(
59
85
  _chunk73AY2MAQjs.Calendar,
60
86
  {
61
87
  mode: "single",
62
- defaultMonth: value,
63
- selected: value,
64
- onSelect: (date) => {
65
- if (!_chunkAIRT3G2Fjs.isEqualDate.call(void 0, value, date)) {
66
- setValue(date);
88
+ defaultMonth: date,
89
+ selected: date,
90
+ onSelect: (newdate) => {
91
+ if (!_chunkAIRT3G2Fjs.isEqualDate.call(void 0, date, newdate)) {
92
+ setDate(newdate);
67
93
  }
68
94
  }
69
95
  }
@@ -73,4 +99,4 @@ function FormDatePicker({
73
99
 
74
100
 
75
101
  exports.FormDatePicker = FormDatePicker;
76
- //# sourceMappingURL=chunk-2QPFMTGQ.js.map
102
+ //# sourceMappingURL=chunk-EQWIZ4DC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/ahnjun/projects/egose-shadcn/package/dist/chunk-EQWIZ4DC.js","../components/form/date-picker.tsx"],"names":[],"mappings":"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","file":"/home/ahnjun/projects/egose-shadcn/package/dist/chunk-EQWIZ4DC.js","sourcesContent":[null,"'use client';\n\nimport React, { useEffect, useState } from 'react';\nimport { addDays, format, isEqual } from 'date-fns';\nimport { CalendarIcon } from 'lucide-react';\nimport _kebabCase from 'lodash-es/kebabCase';\nimport _isNil from 'lodash-es/isNil';\nimport _isUndefined from 'lodash-es/isUndefined';\nimport _isString from 'lodash-es/isString';\n\nimport { isEqualDate } from '../../lib/date';\nimport { cn } from '../../lib/utils';\nimport { Button } from '../ui/button';\nimport { Label } from '../ui/label';\nimport { Calendar } from '../ui/calendar';\nimport { Popover, PopoverContent, PopoverTrigger } from '../ui/popover';\n\nfunction formatDate(date: Date) {\n return format(date, 'LLL dd, y');\n}\n\nfunction getStartOfDay(date: Date) {\n const startOfDay = new Date(date.getFullYear(), date.getMonth(), date.getDate());\n return startOfDay;\n}\n\nexport interface FormDatePickerProps {\n id?: string;\n name: string;\n label?: string;\n required?: boolean;\n disabled?: boolean;\n initialValue?: Date | string;\n value?: Date | string;\n onChange: (value?: Date) => void;\n classNames?: {\n wrapper?: string;\n label?: string;\n button?: string;\n };\n}\n\nexport function FormDatePicker({\n id,\n name,\n label,\n required = false,\n disabled = false,\n initialValue,\n value,\n onChange,\n classNames,\n}: FormDatePickerProps) {\n const [date, setDate] = useState<Date | undefined>(undefined);\n const [initialized, setInitialized] = useState(false);\n\n useEffect(() => {\n if (!initialized) {\n const dt = initialValue ? getStartOfDay(new Date(initialValue)) : getStartOfDay(new Date());\n\n setDate(dt);\n setInitialized(true);\n }\n }, [initialized, initialValue]);\n\n useEffect(() => {\n if (_isUndefined(value)) {\n if (!_isUndefined(date)) {\n setDate(undefined);\n }\n } else {\n const dt = _isString(value) ? new Date(value) : value;\n if (!isEqualDate(date, dt)) {\n setDate(getStartOfDay(dt));\n }\n }\n }, [value]);\n\n useEffect(() => {\n if (initialized) {\n onChange(date);\n }\n }, [date, initialized]);\n\n if (!id) id = _kebabCase(name);\n\n const display = !initialized ? <span></span> : date ? <>{formatDate(date)}</> : <span>Pick a date</span>;\n\n return (\n <div className={cn('date-picker', classNames?.wrapper)}>\n {label && (\n <Label htmlFor={id} className={classNames?.label} required={required}>\n {label}\n </Label>\n )}\n <div className={cn('grid gap-2')}>\n <Popover>\n <PopoverTrigger asChild>\n <Button\n variant={date ? 'secondary' : 'muted'}\n outline\n className={cn('min-w-[145px] justify-start text-left font-normal', classNames?.button)}\n >\n <CalendarIcon />\n {display}\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\n <Calendar\n mode=\"single\"\n defaultMonth={date}\n selected={date}\n onSelect={(newdate) => {\n if (!isEqualDate(date, newdate)) {\n setDate(newdate);\n }\n }}\n />\n </PopoverContent>\n </Popover>\n </div>\n </div>\n );\n}\n"]}
@@ -24,46 +24,72 @@ import React, { useEffect, useState } from "react";
24
24
  import { format } from "date-fns";
25
25
  import { CalendarIcon } from "lucide-react";
26
26
  import _kebabCase from "lodash-es/kebabCase";
27
- import _isNil from "lodash-es/isNil";
27
+ import _isUndefined from "lodash-es/isUndefined";
28
28
  import _isString from "lodash-es/isString";
29
29
  function formatDate(date) {
30
30
  return format(date, "LLL dd, y");
31
31
  }
32
+ function getStartOfDay(date) {
33
+ const startOfDay = new Date(date.getFullYear(), date.getMonth(), date.getDate());
34
+ return startOfDay;
35
+ }
32
36
  function FormDatePicker({
33
37
  id,
34
38
  name,
35
39
  label,
36
40
  required = false,
37
41
  disabled = false,
38
- value: initialValue,
42
+ initialValue,
43
+ value,
39
44
  onChange,
40
45
  classNames
41
46
  }) {
42
- const dt = _isNil(initialValue) ? /* @__PURE__ */ new Date() : _isString(initialValue) ? new Date(initialValue) : initialValue;
43
- const startOfDay = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate());
44
- const [value, setValue] = useState(startOfDay);
47
+ const [date, setDate] = useState(void 0);
48
+ const [initialized, setInitialized] = useState(false);
49
+ useEffect(() => {
50
+ if (!initialized) {
51
+ const dt = initialValue ? getStartOfDay(new Date(initialValue)) : getStartOfDay(/* @__PURE__ */ new Date());
52
+ setDate(dt);
53
+ setInitialized(true);
54
+ }
55
+ }, [initialized, initialValue]);
45
56
  useEffect(() => {
46
- onChange(value);
57
+ if (_isUndefined(value)) {
58
+ if (!_isUndefined(date)) {
59
+ setDate(void 0);
60
+ }
61
+ } else {
62
+ const dt = _isString(value) ? new Date(value) : value;
63
+ if (!isEqualDate(date, dt)) {
64
+ setDate(getStartOfDay(dt));
65
+ }
66
+ }
47
67
  }, [value]);
68
+ useEffect(() => {
69
+ if (initialized) {
70
+ onChange(date);
71
+ }
72
+ }, [date, initialized]);
48
73
  if (!id) id = _kebabCase(name);
74
+ const display = !initialized ? /* @__PURE__ */ React.createElement("span", null) : date ? /* @__PURE__ */ React.createElement(React.Fragment, null, formatDate(date)) : /* @__PURE__ */ React.createElement("span", null, "Pick a date");
49
75
  return /* @__PURE__ */ React.createElement("div", { className: cn("date-picker", classNames == null ? void 0 : classNames.wrapper) }, label && /* @__PURE__ */ React.createElement(Label, { htmlFor: id, className: classNames == null ? void 0 : classNames.label, required }, label), /* @__PURE__ */ React.createElement("div", { className: cn("grid gap-2") }, /* @__PURE__ */ React.createElement(Popover, null, /* @__PURE__ */ React.createElement(PopoverTrigger, { asChild: true }, /* @__PURE__ */ React.createElement(
50
76
  Button,
51
77
  {
52
- variant: value ? "secondary" : "muted",
78
+ variant: date ? "secondary" : "muted",
53
79
  outline: true,
54
- className: cn("w-[300px] justify-start text-left font-normal")
80
+ className: cn("min-w-[145px] justify-start text-left font-normal", classNames == null ? void 0 : classNames.button)
55
81
  },
56
82
  /* @__PURE__ */ React.createElement(CalendarIcon, null),
57
- value ? /* @__PURE__ */ React.createElement(React.Fragment, null, formatDate(value)) : /* @__PURE__ */ React.createElement("span", null, "Pick a date")
83
+ display
58
84
  )), /* @__PURE__ */ React.createElement(PopoverContent, { className: "w-auto p-0", align: "start" }, /* @__PURE__ */ React.createElement(
59
85
  Calendar,
60
86
  {
61
87
  mode: "single",
62
- defaultMonth: value,
63
- selected: value,
64
- onSelect: (date) => {
65
- if (!isEqualDate(value, date)) {
66
- setValue(date);
88
+ defaultMonth: date,
89
+ selected: date,
90
+ onSelect: (newdate) => {
91
+ if (!isEqualDate(date, newdate)) {
92
+ setDate(newdate);
67
93
  }
68
94
  }
69
95
  }
@@ -73,4 +99,4 @@ function FormDatePicker({
73
99
  export {
74
100
  FormDatePicker
75
101
  };
76
- //# sourceMappingURL=chunk-2NSYAQFL.mjs.map
102
+ //# sourceMappingURL=chunk-V7HAO7KE.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../components/form/date-picker.tsx"],"sourcesContent":["'use client';\n\nimport React, { useEffect, useState } from 'react';\nimport { addDays, format, isEqual } from 'date-fns';\nimport { CalendarIcon } from 'lucide-react';\nimport _kebabCase from 'lodash-es/kebabCase';\nimport _isNil from 'lodash-es/isNil';\nimport _isUndefined from 'lodash-es/isUndefined';\nimport _isString from 'lodash-es/isString';\n\nimport { isEqualDate } from '../../lib/date';\nimport { cn } from '../../lib/utils';\nimport { Button } from '../ui/button';\nimport { Label } from '../ui/label';\nimport { Calendar } from '../ui/calendar';\nimport { Popover, PopoverContent, PopoverTrigger } from '../ui/popover';\n\nfunction formatDate(date: Date) {\n return format(date, 'LLL dd, y');\n}\n\nfunction getStartOfDay(date: Date) {\n const startOfDay = new Date(date.getFullYear(), date.getMonth(), date.getDate());\n return startOfDay;\n}\n\nexport interface FormDatePickerProps {\n id?: string;\n name: string;\n label?: string;\n required?: boolean;\n disabled?: boolean;\n initialValue?: Date | string;\n value?: Date | string;\n onChange: (value?: Date) => void;\n classNames?: {\n wrapper?: string;\n label?: string;\n button?: string;\n };\n}\n\nexport function FormDatePicker({\n id,\n name,\n label,\n required = false,\n disabled = false,\n initialValue,\n value,\n onChange,\n classNames,\n}: FormDatePickerProps) {\n const [date, setDate] = useState<Date | undefined>(undefined);\n const [initialized, setInitialized] = useState(false);\n\n useEffect(() => {\n if (!initialized) {\n const dt = initialValue ? getStartOfDay(new Date(initialValue)) : getStartOfDay(new Date());\n\n setDate(dt);\n setInitialized(true);\n }\n }, [initialized, initialValue]);\n\n useEffect(() => {\n if (_isUndefined(value)) {\n if (!_isUndefined(date)) {\n setDate(undefined);\n }\n } else {\n const dt = _isString(value) ? new Date(value) : value;\n if (!isEqualDate(date, dt)) {\n setDate(getStartOfDay(dt));\n }\n }\n }, [value]);\n\n useEffect(() => {\n if (initialized) {\n onChange(date);\n }\n }, [date, initialized]);\n\n if (!id) id = _kebabCase(name);\n\n const display = !initialized ? <span></span> : date ? <>{formatDate(date)}</> : <span>Pick a date</span>;\n\n return (\n <div className={cn('date-picker', classNames?.wrapper)}>\n {label && (\n <Label htmlFor={id} className={classNames?.label} required={required}>\n {label}\n </Label>\n )}\n <div className={cn('grid gap-2')}>\n <Popover>\n <PopoverTrigger asChild>\n <Button\n variant={date ? 'secondary' : 'muted'}\n outline\n className={cn('min-w-[145px] justify-start text-left font-normal', classNames?.button)}\n >\n <CalendarIcon />\n {display}\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\n <Calendar\n mode=\"single\"\n defaultMonth={date}\n selected={date}\n onSelect={(newdate) => {\n if (!isEqualDate(date, newdate)) {\n setDate(newdate);\n }\n }}\n />\n </PopoverContent>\n </Popover>\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAEA,OAAO,SAAS,WAAW,gBAAgB;AAC3C,SAAkB,cAAuB;AACzC,SAAS,oBAAoB;AAC7B,OAAO,gBAAgB;AAEvB,OAAO,kBAAkB;AACzB,OAAO,eAAe;AAStB,SAAS,WAAW,MAAY;AAC9B,SAAO,OAAO,MAAM,WAAW;AACjC;AAEA,SAAS,cAAc,MAAY;AACjC,QAAM,aAAa,IAAI,KAAK,KAAK,YAAY,GAAG,KAAK,SAAS,GAAG,KAAK,QAAQ,CAAC;AAC/E,SAAO;AACT;AAkBO,SAAS,eAAe;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAwB;AACtB,QAAM,CAAC,MAAM,OAAO,IAAI,SAA2B,MAAS;AAC5D,QAAM,CAAC,aAAa,cAAc,IAAI,SAAS,KAAK;AAEpD,YAAU,MAAM;AACd,QAAI,CAAC,aAAa;AAChB,YAAM,KAAK,eAAe,cAAc,IAAI,KAAK,YAAY,CAAC,IAAI,cAAc,oBAAI,KAAK,CAAC;AAE1F,cAAQ,EAAE;AACV,qBAAe,IAAI;AAAA,IACrB;AAAA,EACF,GAAG,CAAC,aAAa,YAAY,CAAC;AAE9B,YAAU,MAAM;AACd,QAAI,aAAa,KAAK,GAAG;AACvB,UAAI,CAAC,aAAa,IAAI,GAAG;AACvB,gBAAQ,MAAS;AAAA,MACnB;AAAA,IACF,OAAO;AACL,YAAM,KAAK,UAAU,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI;AAChD,UAAI,CAAC,YAAY,MAAM,EAAE,GAAG;AAC1B,gBAAQ,cAAc,EAAE,CAAC;AAAA,MAC3B;AAAA,IACF;AAAA,EACF,GAAG,CAAC,KAAK,CAAC;AAEV,YAAU,MAAM;AACd,QAAI,aAAa;AACf,eAAS,IAAI;AAAA,IACf;AAAA,EACF,GAAG,CAAC,MAAM,WAAW,CAAC;AAEtB,MAAI,CAAC,GAAI,MAAK,WAAW,IAAI;AAE7B,QAAM,UAAU,CAAC,cAAc,oCAAC,YAAK,IAAU,OAAO,0DAAG,WAAW,IAAI,CAAE,IAAM,oCAAC,cAAK,aAAW;AAEjG,SACE,oCAAC,SAAI,WAAW,GAAG,eAAe,yCAAY,OAAO,KAClD,SACC,oCAAC,SAAM,SAAS,IAAI,WAAW,yCAAY,OAAO,YAC/C,KACH,GAEF,oCAAC,SAAI,WAAW,GAAG,YAAY,KAC7B,oCAAC,eACC,oCAAC,kBAAe,SAAO,QACrB;AAAA,IAAC;AAAA;AAAA,MACC,SAAS,OAAO,cAAc;AAAA,MAC9B,SAAO;AAAA,MACP,WAAW,GAAG,qDAAqD,yCAAY,MAAM;AAAA;AAAA,IAErF,oCAAC,kBAAa;AAAA,IACb;AAAA,EACH,CACF,GACA,oCAAC,kBAAe,WAAU,cAAa,OAAM,WAC3C;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,cAAc;AAAA,MACd,UAAU;AAAA,MACV,UAAU,CAAC,YAAY;AACrB,YAAI,CAAC,YAAY,MAAM,OAAO,GAAG;AAC/B,kBAAQ,OAAO;AAAA,QACjB;AAAA,MACF;AAAA;AAAA,EACF,CACF,CACF,CACF,CACF;AAEJ;","names":[]}
@@ -6,13 +6,15 @@ interface FormDatePickerProps {
6
6
  label?: string;
7
7
  required?: boolean;
8
8
  disabled?: boolean;
9
+ initialValue?: Date | string;
9
10
  value?: Date | string;
10
11
  onChange: (value?: Date) => void;
11
12
  classNames?: {
12
13
  wrapper?: string;
13
14
  label?: string;
15
+ button?: string;
14
16
  };
15
17
  }
16
- declare function FormDatePicker({ id, name, label, required, disabled, value: initialValue, onChange, classNames, }: FormDatePickerProps): React__default.JSX.Element;
18
+ declare function FormDatePicker({ id, name, label, required, disabled, initialValue, value, onChange, classNames, }: FormDatePickerProps): React__default.JSX.Element;
17
19
 
18
20
  export { FormDatePicker, type FormDatePickerProps };
@@ -6,13 +6,15 @@ interface FormDatePickerProps {
6
6
  label?: string;
7
7
  required?: boolean;
8
8
  disabled?: boolean;
9
+ initialValue?: Date | string;
9
10
  value?: Date | string;
10
11
  onChange: (value?: Date) => void;
11
12
  classNames?: {
12
13
  wrapper?: string;
13
14
  label?: string;
15
+ button?: string;
14
16
  };
15
17
  }
16
- declare function FormDatePicker({ id, name, label, required, disabled, value: initialValue, onChange, classNames, }: FormDatePickerProps): React__default.JSX.Element;
18
+ declare function FormDatePicker({ id, name, label, required, disabled, initialValue, value, onChange, classNames, }: FormDatePickerProps): React__default.JSX.Element;
17
19
 
18
20
  export { FormDatePicker, type FormDatePickerProps };
@@ -1,7 +1,7 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
2
 
3
3
 
4
- var _chunk2QPFMTGQjs = require('../../chunk-2QPFMTGQ.js');
4
+ var _chunkEQWIZ4DCjs = require('../../chunk-EQWIZ4DC.js');
5
5
  require('../../chunk-Z33UILCV.js');
6
6
  require('../../chunk-73AY2MAQ.js');
7
7
  require('../../chunk-Y2EVJJLM.js');
@@ -12,5 +12,5 @@ require('../../chunk-B2G2EZ4P.js');
12
12
  require('../../chunk-2NMEKWO5.js');
13
13
 
14
14
 
15
- exports.FormDatePicker = _chunk2QPFMTGQjs.FormDatePicker;
15
+ exports.FormDatePicker = _chunkEQWIZ4DCjs.FormDatePicker;
16
16
  //# sourceMappingURL=date-picker.js.map
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import {
3
3
  FormDatePicker
4
- } from "../../chunk-2NSYAQFL.mjs";
4
+ } from "../../chunk-V7HAO7KE.mjs";
5
5
  import "../../chunk-M2OVLURH.mjs";
6
6
  import "../../chunk-K34Y62WO.mjs";
7
7
  import "../../chunk-YFW7UI3E.mjs";
@@ -11,6 +11,7 @@ interface FormDateRangePickerProps {
11
11
  classNames?: {
12
12
  wrapper?: string;
13
13
  label?: string;
14
+ button?: string;
14
15
  };
15
16
  }
16
17
  declare function FormDateRangePicker({ id, name, label, required, value: initialValue, onChange, classNames, }: FormDateRangePickerProps): React__default.JSX.Element;
@@ -11,6 +11,7 @@ interface FormDateRangePickerProps {
11
11
  classNames?: {
12
12
  wrapper?: string;
13
13
  label?: string;
14
+ button?: string;
14
15
  };
15
16
  }
16
17
  declare function FormDateRangePicker({ id, name, label, required, value: initialValue, onChange, classNames, }: FormDateRangePickerProps): React__default.JSX.Element;
@@ -66,7 +66,7 @@ function FormDateRangePicker({
66
66
  {
67
67
  variant: value ? "secondary" : "muted",
68
68
  outline: true,
69
- className: _chunkB2G2EZ4Pjs.cn.call(void 0, "w-[300px] justify-start text-left font-normal")
69
+ className: _chunkB2G2EZ4Pjs.cn.call(void 0, "min-w-[240px] justify-start text-left font-normal", classNames == null ? void 0 : classNames.button)
70
70
  },
71
71
  /* @__PURE__ */ _react2.default.createElement(_lucidereact.CalendarIcon, null),
72
72
  (value == null ? void 0 : value.from) ? value.to ? /* @__PURE__ */ _react2.default.createElement(_react2.default.Fragment, null, formatDate(value.from), " - ", formatDate(value.to)) : formatDate(value.from) : /* @__PURE__ */ _react2.default.createElement("span", null, "Pick a date")
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/ahnjun/projects/egose-shadcn/package/dist/components/form/date-range-picker.js","../../../components/form/date-range-picker.tsx"],"names":[],"mappings":"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","file":"/home/ahnjun/projects/egose-shadcn/package/dist/components/form/date-range-picker.js","sourcesContent":[null,"'use client';\n\nimport React, { HTMLAttributes, useEffect, useState } from 'react';\nimport { addDays, format, isEqual } from 'date-fns';\nimport { CalendarIcon } from 'lucide-react';\nimport { DateRange } from 'react-day-picker';\nimport _kebabCase from 'lodash-es/kebabCase';\nimport _isNil from 'lodash-es/isNil';\n\nimport { isEqualDates } from '../../lib/date';\nimport { cn } from '../../lib/utils';\nimport { Button } from '../ui/button';\nimport { Label } from '../ui/label';\nimport { Calendar } from '../ui/calendar';\nimport { Popover, PopoverContent, PopoverTrigger } from '../ui/popover';\n\nfunction formatDate(date: Date) {\n return format(date, 'LLL dd, y');\n}\n\nexport interface FormDateRangePickerProps {\n id?: string;\n name: string;\n label?: string;\n required?: boolean;\n value?: DateRange;\n onChange: (value: DateRange | undefined) => void;\n classNames?: {\n wrapper?: string;\n label?: string;\n };\n}\n\nexport function FormDateRangePicker({\n id,\n name,\n label,\n required = false,\n value: initialValue,\n onChange,\n classNames,\n}: FormDateRangePickerProps) {\n let initialFrom!: Date;\n let initialTo!: Date;\n\n if (initialValue) {\n const from = initialValue.from ?? new Date();\n const to = initialValue.to ?? new Date();\n initialFrom = new Date(from.getFullYear(), from.getMonth(), from.getDate());\n initialTo = new Date(to.getFullYear(), to.getMonth(), to.getDate());\n } else {\n const now = new Date();\n const startOfDay = new Date(now.getFullYear(), now.getMonth(), now.getDate());\n initialFrom = startOfDay;\n initialTo = startOfDay;\n }\n\n const [value, setValue] = useState<DateRange | undefined>({\n from: initialFrom,\n to: initialTo,\n });\n\n useEffect(() => {\n onChange(value);\n }, [value]);\n\n if (!id) id = _kebabCase(name);\n\n return (\n <div className={cn('date-range-picker', classNames?.wrapper)}>\n {label && (\n <Label htmlFor={id} className={classNames?.label} required={required}>\n {label}\n </Label>\n )}\n <div className={cn('grid gap-2')}>\n <Popover>\n <PopoverTrigger asChild>\n <Button\n variant={value ? 'secondary' : 'muted'}\n outline\n className={cn('w-[300px] justify-start text-left font-normal')}\n >\n <CalendarIcon />\n {value?.from ? (\n value.to ? (\n <>\n {formatDate(value.from)} - {formatDate(value.to)}\n </>\n ) : (\n formatDate(value.from)\n )\n ) : (\n <span>Pick a date</span>\n )}\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\n <Calendar\n mode=\"range\"\n defaultMonth={value?.from}\n selected={value}\n onSelect={(dateRange) => {\n if (!isEqualDates([value?.from, value?.to], [dateRange?.from, dateRange?.to])) {\n setValue(dateRange);\n }\n }}\n numberOfMonths={2}\n />\n </PopoverContent>\n </Popover>\n </div>\n </div>\n );\n}\n"]}
1
+ {"version":3,"sources":["/home/ahnjun/projects/egose-shadcn/package/dist/components/form/date-range-picker.js","../../../components/form/date-range-picker.tsx"],"names":[],"mappings":"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","file":"/home/ahnjun/projects/egose-shadcn/package/dist/components/form/date-range-picker.js","sourcesContent":[null,"'use client';\n\nimport React, { HTMLAttributes, useEffect, useState } from 'react';\nimport { addDays, format, isEqual } from 'date-fns';\nimport { CalendarIcon } from 'lucide-react';\nimport { DateRange } from 'react-day-picker';\nimport _kebabCase from 'lodash-es/kebabCase';\nimport _isNil from 'lodash-es/isNil';\n\nimport { isEqualDates } from '../../lib/date';\nimport { cn } from '../../lib/utils';\nimport { Button } from '../ui/button';\nimport { Label } from '../ui/label';\nimport { Calendar } from '../ui/calendar';\nimport { Popover, PopoverContent, PopoverTrigger } from '../ui/popover';\n\nfunction formatDate(date: Date) {\n return format(date, 'LLL dd, y');\n}\n\nexport interface FormDateRangePickerProps {\n id?: string;\n name: string;\n label?: string;\n required?: boolean;\n value?: DateRange;\n onChange: (value: DateRange | undefined) => void;\n classNames?: {\n wrapper?: string;\n label?: string;\n button?: string;\n };\n}\n\nexport function FormDateRangePicker({\n id,\n name,\n label,\n required = false,\n value: initialValue,\n onChange,\n classNames,\n}: FormDateRangePickerProps) {\n let initialFrom!: Date;\n let initialTo!: Date;\n\n if (initialValue) {\n const from = initialValue.from ?? new Date();\n const to = initialValue.to ?? new Date();\n initialFrom = new Date(from.getFullYear(), from.getMonth(), from.getDate());\n initialTo = new Date(to.getFullYear(), to.getMonth(), to.getDate());\n } else {\n const now = new Date();\n const startOfDay = new Date(now.getFullYear(), now.getMonth(), now.getDate());\n initialFrom = startOfDay;\n initialTo = startOfDay;\n }\n\n const [value, setValue] = useState<DateRange | undefined>({\n from: initialFrom,\n to: initialTo,\n });\n\n useEffect(() => {\n onChange(value);\n }, [value]);\n\n if (!id) id = _kebabCase(name);\n\n return (\n <div className={cn('date-range-picker', classNames?.wrapper)}>\n {label && (\n <Label htmlFor={id} className={classNames?.label} required={required}>\n {label}\n </Label>\n )}\n <div className={cn('grid gap-2')}>\n <Popover>\n <PopoverTrigger asChild>\n <Button\n variant={value ? 'secondary' : 'muted'}\n outline\n className={cn('min-w-[240px] justify-start text-left font-normal', classNames?.button)}\n >\n <CalendarIcon />\n {value?.from ? (\n value.to ? (\n <>\n {formatDate(value.from)} - {formatDate(value.to)}\n </>\n ) : (\n formatDate(value.from)\n )\n ) : (\n <span>Pick a date</span>\n )}\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\n <Calendar\n mode=\"range\"\n defaultMonth={value?.from}\n selected={value}\n onSelect={(dateRange) => {\n if (!isEqualDates([value?.from, value?.to], [dateRange?.from, dateRange?.to])) {\n setValue(dateRange);\n }\n }}\n numberOfMonths={2}\n />\n </PopoverContent>\n </Popover>\n </div>\n </div>\n );\n}\n"]}
@@ -66,7 +66,7 @@ function FormDateRangePicker({
66
66
  {
67
67
  variant: value ? "secondary" : "muted",
68
68
  outline: true,
69
- className: cn("w-[300px] justify-start text-left font-normal")
69
+ className: cn("min-w-[240px] justify-start text-left font-normal", classNames == null ? void 0 : classNames.button)
70
70
  },
71
71
  /* @__PURE__ */ React.createElement(CalendarIcon, null),
72
72
  (value == null ? void 0 : value.from) ? value.to ? /* @__PURE__ */ React.createElement(React.Fragment, null, formatDate(value.from), " - ", formatDate(value.to)) : formatDate(value.from) : /* @__PURE__ */ React.createElement("span", null, "Pick a date")
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../components/form/date-range-picker.tsx"],"sourcesContent":["'use client';\n\nimport React, { HTMLAttributes, useEffect, useState } from 'react';\nimport { addDays, format, isEqual } from 'date-fns';\nimport { CalendarIcon } from 'lucide-react';\nimport { DateRange } from 'react-day-picker';\nimport _kebabCase from 'lodash-es/kebabCase';\nimport _isNil from 'lodash-es/isNil';\n\nimport { isEqualDates } from '../../lib/date';\nimport { cn } from '../../lib/utils';\nimport { Button } from '../ui/button';\nimport { Label } from '../ui/label';\nimport { Calendar } from '../ui/calendar';\nimport { Popover, PopoverContent, PopoverTrigger } from '../ui/popover';\n\nfunction formatDate(date: Date) {\n return format(date, 'LLL dd, y');\n}\n\nexport interface FormDateRangePickerProps {\n id?: string;\n name: string;\n label?: string;\n required?: boolean;\n value?: DateRange;\n onChange: (value: DateRange | undefined) => void;\n classNames?: {\n wrapper?: string;\n label?: string;\n };\n}\n\nexport function FormDateRangePicker({\n id,\n name,\n label,\n required = false,\n value: initialValue,\n onChange,\n classNames,\n}: FormDateRangePickerProps) {\n let initialFrom!: Date;\n let initialTo!: Date;\n\n if (initialValue) {\n const from = initialValue.from ?? new Date();\n const to = initialValue.to ?? new Date();\n initialFrom = new Date(from.getFullYear(), from.getMonth(), from.getDate());\n initialTo = new Date(to.getFullYear(), to.getMonth(), to.getDate());\n } else {\n const now = new Date();\n const startOfDay = new Date(now.getFullYear(), now.getMonth(), now.getDate());\n initialFrom = startOfDay;\n initialTo = startOfDay;\n }\n\n const [value, setValue] = useState<DateRange | undefined>({\n from: initialFrom,\n to: initialTo,\n });\n\n useEffect(() => {\n onChange(value);\n }, [value]);\n\n if (!id) id = _kebabCase(name);\n\n return (\n <div className={cn('date-range-picker', classNames?.wrapper)}>\n {label && (\n <Label htmlFor={id} className={classNames?.label} required={required}>\n {label}\n </Label>\n )}\n <div className={cn('grid gap-2')}>\n <Popover>\n <PopoverTrigger asChild>\n <Button\n variant={value ? 'secondary' : 'muted'}\n outline\n className={cn('w-[300px] justify-start text-left font-normal')}\n >\n <CalendarIcon />\n {value?.from ? (\n value.to ? (\n <>\n {formatDate(value.from)} - {formatDate(value.to)}\n </>\n ) : (\n formatDate(value.from)\n )\n ) : (\n <span>Pick a date</span>\n )}\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\n <Calendar\n mode=\"range\"\n defaultMonth={value?.from}\n selected={value}\n onSelect={(dateRange) => {\n if (!isEqualDates([value?.from, value?.to], [dateRange?.from, dateRange?.to])) {\n setValue(dateRange);\n }\n }}\n numberOfMonths={2}\n />\n </PopoverContent>\n </Popover>\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAEA,OAAO,SAAyB,WAAW,gBAAgB;AAC3D,SAAkB,cAAuB;AACzC,SAAS,oBAAoB;AAE7B,OAAO,gBAAgB;AAUvB,SAAS,WAAW,MAAY;AAC9B,SAAO,OAAO,MAAM,WAAW;AACjC;AAeO,SAAS,oBAAoB;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX,OAAO;AAAA,EACP;AAAA,EACA;AACF,GAA6B;AAzC7B;AA0CE,MAAI;AACJ,MAAI;AAEJ,MAAI,cAAc;AAChB,UAAM,QAAO,kBAAa,SAAb,YAAqB,oBAAI,KAAK;AAC3C,UAAM,MAAK,kBAAa,OAAb,YAAmB,oBAAI,KAAK;AACvC,kBAAc,IAAI,KAAK,KAAK,YAAY,GAAG,KAAK,SAAS,GAAG,KAAK,QAAQ,CAAC;AAC1E,gBAAY,IAAI,KAAK,GAAG,YAAY,GAAG,GAAG,SAAS,GAAG,GAAG,QAAQ,CAAC;AAAA,EACpE,OAAO;AACL,UAAM,MAAM,oBAAI,KAAK;AACrB,UAAM,aAAa,IAAI,KAAK,IAAI,YAAY,GAAG,IAAI,SAAS,GAAG,IAAI,QAAQ,CAAC;AAC5E,kBAAc;AACd,gBAAY;AAAA,EACd;AAEA,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAgC;AAAA,IACxD,MAAM;AAAA,IACN,IAAI;AAAA,EACN,CAAC;AAED,YAAU,MAAM;AACd,aAAS,KAAK;AAAA,EAChB,GAAG,CAAC,KAAK,CAAC;AAEV,MAAI,CAAC,GAAI,MAAK,WAAW,IAAI;AAE7B,SACE,oCAAC,SAAI,WAAW,GAAG,qBAAqB,yCAAY,OAAO,KACxD,SACC,oCAAC,SAAM,SAAS,IAAI,WAAW,yCAAY,OAAO,YAC/C,KACH,GAEF,oCAAC,SAAI,WAAW,GAAG,YAAY,KAC7B,oCAAC,eACC,oCAAC,kBAAe,SAAO,QACrB;AAAA,IAAC;AAAA;AAAA,MACC,SAAS,QAAQ,cAAc;AAAA,MAC/B,SAAO;AAAA,MACP,WAAW,GAAG,+CAA+C;AAAA;AAAA,IAE7D,oCAAC,kBAAa;AAAA,KACb,+BAAO,QACN,MAAM,KACJ,0DACG,WAAW,MAAM,IAAI,GAAE,OAAI,WAAW,MAAM,EAAE,CACjD,IAEA,WAAW,MAAM,IAAI,IAGvB,oCAAC,cAAK,aAAW;AAAA,EAErB,CACF,GACA,oCAAC,kBAAe,WAAU,cAAa,OAAM,WAC3C;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,cAAc,+BAAO;AAAA,MACrB,UAAU;AAAA,MACV,UAAU,CAAC,cAAc;AACvB,YAAI,CAAC,aAAa,CAAC,+BAAO,MAAM,+BAAO,EAAE,GAAG,CAAC,uCAAW,MAAM,uCAAW,EAAE,CAAC,GAAG;AAC7E,mBAAS,SAAS;AAAA,QACpB;AAAA,MACF;AAAA,MACA,gBAAgB;AAAA;AAAA,EAClB,CACF,CACF,CACF,CACF;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../../components/form/date-range-picker.tsx"],"sourcesContent":["'use client';\n\nimport React, { HTMLAttributes, useEffect, useState } from 'react';\nimport { addDays, format, isEqual } from 'date-fns';\nimport { CalendarIcon } from 'lucide-react';\nimport { DateRange } from 'react-day-picker';\nimport _kebabCase from 'lodash-es/kebabCase';\nimport _isNil from 'lodash-es/isNil';\n\nimport { isEqualDates } from '../../lib/date';\nimport { cn } from '../../lib/utils';\nimport { Button } from '../ui/button';\nimport { Label } from '../ui/label';\nimport { Calendar } from '../ui/calendar';\nimport { Popover, PopoverContent, PopoverTrigger } from '../ui/popover';\n\nfunction formatDate(date: Date) {\n return format(date, 'LLL dd, y');\n}\n\nexport interface FormDateRangePickerProps {\n id?: string;\n name: string;\n label?: string;\n required?: boolean;\n value?: DateRange;\n onChange: (value: DateRange | undefined) => void;\n classNames?: {\n wrapper?: string;\n label?: string;\n button?: string;\n };\n}\n\nexport function FormDateRangePicker({\n id,\n name,\n label,\n required = false,\n value: initialValue,\n onChange,\n classNames,\n}: FormDateRangePickerProps) {\n let initialFrom!: Date;\n let initialTo!: Date;\n\n if (initialValue) {\n const from = initialValue.from ?? new Date();\n const to = initialValue.to ?? new Date();\n initialFrom = new Date(from.getFullYear(), from.getMonth(), from.getDate());\n initialTo = new Date(to.getFullYear(), to.getMonth(), to.getDate());\n } else {\n const now = new Date();\n const startOfDay = new Date(now.getFullYear(), now.getMonth(), now.getDate());\n initialFrom = startOfDay;\n initialTo = startOfDay;\n }\n\n const [value, setValue] = useState<DateRange | undefined>({\n from: initialFrom,\n to: initialTo,\n });\n\n useEffect(() => {\n onChange(value);\n }, [value]);\n\n if (!id) id = _kebabCase(name);\n\n return (\n <div className={cn('date-range-picker', classNames?.wrapper)}>\n {label && (\n <Label htmlFor={id} className={classNames?.label} required={required}>\n {label}\n </Label>\n )}\n <div className={cn('grid gap-2')}>\n <Popover>\n <PopoverTrigger asChild>\n <Button\n variant={value ? 'secondary' : 'muted'}\n outline\n className={cn('min-w-[240px] justify-start text-left font-normal', classNames?.button)}\n >\n <CalendarIcon />\n {value?.from ? (\n value.to ? (\n <>\n {formatDate(value.from)} - {formatDate(value.to)}\n </>\n ) : (\n formatDate(value.from)\n )\n ) : (\n <span>Pick a date</span>\n )}\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\n <Calendar\n mode=\"range\"\n defaultMonth={value?.from}\n selected={value}\n onSelect={(dateRange) => {\n if (!isEqualDates([value?.from, value?.to], [dateRange?.from, dateRange?.to])) {\n setValue(dateRange);\n }\n }}\n numberOfMonths={2}\n />\n </PopoverContent>\n </Popover>\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAEA,OAAO,SAAyB,WAAW,gBAAgB;AAC3D,SAAkB,cAAuB;AACzC,SAAS,oBAAoB;AAE7B,OAAO,gBAAgB;AAUvB,SAAS,WAAW,MAAY;AAC9B,SAAO,OAAO,MAAM,WAAW;AACjC;AAgBO,SAAS,oBAAoB;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX,OAAO;AAAA,EACP;AAAA,EACA;AACF,GAA6B;AA1C7B;AA2CE,MAAI;AACJ,MAAI;AAEJ,MAAI,cAAc;AAChB,UAAM,QAAO,kBAAa,SAAb,YAAqB,oBAAI,KAAK;AAC3C,UAAM,MAAK,kBAAa,OAAb,YAAmB,oBAAI,KAAK;AACvC,kBAAc,IAAI,KAAK,KAAK,YAAY,GAAG,KAAK,SAAS,GAAG,KAAK,QAAQ,CAAC;AAC1E,gBAAY,IAAI,KAAK,GAAG,YAAY,GAAG,GAAG,SAAS,GAAG,GAAG,QAAQ,CAAC;AAAA,EACpE,OAAO;AACL,UAAM,MAAM,oBAAI,KAAK;AACrB,UAAM,aAAa,IAAI,KAAK,IAAI,YAAY,GAAG,IAAI,SAAS,GAAG,IAAI,QAAQ,CAAC;AAC5E,kBAAc;AACd,gBAAY;AAAA,EACd;AAEA,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAgC;AAAA,IACxD,MAAM;AAAA,IACN,IAAI;AAAA,EACN,CAAC;AAED,YAAU,MAAM;AACd,aAAS,KAAK;AAAA,EAChB,GAAG,CAAC,KAAK,CAAC;AAEV,MAAI,CAAC,GAAI,MAAK,WAAW,IAAI;AAE7B,SACE,oCAAC,SAAI,WAAW,GAAG,qBAAqB,yCAAY,OAAO,KACxD,SACC,oCAAC,SAAM,SAAS,IAAI,WAAW,yCAAY,OAAO,YAC/C,KACH,GAEF,oCAAC,SAAI,WAAW,GAAG,YAAY,KAC7B,oCAAC,eACC,oCAAC,kBAAe,SAAO,QACrB;AAAA,IAAC;AAAA;AAAA,MACC,SAAS,QAAQ,cAAc;AAAA,MAC/B,SAAO;AAAA,MACP,WAAW,GAAG,qDAAqD,yCAAY,MAAM;AAAA;AAAA,IAErF,oCAAC,kBAAa;AAAA,KACb,+BAAO,QACN,MAAM,KACJ,0DACG,WAAW,MAAM,IAAI,GAAE,OAAI,WAAW,MAAM,EAAE,CACjD,IAEA,WAAW,MAAM,IAAI,IAGvB,oCAAC,cAAK,aAAW;AAAA,EAErB,CACF,GACA,oCAAC,kBAAe,WAAU,cAAa,OAAM,WAC3C;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,cAAc,+BAAO;AAAA,MACrB,UAAU;AAAA,MACV,UAAU,CAAC,cAAc;AACvB,YAAI,CAAC,aAAa,CAAC,+BAAO,MAAM,+BAAO,EAAE,GAAG,CAAC,uCAAW,MAAM,uCAAW,EAAE,CAAC,GAAG;AAC7E,mBAAS,SAAS;AAAA,QACpB;AAAA,MACF;AAAA,MACA,gBAAgB;AAAA;AAAA,EAClB,CACF,CACF,CACF,CACF;AAEJ;","names":[]}
@@ -1,7 +1,7 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }"use client";
2
2
 
3
3
 
4
- var _chunk2QPFMTGQjs = require('../../chunk-2QPFMTGQ.js');
4
+ var _chunkEQWIZ4DCjs = require('../../chunk-EQWIZ4DC.js');
5
5
  require('../../chunk-Z33UILCV.js');
6
6
  require('../../chunk-73AY2MAQ.js');
7
7
  require('../../chunk-Y2EVJJLM.js');
@@ -51,7 +51,7 @@ function HookFormDatePicker(_a) {
51
51
  rules,
52
52
  render: ({ field: { onChange, onBlur, value } }) => {
53
53
  return /* @__PURE__ */ _react2.default.createElement(
54
- _chunk2QPFMTGQjs.FormDatePicker,
54
+ _chunkEQWIZ4DCjs.FormDatePicker,
55
55
  _chunk2NMEKWO5js.__spreadProps.call(void 0, _chunk2NMEKWO5js.__spreadValues.call(void 0, {
56
56
  id,
57
57
  name,
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import {
3
3
  FormDatePicker
4
- } from "../../chunk-2NSYAQFL.mjs";
4
+ } from "../../chunk-V7HAO7KE.mjs";
5
5
  import "../../chunk-M2OVLURH.mjs";
6
6
  import "../../chunk-K34Y62WO.mjs";
7
7
  import "../../chunk-YFW7UI3E.mjs";
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.0.15",
2
+ "version": "0.0.17",
3
3
  "description": "shadcn UI theme",
4
4
  "license": "MIT",
5
5
  "sideEffects": false,
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../components/form/date-picker.tsx"],"sourcesContent":["'use client';\n\nimport React, { useEffect, useState } from 'react';\nimport { addDays, format, isEqual } from 'date-fns';\nimport { CalendarIcon } from 'lucide-react';\nimport _kebabCase from 'lodash-es/kebabCase';\nimport _isNil from 'lodash-es/isNil';\nimport _isString from 'lodash-es/isString';\n\nimport { isEqualDate } from '../../lib/date';\nimport { cn } from '../../lib/utils';\nimport { Button } from '../ui/button';\nimport { Label } from '../ui/label';\nimport { Calendar } from '../ui/calendar';\nimport { Popover, PopoverContent, PopoverTrigger } from '../ui/popover';\n\nfunction formatDate(date: Date) {\n return format(date, 'LLL dd, y');\n}\n\nexport interface FormDatePickerProps {\n id?: string;\n name: string;\n label?: string;\n required?: boolean;\n disabled?: boolean;\n value?: Date | string;\n onChange: (value?: Date) => void;\n classNames?: {\n wrapper?: string;\n label?: string;\n };\n}\n\nexport function FormDatePicker({\n id,\n name,\n label,\n required = false,\n disabled = false,\n value: initialValue,\n onChange,\n classNames,\n}: FormDatePickerProps) {\n const dt = _isNil(initialValue) ? new Date() : _isString(initialValue) ? new Date(initialValue) : initialValue;\n const startOfDay = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate());\n const [value, setValue] = useState<Date | undefined>(startOfDay);\n\n useEffect(() => {\n onChange(value);\n }, [value]);\n\n if (!id) id = _kebabCase(name);\n\n return (\n <div className={cn('date-picker', classNames?.wrapper)}>\n {label && (\n <Label htmlFor={id} className={classNames?.label} required={required}>\n {label}\n </Label>\n )}\n <div className={cn('grid gap-2')}>\n <Popover>\n <PopoverTrigger asChild>\n <Button\n variant={value ? 'secondary' : 'muted'}\n outline\n className={cn('w-[300px] justify-start text-left font-normal')}\n >\n <CalendarIcon />\n {value ? <>{formatDate(value)}</> : <span>Pick a date</span>}\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\n <Calendar\n mode=\"single\"\n defaultMonth={value}\n selected={value}\n onSelect={(date) => {\n if (!isEqualDate(value, date)) {\n setValue(date);\n }\n }}\n />\n </PopoverContent>\n </Popover>\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAEA,OAAO,SAAS,WAAW,gBAAgB;AAC3C,SAAkB,cAAuB;AACzC,SAAS,oBAAoB;AAC7B,OAAO,gBAAgB;AACvB,OAAO,YAAY;AACnB,OAAO,eAAe;AAStB,SAAS,WAAW,MAAY;AAC9B,SAAO,OAAO,MAAM,WAAW;AACjC;AAgBO,SAAS,eAAe;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX,WAAW;AAAA,EACX,OAAO;AAAA,EACP;AAAA,EACA;AACF,GAAwB;AACtB,QAAM,KAAK,OAAO,YAAY,IAAI,oBAAI,KAAK,IAAI,UAAU,YAAY,IAAI,IAAI,KAAK,YAAY,IAAI;AAClG,QAAM,aAAa,IAAI,KAAK,GAAG,YAAY,GAAG,GAAG,SAAS,GAAG,GAAG,QAAQ,CAAC;AACzE,QAAM,CAAC,OAAO,QAAQ,IAAI,SAA2B,UAAU;AAE/D,YAAU,MAAM;AACd,aAAS,KAAK;AAAA,EAChB,GAAG,CAAC,KAAK,CAAC;AAEV,MAAI,CAAC,GAAI,MAAK,WAAW,IAAI;AAE7B,SACE,oCAAC,SAAI,WAAW,GAAG,eAAe,yCAAY,OAAO,KAClD,SACC,oCAAC,SAAM,SAAS,IAAI,WAAW,yCAAY,OAAO,YAC/C,KACH,GAEF,oCAAC,SAAI,WAAW,GAAG,YAAY,KAC7B,oCAAC,eACC,oCAAC,kBAAe,SAAO,QACrB;AAAA,IAAC;AAAA;AAAA,MACC,SAAS,QAAQ,cAAc;AAAA,MAC/B,SAAO;AAAA,MACP,WAAW,GAAG,+CAA+C;AAAA;AAAA,IAE7D,oCAAC,kBAAa;AAAA,IACb,QAAQ,0DAAG,WAAW,KAAK,CAAE,IAAM,oCAAC,cAAK,aAAW;AAAA,EACvD,CACF,GACA,oCAAC,kBAAe,WAAU,cAAa,OAAM,WAC3C;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,cAAc;AAAA,MACd,UAAU;AAAA,MACV,UAAU,CAAC,SAAS;AAClB,YAAI,CAAC,YAAY,OAAO,IAAI,GAAG;AAC7B,mBAAS,IAAI;AAAA,QACf;AAAA,MACF;AAAA;AAAA,EACF,CACF,CACF,CACF,CACF;AAEJ;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/home/ahnjun/projects/egose-shadcn/package/dist/chunk-2QPFMTGQ.js","../components/form/date-picker.tsx"],"names":[],"mappings":"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","file":"/home/ahnjun/projects/egose-shadcn/package/dist/chunk-2QPFMTGQ.js","sourcesContent":[null,"'use client';\n\nimport React, { useEffect, useState } from 'react';\nimport { addDays, format, isEqual } from 'date-fns';\nimport { CalendarIcon } from 'lucide-react';\nimport _kebabCase from 'lodash-es/kebabCase';\nimport _isNil from 'lodash-es/isNil';\nimport _isString from 'lodash-es/isString';\n\nimport { isEqualDate } from '../../lib/date';\nimport { cn } from '../../lib/utils';\nimport { Button } from '../ui/button';\nimport { Label } from '../ui/label';\nimport { Calendar } from '../ui/calendar';\nimport { Popover, PopoverContent, PopoverTrigger } from '../ui/popover';\n\nfunction formatDate(date: Date) {\n return format(date, 'LLL dd, y');\n}\n\nexport interface FormDatePickerProps {\n id?: string;\n name: string;\n label?: string;\n required?: boolean;\n disabled?: boolean;\n value?: Date | string;\n onChange: (value?: Date) => void;\n classNames?: {\n wrapper?: string;\n label?: string;\n };\n}\n\nexport function FormDatePicker({\n id,\n name,\n label,\n required = false,\n disabled = false,\n value: initialValue,\n onChange,\n classNames,\n}: FormDatePickerProps) {\n const dt = _isNil(initialValue) ? new Date() : _isString(initialValue) ? new Date(initialValue) : initialValue;\n const startOfDay = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate());\n const [value, setValue] = useState<Date | undefined>(startOfDay);\n\n useEffect(() => {\n onChange(value);\n }, [value]);\n\n if (!id) id = _kebabCase(name);\n\n return (\n <div className={cn('date-picker', classNames?.wrapper)}>\n {label && (\n <Label htmlFor={id} className={classNames?.label} required={required}>\n {label}\n </Label>\n )}\n <div className={cn('grid gap-2')}>\n <Popover>\n <PopoverTrigger asChild>\n <Button\n variant={value ? 'secondary' : 'muted'}\n outline\n className={cn('w-[300px] justify-start text-left font-normal')}\n >\n <CalendarIcon />\n {value ? <>{formatDate(value)}</> : <span>Pick a date</span>}\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\n <Calendar\n mode=\"single\"\n defaultMonth={value}\n selected={value}\n onSelect={(date) => {\n if (!isEqualDate(value, date)) {\n setValue(date);\n }\n }}\n />\n </PopoverContent>\n </Popover>\n </div>\n </div>\n );\n}\n"]}