most-box 0.3.7 → 0.3.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/README.md +12 -12
  2. package/electron/main.js +1 -1
  3. package/out/about/index.html +6 -5
  4. package/out/admin/index.html +0 -0
  5. package/out/app/index.html +0 -0
  6. package/out/assets/AccountMenu-BpUGPUSa.js +1 -0
  7. package/out/assets/{AppShell-CKP_dglR.js → AppShell-kfQyRhZy.js} +1 -1
  8. package/out/assets/{AppTop-C03PsDr_.js → AppTop-DydClKUv.js} +1 -1
  9. package/out/assets/{CopyButton-ClwBN6Iy.js → CopyButton-BN_vYKM8.js} +1 -1
  10. package/out/assets/{MarketingHeader-ChTIIzXG.js → MarketingHeader-B0jpxRYu.js} +1 -1
  11. package/out/assets/MarketingLayout-D42kTRyf.js +1 -0
  12. package/out/assets/{MilkdownEditor-X9MUH_0q.js → MilkdownEditor-B9vfoUP9.js} +1 -1
  13. package/out/assets/{OpenSidebarButton-CXBAjjCE.js → OpenSidebarButton-BxKh_O5b.js} +1 -1
  14. package/out/assets/arrow-right-DcTPIyLV.js +1 -0
  15. package/out/assets/{arrow-up-down-DvLSz6Ma.js → arrow-up-down-gcWLrYup.js} +1 -1
  16. package/out/assets/{channelApi-C5eHetoJ.js → channelApi-DA2GY-k4.js} +1 -1
  17. package/out/assets/{chatJoinInvite-7tuD-STm.js → chatJoinInvite-Cwot1ykh.js} +1 -1
  18. package/out/assets/{circle-alert-DXVkx8p8.js → circle-alert-Dg9cBJgj.js} +1 -1
  19. package/out/assets/{copy-OwXDsstV.js → copy-BofKiKH_.js} +1 -1
  20. package/out/assets/{download-Cy2BlfKM.js → download-nQ9X-v0q.js} +1 -1
  21. package/out/assets/{downloadValidation-Dd43i9_9.js → downloadValidation-C0PecvKC.js} +1 -1
  22. package/out/assets/{external-link-D_AQSgxW.js → external-link-LcGMVTLE.js} +1 -1
  23. package/out/assets/{file-text-zvTER2mN.js → file-text-f1ij7Al1.js} +1 -1
  24. package/out/assets/{fingerprint-pattern-BT73ASEB.js → fingerprint-pattern-Z6NfIcxC.js} +1 -1
  25. package/out/assets/{folder-6pYYnS2-.js → folder-DGTODlX0.js} +1 -1
  26. package/out/assets/{folder-open-DOJ4bB58.js → folder-open-BKTeAP5z.js} +1 -1
  27. package/out/assets/{gamepad-2-BYqNgCQr.js → gamepad-2-q3ssU_CE.js} +1 -1
  28. package/out/assets/{hard-drive-DL1KJHmG.js → hard-drive-CMNAmPI5.js} +1 -1
  29. package/out/assets/i18n-BPfshhQc.js +1 -0
  30. package/out/assets/{index-DJzLHA0V.js → index-AZPpawN1.js} +7 -6
  31. package/out/assets/index-BP12tZtg.css +1 -0
  32. package/out/assets/{index.lazy-DA98XQ0Q.js → index.lazy-1oSrUtEc.js} +1 -1
  33. package/out/assets/index.lazy-B3eWk7i-.js +1 -0
  34. package/out/assets/{index.lazy-Cgrv1NmQ.js → index.lazy-BszFGhgk.js} +1 -1
  35. package/out/assets/{index.lazy-CTLlLPjy.js → index.lazy-CBPOnT1S.js} +1 -1
  36. package/out/assets/index.lazy-CJVtmxt4.js +1 -0
  37. package/out/assets/index.lazy-CJlJl0xA.js +1 -0
  38. package/out/assets/index.lazy-CUZLrlgS.js +2 -0
  39. package/out/assets/{index.lazy-BEDWJZPP.js → index.lazy-CV52vPw7.js} +1 -1
  40. package/out/assets/{index.lazy-C0L9TDqK.js → index.lazy-CfmDMCbY.js} +1 -1
  41. package/out/assets/{index.lazy-B8ud1tpC.js → index.lazy-ClcVulXE.js} +1 -1
  42. package/out/assets/index.lazy-DRAWcYlR.js +1 -0
  43. package/out/assets/index.lazy-Duk6GK1e.js +1 -0
  44. package/out/assets/{index.lazy-C8luNCxY.js → index.lazy-DxIMDfLH.js} +1 -1
  45. package/out/assets/{index.lazy-CT5TGyGl.js → index.lazy-e02LZDAI.js} +1 -1
  46. package/out/assets/{index.lazy-psYKmxdW.js → index.lazy-qvhZXEAD.js} +1 -1
  47. package/out/assets/{loader-C4pED_QP.js → loader-DAMqAKH7.js} +1 -1
  48. package/out/assets/{lock-yG7M7GkB.js → lock-Cigqt_VP.js} +1 -1
  49. package/out/assets/messages-square-Dr9v7Ilv.js +1 -0
  50. package/out/assets/{mp-cEQteKUC.js → mp-CFhRibX9.js} +1 -1
  51. package/out/assets/{music-Br2x8TKX.js → music-U7NZcQ6S.js} +1 -1
  52. package/out/assets/{notebook-pen-Bcd3MrtD.js → notebook-pen-CMRWy6ni.js} +1 -1
  53. package/out/assets/play-B6IGTGxm.js +1 -0
  54. package/out/assets/plus-C7wBmZvh.js +1 -0
  55. package/out/assets/{refresh-cw-CfkUlTK9.js → refresh-cw-Bxmcm8cn.js} +1 -1
  56. package/out/assets/{save-CfYzXcxH.js → save-CQyJvrmI.js} +1 -1
  57. package/out/assets/{saveLocalFile-DTgdBgO9.js → saveLocalFile-Dsoo9PmH.js} +1 -1
  58. package/out/assets/search-CURHlVZZ.js +1 -0
  59. package/out/assets/{send-Bie9hgHI.js → send-yxXCy-t8.js} +1 -1
  60. package/out/assets/{shield-check-2-h_eEXp.js → shield-check-Cq1PKT30.js} +1 -1
  61. package/out/assets/{smartphone-CrsocYJo.js → smartphone-D9j5h2Pg.js} +1 -1
  62. package/out/assets/{trash-2-B9gno5q6.js → trash-2-DQI0V0Rl.js} +1 -1
  63. package/out/assets/{triangle-alert-BhNtjKm2.js → triangle-alert-D8P4Ikwc.js} +1 -1
  64. package/out/assets/{upload-BmufnMFu.js → upload-PpzkqJnf.js} +1 -1
  65. package/out/assets/{useAppStore-DNhyhD20.js → useAppStore-Pjif7nCR.js} +1 -1
  66. package/out/assets/{useChannelMessages-BrqZa2SG.js → useChannelMessages-ncgJxjR8.js} +1 -1
  67. package/out/assets/{useGameRoom-B3wvUICl.js → useGameRoom-BHZNzWJt.js} +1 -1
  68. package/out/assets/{wallet-D6HZocla.js → wallet-Ts6jdQzi.js} +1 -1
  69. package/out/assets/{wifi-CILQyKk0.js → wifi-B1v_i_dr.js} +1 -1
  70. package/out/chat/index.html +0 -0
  71. package/out/chat/join/demo/index.html +0 -0
  72. package/out/chat/join/index.html +0 -0
  73. package/out/download/index.html +6 -5
  74. package/out/game/gandengyan/index.html +0 -0
  75. package/out/game/index.html +0 -0
  76. package/out/game/zhajinhua/index.html +0 -0
  77. package/out/index.html +6 -5
  78. package/out/note/index.html +0 -0
  79. package/out/ping/index.html +6 -5
  80. package/out/profile/index.html +0 -0
  81. package/out/web3/index.html +0 -0
  82. package/package.json +2 -1
  83. package/server/src/core/cid.js +1 -1
  84. package/server/src/core/zhajinhua.js +0 -88
  85. package/out/assets/AccountMenu-D_rcXDZr.js +0 -1
  86. package/out/assets/MarketingLayout-hkPAtieL.js +0 -1
  87. package/out/assets/arrow-right-BsHzC0ZL.js +0 -1
  88. package/out/assets/chatNoteDraft-DTy6In5R.js +0 -1
  89. package/out/assets/i18n-DKsg67mH.js +0 -1
  90. package/out/assets/index-FEwag7ej.css +0 -1
  91. package/out/assets/index.lazy-BQ_Dyw5C.js +0 -1
  92. package/out/assets/index.lazy-CnpeKB4C.js +0 -1
  93. package/out/assets/index.lazy-CwAN1t6l.js +0 -2
  94. package/out/assets/index.lazy-Cy249kq1.js +0 -1
  95. package/out/assets/index.lazy-DYhpVW5B.js +0 -3
  96. package/out/assets/index.lazy-b811JgFg.js +0 -1
  97. package/out/assets/message-square-CfApq8Ou.js +0 -1
  98. package/out/assets/play-DSHtNcOe.js +0 -1
  99. package/out/assets/search-DLBOUfny.js +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "most-box",
