@ienlab/react-library 0.14.1 → 0.14.2-beta.2

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.
@@ -1,4 +1,4 @@
1
- import { ImageUploadItem } from '../../types';
1
+ import { ImageUploadItem } from '@ienlab/react-library';
2
2
  import { DescriptionProps, FieldProps } from '../../types/image';
3
3
  import { ComponentType, InputHTMLAttributes, LabelHTMLAttributes } from 'react';
4
4
  type InjectedComponents = {
@@ -1 +1 @@
1
- {"version":3,"file":"ImageUploadField.d.ts","sourceRoot":"","sources":["../../../src/components/image/ImageUploadField.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAG7C,OAAO,EAKL,KAAK,gBAAgB,EACrB,KAAK,UAAU,EAChB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EACV,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,OAAO,CAAA;AACd,OAAO,oBAAoB,CAAA;AAE3B,KAAK,kBAAkB,GAAG;IACxB,KAAK,CAAC,EAAE,aAAa,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,CAAA;IAC5D,KAAK,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAA;IACjC,UAAU,CAAC,EAAE,aAAa,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,CAAA;IACjE,gBAAgB,CAAC,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAA;CACnD,CAAA;AAED,KAAK,qBAAqB,GAAG;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,cAAc,EAAE,MAAM,CAAA;IACtB,eAAe,EAAE,MAAM,CAAA;IACvB,KAAK,EAAE,eAAe,CAAA;IACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAA;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,kBAAkB,CAAA;CAChC,CAAA;AAED,wBAAgB,gBAAgB,CAAC,EACE,EAAE,EACF,KAAK,EACL,cAAc,EACd,eAAe,EACf,KAAK,EACL,QAAQ,EACR,WAAqB,EACrB,MAAkB,EAClB,UAAU,GACX,EAAE,qBAAqB,2CAoExD"}
1
+ {"version":3,"file":"ImageUploadField.d.ts","sourceRoot":"","sources":["../../../src/components/image/ImageUploadField.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAkB,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAEvE,OAAO,EAKL,KAAK,gBAAgB,EACrB,KAAK,UAAU,EAChB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EACV,aAAa,EAEb,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,OAAO,CAAA;AAEd,KAAK,kBAAkB,GAAG;IACxB,KAAK,CAAC,EAAE,aAAa,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,CAAA;IAC5D,KAAK,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAA;IACjC,UAAU,CAAC,EAAE,aAAa,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,CAAA;IACjE,gBAAgB,CAAC,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAA;CACnD,CAAA;AAED,KAAK,qBAAqB,GAAG;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,cAAc,EAAE,MAAM,CAAA;IACtB,eAAe,EAAE,MAAM,CAAA;IACvB,KAAK,EAAE,eAAe,CAAA;IACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAA;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,kBAAkB,CAAA;CAChC,CAAA;AAuFD,wBAAgB,gBAAgB,CAAC,EACE,EAAE,EACF,KAAK,EACL,cAAc,EACd,eAAe,EACf,KAAK,EACL,QAAQ,EACR,WAAqB,EACrB,MAAkB,EAClB,UAAU,GACX,EAAE,qBAAqB,2CAqFxD"}
@@ -1 +1 @@
1
- {"version":3,"file":"ImageUploadSortableField.d.ts","sourceRoot":"","sources":["../../../src/components/image/ImageUploadSortableField.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EAEpB,MAAM,OAAO,CAAA;AAEd,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,SAAS,EAUd,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAA;AAE1B,OAAO,oBAAoB,CAAA;AAE3B,KAAK,kBAAkB,GAAG;IACxB,KAAK,CAAC,EAAE,aAAa,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,CAAA;IAC5D,KAAK,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAA;IACjC,UAAU,CAAC,EAAE,aAAa,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,CAAA;IACjE,gBAAgB,CAAC,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAA;IAClD,UAAU,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,CAAA;IAC3C,SAAS,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAA;IACzC,IAAI,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAA;IAC/B,MAAM,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,CAAA;IACvC,SAAS,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAA;CACrC,CAAA;AAED,KAAK,6BAA6B,GAAG;IACnC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,eAAe,EAAE,MAAM,CAAA;IACvB,cAAc,EAAE,MAAM,CAAA;IACtB,KAAK,EAAE,eAAe,EAAE,CAAA;IACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,IAAI,CAAA;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,kBAAkB,CAAA;CAChC,CAAA;AAED,wBAAgB,wBAAwB,CAAC,EACE,EAAE,EACF,KAAK,EACL,eAAe,EACf,cAAc,EACd,KAAK,EACL,QAAQ,EACR,WAAqB,EACrB,MAAkB,EAClB,UAAU,GACX,EAAE,6BAA6B,2CAwHxE"}
1
+ {"version":3,"file":"ImageUploadSortableField.d.ts","sourceRoot":"","sources":["../../../src/components/image/ImageUploadSortableField.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,aAAa,EAEb,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,OAAO,CAAA;AAEd,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,SAAS,EAUd,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAA;AAG1B,KAAK,kBAAkB,GAAG;IACxB,KAAK,CAAC,EAAE,aAAa,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,CAAA;IAC5D,KAAK,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAA;IACjC,UAAU,CAAC,EAAE,aAAa,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,CAAA;IACjE,gBAAgB,CAAC,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAA;IAClD,UAAU,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,CAAA;IAC3C,SAAS,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAA;IACzC,IAAI,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAA;IAC/B,MAAM,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,CAAA;IACvC,SAAS,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAA;CACrC,CAAA;AAED,KAAK,6BAA6B,GAAG;IACnC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,eAAe,EAAE,MAAM,CAAA;IACvB,cAAc,EAAE,MAAM,CAAA;IACtB,KAAK,EAAE,eAAe,EAAE,CAAA;IACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,IAAI,CAAA;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,kBAAkB,CAAA;CAChC,CAAA;AA+HD,wBAAgB,wBAAwB,CAAC,EACE,EAAE,EACF,KAAK,EACL,eAAe,EACf,cAAc,EACd,KAAK,EACL,QAAQ,EACR,WAAqB,EACrB,MAAkB,EAClB,UAAU,GACX,EAAE,6BAA6B,2CA+HxE"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/image/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,4BAA4B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/image/index.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,CAAA;AAE3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,4BAA4B,CAAA"}
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,a)=>(a=n==null?{}:e(i(n)),s(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));let l=require(`react`),u=require(`motion/react`),d=require(`react/jsx-runtime`),f=require(`react-i18next`),p=require(`firebase/firestore`),m=require(`zustand/react`),h=require(`i18next`);h=c(h,1);function g({placeholder:e,src:t,onLoadError:n,...r}){let[i,a]=(0,l.useState)(()=>{if(typeof window>`u`||!t)return!1;let e=new Image;return e.src=t,e.complete&&e.naturalWidth>0}),[o,s]=(0,l.useState)(t);return o!==t&&(s(t),a(!1)),(0,l.useEffect)(()=>{if(!t)return;let e=new Image;return e.src=t,e.onload=()=>a(!0),e.onerror=e=>{n?n(e):console.error(`CrossfadeImage: Failed to load image`,t)},e.complete&&e.naturalWidth>0&&e.onload(new Event(`load`)),()=>{e.onload=null,e.onerror=null}},[t,n]),(0,d.jsx)(u.AnimatePresence,{children:i&&t?(0,d.jsx)(u.motion.img,{src:t,...r,initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},style:{...r.style}},`loaded-image`):(0,d.jsx)(u.motion.div,{initial:{opacity:1},transition:{duration:.3},style:{...r.style},children:e??(0,d.jsx)(`div`,{className:`w-full h-full bg-sidebar`})},`placeholder`)})}var _=[`ko`,`en`],v=class{url=``;file=null;constructor(e={}){Object.assign(this,e)}isBlobUrl(){return this.url.startsWith(`blob:`)}revokeIfNeeded(){this.file&&this.isBlobUrl()&&URL.revokeObjectURL(this.url)}},y=({children:e})=>(0,d.jsx)(`div`,{children:e}),b=e=>(0,d.jsx)(`label`,{...e}),x=({children:e})=>(0,d.jsx)(`p`,{children:e}),S=e=>(0,d.jsx)(`input`,{...e}),C=({children:e,...t})=>(0,d.jsx)(`div`,{...t,children:e}),w=e=>null,T=({children:e,...t})=>(0,d.jsx)(`div`,{...t,children:e}),E=({children:e,type:t=`button`,...n})=>(0,d.jsx)(`button`,{type:t,...n,children:e}),D=({className:e})=>(0,d.jsx)(`span`,{className:e,children:`×`});function O({id:e,label:t,uploadHintText:n,descriptionText:r,value:i,onChange:a,aspectRatio:o=`1 / 1`,accept:s=`image/*`,components:c}){let{t:l}=(0,f.useTranslation)(),u=c?.Field??y,p=c?.FieldLabel??b,m=c?.FieldDescription??x,h=c?.Input??S;return(0,d.jsxs)(u,{children:[(0,d.jsx)(p,{htmlFor:e,children:t}),(0,d.jsxs)(`div`,{className:`iu-field`,children:[(0,d.jsx)(`label`,{htmlFor:e,className:`iu-trigger`,children:(0,d.jsxs)(`div`,{className:`iu-card`,children:[(0,d.jsx)(`div`,{className:`iu-frame`,children:i.url?(0,d.jsx)(`div`,{className:`iu-image-layer`,children:(0,d.jsx)(`div`,{className:`iu-image-box`,style:{aspectRatio:o},children:(0,d.jsx)(g,{src:i.url,className:`iu-image`,alt:t})})}):(0,d.jsxs)(`div`,{className:`iu-empty`,children:[(0,d.jsx)(`div`,{className:`iu-badge`,children:l(`libs:add_assets`)}),(0,d.jsx)(`p`,{className:`iu-hint`,children:n})]})}),(0,d.jsx)(`div`,{className:`iu-overlay`})]})}),(0,d.jsx)(h,{id:e,type:`file`,accept:s,className:`iu-hidden-input`,onChange:e=>{let t=e.target.files?.[0];t&&(i.revokeIfNeeded(),a(new v({file:t,url:URL.createObjectURL(t)})),e.currentTarget.value=``)}}),(0,d.jsx)(m,{children:r})]})]})}function k({id:e,label:t,descriptionText:n,uploadHintText:r,items:i,onChange:a,aspectRatio:o=`1 / 1`,accept:s=`image/*`,components:c}){let{t:l}=(0,f.useTranslation)(),p=c?.Field??y,m=c?.FieldLabel??b,h=c?.FieldDescription??x,_=c?.Input??S,O=c?.ScrollArea??C,k=c?.ScrollBar??w,A=c?.Card??T,j=c?.Button??E,M=c?.CloseIcon??D,N=e=>{e.revokeIfNeeded(),a(i.filter(t=>t!==e))},P=e=>{!e||e.length===0||a([...i,...Array.from(e).map(e=>new v({file:e,url:URL.createObjectURL(e)}))])},F={aspectRatio:o};return(0,d.jsxs)(p,{children:[(0,d.jsx)(m,{htmlFor:e,children:t}),(0,d.jsxs)(`div`,{className:`iusf-field`,children:[(0,d.jsxs)(`div`,{className:`iusf-container`,children:[(0,d.jsxs)(O,{className:`iusf-scroll-area`,children:[(0,d.jsxs)(u.Reorder.Group,{axis:`x`,values:i,onReorder:a,layoutScroll:!0,className:`iusf-list`,children:[i.map(e=>(0,d.jsx)(u.Reorder.Item,{value:e,className:`iusf-item`,children:(0,d.jsx)(A,{className:`iusf-card`,style:F,children:(0,d.jsxs)(`div`,{className:`iusf-card-inner`,children:[(0,d.jsx)(g,{src:e.url,className:`iusf-image`,draggable:!1,alt:t}),(0,d.jsx)(j,{type:`button`,className:`iusf-remove-button`,onClick:()=>N(e),children:(0,d.jsx)(M,{})})]})})},e.url)),(0,d.jsx)(`label`,{htmlFor:e,className:`iusf-upload-trigger`,children:(0,d.jsx)(A,{className:`iusf-upload-card`,style:F,children:(0,d.jsxs)(`div`,{className:`iusf-upload-inner`,children:[(0,d.jsx)(`div`,{className:`iu-badge`,children:l(`libs:add_assets`)}),(0,d.jsx)(`p`,{className:`iu-hint`,children:r})]})})})]}),(0,d.jsx)(k,{orientation:`horizontal`,className:`iusf-scrollbar`})]}),(0,d.jsx)(_,{id:e,type:`file`,accept:s,multiple:!0,className:`iu-hidden-input`,onChange:e=>{P(e.target.files),e.currentTarget.value=``}})]}),(0,d.jsx)(h,{children:n})]})]})}function A(e){return{...e.data(),id:e.id}}async function j(e,t,n,r){let i=r.filter(e=>!!(e&&!n.has(e.path)));for(let r=0;r<i.length;r+=30){let a=i.slice(r,r+30);(await(0,p.getDocs)((0,p.query)(e,(0,p.where)((0,p.documentId)(),`in`,a.map(e=>e.id))))).forEach(e=>{let r=t(e);n.set(e.ref.path,r)})}}async function M(e,t,n){let r=n.filter(e=>!!(e&&!t.has(e.path)));await Promise.all(r.map(async n=>{let r=e(await(0,p.getDoc)(n));t.set(n.path,r)}))}function N(e={}){let{cache:t=!0,includeMetadataChanges:n}=e;return{listenOptions:{includeMetadataChanges:n??!t},cache:t}}function P(e,t){return t!==!1||!e}function F(e,t,n={}){let{listenOptions:r,cache:i}=N(n),{onError:a}=n;return e.type,(0,p.onSnapshot)(e,r,e=>{P(e.metadata.fromCache,i)&&t(e)},a)}Array.prototype.mapNotNull=function(e){return this.flatMap((t,n)=>{let r=e(t,n);return r==null?[]:[r]})};function I(){if(typeof window>`u`)return`pc`;let e=navigator.userAgent,t=navigator.platform,n=/Android/i.test(e),r=/iPhone|iPad|iPod/i.test(e)||t===`MacIntel`&&navigator.maxTouchPoints>1;return n?`android`:r?`ios`:`pc`}function L(e){let t=(0,l.createContext)(null);function n({children:n,...r}){let[i]=(0,l.useState)(()=>e(r));return(0,d.jsx)(t.Provider,{value:i,children:n})}function r(e){let n=(0,l.useContext)(t);if(!n)throw Error(`Provider가 필요합니다.`);return(0,m.useStore)(n,e)}let i=new Map;return{Provider:n,useStore:r,use:new Proxy({},{get:(e,t)=>(i.has(t)||i.set(t,()=>r(e=>e[t])),i.get(t))})}}var R=o(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs=r()})(e,(function(){"use strict";var e=1e3,t=6e4,n=36e5,r=`millisecond`,i=`second`,a=`minute`,o=`hour`,s=`day`,c=`week`,l=`month`,u=`quarter`,d=`year`,f=`date`,p=`Invalid Date`,m=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,h=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,g={name:`en`,weekdays:`Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday`.split(`_`),months:`January_February_March_April_May_June_July_August_September_October_November_December`.split(`_`),ordinal:function(e){var t=[`th`,`st`,`nd`,`rd`],n=e%100;return`[`+e+(t[(n-20)%10]||t[n]||t[0])+`]`}},_=function(e,t,n){var r=String(e);return!r||r.length>=t?e:``+Array(t+1-r.length).join(n)+e},v={s:_,z:function(e){var t=-e.utcOffset(),n=Math.abs(t),r=Math.floor(n/60),i=n%60;return(t<=0?`+`:`-`)+_(r,2,`0`)+`:`+_(i,2,`0`)},m:function e(t,n){if(t.date()<n.date())return-e(n,t);var r=12*(n.year()-t.year())+(n.month()-t.month()),i=t.clone().add(r,l),a=n-i<0,o=t.clone().add(r+(a?-1:1),l);return+(-(r+(n-i)/(a?i-o:o-i))||0)},a:function(e){return e<0?Math.ceil(e)||0:Math.floor(e)},p:function(e){return{M:l,y:d,w:c,d:s,D:f,h:o,m:a,s:i,ms:r,Q:u}[e]||String(e||``).toLowerCase().replace(/s$/,``)},u:function(e){return e===void 0}},y=`en`,b={};b[y]=g;var x=`$isDayjsObject`,S=function(e){return e instanceof E||!(!e||!e[x])},C=function e(t,n,r){var i;if(!t)return y;if(typeof t==`string`){var a=t.toLowerCase();b[a]&&(i=a),n&&(b[a]=n,i=a);var o=t.split(`-`);if(!i&&o.length>1)return e(o[0])}else{var s=t.name;b[s]=t,i=s}return!r&&i&&(y=i),i||!r&&y},w=function(e,t){if(S(e))return e.clone();var n=typeof t==`object`?t:{};return n.date=e,n.args=arguments,new E(n)},T=v;T.l=C,T.i=S,T.w=function(e,t){return w(e,{locale:t.$L,utc:t.$u,x:t.$x,$offset:t.$offset})};var E=function(){function g(e){this.$L=C(e.locale,null,!0),this.parse(e),this.$x=this.$x||e.x||{},this[x]=!0}var _=g.prototype;return _.parse=function(e){this.$d=function(e){var t=e.date,n=e.utc;if(t===null)return new Date(NaN);if(T.u(t))return new Date;if(t instanceof Date)return new Date(t);if(typeof t==`string`&&!/Z$/i.test(t)){var r=t.match(m);if(r){var i=r[2]-1||0,a=(r[7]||`0`).substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,a)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,a)}}return new Date(t)}(e),this.init()},_.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},_.$utils=function(){return T},_.isValid=function(){return this.$d.toString()!==p},_.isSame=function(e,t){var n=w(e);return this.startOf(t)<=n&&n<=this.endOf(t)},_.isAfter=function(e,t){return w(e)<this.startOf(t)},_.isBefore=function(e,t){return this.endOf(t)<w(e)},_.$g=function(e,t,n){return T.u(e)?this[t]:this.set(n,e)},_.unix=function(){return Math.floor(this.valueOf()/1e3)},_.valueOf=function(){return this.$d.getTime()},_.startOf=function(e,t){var n=this,r=!!T.u(t)||t,u=T.p(e),p=function(e,t){var i=T.w(n.$u?Date.UTC(n.$y,t,e):new Date(n.$y,t,e),n);return r?i:i.endOf(s)},m=function(e,t){return T.w(n.toDate()[e].apply(n.toDate(`s`),(r?[0,0,0,0]:[23,59,59,999]).slice(t)),n)},h=this.$W,g=this.$M,_=this.$D,v=`set`+(this.$u?`UTC`:``);switch(u){case d:return r?p(1,0):p(31,11);case l:return r?p(1,g):p(0,g+1);case c:var y=this.$locale().weekStart||0,b=(h<y?h+7:h)-y;return p(r?_-b:_+(6-b),g);case s:case f:return m(v+`Hours`,0);case o:return m(v+`Minutes`,1);case a:return m(v+`Seconds`,2);case i:return m(v+`Milliseconds`,3);default:return this.clone()}},_.endOf=function(e){return this.startOf(e,!1)},_.$set=function(e,t){var n,c=T.p(e),u=`set`+(this.$u?`UTC`:``),p=(n={},n[s]=u+`Date`,n[f]=u+`Date`,n[l]=u+`Month`,n[d]=u+`FullYear`,n[o]=u+`Hours`,n[a]=u+`Minutes`,n[i]=u+`Seconds`,n[r]=u+`Milliseconds`,n)[c],m=c===s?this.$D+(t-this.$W):t;if(c===l||c===d){var h=this.clone().set(f,1);h.$d[p](m),h.init(),this.$d=h.set(f,Math.min(this.$D,h.daysInMonth())).$d}else p&&this.$d[p](m);return this.init(),this},_.set=function(e,t){return this.clone().$set(e,t)},_.get=function(e){return this[T.p(e)]()},_.add=function(r,u){var f,p=this;r=Number(r);var m=T.p(u),h=function(e){var t=w(p);return T.w(t.date(t.date()+Math.round(e*r)),p)};if(m===l)return this.set(l,this.$M+r);if(m===d)return this.set(d,this.$y+r);if(m===s)return h(1);if(m===c)return h(7);var g=(f={},f[a]=t,f[o]=n,f[i]=e,f)[m]||1,_=this.$d.getTime()+r*g;return T.w(_,this)},_.subtract=function(e,t){return this.add(-1*e,t)},_.format=function(e){var t=this,n=this.$locale();if(!this.isValid())return n.invalidDate||p;var r=e||`YYYY-MM-DDTHH:mm:ssZ`,i=T.z(this),a=this.$H,o=this.$m,s=this.$M,c=n.weekdays,l=n.months,u=n.meridiem,d=function(e,n,i,a){return e&&(e[n]||e(t,r))||i[n].slice(0,a)},f=function(e){return T.s(a%12||12,e,`0`)},m=u||function(e,t,n){var r=e<12?`AM`:`PM`;return n?r.toLowerCase():r};return r.replace(h,(function(e,r){return r||function(e){switch(e){case`YY`:return String(t.$y).slice(-2);case`YYYY`:return T.s(t.$y,4,`0`);case`M`:return s+1;case`MM`:return T.s(s+1,2,`0`);case`MMM`:return d(n.monthsShort,s,l,3);case`MMMM`:return d(l,s);case`D`:return t.$D;case`DD`:return T.s(t.$D,2,`0`);case`d`:return String(t.$W);case`dd`:return d(n.weekdaysMin,t.$W,c,2);case`ddd`:return d(n.weekdaysShort,t.$W,c,3);case`dddd`:return c[t.$W];case`H`:return String(a);case`HH`:return T.s(a,2,`0`);case`h`:return f(1);case`hh`:return f(2);case`a`:return m(a,o,!0);case`A`:return m(a,o,!1);case`m`:return String(o);case`mm`:return T.s(o,2,`0`);case`s`:return String(t.$s);case`ss`:return T.s(t.$s,2,`0`);case`SSS`:return T.s(t.$ms,3,`0`);case`Z`:return i}return null}(e)||i.replace(`:`,``)}))},_.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},_.diff=function(r,f,p){var m,h=this,g=T.p(f),_=w(r),v=(_.utcOffset()-this.utcOffset())*t,y=this-_,b=function(){return T.m(h,_)};switch(g){case d:m=b()/12;break;case l:m=b();break;case u:m=b()/3;break;case c:m=(y-v)/6048e5;break;case s:m=(y-v)/864e5;break;case o:m=y/n;break;case a:m=y/t;break;case i:m=y/e;break;default:m=y}return p?m:T.a(m)},_.daysInMonth=function(){return this.endOf(l).$D},_.$locale=function(){return b[this.$L]},_.locale=function(e,t){if(!e)return this.$L;var n=this.clone(),r=C(e,t,!0);return r&&(n.$L=r),n},_.clone=function(){return T.w(this.$d,this)},_.toDate=function(){return new Date(this.valueOf())},_.toJSON=function(){return this.isValid()?this.toISOString():null},_.toISOString=function(){return this.$d.toISOString()},_.toString=function(){return this.$d.toUTCString()},g}(),D=E.prototype;return w.prototype=D,[[`$ms`,r],[`$s`,i],[`$m`,a],[`$H`,o],[`$W`,s],[`$M`,l],[`$y`,d],[`$D`,f]].forEach((function(e){D[e[1]]=function(t){return this.$g(t,e[0],e[1])}})),w.extend=function(e,t){return e.$i||=(e(t,E,w),!0),w},w.locale=C,w.isDayjs=S,w.unix=function(e){return w(1e3*e)},w.en=b[y],w.Ls=b,w.p={},w}))})),z=o(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r(R()):typeof define==`function`&&define.amd?define([`dayjs`],r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs_locale_ko=r(n.dayjs)})(e,(function(e){"use strict";function t(e){return e&&typeof e==`object`&&`default`in e?e:{default:e}}var n=t(e),r={name:`ko`,weekdays:`일요일_월요일_화요일_수요일_목요일_금요일_토요일`.split(`_`),weekdaysShort:`일_월_화_수_목_금_토`.split(`_`),weekdaysMin:`일_월_화_수_목_금_토`.split(`_`),months:`1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월`.split(`_`),monthsShort:`1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월`.split(`_`),ordinal:function(e){return e+`일`},formats:{LT:`A h:mm`,LTS:`A h:mm:ss`,L:`YYYY.MM.DD.`,LL:`YYYY년 MMMM D일`,LLL:`YYYY년 MMMM D일 A h:mm`,LLLL:`YYYY년 MMMM D일 dddd A h:mm`,l:`YYYY.MM.DD.`,ll:`YYYY년 MMMM D일`,lll:`YYYY년 MMMM D일 A h:mm`,llll:`YYYY년 MMMM D일 dddd A h:mm`},meridiem:function(e){return e<12?`오전`:`오후`},relativeTime:{future:`%s 후`,past:`%s 전`,s:`몇 초`,m:`1분`,mm:`%d분`,h:`한 시간`,hh:`%d시간`,d:`하루`,dd:`%d일`,M:`한 달`,MM:`%d달`,y:`일 년`,yy:`%d년`}};return n.default.locale(r,null,!0),r}))})),B=o(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs_locale_en=r()})(e,(function(){"use strict";return{name:`en`,weekdays:`Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday`.split(`_`),months:`January_February_March_April_May_June_July_August_September_October_November_December`.split(`_`),ordinal:function(e){var t=[`th`,`st`,`nd`,`rd`],n=e%100;return`[`+e+(t[(n-20)%10]||t[n]||t[0])+`]`}}}))})),V=c(R(),1);z(),B();function H(e,t,n){let r=(0,V.default)(e);return!e||!r.isValid()?``:r.format(n(t))}function U(){let{t:e}=(0,f.useTranslation)();return(0,l.useMemo)(()=>({basicDateTimeFormat:(t,n)=>H(t,n,e),dateTimeFormat:t=>H(t,`libs:datetime.date_time_format`,e),dateFormat:t=>H(t,`libs:datetime.date_format`,e),timeFormat:t=>H(t,`libs:datetime.time_format`,e)}),[e])}function W(e){let t=(0,V.default)(e);return t.isValid()?t.format(`YYYYMMDD`):``}function G(e){let t=(0,V.default)(e);return t.isValid()?t.format(`HH:mm`):``}var K=e=>{let t=e?.split(`-`)[0]===`ko`?`ko`:`en`;V.default.locale(t)};h.default.isInitialized&&K(h.default.resolvedLanguage||h.default.language),h.default.on(`languageChanged`,K);var q=()=>({updateAt:(0,p.serverTimestamp)(),delete:!0}),J=()=>({updateAt:(0,p.serverTimestamp)(),delete:!1});function Y(e){switch(e){case`auth/user-not-found`:return`libs:auth.errors.user_not_found`;case`auth/wrong-password`:return`libs:auth.errors.wrong_password`;case`auth/invalid-credential`:return`libs:auth.errors.invalid_credential`;case`auth/invalid-email`:return`libs:auth.errors.invalid_email`;case`auth/user-disabled`:return`libs:auth.errors.user_disabled`;case`auth/too-many-requests`:return`libs:auth.errors.too_many_requests`;case`auth/network-request-failed`:return`libs:auth.errors.network_request_failed`;case`auth/timeout`:return`libs:auth.errors.timeout`;case`auth/email-already-in-use`:return`libs:auth.errors.email_already_in_use`;case`auth/weak-password`:return`libs:auth.errors.weak_password`;case`auth/requires-recent-login`:return`libs:auth.errors.requires_recent_login`;case`auth/user-token-expired`:return`libs:auth.errors.user_token_expired`;case`auth/popup-blocked`:return`libs:auth.errors.popup_blocked`;case`auth/popup-closed-by-user`:return`libs:auth.errors.popup_closed_by_user`;case`auth/operation-not-allowed`:return`libs:auth.errors.operation_not_allowed`;case`auth/web-storage-unsupported`:return`libs:auth.errors.web_storage_unsupported`;case`auth/unauthorized-domain`:return`libs:auth.errors.unauthorized_domain`;default:return`libs:auth.errors.default`}}var X={auth:{errors:{invalid_credential:`이메일 또는 비밀번호를 다시 확인해 주세요.`,wrong_password:`이메일 또는 비밀번호를 다시 확인해 주세요.`,user_not_found:`입력한 정보와 일치하는 계정을 찾을 수 없어요.`,invalid_email:`이메일 형식을 확인해 주세요.`,email_already_in_use:`이미 가입된 이메일이에요. 로그인하거나 다른 이메일을 사용해 주세요.`,weak_password:`비밀번호는 6자 이상으로 입력해 주세요.`,user_disabled:`이 계정은 현재 사용할 수 없어요. 관리자에게 문의해 주세요.`,too_many_requests:`시도가 너무 많아요. 잠시 후 다시 시도해 주세요.`,network_request_failed:`인터넷 연결을 확인한 뒤 다시 시도해 주세요.`,timeout:`응답이 지연되고 있어요. 잠시 후 다시 시도해 주세요.`,requires_recent_login:`보안을 위해 다시 로그인해 주세요.`,user_token_expired:`로그인 시간이 만료되었어요. 다시 로그인해 주세요.`,operation_not_allowed:`현재 사용할 수 없는 로그인 방식이에요.`,account_exists_with_different_credential:`이미 다른 로그인 방식으로 가입된 이메일이에요. 기존 방식으로 로그인해 주세요.`,popup_blocked:`로그인 창이 차단되었어요. 팝업 허용 후 다시 시도해 주세요.`,popup_closed_by_user:`로그인 창이 닫혀서 로그인이 완료되지 않았어요.`,web_storage_unsupported:`현재 브라우저 설정에서는 로그인을 진행할 수 없어요.`,unauthorized_domain:`현재 접속한 도메인에서는 로그인을 사용할 수 없어요.`,internal_error:`문제가 발생했어요. 잠시 후 다시 시도해 주세요.`,default:`로그인 중 문제가 발생했어요. 잠시 후 다시 시도해 주세요.`}},unknown_error_occurred:`알 수 없는 오류가 발생했습니다.`,datetime:{date_format:`YYYY년 M월 D일`,date_time_format:`YYYY년 M월 D일 A h:mm:ss`,time_format:`A h:mm:ss`},add_assets:`애셋 추가`},Z={auth:{errors:{invalid_credential:`Please check your email or password.`,wrong_password:`Please check your email or password.`,user_not_found:`We couldn’t find an account matching that information.`,invalid_email:`Please check your email format.`,email_already_in_use:`This email is already registered. Sign in or use a different email.`,weak_password:`Your password must be at least 6 characters long.`,user_disabled:`This account is currently unavailable. Please contact support.`,too_many_requests:`Too many attempts. Please try again later.`,network_request_failed:`Check your internet connection and try again.`,timeout:`The request is taking too long. Please try again.`,requires_recent_login:`For security reasons, please sign in again.`,user_token_expired:`Your session has expired. Please sign in again.`,operation_not_allowed:`This sign-in method is currently unavailable.`,account_exists_with_different_credential:`This email is already linked to another sign-in method. Please use that method to sign in.`,popup_blocked:`The sign-in window was blocked. Please allow pop-ups and try again.`,popup_closed_by_user:`The sign-in window was closed before completion.`,web_storage_unsupported:`Sign-in is not available with your current browser settings.`,unauthorized_domain:`Sign-in is not available on this domain.`,internal_error:`Something went wrong. Please try again later.`,default:`We couldn’t complete the sign-in. Please try again later.`}},unknown_error_occurred:`Unknown error occurred.`,datetime:{date_format:`MMMM D, YYYY`,date_time_format:`MMMM D, YYYY h:mm:ss A`,time_format:`h:mm:ss A`},add_assets:`Add Assets`};function Q(e){e.hasResourceBundle(`ko`,`libs`)||e.addResourceBundle(`ko`,`libs`,X,!0,!1),e.hasResourceBundle(`en`,`libs`)||e.addResourceBundle(`en`,`libs`,Z,!0,!1)}var $={Info:{Soft:{"--normal-bg":`color-mix(in oklab, light-dark(var(--color-sky-600), var(--color-sky-400)) 10%, var(--background))`,"--normal-text":`light-dark(var(--color-sky-600), var(--color-sky-400))`,"--normal-border":`light-dark(var(--color-sky-600), var(--color-sky-400))`},Outline:{"--normal-bg":`var(--background)`,"--normal-text":`light-dark(var(--color-sky-600), var(--color-sky-400))`,"--normal-border":`light-dark(var(--color-sky-600), var(--color-sky-400))`},Solid:{"--normal-bg":`light-dark(var(--color-sky-600), var(--color-sky-400))`,"--normal-text":`var(--color-white)`,"--normal-border":`light-dark(var(--color-sky-600), var(--color-sky-400))`}},Success:{Soft:{"--normal-bg":`color-mix(in oklab, light-dark(var(--color-green-600), var(--color-green-400)) 10%, var(--background))`,"--normal-text":`light-dark(var(--color-green-600), var(--color-green-400))`,"--normal-border":`light-dark(var(--color-green-600), var(--color-green-400))`},Outline:{"--normal-bg":`var(--background)`,"--normal-text":`light-dark(var(--color-green-600), var(--color-green-400))`,"--normal-border":`light-dark(var(--color-green-600), var(--color-green-400))`},Solid:{"--normal-bg":`light-dark(var(--color-green-600), var(--color-green-400))`,"--normal-text":`var(--color-white)`,"--normal-border":`light-dark(var(--color-green-600), var(--color-green-400))`}},Warning:{Soft:{"--normal-bg":`color-mix(in oklab, light-dark(var(--color-amber-600), var(--color-amber-400)) 10%, var(--background))`,"--normal-text":`light-dark(var(--color-amber-600), var(--color-amber-400))`,"--normal-border":`light-dark(var(--color-amber-600), var(--color-amber-400))`},Outline:{"--normal-bg":`var(--background)`,"--normal-text":`light-dark(var(--color-amber-600), var(--color-amber-400))`,"--normal-border":`light-dark(var(--color-amber-600), var(--color-amber-400))`},Solid:{"--normal-bg":`light-dark(var(--color-amber-600), var(--color-amber-400))`,"--normal-text":`var(--color-white)`,"--normal-border":`light-dark(var(--color-amber-600), var(--color-amber-400))`}},Destructive:{Soft:{"--normal-bg":`color-mix(in oklab, var(--destructive) 10%, var(--background))`,"--normal-text":`var(--destructive)`,"--normal-border":`var(--destructive)`},Outline:{"--normal-bg":`var(--background)`,"--normal-text":`var(--destructive)`,"--normal-border":`var(--destructive)`},Solid:{"--normal-bg":`light-dark(var(--destructive), color-mix(in oklab, var(--destructive) 60%, var(--background)))`,"--normal-text":`var(--color-white)`,"--normal-border":`transparent`}}};exports.CrossfadeImage=g,exports.ImageUploadField=O,exports.ImageUploadItem=v,exports.ImageUploadSortableField=k,exports.SUPPORTED_LOCALES=_,exports.ToastCSS=$,exports.createZustandContext=L,exports.dateIdFormat=W,exports.deleteItem=q,exports.fetchItems=j,exports.fetchItemsByOne=M,exports.getAuthErrorKey=Y,exports.getPlatformType=I,exports.getSnapshots=F,exports.initIenlabI18n=Q,exports.snapshotToData=A,exports.time24Format=G,exports.undeleteItem=J,exports.useDateTimeFormatters=U;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,a)=>(a=n==null?{}:e(i(n)),s(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));let l=require(`react`),u=require(`motion/react`),d=require(`react/jsx-runtime`),f=require(`react-i18next`),p=require(`firebase/firestore`),m=require(`zustand/react`),h=require(`i18next`);h=c(h,1);function g({placeholder:e,src:t,onLoadError:n,...r}){let[i,a]=(0,l.useState)(()=>{if(typeof window>`u`||!t)return!1;let e=new Image;return e.src=t,e.complete&&e.naturalWidth>0}),[o,s]=(0,l.useState)(t);return o!==t&&(s(t),a(!1)),(0,l.useEffect)(()=>{if(!t)return;let e=new Image;return e.src=t,e.onload=()=>a(!0),e.onerror=e=>{n?n(e):console.error(`CrossfadeImage: Failed to load image`,t)},e.complete&&e.naturalWidth>0&&e.onload(new Event(`load`)),()=>{e.onload=null,e.onerror=null}},[t,n]),(0,d.jsx)(u.AnimatePresence,{children:i&&t?(0,d.jsx)(u.motion.img,{src:t,...r,initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},style:{...r.style}},`loaded-image`):(0,d.jsx)(u.motion.div,{initial:{opacity:1},transition:{duration:.3},style:{...r.style},children:e??(0,d.jsx)(`div`,{className:`w-full h-full bg-sidebar`})},`placeholder`)})}var _=Object.create,v=Object.defineProperty,y=Object.getOwnPropertyDescriptor,b=Object.getOwnPropertyNames,x=Object.getPrototypeOf,S=Object.prototype.hasOwnProperty,C=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),w=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=b(t),a=0,o=i.length,s;a<o;a++)s=i[a],!S.call(e,s)&&s!==n&&v(e,s,{get:(e=>t[e]).bind(null,s),enumerable:!(r=y(t,s))||r.enumerable});return e},T=(e,t,n)=>(n=e==null?{}:_(x(e)),w(t||!e||!e.__esModule?v(n,`default`,{value:e,enumerable:!0}):n,e));function E({placeholder:e,src:t,onLoadError:n,...r}){let[i,a]=(0,l.useState)(()=>{if(typeof window>`u`||!t)return!1;let e=new Image;return e.src=t,e.complete&&e.naturalWidth>0}),[o,s]=(0,l.useState)(t);return o!==t&&(s(t),a(!1)),(0,l.useEffect)(()=>{if(!t)return;let e=new Image;return e.src=t,e.onload=()=>a(!0),e.onerror=e=>{n?n(e):console.error(`CrossfadeImage: Failed to load image`,t)},e.complete&&e.naturalWidth>0&&e.onload(new Event(`load`)),()=>{e.onload=null,e.onerror=null}},[t,n]),(0,d.jsx)(u.AnimatePresence,{children:i&&t?(0,d.jsx)(u.motion.img,{src:t,...r,initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},style:{...r.style}},`loaded-image`):(0,d.jsx)(u.motion.div,{initial:{opacity:1},transition:{duration:.3},style:{...r.style},children:e??(0,d.jsx)(`div`,{className:`w-full h-full bg-sidebar`})},`placeholder`)})}var D=Object.create,O=Object.defineProperty,ee=Object.getOwnPropertyDescriptor,te=Object.getOwnPropertyNames,ne=Object.getPrototypeOf,re=Object.prototype.hasOwnProperty,k=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),ie=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=te(t),a=0,o=i.length,s;a<o;a++)s=i[a],!re.call(e,s)&&s!==n&&O(e,s,{get:(e=>t[e]).bind(null,s),enumerable:!(r=ee(t,s))||r.enumerable});return e},ae=(e,t,n)=>(n=e==null?{}:D(ne(e)),ie(t||!e||!e.__esModule?O(n,`default`,{value:e,enumerable:!0}):n,e)),A=k(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs=r()})(e,(function(){var e=1e3,t=6e4,n=36e5,r=`millisecond`,i=`second`,a=`minute`,o=`hour`,s=`day`,c=`week`,l=`month`,u=`quarter`,d=`year`,f=`date`,p=`Invalid Date`,m=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,h=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,g={name:`en`,weekdays:`Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday`.split(`_`),months:`January_February_March_April_May_June_July_August_September_October_November_December`.split(`_`),ordinal:function(e){var t=[`th`,`st`,`nd`,`rd`],n=e%100;return`[`+e+(t[(n-20)%10]||t[n]||t[0])+`]`}},_=function(e,t,n){var r=String(e);return!r||r.length>=t?e:``+Array(t+1-r.length).join(n)+e},v={s:_,z:function(e){var t=-e.utcOffset(),n=Math.abs(t),r=Math.floor(n/60),i=n%60;return(t<=0?`+`:`-`)+_(r,2,`0`)+`:`+_(i,2,`0`)},m:function e(t,n){if(t.date()<n.date())return-e(n,t);var r=12*(n.year()-t.year())+(n.month()-t.month()),i=t.clone().add(r,l),a=n-i<0,o=t.clone().add(r+(a?-1:1),l);return+(-(r+(n-i)/(a?i-o:o-i))||0)},a:function(e){return e<0?Math.ceil(e)||0:Math.floor(e)},p:function(e){return{M:l,y:d,w:c,d:s,D:f,h:o,m:a,s:i,ms:r,Q:u}[e]||String(e||``).toLowerCase().replace(/s$/,``)},u:function(e){return e===void 0}},y=`en`,b={};b[y]=g;var x=`$isDayjsObject`,S=function(e){return e instanceof E||!(!e||!e[x])},C=function e(t,n,r){var i;if(!t)return y;if(typeof t==`string`){var a=t.toLowerCase();b[a]&&(i=a),n&&(b[a]=n,i=a);var o=t.split(`-`);if(!i&&o.length>1)return e(o[0])}else{var s=t.name;b[s]=t,i=s}return!r&&i&&(y=i),i||!r&&y},w=function(e,t){if(S(e))return e.clone();var n=typeof t==`object`?t:{};return n.date=e,n.args=arguments,new E(n)},T=v;T.l=C,T.i=S,T.w=function(e,t){return w(e,{locale:t.$L,utc:t.$u,x:t.$x,$offset:t.$offset})};var E=function(){function g(e){this.$L=C(e.locale,null,!0),this.parse(e),this.$x=this.$x||e.x||{},this[x]=!0}var _=g.prototype;return _.parse=function(e){this.$d=function(e){var t=e.date,n=e.utc;if(t===null)return new Date(NaN);if(T.u(t))return new Date;if(t instanceof Date)return new Date(t);if(typeof t==`string`&&!/Z$/i.test(t)){var r=t.match(m);if(r){var i=r[2]-1||0,a=(r[7]||`0`).substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,a)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,a)}}return new Date(t)}(e),this.init()},_.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},_.$utils=function(){return T},_.isValid=function(){return this.$d.toString()!==p},_.isSame=function(e,t){var n=w(e);return this.startOf(t)<=n&&n<=this.endOf(t)},_.isAfter=function(e,t){return w(e)<this.startOf(t)},_.isBefore=function(e,t){return this.endOf(t)<w(e)},_.$g=function(e,t,n){return T.u(e)?this[t]:this.set(n,e)},_.unix=function(){return Math.floor(this.valueOf()/1e3)},_.valueOf=function(){return this.$d.getTime()},_.startOf=function(e,t){var n=this,r=!!T.u(t)||t,u=T.p(e),p=function(e,t){var i=T.w(n.$u?Date.UTC(n.$y,t,e):new Date(n.$y,t,e),n);return r?i:i.endOf(s)},m=function(e,t){return T.w(n.toDate()[e].apply(n.toDate(`s`),(r?[0,0,0,0]:[23,59,59,999]).slice(t)),n)},h=this.$W,g=this.$M,_=this.$D,v=`set`+(this.$u?`UTC`:``);switch(u){case d:return r?p(1,0):p(31,11);case l:return r?p(1,g):p(0,g+1);case c:var y=this.$locale().weekStart||0,b=(h<y?h+7:h)-y;return p(r?_-b:_+(6-b),g);case s:case f:return m(v+`Hours`,0);case o:return m(v+`Minutes`,1);case a:return m(v+`Seconds`,2);case i:return m(v+`Milliseconds`,3);default:return this.clone()}},_.endOf=function(e){return this.startOf(e,!1)},_.$set=function(e,t){var n,c=T.p(e),u=`set`+(this.$u?`UTC`:``),p=(n={},n[s]=u+`Date`,n[f]=u+`Date`,n[l]=u+`Month`,n[d]=u+`FullYear`,n[o]=u+`Hours`,n[a]=u+`Minutes`,n[i]=u+`Seconds`,n[r]=u+`Milliseconds`,n)[c],m=c===s?this.$D+(t-this.$W):t;if(c===l||c===d){var h=this.clone().set(f,1);h.$d[p](m),h.init(),this.$d=h.set(f,Math.min(this.$D,h.daysInMonth())).$d}else p&&this.$d[p](m);return this.init(),this},_.set=function(e,t){return this.clone().$set(e,t)},_.get=function(e){return this[T.p(e)]()},_.add=function(r,u){var f,p=this;r=Number(r);var m=T.p(u),h=function(e){var t=w(p);return T.w(t.date(t.date()+Math.round(e*r)),p)};if(m===l)return this.set(l,this.$M+r);if(m===d)return this.set(d,this.$y+r);if(m===s)return h(1);if(m===c)return h(7);var g=(f={},f[a]=t,f[o]=n,f[i]=e,f)[m]||1,_=this.$d.getTime()+r*g;return T.w(_,this)},_.subtract=function(e,t){return this.add(-1*e,t)},_.format=function(e){var t=this,n=this.$locale();if(!this.isValid())return n.invalidDate||p;var r=e||`YYYY-MM-DDTHH:mm:ssZ`,i=T.z(this),a=this.$H,o=this.$m,s=this.$M,c=n.weekdays,l=n.months,u=n.meridiem,d=function(e,n,i,a){return e&&(e[n]||e(t,r))||i[n].slice(0,a)},f=function(e){return T.s(a%12||12,e,`0`)},m=u||function(e,t,n){var r=e<12?`AM`:`PM`;return n?r.toLowerCase():r};return r.replace(h,(function(e,r){return r||function(e){switch(e){case`YY`:return String(t.$y).slice(-2);case`YYYY`:return T.s(t.$y,4,`0`);case`M`:return s+1;case`MM`:return T.s(s+1,2,`0`);case`MMM`:return d(n.monthsShort,s,l,3);case`MMMM`:return d(l,s);case`D`:return t.$D;case`DD`:return T.s(t.$D,2,`0`);case`d`:return String(t.$W);case`dd`:return d(n.weekdaysMin,t.$W,c,2);case`ddd`:return d(n.weekdaysShort,t.$W,c,3);case`dddd`:return c[t.$W];case`H`:return String(a);case`HH`:return T.s(a,2,`0`);case`h`:return f(1);case`hh`:return f(2);case`a`:return m(a,o,!0);case`A`:return m(a,o,!1);case`m`:return String(o);case`mm`:return T.s(o,2,`0`);case`s`:return String(t.$s);case`ss`:return T.s(t.$s,2,`0`);case`SSS`:return T.s(t.$ms,3,`0`);case`Z`:return i}return null}(e)||i.replace(`:`,``)}))},_.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},_.diff=function(r,f,p){var m,h=this,g=T.p(f),_=w(r),v=(_.utcOffset()-this.utcOffset())*t,y=this-_,b=function(){return T.m(h,_)};switch(g){case d:m=b()/12;break;case l:m=b();break;case u:m=b()/3;break;case c:m=(y-v)/6048e5;break;case s:m=(y-v)/864e5;break;case o:m=y/n;break;case a:m=y/t;break;case i:m=y/e;break;default:m=y}return p?m:T.a(m)},_.daysInMonth=function(){return this.endOf(l).$D},_.$locale=function(){return b[this.$L]},_.locale=function(e,t){if(!e)return this.$L;var n=this.clone(),r=C(e,t,!0);return r&&(n.$L=r),n},_.clone=function(){return T.w(this.$d,this)},_.toDate=function(){return new Date(this.valueOf())},_.toJSON=function(){return this.isValid()?this.toISOString():null},_.toISOString=function(){return this.$d.toISOString()},_.toString=function(){return this.$d.toUTCString()},g}(),D=E.prototype;return w.prototype=D,[[`$ms`,r],[`$s`,i],[`$m`,a],[`$H`,o],[`$W`,s],[`$M`,l],[`$y`,d],[`$D`,f]].forEach((function(e){D[e[1]]=function(t){return this.$g(t,e[0],e[1])}})),w.extend=function(e,t){return e.$i||=(e(t,E,w),!0),w},w.locale=C,w.isDayjs=S,w.unix=function(e){return w(1e3*e)},w.en=b[y],w.Ls=b,w.p={},w}))})),j=k(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r(A()):typeof define==`function`&&define.amd?define([`dayjs`],r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs_locale_ko=r(n.dayjs)})(e,(function(e){function t(e){return e&&typeof e==`object`&&`default`in e?e:{default:e}}var n=t(e),r={name:`ko`,weekdays:`일요일_월요일_화요일_수요일_목요일_금요일_토요일`.split(`_`),weekdaysShort:`일_월_화_수_목_금_토`.split(`_`),weekdaysMin:`일_월_화_수_목_금_토`.split(`_`),months:`1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월`.split(`_`),monthsShort:`1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월`.split(`_`),ordinal:function(e){return e+`일`},formats:{LT:`A h:mm`,LTS:`A h:mm:ss`,L:`YYYY.MM.DD.`,LL:`YYYY년 MMMM D일`,LLL:`YYYY년 MMMM D일 A h:mm`,LLLL:`YYYY년 MMMM D일 dddd A h:mm`,l:`YYYY.MM.DD.`,ll:`YYYY년 MMMM D일`,lll:`YYYY년 MMMM D일 A h:mm`,llll:`YYYY년 MMMM D일 dddd A h:mm`},meridiem:function(e){return e<12?`오전`:`오후`},relativeTime:{future:`%s 후`,past:`%s 전`,s:`몇 초`,m:`1분`,mm:`%d분`,h:`한 시간`,hh:`%d시간`,d:`하루`,dd:`%d일`,M:`한 달`,MM:`%d달`,y:`일 년`,yy:`%d년`}};return n.default.locale(r,null,!0),r}))})),M=k(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs_locale_en=r()})(e,(function(){return{name:`en`,weekdays:`Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday`.split(`_`),months:`January_February_March_April_May_June_July_August_September_October_November_December`.split(`_`),ordinal:function(e){var t=[`th`,`st`,`nd`,`rd`],n=e%100;return`[`+e+(t[(n-20)%10]||t[n]||t[0])+`]`}}}))})),oe=ae(A(),1);j(),M();var N=e=>{let t=e?.split(`-`)[0]===`ko`?`ko`:`en`;oe.default.locale(t)};h.default.isInitialized&&N(h.default.resolvedLanguage||h.default.language),h.default.on(`languageChanged`,N);var P=class{url=``;file=null;constructor(e={}){Object.assign(this,e)}isBlobUrl(){return this.url.startsWith(`blob:`)}revokeIfNeeded(){this.file&&this.isBlobUrl()&&URL.revokeObjectURL(this.url)}},F=C(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs=r()})(e,(function(){var e=1e3,t=6e4,n=36e5,r=`millisecond`,i=`second`,a=`minute`,o=`hour`,s=`day`,c=`week`,l=`month`,u=`quarter`,d=`year`,f=`date`,p=`Invalid Date`,m=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,h=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,g={name:`en`,weekdays:`Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday`.split(`_`),months:`January_February_March_April_May_June_July_August_September_October_November_December`.split(`_`),ordinal:function(e){var t=[`th`,`st`,`nd`,`rd`],n=e%100;return`[`+e+(t[(n-20)%10]||t[n]||t[0])+`]`}},_=function(e,t,n){var r=String(e);return!r||r.length>=t?e:``+Array(t+1-r.length).join(n)+e},v={s:_,z:function(e){var t=-e.utcOffset(),n=Math.abs(t),r=Math.floor(n/60),i=n%60;return(t<=0?`+`:`-`)+_(r,2,`0`)+`:`+_(i,2,`0`)},m:function e(t,n){if(t.date()<n.date())return-e(n,t);var r=12*(n.year()-t.year())+(n.month()-t.month()),i=t.clone().add(r,l),a=n-i<0,o=t.clone().add(r+(a?-1:1),l);return+(-(r+(n-i)/(a?i-o:o-i))||0)},a:function(e){return e<0?Math.ceil(e)||0:Math.floor(e)},p:function(e){return{M:l,y:d,w:c,d:s,D:f,h:o,m:a,s:i,ms:r,Q:u}[e]||String(e||``).toLowerCase().replace(/s$/,``)},u:function(e){return e===void 0}},y=`en`,b={};b[y]=g;var x=`$isDayjsObject`,S=function(e){return e instanceof E||!(!e||!e[x])},C=function e(t,n,r){var i;if(!t)return y;if(typeof t==`string`){var a=t.toLowerCase();b[a]&&(i=a),n&&(b[a]=n,i=a);var o=t.split(`-`);if(!i&&o.length>1)return e(o[0])}else{var s=t.name;b[s]=t,i=s}return!r&&i&&(y=i),i||!r&&y},w=function(e,t){if(S(e))return e.clone();var n=typeof t==`object`?t:{};return n.date=e,n.args=arguments,new E(n)},T=v;T.l=C,T.i=S,T.w=function(e,t){return w(e,{locale:t.$L,utc:t.$u,x:t.$x,$offset:t.$offset})};var E=function(){function g(e){this.$L=C(e.locale,null,!0),this.parse(e),this.$x=this.$x||e.x||{},this[x]=!0}var _=g.prototype;return _.parse=function(e){this.$d=function(e){var t=e.date,n=e.utc;if(t===null)return new Date(NaN);if(T.u(t))return new Date;if(t instanceof Date)return new Date(t);if(typeof t==`string`&&!/Z$/i.test(t)){var r=t.match(m);if(r){var i=r[2]-1||0,a=(r[7]||`0`).substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,a)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,a)}}return new Date(t)}(e),this.init()},_.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},_.$utils=function(){return T},_.isValid=function(){return this.$d.toString()!==p},_.isSame=function(e,t){var n=w(e);return this.startOf(t)<=n&&n<=this.endOf(t)},_.isAfter=function(e,t){return w(e)<this.startOf(t)},_.isBefore=function(e,t){return this.endOf(t)<w(e)},_.$g=function(e,t,n){return T.u(e)?this[t]:this.set(n,e)},_.unix=function(){return Math.floor(this.valueOf()/1e3)},_.valueOf=function(){return this.$d.getTime()},_.startOf=function(e,t){var n=this,r=!!T.u(t)||t,u=T.p(e),p=function(e,t){var i=T.w(n.$u?Date.UTC(n.$y,t,e):new Date(n.$y,t,e),n);return r?i:i.endOf(s)},m=function(e,t){return T.w(n.toDate()[e].apply(n.toDate(`s`),(r?[0,0,0,0]:[23,59,59,999]).slice(t)),n)},h=this.$W,g=this.$M,_=this.$D,v=`set`+(this.$u?`UTC`:``);switch(u){case d:return r?p(1,0):p(31,11);case l:return r?p(1,g):p(0,g+1);case c:var y=this.$locale().weekStart||0,b=(h<y?h+7:h)-y;return p(r?_-b:_+(6-b),g);case s:case f:return m(v+`Hours`,0);case o:return m(v+`Minutes`,1);case a:return m(v+`Seconds`,2);case i:return m(v+`Milliseconds`,3);default:return this.clone()}},_.endOf=function(e){return this.startOf(e,!1)},_.$set=function(e,t){var n,c=T.p(e),u=`set`+(this.$u?`UTC`:``),p=(n={},n[s]=u+`Date`,n[f]=u+`Date`,n[l]=u+`Month`,n[d]=u+`FullYear`,n[o]=u+`Hours`,n[a]=u+`Minutes`,n[i]=u+`Seconds`,n[r]=u+`Milliseconds`,n)[c],m=c===s?this.$D+(t-this.$W):t;if(c===l||c===d){var h=this.clone().set(f,1);h.$d[p](m),h.init(),this.$d=h.set(f,Math.min(this.$D,h.daysInMonth())).$d}else p&&this.$d[p](m);return this.init(),this},_.set=function(e,t){return this.clone().$set(e,t)},_.get=function(e){return this[T.p(e)]()},_.add=function(r,u){var f,p=this;r=Number(r);var m=T.p(u),h=function(e){var t=w(p);return T.w(t.date(t.date()+Math.round(e*r)),p)};if(m===l)return this.set(l,this.$M+r);if(m===d)return this.set(d,this.$y+r);if(m===s)return h(1);if(m===c)return h(7);var g=(f={},f[a]=t,f[o]=n,f[i]=e,f)[m]||1,_=this.$d.getTime()+r*g;return T.w(_,this)},_.subtract=function(e,t){return this.add(-1*e,t)},_.format=function(e){var t=this,n=this.$locale();if(!this.isValid())return n.invalidDate||p;var r=e||`YYYY-MM-DDTHH:mm:ssZ`,i=T.z(this),a=this.$H,o=this.$m,s=this.$M,c=n.weekdays,l=n.months,u=n.meridiem,d=function(e,n,i,a){return e&&(e[n]||e(t,r))||i[n].slice(0,a)},f=function(e){return T.s(a%12||12,e,`0`)},m=u||function(e,t,n){var r=e<12?`AM`:`PM`;return n?r.toLowerCase():r};return r.replace(h,(function(e,r){return r||function(e){switch(e){case`YY`:return String(t.$y).slice(-2);case`YYYY`:return T.s(t.$y,4,`0`);case`M`:return s+1;case`MM`:return T.s(s+1,2,`0`);case`MMM`:return d(n.monthsShort,s,l,3);case`MMMM`:return d(l,s);case`D`:return t.$D;case`DD`:return T.s(t.$D,2,`0`);case`d`:return String(t.$W);case`dd`:return d(n.weekdaysMin,t.$W,c,2);case`ddd`:return d(n.weekdaysShort,t.$W,c,3);case`dddd`:return c[t.$W];case`H`:return String(a);case`HH`:return T.s(a,2,`0`);case`h`:return f(1);case`hh`:return f(2);case`a`:return m(a,o,!0);case`A`:return m(a,o,!1);case`m`:return String(o);case`mm`:return T.s(o,2,`0`);case`s`:return String(t.$s);case`ss`:return T.s(t.$s,2,`0`);case`SSS`:return T.s(t.$ms,3,`0`);case`Z`:return i}return null}(e)||i.replace(`:`,``)}))},_.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},_.diff=function(r,f,p){var m,h=this,g=T.p(f),_=w(r),v=(_.utcOffset()-this.utcOffset())*t,y=this-_,b=function(){return T.m(h,_)};switch(g){case d:m=b()/12;break;case l:m=b();break;case u:m=b()/3;break;case c:m=(y-v)/6048e5;break;case s:m=(y-v)/864e5;break;case o:m=y/n;break;case a:m=y/t;break;case i:m=y/e;break;default:m=y}return p?m:T.a(m)},_.daysInMonth=function(){return this.endOf(l).$D},_.$locale=function(){return b[this.$L]},_.locale=function(e,t){if(!e)return this.$L;var n=this.clone(),r=C(e,t,!0);return r&&(n.$L=r),n},_.clone=function(){return T.w(this.$d,this)},_.toDate=function(){return new Date(this.valueOf())},_.toJSON=function(){return this.isValid()?this.toISOString():null},_.toISOString=function(){return this.$d.toISOString()},_.toString=function(){return this.$d.toUTCString()},g}(),D=E.prototype;return w.prototype=D,[[`$ms`,r],[`$s`,i],[`$m`,a],[`$H`,o],[`$W`,s],[`$M`,l],[`$y`,d],[`$D`,f]].forEach((function(e){D[e[1]]=function(t){return this.$g(t,e[0],e[1])}})),w.extend=function(e,t){return e.$i||=(e(t,E,w),!0),w},w.locale=C,w.isDayjs=S,w.unix=function(e){return w(1e3*e)},w.en=b[y],w.Ls=b,w.p={},w}))})),I=C(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r(F()):typeof define==`function`&&define.amd?define([`dayjs`],r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs_locale_ko=r(n.dayjs)})(e,(function(e){function t(e){return e&&typeof e==`object`&&`default`in e?e:{default:e}}var n=t(e),r={name:`ko`,weekdays:`일요일_월요일_화요일_수요일_목요일_금요일_토요일`.split(`_`),weekdaysShort:`일_월_화_수_목_금_토`.split(`_`),weekdaysMin:`일_월_화_수_목_금_토`.split(`_`),months:`1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월`.split(`_`),monthsShort:`1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월`.split(`_`),ordinal:function(e){return e+`일`},formats:{LT:`A h:mm`,LTS:`A h:mm:ss`,L:`YYYY.MM.DD.`,LL:`YYYY년 MMMM D일`,LLL:`YYYY년 MMMM D일 A h:mm`,LLLL:`YYYY년 MMMM D일 dddd A h:mm`,l:`YYYY.MM.DD.`,ll:`YYYY년 MMMM D일`,lll:`YYYY년 MMMM D일 A h:mm`,llll:`YYYY년 MMMM D일 dddd A h:mm`},meridiem:function(e){return e<12?`오전`:`오후`},relativeTime:{future:`%s 후`,past:`%s 전`,s:`몇 초`,m:`1분`,mm:`%d분`,h:`한 시간`,hh:`%d시간`,d:`하루`,dd:`%d일`,M:`한 달`,MM:`%d달`,y:`일 년`,yy:`%d년`}};return n.default.locale(r,null,!0),r}))})),se=C(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs_locale_en=r()})(e,(function(){return{name:`en`,weekdays:`Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday`.split(`_`),months:`January_February_March_April_May_June_July_August_September_October_November_December`.split(`_`),ordinal:function(e){var t=[`th`,`st`,`nd`,`rd`],n=e%100;return`[`+e+(t[(n-20)%10]||t[n]||t[0])+`]`}}}))})),ce=T(F(),1);I(),se();var L=e=>{let t=e?.split(`-`)[0]===`ko`?`ko`:`en`;ce.default.locale(t)};h.default.isInitialized&&L(h.default.resolvedLanguage||h.default.language),h.default.on(`languageChanged`,L);var R=({children:e})=>(0,d.jsx)(`div`,{children:e}),z=e=>(0,d.jsx)(`label`,{...e}),B=({children:e})=>(0,d.jsx)(`p`,{children:e}),V=e=>(0,d.jsx)(`input`,{...e}),H=({children:e,...t})=>(0,d.jsx)(`div`,{...t,children:e}),U=e=>null,W=({children:e,...t})=>(0,d.jsx)(`div`,{...t,children:e}),G=({children:e,type:t=`button`,...n})=>(0,d.jsx)(`button`,{type:t,...n,children:e}),le=({className:e})=>(0,d.jsx)(`span`,{className:e,children:`×`}),K={wrapper:{display:`flex`,flexDirection:`column`,gap:`1rem`},trigger:{display:`block`,cursor:`pointer`},card:{position:`relative`,overflow:`hidden`,borderRadius:`1.5rem`,border:`1px solid #e5e7eb`,backgroundColor:`#ffffff`,transition:`background-color 160ms ease, box-shadow 160ms ease`},frame:{position:`relative`,width:`100%`,aspectRatio:`16 / 9`},imageLayer:{position:`absolute`,inset:0,padding:`1.5rem`},imageBox:{margin:`0 auto`,maxWidth:`100%`,maxHeight:`100%`},image:{width:`100%`,height:`100%`,objectFit:`cover`,display:`block`},empty:{display:`flex`,width:`100%`,height:`100%`,flexDirection:`column`,alignItems:`center`,justifyContent:`center`,gap:`1rem`,color:`#6b7280`,textAlign:`center`,padding:`1rem`,boxSizing:`border-box`},badge:{borderRadius:`1rem`,backgroundColor:`#f3f4f6`,padding:`0.75rem 1rem`,fontSize:`0.875rem`,lineHeight:1.2,color:`#111827`},hint:{margin:0,fontSize:`0.875rem`,lineHeight:1.4},overlay:{pointerEvents:`none`,position:`absolute`,inset:0,borderRadius:`inherit`,boxShadow:`inset 0 0 0 0 rgba(59, 130, 246, 0)`,transition:`box-shadow 160ms ease`}};function ue({id:e,label:t,uploadHintText:n,descriptionText:r,value:i,onChange:a,aspectRatio:o=`1 / 1`,accept:s=`image/*`,components:c}){let{t:l}=(0,f.useTranslation)(),u=c?.Field??R,p=c?.FieldLabel??z,m=c?.FieldDescription??B,h=c?.Input??V,g={...K.imageBox,aspectRatio:o};return(0,d.jsxs)(u,{children:[(0,d.jsx)(p,{htmlFor:e,children:t}),(0,d.jsxs)(`div`,{style:K.wrapper,children:[(0,d.jsx)(`label`,{htmlFor:e,style:K.trigger,onMouseEnter:e=>{let t=e.currentTarget.firstElementChild,n=t?.lastElementChild;t&&(t.style.backgroundColor=`#f9fafb`),n&&(n.style.boxShadow=`inset 0 0 0 2px rgba(59, 130, 246, 0.16)`)},onMouseLeave:e=>{let t=e.currentTarget.firstElementChild,n=t?.lastElementChild;t&&(t.style.backgroundColor=`#ffffff`),n&&(n.style.boxShadow=`inset 0 0 0 0 rgba(59, 130, 246, 0)`)},children:(0,d.jsxs)(`div`,{style:K.card,children:[(0,d.jsx)(`div`,{style:K.frame,children:i.url?(0,d.jsx)(`div`,{style:K.imageLayer,children:(0,d.jsx)(`div`,{style:g,children:(0,d.jsx)(E,{src:i.url,className:``,style:K.image})})}):(0,d.jsxs)(`div`,{style:K.empty,children:[(0,d.jsx)(`div`,{style:K.badge,children:l(`libs:add_assets`)}),(0,d.jsx)(`p`,{style:K.hint,children:n})]})}),(0,d.jsx)(`div`,{style:K.overlay})]})}),(0,d.jsx)(h,{id:e,type:`file`,accept:s,onChange:e=>{let t=e.target.files?.[0];t&&(i.revokeIfNeeded(),a(new P({file:t,url:URL.createObjectURL(t)})),e.currentTarget.value=``)},style:{display:`none`}}),(0,d.jsx)(m,{children:r})]})]})}var q=[`ko`,`en`],J=class{url=``;file=null;constructor(e={}){Object.assign(this,e)}isBlobUrl(){return this.url.startsWith(`blob:`)}revokeIfNeeded(){this.file&&this.isBlobUrl()&&URL.revokeObjectURL(this.url)}},Y={wrapper:{display:`flex`,flexDirection:`column`,gap:`0.75rem`},outerBox:{borderRadius:`1.5rem`,border:`1px solid #e5e7eb`,backgroundColor:`#ffffff`,overflow:`hidden`},scrollArea:{width:`100%`,overflowX:`auto`,overflowY:`hidden`,whiteSpace:`nowrap`},list:{display:`flex`,width:`max-content`,gap:`1rem`,padding:`1rem`},item:{position:`relative`,flexShrink:0},card:{position:`relative`,width:`15rem`,overflow:`hidden`,borderRadius:`0.75rem`,padding:0,backgroundColor:`#ffffff`,border:`1px solid #e5e7eb`,boxSizing:`border-box`},cardInner:{position:`relative`,width:`100%`,height:`100%`},image:{width:`100%`,height:`100%`,objectFit:`cover`,display:`block`},removeButton:{position:`absolute`,right:`1rem`,bottom:`1rem`,borderRadius:`9999px`,boxShadow:`0 1px 3px rgba(0, 0, 0, 0.12)`},uploadLabel:{display:`block`,flexShrink:0,cursor:`pointer`},uploadCard:{width:`15rem`,overflow:`hidden`,borderRadius:`0.75rem`,padding:0,border:`1px dashed #d1d5db`,backgroundColor:`#ffffff`,boxSizing:`border-box`,transition:`background-color 160ms ease`},uploadCardInner:{display:`flex`,width:`100%`,height:`100%`,flexDirection:`column`,alignItems:`center`,justifyContent:`center`,gap:`1rem`,color:`#6b7280`,textAlign:`center`,padding:`1rem`,boxSizing:`border-box`},badge:{borderRadius:`1rem`,backgroundColor:`#f3f4f6`,padding:`0.75rem 1rem`,fontSize:`0.875rem`,lineHeight:1.2,color:`#111827`},hint:{margin:0,fontSize:`0.875rem`,lineHeight:1.4},description:{marginTop:`0.25rem`},hiddenInput:{display:`none`},scrollBar:{marginLeft:`1rem`,marginRight:`1rem`}};function de({id:e,label:t,descriptionText:n,uploadHintText:r,items:i,onChange:a,aspectRatio:o=`1 / 1`,accept:s=`image/*`,components:c}){let{t:l}=(0,f.useTranslation)(),p=c?.Field??R,m=c?.FieldLabel??z,h=c?.FieldDescription??B,_=c?.Input??V,v=c?.ScrollArea??H,y=c?.ScrollBar??U,b=c?.Card??W,x=c?.Button??G,S=c?.CloseIcon??le,C=e=>{e.revokeIfNeeded(),a(i.filter(t=>t!==e))},w=e=>{!e||e.length===0||a([...i,...Array.from(e).map(e=>new J({file:e,url:URL.createObjectURL(e)}))])},T={...Y.card,aspectRatio:o},E={...Y.uploadCard,aspectRatio:o};return(0,d.jsxs)(p,{children:[(0,d.jsx)(m,{htmlFor:e,children:t}),(0,d.jsxs)(`div`,{style:Y.wrapper,children:[(0,d.jsxs)(`div`,{style:Y.outerBox,children:[(0,d.jsxs)(v,{style:Y.scrollArea,children:[(0,d.jsxs)(u.Reorder.Group,{axis:`x`,values:i,onReorder:a,layoutScroll:!0,style:Y.list,children:[i.map(e=>(0,d.jsx)(u.Reorder.Item,{value:e,style:Y.item,children:(0,d.jsx)(b,{style:T,children:(0,d.jsxs)(`div`,{style:Y.cardInner,children:[(0,d.jsx)(g,{src:e.url,className:``,style:Y.image,draggable:!1}),(0,d.jsx)(x,{type:`button`,style:Y.removeButton,onClick:()=>C(e),children:(0,d.jsx)(S,{})})]})})},e.url)),(0,d.jsx)(`label`,{htmlFor:e,style:Y.uploadLabel,children:(0,d.jsx)(b,{style:E,onMouseEnter:e=>{e.currentTarget.style.backgroundColor=`#f9fafb`},onMouseLeave:e=>{e.currentTarget.style.backgroundColor=`#ffffff`},children:(0,d.jsxs)(`div`,{style:Y.uploadCardInner,children:[(0,d.jsx)(`div`,{style:Y.badge,children:l(`libs:add_assets`)}),(0,d.jsx)(`p`,{style:Y.hint,children:r})]})})})]}),(0,d.jsx)(y,{orientation:`horizontal`,style:Y.scrollBar})]}),(0,d.jsx)(_,{id:e,type:`file`,accept:s,multiple:!0,onChange:e=>{w(e.target.files),e.currentTarget.value=``},style:Y.hiddenInput})]}),(0,d.jsx)(`div`,{style:Y.description,children:(0,d.jsx)(h,{children:n})})]})]})}function fe(e){return{...e.data(),id:e.id}}async function pe(e,t,n,r){let i=r.filter(e=>!!(e&&!n.has(e.path)));for(let r=0;r<i.length;r+=30){let a=i.slice(r,r+30);(await(0,p.getDocs)((0,p.query)(e,(0,p.where)((0,p.documentId)(),`in`,a.map(e=>e.id))))).forEach(e=>{let r=t(e);n.set(e.ref.path,r)})}}async function me(e,t,n){let r=n.filter(e=>!!(e&&!t.has(e.path)));await Promise.all(r.map(async n=>{let r=e(await(0,p.getDoc)(n));t.set(n.path,r)}))}function he(e={}){let{cache:t=!0,includeMetadataChanges:n}=e;return{listenOptions:{includeMetadataChanges:n??!t},cache:t}}function ge(e,t){return t!==!1||!e}function _e(e,t,n={}){let{listenOptions:r,cache:i}=he(n),{onError:a}=n;return e.type,(0,p.onSnapshot)(e,r,e=>{ge(e.metadata.fromCache,i)&&t(e)},a)}function ve(){if(typeof window>`u`)return`pc`;let e=navigator.userAgent,t=navigator.platform,n=/Android/i.test(e),r=/iPhone|iPad|iPod/i.test(e)||t===`MacIntel`&&navigator.maxTouchPoints>1;return n?`android`:r?`ios`:`pc`}function ye(e){let t=(0,l.createContext)(null);function n({children:n,...r}){let[i]=(0,l.useState)(()=>e(r));return(0,d.jsx)(t.Provider,{value:i,children:n})}function r(e){let n=(0,l.useContext)(t);if(!n)throw Error(`Provider가 필요합니다.`);return(0,m.useStore)(n,e)}let i=new Map;return{Provider:n,useStore:r,use:new Proxy({},{get:(e,t)=>(i.has(t)||i.set(t,()=>r(e=>e[t])),i.get(t))})}}var X=o(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs=r()})(e,(function(){"use strict";var e=1e3,t=6e4,n=36e5,r=`millisecond`,i=`second`,a=`minute`,o=`hour`,s=`day`,c=`week`,l=`month`,u=`quarter`,d=`year`,f=`date`,p=`Invalid Date`,m=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,h=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,g={name:`en`,weekdays:`Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday`.split(`_`),months:`January_February_March_April_May_June_July_August_September_October_November_December`.split(`_`),ordinal:function(e){var t=[`th`,`st`,`nd`,`rd`],n=e%100;return`[`+e+(t[(n-20)%10]||t[n]||t[0])+`]`}},_=function(e,t,n){var r=String(e);return!r||r.length>=t?e:``+Array(t+1-r.length).join(n)+e},v={s:_,z:function(e){var t=-e.utcOffset(),n=Math.abs(t),r=Math.floor(n/60),i=n%60;return(t<=0?`+`:`-`)+_(r,2,`0`)+`:`+_(i,2,`0`)},m:function e(t,n){if(t.date()<n.date())return-e(n,t);var r=12*(n.year()-t.year())+(n.month()-t.month()),i=t.clone().add(r,l),a=n-i<0,o=t.clone().add(r+(a?-1:1),l);return+(-(r+(n-i)/(a?i-o:o-i))||0)},a:function(e){return e<0?Math.ceil(e)||0:Math.floor(e)},p:function(e){return{M:l,y:d,w:c,d:s,D:f,h:o,m:a,s:i,ms:r,Q:u}[e]||String(e||``).toLowerCase().replace(/s$/,``)},u:function(e){return e===void 0}},y=`en`,b={};b[y]=g;var x=`$isDayjsObject`,S=function(e){return e instanceof E||!(!e||!e[x])},C=function e(t,n,r){var i;if(!t)return y;if(typeof t==`string`){var a=t.toLowerCase();b[a]&&(i=a),n&&(b[a]=n,i=a);var o=t.split(`-`);if(!i&&o.length>1)return e(o[0])}else{var s=t.name;b[s]=t,i=s}return!r&&i&&(y=i),i||!r&&y},w=function(e,t){if(S(e))return e.clone();var n=typeof t==`object`?t:{};return n.date=e,n.args=arguments,new E(n)},T=v;T.l=C,T.i=S,T.w=function(e,t){return w(e,{locale:t.$L,utc:t.$u,x:t.$x,$offset:t.$offset})};var E=function(){function g(e){this.$L=C(e.locale,null,!0),this.parse(e),this.$x=this.$x||e.x||{},this[x]=!0}var _=g.prototype;return _.parse=function(e){this.$d=function(e){var t=e.date,n=e.utc;if(t===null)return new Date(NaN);if(T.u(t))return new Date;if(t instanceof Date)return new Date(t);if(typeof t==`string`&&!/Z$/i.test(t)){var r=t.match(m);if(r){var i=r[2]-1||0,a=(r[7]||`0`).substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,a)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,a)}}return new Date(t)}(e),this.init()},_.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},_.$utils=function(){return T},_.isValid=function(){return this.$d.toString()!==p},_.isSame=function(e,t){var n=w(e);return this.startOf(t)<=n&&n<=this.endOf(t)},_.isAfter=function(e,t){return w(e)<this.startOf(t)},_.isBefore=function(e,t){return this.endOf(t)<w(e)},_.$g=function(e,t,n){return T.u(e)?this[t]:this.set(n,e)},_.unix=function(){return Math.floor(this.valueOf()/1e3)},_.valueOf=function(){return this.$d.getTime()},_.startOf=function(e,t){var n=this,r=!!T.u(t)||t,u=T.p(e),p=function(e,t){var i=T.w(n.$u?Date.UTC(n.$y,t,e):new Date(n.$y,t,e),n);return r?i:i.endOf(s)},m=function(e,t){return T.w(n.toDate()[e].apply(n.toDate(`s`),(r?[0,0,0,0]:[23,59,59,999]).slice(t)),n)},h=this.$W,g=this.$M,_=this.$D,v=`set`+(this.$u?`UTC`:``);switch(u){case d:return r?p(1,0):p(31,11);case l:return r?p(1,g):p(0,g+1);case c:var y=this.$locale().weekStart||0,b=(h<y?h+7:h)-y;return p(r?_-b:_+(6-b),g);case s:case f:return m(v+`Hours`,0);case o:return m(v+`Minutes`,1);case a:return m(v+`Seconds`,2);case i:return m(v+`Milliseconds`,3);default:return this.clone()}},_.endOf=function(e){return this.startOf(e,!1)},_.$set=function(e,t){var n,c=T.p(e),u=`set`+(this.$u?`UTC`:``),p=(n={},n[s]=u+`Date`,n[f]=u+`Date`,n[l]=u+`Month`,n[d]=u+`FullYear`,n[o]=u+`Hours`,n[a]=u+`Minutes`,n[i]=u+`Seconds`,n[r]=u+`Milliseconds`,n)[c],m=c===s?this.$D+(t-this.$W):t;if(c===l||c===d){var h=this.clone().set(f,1);h.$d[p](m),h.init(),this.$d=h.set(f,Math.min(this.$D,h.daysInMonth())).$d}else p&&this.$d[p](m);return this.init(),this},_.set=function(e,t){return this.clone().$set(e,t)},_.get=function(e){return this[T.p(e)]()},_.add=function(r,u){var f,p=this;r=Number(r);var m=T.p(u),h=function(e){var t=w(p);return T.w(t.date(t.date()+Math.round(e*r)),p)};if(m===l)return this.set(l,this.$M+r);if(m===d)return this.set(d,this.$y+r);if(m===s)return h(1);if(m===c)return h(7);var g=(f={},f[a]=t,f[o]=n,f[i]=e,f)[m]||1,_=this.$d.getTime()+r*g;return T.w(_,this)},_.subtract=function(e,t){return this.add(-1*e,t)},_.format=function(e){var t=this,n=this.$locale();if(!this.isValid())return n.invalidDate||p;var r=e||`YYYY-MM-DDTHH:mm:ssZ`,i=T.z(this),a=this.$H,o=this.$m,s=this.$M,c=n.weekdays,l=n.months,u=n.meridiem,d=function(e,n,i,a){return e&&(e[n]||e(t,r))||i[n].slice(0,a)},f=function(e){return T.s(a%12||12,e,`0`)},m=u||function(e,t,n){var r=e<12?`AM`:`PM`;return n?r.toLowerCase():r};return r.replace(h,(function(e,r){return r||function(e){switch(e){case`YY`:return String(t.$y).slice(-2);case`YYYY`:return T.s(t.$y,4,`0`);case`M`:return s+1;case`MM`:return T.s(s+1,2,`0`);case`MMM`:return d(n.monthsShort,s,l,3);case`MMMM`:return d(l,s);case`D`:return t.$D;case`DD`:return T.s(t.$D,2,`0`);case`d`:return String(t.$W);case`dd`:return d(n.weekdaysMin,t.$W,c,2);case`ddd`:return d(n.weekdaysShort,t.$W,c,3);case`dddd`:return c[t.$W];case`H`:return String(a);case`HH`:return T.s(a,2,`0`);case`h`:return f(1);case`hh`:return f(2);case`a`:return m(a,o,!0);case`A`:return m(a,o,!1);case`m`:return String(o);case`mm`:return T.s(o,2,`0`);case`s`:return String(t.$s);case`ss`:return T.s(t.$s,2,`0`);case`SSS`:return T.s(t.$ms,3,`0`);case`Z`:return i}return null}(e)||i.replace(`:`,``)}))},_.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},_.diff=function(r,f,p){var m,h=this,g=T.p(f),_=w(r),v=(_.utcOffset()-this.utcOffset())*t,y=this-_,b=function(){return T.m(h,_)};switch(g){case d:m=b()/12;break;case l:m=b();break;case u:m=b()/3;break;case c:m=(y-v)/6048e5;break;case s:m=(y-v)/864e5;break;case o:m=y/n;break;case a:m=y/t;break;case i:m=y/e;break;default:m=y}return p?m:T.a(m)},_.daysInMonth=function(){return this.endOf(l).$D},_.$locale=function(){return b[this.$L]},_.locale=function(e,t){if(!e)return this.$L;var n=this.clone(),r=C(e,t,!0);return r&&(n.$L=r),n},_.clone=function(){return T.w(this.$d,this)},_.toDate=function(){return new Date(this.valueOf())},_.toJSON=function(){return this.isValid()?this.toISOString():null},_.toISOString=function(){return this.$d.toISOString()},_.toString=function(){return this.$d.toUTCString()},g}(),D=E.prototype;return w.prototype=D,[[`$ms`,r],[`$s`,i],[`$m`,a],[`$H`,o],[`$W`,s],[`$M`,l],[`$y`,d],[`$D`,f]].forEach((function(e){D[e[1]]=function(t){return this.$g(t,e[0],e[1])}})),w.extend=function(e,t){return e.$i||=(e(t,E,w),!0),w},w.locale=C,w.isDayjs=S,w.unix=function(e){return w(1e3*e)},w.en=b[y],w.Ls=b,w.p={},w}))})),be=o(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r(X()):typeof define==`function`&&define.amd?define([`dayjs`],r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs_locale_ko=r(n.dayjs)})(e,(function(e){"use strict";function t(e){return e&&typeof e==`object`&&`default`in e?e:{default:e}}var n=t(e),r={name:`ko`,weekdays:`일요일_월요일_화요일_수요일_목요일_금요일_토요일`.split(`_`),weekdaysShort:`일_월_화_수_목_금_토`.split(`_`),weekdaysMin:`일_월_화_수_목_금_토`.split(`_`),months:`1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월`.split(`_`),monthsShort:`1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월`.split(`_`),ordinal:function(e){return e+`일`},formats:{LT:`A h:mm`,LTS:`A h:mm:ss`,L:`YYYY.MM.DD.`,LL:`YYYY년 MMMM D일`,LLL:`YYYY년 MMMM D일 A h:mm`,LLLL:`YYYY년 MMMM D일 dddd A h:mm`,l:`YYYY.MM.DD.`,ll:`YYYY년 MMMM D일`,lll:`YYYY년 MMMM D일 A h:mm`,llll:`YYYY년 MMMM D일 dddd A h:mm`},meridiem:function(e){return e<12?`오전`:`오후`},relativeTime:{future:`%s 후`,past:`%s 전`,s:`몇 초`,m:`1분`,mm:`%d분`,h:`한 시간`,hh:`%d시간`,d:`하루`,dd:`%d일`,M:`한 달`,MM:`%d달`,y:`일 년`,yy:`%d년`}};return n.default.locale(r,null,!0),r}))})),xe=o(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs_locale_en=r()})(e,(function(){"use strict";return{name:`en`,weekdays:`Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday`.split(`_`),months:`January_February_March_April_May_June_July_August_September_October_November_December`.split(`_`),ordinal:function(e){var t=[`th`,`st`,`nd`,`rd`],n=e%100;return`[`+e+(t[(n-20)%10]||t[n]||t[0])+`]`}}}))})),Z=c(X(),1);be(),xe();function Q(e,t,n){let r=(0,Z.default)(e);return!e||!r.isValid()?``:r.format(n(t))}function Se(){let{t:e}=(0,f.useTranslation)();return(0,l.useMemo)(()=>({basicDateTimeFormat:(t,n)=>Q(t,n,e),dateTimeFormat:t=>Q(t,`libs:datetime.date_time_format`,e),dateFormat:t=>Q(t,`libs:datetime.date_format`,e),timeFormat:t=>Q(t,`libs:datetime.time_format`,e)}),[e])}function Ce(e){let t=(0,Z.default)(e);return t.isValid()?t.format(`YYYYMMDD`):``}function we(e){let t=(0,Z.default)(e);return t.isValid()?t.format(`HH:mm`):``}var $=e=>{let t=e?.split(`-`)[0]===`ko`?`ko`:`en`;Z.default.locale(t)};h.default.isInitialized&&$(h.default.resolvedLanguage||h.default.language),h.default.on(`languageChanged`,$);var Te=()=>({updateAt:(0,p.serverTimestamp)(),delete:!0}),Ee=()=>({updateAt:(0,p.serverTimestamp)(),delete:!1});function De(e){switch(e){case`auth/user-not-found`:return`libs:auth.errors.user_not_found`;case`auth/wrong-password`:return`libs:auth.errors.wrong_password`;case`auth/invalid-credential`:return`libs:auth.errors.invalid_credential`;case`auth/invalid-email`:return`libs:auth.errors.invalid_email`;case`auth/user-disabled`:return`libs:auth.errors.user_disabled`;case`auth/too-many-requests`:return`libs:auth.errors.too_many_requests`;case`auth/network-request-failed`:return`libs:auth.errors.network_request_failed`;case`auth/timeout`:return`libs:auth.errors.timeout`;case`auth/email-already-in-use`:return`libs:auth.errors.email_already_in_use`;case`auth/weak-password`:return`libs:auth.errors.weak_password`;case`auth/requires-recent-login`:return`libs:auth.errors.requires_recent_login`;case`auth/user-token-expired`:return`libs:auth.errors.user_token_expired`;case`auth/popup-blocked`:return`libs:auth.errors.popup_blocked`;case`auth/popup-closed-by-user`:return`libs:auth.errors.popup_closed_by_user`;case`auth/operation-not-allowed`:return`libs:auth.errors.operation_not_allowed`;case`auth/web-storage-unsupported`:return`libs:auth.errors.web_storage_unsupported`;case`auth/unauthorized-domain`:return`libs:auth.errors.unauthorized_domain`;default:return`libs:auth.errors.default`}}var Oe={auth:{errors:{invalid_credential:`이메일 또는 비밀번호를 다시 확인해 주세요.`,wrong_password:`이메일 또는 비밀번호를 다시 확인해 주세요.`,user_not_found:`입력한 정보와 일치하는 계정을 찾을 수 없어요.`,invalid_email:`이메일 형식을 확인해 주세요.`,email_already_in_use:`이미 가입된 이메일이에요. 로그인하거나 다른 이메일을 사용해 주세요.`,weak_password:`비밀번호는 6자 이상으로 입력해 주세요.`,user_disabled:`이 계정은 현재 사용할 수 없어요. 관리자에게 문의해 주세요.`,too_many_requests:`시도가 너무 많아요. 잠시 후 다시 시도해 주세요.`,network_request_failed:`인터넷 연결을 확인한 뒤 다시 시도해 주세요.`,timeout:`응답이 지연되고 있어요. 잠시 후 다시 시도해 주세요.`,requires_recent_login:`보안을 위해 다시 로그인해 주세요.`,user_token_expired:`로그인 시간이 만료되었어요. 다시 로그인해 주세요.`,operation_not_allowed:`현재 사용할 수 없는 로그인 방식이에요.`,account_exists_with_different_credential:`이미 다른 로그인 방식으로 가입된 이메일이에요. 기존 방식으로 로그인해 주세요.`,popup_blocked:`로그인 창이 차단되었어요. 팝업 허용 후 다시 시도해 주세요.`,popup_closed_by_user:`로그인 창이 닫혀서 로그인이 완료되지 않았어요.`,web_storage_unsupported:`현재 브라우저 설정에서는 로그인을 진행할 수 없어요.`,unauthorized_domain:`현재 접속한 도메인에서는 로그인을 사용할 수 없어요.`,internal_error:`문제가 발생했어요. 잠시 후 다시 시도해 주세요.`,default:`로그인 중 문제가 발생했어요. 잠시 후 다시 시도해 주세요.`}},unknown_error_occurred:`알 수 없는 오류가 발생했습니다.`,datetime:{date_format:`YYYY년 M월 D일`,date_time_format:`YYYY년 M월 D일 A h:mm:ss`,time_format:`A h:mm:ss`},add_assets:`애셋 추가`},ke={auth:{errors:{invalid_credential:`Please check your email or password.`,wrong_password:`Please check your email or password.`,user_not_found:`We couldn’t find an account matching that information.`,invalid_email:`Please check your email format.`,email_already_in_use:`This email is already registered. Sign in or use a different email.`,weak_password:`Your password must be at least 6 characters long.`,user_disabled:`This account is currently unavailable. Please contact support.`,too_many_requests:`Too many attempts. Please try again later.`,network_request_failed:`Check your internet connection and try again.`,timeout:`The request is taking too long. Please try again.`,requires_recent_login:`For security reasons, please sign in again.`,user_token_expired:`Your session has expired. Please sign in again.`,operation_not_allowed:`This sign-in method is currently unavailable.`,account_exists_with_different_credential:`This email is already linked to another sign-in method. Please use that method to sign in.`,popup_blocked:`The sign-in window was blocked. Please allow pop-ups and try again.`,popup_closed_by_user:`The sign-in window was closed before completion.`,web_storage_unsupported:`Sign-in is not available with your current browser settings.`,unauthorized_domain:`Sign-in is not available on this domain.`,internal_error:`Something went wrong. Please try again later.`,default:`We couldn’t complete the sign-in. Please try again later.`}},unknown_error_occurred:`Unknown error occurred.`,datetime:{date_format:`MMMM D, YYYY`,date_time_format:`MMMM D, YYYY h:mm:ss A`,time_format:`h:mm:ss A`},add_assets:`Add Assets`};function Ae(e){e.hasResourceBundle(`ko`,`libs`)||e.addResourceBundle(`ko`,`libs`,Oe,!0,!1),e.hasResourceBundle(`en`,`libs`)||e.addResourceBundle(`en`,`libs`,ke,!0,!1)}var je={Info:{Soft:{"--normal-bg":`color-mix(in oklab, light-dark(var(--color-sky-600), var(--color-sky-400)) 10%, var(--background))`,"--normal-text":`light-dark(var(--color-sky-600), var(--color-sky-400))`,"--normal-border":`light-dark(var(--color-sky-600), var(--color-sky-400))`},Outline:{"--normal-bg":`var(--background)`,"--normal-text":`light-dark(var(--color-sky-600), var(--color-sky-400))`,"--normal-border":`light-dark(var(--color-sky-600), var(--color-sky-400))`},Solid:{"--normal-bg":`light-dark(var(--color-sky-600), var(--color-sky-400))`,"--normal-text":`var(--color-white)`,"--normal-border":`light-dark(var(--color-sky-600), var(--color-sky-400))`}},Success:{Soft:{"--normal-bg":`color-mix(in oklab, light-dark(var(--color-green-600), var(--color-green-400)) 10%, var(--background))`,"--normal-text":`light-dark(var(--color-green-600), var(--color-green-400))`,"--normal-border":`light-dark(var(--color-green-600), var(--color-green-400))`},Outline:{"--normal-bg":`var(--background)`,"--normal-text":`light-dark(var(--color-green-600), var(--color-green-400))`,"--normal-border":`light-dark(var(--color-green-600), var(--color-green-400))`},Solid:{"--normal-bg":`light-dark(var(--color-green-600), var(--color-green-400))`,"--normal-text":`var(--color-white)`,"--normal-border":`light-dark(var(--color-green-600), var(--color-green-400))`}},Warning:{Soft:{"--normal-bg":`color-mix(in oklab, light-dark(var(--color-amber-600), var(--color-amber-400)) 10%, var(--background))`,"--normal-text":`light-dark(var(--color-amber-600), var(--color-amber-400))`,"--normal-border":`light-dark(var(--color-amber-600), var(--color-amber-400))`},Outline:{"--normal-bg":`var(--background)`,"--normal-text":`light-dark(var(--color-amber-600), var(--color-amber-400))`,"--normal-border":`light-dark(var(--color-amber-600), var(--color-amber-400))`},Solid:{"--normal-bg":`light-dark(var(--color-amber-600), var(--color-amber-400))`,"--normal-text":`var(--color-white)`,"--normal-border":`light-dark(var(--color-amber-600), var(--color-amber-400))`}},Destructive:{Soft:{"--normal-bg":`color-mix(in oklab, var(--destructive) 10%, var(--background))`,"--normal-text":`var(--destructive)`,"--normal-border":`var(--destructive)`},Outline:{"--normal-bg":`var(--background)`,"--normal-text":`var(--destructive)`,"--normal-border":`var(--destructive)`},Solid:{"--normal-bg":`light-dark(var(--destructive), color-mix(in oklab, var(--destructive) 60%, var(--background)))`,"--normal-text":`var(--color-white)`,"--normal-border":`transparent`}}};exports.CrossfadeImage=g,exports.ImageUploadField=ue,exports.ImageUploadItem=J,exports.ImageUploadSortableField=de,exports.SUPPORTED_LOCALES=q,exports.ToastCSS=je,exports.createZustandContext=ye,exports.dateIdFormat=Ce,exports.deleteItem=Te,exports.fetchItems=pe,exports.fetchItemsByOne=me,exports.getAuthErrorKey=De,exports.getPlatformType=ve,exports.getSnapshots=_e,exports.initIenlabI18n=Ae,exports.snapshotToData=fe,exports.time24Format=we,exports.undeleteItem=Ee,exports.useDateTimeFormatters=Se;
@@ -47,8 +47,46 @@ function O({ placeholder: e, src: t, onLoadError: r, ...o }) {
47
47
  }, "placeholder") });
