@m1kapp/kit 0.0.8 → 0.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  var we=`/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */
3
- @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-900:oklch(39.6% .141 25.723);--color-red-950:oklch(25.8% .092 26.042);--color-orange-100:oklch(95.4% .038 75.164);--color-orange-400:oklch(75% .183 55.934);--color-orange-700:oklch(55.3% .195 38.402);--color-orange-950:oklch(26.6% .079 36.259);--color-yellow-100:oklch(97.3% .071 103.193);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-700:oklch(55.4% .135 66.442);--color-yellow-950:oklch(28.6% .066 53.813);--color-green-50:oklch(98.2% .018 155.826);--color-green-100:oklch(96.2% .044 156.743);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-green-950:oklch(26.6% .065 152.934);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-950:oklch(28.2% .091 267.935);--color-purple-100:oklch(94.6% .033 307.174);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-700:oklch(49.6% .265 301.924);--color-purple-950:oklch(29.1% .149 302.717);--color-zinc-50:oklch(98.5% 0 0);--color-zinc-100:oklch(96.7% .001 286.375);--color-zinc-200:oklch(92% .004 286.32);--color-zinc-300:oklch(87.1% .006 286.286);--color-zinc-400:oklch(70.5% .015 286.067);--color-zinc-500:oklch(55.2% .016 285.938);--color-zinc-600:oklch(44.2% .017 285.786);--color-zinc-700:oklch(37% .013 285.805);--color-zinc-800:oklch(27.4% .006 286.033);--color-zinc-900:oklch(21% .006 285.885);--color-zinc-950:oklch(14.1% .005 285.823);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-black:900;--tracking-tight:-.025em;--tracking-wider:.05em;--leading-relaxed:1.625;--radius-xs:.125rem;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--ease-out:cubic-bezier(0, 0, .2, 1);--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-sm:8px;--blur-md:12px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}html{touch-action:pan-x pan-y}body{min-height:100dvh}input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=submit]):not([type=button]):not([type=reset]),select,textarea{font-size:max(16px,1em)}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.inset-x-0{inset-inline:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.top-0{top:calc(var(--spacing) * 0)}.top-4{top:calc(var(--spacing) * 4)}.right-4{right:calc(var(--spacing) * 4)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-24{bottom:calc(var(--spacing) * 24)}.left-1{left:calc(var(--spacing) * 1)}.left-1\\/2{left:50%}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.z-\\[1\\]{z-index:1}.z-\\[200\\]{z-index:200}.z-\\[9998\\]{z-index:9998}.z-\\[9999\\]{z-index:9999}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.mx-3{margin-inline:calc(var(--spacing) * 3)}.mx-4{margin-inline:calc(var(--spacing) * 4)}.mx-auto{margin-inline:auto}.my-6{margin-block:calc(var(--spacing) * 6)}.mt-0{margin-top:calc(var(--spacing) * 0)}.mt-0\\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mr-1{margin-right:calc(var(--spacing) * 1)}.mr-1\\.5{margin-right:calc(var(--spacing) * 1.5)}.mb-0{margin-bottom:calc(var(--spacing) * 0)}.mb-0\\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.-ml-1{margin-left:calc(var(--spacing) * -1)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-1\\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-px{margin-left:1px}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-0{height:calc(var(--spacing) * 0)}.h-1{height:calc(var(--spacing) * 1)}.h-3{height:calc(var(--spacing) * 3)}.h-4{height:calc(var(--spacing) * 4)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-16{height:calc(var(--spacing) * 16)}.h-20{height:calc(var(--spacing) * 20)}.h-24{height:calc(var(--spacing) * 24)}.h-32{height:calc(var(--spacing) * 32)}.h-\\[1em\\]{height:1em}.h-dvh{height:100dvh}.h-full{height:100%}.h-px{height:1px}.min-h-7{min-height:calc(var(--spacing) * 7)}.w-0{width:calc(var(--spacing) * 0)}.w-0\\.5{width:calc(var(--spacing) * .5)}.w-1{width:calc(var(--spacing) * 1)}.w-1\\/2{width:50%}.w-1\\/3{width:33.3333%}.w-2{width:calc(var(--spacing) * 2)}.w-2\\/3{width:66.6667%}.w-3{width:calc(var(--spacing) * 3)}.w-3\\/4{width:75%}.w-4{width:calc(var(--spacing) * 4)}.w-4\\/5{width:80%}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-11{width:calc(var(--spacing) * 11)}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-20{width:calc(var(--spacing) * 20)}.w-full{width:100%}.max-w-101{max-width:calc(var(--spacing) * 101)}.max-w-101\\.5{max-width:calc(var(--spacing) * 101.5)}.max-w-\\[390px\\]{max-width:390px}.max-w-\\[430px\\]{max-width:430px}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.min-w-0{min-width:calc(var(--spacing) * 0)}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.-translate-x-1{--tw-translate-x:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-x-1\\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-full{--tw-translate-y:-100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-0{--tw-translate-y:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-3{--tw-translate-y:calc(var(--spacing) * 3);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-4{--tw-translate-y:calc(var(--spacing) * 4);translate:var(--tw-translate-x) var(--tw-translate-y)}.scale-95{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y)}.scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x) var(--tw-scale-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.cursor-pointer{cursor:pointer}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-items-center{justify-items:center}.gap-0{gap:calc(var(--spacing) * 0)}.gap-0\\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-zinc-100>:not(:last-child)){border-color:var(--color-zinc-100)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-xs{border-radius:var(--radius-xs)}.rounded-t-2xl{border-top-left-radius:var(--radius-2xl);border-top-right-radius:var(--radius-2xl)}.rounded-b-2xl{border-bottom-right-radius:var(--radius-2xl);border-bottom-left-radius:var(--radius-2xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-4{border-top-style:var(--tw-border-style);border-top-width:4px}.border-r-4{border-right-style:var(--tw-border-style);border-right-width:4px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.border-red-500{border-color:var(--color-red-500)}.border-white{border-color:var(--color-white)}.border-zinc-100{border-color:var(--color-zinc-100)}.border-zinc-200{border-color:var(--color-zinc-200)}.border-zinc-400{border-color:var(--color-zinc-400)}.border-t-zinc-900{border-top-color:var(--color-zinc-900)}.border-r-transparent{border-right-color:#0000}.border-l-transparent{border-left-color:#0000}.bg-black{background-color:var(--color-black)}.bg-black\\/40{background-color:#0006}@supports (color:color-mix(in lab, red, red)){.bg-black\\/40{background-color:color-mix(in oklab, var(--color-black) 40%, transparent)}}.bg-black\\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\\/50{background-color:color-mix(in oklab, var(--color-black) 50%, transparent)}}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-600{background-color:var(--color-blue-600)}.bg-green-50{background-color:var(--color-green-50)}.bg-green-100{background-color:var(--color-green-100)}.bg-green-500{background-color:var(--color-green-500)}.bg-green-600{background-color:var(--color-green-600)}.bg-orange-100{background-color:var(--color-orange-100)}.bg-purple-100{background-color:var(--color-purple-100)}.bg-red-50{background-color:var(--color-red-50)}.bg-red-100{background-color:var(--color-red-100)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-600{background-color:var(--color-red-600)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-white\\/90{background-color:#ffffffe6}@supports (color:color-mix(in lab, red, red)){.bg-white\\/90{background-color:color-mix(in oklab, var(--color-white) 90%, transparent)}}.bg-yellow-100{background-color:var(--color-yellow-100)}.bg-zinc-50{background-color:var(--color-zinc-50)}.bg-zinc-100{background-color:var(--color-zinc-100)}.bg-zinc-200{background-color:var(--color-zinc-200)}.bg-zinc-900{background-color:var(--color-zinc-900)}.fill-zinc-300{fill:var(--color-zinc-300)}.fill-zinc-400{fill:var(--color-zinc-400)}.object-cover{object-fit:cover}.p-1{padding:calc(var(--spacing) * 1)}.p-1\\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0{padding-block:calc(var(--spacing) * 0)}.py-0\\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-12{padding-block:calc(var(--spacing) * 12)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pr-6{padding-right:calc(var(--spacing) * 6)}.pb-1{padding-bottom:calc(var(--spacing) * 1)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pb-8{padding-bottom:calc(var(--spacing) * 8)}.text-center{text-align:center}.text-left{text-align:left}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\\[9px\\]{font-size:9px}.text-\\[10px\\]{font-size:10px}.text-\\[11px\\]{font-size:11px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-black{--tw-font-weight:var(--font-weight-black);font-weight:var(--font-weight-black)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.whitespace-nowrap{white-space:nowrap}.text-blue-600{color:var(--color-blue-600)}.text-blue-700{color:var(--color-blue-700)}.text-green-500{color:var(--color-green-500)}.text-green-600{color:var(--color-green-600)}.text-green-700{color:var(--color-green-700)}.text-orange-700{color:var(--color-orange-700)}.text-purple-700{color:var(--color-purple-700)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-white{color:var(--color-white)}.text-yellow-700{color:var(--color-yellow-700)}.text-zinc-200{color:var(--color-zinc-200)}.text-zinc-300{color:var(--color-zinc-300)}.text-zinc-400{color:var(--color-zinc-400)}.text-zinc-500{color:var(--color-zinc-500)}.text-zinc-600{color:var(--color-zinc-600)}.text-zinc-700{color:var(--color-zinc-700)}.text-zinc-800{color:var(--color-zinc-800)}.text-zinc-900{color:var(--color-zinc-900)}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.opacity-0{opacity:0}.opacity-15{opacity:.15}.opacity-70{opacity:.7}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-black{--tw-ring-color:var(--color-black)}.ring-black\\/10{--tw-ring-color:#0000001a}@supports (color:color-mix(in lab, red, red)){.ring-black\\/10{--tw-ring-color:color-mix(in oklab, var(--color-black) 10%, transparent)}}.ring-white{--tw-ring-color:var(--color-white)}.ring-white\\/10{--tw-ring-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.ring-white\\/10{--tw-ring-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.ring-zinc-200{--tw-ring-color:var(--color-zinc-200)}.ring-zinc-900{--tw-ring-color:var(--color-zinc-900)}.ring-offset-2{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.ring-offset-white{--tw-ring-offset-color:var(--color-white)}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.group-hover\\:text-zinc-500:is(:where(.group):hover *){color:var(--color-zinc-500)}}.placeholder\\:text-zinc-400::placeholder{color:var(--color-zinc-400)}@media (hover:hover){.hover\\:scale-110:hover{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\\:border-zinc-300:hover{border-color:var(--color-zinc-300)}.hover\\:bg-red-100:hover{background-color:var(--color-red-100)}.hover\\:bg-red-600:hover{background-color:var(--color-red-600)}.hover\\:bg-zinc-100:hover{background-color:var(--color-zinc-100)}.hover\\:bg-zinc-200:hover{background-color:var(--color-zinc-200)}.hover\\:bg-zinc-700:hover{background-color:var(--color-zinc-700)}.hover\\:bg-zinc-800:hover{background-color:var(--color-zinc-800)}.hover\\:text-zinc-600:hover{color:var(--color-zinc-600)}.hover\\:text-zinc-700:hover{color:var(--color-zinc-700)}.hover\\:text-zinc-900:hover{color:var(--color-zinc-900)}.hover\\:underline:hover{text-decoration-line:underline}}.focus\\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.active\\:scale-90:active{--tw-scale-x:90%;--tw-scale-y:90%;--tw-scale-z:90%;scale:var(--tw-scale-x) var(--tw-scale-y)}.active\\:scale-95:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y)}.active\\:scale-\\[0\\.99\\]:active{scale:.99}.disabled\\:opacity-40:disabled{opacity:.4}.disabled\\:opacity-50:disabled{opacity:.5}@media (min-width:40rem){.sm\\:block{display:block}.sm\\:items-center{align-items:center}.sm\\:rounded-2xl{border-radius:var(--radius-2xl)}.sm\\:rounded-t-2xl{border-top-left-radius:var(--radius-2xl);border-top-right-radius:var(--radius-2xl)}.sm\\:p-3{padding:calc(var(--spacing) * 3)}}:where(.dark\\:divide-zinc-800:where(.dark,.dark *)>:not(:last-child)){border-color:var(--color-zinc-800)}.dark\\:border-zinc-500:where(.dark,.dark *){border-color:var(--color-zinc-500)}.dark\\:border-zinc-800:where(.dark,.dark *){border-color:var(--color-zinc-800)}.dark\\:border-zinc-900:where(.dark,.dark *){border-color:var(--color-zinc-900)}.dark\\:border-t-zinc-100:where(.dark,.dark *){border-top-color:var(--color-zinc-100)}.dark\\:bg-blue-950:where(.dark,.dark *){background-color:var(--color-blue-950)}.dark\\:bg-green-950:where(.dark,.dark *){background-color:var(--color-green-950)}.dark\\:bg-orange-950:where(.dark,.dark *){background-color:var(--color-orange-950)}.dark\\:bg-purple-950:where(.dark,.dark *){background-color:var(--color-purple-950)}.dark\\:bg-red-950:where(.dark,.dark *){background-color:var(--color-red-950)}.dark\\:bg-white:where(.dark,.dark *){background-color:var(--color-white)}.dark\\:bg-yellow-950:where(.dark,.dark *){background-color:var(--color-yellow-950)}.dark\\:bg-zinc-100:where(.dark,.dark *){background-color:var(--color-zinc-100)}.dark\\:bg-zinc-700:where(.dark,.dark *){background-color:var(--color-zinc-700)}.dark\\:bg-zinc-800:where(.dark,.dark *){background-color:var(--color-zinc-800)}.dark\\:bg-zinc-900:where(.dark,.dark *){background-color:var(--color-zinc-900)}.dark\\:bg-zinc-950:where(.dark,.dark *){background-color:var(--color-zinc-950)}.dark\\:bg-zinc-950\\/90:where(.dark,.dark *){background-color:#09090be6}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-zinc-950\\/90:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-zinc-950) 90%, transparent)}}.dark\\:text-blue-400:where(.dark,.dark *){color:var(--color-blue-400)}.dark\\:text-green-400:where(.dark,.dark *){color:var(--color-green-400)}.dark\\:text-green-500:where(.dark,.dark *){color:var(--color-green-500)}.dark\\:text-orange-400:where(.dark,.dark *){color:var(--color-orange-400)}.dark\\:text-purple-400:where(.dark,.dark *){color:var(--color-purple-400)}.dark\\:text-red-400:where(.dark,.dark *){color:var(--color-red-400)}.dark\\:text-white:where(.dark,.dark *){color:var(--color-white)}.dark\\:text-yellow-400:where(.dark,.dark *){color:var(--color-yellow-400)}.dark\\:text-zinc-100:where(.dark,.dark *){color:var(--color-zinc-100)}.dark\\:text-zinc-200:where(.dark,.dark *){color:var(--color-zinc-200)}.dark\\:text-zinc-300:where(.dark,.dark *){color:var(--color-zinc-300)}.dark\\:text-zinc-400:where(.dark,.dark *){color:var(--color-zinc-400)}.dark\\:text-zinc-500:where(.dark,.dark *){color:var(--color-zinc-500)}.dark\\:text-zinc-600:where(.dark,.dark *){color:var(--color-zinc-600)}.dark\\:text-zinc-700:where(.dark,.dark *){color:var(--color-zinc-700)}.dark\\:text-zinc-900:where(.dark,.dark *){color:var(--color-zinc-900)}.dark\\:ring-white:where(.dark,.dark *){--tw-ring-color:var(--color-white)}.dark\\:ring-white\\/10:where(.dark,.dark *){--tw-ring-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.dark\\:ring-white\\/10:where(.dark,.dark *){--tw-ring-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.dark\\:ring-zinc-700:where(.dark,.dark *){--tw-ring-color:var(--color-zinc-700)}.dark\\:ring-zinc-800:where(.dark,.dark *){--tw-ring-color:var(--color-zinc-800)}.dark\\:ring-offset-zinc-900:where(.dark,.dark *){--tw-ring-offset-color:var(--color-zinc-900)}@media (hover:hover){.dark\\:hover\\:bg-red-900:where(.dark,.dark *):hover{background-color:var(--color-red-900)}.dark\\:hover\\:bg-zinc-200:where(.dark,.dark *):hover{background-color:var(--color-zinc-200)}.dark\\:hover\\:bg-zinc-700:where(.dark,.dark *):hover{background-color:var(--color-zinc-700)}.dark\\:hover\\:bg-zinc-800:where(.dark,.dark *):hover{background-color:var(--color-zinc-800)}.dark\\:hover\\:text-white:where(.dark,.dark *):hover{color:var(--color-white)}.dark\\:hover\\:text-zinc-200:where(.dark,.dark *):hover{color:var(--color-zinc-200)}}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes pulse{50%{opacity:.5}}`;var te=!1;function Xe(){if(te||typeof document>"u")return;if(document.querySelector("[data-m1kapp-ui]")){te=!0;return}te=!0;let e=document.createElement("style");e.setAttribute("data-m1kapp-ui",""),e.textContent=we,document.head.appendChild(e)}Xe();import{jsx as ve}from"react/jsx-runtime";var Qe={dark:"bg-zinc-900 text-white hover:bg-zinc-700 dark:bg-white dark:text-zinc-900 dark:hover:bg-zinc-200",light:"bg-zinc-100 text-zinc-600 hover:bg-zinc-200 dark:bg-zinc-800 dark:text-zinc-300 dark:hover:bg-zinc-700"},et={rounded:"rounded-xl",pill:"rounded-full"};function tt({children:e,variant:t="dark",shape:r="rounded",full:a=!1,className:o="",...n}){let i=["inline-flex items-center justify-center px-5 py-2.5 text-sm font-bold transition-colors",Qe[t],et[r],a?"w-full":"",o].filter(Boolean).join(" ");if(n.href!==void 0){let{href:l,target:p,rel:d}=n;return ve("a",{href:l,target:p,rel:d,className:i,children:e})}let{onClick:s,disabled:c}=n;return ve("button",{onClick:s,disabled:c,className:i,children:e})}import{jsx as re}from"react/jsx-runtime";function rt({children:e,className:t="",maxWidth:r=430,maxHeight:a=932,style:o}){return re("div",{className:`w-full h-full flex flex-col bg-white dark:bg-zinc-950 shadow-2xl ring-1 ring-black/10 dark:ring-zinc-700 sm:rounded-2xl overflow-hidden ${t}`,style:{maxWidth:r,maxHeight:a,...o},children:e})}function ot({children:e,className:t=""}){return re("header",{className:`sticky top-0 z-20 h-14 px-4 flex items-center justify-between border-b border-zinc-100 dark:border-zinc-800 bg-white/90 dark:bg-zinc-950/90 backdrop-blur-md sm:rounded-t-2xl ${t}`,children:e})}function at({children:e,className:t=""}){return re("div",{className:`flex-1 overflow-y-auto scrollbar-hide ${t}`,children:e})}import{jsx as xe,jsxs as st}from"react/jsx-runtime";function nt({children:e,className:t=""}){return xe("nav",{className:`sticky bottom-0 z-20 border-t border-zinc-200 dark:border-zinc-800 flex bg-white/90 dark:bg-zinc-950/90 backdrop-blur-md rounded-b-2xl ${t}`,style:{paddingBottom:"env(safe-area-inset-bottom)"},children:e})}function it({active:e,onClick:t,icon:r,label:a,activeColor:o}){return st("button",{onClick:t,className:`flex-1 flex flex-col items-center gap-0.5 py-2.5 transition-colors ${e?"":"text-zinc-300 dark:text-zinc-600"}`,style:e?{color:o}:void 0,children:[r,xe("span",{className:"text-[10px] font-medium",children:a})]})}import{jsx as ke}from"react/jsx-runtime";function ct({children:e,className:t=""}){return ke("section",{className:`px-4 ${t}`,children:e})}function lt({children:e}){return ke("h2",{className:"text-[11px] font-semibold text-zinc-400 dark:text-zinc-500 uppercase mb-3",children:e})}import{jsx as pt}from"react/jsx-runtime";function dt({className:e=""}){return pt("div",{className:`mx-4 my-6 h-px bg-zinc-200 dark:bg-zinc-800 ${e}`})}import{jsx as ye,jsxs as gt}from"react/jsx-runtime";function ut({label:e,value:t,className:r=""}){return gt("div",{className:`flex-1 rounded-xl bg-zinc-100 dark:bg-zinc-900 px-3 py-3 text-center ${r}`,children:[ye("p",{className:"text-[10px] text-zinc-500 dark:text-zinc-400 font-medium mb-0.5",children:e}),ye("p",{className:"text-lg font-bold tabular-nums text-zinc-900 dark:text-white",children:t.toLocaleString()})]})}import{jsx as V,jsxs as ze}from"react/jsx-runtime";function ft({message:e,icon:t}){return ze("div",{className:"flex flex-col items-center justify-center py-12 gap-2",children:[t||ze("svg",{width:"32",height:"32",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",className:"text-zinc-200 dark:text-zinc-700",children:[V("circle",{cx:"12",cy:"12",r:"10"}),V("path",{d:"M8 15h8"}),V("circle",{cx:"9",cy:"9",r:"1",fill:"currentColor",stroke:"none"}),V("circle",{cx:"15",cy:"9",r:"1",fill:"currentColor",stroke:"none"})]}),V("p",{className:"text-sm text-zinc-400 dark:text-zinc-500",children:e})]})}import{useId as mt}from"react";import{jsx as R,jsxs as oe}from"react/jsx-runtime";var ht=`
3
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-900:oklch(39.6% .141 25.723);--color-red-950:oklch(25.8% .092 26.042);--color-orange-100:oklch(95.4% .038 75.164);--color-orange-400:oklch(75% .183 55.934);--color-orange-700:oklch(55.3% .195 38.402);--color-orange-950:oklch(26.6% .079 36.259);--color-yellow-100:oklch(97.3% .071 103.193);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-700:oklch(55.4% .135 66.442);--color-yellow-950:oklch(28.6% .066 53.813);--color-green-50:oklch(98.2% .018 155.826);--color-green-100:oklch(96.2% .044 156.743);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-green-950:oklch(26.6% .065 152.934);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-950:oklch(28.2% .091 267.935);--color-purple-100:oklch(94.6% .033 307.174);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-700:oklch(49.6% .265 301.924);--color-purple-950:oklch(29.1% .149 302.717);--color-zinc-50:oklch(98.5% 0 0);--color-zinc-100:oklch(96.7% .001 286.375);--color-zinc-200:oklch(92% .004 286.32);--color-zinc-300:oklch(87.1% .006 286.286);--color-zinc-400:oklch(70.5% .015 286.067);--color-zinc-500:oklch(55.2% .016 285.938);--color-zinc-600:oklch(44.2% .017 285.786);--color-zinc-700:oklch(37% .013 285.805);--color-zinc-800:oklch(27.4% .006 286.033);--color-zinc-900:oklch(21% .006 285.885);--color-zinc-950:oklch(14.1% .005 285.823);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-black:900;--tracking-tight:-.025em;--tracking-wider:.05em;--leading-relaxed:1.625;--radius-xs:.125rem;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--ease-out:cubic-bezier(0, 0, .2, 1);--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-sm:8px;--blur-md:12px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}html{touch-action:pan-x pan-y}body{min-height:100dvh}input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=submit]):not([type=button]):not([type=reset]),select,textarea{font-size:max(16px,1em)}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.inset-x-0{inset-inline:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.top-0{top:calc(var(--spacing) * 0)}.top-4{top:calc(var(--spacing) * 4)}.right-4{right:calc(var(--spacing) * 4)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-24{bottom:calc(var(--spacing) * 24)}.left-1{left:calc(var(--spacing) * 1)}.left-1\\/2{left:50%}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.z-\\[1\\]{z-index:1}.z-\\[200\\]{z-index:200}.z-\\[9998\\]{z-index:9998}.z-\\[9999\\]{z-index:9999}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.mx-3{margin-inline:calc(var(--spacing) * 3)}.mx-4{margin-inline:calc(var(--spacing) * 4)}.mx-auto{margin-inline:auto}.my-6{margin-block:calc(var(--spacing) * 6)}.mt-0{margin-top:calc(var(--spacing) * 0)}.mt-0\\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mr-1{margin-right:calc(var(--spacing) * 1)}.mr-1\\.5{margin-right:calc(var(--spacing) * 1.5)}.mb-0{margin-bottom:calc(var(--spacing) * 0)}.mb-0\\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.-ml-1{margin-left:calc(var(--spacing) * -1)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-1\\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-px{margin-left:1px}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-0{height:calc(var(--spacing) * 0)}.h-1{height:calc(var(--spacing) * 1)}.h-3{height:calc(var(--spacing) * 3)}.h-4{height:calc(var(--spacing) * 4)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-16{height:calc(var(--spacing) * 16)}.h-20{height:calc(var(--spacing) * 20)}.h-24{height:calc(var(--spacing) * 24)}.h-32{height:calc(var(--spacing) * 32)}.h-\\[1em\\]{height:1em}.h-dvh{height:100dvh}.h-full{height:100%}.h-px{height:1px}.min-h-7{min-height:calc(var(--spacing) * 7)}.w-0{width:calc(var(--spacing) * 0)}.w-0\\.5{width:calc(var(--spacing) * .5)}.w-1{width:calc(var(--spacing) * 1)}.w-1\\/2{width:50%}.w-1\\/3{width:33.3333%}.w-2{width:calc(var(--spacing) * 2)}.w-2\\/3{width:66.6667%}.w-3{width:calc(var(--spacing) * 3)}.w-3\\/4{width:75%}.w-4{width:calc(var(--spacing) * 4)}.w-4\\/5{width:80%}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-11{width:calc(var(--spacing) * 11)}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-20{width:calc(var(--spacing) * 20)}.w-full{width:100%}.max-w-101{max-width:calc(var(--spacing) * 101)}.max-w-101\\.5{max-width:calc(var(--spacing) * 101.5)}.max-w-\\[390px\\]{max-width:390px}.max-w-\\[430px\\]{max-width:430px}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.min-w-0{min-width:calc(var(--spacing) * 0)}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.-translate-x-1{--tw-translate-x:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-x-1\\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-full{--tw-translate-y:-100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-0{--tw-translate-y:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-3{--tw-translate-y:calc(var(--spacing) * 3);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-4{--tw-translate-y:calc(var(--spacing) * 4);translate:var(--tw-translate-x) var(--tw-translate-y)}.scale-95{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y)}.scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x) var(--tw-scale-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.cursor-pointer{cursor:pointer}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-items-center{justify-items:center}.gap-0{gap:calc(var(--spacing) * 0)}.gap-0\\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-zinc-100>:not(:last-child)){border-color:var(--color-zinc-100)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-xs{border-radius:var(--radius-xs)}.rounded-t-2xl{border-top-left-radius:var(--radius-2xl);border-top-right-radius:var(--radius-2xl)}.rounded-b-2xl{border-bottom-right-radius:var(--radius-2xl);border-bottom-left-radius:var(--radius-2xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-4{border-top-style:var(--tw-border-style);border-top-width:4px}.border-r-4{border-right-style:var(--tw-border-style);border-right-width:4px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.border-red-500{border-color:var(--color-red-500)}.border-white{border-color:var(--color-white)}.border-zinc-100{border-color:var(--color-zinc-100)}.border-zinc-200{border-color:var(--color-zinc-200)}.border-zinc-400{border-color:var(--color-zinc-400)}.border-t-zinc-900{border-top-color:var(--color-zinc-900)}.border-r-transparent{border-right-color:#0000}.border-l-transparent{border-left-color:#0000}.bg-black{background-color:var(--color-black)}.bg-black\\/40{background-color:#0006}@supports (color:color-mix(in lab, red, red)){.bg-black\\/40{background-color:color-mix(in oklab, var(--color-black) 40%, transparent)}}.bg-black\\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\\/50{background-color:color-mix(in oklab, var(--color-black) 50%, transparent)}}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-600{background-color:var(--color-blue-600)}.bg-green-50{background-color:var(--color-green-50)}.bg-green-100{background-color:var(--color-green-100)}.bg-green-500{background-color:var(--color-green-500)}.bg-green-600{background-color:var(--color-green-600)}.bg-orange-100{background-color:var(--color-orange-100)}.bg-purple-100{background-color:var(--color-purple-100)}.bg-red-50{background-color:var(--color-red-50)}.bg-red-100{background-color:var(--color-red-100)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-600{background-color:var(--color-red-600)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-white\\/90{background-color:#ffffffe6}@supports (color:color-mix(in lab, red, red)){.bg-white\\/90{background-color:color-mix(in oklab, var(--color-white) 90%, transparent)}}.bg-yellow-100{background-color:var(--color-yellow-100)}.bg-zinc-50{background-color:var(--color-zinc-50)}.bg-zinc-100{background-color:var(--color-zinc-100)}.bg-zinc-200{background-color:var(--color-zinc-200)}.bg-zinc-900{background-color:var(--color-zinc-900)}.fill-zinc-300{fill:var(--color-zinc-300)}.fill-zinc-400{fill:var(--color-zinc-400)}.object-cover{object-fit:cover}.p-1{padding:calc(var(--spacing) * 1)}.p-1\\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0{padding-block:calc(var(--spacing) * 0)}.py-0\\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-12{padding-block:calc(var(--spacing) * 12)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pr-6{padding-right:calc(var(--spacing) * 6)}.pb-1{padding-bottom:calc(var(--spacing) * 1)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pb-8{padding-bottom:calc(var(--spacing) * 8)}.text-center{text-align:center}.text-left{text-align:left}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\\[9px\\]{font-size:9px}.text-\\[10px\\]{font-size:10px}.text-\\[11px\\]{font-size:11px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-black{--tw-font-weight:var(--font-weight-black);font-weight:var(--font-weight-black)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.whitespace-nowrap{white-space:nowrap}.text-blue-600{color:var(--color-blue-600)}.text-blue-700{color:var(--color-blue-700)}.text-green-500{color:var(--color-green-500)}.text-green-600{color:var(--color-green-600)}.text-green-700{color:var(--color-green-700)}.text-orange-700{color:var(--color-orange-700)}.text-purple-700{color:var(--color-purple-700)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-white{color:var(--color-white)}.text-yellow-700{color:var(--color-yellow-700)}.text-zinc-200{color:var(--color-zinc-200)}.text-zinc-300{color:var(--color-zinc-300)}.text-zinc-400{color:var(--color-zinc-400)}.text-zinc-500{color:var(--color-zinc-500)}.text-zinc-600{color:var(--color-zinc-600)}.text-zinc-700{color:var(--color-zinc-700)}.text-zinc-800{color:var(--color-zinc-800)}.text-zinc-900{color:var(--color-zinc-900)}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.opacity-0{opacity:0}.opacity-15{opacity:.15}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-black{--tw-ring-color:var(--color-black)}.ring-black\\/10{--tw-ring-color:#0000001a}@supports (color:color-mix(in lab, red, red)){.ring-black\\/10{--tw-ring-color:color-mix(in oklab, var(--color-black) 10%, transparent)}}.ring-white{--tw-ring-color:var(--color-white)}.ring-white\\/10{--tw-ring-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.ring-white\\/10{--tw-ring-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.ring-zinc-200{--tw-ring-color:var(--color-zinc-200)}.ring-zinc-900{--tw-ring-color:var(--color-zinc-900)}.ring-offset-2{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.ring-offset-white{--tw-ring-offset-color:var(--color-white)}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.group-hover\\:text-zinc-500:is(:where(.group):hover *){color:var(--color-zinc-500)}}.placeholder\\:text-zinc-400::placeholder{color:var(--color-zinc-400)}@media (hover:hover){.hover\\:scale-110:hover{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\\:border-zinc-300:hover{border-color:var(--color-zinc-300)}.hover\\:bg-red-100:hover{background-color:var(--color-red-100)}.hover\\:bg-red-600:hover{background-color:var(--color-red-600)}.hover\\:bg-zinc-100:hover{background-color:var(--color-zinc-100)}.hover\\:bg-zinc-200:hover{background-color:var(--color-zinc-200)}.hover\\:bg-zinc-700:hover{background-color:var(--color-zinc-700)}.hover\\:bg-zinc-800:hover{background-color:var(--color-zinc-800)}.hover\\:text-zinc-600:hover{color:var(--color-zinc-600)}.hover\\:text-zinc-700:hover{color:var(--color-zinc-700)}.hover\\:text-zinc-900:hover{color:var(--color-zinc-900)}.hover\\:underline:hover{text-decoration-line:underline}}.focus\\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.active\\:scale-90:active{--tw-scale-x:90%;--tw-scale-y:90%;--tw-scale-z:90%;scale:var(--tw-scale-x) var(--tw-scale-y)}.active\\:scale-95:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y)}.active\\:scale-\\[0\\.99\\]:active{scale:.99}.disabled\\:opacity-40:disabled{opacity:.4}.disabled\\:opacity-50:disabled{opacity:.5}@media (min-width:40rem){.sm\\:block{display:block}.sm\\:items-center{align-items:center}.sm\\:rounded-2xl{border-radius:var(--radius-2xl)}.sm\\:rounded-t-2xl{border-top-left-radius:var(--radius-2xl);border-top-right-radius:var(--radius-2xl)}.sm\\:p-3{padding:calc(var(--spacing) * 3)}}:where(.dark\\:divide-zinc-800:where(.dark,.dark *)>:not(:last-child)){border-color:var(--color-zinc-800)}.dark\\:border-zinc-500:where(.dark,.dark *){border-color:var(--color-zinc-500)}.dark\\:border-zinc-800:where(.dark,.dark *){border-color:var(--color-zinc-800)}.dark\\:border-zinc-900:where(.dark,.dark *){border-color:var(--color-zinc-900)}.dark\\:border-t-zinc-100:where(.dark,.dark *){border-top-color:var(--color-zinc-100)}.dark\\:bg-blue-950:where(.dark,.dark *){background-color:var(--color-blue-950)}.dark\\:bg-green-950:where(.dark,.dark *){background-color:var(--color-green-950)}.dark\\:bg-orange-950:where(.dark,.dark *){background-color:var(--color-orange-950)}.dark\\:bg-purple-950:where(.dark,.dark *){background-color:var(--color-purple-950)}.dark\\:bg-red-950:where(.dark,.dark *){background-color:var(--color-red-950)}.dark\\:bg-white:where(.dark,.dark *){background-color:var(--color-white)}.dark\\:bg-yellow-950:where(.dark,.dark *){background-color:var(--color-yellow-950)}.dark\\:bg-zinc-100:where(.dark,.dark *){background-color:var(--color-zinc-100)}.dark\\:bg-zinc-700:where(.dark,.dark *){background-color:var(--color-zinc-700)}.dark\\:bg-zinc-800:where(.dark,.dark *){background-color:var(--color-zinc-800)}.dark\\:bg-zinc-900:where(.dark,.dark *){background-color:var(--color-zinc-900)}.dark\\:bg-zinc-950:where(.dark,.dark *){background-color:var(--color-zinc-950)}.dark\\:bg-zinc-950\\/90:where(.dark,.dark *){background-color:#09090be6}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-zinc-950\\/90:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-zinc-950) 90%, transparent)}}.dark\\:text-blue-400:where(.dark,.dark *){color:var(--color-blue-400)}.dark\\:text-green-400:where(.dark,.dark *){color:var(--color-green-400)}.dark\\:text-green-500:where(.dark,.dark *){color:var(--color-green-500)}.dark\\:text-orange-400:where(.dark,.dark *){color:var(--color-orange-400)}.dark\\:text-purple-400:where(.dark,.dark *){color:var(--color-purple-400)}.dark\\:text-red-400:where(.dark,.dark *){color:var(--color-red-400)}.dark\\:text-white:where(.dark,.dark *){color:var(--color-white)}.dark\\:text-yellow-400:where(.dark,.dark *){color:var(--color-yellow-400)}.dark\\:text-zinc-100:where(.dark,.dark *){color:var(--color-zinc-100)}.dark\\:text-zinc-200:where(.dark,.dark *){color:var(--color-zinc-200)}.dark\\:text-zinc-300:where(.dark,.dark *){color:var(--color-zinc-300)}.dark\\:text-zinc-400:where(.dark,.dark *){color:var(--color-zinc-400)}.dark\\:text-zinc-500:where(.dark,.dark *){color:var(--color-zinc-500)}.dark\\:text-zinc-600:where(.dark,.dark *){color:var(--color-zinc-600)}.dark\\:text-zinc-700:where(.dark,.dark *){color:var(--color-zinc-700)}.dark\\:text-zinc-900:where(.dark,.dark *){color:var(--color-zinc-900)}.dark\\:ring-white:where(.dark,.dark *){--tw-ring-color:var(--color-white)}.dark\\:ring-white\\/10:where(.dark,.dark *){--tw-ring-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.dark\\:ring-white\\/10:where(.dark,.dark *){--tw-ring-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.dark\\:ring-zinc-700:where(.dark,.dark *){--tw-ring-color:var(--color-zinc-700)}.dark\\:ring-zinc-800:where(.dark,.dark *){--tw-ring-color:var(--color-zinc-800)}.dark\\:ring-offset-zinc-900:where(.dark,.dark *){--tw-ring-offset-color:var(--color-zinc-900)}@media (hover:hover){.dark\\:hover\\:bg-red-900:where(.dark,.dark *):hover{background-color:var(--color-red-900)}.dark\\:hover\\:bg-zinc-200:where(.dark,.dark *):hover{background-color:var(--color-zinc-200)}.dark\\:hover\\:bg-zinc-700:where(.dark,.dark *):hover{background-color:var(--color-zinc-700)}.dark\\:hover\\:bg-zinc-800:where(.dark,.dark *):hover{background-color:var(--color-zinc-800)}.dark\\:hover\\:text-white:where(.dark,.dark *):hover{color:var(--color-white)}.dark\\:hover\\:text-zinc-200:where(.dark,.dark *):hover{color:var(--color-zinc-200)}}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes pulse{50%{opacity:.5}}`;var te=!1;function Xe(){if(te||typeof document>"u")return;if(document.querySelector("[data-m1kapp-ui]")){te=!0;return}te=!0;let e=document.createElement("style");e.setAttribute("data-m1kapp-ui",""),e.textContent=we,document.head.appendChild(e)}Xe();import{jsx as ve}from"react/jsx-runtime";var Qe={dark:"bg-zinc-900 text-white hover:bg-zinc-700 dark:bg-white dark:text-zinc-900 dark:hover:bg-zinc-200",light:"bg-zinc-100 text-zinc-600 hover:bg-zinc-200 dark:bg-zinc-800 dark:text-zinc-300 dark:hover:bg-zinc-700"},et={rounded:"rounded-xl",pill:"rounded-full"};function tt({children:e,variant:t="dark",shape:r="rounded",full:a=!1,className:o="",...n}){let i=["inline-flex items-center justify-center px-5 py-2.5 text-sm font-bold transition-colors",Qe[t],et[r],a?"w-full":"",o].filter(Boolean).join(" ");if(n.href!==void 0){let{href:l,target:p,rel:d}=n;return ve("a",{href:l,target:p,rel:d,className:i,children:e})}let{onClick:s,disabled:c}=n;return ve("button",{onClick:s,disabled:c,className:i,children:e})}import{jsx as re}from"react/jsx-runtime";function rt({children:e,className:t="",maxWidth:r=430,maxHeight:a=932,style:o}){return re("div",{className:`w-full h-full flex flex-col bg-white dark:bg-zinc-950 shadow-2xl ring-1 ring-black/10 dark:ring-zinc-700 sm:rounded-2xl overflow-hidden ${t}`,style:{maxWidth:r,maxHeight:a,...o},children:e})}function ot({children:e,className:t=""}){return re("header",{className:`sticky top-0 z-20 h-14 px-4 flex items-center justify-between border-b border-zinc-100 dark:border-zinc-800 bg-white/90 dark:bg-zinc-950/90 backdrop-blur-md sm:rounded-t-2xl ${t}`,children:e})}function at({children:e,className:t=""}){return re("div",{className:`flex-1 overflow-y-auto scrollbar-hide ${t}`,children:e})}import{jsx as xe,jsxs as st}from"react/jsx-runtime";function nt({children:e,className:t=""}){return xe("nav",{className:`sticky bottom-0 z-20 border-t border-zinc-200 dark:border-zinc-800 flex bg-white/90 dark:bg-zinc-950/90 backdrop-blur-md rounded-b-2xl ${t}`,style:{paddingBottom:"env(safe-area-inset-bottom)"},children:e})}function it({active:e,onClick:t,icon:r,label:a,activeColor:o}){return st("button",{onClick:t,className:`flex-1 flex flex-col items-center gap-0.5 py-2.5 transition-colors ${e?"":"text-zinc-300 dark:text-zinc-600"}`,style:e?{color:o}:void 0,children:[r,xe("span",{className:"text-[10px] font-medium",children:a})]})}import{jsx as ke}from"react/jsx-runtime";function ct({children:e,className:t=""}){return ke("section",{className:`px-4 ${t}`,children:e})}function lt({children:e}){return ke("h2",{className:"text-[11px] font-semibold text-zinc-400 dark:text-zinc-500 uppercase mb-3",children:e})}import{jsx as pt}from"react/jsx-runtime";function dt({className:e=""}){return pt("div",{className:`mx-4 my-6 h-px bg-zinc-200 dark:bg-zinc-800 ${e}`})}import{jsx as ye,jsxs as gt}from"react/jsx-runtime";function ut({label:e,value:t,className:r=""}){return gt("div",{className:`flex-1 rounded-xl bg-zinc-100 dark:bg-zinc-900 px-3 py-3 text-center ${r}`,children:[ye("p",{className:"text-[10px] text-zinc-500 dark:text-zinc-400 font-medium mb-0.5",children:e}),ye("p",{className:"text-lg font-bold tabular-nums text-zinc-900 dark:text-white",children:t.toLocaleString()})]})}import{jsx as V,jsxs as ze}from"react/jsx-runtime";function ft({message:e,icon:t}){return ze("div",{className:"flex flex-col items-center justify-center py-12 gap-2",children:[t||ze("svg",{width:"32",height:"32",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",className:"text-zinc-200 dark:text-zinc-700",children:[V("circle",{cx:"12",cy:"12",r:"10"}),V("path",{d:"M8 15h8"}),V("circle",{cx:"9",cy:"9",r:"1",fill:"currentColor",stroke:"none"}),V("circle",{cx:"15",cy:"9",r:"1",fill:"currentColor",stroke:"none"})]}),V("p",{className:"text-sm text-zinc-400 dark:text-zinc-500",children:e})]})}import{useId as mt}from"react";import{jsx as R,jsxs as oe}from"react/jsx-runtime";var ht=`
4
4
  html { height: 100dvh; }
5
5
  .wm-link { transition: opacity 0.15s; }
6
6
  .wm-link:hover { opacity: 0.35; }
@@ -9,4 +9,4 @@ html { height: 100dvh; }
9
9
  0% { opacity: 0; transform: translateY(4px); }
10
10
  100% { opacity: 1; transform: translateY(0); }
11
11
  }
12
- `})]})}import{useEffect as $t,useState as Lt}from"react";import{createPortal as Ot}from"react-dom";import{jsx as I,jsxs as Re}from"react/jsx-runtime";var Ce=[{label:"\uC790\uC8FC \uC4F0\uB294",emojis:["\u{1F3E0}","\u{1F50D}","\u{1F464}","\u2B50","\u2764\uFE0F","\u{1F525}","\u2705","\u{1F4CC}","\u{1F3AF}","\u{1F4A1}","\u{1F680}","\u{1F4AC}","\u{1F44D}","\u{1F64C}","\u{1F4AA}","\u{1F389}","\u{1F4E2}","\u{1F511}","\u26A1","\u{1F31F}","\u{1F380}","\u{1F9E1}","\u{1FAF6}","\u{1F947}"]},{label:"\uAC10\uC815",emojis:["\u{1F600}","\u{1F604}","\u{1F606}","\u{1F60E}","\u{1F979}","\u{1F60D}","\u{1F929}","\u{1F605}","\u{1F602}","\u{1F972}","\u{1F62D}","\u{1F624}","\u{1F914}","\u{1F607}","\u{1FAF6}","\u{1F917}","\u{1F634}","\u{1F92F}","\u{1F973}","\u{1F62C}","\u{1FAE0}","\u{1F92B}","\u{1F636}","\u{1FAE1}"]},{label:"\uB3D9\uBB3C",emojis:["\u{1F436}","\u{1F431}","\u{1F42D}","\u{1F439}","\u{1F430}","\u{1F98A}","\u{1F43B}","\u{1F43C}","\u{1F428}","\u{1F42F}","\u{1F981}","\u{1F42E}","\u{1F437}","\u{1F438}","\u{1F435}","\u{1F414}","\u{1F427}","\u{1F426}","\u{1F986}","\u{1F989}","\u{1F98B}","\u{1F422}","\u{1F42C}","\u{1F433}"]},{label:"\uC0AC\uBB3C",emojis:["\u{1F4F1}","\u{1F4BB}","\u2328\uFE0F","\u{1F5A5}\uFE0F","\u{1F4F7}","\u{1F3B5}","\u{1F3AE}","\u{1F4DA}","\u{1F4B0}","\u{1F381}","\u{1F514}","\u{1F4CA}","\u{1F5D3}\uFE0F","\u26A1","\u{1F527}","\u{1F48A}","\u{1F9EA}","\u{1F52D}","\u{1F399}\uFE0F","\u{1F58B}\uFE0F","\u{1F4E6}","\u{1F6CD}\uFE0F","\u{1F4B3}","\u{1F510}"]},{label:"\uC790\uC5F0",emojis:["\u{1F308}","\u{1F338}","\u{1F33F}","\u{1F340}","\u{1F319}","\u2600\uFE0F","\u2B50","\u{1F30A}","\u{1F34E}","\u{1F33A}","\u2744\uFE0F","\u{1F334}","\u{1F335}","\u{1F344}","\u{1F33B}","\u{1F30D}","\u26C5","\u{1F32A}\uFE0F","\u{1F305}","\u{1F341}","\u{1F33E}","\u{1FAB8}","\u{1FAE7}","\u2604\uFE0F"]},{label:"\uD65C\uB3D9",emojis:["\u{1F3C3}","\u{1F9D8}","\u{1F3A8}","\u{1F373}","\u2708\uFE0F","\u{1F3D5}\uFE0F","\u{1F3A4}","\u{1F3CB}\uFE0F","\u{1F938}","\u{1F9E9}","\u{1F3AD}","\u{1F6D2}","\u{1F6B4}","\u{1F3CA}","\u26F7\uFE0F","\u{1F3B8}","\u{1F3B9}","\u{1F4F8}","\u{1F9D7}","\u{1F93F}","\u{1F3B2}","\u{1F3C6}","\u{1F3AF}","\u{1FA84}"]}];function Dt({emoji:e,onClick:t,className:r=""}){return I("button",{onClick:t,className:`w-9 h-9 rounded-full flex items-center justify-center text-lg bg-zinc-100 dark:bg-zinc-800 hover:bg-zinc-200 dark:hover:bg-zinc-700 transition-all hover:scale-110 active:scale-90 ${r}`,title:"Pick emoji",children:e})}function Ft({open:e,onClose:t,current:r,onSelect:a}){let[o,n]=Lt(0);if($t(()=>{if(!e)return;let s=c=>{c.key==="Escape"&&t()};return window.addEventListener("keydown",s),()=>window.removeEventListener("keydown",s)},[e,t]),!e)return null;let{emojis:i}=Ce[o];return Ot(Re("div",{className:"fixed inset-0 z-50 flex items-end justify-center",onClick:t,children:[I("div",{className:"absolute inset-0 bg-black/40 backdrop-blur-sm"}),Re("div",{className:"relative z-10 w-full max-w-101.5 mb-3 mx-3 rounded-2xl bg-white dark:bg-zinc-900 shadow-2xl overflow-hidden",onClick:s=>s.stopPropagation(),children:[I("div",{className:"px-4 pt-4 pb-3",children:I("p",{className:"text-sm font-bold text-zinc-900 dark:text-white",children:"\uC774\uBAA8\uC9C0"})}),I("div",{className:"flex gap-1 px-4 pb-3 overflow-x-auto scrollbar-hide",children:Ce.map((s,c)=>I("button",{onClick:()=>n(c),className:`shrink-0 px-3 py-1.5 rounded-full text-xs font-semibold transition-colors ${o===c?"bg-zinc-900 dark:bg-white text-white dark:text-zinc-900":"bg-zinc-100 dark:bg-zinc-800 text-zinc-500 dark:text-zinc-400 hover:bg-zinc-200 dark:hover:bg-zinc-700"}`,children:s.label},s.label))}),I("div",{className:"px-4 pb-3 grid grid-cols-6 gap-2",children:i.map(s=>I("button",{onClick:()=>{a(s),t()},className:`h-11 rounded-xl flex items-center justify-center text-2xl transition-all hover:scale-110 active:scale-90 ${r===s?"bg-zinc-900 dark:bg-white":"bg-zinc-100 dark:bg-zinc-800 hover:bg-zinc-200 dark:hover:bg-zinc-700"}`,children:s},s))}),I("div",{className:"px-4 py-3 border-t border-zinc-100 dark:border-zinc-800",children:I("button",{onClick:t,className:"w-full py-2.5 rounded-xl bg-zinc-100 dark:bg-zinc-800 text-sm font-medium text-zinc-600 dark:text-zinc-400 hover:bg-zinc-200 dark:hover:bg-zinc-700 transition-colors",children:"\uB2EB\uAE30"})})]})]}),document.body)}import{useState as jt}from"react";import{createPortal as Wt}from"react-dom";import{Fragment as Vt,jsx as ie,jsxs as _t}from"react/jsx-runtime";function Ut({label:e,children:t,placement:r="top"}){let[a,o]=jt(null),n=l=>{o(l.currentTarget.getBoundingClientRect())},i=()=>o(null),s=a?r==="top"?a.top+window.scrollY-36:a.bottom+window.scrollY+8:0,c=a?a.left+window.scrollX+a.width/2:0;return _t(Vt,{children:[ie("span",{className:"inline-flex",onMouseEnter:n,onMouseLeave:i,onFocus:n,onBlur:i,children:t}),a&&Wt(ie("div",{className:"fixed z-[9999] pointer-events-none",style:{top:s,left:c,transform:"translateX(-50%)"},children:ie("div",{className:"px-3 py-1.5 rounded-xl bg-zinc-900 dark:bg-zinc-100 text-white dark:text-zinc-900 text-xs font-semibold whitespace-nowrap shadow-lg animate-in fade-in zoom-in-95 duration-100",children:e})}),document.body)]})}import{useState as Me,useMemo as Be,useRef as Ht}from"react";import{jsx as S,jsxs as F}from"react/jsx-runtime";function qt(e){let[,t,r]=e.split("-");return`${parseInt(t)}\uC6D4 ${parseInt(r)}\uC77C`}function Ie(e){return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`}var _=13,Gt=3,j=_+Gt,Yt=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Kt=["","Mon","","Wed","","Fri",""];function Jt(e){let t=e.replace("#","");return[parseInt(t.slice(0,2),16),parseInt(t.slice(2,4),16),parseInt(t.slice(4,6),16)]}function Ae(e,t,r,a){if(e===0)return r?"rgb(39, 39, 42)":"rgb(244, 244, 245)";let o=e/t,[n,i,s]=Jt(a);if(r){let p=[.25,.4,.6,.9],d=o>.75?p[3]:o>.5?p[2]:o>.25?p[1]:p[0];return`rgba(${n}, ${i}, ${s}, ${d})`}let c=[.8,.6,.4,.15],l=o>.75?c[3]:o>.5?c[2]:o>.25?c[1]:c[0];return`rgb(${Math.round(n+(255-n)*l)}, ${Math.round(i+(255-i)*l)}, ${Math.round(s+(255-s)*l)})`}function Zt({data:e,accent:t,isDark:r=!1,unit:a=""}){let[o,n]=Me(null),i=Ht(null),s=Be(()=>{let u=new Set,x=new Date().getFullYear();u.add(x);for(let B of e)u.add(new Date(B.date).getFullYear());return Array.from(u).sort((B,U)=>U-B)},[e]),[c,l]=Me(new Date().getFullYear()),p=Be(()=>new Map(e.map(u=>[u.date,u.count])),[e]),d=e.length>0?e[0].date:null,g=d?new Date(d).toLocaleDateString("ko-KR",{year:"numeric",month:"long",day:"numeric"}):null,h=new Date,v=Ie(h),T=new Date(c,0,1),k=new Date(c,11,31),P=new Date(T);P.setDate(P.getDate()-P.getDay());let N=[],M=Math.ceil((k.getTime()-P.getTime())/(1e3*60*60*24))+1;for(let u=0;u<M;u++){let x=new Date(P);if(x.setDate(x.getDate()+u),x>k)break;let B=Ie(x),U=Math.floor(u/7),Y=u%7,K=x<T,ee=x>h;N.push({date:B,count:p.get(B)||0,col:U,row:Y,isOutOfRange:K,isFuture:ee})}let C=Math.max(...N.map(u=>u.count),1),E=N.length>0?Math.max(...N.map(u=>u.col))+1:1,m=[],b=-1;for(let u of N){if(u.row!==0||u.isOutOfRange)continue;let x=new Date(u.date).getMonth();x!==b&&(m.push({label:Yt[x],col:u.col}),b=x)}let y=36,L=22,Je=y+E*j,Ze=L+7*j;return F("div",{ref:i,className:"relative space-y-4",children:[F("div",{className:"flex items-center justify-between flex-wrap gap-2",children:[S("div",{className:"flex items-center gap-1.5",children:s.map(u=>S("button",{onClick:()=>l(u),className:`px-3 py-1 rounded-lg text-xs font-medium transition-colors ${c===u?"bg-zinc-900 dark:bg-white text-white dark:text-zinc-900":"bg-zinc-100 dark:bg-zinc-800 text-zinc-400 dark:text-zinc-500 hover:bg-zinc-200 dark:hover:bg-zinc-700"}`,children:u},u))}),g&&F("p",{className:"text-[11px] text-zinc-400 dark:text-zinc-500",children:["\uCCAB \uAE30\uB85D ",S("span",{className:"font-medium text-zinc-600 dark:text-zinc-400",children:g})]})]}),S("div",{className:"overflow-x-auto",children:F("svg",{width:Je,height:Ze,className:"block mx-auto",onMouseLeave:()=>n(null),children:[m.map((u,x)=>S("text",{x:y+u.col*j,y:13,className:"fill-zinc-400",fontFamily:"system-ui, sans-serif",fontSize:10,children:u.label},`${u.label}-${x}`)),Kt.map((u,x)=>u?S("text",{x:0,y:L+x*j+_-2,className:"fill-zinc-300",fontFamily:"system-ui, sans-serif",fontSize:9,children:u},x):null),N.map(u=>{let x=u.date===v,B=u.date===d,U=u.isOutOfRange?"transparent":u.isFuture?r?"rgb(24, 24, 27)":"rgb(250, 250, 250)":B?t:Ae(u.count,C,r,t),Y=y+u.col*j,K=L+u.row*j;return S("rect",{x:Y,y:K,width:_,height:_,rx:3,fill:U,stroke:B?t:"none",strokeWidth:B?1.5:0,style:{cursor:u.isOutOfRange?"default":"pointer"},onMouseEnter:ee=>{if(u.isOutOfRange)return;let he=ee.currentTarget.ownerSVGElement.getBoundingClientRect(),be=i.current.getBoundingClientRect();n({x:Y+he.left-be.left+_/2,y:K+he.top-be.top,date:u.date,count:u.count,isFirst:B,isToday:x,isFuture:u.isFuture})}},u.date)})]})}),o&&F("div",{className:"pointer-events-none absolute z-30 -translate-x-1/2 -translate-y-full",style:{left:o.x,top:o.y-6},children:[F("div",{className:"bg-zinc-900 dark:bg-zinc-100 text-white dark:text-zinc-900 text-[11px] rounded-lg px-2.5 py-1.5 shadow-lg whitespace-nowrap",children:[S("span",{className:"font-medium",children:qt(o.date)}),!o.isFuture&&S("span",{className:"ml-1.5 tabular-nums",children:o.count>0?`${o.count.toLocaleString()}${a}`:"\uAE30\uB85D \uC5C6\uC74C"}),o.isFirst&&S("span",{className:"ml-1.5 text-[10px] opacity-70",children:"\u{1F331} \uCCAB \uAE30\uB85D"}),o.isToday&&!o.isFirst&&S("span",{className:"ml-1.5 text-[10px] opacity-70",children:"\uC624\uB298"})]}),S("div",{className:"mx-auto w-0 h-0 border-l-4 border-r-4 border-t-4 border-l-transparent border-r-transparent border-t-zinc-900 dark:border-t-zinc-100"})]}),F("div",{className:"flex items-center justify-end gap-1.5 text-[10px] text-zinc-400 dark:text-zinc-500",children:[S("span",{children:"Less"}),[0,.15,.35,.6,.85].map((u,x)=>S("div",{className:"w-3 h-3 rounded-xs",style:{backgroundColor:u===0?r?"rgb(39, 39, 42)":"rgb(244, 244, 245)":Ae(Math.ceil(u*10),10,r,t)}},x)),S("span",{children:"More"}),S("div",{className:"ml-2 w-3 h-3 rounded-xs",style:{backgroundColor:t,opacity:.6}}),S("span",{children:"1st"})]})]})}import{useState as Xt}from"react";import{jsx as $e}from"react/jsx-runtime";var Qt={xs:{box:"w-6 h-6",text:"text-[9px]",px:24},sm:{box:"w-8 h-8",text:"text-[11px]",px:32},md:{box:"w-10 h-10",text:"text-sm",px:40},lg:{box:"w-14 h-14",text:"text-lg",px:56},xl:{box:"w-20 h-20",text:"text-2xl",px:80}};function er({src:e,fallback:t,size:r="md",shape:a="circle",color:o="#3f3f46",className:n=""}){let{box:i,text:s}=Qt[r],c=a==="circle"?"rounded-full":"rounded-xl",[l,p]=Xt(!1);if(e&&!l)return $e("img",{src:e,alt:t,onError:()=>p(!0),className:`${i} ${c} object-cover flex-shrink-0 ${n}`});let d=t.trim().slice(0,2).toUpperCase();return $e("div",{className:`${i} ${c} flex items-center justify-center flex-shrink-0 font-bold select-none ${s} ${n}`,style:{backgroundColor:o,color:"#ffffff"},"aria-label":t,children:d})}import{jsx as ar}from"react/jsx-runtime";var tr={default:"bg-zinc-100 dark:bg-zinc-800 text-zinc-600 dark:text-zinc-400",green:"bg-green-100 dark:bg-green-950 text-green-700 dark:text-green-400",red:"bg-red-100 dark:bg-red-950 text-red-700 dark:text-red-400",yellow:"bg-yellow-100 dark:bg-yellow-950 text-yellow-700 dark:text-yellow-400",blue:"bg-blue-100 dark:bg-blue-950 text-blue-700 dark:text-blue-400",purple:"bg-purple-100 dark:bg-purple-950 text-purple-700 dark:text-purple-400",orange:"bg-orange-100 dark:bg-orange-950 text-orange-700 dark:text-orange-400"},rr={sm:"text-[10px] px-1.5 py-0.5",md:"text-xs px-2 py-0.5"};function or({children:e,variant:t="default",size:r="md",className:a=""}){return ar("span",{className:`inline-flex items-center font-semibold rounded-full leading-none ${tr[t]} ${rr[r]} ${a}`,children:e})}import{useCallback as nr,useState as ir}from"react";import{Fragment as Le,jsx as A,jsxs as se}from"react/jsx-runtime";function Oe(e){let[t,r]=ir(!1),a=typeof navigator<"u"&&typeof navigator.share=="function";return{share:nr(async n=>{let i={...e,...n},s=i.url??(typeof window<"u"?window.location.href:"");if(a)try{await navigator.share({title:i.title,text:i.text,url:s});return}catch(c){if(c.name==="AbortError")return}try{await navigator.clipboard.writeText(s),r(!0),setTimeout(()=>r(!1),2e3)}catch{}},[a]),copied:t,canNativeShare:a}}function sr({url:e,title:t,text:r,label:a="\uACF5\uC720",copiedLabel:o="\uB9C1\uD06C \uBCF5\uC0AC\uB428",className:n=""}){let{share:i,copied:s}=Oe({url:e,title:t,text:r});return A("button",{onClick:()=>i(),className:`flex items-center gap-1.5 px-3 py-1.5 rounded-xl text-sm font-semibold bg-zinc-100 dark:bg-zinc-800 text-zinc-700 dark:text-zinc-300 hover:bg-zinc-200 dark:hover:bg-zinc-700 active:scale-95 transition-all ${n}`,children:s?se(Le,{children:[A(lr,{}),o]}):se(Le,{children:[A(cr,{}),a]})})}function cr(){return se("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[A("circle",{cx:"18",cy:"5",r:"3"}),A("circle",{cx:"6",cy:"12",r:"3"}),A("circle",{cx:"18",cy:"19",r:"3"}),A("line",{x1:"8.59",y1:"13.51",x2:"15.42",y2:"17.49"}),A("line",{x1:"15.41",y1:"6.51",x2:"8.59",y2:"10.49"})]})}function lr(){return A("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:A("polyline",{points:"20 6 9 17 4 12"})})}import{createContext as dr,useContext as pr,useState as De,useCallback as ur,useEffect as gr}from"react";import{jsx as ce,jsxs as wr}from"react/jsx-runtime";var Fe=dr(null);function fr({children:e}){let[t,r]=De([]),a=ur((o,n)=>{let i=Math.random().toString(36).slice(2,9),s=n?.duration??2500;r(c=>[...c,{id:i,message:o,variant:n?.variant??"default",duration:s}]),setTimeout(()=>{r(c=>c.filter(l=>l.id!==i))},s)},[]);return wr(Fe.Provider,{value:a,children:[e,ce("div",{"aria-live":"polite","aria-atomic":"false",className:"fixed bottom-24 inset-x-0 z-[9999] flex flex-col items-center gap-2 px-4 pointer-events-none",children:t.map(o=>ce(hr,{item:o},o.id))})]})}var mr={default:"bg-zinc-900 dark:bg-zinc-100 text-white dark:text-zinc-900",success:"bg-green-600 text-white",error:"bg-red-600 text-white",info:"bg-blue-600 text-white"};function hr({item:e}){let[t,r]=De(!1);return gr(()=>{let a=requestAnimationFrame(()=>r(!0));return()=>cancelAnimationFrame(a)},[]),ce("div",{role:"status",className:`pointer-events-auto w-full max-w-[390px] px-4 py-3 rounded-2xl text-sm font-semibold shadow-xl text-center transition-all duration-300 ${mr[e.variant]} ${t?"opacity-100 translate-y-0":"opacity-0 translate-y-3"}`,children:e.message})}function br(){let e=pr(Fe);if(!e)throw new Error("useToast must be used inside <ToastProvider>");return e}import{useState as vr,useCallback as je}from"react";function xr(e,t){let[r,a]=vr(()=>{if(typeof window>"u")return t;try{let i=window.localStorage.getItem(e);return i!==null?JSON.parse(i):t}catch{return t}}),o=je(i=>{a(s=>{let c=typeof i=="function"?i(s):i;try{window.localStorage.setItem(e,JSON.stringify(c))}catch{}return c})},[e]),n=je(()=>{try{window.localStorage.removeItem(e)}catch{}a(t)},[e]);return[r,o,n]}import{useState as kr,useEffect as yr}from"react";function zr(e,t){let[r,a]=kr(e);return yr(()=>{let o=setTimeout(()=>a(e),t);return()=>clearTimeout(o)},[e,t]),r}import{useState as le,useCallback as We,useRef as Ue}from"react";function Sr(e,t={}){let[r,a]=le(!1),[o,n]=le(null),[i,s]=le(void 0),c=Ue(e),l=Ue(t);c.current=e,l.current=t;let p=We(async g=>{a(!0),n(null);try{let h=await c.current(g);s(h),l.current.onSuccess?.(h)}catch(h){let v=h instanceof Error?h:new Error(String(h));n(v),l.current.onError?.(v)}finally{a(!1)}},[]),d=We(()=>{n(null),s(void 0)},[]);return{submit:p,loading:r,error:o,data:i,reset:d}}import{useState as Tr,useCallback as Nr,useRef as Pr}from"react";function Er(e={}){let{threshold:t=0,rootMargin:r="0px",once:a=!1}=e,[o,n]=Tr(!1),i=Pr(null);return{ref:Nr(c=>{i.current?.disconnect(),i.current=null,c&&(i.current=new IntersectionObserver(([l])=>{n(l.isIntersecting),l.isIntersecting&&a&&i.current?.disconnect()},{threshold:t,rootMargin:r}),i.current.observe(c))},[t,r,a]),inView:o}}import{jsx as Mr}from"react/jsx-runtime";var Cr={sm:"rounded-sm",md:"rounded-md",lg:"rounded-lg",xl:"rounded-xl","2xl":"rounded-2xl",full:"rounded-full"};function Rr({className:e="",rounded:t="md"}){return Mr("div",{className:`animate-pulse bg-zinc-200 dark:bg-zinc-800 ${Cr[t]} ${e}`,"aria-hidden":"true"})}import{useEffect as de,useRef as Br,useState as Ve}from"react";import{createPortal as Ir}from"react-dom";import{jsx as H,jsxs as pe}from"react/jsx-runtime";var Ar={sm:"max-w-sm",md:"max-w-md",lg:"max-w-lg"};function $r({open:e,onClose:t,title:r,size:a="sm",children:o,persistent:n=!1,className:i=""}){let[s,c]=Ve(!1),[l,p]=Ve(!1),d=Br(null);return de(()=>{if(e)c(!0),requestAnimationFrame(()=>requestAnimationFrame(()=>p(!0)));else{p(!1);let g=setTimeout(()=>c(!1),200);return()=>clearTimeout(g)}},[e]),de(()=>{if(!e||n)return;let g=h=>{h.key==="Escape"&&t()};return document.addEventListener("keydown",g),()=>document.removeEventListener("keydown",g)},[e,t,n]),de(()=>{if(e){let g=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=g}}},[e]),!s||typeof document>"u"?null:Ir(pe("div",{role:"dialog","aria-modal":"true","aria-labelledby":r?"dialog-title":void 0,className:"fixed inset-0 z-[200] flex items-end sm:items-center justify-center p-4",children:[H("div",{className:`absolute inset-0 bg-black/50 transition-opacity duration-200 ${l?"opacity-100":"opacity-0"}`,onClick:n?void 0:t}),pe("div",{ref:d,className:`relative w-full ${Ar[a]} bg-white dark:bg-zinc-900 rounded-3xl shadow-2xl p-6 transition-all duration-200 ${l?"opacity-100 translate-y-0 scale-100":"opacity-0 translate-y-4 scale-95"} ${i}`,children:[!n&&H("button",{onClick:t,className:"absolute top-4 right-4 p-1.5 rounded-full text-zinc-400 hover:text-zinc-700 dark:hover:text-zinc-200 hover:bg-zinc-100 dark:hover:bg-zinc-800 transition-colors","aria-label":"\uB2EB\uAE30",children:pe("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[H("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),H("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})}),r&&H("h2",{id:"dialog-title",className:"text-lg font-bold text-zinc-900 dark:text-white mb-4 pr-6",children:r}),o]})]}),document.body)}import{useState as _e,useEffect as Lr}from"react";function ue(){let[e,t]=_e(null),[r,a]=_e(!1);Lr(()=>{if(window.matchMedia("(display-mode: standalone)").matches||navigator.standalone===!0){a(!0);return}let s=l=>{l.preventDefault(),t(l)},c=()=>a(!0);return window.addEventListener("beforeinstallprompt",s),window.addEventListener("appinstalled",c),()=>{window.removeEventListener("beforeinstallprompt",s),window.removeEventListener("appinstalled",c)}},[]);let o=r?"installed":e?"android-ready":Or()?"ios-safari":"unsupported";async function n(){if(!e)return;await e.prompt();let{outcome:i}=await e.userChoice;i==="accepted"&&a(!0),t(null)}return{state:o,install:n}}function Or(){if(typeof navigator>"u")return!1;let e=navigator.userAgent;return/iphone|ipad|ipod/i.test(e)&&!/CriOS|FxiOS|OPiOS|EdgiOS/i.test(e)}import{useState as Dr}from"react";import{Fragment as q,jsx as f,jsxs as z}from"react/jsx-runtime";function Fr({appName:e="\uC571",iconSrc:t,label:r="\uC571\uC73C\uB85C \uC124\uCE58",installedLabel:a,className:o}){let{state:n,install:i}=ue(),[s,c]=Dr(!1);if(n==="installed")return a?z("div",{className:`flex items-center gap-2 text-sm text-zinc-400 ${o??""}`,children:[f(Wr,{}),f("span",{children:a})]}):null;if(n==="unsupported")return null;function l(){n==="android-ready"?i():n==="ios-safari"&&c(!0)}return z(q,{children:[z("button",{onClick:l,className:`flex items-center gap-2 px-4 py-2.5 rounded-xl bg-zinc-900 dark:bg-zinc-100 text-white dark:text-zinc-900 text-sm font-semibold transition-all active:scale-95 ${o??""}`,children:[f(qe,{}),f("span",{children:r}),n==="ios-safari"&&f(jr,{})]}),n==="ios-safari"&&f(He,{open:s,onClose:()=>c(!1),appName:e,iconSrc:t})]})}function He({open:e,onClose:t,appName:r,iconSrc:a}){return e?z(q,{children:[f("div",{className:"fixed inset-0 z-[9998] bg-black/40 backdrop-blur-sm",onClick:t}),z("div",{className:"fixed bottom-0 left-1/2 -translate-x-1/2 z-[9999] w-full max-w-[430px] rounded-t-2xl bg-white dark:bg-zinc-900 shadow-2xl",children:[f("div",{className:"flex justify-center pt-3 pb-1",children:f("div",{className:"w-9 h-1 rounded-full bg-zinc-200 dark:bg-zinc-700"})}),z("div",{className:"px-5 pb-8 pt-3",children:[z("div",{className:"flex items-center gap-3 mb-5",children:[a?f("img",{src:a,alt:r,className:"w-12 h-12 rounded-xl shadow"}):f("div",{className:"w-12 h-12 rounded-xl bg-zinc-100 dark:bg-zinc-800 flex items-center justify-center",children:f(qe,{size:22,className:"text-zinc-400"})}),z("div",{children:[z("p",{className:"font-bold text-zinc-900 dark:text-white text-base",children:[r," \uC124\uCE58\uD558\uAE30"]}),f("p",{className:"text-xs text-zinc-400 mt-0.5",children:"\uD648 \uD654\uBA74\uC5D0 \uCD94\uAC00\uD558\uBA74 \uC571\uCC98\uB7FC \uC0AC\uC6A9\uD560 \uC218 \uC788\uC5B4\uC694"})]})]}),f("div",{className:"space-y-3",children:[{icon:f(Ur,{}),text:z(q,{children:["\uD558\uB2E8 \uD234\uBC14\uC758 ",f("strong",{className:"text-zinc-900 dark:text-zinc-100",children:"\uACF5\uC720"})," \uBC84\uD2BC\uC744 \uD0ED\uD558\uC138\uC694"]})},{icon:f(Vr,{}),text:z(q,{children:["\uC2A4\uD06C\uB864\uD574\uC11C"," ",f("strong",{className:"text-zinc-900 dark:text-zinc-100",children:"\uD648 \uD654\uBA74\uC5D0 \uCD94\uAC00"}),"\uB97C \uD0ED\uD558\uC138\uC694"]})},{icon:f(_r,{}),text:z(q,{children:["\uC6B0\uCE21 \uC0C1\uB2E8 ",f("strong",{className:"text-zinc-900 dark:text-zinc-100",children:"\uCD94\uAC00"}),"\uB97C \uD0ED\uD558\uBA74 \uC644\uB8CC!"]})}].map((n,i)=>z("div",{className:"flex items-start gap-3",children:[f("div",{className:"w-8 h-8 rounded-xl bg-zinc-100 dark:bg-zinc-800 flex items-center justify-center flex-shrink-0 text-zinc-500 dark:text-zinc-400",children:n.icon}),f("div",{className:"flex-1 pt-1",children:z("p",{className:"text-sm text-zinc-600 dark:text-zinc-300 leading-relaxed",children:[f("span",{className:"inline-flex items-center justify-center w-4 h-4 rounded-full bg-zinc-200 dark:bg-zinc-700 text-[9px] font-bold text-zinc-500 dark:text-zinc-400 mr-1.5 flex-shrink-0",children:i+1}),n.text]})})]},i))}),z("div",{className:"mt-5 flex items-center gap-2 px-3 py-2.5 rounded-xl bg-zinc-50 dark:bg-zinc-800",children:[f(Hr,{}),f("p",{className:"text-xs text-zinc-400",children:"Safari \uBE0C\uB77C\uC6B0\uC800\uC5D0\uC11C\uB9CC \uD648 \uD654\uBA74 \uCD94\uAC00\uAC00 \uAC00\uB2A5\uD574\uC694"})]}),f("button",{onClick:t,className:"mt-3 w-full py-3 rounded-xl text-sm font-semibold text-zinc-500 dark:text-zinc-400 bg-zinc-100 dark:bg-zinc-800 hover:bg-zinc-200 dark:hover:bg-zinc-700 transition-colors",children:"\uB2EB\uAE30"})]})]})]}):null}function qe({size:e=16,className:t=""}){return z("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",className:t,children:[f("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),f("polyline",{points:"7 10 12 15 17 10"}),f("line",{x1:"12",y1:"15",x2:"12",y2:"3"})]})}function jr(){return f("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",className:"opacity-70",children:f("polyline",{points:"9 18 15 12 9 6"})})}function Wr(){return f("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:f("polyline",{points:"20 6 9 17 4 12"})})}function Ur(){return z("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[f("path",{d:"M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8"}),f("polyline",{points:"16 6 12 2 8 6"}),f("line",{x1:"12",y1:"2",x2:"12",y2:"15"})]})}function Vr(){return z("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[f("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"}),f("line",{x1:"12",y1:"8",x2:"12",y2:"16"}),f("line",{x1:"8",y1:"12",x2:"16",y2:"12"})]})}function _r(){return z("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[f("polyline",{points:"9 11 12 14 22 4"}),f("path",{d:"M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11"})]})}function Hr(){return z("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",className:"text-zinc-400 flex-shrink-0",children:[f("circle",{cx:"12",cy:"12",r:"10"}),f("polygon",{points:"16.24 7.76 14.12 14.12 7.76 16.24 9.88 9.88 16.24 7.76"})]})}var Qa={width:"device-width",initialScale:1,maximumScale:1,userScalable:!1};function Ge(e,t={}){let{size:r=192,bg:a="#000000",color:o="#ffffff",radius:n=.25,fontSize:i=.375}=t,s=Math.round(r*n),c=Math.round(r*i),l=a.replace("#","%23"),p=o.replace("#","%23");return`data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 ${r} ${r}'><rect width='${r}' height='${r}' rx='${s}' fill='${l}'/><text x='50%25' y='50%25' dominant-baseline='central' text-anchor='middle' font-family='system-ui,sans-serif' font-size='${c}' font-weight='900' fill='${p}'>${e}</text></svg>`}function en(e){let{name:t,shortName:r=t,description:a,startUrl:o="/",backgroundColor:n="#ffffff",themeColor:i="#000000",icon:s}=e,c=s?[{src:Ge(s.text,{size:192,bg:s.bg??i,color:s.color,radius:s.radius}),sizes:"192x192",type:"image/svg+xml"},{src:Ge(s.text,{size:512,bg:s.bg??i,color:s.color,radius:s.radius}),sizes:"512x512",type:"image/svg+xml"}]:[];return{name:t,short_name:r,...a&&{description:a},start_url:o,display:"standalone",orientation:"portrait",background_color:n,theme_color:i,icons:c}}var D=class extends Error{constructor(r,a,o,n,i){super(`${r} ${a}${n?` [${i??"GET"} ${n}]`:""}`);this.status=r;this.statusText=a;this.body=o;this.url=n;this.method=i;this.name="ApiError"}};async function G(e){return(e.headers.get("content-type")??"").includes("application/json")?e.json():e.text()}function qr(e,t={}){let r=e.replace(/\/$/,"");async function a(o,n,i,s={}){let c=n.startsWith("http")?n:`${r}/${n.replace(/^\//,"")}`,l={...t.headers,...s.headers};i!==void 0&&s.contentType!==null&&(l["Content-Type"]=s.contentType??"application/json");let p={method:o,headers:l,signal:s.signal};i!==void 0&&(p.body=i instanceof FormData?i:JSON.stringify(i));let d=new Request(c,p);t.onRequest&&(d=t.onRequest(d)??d);let g=await fetch(d);if(!g.ok){let h=await G(g).catch(()=>null),v=new D(g.status,g.statusText,h,c,o);throw t.onError?.(v),v}if(!(g.status===204||g.headers.get("content-length")==="0"))return G(g)}return{get:(o,n)=>a("GET",o,void 0,n),post:(o,n,i)=>a("POST",o,n,i),put:(o,n,i)=>a("PUT",o,n,i),patch:(o,n,i)=>a("PATCH",o,n,i),delete:(o,n)=>a("DELETE",o,void 0,n)}}import{useState as ge,useEffect as Ye,useCallback as Ke,useRef as Z}from"react";var Gr=500,$=new Map,fe=new Map;function Yr(e){e?$.delete(e):$.clear()}function Kr(e,t){$.size>=Gr&&$.delete($.keys().next().value),$.set(e,t)}async function Jr(e){let t=await fetch(e);if(!t.ok){let r=await G(t).catch(()=>null);throw new D(t.status,t.statusText,r,e,"GET")}return G(t)}async function Zr(e,t,r){let a;for(let o=0;o<=t;o++)try{return await e()}catch(n){if(a=n,n instanceof D)throw n;o<t&&await new Promise(i=>setTimeout(i,r*2**o))}throw a}function Xr(e,t={}){let{enabled:r=!0,staleTime:a=0,retry:o=2,retryDelay:n=1e3,revalidateOnFocus:i=!0,fetcher:s=Jr,onSuccess:c,onError:l}=t,[p,d]=ge(()=>{if(!e||a===0)return;let m=$.get(e);if(m&&Date.now()-m.ts<a)return m.data}),[g,h]=ge(()=>{if(!e||!r)return"idle";if(a>0){let m=$.get(e);if(m&&Date.now()-m.ts<a)return"success"}return"loading"}),[v,T]=ge(void 0),k=Z(!0),P=Z(s),N=Z(c),M=Z(l);P.current=s,N.current=c,M.current=l;let C=Ke(async(m=!1)=>{if(!e||!r){h(b=>b==="idle"?b:"idle");return}if(!m&&a>0){let b=$.get(e);if(b&&Date.now()-b.ts<a){d(b.data),h("success");return}}h("loading"),T(void 0);try{let b=fe.get(e);b||(b=Zr(()=>P.current(e),o,n),fe.set(e,b),b.finally(()=>fe.delete(e)));let y=await b;if(!k.current)return;Kr(e,{data:y,ts:Date.now()}),d(y),h("success"),N.current?.(y)}catch(b){if(!k.current)return;let y=b;T(y),h("error"),M.current?.(y)}},[e,r,a,o,n]),E=Ke(()=>C(!0),[C]);return Ye(()=>(k.current=!0,C(),()=>{k.current=!1}),[C]),Ye(()=>{if(!i)return;let m=()=>{document.visibilityState==="visible"&&C()};return document.addEventListener("visibilitychange",m),window.addEventListener("focus",m),()=>{document.removeEventListener("visibilitychange",m),window.removeEventListener("focus",m)}},[C,i]),{data:p,loading:g==="loading",error:v,status:g,refetch:E}}import{useState as X,useEffect as Q,useRef as W,useCallback as me}from"react";function Qr(e,t={}){let{interval:r=5e3,enabled:a=!0,pauseOnHidden:o=!0,onSuccess:n,onError:i}=t,[s,c]=X(void 0),[l,p]=X(!1),[d,g]=X(void 0),[h,v]=X(a),T=W(!0),k=W(null),P=W(r),N=W(e),M=W(n),C=W(i);P.current=r,N.current=e,M.current=n,C.current=i,Q(()=>(T.current=!0,()=>{T.current=!1}),[]);let E=me(async()=>{if(T.current){p(!0);try{let y=await N.current();if(!T.current)return;c(y),g(void 0),M.current?.(y)}catch(y){if(!T.current)return;let L=y;g(L),C.current?.(L)}finally{T.current&&p(!1)}}},[]),m=me(()=>{k.current&&(clearInterval(k.current),k.current=null)},[]),b=me(()=>{m(),k.current=setInterval(E,P.current)},[E,m]);return Q(()=>{if(!h){m();return}return E(),b(),m},[h,E,b,m]),Q(()=>{if(h)return m(),k.current=setInterval(E,P.current),m},[r]),Q(()=>{if(!o)return;let y=()=>{h&&(document.visibilityState==="hidden"?m():(E(),b()))};return document.addEventListener("visibilitychange",y),()=>document.removeEventListener("visibilitychange",y)},[h,o,E,b,m]),{data:s,loading:l,error:d,isRunning:h,stop:()=>v(!1),start:()=>v(!0),refetch:E}}function vn(e){let t=new Date(e),r=Date.now()-t.getTime(),a=Math.floor(r/1e3);return a<60?"\uBC29\uAE08 \uC804":a<3600?`${Math.floor(a/60)}\uBD84 \uC804`:a<86400?`${Math.floor(a/3600)}\uC2DC\uAC04 \uC804`:a<86400*2?"\uC5B4\uC81C":a<86400*7?`${Math.floor(a/86400)}\uC77C \uC804`:a<86400*30?`${Math.floor(a/(86400*7))}\uC8FC \uC804`:t.toLocaleDateString("ko-KR",{year:"numeric",month:"long",day:"numeric"})}function xn(e){let t=Math.abs(e),r=e<0?"-":"";return t>=1e8?`${r}${(t/1e8).toFixed(1).replace(/\.0$/,"")}\uC5B5`:t>=1e4?`${r}${(t/1e4).toFixed(1).replace(/\.0$/,"")}\uB9CC`:t>=1e3?`${r}${(t/1e3).toFixed(1).replace(/\.0$/,"")}\uCC9C`:e.toLocaleString("ko-KR")}function kn(e,t="KRW",r="ko-KR"){return new Intl.NumberFormat(r,{style:"currency",currency:t,maximumFractionDigits:t==="KRW"?0:2}).format(e)}function yn(...e){return e.filter(Boolean).join(" ")}export{D as ApiError,rt as AppShell,at as AppShellContent,ot as AppShellHeader,er as Avatar,or as Badge,tt as Button,$r as Dialog,dt as Divider,Dt as EmojiButton,Ft as EmojiPicker,ft as EmptyState,Zt as GrassMap,He as IOSInstallSheet,Fr as PWAInstallButton,ct as Section,lt as SectionHeader,sr as ShareButton,Rr as Skeleton,ut as StatChip,St as THEME_SCRIPT,it as Tab,nt as TabBar,Ct as ThemeButton,Rt as ThemeDialog,fr as ToastProvider,Ut as Tooltip,It as Typewriter,vt as Watermark,Yr as clearFetchCache,yn as cn,ae as colors,qr as createApiClient,en as createManifest,Bt as fontFamily,Mt as fonts,xn as formatNumber,kn as formatPrice,Qa as mobileViewport,vn as relativeTime,Ge as svgIcon,zr as useDebounce,Xr as useFetch,Sr as useFormSubmit,Er as useInView,xr as useLocalStorage,ue as usePWAInstall,Qr as usePolling,Oe as useShare,br as useToast};
12
+ `})]})}import{useEffect as $t,useState as Lt}from"react";import{createPortal as Ot}from"react-dom";import{jsx as I,jsxs as Re}from"react/jsx-runtime";var Ce=[{label:"\uC790\uC8FC \uC4F0\uB294",emojis:["\u{1F3E0}","\u{1F50D}","\u{1F464}","\u2B50","\u2764\uFE0F","\u{1F525}","\u2705","\u{1F4CC}","\u{1F3AF}","\u{1F4A1}","\u{1F680}","\u{1F4AC}","\u{1F44D}","\u{1F64C}","\u{1F4AA}","\u{1F389}","\u{1F4E2}","\u{1F511}","\u26A1","\u{1F31F}","\u{1F380}","\u{1F9E1}","\u{1FAF6}","\u{1F947}"]},{label:"\uAC10\uC815",emojis:["\u{1F600}","\u{1F604}","\u{1F606}","\u{1F60E}","\u{1F979}","\u{1F60D}","\u{1F929}","\u{1F605}","\u{1F602}","\u{1F972}","\u{1F62D}","\u{1F624}","\u{1F914}","\u{1F607}","\u{1FAF6}","\u{1F917}","\u{1F634}","\u{1F92F}","\u{1F973}","\u{1F62C}","\u{1FAE0}","\u{1F92B}","\u{1F636}","\u{1FAE1}"]},{label:"\uB3D9\uBB3C",emojis:["\u{1F436}","\u{1F431}","\u{1F42D}","\u{1F439}","\u{1F430}","\u{1F98A}","\u{1F43B}","\u{1F43C}","\u{1F428}","\u{1F42F}","\u{1F981}","\u{1F42E}","\u{1F437}","\u{1F438}","\u{1F435}","\u{1F414}","\u{1F427}","\u{1F426}","\u{1F986}","\u{1F989}","\u{1F98B}","\u{1F422}","\u{1F42C}","\u{1F433}"]},{label:"\uC0AC\uBB3C",emojis:["\u{1F4F1}","\u{1F4BB}","\u2328\uFE0F","\u{1F5A5}\uFE0F","\u{1F4F7}","\u{1F3B5}","\u{1F3AE}","\u{1F4DA}","\u{1F4B0}","\u{1F381}","\u{1F514}","\u{1F4CA}","\u{1F5D3}\uFE0F","\u26A1","\u{1F527}","\u{1F48A}","\u{1F9EA}","\u{1F52D}","\u{1F399}\uFE0F","\u{1F58B}\uFE0F","\u{1F4E6}","\u{1F6CD}\uFE0F","\u{1F4B3}","\u{1F510}"]},{label:"\uC790\uC5F0",emojis:["\u{1F308}","\u{1F338}","\u{1F33F}","\u{1F340}","\u{1F319}","\u2600\uFE0F","\u2B50","\u{1F30A}","\u{1F34E}","\u{1F33A}","\u2744\uFE0F","\u{1F334}","\u{1F335}","\u{1F344}","\u{1F33B}","\u{1F30D}","\u26C5","\u{1F32A}\uFE0F","\u{1F305}","\u{1F341}","\u{1F33E}","\u{1FAB8}","\u{1FAE7}","\u2604\uFE0F"]},{label:"\uD65C\uB3D9",emojis:["\u{1F3C3}","\u{1F9D8}","\u{1F3A8}","\u{1F373}","\u2708\uFE0F","\u{1F3D5}\uFE0F","\u{1F3A4}","\u{1F3CB}\uFE0F","\u{1F938}","\u{1F9E9}","\u{1F3AD}","\u{1F6D2}","\u{1F6B4}","\u{1F3CA}","\u26F7\uFE0F","\u{1F3B8}","\u{1F3B9}","\u{1F4F8}","\u{1F9D7}","\u{1F93F}","\u{1F3B2}","\u{1F3C6}","\u{1F3AF}","\u{1FA84}"]}];function Ft({emoji:e,onClick:t,className:r=""}){return I("button",{onClick:t,className:`w-9 h-9 rounded-full flex items-center justify-center text-lg bg-zinc-100 dark:bg-zinc-800 hover:bg-zinc-200 dark:hover:bg-zinc-700 transition-all hover:scale-110 active:scale-90 ${r}`,title:"Pick emoji",children:e})}function Dt({open:e,onClose:t,current:r,onSelect:a}){let[o,n]=Lt(0);if($t(()=>{if(!e)return;let s=c=>{c.key==="Escape"&&t()};return window.addEventListener("keydown",s),()=>window.removeEventListener("keydown",s)},[e,t]),!e)return null;let{emojis:i}=Ce[o];return Ot(Re("div",{className:"fixed inset-0 z-50 flex items-end justify-center",onClick:t,children:[I("div",{className:"absolute inset-0 bg-black/40 backdrop-blur-sm"}),Re("div",{className:"relative z-10 w-full max-w-101.5 mb-3 mx-3 rounded-2xl bg-white dark:bg-zinc-900 shadow-2xl overflow-hidden",onClick:s=>s.stopPropagation(),children:[I("div",{className:"px-4 pt-4 pb-3",children:I("p",{className:"text-sm font-bold text-zinc-900 dark:text-white",children:"\uC774\uBAA8\uC9C0"})}),I("div",{className:"flex gap-1 px-4 pb-3 overflow-x-auto scrollbar-hide",children:Ce.map((s,c)=>I("button",{onClick:()=>n(c),className:`shrink-0 px-3 py-1.5 rounded-full text-xs font-semibold transition-colors ${o===c?"bg-zinc-900 dark:bg-white text-white dark:text-zinc-900":"bg-zinc-100 dark:bg-zinc-800 text-zinc-500 dark:text-zinc-400 hover:bg-zinc-200 dark:hover:bg-zinc-700"}`,children:s.label},s.label))}),I("div",{className:"px-4 pb-3 grid grid-cols-6 gap-2",children:i.map(s=>I("button",{onClick:()=>{a(s),t()},className:`h-11 rounded-xl flex items-center justify-center text-2xl transition-all hover:scale-110 active:scale-90 ${r===s?"bg-zinc-900 dark:bg-white":"bg-zinc-100 dark:bg-zinc-800 hover:bg-zinc-200 dark:hover:bg-zinc-700"}`,children:s},s))}),I("div",{className:"px-4 py-3 border-t border-zinc-100 dark:border-zinc-800",children:I("button",{onClick:t,className:"w-full py-2.5 rounded-xl bg-zinc-100 dark:bg-zinc-800 text-sm font-medium text-zinc-600 dark:text-zinc-400 hover:bg-zinc-200 dark:hover:bg-zinc-700 transition-colors",children:"\uB2EB\uAE30"})})]})]}),document.body)}import{useState as jt}from"react";import{createPortal as Wt}from"react-dom";import{Fragment as Vt,jsx as ie,jsxs as _t}from"react/jsx-runtime";function Ut({label:e,children:t,placement:r="top"}){let[a,o]=jt(null),n=l=>{o(l.currentTarget.getBoundingClientRect())},i=()=>o(null),s=a?r==="top"?a.top+window.scrollY-36:a.bottom+window.scrollY+8:0,c=a?a.left+window.scrollX+a.width/2:0;return _t(Vt,{children:[ie("span",{className:"inline-flex",onMouseEnter:n,onMouseLeave:i,onFocus:n,onBlur:i,children:t}),a&&Wt(ie("div",{className:"fixed z-[9999] pointer-events-none",style:{top:s,left:c,transform:"translateX(-50%)"},children:ie("div",{className:"px-3 py-1.5 rounded-xl bg-zinc-900 dark:bg-zinc-100 text-white dark:text-zinc-900 text-xs font-semibold whitespace-nowrap shadow-lg animate-in fade-in zoom-in-95 duration-100",children:e})}),document.body)]})}import{useState as Me,useMemo as Be,useRef as Ht}from"react";import{jsx as S,jsxs as D}from"react/jsx-runtime";function qt(e){let[,t,r]=e.split("-");return`${parseInt(t)}\uC6D4 ${parseInt(r)}\uC77C`}function Ie(e){return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`}var _=13,Gt=3,j=_+Gt,Yt=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Kt=["","Mon","","Wed","","Fri",""];function Jt(e){let t=e.replace("#","");return[parseInt(t.slice(0,2),16),parseInt(t.slice(2,4),16),parseInt(t.slice(4,6),16)]}function Ae(e,t,r,a){if(e===0)return r?"rgb(39, 39, 42)":"rgb(244, 244, 245)";let o=e/t,[n,i,s]=Jt(a);if(r){let p=[.25,.4,.6,.9],d=o>.75?p[3]:o>.5?p[2]:o>.25?p[1]:p[0];return`rgba(${n}, ${i}, ${s}, ${d})`}let c=[.8,.6,.4,.15],l=o>.75?c[3]:o>.5?c[2]:o>.25?c[1]:c[0];return`rgb(${Math.round(n+(255-n)*l)}, ${Math.round(i+(255-i)*l)}, ${Math.round(s+(255-s)*l)})`}function Zt({data:e,accent:t,isDark:r=!1,unit:a=""}){let[o,n]=Me(null),i=Ht(null),s=Be(()=>{let u=new Set,x=new Date().getFullYear();u.add(x);for(let B of e)u.add(new Date(B.date).getFullYear());return Array.from(u).sort((B,U)=>U-B)},[e]),[c,l]=Me(new Date().getFullYear()),p=Be(()=>new Map(e.map(u=>[u.date,u.count])),[e]),d=e.length>0?e[0].date:null,g=d?new Date(d).toLocaleDateString("ko-KR",{year:"numeric",month:"long",day:"numeric"}):null,h=new Date,v=Ie(h),T=new Date(c,0,1),k=new Date(c,11,31),P=new Date(T);P.setDate(P.getDate()-P.getDay());let N=[],M=Math.ceil((k.getTime()-P.getTime())/(1e3*60*60*24))+1;for(let u=0;u<M;u++){let x=new Date(P);if(x.setDate(x.getDate()+u),x>k)break;let B=Ie(x),U=Math.floor(u/7),Y=u%7,K=x<T,ee=x>h;N.push({date:B,count:p.get(B)||0,col:U,row:Y,isOutOfRange:K,isFuture:ee})}let C=Math.max(...N.map(u=>u.count),1),E=N.length>0?Math.max(...N.map(u=>u.col))+1:1,m=[],b=-1;for(let u of N){if(u.row!==0||u.isOutOfRange)continue;let x=new Date(u.date).getMonth();x!==b&&(m.push({label:Yt[x],col:u.col}),b=x)}let y=36,L=22,Je=y+E*j,Ze=L+7*j;return D("div",{ref:i,className:"relative space-y-4",children:[D("div",{className:"flex items-center justify-between flex-wrap gap-2",children:[S("div",{className:"flex items-center gap-1.5",children:s.map(u=>S("button",{onClick:()=>l(u),className:`px-3 py-1 rounded-lg text-xs font-medium transition-colors ${c===u?"bg-zinc-900 dark:bg-white text-white dark:text-zinc-900":"bg-zinc-100 dark:bg-zinc-800 text-zinc-400 dark:text-zinc-500 hover:bg-zinc-200 dark:hover:bg-zinc-700"}`,children:u},u))}),g&&D("p",{className:"text-[11px] text-zinc-400 dark:text-zinc-500",children:["\uCCAB \uAE30\uB85D ",S("span",{className:"font-medium text-zinc-600 dark:text-zinc-400",children:g})]})]}),S("div",{className:"overflow-x-auto",children:D("svg",{width:Je,height:Ze,className:"block mx-auto",onMouseLeave:()=>n(null),children:[m.map((u,x)=>S("text",{x:y+u.col*j,y:13,className:"fill-zinc-400",fontFamily:"system-ui, sans-serif",fontSize:10,children:u.label},`${u.label}-${x}`)),Kt.map((u,x)=>u?S("text",{x:0,y:L+x*j+_-2,className:"fill-zinc-300",fontFamily:"system-ui, sans-serif",fontSize:9,children:u},x):null),N.map(u=>{let x=u.date===v,B=u.date===d,U=u.isOutOfRange?"transparent":u.isFuture?r?"rgb(24, 24, 27)":"rgb(250, 250, 250)":B?t:Ae(u.count,C,r,t),Y=y+u.col*j,K=L+u.row*j;return S("rect",{x:Y,y:K,width:_,height:_,rx:3,fill:U,stroke:B?t:"none",strokeWidth:B?1.5:0,style:{cursor:u.isOutOfRange?"default":"pointer"},onMouseEnter:ee=>{if(u.isOutOfRange)return;let he=ee.currentTarget.ownerSVGElement.getBoundingClientRect(),be=i.current.getBoundingClientRect();n({x:Y+he.left-be.left+_/2,y:K+he.top-be.top,date:u.date,count:u.count,isFirst:B,isToday:x,isFuture:u.isFuture})}},u.date)})]})}),o&&D("div",{className:"pointer-events-none absolute z-30 -translate-x-1/2 -translate-y-full",style:{left:o.x,top:o.y-6},children:[D("div",{className:"bg-zinc-900 dark:bg-zinc-100 text-white dark:text-zinc-900 text-[11px] rounded-lg px-2.5 py-1.5 shadow-lg whitespace-nowrap",children:[S("span",{className:"font-medium",children:qt(o.date)}),!o.isFuture&&S("span",{className:"ml-1.5 tabular-nums",children:o.count>0?`${o.count.toLocaleString()}${a}`:"\uAE30\uB85D \uC5C6\uC74C"}),o.isFirst&&S("span",{className:"ml-1.5 text-[10px] opacity-70",children:"\u{1F331} \uCCAB \uAE30\uB85D"}),o.isToday&&!o.isFirst&&S("span",{className:"ml-1.5 text-[10px] opacity-70",children:"\uC624\uB298"})]}),S("div",{className:"mx-auto w-0 h-0 border-l-4 border-r-4 border-t-4 border-l-transparent border-r-transparent border-t-zinc-900 dark:border-t-zinc-100"})]}),D("div",{className:"flex items-center justify-end gap-1.5 text-[10px] text-zinc-400 dark:text-zinc-500",children:[S("span",{children:"Less"}),[0,.15,.35,.6,.85].map((u,x)=>S("div",{className:"w-3 h-3 rounded-xs",style:{backgroundColor:u===0?r?"rgb(39, 39, 42)":"rgb(244, 244, 245)":Ae(Math.ceil(u*10),10,r,t)}},x)),S("span",{children:"More"}),S("div",{className:"ml-2 w-3 h-3 rounded-xs",style:{backgroundColor:t,opacity:.6}}),S("span",{children:"1st"})]})]})}import{useState as Xt}from"react";import{jsx as $e}from"react/jsx-runtime";var Qt={xs:{box:"w-6 h-6",text:"text-[9px]",px:24},sm:{box:"w-8 h-8",text:"text-[11px]",px:32},md:{box:"w-10 h-10",text:"text-sm",px:40},lg:{box:"w-14 h-14",text:"text-lg",px:56},xl:{box:"w-20 h-20",text:"text-2xl",px:80}};function er({src:e,fallback:t,size:r="md",shape:a="circle",color:o="#3f3f46",className:n=""}){let{box:i,text:s}=Qt[r],c=a==="circle"?"rounded-full":"rounded-xl",[l,p]=Xt(!1);if(e&&!l)return $e("img",{src:e,alt:t,onError:()=>p(!0),className:`${i} ${c} object-cover flex-shrink-0 ${n}`});let d=t.trim().slice(0,2).toUpperCase();return $e("div",{className:`${i} ${c} flex items-center justify-center flex-shrink-0 font-bold select-none ${s} ${n}`,style:{backgroundColor:o,color:"#ffffff"},"aria-label":t,children:d})}import{jsx as ar}from"react/jsx-runtime";var tr={default:"bg-zinc-100 dark:bg-zinc-800 text-zinc-600 dark:text-zinc-400",green:"bg-green-100 dark:bg-green-950 text-green-700 dark:text-green-400",red:"bg-red-100 dark:bg-red-950 text-red-700 dark:text-red-400",yellow:"bg-yellow-100 dark:bg-yellow-950 text-yellow-700 dark:text-yellow-400",blue:"bg-blue-100 dark:bg-blue-950 text-blue-700 dark:text-blue-400",purple:"bg-purple-100 dark:bg-purple-950 text-purple-700 dark:text-purple-400",orange:"bg-orange-100 dark:bg-orange-950 text-orange-700 dark:text-orange-400"},rr={sm:"text-[10px] px-1.5 py-0.5",md:"text-xs px-2 py-0.5"};function or({children:e,variant:t="default",size:r="md",className:a=""}){return ar("span",{className:`inline-flex items-center font-semibold rounded-full leading-none ${tr[t]} ${rr[r]} ${a}`,children:e})}import{useCallback as nr,useState as ir}from"react";import{Fragment as Le,jsx as A,jsxs as se}from"react/jsx-runtime";function Oe(e){let[t,r]=ir(!1),a=typeof navigator<"u"&&typeof navigator.share=="function";return{share:nr(async n=>{let i={...e,...n},s=i.url??(typeof window<"u"?window.location.href:"");if(a)try{await navigator.share({title:i.title,text:i.text,url:s});return}catch(c){if(c.name==="AbortError")return}try{await navigator.clipboard.writeText(s),r(!0),setTimeout(()=>r(!1),2e3)}catch{}},[a]),copied:t,canNativeShare:a}}function sr({url:e,title:t,text:r,label:a="\uACF5\uC720",copiedLabel:o="\uB9C1\uD06C \uBCF5\uC0AC\uB428",className:n=""}){let{share:i,copied:s}=Oe({url:e,title:t,text:r});return A("button",{onClick:()=>i(),className:`flex items-center gap-1.5 px-3 py-1.5 rounded-xl text-sm font-semibold bg-zinc-100 dark:bg-zinc-800 text-zinc-700 dark:text-zinc-300 hover:bg-zinc-200 dark:hover:bg-zinc-700 active:scale-95 transition-all ${n}`,children:s?se(Le,{children:[A(lr,{}),o]}):se(Le,{children:[A(cr,{}),a]})})}function cr(){return se("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[A("circle",{cx:"18",cy:"5",r:"3"}),A("circle",{cx:"6",cy:"12",r:"3"}),A("circle",{cx:"18",cy:"19",r:"3"}),A("line",{x1:"8.59",y1:"13.51",x2:"15.42",y2:"17.49"}),A("line",{x1:"15.41",y1:"6.51",x2:"8.59",y2:"10.49"})]})}function lr(){return A("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:A("polyline",{points:"20 6 9 17 4 12"})})}import{createContext as dr,useContext as pr,useState as Fe,useCallback as ur,useEffect as gr}from"react";import{jsx as ce,jsxs as wr}from"react/jsx-runtime";var De=dr(null);function fr({children:e}){let[t,r]=Fe([]),a=ur((o,n)=>{let i=Math.random().toString(36).slice(2,9),s=n?.duration??2500;r(c=>[...c,{id:i,message:o,variant:n?.variant??"default",duration:s}]),setTimeout(()=>{r(c=>c.filter(l=>l.id!==i))},s)},[]);return wr(De.Provider,{value:a,children:[e,ce("div",{"aria-live":"polite","aria-atomic":"false",className:"fixed bottom-24 inset-x-0 z-[9999] flex flex-col items-center gap-2 px-4 pointer-events-none",children:t.map(o=>ce(hr,{item:o},o.id))})]})}var mr={default:"bg-zinc-900 dark:bg-zinc-100 text-white dark:text-zinc-900",success:"bg-green-600 text-white",error:"bg-red-600 text-white",info:"bg-blue-600 text-white"};function hr({item:e}){let[t,r]=Fe(!1);return gr(()=>{let a=requestAnimationFrame(()=>r(!0));return()=>cancelAnimationFrame(a)},[]),ce("div",{role:"status",className:`pointer-events-auto w-full max-w-[390px] px-4 py-3 rounded-2xl text-sm font-semibold shadow-xl text-center transition-all duration-300 ${mr[e.variant]} ${t?"opacity-100 translate-y-0":"opacity-0 translate-y-3"}`,children:e.message})}function br(){let e=pr(De);if(!e)throw new Error("useToast must be used inside <ToastProvider>");return e}import{useState as vr,useCallback as je}from"react";function xr(e,t){let[r,a]=vr(()=>{if(typeof window>"u")return t;try{let i=window.localStorage.getItem(e);return i!==null?JSON.parse(i):t}catch{return t}}),o=je(i=>{a(s=>{let c=typeof i=="function"?i(s):i;try{window.localStorage.setItem(e,JSON.stringify(c))}catch{}return c})},[e]),n=je(()=>{try{window.localStorage.removeItem(e)}catch{}a(t)},[e]);return[r,o,n]}import{useState as kr,useEffect as yr}from"react";function zr(e,t){let[r,a]=kr(e);return yr(()=>{let o=setTimeout(()=>a(e),t);return()=>clearTimeout(o)},[e,t]),r}import{useState as le,useCallback as We,useRef as Ue}from"react";function Sr(e,t={}){let[r,a]=le(!1),[o,n]=le(null),[i,s]=le(void 0),c=Ue(e),l=Ue(t);c.current=e,l.current=t;let p=We(async g=>{a(!0),n(null);try{let h=await c.current(g);s(h),l.current.onSuccess?.(h)}catch(h){let v=h instanceof Error?h:new Error(String(h));n(v),l.current.onError?.(v)}finally{a(!1)}},[]),d=We(()=>{n(null),s(void 0)},[]);return{submit:p,loading:r,error:o,data:i,reset:d}}import{useState as Tr,useCallback as Nr,useRef as Pr}from"react";function Er(e={}){let{threshold:t=0,rootMargin:r="0px",once:a=!1}=e,[o,n]=Tr(!1),i=Pr(null);return{ref:Nr(c=>{i.current?.disconnect(),i.current=null,c&&(i.current=new IntersectionObserver(([l])=>{n(l.isIntersecting),l.isIntersecting&&a&&i.current?.disconnect()},{threshold:t,rootMargin:r}),i.current.observe(c))},[t,r,a]),inView:o}}import{jsx as Mr}from"react/jsx-runtime";var Cr={sm:"rounded-sm",md:"rounded-md",lg:"rounded-lg",xl:"rounded-xl","2xl":"rounded-2xl",full:"rounded-full"};function Rr({className:e="",rounded:t="md"}){return Mr("div",{className:`animate-pulse bg-zinc-200 dark:bg-zinc-800 ${Cr[t]} ${e}`,"aria-hidden":"true"})}import{useEffect as de,useRef as Br,useState as Ve}from"react";import{createPortal as Ir}from"react-dom";import{jsx as H,jsxs as pe}from"react/jsx-runtime";var Ar={sm:"max-w-sm",md:"max-w-md",lg:"max-w-lg"};function $r({open:e,onClose:t,title:r,size:a="sm",children:o,persistent:n=!1,className:i=""}){let[s,c]=Ve(!1),[l,p]=Ve(!1),d=Br(null);return de(()=>{if(e)c(!0),requestAnimationFrame(()=>requestAnimationFrame(()=>p(!0)));else{p(!1);let g=setTimeout(()=>c(!1),200);return()=>clearTimeout(g)}},[e]),de(()=>{if(!e||n)return;let g=h=>{h.key==="Escape"&&t()};return document.addEventListener("keydown",g),()=>document.removeEventListener("keydown",g)},[e,t,n]),de(()=>{if(e){let g=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=g}}},[e]),!s||typeof document>"u"?null:Ir(pe("div",{role:"dialog","aria-modal":"true","aria-labelledby":r?"dialog-title":void 0,className:"fixed inset-0 z-[200] flex items-end sm:items-center justify-center p-4",children:[H("div",{className:`absolute inset-0 bg-black/50 transition-opacity duration-200 ${l?"opacity-100":"opacity-0"}`,onClick:n?void 0:t}),pe("div",{ref:d,className:`relative w-full ${Ar[a]} bg-white dark:bg-zinc-900 rounded-3xl shadow-2xl p-6 transition-all duration-200 ${l?"opacity-100 translate-y-0 scale-100":"opacity-0 translate-y-4 scale-95"} ${i}`,children:[!n&&H("button",{onClick:t,className:"absolute top-4 right-4 p-1.5 rounded-full text-zinc-400 hover:text-zinc-700 dark:hover:text-zinc-200 hover:bg-zinc-100 dark:hover:bg-zinc-800 transition-colors","aria-label":"\uB2EB\uAE30",children:pe("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[H("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),H("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})}),r&&H("h2",{id:"dialog-title",className:"text-lg font-bold text-zinc-900 dark:text-white mb-4 pr-6",children:r}),o]})]}),document.body)}import{useState as _e,useEffect as Lr}from"react";function ue(){let[e,t]=_e(null),[r,a]=_e(!1);Lr(()=>{if(window.matchMedia("(display-mode: standalone)").matches||navigator.standalone===!0){a(!0);return}let s=l=>{l.preventDefault(),t(l)},c=()=>a(!0);return window.addEventListener("beforeinstallprompt",s),window.addEventListener("appinstalled",c),()=>{window.removeEventListener("beforeinstallprompt",s),window.removeEventListener("appinstalled",c)}},[]);let o=r?"installed":e?"android-ready":Or()?"ios-safari":"unsupported";async function n(){if(!e)return;await e.prompt();let{outcome:i}=await e.userChoice;i==="accepted"&&a(!0),t(null)}return{state:o,install:n}}function Or(){if(typeof navigator>"u")return!1;let e=navigator.userAgent;return/iphone|ipad|ipod/i.test(e)&&!/CriOS|FxiOS|OPiOS|EdgiOS/i.test(e)}import{useState as Fr}from"react";import{Fragment as q,jsx as f,jsxs as z}from"react/jsx-runtime";function Dr({appName:e="\uC571",iconSrc:t,label:r="\uC571\uC73C\uB85C \uC124\uCE58",installedLabel:a,className:o}){let{state:n,install:i}=ue(),[s,c]=Fr(!1);if(n==="installed")return a?z("div",{className:`flex items-center gap-2 text-sm text-zinc-400 ${o??""}`,children:[f(Wr,{}),f("span",{children:a})]}):null;if(n==="unsupported")return null;function l(){n==="android-ready"?i():n==="ios-safari"&&c(!0)}return z(q,{children:[z("button",{onClick:l,className:`flex items-center gap-2 px-4 py-2.5 rounded-xl bg-zinc-900 dark:bg-zinc-100 text-white dark:text-zinc-900 text-sm font-semibold transition-all active:scale-95 ${o??""}`,children:[f(qe,{}),f("span",{children:r}),n==="ios-safari"&&f(jr,{})]}),n==="ios-safari"&&f(He,{open:s,onClose:()=>c(!1),appName:e,iconSrc:t})]})}function He({open:e,onClose:t,appName:r,iconSrc:a}){return e?z(q,{children:[f("div",{className:"fixed inset-0 z-[9998] bg-black/40 backdrop-blur-sm",onClick:t}),z("div",{className:"fixed bottom-0 left-1/2 -translate-x-1/2 z-[9999] w-full max-w-[430px] rounded-t-2xl bg-white dark:bg-zinc-900 shadow-2xl",children:[f("div",{className:"flex justify-center pt-3 pb-1",children:f("div",{className:"w-9 h-1 rounded-full bg-zinc-200 dark:bg-zinc-700"})}),z("div",{className:"px-5 pb-8 pt-3",children:[z("div",{className:"flex items-center gap-3 mb-5",children:[a?f("img",{src:a,alt:r,className:"w-12 h-12 rounded-xl shadow"}):f("div",{className:"w-12 h-12 rounded-xl bg-zinc-100 dark:bg-zinc-800 flex items-center justify-center",children:f(qe,{size:22,className:"text-zinc-400"})}),z("div",{children:[z("p",{className:"font-bold text-zinc-900 dark:text-white text-base",children:[r," \uC124\uCE58\uD558\uAE30"]}),f("p",{className:"text-xs text-zinc-400 mt-0.5",children:"\uD648 \uD654\uBA74\uC5D0 \uCD94\uAC00\uD558\uBA74 \uC571\uCC98\uB7FC \uC0AC\uC6A9\uD560 \uC218 \uC788\uC5B4\uC694"})]})]}),f("div",{className:"space-y-3",children:[{icon:f(Ur,{}),text:z(q,{children:["\uD558\uB2E8 \uD234\uBC14\uC758 ",f("strong",{className:"text-zinc-900 dark:text-zinc-100",children:"\uACF5\uC720"})," \uBC84\uD2BC\uC744 \uD0ED\uD558\uC138\uC694"]})},{icon:f(Vr,{}),text:z(q,{children:["\uC2A4\uD06C\uB864\uD574\uC11C"," ",f("strong",{className:"text-zinc-900 dark:text-zinc-100",children:"\uD648 \uD654\uBA74\uC5D0 \uCD94\uAC00"}),"\uB97C \uD0ED\uD558\uC138\uC694"]})},{icon:f(_r,{}),text:z(q,{children:["\uC6B0\uCE21 \uC0C1\uB2E8 ",f("strong",{className:"text-zinc-900 dark:text-zinc-100",children:"\uCD94\uAC00"}),"\uB97C \uD0ED\uD558\uBA74 \uC644\uB8CC!"]})}].map((n,i)=>z("div",{className:"flex items-start gap-3",children:[f("div",{className:"w-8 h-8 rounded-xl bg-zinc-100 dark:bg-zinc-800 flex items-center justify-center flex-shrink-0 text-zinc-500 dark:text-zinc-400",children:n.icon}),f("div",{className:"flex-1 pt-1",children:z("p",{className:"text-sm text-zinc-600 dark:text-zinc-300 leading-relaxed",children:[f("span",{className:"inline-flex items-center justify-center w-4 h-4 rounded-full bg-zinc-200 dark:bg-zinc-700 text-[9px] font-bold text-zinc-500 dark:text-zinc-400 mr-1.5 flex-shrink-0",children:i+1}),n.text]})})]},i))}),z("div",{className:"mt-5 flex items-center gap-2 px-3 py-2.5 rounded-xl bg-zinc-50 dark:bg-zinc-800",children:[f(Hr,{}),f("p",{className:"text-xs text-zinc-400",children:"Safari \uBE0C\uB77C\uC6B0\uC800\uC5D0\uC11C\uB9CC \uD648 \uD654\uBA74 \uCD94\uAC00\uAC00 \uAC00\uB2A5\uD574\uC694"})]}),f("button",{onClick:t,className:"mt-3 w-full py-3 rounded-xl text-sm font-semibold text-zinc-500 dark:text-zinc-400 bg-zinc-100 dark:bg-zinc-800 hover:bg-zinc-200 dark:hover:bg-zinc-700 transition-colors",children:"\uB2EB\uAE30"})]})]})]}):null}function qe({size:e=16,className:t=""}){return z("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",className:t,children:[f("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),f("polyline",{points:"7 10 12 15 17 10"}),f("line",{x1:"12",y1:"15",x2:"12",y2:"3"})]})}function jr(){return f("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",className:"opacity-70",children:f("polyline",{points:"9 18 15 12 9 6"})})}function Wr(){return f("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:f("polyline",{points:"20 6 9 17 4 12"})})}function Ur(){return z("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[f("path",{d:"M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8"}),f("polyline",{points:"16 6 12 2 8 6"}),f("line",{x1:"12",y1:"2",x2:"12",y2:"15"})]})}function Vr(){return z("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[f("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"}),f("line",{x1:"12",y1:"8",x2:"12",y2:"16"}),f("line",{x1:"8",y1:"12",x2:"16",y2:"12"})]})}function _r(){return z("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[f("polyline",{points:"9 11 12 14 22 4"}),f("path",{d:"M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11"})]})}function Hr(){return z("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",className:"text-zinc-400 flex-shrink-0",children:[f("circle",{cx:"12",cy:"12",r:"10"}),f("polygon",{points:"16.24 7.76 14.12 14.12 7.76 16.24 9.88 9.88 16.24 7.76"})]})}var tn={width:"device-width",initialScale:1,maximumScale:1,userScalable:!1,viewportFit:"cover"};function Ge(e,t={}){let{size:r=192,bg:a="#000000",color:o="#ffffff",radius:n=.25,fontSize:i=.375}=t,s=Math.round(r*n),c=Math.round(r*i),l=a.replace("#","%23"),p=o.replace("#","%23");return`data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 ${r} ${r}'><rect width='${r}' height='${r}' rx='${s}' fill='${l}'/><text x='50%25' y='50%25' dominant-baseline='central' text-anchor='middle' font-family='system-ui,sans-serif' font-size='${c}' font-weight='900' fill='${p}'>${e}</text></svg>`}function rn(e){let{name:t,shortName:r=t,description:a,startUrl:o="/",backgroundColor:n="#ffffff",themeColor:i="#000000",icon:s}=e,c=s?[{src:Ge(s.text,{size:192,bg:s.bg??i,color:s.color,radius:s.radius}),sizes:"192x192",type:"image/svg+xml"},{src:Ge(s.text,{size:512,bg:s.bg??i,color:s.color,radius:s.radius}),sizes:"512x512",type:"image/svg+xml"}]:[];return{name:t,short_name:r,...a&&{description:a},start_url:o,display:"standalone",orientation:"portrait",background_color:n,theme_color:i,icons:c}}var F=class extends Error{constructor(r,a,o,n,i){super(`${r} ${a}${n?` [${i??"GET"} ${n}]`:""}`);this.status=r;this.statusText=a;this.body=o;this.url=n;this.method=i;this.name="ApiError"}};async function G(e){return(e.headers.get("content-type")??"").includes("application/json")?e.json():e.text()}function qr(e,t={}){let r=e.replace(/\/$/,"");async function a(o,n,i,s={}){let c=n.startsWith("http")?n:`${r}/${n.replace(/^\//,"")}`,l={...t.headers,...s.headers};i!==void 0&&s.contentType!==null&&(l["Content-Type"]=s.contentType??"application/json");let p={method:o,headers:l,signal:s.signal};i!==void 0&&(p.body=i instanceof FormData?i:JSON.stringify(i));let d=new Request(c,p);t.onRequest&&(d=t.onRequest(d)??d);let g=await fetch(d);if(!g.ok){let h=await G(g).catch(()=>null),v=new F(g.status,g.statusText,h,c,o);throw t.onError?.(v),v}if(!(g.status===204||g.headers.get("content-length")==="0"))return G(g)}return{get:(o,n)=>a("GET",o,void 0,n),post:(o,n,i)=>a("POST",o,n,i),put:(o,n,i)=>a("PUT",o,n,i),patch:(o,n,i)=>a("PATCH",o,n,i),delete:(o,n)=>a("DELETE",o,void 0,n)}}import{useState as ge,useEffect as Ye,useCallback as Ke,useRef as Z}from"react";var Gr=500,$=new Map,fe=new Map;function Yr(e){e?$.delete(e):$.clear()}function Kr(e,t){$.size>=Gr&&$.delete($.keys().next().value),$.set(e,t)}async function Jr(e){let t=await fetch(e);if(!t.ok){let r=await G(t).catch(()=>null);throw new F(t.status,t.statusText,r,e,"GET")}return G(t)}async function Zr(e,t,r){let a;for(let o=0;o<=t;o++)try{return await e()}catch(n){if(a=n,n instanceof F)throw n;o<t&&await new Promise(i=>setTimeout(i,r*2**o))}throw a}function Xr(e,t={}){let{enabled:r=!0,staleTime:a=0,retry:o=2,retryDelay:n=1e3,revalidateOnFocus:i=!0,fetcher:s=Jr,onSuccess:c,onError:l}=t,[p,d]=ge(()=>{if(!e||a===0)return;let m=$.get(e);if(m&&Date.now()-m.ts<a)return m.data}),[g,h]=ge(()=>{if(!e||!r)return"idle";if(a>0){let m=$.get(e);if(m&&Date.now()-m.ts<a)return"success"}return"loading"}),[v,T]=ge(void 0),k=Z(!0),P=Z(s),N=Z(c),M=Z(l);P.current=s,N.current=c,M.current=l;let C=Ke(async(m=!1)=>{if(!e||!r){h(b=>b==="idle"?b:"idle");return}if(!m&&a>0){let b=$.get(e);if(b&&Date.now()-b.ts<a){d(b.data),h("success");return}}h("loading"),T(void 0);try{let b=fe.get(e);b||(b=Zr(()=>P.current(e),o,n),fe.set(e,b),b.finally(()=>fe.delete(e)));let y=await b;if(!k.current)return;Kr(e,{data:y,ts:Date.now()}),d(y),h("success"),N.current?.(y)}catch(b){if(!k.current)return;let y=b;T(y),h("error"),M.current?.(y)}},[e,r,a,o,n]),E=Ke(()=>C(!0),[C]);return Ye(()=>(k.current=!0,C(),()=>{k.current=!1}),[C]),Ye(()=>{if(!i)return;let m=()=>{document.visibilityState==="visible"&&C()};return document.addEventListener("visibilitychange",m),window.addEventListener("focus",m),()=>{document.removeEventListener("visibilitychange",m),window.removeEventListener("focus",m)}},[C,i]),{data:p,loading:g==="loading",error:v,status:g,refetch:E}}import{useState as X,useEffect as Q,useRef as W,useCallback as me}from"react";function Qr(e,t={}){let{interval:r=5e3,enabled:a=!0,pauseOnHidden:o=!0,onSuccess:n,onError:i}=t,[s,c]=X(void 0),[l,p]=X(!1),[d,g]=X(void 0),[h,v]=X(a),T=W(!0),k=W(null),P=W(r),N=W(e),M=W(n),C=W(i);P.current=r,N.current=e,M.current=n,C.current=i,Q(()=>(T.current=!0,()=>{T.current=!1}),[]);let E=me(async()=>{if(T.current){p(!0);try{let y=await N.current();if(!T.current)return;c(y),g(void 0),M.current?.(y)}catch(y){if(!T.current)return;let L=y;g(L),C.current?.(L)}finally{T.current&&p(!1)}}},[]),m=me(()=>{k.current&&(clearInterval(k.current),k.current=null)},[]),b=me(()=>{m(),k.current=setInterval(E,P.current)},[E,m]);return Q(()=>{if(!h){m();return}return E(),b(),m},[h,E,b,m]),Q(()=>{if(h)return m(),k.current=setInterval(E,P.current),m},[r]),Q(()=>{if(!o)return;let y=()=>{h&&(document.visibilityState==="hidden"?m():(E(),b()))};return document.addEventListener("visibilitychange",y),()=>document.removeEventListener("visibilitychange",y)},[h,o,E,b,m]),{data:s,loading:l,error:d,isRunning:h,stop:()=>v(!1),start:()=>v(!0),refetch:E}}import{clsx as eo}from"clsx";import{twMerge as to}from"tailwind-merge";function kn(e){let t=new Date(e),r=Date.now()-t.getTime(),a=Math.floor(r/1e3);return a<60?"\uBC29\uAE08 \uC804":a<3600?`${Math.floor(a/60)}\uBD84 \uC804`:a<86400?`${Math.floor(a/3600)}\uC2DC\uAC04 \uC804`:a<86400*2?"\uC5B4\uC81C":a<86400*7?`${Math.floor(a/86400)}\uC77C \uC804`:a<86400*30?`${Math.floor(a/(86400*7))}\uC8FC \uC804`:t.toLocaleDateString("ko-KR",{year:"numeric",month:"long",day:"numeric"})}function yn(e){let t=Math.abs(e),r=e<0?"-":"";return t>=1e8?`${r}${(t/1e8).toFixed(1).replace(/\.0$/,"")}\uC5B5`:t>=1e4?`${r}${(t/1e4).toFixed(1).replace(/\.0$/,"")}\uB9CC`:t>=1e3?`${r}${(t/1e3).toFixed(1).replace(/\.0$/,"")}\uCC9C`:e.toLocaleString("ko-KR")}function zn(e,t="KRW",r="ko-KR"){return new Intl.NumberFormat(r,{style:"currency",currency:t,maximumFractionDigits:t==="KRW"?0:2}).format(e)}function Nn(...e){return to(eo(e))}export{F as ApiError,rt as AppShell,at as AppShellContent,ot as AppShellHeader,er as Avatar,or as Badge,tt as Button,$r as Dialog,dt as Divider,Ft as EmojiButton,Dt as EmojiPicker,ft as EmptyState,Zt as GrassMap,He as IOSInstallSheet,Dr as PWAInstallButton,ct as Section,lt as SectionHeader,sr as ShareButton,Rr as Skeleton,ut as StatChip,St as THEME_SCRIPT,it as Tab,nt as TabBar,Ct as ThemeButton,Rt as ThemeDialog,fr as ToastProvider,Ut as Tooltip,It as Typewriter,vt as Watermark,Yr as clearFetchCache,Nn as cn,ae as colors,qr as createApiClient,rn as createManifest,Bt as fontFamily,Mt as fonts,yn as formatNumber,zn as formatPrice,tn as mobileViewport,kn as relativeTime,Ge as svgIcon,zr as useDebounce,Xr as useFetch,Sr as useFormSubmit,Er as useInView,xr as useLocalStorage,ue as usePWAInstall,Qr as usePolling,Oe as useShare,br as useToast};
package/dist/pwa.d.mts ADDED
@@ -0,0 +1,102 @@
1
+ import { MetadataRoute, Viewport } from 'next';
2
+ import * as react_jsx_runtime from 'react/jsx-runtime';
3
+
4
+ type PWAInstallState = "android-ready" | "ios-safari" | "installed" | "unsupported";
5
+ interface UsePWAInstallReturn {
6
+ state: PWAInstallState;
7
+ /** Android only — triggers the native install dialog */
8
+ install(): Promise<void>;
9
+ }
10
+ declare function usePWAInstall(): UsePWAInstallReturn;
11
+
12
+ interface PWAInstallButtonProps {
13
+ /** App name shown in iOS guide sheet */
14
+ appName?: string;
15
+ /** App icon src shown in iOS guide (optional) */
16
+ iconSrc?: string;
17
+ /** Label for the install button. Default: "앱으로 설치" */
18
+ label?: string;
19
+ /** Label shown when already installed. Default: undefined — button hidden */
20
+ installedLabel?: string;
21
+ className?: string;
22
+ }
23
+ /**
24
+ * PWA install button that handles both Android and iOS.
25
+ *
26
+ * - Android (Chrome): triggers the native install dialog
27
+ * - iOS (Safari): opens a step-by-step "Add to Home Screen" guide sheet
28
+ * - Already installed: hidden by default (show with installedLabel)
29
+ * - Unsupported: hidden
30
+ *
31
+ * Usage:
32
+ * <PWAInstallButton appName="My App" iconSrc="/icon.png" />
33
+ */
34
+ declare function PWAInstallButton({ appName, iconSrc, label, installedLabel, className, }: PWAInstallButtonProps): react_jsx_runtime.JSX.Element | null;
35
+ interface IOSInstallSheetProps {
36
+ open: boolean;
37
+ onClose(): void;
38
+ appName: string;
39
+ iconSrc?: string;
40
+ }
41
+ /**
42
+ * Bottom-sheet guide for iOS "Add to Home Screen".
43
+ * Can also be used standalone if you need custom trigger UI.
44
+ */
45
+ declare function IOSInstallSheet({ open, onClose, appName, iconSrc }: IOSInstallSheetProps): react_jsx_runtime.JSX.Element | null;
46
+
47
+ /**
48
+ * Standard mobile viewport config for Next.js.
49
+ * - Disables pinch zoom via maximumScale (Android, older iOS)
50
+ * - Prevents input auto-zoom on iOS via the CSS in @m1kapp/kit (font-size: max(16px, 1em))
51
+ * - touch-action: pan-x pan-y in CSS handles iOS 10+ pinch zoom
52
+ *
53
+ * Usage: export const viewport = mobileViewport;
54
+ */
55
+ declare const mobileViewport: Viewport;
56
+ /**
57
+ * Generates an SVG icon as a data URI — no image files needed.
58
+ *
59
+ * Usage:
60
+ * svgIcon("m1k", { size: 192, bg: "#0f172a" })
61
+ * svgIcon("WP", { size: 512, bg: "#18181b", radius: 0.25 })
62
+ */
63
+ declare function svgIcon(text: string, options?: {
64
+ size?: number;
65
+ bg?: string;
66
+ color?: string;
67
+ /** Corner radius as a fraction of size. Default: 0.25 (25%) */
68
+ radius?: number;
69
+ /** Font size as a fraction of size. Default: 0.375 */
70
+ fontSize?: number;
71
+ }): string;
72
+ /**
73
+ * Generates a Next.js web app manifest (app/manifest.ts).
74
+ * Icons are auto-generated as inline SVGs — no image files needed.
75
+ *
76
+ * Usage:
77
+ * // app/manifest.ts
78
+ * import { createManifest } from "@m1kapp/kit";
79
+ * export default createManifest({
80
+ * name: "m1k",
81
+ * shortName: "m1k",
82
+ * themeColor: "#0f172a",
83
+ * icon: { text: "m1k" },
84
+ * });
85
+ */
86
+ declare function createManifest(options: {
87
+ name: string;
88
+ shortName?: string;
89
+ description?: string;
90
+ startUrl?: string;
91
+ backgroundColor?: string;
92
+ themeColor?: string;
93
+ /** Text-based icon config — generates SVG icons automatically */
94
+ icon?: {
95
+ text: string;
96
+ bg?: string;
97
+ color?: string;
98
+ radius?: number;
99
+ };
100
+ }): MetadataRoute.Manifest;
101
+
102
+ export { IOSInstallSheet, PWAInstallButton, type PWAInstallState, type UsePWAInstallReturn, createManifest, mobileViewport, svgIcon, usePWAInstall };
package/dist/pwa.d.ts ADDED
@@ -0,0 +1,102 @@
1
+ import { MetadataRoute, Viewport } from 'next';
2
+ import * as react_jsx_runtime from 'react/jsx-runtime';
3
+
4
+ type PWAInstallState = "android-ready" | "ios-safari" | "installed" | "unsupported";
5
+ interface UsePWAInstallReturn {
6
+ state: PWAInstallState;
7
+ /** Android only — triggers the native install dialog */
8
+ install(): Promise<void>;
9
+ }
10
+ declare function usePWAInstall(): UsePWAInstallReturn;
11
+
12
+ interface PWAInstallButtonProps {
13
+ /** App name shown in iOS guide sheet */
14
+ appName?: string;
15
+ /** App icon src shown in iOS guide (optional) */
16
+ iconSrc?: string;
17
+ /** Label for the install button. Default: "앱으로 설치" */
18
+ label?: string;
19
+ /** Label shown when already installed. Default: undefined — button hidden */
20
+ installedLabel?: string;
21
+ className?: string;
22
+ }
23
+ /**
24
+ * PWA install button that handles both Android and iOS.
25
+ *
26
+ * - Android (Chrome): triggers the native install dialog
27
+ * - iOS (Safari): opens a step-by-step "Add to Home Screen" guide sheet
28
+ * - Already installed: hidden by default (show with installedLabel)
29
+ * - Unsupported: hidden
30
+ *
31
+ * Usage:
32
+ * <PWAInstallButton appName="My App" iconSrc="/icon.png" />
33
+ */
34
+ declare function PWAInstallButton({ appName, iconSrc, label, installedLabel, className, }: PWAInstallButtonProps): react_jsx_runtime.JSX.Element | null;
35
+ interface IOSInstallSheetProps {
36
+ open: boolean;
37
+ onClose(): void;
38
+ appName: string;
39
+ iconSrc?: string;
40
+ }
41
+ /**
42
+ * Bottom-sheet guide for iOS "Add to Home Screen".
43
+ * Can also be used standalone if you need custom trigger UI.
44
+ */
45
+ declare function IOSInstallSheet({ open, onClose, appName, iconSrc }: IOSInstallSheetProps): react_jsx_runtime.JSX.Element | null;
46
+
47
+ /**
48
+ * Standard mobile viewport config for Next.js.
49
+ * - Disables pinch zoom via maximumScale (Android, older iOS)
50
+ * - Prevents input auto-zoom on iOS via the CSS in @m1kapp/kit (font-size: max(16px, 1em))
51
+ * - touch-action: pan-x pan-y in CSS handles iOS 10+ pinch zoom
52
+ *
53
+ * Usage: export const viewport = mobileViewport;
54
+ */
55
+ declare const mobileViewport: Viewport;
56
+ /**
57
+ * Generates an SVG icon as a data URI — no image files needed.
58
+ *
59
+ * Usage:
60
+ * svgIcon("m1k", { size: 192, bg: "#0f172a" })
61
+ * svgIcon("WP", { size: 512, bg: "#18181b", radius: 0.25 })
62
+ */
63
+ declare function svgIcon(text: string, options?: {
64
+ size?: number;
65
+ bg?: string;
66
+ color?: string;
67
+ /** Corner radius as a fraction of size. Default: 0.25 (25%) */
68
+ radius?: number;
69
+ /** Font size as a fraction of size. Default: 0.375 */
70
+ fontSize?: number;
71
+ }): string;
72
+ /**
73
+ * Generates a Next.js web app manifest (app/manifest.ts).
74
+ * Icons are auto-generated as inline SVGs — no image files needed.
75
+ *
76
+ * Usage:
77
+ * // app/manifest.ts
78
+ * import { createManifest } from "@m1kapp/kit";
79
+ * export default createManifest({
80
+ * name: "m1k",
81
+ * shortName: "m1k",
82
+ * themeColor: "#0f172a",
83
+ * icon: { text: "m1k" },
84
+ * });
85
+ */
86
+ declare function createManifest(options: {
87
+ name: string;
88
+ shortName?: string;
89
+ description?: string;
90
+ startUrl?: string;
91
+ backgroundColor?: string;
92
+ themeColor?: string;
93
+ /** Text-based icon config — generates SVG icons automatically */
94
+ icon?: {
95
+ text: string;
96
+ bg?: string;
97
+ color?: string;
98
+ radius?: number;
99
+ };
100
+ }): MetadataRoute.Manifest;
101
+
102
+ export { IOSInstallSheet, PWAInstallButton, type PWAInstallState, type UsePWAInstallReturn, createManifest, mobileViewport, svgIcon, usePWAInstall };