@mooncompany/uplink-chat 0.32.3 → 0.34.0

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 (138) hide show
  1. package/bin/uplink.js +1 -1
  2. package/middleware/error-handler.js +1 -1
  3. package/package.json +1 -1
  4. package/public/css/{app.bc7e7484.css → app.09572269.css} +14 -13
  5. package/public/css/markdown.css +28 -0
  6. package/public/css/mobile.540efab9.css +610 -0
  7. package/public/css/mobile.css +9 -13
  8. package/public/css/{split-view.4bc23474.css → split-view.4e286356.css} +145 -9
  9. package/public/css/themes.css +687 -19
  10. package/public/dist/bundle.9b202855.js +1 -0
  11. package/public/img/wordmark.svg +2 -16
  12. package/public/index.html +107 -7
  13. package/public/js/agents-data.js +1 -1
  14. package/public/js/agents-ui.js +1 -1
  15. package/public/js/agents.js +1 -1
  16. package/public/js/app.js +1 -1
  17. package/public/js/appearance-settings.js +1 -1
  18. package/public/js/artifacts.js +1 -1
  19. package/public/js/audio-pcm-processor.js +1 -1
  20. package/public/js/audio-queue.js +1 -1
  21. package/public/js/bootstrap.js +1 -1
  22. package/public/js/chat.js +1 -1
  23. package/public/js/commands.js +1 -1
  24. package/public/js/connection-api.js +1 -1
  25. package/public/js/connection.js +1 -1
  26. package/public/js/context-tracker.js +1 -1
  27. package/public/js/core.js +1 -1
  28. package/public/js/cron-panel.js +1 -1
  29. package/public/js/dashboard.js +1 -1
  30. package/public/js/developer.js +1 -1
  31. package/public/js/encryption.js +1 -1
  32. package/public/js/errors.js +1 -1
  33. package/public/js/event-bus.js +1 -1
  34. package/public/js/fetch-utils.js +1 -1
  35. package/public/js/file-handler.js +1 -1
  36. package/public/js/files.js +1 -1
  37. package/public/js/gateway-chat.js +1 -1
  38. package/public/js/logger.js +1 -1
  39. package/public/js/markdown.js +1 -1
  40. package/public/js/message-actions.js +1 -1
  41. package/public/js/message-renderer.js +1 -1
  42. package/public/js/missed-messages.js +1 -1
  43. package/public/js/mobile-debug.js +1 -1
  44. package/public/js/notifications.js +1 -1
  45. package/public/js/offline-queue.js +1 -1
  46. package/public/js/onboarding.js +1 -1
  47. package/public/js/panels.js +1 -1
  48. package/public/js/premium.js +1 -1
  49. package/public/js/primary-header.js +1 -1
  50. package/public/js/realtime-voice.js +1 -1
  51. package/public/js/satellite-sync.js +1 -1
  52. package/public/js/satellite-ui.js +1 -1
  53. package/public/js/satellites.js +1 -1
  54. package/public/js/settings.js +1 -1
  55. package/public/js/shortcuts.js +1 -1
  56. package/public/js/split-chat.js +1 -1
  57. package/public/js/split-resize.js +1 -1
  58. package/public/js/splitview.js +1 -1
  59. package/public/js/storage.js +1 -1
  60. package/public/js/streaming-handler.js +1 -1
  61. package/public/js/stt-settings.js +1 -1
  62. package/public/js/themes.js +1 -1
  63. package/public/js/timestamps.js +1 -1
  64. package/public/js/tts-settings.js +1 -1
  65. package/public/js/ui.js +1 -1
  66. package/public/js/update-notifier.js +1 -1
  67. package/public/js/utils/constants.js +1 -1
  68. package/public/js/utils/icons.js +1 -1
  69. package/public/js/utils/sanitize.js +1 -1
  70. package/public/js/utils/sse-parser.js +1 -1
  71. package/public/js/vad.js +1 -1
  72. package/public/js/vendor/dompurify.min.js +1 -1
  73. package/public/js/voice-settings-v2.js +1 -1
  74. package/public/js/voice.js +1 -1
  75. package/public/sw.js +1 -1
  76. package/server/channel.js +1 -1
  77. package/server/chat.js +1 -1
  78. package/server/config-store.js +1 -1
  79. package/server/config.js +1 -1
  80. package/server/context.js +1 -1
  81. package/server/gateway-api-proxy.js +1 -1
  82. package/server/gateway-commands.js +1 -1
  83. package/server/gateway-proxy.js +1 -1
  84. package/server/index.js +1 -1
  85. package/server/logger.js +1 -1
  86. package/server/message-store.js +1 -1
  87. package/server/middleware/auth.js +1 -1
  88. package/server/middleware.js +1 -1
  89. package/server/openclaw-discover.js +1 -1
  90. package/server/premium/index.js +1 -1
  91. package/server/premium/license.js +1 -1
  92. package/server/realtime/bridge.js +1 -1
  93. package/server/realtime/index.js +1 -1
  94. package/server/realtime/tts-stream.js +1 -1
  95. package/server/routes/agents.js +1 -1
  96. package/server/routes/artifacts.js +1 -1
  97. package/server/routes/chat.js +1 -1
  98. package/server/routes/config-settings.js +1 -1
  99. package/server/routes/config.js +1 -1
  100. package/server/routes/cron.js +1 -1
  101. package/server/routes/files.js +1 -1
  102. package/server/routes/index.js +1 -1
  103. package/server/routes/media.js +1 -1
  104. package/server/routes/missed-messages.js +1 -1
  105. package/server/routes/premium.js +1 -1
  106. package/server/routes/push.js +1 -1
  107. package/server/routes/satellite.js +1 -1
  108. package/server/routes/status.js +1 -1
  109. package/server/routes/stt.js +1 -1
  110. package/server/routes/voice.js +1 -1
  111. package/server/routes/webhooks.js +1 -1
  112. package/server/routes.js +1 -1
  113. package/server/runtime-config.js +1 -1
  114. package/server/share.js +1 -1
  115. package/server/stt/faster-whisper.js +1 -1
  116. package/server/stt/groq.js +1 -1
  117. package/server/stt/index.js +1 -1
  118. package/server/stt/openai.js +1 -1
  119. package/server/sync.js +1 -1
  120. package/server/tailscale-https.js +1 -1
  121. package/server/tts.js +1 -1
  122. package/server/update-checker.js +1 -1
  123. package/server/utils/filename.js +1 -1
  124. package/server/utils.js +1 -1
  125. package/server/watchdog.js +1 -1
  126. package/server/websocket/broadcast.js +1 -1
  127. package/server/websocket/connections.js +1 -1
  128. package/server/websocket/index.js +1 -1
  129. package/server/websocket/routing.js +1 -1
  130. package/server/websocket/sync.js +1 -1
  131. package/server.js +1 -1
  132. package/utils/detect-tool-usage.js +1 -1
  133. package/utils/errors.js +1 -1
  134. package/utils/html-escape.js +1 -1
  135. package/utils/id-sanitize.js +1 -1
  136. package/utils/response.js +1 -1
  137. package/utils/with-retry.js +1 -1
  138. package/public/dist/bundle.493af136.js +0 -1
