create-fullstack-scaffold 0.4.3 → 0.4.4
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/cli/index.js +513 -122
- package/dist/cli/index.js.map +1 -1
- package/package.json +1 -1
- package/template/dist/cli/index.js +237 -94
- package/template/dist/cli/index.js.map +1 -1
- package/template/dist/client/admin.html +15 -10
- package/template/dist/client/assets/App-BpFUIC-5.js +114 -0
- package/template/dist/client/assets/{CartPage-DESSHkaG.js → CartPage-DgDZP-R5.js} +2 -2
- package/template/dist/client/assets/{CategoriesPage-DqLZ_Mom.js → CategoriesPage-fuYNiSmE.js} +2 -2
- package/template/dist/client/assets/ContentDetailPage-BvvFU1Mr.js +1 -0
- package/template/dist/client/assets/ContentListPage-ShPxo6WG.js +1 -0
- package/template/dist/client/assets/DashboardPage-C1rZzZo4.js +11 -0
- package/template/dist/client/assets/{DeveloperDashboardPage-Cum7zFwO.js → DeveloperDashboardPage-_WtmbVoA.js} +2 -2
- package/template/dist/client/assets/{EmptyState-BK7ttK8D.js → EmptyState-DEyOQjbY.js} +1 -1
- package/template/dist/client/assets/LoadingSpinner-BcHjaM1m.js +6 -0
- package/template/dist/client/assets/LoginPage-CjeQqDdO.js +1 -0
- package/template/dist/client/assets/LogoutOutlined-ColFAHdd.js +1 -0
- package/template/dist/client/assets/NotificationPage-DRkEv02s.js +1 -0
- package/template/dist/client/assets/OrdersPage-7I3vPWLP.js +11 -0
- package/template/dist/client/assets/{PluginDetailPage-Br24YS4P.js → PluginDetailPage-CWyxdVCg.js} +3 -13
- package/template/dist/client/assets/PluginsPage-DRgWLeJT.js +6 -0
- package/template/dist/client/assets/ProfilePage-2FFkaii8.js +16 -0
- package/template/dist/client/assets/PublishPage-DW7yvROx.js +1 -0
- package/template/dist/client/assets/{RegisterPage-rPFG4Sry.js → RegisterPage-Dvaf9b0e.js} +2 -2
- package/template/dist/client/assets/SaveOutlined-CLQ2tsSY.js +2 -0
- package/template/dist/client/assets/{SearchPage-DQl1U5Uy.js → SearchPage-DvnEyswS.js} +2 -2
- package/template/dist/client/assets/{SettingsPage-DaYE80wj.js → SettingsPage-IrU-L9Zr.js} +2 -2
- package/template/dist/client/assets/{StatusBadge-BJ3W2Zc7.js → StatusBadge-CG7wVqpu.js} +1 -1
- package/template/dist/client/assets/{TodoPage-zC5wWNBa.js → TodoPage-B7D-bl65.js} +3 -3
- package/template/dist/client/assets/TopicsPage-CYCNr-mn.js +6 -0
- package/template/dist/client/assets/{WebSocketPage-B4NLdz1w.js → WebSocketPage-CGEg6QJE.js} +2 -2
- package/template/dist/client/assets/{activity-B94BUAsD.js → activity-CgTz9Mrd.js} +1 -1
- package/template/dist/client/assets/admin-D2iHWNOg.js +1 -0
- package/template/dist/client/assets/api-request-DIJocPxr.js +356 -0
- package/template/dist/client/assets/{arrow-left-H5JH0iU1.js → arrow-left-DtLQ3tTk.js} +1 -1
- package/template/dist/client/assets/{chevron-down-DwRh_wjD.js → chevron-down-CpIAV_yr.js} +1 -1
- package/template/dist/client/assets/{chevron-right-CpIWaqAL.js → chevron-right-CnU7oPQs.js} +1 -1
- package/template/dist/client/assets/{circle-check-big-CSElLscG.js → circle-check-big-CrZdwS75.js} +1 -1
- package/template/dist/client/assets/{circle-x-CYxr4RAw.js → circle-x-CvN9r3fW.js} +1 -1
- package/template/dist/client/assets/{clock-BseUJ7ex.js → clock-CTeSZBiH.js} +1 -1
- package/template/dist/client/assets/{download-BsGC_Xhq.js → download-OSVfVuNV.js} +1 -1
- package/template/dist/client/assets/{external-link-UTDzdjq8.js → external-link-fBsuHMby.js} +1 -1
- package/template/dist/client/assets/{eye-nR10ui7i.js → eye-CwlZZEsj.js} +1 -1
- package/template/dist/client/assets/index-09IqiOaE.css +1 -0
- package/template/dist/client/assets/index-B3CRby6r.js +51 -0
- package/template/dist/client/assets/index-CC_zy73y.js +17 -0
- package/template/dist/client/assets/main-Cn4IDo2I.js +92 -0
- package/template/dist/client/assets/merchant-DDDN9bMu.js +40 -0
- package/template/dist/client/assets/{message-square-CwWGL-Bh.js → message-square-BRaZfgbJ.js} +1 -1
- package/template/dist/client/assets/pluginStore-DDsWJPe6.js +1 -0
- package/template/dist/client/assets/{plus-pZld_nUL.js → plus-DDZfPiDJ.js} +1 -1
- package/template/dist/client/assets/sse-client-DGQ072hl.js +64 -0
- package/template/dist/client/assets/star-C7tO6w4H.js +11 -0
- package/template/dist/client/assets/{tag-DsiUPF90.js → tag-DBfpQDuJ.js} +1 -1
- package/template/dist/client/assets/tenant-CizbLaLJ.js +1 -0
- package/template/dist/client/assets/{trash-2-DRblNbnA.js → trash-2-BP7fkd5b.js} +1 -1
- package/template/dist/client/assets/{triangle-alert-D1CLh-Vd.js → triangle-alert-CrOQEdJ2.js} +1 -1
- package/template/dist/client/assets/{wifi-BwXjnCqI.js → wifi-CwYSE0J4.js} +1 -1
- package/template/dist/client/assets/{x-BH2rJdFq.js → x-t615pnNR.js} +1 -1
- package/template/dist/client/content/index.html +5 -4
- package/template/dist/client/index.html +4 -3
- package/template/dist/client/merchant.html +18 -0
- package/template/dist/client/notifications/index.html +6 -5
- package/template/dist/client/tenant.html +18 -0
- package/template/dist/client/todos/index.html +6 -5
- package/template/dist/client/websocket/index.html +6 -5
- package/template/dist/cloudflare/chunk-HX7DVRDX.js +1 -0
- package/template/dist/cloudflare/{chunk-QBHAPWIA.js → chunk-IXJL2LE4.js} +1 -1
- package/template/dist/cloudflare/chunk-Q34AN3RF.js +14 -0
- package/template/dist/cloudflare/{chunk-BHPTQ4K2.js → chunk-ZAMVL4EG.js} +2 -2
- package/template/dist/cloudflare/cloudflare.js +35 -29
- package/template/dist/cloudflare/db-4AQOSFAX.js +1 -0
- package/template/dist/cloudflare/{migrator-2ZYYKNI5.js → migrator-TEPBVUFO.js} +1 -1
- package/template/dist/cloudflare/permission-service-impl-RE7NPW3Q.js +1 -0
- package/template/dist/cloudflare/schema-DVEMT3X2.js +1 -0
- package/template/dist/cloudflare/test-setup-Z2RYE5B4.js +265 -0
- package/template/dist/server/chunk-27SIJSPF.js +1 -0
- package/template/dist/server/chunk-37QNGBQU.js +1 -0
- package/template/dist/server/chunk-FIY4CGJJ.js +1 -0
- package/template/dist/server/chunk-HZUDBIT4.js +1 -0
- package/template/dist/server/chunk-I6OBDFDU.js +1 -0
- package/template/dist/server/chunk-JHNYLNG7.js +1 -0
- package/template/dist/server/chunk-MDOVVKKD.js +1 -0
- package/template/dist/server/chunk-NSOCT7E5.js +1 -0
- package/template/dist/server/chunk-OU5IGVVO.js +1 -0
- package/template/dist/server/chunk-OYCBNRMK.js +1 -0
- package/template/dist/server/chunk-P2RJNNGD.js +1 -0
- package/template/dist/server/chunk-UMAQLNPE.js +1 -0
- package/template/dist/server/chunk-XZZTSRSN.js +1 -0
- package/template/dist/server/content-service-5QVHDR5X.js +1 -0
- package/template/dist/server/db-FLI5L5DD.js +1 -0
- package/template/dist/server/dispute-service-E2FCYUEM.js +1 -0
- package/template/dist/server/init-72JXJV3I.js +46 -0
- package/template/dist/server/init-FWYXSKPX.js +46 -0
- package/template/dist/server/node.js +34 -28
- package/template/dist/server/order-service-TKGG5S5K.js +1 -0
- package/template/dist/server/permission-service-impl-M3AKEYNY.js +1 -0
- package/template/dist/server/schema-V4UG7HMU.js +1 -0
- package/template/dist/server/tenant-service-JG6UUWXQ.js +1 -0
- package/template/dist/server/tenant-service-XJWZSEDX.js +1 -0
- package/template/dist/{cloudflare/test-setup-NMZJZLRV.js → server/test-setup-VFOPBGYM.js} +83 -2
- package/template/dist/server/ticket-service-3RSW7V2Z.js +1 -0
- package/template/dist/server/todo-service-S6BGIO7D.js +1 -0
- package/template/src/merchant/pages/DisputesPage.tsx +11 -11
- package/template/src/merchant/pages/OrdersPage.tsx +4 -3
- package/template/src/merchant/pages/ProductsPage.tsx +2 -2
- package/template/src/merchant/stores/merchantStore.ts +11 -6
- package/template/src/server/db/init.ts +5 -642
- package/template/src/server/module-plugin/services/plugin-seed-service.ts +623 -0
- package/template/src/server/module-tenant/routes/tenant-routes.ts +2 -2
- package/template/src/server/module-tenant/services/tenant-service.ts +63 -17
- package/template/src/shared/modules/merchant/index.ts +9 -0
- package/template/src/shared/modules/merchant/schemas.ts +37 -0
- package/template/src/shared/modules/tenant/index.ts +2 -0
- package/template/src/shared/schemas/index.ts +27 -0
- package/template/src/tenant/layouts/Header.tsx +1 -1
- package/template/src/tenant/layouts/Sidebar.tsx +1 -1
- package/template/src/tenant/pages/SettingsPage.tsx +4 -8
- package/template/src/tenant/stores/tenantStore.ts +41 -302
- package/template/tsconfig.json +1 -0
- package/template/tsup.config.ts +11 -3
- package/template/dist/client/assets/ContentDetailPage-DdltMANL.js +0 -1
- package/template/dist/client/assets/ContentListPage-B63sUB6N.js +0 -1
- package/template/dist/client/assets/DashboardPage-tUMilc7Z.js +0 -11
- package/template/dist/client/assets/LoadingSpinner-DVYOLSRM.js +0 -6
- package/template/dist/client/assets/LoginPage-g9mSLIMC.js +0 -6
- package/template/dist/client/assets/NotificationPage-COTzp-HD.js +0 -1
- package/template/dist/client/assets/OrdersPage-BsPh4oEI.js +0 -11
- package/template/dist/client/assets/PluginsPage-BNtAe_yo.js +0 -6
- package/template/dist/client/assets/ProfilePage-dL_iSuZN.js +0 -16
- package/template/dist/client/assets/PublishPage-D96FnbLA.js +0 -1
- package/template/dist/client/assets/TopicsPage-DyLjZa4D.js +0 -6
- package/template/dist/client/assets/admin-Bh1vfz_L.js +0 -486
- package/template/dist/client/assets/index-1bA-ixFv.js +0 -114
- package/template/dist/client/assets/index-CWh3vXC_.css +0 -1
- package/template/dist/client/assets/main-DHnArIp_.js +0 -82
- package/template/dist/client/assets/pluginStore-XQfsm3iR.js +0 -1
- package/template/dist/client/content/content-1/index.html +0 -18
- package/template/dist/client/content/content-13/index.html +0 -18
- package/template/dist/client/content/content-14/index.html +0 -18
- package/template/dist/client/content/content-15/index.html +0 -18
- package/template/dist/client/content/content-19/index.html +0 -18
- package/template/dist/client/content/content-2/index.html +0 -18
- package/template/dist/client/content/content-20/index.html +0 -18
- package/template/dist/cloudflare/chunk-YY6FRMAQ.js +0 -14
- package/template/dist/cloudflare/db-7J42RQ3T.js +0 -1
- package/template/dist/cloudflare/permission-service-impl-TGXVSSSA.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */@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-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking: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}}}@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-200:oklch(88.5% .062 18.334);--color-red-300:oklch(80.8% .114 19.571);--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-orange-100:oklch(95.4% .038 75.164);--color-orange-500:oklch(70.5% .213 47.604);--color-orange-700:oklch(55.3% .195 38.402);--color-amber-50:oklch(98.7% .022 95.277);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-yellow-50:oklch(98.7% .026 102.212);--color-yellow-100:oklch(97.3% .071 103.193);--color-yellow-300:oklch(90.5% .182 98.111);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-500:oklch(79.5% .184 86.047);--color-yellow-700:oklch(55.4% .135 66.442);--color-green-50:oklch(98.2% .018 155.826);--color-green-100:oklch(96.2% .044 156.743);--color-green-200:oklch(92.5% .084 155.995);--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-emerald-50:oklch(97.9% .021 166.113);--color-emerald-100:oklch(95% .052 163.051);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-700:oklch(50.8% .118 165.612);--color-teal-500:oklch(70.4% .14 182.503);--color-cyan-100:oklch(95.6% .045 203.388);--color-cyan-500:oklch(71.5% .143 215.221);--color-cyan-700:oklch(52% .105 223.128);--color-sky-100:oklch(95.1% .026 236.824);--color-sky-500:oklch(68.5% .169 237.323);--color-sky-700:oklch(50% .134 242.749);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-800:oklch(42.4% .199 265.638);--color-indigo-500:oklch(58.5% .233 277.117);--color-indigo-600:oklch(51.1% .262 276.966);--color-violet-50:oklch(96.9% .016 293.756);--color-violet-100:oklch(94.3% .029 294.588);--color-violet-200:oklch(89.4% .057 293.283);--color-violet-300:oklch(81.1% .111 293.571);--color-violet-400:oklch(70.2% .183 293.541);--color-violet-500:oklch(60.6% .25 292.717);--color-violet-600:oklch(54.1% .281 293.009);--color-violet-700:oklch(49.1% .27 292.581);--color-purple-100:oklch(94.6% .033 307.174);--color-purple-200:oklch(90.2% .063 306.703);--color-purple-300:oklch(82.7% .119 306.383);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-600:oklch(55.8% .288 302.321);--color-purple-700:oklch(49.6% .265 301.924);--color-purple-900:oklch(38.1% .176 304.987);--color-fuchsia-50:oklch(97.7% .017 320.058);--color-fuchsia-100:oklch(95.2% .037 318.852);--color-fuchsia-400:oklch(74% .238 322.16);--color-fuchsia-500:oklch(66.7% .295 322.15);--color-pink-100:oklch(94.8% .028 342.258);--color-pink-500:oklch(65.6% .241 354.308);--color-pink-700:oklch(52.5% .223 3.958);--color-rose-100:oklch(94.1% .03 12.58);--color-rose-500:oklch(64.5% .246 16.439);--color-rose-700:oklch(51.4% .222 16.935);--color-slate-50:oklch(98.4% .003 247.858);--color-slate-900:oklch(20.8% .042 265.755);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-5xl:64rem;--container-6xl:72rem;--container-7xl:80rem;--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: 1.5 ;--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);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wider:.05em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--animate-spin:spin 1s linear 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%;-moz-tab-size:4;-o-tab-size:4;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;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}::-moz-placeholder{opacity:1}::placeholder{opacity:1}@supports (not (-webkit-appearance:-apple-pay-button)) or (contain-intrinsic-size:1px){::-moz-placeholder{color:currentColor}::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::-moz-placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}::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]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.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)}.top-0{top:calc(var(--spacing) * 0)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-6{top:calc(var(--spacing) * 6)}.top-8{top:calc(var(--spacing) * 8)}.right-0{right:calc(var(--spacing) * 0)}.right-2{right:calc(var(--spacing) * 2)}.bottom-0{bottom:calc(var(--spacing) * 0)}.left-0{left:calc(var(--spacing) * 0)}.left-1\/2{left:50%}.left-3{left:calc(var(--spacing) * 3)}.left-4{left:calc(var(--spacing) * 4)}.z-10{z-index:10}.z-50{z-index:50}.order-1{order:1}.order-999999{order:999999}.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}}.m-6{margin:calc(var(--spacing) * 6)}.mx-1{margin-inline:calc(var(--spacing) * 1)}.mx-1\.5{margin-inline:calc(var(--spacing) * 1.5)}.mx-2{margin-inline:calc(var(--spacing) * 2)}.mx-auto{margin-inline:auto}.-mt-4{margin-top:calc(var(--spacing) * -4)}.-mt-6{margin-top:calc(var(--spacing) * -6)}.-mt-8{margin-top:calc(var(--spacing) * -8)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-2\.5{margin-top:calc(var(--spacing) * 2.5)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-10{margin-top:calc(var(--spacing) * 10)}.mr-0\.5{margin-right:calc(var(--spacing) * .5)}.mr-1{margin-right:calc(var(--spacing) * 1)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.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)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.h-0\.5{height:calc(var(--spacing) * .5)}.h-1{height:calc(var(--spacing) * 1)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-4\.5{height:calc(var(--spacing) * 4.5)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.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-32{height:calc(var(--spacing) * 32)}.h-48{height:calc(var(--spacing) * 48)}.h-64{height:calc(var(--spacing) * 64)}.h-\[400px\]{height:400px}.h-\[calc\(100\%\+4px\)\]{height:calc(100% + 4px)}.h-full{height:100%}.h-screen{height:100vh}.max-h-96{max-height:calc(var(--spacing) * 96)}.min-h-\[50vh\]{min-height:50vh}.min-h-\[100px\]{min-height:100px}.min-h-\[calc\(100vh-200px\)\]{min-height:calc(100vh - 200px)}.min-h-screen{min-height:100vh}.w-0\.5{width:calc(var(--spacing) * .5)}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-4\.5{width:calc(var(--spacing) * 4.5)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.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-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-44{width:calc(var(--spacing) * 44)}.w-60{width:calc(var(--spacing) * 60)}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-\[120px\]{max-width:120px}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-none{max-width:none}.max-w-xl{max-width:var(--container-xl)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-\[48px\]{min-width:48px}.min-w-\[80px\]{min-width:80px}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.-translate-x-px{--tw-translate-x:-1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.scale-110{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-spin{animation:var(--animate-spin)}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize-none{resize:none}.\[scrollbar-width\:none\]{scrollbar-width:none}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,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-around{justify-content:space-around}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.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-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}: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-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(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}.self-center{align-self:center}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.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-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t-md{border-top-left-radius:var(--radius-md);border-top-right-radius:var(--radius-md)}.rounded-l-lg{border-top-left-radius:var(--radius-lg);border-bottom-left-radius:var(--radius-lg)}.rounded-r-lg{border-top-right-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.\!border-r-0{border-right-style:var(--tw-border-style)!important;border-right-width:0!important}.border-r-0{border-right-style:var(--tw-border-style);border-right-width:0}.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-none{--tw-border-style:none;border-style:none}.border-blue-400{border-color:var(--color-blue-400)}.border-gray-50{border-color:var(--color-gray-50)}.border-gray-100{border-color:var(--color-gray-100)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-gray-700{border-color:var(--color-gray-700)}.border-green-200{border-color:var(--color-green-200)}.border-green-400{border-color:var(--color-green-400)}.border-red-200{border-color:var(--color-red-200)}.border-red-400{border-color:var(--color-red-400)}.border-red-500\/20{border-color:#fb2c3633}@supports (color:color-mix(in lab,red,red)){.border-red-500\/20{border-color:color-mix(in oklab,var(--color-red-500) 20%,transparent)}}.border-white\/10{border-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.border-white\/10{border-color:color-mix(in oklab,var(--color-white) 10%,transparent)}}.border-white\/20{border-color:#fff3}@supports (color:color-mix(in lab,red,red)){.border-white\/20{border-color:color-mix(in oklab,var(--color-white) 20%,transparent)}}.border-yellow-400{border-color:var(--color-yellow-400)}.\!bg-\[\#001529\]{background-color:#001529!important}.\!bg-transparent{background-color:#0000!important}.bg-amber-50{background-color:var(--color-amber-50)}.bg-amber-100{background-color:var(--color-amber-100)}.bg-amber-500{background-color:var(--color-amber-500)}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-50\/50{background-color:#eff6ff80}@supports (color:color-mix(in lab,red,red)){.bg-blue-50\/50{background-color:color-mix(in oklab,var(--color-blue-50) 50%,transparent)}}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-blue-600{background-color:var(--color-blue-600)}.bg-cyan-100{background-color:var(--color-cyan-100)}.bg-cyan-500{background-color:var(--color-cyan-500)}.bg-emerald-50{background-color:var(--color-emerald-50)}.bg-emerald-100{background-color:var(--color-emerald-100)}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-gray-300{background-color:var(--color-gray-300)}.bg-gray-500{background-color:var(--color-gray-500)}.bg-gray-800{background-color:var(--color-gray-800)}.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-indigo-500{background-color:var(--color-indigo-500)}.bg-orange-100{background-color:var(--color-orange-100)}.bg-orange-500{background-color:var(--color-orange-500)}.bg-pink-100{background-color:var(--color-pink-100)}.bg-purple-100{background-color:var(--color-purple-100)}.bg-purple-500{background-color:var(--color-purple-500)}.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-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/10{background-color:color-mix(in oklab,var(--color-red-500) 10%,transparent)}}.bg-rose-100{background-color:var(--color-rose-100)}.bg-sky-100{background-color:var(--color-sky-100)}.bg-transparent{background-color:#0000}.bg-violet-50{background-color:var(--color-violet-50)}.bg-violet-100{background-color:var(--color-violet-100)}.bg-white{background-color:var(--color-white)}.bg-white\/10{background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.bg-white\/10{background-color:color-mix(in oklab,var(--color-white) 10%,transparent)}}.bg-white\/80{background-color:#fffc}@supports (color:color-mix(in lab,red,red)){.bg-white\/80{background-color:color-mix(in oklab,var(--color-white) 80%,transparent)}}.bg-white\/95{background-color:#fffffff2}@supports (color:color-mix(in lab,red,red)){.bg-white\/95{background-color:color-mix(in oklab,var(--color-white) 95%,transparent)}}.bg-yellow-50{background-color:var(--color-yellow-50)}.bg-yellow-100{background-color:var(--color-yellow-100)}.bg-yellow-500{background-color:var(--color-yellow-500)}.bg-gradient-to-b{--tw-gradient-position:to bottom in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-amber-500{--tw-gradient-from:var(--color-amber-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-blue-500{--tw-gradient-from:var(--color-blue-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-cyan-500{--tw-gradient-from:var(--color-cyan-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-emerald-50{--tw-gradient-from:var(--color-emerald-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-emerald-500{--tw-gradient-from:var(--color-emerald-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-fuchsia-500{--tw-gradient-from:var(--color-fuchsia-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-indigo-500{--tw-gradient-from:var(--color-indigo-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-orange-500{--tw-gradient-from:var(--color-orange-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-rose-500{--tw-gradient-from:var(--color-rose-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-slate-900{--tw-gradient-from:var(--color-slate-900);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-teal-500{--tw-gradient-from:var(--color-teal-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-violet-50{--tw-gradient-from:var(--color-violet-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-violet-100{--tw-gradient-from:var(--color-violet-100);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-violet-400{--tw-gradient-from:var(--color-violet-400);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-violet-500{--tw-gradient-from:var(--color-violet-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-violet-500\/0{--tw-gradient-from:#0000}@supports (color:color-mix(in lab,red,red)){.from-violet-500\/0{--tw-gradient-from:color-mix(in oklab, var(--color-violet-500) 0%, transparent)}}.from-violet-500\/0{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.via-purple-900{--tw-gradient-via:var(--color-purple-900);--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-amber-500{--tw-gradient-to:var(--color-amber-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-blue-600{--tw-gradient-to:var(--color-blue-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-cyan-500{--tw-gradient-to:var(--color-cyan-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-fuchsia-50{--tw-gradient-to:var(--color-fuchsia-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-fuchsia-100{--tw-gradient-to:var(--color-fuchsia-100);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-fuchsia-400{--tw-gradient-to:var(--color-fuchsia-400);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-fuchsia-500{--tw-gradient-to:var(--color-fuchsia-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-fuchsia-500\/0{--tw-gradient-to:#0000}@supports (color:color-mix(in lab,red,red)){.to-fuchsia-500\/0{--tw-gradient-to:color-mix(in oklab, var(--color-fuchsia-500) 0%, transparent)}}.to-fuchsia-500\/0{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-green-500{--tw-gradient-to:var(--color-green-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-orange-500{--tw-gradient-to:var(--color-orange-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-pink-500{--tw-gradient-to:var(--color-pink-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-purple-600{--tw-gradient-to:var(--color-purple-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-red-500{--tw-gradient-to:var(--color-red-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-sky-500{--tw-gradient-to:var(--color-sky-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-slate-50{--tw-gradient-to:var(--color-slate-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-slate-900{--tw-gradient-to:var(--color-slate-900);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-teal-500{--tw-gradient-to:var(--color-teal-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-white{--tw-gradient-to:var(--color-white);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.fill-yellow-400{fill:var(--color-yellow-400)}.object-cover{-o-object-fit: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-3\.5{padding:calc(var(--spacing) * 3.5)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-7{padding:calc(var(--spacing) * 7)}.p-8{padding:calc(var(--spacing) * 8)}.p-12{padding:calc(var(--spacing) * 12)}.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-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.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\.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-4{padding-block:calc(var(--spacing) * 4)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-16{padding-block:calc(var(--spacing) * 16)}.py-20{padding-block:calc(var(--spacing) * 20)}.py-32{padding-block:calc(var(--spacing) * 32)}.pt-0\.5{padding-top:calc(var(--spacing) * .5)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-8{padding-top:calc(var(--spacing) * 8)}.pt-12{padding-top:calc(var(--spacing) * 12)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pr-36{padding-right:calc(var(--spacing) * 36)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pb-10{padding-bottom:calc(var(--spacing) * 10)}.pb-16{padding-bottom:calc(var(--spacing) * 16)}.pb-20{padding-bottom:calc(var(--spacing) * 20)}.pb-24{padding-bottom:calc(var(--spacing) * 24)}.pl-10{padding-left:calc(var(--spacing) * 10)}.pl-12{padding-left:calc(var(--spacing) * 12)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.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-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--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-\[10px\]{font-size:10px}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.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-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.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)}.break-words{overflow-wrap:break-word}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber-500{color:var(--color-amber-500)}.text-amber-600{color:var(--color-amber-600)}.text-amber-700{color:var(--color-amber-700)}.text-blue-500{color:var(--color-blue-500)}.text-blue-600{color:var(--color-blue-600)}.text-blue-700{color:var(--color-blue-700)}.text-cyan-500{color:var(--color-cyan-500)}.text-cyan-700{color:var(--color-cyan-700)}.text-emerald-500{color:var(--color-emerald-500)}.text-emerald-600{color:var(--color-emerald-600)}.text-emerald-700{color:var(--color-emerald-700)}.text-gray-200{color:var(--color-gray-200)}.text-gray-300{color:var(--color-gray-300)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-gray-900{color:var(--color-gray-900)}.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-indigo-500{color:var(--color-indigo-500)}.text-orange-500{color:var(--color-orange-500)}.text-orange-700{color:var(--color-orange-700)}.text-pink-700{color:var(--color-pink-700)}.text-purple-200\/50{color:#e9d5ff80}@supports (color:color-mix(in lab,red,red)){.text-purple-200\/50{color:color-mix(in oklab,var(--color-purple-200) 50%,transparent)}}.text-purple-200\/60{color:#e9d5ff99}@supports (color:color-mix(in lab,red,red)){.text-purple-200\/60{color:color-mix(in oklab,var(--color-purple-200) 60%,transparent)}}.text-purple-200\/70{color:#e9d5ffb3}@supports (color:color-mix(in lab,red,red)){.text-purple-200\/70{color:color-mix(in oklab,var(--color-purple-200) 70%,transparent)}}.text-purple-300{color:var(--color-purple-300)}.text-purple-500{color:var(--color-purple-500)}.text-purple-700{color:var(--color-purple-700)}.text-red-300{color:var(--color-red-300)}.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-rose-500{color:var(--color-rose-500)}.text-rose-700{color:var(--color-rose-700)}.text-sky-700{color:var(--color-sky-700)}.text-violet-500{color:var(--color-violet-500)}.text-violet-600{color:var(--color-violet-600)}.text-violet-700{color:var(--color-violet-700)}.text-white{color:var(--color-white)}.text-white\/70{color:#ffffffb3}@supports (color:color-mix(in lab,red,red)){.text-white\/70{color:color-mix(in oklab,var(--color-white) 70%,transparent)}}.text-yellow-400{color:var(--color-yellow-400)}.text-yellow-500{color:var(--color-yellow-500)}.text-yellow-700{color:var(--color-yellow-700)}.uppercase{text-transform:uppercase}.line-through{text-decoration-line:line-through}.decoration-emerald-400{text-decoration-color:var(--color-emerald-400)}.underline-offset-2{text-underline-offset:2px}.placeholder-purple-200\/40::-moz-placeholder{color:#e9d5ff66}.placeholder-purple-200\/40::placeholder{color:#e9d5ff66}@supports (color:color-mix(in lab,red,red)){.placeholder-purple-200\/40::-moz-placeholder{color:color-mix(in oklab,var(--color-purple-200) 40%,transparent)}.placeholder-purple-200\/40::placeholder{color:color-mix(in oklab,var(--color-purple-200) 40%,transparent)}}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.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-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px 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)}.shadow-black\/5{--tw-shadow-color:#0000000d}@supports (color:color-mix(in lab,red,red)){.shadow-black\/5{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 5%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-emerald-500\/25{--tw-shadow-color:#00bb7f40}@supports (color:color-mix(in lab,red,red)){.shadow-emerald-500\/25{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-emerald-500) 25%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-violet-500\/15{--tw-shadow-color:#8d54ff26}@supports (color:color-mix(in lab,red,red)){.shadow-violet-500\/15{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-violet-500) 15%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-violet-500\/20{--tw-shadow-color:#8d54ff33}@supports (color:color-mix(in lab,red,red)){.shadow-violet-500\/20{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-violet-500) 20%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-violet-500\/25{--tw-shadow-color:#8d54ff40}@supports (color:color-mix(in lab,red,red)){.shadow-violet-500\/25{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-violet-500) 25%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-violet-500\/30{--tw-shadow-color:#8d54ff4d}@supports (color:color-mix(in lab,red,red)){.shadow-violet-500\/30{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-violet-500) 30%, transparent) var(--tw-shadow-alpha), transparent)}}.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,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-shadow{transition-property:box-shadow;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-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.outline-none{--tw-outline-style:none;outline-style:none}.\[-ms-overflow-style\:none\]{-ms-overflow-style:none}@media(hover:hover){.group-hover\:rotate-12:is(:where(.group):hover *){rotate:12deg}.group-hover\:rotate-90:is(:where(.group):hover *){rotate:90deg}.group-hover\:from-violet-500\/\[0\.02\]:is(:where(.group):hover *){--tw-gradient-from:#8d54ff05}@supports (color:color-mix(in lab,red,red)){.group-hover\:from-violet-500\/\[0\.02\]:is(:where(.group):hover *){--tw-gradient-from:color-mix(in oklab, var(--color-violet-500) 2%, transparent)}}.group-hover\:from-violet-500\/\[0\.02\]:is(:where(.group):hover *){--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.group-hover\:to-fuchsia-500\/\[0\.04\]:is(:where(.group):hover *){--tw-gradient-to:#e12afb0a}@supports (color:color-mix(in lab,red,red)){.group-hover\:to-fuchsia-500\/\[0\.04\]:is(:where(.group):hover *){--tw-gradient-to:color-mix(in oklab, var(--color-fuchsia-500) 4%, transparent)}}.group-hover\:to-fuchsia-500\/\[0\.04\]:is(:where(.group):hover *){--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.group-hover\:text-violet-700:is(:where(.group):hover *){color:var(--color-violet-700)}.group-hover\:underline:is(:where(.group):hover *){text-decoration-line:underline}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}.group-hover\:shadow-md:is(:where(.group):hover *){--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px 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)}}.first\:rounded-t-lg:first-child{border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}.last\:rounded-b-lg:last-child{border-bottom-right-radius:var(--radius-lg);border-bottom-left-radius:var(--radius-lg)}.last\:border-0:last-child{border-style:var(--tw-border-style);border-width:0}@media(hover:hover){.hover\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\:border-blue-300:hover{border-color:var(--color-blue-300)}.hover\:border-emerald-200:hover{border-color:var(--color-emerald-200)}.hover\:border-transparent:hover{border-color:#0000}.hover\:border-violet-200:hover{border-color:var(--color-violet-200)}.hover\:border-violet-300:hover{border-color:var(--color-violet-300)}.hover\:bg-amber-100:hover{background-color:var(--color-amber-100)}.hover\:bg-amber-600:hover{background-color:var(--color-amber-600)}.hover\:bg-blue-50:hover{background-color:var(--color-blue-50)}.hover\:bg-blue-600:hover{background-color:var(--color-blue-600)}.hover\:bg-blue-700:hover{background-color:var(--color-blue-700)}.hover\:bg-emerald-600:hover{background-color:var(--color-emerald-600)}.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:bg-gray-200:hover{background-color:var(--color-gray-200)}.hover\:bg-gray-600:hover{background-color:var(--color-gray-600)}.hover\:bg-gray-700:hover{background-color:var(--color-gray-700)}.hover\:bg-green-600:hover{background-color:var(--color-green-600)}.hover\:bg-green-700:hover{background-color:var(--color-green-700)}.hover\:bg-indigo-600:hover{background-color:var(--color-indigo-600)}.hover\:bg-purple-600:hover{background-color:var(--color-purple-600)}.hover\:bg-red-50:hover{background-color:var(--color-red-50)}.hover\:bg-red-600:hover{background-color:var(--color-red-600)}.hover\:bg-violet-50:hover{background-color:var(--color-violet-50)}.hover\:bg-white\/20:hover{background-color:#fff3}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/20:hover{background-color:color-mix(in oklab,var(--color-white) 20%,transparent)}}.hover\:from-violet-400:hover{--tw-gradient-from:var(--color-violet-400);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.hover\:to-fuchsia-400:hover{--tw-gradient-to:var(--color-fuchsia-400);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.hover\:text-amber-700:hover{color:var(--color-amber-700)}.hover\:text-blue-500:hover{color:var(--color-blue-500)}.hover\:text-blue-600:hover{color:var(--color-blue-600)}.hover\:text-blue-700:hover{color:var(--color-blue-700)}.hover\:text-blue-800:hover{color:var(--color-blue-800)}.hover\:text-emerald-500:hover{color:var(--color-emerald-500)}.hover\:text-gray-600:hover{color:var(--color-gray-600)}.hover\:text-gray-700:hover{color:var(--color-gray-700)}.hover\:text-gray-900:hover{color:var(--color-gray-900)}.hover\:text-red-400:hover{color:var(--color-red-400)}.hover\:text-red-500:hover{color:var(--color-red-500)}.hover\:text-violet-500:hover{color:var(--color-violet-500)}.hover\:text-white:hover{color:var(--color-white)}.hover\:text-yellow-300:hover{color:var(--color-yellow-300)}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow-2xl:hover{--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)}.hover\:shadow-lg:hover{--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)}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px 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)}.hover\:shadow-sm:hover{--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)}.hover\:shadow-xl:hover{--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)}.hover\:shadow-emerald-500\/5:hover{--tw-shadow-color:#00bb7f0d}@supports (color:color-mix(in lab,red,red)){.hover\:shadow-emerald-500\/5:hover{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-emerald-500) 5%, transparent) var(--tw-shadow-alpha), transparent)}}.hover\:shadow-violet-500\/5:hover{--tw-shadow-color:#8d54ff0d}@supports (color:color-mix(in lab,red,red)){.hover\:shadow-violet-500\/5:hover{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-violet-500) 5%, transparent) var(--tw-shadow-alpha), transparent)}}.hover\:shadow-violet-500\/10:hover{--tw-shadow-color:#8d54ff1a}@supports (color:color-mix(in lab,red,red)){.hover\:shadow-violet-500\/10:hover{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-violet-500) 10%, transparent) var(--tw-shadow-alpha), transparent)}}.hover\:shadow-violet-500\/40:hover{--tw-shadow-color:#8d54ff66}@supports (color:color-mix(in lab,red,red)){.hover\:shadow-violet-500\/40:hover{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-violet-500) 40%, transparent) var(--tw-shadow-alpha), transparent)}}}.focus\:border-transparent:focus{border-color:#0000}.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)}.focus\:ring-blue-500:focus{--tw-ring-color:var(--color-blue-500)}.focus\:ring-emerald-500:focus{--tw-ring-color:var(--color-emerald-500)}.focus\:ring-gray-800:focus{--tw-ring-color:var(--color-gray-800)}.focus\:ring-green-500:focus{--tw-ring-color:var(--color-green-500)}.focus\:ring-indigo-500:focus{--tw-ring-color:var(--color-indigo-500)}.focus\:ring-purple-500:focus{--tw-ring-color:var(--color-purple-500)}.focus\:ring-violet-400:focus{--tw-ring-color:var(--color-violet-400)}.focus\:ring-violet-500:focus{--tw-ring-color:var(--color-violet-500)}.focus\:ring-offset-2:focus{--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)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-gray-100:disabled{background-color:var(--color-gray-100)}.disabled\:bg-gray-300:disabled{background-color:var(--color-gray-300)}.disabled\:from-gray-300:disabled{--tw-gradient-from:var(--color-gray-300);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.disabled\:from-gray-600:disabled{--tw-gradient-from:var(--color-gray-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.disabled\:to-gray-300:disabled{--tw-gradient-to:var(--color-gray-300);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.disabled\:to-gray-600:disabled{--tw-gradient-to:var(--color-gray-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-50:disabled{opacity:.5}@media(min-width:40rem){.sm\:ml-auto{margin-left:auto}.sm\:flex{display:flex}.sm\:table-cell{display:table-cell}.sm\:h-24{height:calc(var(--spacing) * 24)}.sm\:w-24{width:calc(var(--spacing) * 24)}.sm\:max-w-\[200px\]{max-width:200px}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:items-start{align-items:flex-start}.sm\:justify-between{justify-content:space-between}.sm\:justify-start{justify-content:flex-start}.sm\:gap-6{gap:calc(var(--spacing) * 6)}.sm\:self-auto{align-self:auto}.sm\:self-start{align-self:flex-start}.sm\:p-6{padding:calc(var(--spacing) * 6)}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}.sm\:text-left{text-align:left}.sm\:text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}}@media(min-width:48rem){.md\:block{display:block}.md\:hidden{display:none}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:pb-8{padding-bottom:calc(var(--spacing) * 8)}}@media(min-width:64rem){.lg\:col-span-1{grid-column:span 1/span 1}.lg\:col-span-2{grid-column:span 2/span 2}.lg\:block{display:block}.lg\:w-56{width:calc(var(--spacing) * 56)}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:flex-col{flex-direction:column}.lg\:flex-row{flex-direction:row}.lg\:overflow-visible{overflow:visible}.lg\:p-8{padding:calc(var(--spacing) * 8)}.lg\:px-8{padding-inline:calc(var(--spacing) * 8)}}@media(min-width:80rem){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}.\[\&\:\:-webkit-scrollbar\]\:hidden::-webkit-scrollbar{display:none}}*{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}#root{min-height:100vh}@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-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{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}@keyframes spin{to{transform:rotate(360deg)}}
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/LoginPage-g9mSLIMC.js","assets/index-1bA-ixFv.js","assets/index-CWh3vXC_.css","assets/RegisterPage-rPFG4Sry.js","assets/TodoPage-zC5wWNBa.js","assets/LoadingSpinner-DVYOLSRM.js","assets/EmptyState-BK7ttK8D.js","assets/circle-check-big-CSElLscG.js","assets/plus-pZld_nUL.js","assets/clock-BseUJ7ex.js","assets/trash-2-DRblNbnA.js","assets/x-BH2rJdFq.js","assets/download-BsGC_Xhq.js","assets/NotificationPage-COTzp-HD.js","assets/StatusBadge-BJ3W2Zc7.js","assets/wifi-BwXjnCqI.js","assets/triangle-alert-D1CLh-Vd.js","assets/circle-x-CYxr4RAw.js","assets/WebSocketPage-B4NLdz1w.js","assets/message-square-CwWGL-Bh.js","assets/activity-B94BUAsD.js","assets/PluginsPage-BNtAe_yo.js","assets/pluginStore-XQfsm3iR.js","assets/tag-DsiUPF90.js","assets/chevron-right-CpIWaqAL.js","assets/PluginDetailPage-Br24YS4P.js","assets/arrow-left-H5JH0iU1.js","assets/external-link-UTDzdjq8.js","assets/CategoriesPage-DqLZ_Mom.js","assets/SearchPage-DQl1U5Uy.js","assets/PublishPage-D96FnbLA.js","assets/DeveloperDashboardPage-Cum7zFwO.js","assets/ContentListPage-B63sUB6N.js","assets/ContentDetailPage-DdltMANL.js","assets/CartPage-DESSHkaG.js","assets/OrdersPage-BsPh4oEI.js","assets/TopicsPage-DyLjZa4D.js","assets/chevron-down-DwRh_wjD.js","assets/eye-nR10ui7i.js","assets/ProfilePage-dL_iSuZN.js","assets/DashboardPage-tUMilc7Z.js","assets/SettingsPage-DaYE80wj.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
var Ce=Object.defineProperty;var Pe=(e,r,t)=>r in e?Ce(e,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[r]=t;var x=(e,r,t)=>Pe(e,typeof r!="symbol"?r+"":r,t);import{g as X,r as d,R as m,c as g,h as Se,S as we,W as re,a as Oe,p as Re,j as u,L as ne,N as q,u as je,b as Le,U as Ie,B as De,T as Me,d as Ne,e as He,f as D,i as $e,k as ze}from"./index-1bA-ixFv.js";var M,oe;function Ue(){if(oe)return M;oe=1;var e=typeof Element<"u",r=typeof Map=="function",t=typeof Set=="function",n=typeof ArrayBuffer=="function"&&!!ArrayBuffer.isView;function i(o,s){if(o===s)return!0;if(o&&s&&typeof o=="object"&&typeof s=="object"){if(o.constructor!==s.constructor)return!1;var a,l,c;if(Array.isArray(o)){if(a=o.length,a!=s.length)return!1;for(l=a;l--!==0;)if(!i(o[l],s[l]))return!1;return!0}var p;if(r&&o instanceof Map&&s instanceof Map){if(o.size!==s.size)return!1;for(p=o.entries();!(l=p.next()).done;)if(!s.has(l.value[0]))return!1;for(p=o.entries();!(l=p.next()).done;)if(!i(l.value[1],s.get(l.value[0])))return!1;return!0}if(t&&o instanceof Set&&s instanceof Set){if(o.size!==s.size)return!1;for(p=o.entries();!(l=p.next()).done;)if(!s.has(l.value[0]))return!1;return!0}if(n&&ArrayBuffer.isView(o)&&ArrayBuffer.isView(s)){if(a=o.length,a!=s.length)return!1;for(l=a;l--!==0;)if(o[l]!==s[l])return!1;return!0}if(o.constructor===RegExp)return o.source===s.source&&o.flags===s.flags;if(o.valueOf!==Object.prototype.valueOf&&typeof o.valueOf=="function"&&typeof s.valueOf=="function")return o.valueOf()===s.valueOf();if(o.toString!==Object.prototype.toString&&typeof o.toString=="function"&&typeof s.toString=="function")return o.toString()===s.toString();if(c=Object.keys(o),a=c.length,a!==Object.keys(s).length)return!1;for(l=a;l--!==0;)if(!Object.prototype.hasOwnProperty.call(s,c[l]))return!1;if(e&&o instanceof Element)return!1;for(l=a;l--!==0;)if(!((c[l]==="_owner"||c[l]==="__v"||c[l]==="__o")&&o.$$typeof)&&!i(o[c[l]],s[c[l]]))return!1;return!0}return o!==o&&s!==s}return M=function(s,a){try{return i(s,a)}catch(l){if((l.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw l}},M}var Ve=Ue();const Fe=X(Ve);var N,ae;function Be(){if(ae)return N;ae=1;var e=function(r,t,n,i,o,s,a,l){if(!r){var c;if(t===void 0)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var p=[n,i,o,s,a,l],f=0;c=new Error(t.replace(/%s/g,function(){return p[f++]})),c.name="Invariant Violation"}throw c.framesToPop=1,c}};return N=e,N}var qe=Be();const se=X(qe);var H,ie;function Ke(){return ie||(ie=1,H=function(r,t,n,i){var o=n?n.call(i,r,t):void 0;if(o!==void 0)return!!o;if(r===t)return!0;if(typeof r!="object"||!r||typeof t!="object"||!t)return!1;var s=Object.keys(r),a=Object.keys(t);if(s.length!==a.length)return!1;for(var l=Object.prototype.hasOwnProperty.bind(t),c=0;c<s.length;c++){var p=s[c];if(!l(p))return!1;var f=r[p],y=t[p];if(o=n?n.call(i,f,y,p):void 0,o===!1||o===void 0&&f!==y)return!1}return!0}),H}var We=Ke();const Ye=X(We);var ye=(e=>(e.BASE="base",e.BODY="body",e.HEAD="head",e.HTML="html",e.LINK="link",e.META="meta",e.NOSCRIPT="noscript",e.SCRIPT="script",e.STYLE="style",e.TITLE="title",e.FRAGMENT="Symbol(react.fragment)",e))(ye||{}),$={link:{rel:["amphtml","canonical","alternate"]},script:{type:["application/ld+json"]},meta:{charset:"",name:["generator","robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]}},le=Object.values(ye),I={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},ge=Object.entries(I).reduce((e,[r,t])=>(e[t]=r,e),{}),_="data-rh",C={DEFAULT_TITLE:"defaultTitle",DEFER:"defer",ENCODE_SPECIAL_CHARACTERS:"encodeSpecialCharacters",ON_CHANGE_CLIENT_STATE:"onChangeClientState",TITLE_TEMPLATE:"titleTemplate",PRIORITIZE_SEO_TAGS:"prioritizeSeoTags"},P=(e,r)=>{for(let t=e.length-1;t>=0;t-=1){const n=e[t];if(Object.prototype.hasOwnProperty.call(n,r))return n[r]}return null},Ge=e=>{let r=P(e,"title");const t=P(e,C.TITLE_TEMPLATE);if(Array.isArray(r)&&(r=r.join("")),t&&r)return t.replace(/%s/g,()=>r);const n=P(e,C.DEFAULT_TITLE);return r||n||void 0},Ze=e=>P(e,C.ON_CHANGE_CLIENT_STATE)||(()=>{}),z=(e,r)=>r.filter(t=>typeof t[e]<"u").map(t=>t[e]).reduce((t,n)=>({...t,...n}),{}),Je=(e,r)=>r.filter(t=>typeof t.base<"u").map(t=>t.base).reverse().reduce((t,n)=>{if(!t.length){const i=Object.keys(n);for(let o=0;o<i.length;o+=1){const a=i[o].toLowerCase();if(e.indexOf(a)!==-1&&n[a])return t.concat(n)}}return t},[]),Xe=e=>console&&typeof console.warn=="function"&&console.warn(e),S=(e,r,t)=>{const n={};return t.filter(i=>Array.isArray(i[e])?!0:(typeof i[e]<"u"&&Xe(`Helmet: ${e} should be of type "Array". Instead found type "${typeof i[e]}"`),!1)).map(i=>i[e]).reverse().reduce((i,o)=>{const s={};o.filter(l=>{let c;const p=Object.keys(l);for(let y=0;y<p.length;y+=1){const b=p[y],T=b.toLowerCase();r.indexOf(T)!==-1&&!(c==="rel"&&l[c].toLowerCase()==="canonical")&&!(T==="rel"&&l[T].toLowerCase()==="stylesheet")&&(c=T),r.indexOf(b)!==-1&&(b==="innerHTML"||b==="cssText"||b==="itemprop")&&(c=b)}if(!c||!l[c])return!1;const f=l[c].toLowerCase();return n[c]||(n[c]={}),s[c]||(s[c]={}),n[c][f]?!1:(s[c][f]=!0,!0)}).reverse().forEach(l=>i.push(l));const a=Object.keys(s);for(let l=0;l<a.length;l+=1){const c=a[l],p={...n[c],...s[c]};n[c]=p}return i},[]).reverse()},Qe=(e,r)=>{if(Array.isArray(e)&&e.length){for(let t=0;t<e.length;t+=1)if(e[t][r])return!0}return!1},et=e=>({baseTag:Je(["href"],e),bodyAttributes:z("bodyAttributes",e),defer:P(e,C.DEFER),encode:P(e,C.ENCODE_SPECIAL_CHARACTERS),htmlAttributes:z("htmlAttributes",e),linkTags:S("link",["rel","href"],e),metaTags:S("meta",["name","charset","http-equiv","property","itemprop"],e),noscriptTags:S("noscript",["innerHTML"],e),onChangeClientState:Ze(e),scriptTags:S("script",["src","innerHTML"],e),styleTags:S("style",["cssText"],e),title:Ge(e),titleAttributes:z("titleAttributes",e),prioritizeSeoTags:Qe(e,C.PRIORITIZE_SEO_TAGS)}),be=e=>Array.isArray(e)?e.join(""):e,tt=(e,r)=>{const t=Object.keys(e);for(let n=0;n<t.length;n+=1)if(r[t[n]]&&r[t[n]].includes(e[t[n]]))return!0;return!1},U=(e,r)=>Array.isArray(e)?e.reduce((t,n)=>(tt(n,r)?t.priority.push(n):t.default.push(n),t),{priority:[],default:[]}):{default:e,priority:[]},ce=(e,r)=>({...e,[r]:void 0}),rt=["noscript","script","style"],K=(e,r=!0)=>r===!1?String(e):String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"),ve=e=>Object.keys(e).reduce((r,t)=>{const n=typeof e[t]<"u"?`${t}="${e[t]}"`:`${t}`;return r?`${r} ${n}`:n},""),nt=(e,r,t,n)=>{const i=ve(t),o=be(r);return i?`<${e} ${_}="true" ${i}>${K(o,n)}</${e}>`:`<${e} ${_}="true">${K(o,n)}</${e}>`},ot=(e,r,t=!0)=>r.reduce((n,i)=>{const o=i,s=Object.keys(o).filter(c=>!(c==="innerHTML"||c==="cssText")).reduce((c,p)=>{const f=typeof o[p]>"u"?p:`${p}="${K(o[p],t)}"`;return c?`${c} ${f}`:f},""),a=o.innerHTML||o.cssText||"",l=rt.indexOf(e)===-1;return`${n}<${e} ${_}="true" ${s}${l?"/>":`>${a}</${e}>`}`},""),_e=(e,r={})=>Object.keys(e).reduce((t,n)=>{const i=I[n];return t[i||n]=e[n],t},r),at=(e,r,t)=>{const n={key:r,[_]:!0},i=_e(t,n);return[m.createElement("title",i,r)]},j=(e,r)=>r.map((t,n)=>{const i={key:n,[_]:!0};return Object.keys(t).forEach(o=>{const a=I[o]||o;if(a==="innerHTML"||a==="cssText"){const l=t.innerHTML||t.cssText;i.dangerouslySetInnerHTML={__html:l}}else i[a]=t[o]}),m.createElement(e,i)}),v=(e,r,t=!0)=>{switch(e){case"title":return{toComponent:()=>at(e,r.title,r.titleAttributes),toString:()=>nt(e,r.title,r.titleAttributes,t)};case"bodyAttributes":case"htmlAttributes":return{toComponent:()=>_e(r),toString:()=>ve(r)};default:return{toComponent:()=>j(e,r),toString:()=>ot(e,r,t)}}},st=({metaTags:e,linkTags:r,scriptTags:t,encode:n})=>{const i=U(e,$.meta),o=U(r,$.link),s=U(t,$.script);return{priorityMethods:{toComponent:()=>[...j("meta",i.priority),...j("link",o.priority),...j("script",s.priority)],toString:()=>`${v("meta",i.priority,n)} ${v("link",o.priority,n)} ${v("script",s.priority,n)}`},metaTags:i.default,linkTags:o.default,scriptTags:s.default}},it=e=>{const{baseTag:r,bodyAttributes:t,encode:n=!0,htmlAttributes:i,noscriptTags:o,styleTags:s,title:a="",titleAttributes:l,prioritizeSeoTags:c}=e;let{linkTags:p,metaTags:f,scriptTags:y}=e,b={toComponent:()=>[],toString:()=>""};return c&&({priorityMethods:b,linkTags:p,metaTags:f,scriptTags:y}=st(e)),{priority:b,base:v("base",r,n),bodyAttributes:v("bodyAttributes",t,n),htmlAttributes:v("htmlAttributes",i,n),link:v("link",p,n),meta:v("meta",f,n),noscript:v("noscript",o,n),script:v("script",y,n),style:v("style",s,n),title:v("title",{title:a,titleAttributes:l},n)}},W=it,R=[],Q=!!(typeof window<"u"&&window.document&&window.document.createElement),Y=class{constructor(e,r){x(this,"instances",[]);x(this,"canUseDOM",Q);x(this,"context");x(this,"value",{setHelmet:e=>{this.context.helmet=e},helmetInstances:{get:()=>this.canUseDOM?R:this.instances,add:e=>{(this.canUseDOM?R:this.instances).push(e)},remove:e=>{const r=(this.canUseDOM?R:this.instances).indexOf(e);(this.canUseDOM?R:this.instances).splice(r,1)}}});this.context=e,this.canUseDOM=r||!1,r||(e.helmet=W({baseTag:[],bodyAttributes:{},htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))}},lt=parseInt(m.version.split(".")[0],10),G=lt>=19,ct={},Te=m.createContext(ct),A,xe=(A=class extends d.Component{constructor(t){super(t);x(this,"helmetData");G?this.helmetData=null:this.helmetData=new Y(this.props.context||{},A.canUseDOM)}render(){return G?m.createElement(m.Fragment,null,this.props.children):m.createElement(Te.Provider,{value:this.helmetData.value},this.props.children)}},x(A,"canUseDOM",Q),A),k=(e,r)=>{const t=document.head||document.querySelector("head"),n=t.querySelectorAll(`${e}[${_}]`),i=[].slice.call(n),o=[];let s;return r&&r.length&&r.forEach(a=>{const l=document.createElement(e);for(const c in a)if(Object.prototype.hasOwnProperty.call(a,c))if(c==="innerHTML")l.innerHTML=a.innerHTML;else if(c==="cssText"){const p=a.cssText;l.appendChild(document.createTextNode(p))}else{const p=c,f=typeof a[p]>"u"?"":a[p];l.setAttribute(c,f)}l.setAttribute(_,"true"),i.some((c,p)=>(s=p,l.isEqualNode(c)))?i.splice(s,1):o.push(l)}),i.forEach(a=>{var l;return(l=a.parentNode)==null?void 0:l.removeChild(a)}),o.forEach(a=>t.appendChild(a)),{oldTags:i,newTags:o}},Z=(e,r)=>{const t=document.getElementsByTagName(e)[0];if(!t)return;const n=t.getAttribute(_),i=n?n.split(","):[],o=[...i],s=Object.keys(r);for(const a of s){const l=r[a]||"";t.getAttribute(a)!==l&&t.setAttribute(a,l),i.indexOf(a)===-1&&i.push(a);const c=o.indexOf(a);c!==-1&&o.splice(c,1)}for(let a=o.length-1;a>=0;a-=1)t.removeAttribute(o[a]);i.length===o.length?t.removeAttribute(_):t.getAttribute(_)!==s.join(",")&&t.setAttribute(_,s.join(","))},ut=(e,r)=>{typeof e<"u"&&document.title!==e&&(document.title=be(e)),Z("title",r)},ue=(e,r)=>{const{baseTag:t,bodyAttributes:n,htmlAttributes:i,linkTags:o,metaTags:s,noscriptTags:a,onChangeClientState:l,scriptTags:c,styleTags:p,title:f,titleAttributes:y}=e;Z("body",n),Z("html",i),ut(f,y);const b={baseTag:k("base",t),linkTags:k("link",o),metaTags:k("meta",s),noscriptTags:k("noscript",a),scriptTags:k("script",c),styleTags:k("style",p)},T={},ee={};Object.keys(b).forEach(O=>{const{newTags:te,oldTags:ke}=b[O];te.length&&(T[O]=te),ke.length&&(ee[O]=b[O].oldTags)}),r&&r(),l(e,T,ee)},w=null,pt=e=>{w&&cancelAnimationFrame(w),e.defer?w=requestAnimationFrame(()=>{ue(e,()=>{w=null})}):(ue(e),w=null)},dt=pt,pe=class extends d.Component{constructor(){super(...arguments);x(this,"rendered",!1)}shouldComponentUpdate(r){return!Ye(r,this.props)}componentDidUpdate(){this.emitChange()}componentWillUnmount(){const{helmetInstances:r}=this.props.context;r.remove(this),this.emitChange()}emitChange(){const{helmetInstances:r,setHelmet:t}=this.props.context;let n=null;const i=et(r.get().map(o=>{const{context:s,...a}=o.props;return a}));xe.canUseDOM?dt(i):W&&(n=W(i)),t(n)}init(){if(this.rendered)return;this.rendered=!0;const{helmetInstances:r}=this.props.context;r.add(this),this.emitChange()}render(){return this.init(),null}},L=[],de=e=>{const r={};for(const t of Object.keys(e))r[ge[t]||t]=e[t];return r},E=e=>{const r={};for(const t of Object.keys(e)){const n=I[t];r[n||t]=e[t]}return r},he=(e,r)=>{if(!Q)return;const t=document.getElementsByTagName(e)[0];if(!t)return;const n="data-rh-managed",i=t.getAttribute(n),o=i?i.split(","):[],s=Object.keys(r);for(const a of o)s.includes(a)||t.removeAttribute(a);for(const a of s){const l=r[a];l==null||l===!1?t.removeAttribute(a):l===!0?t.setAttribute(a,""):t.setAttribute(a,String(l))}s.length>0?t.setAttribute(n,s.join(",")):t.removeAttribute(n)},V=()=>{const e={},r={};for(const t of L){const{htmlAttributes:n,bodyAttributes:i}=t.props;n&&Object.assign(e,de(n)),i&&Object.assign(r,de(i))}he("html",e),he("body",r)},ht=class extends d.Component{componentDidMount(){L.push(this),V()}componentDidUpdate(){V()}componentWillUnmount(){const e=L.indexOf(this);e!==-1&&L.splice(e,1),V()}resolveTitle(){const{title:e,titleTemplate:r,defaultTitle:t}=this.props;return e&&r?r.replace(/%s/g,()=>Array.isArray(e)?e.join(""):e):e||t||void 0}renderTitle(){const e=this.resolveTitle();if(e===void 0)return null;const r=this.props.titleAttributes||{};return m.createElement("title",E(r),e)}renderBase(){const{base:e}=this.props;return e?m.createElement("base",E(e)):null}renderMeta(){const{meta:e}=this.props;return!e||!Array.isArray(e)?null:e.map((r,t)=>m.createElement("meta",{key:t,...E(r)}))}renderLink(){const{link:e}=this.props;return!e||!Array.isArray(e)?null:e.map((r,t)=>m.createElement("link",{key:t,...E(r)}))}renderScript(){const{script:e}=this.props;return!e||!Array.isArray(e)?null:e.map((r,t)=>{const{innerHTML:n,...i}=r,o=E(i);return n&&(o.dangerouslySetInnerHTML={__html:n}),m.createElement("script",{key:t,...o})})}renderStyle(){const{style:e}=this.props;return!e||!Array.isArray(e)?null:e.map((r,t)=>{const{cssText:n,...i}=r,o=E(i);return n&&(o.dangerouslySetInnerHTML={__html:n}),m.createElement("style",{key:t,...o})})}renderNoscript(){const{noscript:e}=this.props;return!e||!Array.isArray(e)?null:e.map((r,t)=>{const{innerHTML:n,...i}=r,o=E(i);return n&&(o.dangerouslySetInnerHTML={__html:n}),m.createElement("noscript",{key:t,...o})})}render(){return m.createElement(m.Fragment,null,this.renderTitle(),this.renderBase(),this.renderMeta(),this.renderLink(),this.renderScript(),this.renderStyle(),this.renderNoscript())}},B,hr=(B=class extends d.Component{shouldComponentUpdate(e){return!Fe(ce(this.props,"helmetData"),ce(e,"helmetData"))}mapNestedChildrenToProps(e,r){if(!r)return null;switch(e.type){case"script":case"noscript":return{innerHTML:r};case"style":return{cssText:r};default:throw new Error(`<${e.type} /> elements are self-closing and can not contain children. Refer to our API for more information.`)}}flattenArrayTypeChildren(e,r,t,n){return{...r,[e.type]:[...r[e.type]||[],{...t,...this.mapNestedChildrenToProps(e,n)}]}}mapObjectTypeChildren(e,r,t,n){switch(e.type){case"title":return{...r,[e.type]:n,titleAttributes:{...t}};case"body":return{...r,bodyAttributes:{...t}};case"html":return{...r,htmlAttributes:{...t}};default:return{...r,[e.type]:{...t}}}}mapArrayTypeChildrenToProps(e,r){let t={...r};return Object.keys(e).forEach(n=>{t={...t,[n]:e[n]}}),t}warnOnInvalidChildren(e,r){return se(le.some(t=>e.type===t),typeof e.type=="function"?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":`Only elements types ${le.join(", ")} are allowed. Helmet does not support rendering <${e.type}> elements. Refer to our API for more information.`),se(!r||typeof r=="string"||Array.isArray(r)&&!r.some(t=>typeof t!="string"),`Helmet expects a string as a child of <${e.type}>. Did you forget to wrap your children in braces? ( <${e.type}>{\`\`}</${e.type}> ) Refer to our API for more information.`),!0}mapChildrenToProps(e,r){let t={};return m.Children.forEach(e,n=>{if(!n||!n.props)return;const{children:i,...o}=n.props,s=Object.keys(o).reduce((l,c)=>(l[ge[c]||c]=o[c],l),{});let{type:a}=n;switch(typeof a=="symbol"?a=a.toString():this.warnOnInvalidChildren(n,i),a){case"Symbol(react.fragment)":r=this.mapChildrenToProps(i,r);break;case"link":case"meta":case"noscript":case"script":case"style":t=this.flattenArrayTypeChildren(n,t,s,i);break;default:r=this.mapObjectTypeChildren(n,r,s,i);break}}),this.mapArrayTypeChildrenToProps(t,r)}render(){const{children:e,...r}=this.props;let t={...r},{helmetData:n}=r;if(e&&(t=this.mapChildrenToProps(e,t)),n&&!(n instanceof Y)){const i=n;n=new Y(i.context,!0),delete t.helmetData}return G?m.createElement(ht,{...t}):n?m.createElement(pe,{...t,context:n.value}):m.createElement(Te.Consumer,null,i=>m.createElement(pe,{...t,context:i}))}},x(B,"defaultProps",{defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1}),B);/**
|
|
3
|
-
* @license lucide-react v0.576.0 - ISC
|
|
4
|
-
*
|
|
5
|
-
* This source code is licensed under the ISC license.
|
|
6
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
7
|
-
*/const ft=[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]],mt=g("calendar",ft);/**
|
|
8
|
-
* @license lucide-react v0.576.0 - ISC
|
|
9
|
-
*
|
|
10
|
-
* This source code is licensed under the ISC license.
|
|
11
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
12
|
-
*/const yt=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 12h8",key:"1wcyev"}],["path",{d:"M12 8v8",key:"napkw2"}]],gt=g("circle-plus",yt);/**
|
|
13
|
-
* @license lucide-react v0.576.0 - ISC
|
|
14
|
-
*
|
|
15
|
-
* This source code is licensed under the ISC license.
|
|
16
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
17
|
-
*/const bt=[["path",{d:"m16 18 6-6-6-6",key:"eg8j8"}],["path",{d:"m8 6-6 6 6 6",key:"ppft3o"}]],vt=g("code",bt);/**
|
|
18
|
-
* @license lucide-react v0.576.0 - ISC
|
|
19
|
-
*
|
|
20
|
-
* This source code is licensed under the ISC license.
|
|
21
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
22
|
-
*/const _t=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z",key:"9ktpf1"}]],Tt=g("compass",_t);/**
|
|
23
|
-
* @license lucide-react v0.576.0 - ISC
|
|
24
|
-
*
|
|
25
|
-
* This source code is licensed under the ISC license.
|
|
26
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
27
|
-
*/const xt=[["path",{d:"M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z",key:"1fr9dc"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M12 10v2",key:"hh53o1"}],["path",{d:"M16 10v6",key:"1d6xys"}]],Et=g("folder-kanban",xt);/**
|
|
28
|
-
* @license lucide-react v0.576.0 - ISC
|
|
29
|
-
*
|
|
30
|
-
* This source code is licensed under the ISC license.
|
|
31
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
32
|
-
*/const At=[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]],kt=g("hash",At);/**
|
|
33
|
-
* @license lucide-react v0.576.0 - ISC
|
|
34
|
-
*
|
|
35
|
-
* This source code is licensed under the ISC license.
|
|
36
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
37
|
-
*/const Ct=[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"r6nss1"}]],Pt=g("house",Ct);/**
|
|
38
|
-
* @license lucide-react v0.576.0 - ISC
|
|
39
|
-
*
|
|
40
|
-
* This source code is licensed under the ISC license.
|
|
41
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
42
|
-
*/const St=[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]],Ee=g("layout-dashboard",St);/**
|
|
43
|
-
* @license lucide-react v0.576.0 - ISC
|
|
44
|
-
*
|
|
45
|
-
* This source code is licensed under the ISC license.
|
|
46
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
47
|
-
*/const wt=[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]],Ot=g("package",wt);/**
|
|
48
|
-
* @license lucide-react v0.576.0 - ISC
|
|
49
|
-
*
|
|
50
|
-
* This source code is licensed under the ISC license.
|
|
51
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
52
|
-
*/const Rt=[["path",{d:"M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z",key:"w46dr5"}]],jt=g("puzzle",Rt);/**
|
|
53
|
-
* @license lucide-react v0.576.0 - ISC
|
|
54
|
-
*
|
|
55
|
-
* This source code is licensed under the ISC license.
|
|
56
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
57
|
-
*/const Lt=[["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}],["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09",key:"u4xsad"}],["path",{d:"M9 12a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.4 22.4 0 0 1-4 2z",key:"676m9"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 .05 5 .05",key:"92ym6u"}]],It=g("rocket",Lt);/**
|
|
58
|
-
* @license lucide-react v0.576.0 - ISC
|
|
59
|
-
*
|
|
60
|
-
* This source code is licensed under the ISC license.
|
|
61
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
62
|
-
*/const Dt=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],Mt=g("search",Dt);/**
|
|
63
|
-
* @license lucide-react v0.576.0 - ISC
|
|
64
|
-
*
|
|
65
|
-
* This source code is licensed under the ISC license.
|
|
66
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
67
|
-
*/const Nt=[["circle",{cx:"8",cy:"21",r:"1",key:"jimo8o"}],["circle",{cx:"19",cy:"21",r:"1",key:"13723u"}],["path",{d:"M2.05 2.05h2l2.66 12.42a2 2 0 0 0 2 1.58h9.78a2 2 0 0 0 1.95-1.57l1.65-7.43H5.12",key:"9zh506"}]],Ht=g("shopping-cart",Nt);/**
|
|
68
|
-
* @license lucide-react v0.576.0 - ISC
|
|
69
|
-
*
|
|
70
|
-
* This source code is licensed under the ISC license.
|
|
71
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
72
|
-
*/const $t=[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]],zt=g("sparkles",$t);/**
|
|
73
|
-
* @license lucide-react v0.576.0 - ISC
|
|
74
|
-
*
|
|
75
|
-
* This source code is licensed under the ISC license.
|
|
76
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
77
|
-
*/const Ut=[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]],Vt=g("sun",Ut);/**
|
|
78
|
-
* @license lucide-react v0.576.0 - ISC
|
|
79
|
-
*
|
|
80
|
-
* This source code is licensed under the ISC license.
|
|
81
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
82
|
-
*/const Ft=[["path",{d:"M13.172 2a2 2 0 0 1 1.414.586l6.71 6.71a2.4 2.4 0 0 1 0 3.408l-4.592 4.592a2.4 2.4 0 0 1-3.408 0l-6.71-6.71A2 2 0 0 1 6 9.172V3a1 1 0 0 1 1-1z",key:"16rjxf"}],["path",{d:"M2 7v6.172a2 2 0 0 0 .586 1.414l6.71 6.71a2.4 2.4 0 0 0 3.191.193",key:"178nd4"}],["circle",{cx:"10.5",cy:"6.5",r:".5",fill:"currentColor",key:"12ikhr"}]],Bt=g("tags",Ft),qt=window.location.origin,Kt="auth-token";function J(){var e;try{const r=localStorage.getItem(Kt);if(r){const t=JSON.parse(r);return typeof t=="string"?t:((e=t.state)==null?void 0:e.token)||null}return null}catch{return null}}const Wt=(e,r)=>{const t=J(),n=new Headers(r==null?void 0:r.headers);return t&&!n.has("Authorization")&&n.set("Authorization",`Bearer ${t}`),window.fetch(e,{...r,headers:n})},fe=Se(qt,{fetch:Wt,webSocket:e=>{const r=J();if(r){const t=new URL(e);return t.searchParams.set("token",r),new re(t)}return new re(e)},sse:e=>{const r=J(),t={};return r&&(t.Authorization=`Bearer ${r}`),new we(e,t)}}),F=Oe()(Re(e=>({token:null,isAuthenticated:!1,user:null,loading:!1,error:null,login:async(r,t)=>{e({loading:!0,error:null});try{const i=await(await fe.api.auth.login.$post({json:{username:r,password:t}})).json();if(i.success){const{token:o,user:s}=i.data;e({token:o,isAuthenticated:!0,user:{id:s.id,username:s.username,role:s.role},loading:!1,error:null})}else e({loading:!1,error:i.error})}catch{e({loading:!1,error:"Login failed. Please try again."})}},register:async(r,t,n)=>{e({loading:!0,error:null});try{const o=await(await fe.api.auth.register.$post({json:{username:r,email:t,password:n}})).json();o.success?e({loading:!1,error:null}):e({loading:!1,error:o.error})}catch{e({loading:!1,error:"Registration failed. Please try again."})}},setAuth:(r,t)=>e({token:r,isAuthenticated:!0,user:t}),setToken:r=>e({token:r,isAuthenticated:!0}),logout:()=>e({token:null,isAuthenticated:!1,user:null,error:null}),clearError:()=>e({error:null})}),{name:"auth-token"}));function Yt(){const e=F(i=>i.isAuthenticated),r=F(i=>i.user),t=F(i=>i.logout),n=()=>{t()};return e?u.jsxs("div",{className:"flex items-center gap-2",children:[u.jsx("span",{className:"text-sm text-gray-600","data-testid":"auth-username",children:r==null?void 0:r.username}),u.jsx("button",{onClick:n,"data-testid":"auth-logout",className:"px-3 py-1 text-sm bg-red-500 text-white rounded hover:bg-red-600",children:"Sign Out"})]}):u.jsxs("div",{className:"flex items-center gap-2",children:[u.jsx(ne,{to:"/login","data-testid":"auth-login",className:"px-3 py-1 text-sm bg-blue-500 text-white rounded hover:bg-blue-600",children:"Sign In"}),u.jsx(ne,{to:"/register","data-testid":"auth-register",className:"px-3 py-1 text-sm border border-gray-300 text-gray-700 rounded hover:bg-gray-50",children:"Sign Up"})]})}const Gt=({preset:e="saas",items:r,theme:t})=>{const n=r??[],i=(t==null?void 0:t.primaryColor)??"#6366f1",o=(t==null?void 0:t.logoText)??"Biomimic";return u.jsx("nav",{className:"hidden md:block bg-white/80 backdrop-blur-md border-b border-gray-200 sticky top-0 z-50","data-testid":"app-nav",children:u.jsxs("div",{className:"max-w-7xl mx-auto px-4 h-16 flex items-center justify-between gap-3",children:[u.jsxs(q,{to:"/",className:"flex items-center gap-2 group shrink-0","data-testid":"app-title",children:[u.jsx("div",{className:"w-8 h-8 rounded-lg flex items-center justify-center shadow-sm group-hover:shadow-md transition-shadow",style:{backgroundColor:i},children:u.jsx(It,{className:"w-4 h-4 text-white"})}),u.jsx("span",{className:"text-lg font-semibold text-gray-900 tracking-tight whitespace-nowrap",children:o}),u.jsx(zt,{className:"w-3.5 h-3.5 shrink-0",style:{color:i}})]}),u.jsx("div",{className:"flex items-center gap-0.5 overflow-x-auto flex-1 min-w-0 scrollbar-hide [&::-webkit-scrollbar]:hidden [-ms-overflow-style:none] [scrollbar-width:none]",children:n.map(s=>u.jsx(q,{to:s.path,"data-testid":`nav-${s.label.toLowerCase().replace(/\s+/g,"-")}-button`,className:({isActive:a})=>`px-3 py-1.5 rounded-lg text-sm font-medium transition-all duration-200 shrink-0 whitespace-nowrap ${a?"text-white":"text-gray-500 hover:text-gray-900 hover:bg-gray-50"}`,style:(({isActive:a})=>a?{backgroundColor:`${i}15`,color:i}:void 0),children:s.label},s.path))}),u.jsx(Yt,{})]})})},Zt=()=>u.jsxs("footer",{className:"py-8 text-center text-gray-500 text-sm border-t border-gray-200 bg-white","data-testid":"app-footer",children:[u.jsxs("p",{className:"flex items-center justify-center gap-2",children:["Built with ",u.jsx("span",{className:"font-medium text-gray-700",children:"Hono RPC"})," +"," ",u.jsx("span",{className:"font-medium text-gray-700",children:"React"})," +"," ",u.jsx("span",{className:"font-medium text-gray-700",children:"TypeScript"})]}),u.jsx("p",{className:"mt-2 text-xs text-gray-400",children:"Demonstrates: CRUD Operations | SSE (Server-Sent Events) | WebSocket"})]}),Jt={Sun:Vt,Calendar:mt,FolderKanban:Et,Compass:Tt,Puzzle:jt,Tags:Bt,Code:vt,Home:Pt,ShoppingCart:Ht,Package:Ot,Hash:kt,TrendingUp:Me,Bell:De,User:Ie,LayoutDashboard:Ee,Settings:Le,Search:Mt,PlusCircle:gt},Xt=({tabs:e,theme:r})=>{const t=je(),[n,i]=d.useState(()=>{var a;const s=e.find(l=>t.pathname.startsWith(l.path));return(s==null?void 0:s.path)||((a=e[0])==null?void 0:a.path)||""}),o=(r==null?void 0:r.primaryColor)??"#6366f1";return e.length===0?null:u.jsx("nav",{className:"md:hidden fixed bottom-0 left-0 right-0 z-50 bg-white/95 backdrop-blur-md border-t border-gray-200 safe-area-inset-bottom",style:{paddingBottom:"env(safe-area-inset-bottom, 0px)"},"data-testid":"bottom-tab-bar",children:u.jsx("div",{className:"flex items-center justify-around h-16 px-2",children:e.map(s=>{const a=Jt[s.icon]||Ee,l=n===s.path||t.pathname.startsWith(s.path);return u.jsxs(q,{to:s.path,onClick:()=>i(s.path),"data-testid":`bottom-tab-${s.label.toLowerCase()}`,className:`flex flex-col items-center justify-center gap-0.5 flex-1 py-1 rounded-xl transition-all duration-200 min-w-0 ${l?"":"text-gray-400 hover:text-gray-600"}`,style:{color:l?o:void 0},children:[u.jsx(a,{className:`w-5 h-5 transition-transform ${l?"scale-110":""}`}),u.jsx("span",{className:`text-[10px] font-medium leading-tight truncate w-full text-center px-1 ${l?"font-semibold":""}`,children:s.label}),l&&u.jsx("div",{className:"absolute top-0 w-8 h-0.5 rounded-full",style:{backgroundColor:o}})]},s.path)})})})},Qt=({children:e,className:r="",showNavigation:t=!0,showFooter:n=!0,preset:i="saas",theme:o,desktopNav:s,mobileTabs:a})=>{const l=o?{"--preset-primary":o.primaryColor,"--preset-primary-hover":o.primaryHover,"--preset-bg":o.bgColor,"--preset-text":o.textColor,"--preset-secondary-bg":o.secondaryBg,"--preset-border":o.borderColor,"--preset-radius":o.borderRadius}:void 0;return u.jsxs("div",{className:`min-h-screen bg-white text-gray-900 ${r}`,style:{fontFamily:(o==null?void 0:o.fontFamily)??"-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif",...l,overflowX:"hidden"},"data-testid":"app-container",children:[t&&u.jsx(Gt,{preset:i,items:s,theme:o}),u.jsx("main",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8 pb-24 md:pb-8","data-testid":"app-main",children:e}),n&&u.jsx(Zt,{}),a&&a.length>0&&u.jsx(Xt,{tabs:a,theme:o})]})},Ae=d.createContext("todo");function fr(){return d.useContext(Ae)}const er=Ae.Provider,tr="modulepreload",rr=function(e){return"/"+e},me={},h=function(r,t,n){let i=Promise.resolve();if(t&&t.length>0){let s=function(c){return Promise.all(c.map(p=>Promise.resolve(p).then(f=>({status:"fulfilled",value:f}),f=>({status:"rejected",reason:f}))))};document.getElementsByTagName("link");const a=document.querySelector("meta[property=csp-nonce]"),l=(a==null?void 0:a.nonce)||(a==null?void 0:a.getAttribute("nonce"));i=s(t.map(c=>{if(c=rr(c),c in me)return;me[c]=!0;const p=c.endsWith(".css"),f=p?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${f}`))return;const y=document.createElement("link");if(y.rel=p?"stylesheet":tr,p||(y.as="script"),y.crossOrigin="",y.href=c,l&&y.setAttribute("nonce",l),document.head.appendChild(y),p)return new Promise((b,T)=>{y.addEventListener("load",b),y.addEventListener("error",()=>T(new Error(`Unable to preload CSS for ${c}`)))})}))}function o(s){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=s,window.dispatchEvent(a),!a.defaultPrevented)throw s}return i.then(s=>{for(const a of s||[])a.status==="rejected"&&o(a.reason);return r().catch(o)})},nr={primaryColor:"#6366f1",primaryHover:"#4f46e5",bgColor:"#ffffff",textColor:"#111827",secondaryBg:"#f9fafb",borderColor:"#e5e7eb",borderRadius:"12px",logoText:"Biomimic",fontFamily:"-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif"},or={primaryColor:"#3b82f6",primaryHover:"#2563eb",bgColor:"#ffffff",textColor:"#111827",secondaryBg:"#f0f9ff",borderColor:"#bae6fd",borderRadius:"12px",logoText:"PluginHub",fontFamily:"-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif"},ar={primaryColor:"#f59e0b",primaryHover:"#d97706",bgColor:"#ffffff",textColor:"#111827",secondaryBg:"#fffbeb",borderColor:"#fde68a",borderRadius:"12px",logoText:"ShopMart",fontFamily:"-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif"},sr={primaryColor:"#10b981",primaryHover:"#059669",bgColor:"#ffffff",textColor:"#111827",secondaryBg:"#ecfdf5",borderColor:"#a7f3d0",borderRadius:"12px",logoText:"Community",fontFamily:"-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif"},ir={primaryColor:"#1f2937",primaryHover:"#374151",bgColor:"#f9fafb",textColor:"#111827",secondaryBg:"#f3f4f6",borderColor:"#e5e7eb",borderRadius:"8px",logoText:"AdminPanel",fontFamily:"-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif"},lr={todo:{id:"todo",name:"Todo App",theme:nr,desktopNav:[{label:"Today",icon:"Sun",path:"/todos"},{label:"Calendar",icon:"Calendar",path:"/todos/calendar"},{label:"Projects",icon:"FolderKanban",path:"/todos/projects"}],mobileTabs:[{label:"Today",icon:"Sun",path:"/todos"},{label:"Calendar",icon:"Calendar",path:"/todos/calendar"},{label:"Projects",icon:"FolderKanban",path:"/todos/projects"}],defaultRoute:"/todos",routes:[{path:"/login",component:d.lazy(()=>h(()=>import("./LoginPage-g9mSLIMC.js"),__vite__mapDeps([0,1,2])).then(e=>({default:e.LoginPage}))),label:"Login"},{path:"/register",component:d.lazy(()=>h(()=>import("./RegisterPage-rPFG4Sry.js"),__vite__mapDeps([3,1,2])).then(e=>({default:e.RegisterPage}))),label:"Register"},{path:"/todos",component:d.lazy(()=>h(()=>import("./TodoPage-zC5wWNBa.js"),__vite__mapDeps([4,1,2,5,6,7,8,9,10,11,12])).then(e=>({default:e.TodoPage}))),label:"Todos"},{path:"/notifications",component:d.lazy(()=>h(()=>import("./NotificationPage-COTzp-HD.js"),__vite__mapDeps([13,1,2,14,5,6,15,16,17,7,10])).then(e=>({default:e.NotificationPage}))),label:"Notifications"},{path:"/websocket",component:d.lazy(()=>h(()=>import("./WebSocketPage-B4NLdz1w.js"),__vite__mapDeps([18,1,2,5,6,15,10,19,20])).then(e=>({default:e.WebSocketPage}))),label:"WebSocket"}]},plugin:{id:"plugin",name:"Plugin Market",theme:or,desktopNav:[{label:"Discover",icon:"Compass",path:"/plugins"},{label:"Plugins",icon:"Puzzle",path:"/plugins/list"},{label:"Categories",icon:"Tags",path:"/categories"},{label:"Search",icon:"Search",path:"/search"},{label:"Publish",icon:"PlusCircle",path:"/publish"},{label:"Developer",icon:"Code",path:"/developer"}],mobileTabs:[{label:"Discover",icon:"Compass",path:"/plugins"},{label:"Plugins",icon:"Puzzle",path:"/plugins/list"},{label:"Categories",icon:"Tags",path:"/categories"},{label:"Search",icon:"Search",path:"/search"},{label:"My",icon:"User",path:"/developer"}],defaultRoute:"/plugins",routes:[{path:"/",component:d.lazy(()=>h(()=>import("./PluginsPage-BNtAe_yo.js"),__vite__mapDeps([21,1,2,22,14,5,6,12,23,24])).then(e=>({default:e.PluginsPage}))),label:"Home"},{path:"/login",component:d.lazy(()=>h(()=>import("./LoginPage-g9mSLIMC.js"),__vite__mapDeps([0,1,2])).then(e=>({default:e.LoginPage}))),label:"Login"},{path:"/register",component:d.lazy(()=>h(()=>import("./RegisterPage-rPFG4Sry.js"),__vite__mapDeps([3,1,2])).then(e=>({default:e.RegisterPage}))),label:"Register"},{path:"/plugins",component:d.lazy(()=>h(()=>import("./PluginsPage-BNtAe_yo.js"),__vite__mapDeps([21,1,2,22,14,5,6,12,23,24])).then(e=>({default:e.PluginsPage}))),label:"Plugins"},{path:"/plugins/:slug",component:d.lazy(()=>h(()=>import("./PluginDetailPage-Br24YS4P.js"),__vite__mapDeps([25,1,2,22,14,5,26,12,27,23])).then(e=>({default:e.PluginDetailPage}))),label:"Plugin Detail"},{path:"/categories",component:d.lazy(()=>h(()=>import("./CategoriesPage-DqLZ_Mom.js"),__vite__mapDeps([28,1,2,22,5,6])).then(e=>({default:e.CategoriesPage}))),label:"Categories"},{path:"/search",component:d.lazy(()=>h(()=>import("./SearchPage-DQl1U5Uy.js"),__vite__mapDeps([29,1,2,22,14,5,6,12,23,24])).then(e=>({default:e.SearchPage}))),label:"Search"},{path:"/publish",component:d.lazy(()=>h(()=>import("./PublishPage-D96FnbLA.js"),__vite__mapDeps([30,1,2,22,5,8,11])).then(e=>({default:e.PublishPage}))),label:"Publish"},{path:"/developer",component:d.lazy(()=>h(()=>import("./DeveloperDashboardPage-Cum7zFwO.js"),__vite__mapDeps([31,1,2,22,14,5,6,8,9,12,27,10])).then(e=>({default:e.DeveloperDashboardPage}))),label:"Developer"},{path:"/notifications",component:d.lazy(()=>h(()=>import("./NotificationPage-COTzp-HD.js"),__vite__mapDeps([13,1,2,14,5,6,15,16,17,7,10])).then(e=>({default:e.NotificationPage}))),label:"Notifications"}]},ecommerce:{id:"ecommerce",name:"E-Commerce",theme:ar,desktopNav:[{label:"Home",icon:"Home",path:"/"},{label:"Products",icon:"ShoppingBag",path:"/products"},{label:"Cart",icon:"ShoppingCart",path:"/cart"},{label:"Orders",icon:"Package",path:"/orders"},{label:"Account",icon:"User",path:"/content"}],mobileTabs:[{label:"Home",icon:"Home",path:"/"},{label:"Products",icon:"ShoppingBag",path:"/products"},{label:"Cart",icon:"ShoppingCart",path:"/cart"},{label:"Orders",icon:"Package",path:"/orders"},{label:"Me",icon:"User",path:"/content"}],defaultRoute:"/",routes:[{path:"/",component:d.lazy(()=>h(()=>import("./ContentListPage-B63sUB6N.js"),__vite__mapDeps([32,1,2])).then(e=>({default:e.ContentListPage}))),label:"Home"},{path:"/products",component:d.lazy(()=>h(()=>import("./ContentListPage-B63sUB6N.js"),__vite__mapDeps([32,1,2])).then(e=>({default:e.ContentListPage}))),label:"Products"},{path:"/products/:id",component:d.lazy(()=>h(()=>import("./ContentDetailPage-DdltMANL.js"),__vite__mapDeps([33,1,2])).then(e=>({default:e.ContentDetailPage}))),label:"Product Detail"},{path:"/cart",component:d.lazy(()=>h(()=>import("./CartPage-DESSHkaG.js"),__vite__mapDeps([34,1,2,5,10,8,26])).then(e=>({default:e.CartPage}))),label:"Cart"},{path:"/orders",component:d.lazy(()=>h(()=>import("./OrdersPage-BsPh4oEI.js"),__vite__mapDeps([35,1,2,5,17,7,9])).then(e=>({default:e.OrdersPage}))),label:"Orders"},{path:"/content",component:d.lazy(()=>h(()=>import("./ContentListPage-B63sUB6N.js"),__vite__mapDeps([32,1,2])).then(e=>({default:e.ContentListPage}))),label:"Content"},{path:"/content/:id",component:d.lazy(()=>h(()=>import("./ContentDetailPage-DdltMANL.js"),__vite__mapDeps([33,1,2])).then(e=>({default:e.ContentDetailPage}))),label:"Content Detail"},{path:"/login",component:d.lazy(()=>h(()=>import("./LoginPage-g9mSLIMC.js"),__vite__mapDeps([0,1,2])).then(e=>({default:e.LoginPage}))),label:"Login"},{path:"/register",component:d.lazy(()=>h(()=>import("./RegisterPage-rPFG4Sry.js"),__vite__mapDeps([3,1,2])).then(e=>({default:e.RegisterPage}))),label:"Register"}]},community:{id:"community",name:"Community",theme:sr,desktopNav:[{label:"Topics",icon:"Hash",path:"/topics"},{label:"Popular",icon:"TrendingUp",path:"/popular"},{label:"Notifications",icon:"Bell",path:"/notifications"},{label:"Profile",icon:"User",path:"/profile"}],mobileTabs:[{label:"Topics",icon:"Hash",path:"/topics"},{label:"Popular",icon:"TrendingUp",path:"/popular"},{label:"Notifications",icon:"Bell",path:"/notifications"},{label:"Me",icon:"User",path:"/profile"}],defaultRoute:"/topics",routes:[{path:"/topics",component:d.lazy(()=>h(()=>import("./TopicsPage-DyLjZa4D.js"),__vite__mapDeps([36,1,2,5,8,19,37,38])).then(e=>({default:e.TopicsPage}))),label:"Topics"},{path:"/popular",component:d.lazy(()=>h(()=>import("./TopicsPage-DyLjZa4D.js"),__vite__mapDeps([36,1,2,5,8,19,37,38])).then(e=>({default:e.TopicsPage}))),label:"Popular"},{path:"/notifications",component:d.lazy(()=>h(()=>import("./NotificationPage-COTzp-HD.js"),__vite__mapDeps([13,1,2,14,5,6,15,16,17,7,10])).then(e=>({default:e.NotificationPage}))),label:"Notifications"},{path:"/profile",component:d.lazy(()=>h(()=>import("./ProfilePage-dL_iSuZN.js"),__vite__mapDeps([39,1,2,5,19])).then(e=>({default:e.ProfilePage}))),label:"Profile"},{path:"/login",component:d.lazy(()=>h(()=>import("./LoginPage-g9mSLIMC.js"),__vite__mapDeps([0,1,2])).then(e=>({default:e.LoginPage}))),label:"Login"},{path:"/register",component:d.lazy(()=>h(()=>import("./RegisterPage-rPFG4Sry.js"),__vite__mapDeps([3,1,2])).then(e=>({default:e.RegisterPage}))),label:"Register"}]},saas:{id:"saas",name:"SaaS Admin",theme:ir,desktopNav:[{label:"Dashboard",icon:"LayoutDashboard",path:"/dashboard"},{label:"Settings",icon:"Settings",path:"/settings"}],mobileTabs:[{label:"Dashboard",icon:"LayoutDashboard",path:"/dashboard"},{label:"Settings",icon:"Settings",path:"/settings"}],defaultRoute:"/dashboard",routes:[{path:"/dashboard",component:d.lazy(()=>h(()=>import("./DashboardPage-tUMilc7Z.js"),__vite__mapDeps([40,1,2,5,37])).then(e=>({default:e.DashboardPage}))),label:"Dashboard"},{path:"/settings",component:d.lazy(()=>h(()=>import("./SettingsPage-DaYE80wj.js"),__vite__mapDeps([41,1,2])).then(e=>({default:e.SettingsPage}))),label:"Settings"},{path:"/login",component:d.lazy(()=>h(()=>import("./LoginPage-g9mSLIMC.js"),__vite__mapDeps([0,1,2])).then(e=>({default:e.LoginPage}))),label:"Login"}]}};function cr(e){return lr[e]}const ur=({presetId:e="todo"})=>{const r=cr(e),{theme:t,desktopNav:n,mobileTabs:i,defaultRoute:o,routes:s}=r;return u.jsx(Ne,{children:u.jsx(er,{value:e,children:u.jsx(Qt,{preset:e,theme:t,desktopNav:n,mobileTabs:i,children:u.jsxs(He,{children:[u.jsx(D,{path:"/",element:u.jsx($e,{to:o,replace:!0})}),s.filter(a=>a.component!==null).map(a=>u.jsx(D,{path:a.path,element:u.jsx(a.component,{})},a.path)),u.jsx(D,{path:"*",element:u.jsx("div",{className:"flex items-center justify-center min-h-[50vh] text-gray-400",children:"404 - Page not found"})})]})})})})};ze.createRoot(document.getElementById("root")).render(u.jsx(m.StrictMode,{children:u.jsx(xe,{children:u.jsx(ur,{})})}));typeof window<"u"&&requestAnimationFrame(()=>{setTimeout(()=>{document.dispatchEvent(new CustomEvent("prerender-ready"))},100)});export{mt as C,hr as H,Ot as P,It as R,zt as S,fr as a,fe as b,Mt as c,F as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as n}from"./main-DHnArIp_.js";import{a as c}from"./index-1bA-ixFv.js";function t(r){return r instanceof Error?r.message:"Unknown error"}const p=c((r,i)=>({plugins:[],currentPlugin:null,reviews:[],myPlugins:[],categories:[],stats:null,searchQuery:"",selectedCategory:null,loading:!1,error:null,pagination:{page:1,limit:20,total:0},fetchPlugins:async(a=1)=>{r({loading:!0,error:null});try{const{selectedCategory:e}=i(),s={page:a,limit:20,sort:"newest"};e&&(s.category=e);const l=await(await n.api.plugins.$get({query:s})).json();l.success?r({plugins:l.data.plugins,pagination:{page:l.data.page,limit:l.data.limit,total:l.data.total},loading:!1}):r({loading:!1,error:l.error??"Failed to fetch plugins"})}catch(e){r({error:t(e),loading:!1})}},fetchPlugin:async a=>{r({loading:!0,error:null,currentPlugin:null});try{const s=await(await n.api.plugins[":slug"].$get({param:{slug:a}})).json();s.success?r({currentPlugin:s.data,loading:!1}):r({loading:!1,error:s.error??"Plugin not found"})}catch(e){r({error:t(e),loading:!1})}},fetchReviews:async a=>{try{const s=await(await n.api.plugins[":slug"].reviews.$get({param:{slug:a}})).json();s.success&&r({reviews:s.data})}catch(e){console.error("Failed to fetch reviews:",e)}},searchPlugins:async(a,e=1)=>{r({loading:!0,error:null});try{const{selectedCategory:s}=i(),l=await(await n.api.plugins.search.$get({query:{q:a,page:e,limit:20,...s?{category:s}:{}}})).json();l.success?r({plugins:l.data.plugins,pagination:{page:l.data.page,limit:l.data.limit,total:l.data.total},loading:!1}):r({loading:!1,error:l.error??"Search failed"})}catch(s){r({error:t(s),loading:!1})}},fetchCategories:async()=>{try{const e=await(await n.api.categories.$get()).json();e.success&&r({categories:e.data})}catch(a){console.error("Failed to fetch categories:",a)}},fetchStats:async()=>{try{const e=await(await n.api.stats.$get()).json();e.success&&r({stats:e.data})}catch(a){console.error("Failed to fetch stats:",a)}},fetchMyPlugins:async()=>{r({loading:!0,error:null});try{const e=await(await n.api.plugins.mine.$get()).json();e.success?r({myPlugins:e.data,loading:!1}):r({loading:!1,error:e.error??"Failed to fetch your plugins"})}catch(a){r({error:t(a),loading:!1})}},createPlugin:async a=>{r({loading:!0,error:null});try{const s=await(await n.api.plugins.$post({json:a})).json();return s.success?(r(o=>({myPlugins:[s.data,...o.myPlugins],loading:!1})),s.data.slug):(r({loading:!1,error:s.error??"Failed to create plugin"}),null)}catch(e){return r({error:t(e),loading:!1}),null}},deletePlugin:async a=>{r({loading:!0,error:null});try{const s=await(await n.api.plugins[":slug"].$delete({param:{slug:a}})).json();s.success?r(o=>({myPlugins:o.myPlugins.filter(l=>l.slug!==a),plugins:o.plugins.filter(l=>l.slug!==a),loading:!1})):r({loading:!1,error:s.error??"Failed to delete plugin"})}catch(e){r({error:t(e),loading:!1})}},submitReview:async(a,e)=>{r({loading:!0,error:null});try{const o=await(await n.api.plugins[":slug"].reviews.$post({param:{slug:a},json:e})).json();o.success?r(l=>({reviews:[o.data,...l.reviews],loading:!1})):r({loading:!1,error:o.error??"Failed to submit review"})}catch(s){r({error:t(s),loading:!1})}},trackInstall:async a=>{try{await n.api.plugins[":slug"].install.$post({param:{slug:a}})}catch(e){console.error("Failed to track install:",e)}},setSearchQuery:a=>r({searchQuery:a}),setSelectedCategory:a=>r({selectedCategory:a}),clearError:()=>r({error:null}),clearCurrentPlugin:()=>r({currentPlugin:null,reviews:[]})}));export{p as u};
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en"><head>
|
|
2
|
-
<meta charset="UTF-8">
|
|
3
|
-
<link rel="icon" type="image/svg+xml" href="/vite.svg">
|
|
4
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
5
|
-
<title>Biomimic App</title>
|
|
6
|
-
<meta name="description" content="Biomimic App - A full-stack application template">
|
|
7
|
-
<meta property="og:title" content="Biomimic App">
|
|
8
|
-
<meta property="og:description" content="A full-stack application template with React and Hono">
|
|
9
|
-
<meta property="og:type" content="website">
|
|
10
|
-
<script type="module" crossorigin="" src="/assets/main-DHnArIp_.js"></script>
|
|
11
|
-
<link rel="modulepreload" crossorigin="" href="/assets/index-1bA-ixFv.js">
|
|
12
|
-
<link rel="stylesheet" crossorigin="" href="/assets/index-CWh3vXC_.css">
|
|
13
|
-
</head>
|
|
14
|
-
<body>
|
|
15
|
-
<div id="root"><div class="min-h-screen bg-white text-gray-900 " data-testid="app-container" style="font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; --preset-primary: #6366f1; --preset-primary-hover: #4f46e5; --preset-bg: #ffffff; --preset-text: #111827; --preset-secondary-bg: #f9fafb; --preset-border: #e5e7eb; --preset-radius: 12px; overflow-x: hidden;"><nav class="hidden md:block bg-white/80 backdrop-blur-md border-b border-gray-200 sticky top-0 z-50" data-testid="app-nav"><div class="max-w-7xl mx-auto px-4 h-16 flex items-center justify-between gap-3"><a data-testid="app-title" class="flex items-center gap-2 group shrink-0" href="/" data-discover="true"><div class="w-8 h-8 rounded-lg flex items-center justify-center shadow-sm group-hover:shadow-md transition-shadow" style="background-color: rgb(99, 102, 241);"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-rocket w-4 h-4 text-white" aria-hidden="true"><path d="M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5"></path><path d="M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09"></path><path d="M9 12a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.4 22.4 0 0 1-4 2z"></path><path d="M9 12H4s.55-3.03 2-4c1.62-1.08 5 .05 5 .05"></path></svg></div><span class="text-lg font-semibold text-gray-900 tracking-tight whitespace-nowrap">Biomimic</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sparkles w-3.5 h-3.5 shrink-0" aria-hidden="true" style="color: rgb(99, 102, 241);"><path d="M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z"></path><path d="M20 2v4"></path><path d="M22 4h-4"></path><circle cx="4" cy="20" r="2"></circle></svg></a><div class="flex items-center gap-0.5 overflow-x-auto flex-1 min-w-0 scrollbar-hide [&::-webkit-scrollbar]:hidden [-ms-overflow-style:none] [scrollbar-width:none]"><a data-testid="nav-today-button" class="px-3 py-1.5 rounded-lg text-sm font-medium transition-all duration-200 shrink-0 whitespace-nowrap text-gray-500 hover:text-gray-900 hover:bg-gray-50" href="/todos" data-discover="true">Today</a><a data-testid="nav-calendar-button" class="px-3 py-1.5 rounded-lg text-sm font-medium transition-all duration-200 shrink-0 whitespace-nowrap text-gray-500 hover:text-gray-900 hover:bg-gray-50" href="/todos/calendar" data-discover="true">Calendar</a><a data-testid="nav-projects-button" class="px-3 py-1.5 rounded-lg text-sm font-medium transition-all duration-200 shrink-0 whitespace-nowrap text-gray-500 hover:text-gray-900 hover:bg-gray-50" href="/todos/projects" data-discover="true">Projects</a></div><div class="flex items-center gap-2"><a data-testid="auth-login" class="px-3 py-1 text-sm bg-blue-500 text-white rounded hover:bg-blue-600" href="/login" data-discover="true">Sign In</a><a data-testid="auth-register" class="px-3 py-1 text-sm border border-gray-300 text-gray-700 rounded hover:bg-gray-50" href="/register" data-discover="true">Sign Up</a></div></div></nav><main class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8 pb-24 md:pb-8" data-testid="app-main"><div class="flex items-center justify-center min-h-[50vh] text-gray-400">404 - Page not found</div></main><footer class="py-8 text-center text-gray-500 text-sm border-t border-gray-200 bg-white" data-testid="app-footer"><p class="flex items-center justify-center gap-2">Built with <span class="font-medium text-gray-700">Hono RPC</span> + <span class="font-medium text-gray-700">React</span> + <span class="font-medium text-gray-700">TypeScript</span></p><p class="mt-2 text-xs text-gray-400">Demonstrates: CRUD Operations | SSE (Server-Sent Events) | WebSocket</p></footer><nav class="md:hidden fixed bottom-0 left-0 right-0 z-50 bg-white/95 backdrop-blur-md border-t border-gray-200 safe-area-inset-bottom" data-testid="bottom-tab-bar" style="padding-bottom: env(safe-area-inset-bottom, 0px);"><div class="flex items-center justify-around h-16 px-2"><a data-testid="bottom-tab-today" class="flex flex-col items-center justify-center gap-0.5 flex-1 py-1 rounded-xl transition-all duration-200 min-w-0 " href="/todos" data-discover="true" style="color: rgb(99, 102, 241);"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sun w-5 h-5 transition-transform scale-110" aria-hidden="true"><circle cx="12" cy="12" r="4"></circle><path d="M12 2v2"></path><path d="M12 20v2"></path><path d="m4.93 4.93 1.41 1.41"></path><path d="m17.66 17.66 1.41 1.41"></path><path d="M2 12h2"></path><path d="M20 12h2"></path><path d="m6.34 17.66-1.41 1.41"></path><path d="m19.07 4.93-1.41 1.41"></path></svg><span class="text-[10px] font-medium leading-tight truncate w-full text-center px-1 font-semibold">Today</span><div class="absolute top-0 w-8 h-0.5 rounded-full" style="background-color: rgb(99, 102, 241);"></div></a><a data-testid="bottom-tab-calendar" class="flex flex-col items-center justify-center gap-0.5 flex-1 py-1 rounded-xl transition-all duration-200 min-w-0 text-gray-400 hover:text-gray-600" href="/todos/calendar" data-discover="true"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-calendar w-5 h-5 transition-transform" aria-hidden="true"><path d="M8 2v4"></path><path d="M16 2v4"></path><rect width="18" height="18" x="3" y="4" rx="2"></rect><path d="M3 10h18"></path></svg><span class="text-[10px] font-medium leading-tight truncate w-full text-center px-1 ">Calendar</span></a><a data-testid="bottom-tab-projects" class="flex flex-col items-center justify-center gap-0.5 flex-1 py-1 rounded-xl transition-all duration-200 min-w-0 text-gray-400 hover:text-gray-600" href="/todos/projects" data-discover="true"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-folder-kanban w-5 h-5 transition-transform" aria-hidden="true"><path d="M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z"></path><path d="M8 10v4"></path><path d="M12 10v2"></path><path d="M16 10v6"></path></svg><span class="text-[10px] font-medium leading-tight truncate w-full text-center px-1 ">Projects</span></a></div></nav></div></div>
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
</body></html>
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en"><head>
|
|
2
|
-
<meta charset="UTF-8">
|
|
3
|
-
<link rel="icon" type="image/svg+xml" href="/vite.svg">
|
|
4
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
5
|
-
<title>Biomimic App</title>
|
|
6
|
-
<meta name="description" content="Biomimic App - A full-stack application template">
|
|
7
|
-
<meta property="og:title" content="Biomimic App">
|
|
8
|
-
<meta property="og:description" content="A full-stack application template with React and Hono">
|
|
9
|
-
<meta property="og:type" content="website">
|
|
10
|
-
<script type="module" crossorigin="" src="/assets/main-DHnArIp_.js"></script>
|
|
11
|
-
<link rel="modulepreload" crossorigin="" href="/assets/index-1bA-ixFv.js">
|
|
12
|
-
<link rel="stylesheet" crossorigin="" href="/assets/index-CWh3vXC_.css">
|
|
13
|
-
</head>
|
|
14
|
-
<body>
|
|
15
|
-
<div id="root"><div class="min-h-screen bg-white text-gray-900 " data-testid="app-container" style="font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; --preset-primary: #6366f1; --preset-primary-hover: #4f46e5; --preset-bg: #ffffff; --preset-text: #111827; --preset-secondary-bg: #f9fafb; --preset-border: #e5e7eb; --preset-radius: 12px; overflow-x: hidden;"><nav class="hidden md:block bg-white/80 backdrop-blur-md border-b border-gray-200 sticky top-0 z-50" data-testid="app-nav"><div class="max-w-7xl mx-auto px-4 h-16 flex items-center justify-between gap-3"><a data-testid="app-title" class="flex items-center gap-2 group shrink-0" href="/" data-discover="true"><div class="w-8 h-8 rounded-lg flex items-center justify-center shadow-sm group-hover:shadow-md transition-shadow" style="background-color: rgb(99, 102, 241);"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-rocket w-4 h-4 text-white" aria-hidden="true"><path d="M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5"></path><path d="M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09"></path><path d="M9 12a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.4 22.4 0 0 1-4 2z"></path><path d="M9 12H4s.55-3.03 2-4c1.62-1.08 5 .05 5 .05"></path></svg></div><span class="text-lg font-semibold text-gray-900 tracking-tight whitespace-nowrap">Biomimic</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sparkles w-3.5 h-3.5 shrink-0" aria-hidden="true" style="color: rgb(99, 102, 241);"><path d="M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z"></path><path d="M20 2v4"></path><path d="M22 4h-4"></path><circle cx="4" cy="20" r="2"></circle></svg></a><div class="flex items-center gap-0.5 overflow-x-auto flex-1 min-w-0 scrollbar-hide [&::-webkit-scrollbar]:hidden [-ms-overflow-style:none] [scrollbar-width:none]"><a data-testid="nav-today-button" class="px-3 py-1.5 rounded-lg text-sm font-medium transition-all duration-200 shrink-0 whitespace-nowrap text-gray-500 hover:text-gray-900 hover:bg-gray-50" href="/todos" data-discover="true">Today</a><a data-testid="nav-calendar-button" class="px-3 py-1.5 rounded-lg text-sm font-medium transition-all duration-200 shrink-0 whitespace-nowrap text-gray-500 hover:text-gray-900 hover:bg-gray-50" href="/todos/calendar" data-discover="true">Calendar</a><a data-testid="nav-projects-button" class="px-3 py-1.5 rounded-lg text-sm font-medium transition-all duration-200 shrink-0 whitespace-nowrap text-gray-500 hover:text-gray-900 hover:bg-gray-50" href="/todos/projects" data-discover="true">Projects</a></div><div class="flex items-center gap-2"><a data-testid="auth-login" class="px-3 py-1 text-sm bg-blue-500 text-white rounded hover:bg-blue-600" href="/login" data-discover="true">Sign In</a><a data-testid="auth-register" class="px-3 py-1 text-sm border border-gray-300 text-gray-700 rounded hover:bg-gray-50" href="/register" data-discover="true">Sign Up</a></div></div></nav><main class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8 pb-24 md:pb-8" data-testid="app-main"><div class="flex items-center justify-center min-h-[50vh] text-gray-400">404 - Page not found</div></main><footer class="py-8 text-center text-gray-500 text-sm border-t border-gray-200 bg-white" data-testid="app-footer"><p class="flex items-center justify-center gap-2">Built with <span class="font-medium text-gray-700">Hono RPC</span> + <span class="font-medium text-gray-700">React</span> + <span class="font-medium text-gray-700">TypeScript</span></p><p class="mt-2 text-xs text-gray-400">Demonstrates: CRUD Operations | SSE (Server-Sent Events) | WebSocket</p></footer><nav class="md:hidden fixed bottom-0 left-0 right-0 z-50 bg-white/95 backdrop-blur-md border-t border-gray-200 safe-area-inset-bottom" data-testid="bottom-tab-bar" style="padding-bottom: env(safe-area-inset-bottom, 0px);"><div class="flex items-center justify-around h-16 px-2"><a data-testid="bottom-tab-today" class="flex flex-col items-center justify-center gap-0.5 flex-1 py-1 rounded-xl transition-all duration-200 min-w-0 " href="/todos" data-discover="true" style="color: rgb(99, 102, 241);"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sun w-5 h-5 transition-transform scale-110" aria-hidden="true"><circle cx="12" cy="12" r="4"></circle><path d="M12 2v2"></path><path d="M12 20v2"></path><path d="m4.93 4.93 1.41 1.41"></path><path d="m17.66 17.66 1.41 1.41"></path><path d="M2 12h2"></path><path d="M20 12h2"></path><path d="m6.34 17.66-1.41 1.41"></path><path d="m19.07 4.93-1.41 1.41"></path></svg><span class="text-[10px] font-medium leading-tight truncate w-full text-center px-1 font-semibold">Today</span><div class="absolute top-0 w-8 h-0.5 rounded-full" style="background-color: rgb(99, 102, 241);"></div></a><a data-testid="bottom-tab-calendar" class="flex flex-col items-center justify-center gap-0.5 flex-1 py-1 rounded-xl transition-all duration-200 min-w-0 text-gray-400 hover:text-gray-600" href="/todos/calendar" data-discover="true"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-calendar w-5 h-5 transition-transform" aria-hidden="true"><path d="M8 2v4"></path><path d="M16 2v4"></path><rect width="18" height="18" x="3" y="4" rx="2"></rect><path d="M3 10h18"></path></svg><span class="text-[10px] font-medium leading-tight truncate w-full text-center px-1 ">Calendar</span></a><a data-testid="bottom-tab-projects" class="flex flex-col items-center justify-center gap-0.5 flex-1 py-1 rounded-xl transition-all duration-200 min-w-0 text-gray-400 hover:text-gray-600" href="/todos/projects" data-discover="true"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-folder-kanban w-5 h-5 transition-transform" aria-hidden="true"><path d="M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z"></path><path d="M8 10v4"></path><path d="M12 10v2"></path><path d="M16 10v6"></path></svg><span class="text-[10px] font-medium leading-tight truncate w-full text-center px-1 ">Projects</span></a></div></nav></div></div>
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
</body></html>
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en"><head>
|
|
2
|
-
<meta charset="UTF-8">
|
|
3
|
-
<link rel="icon" type="image/svg+xml" href="/vite.svg">
|
|
4
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
5
|
-
<title>Biomimic App</title>
|
|
6
|
-
<meta name="description" content="Biomimic App - A full-stack application template">
|
|
7
|
-
<meta property="og:title" content="Biomimic App">
|
|
8
|
-
<meta property="og:description" content="A full-stack application template with React and Hono">
|
|
9
|
-
<meta property="og:type" content="website">
|
|
10
|
-
<script type="module" crossorigin="" src="/assets/main-DHnArIp_.js"></script>
|
|
11
|
-
<link rel="modulepreload" crossorigin="" href="/assets/index-1bA-ixFv.js">
|
|
12
|
-
<link rel="stylesheet" crossorigin="" href="/assets/index-CWh3vXC_.css">
|
|
13
|
-
</head>
|
|
14
|
-
<body>
|
|
15
|
-
<div id="root"><div class="min-h-screen bg-white text-gray-900 " data-testid="app-container" style="font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; --preset-primary: #6366f1; --preset-primary-hover: #4f46e5; --preset-bg: #ffffff; --preset-text: #111827; --preset-secondary-bg: #f9fafb; --preset-border: #e5e7eb; --preset-radius: 12px; overflow-x: hidden;"><nav class="hidden md:block bg-white/80 backdrop-blur-md border-b border-gray-200 sticky top-0 z-50" data-testid="app-nav"><div class="max-w-7xl mx-auto px-4 h-16 flex items-center justify-between gap-3"><a data-testid="app-title" class="flex items-center gap-2 group shrink-0" href="/" data-discover="true"><div class="w-8 h-8 rounded-lg flex items-center justify-center shadow-sm group-hover:shadow-md transition-shadow" style="background-color: rgb(99, 102, 241);"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-rocket w-4 h-4 text-white" aria-hidden="true"><path d="M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5"></path><path d="M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09"></path><path d="M9 12a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.4 22.4 0 0 1-4 2z"></path><path d="M9 12H4s.55-3.03 2-4c1.62-1.08 5 .05 5 .05"></path></svg></div><span class="text-lg font-semibold text-gray-900 tracking-tight whitespace-nowrap">Biomimic</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sparkles w-3.5 h-3.5 shrink-0" aria-hidden="true" style="color: rgb(99, 102, 241);"><path d="M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z"></path><path d="M20 2v4"></path><path d="M22 4h-4"></path><circle cx="4" cy="20" r="2"></circle></svg></a><div class="flex items-center gap-0.5 overflow-x-auto flex-1 min-w-0 scrollbar-hide [&::-webkit-scrollbar]:hidden [-ms-overflow-style:none] [scrollbar-width:none]"><a data-testid="nav-today-button" class="px-3 py-1.5 rounded-lg text-sm font-medium transition-all duration-200 shrink-0 whitespace-nowrap text-gray-500 hover:text-gray-900 hover:bg-gray-50" href="/todos" data-discover="true">Today</a><a data-testid="nav-calendar-button" class="px-3 py-1.5 rounded-lg text-sm font-medium transition-all duration-200 shrink-0 whitespace-nowrap text-gray-500 hover:text-gray-900 hover:bg-gray-50" href="/todos/calendar" data-discover="true">Calendar</a><a data-testid="nav-projects-button" class="px-3 py-1.5 rounded-lg text-sm font-medium transition-all duration-200 shrink-0 whitespace-nowrap text-gray-500 hover:text-gray-900 hover:bg-gray-50" href="/todos/projects" data-discover="true">Projects</a></div><div class="flex items-center gap-2"><a data-testid="auth-login" class="px-3 py-1 text-sm bg-blue-500 text-white rounded hover:bg-blue-600" href="/login" data-discover="true">Sign In</a><a data-testid="auth-register" class="px-3 py-1 text-sm border border-gray-300 text-gray-700 rounded hover:bg-gray-50" href="/register" data-discover="true">Sign Up</a></div></div></nav><main class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8 pb-24 md:pb-8" data-testid="app-main"><div class="flex items-center justify-center min-h-[50vh] text-gray-400">404 - Page not found</div></main><footer class="py-8 text-center text-gray-500 text-sm border-t border-gray-200 bg-white" data-testid="app-footer"><p class="flex items-center justify-center gap-2">Built with <span class="font-medium text-gray-700">Hono RPC</span> + <span class="font-medium text-gray-700">React</span> + <span class="font-medium text-gray-700">TypeScript</span></p><p class="mt-2 text-xs text-gray-400">Demonstrates: CRUD Operations | SSE (Server-Sent Events) | WebSocket</p></footer><nav class="md:hidden fixed bottom-0 left-0 right-0 z-50 bg-white/95 backdrop-blur-md border-t border-gray-200 safe-area-inset-bottom" data-testid="bottom-tab-bar" style="padding-bottom: env(safe-area-inset-bottom, 0px);"><div class="flex items-center justify-around h-16 px-2"><a data-testid="bottom-tab-today" class="flex flex-col items-center justify-center gap-0.5 flex-1 py-1 rounded-xl transition-all duration-200 min-w-0 " href="/todos" data-discover="true" style="color: rgb(99, 102, 241);"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sun w-5 h-5 transition-transform scale-110" aria-hidden="true"><circle cx="12" cy="12" r="4"></circle><path d="M12 2v2"></path><path d="M12 20v2"></path><path d="m4.93 4.93 1.41 1.41"></path><path d="m17.66 17.66 1.41 1.41"></path><path d="M2 12h2"></path><path d="M20 12h2"></path><path d="m6.34 17.66-1.41 1.41"></path><path d="m19.07 4.93-1.41 1.41"></path></svg><span class="text-[10px] font-medium leading-tight truncate w-full text-center px-1 font-semibold">Today</span><div class="absolute top-0 w-8 h-0.5 rounded-full" style="background-color: rgb(99, 102, 241);"></div></a><a data-testid="bottom-tab-calendar" class="flex flex-col items-center justify-center gap-0.5 flex-1 py-1 rounded-xl transition-all duration-200 min-w-0 text-gray-400 hover:text-gray-600" href="/todos/calendar" data-discover="true"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-calendar w-5 h-5 transition-transform" aria-hidden="true"><path d="M8 2v4"></path><path d="M16 2v4"></path><rect width="18" height="18" x="3" y="4" rx="2"></rect><path d="M3 10h18"></path></svg><span class="text-[10px] font-medium leading-tight truncate w-full text-center px-1 ">Calendar</span></a><a data-testid="bottom-tab-projects" class="flex flex-col items-center justify-center gap-0.5 flex-1 py-1 rounded-xl transition-all duration-200 min-w-0 text-gray-400 hover:text-gray-600" href="/todos/projects" data-discover="true"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-folder-kanban w-5 h-5 transition-transform" aria-hidden="true"><path d="M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z"></path><path d="M8 10v4"></path><path d="M12 10v2"></path><path d="M16 10v6"></path></svg><span class="text-[10px] font-medium leading-tight truncate w-full text-center px-1 ">Projects</span></a></div></nav></div></div>
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
</body></html>
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en"><head>
|
|
2
|
-
<meta charset="UTF-8">
|
|
3
|
-
<link rel="icon" type="image/svg+xml" href="/vite.svg">
|
|
4
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
5
|
-
<title>Biomimic App</title>
|
|
6
|
-
<meta name="description" content="Biomimic App - A full-stack application template">
|
|
7
|
-
<meta property="og:title" content="Biomimic App">
|
|
8
|
-
<meta property="og:description" content="A full-stack application template with React and Hono">
|
|
9
|
-
<meta property="og:type" content="website">
|
|
10
|
-
<script type="module" crossorigin="" src="/assets/main-DHnArIp_.js"></script>
|
|
11
|
-
<link rel="modulepreload" crossorigin="" href="/assets/index-1bA-ixFv.js">
|
|
12
|
-
<link rel="stylesheet" crossorigin="" href="/assets/index-CWh3vXC_.css">
|
|
13
|
-
</head>
|
|
14
|
-
<body>
|
|
15
|
-
<div id="root"><div class="min-h-screen bg-white text-gray-900 " data-testid="app-container" style="font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; --preset-primary: #6366f1; --preset-primary-hover: #4f46e5; --preset-bg: #ffffff; --preset-text: #111827; --preset-secondary-bg: #f9fafb; --preset-border: #e5e7eb; --preset-radius: 12px; overflow-x: hidden;"><nav class="hidden md:block bg-white/80 backdrop-blur-md border-b border-gray-200 sticky top-0 z-50" data-testid="app-nav"><div class="max-w-7xl mx-auto px-4 h-16 flex items-center justify-between gap-3"><a data-testid="app-title" class="flex items-center gap-2 group shrink-0" href="/" data-discover="true"><div class="w-8 h-8 rounded-lg flex items-center justify-center shadow-sm group-hover:shadow-md transition-shadow" style="background-color: rgb(99, 102, 241);"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-rocket w-4 h-4 text-white" aria-hidden="true"><path d="M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5"></path><path d="M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09"></path><path d="M9 12a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.4 22.4 0 0 1-4 2z"></path><path d="M9 12H4s.55-3.03 2-4c1.62-1.08 5 .05 5 .05"></path></svg></div><span class="text-lg font-semibold text-gray-900 tracking-tight whitespace-nowrap">Biomimic</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sparkles w-3.5 h-3.5 shrink-0" aria-hidden="true" style="color: rgb(99, 102, 241);"><path d="M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z"></path><path d="M20 2v4"></path><path d="M22 4h-4"></path><circle cx="4" cy="20" r="2"></circle></svg></a><div class="flex items-center gap-0.5 overflow-x-auto flex-1 min-w-0 scrollbar-hide [&::-webkit-scrollbar]:hidden [-ms-overflow-style:none] [scrollbar-width:none]"><a data-testid="nav-today-button" class="px-3 py-1.5 rounded-lg text-sm font-medium transition-all duration-200 shrink-0 whitespace-nowrap text-gray-500 hover:text-gray-900 hover:bg-gray-50" href="/todos" data-discover="true">Today</a><a data-testid="nav-calendar-button" class="px-3 py-1.5 rounded-lg text-sm font-medium transition-all duration-200 shrink-0 whitespace-nowrap text-gray-500 hover:text-gray-900 hover:bg-gray-50" href="/todos/calendar" data-discover="true">Calendar</a><a data-testid="nav-projects-button" class="px-3 py-1.5 rounded-lg text-sm font-medium transition-all duration-200 shrink-0 whitespace-nowrap text-gray-500 hover:text-gray-900 hover:bg-gray-50" href="/todos/projects" data-discover="true">Projects</a></div><div class="flex items-center gap-2"><a data-testid="auth-login" class="px-3 py-1 text-sm bg-blue-500 text-white rounded hover:bg-blue-600" href="/login" data-discover="true">Sign In</a><a data-testid="auth-register" class="px-3 py-1 text-sm border border-gray-300 text-gray-700 rounded hover:bg-gray-50" href="/register" data-discover="true">Sign Up</a></div></div></nav><main class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8 pb-24 md:pb-8" data-testid="app-main"><div class="flex items-center justify-center min-h-[50vh] text-gray-400">404 - Page not found</div></main><footer class="py-8 text-center text-gray-500 text-sm border-t border-gray-200 bg-white" data-testid="app-footer"><p class="flex items-center justify-center gap-2">Built with <span class="font-medium text-gray-700">Hono RPC</span> + <span class="font-medium text-gray-700">React</span> + <span class="font-medium text-gray-700">TypeScript</span></p><p class="mt-2 text-xs text-gray-400">Demonstrates: CRUD Operations | SSE (Server-Sent Events) | WebSocket</p></footer><nav class="md:hidden fixed bottom-0 left-0 right-0 z-50 bg-white/95 backdrop-blur-md border-t border-gray-200 safe-area-inset-bottom" data-testid="bottom-tab-bar" style="padding-bottom: env(safe-area-inset-bottom, 0px);"><div class="flex items-center justify-around h-16 px-2"><a data-testid="bottom-tab-today" class="flex flex-col items-center justify-center gap-0.5 flex-1 py-1 rounded-xl transition-all duration-200 min-w-0 " href="/todos" data-discover="true" style="color: rgb(99, 102, 241);"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sun w-5 h-5 transition-transform scale-110" aria-hidden="true"><circle cx="12" cy="12" r="4"></circle><path d="M12 2v2"></path><path d="M12 20v2"></path><path d="m4.93 4.93 1.41 1.41"></path><path d="m17.66 17.66 1.41 1.41"></path><path d="M2 12h2"></path><path d="M20 12h2"></path><path d="m6.34 17.66-1.41 1.41"></path><path d="m19.07 4.93-1.41 1.41"></path></svg><span class="text-[10px] font-medium leading-tight truncate w-full text-center px-1 font-semibold">Today</span><div class="absolute top-0 w-8 h-0.5 rounded-full" style="background-color: rgb(99, 102, 241);"></div></a><a data-testid="bottom-tab-calendar" class="flex flex-col items-center justify-center gap-0.5 flex-1 py-1 rounded-xl transition-all duration-200 min-w-0 text-gray-400 hover:text-gray-600" href="/todos/calendar" data-discover="true"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-calendar w-5 h-5 transition-transform" aria-hidden="true"><path d="M8 2v4"></path><path d="M16 2v4"></path><rect width="18" height="18" x="3" y="4" rx="2"></rect><path d="M3 10h18"></path></svg><span class="text-[10px] font-medium leading-tight truncate w-full text-center px-1 ">Calendar</span></a><a data-testid="bottom-tab-projects" class="flex flex-col items-center justify-center gap-0.5 flex-1 py-1 rounded-xl transition-all duration-200 min-w-0 text-gray-400 hover:text-gray-600" href="/todos/projects" data-discover="true"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-folder-kanban w-5 h-5 transition-transform" aria-hidden="true"><path d="M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z"></path><path d="M8 10v4"></path><path d="M12 10v2"></path><path d="M16 10v6"></path></svg><span class="text-[10px] font-medium leading-tight truncate w-full text-center px-1 ">Projects</span></a></div></nav></div></div>
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
</body></html>
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en"><head>
|
|
2
|
-
<meta charset="UTF-8">
|
|
3
|
-
<link rel="icon" type="image/svg+xml" href="/vite.svg">
|
|
4
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
5
|
-
<title>Biomimic App</title>
|
|
6
|
-
<meta name="description" content="Biomimic App - A full-stack application template">
|
|
7
|
-
<meta property="og:title" content="Biomimic App">
|
|
8
|
-
<meta property="og:description" content="A full-stack application template with React and Hono">
|
|
9
|
-
<meta property="og:type" content="website">
|
|
10
|
-
<script type="module" crossorigin="" src="/assets/main-DHnArIp_.js"></script>
|
|
11
|
-
<link rel="modulepreload" crossorigin="" href="/assets/index-1bA-ixFv.js">
|
|
12
|
-
<link rel="stylesheet" crossorigin="" href="/assets/index-CWh3vXC_.css">
|
|
13
|
-
</head>
|
|
14
|
-
<body>
|
|
15
|
-
<div id="root"><div class="min-h-screen bg-white text-gray-900 " data-testid="app-container" style="font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; --preset-primary: #6366f1; --preset-primary-hover: #4f46e5; --preset-bg: #ffffff; --preset-text: #111827; --preset-secondary-bg: #f9fafb; --preset-border: #e5e7eb; --preset-radius: 12px; overflow-x: hidden;"><nav class="hidden md:block bg-white/80 backdrop-blur-md border-b border-gray-200 sticky top-0 z-50" data-testid="app-nav"><div class="max-w-7xl mx-auto px-4 h-16 flex items-center justify-between gap-3"><a data-testid="app-title" class="flex items-center gap-2 group shrink-0" href="/" data-discover="true"><div class="w-8 h-8 rounded-lg flex items-center justify-center shadow-sm group-hover:shadow-md transition-shadow" style="background-color: rgb(99, 102, 241);"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-rocket w-4 h-4 text-white" aria-hidden="true"><path d="M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5"></path><path d="M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09"></path><path d="M9 12a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.4 22.4 0 0 1-4 2z"></path><path d="M9 12H4s.55-3.03 2-4c1.62-1.08 5 .05 5 .05"></path></svg></div><span class="text-lg font-semibold text-gray-900 tracking-tight whitespace-nowrap">Biomimic</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sparkles w-3.5 h-3.5 shrink-0" aria-hidden="true" style="color: rgb(99, 102, 241);"><path d="M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z"></path><path d="M20 2v4"></path><path d="M22 4h-4"></path><circle cx="4" cy="20" r="2"></circle></svg></a><div class="flex items-center gap-0.5 overflow-x-auto flex-1 min-w-0 scrollbar-hide [&::-webkit-scrollbar]:hidden [-ms-overflow-style:none] [scrollbar-width:none]"><a data-testid="nav-today-button" class="px-3 py-1.5 rounded-lg text-sm font-medium transition-all duration-200 shrink-0 whitespace-nowrap text-gray-500 hover:text-gray-900 hover:bg-gray-50" href="/todos" data-discover="true">Today</a><a data-testid="nav-calendar-button" class="px-3 py-1.5 rounded-lg text-sm font-medium transition-all duration-200 shrink-0 whitespace-nowrap text-gray-500 hover:text-gray-900 hover:bg-gray-50" href="/todos/calendar" data-discover="true">Calendar</a><a data-testid="nav-projects-button" class="px-3 py-1.5 rounded-lg text-sm font-medium transition-all duration-200 shrink-0 whitespace-nowrap text-gray-500 hover:text-gray-900 hover:bg-gray-50" href="/todos/projects" data-discover="true">Projects</a></div><div class="flex items-center gap-2"><a data-testid="auth-login" class="px-3 py-1 text-sm bg-blue-500 text-white rounded hover:bg-blue-600" href="/login" data-discover="true">Sign In</a><a data-testid="auth-register" class="px-3 py-1 text-sm border border-gray-300 text-gray-700 rounded hover:bg-gray-50" href="/register" data-discover="true">Sign Up</a></div></div></nav><main class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8 pb-24 md:pb-8" data-testid="app-main"><div class="flex items-center justify-center min-h-[50vh] text-gray-400">404 - Page not found</div></main><footer class="py-8 text-center text-gray-500 text-sm border-t border-gray-200 bg-white" data-testid="app-footer"><p class="flex items-center justify-center gap-2">Built with <span class="font-medium text-gray-700">Hono RPC</span> + <span class="font-medium text-gray-700">React</span> + <span class="font-medium text-gray-700">TypeScript</span></p><p class="mt-2 text-xs text-gray-400">Demonstrates: CRUD Operations | SSE (Server-Sent Events) | WebSocket</p></footer><nav class="md:hidden fixed bottom-0 left-0 right-0 z-50 bg-white/95 backdrop-blur-md border-t border-gray-200 safe-area-inset-bottom" data-testid="bottom-tab-bar" style="padding-bottom: env(safe-area-inset-bottom, 0px);"><div class="flex items-center justify-around h-16 px-2"><a data-testid="bottom-tab-today" class="flex flex-col items-center justify-center gap-0.5 flex-1 py-1 rounded-xl transition-all duration-200 min-w-0 " href="/todos" data-discover="true" style="color: rgb(99, 102, 241);"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sun w-5 h-5 transition-transform scale-110" aria-hidden="true"><circle cx="12" cy="12" r="4"></circle><path d="M12 2v2"></path><path d="M12 20v2"></path><path d="m4.93 4.93 1.41 1.41"></path><path d="m17.66 17.66 1.41 1.41"></path><path d="M2 12h2"></path><path d="M20 12h2"></path><path d="m6.34 17.66-1.41 1.41"></path><path d="m19.07 4.93-1.41 1.41"></path></svg><span class="text-[10px] font-medium leading-tight truncate w-full text-center px-1 font-semibold">Today</span><div class="absolute top-0 w-8 h-0.5 rounded-full" style="background-color: rgb(99, 102, 241);"></div></a><a data-testid="bottom-tab-calendar" class="flex flex-col items-center justify-center gap-0.5 flex-1 py-1 rounded-xl transition-all duration-200 min-w-0 text-gray-400 hover:text-gray-600" href="/todos/calendar" data-discover="true"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-calendar w-5 h-5 transition-transform" aria-hidden="true"><path d="M8 2v4"></path><path d="M16 2v4"></path><rect width="18" height="18" x="3" y="4" rx="2"></rect><path d="M3 10h18"></path></svg><span class="text-[10px] font-medium leading-tight truncate w-full text-center px-1 ">Calendar</span></a><a data-testid="bottom-tab-projects" class="flex flex-col items-center justify-center gap-0.5 flex-1 py-1 rounded-xl transition-all duration-200 min-w-0 text-gray-400 hover:text-gray-600" href="/todos/projects" data-discover="true"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-folder-kanban w-5 h-5 transition-transform" aria-hidden="true"><path d="M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z"></path><path d="M8 10v4"></path><path d="M12 10v2"></path><path d="M16 10v6"></path></svg><span class="text-[10px] font-medium leading-tight truncate w-full text-center px-1 ">Projects</span></a></div></nav></div></div>
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
</body></html>
|