@ienlab/react-library 0.17.0-beta.4 → 0.17.0-beta.41

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.
Files changed (101) hide show
  1. package/dist/components/dialog/AlertDialogProps.d.ts +8 -0
  2. package/dist/components/dialog/AlertDialogProps.d.ts.map +1 -0
  3. package/dist/components/dialog/BaseDeleteAlertDialog.d.ts +3 -0
  4. package/dist/components/dialog/BaseDeleteAlertDialog.d.ts.map +1 -0
  5. package/dist/components/dialog/BaseRouterPromptAlertDialog.d.ts +3 -0
  6. package/dist/components/dialog/BaseRouterPromptAlertDialog.d.ts.map +1 -0
  7. package/dist/components/dialog/index.d.ts +4 -0
  8. package/dist/components/dialog/index.d.ts.map +1 -0
  9. package/dist/components/icon/AnimatedSwapIcon.d.ts +12 -0
  10. package/dist/components/icon/AnimatedSwapIcon.d.ts.map +1 -0
  11. package/dist/components/icon/index.d.ts +2 -0
  12. package/dist/components/icon/index.d.ts.map +1 -0
  13. package/dist/components/image/CrossfadeImage.d.ts +1 -1
  14. package/dist/components/image/CrossfadeImage.d.ts.map +1 -1
  15. package/dist/components/image/ImageUploadField.d.ts +26 -2
  16. package/dist/components/image/ImageUploadField.d.ts.map +1 -1
  17. package/dist/components/image/ImageUploadSortableField.d.ts +23 -1
  18. package/dist/components/image/ImageUploadSortableField.d.ts.map +1 -1
  19. package/dist/components/index.d.ts +4 -0
  20. package/dist/components/index.d.ts.map +1 -1
  21. package/dist/components/selector/BaseDateTimeSelector.d.ts +3 -0
  22. package/dist/components/selector/BaseDateTimeSelector.d.ts.map +1 -0
  23. package/dist/components/selector/DateTimeSelectorProps.d.ts +7 -0
  24. package/dist/components/selector/DateTimeSelectorProps.d.ts.map +1 -0
  25. package/dist/components/selector/index.d.ts +3 -0
  26. package/dist/components/selector/index.d.ts.map +1 -0
  27. package/dist/components/seo/Seo.d.ts +9 -0
  28. package/dist/components/seo/Seo.d.ts.map +1 -0
  29. package/dist/components/seo/index.d.ts +2 -0
  30. package/dist/components/seo/index.d.ts.map +1 -0
  31. package/dist/components/table/data-table-grouped.d.ts +1 -1
  32. package/dist/components/table/data-table-grouped.d.ts.map +1 -1
  33. package/dist/components/table/data-table.d.ts +1 -1
  34. package/dist/components/table/data-table.d.ts.map +1 -1
  35. package/dist/constant/firestore.d.ts +10 -2
  36. package/dist/constant/firestore.d.ts.map +1 -1
  37. package/dist/hooks/index.d.ts +3 -1
  38. package/dist/hooks/index.d.ts.map +1 -1
  39. package/dist/hooks/use-debounced-search.d.ts +2 -0
  40. package/dist/hooks/use-debounced-search.d.ts.map +1 -0
  41. package/dist/hooks/use-debounced-value.d.ts +2 -0
  42. package/dist/hooks/use-debounced-value.d.ts.map +1 -0
  43. package/dist/hooks/use-screen-lifecycle.d.ts +17 -0
  44. package/dist/hooks/use-screen-lifecycle.d.ts.map +1 -0
  45. package/dist/index.d.ts +1 -0
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/locales/en/libs.json.d.ts +12 -0
  48. package/dist/locales/ko/libs.json.d.ts +12 -0
  49. package/dist/my-library.cjs.js +20 -1
  50. package/dist/my-library.es.js +6280 -2628
  51. package/dist/og/generateOGPages.d.ts +4 -0
  52. package/dist/og/generateOGPages.d.ts.map +1 -0
  53. package/dist/og/generateOGPages.js +51 -0
  54. package/dist/og/index.d.ts +3 -0
  55. package/dist/og/index.d.ts.map +1 -0
  56. package/dist/og/index.js +1 -0
  57. package/dist/og/types.d.ts +8 -0
  58. package/dist/og/types.d.ts.map +1 -0
  59. package/dist/og/types.js +1 -0
  60. package/dist/props/index.d.ts +2 -0
  61. package/dist/props/index.d.ts.map +1 -0
  62. package/dist/props/motion/index.d.ts +2 -0
  63. package/dist/props/motion/index.d.ts.map +1 -0
  64. package/dist/props/motion/props.d.ts +29 -0
  65. package/dist/props/motion/props.d.ts.map +1 -0
  66. package/dist/types/dialog.d.ts +29 -0
  67. package/dist/types/dialog.d.ts.map +1 -0
  68. package/dist/types/firestore.d.ts +8 -1
  69. package/dist/types/firestore.d.ts.map +1 -1
  70. package/dist/types/image-compress.d.ts +10 -0
  71. package/dist/types/image-compress.d.ts.map +1 -0
  72. package/dist/types/image.d.ts +17 -8
  73. package/dist/types/image.d.ts.map +1 -1
  74. package/dist/types/index.d.ts +5 -0
  75. package/dist/types/index.d.ts.map +1 -1
  76. package/dist/types/localized.d.ts +5 -0
  77. package/dist/types/localized.d.ts.map +1 -1
  78. package/dist/types/page.d.ts +5 -0
  79. package/dist/types/page.d.ts.map +1 -0
  80. package/dist/types/router.d.ts +6 -0
  81. package/dist/types/router.d.ts.map +1 -0
  82. package/dist/types/selector.d.ts +40 -0
  83. package/dist/types/selector.d.ts.map +1 -0
  84. package/dist/types/table.d.ts +6 -6
  85. package/dist/types/table.d.ts.map +1 -1
  86. package/dist/utils/fb-storage.d.ts +19 -5
  87. package/dist/utils/fb-storage.d.ts.map +1 -1
  88. package/dist/utils/firestore.d.ts +3 -3
  89. package/dist/utils/firestore.d.ts.map +1 -1
  90. package/dist/utils/image-compress.d.ts +11 -0
  91. package/dist/utils/image-compress.d.ts.map +1 -0
  92. package/dist/utils/image-validation.d.ts +51 -0
  93. package/dist/utils/image-validation.d.ts.map +1 -0
  94. package/dist/utils/index.d.ts +4 -0
  95. package/dist/utils/index.d.ts.map +1 -1
  96. package/dist/utils/text.d.ts +3 -0
  97. package/dist/utils/text.d.ts.map +1 -0
  98. package/dist/utils/theme-provider.d.ts +18 -0
  99. package/dist/utils/theme-provider.d.ts.map +1 -0
  100. package/dist/utils/zustand.d.ts +1 -1
  101. package/package.json +33 -22