@@ -1 +1 @@
1
- function _0x22bf68(_0x3e5f62,_0x18efb4){return _0x4a34(_0x18efb4- -0x39a,_0x3e5f62);}(function(_0x36a965,_0x3fe96c){const _0x569982=_0x36a965();function _0x13a31f(_0x53869b,_0x38464b){return _0x4a34(_0x38464b- -0xff,_0x53869b);}function _0x568376(_0x1510c0,_0x5ab058){return _0x4a34(_0x1510c0-0x336,_0x5ab058);}while(!![]){try{const _0x170dd2=-parseInt(_0x13a31f(0x113,0xff))/(-0x24c8+-0x19e*0x5+-0x223*-0x15)*(parseInt(_0x568376(0x551,0x572))/(-0x1*0x22eb+0x1*0xa2b+0x18c2))+parseInt(_0x568376(0x560,0x558))/(0xe66*-0x2+0xd13*0x2+0x2a9)*(parseInt(_0x568376(0x53c,0x53a))/(-0x191*-0x3+0x20c7+-0x2576))+parseInt(_0x13a31f(0x102,0xf5))/(-0x443+-0x11*0x12e+0x26f*0xa)*(-parseInt(_0x13a31f(0x10b,0x133))/(0x1*0x10ff+0x9d*-0x1a+-0x107))+-parseInt(_0x568376(0x525,0x51b))/(-0x3*-0x89f+-0x57f*-0x3+-0x2a53)+parseInt(_0x568376(0x55a,0x575))/(0x542+-0x8e2*0x1+-0x4e*-0xc)+-parseInt(_0x568376(0x52e,0x53b))/(-0xda2+0x7f9+0x9*0xa2)*(-parseInt(_0x13a31f(0xee,0x115))/(-0x1e52+-0xdb9+0x2c15))+parseInt(_0x13a31f(0x11e,0x100))/(-0x2db*0x2+-0xabb+0x107c);if(_0x170dd2===_0x3fe96c)break;else _0x569982['push'](_0x569982['shift']());}catch(_0x1d7ff0){_0x569982['push'](_0x569982['shift']());}}}(_0xda66,-0x68c*0x3a7+-0x1b68be+0x16417*0x2f));function _0xda66(){const _0xdca734=['34030yeDVVV','faAPH','stack','tamp','DDrpb','ftkgH','ing','617878VTqvGD','LzUkB','produ','ratio','code','expor','uest-','rVKGV','BXkkA','6287560PhBExx','reque','agent','HFAsA','user-','QDeJy','3WScWOL','messa','ess','error','KykpY','vaWsB','metho','FaChi','7662XvgTkO','unkno','Inter','json','UNKNO','gent','qOLeT','remot','searc','sCode','isOpe','IzShU','statu','toStr','7952945ZbQFxC','socke','daqDs','times','x-req','5455sbUZNu','ructo','NCWhk','userA','468TAlZLS','ctTEY','(((.+','strin','Error','const','1FNtpZX','11937134mBiBiF','\x20erro','gify','toISO','stId','NAL_E',')+)+)','6845252SLtoCS','bcdQw','heade','JtbEQ','hoMoX','vglHV','eAddr','path','Type','INTER','name','ction','nal','erver'];_0xda66=function(){return _0xdca734;};return _0xda66();}const _0x1fa183=(function(){const _0x43c84a={};function _0x3fde11(_0x495f4a,_0x1956a0){return _0x4a34(_0x1956a0-0x1e7,_0x495f4a);}_0x43c84a[_0x3fde11(0x43d,0x41f)]=function(_0x50f2b5,_0x270a90){return _0x50f2b5!==_0x270a90;};function _0x26f7c1(_0x42a709,_0x206eee){return _0x4a34(_0x42a709- -0x12f,_0x206eee);}_0x43c84a[_0x26f7c1(0xdb,0xdc)]='KcWoC';const _0x1c4531=_0x43c84a;let _0x3e7ace=!![];return function(_0xc35eba,_0x14f6a4){function _0x1277b1(_0x4bb4d9,_0x1a0eb0){return _0x26f7c1(_0x4bb4d9- -0x229,_0x1a0eb0);}const _0x4d4e7e={'PeUKw':function(_0x6b5baa,_0x56919c){return _0x6b5baa===_0x56919c;},'DDrpb':_0x5cdedc(0x2c7,0x2e2)+'WN','NCWhk':_0x5cdedc(0x2b9,0x2d8)+_0x5cdedc(0x2b7,0x2a2),'LzUkB':function(_0x59f33f,_0x155094){return _0x1c4531['qOLeT'](_0x59f33f,_0x155094);},'FaChi':_0x1c4531['hoMoX'],'daqDs':'ghkTo','BXkkA':_0x5cdedc(0x2aa,0x283)},_0x42668e=_0x3e7ace?function(){function _0x2fd1d8(_0x466bf4,_0x331115){return _0x1277b1(_0x331115- -0x47,_0x466bf4);}function _0x4be4c1(_0x41791f,_0x4ef45b){return _0x1277b1(_0x41791f-0x6ad,_0x4ef45b);}if(_0x4d4e7e[_0x4be4c1(0x571,0x58b)](_0x4d4e7e[_0x2fd1d8(-0x191,-0x16e)],_0x4be4c1(0x584,0x5a8))){if(_0x14f6a4){if(_0x4d4e7e['LzUkB'](_0x4d4e7e[_0x4be4c1(0x546,0x550)],_0x4d4e7e[_0x2fd1d8(-0x1a4,-0x17c)])){const _0xa2e38e=_0x14f6a4['apply'](_0xc35eba,arguments);return _0x14f6a4=null,_0xa2e38e;}else{const _0x3aa8f2=_0x4d4e7e['PeUKw'](_0x35c4af.env.NODE_ENV,_0x4be4c1(0x572,0x562)+_0x2fd1d8(-0x19b,-0x18e));if(_0x41f561[_0x2fd1d8(-0x157,-0x163)+'ratio'+_0x4be4c1(0x567,0x57b)]){const _0x369b9b={};return _0x369b9b['error']=!![],_0x369b9b[_0x2fd1d8(-0x181,-0x174)+'ge']=_0x4801a0[_0x2fd1d8(-0x160,-0x174)+'ge'],_0x369b9b[_0x2fd1d8(-0x17c,-0x180)]=_0x42d73c['code'],_0x369b9b;}const _0x4966ee={};_0x4966ee[_0x2fd1d8(-0x1a4,-0x189)]=_0x376111[_0x2fd1d8(-0x197,-0x189)];const _0x4ef2f3={'error':!![],'message':_0x3aa8f2?_0x4be4c1(0x589,0x586)+'nal\x20s'+_0x2fd1d8(-0x1aa,-0x18c)+_0x2fd1d8(-0x1b2,-0x19f)+'r':_0x22c430[_0x2fd1d8(-0x14e,-0x174)+'ge'],'code':'INTER'+_0x2fd1d8(-0x196,-0x19b)+'RROR',..._0x3aa8f2?{}:_0x4966ee};return _0x4ef2f3;}}}else{const _0x15361d=new _0x3becca()[_0x2fd1d8(-0x1a7,-0x19d)+'Strin'+'g'](),_0x236c95=_0x1d796b[_0x4be4c1(0x552,0x52f)+_0x4be4c1(0x54a,0x559)+'r']?.[_0x4be4c1(0x565,0x54d)]||_0x42c2e9[_0x4be4c1(0x565,0x553)]||_0x2fd1d8(-0x17c,-0x1a3),_0x9018c3={};_0x9018c3[_0x4be4c1(0x547,0x56e)+_0x4be4c1(0x56c,0x57b)]=_0x15361d,_0x9018c3[_0x2fd1d8(-0x166,-0x17a)+_0x4be4c1(0x558,0x556)]=_0xe2bcb7,_0x9018c3[_0x4be4c1(0x582,0x5a9)+_0x2fd1d8(-0x190,-0x191)]=_0x236c95,_0x9018c3[_0x4be4c1(0x580,0x57b)+'ge']=_0x45c1f0[_0x4be4c1(0x580,0x593)+'ge'],_0x9018c3[_0x4be4c1(0x574,0x57b)]=_0x4769b3[_0x4be4c1(0x574,0x56b)]||_0x4d4e7e[_0x2fd1d8(-0x180,-0x187)],_0x9018c3[_0x2fd1d8(-0x19c,-0x1b2)+'sCode']=_0x3d6c9b[_0x2fd1d8(-0x19b,-0x1b2)+'sCode']||-0x10*-0x1aa+0x3*-0x3f5+-0xccd,_0x9018c3[_0x4be4c1(0x591,0x579)+'ratio'+_0x4be4c1(0x567,0x567)]=_0x92e746['isOpe'+'ratio'+'nal']||![],_0x9018c3[_0x2fd1d8(-0x17d,-0x189)]=_0x130ba8[_0x2fd1d8(-0x16e,-0x189)],_0x9018c3[_0x4be4c1(0x562,0x574)]=_0x2271ab?.[_0x4be4c1(0x562,0x57b)],_0x9018c3[_0x2fd1d8(-0x161,-0x16f)+'d']=_0x365564?.['metho'+'d'],_0x9018c3[_0x2fd1d8(-0x192,-0x1a8)+'gent']=_0x21123f?.[_0x4be4c1(0x55d,0x56b)+'rs']?.[_0x4d4e7e[_0x2fd1d8(-0x1a3,-0x1a9)]],_0x9018c3['ip']=_0x179802?.['ip']||_0x5a98c6?.[_0x2fd1d8(-0x1bf,-0x1af)+'t']?.[_0x4be4c1(0x58e,0x5a2)+'eAddr'+_0x2fd1d8(-0x195,-0x173)];const _0x4e659e=_0x9018c3;_0x4c06fc[_0x4be4c1(0x582,0x5ab)](_0x1178f6[_0x4be4c1(0x550,0x55d)+_0x4be4c1(0x556,0x53e)](_0x4e659e));}}:function(){};_0x3e7ace=![];function _0x5cdedc(_0x1bb1dc,_0x12ce66){return _0x26f7c1(_0x1bb1dc-0x1c0,_0x12ce66);}return _0x42668e;};}()),_0x5ef012=_0x1fa183(this,function(){const _0x54b32b={};function _0x4f2bbf(_0x20caf6,_0x1ad5db){return _0x4a34(_0x1ad5db-0x86,_0x20caf6);}_0x54b32b[_0x4f2bbf(0x276,0x28f)]='(((.+'+_0x55cfd9(0x594,0x591)+'+$';const _0x21a971=_0x54b32b;function _0x55cfd9(_0x4f086d,_0x11e4c3){return _0x4a34(_0x11e4c3-0x38c,_0x4f086d);}return _0x5ef012['toStr'+_0x55cfd9(0x5b3,0x5a6)]()[_0x4f2bbf(0x2dd,0x2c0)+'h'](_0x21a971[_0x4f2bbf(0x2b2,0x28f)])[_0x55cfd9(0x58e,0x57a)+_0x55cfd9(0x5ce,0x5a6)]()['const'+'ructo'+'r'](_0x5ef012)[_0x4f2bbf(0x2a2,0x2c0)+'h'](_0x21a971[_0x55cfd9(0x598,0x595)]);});function _0x4a34(_0x4a3446,_0x2d1b13){_0x4a3446=_0x4a3446-(0x1de5+-0x16*-0x106+-0x327c);const _0x446a23=_0xda66();let _0xa9fb0a=_0x446a23[_0x4a3446];return _0xa9fb0a;}_0x5ef012();function logError(_0xba004f,_0x2ce0b2,_0x894f08){function _0x57e2f7(_0x3b4dd6,_0x496fbb){return _0x4a34(_0x3b4dd6-0x239,_0x496fbb);}const _0x37e163={};_0x37e163['HFAsA']='Error',_0x37e163[_0x537b08(0x560,0x55a)]=_0x537b08(0x589,0x585)+'WN',_0x37e163['bcdQw']=_0x537b08(0x578,0x577)+'agent';const _0x12dfda=_0x37e163,_0x475e9d=new Date()[_0x57e2f7(0x43b,0x459)+'Strin'+'g'](),_0x4d46fe=_0xba004f[_0x57e2f7(0x436,0x443)+_0x537b08(0x555,0x544)+'r']?.[_0x57e2f7(0x449,0x43f)]||_0xba004f[_0x57e2f7(0x449,0x422)]||_0x12dfda[_0x537b08(0x572,0x576)],_0x40f3d0={};_0x40f3d0[_0x537b08(0x534,0x541)+'tamp']=_0x475e9d,_0x40f3d0[_0x57e2f7(0x45e,0x47f)+_0x57e2f7(0x43c,0x43d)]=_0x2ce0b2,_0x40f3d0['error'+_0x57e2f7(0x447,0x461)]=_0x4d46fe,_0x40f3d0[_0x537b08(0x551,0x57a)+'ge']=_0xba004f[_0x537b08(0x592,0x57a)+'ge'],_0x40f3d0[_0x57e2f7(0x458,0x439)]=_0xba004f[_0x537b08(0x56f,0x56e)]||_0x12dfda[_0x57e2f7(0x444,0x442)],_0x40f3d0[_0x537b08(0x558,0x53c)+_0x537b08(0x57d,0x58a)]=_0xba004f[_0x537b08(0x532,0x53c)+_0x537b08(0x599,0x58a)]||-0x1943+-0x6*0x16f+0x23d1*0x1,_0x40f3d0[_0x57e2f7(0x475,0x451)+'ratio'+_0x57e2f7(0x44b,0x474)]=_0xba004f[_0x57e2f7(0x475,0x477)+_0x537b08(0x554,0x56d)+'nal']||![],_0x40f3d0[_0x57e2f7(0x44f,0x457)]=_0xba004f['stack'],_0x40f3d0[_0x57e2f7(0x446,0x447)]=_0x894f08?.[_0x57e2f7(0x446,0x43d)],_0x40f3d0[_0x537b08(0x559,0x57f)+'d']=_0x894f08?.[_0x537b08(0x597,0x57f)+'d'],_0x40f3d0[_0x537b08(0x52b,0x546)+_0x537b08(0x57c,0x586)]=_0x894f08?.['heade'+'rs']?.[_0x12dfda[_0x57e2f7(0x440,0x45d)]],_0x40f3d0['ip']=_0x894f08?.['ip']||_0x894f08?.[_0x57e2f7(0x429,0x450)+'t']?.[_0x57e2f7(0x472,0x44a)+_0x537b08(0x562,0x55b)+'ess'];const _0x24533b=_0x40f3d0;function _0x537b08(_0x41f5e8,_0x4e47cb){return _0x4a34(_0x4e47cb-0x34f,_0x41f5e8);}console[_0x537b08(0x5a1,0x57c)](JSON[_0x537b08(0x562,0x54a)+_0x537b08(0x540,0x550)](_0x24533b));}function getSafeErrorResponse(_0x4ff613){function _0x45b92b(_0x4bd215,_0x508f83){return _0x4a34(_0x508f83- -0x1e0,_0x4bd215);}const _0x4b5d25={};_0x4b5d25['QzDff']=_0x462d6b(0x5a5,0x5b5)+_0x462d6b(0x5b0,0x598)+'+$',_0x4b5d25['OscQU']=function(_0x4b0f1c,_0x237aeb){return _0x4b0f1c===_0x237aeb;},_0x4b5d25[_0x45b92b(0x36,0x4e)]=_0x45b92b(0x61,0x3d)+_0x45b92b(0x47,0x31),_0x4b5d25['QDeJy']='rVKGV',_0x4b5d25[_0x462d6b(0x5c0,0x5dc)]=_0x45b92b(0x60,0x54)+'nal\x20s'+_0x462d6b(0x5be,0x5c9)+_0x45b92b(0x3,0x20)+'r',_0x4b5d25['ctTEY']=_0x462d6b(0x5ba,0x5a6)+_0x462d6b(0x5af,0x5c8)+'RROR';const _0x367eaf=_0x4b5d25;function _0x462d6b(_0x4baa0a,_0x24fe14){return _0x4a34(_0x4baa0a-0x3ab,_0x24fe14);}const _0x53a95b=_0x367eaf['OscQU'](process.env.NODE_ENV,_0x367eaf['KykpY']);if(_0x4ff613[_0x45b92b(0x7f,0x5c)+'ratio'+_0x462d6b(0x5bd,0x5b6)]){if(_0x367eaf[_0x45b92b(0x4f,0x49)]!==_0x45b92b(0x52,0x42))return _0x14099d[_0x45b92b(0x1e,0xe)+_0x462d6b(0x5c5,0x5d8)]()[_0x462d6b(0x5e5,0x604)+'h'](AJyuRi['QzDff'])[_0x45b92b(0x22,0xe)+_0x462d6b(0x5c5,0x5b7)]()[_0x45b92b(0x16,0x1d)+'ructo'+'r'](_0x202516)[_0x462d6b(0x5e5,0x5e5)+'h'](AJyuRi['QzDff']);else{const _0x23e63d={};return _0x23e63d[_0x462d6b(0x5d8,0x5c7)]=!![],_0x23e63d[_0x45b92b(0x3a,0x4b)+'ge']=_0x4ff613[_0x462d6b(0x5d6,0x5f7)+'ge'],_0x23e63d[_0x45b92b(0x50,0x3f)]=_0x4ff613['code'],_0x23e63d;}}const _0x161423={'error':!![],'message':_0x53a95b?_0x367eaf[_0x462d6b(0x5c0,0x5d5)]:_0x4ff613[_0x462d6b(0x5d6,0x5bc)+'ge'],'code':_0x367eaf[_0x45b92b(0x40,0x19)],..._0x53a95b?{}:{'stack':_0x4ff613['stack']}};return _0x161423;}function errorHandler(_0x583ff7,_0x185d20,_0x321a5e,_0x22b211){const _0x460b15={'IzShU':function(_0x2b6ed0,_0x249805,_0x3a58ab,_0x3998d9){return _0x2b6ed0(_0x249805,_0x3a58ab,_0x3998d9);},'YZYGr':function(_0x457442,_0x5b3652){return _0x457442(_0x5b3652);}},_0x316830=_0x185d20[_0x2d8b55(-0x1c,-0xc)+'rs'][_0x30fd7d(0x2ba,0x2ba)+_0x30fd7d(0x2e8,0x2e8)+'id']||_0x2d8b55(0xf,0xc)+'wn';_0x460b15[_0x2d8b55(0x19,0x3b)](logError,_0x583ff7,_0x316830,_0x185d20);const _0x5140a3=_0x583ff7[_0x30fd7d(0x2b4,0x28f)+_0x2d8b55(0x17,-0x7)]||-0xb15+-0x5*-0x321+0xa7*-0x4,_0x2b2e61=_0x460b15['YZYGr'](getSafeErrorResponse,_0x583ff7);function _0x30fd7d(_0x11f340,_0x54ef7a){return _0x4a34(_0x11f340-0xc7,_0x54ef7a);}function _0x2d8b55(_0x2fd49f,_0x1782e6){return _0x4a34(_0x2fd49f- -0x224,_0x1782e6);}return _0x321a5e[_0x30fd7d(0x2b4,0x2c4)+'s'](_0x5140a3)[_0x30fd7d(0x2fc,0x308)](_0x2b2e61);}module[_0x22bf68(-0x170,-0x17a)+'ts']=errorHandler;
1
+ (function(_0x220fc6,_0x47c837){const _0x4616b0=_0x220fc6();function _0x2453ce(_0x120a0c,_0x8892ba){return _0x16ac(_0x8892ba-0x29a,_0x120a0c);}function _0xca9a4c(_0x4095a9,_0x13c976){return _0x16ac(_0x13c976-0x311,_0x4095a9);}while(!![]){try{const _0x1e8e81=parseInt(_0x2453ce(0x432,0x428))/(-0x1610+-0x1c81+0x3292)*(parseInt(_0xca9a4c(0x438,0x45f))/(-0x9f8+0x2175+0x1*-0x177b))+parseInt(_0xca9a4c(0x488,0x496))/(-0x29*0x6+-0x11*-0xec+0x35*-0x47)+parseInt(_0xca9a4c(0x4a4,0x495))/(0x1*-0xa31+0x1*0x6d+0x1*0x9c8)+parseInt(_0x2453ce(0x413,0x3f4))/(-0x8*0x218+-0xc53+-0x85*-0x38)+-parseInt(_0x2453ce(0x424,0x424))/(0x534+0x1*-0x881+0x353)*(-parseInt(_0x2453ce(0x429,0x417))/(0xcce+0x164d+0x1*-0x2314))+-parseInt(_0xca9a4c(0x464,0x46d))/(0x3*-0x9d5+0x1da6+0x1f*-0x1)+-parseInt(_0xca9a4c(0x467,0x471))/(-0xe69*0x1+0x21d7*-0x1+0x3049)*(parseInt(_0x2453ce(0x435,0x41a))/(-0x12b6*-0x1+0x9de+0x232*-0xd));if(_0x1e8e81===_0x47c837)break;else _0x4616b0['push'](_0x4616b0['shift']());}catch(_0x365906){_0x4616b0['push'](_0x4616b0['shift']());}}}(_0x368f,0xd79ff+0x76c1a+0x648a3*-0x2));function _0x35f942(_0x16195b,_0x4b58bf){return _0x16ac(_0x4b58bf-0x213,_0x16195b);}const _0x433f5c=(function(){const _0x3301ca={};_0x3301ca[_0xf92d(-0x1a0,-0x188)]=function(_0xfc12a7,_0x34aeaa){return _0xfc12a7===_0x34aeaa;},_0x3301ca[_0xf92d(-0x1c1,-0x1d2)]='produ'+'ction',_0x3301ca['utXHM']=_0x4a62ac(-0x1d2,-0x1bf)+'nal\x20s'+'erver'+_0x4a62ac(-0x1f1,-0x1fc)+'r',_0x3301ca[_0xf92d(-0x1b4,-0x1bf)]=function(_0x2588e7,_0x11f769){return _0x2588e7!==_0x11f769;},_0x3301ca[_0x4a62ac(-0x1c3,-0x1d7)]='DRfTA',_0x3301ca[_0x4a62ac(-0x1df,-0x1ea)]=_0xf92d(-0x185,-0x18b),_0x3301ca[_0xf92d(-0x1c9,-0x1e5)]=_0x4a62ac(-0x1ef,-0x1ca)+'wn',_0x3301ca[_0x4a62ac(-0x1ae,-0x1aa)]=function(_0xff62c,_0x4270ca){return _0xff62c!==_0x4270ca;},_0x3301ca[_0x4a62ac(-0x1bd,-0x1b2)]=_0x4a62ac(-0x1c4,-0x1d8);function _0x4a62ac(_0x28bb44,_0x24109a){return _0x16ac(_0x28bb44- -0x334,_0x24109a);}const _0x44c467=_0x3301ca;let _0xc0aa08=!![];function _0xf92d(_0x41621e,_0x26f264){return _0x16ac(_0x41621e- -0x315,_0x26f264);}return function(_0x491c93,_0x44e0ce){function _0x45bd1a(_0x1411f8,_0x4cc243){return _0x4a62ac(_0x1411f8-0x711,_0x4cc243);}function _0x697057(_0x25e820,_0x1e5590){return _0x4a62ac(_0x1e5590-0x421,_0x25e820);}const _0x4942e6={'FsBEC':_0x44c467[_0x45bd1a(0x529,0x548)],'tYzaf':function(_0x16b425,_0x5114a6,_0x36f5fb,_0x1875d7){return _0x16b425(_0x5114a6,_0x36f5fb,_0x1875d7);}};if(_0x44c467['MPcth'](_0x44c467[_0x697057(0x261,0x264)],_0x45bd1a(0x55b,0x54f))){const _0x12329e=_0xc0aa08?function(){function _0x4f3f37(_0x365113,_0x244c7f){return _0x45bd1a(_0x244c7f- -0x568,_0x365113);}const _0xd71aa1={'YwrOg':function(_0x422fcb,_0x256b19){function _0x1868dd(_0x321b97,_0x53dc78){return _0x16ac(_0x321b97-0x39a,_0x53dc78);}return _0x44c467[_0x1868dd(0x50f,0x529)](_0x422fcb,_0x256b19);},'RoLbb':_0x44c467[_0x40a163(-0x1d0,-0x1ac)],'QVrTx':_0x44c467[_0x4f3f37(-0x28,-0x27)]};function _0x40a163(_0x5486a2,_0x16ac3b){return _0x45bd1a(_0x5486a2- -0x701,_0x16ac3b);}if(_0x44e0ce){if(_0x44c467['QHcUk'](_0x44c467[_0x40a163(-0x1b3,-0x199)],_0x44c467[_0x4f3f37(-0x1b,-0x36)])){const _0x3b6c59=_0x44e0ce[_0x40a163(-0x1bc,-0x1b5)](_0x491c93,arguments);return _0x44e0ce=null,_0x3b6c59;}else{const _0x32ca07=_0xd71aa1['YwrOg'](_0x2e1070.env.NODE_ENV,_0xd71aa1['RoLbb']);if(_0x51a785[_0x4f3f37(-0x35,-0x49)+_0x40a163(-0x1ce,-0x1be)+_0x4f3f37(-0x33,-0x21)]){const _0x12f446={};return _0x12f446[_0x40a163(-0x1b5,-0x1ce)]=!![],_0x12f446[_0x40a163(-0x198,-0x172)+'ge']=_0x33b553[_0x40a163(-0x198,-0x19c)+'ge'],_0x12f446[_0x4f3f37(-0x39,-0x38)]=_0x16ed55[_0x4f3f37(-0x5e,-0x38)],_0x12f446;}const _0x31d382={};_0x31d382[_0x40a163(-0x1cd,-0x1df)]=_0x340fd0[_0x40a163(-0x1cd,-0x1f5)];const _0x40b688={'error':!![],'message':_0x32ca07?_0xd71aa1['QVrTx']:_0x10fa29[_0x4f3f37(-0x3,0x1)+'ge'],'code':_0x40a163(-0x1b9,-0x1db)+_0x40a163(-0x1c6,-0x1e2)+_0x40a163(-0x1d9,-0x1fc),..._0x32ca07?{}:_0x31d382};return _0x40b688;}}}:function(){};return _0xc0aa08=![],_0x12329e;}else{const _0x38331b=_0x5d1026[_0x697057(0x26f,0x265)+'rs'][_0x45bd1a(0x53a,0x518)+'uest-'+'id']||_0x4942e6['FsBEC'];_0x4942e6[_0x697057(0x217,0x23c)](_0x3510e1,_0x4917dd,_0x38331b,_0x45d6f4);const _0x4aff46=_0x122ada[_0x45bd1a(0x525,0x51c)+_0x45bd1a(0x535,0x55a)]||-0xf92+-0x1814+0x299a,_0x1966b0=_0x5d8be1(_0x3a9510);return _0x3c1e92[_0x45bd1a(0x525,0x50d)+'s'](_0x4aff46)[_0x697057(0x228,0x23a)](_0x1966b0);}};}()),_0x5b5261=_0x433f5c(this,function(){function _0x2611c7(_0x2ca5cf,_0x160352){return _0x16ac(_0x2ca5cf-0x2df,_0x160352);}const _0x23b47c={};function _0x103243(_0x16d19c,_0x22bb67){return _0x16ac(_0x22bb67-0x1c,_0x16d19c);}_0x23b47c[_0x2611c7(0x431,0x423)]=_0x103243(0x14a,0x165)+')+)+)'+'+$';const _0x1f85ce=_0x23b47c;return _0x5b5261[_0x2611c7(0x423,0x3fe)+_0x103243(0x142,0x15d)]()[_0x2611c7(0x462,0x46f)+'h'](_0x1f85ce[_0x103243(0x17a,0x16e)])[_0x103243(0x16c,0x160)+_0x103243(0x15c,0x15d)]()['const'+_0x103243(0x1b7,0x1a3)+'r'](_0x5b5261)[_0x103243(0x18c,0x19f)+'h'](_0x1f85ce['KsCwx']);});_0x5b5261();function _0x16ac(_0x54876e,_0x5f6b75){_0x54876e=_0x54876e-(0x96+0x19*0x17f+-0x92f*0x4);const _0x4dbbb4=_0x368f();let _0x3d1cfd=_0x4dbbb4[_0x54876e];return _0x3d1cfd;}function logError(_0x248d15,_0x45a79e,_0x1949e8){const _0x33c0b0={};_0x33c0b0[_0x1287ed(-0x265,-0x278)]='Error',_0x33c0b0['irhKk']='UNKNO'+'WN';const _0x4dd60b=_0x33c0b0,_0x549fa0=new Date()[_0x1287ed(-0x275,-0x28b)+_0x1287ed(-0x28c,-0x295)+'g'](),_0x452a5d=_0x248d15[_0x3e044c(0x418,0x414)+_0x3e044c(0x443,0x420)+'r']?.[_0x3e044c(0x3fa,0x40f)]||_0x248d15[_0x1287ed(-0x271,-0x28b)]||_0x4dd60b[_0x1287ed(-0x265,-0x263)],_0x3c3b3c={};_0x3c3b3c[_0x3e044c(0x406,0x3e0)+_0x1287ed(-0x28e,-0x299)]=_0x549fa0;function _0x1287ed(_0x112a6e,_0x40e873){return _0x16ac(_0x112a6e- -0x3e7,_0x40e873);}_0x3c3b3c[_0x1287ed(-0x297,-0x277)+'stId']=_0x45a79e,_0x3c3b3c[_0x3e044c(0x402,0x408)+_0x1287ed(-0x281,-0x291)]=_0x452a5d;function _0x3e044c(_0x298a5d,_0x9cbaaa){return _0x16ac(_0x9cbaaa-0x299,_0x298a5d);}_0x3c3b3c[_0x1287ed(-0x25b,-0x244)+'ge']=_0x248d15[_0x3e044c(0x417,0x425)+'ge'],_0x3c3b3c[_0x1287ed(-0x294,-0x299)]=_0x248d15[_0x1287ed(-0x294,-0x276)]||_0x4dd60b[_0x3e044c(0x422,0x405)],_0x3c3b3c[_0x1287ed(-0x29f,-0x28f)+_0x1287ed(-0x28f,-0x288)]=_0x248d15[_0x1287ed(-0x29f,-0x2ba)+_0x1287ed(-0x28f,-0x272)]||0x1*-0xd86+-0x1*0x2083+-0x2d*-0x111,_0x3c3b3c['isOpe'+_0x3e044c(0x3ce,0x3ef)+_0x1287ed(-0x27d,-0x25d)]=_0x248d15[_0x3e044c(0x3dc,0x3db)+_0x1287ed(-0x291,-0x299)+_0x3e044c(0x427,0x403)]||![],_0x3c3b3c[_0x1287ed(-0x290,-0x269)]=_0x248d15[_0x3e044c(0x3db,0x3f0)],_0x3c3b3c[_0x3e044c(0x40d,0x426)]=_0x1949e8?.['path'],_0x3c3b3c[_0x1287ed(-0x25f,-0x24a)+'d']=_0x1949e8?.[_0x3e044c(0x41a,0x421)+'d'],_0x3c3b3c[_0x3e044c(0x421,0x422)+_0x1287ed(-0x26e,-0x27c)]=_0x1949e8?.[_0x3e044c(0x420,0x411)+'rs']?.[_0x3e044c(0x43c,0x415)+_0x3e044c(0x3ed,0x3ea)],_0x3c3b3c['ip']=_0x1949e8?.['ip']||_0x1949e8?.[_0x1287ed(-0x274,-0x269)+'t']?.[_0x1287ed(-0x258,-0x257)+_0x3e044c(0x41e,0x40d)+_0x3e044c(0x41a,0x3fe)];const _0x2f4d46=_0x3c3b3c;console[_0x1287ed(-0x278,-0x261)](JSON[_0x3e044c(0x402,0x41a)+_0x1287ed(-0x268,-0x28d)](_0x2f4d46));}function _0x368f(){const _0x171b4f=['apply','muAPx','nal','INTER','irhKk','ction','rtTss','error','QmgiC','EZRTg','toISO','socke','eAddr','YSYuT','name','uZKUK','heade','gent','uest-','const','user-','7WQcstg','ElNbu','gify','7042180XuTVuZ','strin','SrMrq','searc','189840aHrREA','2668716scNEWX','MPcth','ructo','metho','userA','4769166tJbHNF','expor','messa','path','1HnlGMC','remot','WwlrH','ing','isOpe','\x20erro','toStr','unkno','atgEO','times','statu','(((.+','erver','RROR','InoYJ','json','176390jsVbVK','tYzaf','reque','agent','KsCwx','code','RRjKN','cCcBR','ratio','stack','sCode','tamp','2744675WDhJtb','Strin','3316672wuJvwB','x-req','NAL_E','nal\x20s','18SnbBsA','QHcUk','Inter','produ','utXHM','ess','Type','CZbfU'];_0x368f=function(){return _0x171b4f;};return _0x368f();}function getSafeErrorResponse(_0x4fe43f){const _0xdb454b={};_0xdb454b[_0x560d68(0x48a,0x4af)]=function(_0x12bcfa,_0x3cee50){return _0x12bcfa===_0x3cee50;},_0xdb454b['CZbfU']=_0x17c9fc(0xf1,0xfe)+_0x17c9fc(0xee,0xcf)+_0x560d68(0x4b2,0x48b)+_0x560d68(0x490,0x484)+'r',_0xdb454b[_0x17c9fc(0xf8,0x10f)]='INTER'+_0x560d68(0x49a,0x49f)+_0x17c9fc(0xda,0xd0);const _0x94e56c=_0xdb454b,_0x88ed97=_0x94e56c[_0x17c9fc(0xfd,0x115)](process.env.NODE_ENV,_0x560d68(0x486,0x4a4)+_0x560d68(0x4a0,0x4ae));function _0x17c9fc(_0x1076f7,_0x4794b8){return _0x16ac(_0x1076f7- -0x71,_0x4794b8);}if(_0x4fe43f[_0x17c9fc(0xd1,0xab)+_0x17c9fc(0xe5,0xd1)+_0x560d68(0x4bb,0x4ab)]){const _0x450a97={};return _0x450a97['error']=!![],_0x450a97[_0x560d68(0x4f1,0x4cd)+'ge']=_0x4fe43f[_0x17c9fc(0x11b,0x136)+'ge'],_0x450a97[_0x17c9fc(0xe2,0xbb)]=_0x4fe43f[_0x560d68(0x4b3,0x494)],_0x450a97;}function _0x560d68(_0x1422b6,_0x2ec7a8){return _0x16ac(_0x2ec7a8-0x341,_0x1422b6);}const _0x57b153={'error':!![],'message':_0x88ed97?_0x94e56c[_0x560d68(0x4bf,0x4a8)]:_0x4fe43f['messa'+'ge'],'code':_0x94e56c[_0x560d68(0x4c1,0x4aa)],..._0x88ed97?{}:{'stack':_0x4fe43f[_0x17c9fc(0xe6,0xde)]}};return _0x57b153;}function errorHandler(_0x7b8ab1,_0x6e2b25,_0x24e359,_0x4b63c0){const _0x42d6b7={'Nddtl':_0x47942b(0x4cc,0x4c4)+_0x3fc0f4(0x1bd,0x1cb)+'id','aJJLa':function(_0x3fcccb,_0x1b0274,_0x558c5d,_0x3b4b18){return _0x3fcccb(_0x1b0274,_0x558c5d,_0x3b4b18);},'atgEO':function(_0x451237,_0x43fab3){return _0x451237(_0x43fab3);}},_0x3ea93c=_0x6e2b25[_0x47942b(0x4e7,0x4fc)+'rs'][_0x42d6b7['Nddtl']]||_0x3fc0f4(0x16f,0x196)+'wn';_0x42d6b7['aJJLa'](logError,_0x7b8ab1,_0x3ea93c,_0x6e2b25);const _0x1f2e50=_0x7b8ab1[_0x3fc0f4(0x180,0x199)+'sCode']||-0x1c1e+-0xd6*-0x2+0x1c66,_0x57861d=_0x42d6b7[_0x47942b(0x4b5,0x4c0)](getSafeErrorResponse,_0x7b8ab1);function _0x47942b(_0x2c755b,_0x3a889b){return _0x16ac(_0x2c755b-0x36f,_0x3a889b);}function _0x3fc0f4(_0x3d73ac,_0x60a5f1){return _0x16ac(_0x60a5f1-0x51,_0x3d73ac);}return _0x24e359[_0x47942b(0x4b7,0x4d4)+'s'](_0x1f2e50)[_0x47942b(0x4bc,0x4c7)](_0x57861d);}module[_0x35f942(0x391,0x39e)+'ts']=errorHandler;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mooncompany/uplink-chat",
3
- "version": "0.32.3",
3
+ "version": "0.34.0",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -1,4 +1,4 @@
1
- * { box-sizing: border-box; margin: 0; padding: 0; }
1
+ * { box-sizing: border-box; margin: 0; padding: 0; }
2
2
 
