@ienlab/react-library 0.14.2-beta.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
- 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)}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,39 +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
879
  //#region src/utils/platform.ts
260
- function G() {
880
+ function ve() {
261
881
  if (typeof window > "u") return "pc";
262
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;
263
883
  return n ? "android" : r ? "ios" : "pc";
264
884
  }
265
885
  //#endregion
266
886
  //#region src/utils/zustand.tsx
267
- function K(n) {
887
+ function ye(n) {
268
888
  let r = e(null);
269
889
  function a({ children: e, ...t }) {
270
890
  let [a] = i(() => n(t));
@@ -287,7 +907,7 @@ function K(n) {
287
907
  }
288
908
  //#endregion
289
909
  //#region node_modules/dayjs/dayjs.min.js
290
- var q = /* @__PURE__ */ E(((e, t) => {
910
+ var Y = /* @__PURE__ */ E(((e, t) => {
291
911
  (function(n, r) {
292
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();
293
913
  })(e, (function() {
@@ -581,9 +1201,9 @@ var q = /* @__PURE__ */ E(((e, t) => {
581
1201
  return w(1e3 * e);
582
1202
  }, w.en = b[y], w.Ls = b, w.p = {}, w;
583
1203
  }));
584
- })), J = /* @__PURE__ */ E(((e, t) => {
1204
+ })), be = /* @__PURE__ */ E(((e, t) => {
585
1205
  (function(n, r) {
586
- 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);
587
1207
  })(e, (function(e) {
588
1208
  function t(e) {
589
1209
  return e && typeof e == "object" && "default" in e ? e : { default: e };
@@ -631,7 +1251,7 @@ var q = /* @__PURE__ */ E(((e, t) => {
631
1251
  };
632
1252
  return n.default.locale(r, null, !0), r;
633
1253
  }));
634
- })), Y = /* @__PURE__ */ E(((e, t) => {
1254
+ })), xe = /* @__PURE__ */ E(((e, t) => {
635
1255
  (function(n, r) {
636
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();
637
1257
  })(e, (function() {
@@ -650,13 +1270,13 @@ var q = /* @__PURE__ */ E(((e, t) => {
650
1270
  }
651
1271
  };
652
1272
  }));
653
- })), X = /* @__PURE__ */ ee(q(), 1);
654
- J(), Y();
1273
+ })), X = /* @__PURE__ */ ee(Y(), 1);
1274
+ be(), xe();
655
1275
  function Z(e, t, n) {
656
1276
  let r = (0, X.default)(e);
657
1277
  return !e || !r.isValid() ? "" : r.format(n(t));
658
1278
  }
659
- function ie() {
1279
+ function Q() {
660
1280
  let { t: e } = u();
661
1281
  return r(() => ({
662
1282
  basicDateTimeFormat: (t, n) => Z(t, n, e),
@@ -665,31 +1285,31 @@ function ie() {
665
1285
  timeFormat: (t) => Z(t, "libs:datetime.time_format", e)
666
1286
  }), [e]);
667
1287
  }
668
- function ae(e) {
1288
+ function Se(e) {
669
1289
  let t = (0, X.default)(e);
670
1290
  return t.isValid() ? t.format("YYYYMMDD") : "";
671
1291
  }
672
- function oe(e) {
1292
+ function Ce(e) {
673
1293
  let t = (0, X.default)(e);
674
1294
  return t.isValid() ? t.format("HH:mm") : "";
675
1295
  }
676
- var Q = (e) => {
1296
+ var $ = (e) => {
677
1297
  let t = e?.split("-")[0] === "ko" ? "ko" : "en";
678
1298
  X.default.locale(t);
679
1299
  };
680
- y.isInitialized && Q(y.resolvedLanguage || y.language), y.on("languageChanged", Q);
1300
+ y.isInitialized && $(y.resolvedLanguage || y.language), y.on("languageChanged", $);
681
1301
  //#endregion
682
1302
  //#region src/constant/firestore.ts
683
- var $ = () => ({
1303
+ var we = () => ({
684
1304
  updateAt: g(),
685
1305
  delete: !0
686
- }), se = () => ({
1306
+ }), Te = () => ({
687
1307
  updateAt: g(),
688
1308
  delete: !1
689
1309
  });
690
1310
  //#endregion
691
1311
  //#region src/constant/auth.ts
692
- function ce(e) {
1312
+ function Ee(e) {
693
1313
  switch (e) {
694
1314
  case "auth/user-not-found": return "libs:auth.errors.user_not_found";
695
1315
  case "auth/wrong-password": return "libs:auth.errors.wrong_password";
@@ -711,7 +1331,7 @@ function ce(e) {
711
1331
  default: return "libs:auth.errors.default";
712
1332
  }
713
1333
  }
714
- var le = {
1334
+ var De = {
715
1335
  auth: { errors: {
716
1336
  invalid_credential: "이메일 또는 비밀번호를 다시 확인해 주세요.",
717
1337
  wrong_password: "이메일 또는 비밀번호를 다시 확인해 주세요.",
@@ -741,7 +1361,7 @@ var le = {
741
1361
  time_format: "A h:mm:ss"
742
1362
  },
743
1363
  add_assets: "애셋 추가"
744
- }, ue = {
1364
+ }, Oe = {
745
1365
  auth: { errors: {
746
1366
  invalid_credential: "Please check your email or password.",
747
1367
  wrong_password: "Please check your email or password.",
@@ -774,12 +1394,12 @@ var le = {
774
1394
  };
775
1395
  //#endregion
776
1396
  //#region src/locales/i18n.ts
777
- function de(e) {
778
- 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);
779
1399
  }
780
1400
  //#endregion
781
1401
  //#region src/css/toast.ts
782
- var fe = {
1402
+ var Ae = {
783
1403
  Info: {
784
1404
  Soft: {
785
1405
  "--normal-bg": "color-mix(in oklab, light-dark(var(--color-sky-600), var(--color-sky-400)) 10%, var(--background))",
@@ -850,4 +1470,4 @@ var fe = {
850
1470
  }
851
1471
  };
852
1472
  //#endregion
853
- 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.2-beta.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",
@@ -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*/