@@ -0,0 +1,4 @@
1
+ import type { OGData } from "./types.js";
2
+ export declare function replaceOGTags(html: string, og: OGData): string;
3
+ export declare function generateOGPages(distDir: string, routeMap: Record<string, OGData>, templateFile?: string): void;
4
+ //# sourceMappingURL=generateOGPages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateOGPages.d.ts","sourceRoot":"","sources":["../../src/og/generateOGPages.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,YAAY,CAAA;AAiCtC,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAmB9D;AAED,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,YAAY,SAAe,GAC1B,IAAI,CAoBN"}
@@ -0,0 +1,51 @@
1
+ /// <reference types="node" />
2
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
3
+ import { join } from "node:path";
4
+ function escapeHtml(str) {
5
+ return str
6
+ .replace(/&/g, "&amp;")
7
+ .replace(/</g, "&lt;")
8
+ .replace(/>/g, "&gt;")
9
+ .replace(/"/g, "&quot;")
10
+ .replace(/'/g, "&#039;");
11
+ }
12
+ function replaceMetaContent(html, attrName, attrValue, newContent) {
13
+ const metaRegex = /<meta\s[^>]*\/?>/gi;
14
+ return html.replace(metaRegex, (tag) => {
15
+ const hasTarget = new RegExp(`\\s${attrName}=["']${attrValue.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}["']`, "i").test(tag);
16
+ if (!hasTarget)
17
+ return tag;
18
+ return tag.replace(/content=["']([^"']*)["']/i, `content="${newContent}"`);
19
+ });
20
+ }
21
+ export function replaceOGTags(html, og) {
22
+ const t = escapeHtml(og.title);
23
+ const d = escapeHtml(og.description);
24
+ const i = escapeHtml(og.image);
25
+ let result = html.replace(/(<title[^>]*>)[^<]*(<\/title>)/i, (_, open, close) => `${open}${t}${close}`);
26
+ result = replaceMetaContent(result, "name", "description", d);
27
+ result = replaceMetaContent(result, "property", "og:title", t);
28
+ result = replaceMetaContent(result, "property", "og:description", d);
29
+ result = replaceMetaContent(result, "property", "og:image", i);
30
+ result = replaceMetaContent(result, "name", "twitter:title", t);
31
+ result = replaceMetaContent(result, "name", "twitter:description", d);
32
+ result = replaceMetaContent(result, "name", "twitter:image", i);
33
+ return result;
34
+ }
35
+ export function generateOGPages(distDir, routeMap, templateFile = "index.html") {
36
+ const indexPath = join(distDir, templateFile);
37
+ if (!existsSync(indexPath)) {
38
+ console.error(`[generateOGPages] Template not found: ${indexPath}`);
39
+ process.exit(1);
40
+ }
41
+ const html = readFileSync(indexPath, "utf-8");
42
+ let count = 0;
43
+ for (const [route, og] of Object.entries(routeMap)) {
44
+ const dir = join(distDir, route.replace(/^\//, ""));
45
+ mkdirSync(dir, { recursive: true });
46
+ writeFileSync(join(dir, "index.html"), replaceOGTags(html, og), "utf-8");
47
+ console.log(` ✓ ${route} → ${join(dir, "index.html")}`);
48
+ count++;
49
+ }
50
+ console.log(`\n✅ ${count} OG pages generated`);
51
+ }
@@ -0,0 +1,3 @@
1
+ export type { OGData, RouteParams, RouteResolver } from "./types.js";
2
+ export { generateOGPages, replaceOGTags } from "./generateOGPages.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/og/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAC,MAAM,EAAE,WAAW,EAAE,aAAa,EAAC,MAAM,YAAY,CAAA;AAClE,OAAO,EAAC,eAAe,EAAE,aAAa,EAAC,MAAM,sBAAsB,CAAA"}
@@ -0,0 +1 @@
1
+ export { generateOGPages, replaceOGTags } from "./generateOGPages.js";
@@ -0,0 +1,8 @@
1
+ export type OGData = {
2
+ title: string;
3
+ description: string;
4
+ image: string;
5
+ };
6
+ export type RouteParams = Record<string, string>;
7
+ export type RouteResolver = (params: RouteParams) => OGData | Promise<OGData>;
8
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/og/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,MAAM,GAAG;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAEhD,MAAM,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,WAAW,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ export * from './motion';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/props/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './props';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/props/motion/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA"}
@@ -0,0 +1,29 @@
1
+ export declare const slideFadeProps: {
2
+ readonly initial: {
3
+ readonly opacity: 0;
4
+ readonly y: -10;
5
+ };
6
+ readonly animate: {
7
+ readonly opacity: 1;
8
+ readonly y: 0;
9
+ };
10
+ readonly exit: {
11
+ readonly opacity: 0;
12
+ readonly y: -10;
13
+ };
14
+ };
15
+ export declare const fadeProps: {
16
+ readonly initial: {
17
+ readonly opacity: 0;
18
+ };
19
+ readonly animate: {
20
+ readonly opacity: 1;
21
+ };
22
+ readonly exit: {
23
+ readonly opacity: 0;
24
+ };
25
+ readonly transition: {
26
+ readonly duration: 0.3;
27
+ };
28
+ };
29
+ //# sourceMappingURL=props.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"props.d.ts","sourceRoot":"","sources":["../../../src/props/motion/props.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc;;;;;;;;;;;;;CAIjB,CAAA;AAEV,eAAO,MAAM,SAAS;;;;;;;;;;;;;CAKZ,CAAA"}
@@ -0,0 +1,29 @@
1
+ import { ButtonHTMLAttributes, ComponentType, HTMLAttributes } from 'react';
2
+ export type DialogRootProps = HTMLAttributes<HTMLDivElement> & {
3
+ open: boolean;
4
+ onOpenChange: (open: boolean) => void;
5
+ };
6
+ export type DialogContentProps = HTMLAttributes<HTMLDivElement>;
7
+ export type DialogHeaderProps = HTMLAttributes<HTMLDivElement>;
8
+ export type DialogTitleProps = HTMLAttributes<HTMLHeadingElement>;
9
+ export type DialogDescriptionProps = HTMLAttributes<HTMLParagraphElement>;
10
+ export type DialogFooterProps = HTMLAttributes<HTMLDivElement>;
11
+ export type DialogButtonProps = ButtonHTMLAttributes<HTMLButtonElement> & {
12
+ variant?: "default" | "outline" | "destructive" | "secondary" | "ghost" | "link";
13
+ };
14
+ export type AlertDialogInjectedComponents = {
15
+ AlertDialog?: ComponentType<DialogRootProps>;
16
+ AlertDialogContent?: ComponentType<DialogContentProps>;
17
+ AlertDialogHeader?: ComponentType<DialogHeaderProps>;
18
+ AlertDialogTitle?: ComponentType<DialogTitleProps>;
19
+ AlertDialogDescription?: ComponentType<DialogDescriptionProps>;
20
+ AlertDialogFooter?: ComponentType<DialogFooterProps>;
21
+ Button?: ComponentType<DialogButtonProps>;
22
+ };
23
+ export declare const DefaultDialogRoot: ({ open, children }: DialogRootProps) => import("react").JSX.Element | null;
24
+ export declare const DefaultDialogContent: (props: DialogContentProps) => import("react").JSX.Element;
25
+ export declare const DefaultDialogHeader: (props: DialogHeaderProps) => import("react").JSX.Element;
26
+ export declare const DefaultDialogTitle: (props: DialogTitleProps) => import("react").JSX.Element;
27
+ export declare const DefaultDialogDescription: (props: DialogDescriptionProps) => import("react").JSX.Element;
28
+ export declare const DefaultDialogFooter: (props: DialogFooterProps) => import("react").JSX.Element;
29
+ //# sourceMappingURL=dialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../src/types/dialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,aAAa,EACb,cAAc,EACf,MAAM,OAAO,CAAA;AAEd,MAAM,MAAM,eAAe,GAAG,cAAc,CAAC,cAAc,CAAC,GAAG;IAC7D,IAAI,EAAE,OAAO,CAAA;IACb,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;CACtC,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG,cAAc,CAAC,cAAc,CAAC,CAAA;AAC/D,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAC,cAAc,CAAC,CAAA;AAC9D,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC,kBAAkB,CAAC,CAAA;AACjE,MAAM,MAAM,sBAAsB,GAAG,cAAc,CAAC,oBAAoB,CAAC,CAAA;AACzE,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAC,cAAc,CAAC,CAAA;AAC9D,MAAM,MAAM,iBAAiB,GAC3B,oBAAoB,CAAC,iBAAiB,CAAC,GAAG;IAC1C,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,OAAO,GAAG,MAAM,CAAA;CACjF,CAAA;AAED,MAAM,MAAM,6BAA6B,GAAG;IAC1C,WAAW,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,CAAA;IAC5C,kBAAkB,CAAC,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAA;IACtD,iBAAiB,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAA;IACpD,gBAAgB,CAAC,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAA;IAClD,sBAAsB,CAAC,EAAE,aAAa,CAAC,sBAAsB,CAAC,CAAA;IAC9D,iBAAiB,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAA;IACpD,MAAM,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAA;CAC1C,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAI,oBAAoB,eAAe,uCAGpE,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAI,OAAO,kBAAkB,gCAAuB,CAAA;AACrF,eAAO,MAAM,mBAAmB,GAAI,OAAO,iBAAiB,gCAAuB,CAAA;AACnF,eAAO,MAAM,kBAAkB,GAAI,OAAO,gBAAgB,gCAAsB,CAAA;AAChF,eAAO,MAAM,wBAAwB,GAAI,OAAO,sBAAsB,gCAAqB,CAAA;AAC3F,eAAO,MAAM,mBAAmB,GAAI,OAAO,iBAAiB,gCAAuB,CAAA"}
@@ -1,11 +1,17 @@
1
1
  import { DocumentReference, DocumentSnapshot, Timestamp } from 'firebase/firestore';
2
- export interface FirestoreItem {
2
+ export interface BaseFirestoreItem {
3
3
  id: string;
4
4
  ref: DocumentReference | null;
5
5
  createAt: Timestamp;
6
6
  updateAt: Timestamp;
7
+ }
8
+ /** @deprecated 기존 boolean 기반 삭제 필드를 사용하는 레거시 인터페이스입니다. */
9
+ export interface FirestoreItemLegacy extends BaseFirestoreItem {
7
10
  delete: boolean;
8
11
  }
12
+ export interface FirestoreItem extends BaseFirestoreItem {
13
+ deletedAt: Timestamp | null;
14
+ }
9
15
  export interface InfScrollStateList<T> {
10
16
  itemList: Map<string, T>;
11
17
  lastVisibleDocument: DocumentSnapshot | null;
@@ -13,4 +19,5 @@ export interface InfScrollStateList<T> {
13
19
  isLoading: boolean;
14
20
  hasMore: boolean;
15
21
  }
22
+ export type FirestoreListMode = "list" | "search";
16
23
  //# sourceMappingURL=firestore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"firestore.d.ts","sourceRoot":"","sources":["../../src/types/firestore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAExF,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC9B,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;IACxB,mBAAmB,EAAE,gBAAgB,GAAG,IAAI,CAAA;IAC5C,aAAa,EAAE,OAAO,CAAA;IACtB,SAAS,EAAE,OAAO,CAAA;IAClB,OAAO,EAAE,OAAO,CAAA;CACjB"}
1
+ {"version":3,"file":"firestore.d.ts","sourceRoot":"","sources":["../../src/types/firestore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAExF,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC9B,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,0DAA0D;AAC1D,MAAM,WAAW,mBAAoB,SAAQ,iBAAiB;IAC5D,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,aAAc,SAAQ,iBAAiB;IACtD,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;IACxB,mBAAmB,EAAE,gBAAgB,GAAG,IAAI,CAAA;IAC5C,aAAa,EAAE,OAAO,CAAA;IACtB,SAAS,EAAE,OAAO,CAAA;IAClB,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,QAAQ,CAAA"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * 이미지 압축 정책을 정의합니다.
3
+ * maxSizeMB - 최대 파일 크기 (MB)
4
+ * maxWidthOrHeight - 최대 너비 또는 높이 (픽셀)
5
+ */
6
+ export type ImageCompressionPolicy = {
7
+ maxSizeMB?: number;
8
+ maxWidthOrHeight?: number;
9
+ };
10
+ //# sourceMappingURL=image-compress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-compress.d.ts","sourceRoot":"","sources":["../../src/types/image-compress.ts"],"names":[],"mappings":"AACA;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B,CAAA"}
@@ -21,13 +21,22 @@ export type IconProps = {
21
21
  className?: string;
22
22
  };
23
23
  export type ButtonLikeProps = ButtonHTMLAttributes<HTMLButtonElement>;
24
- export declare const DefaultField: ({ children }: FieldProps) => import("react/jsx-runtime").JSX.Element;
25
- export declare const DefaultFieldLabel: (props: LabelHTMLAttributes<HTMLLabelElement>) => import("react/jsx-runtime").JSX.Element;
26
- export declare const DefaultFieldDescription: ({ children }: DescriptionProps) => import("react/jsx-runtime").JSX.Element;
27
- export declare const DefaultInput: (props: InputHTMLAttributes<HTMLInputElement>) => import("react/jsx-runtime").JSX.Element;
28
- export declare const DefaultScrollArea: ({ children, ...props }: ScrollAreaProps) => import("react/jsx-runtime").JSX.Element;
24
+ /** 기본 Field 렌더러 - children div로 감싸 반환합니다 */
25
+ export declare const DefaultField: ({ children }: FieldProps) => import("react").JSX.Element;
26
+ /** 기본 Label 렌더러 - label 엘리먼트를 반환합니다 */
27
+ export declare const DefaultFieldLabel: (props: LabelHTMLAttributes<HTMLLabelElement>) => import("react").JSX.Element;
28
+ /** 기본 Description 렌더러 - p 엘리먼트를 반환합니다 */
29
+ export declare const DefaultFieldDescription: ({ children }: DescriptionProps) => import("react").JSX.Element;
30
+ /** 기본 Input 렌더러 - input 엘리먼트를 반환합니다 */
31
+ export declare const DefaultInput: (props: InputHTMLAttributes<HTMLInputElement>) => import("react").JSX.Element;
32
+ /** 기본 ScrollArea 렌더러 - div로 감싸 반환합니다 */
33
+ export declare const DefaultScrollArea: ({ children, ...props }: ScrollAreaProps) => import("react").JSX.Element;
34
+ /** 기본 ScrollBar 렌더러 - 아무것도 렌더링하지 않습니다 */
29
35
  export declare const DefaultScrollBar: (_props: ScrollBarProps) => null;
30
- export declare const DefaultCard: ({ children, ...props }: CardProps) => import("react/jsx-runtime").JSX.Element;
31
- export declare const DefaultButton: ({ children, type, ...props }: ButtonLikeProps) => import("react/jsx-runtime").JSX.Element;
32
- export declare const DefaultCloseIcon: ({ className }: IconProps) => import("react/jsx-runtime").JSX.Element;
36
+ /** 기본 Card 렌더러 - div에 props 전달하여 반환합니다 */
37
+ export declare const DefaultCard: ({ children, ...props }: CardProps) => import("react").JSX.Element;
38
+ /** 기본 Button 렌더러 - button 엘리먼트를 반환하며 기본 type은 "button"입니다 */
39
+ export declare const DefaultButton: ({ children, type, ...props }: ButtonLikeProps) => import("react").JSX.Element;
40
+ /** 기본 닫기 아이콘 렌더러 - "×" 문자를 span으로 감싸 반환합니다 */
41
+ export declare const DefaultCloseIcon: ({ className }: IconProps) => import("react").JSX.Element;
33
42
  //# sourceMappingURL=image.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../../src/types/image.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,SAAS,EACV,MAAM,OAAO,CAAA;AAEd,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,EAAE,SAAS,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,SAAS,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,SAAS,GAAG,cAAc,CAAC,cAAc,CAAC,CAAA;AAEtD,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,KAAK,CAAC,EAAE,aAAa,CAAA;IACrB,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAA;IAC7C,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG,cAAc,CAAC,cAAc,CAAC,GAAG;IAC5D,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAA;CACxC,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG,oBAAoB,CAAC,iBAAiB,CAAC,CAAA;AAErE,eAAO,MAAM,YAAY,GAAI,cAAc,UAAU,4CAA0B,CAAA;AAE/E,eAAO,MAAM,iBAAiB,GAC5B,OAAO,mBAAmB,CAAC,gBAAgB,CAAC,4CACrB,CAAA;AAEzB,eAAO,MAAM,uBAAuB,GAAI,cAAc,gBAAgB,4CAErE,CAAA;AAED,eAAO,MAAM,YAAY,GACvB,OAAO,mBAAmB,CAAC,gBAAgB,CAAC,4CACrB,CAAA;AAEzB,eAAO,MAAM,iBAAiB,GAAI,wBAGG,eAAe,4CAAqC,CAAA;AAEzF,eAAO,MAAM,gBAAgB,GAAI,QAAQ,cAAc,SAAS,CAAA;AAEhE,eAAO,MAAM,WAAW,GAAI,wBAAwB,SAAS,4CAE5D,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,8BAIG,eAAe,4CAI/C,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,eAAe,SAAS,4CAExD,CAAA"}
1
+ {"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../../src/types/image.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,SAAS,EACV,MAAM,OAAO,CAAA;AAEd,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,EAAE,SAAS,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,SAAS,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,SAAS,GAAG,cAAc,CAAC,cAAc,CAAC,CAAA;AAEtD,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,KAAK,CAAC,EAAE,aAAa,CAAA;IACrB,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAA;IAC7C,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG,cAAc,CAAC,cAAc,CAAC,GAAG;IAC5D,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAA;CACxC,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG,oBAAoB,CAAC,iBAAiB,CAAC,CAAA;AAErE,6CAA6C;AAC7C,eAAO,MAAM,YAAY,GAAI,cAAc,UAAU,gCAA0B,CAAA;AAE/E,uCAAuC;AACvC,eAAO,MAAM,iBAAiB,GAC5B,OAAO,mBAAmB,CAAC,gBAAgB,CAAC,gCACrB,CAAA;AAEzB,yCAAyC;AACzC,eAAO,MAAM,uBAAuB,GAAI,cAAc,gBAAgB,gCAErE,CAAA;AAED,uCAAuC;AACvC,eAAO,MAAM,YAAY,GACvB,OAAO,mBAAmB,CAAC,gBAAgB,CAAC,gCACrB,CAAA;AAEzB,wCAAwC;AACxC,eAAO,MAAM,iBAAiB,GAAI,wBAGG,eAAe,gCAAqC,CAAA;AAEzF,yCAAyC;AACzC,eAAO,MAAM,gBAAgB,GAAI,QAAQ,cAAc,SAAS,CAAA;AAEhE,2CAA2C;AAC3C,eAAO,MAAM,WAAW,GAAI,wBAAwB,SAAS,gCAE5D,CAAA;AAED,6DAA6D;AAC7D,eAAO,MAAM,aAAa,GAAI,8BAIG,eAAe,gCAI/C,CAAA;AAED,8CAA8C;AAC9C,eAAO,MAAM,gBAAgB,GAAI,eAAe,SAAS,gCAExD,CAAA"}
@@ -4,4 +4,9 @@ export * from './localized';
4
4
  export * from './auth';
5
5
  export * from './file';
6
6
  export * from './table';
7
+ export * from './page';
8
+ export * from './dialog';
9
+ export * from './selector';
10
+ export * from './router';
11
+ export * from './image-compress';
7
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,cAAc,QAAQ,CAAA;AACtB,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,cAAc,QAAQ,CAAA;AACtB,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA;AACtB,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,kBAAkB,CAAA"}
@@ -1,4 +1,9 @@
1
1
  export declare const SUPPORTED_LOCALES: readonly ["ko", "en"];
2
2
  export type Locale = (typeof SUPPORTED_LOCALES)[number];
3
3
  export type Localized<T, TLocale extends string = Locale> = Record<TLocale, T>;
4
+ export declare function setLocalizedLocaleResolver(resolver: () => string | undefined): void;
5
+ export declare const Localized: {
6
+ get<T>(value: Localized<T>, fallback?: Locale): T;
7
+ ko<T>(value: Localized<T>): T;
8
+ };
4
9
  //# sourceMappingURL=localized.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"localized.d.ts","sourceRoot":"","sources":["../../src/types/localized.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,uBAAwB,CAAA;AACtD,MAAM,MAAM,MAAM,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAA;AACvD,MAAM,MAAM,SAAS,CAAC,CAAC,EAAE,OAAO,SAAS,MAAM,GAAG,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"localized.d.ts","sourceRoot":"","sources":["../../src/types/localized.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,uBAAwB,CAAA;AACtD,MAAM,MAAM,MAAM,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAA;AACvD,MAAM,MAAM,SAAS,CAAC,CAAC,EAAE,OAAO,SAAS,MAAM,GAAG,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;AAI9E,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,MAAM,GAAG,SAAS,QAE5E;AAED,eAAO,MAAM,SAAS;QAChB,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,aAAY,MAAM,GAAU,CAAC;OASpD,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;CAG9B,CAAA"}
@@ -0,0 +1,5 @@
1
+ export type PageMode = "create" | "edit";
2
+ export type PageModeProps = {
3
+ mode: PageMode;
4
+ };
5
+ //# sourceMappingURL=page.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../src/types/page.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAA;AAExC,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,QAAQ,CAAA;CACf,CAAA"}
@@ -0,0 +1,6 @@
1
+ export type AppMatch<TData> = {
2
+ data: TData;
3
+ params: Record<string, string | undefined>;
4
+ pathname: string;
5
+ };
6
+ //# sourceMappingURL=router.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/types/router.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,CAAC,KAAK,IAAI;IAC5B,IAAI,EAAE,KAAK,CAAA;IACX,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;IAC1C,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA"}
@@ -0,0 +1,40 @@
1
+ import { ComponentType, InputHTMLAttributes, LabelHTMLAttributes, ReactNode } from 'react';
2
+ import { FieldProps, IconProps } from './image';
3
+ type CalendarProps = {
4
+ mode?: "single";
5
+ captionLayout?: "dropdown";
6
+ defaultMonth?: Date;
7
+ selected?: Date;
8
+ onSelect?: (date: Date | undefined) => void;
9
+ };
10
+ type FieldGroupProps = {
11
+ children: ReactNode;
12
+ className?: string;
13
+ };
14
+ type InputGroupProps = {
15
+ children: ReactNode;
16
+ className?: string;
17
+ };
18
+ type InputGroupInputProps = InputHTMLAttributes<HTMLInputElement>;
19
+ type InputGroupAddonProps = {
20
+ children: ReactNode;
21
+ className?: string;
22
+ };
23
+ export type DateTimeSelectorInjectedComponents = {
24
+ Calendar?: ComponentType<any>;
25
+ Field?: ComponentType<FieldProps>;
26
+ FieldLabel?: ComponentType<LabelHTMLAttributes<HTMLLabelElement>>;
27
+ FieldGroup?: ComponentType<FieldGroupProps>;
28
+ InputGroup?: ComponentType<InputGroupProps>;
29
+ InputGroupInput?: ComponentType<InputGroupInputProps>;
30
+ InputGroupAddon?: ComponentType<InputGroupAddonProps>;
31
+ TimeIcon?: ComponentType<IconProps>;
32
+ };
33
+ export declare const DefaultCalendar: (_props: CalendarProps) => import("react").JSX.Element;
34
+ export declare const DefaultFieldGroup: (props: FieldGroupProps) => import("react").JSX.Element;
35
+ export declare const DefaultInputGroup: (props: InputGroupProps) => import("react").JSX.Element;
36
+ export declare const DefaultInputGroupInput: (props: InputGroupInputProps) => import("react").JSX.Element;
37
+ export declare const DefaultInputGroupAddon: (props: InputGroupAddonProps) => import("react").JSX.Element;
38
+ export declare const DefaultTimeIcon: ({ className }: IconProps) => import("react").JSX.Element;
39
+ export {};
40
+ //# sourceMappingURL=selector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selector.d.ts","sourceRoot":"","sources":["../../src/types/selector.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,SAAS,EAAC,MAAM,OAAO,CAAA;AAC7F,OAAO,KAAK,EAAC,UAAU,EAAE,SAAS,EAAC,MAAM,SAAS,CAAA;AAGlD,KAAK,aAAa,GAAG;IACnB,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf,aAAa,CAAC,EAAE,UAAU,CAAA;IAC1B,YAAY,CAAC,EAAE,IAAI,CAAA;IACnB,QAAQ,CAAC,EAAE,IAAI,CAAA;IACf,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,KAAK,IAAI,CAAA;CAC5C,CAAA;AAED,KAAK,eAAe,GAAG;IACrB,QAAQ,EAAE,SAAS,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,KAAK,eAAe,GAAG;IACrB,QAAQ,EAAE,SAAS,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,KAAK,oBAAoB,GAAG,mBAAmB,CAAC,gBAAgB,CAAC,CAAA;AAEjE,KAAK,oBAAoB,GAAG;IAC1B,QAAQ,EAAE,SAAS,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,kCAAkC,GAAG;IAC/C,QAAQ,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,CAAA;IAC7B,KAAK,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAA;IACjC,UAAU,CAAC,EAAE,aAAa,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,CAAA;IACjE,UAAU,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,CAAA;IAC3C,UAAU,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,CAAA;IAC3C,eAAe,CAAC,EAAE,aAAa,CAAC,oBAAoB,CAAC,CAAA;IACrD,eAAe,CAAC,EAAE,aAAa,CAAC,oBAAoB,CAAC,CAAA;IACrD,QAAQ,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAA;CACpC,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,QAAQ,aAAa,gCAEpD,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAI,OAAO,eAAe,gCAEvD,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAI,OAAO,eAAe,gCAEvD,CAAA;AAED,eAAO,MAAM,sBAAsB,GAAI,OAAO,oBAAoB,gCAEjE,CAAA;AAED,eAAO,MAAM,sBAAsB,GAAI,OAAO,oBAAoB,gCAEjE,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,eAAe,SAAS,gCAEvD,CAAA"}
@@ -12,10 +12,10 @@ export type TableInjectedComponents = {
12
12
  TableHead?: ComponentType<TableHeadProps>;
13
13
  TableCell?: ComponentType<TableCellProps>;
14
14
  };
15
- export declare const DefaultTable: (props: TableHTMLAttributes<HTMLTableElement>) => import("react/jsx-runtime").JSX.Element;
16
- export declare const DefaultTableHeader: (props: HTMLAttributes<HTMLTableSectionElement>) => import("react/jsx-runtime").JSX.Element;
17
- export declare const DefaultTableBody: (props: HTMLAttributes<HTMLTableSectionElement>) => import("react/jsx-runtime").JSX.Element;
18
- export declare const DefaultTableRow: (props: HTMLAttributes<HTMLTableRowElement>) => import("react/jsx-runtime").JSX.Element;
19
- export declare const DefaultTableHead: (props: ThHTMLAttributes<HTMLTableCellElement>) => import("react/jsx-runtime").JSX.Element;
20
- export declare const DefaultTableCell: (props: TdHTMLAttributes<HTMLTableCellElement>) => import("react/jsx-runtime").JSX.Element;
15
+ export declare const DefaultTable: (props: TableHTMLAttributes<HTMLTableElement>) => import("react").JSX.Element;
16
+ export declare const DefaultTableHeader: (props: HTMLAttributes<HTMLTableSectionElement>) => import("react").JSX.Element;
17
+ export declare const DefaultTableBody: (props: HTMLAttributes<HTMLTableSectionElement>) => import("react").JSX.Element;
18
+ export declare const DefaultTableRow: (props: HTMLAttributes<HTMLTableRowElement>) => import("react").JSX.Element;
19
+ export declare const DefaultTableHead: (props: ThHTMLAttributes<HTMLTableCellElement>) => import("react").JSX.Element;
20
+ export declare const DefaultTableCell: (props: TdHTMLAttributes<HTMLTableCellElement>) => import("react").JSX.Element;
21
21
  //# sourceMappingURL=table.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../src/types/table.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,OAAO,CAAC;AAEf,MAAM,MAAM,cAAc,GAAG,cAAc,CAAC,gBAAgB,CAAC,CAAA;AAC7D,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAC,uBAAuB,CAAC,CAAA;AACvE,MAAM,MAAM,aAAa,GAAG,cAAc,CAAC,mBAAmB,CAAC,CAAA;AAC/D,MAAM,MAAM,cAAc,GAAG,gBAAgB,CAAC,oBAAoB,CAAC,CAAA;AACnE,MAAM,MAAM,cAAc,GAAG,gBAAgB,CAAC,oBAAoB,CAAC,CAAA;AAEnE,MAAM,MAAM,uBAAuB,GAAG;IACpC,KAAK,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAA;IACrC,WAAW,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAA;IAC9C,SAAS,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAA;IAC5C,QAAQ,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;IACvC,SAAS,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAA;IACzC,SAAS,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAA;CAC1C,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,OAAO,mBAAmB,CAAC,gBAAgB,CAAC,4CAAyB,CAAA;AAClG,eAAO,MAAM,kBAAkB,GAAI,OAAO,cAAc,CAAC,uBAAuB,CAAC,4CAAyB,CAAA;AAC1G,eAAO,MAAM,gBAAgB,GAAI,OAAO,cAAc,CAAC,uBAAuB,CAAC,4CAAyB,CAAA;AACxG,eAAO,MAAM,eAAe,GAAI,OAAO,cAAc,CAAC,mBAAmB,CAAC,4CAAsB,CAAA;AAChG,eAAO,MAAM,gBAAgB,GAAI,OAAO,gBAAgB,CAAC,oBAAoB,CAAC,4CAAsB,CAAA;AACpG,eAAO,MAAM,gBAAgB,GAAI,OAAO,gBAAgB,CAAC,oBAAoB,CAAC,4CAAsB,CAAA"}
1
+ {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../src/types/table.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,OAAO,CAAC;AAEf,MAAM,MAAM,cAAc,GAAG,cAAc,CAAC,gBAAgB,CAAC,CAAA;AAC7D,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAC,uBAAuB,CAAC,CAAA;AACvE,MAAM,MAAM,aAAa,GAAG,cAAc,CAAC,mBAAmB,CAAC,CAAA;AAC/D,MAAM,MAAM,cAAc,GAAG,gBAAgB,CAAC,oBAAoB,CAAC,CAAA;AACnE,MAAM,MAAM,cAAc,GAAG,gBAAgB,CAAC,oBAAoB,CAAC,CAAA;AAEnE,MAAM,MAAM,uBAAuB,GAAG;IACpC,KAAK,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAA;IACrC,WAAW,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAA;IAC9C,SAAS,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAA;IAC5C,QAAQ,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;IACvC,SAAS,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAA;IACzC,SAAS,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAA;CAC1C,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,OAAO,mBAAmB,CAAC,gBAAgB,CAAC,gCAAyB,CAAA;AAClG,eAAO,MAAM,kBAAkB,GAAI,OAAO,cAAc,CAAC,uBAAuB,CAAC,gCAAyB,CAAA;AAC1G,eAAO,MAAM,gBAAgB,GAAI,OAAO,cAAc,CAAC,uBAAuB,CAAC,gCAAyB,CAAA;AACxG,eAAO,MAAM,eAAe,GAAI,OAAO,cAAc,CAAC,mBAAmB,CAAC,gCAAsB,CAAA;AAChG,eAAO,MAAM,gBAAgB,GAAI,OAAO,gBAAgB,CAAC,oBAAoB,CAAC,gCAAsB,CAAA;AACpG,eAAO,MAAM,gBAAgB,GAAI,OAAO,gBAAgB,CAAC,oBAAoB,CAAC,gCAAsB,CAAA"}
@@ -1,10 +1,24 @@
1
1
  import { FirebaseStorage } from 'firebase/storage';
2
- import { ImageUploadItem } from '../types';
2
+ import { ImageCompressionPolicy, ImageUploadItem } from '../types';
3
3
  /**
4
- * @param storage Firebase Storage 객체
5
- * @param path 확장자를 제외한 파일 경로 및 이름
6
- * @param item 업로드할 이미지
7
- * @return 업로드된 이미지의 URL
4
+ * Firebase Storage 이미지 파일을 업로드합니다.
5
+ * item.file이 없으면 기존 item.url을 그대로 반환합니다.
6
+ *
7
+ * @param storage - Firebase Storage 객체
8
+ * @param path - 확장자를 제외한 파일 경로 및 이름
9
+ * @param item - 업로드할 이미지 아이템
10
+ * @returns 업로드된 이미지의 다운로드 URL
8
11
  */
9
12
  export declare function uploadImage(storage: FirebaseStorage, path: string, item: ImageUploadItem): Promise<string>;
13
+ /**
14
+ * 이미지를 압축한 후 Firebase Storage에 업로드합니다.
15
+ * item.isEmpty가 true이면 빈 문자열을 반환합니다.
16
+ *
17
+ * @param storage - Firebase Storage 객체
18
+ * @param path - 확장자를 제외한 파일 경로 및 이름
19
+ * @param item - 업로드할 이미지 아이템
20
+ * @param policy - 이미지 압축 정책
21
+ * @returns 업로드된 이미지의 다운로드 URL (빈 항목일 경우 빈 문자열)
22
+ */
23
+ export declare function uploadCompressedImage(storage: FirebaseStorage, path: string, item: ImageUploadItem, policy: ImageCompressionPolicy): Promise<string>;
10
24
  //# sourceMappingURL=fb-storage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fb-storage.d.ts","sourceRoot":"","sources":["../../src/utils/fb-storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwD,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC9G,OAAO,EAAC,eAAe,EAAC,MAAM,UAAU,CAAC;AAGzC;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,mBAa9F"}
1
+ {"version":3,"file":"fb-storage.d.ts","sourceRoot":"","sources":["../../src/utils/fb-storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwD,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC9G,OAAO,EAAC,KAAK,sBAAsB,EAAE,eAAe,EAAC,MAAM,UAAU,CAAC;AAItE;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,mBAa9F;AAED;;;;;;;;;GASG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,sBAAsB,mBAYxI"}
@@ -1,8 +1,8 @@
1
1
  import { CollectionReference, DocumentData, DocumentReference, DocumentSnapshot, QueryDocumentSnapshot, Unsubscribe, FirestoreError, Query, QuerySnapshot } from 'firebase/firestore';
2
- import { FirestoreItem } from '../types';
2
+ import { BaseFirestoreItem } from '../types';
3
3
  export declare function snapshotToData(snapshot: QueryDocumentSnapshot | DocumentSnapshot): DocumentData;
4
- export declare function fetchItems<T extends FirestoreItem>(collection: CollectionReference, changeMethod: ((snapshot: QueryDocumentSnapshot | DocumentSnapshot) => T), cache: Map<string, T>, referenceArray: (DocumentReference | undefined | null)[]): Promise<void>;
5
- export declare function fetchItemsByOne<T extends FirestoreItem>(changeMethod: ((snapshot: QueryDocumentSnapshot | DocumentSnapshot) => T), cache: Map<string, T>, referenceArray: (DocumentReference | undefined | null)[]): Promise<void>;
4
+ export declare function fetchItems<T extends BaseFirestoreItem>(collection: CollectionReference, changeMethod: ((snapshot: QueryDocumentSnapshot | DocumentSnapshot) => T), cache: Map<string, T>, referenceArray: (DocumentReference | undefined | null)[]): Promise<void>;
5
+ export declare function fetchItemsByOne<T extends BaseFirestoreItem>(changeMethod: ((snapshot: QueryDocumentSnapshot | DocumentSnapshot) => T), cache: Map<string, T>, referenceArray: (DocumentReference | undefined | null)[]): Promise<void>;
6
6
  export type SnapshotOptions = {
7
7
  cache?: boolean;
8
8
  includeMetadataChanges?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"firestore.d.ts","sourceRoot":"","sources":["../../src/utils/firestore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqC,KAAK,mBAAmB,EAC3D,KAAK,YAAY,EAAE,KAAK,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,KAAK,qBAAqB,EACnG,KAAK,WAAW,EAEhB,KAAK,cAAc,EAEnB,KAAK,EACL,aAAa,EACd,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,UAAU,CAAA;AAE3C,wBAAgB,cAAc,CAAC,QAAQ,EAAE,qBAAqB,GAAG,gBAAgB,GAAG,YAAY,CAK/F;AAED,wBAAsB,UAAU,CAAC,CAAC,SAAS,aAAa,EACtD,UAAU,EAAE,mBAAmB,EAC/B,YAAY,EAAE,CAAC,CAAC,QAAQ,EAAE,qBAAqB,GAAG,gBAAgB,KAAK,CAAC,CAAC,EACzE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EACrB,cAAc,EAAE,CAAC,iBAAiB,GAAG,SAAS,GAAG,IAAI,CAAC,EAAE,iBAgBzD;AAED,wBAAsB,eAAe,CAAC,CAAC,SAAS,aAAa,EAC3D,YAAY,EAAE,CAAC,CAAC,QAAQ,EAAE,qBAAqB,GAAG,gBAAgB,KAAK,CAAC,CAAC,EACzE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EACrB,cAAc,EAAE,CAAC,iBAAiB,GAAG,SAAS,GAAG,IAAI,CAAC,EAAE,iBAQzD;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAA;CAC1C,CAAA;AAsBD,wBAAgB,YAAY,CAC1B,YAAY,EACZ,WAAW,SAAS,YAAY,GAAG,YAAY,EAE/C,GAAG,EAAE,iBAAiB,CAAC,YAAY,EAAE,WAAW,CAAC,EACjD,QAAQ,EAAE,CACR,QAAQ,EAAE,gBAAgB,CAAC,YAAY,EAAE,WAAW,CAAC,KAClD,IAAI,EACT,OAAO,CAAC,EAAE,eAAe,GACxB,WAAW,CAAA;AAEd,wBAAgB,YAAY,CAC1B,YAAY,EACZ,WAAW,SAAS,YAAY,GAAG,YAAY,EAE/C,KAAK,EAAE,KAAK,CAAC,YAAY,EAAE,WAAW,CAAC,EACvC,QAAQ,EAAE,CACR,QAAQ,EAAE,aAAa,CAAC,YAAY,EAAE,WAAW,CAAC,KAC/C,IAAI,EACT,OAAO,CAAC,EAAE,eAAe,GACxB,WAAW,CAAA"}
1
+ {"version":3,"file":"firestore.d.ts","sourceRoot":"","sources":["../../src/utils/firestore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqC,KAAK,mBAAmB,EAC3D,KAAK,YAAY,EAAE,KAAK,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,KAAK,qBAAqB,EACnG,KAAK,WAAW,EAEhB,KAAK,cAAc,EAEnB,KAAK,EACL,aAAa,EACd,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,UAAU,CAAA;AAE/C,wBAAgB,cAAc,CAAC,QAAQ,EAAE,qBAAqB,GAAG,gBAAgB,GAAG,YAAY,CAK/F;AAED,wBAAsB,UAAU,CAAC,CAAC,SAAS,iBAAiB,EAC1D,UAAU,EAAE,mBAAmB,EAC/B,YAAY,EAAE,CAAC,CAAC,QAAQ,EAAE,qBAAqB,GAAG,gBAAgB,KAAK,CAAC,CAAC,EACzE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EACrB,cAAc,EAAE,CAAC,iBAAiB,GAAG,SAAS,GAAG,IAAI,CAAC,EAAE,iBAgBzD;AAED,wBAAsB,eAAe,CAAC,CAAC,SAAS,iBAAiB,EAC/D,YAAY,EAAE,CAAC,CAAC,QAAQ,EAAE,qBAAqB,GAAG,gBAAgB,KAAK,CAAC,CAAC,EACzE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EACrB,cAAc,EAAE,CAAC,iBAAiB,GAAG,SAAS,GAAG,IAAI,CAAC,EAAE,iBAQzD;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAA;CAC1C,CAAA;AAsBD,wBAAgB,YAAY,CAC1B,YAAY,EACZ,WAAW,SAAS,YAAY,GAAG,YAAY,EAE/C,GAAG,EAAE,iBAAiB,CAAC,YAAY,EAAE,WAAW,CAAC,EACjD,QAAQ,EAAE,CACR,QAAQ,EAAE,gBAAgB,CAAC,YAAY,EAAE,WAAW,CAAC,KAClD,IAAI,EACT,OAAO,CAAC,EAAE,eAAe,GACxB,WAAW,CAAA;AAEd,wBAAgB,YAAY,CAC1B,YAAY,EACZ,WAAW,SAAS,YAAY,GAAG,YAAY,EAE/C,KAAK,EAAE,KAAK,CAAC,YAAY,EAAE,WAAW,CAAC,EACvC,QAAQ,EAAE,CACR,QAAQ,EAAE,aAAa,CAAC,YAAY,EAAE,WAAW,CAAC,KAC/C,IAAI,EACT,OAAO,CAAC,EAAE,eAAe,GACxB,WAAW,CAAA"}
@@ -0,0 +1,11 @@
1
+ import { ImageCompressionPolicy } from '../types';
2
+ /**
3
+ * browser-image-compression 라이브러리를 사용하여 이미지 파일을 압축합니다.
4
+ * 이미지가 아닌 파일은 원본 그대로 반환합니다.
5
+ *
6
+ * @param file - 압축할 원본 이미지 파일
7
+ * @param policy - 압축 정책 (maxSizeMB, maxWidthOrHeight)
8
+ * @returns 압축된 File 객체. 이미지가 아닌 경우 원본 파일을 그대로 반환
9
+ */
10
+ export declare function compressImage(file: File, policy: ImageCompressionPolicy): Promise<File>;
11
+ //# sourceMappingURL=image-compress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-compress.d.ts","sourceRoot":"","sources":["../../src/utils/image-compress.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,sBAAsB,EAAC,MAAM,UAAU,CAAA;AAEpD;;;;;;;GAOG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,sBAAsB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAaf"}
@@ -0,0 +1,51 @@
1
+ export type ImageValidationOptions = {
2
+ requiredSize?: string;
3
+ maxSize?: string;
4
+ maxFileSizeMB?: number;
5
+ requiredAspectRatio?: string;
6
+ };
7
+ export type ImageValidationError = {
8
+ ok: false;
9
+ type: "requiredSize";
10
+ width: number;
11
+ height: number;
12
+ requiredWidth: number;
13
+ requiredHeight: number;
14
+ } | {
15
+ ok: false;
16
+ type: "maxSize";
17
+ width: number;
18
+ height: number;
19
+ maxWidth: number;
20
+ maxHeight: number;
21
+ } | {
22
+ ok: false;
23
+ type: "maxFileSize";
24
+ fileSize: number;
25
+ maxSizeMB: number;
26
+ } | {
27
+ ok: false;
28
+ type: "requiredAspectRatio";
29
+ width: number;
30
+ height: number;
31
+ ratio: string;
32
+ } | {
33
+ ok: true;
34
+ };
35
+ /**
36
+ * 이미지 파일을 업로드 전에 검증합니다.
37
+ * 파일 크기, Required 크기, 최대 크기, Required 종횡비를 순차적으로 검사합니다.
38
+ *
39
+ * @param file - 검증할 이미지 파일
40
+ * @param options - 검증 옵션 (requiredSize, maxSize, maxFileSizeMB, requiredAspectRatio)
41
+ * @returns 검증 결과. 성공 시 { ok: true }, 실패 시 상세 오류 정보를 포함한 객체
42
+ */
43
+ export declare function validateUpload(file: File, options: ImageValidationOptions): Promise<ImageValidationError>;
44
+ /**
45
+ * 검증 옵션에 하나라도 유효한 조건이 설정되어 있는지 확인합니다.
46
+ *
47
+ * @param options - 검증 옵션 객체
48
+ * @returns 검증 조건이 하나라도 존재하면 true, 그렇지 않으면 false
49
+ */
50
+ export declare function hasValidation(options: ImageValidationOptions): boolean;
51
+ //# sourceMappingURL=image-validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-validation.d.ts","sourceRoot":"","sources":["../../src/utils/image-validation.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,sBAAsB,GAAG;IACnC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,oBAAoB,GAC5B;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,GACjH;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAClG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,aAAa,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACvE;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,qBAAqB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACxF;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,CAAA;AAEhB;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,oBAAoB,CAAC,CAoE/B;AAmBD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAEtE"}
@@ -6,4 +6,8 @@ export * from './datetime';
6
6
  export * from './file';
7
7
  export * from './fb-storage';
8
8
  export * from './table';
9
+ export * from './theme-provider';
10
+ export * from './text';
11
+ export * from './image-validation';
12
+ export * from './image-compress.ts';
9
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,QAAQ,CAAA;AACtB,cAAc,cAAc,CAAA;AAC5B,cAAc,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,QAAQ,CAAA;AACtB,cAAc,cAAc,CAAA;AAC5B,cAAc,SAAS,CAAA;AACvB,cAAc,kBAAkB,CAAA;AAChC,cAAc,QAAQ,CAAA;AACtB,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA"}
@@ -0,0 +1,3 @@
1
+ export declare function hasLastConsonant(str: string): boolean;
2
+ export declare function withLetterParticle(str: string, ifConsonant: string, notConsonant: string): string;
3
+ //# sourceMappingURL=text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../src/utils/text.ts"],"names":[],"mappings":"AAAA,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAarD;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,GACnB,MAAM,CAER"}
@@ -0,0 +1,18 @@
1
+ import * as React from "react";
2
+ type Theme = "dark" | "light" | "system";
3
+ type ResolvedTheme = "dark" | "light";
4
+ type ThemeProviderProps = {
5
+ children: React.ReactNode;
6
+ defaultTheme?: Theme;
7
+ storageKey?: string;
8
+ themeExpiryHours?: number;
9
+ };
10
+ type ThemeProviderState = {
11
+ theme: Theme;
12
+ resolvedTheme: ResolvedTheme;
13
+ setTheme: (theme: Theme) => void;
14
+ };
15
+ export declare function ThemeProvider({ children, defaultTheme, storageKey, themeExpiryHours, }: ThemeProviderProps): React.JSX.Element;
16
+ export declare const useTheme: () => ThemeProviderState;
17
+ export {};
18
+ //# sourceMappingURL=theme-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme-provider.d.ts","sourceRoot":"","sources":["../../src/utils/theme-provider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,KAAK,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAA;AACxC,KAAK,aAAa,GAAG,MAAM,GAAG,OAAO,CAAA;AAErC,KAAK,kBAAkB,GAAG;IACxB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,YAAY,CAAC,EAAE,KAAK,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B,CAAA;AAED,KAAK,kBAAkB,GAAG;IACxB,KAAK,EAAE,KAAK,CAAA;IACZ,aAAa,EAAE,aAAa,CAAA;IAC5B,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;CACjC,CAAA;AAqED,wBAAgB,aAAa,CAAC,EACE,QAAQ,EACR,YAAuB,EACvB,UAA4B,EAC5B,gBAAqB,GACtB,EAAE,kBAAkB,qBAqDlD;AAED,eAAO,MAAM,QAAQ,0BAAyC,CAAA"}
@@ -4,7 +4,7 @@ type AutoSelectors<TState extends object> = {
4
4
  [K in keyof TState]: () => TState[K];
5
5
  };
6
6
  export declare function createZustandContext<TState extends object, TProps extends object>(createLocalStore: (props: TProps) => StoreApi<TState>): {
7
- Provider: ({ children, ...props }: PropsWithChildren<TProps>) => import("react/jsx-runtime").JSX.Element;
7
+ Provider: ({ children, ...props }: PropsWithChildren<TProps>) => import("react").JSX.Element;
8
8
  useStore: <T>(selector: (state: TState) => T) => T;
9
9
  use: AutoSelectors<TState>;
10
10
  };