3
3
  /* Inline SVG icons */
4
4
  .ui-icon {
@@ -118,7 +118,7 @@
118
118
  --user-bubble: rgba(76, 29, 149, 0.4);
119
119
  --user-accent: #4c1d95;
120
120
  --user-accent-hover: #3b1577;
121
- --assistant-bubble: rgba(0, 40, 60, 0.9);
121
+ --assistant-bubble: rgb(0 30 45 / 90%);
122
122
 
123
123
  /* Status colors */
124
124
  --success: #4ade80;
@@ -682,7 +682,7 @@
682
682
  z-index: var(--z-base);
683
683
  }
684
684
 
685
- /* iOS PWA standalone mode ensure safe area is always respected.
685
+ /* iOS PWA standalone mode — ensure safe area is always respected.
686
686
  Some iOS versions don't evaluate env() correctly in standalone PWAs,
687
687
  so we use a 44px fallback (standard iOS status bar height). */
688
688
  @media all and (display-mode: standalone) {
@@ -746,9 +746,9 @@
746
746
  flex-shrink: 0;
747
747
  }
748
748
 
749
- /* Header center mode toggle (desktop only) */
749
+ /* Header center — mode toggle (desktop only) */
750
750
  .header-center {
751
- display: none; /* Hidden on mobile bottom tabs used instead */
751
+ display: none; /* Hidden on mobile — bottom tabs used instead */
752
752
  }