3
- "version": "0.3.7",
3
+ "version": "0.3.9",
4
4
  "description": "MostBox - chat-first P2P toolbox for files, notes, and game rooms",
5
5
  "type": "module",
6
6
  "main": "electron/main.js",
@@ -31,6 +31,7 @@
31
31
  "typecheck:strict-router": "tsc -p tsconfig.strict-router.json",
32
32
  "check:static-output": "node scripts/check-static-output.mjs",
33
33
  "format": "prettier --write .",
34
+ "dev": "vite",
34
35
  "lint": "eslint .",
35
36
  "r2:cors": "node scripts/configure-r2-cors.mjs",
36
37
  "electron:dev": "concurrently \"npm run build\" \"wait-on out/index.html && electron .\"",
@@ -22,7 +22,7 @@ function createDummyBlockstore() {
22
22
  return {
23
23
  put: async (key, _val) => key,
24
24
  get: async () => {
25
- throw new Error('Not implemented')
25
+ throw new Error('CID calculation blockstore is write-only')
26
26
  },
27
27
  has: async () => false,
28
28
  }
@@ -451,68 +451,6 @@ export function getAllowedActions(round, address) {
451
451
  return actions
452
452
  }
453
453
 
454
- export function chooseBotAction(round, address, random = Math.random) {
455
- const botAddress = normalizeAddress(address)
456
- const allowedActions = getAllowedActions(round, botAddress)
457
- if (allowedActions.length === 0) return null
458
-
459
- const player = (round?.players || []).find(item => item.address === botAddress)
460
- const handStrength = estimateHandStrength(round?.hands?.[botAddress])
461
- const activeOpponents = getActiveRoundPlayers(round).filter(
462
- item => item.address !== botAddress
463
- )
464
-
465
- function canCompare() {
466
- if (!allowedActions.includes('compare') || activeOpponents.length === 0) return false
467
- const target = activeOpponents[0].address
468
- return validatePlayerAction(round, { action: 'compare', target }, botAddress).ok
469
- }
470
-
471
- if (
472
- allowedActions.includes('look') &&
473
- !player?.looked &&
474
- random() < (handStrength >= 0.68 ? 0.52 : 0.82)
475
- ) {
476
- return { action: 'look' }
477
- }
478
-
479
- if (
480
- canCompare() &&
481
- activeOpponents.length === 1 &&
482
- handStrength >= 0.54 &&
483
- random() < 0.58
484
- ) {
485
- return { action: 'compare', target: activeOpponents[0].address }
486
- }
487
-
488
- if (allowedActions.includes('raise') && handStrength >= 0.7 && random() < 0.58) {
489
- const amount = chooseBotRaiseAmount(round, botAddress, handStrength, random)
490
- if (amount) return { action: 'raise', amount }
491
- }
492
-
493
- if (
494
- canCompare() &&
495
- activeOpponents.length > 0 &&
496
- handStrength >= 0.82 &&
497
- random() < 0.36
498
- ) {
499
- return {
500
- action: 'compare',
501
- target: activeOpponents[Math.floor(random() * activeOpponents.length)].address,
502
- }
503
- }
504
-
505
- if (
506
- allowedActions.includes('call') &&
507
- (handStrength >= 0.34 || random() < 0.62)
508
- ) {
509
- return { action: 'call' }
510
- }
511
-
512
- if (allowedActions.includes('fold')) return { action: 'fold' }
513
- return { action: allowedActions[0] }
514
- }
515
-
516
454
  function payToCurrentBet(state, player) {
517
455
  const need = Math.max(0, state.currentBet - player.bet)
518
456
  player.chips -= need
@@ -569,32 +507,6 @@ function advanceSeq(state) {
569
507
  return { ok: true, state }
570
508
  }
571
509
 
572
- function estimateHandStrength(cards) {
573
- try {
574
- const result = evaluateHand(cards)
575
- const categoryScore = (result.category - CATEGORY.high) / (CATEGORY.triple - CATEGORY.high)
576
- const rankScore =
577
- result.tiebreakers.reduce((sum, value, index) => {
578
- return sum + (Number(value) || 0) / Math.pow(16, index + 1)
579
- }, 0) / 1.05
580
- return Math.max(0, Math.min(1, categoryScore * 0.72 + rankScore * 0.28))
581
- } catch {
582
- return 0.45
583
- }
584
- }
585
-
586
- function chooseBotRaiseAmount(round, address, handStrength, random) {
587
- const validAmounts = ZHJ_RAISE_STEPS.filter(amount =>
588
- validatePlayerAction(round, { action: 'raise', amount }, address).ok
589
- )
590
- if (validAmounts.length === 0) return 0
591
-
592
- const ceiling = handStrength >= 0.9 ? 100 : handStrength >= 0.8 ? 50 : 20
593
- const pool = validAmounts.filter(amount => amount <= ceiling)
594
- const choices = pool.length > 0 ? pool : validAmounts
595
- return choices[Math.floor(random() * choices.length)]
596
- }
597
-
598
510
  function normalizeRoundPlayer(input) {
599
511
  if (!input || typeof input !== 'object') return null
600
512
  const address = normalizeAddress(input.address)
@@ -1 +0,0 @@
1
- import{t as e}from"./jsx-runtime-Bt-cYkS5.js";import{B as t,E as n,W as r,t as i}from"./useAppStore-DNhyhD20.js";import{a,c as o,o as s}from"./i18n-DKsg67mH.js";import{S as c,g as l}from"./index-DJzLHA0V.js";var u=t(`earth`,[[`path`,{d:`M21.54 15H17a2 2 0 0 0-2 2v4.54`,key:`1djwo0`}],[`path`,{d:`M7 3.34V5a3 3 0 0 0 3 3a2 2 0 0 1 2 2c0 1.1.9 2 2 2a2 2 0 0 0 2-2c0-1.1.9-2 2-2h3.17`,key:`1tzkfa`}],[`path`,{d:`M11 21.95V18a2 2 0 0 0-2-2a2 2 0 0 1-2-2v-1a2 2 0 0 0-2-2H2.05`,key:`14pb5j`}],[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}]]),d=t(`check`,[[`path`,{d:`M20 6 9 17l-5-5`,key:`1gmf2c`}]]),f=t(`moon`,[[`path`,{d:`M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401`,key:`kfwtm`}]]),p=t(`sun`,[[`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`}]]),m=t(`user`,[[`path`,{d:`M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2`,key:`975kel`}],[`circle`,{cx:`12`,cy:`7`,r:`4`,key:`17ys0d`}]]),h=e();function g(){let{t:e}=a(),t=i(e=>e.isDarkMode),n=i(e=>e.setIsDarkMode),r=e(`common.appearance.toggle`);return(0,h.jsx)(`button`,{type:`button`,className:`btn btn-icon`,title:r,"aria-label":r,"aria-pressed":t,onClick:()=>n(!t),children:t?(0,h.jsx)(p,{size:16}):(0,h.jsx)(f,{size:16})})}function _(e){return e===`sparkbit`?s.filter(e=>e!==`zh-CN`):[...s]}function v({theme:e}){let{locale:t,setLocale:n,t:r}=a(),i=r(`common.locale.choose`);return(0,h.jsx)(c,{ariaLabel:i,className:`language-toggle`,items:_(e).map(e=>({key:e,label:o[e],icon:e===t?(0,h.jsx)(d,{size:16}):(0,h.jsx)(`span`,{className:`language-toggle-placeholder`,"aria-hidden":`true`}),onSelect:()=>{e!==t&&n(e)}})),renderTrigger:e=>(0,h.jsx)(`button`,{...e,className:`btn btn-icon`,title:i,"aria-label":i,children:(0,h.jsx)(u,{size:16})})})}function y(){let{t:e}=a(),t=n(e=>e.identity),i=l(t?.address,t?.avatar),o=e(`nav.profile`);return(0,h.jsx)(r,{to:`/profile/`,className:`account-profile-link`,title:o,"aria-label":o,children:t?(0,h.jsx)(`img`,{className:`account-profile-link-avatar`,src:i,alt:``,"aria-hidden":`true`}):(0,h.jsx)(m,{size:18})})}export{d as a,m as i,v as n,g as r,y as t};
@@ -1 +0,0 @@
1
- import{t as e}from"./jsx-runtime-Bt-cYkS5.js";import{W as t}from"./useAppStore-DNhyhD20.js";import{a as n}from"./i18n-DKsg67mH.js";import{n as r,r as i,t as a}from"./AccountMenu-D_rcXDZr.js";import{t as o}from"./download-Cy2BlfKM.js";import{E as s}from"./index-DJzLHA0V.js";import{t as c}from"./LogoIcon-B2fFe0l1.js";var l={name:`most-box`,version:`0.3.7`,description:`MostBox - chat-first P2P toolbox for files, notes, and game rooms`,type:`module`,main:`electron/main.js`,bin:{"most-box":`server/cli.js`},files:[`out`,`public`,`electron`,`server/src`,`server/index.js`,`server/cli.js`],scripts:{start:`vite`,server:`node --watch server/index.js`,desktop:`npm run electron:dev`,build:`vite build && node scripts/prepare-start-static.mjs`,preview:`vite preview`,serve:`npm run build && node server/index.js`,test:`node --test server/tests/**/*.test.js`,"test:unit":`node --test server/tests/unit/*.test.js`,"test:desktop":`node --test electron/*.test.js`,"test:frontend":`node --test src/tests/*.test.js`,"test:protocol":`node --test --test-name-pattern "extracts CID and filename|matches golden CID samples|publishes a file from Buffer|lists published files|pulls through local seed nodes" server/tests/unit/cid.test.js server/tests/integration/cid.test.js server/tests/integration/engine.test.js`,typecheck:`tsc -p tsconfig.typecheck.json`,"typecheck:strict-router":`tsc -p tsconfig.strict-router.json`,"check:static-output":`node scripts/check-static-output.mjs`,format:`prettier --write .`,lint:`eslint .`,"r2:cors":`node scripts/configure-r2-cors.mjs`,"electron:dev":`concurrently "npm run build" "wait-on out/index.html && electron ."`,"electron:rebuild":`electron-rebuild -f -w sodium-native`,"electron:build":`npm run build && npm run electron:rebuild && electron-builder`,"electron:build:win":`npm run build && npm run electron:rebuild && electron-builder --win`,"electron:build:win:x64":`npm run electron:build:win -- --x64`,"electron:build:win:arm64":`npm run electron:build:win -- --arm64`,"electron:build:mac":`npm run build && npm run electron:rebuild && electron-builder --mac`,"electron:build:linux":`npm run build && npm run electron:rebuild && electron-builder --linux`},keywords:[`p2p`,`chat`,`file-sharing`,`file-transfer`,`hyperswarm`,`hypercore`,`hyperdrive`],license:`MIT`,dependencies:{"@dicebear/core":`^10.3.0`,"@dicebear/styles":`^10.2.0`,"@hono/node-server":`^2.0.6`,"@tanstack/react-router":`^1.170.16`,"@tanstack/react-start":`^1.168.26`,"@tanstack/react-table":`^8.21.3`,b4a:`^1.8.1`,busboy:`^1.6.0`,corestore:`^7.11.0`,dayjs:`^1.11.21`,ethers:`^6.17.0`,eventemitter3:`^5.0.4`,hono:`^4.12.27`,hypercore:`^11.33.2`,hyperdrive:`^13.3.2`,hyperswarm:`^4.17.0`,"ipfs-unixfs-importer":`^17.0.1`,multiformats:`^14.0.2`,tweetnacl:`^1.0.3`,ws:`^8.21.0`},devDependencies:{"@electron/rebuild":`^4.0.4`,"@eslint/js":`^10.0.1`,"@iconify/react":`^6.0.2`,"@mantine/hooks":`^9.4.0`,"@milkdown/crepe":`^7.21.2`,"@milkdown/utils":`^7.21.2`,"@types/react":`^19.2.17`,"@vitejs/plugin-react":`^6.0.3`,concurrently:`^10.0.3`,electron:`^42.5.0`,"electron-builder":`^26.15.3`,esbuild:`^0.28.1`,eslint:`^10.5.0`,globals:`^17.7.0`,ky:`^2.0.2`,"lucide-react":`^1.21.0`,prettier:`^3.8.4`,"qrcode.react":`^4.2.0`,react:`^19.2.7`,"react-dom":`^19.2.7`,typescript:`6.0.3`,"typescript-eslint":`^8.62.0`,vite:`^8.1.0`,"wait-on":`^9.0.10`,zustand:`^5.0.14`},overrides:{"brace-expansion":`5.0.6`,postcss:`8.5.15`,ws:`$ws`},build:{appId:`com.mostbox.app`,productName:`MostBox`,publish:[{provider:`github`,releaseType:`release`}],directories:{output:`dist`},afterPack:`electron/afterPack.cjs`,files:[`out/**/*`,`electron/**/*`,`server/src/**/*`,`server/index.js`,`server/cli.js`,`package.json`,`!**/*.map`,`!electron/**/*.test.js`,`!server/tests/**/*`],asarUnpack:[`**/*.node`,`**/sodium-native/**`],protocols:[{name:`MostBox Link`,schemes:[`most`]}],win:{target:[`nsis`],artifactName:"${productName}-${version}-win-${arch}-setup.${ext}",icon:`public/logo.ico`},nsis:{oneClick:!1,allowToChangeInstallationDirectory:!0,createDesktopShortcut:!0,createStartMenuShortcut:!0,shortcutName:`MostBox`},mac:{artifactName:"${productName}-${version}-mac-${arch}.${ext}",target:[{target:`dmg`,arch:[`x64`,`arm64`]}],icon:`public/logo-512.png`,category:`public.app-category.utilities`},dmg:{contents:[{x:130,y:220},{x:410,y:220,type:`link`,path:`/Applications`}]},linux:{artifactName:"${productName}-${version}-linux-${arch}.${ext}",target:[{target:`AppImage`,arch:[`x64`,`arm64`]}],icon:`public/logo-512.png`,category:`Utility`}}},u=e(),d=[{to:`/about/`,labelKey:`footer.about`},{to:`/ping/`,labelKey:`footer.network`},{href:`https://github.com/most-people/most`,labelKey:null,label:`GitHub`,external:!0}],f=l.version;function p(){let{t:e}=n();return(0,u.jsx)(`footer`,{className:`mkt-footer`,children:(0,u.jsx)(`div`,{className:`mkt-container`,children:(0,u.jsxs)(`div`,{className:`mkt-footer-inner`,children:[(0,u.jsx)(`div`,{className:`mkt-footer-links`,children:d.map(n=>`external`in n?(0,u.jsx)(`a`,{href:n.href,target:`_blank`,rel:`noopener noreferrer`,children:n.label},n.href):(0,u.jsx)(t,{to:n.to,children:e(n.labelKey)},n.to))}),(0,u.jsxs)(`span`,{className:`mkt-footer-copy`,children:[`© `,new Date().getFullYear(),` MOST PEOPLE · MIT License`]}),(0,u.jsxs)(`span`,{className:`mkt-footer-build`,translate:`no`,children:[`v`,f]})]})})})}function m({children:e,header:t}){return(0,u.jsxs)(`div`,{className:`mkt-layout`,children:[t??(0,u.jsx)(h,{}),(0,u.jsx)(`main`,{className:`mkt-layout-main`,children:e}),(0,u.jsx)(p,{})]})}function h(){let{t:e}=n(),l=s();return(0,u.jsx)(`nav`,{className:`mkt-nav`,children:(0,u.jsxs)(`div`,{className:`mkt-nav-inner`,children:[(0,u.jsxs)(t,{to:`/`,className:`mkt-nav-logo`,children:[(0,u.jsx)(c,{}),`MOST PEOPLE`]}),(0,u.jsxs)(`div`,{className:`mkt-nav-cta`,children:[(0,u.jsx)(i,{}),(0,u.jsx)(r,{}),!l&&(0,u.jsxs)(t,{to:`/download/`,className:`btn btn-primary mkt-nav-preview`,children:[(0,u.jsx)(o,{size:16}),e(`nav.downloadClient`)]}),(0,u.jsx)(a,{})]})]})})}export{m as t};
@@ -1 +0,0 @@
1
- import{B as e}from"./useAppStore-DNhyhD20.js";var t=e(`arrow-right`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`m12 5 7 7-7 7`,key:`xquz4c`}]]);export{t};
@@ -1 +0,0 @@
1
- import{B as e}from"./useAppStore-DNhyhD20.js";var t=e(`ellipsis`,[[`circle`,{cx:`12`,cy:`12`,r:`1`,key:`41hilf`}],[`circle`,{cx:`19`,cy:`12`,r:`1`,key:`1wjl8i`}],[`circle`,{cx:`5`,cy:`12`,r:`1`,key:`1pcz8c`}]]),n=e(`plus`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`M12 5v14`,key:`s699le`}]]),r=`mostbox.chatNoteDraft.`;function i(){if(typeof window>`u`)return null;try{return window.localStorage}catch{return null}}function a(e){return`${r}${e}`}function o(e){if(!e||typeof e!=`object`)return null;let t=e,n=String(t.id||``).trim(),r=String(t.title||``).trim(),i=String(t.content||``),a=Number(t.createdAt||0);return!n||!r||!i.trim()||!Number.isFinite(a)?null:{id:n,title:r,content:i,createdAt:a}}function s(e){let t=i();if(!t)return null;let n=Date.now(),r=`chat-${n}-${Math.random().toString(36).slice(2,8)}`,o={id:r,title:e.title,content:e.content,createdAt:n};return t.setItem(a(r),JSON.stringify(o)),o}function c(e){let t=i();if(!t)return null;try{let n=t.getItem(a(e))||`null`;return o(JSON.parse(n))}catch{return null}}function l(e){i()?.removeItem(a(e))}function u(e){let t=new URLSearchParams;return t.set(`chatDraft`,e),t.set(`mode`,`edit`),`/note/?${t.toString()}`}export{n as a,c as i,l as n,t as o,u as r,s as t};