48
48
  }
49
49
  //#endregion
50
- //#region src/types/localized.ts
51
- var k = ["ko", "en"], A = class {
50
+ //#region dist/my-library.es.js
51
+ var k = Object.create, A = Object.defineProperty, te = Object.getOwnPropertyDescriptor, j = Object.getOwnPropertyNames, M = Object.getPrototypeOf, N = Object.prototype.hasOwnProperty, P = (e, t) => () => (t || (e((t = { exports: {} }).exports, t), e = null), t.exports), ne = (e, t, n, r) => {
52
+ if (t && typeof t == "object" || typeof t == "function") for (var i = j(t), a = 0, o = i.length, s; a < o; a++) s = i[a], !N.call(e, s) && s !== n && A(e, s, {
53
+ get: ((e) => t[e]).bind(null, s),
54
+ enumerable: !(r = te(t, s)) || r.enumerable
55
+ });
56
+ return e;
57
+ }, re = (e, t, n) => (n = e == null ? {} : k(M(e)), ne(t || !e || !e.__esModule ? A(n, "default", {
58
+ value: e,
59
+ enumerable: !0
60
+ }) : n, e));
61
+ function ie({ placeholder: e, src: t, onLoadError: r, ...o }) {
62
+ let [l, u] = i(() => {
63
+ if (typeof window > "u" || !t) return !1;
64
+ let e = new Image();
65
+ return e.src = t, e.complete && e.naturalWidth > 0;
66
+ }), [d, f] = i(t);
67
+ return d !== t && (f(t), u(!1)), n(() => {
68
+ if (!t) return;
69
+ let e = new Image();
70
+ return e.src = t, e.onload = () => u(!0), e.onerror = (e) => {
71
+ r ? r(e) : console.error("CrossfadeImage: Failed to load image", t);
72
+ }, e.complete && e.naturalWidth > 0 && e.onload(new Event("load")), () => {
73
+ e.onload = null, e.onerror = null;
74
+ };
75
+ }, [t, r]), /* @__PURE__ */ c(a, { children: l && t ? /* @__PURE__ */ c(s.img, {
76
+ src: t,
77
+ ...o,
78
+ initial: { opacity: 0 },
79
+ animate: { opacity: 1 },
80
+ exit: { opacity: 0 },
81
+ style: { ...o.style }
82
+ }, "loaded-image") : /* @__PURE__ */ c(s.div, {
83
+ initial: { opacity: 1 },
84
+ transition: { duration: .3 },
85
+ style: { ...o.style },
86
+ children: e ?? /* @__PURE__ */ c("div", { className: "w-full h-full bg-sidebar" })
87
+ }, "placeholder") });
88
+ }
89
+ var ae = class {
52
90
  url = "";
53
91
  file = null;
54
92
  constructor(e = {}) {
@@ -60,120 +98,694 @@ var k = ["ko", "en"], A = class {
60
98
  revokeIfNeeded() {
61
99
  this.file && this.isBlobUrl() && URL.revokeObjectURL(this.url);
62
100
  }
63
- }, j = ({ children: e }) => /* @__PURE__ */ c("div", { children: e }), M = (e) => /* @__PURE__ */ c("label", { ...e }), N = ({ children: e }) => /* @__PURE__ */ c("p", { children: e }), P = (e) => /* @__PURE__ */ c("input", { ...e }), te = ({ children: e, ...t }) => /* @__PURE__ */ c("div", {
101
+ }, F = /* @__PURE__ */ P(((e, t) => {
102
+ (function(n, r) {
103
+ typeof e == "object" && t !== void 0 ? t.exports = r() : typeof define == "function" && define.amd ? define(r) : (n = typeof globalThis < "u" ? globalThis : n || self).dayjs = r();
104
+ })(e, (function() {
105
+ var e = 1e3, t = 6e4, n = 36e5, r = "millisecond", i = "second", a = "minute", o = "hour", s = "day", c = "week", l = "month", u = "quarter", d = "year", f = "date", p = "Invalid Date", m = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/, h = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g, g = {
106
+ name: "en",
107
+ weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),
108
+ months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"),
109
+ ordinal: function(e) {
110
+ var t = [
111
+ "th",
112
+ "st",
113
+ "nd",
114
+ "rd"
115
+ ], n = e % 100;
116
+ return "[" + e + (t[(n - 20) % 10] || t[n] || t[0]) + "]";
117
+ }
118
+ }, _ = function(e, t, n) {
119
+ var r = String(e);
120
+ return !r || r.length >= t ? e : "" + Array(t + 1 - r.length).join(n) + e;
121
+ }, v = {
122
+ s: _,
123
+ z: function(e) {
124
+ var t = -e.utcOffset(), n = Math.abs(t), r = Math.floor(n / 60), i = n % 60;
125
+ return (t <= 0 ? "+" : "-") + _(r, 2, "0") + ":" + _(i, 2, "0");
126
+ },
127
+ m: function e(t, n) {
128
+ if (t.date() < n.date()) return -e(n, t);
129
+ var r = 12 * (n.year() - t.year()) + (n.month() - t.month()), i = t.clone().add(r, l), a = n - i < 0, o = t.clone().add(r + (a ? -1 : 1), l);
130
+ return +(-(r + (n - i) / (a ? i - o : o - i)) || 0);
131
+ },
132
+ a: function(e) {
133
+ return e < 0 ? Math.ceil(e) || 0 : Math.floor(e);
134
+ },
135
+ p: function(e) {
136
+ return {
137
+ M: l,
138
+ y: d,
139
+ w: c,
140
+ d: s,
141
+ D: f,
142
+ h: o,
143
+ m: a,
144
+ s: i,
145
+ ms: r,
146
+ Q: u
147
+ }[e] || String(e || "").toLowerCase().replace(/s$/, "");
148
+ },
149
+ u: function(e) {
150
+ return e === void 0;
151
+ }
152
+ }, y = "en", b = {};
153
+ b[y] = g;
154
+ var x = "$isDayjsObject", S = function(e) {
155
+ return e instanceof E || !(!e || !e[x]);
156
+ }, C = function e(t, n, r) {
157
+ var i;
158
+ if (!t) return y;
159
+ if (typeof t == "string") {
160
+ var a = t.toLowerCase();
161
+ b[a] && (i = a), n && (b[a] = n, i = a);
162
+ var o = t.split("-");
163
+ if (!i && o.length > 1) return e(o[0]);
164
+ } else {
165
+ var s = t.name;
166
+ b[s] = t, i = s;
167
+ }
168
+ return !r && i && (y = i), i || !r && y;
169
+ }, w = function(e, t) {
170
+ if (S(e)) return e.clone();
171
+ var n = typeof t == "object" ? t : {};
172
+ return n.date = e, n.args = arguments, new E(n);
173
+ }, T = v;
174
+ T.l = C, T.i = S, T.w = function(e, t) {
175
+ return w(e, {
176
+ locale: t.$L,
177
+ utc: t.$u,
178
+ x: t.$x,
179
+ $offset: t.$offset
180
+ });
181
+ };
182
+ var E = function() {
183
+ function g(e) {
184
+ this.$L = C(e.locale, null, !0), this.parse(e), this.$x = this.$x || e.x || {}, this[x] = !0;
185
+ }
186
+ var _ = g.prototype;
187
+ return _.parse = function(e) {
188
+ this.$d = function(e) {
189
+ var t = e.date, n = e.utc;
190
+ if (t === null) return /* @__PURE__ */ new Date(NaN);
191
+ if (T.u(t)) return /* @__PURE__ */ new Date();
192
+ if (t instanceof Date) return new Date(t);
193
+ if (typeof t == "string" && !/Z$/i.test(t)) {
194
+ var r = t.match(m);
195
+ if (r) {
196
+ var i = r[2] - 1 || 0, a = (r[7] || "0").substring(0, 3);
197
+ return n ? new Date(Date.UTC(r[1], i, r[3] || 1, r[4] || 0, r[5] || 0, r[6] || 0, a)) : new Date(r[1], i, r[3] || 1, r[4] || 0, r[5] || 0, r[6] || 0, a);
198
+ }
199
+ }
200
+ return new Date(t);
201
+ }(e), this.init();
202
+ }, _.init = function() {
203
+ var e = this.$d;
204
+ this.$y = e.getFullYear(), this.$M = e.getMonth(), this.$D = e.getDate(), this.$W = e.getDay(), this.$H = e.getHours(), this.$m = e.getMinutes(), this.$s = e.getSeconds(), this.$ms = e.getMilliseconds();
205
+ }, _.$utils = function() {
206
+ return T;
207
+ }, _.isValid = function() {
208
+ return this.$d.toString() !== p;
209
+ }, _.isSame = function(e, t) {
210
+ var n = w(e);
211
+ return this.startOf(t) <= n && n <= this.endOf(t);
212
+ }, _.isAfter = function(e, t) {
213
+ return w(e) < this.startOf(t);
214
+ }, _.isBefore = function(e, t) {
215
+ return this.endOf(t) < w(e);
216
+ }, _.$g = function(e, t, n) {
217
+ return T.u(e) ? this[t] : this.set(n, e);
218
+ }, _.unix = function() {
219
+ return Math.floor(this.valueOf() / 1e3);
220
+ }, _.valueOf = function() {
221
+ return this.$d.getTime();
222
+ }, _.startOf = function(e, t) {
223
+ var n = this, r = !!T.u(t) || t, u = T.p(e), p = function(e, t) {
224
+ var i = T.w(n.$u ? Date.UTC(n.$y, t, e) : new Date(n.$y, t, e), n);
225
+ return r ? i : i.endOf(s);
226
+ }, m = function(e, t) {
227
+ return T.w(n.toDate()[e].apply(n.toDate("s"), (r ? [
228
+ 0,
229
+ 0,
230
+ 0,
231
+ 0
232
+ ] : [
233
+ 23,
234
+ 59,
235
+ 59,
236
+ 999
237
+ ]).slice(t)), n);
238
+ }, h = this.$W, g = this.$M, _ = this.$D, v = "set" + (this.$u ? "UTC" : "");
239
+ switch (u) {
240
+ case d: return r ? p(1, 0) : p(31, 11);
241
+ case l: return r ? p(1, g) : p(0, g + 1);
242
+ case c:
243
+ var y = this.$locale().weekStart || 0, b = (h < y ? h + 7 : h) - y;
244
+ return p(r ? _ - b : _ + (6 - b), g);
245
+ case s:
246
+ case f: return m(v + "Hours", 0);
247
+ case o: return m(v + "Minutes", 1);
248
+ case a: return m(v + "Seconds", 2);
249
+ case i: return m(v + "Milliseconds", 3);
250
+ default: return this.clone();
251
+ }
252
+ }, _.endOf = function(e) {
253
+ return this.startOf(e, !1);
254
+ }, _.$set = function(e, t) {
255
+ var n, c = T.p(e), u = "set" + (this.$u ? "UTC" : ""), p = (n = {}, n[s] = u + "Date", n[f] = u + "Date", n[l] = u + "Month", n[d] = u + "FullYear", n[o] = u + "Hours", n[a] = u + "Minutes", n[i] = u + "Seconds", n[r] = u + "Milliseconds", n)[c], m = c === s ? this.$D + (t - this.$W) : t;
256
+ if (c === l || c === d) {
257
+ var h = this.clone().set(f, 1);
258
+ h.$d[p](m), h.init(), this.$d = h.set(f, Math.min(this.$D, h.daysInMonth())).$d;
259
+ } else p && this.$d[p](m);
260
+ return this.init(), this;
261
+ }, _.set = function(e, t) {
262
+ return this.clone().$set(e, t);
263
+ }, _.get = function(e) {
264
+ return this[T.p(e)]();
265
+ }, _.add = function(r, u) {
266
+ var f, p = this;
267
+ r = Number(r);
268
+ var m = T.p(u), h = function(e) {
269
+ var t = w(p);
270
+ return T.w(t.date(t.date() + Math.round(e * r)), p);
271
+ };
272
+ if (m === l) return this.set(l, this.$M + r);
273
+ if (m === d) return this.set(d, this.$y + r);
274
+ if (m === s) return h(1);
275
+ if (m === c) return h(7);
276
+ var g = (f = {}, f[a] = t, f[o] = n, f[i] = e, f)[m] || 1, _ = this.$d.getTime() + r * g;
277
+ return T.w(_, this);
278
+ }, _.subtract = function(e, t) {
279
+ return this.add(-1 * e, t);
280
+ }, _.format = function(e) {
281
+ var t = this, n = this.$locale();
282
+ if (!this.isValid()) return n.invalidDate || p;
283
+ var r = e || "YYYY-MM-DDTHH:mm:ssZ", i = T.z(this), a = this.$H, o = this.$m, s = this.$M, c = n.weekdays, l = n.months, u = n.meridiem, d = function(e, n, i, a) {
284
+ return e && (e[n] || e(t, r)) || i[n].slice(0, a);
285
+ }, f = function(e) {
286
+ return T.s(a % 12 || 12, e, "0");
287
+ }, m = u || function(e, t, n) {
288
+ var r = e < 12 ? "AM" : "PM";
289
+ return n ? r.toLowerCase() : r;
290
+ };
291
+ return r.replace(h, (function(e, r) {
292
+ return r || function(e) {
293
+ switch (e) {
294
+ case "YY": return String(t.$y).slice(-2);
295
+ case "YYYY": return T.s(t.$y, 4, "0");
296
+ case "M": return s + 1;
297
+ case "MM": return T.s(s + 1, 2, "0");
298
+ case "MMM": return d(n.monthsShort, s, l, 3);
299
+ case "MMMM": return d(l, s);
300
+ case "D": return t.$D;
301
+ case "DD": return T.s(t.$D, 2, "0");
302
+ case "d": return String(t.$W);
303
+ case "dd": return d(n.weekdaysMin, t.$W, c, 2);
304
+ case "ddd": return d(n.weekdaysShort, t.$W, c, 3);
305
+ case "dddd": return c[t.$W];
306
+ case "H": return String(a);
307
+ case "HH": return T.s(a, 2, "0");
308
+ case "h": return f(1);
309
+ case "hh": return f(2);
310
+ case "a": return m(a, o, !0);
311
+ case "A": return m(a, o, !1);
312
+ case "m": return String(o);
313
+ case "mm": return T.s(o, 2, "0");
314
+ case "s": return String(t.$s);
315
+ case "ss": return T.s(t.$s, 2, "0");
316
+ case "SSS": return T.s(t.$ms, 3, "0");
317
+ case "Z": return i;
318
+ }
319
+ return null;
320
+ }(e) || i.replace(":", "");
321
+ }));
322
+ }, _.utcOffset = function() {
323
+ return 15 * -Math.round(this.$d.getTimezoneOffset() / 15);
324
+ }, _.diff = function(r, f, p) {
325
+ var m, h = this, g = T.p(f), _ = w(r), v = (_.utcOffset() - this.utcOffset()) * t, y = this - _, b = function() {
326
+ return T.m(h, _);
327
+ };
328
+ switch (g) {
329
+ case d:
330
+ m = b() / 12;
331
+ break;
332
+ case l:
333
+ m = b();
334
+ break;
335
+ case u:
336
+ m = b() / 3;
337
+ break;
338
+ case c:
339
+ m = (y - v) / 6048e5;
340
+ break;
341
+ case s:
342
+ m = (y - v) / 864e5;
343
+ break;
344
+ case o:
345
+ m = y / n;
346
+ break;
347
+ case a:
348
+ m = y / t;
349
+ break;
350
+ case i:
351
+ m = y / e;
352
+ break;
353
+ default: m = y;
354
+ }
355
+ return p ? m : T.a(m);
356
+ }, _.daysInMonth = function() {
357
+ return this.endOf(l).$D;
358
+ }, _.$locale = function() {
359
+ return b[this.$L];
360
+ }, _.locale = function(e, t) {
361
+ if (!e) return this.$L;
362
+ var n = this.clone(), r = C(e, t, !0);
363
+ return r && (n.$L = r), n;
364
+ }, _.clone = function() {
365
+ return T.w(this.$d, this);
366
+ }, _.toDate = function() {
367
+ return new Date(this.valueOf());
368
+ }, _.toJSON = function() {
369
+ return this.isValid() ? this.toISOString() : null;
370
+ }, _.toISOString = function() {
371
+ return this.$d.toISOString();
372
+ }, _.toString = function() {
373
+ return this.$d.toUTCString();
374
+ }, g;
375
+ }(), D = E.prototype;
376
+ return w.prototype = D, [
377
+ ["$ms", r],
378
+ ["$s", i],
379
+ ["$m", a],
380
+ ["$H", o],
381
+ ["$W", s],
382
+ ["$M", l],
383
+ ["$y", d],
384
+ ["$D", f]
385
+ ].forEach((function(e) {
386
+ D[e[1]] = function(t) {
387
+ return this.$g(t, e[0], e[1]);
388
+ };
389
+ })), w.extend = function(e, t) {
390
+ return e.$i ||= (e(t, E, w), !0), w;
391
+ }, w.locale = C, w.isDayjs = S, w.unix = function(e) {
392
+ return w(1e3 * e);
393
+ }, w.en = b[y], w.Ls = b, w.p = {}, w;
394
+ }));
395
+ })), oe = /* @__PURE__ */ P(((e, t) => {
396
+ (function(n, r) {
397
+ typeof e == "object" && t !== void 0 ? t.exports = r(F()) : typeof define == "function" && define.amd ? define(["dayjs"], r) : (n = typeof globalThis < "u" ? globalThis : n || self).dayjs_locale_ko = r(n.dayjs);
398
+ })(e, (function(e) {
399
+ function t(e) {
400
+ return e && typeof e == "object" && "default" in e ? e : { default: e };
401
+ }
402
+ var n = t(e), r = {
403
+ name: "ko",
404
+ weekdays: "일요일_월요일_화요일_수요일_목요일_금요일_토요일".split("_"),
405
+ weekdaysShort: "일_월_화_수_목_금_토".split("_"),
406
+ weekdaysMin: "일_월_화_수_목_금_토".split("_"),
407
+ months: "1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),
408
+ monthsShort: "1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),
409
+ ordinal: function(e) {
410
+ return e + "일";
411
+ },
412
+ formats: {
413
+ LT: "A h:mm",
414
+ LTS: "A h:mm:ss",
415
+ L: "YYYY.MM.DD.",
416
+ LL: "YYYY년 MMMM D일",
417
+ LLL: "YYYY년 MMMM D일 A h:mm",
418
+ LLLL: "YYYY년 MMMM D일 dddd A h:mm",
419
+ l: "YYYY.MM.DD.",
420
+ ll: "YYYY년 MMMM D일",
421
+ lll: "YYYY년 MMMM D일 A h:mm",
422
+ llll: "YYYY년 MMMM D일 dddd A h:mm"
423
+ },
424
+ meridiem: function(e) {
425
+ return e < 12 ? "오전" : "오후";
426
+ },
427
+ relativeTime: {
428
+ future: "%s 후",
429
+ past: "%s 전",
430
+ s: "몇 초",
431
+ m: "1분",
432
+ mm: "%d분",
433
+ h: "한 시간",
434
+ hh: "%d시간",
435
+ d: "하루",
436
+ dd: "%d일",
437
+ M: "한 달",
438
+ MM: "%d달",
439
+ y: "일 년",
440
+ yy: "%d년"
441
+ }
442
+ };
443
+ return n.default.locale(r, null, !0), r;
444
+ }));
445
+ })), se = /* @__PURE__ */ P(((e, t) => {
446
+ (function(n, r) {
447
+ typeof e == "object" && t !== void 0 ? t.exports = r() : typeof define == "function" && define.amd ? define(r) : (n = typeof globalThis < "u" ? globalThis : n || self).dayjs_locale_en = r();
448
+ })(e, (function() {
449
+ return {
450
+ name: "en",
451
+ weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),
452
+ months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"),
453
+ ordinal: function(e) {
454
+ var t = [
455
+ "th",
456
+ "st",
457
+ "nd",
458
+ "rd"
459
+ ], n = e % 100;
460
+ return "[" + e + (t[(n - 20) % 10] || t[n] || t[0]) + "]";
461
+ }
462
+ };
463
+ }));
464
+ })), ce = /* @__PURE__ */ re(F(), 1);
465
+ oe(), se();
466
+ var I = (e) => {
467
+ let t = e?.split("-")[0] === "ko" ? "ko" : "en";
468
+ ce.default.locale(t);
469
+ };
470
+ y.isInitialized && I(y.resolvedLanguage || y.language), y.on("languageChanged", I);
471
+ //#endregion
472
+ //#region src/types/image.tsx
473
+ var L = ({ children: e }) => /* @__PURE__ */ c("div", { children: e }), R = (e) => /* @__PURE__ */ c("label", { ...e }), z = ({ children: e }) => /* @__PURE__ */ c("p", { children: e }), B = (e) => /* @__PURE__ */ c("input", { ...e }), V = ({ children: e, ...t }) => /* @__PURE__ */ c("div", {
64
474
  ...t,
65
475
  children: e
66
- }), ne = (e) => null, re = ({ children: e, ...t }) => /* @__PURE__ */ c("div", {
476
+ }), H = (e) => null, U = ({ children: e, ...t }) => /* @__PURE__ */ c("div", {
67
477
  ...t,
68
478
  children: e
69
- }), F = ({ children: e, type: t = "button", ...n }) => /* @__PURE__ */ c("button", {
479
+ }), W = ({ children: e, type: t = "button", ...n }) => /* @__PURE__ */ c("button", {
70
480
  type: t,
71
481
  ...n,
72
482
  children: e
73
- }), I = ({ className: e }) => /* @__PURE__ */ c("span", {
483
+ }), G = ({ className: e }) => /* @__PURE__ */ c("span", {
74
484
  className: e,
75
485
  children: "×"
76
- });
77
- //#endregion
78
- //#region src/components/image/ImageUploadField.tsx
79
- function L({ id: e, label: t, uploadHintText: n, descriptionText: r, value: i, onChange: a, aspectRatio: o = "1 / 1", accept: s = "image/*", components: d }) {
80
- let { t: f } = u(), p = d?.Field ?? j, m = d?.FieldLabel ?? M, h = d?.FieldDescription ?? N, g = d?.Input ?? P;
486
+ }), K = {
487
+ wrapper: {
488
+ display: "flex",
489
+ flexDirection: "column",
490
+ gap: "1rem"
491
+ },
492
+ trigger: {
493
+ display: "block",
494
+ cursor: "pointer"
495
+ },
496
+ card: {
497
+ position: "relative",
498
+ overflow: "hidden",
499
+ borderRadius: "1.5rem",
500
+ border: "1px solid #e5e7eb",
501
+ backgroundColor: "#ffffff",
502
+ transition: "background-color 160ms ease, box-shadow 160ms ease"
503
+ },
504
+ frame: {
505
+ position: "relative",
506
+ width: "100%",
507
+ aspectRatio: "16 / 9"
508
+ },
509
+ imageLayer: {
510
+ position: "absolute",
511
+ inset: 0,
512
+ padding: "1.5rem"
513
+ },
514
+ imageBox: {
515
+ margin: "0 auto",
516
+ maxWidth: "100%",
517
+ maxHeight: "100%"
518
+ },
519
+ image: {
520
+ width: "100%",
521
+ height: "100%",
522
+ objectFit: "cover",
523
+ display: "block"
524
+ },
525
+ empty: {
526
+ display: "flex",
527
+ width: "100%",
528
+ height: "100%",
529
+ flexDirection: "column",
530
+ alignItems: "center",
531
+ justifyContent: "center",
532
+ gap: "1rem",
533
+ color: "#6b7280",
534
+ textAlign: "center",
535
+ padding: "1rem",
536
+ boxSizing: "border-box"
537
+ },
538
+ badge: {
539
+ borderRadius: "1rem",
540
+ backgroundColor: "#f3f4f6",
541
+ padding: "0.75rem 1rem",
542
+ fontSize: "0.875rem",
543
+ lineHeight: 1.2,
544
+ color: "#111827"
545
+ },
546
+ hint: {
547
+ margin: 0,
548
+ fontSize: "0.875rem",
549
+ lineHeight: 1.4
550
+ },
551
+ overlay: {
552
+ pointerEvents: "none",
553
+ position: "absolute",
554
+ inset: 0,
555
+ borderRadius: "inherit",
556
+ boxShadow: "inset 0 0 0 0 rgba(59, 130, 246, 0)",
557
+ transition: "box-shadow 160ms ease"
558
+ }
559
+ };
560
+ function le({ id: e, label: t, uploadHintText: n, descriptionText: r, value: i, onChange: a, aspectRatio: o = "1 / 1", accept: s = "image/*", components: d }) {
561
+ let { t: f } = u(), p = d?.Field ?? L, m = d?.FieldLabel ?? R, h = d?.FieldDescription ?? z, g = d?.Input ?? B, _ = {
562
+ ...K.imageBox,
563
+ aspectRatio: o
564
+ };
81
565
  return /* @__PURE__ */ l(p, { children: [/* @__PURE__ */ c(m, {
82
566
  htmlFor: e,
83
567
  children: t
84
568
  }), /* @__PURE__ */ l("div", {
85
- className: "iu-field",
569
+ style: K.wrapper,
86
570
  children: [
87
571
  /* @__PURE__ */ c("label", {
88
572
  htmlFor: e,
89
- className: "iu-trigger",
573
+ style: K.trigger,
574
+ onMouseEnter: (e) => {
575
+ let t = e.currentTarget.firstElementChild, n = t?.lastElementChild;
576
+ t && (t.style.backgroundColor = "#f9fafb"), n && (n.style.boxShadow = "inset 0 0 0 2px rgba(59, 130, 246, 0.16)");
577
+ },
578
+ onMouseLeave: (e) => {
579
+ let t = e.currentTarget.firstElementChild, n = t?.lastElementChild;
580
+ t && (t.style.backgroundColor = "#ffffff"), n && (n.style.boxShadow = "inset 0 0 0 0 rgba(59, 130, 246, 0)");
581
+ },
90
582
  children: /* @__PURE__ */ l("div", {
91
- className: "iu-card",
583
+ style: K.card,
92
584
  children: [/* @__PURE__ */ c("div", {
93
- className: "iu-frame",
585
+ style: K.frame,
94
586
  children: i.url ? /* @__PURE__ */ c("div", {
95
- className: "iu-image-layer",
587
+ style: K.imageLayer,
96
588
  children: /* @__PURE__ */ c("div", {
97
- className: "iu-image-box",
98
- style: { aspectRatio: o },
99
- children: /* @__PURE__ */ c(O, {
589
+ style: _,
590
+ children: /* @__PURE__ */ c(ie, {
100
591
  src: i.url,
101
- className: "iu-image",
102
- alt: t
592
+ className: "",
593
+ style: K.image
103
594
  })
104
595
  })
105
596
  }) : /* @__PURE__ */ l("div", {
106
- className: "iu-empty",
597
+ style: K.empty,
107
598
  children: [/* @__PURE__ */ c("div", {
108
- className: "iu-badge",
599
+ style: K.badge,
109
600
  children: f("libs:add_assets")
110
601
  }), /* @__PURE__ */ c("p", {
111
- className: "iu-hint",
602
+ style: K.hint,
112
603
  children: n
113
604
  })]
114
605
  })
115
- }), /* @__PURE__ */ c("div", { className: "iu-overlay" })]
606
+ }), /* @__PURE__ */ c("div", { style: K.overlay })]
116
607
  })
117
608
  }),
118
609
  /* @__PURE__ */ c(g, {
119
610
  id: e,
120
611
  type: "file",
121
612
  accept: s,
122
- className: "iu-hidden-input",
123
613
  onChange: (e) => {
124
614
  let t = e.target.files?.[0];
125
- t && (i.revokeIfNeeded(), a(new A({
615
+ t && (i.revokeIfNeeded(), a(new ae({
126
616
  file: t,
127
617
  url: URL.createObjectURL(t)
128
618
  })), e.currentTarget.value = "");
129
- }
619
+ },
620
+ style: { display: "none" }
130
621
  }),
131
622
  /* @__PURE__ */ c(h, { children: r })
132
623
  ]
133
624
  })] });
134
625
  }
135
626
  //#endregion
136
- //#region src/components/image/ImageUploadSortableField.tsx
137
- function R({ id: e, label: t, descriptionText: n, uploadHintText: r, items: i, onChange: a, aspectRatio: s = "1 / 1", accept: d = "image/*", components: f }) {
138
- let { t: p } = u(), m = f?.Field ?? j, h = f?.FieldLabel ?? M, g = f?.FieldDescription ?? N, _ = f?.Input ?? P, v = f?.ScrollArea ?? te, y = f?.ScrollBar ?? ne, b = f?.Card ?? re, x = f?.Button ?? F, S = f?.CloseIcon ?? I, C = (e) => {
627
+ //#region src/types/localized.ts
628
+ var ue = ["ko", "en"], q = class {
629
+ url = "";
630
+ file = null;
631
+ constructor(e = {}) {
632
+ Object.assign(this, e);
633
+ }
634
+ isBlobUrl() {
635
+ return this.url.startsWith("blob:");
636
+ }
637
+ revokeIfNeeded() {
638
+ this.file && this.isBlobUrl() && URL.revokeObjectURL(this.url);
639
+ }
640
+ }, J = {
641
+ wrapper: {
642
+ display: "flex",
643
+ flexDirection: "column",
644
+ gap: "0.75rem"
645
+ },
646
+ outerBox: {
647
+ borderRadius: "1.5rem",
648
+ border: "1px solid #e5e7eb",
649
+ backgroundColor: "#ffffff",
650
+ overflow: "hidden"
651
+ },
652
+ scrollArea: {
653
+ width: "100%",
654
+ overflowX: "auto",
655
+ overflowY: "hidden",
656
+ whiteSpace: "nowrap"
657
+ },
658
+ list: {
659
+ display: "flex",
660
+ width: "max-content",
661
+ gap: "1rem",
662
+ padding: "1rem"
663
+ },
664
+ item: {
665
+ position: "relative",
666
+ flexShrink: 0
667
+ },
668
+ card: {
669
+ position: "relative",
670
+ width: "15rem",
671
+ overflow: "hidden",
672
+ borderRadius: "0.75rem",
673
+ padding: 0,
674
+ backgroundColor: "#ffffff",
675
+ border: "1px solid #e5e7eb",
676
+ boxSizing: "border-box"
677
+ },
678
+ cardInner: {
679
+ position: "relative",
680
+ width: "100%",
681
+ height: "100%"
682
+ },
683
+ image: {
684
+ width: "100%",
685
+ height: "100%",
686
+ objectFit: "cover",
687
+ display: "block"
688
+ },
689
+ removeButton: {
690
+ position: "absolute",
691
+ right: "1rem",
692
+ bottom: "1rem",
693
+ borderRadius: "9999px",
694
+ boxShadow: "0 1px 3px rgba(0, 0, 0, 0.12)"
695
+ },
696
+ uploadLabel: {
697
+ display: "block",
698
+ flexShrink: 0,
699
+ cursor: "pointer"
700
+ },
701
+ uploadCard: {
702
+ width: "15rem",
703
+ overflow: "hidden",
704
+ borderRadius: "0.75rem",
705
+ padding: 0,
706
+ border: "1px dashed #d1d5db",
707
+ backgroundColor: "#ffffff",
708
+ boxSizing: "border-box",
709
+ transition: "background-color 160ms ease"
710
+ },
711
+ uploadCardInner: {
712
+ display: "flex",
713
+ width: "100%",
714
+ height: "100%",
715
+ flexDirection: "column",
716
+ alignItems: "center",
717
+ justifyContent: "center",
718
+ gap: "1rem",
719
+ color: "#6b7280",
720
+ textAlign: "center",
721
+ padding: "1rem",
722
+ boxSizing: "border-box"
723
+ },
724
+ badge: {
725
+ borderRadius: "1rem",
726
+ backgroundColor: "#f3f4f6",
727
+ padding: "0.75rem 1rem",
728
+ fontSize: "0.875rem",
729
+ lineHeight: 1.2,
730
+ color: "#111827"
731
+ },
732
+ hint: {
733
+ margin: 0,
734
+ fontSize: "0.875rem",
735
+ lineHeight: 1.4
736
+ },
737
+ description: { marginTop: "0.25rem" },
738
+ hiddenInput: { display: "none" },
739
+ scrollBar: {
740
+ marginLeft: "1rem",
741
+ marginRight: "1rem"
742
+ }
743
+ };
744
+ function de({ id: e, label: t, descriptionText: n, uploadHintText: r, items: i, onChange: a, aspectRatio: s = "1 / 1", accept: d = "image/*", components: f }) {
745
+ let { t: p } = u(), m = f?.Field ?? L, h = f?.FieldLabel ?? R, g = f?.FieldDescription ?? z, _ = f?.Input ?? B, v = f?.ScrollArea ?? V, y = f?.ScrollBar ?? H, b = f?.Card ?? U, x = f?.Button ?? W, S = f?.CloseIcon ?? G, C = (e) => {
139
746
  e.revokeIfNeeded(), a(i.filter((t) => t !== e));
140
747
  }, w = (e) => {
141
- !e || e.length === 0 || a([...i, ...Array.from(e).map((e) => new A({
748
+ !e || e.length === 0 || a([...i, ...Array.from(e).map((e) => new q({
142
749
  file: e,
143
750
  url: URL.createObjectURL(e)
144
751
  }))]);
145
- }, T = { aspectRatio: s };
752
+ }, T = {
753
+ ...J.card,
754
+ aspectRatio: s
755
+ }, E = {
756
+ ...J.uploadCard,
757
+ aspectRatio: s
758
+ };
146
759
  return /* @__PURE__ */ l(m, { children: [/* @__PURE__ */ c(h, {
147
760
  htmlFor: e,
148
761
  children: t
149
762
  }), /* @__PURE__ */ l("div", {
150
- className: "iusf-field",
763
+ style: J.wrapper,
151
764
  children: [/* @__PURE__ */ l("div", {
152
- className: "iusf-container",
765
+ style: J.outerBox,
153
766
  children: [/* @__PURE__ */ l(v, {
154
- className: "iusf-scroll-area",
767
+ style: J.scrollArea,
155
768
  children: [/* @__PURE__ */ l(o.Group, {
156
769
  axis: "x",
157
770
  values: i,
158
771
  onReorder: a,
159
772
  layoutScroll: !0,
160
- className: "iusf-list",
773
+ style: J.list,
161
774
  children: [i.map((e) => /* @__PURE__ */ c(o.Item, {
162
775
  value: e,
163
- className: "iusf-item",
776
+ style: J.item,
164
777
  children: /* @__PURE__ */ c(b, {
165
- className: "iusf-card",
166
778
  style: T,
167
779
  children: /* @__PURE__ */ l("div", {
168
- className: "iusf-card-inner",
780
+ style: J.cardInner,
169
781
  children: [/* @__PURE__ */ c(O, {
170
782
  src: e.url,
171
- className: "iusf-image",
172
- draggable: !1,
173
- alt: t
783
+ className: "",
784
+ style: J.image,
785
+ draggable: !1
174
786
  }), /* @__PURE__ */ c(x, {
175
787
  type: "button",
176
- className: "iusf-remove-button",
788
+ style: J.removeButton,
177
789
  onClick: () => C(e),
178
790
  children: /* @__PURE__ */ c(S, {})
179
791
  })]
@@ -181,17 +793,22 @@ function R({ id: e, label: t, descriptionText: n, uploadHintText: r, items: i, o
181
793
  })
182
794
  }, e.url)), /* @__PURE__ */ c("label", {
183
795
  htmlFor: e,
184
- className: "iusf-upload-trigger",
796
+ style: J.uploadLabel,
185
797
  children: /* @__PURE__ */ c(b, {
186
- className: "iusf-upload-card",
187
- style: T,
798
+ style: E,
799
+ onMouseEnter: (e) => {
800
+ e.currentTarget.style.backgroundColor = "#f9fafb";
801
+ },
802
+ onMouseLeave: (e) => {
803
+ e.currentTarget.style.backgroundColor = "#ffffff";
804
+ },
188
805
  children: /* @__PURE__ */ l("div", {
189
- className: "iusf-upload-inner",
806
+ style: J.uploadCardInner,
190
807
  children: [/* @__PURE__ */ c("div", {
191
- className: "iu-badge",
808
+ style: J.badge,
192
809
  children: p("libs:add_assets")
193
810
  }), /* @__PURE__ */ c("p", {
194
- className: "iu-hint",
811
+ style: J.hint,
195
812
  children: r
196
813
  })]
197
814
  })
@@ -199,30 +816,33 @@ function R({ id: e, label: t, descriptionText: n, uploadHintText: r, items: i, o
199
816
  })]
200
817
  }), /* @__PURE__ */ c(y, {
201
818
  orientation: "horizontal",
202
- className: "iusf-scrollbar"
819
+ style: J.scrollBar
203
820
  })]
204
821
  }), /* @__PURE__ */ c(_, {
205
822
  id: e,
206
823
  type: "file",
207
824
  accept: d,
208
825
  multiple: !0,
209
- className: "iu-hidden-input",
210
826
  onChange: (e) => {
211
827
  w(e.target.files), e.currentTarget.value = "";
212
- }
828
+ },
829
+ style: J.hiddenInput
213
830
  })]
214
- }), /* @__PURE__ */ c(g, { children: n })]
831
+ }), /* @__PURE__ */ c("div", {
832
+ style: J.description,
833
+ children: /* @__PURE__ */ c(g, { children: n })
834
+ })]
215
835
  })] });
216
836
  }
217
837
  //#endregion
218
838
  //#region src/utils/firestore.ts
219
- function z(e) {
839
+ function fe(e) {
220
840
  return {
221
841
  ...e.data(),
222
842
  id: e.id
223
843
  };
224
844
  }
225
- async function B(e, t, n, r) {
845
+ async function pe(e, t, n, r) {
226
846
  let i = r.filter((e) => !!(e && !n.has(e.path)));
227
847
  for (let r = 0; r < i.length; r += 30) {
228
848
  let a = i.slice(r, r + 30);
@@ -232,47 +852,39 @@ async function B(e, t, n, r) {
232
852
  });
233
853
  }
234
854
  }
235
- async function V(e, t, n) {
855
+ async function me(e, t, n) {
236
856
  let r = n.filter((e) => !!(e && !t.has(e.path)));
237
857
  await Promise.all(r.map(async (n) => {
238
858
  let r = e(await f(n));
239
859
  t.set(n.path, r);
240
860
  }));
241
861
  }
242
- function H(e = {}) {
862
+ function he(e = {}) {
243
863
  let { cache: t = !0, includeMetadataChanges: n } = e;
244
864
  return {
245
865
  listenOptions: { includeMetadataChanges: n ?? !t },
246
866
  cache: t
247
867
  };
248
868
  }
249
- function U(e, t) {
869
+ function ge(e, t) {
250
870
  return t !== !1 || !e;
251
871
  }
252
- function W(e, t, n = {}) {
253
- let { listenOptions: r, cache: i } = H(n), { onError: a } = n;
872
+ function _e(e, t, n = {}) {
873
+ let { listenOptions: r, cache: i } = he(n), { onError: a } = n;
254
874
  return e.type, m(e, r, (e) => {
255
- U(e.metadata.fromCache, i) && t(e);
875
+ ge(e.metadata.fromCache, i) && t(e);
256
876
  }, a);
257
877
  }
258
878
  //#endregion
259
- //#region src/utils/array.ts
260
- Array.prototype.mapNotNull = function(e) {
261
- return this.flatMap((t, n) => {
262
- let r = e(t, n);
263
- return r == null ? [] : [r];
264
- });
265
- };
266
- //#endregion
267
879
  //#region src/utils/platform.ts
268
- function G() {
880
+ function ve() {
269
881
  if (typeof window > "u") return "pc";
270
882
  let e = navigator.userAgent, t = navigator.platform, n = /Android/i.test(e), r = /iPhone|iPad|iPod/i.test(e) || t === "MacIntel" && navigator.maxTouchPoints > 1;
271
883
  return n ? "android" : r ? "ios" : "pc";
272
884
  }
273
885
  //#endregion
274
886
  //#region src/utils/zustand.tsx
275
- function K(n) {
887
+ function ye(n) {
276
888
  let r = e(null);
277
889
  function a({ children: e, ...t }) {
278
890
  let [a] = i(() => n(t));
@@ -295,7 +907,7 @@ function K(n) {
295
907
  }
296
908
  //#endregion
297
909
  //#region node_modules/dayjs/dayjs.min.js
298
- var q = /* @__PURE__ */ E(((e, t) => {
910
+ var Y = /* @__PURE__ */ E(((e, t) => {
299
911
  (function(n, r) {
300
912
  typeof e == "object" && t !== void 0 ? t.exports = r() : typeof define == "function" && define.amd ? define(r) : (n = typeof globalThis < "u" ? globalThis : n || self).dayjs = r();
301
913
  })(e, (function() {
@@ -589,9 +1201,9 @@ var q = /* @__PURE__ */ E(((e, t) => {
589
1201
  return w(1e3 * e);
590
1202
  }, w.en = b[y], w.Ls = b, w.p = {}, w;
591
1203
  }));
592
- })), J = /* @__PURE__ */ E(((e, t) => {
1204
+ })), be = /* @__PURE__ */ E(((e, t) => {
593
1205
  (function(n, r) {
594
- typeof e == "object" && t !== void 0 ? t.exports = r(q()) : typeof define == "function" && define.amd ? define(["dayjs"], r) : (n = typeof globalThis < "u" ? globalThis : n || self).dayjs_locale_ko = r(n.dayjs);
1206
+ typeof e == "object" && t !== void 0 ? t.exports = r(Y()) : typeof define == "function" && define.amd ? define(["dayjs"], r) : (n = typeof globalThis < "u" ? globalThis : n || self).dayjs_locale_ko = r(n.dayjs);
595
1207
  })(e, (function(e) {
596
1208
  function t(e) {
597
1209
  return e && typeof e == "object" && "default" in e ? e : { default: e };
@@ -639,7 +1251,7 @@ var q = /* @__PURE__ */ E(((e, t) => {
639
1251
  };
640
1252
  return n.default.locale(r, null, !0), r;
641
1253
  }));
642
- })), Y = /* @__PURE__ */ E(((e, t) => {
1254
+ })), xe = /* @__PURE__ */ E(((e, t) => {
643
1255
  (function(n, r) {
644
1256
  typeof e == "object" && t !== void 0 ? t.exports = r() : typeof define == "function" && define.amd ? define(r) : (n = typeof globalThis < "u" ? globalThis : n || self).dayjs_locale_en = r();
645
1257
  })(e, (function() {
@@ -658,13 +1270,13 @@ var q = /* @__PURE__ */ E(((e, t) => {
658
1270
  }
659
1271
  };
660
1272
  }));
661
- })), X = /* @__PURE__ */ ee(q(), 1);
662
- J(), Y();
1273
+ })), X = /* @__PURE__ */ ee(Y(), 1);
1274
+ be(), xe();
663
1275
  function Z(e, t, n) {
664
1276
  let r = (0, X.default)(e);
665
1277
  return !e || !r.isValid() ? "" : r.format(n(t));
666
1278
  }
667
- function ie() {
1279
+ function Q() {
668
1280
  let { t: e } = u();
669
1281
  return r(() => ({
670
1282
  basicDateTimeFormat: (t, n) => Z(t, n, e),
@@ -673,31 +1285,31 @@ function ie() {
673
1285
  timeFormat: (t) => Z(t, "libs:datetime.time_format", e)
674
1286
  }), [e]);
675
1287
  }
676
- function ae(e) {
1288
+ function Se(e) {
677
1289
  let t = (0, X.default)(e);
678
1290
  return t.isValid() ? t.format("YYYYMMDD") : "";
679
1291
  }
680
- function oe(e) {
1292
+ function Ce(e) {
681
1293
  let t = (0, X.default)(e);
682
1294
  return t.isValid() ? t.format("HH:mm") : "";
683
1295
  }
684
- var Q = (e) => {
1296
+ var $ = (e) => {
685
1297
  let t = e?.split("-")[0] === "ko" ? "ko" : "en";
686
1298
  X.default.locale(t);
687
1299
  };
688
- y.isInitialized && Q(y.resolvedLanguage || y.language), y.on("languageChanged", Q);
1300
+ y.isInitialized && $(y.resolvedLanguage || y.language), y.on("languageChanged", $);
689
1301
  //#endregion
690
1302
  //#region src/constant/firestore.ts
691
- var $ = () => ({
1303
+ var we = () => ({
692
1304
  updateAt: g(),
693
1305
  delete: !0
694
- }), se = () => ({
1306
+ }), Te = () => ({
695
1307
  updateAt: g(),
696
1308
  delete: !1
697
1309
  });
698
1310
  //#endregion
699
1311
  //#region src/constant/auth.ts
700
- function ce(e) {
1312
+ function Ee(e) {
701
1313
  switch (e) {
702
1314
  case "auth/user-not-found": return "libs:auth.errors.user_not_found";
703
1315
  case "auth/wrong-password": return "libs:auth.errors.wrong_password";
@@ -719,7 +1331,7 @@ function ce(e) {
719
1331
  default: return "libs:auth.errors.default";
720
1332
  }
721
1333
  }
722
- var le = {
1334
+ var De = {
723
1335
  auth: { errors: {
724
1336
  invalid_credential: "이메일 또는 비밀번호를 다시 확인해 주세요.",
725
1337
  wrong_password: "이메일 또는 비밀번호를 다시 확인해 주세요.",
@@ -749,7 +1361,7 @@ var le = {
749
1361
  time_format: "A h:mm:ss"
750
1362
  },
751
1363
  add_assets: "애셋 추가"
752
- }, ue = {
1364
+ }, Oe = {
753
1365
  auth: { errors: {
754
1366
  invalid_credential: "Please check your email or password.",
755
1367
  wrong_password: "Please check your email or password.",
@@ -782,12 +1394,12 @@ var le = {
782
1394
  };
783
1395
  //#endregion
784
1396
  //#region src/locales/i18n.ts
785
- function de(e) {
786
- e.hasResourceBundle("ko", "libs") || e.addResourceBundle("ko", "libs", le, !0, !1), e.hasResourceBundle("en", "libs") || e.addResourceBundle("en", "libs", ue, !0, !1);
1397
+ function ke(e) {
1398
+ e.hasResourceBundle("ko", "libs") || e.addResourceBundle("ko", "libs", De, !0, !1), e.hasResourceBundle("en", "libs") || e.addResourceBundle("en", "libs", Oe, !0, !1);
787
1399
  }
788
1400
  //#endregion
789
1401
  //#region src/css/toast.ts
790
- var fe = {
1402
+ var Ae = {
791
1403
  Info: {
792
1404
  Soft: {
793
1405
  "--normal-bg": "color-mix(in oklab, light-dark(var(--color-sky-600), var(--color-sky-400)) 10%, var(--background))",
@@ -858,4 +1470,4 @@ var fe = {
858
1470
  }
859
1471
  };
860
1472
  //#endregion
861
- export { O as CrossfadeImage, L as ImageUploadField, A as ImageUploadItem, R as ImageUploadSortableField, k as SUPPORTED_LOCALES, fe as ToastCSS, K as createZustandContext, ae as dateIdFormat, $ as deleteItem, B as fetchItems, V as fetchItemsByOne, ce as getAuthErrorKey, G as getPlatformType, W as getSnapshots, de as initIenlabI18n, z as snapshotToData, oe as time24Format, se as undeleteItem, ie as useDateTimeFormatters };
1473
+ export { O as CrossfadeImage, le as ImageUploadField, q as ImageUploadItem, de as ImageUploadSortableField, ue as SUPPORTED_LOCALES, Ae as ToastCSS, ye as createZustandContext, Se as dateIdFormat, we as deleteItem, pe as fetchItems, me as fetchItemsByOne, Ee as getAuthErrorKey, ve as getPlatformType, _e as getSnapshots, ke as initIenlabI18n, fe as snapshotToData, Ce as time24Format, Te as undeleteItem, Q as useDateTimeFormatters };
@@ -1,4 +1,4 @@
1
- import { ButtonHTMLAttributes, HTMLAttributes, InputHTMLAttributes, LabelHTMLAttributes, ReactNode } from 'react';
1
+ import { ButtonHTMLAttributes, CSSProperties, HTMLAttributes, InputHTMLAttributes, LabelHTMLAttributes, ReactNode } from 'react';
2
2
  export type FieldProps = {
3
3
  children: ReactNode;
4
4
  };
@@ -9,6 +9,7 @@ export type CardProps = HTMLAttributes<HTMLDivElement>;
9
9
  export type ScrollAreaProps = {
10
10
  className?: string;
11
11
  children?: ReactNode;
12
+ style?: CSSProperties;
12
13
  dir?: "ltr" | "rtl";
13
14
  type?: "auto" | "always" | "scroll" | "hover";
14
15
  scrollHideDelay?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../../src/types/image.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,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,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,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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ienlab/react-library",
3
- "version": "0.14.1",
3
+ "version": "0.14.2-beta.2",
4
4
  "description": "My React component library",
5
5
  "main": "./dist/my-library.cjs.js",
6
6
  "module": "./dist/my-library.es.js",
@@ -15,6 +15,10 @@
15
15
  "types": "./dist/index.d.ts"
16
16
  }
17
17
  },
18
+ "sideEffects": [
19
+ "*.css",
20
+ "**/*.css"
21
+ ],
18
22
  "type": "module",
19
23
  "scripts": {
20
24
  "dev": "vite",
@@ -1,2 +0,0 @@
1
- .iu-hidden-input{display:none}.iu-field{flex-direction:column;gap:1rem;display:flex}.iu-trigger{cursor:pointer;display:block}.iu-card{background:#fff;border:1px solid #e5e7eb;border-radius:1.5rem;transition:background-color .16s;position:relative;overflow:hidden}.iu-trigger:hover .iu-card{background:#f9fafb}.iu-frame{aspect-ratio:16/9;width:100%;position:relative}.iu-image-layer{padding:1.5rem;position:absolute;inset:0}.iu-image-box{max-width:100%;max-height:100%;margin:0 auto}.iu-image{object-fit:cover;width:100%;height:100%;display:block}.iu-empty{box-sizing:border-box;text-align:center;color:#6b7280;flex-direction:column;justify-content:center;align-items:center;gap:1rem;width:100%;height:100%;padding:1rem;display:flex}.iu-badge{color:#111827;background:#f3f4f6;border-radius:1rem;padding:.75rem 1rem;font-size:.875rem;line-height:1.2}.iu-hint{margin:0;font-size:.875rem;line-height:1.4}.iu-overlay{pointer-events:none;border-radius:inherit;transition:box-shadow .16s;position:absolute;inset:0;box-shadow:inset 0 0 #3b82f600}.iu-trigger:hover .iu-overlay{box-shadow:inset 0 0 0 2px #3b82f629}.iusf-field{flex-direction:column;gap:.75rem;display:flex}.iusf-container{background:#fff;border:1px solid #e5e7eb;border-radius:1.5rem;overflow:hidden}.iusf-scroll-area{white-space:nowrap;width:100%;overflow:auto hidden}.iusf-list{gap:1rem;width:max-content;padding:1rem;display:flex}.iusf-item{flex-shrink:0;position:relative}.iusf-card,.iusf-upload-card{box-sizing:border-box;border-radius:.75rem;width:15rem;padding:0;overflow:hidden}.iusf-card{background:#fff;border:1px solid #e5e7eb;position:relative}.iusf-card-inner{width:100%;height:100%;position:relative}.iusf-image{object-fit:cover;width:100%;height:100%;display:block}.iusf-remove-button{border-radius:9999px;position:absolute;bottom:1rem;right:1rem;box-shadow:0 1px 3px #0000001f}.iusf-upload-trigger{cursor:pointer;flex-shrink:0;display:block}.iusf-upload-card{background:#fff;border:1px dashed #d1d5db;transition:background-color .16s}.iusf-upload-trigger:hover .iusf-upload-card{background:#f9fafb}.iusf-upload-inner{box-sizing:border-box;text-align:center;color:#6b7280;flex-direction:column;justify-content:center;align-items:center;gap:1rem;width:100%;height:100%;padding:1rem;display:flex}.iusf-scrollbar{margin:0 1rem 1rem}
2
- /*$vite$:1*/