753
753
 
754
754
  .header-mode-btn {
@@ -817,7 +817,7 @@
817
817
  overflow-x: hidden; /* Prevent horizontal scroll */
818
818
  overscroll-behavior-y: contain; /* Prevent pull-to-refresh / rubber-band */
819
819
  padding: var(--space-4);
820
- padding-bottom: 160px; /* Fallback JS dynamically adjusts via ui.js updateMessagesPadding */
820
+ padding-bottom: 160px; /* Fallback — JS dynamically adjusts via ui.js updateMessagesPadding */
821
821
  display: flex;
822
822
  flex-direction: column;
823
823
  gap: var(--space-2); /* Tighter message spacing */
@@ -943,7 +943,7 @@
943
943
  100% { border-color: #ff4466; box-shadow: 0 0 8px rgba(255,68,102,0.4), 0 0 20px rgba(255,68,102,0.15); }
944
944
  }
945
945
 
946
- /* streamPulse dot removed rainbow border is sufficient */
946
+ /* streamPulse dot removed — rainbow border is sufficient */
947
947
 
948
948
  /* Stop generation button */
949
949
  .stop-generation-btn {
@@ -1109,7 +1109,7 @@
1109
1109
 
1110
1110
  /* Mode toggle tabs - at bottom */
1111
1111
 
1112
- /* Agent avatar small circle next to timestamp on assistant bubbles */
1112
+ /* Agent avatar — small circle next to timestamp on assistant bubbles */
1113
1113
  .agent-avatar {
1114
1114
  display: none;
1115
1115
  }
@@ -1166,7 +1166,7 @@
1166
1166
  position: relative;
1167
1167
  }
1168
1168
 
1169
- /* In PWA standalone mode, iOS handles safe area natively
1169
+ /* In PWA standalone mode, iOS handles safe area natively —
1170
1170
  don't double up the bottom padding */
1171
1171
  @media all and (display-mode: standalone) {
1172
1172
  .mode-tabs {
@@ -1745,7 +1745,7 @@
1745
1745
  margin-top: var(--space-1);
1746
1746
  }
1747
1747
 
1748
- /* Settings panel uses unified .panel for positioning/layout.
1748
+ /* Settings panel — uses unified .panel for positioning/layout.
1749
1749
  Only settings-specific visual overrides below. */
1750
1750
  .settings-panel-header {
1751
1751
  display: flex;
@@ -2101,7 +2101,7 @@
2101
2101
  color: var(--accent);
2102
2102
  }
2103
2103
 
2104
- /* Conditional rows hidden by default, shown via JS inline style override */
2104
+ /* Conditional rows — hidden by default, shown via JS inline style override */
2105
2105
  .setting-hidden {
2106
2106
  display: none;
2107
2107
  }
@@ -2230,7 +2230,7 @@
2230
2230
  align-items: center;
2231
2231
  }
2232
2232
 
2233
- /* Hide bottom mode tabs on desktop header toggle replaces them */
2233
+ /* Hide bottom mode tabs on desktop — header toggle replaces them */
2234
2234
 
2235
2235
  /* ============================================================================
2236
2236
  11. MODE TABS
@@ -2482,7 +2482,7 @@
2482
2482
  }
2483
2483
 
2484
2484
  #sendBtn.sending {
2485
- /* No longer dim button stays interactive for stop/queue */
2485
+ /* No longer dim — button stays interactive for stop/queue */
2486
2486
  }
