@egose/shadcn-theme 0.0.22 → 0.0.23
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/chunk-ENHV3QCF.mjs +41 -0
- package/chunk-ENHV3QCF.mjs.map +1 -0
- package/chunk-JOYUTUGI.mjs +57 -0
- package/chunk-JOYUTUGI.mjs.map +1 -0
- package/chunk-TV4NNZTS.js +57 -0
- package/chunk-TV4NNZTS.js.map +1 -0
- package/chunk-TYI6YBBZ.js +41 -0
- package/chunk-TYI6YBBZ.js.map +1 -0
- package/components/form/hook-native-select.d.mts +2 -2
- package/components/form/hook-native-select.d.ts +2 -2
- package/components/form/hook-native-select.js +3 -3
- package/components/form/hook-native-select.js.map +1 -1
- package/components/form/hook-native-select.mjs +3 -3
- package/components/form/hook-native-select.mjs.map +1 -1
- package/components/form/hook-text-input.d.mts +2 -2
- package/components/form/hook-text-input.d.ts +2 -2
- package/components/form/hook-text-input.js +3 -3
- package/components/form/hook-text-input.js.map +1 -1
- package/components/form/hook-text-input.mjs +3 -3
- package/components/form/hook-text-input.mjs.map +1 -1
- package/components/form/hook-textarea.d.mts +2 -2
- package/components/form/hook-textarea.d.ts +2 -2
- package/components/form/hook-textarea.js +3 -3
- package/components/form/hook-textarea.js.map +1 -1
- package/components/form/hook-textarea.mjs +3 -3
- package/components/form/hook-textarea.mjs.map +1 -1
- package/components/form/hook-time-text-input.d.mts +13 -0
- package/components/form/hook-time-text-input.d.ts +13 -0
- package/components/form/hook-time-text-input.js +83 -0
- package/components/form/hook-time-text-input.js.map +1 -0
- package/components/form/hook-time-text-input.mjs +83 -0
- package/components/form/hook-time-text-input.mjs.map +1 -0
- package/components/form/time-text-input.d.mts +10 -0
- package/components/form/time-text-input.d.ts +10 -0
- package/components/form/time-text-input.js +14 -0
- package/components/form/time-text-input.js.map +1 -0
- package/components/form/time-text-input.mjs +14 -0
- package/components/form/time-text-input.mjs.map +1 -0
- package/components/ui/sidebar.js +3 -3
- package/components/ui/sidebar.js.map +1 -1
- package/components/ui/sidebar.mjs +3 -3
- package/components/widgets/dialog-manager/index.js +1 -1
- package/components/widgets/dialog-manager/index.js.map +1 -1
- package/components/widgets/dialog-manager/index.mjs +1 -1
- package/lib/number.d.mts +7 -0
- package/lib/number.d.ts +7 -0
- package/lib/number.js +12 -0
- package/lib/number.js.map +1 -0
- package/lib/number.mjs +12 -0
- package/lib/number.mjs.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import {
|
|
2
|
+
FormTextInput
|
|
3
|
+
} from "./chunk-ASPYSRE6.mjs";
|
|
4
|
+
import {
|
|
5
|
+
convertFromHours,
|
|
6
|
+
convertToHours,
|
|
7
|
+
convertToWholeFromHours
|
|
8
|
+
} from "./chunk-JOYUTUGI.mjs";
|
|
9
|
+
import {
|
|
10
|
+
__objRest,
|
|
11
|
+
__spreadProps,
|
|
12
|
+
__spreadValues
|
|
13
|
+
} from "./chunk-YOSPWY5K.mjs";
|
|
14
|
+
|
|
15
|
+
// components/form/time-text-input.tsx
|
|
16
|
+
import React, { useState, useEffect } from "react";
|
|
17
|
+
function FormTimeTextInput(_a) {
|
|
18
|
+
var _b = _a, { value: parentValue = 0, onChange } = _b, rest = __objRest(_b, ["value", "onChange"]);
|
|
19
|
+
const [value, setValue] = useState(String(parentValue));
|
|
20
|
+
useEffect(() => {
|
|
21
|
+
setValue(String(parentValue != null ? parentValue : ""));
|
|
22
|
+
}, [parentValue]);
|
|
23
|
+
const handleChange = (e) => {
|
|
24
|
+
setValue(e.target.value);
|
|
25
|
+
};
|
|
26
|
+
const handleBlur = (e) => {
|
|
27
|
+
const newValue = convertToHours(e.target.value);
|
|
28
|
+
const numericValue = Number(newValue);
|
|
29
|
+
setValue(newValue);
|
|
30
|
+
onChange == null ? void 0 : onChange(numericValue);
|
|
31
|
+
};
|
|
32
|
+
const displayText = convertFromHours(value);
|
|
33
|
+
const displayWhole = convertToWholeFromHours(value);
|
|
34
|
+
const title = displayText !== displayWhole ? `${displayText} (${displayWhole})` : displayText;
|
|
35
|
+
return /* @__PURE__ */ React.createElement(FormTextInput, __spreadProps(__spreadValues({}, rest), { value, onChange: handleChange, onBlur: handleBlur, title }));
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export {
|
|
39
|
+
FormTimeTextInput
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=chunk-ENHV3QCF.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../components/form/time-text-input.tsx"],"sourcesContent":["'use client';\n\nimport React, { useState, useEffect, ChangeEvent } from 'react';\nimport { FormTextInput } from './text-input';\nimport type { FormTextInputProps } from './text-input';\nimport { convertToHours, convertFromHours, convertToWholeFromHours } from '../../lib/number';\n\nexport interface FormTimeTextInputProps extends Omit<FormTextInputProps, 'onChange' | 'value'> {\n value?: number;\n onChange?: (value: number) => void;\n}\n\nexport function FormTimeTextInput({ value: parentValue = 0, onChange, ...rest }: FormTimeTextInputProps) {\n const [value, setValue] = useState<string>(String(parentValue));\n\n useEffect(() => {\n setValue(String(parentValue ?? ''));\n }, [parentValue]);\n\n const handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n setValue(e.target.value);\n };\n\n const handleBlur = (e: ChangeEvent<HTMLInputElement>) => {\n const newValue = convertToHours(e.target.value);\n const numericValue = Number(newValue);\n\n setValue(newValue);\n onChange?.(numericValue);\n };\n\n const displayText = convertFromHours(value);\n const displayWhole = convertToWholeFromHours(value);\n const title = displayText !== displayWhole ? `${displayText} (${displayWhole})` : displayText;\n\n return <FormTextInput {...rest} value={value} onChange={handleChange} onBlur={handleBlur} title={title} />;\n}\n"],"mappings":";;;;;;;;;;;;;;;AAEA,OAAO,SAAS,UAAU,iBAA8B;AAUjD,SAAS,kBAAkB,IAAuE;AAAvE,eAAE,SAAO,cAAc,GAAG,SAZ5D,IAYkC,IAAuC,iBAAvC,IAAuC,CAArC,SAAwB;AAC1D,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAiB,OAAO,WAAW,CAAC;AAE9D,YAAU,MAAM;AACd,aAAS,OAAO,oCAAe,EAAE,CAAC;AAAA,EACpC,GAAG,CAAC,WAAW,CAAC;AAEhB,QAAM,eAAe,CAAC,MAAqC;AACzD,aAAS,EAAE,OAAO,KAAK;AAAA,EACzB;AAEA,QAAM,aAAa,CAAC,MAAqC;AACvD,UAAM,WAAW,eAAe,EAAE,OAAO,KAAK;AAC9C,UAAM,eAAe,OAAO,QAAQ;AAEpC,aAAS,QAAQ;AACjB,yCAAW;AAAA,EACb;AAEA,QAAM,cAAc,iBAAiB,KAAK;AAC1C,QAAM,eAAe,wBAAwB,KAAK;AAClD,QAAM,QAAQ,gBAAgB,eAAe,GAAG,WAAW,KAAK,YAAY,MAAM;AAElF,SAAO,oCAAC,gDAAkB,OAAlB,EAAwB,OAAc,UAAU,cAAc,QAAQ,YAAY,QAAc;AAC1G;","names":[]}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
// lib/number.ts
|
|
2
|
+
function convertToHours(value, asNumber = false) {
|
|
3
|
+
let result;
|
|
4
|
+
if (!value) {
|
|
5
|
+
result = 0;
|
|
6
|
+
} else if (!isNaN(Number(value))) {
|
|
7
|
+
result = parseFloat(value);
|
|
8
|
+
} else if (value.toLowerCase().endsWith("h")) {
|
|
9
|
+
result = parseFloat(value.slice(0, -1));
|
|
10
|
+
} else if (value.toLowerCase().endsWith("m")) {
|
|
11
|
+
const minutes = parseFloat(value.slice(0, -1));
|
|
12
|
+
result = minutes / 60;
|
|
13
|
+
} else if (value.toLowerCase().endsWith("s")) {
|
|
14
|
+
const seconds = parseFloat(value.slice(0, -1));
|
|
15
|
+
result = seconds / 3600;
|
|
16
|
+
} else {
|
|
17
|
+
result = 0;
|
|
18
|
+
}
|
|
19
|
+
return asNumber ? result : String(Number(result.toFixed(17)));
|
|
20
|
+
}
|
|
21
|
+
function convertFromHours(value) {
|
|
22
|
+
const hours = parseFloat(value);
|
|
23
|
+
if (isNaN(hours) || hours === 0) {
|
|
24
|
+
return "0";
|
|
25
|
+
}
|
|
26
|
+
if (hours >= 1) {
|
|
27
|
+
return `${hours}h`;
|
|
28
|
+
}
|
|
29
|
+
const minutes = hours * 60;
|
|
30
|
+
if (minutes >= 1) {
|
|
31
|
+
return `${Math.round(minutes)}m`;
|
|
32
|
+
}
|
|
33
|
+
const seconds = hours * 3600;
|
|
34
|
+
return `${Math.round(seconds)}s`;
|
|
35
|
+
}
|
|
36
|
+
function convertToWholeFromHours(value) {
|
|
37
|
+
const hours = parseFloat(value);
|
|
38
|
+
if (isNaN(hours) || hours === 0) {
|
|
39
|
+
return "0";
|
|
40
|
+
}
|
|
41
|
+
const minutes = hours * 60;
|
|
42
|
+
if (Math.abs(minutes - Math.round(minutes)) < 1e-10) {
|
|
43
|
+
return `${Math.round(minutes)}m`;
|
|
44
|
+
}
|
|
45
|
+
const seconds = hours * 3600;
|
|
46
|
+
if (Math.abs(seconds - Math.round(seconds)) < 1e-10) {
|
|
47
|
+
return `${Math.round(seconds)}s`;
|
|
48
|
+
}
|
|
49
|
+
return `${hours}h`;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export {
|
|
53
|
+
convertToHours,
|
|
54
|
+
convertFromHours,
|
|
55
|
+
convertToWholeFromHours
|
|
56
|
+
};
|
|
57
|
+
//# sourceMappingURL=chunk-JOYUTUGI.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../lib/number.ts"],"sourcesContent":["export function convertToHours(value: string): string;\nexport function convertToHours(value: string, asNumber: true): number;\nexport function convertToHours(value: string, asNumber: false): string;\nexport function convertToHours(value: string, asNumber: boolean = false): string | number {\n let result: number;\n\n if (!value) {\n result = 0;\n }\n // Check if the input is a valid number without any suffix (e.g., \"1.5\")\n else if (!isNaN(Number(value))) {\n result = parseFloat(value);\n } else if (value.toLowerCase().endsWith('h')) {\n // Check if it ends with 'h' or 'H' (hours)\n result = parseFloat(value.slice(0, -1));\n } else if (value.toLowerCase().endsWith('m')) {\n // Check if it ends with 'm' or 'M' (minutes)\n const minutes = parseFloat(value.slice(0, -1));\n result = minutes / 60; // Convert minutes to hours\n } else if (value.toLowerCase().endsWith('s')) {\n // Check if it ends with 's' or 'S' (seconds)\n const seconds = parseFloat(value.slice(0, -1));\n result = seconds / 3600; // Convert seconds to hours\n } else {\n // For any other format, return 0\n result = 0;\n }\n\n // Return the result either as a number or string based on the 'asNumber' option\n return asNumber ? result : String(Number(result.toFixed(17))); // Convert to number to remove trailing zeros\n}\n\nexport function convertFromHours(value: string): string {\n const hours = parseFloat(value);\n\n if (isNaN(hours) || hours === 0) {\n return '0';\n }\n\n if (hours >= 1) {\n return `${hours}h`;\n }\n\n const minutes = hours * 60;\n if (minutes >= 1) {\n return `${Math.round(minutes)}m`;\n }\n\n const seconds = hours * 3600;\n return `${Math.round(seconds)}s`;\n}\n\nexport function convertToWholeFromHours(value: string): string {\n const hours = parseFloat(value);\n\n if (isNaN(hours) || hours === 0) {\n return '0';\n }\n\n // Convert to minutes if the value represents a whole number of minutes\n const minutes = hours * 60;\n if (Math.abs(minutes - Math.round(minutes)) < 1e-10) {\n return `${Math.round(minutes)}m`;\n }\n\n // Convert to seconds if the value represents a whole number of seconds\n const seconds = hours * 3600;\n if (Math.abs(seconds - Math.round(seconds)) < 1e-10) {\n return `${Math.round(seconds)}s`;\n }\n\n // Otherwise, return the value with the 'h' suffix for hours\n return `${hours}h`;\n}\n"],"mappings":";AAGO,SAAS,eAAe,OAAe,WAAoB,OAAwB;AACxF,MAAI;AAEJ,MAAI,CAAC,OAAO;AACV,aAAS;AAAA,EACX,WAES,CAAC,MAAM,OAAO,KAAK,CAAC,GAAG;AAC9B,aAAS,WAAW,KAAK;AAAA,EAC3B,WAAW,MAAM,YAAY,EAAE,SAAS,GAAG,GAAG;AAE5C,aAAS,WAAW,MAAM,MAAM,GAAG,EAAE,CAAC;AAAA,EACxC,WAAW,MAAM,YAAY,EAAE,SAAS,GAAG,GAAG;AAE5C,UAAM,UAAU,WAAW,MAAM,MAAM,GAAG,EAAE,CAAC;AAC7C,aAAS,UAAU;AAAA,EACrB,WAAW,MAAM,YAAY,EAAE,SAAS,GAAG,GAAG;AAE5C,UAAM,UAAU,WAAW,MAAM,MAAM,GAAG,EAAE,CAAC;AAC7C,aAAS,UAAU;AAAA,EACrB,OAAO;AAEL,aAAS;AAAA,EACX;AAGA,SAAO,WAAW,SAAS,OAAO,OAAO,OAAO,QAAQ,EAAE,CAAC,CAAC;AAC9D;AAEO,SAAS,iBAAiB,OAAuB;AACtD,QAAM,QAAQ,WAAW,KAAK;AAE9B,MAAI,MAAM,KAAK,KAAK,UAAU,GAAG;AAC/B,WAAO;AAAA,EACT;AAEA,MAAI,SAAS,GAAG;AACd,WAAO,GAAG,KAAK;AAAA,EACjB;AAEA,QAAM,UAAU,QAAQ;AACxB,MAAI,WAAW,GAAG;AAChB,WAAO,GAAG,KAAK,MAAM,OAAO,CAAC;AAAA,EAC/B;AAEA,QAAM,UAAU,QAAQ;AACxB,SAAO,GAAG,KAAK,MAAM,OAAO,CAAC;AAC/B;AAEO,SAAS,wBAAwB,OAAuB;AAC7D,QAAM,QAAQ,WAAW,KAAK;AAE9B,MAAI,MAAM,KAAK,KAAK,UAAU,GAAG;AAC/B,WAAO;AAAA,EACT;AAGA,QAAM,UAAU,QAAQ;AACxB,MAAI,KAAK,IAAI,UAAU,KAAK,MAAM,OAAO,CAAC,IAAI,OAAO;AACnD,WAAO,GAAG,KAAK,MAAM,OAAO,CAAC;AAAA,EAC/B;AAGA,QAAM,UAAU,QAAQ;AACxB,MAAI,KAAK,IAAI,UAAU,KAAK,MAAM,OAAO,CAAC,IAAI,OAAO;AACnD,WAAO,GAAG,KAAK,MAAM,OAAO,CAAC;AAAA,EAC/B;AAGA,SAAO,GAAG,KAAK;AACjB;","names":[]}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});// lib/number.ts
|
|
2
|
+
function convertToHours(value, asNumber = false) {
|
|
3
|
+
let result;
|
|
4
|
+
if (!value) {
|
|
5
|
+
result = 0;
|
|
6
|
+
} else if (!isNaN(Number(value))) {
|
|
7
|
+
result = parseFloat(value);
|
|
8
|
+
} else if (value.toLowerCase().endsWith("h")) {
|
|
9
|
+
result = parseFloat(value.slice(0, -1));
|
|
10
|
+
} else if (value.toLowerCase().endsWith("m")) {
|
|
11
|
+
const minutes = parseFloat(value.slice(0, -1));
|
|
12
|
+
result = minutes / 60;
|
|
13
|
+
} else if (value.toLowerCase().endsWith("s")) {
|
|
14
|
+
const seconds = parseFloat(value.slice(0, -1));
|
|
15
|
+
result = seconds / 3600;
|
|
16
|
+
} else {
|
|
17
|
+
result = 0;
|
|
18
|
+
}
|
|
19
|
+
return asNumber ? result : String(Number(result.toFixed(17)));
|
|
20
|
+
}
|
|
21
|
+
function convertFromHours(value) {
|
|
22
|
+
const hours = parseFloat(value);
|
|
23
|
+
if (isNaN(hours) || hours === 0) {
|
|
24
|
+
return "0";
|
|
25
|
+
}
|
|
26
|
+
if (hours >= 1) {
|
|
27
|
+
return `${hours}h`;
|
|
28
|
+
}
|
|
29
|
+
const minutes = hours * 60;
|
|
30
|
+
if (minutes >= 1) {
|
|
31
|
+
return `${Math.round(minutes)}m`;
|
|
32
|
+
}
|
|
33
|
+
const seconds = hours * 3600;
|
|
34
|
+
return `${Math.round(seconds)}s`;
|
|
35
|
+
}
|
|
36
|
+
function convertToWholeFromHours(value) {
|
|
37
|
+
const hours = parseFloat(value);
|
|
38
|
+
if (isNaN(hours) || hours === 0) {
|
|
39
|
+
return "0";
|
|
40
|
+
}
|
|
41
|
+
const minutes = hours * 60;
|
|
42
|
+
if (Math.abs(minutes - Math.round(minutes)) < 1e-10) {
|
|
43
|
+
return `${Math.round(minutes)}m`;
|
|
44
|
+
}
|
|
45
|
+
const seconds = hours * 3600;
|
|
46
|
+
if (Math.abs(seconds - Math.round(seconds)) < 1e-10) {
|
|
47
|
+
return `${Math.round(seconds)}s`;
|
|
48
|
+
}
|
|
49
|
+
return `${hours}h`;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
exports.convertToHours = convertToHours; exports.convertFromHours = convertFromHours; exports.convertToWholeFromHours = convertToWholeFromHours;
|
|
57
|
+
//# sourceMappingURL=chunk-TV4NNZTS.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/ahnjun/projects/egose-shadcn/package/dist/chunk-TV4NNZTS.js","../lib/number.ts"],"names":[],"mappings":"AAAA;ACGO,SAAS,cAAA,CAAe,KAAA,EAAe,SAAA,EAAoB,KAAA,EAAwB;AACxF,EAAA,IAAI,MAAA;AAEJ,EAAA,GAAA,CAAI,CAAC,KAAA,EAAO;AACV,IAAA,OAAA,EAAS,CAAA;AAAA,EACX,EAAA,KAAA,GAAA,CAES,CAAC,KAAA,CAAM,MAAA,CAAO,KAAK,CAAC,CAAA,EAAG;AAC9B,IAAA,OAAA,EAAS,UAAA,CAAW,KAAK,CAAA;AAAA,EAC3B,EAAA,KAAA,GAAA,CAAW,KAAA,CAAM,WAAA,CAAY,CAAA,CAAE,QAAA,CAAS,GAAG,CAAA,EAAG;AAE5C,IAAA,OAAA,EAAS,UAAA,CAAW,KAAA,CAAM,KAAA,CAAM,CAAA,EAAG,CAAA,CAAE,CAAC,CAAA;AAAA,EACxC,EAAA,KAAA,GAAA,CAAW,KAAA,CAAM,WAAA,CAAY,CAAA,CAAE,QAAA,CAAS,GAAG,CAAA,EAAG;AAE5C,IAAA,MAAM,QAAA,EAAU,UAAA,CAAW,KAAA,CAAM,KAAA,CAAM,CAAA,EAAG,CAAA,CAAE,CAAC,CAAA;AAC7C,IAAA,OAAA,EAAS,QAAA,EAAU,EAAA;AAAA,EACrB,EAAA,KAAA,GAAA,CAAW,KAAA,CAAM,WAAA,CAAY,CAAA,CAAE,QAAA,CAAS,GAAG,CAAA,EAAG;AAE5C,IAAA,MAAM,QAAA,EAAU,UAAA,CAAW,KAAA,CAAM,KAAA,CAAM,CAAA,EAAG,CAAA,CAAE,CAAC,CAAA;AAC7C,IAAA,OAAA,EAAS,QAAA,EAAU,IAAA;AAAA,EACrB,EAAA,KAAO;AAEL,IAAA,OAAA,EAAS,CAAA;AAAA,EACX;AAGA,EAAA,OAAO,SAAA,EAAW,OAAA,EAAS,MAAA,CAAO,MAAA,CAAO,MAAA,CAAO,OAAA,CAAQ,EAAE,CAAC,CAAC,CAAA;AAC9D;AAEO,SAAS,gBAAA,CAAiB,KAAA,EAAuB;AACtD,EAAA,MAAM,MAAA,EAAQ,UAAA,CAAW,KAAK,CAAA;AAE9B,EAAA,GAAA,CAAI,KAAA,CAAM,KAAK,EAAA,GAAK,MAAA,IAAU,CAAA,EAAG;AAC/B,IAAA,OAAO,GAAA;AAAA,EACT;AAEA,EAAA,GAAA,CAAI,MAAA,GAAS,CAAA,EAAG;AACd,IAAA,OAAO,CAAA,EAAA;AACT,EAAA;AAEM,EAAA;AACF,EAAA;AACK,IAAA;AACT,EAAA;AAEM,EAAA;AACI,EAAA;AACZ;AAEgB;AACR,EAAA;AAEI,EAAA;AACD,IAAA;AACT,EAAA;AAGM,EAAA;AACG,EAAA;AACA,IAAA;AACT,EAAA;AAGM,EAAA;AACG,EAAA;AACA,IAAA;AACT,EAAA;AAGU,EAAA;AACZ;ADvBY;AACA;AACA;AACA;AACA;AACA","file":"/home/ahnjun/projects/egose-shadcn/package/dist/chunk-TV4NNZTS.js","sourcesContent":[null,"export function convertToHours(value: string): string;\nexport function convertToHours(value: string, asNumber: true): number;\nexport function convertToHours(value: string, asNumber: false): string;\nexport function convertToHours(value: string, asNumber: boolean = false): string | number {\n let result: number;\n\n if (!value) {\n result = 0;\n }\n // Check if the input is a valid number without any suffix (e.g., \"1.5\")\n else if (!isNaN(Number(value))) {\n result = parseFloat(value);\n } else if (value.toLowerCase().endsWith('h')) {\n // Check if it ends with 'h' or 'H' (hours)\n result = parseFloat(value.slice(0, -1));\n } else if (value.toLowerCase().endsWith('m')) {\n // Check if it ends with 'm' or 'M' (minutes)\n const minutes = parseFloat(value.slice(0, -1));\n result = minutes / 60; // Convert minutes to hours\n } else if (value.toLowerCase().endsWith('s')) {\n // Check if it ends with 's' or 'S' (seconds)\n const seconds = parseFloat(value.slice(0, -1));\n result = seconds / 3600; // Convert seconds to hours\n } else {\n // For any other format, return 0\n result = 0;\n }\n\n // Return the result either as a number or string based on the 'asNumber' option\n return asNumber ? result : String(Number(result.toFixed(17))); // Convert to number to remove trailing zeros\n}\n\nexport function convertFromHours(value: string): string {\n const hours = parseFloat(value);\n\n if (isNaN(hours) || hours === 0) {\n return '0';\n }\n\n if (hours >= 1) {\n return `${hours}h`;\n }\n\n const minutes = hours * 60;\n if (minutes >= 1) {\n return `${Math.round(minutes)}m`;\n }\n\n const seconds = hours * 3600;\n return `${Math.round(seconds)}s`;\n}\n\nexport function convertToWholeFromHours(value: string): string {\n const hours = parseFloat(value);\n\n if (isNaN(hours) || hours === 0) {\n return '0';\n }\n\n // Convert to minutes if the value represents a whole number of minutes\n const minutes = hours * 60;\n if (Math.abs(minutes - Math.round(minutes)) < 1e-10) {\n return `${Math.round(minutes)}m`;\n }\n\n // Convert to seconds if the value represents a whole number of seconds\n const seconds = hours * 3600;\n if (Math.abs(seconds - Math.round(seconds)) < 1e-10) {\n return `${Math.round(seconds)}s`;\n }\n\n // Otherwise, return the value with the 'h' suffix for hours\n return `${hours}h`;\n}\n"]}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
2
|
+
|
|
3
|
+
var _chunkKRSIQ2CBjs = require('./chunk-KRSIQ2CB.js');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
var _chunkTV4NNZTSjs = require('./chunk-TV4NNZTS.js');
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
var _chunk2NMEKWO5js = require('./chunk-2NMEKWO5.js');
|
|
14
|
+
|
|
15
|
+
// components/form/time-text-input.tsx
|
|
16
|
+
var _react = require('react'); var _react2 = _interopRequireDefault(_react);
|
|
17
|
+
function FormTimeTextInput(_a) {
|
|
18
|
+
var _b = _a, { value: parentValue = 0, onChange } = _b, rest = _chunk2NMEKWO5js.__objRest.call(void 0, _b, ["value", "onChange"]);
|
|
19
|
+
const [value, setValue] = _react.useState.call(void 0, String(parentValue));
|
|
20
|
+
_react.useEffect.call(void 0, () => {
|
|
21
|
+
setValue(String(parentValue != null ? parentValue : ""));
|
|
22
|
+
}, [parentValue]);
|
|
23
|
+
const handleChange = (e) => {
|
|
24
|
+
setValue(e.target.value);
|
|
25
|
+
};
|
|
26
|
+
const handleBlur = (e) => {
|
|
27
|
+
const newValue = _chunkTV4NNZTSjs.convertToHours.call(void 0, e.target.value);
|
|
28
|
+
const numericValue = Number(newValue);
|
|
29
|
+
setValue(newValue);
|
|
30
|
+
onChange == null ? void 0 : onChange(numericValue);
|
|
31
|
+
};
|
|
32
|
+
const displayText = _chunkTV4NNZTSjs.convertFromHours.call(void 0, value);
|
|
33
|
+
const displayWhole = _chunkTV4NNZTSjs.convertToWholeFromHours.call(void 0, value);
|
|
34
|
+
const title = displayText !== displayWhole ? `${displayText} (${displayWhole})` : displayText;
|
|
35
|
+
return /* @__PURE__ */ _react2.default.createElement(_chunkKRSIQ2CBjs.FormTextInput, _chunk2NMEKWO5js.__spreadProps.call(void 0, _chunk2NMEKWO5js.__spreadValues.call(void 0, {}, rest), { value, onChange: handleChange, onBlur: handleBlur, title }));
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
exports.FormTimeTextInput = FormTimeTextInput;
|
|
41
|
+
//# sourceMappingURL=chunk-TYI6YBBZ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/ahnjun/projects/egose-shadcn/package/dist/chunk-TYI6YBBZ.js","../components/form/time-text-input.tsx"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACE;AACA;AACA;AACF,sDAA4B;AAC5B;AACE;AACA;AACA;AACF,sDAA4B;AAC5B;AACA;ACZA,4EAAwD;AAUjD,SAAS,iBAAA,CAAkB,EAAA,EAAuE;AAAvE,EAAA,IAAA,GAAA,EAAA,EAAA,EAAE,EAAA,KAAA,EAAO,YAAA,EAAc,CAAA,EAAG,SAZ5D,EAAA,EAYkC,EAAA,EAAuC,KAAA,EAAA,wCAAA,EAAvC,EAAuC,CAArC,OAAA,EAAwB,UAAA,CAAA,CAAA;AAC1D,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,EAAA,EAAI,6BAAA,MAAiB,CAAO,WAAW,CAAC,CAAA;AAE9D,EAAA,8BAAA,CAAU,EAAA,GAAM;AACd,IAAA,QAAA,CAAS,MAAA,CAAO,YAAA,GAAA,KAAA,EAAA,YAAA,EAAe,EAAE,CAAC,CAAA;AAAA,EACpC,CAAA,EAAG,CAAC,WAAW,CAAC,CAAA;AAEhB,EAAA,MAAM,aAAA,EAAe,CAAC,CAAA,EAAA,GAAqC;AACzD,IAAA,QAAA,CAAS,CAAA,CAAE,MAAA,CAAO,KAAK,CAAA;AAAA,EACzB,CAAA;AAEA,EAAA,MAAM,WAAA,EAAa,CAAC,CAAA,EAAA,GAAqC;AACvD,IAAA,MAAM,SAAA,EAAW,6CAAA,CAAe,CAAE,MAAA,CAAO,KAAK,CAAA;AAC9C,IAAA,MAAM,aAAA,EAAe,MAAA,CAAO,QAAQ,CAAA;AAEpC,IAAA,QAAA,CAAS,QAAQ,CAAA;AACjB,IAAA,SAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,QAAA,CAAW,YAAA,CAAA;AAAA,EACb,CAAA;AAEA,EAAA,MAAM,YAAA,EAAc,+CAAA,KAAsB,CAAA;AAC1C,EAAA,MAAM,aAAA,EAAe,sDAAA,KAA6B,CAAA;AAClD,EAAA,MAAM,MAAA,EAAQ,YAAA,IAAgB,aAAA,EAAe,CAAA,EAAA;AAErC,EAAA;AACV;ADAgD;AACA;AACA;AACA","file":"/home/ahnjun/projects/egose-shadcn/package/dist/chunk-TYI6YBBZ.js","sourcesContent":[null,"'use client';\n\nimport React, { useState, useEffect, ChangeEvent } from 'react';\nimport { FormTextInput } from './text-input';\nimport type { FormTextInputProps } from './text-input';\nimport { convertToHours, convertFromHours, convertToWholeFromHours } from '../../lib/number';\n\nexport interface FormTimeTextInputProps extends Omit<FormTextInputProps, 'onChange' | 'value'> {\n value?: number;\n onChange?: (value: number) => void;\n}\n\nexport function FormTimeTextInput({ value: parentValue = 0, onChange, ...rest }: FormTimeTextInputProps) {\n const [value, setValue] = useState<string>(String(parentValue));\n\n useEffect(() => {\n setValue(String(parentValue ?? ''));\n }, [parentValue]);\n\n const handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n setValue(e.target.value);\n };\n\n const handleBlur = (e: ChangeEvent<HTMLInputElement>) => {\n const newValue = convertToHours(e.target.value);\n const numericValue = Number(newValue);\n\n setValue(newValue);\n onChange?.(numericValue);\n };\n\n const displayText = convertFromHours(value);\n const displayWhole = convertToWholeFromHours(value);\n const title = displayText !== displayWhole ? `${displayText} (${displayWhole})` : displayText;\n\n return <FormTextInput {...rest} value={value} onChange={handleChange} onBlur={handleBlur} title={title} />;\n}\n"]}
|
|
@@ -2,9 +2,9 @@ import React__default from 'react';
|
|
|
2
2
|
import { FieldValues, Path, RegisterOptions } from 'react-hook-form';
|
|
3
3
|
import { FormNativeSelectProps } from './native-select.mjs';
|
|
4
4
|
|
|
5
|
-
declare function HookFormNativeSelect<T extends FieldValues>({ id, name,
|
|
5
|
+
declare function HookFormNativeSelect<T extends FieldValues>({ id, name, rules, label, error, classNames, disabled, ...others }: Omit<FormNativeSelectProps, 'name' | 'selectProps'> & {
|
|
6
6
|
name: Path<T>;
|
|
7
|
-
|
|
7
|
+
rules?: RegisterOptions<T, Path<T>> | undefined;
|
|
8
8
|
error?: string;
|
|
9
9
|
}): React__default.JSX.Element | null;
|
|
10
10
|
|
|
@@ -2,9 +2,9 @@ import React__default from 'react';
|
|
|
2
2
|
import { FieldValues, Path, RegisterOptions } from 'react-hook-form';
|
|
3
3
|
import { FormNativeSelectProps } from './native-select.js';
|
|
4
4
|
|
|
5
|
-
declare function HookFormNativeSelect<T extends FieldValues>({ id, name,
|
|
5
|
+
declare function HookFormNativeSelect<T extends FieldValues>({ id, name, rules, label, error, classNames, disabled, ...others }: Omit<FormNativeSelectProps, 'name' | 'selectProps'> & {
|
|
6
6
|
name: Path<T>;
|
|
7
|
-
|
|
7
|
+
rules?: RegisterOptions<T, Path<T>> | undefined;
|
|
8
8
|
error?: string;
|
|
9
9
|
}): React__default.JSX.Element | null;
|
|
10
10
|
|
|
@@ -23,7 +23,7 @@ function HookFormNativeSelect(_a) {
|
|
|
23
23
|
var _b = _a, {
|
|
24
24
|
id,
|
|
25
25
|
name,
|
|
26
|
-
|
|
26
|
+
rules,
|
|
27
27
|
label,
|
|
28
28
|
error,
|
|
29
29
|
classNames,
|
|
@@ -31,7 +31,7 @@ function HookFormNativeSelect(_a) {
|
|
|
31
31
|
} = _b, others = _chunk2NMEKWO5js.__objRest.call(void 0, _b, [
|
|
32
32
|
"id",
|
|
33
33
|
"name",
|
|
34
|
-
"
|
|
34
|
+
"rules",
|
|
35
35
|
"label",
|
|
36
36
|
"error",
|
|
37
37
|
"classNames",
|
|
@@ -62,7 +62,7 @@ function HookFormNativeSelect(_a) {
|
|
|
62
62
|
"ring-danger text-danger": showError
|
|
63
63
|
})
|
|
64
64
|
},
|
|
65
|
-
selectProps: register(name,
|
|
65
|
+
selectProps: register(name, rules)
|
|
66
66
|
})
|
|
67
67
|
), showError && /* @__PURE__ */ _react2.default.createElement(_chunkP2BPVQXHjs.FormError, { field: name, className: "mt-1", message: errorMessage }));
|
|
68
68
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/ahnjun/projects/egose-shadcn/package/dist/components/form/hook-native-select.js","../../../components/form/hook-native-select.tsx"],"names":[],"mappings":"AAAA,qLAAY;AACZ;AACE;AACF,0DAAgC;AAChC,mCAAgC;AAChC;AACE;AACF,0DAAgC;AAChC;AACE;AACF,0DAAgC;AAChC;AACE;AACA;AACA;AACF,0DAAgC;AAChC;AACA;ACfA,4EAAkB;AAClB,gFAAiB;AACjB,gDAAmE;AAM5D,SAAS,oBAAA,CAA4C,EAAA,EAazD;AAbyD,EAAA,IAAA,GAAA,EAAA,EAAA,EAC1D;AAAA,IAAA,EAAA;AAAA,IACA,IAAA;AAAA,IACA,
|
|
1
|
+
{"version":3,"sources":["/home/ahnjun/projects/egose-shadcn/package/dist/components/form/hook-native-select.js","../../../components/form/hook-native-select.tsx"],"names":[],"mappings":"AAAA,qLAAY;AACZ;AACE;AACF,0DAAgC;AAChC,mCAAgC;AAChC;AACE;AACF,0DAAgC;AAChC;AACE;AACF,0DAAgC;AAChC;AACE;AACA;AACA;AACF,0DAAgC;AAChC;AACA;ACfA,4EAAkB;AAClB,gFAAiB;AACjB,gDAAmE;AAM5D,SAAS,oBAAA,CAA4C,EAAA,EAazD;AAbyD,EAAA,IAAA,GAAA,EAAA,EAAA,EAC1D;AAAA,IAAA,EAAA;AAAA,IACA,IAAA;AAAA,IACA,KAAA;AAAA,IACA,KAAA;AAAA,IACA,KAAA;AAAA,IACA,UAAA;AAAA,IACA;AAAA,EAjBF,EAAA,EAU4D,EAAA,EAQvD,OAAA,EAAA,wCAAA,EARuD,EAQvD;AAAA,IAPH,IAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAA;AAAA,IACA,OAAA;AAAA,IACA,OAAA;AAAA,IACA,YAAA;AAAA,IACA;AAAA,EAAA,CAAA,CAAA;AAOA,EAAA,MAAM,QAAA,EAAU,2CAAA,CAAkB;AAClC,EAAA,GAAA,CAAI,CAAC,OAAA,EAAS,OAAO,IAAA;AAErB,EAAA,MAAM;AAAA,IACJ,QAAA;AAAA,IACA,SAAA,EAAW,EAAE,OAAO;AAAA,EACtB,EAAA,EAAI,OAAA;AAEJ,EAAA,MAAM,WAAA,EAAa,2BAAA,MAAK,EAAQ,IAAI,CAAA;AACpC,EAAA,MAAM,aAAA,EAAe,MAAA,GAAA,KAAA,EAAA,MAAA,EAAU,WAAA,GAAc,MAAA,CAAO,WAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,UAAA,CAAY,OAAO,CAAA;AACvE,EAAA,MAAM,UAAA,EAAY,CAAC,CAAC,WAAA,GAAc,CAAC,QAAA;AAEnC,EAAA,uBACE,eAAA,CAAA,aAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,WAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,UAAA,CAAY,QAAA,CAAA,kBAC1B,eAAA,CAAA,aAAA;AAAA,IAAC,iCAAA;AAAA,IAAA,4CAAA,6CAAA;AAAA,MACC,EAAA;AAAA,MACA,IAAA;AAAA,MACA,KAAA;AAAA,MACA;AAAA,IAAA,CAAA,EACI,MAAA,CAAA,EALL;AAAA,MAMC,UAAA,EAAY;AAAA,QACV,KAAA,EAAO,iCAAA,WAAG,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,UAAA,CAAY,KAAA,EAAO;AAAA,UAC3B,aAAA,EAAe;AAAA,QACjB,CAAC,CAAA;AAAA,QACD,KAAA,EAAO,iCAAA,WAAG,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,UAAA,CAAY,KAAA,EAAO;AAAA,UAC3B,yBAAA,EAA2B;AAAA,QAC7B,CAAC;AAAA,MACH,CAAA;AAAA,MACA,WAAA,EAAa,QAAA,CAAS,IAAA,EAAM,KAAK;AAAA,IAAA,CAAA;AAAA,EACnC,CAAA,EACC,UAAA,mBAAa,eAAA,CAAA,aAAA,CAAC,0BAAA,EAAA,EAAU,KAAA,EAAO,IAAA,EAAM,SAAA,EAAU,MAAA,EAAO,OAAA,EAAS,aAAA,CAAc,CAChF,CAAA;AAEJ;ADWA;AACE;AACF,oDAAC","file":"/home/ahnjun/projects/egose-shadcn/package/dist/components/form/hook-native-select.js","sourcesContent":[null,"'use client';\n\nimport React from 'react';\nimport _get from 'lodash-es/get';\nimport { FieldValues, RegisterOptions, Path, useFormContext } from 'react-hook-form';\nimport { cn } from '../../lib/utils';\nimport { FormError } from './error';\nimport { FormNativeSelect } from './native-select';\nimport type { FormNativeSelectProps } from './native-select';\n\nexport function HookFormNativeSelect<T extends FieldValues>({\n id,\n name,\n rules,\n label,\n error,\n classNames,\n disabled,\n ...others\n}: Omit<FormNativeSelectProps, 'name' | 'selectProps'> & {\n name: Path<T>;\n rules?: RegisterOptions<T, Path<T>> | undefined;\n error?: string;\n}) {\n const methods = useFormContext<T>();\n if (!methods) return null;\n\n const {\n register,\n formState: { errors },\n } = methods;\n\n const fieldError = _get(errors, name);\n const errorMessage = error ?? (fieldError && String(fieldError?.message));\n const showError = !!fieldError && !disabled;\n\n return (\n <div className={classNames?.wrapper}>\n <FormNativeSelect\n id={id}\n name={name}\n label={label}\n disabled={disabled}\n {...others}\n classNames={{\n label: cn(classNames?.label, {\n 'text-danger': showError,\n }),\n input: cn(classNames?.input, {\n 'ring-danger text-danger': showError,\n }),\n }}\n selectProps={register(name, rules)}\n />\n {showError && <FormError field={name} className=\"mt-1\" message={errorMessage} />}\n </div>\n );\n}\n"]}
|
|
@@ -23,7 +23,7 @@ function HookFormNativeSelect(_a) {
|
|
|
23
23
|
var _b = _a, {
|
|
24
24
|
id,
|
|
25
25
|
name,
|
|
26
|
-
|
|
26
|
+
rules,
|
|
27
27
|
label,
|
|
28
28
|
error,
|
|
29
29
|
classNames,
|
|
@@ -31,7 +31,7 @@ function HookFormNativeSelect(_a) {
|
|
|
31
31
|
} = _b, others = __objRest(_b, [
|
|
32
32
|
"id",
|
|
33
33
|
"name",
|
|
34
|
-
"
|
|
34
|
+
"rules",
|
|
35
35
|
"label",
|
|
36
36
|
"error",
|
|
37
37
|
"classNames",
|
|
@@ -62,7 +62,7 @@ function HookFormNativeSelect(_a) {
|
|
|
62
62
|
"ring-danger text-danger": showError
|
|
63
63
|
})
|
|
64
64
|
},
|
|
65
|
-
selectProps: register(name,
|
|
65
|
+
selectProps: register(name, rules)
|
|
66
66
|
})
|
|
67
67
|
), showError && /* @__PURE__ */ React.createElement(FormError, { field: name, className: "mt-1", message: errorMessage }));
|
|
68
68
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../components/form/hook-native-select.tsx"],"sourcesContent":["'use client';\n\nimport React from 'react';\nimport _get from 'lodash-es/get';\nimport { FieldValues, RegisterOptions, Path, useFormContext } from 'react-hook-form';\nimport { cn } from '../../lib/utils';\nimport { FormError } from './error';\nimport { FormNativeSelect } from './native-select';\nimport type { FormNativeSelectProps } from './native-select';\n\nexport function HookFormNativeSelect<T extends FieldValues>({\n id,\n name,\n
|
|
1
|
+
{"version":3,"sources":["../../../components/form/hook-native-select.tsx"],"sourcesContent":["'use client';\n\nimport React from 'react';\nimport _get from 'lodash-es/get';\nimport { FieldValues, RegisterOptions, Path, useFormContext } from 'react-hook-form';\nimport { cn } from '../../lib/utils';\nimport { FormError } from './error';\nimport { FormNativeSelect } from './native-select';\nimport type { FormNativeSelectProps } from './native-select';\n\nexport function HookFormNativeSelect<T extends FieldValues>({\n id,\n name,\n rules,\n label,\n error,\n classNames,\n disabled,\n ...others\n}: Omit<FormNativeSelectProps, 'name' | 'selectProps'> & {\n name: Path<T>;\n rules?: RegisterOptions<T, Path<T>> | undefined;\n error?: string;\n}) {\n const methods = useFormContext<T>();\n if (!methods) return null;\n\n const {\n register,\n formState: { errors },\n } = methods;\n\n const fieldError = _get(errors, name);\n const errorMessage = error ?? (fieldError && String(fieldError?.message));\n const showError = !!fieldError && !disabled;\n\n return (\n <div className={classNames?.wrapper}>\n <FormNativeSelect\n id={id}\n name={name}\n label={label}\n disabled={disabled}\n {...others}\n classNames={{\n label: cn(classNames?.label, {\n 'text-danger': showError,\n }),\n input: cn(classNames?.input, {\n 'ring-danger text-danger': showError,\n }),\n }}\n selectProps={register(name, rules)}\n />\n {showError && <FormError field={name} className=\"mt-1\" message={errorMessage} />}\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAEA,OAAO,WAAW;AAClB,OAAO,UAAU;AACjB,SAA6C,sBAAsB;AAM5D,SAAS,qBAA4C,IAazD;AAbyD,eAC1D;AAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAjBF,IAU4D,IAQvD,mBARuD,IAQvD;AAAA,IAPH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAOA,QAAM,UAAU,eAAkB;AAClC,MAAI,CAAC,QAAS,QAAO;AAErB,QAAM;AAAA,IACJ;AAAA,IACA,WAAW,EAAE,OAAO;AAAA,EACtB,IAAI;AAEJ,QAAM,aAAa,KAAK,QAAQ,IAAI;AACpC,QAAM,eAAe,wBAAU,cAAc,OAAO,yCAAY,OAAO;AACvE,QAAM,YAAY,CAAC,CAAC,cAAc,CAAC;AAEnC,SACE,oCAAC,SAAI,WAAW,yCAAY,WAC1B;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,OACI,SALL;AAAA,MAMC,YAAY;AAAA,QACV,OAAO,GAAG,yCAAY,OAAO;AAAA,UAC3B,eAAe;AAAA,QACjB,CAAC;AAAA,QACD,OAAO,GAAG,yCAAY,OAAO;AAAA,UAC3B,2BAA2B;AAAA,QAC7B,CAAC;AAAA,MACH;AAAA,MACA,aAAa,SAAS,MAAM,KAAK;AAAA;AAAA,EACnC,GACC,aAAa,oCAAC,aAAU,OAAO,MAAM,WAAU,QAAO,SAAS,cAAc,CAChF;AAEJ;","names":[]}
|
|
@@ -2,9 +2,9 @@ import React__default from 'react';
|
|
|
2
2
|
import { FieldValues, Path, RegisterOptions } from 'react-hook-form';
|
|
3
3
|
import { FormTextInputProps } from './text-input.mjs';
|
|
4
4
|
|
|
5
|
-
declare function HookFormTextInput<T extends FieldValues>({ id, name,
|
|
5
|
+
declare function HookFormTextInput<T extends FieldValues>({ id, name, rules, label, error, classNames, disabled, ...others }: Omit<FormTextInputProps, 'name' | 'inputProps'> & {
|
|
6
6
|
name: Path<T>;
|
|
7
|
-
|
|
7
|
+
rules?: RegisterOptions<T, Path<T>> | undefined;
|
|
8
8
|
error?: string;
|
|
9
9
|
}): React__default.JSX.Element | null;
|
|
10
10
|
|
|
@@ -2,9 +2,9 @@ import React__default from 'react';
|
|
|
2
2
|
import { FieldValues, Path, RegisterOptions } from 'react-hook-form';
|
|
3
3
|
import { FormTextInputProps } from './text-input.js';
|
|
4
4
|
|
|
5
|
-
declare function HookFormTextInput<T extends FieldValues>({ id, name,
|
|
5
|
+
declare function HookFormTextInput<T extends FieldValues>({ id, name, rules, label, error, classNames, disabled, ...others }: Omit<FormTextInputProps, 'name' | 'inputProps'> & {
|
|
6
6
|
name: Path<T>;
|
|
7
|
-
|
|
7
|
+
rules?: RegisterOptions<T, Path<T>> | undefined;
|
|
8
8
|
error?: string;
|
|
9
9
|
}): React__default.JSX.Element | null;
|
|
10
10
|
|
|
@@ -24,7 +24,7 @@ function HookFormTextInput(_a) {
|
|
|
24
24
|
var _b = _a, {
|
|
25
25
|
id,
|
|
26
26
|
name,
|
|
27
|
-
|
|
27
|
+
rules,
|
|
28
28
|
label,
|
|
29
29
|
error,
|
|
30
30
|
classNames,
|
|
@@ -32,7 +32,7 @@ function HookFormTextInput(_a) {
|
|
|
32
32
|
} = _b, others = _chunk2NMEKWO5js.__objRest.call(void 0, _b, [
|
|
33
33
|
"id",
|
|
34
34
|
"name",
|
|
35
|
-
"
|
|
35
|
+
"rules",
|
|
36
36
|
"label",
|
|
37
37
|
"error",
|
|
38
38
|
"classNames",
|
|
@@ -63,7 +63,7 @@ function HookFormTextInput(_a) {
|
|
|
63
63
|
"ring-danger text-danger": showError
|
|
64
64
|
})
|
|
65
65
|
},
|
|
66
|
-
inputProps: register(name,
|
|
66
|
+
inputProps: register(name, rules)
|
|
67
67
|
})
|
|
68
68
|
), showError && /* @__PURE__ */ _react2.default.createElement(_chunkP2BPVQXHjs.FormError, { field: name, className: "mt-1", message: errorMessage }));
|
|
69
69
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/ahnjun/projects/egose-shadcn/package/dist/components/form/hook-text-input.js","../../../components/form/hook-text-input.tsx"],"names":[],"mappings":"AAAA,qLAAY;AACZ;AACE;AACF,0DAAgC;AAChC,mCAAgC;AAChC,mCAAgC;AAChC;AACE;AACF,0DAAgC;AAChC;AACE;AACF,0DAAgC;AAChC;AACE;AACA;AACA;AACF,0DAAgC;AAChC;AACA;AChBA,4EAAkB;AAClB,gFAAiB;AACjB,gDAAmE;AAM5D,SAAS,iBAAA,CAAyC,EAAA,EAatD;AAbsD,EAAA,IAAA,GAAA,EAAA,EAAA,EACvD;AAAA,IAAA,EAAA;AAAA,IACA,IAAA;AAAA,IACA,
|
|
1
|
+
{"version":3,"sources":["/home/ahnjun/projects/egose-shadcn/package/dist/components/form/hook-text-input.js","../../../components/form/hook-text-input.tsx"],"names":[],"mappings":"AAAA,qLAAY;AACZ;AACE;AACF,0DAAgC;AAChC,mCAAgC;AAChC,mCAAgC;AAChC;AACE;AACF,0DAAgC;AAChC;AACE;AACF,0DAAgC;AAChC;AACE;AACA;AACA;AACF,0DAAgC;AAChC;AACA;AChBA,4EAAkB;AAClB,gFAAiB;AACjB,gDAAmE;AAM5D,SAAS,iBAAA,CAAyC,EAAA,EAatD;AAbsD,EAAA,IAAA,GAAA,EAAA,EAAA,EACvD;AAAA,IAAA,EAAA;AAAA,IACA,IAAA;AAAA,IACA,KAAA;AAAA,IACA,KAAA;AAAA,IACA,KAAA;AAAA,IACA,UAAA;AAAA,IACA;AAAA,EAjBF,EAAA,EAUyD,EAAA,EAQpD,OAAA,EAAA,wCAAA,EARoD,EAQpD;AAAA,IAPH,IAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAA;AAAA,IACA,OAAA;AAAA,IACA,OAAA;AAAA,IACA,YAAA;AAAA,IACA;AAAA,EAAA,CAAA,CAAA;AAOA,EAAA,MAAM,QAAA,EAAU,2CAAA,CAAkB;AAClC,EAAA,GAAA,CAAI,CAAC,OAAA,EAAS,OAAO,IAAA;AAErB,EAAA,MAAM;AAAA,IACJ,QAAA;AAAA,IACA,SAAA,EAAW,EAAE,OAAO;AAAA,EACtB,EAAA,EAAI,OAAA;AAEJ,EAAA,MAAM,WAAA,EAAa,2BAAA,MAAK,EAAQ,IAAI,CAAA;AACpC,EAAA,MAAM,aAAA,EAAe,MAAA,GAAA,KAAA,EAAA,MAAA,EAAU,WAAA,GAAc,MAAA,CAAO,WAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,UAAA,CAAY,OAAO,CAAA;AACvE,EAAA,MAAM,UAAA,EAAY,CAAC,CAAC,WAAA,GAAc,CAAC,QAAA;AAEnC,EAAA,uBACE,eAAA,CAAA,aAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,WAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,UAAA,CAAY,QAAA,CAAA,kBAC1B,eAAA,CAAA,aAAA;AAAA,IAAC,8BAAA;AAAA,IAAA,4CAAA,6CAAA;AAAA,MACC,EAAA;AAAA,MACA,IAAA;AAAA,MACA,KAAA;AAAA,MACA;AAAA,IAAA,CAAA,EACI,MAAA,CAAA,EALL;AAAA,MAMC,UAAA,EAAY;AAAA,QACV,KAAA,EAAO,iCAAA,WAAG,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,UAAA,CAAY,KAAA,EAAO;AAAA,UAC3B,aAAA,EAAe;AAAA,QACjB,CAAC,CAAA;AAAA,QACD,KAAA,EAAO,iCAAA,WAAG,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,UAAA,CAAY,KAAA,EAAO;AAAA,UAC3B,yBAAA,EAA2B;AAAA,QAC7B,CAAC;AAAA,MACH,CAAA;AAAA,MACA,UAAA,EAAY,QAAA,CAAS,IAAA,EAAM,KAAK;AAAA,IAAA,CAAA;AAAA,EAClC,CAAA,EACC,UAAA,mBAAa,eAAA,CAAA,aAAA,CAAC,0BAAA,EAAA,EAAU,KAAA,EAAO,IAAA,EAAM,SAAA,EAAU,MAAA,EAAO,OAAA,EAAS,aAAA,CAAc,CAChF,CAAA;AAEJ;ADYA;AACE;AACF,8CAAC","file":"/home/ahnjun/projects/egose-shadcn/package/dist/components/form/hook-text-input.js","sourcesContent":[null,"'use client';\n\nimport React from 'react';\nimport _get from 'lodash-es/get';\nimport { FieldValues, RegisterOptions, Path, useFormContext } from 'react-hook-form';\nimport { cn } from '../../lib/utils';\nimport { FormError } from './error';\nimport { FormTextInput } from './text-input';\nimport type { FormTextInputProps } from './text-input';\n\nexport function HookFormTextInput<T extends FieldValues>({\n id,\n name,\n rules,\n label,\n error,\n classNames,\n disabled,\n ...others\n}: Omit<FormTextInputProps, 'name' | 'inputProps'> & {\n name: Path<T>;\n rules?: RegisterOptions<T, Path<T>> | undefined;\n error?: string;\n}) {\n const methods = useFormContext<T>();\n if (!methods) return null;\n\n const {\n register,\n formState: { errors },\n } = methods;\n\n const fieldError = _get(errors, name);\n const errorMessage = error ?? (fieldError && String(fieldError?.message));\n const showError = !!fieldError && !disabled;\n\n return (\n <div className={classNames?.wrapper}>\n <FormTextInput\n id={id}\n name={name}\n label={label}\n disabled={disabled}\n {...others}\n classNames={{\n label: cn(classNames?.label, {\n 'text-danger': showError,\n }),\n input: cn(classNames?.input, {\n 'ring-danger text-danger': showError,\n }),\n }}\n inputProps={register(name, rules)}\n />\n {showError && <FormError field={name} className=\"mt-1\" message={errorMessage} />}\n </div>\n );\n}\n"]}
|
|
@@ -24,7 +24,7 @@ function HookFormTextInput(_a) {
|
|
|
24
24
|
var _b = _a, {
|
|
25
25
|
id,
|
|
26
26
|
name,
|
|
27
|
-
|
|
27
|
+
rules,
|
|
28
28
|
label,
|
|
29
29
|
error,
|
|
30
30
|
classNames,
|
|
@@ -32,7 +32,7 @@ function HookFormTextInput(_a) {
|
|
|
32
32
|
} = _b, others = __objRest(_b, [
|
|
33
33
|
"id",
|
|
34
34
|
"name",
|
|
35
|
-
"
|
|
35
|
+
"rules",
|
|
36
36
|
"label",
|
|
37
37
|
"error",
|
|
38
38
|
"classNames",
|
|
@@ -63,7 +63,7 @@ function HookFormTextInput(_a) {
|
|
|
63
63
|
"ring-danger text-danger": showError
|
|
64
64
|
})
|
|
65
65
|
},
|
|
66
|
-
inputProps: register(name,
|
|
66
|
+
inputProps: register(name, rules)
|
|
67
67
|
})
|
|
68
68
|
), showError && /* @__PURE__ */ React.createElement(FormError, { field: name, className: "mt-1", message: errorMessage }));
|
|
69
69
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../components/form/hook-text-input.tsx"],"sourcesContent":["'use client';\n\nimport React from 'react';\nimport _get from 'lodash-es/get';\nimport { FieldValues, RegisterOptions, Path, useFormContext } from 'react-hook-form';\nimport { cn } from '../../lib/utils';\nimport { FormError } from './error';\nimport { FormTextInput } from './text-input';\nimport type { FormTextInputProps } from './text-input';\n\nexport function HookFormTextInput<T extends FieldValues>({\n id,\n name,\n
|
|
1
|
+
{"version":3,"sources":["../../../components/form/hook-text-input.tsx"],"sourcesContent":["'use client';\n\nimport React from 'react';\nimport _get from 'lodash-es/get';\nimport { FieldValues, RegisterOptions, Path, useFormContext } from 'react-hook-form';\nimport { cn } from '../../lib/utils';\nimport { FormError } from './error';\nimport { FormTextInput } from './text-input';\nimport type { FormTextInputProps } from './text-input';\n\nexport function HookFormTextInput<T extends FieldValues>({\n id,\n name,\n rules,\n label,\n error,\n classNames,\n disabled,\n ...others\n}: Omit<FormTextInputProps, 'name' | 'inputProps'> & {\n name: Path<T>;\n rules?: RegisterOptions<T, Path<T>> | undefined;\n error?: string;\n}) {\n const methods = useFormContext<T>();\n if (!methods) return null;\n\n const {\n register,\n formState: { errors },\n } = methods;\n\n const fieldError = _get(errors, name);\n const errorMessage = error ?? (fieldError && String(fieldError?.message));\n const showError = !!fieldError && !disabled;\n\n return (\n <div className={classNames?.wrapper}>\n <FormTextInput\n id={id}\n name={name}\n label={label}\n disabled={disabled}\n {...others}\n classNames={{\n label: cn(classNames?.label, {\n 'text-danger': showError,\n }),\n input: cn(classNames?.input, {\n 'ring-danger text-danger': showError,\n }),\n }}\n inputProps={register(name, rules)}\n />\n {showError && <FormError field={name} className=\"mt-1\" message={errorMessage} />}\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAEA,OAAO,WAAW;AAClB,OAAO,UAAU;AACjB,SAA6C,sBAAsB;AAM5D,SAAS,kBAAyC,IAatD;AAbsD,eACvD;AAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAjBF,IAUyD,IAQpD,mBARoD,IAQpD;AAAA,IAPH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAOA,QAAM,UAAU,eAAkB;AAClC,MAAI,CAAC,QAAS,QAAO;AAErB,QAAM;AAAA,IACJ;AAAA,IACA,WAAW,EAAE,OAAO;AAAA,EACtB,IAAI;AAEJ,QAAM,aAAa,KAAK,QAAQ,IAAI;AACpC,QAAM,eAAe,wBAAU,cAAc,OAAO,yCAAY,OAAO;AACvE,QAAM,YAAY,CAAC,CAAC,cAAc,CAAC;AAEnC,SACE,oCAAC,SAAI,WAAW,yCAAY,WAC1B;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,OACI,SALL;AAAA,MAMC,YAAY;AAAA,QACV,OAAO,GAAG,yCAAY,OAAO;AAAA,UAC3B,eAAe;AAAA,QACjB,CAAC;AAAA,QACD,OAAO,GAAG,yCAAY,OAAO;AAAA,UAC3B,2BAA2B;AAAA,QAC7B,CAAC;AAAA,MACH;AAAA,MACA,YAAY,SAAS,MAAM,KAAK;AAAA;AAAA,EAClC,GACC,aAAa,oCAAC,aAAU,OAAO,MAAM,WAAU,QAAO,SAAS,cAAc,CAChF;AAEJ;","names":[]}
|
|
@@ -2,9 +2,9 @@ import React__default from 'react';
|
|
|
2
2
|
import { FieldValues, Path, RegisterOptions } from 'react-hook-form';
|
|
3
3
|
import { FormTextareaProps } from './textarea.mjs';
|
|
4
4
|
|
|
5
|
-
declare function HookFormTextarea<T extends FieldValues>({ id, name,
|
|
5
|
+
declare function HookFormTextarea<T extends FieldValues>({ id, name, rules, label, error, classNames, disabled, ...others }: Omit<FormTextareaProps, 'name' | 'inputProps'> & {
|
|
6
6
|
name: Path<T>;
|
|
7
|
-
|
|
7
|
+
rules?: RegisterOptions<T, Path<T>> | undefined;
|
|
8
8
|
error?: string;
|
|
9
9
|
}): React__default.JSX.Element | null;
|
|
10
10
|
|
|
@@ -2,9 +2,9 @@ import React__default from 'react';
|
|
|
2
2
|
import { FieldValues, Path, RegisterOptions } from 'react-hook-form';
|
|
3
3
|
import { FormTextareaProps } from './textarea.js';
|
|
4
4
|
|
|
5
|
-
declare function HookFormTextarea<T extends FieldValues>({ id, name,
|
|
5
|
+
declare function HookFormTextarea<T extends FieldValues>({ id, name, rules, label, error, classNames, disabled, ...others }: Omit<FormTextareaProps, 'name' | 'inputProps'> & {
|
|
6
6
|
name: Path<T>;
|
|
7
|
-
|
|
7
|
+
rules?: RegisterOptions<T, Path<T>> | undefined;
|
|
8
8
|
error?: string;
|
|
9
9
|
}): React__default.JSX.Element | null;
|
|
10
10
|
|
|
@@ -24,7 +24,7 @@ function HookFormTextarea(_a) {
|
|
|
24
24
|
var _b = _a, {
|
|
25
25
|
id,
|
|
26
26
|
name,
|
|
27
|
-
|
|
27
|
+
rules,
|
|
28
28
|
label,
|
|
29
29
|
error,
|
|
30
30
|
classNames,
|
|
@@ -32,7 +32,7 @@ function HookFormTextarea(_a) {
|
|
|
32
32
|
} = _b, others = _chunk2NMEKWO5js.__objRest.call(void 0, _b, [
|
|
33
33
|
"id",
|
|
34
34
|
"name",
|
|
35
|
-
"
|
|
35
|
+
"rules",
|
|
36
36
|
"label",
|
|
37
37
|
"error",
|
|
38
38
|
"classNames",
|
|
@@ -63,7 +63,7 @@ function HookFormTextarea(_a) {
|
|
|
63
63
|
"ring-danger text-danger": showError
|
|
64
64
|
})
|
|
65
65
|
},
|
|
66
|
-
inputProps: register(name,
|
|
66
|
+
inputProps: register(name, rules)
|
|
67
67
|
})
|
|
68
68
|
), showError && /* @__PURE__ */ _react2.default.createElement(_chunkP2BPVQXHjs.FormError, { field: name, className: "mt-1", message: errorMessage }));
|
|
69
69
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/ahnjun/projects/egose-shadcn/package/dist/components/form/hook-textarea.js","../../../components/form/hook-textarea.tsx"],"names":[],"mappings":"AAAA,qLAAY;AACZ;AACE;AACF,0DAAgC;AAChC,mCAAgC;AAChC,mCAAgC;AAChC;AACE;AACF,0DAAgC;AAChC;AACE;AACF,0DAAgC;AAChC;AACE;AACA;AACA;AACF,0DAAgC;AAChC;AACA;AChBA,4EAAkB;AAClB,gFAAiB;AACjB,gDAAmE;AAM5D,SAAS,gBAAA,CAAwC,EAAA,EAarD;AAbqD,EAAA,IAAA,GAAA,EAAA,EAAA,EACtD;AAAA,IAAA,EAAA;AAAA,IACA,IAAA;AAAA,IACA,
|
|
1
|
+
{"version":3,"sources":["/home/ahnjun/projects/egose-shadcn/package/dist/components/form/hook-textarea.js","../../../components/form/hook-textarea.tsx"],"names":[],"mappings":"AAAA,qLAAY;AACZ;AACE;AACF,0DAAgC;AAChC,mCAAgC;AAChC,mCAAgC;AAChC;AACE;AACF,0DAAgC;AAChC;AACE;AACF,0DAAgC;AAChC;AACE;AACA;AACA;AACF,0DAAgC;AAChC;AACA;AChBA,4EAAkB;AAClB,gFAAiB;AACjB,gDAAmE;AAM5D,SAAS,gBAAA,CAAwC,EAAA,EAarD;AAbqD,EAAA,IAAA,GAAA,EAAA,EAAA,EACtD;AAAA,IAAA,EAAA;AAAA,IACA,IAAA;AAAA,IACA,KAAA;AAAA,IACA,KAAA;AAAA,IACA,KAAA;AAAA,IACA,UAAA;AAAA,IACA;AAAA,EAjBF,EAAA,EAUwD,EAAA,EAQnD,OAAA,EAAA,wCAAA,EARmD,EAQnD;AAAA,IAPH,IAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAA;AAAA,IACA,OAAA;AAAA,IACA,OAAA;AAAA,IACA,YAAA;AAAA,IACA;AAAA,EAAA,CAAA,CAAA;AAOA,EAAA,MAAM,QAAA,EAAU,2CAAA,CAAkB;AAClC,EAAA,GAAA,CAAI,CAAC,OAAA,EAAS,OAAO,IAAA;AAErB,EAAA,MAAM;AAAA,IACJ,QAAA;AAAA,IACA,SAAA,EAAW,EAAE,OAAO;AAAA,EACtB,EAAA,EAAI,OAAA;AAEJ,EAAA,MAAM,WAAA,EAAa,2BAAA,MAAK,EAAQ,IAAI,CAAA;AACpC,EAAA,MAAM,aAAA,EAAe,MAAA,GAAA,KAAA,EAAA,MAAA,EAAU,WAAA,GAAc,MAAA,CAAO,WAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,UAAA,CAAY,OAAO,CAAA;AACvE,EAAA,MAAM,UAAA,EAAY,CAAC,CAAC,WAAA,GAAc,CAAC,QAAA;AAEnC,EAAA,uBACE,eAAA,CAAA,aAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,WAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,UAAA,CAAY,QAAA,CAAA,kBAC1B,eAAA,CAAA,aAAA;AAAA,IAAC,6BAAA;AAAA,IAAA,4CAAA,6CAAA;AAAA,MACC,EAAA;AAAA,MACA,IAAA;AAAA,MACA,KAAA;AAAA,MACA;AAAA,IAAA,CAAA,EACI,MAAA,CAAA,EALL;AAAA,MAMC,UAAA,EAAY;AAAA,QACV,KAAA,EAAO,iCAAA,WAAG,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,UAAA,CAAY,KAAA,EAAO;AAAA,UAC3B,aAAA,EAAe;AAAA,QACjB,CAAC,CAAA;AAAA,QACD,KAAA,EAAO,iCAAA,WAAG,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,UAAA,CAAY,KAAA,EAAO;AAAA,UAC3B,yBAAA,EAA2B;AAAA,QAC7B,CAAC;AAAA,MACH,CAAA;AAAA,MACA,UAAA,EAAY,QAAA,CAAS,IAAA,EAAM,KAAK;AAAA,IAAA,CAAA;AAAA,EAClC,CAAA,EACC,UAAA,mBAAa,eAAA,CAAA,aAAA,CAAC,0BAAA,EAAA,EAAU,KAAA,EAAO,IAAA,EAAM,SAAA,EAAU,MAAA,EAAO,OAAA,EAAS,aAAA,CAAc,CAChF,CAAA;AAEJ;ADYA;AACE;AACF,4CAAC","file":"/home/ahnjun/projects/egose-shadcn/package/dist/components/form/hook-textarea.js","sourcesContent":[null,"'use client';\n\nimport React from 'react';\nimport _get from 'lodash-es/get';\nimport { FieldValues, RegisterOptions, Path, useFormContext } from 'react-hook-form';\nimport { cn } from '../../lib/utils';\nimport { FormError } from './error';\nimport { FormTextarea } from './textarea';\nimport type { FormTextareaProps } from './textarea';\n\nexport function HookFormTextarea<T extends FieldValues>({\n id,\n name,\n rules,\n label,\n error,\n classNames,\n disabled,\n ...others\n}: Omit<FormTextareaProps, 'name' | 'inputProps'> & {\n name: Path<T>;\n rules?: RegisterOptions<T, Path<T>> | undefined;\n error?: string;\n}) {\n const methods = useFormContext<T>();\n if (!methods) return null;\n\n const {\n register,\n formState: { errors },\n } = methods;\n\n const fieldError = _get(errors, name);\n const errorMessage = error ?? (fieldError && String(fieldError?.message));\n const showError = !!fieldError && !disabled;\n\n return (\n <div className={classNames?.wrapper}>\n <FormTextarea\n id={id}\n name={name}\n label={label}\n disabled={disabled}\n {...others}\n classNames={{\n label: cn(classNames?.label, {\n 'text-danger': showError,\n }),\n input: cn(classNames?.input, {\n 'ring-danger text-danger': showError,\n }),\n }}\n inputProps={register(name, rules)}\n />\n {showError && <FormError field={name} className=\"mt-1\" message={errorMessage} />}\n </div>\n );\n}\n"]}
|
|
@@ -24,7 +24,7 @@ function HookFormTextarea(_a) {
|
|
|
24
24
|
var _b = _a, {
|
|
25
25
|
id,
|
|
26
26
|
name,
|
|
27
|
-
|
|
27
|
+
rules,
|
|
28
28
|
label,
|
|
29
29
|
error,
|
|
30
30
|
classNames,
|
|
@@ -32,7 +32,7 @@ function HookFormTextarea(_a) {
|
|
|
32
32
|
} = _b, others = __objRest(_b, [
|
|
33
33
|
"id",
|
|
34
34
|
"name",
|
|
35
|
-
"
|
|
35
|
+
"rules",
|
|
36
36
|
"label",
|
|
37
37
|
"error",
|
|
38
38
|
"classNames",
|
|
@@ -63,7 +63,7 @@ function HookFormTextarea(_a) {
|
|
|
63
63
|
"ring-danger text-danger": showError
|
|
64
64
|
})
|
|
65
65
|
},
|
|
66
|
-
inputProps: register(name,
|
|
66
|
+
inputProps: register(name, rules)
|
|
67
67
|
})
|
|
68
68
|
), showError && /* @__PURE__ */ React.createElement(FormError, { field: name, className: "mt-1", message: errorMessage }));
|
|
69
69
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../components/form/hook-textarea.tsx"],"sourcesContent":["'use client';\n\nimport React from 'react';\nimport _get from 'lodash-es/get';\nimport { FieldValues, RegisterOptions, Path, useFormContext } from 'react-hook-form';\nimport { cn } from '../../lib/utils';\nimport { FormError } from './error';\nimport { FormTextarea } from './textarea';\nimport type { FormTextareaProps } from './textarea';\n\nexport function HookFormTextarea<T extends FieldValues>({\n id,\n name,\n
|
|
1
|
+
{"version":3,"sources":["../../../components/form/hook-textarea.tsx"],"sourcesContent":["'use client';\n\nimport React from 'react';\nimport _get from 'lodash-es/get';\nimport { FieldValues, RegisterOptions, Path, useFormContext } from 'react-hook-form';\nimport { cn } from '../../lib/utils';\nimport { FormError } from './error';\nimport { FormTextarea } from './textarea';\nimport type { FormTextareaProps } from './textarea';\n\nexport function HookFormTextarea<T extends FieldValues>({\n id,\n name,\n rules,\n label,\n error,\n classNames,\n disabled,\n ...others\n}: Omit<FormTextareaProps, 'name' | 'inputProps'> & {\n name: Path<T>;\n rules?: RegisterOptions<T, Path<T>> | undefined;\n error?: string;\n}) {\n const methods = useFormContext<T>();\n if (!methods) return null;\n\n const {\n register,\n formState: { errors },\n } = methods;\n\n const fieldError = _get(errors, name);\n const errorMessage = error ?? (fieldError && String(fieldError?.message));\n const showError = !!fieldError && !disabled;\n\n return (\n <div className={classNames?.wrapper}>\n <FormTextarea\n id={id}\n name={name}\n label={label}\n disabled={disabled}\n {...others}\n classNames={{\n label: cn(classNames?.label, {\n 'text-danger': showError,\n }),\n input: cn(classNames?.input, {\n 'ring-danger text-danger': showError,\n }),\n }}\n inputProps={register(name, rules)}\n />\n {showError && <FormError field={name} className=\"mt-1\" message={errorMessage} />}\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAEA,OAAO,WAAW;AAClB,OAAO,UAAU;AACjB,SAA6C,sBAAsB;AAM5D,SAAS,iBAAwC,IAarD;AAbqD,eACtD;AAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAjBF,IAUwD,IAQnD,mBARmD,IAQnD;AAAA,IAPH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAOA,QAAM,UAAU,eAAkB;AAClC,MAAI,CAAC,QAAS,QAAO;AAErB,QAAM;AAAA,IACJ;AAAA,IACA,WAAW,EAAE,OAAO;AAAA,EACtB,IAAI;AAEJ,QAAM,aAAa,KAAK,QAAQ,IAAI;AACpC,QAAM,eAAe,wBAAU,cAAc,OAAO,yCAAY,OAAO;AACvE,QAAM,YAAY,CAAC,CAAC,cAAc,CAAC;AAEnC,SACE,oCAAC,SAAI,WAAW,yCAAY,WAC1B;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,OACI,SALL;AAAA,MAMC,YAAY;AAAA,QACV,OAAO,GAAG,yCAAY,OAAO;AAAA,UAC3B,eAAe;AAAA,QACjB,CAAC;AAAA,QACD,OAAO,GAAG,yCAAY,OAAO;AAAA,UAC3B,2BAA2B;AAAA,QAC7B,CAAC;AAAA,MACH;AAAA,MACA,YAAY,SAAS,MAAM,KAAK;AAAA;AAAA,EAClC,GACC,aAAa,oCAAC,aAAU,OAAO,MAAM,WAAU,QAAO,SAAS,cAAc,CAChF;AAEJ;","names":[]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React__default from 'react';
|
|
2
|
+
import { FieldValues, Path, RegisterOptions } from 'react-hook-form';
|
|
3
|
+
import { FormTimeTextInputProps } from './time-text-input.mjs';
|
|
4
|
+
import './text-input.mjs';
|
|
5
|
+
|
|
6
|
+
type HookFormTimeTextInputProps<T extends FieldValues> = Omit<FormTimeTextInputProps, 'name' | 'inputProps'> & {
|
|
7
|
+
name: Path<T>;
|
|
8
|
+
rules?: RegisterOptions<T, Path<T>>;
|
|
9
|
+
error?: string;
|
|
10
|
+
};
|
|
11
|
+
declare function HookFormTimeTextInput<T extends FieldValues>({ id, name, rules, label, error, classNames, disabled, ...rest }: HookFormTimeTextInputProps<T>): React__default.JSX.Element | null;
|
|
12
|
+
|
|
13
|
+
export { HookFormTimeTextInput };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React__default from 'react';
|
|
2
|
+
import { FieldValues, Path, RegisterOptions } from 'react-hook-form';
|
|
3
|
+
import { FormTimeTextInputProps } from './time-text-input.js';
|
|
4
|
+
import './text-input.js';
|
|
5
|
+
|
|
6
|
+
type HookFormTimeTextInputProps<T extends FieldValues> = Omit<FormTimeTextInputProps, 'name' | 'inputProps'> & {
|
|
7
|
+
name: Path<T>;
|
|
8
|
+
rules?: RegisterOptions<T, Path<T>>;
|
|
9
|
+
error?: string;
|
|
10
|
+
};
|
|
11
|
+
declare function HookFormTimeTextInput<T extends FieldValues>({ id, name, rules, label, error, classNames, disabled, ...rest }: HookFormTimeTextInputProps<T>): React__default.JSX.Element | null;
|
|
12
|
+
|
|
13
|
+
export { HookFormTimeTextInput };
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }"use client";
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
var _chunkTYI6YBBZjs = require('../../chunk-TYI6YBBZ.js');
|
|
5
|
+
require('../../chunk-KRSIQ2CB.js');
|
|
6
|
+
require('../../chunk-GJJM336N.js');
|
|
7
|
+
require('../../chunk-TV4NNZTS.js');
|
|
8
|
+
require('../../chunk-AXZDZXCY.js');
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
var _chunkP2BPVQXHjs = require('../../chunk-P2BPVQXH.js');
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
var _chunkB2G2EZ4Pjs = require('../../chunk-B2G2EZ4P.js');
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
var _chunk2NMEKWO5js = require('../../chunk-2NMEKWO5.js');
|
|
20
|
+
|
|
21
|
+
// components/form/hook-time-text-input.tsx
|
|
22
|
+
var _react = require('react'); var _react2 = _interopRequireDefault(_react);
|
|
23
|
+
var _get2 = require('lodash-es/get'); var _get3 = _interopRequireDefault(_get2);
|
|
24
|
+
var _reacthookform = require('react-hook-form');
|
|
25
|
+
function HookFormTimeTextInput(_a) {
|
|
26
|
+
var _b = _a, {
|
|
27
|
+
id,
|
|
28
|
+
name,
|
|
29
|
+
rules,
|
|
30
|
+
label,
|
|
31
|
+
error,
|
|
32
|
+
classNames,
|
|
33
|
+
disabled
|
|
34
|
+
} = _b, rest = _chunk2NMEKWO5js.__objRest.call(void 0, _b, [
|
|
35
|
+
"id",
|
|
36
|
+
"name",
|
|
37
|
+
"rules",
|
|
38
|
+
"label",
|
|
39
|
+
"error",
|
|
40
|
+
"classNames",
|
|
41
|
+
"disabled"
|
|
42
|
+
]);
|
|
43
|
+
const methods = _reacthookform.useFormContext.call(void 0, );
|
|
44
|
+
if (!methods) return null;
|
|
45
|
+
const {
|
|
46
|
+
control,
|
|
47
|
+
formState: { errors }
|
|
48
|
+
} = methods;
|
|
49
|
+
const fieldError = _get3.default.call(void 0, errors, name);
|
|
50
|
+
const errorMessage = error != null ? error : fieldError == null ? void 0 : fieldError.message;
|
|
51
|
+
const showError = !!fieldError && !disabled;
|
|
52
|
+
return /* @__PURE__ */ _react2.default.createElement("div", { className: classNames == null ? void 0 : classNames.wrapper }, /* @__PURE__ */ _react2.default.createElement(
|
|
53
|
+
_reacthookform.Controller,
|
|
54
|
+
{
|
|
55
|
+
name,
|
|
56
|
+
control,
|
|
57
|
+
rules,
|
|
58
|
+
render: ({ field: { onChange, onBlur, value } }) => /* @__PURE__ */ _react2.default.createElement(
|
|
59
|
+
_chunkTYI6YBBZjs.FormTimeTextInput,
|
|
60
|
+
_chunk2NMEKWO5js.__spreadProps.call(void 0, _chunk2NMEKWO5js.__spreadValues.call(void 0, {}, rest), {
|
|
61
|
+
name,
|
|
62
|
+
label,
|
|
63
|
+
value,
|
|
64
|
+
onChange,
|
|
65
|
+
onBlur,
|
|
66
|
+
disabled,
|
|
67
|
+
classNames: {
|
|
68
|
+
label: _chunkB2G2EZ4Pjs.cn.call(void 0, classNames == null ? void 0 : classNames.label, {
|
|
69
|
+
"text-danger": showError
|
|
70
|
+
}),
|
|
71
|
+
input: _chunkB2G2EZ4Pjs.cn.call(void 0, classNames == null ? void 0 : classNames.input, {
|
|
72
|
+
"ring-danger text-danger": showError
|
|
73
|
+
})
|
|
74
|
+
}
|
|
75
|
+
})
|
|
76
|
+
)
|
|
77
|
+
}
|
|
78
|
+
), showError && /* @__PURE__ */ _react2.default.createElement(_chunkP2BPVQXHjs.FormError, { field: name, className: "mt-1", message: errorMessage }));
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
exports.HookFormTimeTextInput = HookFormTimeTextInput;
|
|
83
|
+
//# sourceMappingURL=hook-time-text-input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/ahnjun/projects/egose-shadcn/package/dist/components/form/hook-time-text-input.js","../../../components/form/hook-time-text-input.tsx"],"names":[],"mappings":"AAAA,qLAAY;AACZ;AACE;AACF,0DAAgC;AAChC,mCAAgC;AAChC,mCAAgC;AAChC,mCAAgC;AAChC,mCAAgC;AAChC;AACE;AACF,0DAAgC;AAChC;AACE;AACF,0DAAgC;AAChC;AACE;AACA;AACA;AACF,0DAAgC;AAChC;AACA;AClBA,4EAAkB;AAClB,gFAAiB;AACjB,gDAA+E;AAYxE,SAAS,qBAAA,CAA6C,EAAA,EAS3B;AAT2B,EAAA,IAAA,GAAA,EAAA,EAAA,EAC3D;AAAA,IAAA,EAAA;AAAA,IACA,IAAA;AAAA,IACA,KAAA;AAAA,IACA,KAAA;AAAA,IACA,KAAA;AAAA,IACA,UAAA;AAAA,IACA;AAAA,EAvBF,EAAA,EAgB6D,EAAA,EAQxD,KAAA,EAAA,wCAAA,EARwD,EAQxD;AAAA,IAPH,IAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAA;AAAA,IACA,OAAA;AAAA,IACA,OAAA;AAAA,IACA,YAAA;AAAA,IACA;AAAA,EAAA,CAAA,CAAA;AAGA,EAAA,MAAM,QAAA,EAAU,2CAAA,CAAkB;AAClC,EAAA,GAAA,CAAI,CAAC,OAAA,EAAS,OAAO,IAAA;AAErB,EAAA,MAAM;AAAA,IACJ,OAAA;AAAA,IACA,SAAA,EAAW,EAAE,OAAO;AAAA,EACtB,EAAA,EAAI,OAAA;AAEJ,EAAA,MAAM,WAAA,EAAa,2BAAA,MAAK,EAAQ,IAAI,CAAA;AACpC,EAAA,MAAM,aAAA,EAAe,MAAA,GAAA,KAAA,EAAA,MAAA,EAAU,WAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,UAAA,CAAY,OAAA;AAC3C,EAAA,MAAM,UAAA,EAAY,CAAC,CAAC,WAAA,GAAc,CAAC,QAAA;AAEnC,EAAA,uBACE,eAAA,CAAA,aAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,WAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,UAAA,CAAY,QAAA,CAAA,kBAC1B,eAAA,CAAA,aAAA;AAAA,IAAC,yBAAA;AAAA,IAAA;AAAA,MACC,IAAA;AAAA,MACA,OAAA;AAAA,MACA,KAAA;AAAA,MACA,MAAA,EAAQ,CAAC,EAAE,KAAA,EAAO,EAAE,QAAA,EAAU,MAAA,EAAQ,MAAM,EAAE,CAAA,EAAA,mBAC5C,eAAA,CAAA,aAAA;AAAA,QAAC,kCAAA;AAAA,QAAA,4CAAA,6CAAA,CAAA,CAAA,EACK,IAAA,CAAA,EADL;AAAA,UAEC,IAAA;AAAA,UACA,KAAA;AAAA,UACA,KAAA;AAAA,UACA,QAAA;AAAA,UACA,MAAA;AAAA,UACA,QAAA;AAAA,UACA,UAAA,EAAY;AAAA,YACV,KAAA,EAAO,iCAAA,WAAG,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,UAAA,CAAY,KAAA,EAAO;AAAA,cAC3B,aAAA,EAAe;AAAA,YACjB,CAAC,CAAA;AAAA,YACD,KAAA,EAAO,iCAAA,WAAG,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,UAAA,CAAY,KAAA,EAAO;AAAA,cAC3B,yBAAA,EAA2B;AAAA,YAC7B,CAAC;AAAA,UACH;AAAA,QAAA,CAAA;AAAA,MACF;AAAA,IAAA;AAAA,EAEJ,CAAA,EACC,UAAA,mBAAa,eAAA,CAAA,aAAA,CAAC,0BAAA,EAAA,EAAU,KAAA,EAAO,IAAA,EAAM,SAAA,EAAU,MAAA,EAAO,OAAA,EAAS,aAAA,CAAc,CAChF,CAAA;AAEJ;ADYA;AACE;AACF,sDAAC","file":"/home/ahnjun/projects/egose-shadcn/package/dist/components/form/hook-time-text-input.js","sourcesContent":[null,"'use client';\n\nimport React from 'react';\nimport _get from 'lodash-es/get';\nimport { Controller, FieldValues, RegisterOptions, Path, useFormContext } from 'react-hook-form';\nimport { cn } from '../../lib/utils';\nimport { FormError } from './error';\nimport { FormTimeTextInput } from './time-text-input';\nimport type { FormTimeTextInputProps } from './time-text-input';\n\ntype HookFormTimeTextInputProps<T extends FieldValues> = Omit<FormTimeTextInputProps, 'name' | 'inputProps'> & {\n name: Path<T>;\n rules?: RegisterOptions<T, Path<T>>;\n error?: string;\n};\n\nexport function HookFormTimeTextInput<T extends FieldValues>({\n id,\n name,\n rules,\n label,\n error,\n classNames,\n disabled,\n ...rest\n}: HookFormTimeTextInputProps<T>) {\n const methods = useFormContext<T>();\n if (!methods) return null;\n\n const {\n control,\n formState: { errors },\n } = methods;\n\n const fieldError = _get(errors, name);\n const errorMessage = error ?? (fieldError?.message as string);\n const showError = !!fieldError && !disabled;\n\n return (\n <div className={classNames?.wrapper}>\n <Controller\n name={name}\n control={control}\n rules={rules}\n render={({ field: { onChange, onBlur, value } }) => (\n <FormTimeTextInput\n {...rest}\n name={name}\n label={label}\n value={value}\n onChange={onChange}\n onBlur={onBlur}\n disabled={disabled}\n classNames={{\n label: cn(classNames?.label, {\n 'text-danger': showError,\n }),\n input: cn(classNames?.input, {\n 'ring-danger text-danger': showError,\n }),\n }}\n />\n )}\n />\n {showError && <FormError field={name} className=\"mt-1\" message={errorMessage} />}\n </div>\n );\n}\n"]}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {
|
|
3
|
+
FormTimeTextInput
|
|
4
|
+
} from "../../chunk-ENHV3QCF.mjs";
|
|
5
|
+
import "../../chunk-ASPYSRE6.mjs";
|
|
6
|
+
import "../../chunk-KBUB4CRW.mjs";
|
|
7
|
+
import "../../chunk-JOYUTUGI.mjs";
|
|
8
|
+
import "../../chunk-7W42BHVK.mjs";
|
|
9
|
+
import {
|
|
10
|
+
FormError
|
|
11
|
+
} from "../../chunk-WGV3SHLF.mjs";
|
|
12
|
+
import {
|
|
13
|
+
cn
|
|
14
|
+
} from "../../chunk-3ONILUYO.mjs";
|
|
15
|
+
import {
|
|
16
|
+
__objRest,
|
|
17
|
+
__spreadProps,
|
|
18
|
+
__spreadValues
|
|
19
|
+
} from "../../chunk-YOSPWY5K.mjs";
|
|
20
|
+
|
|
21
|
+
// components/form/hook-time-text-input.tsx
|
|
22
|
+
import React from "react";
|
|
23
|
+
import _get from "lodash-es/get";
|
|
24
|
+
import { Controller, useFormContext } from "react-hook-form";
|
|
25
|
+
function HookFormTimeTextInput(_a) {
|
|
26
|
+
var _b = _a, {
|
|
27
|
+
id,
|
|
28
|
+
name,
|
|
29
|
+
rules,
|
|
30
|
+
label,
|
|
31
|
+
error,
|
|
32
|
+
classNames,
|
|
33
|
+
disabled
|
|
34
|
+
} = _b, rest = __objRest(_b, [
|
|
35
|
+
"id",
|
|
36
|
+
"name",
|
|
37
|
+
"rules",
|
|
38
|
+
"label",
|
|
39
|
+
"error",
|
|
40
|
+
"classNames",
|
|
41
|
+
"disabled"
|
|
42
|
+
]);
|
|
43
|
+
const methods = useFormContext();
|
|
44
|
+
if (!methods) return null;
|
|
45
|
+
const {
|
|
46
|
+
control,
|
|
47
|
+
formState: { errors }
|
|
48
|
+
} = methods;
|
|
49
|
+
const fieldError = _get(errors, name);
|
|
50
|
+
const errorMessage = error != null ? error : fieldError == null ? void 0 : fieldError.message;
|
|
51
|
+
const showError = !!fieldError && !disabled;
|
|
52
|
+
return /* @__PURE__ */ React.createElement("div", { className: classNames == null ? void 0 : classNames.wrapper }, /* @__PURE__ */ React.createElement(
|
|
53
|
+
Controller,
|
|
54
|
+
{
|
|
55
|
+
name,
|
|
56
|
+
control,
|
|
57
|
+
rules,
|
|
58
|
+
render: ({ field: { onChange, onBlur, value } }) => /* @__PURE__ */ React.createElement(
|
|
59
|
+
FormTimeTextInput,
|
|
60
|
+
__spreadProps(__spreadValues({}, rest), {
|
|
61
|
+
name,
|
|
62
|
+
label,
|
|
63
|
+
value,
|
|
64
|
+
onChange,
|
|
65
|
+
onBlur,
|
|
66
|
+
disabled,
|
|
67
|
+
classNames: {
|
|
68
|
+
label: cn(classNames == null ? void 0 : classNames.label, {
|
|
69
|
+
"text-danger": showError
|
|
70
|
+
}),
|
|
71
|
+
input: cn(classNames == null ? void 0 : classNames.input, {
|
|
72
|
+
"ring-danger text-danger": showError
|
|
73
|
+
})
|
|
74
|
+
}
|
|
75
|
+
})
|
|
76
|
+
)
|
|
77
|
+
}
|
|
78
|
+
), showError && /* @__PURE__ */ React.createElement(FormError, { field: name, className: "mt-1", message: errorMessage }));
|
|
79
|
+
}
|
|
80
|
+
export {
|
|
81
|
+
HookFormTimeTextInput
|
|
82
|
+
};
|
|
83
|
+
//# sourceMappingURL=hook-time-text-input.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../components/form/hook-time-text-input.tsx"],"sourcesContent":["'use client';\n\nimport React from 'react';\nimport _get from 'lodash-es/get';\nimport { Controller, FieldValues, RegisterOptions, Path, useFormContext } from 'react-hook-form';\nimport { cn } from '../../lib/utils';\nimport { FormError } from './error';\nimport { FormTimeTextInput } from './time-text-input';\nimport type { FormTimeTextInputProps } from './time-text-input';\n\ntype HookFormTimeTextInputProps<T extends FieldValues> = Omit<FormTimeTextInputProps, 'name' | 'inputProps'> & {\n name: Path<T>;\n rules?: RegisterOptions<T, Path<T>>;\n error?: string;\n};\n\nexport function HookFormTimeTextInput<T extends FieldValues>({\n id,\n name,\n rules,\n label,\n error,\n classNames,\n disabled,\n ...rest\n}: HookFormTimeTextInputProps<T>) {\n const methods = useFormContext<T>();\n if (!methods) return null;\n\n const {\n control,\n formState: { errors },\n } = methods;\n\n const fieldError = _get(errors, name);\n const errorMessage = error ?? (fieldError?.message as string);\n const showError = !!fieldError && !disabled;\n\n return (\n <div className={classNames?.wrapper}>\n <Controller\n name={name}\n control={control}\n rules={rules}\n render={({ field: { onChange, onBlur, value } }) => (\n <FormTimeTextInput\n {...rest}\n name={name}\n label={label}\n value={value}\n onChange={onChange}\n onBlur={onBlur}\n disabled={disabled}\n classNames={{\n label: cn(classNames?.label, {\n 'text-danger': showError,\n }),\n input: cn(classNames?.input, {\n 'ring-danger text-danger': showError,\n }),\n }}\n />\n )}\n />\n {showError && <FormError field={name} className=\"mt-1\" message={errorMessage} />}\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAEA,OAAO,WAAW;AAClB,OAAO,UAAU;AACjB,SAAS,YAAgD,sBAAsB;AAYxE,SAAS,sBAA6C,IAS3B;AAT2B,eAC3D;AAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAvBF,IAgB6D,IAQxD,iBARwD,IAQxD;AAAA,IAPH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAGA,QAAM,UAAU,eAAkB;AAClC,MAAI,CAAC,QAAS,QAAO;AAErB,QAAM;AAAA,IACJ;AAAA,IACA,WAAW,EAAE,OAAO;AAAA,EACtB,IAAI;AAEJ,QAAM,aAAa,KAAK,QAAQ,IAAI;AACpC,QAAM,eAAe,wBAAU,yCAAY;AAC3C,QAAM,YAAY,CAAC,CAAC,cAAc,CAAC;AAEnC,SACE,oCAAC,SAAI,WAAW,yCAAY,WAC1B;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA,QAAQ,CAAC,EAAE,OAAO,EAAE,UAAU,QAAQ,MAAM,EAAE,MAC5C;AAAA,QAAC;AAAA,yCACK,OADL;AAAA,UAEC;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,YAAY;AAAA,YACV,OAAO,GAAG,yCAAY,OAAO;AAAA,cAC3B,eAAe;AAAA,YACjB,CAAC;AAAA,YACD,OAAO,GAAG,yCAAY,OAAO;AAAA,cAC3B,2BAA2B;AAAA,YAC7B,CAAC;AAAA,UACH;AAAA;AAAA,MACF;AAAA;AAAA,EAEJ,GACC,aAAa,oCAAC,aAAU,OAAO,MAAM,WAAU,QAAO,SAAS,cAAc,CAChF;AAEJ;","names":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React__default from 'react';
|
|
2
|
+
import { FormTextInputProps } from './text-input.mjs';
|
|
3
|
+
|
|
4
|
+
interface FormTimeTextInputProps extends Omit<FormTextInputProps, 'onChange' | 'value'> {
|
|
5
|
+
value?: number;
|
|
6
|
+
onChange?: (value: number) => void;
|
|
7
|
+
}
|
|
8
|
+
declare function FormTimeTextInput({ value: parentValue, onChange, ...rest }: FormTimeTextInputProps): React__default.JSX.Element;
|
|
9
|
+
|
|
10
|
+
export { FormTimeTextInput, type FormTimeTextInputProps };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React__default from 'react';
|
|
2
|
+
import { FormTextInputProps } from './text-input.js';
|
|
3
|
+
|
|
4
|
+
interface FormTimeTextInputProps extends Omit<FormTextInputProps, 'onChange' | 'value'> {
|
|
5
|
+
value?: number;
|
|
6
|
+
onChange?: (value: number) => void;
|
|
7
|
+
}
|
|
8
|
+
declare function FormTimeTextInput({ value: parentValue, onChange, ...rest }: FormTimeTextInputProps): React__default.JSX.Element;
|
|
9
|
+
|
|
10
|
+
export { FormTimeTextInput, type FormTimeTextInputProps };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
var _chunkTYI6YBBZjs = require('../../chunk-TYI6YBBZ.js');
|
|
5
|
+
require('../../chunk-KRSIQ2CB.js');
|
|
6
|
+
require('../../chunk-GJJM336N.js');
|
|
7
|
+
require('../../chunk-TV4NNZTS.js');
|
|
8
|
+
require('../../chunk-AXZDZXCY.js');
|
|
9
|
+
require('../../chunk-B2G2EZ4P.js');
|
|
10
|
+
require('../../chunk-2NMEKWO5.js');
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
exports.FormTimeTextInput = _chunkTYI6YBBZjs.FormTimeTextInput;
|
|
14
|
+
//# sourceMappingURL=time-text-input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/ahnjun/projects/egose-shadcn/package/dist/components/form/time-text-input.js"],"names":[],"mappings":"AAAA,qFAAY;AACZ;AACE;AACF,0DAAgC;AAChC,mCAAgC;AAChC,mCAAgC;AAChC,mCAAgC;AAChC,mCAAgC;AAChC,mCAAgC;AAChC,mCAAgC;AAChC;AACE;AACF,+DAAC","file":"/home/ahnjun/projects/egose-shadcn/package/dist/components/form/time-text-input.js"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {
|
|
3
|
+
FormTimeTextInput
|
|
4
|
+
} from "../../chunk-ENHV3QCF.mjs";
|
|
5
|
+
import "../../chunk-ASPYSRE6.mjs";
|
|
6
|
+
import "../../chunk-KBUB4CRW.mjs";
|
|
7
|
+
import "../../chunk-JOYUTUGI.mjs";
|
|
8
|
+
import "../../chunk-7W42BHVK.mjs";
|
|
9
|
+
import "../../chunk-3ONILUYO.mjs";
|
|
10
|
+
import "../../chunk-YOSPWY5K.mjs";
|
|
11
|
+
export {
|
|
12
|
+
FormTimeTextInput
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=time-text-input.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
package/components/ui/sidebar.js
CHANGED
|
@@ -6,15 +6,15 @@
|
|
|
6
6
|
var _chunk5T5QQDSPjs = require('../../chunk-5T5QQDSP.js');
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
var
|
|
9
|
+
var _chunkJ2S6AWOCjs = require('../../chunk-J2S6AWOC.js');
|
|
10
10
|
|
|
11
11
|
|
|
12
|
+
var _chunkXVEDXQIRjs = require('../../chunk-XVEDXQIR.js');
|
|
12
13
|
|
|
13
14
|
|
|
14
|
-
var _chunkLUOWYBFHjs = require('../../chunk-LUOWYBFH.js');
|
|
15
15
|
|
|
16
16
|
|
|
17
|
-
var
|
|
17
|
+
var _chunkLUOWYBFHjs = require('../../chunk-LUOWYBFH.js');
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
var _chunkGJJM336Njs = require('../../chunk-GJJM336N.js');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/ahnjun/projects/egose-shadcn/package/dist/components/ui/sidebar.js","../../../components/ui/sidebar.tsx"],"names":[],"mappings":"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","file":"/home/ahnjun/projects/egose-shadcn/package/dist/components/ui/sidebar.js","sourcesContent":[null,"import * as React from 'react';\nimport { Slot } from '@radix-ui/react-slot';\nimport { VariantProps, cva } from 'class-variance-authority';\nimport { PanelLeft } from 'lucide-react';\n\nimport { useIsMobile } from '../../hooks/use-mobile';\nimport { cn } from '../../lib/utils';\nimport { Button } from './button';\nimport { Input } from './input';\nimport { Separator } from './separator';\nimport { Sheet, SheetTitle, SheetContent } from './sheet';\nimport { Skeleton } from './skeleton';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from './tooltip';\n\nconst SIDEBAR_COOKIE_NAME = 'sidebar_state';\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\nconst SIDEBAR_WIDTH = '16rem';\nconst SIDEBAR_WIDTH_MOBILE = '18rem';\nconst SIDEBAR_WIDTH_ICON = '3rem';\nconst SIDEBAR_KEYBOARD_SHORTCUT = 'b';\n\ntype SidebarContext = {\n state: 'expanded' | 'collapsed';\n open: boolean;\n setOpen: (open: boolean) => void;\n openMobile: boolean;\n setOpenMobile: (open: boolean) => void;\n isMobile: boolean;\n toggleSidebar: () => void;\n};\n\nconst SidebarContext = React.createContext<SidebarContext | null>(null);\n\nfunction useSidebar() {\n const context = React.useContext(SidebarContext);\n if (!context) {\n throw new Error('useSidebar must be used within a SidebarProvider.');\n }\n\n return context;\n}\n\nconst SidebarProvider = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n }\n>(({ defaultOpen = true, open: openProp, onOpenChange: setOpenProp, className, style, children, ...props }, ref) => {\n const isMobile = useIsMobile();\n const [openMobile, setOpenMobile] = React.useState(false);\n\n // This is the internal state of the sidebar.\n // We use openProp and setOpenProp for control from outside the component.\n const [_open, _setOpen] = React.useState(defaultOpen);\n const open = openProp ?? _open;\n const setOpen = React.useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === 'function' ? value(open) : value;\n if (setOpenProp) {\n setOpenProp(openState);\n } else {\n _setOpen(openState);\n }\n\n // This sets the cookie to keep the sidebar state.\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\n },\n [setOpenProp, open],\n );\n\n // Helper to toggle the sidebar.\n const toggleSidebar = React.useCallback(() => {\n return isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open);\n }, [isMobile, setOpen, setOpenMobile]);\n\n // Adds a keyboard shortcut to toggle the sidebar.\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {\n event.preventDefault();\n toggleSidebar();\n }\n };\n\n window.addEventListener('keydown', handleKeyDown);\n return () => window.removeEventListener('keydown', handleKeyDown);\n }, [toggleSidebar]);\n\n // We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n // This makes it easier to style the sidebar with Tailwind classes.\n const state = open ? 'expanded' : 'collapsed';\n\n const contextValue = React.useMemo<SidebarContext>(\n () => ({\n state,\n open,\n setOpen,\n isMobile,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n }),\n [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar],\n );\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH,\n '--sidebar-width-icon': SIDEBAR_WIDTH_ICON,\n ...style,\n } as React.CSSProperties\n }\n className={cn(\n 'group/sidebar-wrapper flex min-h-svh w-screen has-[[data-variant=inset]]:bg-sidebar',\n className,\n )}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n );\n});\nSidebarProvider.displayName = 'SidebarProvider';\n\nconst Sidebar = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n side?: 'left' | 'right';\n variant?: 'sidebar' | 'floating' | 'inset';\n collapsible?: 'offcanvas' | 'icon' | 'none';\n }\n>(({ side = 'left', variant = 'sidebar', collapsible = 'offcanvas', className, children, ...props }, ref) => {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n\n if (collapsible === 'none') {\n return (\n <div\n className={cn('flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground', className)}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n );\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetTitle className=\"hidden\"></SheetTitle>\n <SheetContent\n data-sidebar=\"sidebar\"\n data-mobile=\"true\"\n aria-describedby=\"\"\n className=\"w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n >\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n );\n }\n\n return (\n <div\n ref={ref}\n className=\"group peer hidden text-sidebar-foreground md:block\"\n data-state={state}\n data-collapsible={state === 'collapsed' ? collapsible : ''}\n data-variant={variant}\n data-side={side}\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n className={cn(\n 'relative h-svh w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear',\n 'group-data-[collapsible=offcanvas]:w-0',\n 'group-data-[side=right]:rotate-180',\n variant === 'floating' || variant === 'inset'\n ? 'group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon)',\n )}\n />\n <div\n className={cn(\n 'fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex',\n side === 'left'\n ? 'left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]'\n : 'right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]',\n // Adjust the padding for floating and inset variants.\n variant === 'floating' || variant === 'inset'\n ? 'p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4)_+2px)]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l',\n className,\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n className=\"flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow\"\n >\n {children}\n </div>\n </div>\n </div>\n );\n});\nSidebar.displayName = 'Sidebar';\n\nconst SidebarTrigger = React.forwardRef<React.ElementRef<typeof Button>, React.ComponentProps<typeof Button>>(\n ({ className, onClick, ...props }, ref) => {\n const { toggleSidebar } = useSidebar();\n\n return (\n <Button\n ref={ref}\n data-sidebar=\"trigger\"\n variant=\"light\"\n size=\"icon\"\n className={cn('h-7 w-7', className)}\n onClick={(event) => {\n onClick?.(event);\n toggleSidebar();\n }}\n {...props}\n >\n <PanelLeft />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n );\n },\n);\nSidebarTrigger.displayName = 'SidebarTrigger';\n\nconst SidebarRail = React.forwardRef<HTMLButtonElement, React.ComponentProps<'button'>>(\n ({ className, ...props }, ref) => {\n const { toggleSidebar } = useSidebar();\n\n return (\n <button\n ref={ref}\n data-sidebar=\"rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n 'absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex',\n '[[data-side=left]_&]:cursor-w-resize [[data-side=right]_&]:cursor-e-resize',\n '[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize',\n 'group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-sidebar',\n '[[data-side=left][data-collapsible=offcanvas]_&]:-right-2',\n '[[data-side=right][data-collapsible=offcanvas]_&]:-left-2',\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarRail.displayName = 'SidebarRail';\n\nconst SidebarInset = React.forwardRef<HTMLDivElement, React.ComponentProps<'main'>>(({ className, ...props }, ref) => {\n return (\n <main\n ref={ref}\n className={cn(\n 'relative flex min-h-svh flex-1 flex-col bg-background',\n 'peer-data-[variant=inset]:min-h-[calc(100svh-theme(spacing.4))] md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow',\n className,\n )}\n {...props}\n />\n );\n});\nSidebarInset.displayName = 'SidebarInset';\n\nconst SidebarInput = React.forwardRef<React.ElementRef<typeof Input>, React.ComponentProps<typeof Input>>(\n ({ className, ...props }, ref) => {\n return (\n <Input\n ref={ref}\n data-sidebar=\"input\"\n className={cn(\n 'h-8 w-full bg-background shadow-none focus-visible:ring-2 focus-visible:ring-sidebar-ring',\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarInput.displayName = 'SidebarInput';\n\nconst SidebarHeader = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(({ className, ...props }, ref) => {\n return <div ref={ref} data-sidebar=\"header\" className={cn('flex flex-col gap-2 p-2', className)} {...props} />;\n});\nSidebarHeader.displayName = 'SidebarHeader';\n\nconst SidebarFooter = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(({ className, ...props }, ref) => {\n return <div ref={ref} data-sidebar=\"footer\" className={cn('flex flex-col gap-2 p-2', className)} {...props} />;\n});\nSidebarFooter.displayName = 'SidebarFooter';\n\nconst SidebarSeparator = React.forwardRef<React.ElementRef<typeof Separator>, React.ComponentProps<typeof Separator>>(\n ({ className, ...props }, ref) => {\n return (\n <Separator\n ref={ref}\n data-sidebar=\"separator\"\n className={cn('mx-2 w-auto bg-sidebar-border', className)}\n {...props}\n />\n );\n },\n);\nSidebarSeparator.displayName = 'SidebarSeparator';\n\nconst SidebarContent = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"content\"\n className={cn(\n 'flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden',\n className,\n )}\n {...props}\n />\n );\n});\nSidebarContent.displayName = 'SidebarContent';\n\nconst SidebarGroup = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"group\"\n className={cn('relative flex w-full min-w-0 flex-col p-2', className)}\n {...props}\n />\n );\n});\nSidebarGroup.displayName = 'SidebarGroup';\n\nconst SidebarGroupLabel = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'> & { asChild?: boolean }>(\n ({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'div';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-label\"\n className={cn(\n 'flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-none ring-sidebar-ring transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n 'group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0',\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarGroupLabel.displayName = 'SidebarGroupLabel';\n\nconst SidebarGroupAction = React.forwardRef<HTMLButtonElement, React.ComponentProps<'button'> & { asChild?: boolean }>(\n ({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-action\"\n className={cn(\n 'absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:absolute after:-inset-2 after:md:hidden',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarGroupAction.displayName = 'SidebarGroupAction';\n\nconst SidebarGroupContent = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} data-sidebar=\"group-content\" className={cn('w-full text-sm', className)} {...props} />\n ),\n);\nSidebarGroupContent.displayName = 'SidebarGroupContent';\n\nconst SidebarMenu = React.forwardRef<HTMLUListElement, React.ComponentProps<'ul'>>(({ className, ...props }, ref) => (\n <ul ref={ref} data-sidebar=\"menu\" className={cn('flex w-full min-w-0 flex-col gap-1', className)} {...props} />\n));\nSidebarMenu.displayName = 'SidebarMenu';\n\nconst SidebarMenuItem = React.forwardRef<HTMLLIElement, React.ComponentProps<'li'>>(({ className, ...props }, ref) => (\n <li ref={ref} data-sidebar=\"menu-item\" className={cn('group/menu-item relative', className)} {...props} />\n));\nSidebarMenuItem.displayName = 'SidebarMenuItem';\n\nconst sidebarMenuButtonVariants = cva(\n 'peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-none ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0',\n {\n variants: {\n variant: {\n default: 'hover:bg-sidebar-accent hover:text-sidebar-accent-foreground',\n outline:\n 'bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]',\n },\n size: {\n default: 'h-8 text-sm',\n sm: 'h-7 text-xs',\n lg: 'h-12 text-sm group-data-[collapsible=icon]:!p-0',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\nconst SidebarMenuButton = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<'button'> & {\n asChild?: boolean;\n isActive?: boolean;\n tooltip?: string | React.ComponentProps<typeof TooltipContent>;\n } & VariantProps<typeof sidebarMenuButtonVariants>\n>(({ asChild = false, isActive = false, variant = 'default', size = 'default', tooltip, className, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button';\n const { isMobile, state } = useSidebar();\n\n const button = (\n <Comp\n ref={ref}\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n );\n\n if (!tooltip) {\n return button;\n }\n\n if (typeof tooltip === 'string') {\n tooltip = {\n children: tooltip,\n };\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent side=\"right\" align=\"center\" hidden={state !== 'collapsed' || isMobile} {...tooltip} />\n </Tooltip>\n );\n});\nSidebarMenuButton.displayName = 'SidebarMenuButton';\n\nconst SidebarMenuAction = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<'button'> & {\n asChild?: boolean;\n showOnHover?: boolean;\n }\n>(({ className, asChild = false, showOnHover = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-action\"\n className={cn(\n 'absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:absolute after:-inset-2 after:md:hidden',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n showOnHover &&\n 'group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0',\n className,\n )}\n {...props}\n />\n );\n});\nSidebarMenuAction.displayName = 'SidebarMenuAction';\n\nconst SidebarMenuBadge = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"menu-badge\"\n className={cn(\n 'pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-sidebar-foreground',\n 'peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n ),\n);\nSidebarMenuBadge.displayName = 'SidebarMenuBadge';\n\nconst SidebarMenuSkeleton = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n showIcon?: boolean;\n }\n>(({ className, showIcon = false, ...props }, ref) => {\n // Random width between 50 to 90%.\n const width = React.useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`;\n }, []);\n\n return (\n <div\n ref={ref}\n data-sidebar=\"menu-skeleton\"\n className={cn('flex h-8 items-center gap-2 rounded-md px-2', className)}\n {...props}\n >\n {showIcon && <Skeleton className=\"size-4 rounded-md\" data-sidebar=\"menu-skeleton-icon\" />}\n <Skeleton\n className=\"h-4 max-w-[--skeleton-width] flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n '--skeleton-width': width,\n } as React.CSSProperties\n }\n />\n </div>\n );\n});\nSidebarMenuSkeleton.displayName = 'SidebarMenuSkeleton';\n\nconst SidebarMenuSub = React.forwardRef<HTMLUListElement, React.ComponentProps<'ul'>>(\n ({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu-sub\"\n className={cn(\n 'mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n ),\n);\nSidebarMenuSub.displayName = 'SidebarMenuSub';\n\nconst SidebarMenuSubItem = React.forwardRef<HTMLLIElement, React.ComponentProps<'li'>>(({ ...props }, ref) => (\n <li ref={ref} {...props} />\n));\nSidebarMenuSubItem.displayName = 'SidebarMenuSubItem';\n\nconst SidebarMenuSubButton = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentProps<'a'> & {\n asChild?: boolean;\n size?: 'sm' | 'md';\n isActive?: boolean;\n }\n>(({ asChild = false, size = 'md', isActive, className, ...props }, ref) => {\n const Comp = asChild ? Slot : 'a';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n 'flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-none ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground',\n 'data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground',\n size === 'sm' && 'text-xs',\n size === 'md' && 'text-sm',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n );\n});\nSidebarMenuSubButton.displayName = 'SidebarMenuSubButton';\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar,\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["/home/ahnjun/projects/egose-shadcn/package/dist/components/ui/sidebar.js","../../../components/ui/sidebar.tsx"],"names":[],"mappings":"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","file":"/home/ahnjun/projects/egose-shadcn/package/dist/components/ui/sidebar.js","sourcesContent":[null,"import * as React from 'react';\nimport { Slot } from '@radix-ui/react-slot';\nimport { VariantProps, cva } from 'class-variance-authority';\nimport { PanelLeft } from 'lucide-react';\n\nimport { useIsMobile } from '../../hooks/use-mobile';\nimport { cn } from '../../lib/utils';\nimport { Button } from './button';\nimport { Input } from './input';\nimport { Separator } from './separator';\nimport { Sheet, SheetTitle, SheetContent } from './sheet';\nimport { Skeleton } from './skeleton';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from './tooltip';\n\nconst SIDEBAR_COOKIE_NAME = 'sidebar_state';\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\nconst SIDEBAR_WIDTH = '16rem';\nconst SIDEBAR_WIDTH_MOBILE = '18rem';\nconst SIDEBAR_WIDTH_ICON = '3rem';\nconst SIDEBAR_KEYBOARD_SHORTCUT = 'b';\n\ntype SidebarContext = {\n state: 'expanded' | 'collapsed';\n open: boolean;\n setOpen: (open: boolean) => void;\n openMobile: boolean;\n setOpenMobile: (open: boolean) => void;\n isMobile: boolean;\n toggleSidebar: () => void;\n};\n\nconst SidebarContext = React.createContext<SidebarContext | null>(null);\n\nfunction useSidebar() {\n const context = React.useContext(SidebarContext);\n if (!context) {\n throw new Error('useSidebar must be used within a SidebarProvider.');\n }\n\n return context;\n}\n\nconst SidebarProvider = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n }\n>(({ defaultOpen = true, open: openProp, onOpenChange: setOpenProp, className, style, children, ...props }, ref) => {\n const isMobile = useIsMobile();\n const [openMobile, setOpenMobile] = React.useState(false);\n\n // This is the internal state of the sidebar.\n // We use openProp and setOpenProp for control from outside the component.\n const [_open, _setOpen] = React.useState(defaultOpen);\n const open = openProp ?? _open;\n const setOpen = React.useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === 'function' ? value(open) : value;\n if (setOpenProp) {\n setOpenProp(openState);\n } else {\n _setOpen(openState);\n }\n\n // This sets the cookie to keep the sidebar state.\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\n },\n [setOpenProp, open],\n );\n\n // Helper to toggle the sidebar.\n const toggleSidebar = React.useCallback(() => {\n return isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open);\n }, [isMobile, setOpen, setOpenMobile]);\n\n // Adds a keyboard shortcut to toggle the sidebar.\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {\n event.preventDefault();\n toggleSidebar();\n }\n };\n\n window.addEventListener('keydown', handleKeyDown);\n return () => window.removeEventListener('keydown', handleKeyDown);\n }, [toggleSidebar]);\n\n // We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n // This makes it easier to style the sidebar with Tailwind classes.\n const state = open ? 'expanded' : 'collapsed';\n\n const contextValue = React.useMemo<SidebarContext>(\n () => ({\n state,\n open,\n setOpen,\n isMobile,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n }),\n [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar],\n );\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH,\n '--sidebar-width-icon': SIDEBAR_WIDTH_ICON,\n ...style,\n } as React.CSSProperties\n }\n className={cn(\n 'group/sidebar-wrapper flex min-h-svh w-screen has-[[data-variant=inset]]:bg-sidebar',\n className,\n )}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n );\n});\nSidebarProvider.displayName = 'SidebarProvider';\n\nconst Sidebar = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n side?: 'left' | 'right';\n variant?: 'sidebar' | 'floating' | 'inset';\n collapsible?: 'offcanvas' | 'icon' | 'none';\n }\n>(({ side = 'left', variant = 'sidebar', collapsible = 'offcanvas', className, children, ...props }, ref) => {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n\n if (collapsible === 'none') {\n return (\n <div\n className={cn('flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground', className)}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n );\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetTitle className=\"hidden\"></SheetTitle>\n <SheetContent\n data-sidebar=\"sidebar\"\n data-mobile=\"true\"\n aria-describedby=\"\"\n className=\"w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n >\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n );\n }\n\n return (\n <div\n ref={ref}\n className=\"group peer hidden text-sidebar-foreground md:block\"\n data-state={state}\n data-collapsible={state === 'collapsed' ? collapsible : ''}\n data-variant={variant}\n data-side={side}\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n className={cn(\n 'relative h-svh w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear',\n 'group-data-[collapsible=offcanvas]:w-0',\n 'group-data-[side=right]:rotate-180',\n variant === 'floating' || variant === 'inset'\n ? 'group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon)',\n )}\n />\n <div\n className={cn(\n 'fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex',\n side === 'left'\n ? 'left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]'\n : 'right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]',\n // Adjust the padding for floating and inset variants.\n variant === 'floating' || variant === 'inset'\n ? 'p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4)_+2px)]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l',\n className,\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n className=\"flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow\"\n >\n {children}\n </div>\n </div>\n </div>\n );\n});\nSidebar.displayName = 'Sidebar';\n\nconst SidebarTrigger = React.forwardRef<React.ElementRef<typeof Button>, React.ComponentProps<typeof Button>>(\n ({ className, onClick, ...props }, ref) => {\n const { toggleSidebar } = useSidebar();\n\n return (\n <Button\n ref={ref}\n data-sidebar=\"trigger\"\n variant=\"light\"\n size=\"icon\"\n className={cn('h-7 w-7', className)}\n onClick={(event) => {\n onClick?.(event);\n toggleSidebar();\n }}\n {...props}\n >\n <PanelLeft />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n );\n },\n);\nSidebarTrigger.displayName = 'SidebarTrigger';\n\nconst SidebarRail = React.forwardRef<HTMLButtonElement, React.ComponentProps<'button'>>(\n ({ className, ...props }, ref) => {\n const { toggleSidebar } = useSidebar();\n\n return (\n <button\n ref={ref}\n data-sidebar=\"rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n 'absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex',\n '[[data-side=left]_&]:cursor-w-resize [[data-side=right]_&]:cursor-e-resize',\n '[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize',\n 'group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-sidebar',\n '[[data-side=left][data-collapsible=offcanvas]_&]:-right-2',\n '[[data-side=right][data-collapsible=offcanvas]_&]:-left-2',\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarRail.displayName = 'SidebarRail';\n\nconst SidebarInset = React.forwardRef<HTMLDivElement, React.ComponentProps<'main'>>(({ className, ...props }, ref) => {\n return (\n <main\n ref={ref}\n className={cn(\n 'relative flex min-h-svh flex-1 flex-col bg-background',\n 'peer-data-[variant=inset]:min-h-[calc(100svh-theme(spacing.4))] md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow',\n className,\n )}\n {...props}\n />\n );\n});\nSidebarInset.displayName = 'SidebarInset';\n\nconst SidebarInput = React.forwardRef<React.ElementRef<typeof Input>, React.ComponentProps<typeof Input>>(\n ({ className, ...props }, ref) => {\n return (\n <Input\n ref={ref}\n data-sidebar=\"input\"\n className={cn(\n 'h-8 w-full bg-background shadow-none focus-visible:ring-2 focus-visible:ring-sidebar-ring',\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarInput.displayName = 'SidebarInput';\n\nconst SidebarHeader = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(({ className, ...props }, ref) => {\n return <div ref={ref} data-sidebar=\"header\" className={cn('flex flex-col gap-2 p-2', className)} {...props} />;\n});\nSidebarHeader.displayName = 'SidebarHeader';\n\nconst SidebarFooter = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(({ className, ...props }, ref) => {\n return <div ref={ref} data-sidebar=\"footer\" className={cn('flex flex-col gap-2 p-2', className)} {...props} />;\n});\nSidebarFooter.displayName = 'SidebarFooter';\n\nconst SidebarSeparator = React.forwardRef<React.ElementRef<typeof Separator>, React.ComponentProps<typeof Separator>>(\n ({ className, ...props }, ref) => {\n return (\n <Separator\n ref={ref}\n data-sidebar=\"separator\"\n className={cn('mx-2 w-auto bg-sidebar-border', className)}\n {...props}\n />\n );\n },\n);\nSidebarSeparator.displayName = 'SidebarSeparator';\n\nconst SidebarContent = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"content\"\n className={cn(\n 'flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden',\n className,\n )}\n {...props}\n />\n );\n});\nSidebarContent.displayName = 'SidebarContent';\n\nconst SidebarGroup = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"group\"\n className={cn('relative flex w-full min-w-0 flex-col p-2', className)}\n {...props}\n />\n );\n});\nSidebarGroup.displayName = 'SidebarGroup';\n\nconst SidebarGroupLabel = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'> & { asChild?: boolean }>(\n ({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'div';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-label\"\n className={cn(\n 'flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-none ring-sidebar-ring transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n 'group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0',\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarGroupLabel.displayName = 'SidebarGroupLabel';\n\nconst SidebarGroupAction = React.forwardRef<HTMLButtonElement, React.ComponentProps<'button'> & { asChild?: boolean }>(\n ({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-action\"\n className={cn(\n 'absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:absolute after:-inset-2 after:md:hidden',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarGroupAction.displayName = 'SidebarGroupAction';\n\nconst SidebarGroupContent = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} data-sidebar=\"group-content\" className={cn('w-full text-sm', className)} {...props} />\n ),\n);\nSidebarGroupContent.displayName = 'SidebarGroupContent';\n\nconst SidebarMenu = React.forwardRef<HTMLUListElement, React.ComponentProps<'ul'>>(({ className, ...props }, ref) => (\n <ul ref={ref} data-sidebar=\"menu\" className={cn('flex w-full min-w-0 flex-col gap-1', className)} {...props} />\n));\nSidebarMenu.displayName = 'SidebarMenu';\n\nconst SidebarMenuItem = React.forwardRef<HTMLLIElement, React.ComponentProps<'li'>>(({ className, ...props }, ref) => (\n <li ref={ref} data-sidebar=\"menu-item\" className={cn('group/menu-item relative', className)} {...props} />\n));\nSidebarMenuItem.displayName = 'SidebarMenuItem';\n\nconst sidebarMenuButtonVariants = cva(\n 'peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-none ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0',\n {\n variants: {\n variant: {\n default: 'hover:bg-sidebar-accent hover:text-sidebar-accent-foreground',\n outline:\n 'bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]',\n },\n size: {\n default: 'h-8 text-sm',\n sm: 'h-7 text-xs',\n lg: 'h-12 text-sm group-data-[collapsible=icon]:!p-0',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\nconst SidebarMenuButton = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<'button'> & {\n asChild?: boolean;\n isActive?: boolean;\n tooltip?: string | React.ComponentProps<typeof TooltipContent>;\n } & VariantProps<typeof sidebarMenuButtonVariants>\n>(({ asChild = false, isActive = false, variant = 'default', size = 'default', tooltip, className, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button';\n const { isMobile, state } = useSidebar();\n\n const button = (\n <Comp\n ref={ref}\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n );\n\n if (!tooltip) {\n return button;\n }\n\n if (typeof tooltip === 'string') {\n tooltip = {\n children: tooltip,\n };\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent side=\"right\" align=\"center\" hidden={state !== 'collapsed' || isMobile} {...tooltip} />\n </Tooltip>\n );\n});\nSidebarMenuButton.displayName = 'SidebarMenuButton';\n\nconst SidebarMenuAction = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<'button'> & {\n asChild?: boolean;\n showOnHover?: boolean;\n }\n>(({ className, asChild = false, showOnHover = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-action\"\n className={cn(\n 'absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:absolute after:-inset-2 after:md:hidden',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n showOnHover &&\n 'group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0',\n className,\n )}\n {...props}\n />\n );\n});\nSidebarMenuAction.displayName = 'SidebarMenuAction';\n\nconst SidebarMenuBadge = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"menu-badge\"\n className={cn(\n 'pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-sidebar-foreground',\n 'peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n ),\n);\nSidebarMenuBadge.displayName = 'SidebarMenuBadge';\n\nconst SidebarMenuSkeleton = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n showIcon?: boolean;\n }\n>(({ className, showIcon = false, ...props }, ref) => {\n // Random width between 50 to 90%.\n const width = React.useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`;\n }, []);\n\n return (\n <div\n ref={ref}\n data-sidebar=\"menu-skeleton\"\n className={cn('flex h-8 items-center gap-2 rounded-md px-2', className)}\n {...props}\n >\n {showIcon && <Skeleton className=\"size-4 rounded-md\" data-sidebar=\"menu-skeleton-icon\" />}\n <Skeleton\n className=\"h-4 max-w-[--skeleton-width] flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n '--skeleton-width': width,\n } as React.CSSProperties\n }\n />\n </div>\n );\n});\nSidebarMenuSkeleton.displayName = 'SidebarMenuSkeleton';\n\nconst SidebarMenuSub = React.forwardRef<HTMLUListElement, React.ComponentProps<'ul'>>(\n ({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu-sub\"\n className={cn(\n 'mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n ),\n);\nSidebarMenuSub.displayName = 'SidebarMenuSub';\n\nconst SidebarMenuSubItem = React.forwardRef<HTMLLIElement, React.ComponentProps<'li'>>(({ ...props }, ref) => (\n <li ref={ref} {...props} />\n));\nSidebarMenuSubItem.displayName = 'SidebarMenuSubItem';\n\nconst SidebarMenuSubButton = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentProps<'a'> & {\n asChild?: boolean;\n size?: 'sm' | 'md';\n isActive?: boolean;\n }\n>(({ asChild = false, size = 'md', isActive, className, ...props }, ref) => {\n const Comp = asChild ? Slot : 'a';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n 'flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-none ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground',\n 'data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground',\n size === 'sm' && 'text-xs',\n size === 'md' && 'text-sm',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n );\n});\nSidebarMenuSubButton.displayName = 'SidebarMenuSubButton';\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar,\n};\n"]}
|
|
@@ -4,6 +4,9 @@ import {
|
|
|
4
4
|
TooltipProvider,
|
|
5
5
|
TooltipTrigger
|
|
6
6
|
} from "../../chunk-PMQ65SGR.mjs";
|
|
7
|
+
import {
|
|
8
|
+
Skeleton
|
|
9
|
+
} from "../../chunk-CBPD4MCN.mjs";
|
|
7
10
|
import {
|
|
8
11
|
Separator
|
|
9
12
|
} from "../../chunk-623DYAHT.mjs";
|
|
@@ -12,9 +15,6 @@ import {
|
|
|
12
15
|
SheetContent,
|
|
13
16
|
SheetTitle
|
|
14
17
|
} from "../../chunk-NFHY5TW2.mjs";
|
|
15
|
-
import {
|
|
16
|
-
Skeleton
|
|
17
|
-
} from "../../chunk-CBPD4MCN.mjs";
|
|
18
18
|
import {
|
|
19
19
|
Input
|
|
20
20
|
} from "../../chunk-KBUB4CRW.mjs";
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
3
|
var _chunkDOQ4R2JYjs = require('../../../chunk-DOQ4R2JY.js');
|
|
4
|
+
require('../../../chunk-5SLUBHNN.js');
|
|
4
5
|
|
|
5
6
|
|
|
6
7
|
|
|
7
8
|
|
|
8
9
|
var _chunk7IWZI67Rjs = require('../../../chunk-7IWZI67R.js');
|
|
9
|
-
require('../../../chunk-5SLUBHNN.js');
|
|
10
10
|
require('../../../chunk-2NMEKWO5.js');
|
|
11
11
|
|
|
12
12
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/ahnjun/projects/egose-shadcn/package/dist/components/widgets/dialog-manager/index.js"],"names":[],"mappings":"AAAA;AACE;AACF,6DAAmC;AACnC;AACE;AACA;AACA;AACF,6DAAmC;AACnC,sCAAmC;AACnC
|
|
1
|
+
{"version":3,"sources":["/home/ahnjun/projects/egose-shadcn/package/dist/components/widgets/dialog-manager/index.js"],"names":[],"mappings":"AAAA;AACE;AACF,6DAAmC;AACnC,sCAAmC;AACnC;AACE;AACA;AACA;AACF,6DAAmC;AACnC,sCAAmC;AACnC;AACE;AACA;AACA;AACA;AACF,wOAAC","file":"/home/ahnjun/projects/egose-shadcn/package/dist/components/widgets/dialog-manager/index.js"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
DialogProvider
|
|
3
3
|
} from "../../../chunk-PU6NIJDG.mjs";
|
|
4
|
+
import "../../../chunk-B2Z7BNYW.mjs";
|
|
4
5
|
import {
|
|
5
6
|
DialogContext,
|
|
6
7
|
createTypedDialog,
|
|
7
8
|
useDialog
|
|
8
9
|
} from "../../../chunk-HKFAZF5F.mjs";
|
|
9
|
-
import "../../../chunk-B2Z7BNYW.mjs";
|
|
10
10
|
import "../../../chunk-YOSPWY5K.mjs";
|
|
11
11
|
export {
|
|
12
12
|
DialogContext,
|
package/lib/number.d.mts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
declare function convertToHours(value: string): string;
|
|
2
|
+
declare function convertToHours(value: string, asNumber: true): number;
|
|
3
|
+
declare function convertToHours(value: string, asNumber: false): string;
|
|
4
|
+
declare function convertFromHours(value: string): string;
|
|
5
|
+
declare function convertToWholeFromHours(value: string): string;
|
|
6
|
+
|
|
7
|
+
export { convertFromHours, convertToHours, convertToWholeFromHours };
|
package/lib/number.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
declare function convertToHours(value: string): string;
|
|
2
|
+
declare function convertToHours(value: string, asNumber: true): number;
|
|
3
|
+
declare function convertToHours(value: string, asNumber: false): string;
|
|
4
|
+
declare function convertFromHours(value: string): string;
|
|
5
|
+
declare function convertToWholeFromHours(value: string): string;
|
|
6
|
+
|
|
7
|
+
export { convertFromHours, convertToHours, convertToWholeFromHours };
|
package/lib/number.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
var _chunkTV4NNZTSjs = require('../chunk-TV4NNZTS.js');
|
|
6
|
+
require('../chunk-2NMEKWO5.js');
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
exports.convertFromHours = _chunkTV4NNZTSjs.convertFromHours; exports.convertToHours = _chunkTV4NNZTSjs.convertToHours; exports.convertToWholeFromHours = _chunkTV4NNZTSjs.convertToWholeFromHours;
|
|
12
|
+
//# sourceMappingURL=number.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/ahnjun/projects/egose-shadcn/package/dist/lib/number.js"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACF,uDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACA;AACF,mMAAC","file":"/home/ahnjun/projects/egose-shadcn/package/dist/lib/number.js"}
|
package/lib/number.mjs
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import {
|
|
2
|
+
convertFromHours,
|
|
3
|
+
convertToHours,
|
|
4
|
+
convertToWholeFromHours
|
|
5
|
+
} from "../chunk-JOYUTUGI.mjs";
|
|
6
|
+
import "../chunk-YOSPWY5K.mjs";
|
|
7
|
+
export {
|
|
8
|
+
convertFromHours,
|
|
9
|
+
convertToHours,
|
|
10
|
+
convertToWholeFromHours
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=number.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
package/package.json
CHANGED