@egose/shadcn-theme 0.0.16 → 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
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-R4N62Z3D.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
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-AWGHSCTG.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,6 +6,7 @@ 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?: {
@@ -14,6 +15,6 @@ interface FormDatePickerProps {
14
15
  button?: string;
15
16
  };
16
17
  }
17
- 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;
18
19
 
19
20
  export { FormDatePicker, type FormDatePickerProps };
@@ -6,6 +6,7 @@ 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?: {
@@ -14,6 +15,6 @@ interface FormDatePickerProps {
14
15
  button?: string;
15
16
  };
16
17
  }
17
- 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;
18
19
 
19
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 _chunkR4N62Z3Djs = require('../../chunk-R4N62Z3D.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 = _chunkR4N62Z3Djs.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-AWGHSCTG.mjs";
4
+ } from "../../chunk-V7HAO7KE.mjs";
5
5
  import "../../chunk-M2OVLURH.mjs";
6
6
  import "../../chunk-K34Y62WO.mjs";
7
7
  import "../../chunk-YFW7UI3E.mjs";
@@ -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 _chunkR4N62Z3Djs = require('../../chunk-R4N62Z3D.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
- _chunkR4N62Z3Djs.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-AWGHSCTG.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.16",
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 button?: 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('min-w-[145px] justify-start text-left font-normal', classNames?.button)}\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;AAiBO,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,qDAAqD,yCAAY,MAAM;AAAA;AAAA,IAErF,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-R4N62Z3D.js","../components/form/date-picker.tsx"],"names":[],"mappings":"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","file":"/home/ahnjun/projects/egose-shadcn/package/dist/chunk-R4N62Z3D.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 button?: 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('min-w-[145px] justify-start text-left font-normal', classNames?.button)}\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"]}