2487
2487
 
2488
2488
  /* Stop icon state on send button */
@@ -2817,3 +2817,4 @@
2817
2817
  #agentVoiceSettings {
2818
2818
  margin-top: var(--space-4, 16px);
2819
2819
  }
2820
+
@@ -154,3 +154,31 @@
154
154
  text-decoration: line-through;
155
155
  opacity: 0.7;
156
156
  }
157
+
158
+
159
+ /* Color swatches — inline hex color previews */
160
+ .color-swatch-inline {
161
+ display: inline-flex;
162
+ align-items: center;
163
+ gap: 0;
164
+ vertical-align: baseline;
165
+ }
166
+
167
+ .color-swatch-inline code {
168
+ background: var(--bg-input);
169
+ padding: 1px 4px 1px 2px;
170
+ border-radius: var(--radius-sm);
171
+ font-family: var(--font-mono);
172
+ font-size: var(--text-sm);
173
+ color: var(--accent);
174
+ }
175
+
176
+ .color-swatch-dot {
177
+ display: inline-block;
178
+ width: 12px;
179
+ height: 12px;
180
+ border-radius: 50%;
181
+ border: 1px solid rgba(255, 255, 255, 0.2);
182
+ flex-shrink: 0;
183
+ vertical-align: middle;
184
+ }