@openpalm/ui 0.12.3 → 0.12.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.
Files changed (161) hide show
  1. package/build/.openpalm-ui-version +1 -1
  2. package/build/client/_app/immutable/assets/{0.iY5Na-jC.css → 0.03HRqLzj.css} +1 -1
  3. package/build/client/_app/immutable/assets/0.03HRqLzj.css.br +0 -0
  4. package/build/client/_app/immutable/assets/0.03HRqLzj.css.gz +0 -0
  5. package/build/client/_app/immutable/assets/4.DImH8cdy.css +1 -0
  6. package/build/client/_app/immutable/assets/4.DImH8cdy.css.br +0 -0
  7. package/build/client/_app/immutable/assets/4.DImH8cdy.css.gz +0 -0
  8. package/build/client/_app/immutable/assets/7.DkzfFoKA.css +1 -0
  9. package/build/client/_app/immutable/assets/7.DkzfFoKA.css.br +0 -0
  10. package/build/client/_app/immutable/assets/7.DkzfFoKA.css.gz +0 -0
  11. package/build/client/_app/immutable/assets/{ChatMessage.DDPla6Cg.css → ChatMessage.Ctff5YI9.css} +1 -1
  12. package/build/client/_app/immutable/assets/ChatMessage.Ctff5YI9.css.br +0 -0
  13. package/build/client/_app/immutable/assets/ChatMessage.Ctff5YI9.css.gz +0 -0
  14. package/build/client/_app/immutable/assets/Navbar.CjL-3tw0.css +1 -0
  15. package/build/client/_app/immutable/assets/Navbar.CjL-3tw0.css.br +0 -0
  16. package/build/client/_app/immutable/assets/Navbar.CjL-3tw0.css.gz +0 -0
  17. package/build/client/_app/immutable/chunks/{Drz9G_H2.js → B7Tzub6z.js} +1 -1
  18. package/build/client/_app/immutable/chunks/B7Tzub6z.js.br +0 -0
  19. package/build/client/_app/immutable/chunks/B7Tzub6z.js.gz +0 -0
  20. package/build/client/_app/immutable/chunks/{sgaXYa0m.js → BJvGvX8w.js} +2 -2
  21. package/build/client/_app/immutable/chunks/BJvGvX8w.js.br +0 -0
  22. package/build/client/_app/immutable/chunks/BJvGvX8w.js.gz +0 -0
  23. package/build/client/_app/immutable/chunks/CgKtEGfl.js +1 -0
  24. package/build/client/_app/immutable/chunks/CgKtEGfl.js.br +0 -0
  25. package/build/client/_app/immutable/chunks/CgKtEGfl.js.gz +0 -0
  26. package/build/client/_app/immutable/chunks/Cob61iTa.js +1 -0
  27. package/build/client/_app/immutable/chunks/Cob61iTa.js.br +2 -0
  28. package/build/client/_app/immutable/chunks/Cob61iTa.js.gz +0 -0
  29. package/build/client/_app/immutable/chunks/{CAK5Edqg.js → CwrbcpZa.js} +1 -1
  30. package/build/client/_app/immutable/chunks/CwrbcpZa.js.br +0 -0
  31. package/build/client/_app/immutable/chunks/CwrbcpZa.js.gz +0 -0
  32. package/build/client/_app/immutable/chunks/{DO47CNbP.js → DF0a4TzS.js} +2 -2
  33. package/build/client/_app/immutable/chunks/DF0a4TzS.js.br +0 -0
  34. package/build/client/_app/immutable/chunks/DF0a4TzS.js.gz +0 -0
  35. package/build/client/_app/immutable/entry/{app.6md9OlJ2.js → app.BKfeVXCZ.js} +2 -2
  36. package/build/client/_app/immutable/entry/app.BKfeVXCZ.js.br +0 -0
  37. package/build/client/_app/immutable/entry/app.BKfeVXCZ.js.gz +0 -0
  38. package/build/client/_app/immutable/entry/start.BXYu_Ydh.js +1 -0
  39. package/build/client/_app/immutable/entry/start.BXYu_Ydh.js.br +1 -0
  40. package/build/client/_app/immutable/entry/start.BXYu_Ydh.js.gz +0 -0
  41. package/build/client/_app/immutable/nodes/{0.MDxT-fmf.js → 0.6LuHgRwe.js} +1 -1
  42. package/build/client/_app/immutable/nodes/0.6LuHgRwe.js.br +0 -0
  43. package/build/client/_app/immutable/nodes/0.6LuHgRwe.js.gz +0 -0
  44. package/build/client/_app/immutable/nodes/{1.CM0yndw4.js → 1.DmI_S0q4.js} +1 -1
  45. package/build/client/_app/immutable/nodes/1.DmI_S0q4.js.br +0 -0
  46. package/build/client/_app/immutable/nodes/1.DmI_S0q4.js.gz +0 -0
  47. package/build/client/_app/immutable/nodes/4.BHriocBq.js +134 -0
  48. package/build/client/_app/immutable/nodes/4.BHriocBq.js.br +0 -0
  49. package/build/client/_app/immutable/nodes/4.BHriocBq.js.gz +0 -0
  50. package/build/client/_app/immutable/nodes/{5.C9NIa29a.js → 5.BAEivWeB.js} +2 -2
  51. package/build/client/_app/immutable/nodes/5.BAEivWeB.js.br +0 -0
  52. package/build/client/_app/immutable/nodes/5.BAEivWeB.js.gz +0 -0
  53. package/build/client/_app/immutable/nodes/{6.cqN5Stp1.js → 6.BbQyuQdv.js} +1 -1
  54. package/build/client/_app/immutable/nodes/6.BbQyuQdv.js.br +0 -0
  55. package/build/client/_app/immutable/nodes/6.BbQyuQdv.js.gz +0 -0
  56. package/build/client/_app/immutable/nodes/7.gUDOE-wS.js +2 -0
  57. package/build/client/_app/immutable/nodes/7.gUDOE-wS.js.br +0 -0
  58. package/build/client/_app/immutable/nodes/7.gUDOE-wS.js.gz +0 -0
  59. package/build/client/_app/immutable/nodes/{8.DJBNOtRi.js → 8.CzwJhXsi.js} +1 -1
  60. package/build/client/_app/immutable/nodes/8.CzwJhXsi.js.br +0 -0
  61. package/build/client/_app/immutable/nodes/8.CzwJhXsi.js.gz +0 -0
  62. package/build/client/_app/version.json +1 -1
  63. package/build/client/_app/version.json.br +1 -1
  64. package/build/client/_app/version.json.gz +0 -0
  65. package/build/server/chunks/{0-BiSWCuvS.js → 0-pjhEnsU9.js} +3 -3
  66. package/build/server/chunks/{0-BiSWCuvS.js.map → 0-pjhEnsU9.js.map} +1 -1
  67. package/build/server/chunks/1-CpEwLT5m.js +9 -0
  68. package/build/server/chunks/{1-DHLtH_NT.js.map → 1-CpEwLT5m.js.map} +1 -1
  69. package/build/server/chunks/4-DeEbyG9L.js +9 -0
  70. package/build/server/chunks/{4-CCp6hL3j.js.map → 4-DeEbyG9L.js.map} +1 -1
  71. package/build/server/chunks/5-C_AVL3ML.js +9 -0
  72. package/build/server/chunks/{5-CHP_UBw9.js.map → 5-C_AVL3ML.js.map} +1 -1
  73. package/build/server/chunks/6-CeQz74iU.js +9 -0
  74. package/build/server/chunks/{6-CgkIqX20.js.map → 6-CeQz74iU.js.map} +1 -1
  75. package/build/server/chunks/7-C2UdjZEe.js +9 -0
  76. package/build/server/chunks/{7-BZlbBsX9.js.map → 7-C2UdjZEe.js.map} +1 -1
  77. package/build/server/chunks/{8-D_XxnYIA.js → 8-CRJQbNkU.js} +3 -3
  78. package/build/server/chunks/{8-D_XxnYIA.js.map → 8-CRJQbNkU.js.map} +1 -1
  79. package/build/server/chunks/{ChatMessage-1e2ESOBs.js → ChatMessage-C3zhSEqG.js} +2 -2
  80. package/build/server/chunks/{ChatMessage-1e2ESOBs.js.map → ChatMessage-C3zhSEqG.js.map} +1 -1
  81. package/build/server/chunks/{Navbar-B0-fGFL_.js → Navbar-BcinocU9.js} +3 -3
  82. package/build/server/chunks/{Navbar-B0-fGFL_.js.map → Navbar-BcinocU9.js.map} +1 -1
  83. package/build/server/chunks/{_page.svelte-Bqdqv3S3.js → _page.svelte-BVDl6JeB.js} +5 -5
  84. package/build/server/chunks/{_page.svelte-Bqdqv3S3.js.map → _page.svelte-BVDl6JeB.js.map} +1 -1
  85. package/build/server/chunks/{_page.svelte-DNdlZVFS.js → _page.svelte-Bb7vzt_Z.js} +5 -5
  86. package/build/server/chunks/{_page.svelte-DNdlZVFS.js.map → _page.svelte-Bb7vzt_Z.js.map} +1 -1
  87. package/build/server/chunks/{_page.svelte-CYV4wWfL.js → _page.svelte-BvrVz6_-.js} +16 -11
  88. package/build/server/chunks/_page.svelte-BvrVz6_-.js.map +1 -0
  89. package/build/server/chunks/{_page.svelte-CnKBwraZ.js → _page.svelte-DJfYktUM.js} +110 -25
  90. package/build/server/chunks/_page.svelte-DJfYktUM.js.map +1 -0
  91. package/build/server/chunks/{_page.svelte-EzMb--fb.js → _page.svelte-lgQ0Kbg5.js} +3 -3
  92. package/build/server/chunks/{_page.svelte-EzMb--fb.js.map → _page.svelte-lgQ0Kbg5.js.map} +1 -1
  93. package/build/server/chunks/{client-DM1VhaMs.js → client-BsbnGrZJ.js} +2 -2
  94. package/build/server/chunks/{client-DM1VhaMs.js.map → client-BsbnGrZJ.js.map} +1 -1
  95. package/build/server/chunks/{environment-Di_KLnnZ.js → environment-CTDQmO1c.js} +2 -2
  96. package/build/server/chunks/{environment-Di_KLnnZ.js.map → environment-CTDQmO1c.js.map} +1 -1
  97. package/build/server/chunks/{error.svelte-3KB3-NVK.js → error.svelte-z9fDkMtQ.js} +4 -4
  98. package/build/server/chunks/{error.svelte-3KB3-NVK.js.map → error.svelte-z9fDkMtQ.js.map} +1 -1
  99. package/build/server/chunks/{internal-CMoDKelY.js → internal-U63OU4kM.js} +2 -2
  100. package/build/server/chunks/{internal-CMoDKelY.js.map → internal-U63OU4kM.js.map} +1 -1
  101. package/build/server/chunks/{state2-B_F3w1a9.js → state2-BdbHTMvo.js} +2 -2
  102. package/build/server/chunks/{state2-B_F3w1a9.js.map → state2-BdbHTMvo.js.map} +1 -1
  103. package/build/server/index.js +2 -2
  104. package/build/server/manifest.js +8 -8
  105. package/build/server/manifest.js.map +1 -1
  106. package/package.json +1 -1
  107. package/build/client/_app/immutable/assets/0.iY5Na-jC.css.br +0 -0
  108. package/build/client/_app/immutable/assets/0.iY5Na-jC.css.gz +0 -0
  109. package/build/client/_app/immutable/assets/4.S0ueu2e9.css +0 -1
  110. package/build/client/_app/immutable/assets/4.S0ueu2e9.css.br +0 -0
  111. package/build/client/_app/immutable/assets/4.S0ueu2e9.css.gz +0 -0
  112. package/build/client/_app/immutable/assets/7.BzioASK3.css +0 -1
  113. package/build/client/_app/immutable/assets/7.BzioASK3.css.br +0 -0
  114. package/build/client/_app/immutable/assets/7.BzioASK3.css.gz +0 -0
  115. package/build/client/_app/immutable/assets/ChatMessage.DDPla6Cg.css.br +0 -0
  116. package/build/client/_app/immutable/assets/ChatMessage.DDPla6Cg.css.gz +0 -0
  117. package/build/client/_app/immutable/assets/Navbar.Bnqciy-R.css +0 -1
  118. package/build/client/_app/immutable/assets/Navbar.Bnqciy-R.css.br +0 -0
  119. package/build/client/_app/immutable/assets/Navbar.Bnqciy-R.css.gz +0 -0
  120. package/build/client/_app/immutable/chunks/CAK5Edqg.js.br +0 -0
  121. package/build/client/_app/immutable/chunks/CAK5Edqg.js.gz +0 -0
  122. package/build/client/_app/immutable/chunks/DO47CNbP.js.br +0 -0
  123. package/build/client/_app/immutable/chunks/DO47CNbP.js.gz +0 -0
  124. package/build/client/_app/immutable/chunks/DYDX4LXd.js +0 -1
  125. package/build/client/_app/immutable/chunks/DYDX4LXd.js.br +0 -2
  126. package/build/client/_app/immutable/chunks/DYDX4LXd.js.gz +0 -0
  127. package/build/client/_app/immutable/chunks/DjDrL9ap.js +0 -1
  128. package/build/client/_app/immutable/chunks/DjDrL9ap.js.br +0 -0
  129. package/build/client/_app/immutable/chunks/DjDrL9ap.js.gz +0 -0
  130. package/build/client/_app/immutable/chunks/Drz9G_H2.js.br +0 -0
  131. package/build/client/_app/immutable/chunks/Drz9G_H2.js.gz +0 -0
  132. package/build/client/_app/immutable/chunks/sgaXYa0m.js.br +0 -0
  133. package/build/client/_app/immutable/chunks/sgaXYa0m.js.gz +0 -0
  134. package/build/client/_app/immutable/entry/app.6md9OlJ2.js.br +0 -0
  135. package/build/client/_app/immutable/entry/app.6md9OlJ2.js.gz +0 -0
  136. package/build/client/_app/immutable/entry/start.B4TE50J5.js +0 -1
  137. package/build/client/_app/immutable/entry/start.B4TE50J5.js.br +0 -0
  138. package/build/client/_app/immutable/entry/start.B4TE50J5.js.gz +0 -0
  139. package/build/client/_app/immutable/nodes/0.MDxT-fmf.js.br +0 -0
  140. package/build/client/_app/immutable/nodes/0.MDxT-fmf.js.gz +0 -0
  141. package/build/client/_app/immutable/nodes/1.CM0yndw4.js.br +0 -3
  142. package/build/client/_app/immutable/nodes/1.CM0yndw4.js.gz +0 -0
  143. package/build/client/_app/immutable/nodes/4.BfOOWhHl.js +0 -132
  144. package/build/client/_app/immutable/nodes/4.BfOOWhHl.js.br +0 -0
  145. package/build/client/_app/immutable/nodes/4.BfOOWhHl.js.gz +0 -0
  146. package/build/client/_app/immutable/nodes/5.C9NIa29a.js.br +0 -0
  147. package/build/client/_app/immutable/nodes/5.C9NIa29a.js.gz +0 -0
  148. package/build/client/_app/immutable/nodes/6.cqN5Stp1.js.br +0 -0
  149. package/build/client/_app/immutable/nodes/6.cqN5Stp1.js.gz +0 -0
  150. package/build/client/_app/immutable/nodes/7.C9bMWAVS.js +0 -1
  151. package/build/client/_app/immutable/nodes/7.C9bMWAVS.js.br +0 -0
  152. package/build/client/_app/immutable/nodes/7.C9bMWAVS.js.gz +0 -0
  153. package/build/client/_app/immutable/nodes/8.DJBNOtRi.js.br +0 -0
  154. package/build/client/_app/immutable/nodes/8.DJBNOtRi.js.gz +0 -0
  155. package/build/server/chunks/1-DHLtH_NT.js +0 -9
  156. package/build/server/chunks/4-CCp6hL3j.js +0 -9
  157. package/build/server/chunks/5-CHP_UBw9.js +0 -9
  158. package/build/server/chunks/6-CgkIqX20.js +0 -9
  159. package/build/server/chunks/7-BZlbBsX9.js +0 -9
  160. package/build/server/chunks/_page.svelte-CYV4wWfL.js.map +0 -1
  161. package/build/server/chunks/_page.svelte-CnKBwraZ.js.map +0 -1
@@ -1 +0,0 @@
1
- .icon-btn.svelte-vx1yib{justify-content:center;align-items:center;gap:var(--space-2);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);width:40px;height:40px;color:var(--color-text-secondary);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);flex-shrink:0;padding:0;text-decoration:none;display:inline-flex}.icon-btn.has-label.svelte-vx1yib{width:auto;padding:0 var(--space-3)}.icon-btn-label.svelte-vx1yib{font-size:var(--text-sm);font-weight:var(--font-medium);white-space:nowrap}.icon-btn.svelte-vx1yib svg{flex-shrink:0}.icon-btn.svelte-vx1yib:hover:not(:disabled):not([aria-disabled=true]){color:var(--color-text);background:var(--color-surface-hover);border-color:var(--color-border-hover)}.icon-btn.svelte-vx1yib:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.icon-btn.svelte-vx1yib:disabled,.icon-btn[aria-disabled=true].svelte-vx1yib{opacity:.6;cursor:not-allowed}.icon-btn.selected.svelte-vx1yib{color:var(--color-primary);border-color:var(--color-primary);background:var(--color-primary-subtle)}.icon-btn.selected.svelte-vx1yib:hover:not(:disabled):not([aria-disabled=true]){color:var(--color-primary);border-color:var(--color-primary)}.icon-btn.selected.tone-danger.svelte-vx1yib{color:var(--color-danger);border-color:var(--color-danger);background:var(--color-danger-bg)}.icon-btn.selected.tone-danger.svelte-vx1yib:hover:not(:disabled):not([aria-disabled=true]){color:var(--color-danger);border-color:var(--color-danger)}.drawer-scrim.svelte-1u2o1qj{z-index:200;background:#00000073;border:none;padding:0;position:fixed;inset:0}.drawer.svelte-1u2o1qj{width:min(var(--drawer-width,32rem), 100vw);background:var(--color-bg);border-left:1px solid var(--color-border);z-index:201;flex-direction:column;animation:.2s cubic-bezier(.16,1,.3,1) svelte-1u2o1qj-drawer-in;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-8px 0 32px #0000002e}@keyframes svelte-1u2o1qj-drawer-in{0%{transform:translate(100%)}to{transform:translate(0)}}@media (prefers-reduced-motion:reduce){.drawer.svelte-1u2o1qj{animation:none}}.drawer-header.svelte-1u2o1qj{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);flex-shrink:0;display:flex}.drawer-title.svelte-1u2o1qj{min-width:0;font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--color-text);flex:1}.drawer-close.svelte-1u2o1qj{border-radius:var(--radius-md);width:36px;height:36px;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.drawer-close.svelte-1u2o1qj:hover{background:var(--color-surface-hover);color:var(--color-text)}.drawer-close.svelte-1u2o1qj:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.drawer-body.svelte-1u2o1qj{padding:var(--space-5);flex:1;overflow-y:auto}.drawer-footer.svelte-1u2o1qj{justify-content:flex-end;gap:var(--space-2);padding:var(--space-4) var(--space-5);border-top:1px solid var(--color-border);flex-shrink:0;display:flex}.settings-drawer.svelte-4kbm5j{gap:var(--space-6);flex-direction:column;display:flex}.field.svelte-4kbm5j{gap:var(--space-2);flex-direction:column;display:flex}.field-label.svelte-4kbm5j{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text)}.field-select.svelte-4kbm5j{width:100%;min-height:40px;padding:0 var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font:inherit}.field-select.svelte-4kbm5j:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.settings-links.svelte-4kbm5j{gap:var(--space-2);flex-direction:column;display:flex}.settings-link.svelte-4kbm5j{padding:var(--space-3) var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font-size:var(--text-sm);font-weight:var(--font-medium);text-decoration:none;display:block}.settings-link.svelte-4kbm5j:hover{background:var(--color-surface-hover);border-color:var(--color-border-hover)}.settings-link.svelte-4kbm5j:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.endpoint-list.svelte-dlw00e{flex-direction:column;gap:2px;display:flex}.list-error.svelte-dlw00e{margin:0 0 var(--space-2);padding:var(--space-2) var(--space-3);font-size:var(--text-sm);color:var(--color-danger)}.list-item.svelte-dlw00e{align-items:flex-start;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm,6px);cursor:pointer;text-align:left;font:inherit;color:var(--color-text);background:0 0;border:0;display:flex}.list-item.svelte-dlw00e:hover:not(:disabled),.list-item.svelte-dlw00e:focus-visible{background:var(--color-bg-tertiary)}.list-item.svelte-dlw00e:disabled{opacity:.6;cursor:progress}.list-item.active.svelte-dlw00e{box-shadow:inset 3px 0 0 var(--color-primary)}.list-item.active.svelte-dlw00e .item-label:where(.svelte-dlw00e){font-weight:600}.item-text.svelte-dlw00e{flex-direction:column;display:flex;overflow:hidden}.sr-only.svelte-dlw00e{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.item-label.svelte-dlw00e{font-weight:500;font-size:var(--text-sm)}.item-url.svelte-dlw00e{font-size:var(--text-xs);color:var(--color-text-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.divider.svelte-dlw00e{height:1px;margin:var(--space-2) 0;background:var(--color-border)}.list-item.link.svelte-dlw00e{color:var(--color-text);text-decoration:none}.list-item.link.svelte-dlw00e:hover,.list-item.link.svelte-dlw00e:focus-visible{text-decoration:underline}.trigger.svelte-48xr05{align-items:center;gap:var(--space-2);padding:0 var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md,8px);height:40px;font-size:var(--text-sm);color:var(--color-text);cursor:pointer;max-width:240px;display:inline-flex;overflow:hidden}.trigger.svelte-48xr05:hover:not(:disabled){background:var(--color-surface-hover)}.trigger.svelte-48xr05:disabled{opacity:.6;cursor:progress}.trigger-icon.svelte-48xr05{color:var(--color-text-secondary);flex-shrink:0}.dot.svelte-48xr05{background:var(--color-success,#16a34a);border-radius:50%;flex-shrink:0;width:8px;height:8px}.label.svelte-48xr05{text-overflow:ellipsis;white-space:nowrap;max-width:160px;overflow:hidden}.caret.svelte-48xr05{opacity:.6;font-size:10px}.session-body.svelte-1o6rxhb{flex-direction:column;gap:2px;min-height:0;display:flex}.list-item.svelte-1o6rxhb{align-items:flex-start;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm,6px);cursor:pointer;text-align:left;font:inherit;color:var(--color-text);background:0 0;border:0;display:flex}.list-item.svelte-1o6rxhb:hover:not(:disabled),.list-item.svelte-1o6rxhb:focus-visible{background:var(--color-bg-tertiary)}.list-item.svelte-1o6rxhb:disabled{opacity:.6;cursor:not-allowed}.list-item.active.svelte-1o6rxhb{box-shadow:inset 3px 0 0 var(--color-primary)}.list-item.active.svelte-1o6rxhb .item-label:where(.svelte-1o6rxhb){font-weight:600}.new-btn.svelte-1o6rxhb{background:var(--color-primary);color:#000;border-radius:var(--radius-md);margin:0 var(--space-1) var(--space-3);justify-content:center;font-weight:600}.new-btn.svelte-1o6rxhb:hover:not(:disabled){background:var(--color-primary-hover)}.new-btn.svelte-1o6rxhb:focus-visible{background:var(--color-primary);outline:2px solid var(--color-text);outline-offset:2px}.new-btn.svelte-1o6rxhb .check:where(.svelte-1o6rxhb),.new-btn.svelte-1o6rxhb .item-label:where(.svelte-1o6rxhb){color:#000}.check.svelte-1o6rxhb{text-align:center;flex-shrink:0;width:14px}.sr-only.svelte-1o6rxhb{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.item-text.svelte-1o6rxhb{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.item-label.svelte-1o6rxhb{font-weight:500;font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.item-meta.svelte-1o6rxhb{font-size:var(--text-xs);color:var(--color-text-secondary)}.divider.svelte-1o6rxhb{height:1px;margin:var(--space-2) 0;background:var(--color-border)}.session-list.svelte-1o6rxhb{min-height:0;overflow-y:auto}.empty.svelte-1o6rxhb,.list-error.svelte-1o6rxhb{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);font-size:var(--text-sm);color:var(--color-text-secondary);display:flex}.list-error.svelte-1o6rxhb{color:var(--color-danger)}.list-error.svelte-1o6rxhb span:where(.svelte-1o6rxhb):first-child{flex:1}.retry-btn.svelte-1o6rxhb{font-size:var(--text-xs);border:1px solid var(--color-danger);border-radius:var(--radius-full);color:var(--color-danger);cursor:pointer;background:0 0;padding:2px 8px}.retry-btn.svelte-1o6rxhb:hover{background:var(--color-danger);color:var(--color-text-inverse)}.notice.svelte-1o6rxhb{margin:0 0 var(--space-2);padding:var(--space-2) var(--space-3);font-size:var(--text-xs);color:var(--color-text-secondary);background:var(--color-bg-tertiary);border-radius:var(--radius-sm,6px)}.show-all.svelte-1o6rxhb{width:100%;padding:var(--space-2) var(--space-3);color:var(--color-text);font:inherit;font-size:var(--text-xs);text-align:left;cursor:pointer;border-radius:var(--radius-sm,6px);background:0 0;border:0;font-weight:500}.show-all.svelte-1o6rxhb:hover{background:var(--color-bg-tertiary)}.show-all.svelte-1o6rxhb:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.trigger.svelte-cihcnl{align-items:center;gap:var(--space-2);padding:0 var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md,8px);height:40px;font-size:var(--text-sm);color:var(--color-text);cursor:pointer;max-width:240px;display:inline-flex;overflow:hidden}.trigger.svelte-cihcnl:hover{background:var(--color-surface-hover)}.trigger-icon.svelte-cihcnl{color:var(--color-text-secondary);flex-shrink:0}.dot.svelte-cihcnl{background:var(--color-text-tertiary);border-radius:50%;flex-shrink:0;width:6px;height:6px;transition:background .12s}.dot.connected.svelte-cihcnl{background:var(--color-success,#16a34a)}.label.svelte-cihcnl{text-overflow:ellipsis;white-space:nowrap;max-width:160px;overflow:hidden}.caret.svelte-cihcnl{opacity:.6;font-size:10px}.voice-control.svelte-7elv0w{align-items:center;gap:var(--space-2);display:flex}.voice-interim.svelte-7elv0w{max-width:200px;font-size:var(--text-xs);color:var(--color-text-secondary);white-space:nowrap;text-overflow:ellipsis;padding:2px var(--space-2);background:var(--color-surface-hover);border-radius:var(--radius-sm);border:1px solid var(--color-border);flex-shrink:1;min-width:0;overflow:hidden}.voice-autoplay-banner.svelte-7elv0w{align-items:center;gap:var(--space-2);padding:4px var(--space-3);background:var(--color-primary-subtle);border:1px solid var(--color-primary);border-radius:var(--radius-md);height:32px;color:var(--color-primary);font-size:var(--text-xs);font-weight:var(--font-medium);cursor:pointer;white-space:nowrap;transition:filter var(--transition-fast);display:inline-flex}.voice-autoplay-banner.svelte-7elv0w:hover{filter:brightness(1.05)}.voice-autoplay-banner.svelte-7elv0w:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.voice-btn.svelte-7elv0w{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);width:40px;height:40px;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative}.voice-btn.svelte-7elv0w:hover{color:var(--color-text);border-color:var(--color-border-hover);background:var(--color-surface-hover)}.voice-btn.svelte-7elv0w:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.voice-btn-active.svelte-7elv0w{color:var(--color-danger);border-color:var(--color-danger);background:var(--color-danger-bg)}.voice-btn-active.svelte-7elv0w:hover{color:var(--color-danger);border-color:var(--color-danger)}.voice-btn-on.svelte-7elv0w{color:var(--color-primary);border-color:var(--color-primary);background:var(--color-primary-subtle)}.voice-btn-on.svelte-7elv0w:hover{color:var(--color-primary);border-color:var(--color-primary)}.voice-btn-speaking.svelte-7elv0w{background:var(--color-primary-subtle);box-shadow:0 0 0 2px var(--color-primary-subtle)}.voice-btn-processing.svelte-7elv0w{color:var(--color-text-tertiary);cursor:not-allowed}.voice-btn-disabled.svelte-7elv0w,.voice-btn.svelte-7elv0w:disabled{color:var(--color-text-tertiary);background:var(--color-bg);cursor:not-allowed;opacity:.7}.voice-btn-disabled.svelte-7elv0w:hover{color:var(--color-text-tertiary);border-color:var(--color-border);background:var(--color-bg)}.voice-pulse.svelte-7elv0w{border:2px solid var(--color-danger);border-radius:var(--radius-md);opacity:0;pointer-events:none;animation:1.5s ease-out infinite svelte-7elv0w-voice-pulse-anim;position:absolute;inset:-3px}.voice-spinner.svelte-7elv0w{border:2px solid;border-right-color:#0000;border-radius:50%;width:14px;height:14px;animation:.7s linear infinite svelte-7elv0w-voice-spinner-anim;display:inline-block}@keyframes svelte-7elv0w-voice-spinner-anim{to{transform:rotate(360deg)}}.wave-anim.svelte-7elv0w{transform-origin:11px 12px;animation:1.2s ease-in-out infinite svelte-7elv0w-wave-pulse-anim}.wave-anim-2.svelte-7elv0w{transform-origin:11px 12px;animation:1.2s ease-in-out .3s infinite svelte-7elv0w-wave-pulse-anim}@keyframes svelte-7elv0w-wave-pulse-anim{0%,to{opacity:.4}50%{opacity:1}}@keyframes svelte-7elv0w-voice-pulse-anim{0%{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(1.3)}}@media (prefers-reduced-motion:reduce){.voice-pulse.svelte-7elv0w,.voice-spinner.svelte-7elv0w,.wave-anim.svelte-7elv0w,.wave-anim-2.svelte-7elv0w{animation:none}.voice-pulse.svelte-7elv0w{opacity:.4}}.sr-only.svelte-7elv0w{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.navbar.svelte-66bgq1{z-index:50;background:var(--color-navbar-bg);border-bottom:1px solid var(--color-border);position:sticky;top:0}.navbar.svelte-66bgq1:before{content:"";z-index:-1;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);pointer-events:none;position:absolute;inset:0}.navbar-inner.svelte-66bgq1{width:100%;padding:0 var(--space-4);height:var(--nav-height);align-items:center;gap:var(--space-3);display:flex}.navbar-brand.svelte-66bgq1{align-items:center;gap:var(--space-2);border-radius:var(--radius-sm);flex-shrink:0;text-decoration:none;display:flex}.navbar-brand.svelte-66bgq1:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.brand-icon.svelte-66bgq1{flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.brand-icon.svelte-66bgq1 img:where(.svelte-66bgq1){max-width:34px;display:block}.brand-text.svelte-66bgq1{font-size:var(--text-lg);font-weight:var(--font-bold);color:var(--color-text);letter-spacing:-.01em;white-space:nowrap}.navbar-actions.svelte-66bgq1{align-items:center;gap:var(--space-2);min-width:0;margin-left:auto;display:flex}.navbar-actions.svelte-66bgq1 .switcher,.navbar-actions.svelte-66bgq1 .trigger{min-width:0}.chat-selectors.svelte-66bgq1{align-items:center;gap:var(--space-2);display:inline-flex}@media (width>=1024px){.chat-selectors.svelte-66bgq1{display:none}}@media (width<=900px){.navbar-actions.svelte-66bgq1 .trigger .label{display:none}}@media (width<=480px){.brand-text.svelte-66bgq1{display:none}.navbar-inner.svelte-66bgq1{padding:0 var(--space-3);gap:var(--space-2)}.navbar-actions.svelte-66bgq1 .trigger .caret{display:none}}@media (width<=400px){.navbar-inner.svelte-66bgq1{padding:0 var(--space-2);gap:var(--space-1)}.navbar-actions.svelte-66bgq1{gap:var(--space-1)}.navbar-actions.svelte-66bgq1 .trigger{padding-left:var(--space-2);padding-right:var(--space-2)}}
@@ -1 +0,0 @@
1
- import"./sgaXYa0m.js";
@@ -1,2 +0,0 @@
1
-
2
- �import"./sgaXYa0m.js";
@@ -1 +0,0 @@
1
- import{B as e,et as t,nt as n,tt as r}from"./BBI__kVO.js";var i=[`audio/webm;codecs=opus`,`audio/webm`];function a(){let e=globalThis.MediaRecorder;if(!(!e||typeof e.isTypeSupported!=`function`)){for(let t of i)if(e.isTypeSupported(t))return t}}async function o(){if(typeof window>`u`)throw Error(`Recording is only available in the browser.`);if(typeof MediaRecorder>`u`||!navigator?.mediaDevices?.getUserMedia)throw Error(`Recording is not supported in this browser.`);let e;try{e=await navigator.mediaDevices.getUserMedia({audio:!0})}catch(e){let t=e?.name??``;throw Error(t===`NotAllowedError`||t===`SecurityError`?`Microphone access denied. Open System Settings → Privacy & Security → Microphone and enable OpenPalm, then restart the app.`:t===`NotFoundError`||t===`OverconstrainedError`?`No microphone was found. Plug in a microphone and try again.`:`Microphone error: ${e?.message??String(e)}`)}let t=a(),n=t?new MediaRecorder(e,{mimeType:t}):new MediaRecorder(e),r=[];n.addEventListener(`dataavailable`,e=>{let t=e.data;t&&t.size>0&&r.push(t)});let i=!1,o=!1,s=null,c=null;function l(){for(let t of e.getTracks())try{t.stop()}catch{}}return n.addEventListener(`stop`,()=>{if(l(),o)return;let e=new Blob(r,{type:n.mimeType||t||`audio/webm`});s?.(e)}),n.addEventListener(`error`,e=>{l();let t=e?.error??Error(`Recorder error`);c?.(t)}),n.start(),{stop(){return i?Promise.reject(Error(`Recorder already stopped`)):(i=!0,new Promise((e,t)=>{s=e,c=t;try{n.state!==`inactive`&&n.stop()}catch(e){l(),t(e)}}))},cancel(){if(!i){i=!0,o=!0;try{n.state!==`inactive`&&n.stop()}catch{}l()}}}}function s(e){if(typeof e==`string`)return e;if(e==null)return``;if(typeof e==`number`||typeof e==`boolean`)return String(e);try{return JSON.stringify(e)}catch{return``}}function c(...e){for(let t of e){let e=s(t);if(e)return e}return``}function l(e,t){if(e.type!==`tool`&&!e.state)return null;let n=e.state?.status??`running`;return{id:e.callID??e.id??t,kind:`tool`,tool:e.tool??`tool`,status:n,title:e.state?.title??e.tool??`tool`,detail:c(e.state?.input,e.state?.metadata,e.state?.progress,e.state?.output),output:s(e.state?.output),error:e.state?.error??``,updatedAt:Date.now()}}var ee=``;function u(){return{"x-request-id":crypto.randomUUID(),"x-requested-by":`ui`}}async function d(e,t,n){let r={...n===void 0?{}:{"content-type":`application/json`},...u()};return fetch(`${ee}${t}`,{method:e,headers:r,credentials:`include`,...n===void 0?{}:{body:JSON.stringify(n)}})}async function f(e,t=`Request failed (HTTP ${e.status})`){if((e.headers.get(`content-type`)??``).includes(`application/json`)){let t=await e.clone().json().catch(e=>(console.warn(`[api] Failed to parse JSON error response:`,e),null));if(t&&typeof t.message==`string`&&t.message.length>0)return t.message;if(t&&typeof t.error==`string`&&t.error.length>0)return t.error}return await e.text().catch(e=>(console.warn(`[api] Failed to read error response text:`,e),``))||t}async function p(e,t){if(e.status===401)throw Object.assign(Error(`Sign-in required.`),{status:401});if(!e.ok)throw Error(await f(e,t));return e}async function te(){let[e,t]=await Promise.all([d(`GET`,`/health`),d(`GET`,`/guardian/health`).catch(e=>(console.warn(`[api] Guardian health check failed:`,e),null))]),n=await e.json(),r=null;if(t)try{r=await t.json()}catch(e){console.warn(`[api] Failed to parse guardian health response:`,e),r={status:`unavailable`,service:`guardian`}}return{admin:n,guardian:r}}async function ne(){return await(await p(await d(`GET`,`/admin/containers/list`))).json()}async function re(e,t){await p(await d(`POST`,{start:`/admin/containers/up`,stop:`/admin/containers/down`,restart:`/admin/containers/restart`}[e],{service:t}))}async function ie(){let e=await d(`POST`,`/admin/update`,{});if(e.status===401)throw Object.assign(Error(`Sign-in required.`),{status:401});if(!(e.headers.get(`content-type`)??``).includes(`application/json`))throw Error(await f(e,`Apply failed (HTTP ${e.status})`));return await e.json()}async function m(){return await(await p(await d(`POST`,`/admin/upgrade`,{}))).json()}async function ae(){return await(await p(await d(`GET`,`/admin/versions`))).json()}async function oe(){try{let e=await d(`GET`,`/admin/versions/releases`);return e.ok?await e.json():{releases:[]}}catch{return{releases:[]}}}async function se(){try{let e=await d(`GET`,`/admin/versions/ui`);return e.ok?await e.json():{versions:[]}}catch{return{versions:[]}}}var h=class extends Error{code=`downgrade_confirmation_required`;currentVersion;targetVersion;constructor(e,t,n){super(e),this.name=`DowngradeConfirmationRequiredError`,this.currentVersion=t,this.targetVersion=n}};async function ce(e,t={}){let n=await d(`PATCH`,`/admin/stack-version`,{tag:e,...t.confirmDowngrade?{confirmDowngrade:!0}:{}});if(n.status===409){let t={};try{t=await n.clone().json()}catch{}if(t.error===`downgrade_confirmation_required`)throw new h(t.message??`This is a downgrade and requires confirmation.`,t.details?.currentVersion??``,t.details?.targetVersion??e)}return await p(n),await n.json()}async function le(e){return await(await p(await d(`POST`,`/admin/migrate-preview`,{tag:e}))).json()}async function ue(){return await(await p(await d(`GET`,`/admin/backups`))).json()}async function de(e){return await(await p(await d(`POST`,`/admin/backups`,{keep:e}))).json()}async function fe(){return await(await p(await d(`GET`,`/admin/secret-notice`))).json()}async function pe(){return await(await p(await d(`DELETE`,`/admin/secret-notice`))).json()}async function me(){return await(await p(await d(`GET`,`/admin/unlock`))).json()}async function he(){return await(await p(await d(`POST`,`/admin/unlock`))).json()}async function ge(e){return await(await p(await d(`POST`,`/admin/ui-version`,{tag:e}))).json()}async function _e(){return await(await p(await d(`GET`,`/admin/automations`))).json()}async function ve(e){let t=new URLSearchParams;e?.service&&t.set(`service`,e.service),e?.tail&&t.set(`tail`,String(e.tail)),e?.since&&t.set(`since`,e.since);let n=t.toString();return await(await p(await d(`GET`,`/admin/logs${n?`?${n}`:``}`))).json()}async function ye(){return(await(await p(await d(`GET`,`/admin/addons`))).json()).addons}async function be(e,t,n){let r={enabled:t};return n&&(r.env=n),await(await p(await d(`POST`,`/admin/addons/${encodeURIComponent(e)}`,r))).json()}async function xe(e){return(await(await p(await d(`GET`,`/admin/addons/${encodeURIComponent(e)}/credentials`))).json()).fields}async function Se(e,t){return await(await p(await d(`POST`,`/admin/addons/${encodeURIComponent(e)}/credentials`,{values:t}))).json()}async function g(){return await(await p(await d(`GET`,`/admin/secrets`))).json()}async function _(e){return await(await p(await d(`GET`,`/admin/secrets/${encodeURIComponent(e)}`))).json()}async function v(e,t){return await(await p(await d(`PUT`,`/admin/secrets/${encodeURIComponent(e)}`,{value:t}))).json()}async function y(e){return await(await p(await d(`DELETE`,`/admin/secrets/${encodeURIComponent(e)}`))).json()}async function b(e){return await(await p(await d(`GET`,`/admin/automations/${encodeURIComponent(e)}/file`))).json()}async function x(e,t){return await(await p(await d(`PUT`,`/admin/automations/${encodeURIComponent(e)}/file`,{content:t}))).json()}async function S(e){return await(await p(await d(`DELETE`,`/admin/automations/${encodeURIComponent(e)}/file`))).json()}async function C(){return await(await p(await d(`GET`,`/admin/voice`))).json()}async function w(e){let t=await d(`PUT`,`/admin/voice`,e);if(t.status===401)throw Object.assign(Error(`Invalid password.`),{status:401});if(t.status===200||t.status===202||t.status===502)return{...await t.json(),status:t.status};throw Error(await f(t))}async function T(e,t){let n=new FormData;n.append(`audio`,e,`recording.webm`),t?.language&&n.append(`language`,t.language),t?.prompt&&n.append(`prompt`,t.prompt);let r=await(await p(await fetch(`/api/transcribe`,{method:`POST`,headers:u(),credentials:`include`,body:n}))).json();return typeof r.text==`string`?r.text:``}async function E(){return await(await p(await d(`GET`,`/admin/akm`))).json()}async function D(e){return await(await p(await d(`PATCH`,`/admin/akm`,e))).json()}async function O(){return await(await p(await d(`POST`,`/admin/akm/embedding/detect`,{}))).json()}async function k(e){return await(await p(await d(`POST`,`/admin/akm/embedding/test`,e))).json()}async function A(){return await(await p(await d(`POST`,`/admin/akm/reindex`,{}))).json()}async function j(){return await(await p(await d(`GET`,`/admin/assistant`))).json()}async function Ce(e){return await(await p(await d(`PUT`,`/admin/assistant`,e))).json()}async function we(){return await(await p(await d(`GET`,`/admin/akm/health`))).json()}async function Te(){return await(await p(await d(`GET`,`/admin/akm/stats`))).json()}async function Ee(){return await(await p(await d(`GET`,`/admin/akm/host-sharing`))).json()}async function De(e={}){return await(await p(await d(`PUT`,`/admin/akm/host-sharing`,e))).json()}async function Oe(){return await(await p(await d(`DELETE`,`/admin/akm/host-sharing`))).json()}async function ke(){await p(await d(`POST`,`/admin/containers/pull`,{}))}async function Ae(){return await(await p(await d(`GET`,`/admin/endpoints`))).json()}async function je(e){return await(await p(await d(`POST`,`/admin/endpoints`,e))).json()}async function Me(e,t){return await(await p(await d(`PATCH`,`/admin/endpoints/${encodeURIComponent(e)}`,t))).json()}async function Ne(e){await p(await d(`DELETE`,`/admin/endpoints/${encodeURIComponent(e)}`))}async function Pe(e){return await(await p(await d(`POST`,`/admin/endpoints/active`,{id:e}))).json()}async function Fe(){return await(await p(await d(`POST`,`/proxy/assistant/session`,{}))).json()}async function M(){let e=(await(await p(await d(`GET`,`/proxy/assistant/session`))).json()).map(e=>({id:e.id,title:e.title??``,createdAt:e.time?.created??0,updatedAt:e.time?.updated??e.time?.created??0}));return e.sort((e,t)=>t.updatedAt-e.updatedAt),e}async function Ie(e){let t=await(await p(await d(`GET`,`/proxy/assistant/session/${encodeURIComponent(e)}/message`))).json(),n=[];for(let e of t){let t=e.info.time?.created??Date.now(),r=``,i=0,a=[];e.parts.forEach((t,n)=>{if(t.type===`text`&&t.text){r+=t.text;return}if(t.type===`tool`||t.state){let r=l(t,`${e.info.id}:${n}`);if(!r)return;a.push(r)}}),(()=>{let o=r.trim();if(r=``,!(!o&&a.length===0)){if(o){let r={id:i===0?e.info.id:`${e.info.id}:text:${i}`,role:e.info.role,text:o,timestamp:t};a.length>0&&(r.toolStates=[...a],a.length=0),n.push(r),i+=1}else if(a.length>0){let r={id:`${e.info.id}:tools:${i}`,type:`tool-group`,toolStates:[...a],timestamp:t};a.length=0,n.push(r),i+=1}}})()}return n}async function Le(e,t){let n=await fetch(`/proxy/assistant/session/${encodeURIComponent(e)}/message`,{method:`POST`,headers:{"content-type":`application/json`,...u()},credentials:`include`,body:JSON.stringify({parts:[{type:`text`,text:t}]}),signal:AbortSignal.timeout(15e4)});if(n.status===401)throw Object.assign(Error(`Sign-in required.`),{status:401});if(!n.ok){let e=await f(n);throw Object.assign(Error(e),{status:n.status})}return await n.json()}async function Re(e,t){let n=await fetch(`/proxy/assistant/session/${encodeURIComponent(e)}/message`,{method:`POST`,headers:{"content-type":`application/json`,...u()},credentials:`include`,body:JSON.stringify({parts:[{type:`text`,text:t}]}),signal:AbortSignal.timeout(15e4)});if(n.status===401)throw Object.assign(Error(`Sign-in required.`),{status:401});if(!n.ok){let e=await f(n);throw Object.assign(Error(e),{status:n.status})}}async function ze(e,t){await(await p(await d(`POST`,`/proxy/assistant/permission/${encodeURIComponent(e)}/reply`,{reply:t}))).text().catch(()=>``)}async function Be(e,t){await(await p(await d(`POST`,`/proxy/assistant/question/${encodeURIComponent(e)}/reply`,{answers:t}))).text().catch(()=>``)}async function Ve(e){await(await p(await d(`POST`,`/proxy/assistant/question/${encodeURIComponent(e)}/reject`,{}))).text().catch(()=>``)}async function He(){try{return(await fetch(`/proxy/assistant/provider`,{method:`GET`,headers:u(),credentials:`include`,signal:AbortSignal.timeout(3e3)})).ok}catch{return!1}}var Ue={info:4e3,success:5e3,error:8e3},N=new class{#e=n(t([]));get toasts(){return e(this.#e)}set toasts(e){r(this.#e,e,!0)}timers=new Map;push(e,t,n={}){let r=n.replaceId??(typeof crypto<`u`&&`randomUUID`in crypto?crypto.randomUUID():`t-${Date.now()}-${Math.random().toString(36).slice(2)}`),i=n.sticky?null:n.ttlMs??Ue[e],a={id:r,kind:e,message:t,ttlMs:i},o=this.timers.get(r);o&&(clearTimeout(o),this.timers.delete(r));let s=this.toasts.findIndex(e=>e.id===r);if(s>=0){let e=[...this.toasts];e[s]=a,this.toasts=e}else this.toasts=[...this.toasts,a];if(i!==null){let e=setTimeout(()=>this.dismiss(r),i);this.timers.set(r,e)}return r}dismiss(e){let t=this.timers.get(e);t&&(clearTimeout(t),this.timers.delete(e)),this.toasts=this.toasts.filter(t=>t.id!==e)}clear(){for(let e of this.timers.values())clearTimeout(e);this.timers.clear(),this.toasts=[]}},We=6e4,P=new class{#e=n(`idle`);get status(){return e(this.#e)}set status(e){r(this.#e,e,!0)}#t=n(!1);get sttSupported(){return e(this.#t)}set sttSupported(e){r(this.#t,e,!0)}#n=n(!1);get ttsSupported(){return e(this.#n)}set ttsSupported(e){r(this.#n,e,!0)}#r=n(``);get errorMessage(){return e(this.#r)}set errorMessage(e){r(this.#r,e,!0)}#i=n(``);get interimTranscript(){return e(this.#i)}set interimTranscript(e){r(this.#i,e,!0)}#a=n(`disabled`);get sttEngine(){return e(this.#a)}set sttEngine(e){r(this.#a,e,!0)}#o=n(`disabled`);get ttsEngine(){return e(this.#o)}set ttsEngine(e){r(this.#o,e,!0)}#s=n(``);get sttLanguage(){return e(this.#s)}set sttLanguage(e){r(this.#s,e,!0)}#c=n(!1);get ttsAutoEnabled(){return e(this.#c)}set ttsAutoEnabled(e){r(this.#c,e,!0)}#l=n(!1);get autoplayBlocked(){return e(this.#l)}set autoplayBlocked(e){r(this.#l,e,!0)}#u=n(``);get browserSttUnsupportedReason(){return e(this.#u)}set browserSttUnsupportedReason(e){r(this.#u,e,!0)}},F=`openpalm.tts.auto`,I=null,L=null,R=null,z=null;function Ge(e){let t=P.ttsAutoEnabled;if(P.ttsAutoEnabled=e,typeof window<`u`)try{window.localStorage.setItem(F,e?`1`:`0`)}catch{}if(!e){Q();return}t||Ke()}function Ke(){if(typeof window>`u`)return;let e=window.AudioContext??window.webkitAudioContext;if(e)try{let t=new e,n=t.createBuffer(1,1,22050),r=t.createBufferSource();r.buffer=n,r.connect(t.destination),r.start(0),setTimeout(()=>{t.close().catch(()=>{})},100)}catch{}}function B(){if(!(typeof window>`u`))return window.SpeechRecognition??window.webkitSpeechRecognition??void 0}function qe(){if(typeof navigator>`u`)return!1;let e=navigator.userAgent??``,t=/iPad|iPhone|iPod/.test(e),n=window.MSStream;return t&&!n}function Je(){return!(typeof window>`u`||typeof MediaRecorder>`u`||!navigator?.mediaDevices?.getUserMedia)}function Ye(e){switch(e){case`browser`:return P.browserSttUnsupportedReason?!1:!!B();case`remote`:case`openpalm-voice`:return Je();default:return!1}}function V(e){return e===`browser`||e===`browser-stt`?`browser`:e===`openpalm-voice`?`openpalm-voice`:e&&!e.startsWith(`skip-`)?`remote`:`disabled`}async function Xe(){let e=typeof window<`u`&&`speechSynthesis`in window;if(typeof window<`u`)try{P.ttsAutoEnabled=window.localStorage.getItem(F)===`1`}catch{}try{let e=await C(),t=e.stt??{},n=e.tts??{},r=typeof t.engine==`string`?t.engine:``,i=typeof n.engine==`string`?n.engine:``;P.sttLanguage=typeof t.language==`string`?t.language:``,P.sttEngine=V(r),P.ttsEngine=V(i)}catch{P.sttEngine=`disabled`,P.ttsEngine=`disabled`}P.ttsSupported=P.ttsEngine===`openpalm-voice`||P.ttsEngine===`remote`||P.ttsEngine===`browser`&&e,qe()&&B()?(P.browserSttUnsupportedReason=`iOS Safari does not support Web Speech recognition`,P.sttEngine===`browser`&&(P.sttEngine=`disabled`)):P.browserSttUnsupportedReason=``,P.sttEngine===`disabled`&&B()&&!P.browserSttUnsupportedReason&&(P.sttEngine=`browser`),P.sttSupported=Ye(P.sttEngine)}function Ze(e){if(!(P.status===`recording`||P.status===`transcribing`)){if(!P.sttSupported||P.sttEngine===`disabled`){P.errorMessage=`Speech recognition is not available.`;return}if(P.errorMessage=``,z=e,P.sttEngine===`browser`){Qe(e);return}$e()}}function Qe(e){let t=B();if(!t){P.errorMessage=`Speech recognition is not supported in this browser.`;return}let n=new t;L=n,n.lang=P.sttLanguage||navigator?.language||`en-US`,n.interimResults=!0,n.maxAlternatives=1,n.continuous=!1;let r=``;n.onresult=e=>{let t=``;for(let n=e.resultIndex;n<e.results.length;n++){let i=e.results[n];i.isFinal?r+=i[0]?.transcript??``:t+=i[0]?.transcript??``}P.interimTranscript=r+t},n.onerror=e=>{if(L!==n)return;let t=e.error??``;t===`no-speech`||t===`aborted`||(t===`not-allowed`?P.errorMessage=`Microphone access denied.`:P.errorMessage=`Speech error: ${t}`),P.interimTranscript=``,P.status=`idle`,L=null,z=null},n.onend=()=>{L===n&&(r.trim()&&e&&e(r.trim()),P.interimTranscript=``,P.status=`idle`,L=null,z=null)};try{n.start(),P.status=`recording`}catch{P.errorMessage=`Failed to start speech recognition.`,P.status=`idle`,L=null,z=null}}async function $e(){let e;try{e=await o()}catch(e){P.errorMessage=e instanceof Error?e.message:`Failed to start recording.`,P.status=`idle`,z=null;return}I=e,P.status=`recording`,R=setTimeout(()=>{H()},We)}async function H(){let e=I,t=z;if(!e)return;I=null,z=null,R&&=(clearTimeout(R),null),P.status=`transcribing`;let n;try{n=await e.stop()}catch(e){P.errorMessage=e instanceof Error?e.message:`Recording failed.`,P.status=`idle`;return}if(n.size===0){P.status=`idle`;return}try{let e=(await T(n,{language:P.sttLanguage||void 0})).trim();e&&t&&t(e)}catch(e){P.errorMessage=e instanceof Error?e.message:`Transcription failed.`}finally{P.status=`idle`}}function et(){if(L){try{L.stop()}catch{}return}I&&H()}var U=null,W=null,tt=3,G=[],K=!1,q=null,J=null;function Y(){if(U){U.onerror=null,U.onended=null;try{U.pause()}catch{}U.src=``,U=null}W&&=(URL.revokeObjectURL(W),null)}function X(){if(q){q.onerror=null,q.onended=null;try{q.pause()}catch{}q.src=``,q=null}J&&=(URL.revokeObjectURL(J),null),P.autoplayBlocked=!1}function nt(){let e=q;if(!e){P.autoplayBlocked=!1;return}P.autoplayBlocked=!1,P.errorMessage=``,P.status=`speaking`,U=e,W=J,q=null,J=null,e.play().catch(()=>{P.status=`idle`,P.errorMessage=`Audio playback failed.`,Y()})}async function rt(e,t){if(!(typeof window>`u`||!e.trim())){if(P.status===`speaking`){G.push({text:e,options:t});let n=0;for(;G.length>tt;)G.shift(),n+=1;n>0&&!K&&(K=!0,N.push(`info`,`Skipped ${n} spoken ${n===1?`reply`:`replies`} — too much overlap. Lower the auto-speak chat rate.`));return}await Z(e,t)}}async function Z(e,t){if(typeof window>`u`||!e.trim())return;X(),Y(),`speechSynthesis`in window&&window.speechSynthesis.cancel(),P.errorMessage=``;let n=P.ttsEngine,r=n===`openpalm-voice`||n===`remote`;if(r){let n;try{n=await fetch(`/api/speak`,{method:`POST`,headers:{"content-type":`application/json`},credentials:`include`,body:JSON.stringify({text:e,...t?.mode&&t.mode!==`plain`?{mode:t.mode}:{},...t?.userText?{userText:t.userText}:{},...t?.assistantText?{assistantText:t.assistantText}:{}})})}catch{}if(n&&n.ok&&n.headers.get(`content-type`)?.startsWith(`audio/`)){let e=await n.blob(),t=URL.createObjectURL(e),r=new Audio(t);U=r,W=t,r.onended=()=>{P.status=`idle`,Y();let e=G.shift();e?Z(e.text,e.options):K=!1},r.onerror=()=>{P.status=`idle`,P.errorMessage=`Audio playback failed.`,Y();let e=G.shift();e?Z(e.text,e.options):K=!1},P.status=`speaking`;try{await r.play()}catch{P.status=`idle`,q=r,J=t,U=null,W=null,P.autoplayBlocked=!0}return}n&&!n.ok&&(P.errorMessage=await it(n))}if(!(`speechSynthesis`in window))return;r&&(P.errorMessage=``);let i=new SpeechSynthesisUtterance(e);i.onstart=()=>{P.status=`speaking`},i.onend=()=>{P.status=`idle`;let e=G.shift();e?Z(e.text,e.options):K=!1},i.onerror=()=>{P.status=`idle`;let e=G.shift();e?Z(e.text,e.options):K=!1},window.speechSynthesis.speak(i)}async function it(e){let t;try{let n=await e.clone().json();typeof n.error==`string`&&(t=n.error)}catch{}return t===`tts_not_configured`?`TTS is not configured.`:t===`upstream_error`||e.status===502||e.status===503?`Voice engine is warming up — try again in a moment.`:`TTS failed (HTTP ${e.status}).`}function Q(){G.length=0,K=!1,X(),Y(),typeof window<`u`&&`speechSynthesis`in window&&window.speechSynthesis.cancel(),P.status=`idle`}function at(){if(R&&=(clearTimeout(R),null),I){try{I.cancel()}catch{}I=null}if(L){try{L.stop()}catch{}L=null}z=null,P.interimTranscript=``,P.status=`idle`}var $=`openpalm.theme`,ot=`data-theme`,st=`#161c22`,ct=`#f9fafb`;function lt(e){return e===`light`||e===`dark`||e===`system`}var ut=new class{#e=n(`system`);get preference(){return e(this.#e)}set preference(e){r(this.#e,e,!0)}#t=n(`light`);get resolved(){return e(this.#t)}set resolved(e){r(this.#t,e,!0)}#n=n(!1);get initialized(){return e(this.#n)}set initialized(e){r(this.#n,e,!0)}#r=null;#i=()=>{this.preference===`system`&&(this.resolved=this.#s(`system`),this.#l())};init(){typeof window>`u`||this.initialized||(this.preference=this.#a(),this.resolved=this.#s(this.preference),this.#c(),this.#l(),this.initialized=!0)}setPreference(e){this.preference=e,this.resolved=this.#s(e),this.#o(e),this.#l()}toggle(){this.setPreference(this.resolved===`dark`?`light`:`dark`)}dispose(){this.#r&&(typeof this.#r.removeEventListener==`function`?this.#r.removeEventListener(`change`,this.#i):this.#r.removeListener(this.#i)),this.#r=null,this.initialized=!1}#a(){if(typeof window>`u`)return`system`;try{let e=window.localStorage.getItem($);return lt(e)?e:`system`}catch{return`system`}}#o(e){if(!(typeof window>`u`))try{window.localStorage.setItem($,e)}catch{}}#s(e){return e===`light`||e===`dark`?e:typeof window>`u`||typeof window.matchMedia!=`function`?`light`:window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`}#c(){if(typeof window>`u`||typeof window.matchMedia!=`function`)return;let e=window.matchMedia(`(prefers-color-scheme: dark)`);this.#r!==e&&(this.#r&&(typeof this.#r.removeEventListener==`function`?this.#r.removeEventListener(`change`,this.#i):this.#r.removeListener(this.#i)),this.#r=e,typeof e.addEventListener==`function`?e.addEventListener(`change`,this.#i):e.addListener(this.#i))}#l(){if(typeof document>`u`)return;let e=document.documentElement;e.setAttribute(ot,this.resolved),e.style.colorScheme=this.resolved;let t=document.querySelector(`meta[name="theme-color"]`);t&&(t.content=this.resolved===`dark`?st:ct);let n=document.querySelector(`meta[name="color-scheme"]`);n&&(n.content=this.resolved)}};export{de as $,we as A,oe as B,Oe as C,xe as D,De as E,ne as F,b as G,g as H,Ae as I,C as J,se as K,te as L,j as M,_e as N,ye as O,ue as P,He as Q,Ee as R,O as S,ge as T,fe as U,_ as V,ve as W,M as X,Ie as Y,le as Z,je as _,Me as _t,Ge as a,Se as at,y as b,et as c,v as ct,N as d,Le as dt,ke as et,h as f,Pe as ft,re as g,be as gt,he as h,k as ht,nt as i,Be as it,Te as j,E as k,Q as l,x as lt,u as m,Re as mt,at as n,Ve as nt,rt as o,D as ot,ie as p,ce as pt,ae as q,Xe as r,ze as rt,Ze as s,Ce as st,ut as t,A as tt,P as u,w as ut,Fe as v,m as vt,pe as w,S as x,Ne as y,me as z};
@@ -1 +0,0 @@
1
- import{c as e,r as t}from"../chunks/sgaXYa0m.js";export{e as load_css,t as start};
@@ -1,3 +0,0 @@
1
- w�D�׻q"�����G7��=�<�7�I��(NmYY�ΤW��lK��E���s���9�7$�\P�5:�ӛ6G,��b#|�k����Ei���W)I��FQ�\=F�-&}�W�[vw���ܽ�"�.-9L����3�B��11��v��
2
- ��/����[�'kF����ce�i�WڣKkN{��a���q b���h���[�8���q戌>�1� N���j
3
- /�1��