@agimon-ai/po-web-components 0.0.0-alpha.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 (737) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +165 -0
  3. package/dist/_virtual/_rolldown/runtime.cjs +1 -0
  4. package/dist/_virtual/_rolldown/runtime.mjs +1 -0
  5. package/dist/index.cjs +1 -0
  6. package/dist/index.d.mts +69 -0
  7. package/dist/index.mjs +1 -0
  8. package/dist/mcpWidget.cjs +1 -0
  9. package/dist/mcpWidget.d.mts +3 -0
  10. package/dist/mcpWidget.mjs +1 -0
  11. package/dist/nativeTheme.cjs +1 -0
  12. package/dist/nativeTheme.d.mts +3 -0
  13. package/dist/nativeTheme.mjs +1 -0
  14. package/dist/node_modules/.pnpm/@modelcontextprotocol_server@2.2.0/node_modules/@modelcontextprotocol/server/dist/createMcpHandler-CfX6zgs1.d.mts +27 -0
  15. package/dist/node_modules/.pnpm/@modelcontextprotocol_server@2.2.0/node_modules/@modelcontextprotocol/server/dist/createMcpHandler-CfX6zgs1.d.mts.map +1 -0
  16. package/dist/node_modules/.pnpm/@modelcontextprotocol_server@2.2.0/node_modules/@modelcontextprotocol/server/dist/index.d.mts +2 -0
  17. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/classic/coerce.d.mts +20 -0
  18. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/classic/coerce.d.mts.map +1 -0
  19. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/classic/compat.d.mts +50 -0
  20. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/classic/compat.d.mts.map +1 -0
  21. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/classic/deep-partial.d.mts +10 -0
  22. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/classic/deep-partial.d.mts.map +1 -0
  23. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/classic/errors.d.mts +33 -0
  24. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/classic/errors.d.mts.map +1 -0
  25. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/classic/external.d.mts +28 -0
  26. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/classic/external.d.mts.map +1 -0
  27. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/classic/from-json-schema.d.mts +14 -0
  28. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/classic/from-json-schema.d.mts.map +1 -0
  29. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/classic/in-out.d.mts +13 -0
  30. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/classic/in-out.d.mts.map +1 -0
  31. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/classic/iso.d.mts +13 -0
  32. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/classic/iso.d.mts.map +1 -0
  33. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/classic/parse.d.mts +54 -0
  34. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/classic/parse.d.mts.map +1 -0
  35. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/classic/schemas.d.mts +775 -0
  36. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/classic/schemas.d.mts.map +1 -0
  37. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/api.d.mts +331 -0
  38. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/api.d.mts.map +1 -0
  39. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/checks.d.mts +296 -0
  40. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/checks.d.mts.map +1 -0
  41. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/compile.d.mts +67 -0
  42. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/compile.d.mts.map +1 -0
  43. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/core.d.mts +85 -0
  44. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/core.d.mts.map +1 -0
  45. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/doc.d.mts +18 -0
  46. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/doc.d.mts.map +1 -0
  47. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/errors.d.mts +219 -0
  48. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/errors.d.mts.map +1 -0
  49. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/index.d.mts +24 -0
  50. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/index.d.mts.map +1 -0
  51. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/json-schema-generator.d.mts +67 -0
  52. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/json-schema-generator.d.mts.map +1 -0
  53. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/json-schema-processors.d.mts +12 -0
  54. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/json-schema-processors.d.mts.map +1 -0
  55. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/json-schema.d.mts +95 -0
  56. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/json-schema.d.mts.map +1 -0
  57. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/memoizer.d.mts +18 -0
  58. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/memoizer.d.mts.map +1 -0
  59. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/parse.d.mts +54 -0
  60. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/parse.d.mts.map +1 -0
  61. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/regexes.d.mts +94 -0
  62. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/regexes.d.mts.map +1 -0
  63. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/registries.d.mts +35 -0
  64. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/registries.d.mts.map +1 -0
  65. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/schemas.d.mts +1201 -0
  66. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/schemas.d.mts.map +1 -0
  67. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/standard-schema.d.mts +120 -0
  68. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/standard-schema.d.mts.map +1 -0
  69. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/to-json-schema.d.mts +157 -0
  70. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/to-json-schema.d.mts.map +1 -0
  71. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/util.d.mts +237 -0
  72. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/util.d.mts.map +1 -0
  73. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/versions.d.mts +8 -0
  74. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/versions.d.mts.map +1 -0
  75. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/index.d.mts +29 -0
  76. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/index.d.mts.map +1 -0
  77. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ar.d.mts +8 -0
  78. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ar.d.mts.map +1 -0
  79. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/az.d.mts +8 -0
  80. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/az.d.mts.map +1 -0
  81. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/be.d.mts +8 -0
  82. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/be.d.mts.map +1 -0
  83. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/bg.d.mts +8 -0
  84. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/bg.d.mts.map +1 -0
  85. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/bn.d.mts +8 -0
  86. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/bn.d.mts.map +1 -0
  87. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ca.d.mts +8 -0
  88. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ca.d.mts.map +1 -0
  89. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ckb.d.mts +8 -0
  90. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ckb.d.mts.map +1 -0
  91. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/cs.d.mts +8 -0
  92. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/cs.d.mts.map +1 -0
  93. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/da.d.mts +8 -0
  94. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/da.d.mts.map +1 -0
  95. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/de.d.mts +8 -0
  96. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/de.d.mts.map +1 -0
  97. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/el.d.mts +8 -0
  98. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/el.d.mts.map +1 -0
  99. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/en.d.mts +8 -0
  100. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/en.d.mts.map +1 -0
  101. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/eo.d.mts +8 -0
  102. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/eo.d.mts.map +1 -0
  103. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/es.d.mts +8 -0
  104. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/es.d.mts.map +1 -0
  105. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/fa.d.mts +8 -0
  106. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/fa.d.mts.map +1 -0
  107. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/fi.d.mts +8 -0
  108. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/fi.d.mts.map +1 -0
  109. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/fr-CA.d.mts +8 -0
  110. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/fr-CA.d.mts.map +1 -0
  111. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/fr.d.mts +8 -0
  112. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/fr.d.mts.map +1 -0
  113. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/gu.d.mts +8 -0
  114. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/gu.d.mts.map +1 -0
  115. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/he.d.mts +8 -0
  116. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/he.d.mts.map +1 -0
  117. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/hi.d.mts +8 -0
  118. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/hi.d.mts.map +1 -0
  119. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/hr.d.mts +8 -0
  120. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/hr.d.mts.map +1 -0
  121. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/hu.d.mts +8 -0
  122. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/hu.d.mts.map +1 -0
  123. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/hy.d.mts +8 -0
  124. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/hy.d.mts.map +1 -0
  125. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/id.d.mts +8 -0
  126. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/id.d.mts.map +1 -0
  127. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/index.d.mts +69 -0
  128. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/index.d.mts.map +1 -0
  129. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/is.d.mts +8 -0
  130. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/is.d.mts.map +1 -0
  131. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/it.d.mts +8 -0
  132. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/it.d.mts.map +1 -0
  133. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ja.d.mts +8 -0
  134. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ja.d.mts.map +1 -0
  135. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ka.d.mts +8 -0
  136. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ka.d.mts.map +1 -0
  137. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/kh.d.mts +8 -0
  138. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/kh.d.mts.map +1 -0
  139. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/km.d.mts +8 -0
  140. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/km.d.mts.map +1 -0
  141. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/kn.d.mts +8 -0
  142. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/kn.d.mts.map +1 -0
  143. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ko.d.mts +8 -0
  144. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ko.d.mts.map +1 -0
  145. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/lt.d.mts +8 -0
  146. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/lt.d.mts.map +1 -0
  147. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/mk.d.mts +8 -0
  148. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/mk.d.mts.map +1 -0
  149. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ms.d.mts +8 -0
  150. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ms.d.mts.map +1 -0
  151. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ne.d.mts +8 -0
  152. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ne.d.mts.map +1 -0
  153. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/nl.d.mts +8 -0
  154. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/nl.d.mts.map +1 -0
  155. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/nn.d.mts +8 -0
  156. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/nn.d.mts.map +1 -0
  157. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/no.d.mts +8 -0
  158. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/no.d.mts.map +1 -0
  159. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ota.d.mts +8 -0
  160. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ota.d.mts.map +1 -0
  161. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/pl.d.mts +8 -0
  162. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/pl.d.mts.map +1 -0
  163. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ps.d.mts +8 -0
  164. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ps.d.mts.map +1 -0
  165. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/pt-BR.d.mts +8 -0
  166. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/pt-BR.d.mts.map +1 -0
  167. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/pt.d.mts +8 -0
  168. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/pt.d.mts.map +1 -0
  169. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ro.d.mts +8 -0
  170. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ro.d.mts.map +1 -0
  171. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ru.d.mts +8 -0
  172. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ru.d.mts.map +1 -0
  173. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/sk.d.mts +8 -0
  174. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/sk.d.mts.map +1 -0
  175. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/sl.d.mts +8 -0
  176. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/sl.d.mts.map +1 -0
  177. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/sv.d.mts +8 -0
  178. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/sv.d.mts.map +1 -0
  179. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ta.d.mts +8 -0
  180. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ta.d.mts.map +1 -0
  181. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/tg.d.mts +8 -0
  182. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/tg.d.mts.map +1 -0
  183. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/th.d.mts +8 -0
  184. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/th.d.mts.map +1 -0
  185. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/tk.d.mts +8 -0
  186. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/tk.d.mts.map +1 -0
  187. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/tr.d.mts +8 -0
  188. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/tr.d.mts.map +1 -0
  189. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ua.d.mts +8 -0
  190. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ua.d.mts.map +1 -0
  191. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/uk.d.mts +8 -0
  192. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/uk.d.mts.map +1 -0
  193. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ur.d.mts +8 -0
  194. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ur.d.mts.map +1 -0
  195. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/uz.d.mts +8 -0
  196. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/uz.d.mts.map +1 -0
  197. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/vi.d.mts +8 -0
  198. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/vi.d.mts.map +1 -0
  199. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/yo.d.mts +8 -0
  200. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/yo.d.mts.map +1 -0
  201. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/zh-CN.d.mts +8 -0
  202. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/zh-CN.d.mts.map +1 -0
  203. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/zh-TW.d.mts +8 -0
  204. package/dist/node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/zh-TW.d.mts.map +1 -0
  205. package/dist/packages/core/po-core/dist/mcpWidget.d.mts +2 -0
  206. package/dist/packages/core/po-core/dist/src/extensions/webPlugin.d.mts +2 -0
  207. package/dist/packages/core/po-core/dist/src/web/models/globalStore.d.mts +1 -0
  208. package/dist/packages/core/po-core/dist/src/web/models/sessionStore.d.mts +1 -0
  209. package/dist/packages/core/po-core/dist/src/web/models/workspaceStore.d.mts +1 -0
  210. package/dist/packages/core/po-core/dist/src/web/schemas/template.d.mts +2 -0
  211. package/dist/packages/core/po-core/dist/src/web/services/mcpWidget.d.mts +1 -0
  212. package/dist/packages/core/po-core/dist/src/web/types/extensionFile.d.mts +3 -0
  213. package/dist/packages/core/po-core/dist/src/web/types/mcpWidget.d.mts +17 -0
  214. package/dist/packages/core/po-core/dist/src/web/types/mcpWidget.d.mts.map +1 -0
  215. package/dist/packages/core/po-core/dist/src/web/types/nativeTemplate.d.mts +2 -0
  216. package/dist/packages/core/po-core/dist/src/web/types/template.d.mts +1 -0
  217. package/dist/packages/core/po-core/dist/src/web/types/webPlugin.d.mts +3 -0
  218. package/dist/packages/core/po-core/dist/web.d.mts +12 -0
  219. package/dist/packages/core/po-web-components/src/components/Accordion.d.mts +11 -0
  220. package/dist/packages/core/po-web-components/src/components/Accordion.d.mts.map +1 -0
  221. package/dist/packages/core/po-web-components/src/components/Accordion.mjs +2 -0
  222. package/dist/packages/core/po-web-components/src/components/Accordion.mjs.map +1 -0
  223. package/dist/packages/core/po-web-components/src/components/AnsiText.d.mts +16 -0
  224. package/dist/packages/core/po-web-components/src/components/AnsiText.d.mts.map +1 -0
  225. package/dist/packages/core/po-web-components/src/components/AnsiText.mjs +4 -0
  226. package/dist/packages/core/po-web-components/src/components/AnsiText.mjs.map +1 -0
  227. package/dist/packages/core/po-web-components/src/components/Avatar.d.mts +10 -0
  228. package/dist/packages/core/po-web-components/src/components/Avatar.d.mts.map +1 -0
  229. package/dist/packages/core/po-web-components/src/components/Avatar.mjs +2 -0
  230. package/dist/packages/core/po-web-components/src/components/Avatar.mjs.map +1 -0
  231. package/dist/packages/core/po-web-components/src/components/Badge.d.mts +17 -0
  232. package/dist/packages/core/po-web-components/src/components/Badge.d.mts.map +1 -0
  233. package/dist/packages/core/po-web-components/src/components/Badge.mjs +2 -0
  234. package/dist/packages/core/po-web-components/src/components/Badge.mjs.map +1 -0
  235. package/dist/packages/core/po-web-components/src/components/Breadcrumb.d.mts +36 -0
  236. package/dist/packages/core/po-web-components/src/components/Breadcrumb.d.mts.map +1 -0
  237. package/dist/packages/core/po-web-components/src/components/Breadcrumb.mjs +2 -0
  238. package/dist/packages/core/po-web-components/src/components/Breadcrumb.mjs.map +1 -0
  239. package/dist/packages/core/po-web-components/src/components/Button.d.mts +24 -0
  240. package/dist/packages/core/po-web-components/src/components/Button.d.mts.map +1 -0
  241. package/dist/packages/core/po-web-components/src/components/Button.mjs +2 -0
  242. package/dist/packages/core/po-web-components/src/components/Button.mjs.map +1 -0
  243. package/dist/packages/core/po-web-components/src/components/Checkbox.d.mts +8 -0
  244. package/dist/packages/core/po-web-components/src/components/Checkbox.d.mts.map +1 -0
  245. package/dist/packages/core/po-web-components/src/components/Checkbox.mjs +2 -0
  246. package/dist/packages/core/po-web-components/src/components/Checkbox.mjs.map +1 -0
  247. package/dist/packages/core/po-web-components/src/components/CodeBlock.d.mts +23 -0
  248. package/dist/packages/core/po-web-components/src/components/CodeBlock.d.mts.map +1 -0
  249. package/dist/packages/core/po-web-components/src/components/CodeBlock.mjs +2 -0
  250. package/dist/packages/core/po-web-components/src/components/CodeBlock.mjs.map +1 -0
  251. package/dist/packages/core/po-web-components/src/components/CodeEditor.d.mts +5 -0
  252. package/dist/packages/core/po-web-components/src/components/CodeEditor.d.mts.map +1 -0
  253. package/dist/packages/core/po-web-components/src/components/CodeEditor.mjs +2 -0
  254. package/dist/packages/core/po-web-components/src/components/CodeEditor.mjs.map +1 -0
  255. package/dist/packages/core/po-web-components/src/components/CodeEditorView.mjs +2 -0
  256. package/dist/packages/core/po-web-components/src/components/CodeEditorView.mjs.map +1 -0
  257. package/dist/packages/core/po-web-components/src/components/Collapsible.d.mts +10 -0
  258. package/dist/packages/core/po-web-components/src/components/Collapsible.d.mts.map +1 -0
  259. package/dist/packages/core/po-web-components/src/components/Collapsible.mjs +2 -0
  260. package/dist/packages/core/po-web-components/src/components/Collapsible.mjs.map +1 -0
  261. package/dist/packages/core/po-web-components/src/components/Command.d.mts +41 -0
  262. package/dist/packages/core/po-web-components/src/components/Command.d.mts.map +1 -0
  263. package/dist/packages/core/po-web-components/src/components/Command.mjs +2 -0
  264. package/dist/packages/core/po-web-components/src/components/Command.mjs.map +1 -0
  265. package/dist/packages/core/po-web-components/src/components/CopyButton.mjs +2 -0
  266. package/dist/packages/core/po-web-components/src/components/CopyButton.mjs.map +1 -0
  267. package/dist/packages/core/po-web-components/src/components/Dialog.d.mts +39 -0
  268. package/dist/packages/core/po-web-components/src/components/Dialog.d.mts.map +1 -0
  269. package/dist/packages/core/po-web-components/src/components/Dialog.mjs +2 -0
  270. package/dist/packages/core/po-web-components/src/components/Dialog.mjs.map +1 -0
  271. package/dist/packages/core/po-web-components/src/components/DiffView.d.mts +16 -0
  272. package/dist/packages/core/po-web-components/src/components/DiffView.d.mts.map +1 -0
  273. package/dist/packages/core/po-web-components/src/components/DiffView.mjs +2 -0
  274. package/dist/packages/core/po-web-components/src/components/DiffView.mjs.map +1 -0
  275. package/dist/packages/core/po-web-components/src/components/Dot.d.mts +15 -0
  276. package/dist/packages/core/po-web-components/src/components/Dot.d.mts.map +1 -0
  277. package/dist/packages/core/po-web-components/src/components/Dot.mjs +2 -0
  278. package/dist/packages/core/po-web-components/src/components/Dot.mjs.map +1 -0
  279. package/dist/packages/core/po-web-components/src/components/Drawer.d.mts +17 -0
  280. package/dist/packages/core/po-web-components/src/components/Drawer.d.mts.map +1 -0
  281. package/dist/packages/core/po-web-components/src/components/Drawer.mjs +2 -0
  282. package/dist/packages/core/po-web-components/src/components/Drawer.mjs.map +1 -0
  283. package/dist/packages/core/po-web-components/src/components/DropdownMenu.d.mts +34 -0
  284. package/dist/packages/core/po-web-components/src/components/DropdownMenu.d.mts.map +1 -0
  285. package/dist/packages/core/po-web-components/src/components/DropdownMenu.mjs +2 -0
  286. package/dist/packages/core/po-web-components/src/components/DropdownMenu.mjs.map +1 -0
  287. package/dist/packages/core/po-web-components/src/components/EmptyState.d.mts +17 -0
  288. package/dist/packages/core/po-web-components/src/components/EmptyState.d.mts.map +1 -0
  289. package/dist/packages/core/po-web-components/src/components/EmptyState.mjs +2 -0
  290. package/dist/packages/core/po-web-components/src/components/EmptyState.mjs.map +1 -0
  291. package/dist/packages/core/po-web-components/src/components/HashlineLines.d.mts +23 -0
  292. package/dist/packages/core/po-web-components/src/components/HashlineLines.d.mts.map +1 -0
  293. package/dist/packages/core/po-web-components/src/components/HashlineLines.mjs +2 -0
  294. package/dist/packages/core/po-web-components/src/components/HashlineLines.mjs.map +1 -0
  295. package/dist/packages/core/po-web-components/src/components/Input.d.mts +19 -0
  296. package/dist/packages/core/po-web-components/src/components/Input.d.mts.map +1 -0
  297. package/dist/packages/core/po-web-components/src/components/Input.mjs +2 -0
  298. package/dist/packages/core/po-web-components/src/components/Input.mjs.map +1 -0
  299. package/dist/packages/core/po-web-components/src/components/Kbd.d.mts +6 -0
  300. package/dist/packages/core/po-web-components/src/components/Kbd.d.mts.map +1 -0
  301. package/dist/packages/core/po-web-components/src/components/Kbd.mjs +2 -0
  302. package/dist/packages/core/po-web-components/src/components/Kbd.mjs.map +1 -0
  303. package/dist/packages/core/po-web-components/src/components/Label.d.mts +8 -0
  304. package/dist/packages/core/po-web-components/src/components/Label.d.mts.map +1 -0
  305. package/dist/packages/core/po-web-components/src/components/Label.mjs +2 -0
  306. package/dist/packages/core/po-web-components/src/components/Label.mjs.map +1 -0
  307. package/dist/packages/core/po-web-components/src/components/Markdown.d.mts +22 -0
  308. package/dist/packages/core/po-web-components/src/components/Markdown.d.mts.map +1 -0
  309. package/dist/packages/core/po-web-components/src/components/Markdown.mjs +3 -0
  310. package/dist/packages/core/po-web-components/src/components/Markdown.mjs.map +1 -0
  311. package/dist/packages/core/po-web-components/src/components/McpApp.d.mts +18 -0
  312. package/dist/packages/core/po-web-components/src/components/McpApp.d.mts.map +1 -0
  313. package/dist/packages/core/po-web-components/src/components/McpApp.mjs +2 -0
  314. package/dist/packages/core/po-web-components/src/components/McpApp.mjs.map +1 -0
  315. package/dist/packages/core/po-web-components/src/components/McpToolWidget.d.mts +15 -0
  316. package/dist/packages/core/po-web-components/src/components/McpToolWidget.d.mts.map +1 -0
  317. package/dist/packages/core/po-web-components/src/components/McpToolWidget.mjs +3 -0
  318. package/dist/packages/core/po-web-components/src/components/McpToolWidget.mjs.map +1 -0
  319. package/dist/packages/core/po-web-components/src/components/MediaPreview.d.mts +63 -0
  320. package/dist/packages/core/po-web-components/src/components/MediaPreview.d.mts.map +1 -0
  321. package/dist/packages/core/po-web-components/src/components/MediaPreview.mjs +2 -0
  322. package/dist/packages/core/po-web-components/src/components/MediaPreview.mjs.map +1 -0
  323. package/dist/packages/core/po-web-components/src/components/MermaidDiagram.mjs +2 -0
  324. package/dist/packages/core/po-web-components/src/components/MermaidDiagram.mjs.map +1 -0
  325. package/dist/packages/core/po-web-components/src/components/MessageItem.d.mts +108 -0
  326. package/dist/packages/core/po-web-components/src/components/MessageItem.d.mts.map +1 -0
  327. package/dist/packages/core/po-web-components/src/components/MessageItem.mjs +2 -0
  328. package/dist/packages/core/po-web-components/src/components/MessageItem.mjs.map +1 -0
  329. package/dist/packages/core/po-web-components/src/components/MessageLines.d.mts +23 -0
  330. package/dist/packages/core/po-web-components/src/components/MessageLines.d.mts.map +1 -0
  331. package/dist/packages/core/po-web-components/src/components/MessageLines.mjs +2 -0
  332. package/dist/packages/core/po-web-components/src/components/MessageLines.mjs.map +1 -0
  333. package/dist/packages/core/po-web-components/src/components/OptionList.d.mts +49 -0
  334. package/dist/packages/core/po-web-components/src/components/OptionList.d.mts.map +1 -0
  335. package/dist/packages/core/po-web-components/src/components/OptionList.mjs +2 -0
  336. package/dist/packages/core/po-web-components/src/components/OptionList.mjs.map +1 -0
  337. package/dist/packages/core/po-web-components/src/components/Panel.d.mts +14 -0
  338. package/dist/packages/core/po-web-components/src/components/Panel.d.mts.map +1 -0
  339. package/dist/packages/core/po-web-components/src/components/Panel.mjs +2 -0
  340. package/dist/packages/core/po-web-components/src/components/Panel.mjs.map +1 -0
  341. package/dist/packages/core/po-web-components/src/components/PdfPreview.d.mts +52 -0
  342. package/dist/packages/core/po-web-components/src/components/PdfPreview.d.mts.map +1 -0
  343. package/dist/packages/core/po-web-components/src/components/PdfPreview.mjs +2 -0
  344. package/dist/packages/core/po-web-components/src/components/PdfPreview.mjs.map +1 -0
  345. package/dist/packages/core/po-web-components/src/components/Picker.d.mts +52 -0
  346. package/dist/packages/core/po-web-components/src/components/Picker.d.mts.map +1 -0
  347. package/dist/packages/core/po-web-components/src/components/Picker.mjs +2 -0
  348. package/dist/packages/core/po-web-components/src/components/Picker.mjs.map +1 -0
  349. package/dist/packages/core/po-web-components/src/components/Popover.d.mts +19 -0
  350. package/dist/packages/core/po-web-components/src/components/Popover.d.mts.map +1 -0
  351. package/dist/packages/core/po-web-components/src/components/Popover.mjs +2 -0
  352. package/dist/packages/core/po-web-components/src/components/Popover.mjs.map +1 -0
  353. package/dist/packages/core/po-web-components/src/components/Progress.d.mts +8 -0
  354. package/dist/packages/core/po-web-components/src/components/Progress.d.mts.map +1 -0
  355. package/dist/packages/core/po-web-components/src/components/Progress.mjs +2 -0
  356. package/dist/packages/core/po-web-components/src/components/Progress.mjs.map +1 -0
  357. package/dist/packages/core/po-web-components/src/components/RadioGroup.d.mts +15 -0
  358. package/dist/packages/core/po-web-components/src/components/RadioGroup.d.mts.map +1 -0
  359. package/dist/packages/core/po-web-components/src/components/RadioGroup.mjs +2 -0
  360. package/dist/packages/core/po-web-components/src/components/RadioGroup.mjs.map +1 -0
  361. package/dist/packages/core/po-web-components/src/components/ReviewCommentDraft.d.mts +24 -0
  362. package/dist/packages/core/po-web-components/src/components/ReviewCommentDraft.d.mts.map +1 -0
  363. package/dist/packages/core/po-web-components/src/components/ReviewCommentDraft.mjs +2 -0
  364. package/dist/packages/core/po-web-components/src/components/ReviewCommentDraft.mjs.map +1 -0
  365. package/dist/packages/core/po-web-components/src/components/ScrollArea.d.mts +13 -0
  366. package/dist/packages/core/po-web-components/src/components/ScrollArea.d.mts.map +1 -0
  367. package/dist/packages/core/po-web-components/src/components/ScrollArea.mjs +2 -0
  368. package/dist/packages/core/po-web-components/src/components/ScrollArea.mjs.map +1 -0
  369. package/dist/packages/core/po-web-components/src/components/SectionLabel.d.mts +6 -0
  370. package/dist/packages/core/po-web-components/src/components/SectionLabel.d.mts.map +1 -0
  371. package/dist/packages/core/po-web-components/src/components/SectionLabel.mjs +2 -0
  372. package/dist/packages/core/po-web-components/src/components/SectionLabel.mjs.map +1 -0
  373. package/dist/packages/core/po-web-components/src/components/Select.d.mts +19 -0
  374. package/dist/packages/core/po-web-components/src/components/Select.d.mts.map +1 -0
  375. package/dist/packages/core/po-web-components/src/components/Select.mjs +2 -0
  376. package/dist/packages/core/po-web-components/src/components/Select.mjs.map +1 -0
  377. package/dist/packages/core/po-web-components/src/components/Separator.d.mts +13 -0
  378. package/dist/packages/core/po-web-components/src/components/Separator.d.mts.map +1 -0
  379. package/dist/packages/core/po-web-components/src/components/Separator.mjs +2 -0
  380. package/dist/packages/core/po-web-components/src/components/Separator.mjs.map +1 -0
  381. package/dist/packages/core/po-web-components/src/components/Settings.d.mts +56 -0
  382. package/dist/packages/core/po-web-components/src/components/Settings.d.mts.map +1 -0
  383. package/dist/packages/core/po-web-components/src/components/Settings.mjs +2 -0
  384. package/dist/packages/core/po-web-components/src/components/Settings.mjs.map +1 -0
  385. package/dist/packages/core/po-web-components/src/components/Sheet.d.mts +35 -0
  386. package/dist/packages/core/po-web-components/src/components/Sheet.d.mts.map +1 -0
  387. package/dist/packages/core/po-web-components/src/components/Sheet.mjs +2 -0
  388. package/dist/packages/core/po-web-components/src/components/Sheet.mjs.map +1 -0
  389. package/dist/packages/core/po-web-components/src/components/Skeleton.d.mts +10 -0
  390. package/dist/packages/core/po-web-components/src/components/Skeleton.d.mts.map +1 -0
  391. package/dist/packages/core/po-web-components/src/components/Skeleton.mjs +2 -0
  392. package/dist/packages/core/po-web-components/src/components/Skeleton.mjs.map +1 -0
  393. package/dist/packages/core/po-web-components/src/components/Spinner.d.mts +14 -0
  394. package/dist/packages/core/po-web-components/src/components/Spinner.d.mts.map +1 -0
  395. package/dist/packages/core/po-web-components/src/components/Spinner.mjs +2 -0
  396. package/dist/packages/core/po-web-components/src/components/Spinner.mjs.map +1 -0
  397. package/dist/packages/core/po-web-components/src/components/StatusBadge.d.mts +23 -0
  398. package/dist/packages/core/po-web-components/src/components/StatusBadge.d.mts.map +1 -0
  399. package/dist/packages/core/po-web-components/src/components/StatusBadge.mjs +2 -0
  400. package/dist/packages/core/po-web-components/src/components/StatusBadge.mjs.map +1 -0
  401. package/dist/packages/core/po-web-components/src/components/StreamCursor.d.mts +6 -0
  402. package/dist/packages/core/po-web-components/src/components/StreamCursor.d.mts.map +1 -0
  403. package/dist/packages/core/po-web-components/src/components/StreamCursor.mjs +2 -0
  404. package/dist/packages/core/po-web-components/src/components/StreamCursor.mjs.map +1 -0
  405. package/dist/packages/core/po-web-components/src/components/Switch.d.mts +8 -0
  406. package/dist/packages/core/po-web-components/src/components/Switch.d.mts.map +1 -0
  407. package/dist/packages/core/po-web-components/src/components/Switch.mjs +2 -0
  408. package/dist/packages/core/po-web-components/src/components/Switch.mjs.map +1 -0
  409. package/dist/packages/core/po-web-components/src/components/SyntaxText.d.mts +50 -0
  410. package/dist/packages/core/po-web-components/src/components/SyntaxText.d.mts.map +1 -0
  411. package/dist/packages/core/po-web-components/src/components/SyntaxText.mjs +4 -0
  412. package/dist/packages/core/po-web-components/src/components/SyntaxText.mjs.map +1 -0
  413. package/dist/packages/core/po-web-components/src/components/Tabs.d.mts +36 -0
  414. package/dist/packages/core/po-web-components/src/components/Tabs.d.mts.map +1 -0
  415. package/dist/packages/core/po-web-components/src/components/Tabs.mjs +2 -0
  416. package/dist/packages/core/po-web-components/src/components/Tabs.mjs.map +1 -0
  417. package/dist/packages/core/po-web-components/src/components/TerminalView.d.mts +31 -0
  418. package/dist/packages/core/po-web-components/src/components/TerminalView.d.mts.map +1 -0
  419. package/dist/packages/core/po-web-components/src/components/TerminalView.mjs +2 -0
  420. package/dist/packages/core/po-web-components/src/components/TerminalView.mjs.map +1 -0
  421. package/dist/packages/core/po-web-components/src/components/Textarea.d.mts +9 -0
  422. package/dist/packages/core/po-web-components/src/components/Textarea.d.mts.map +1 -0
  423. package/dist/packages/core/po-web-components/src/components/Textarea.mjs +2 -0
  424. package/dist/packages/core/po-web-components/src/components/Textarea.mjs.map +1 -0
  425. package/dist/packages/core/po-web-components/src/components/Toast.d.mts +24 -0
  426. package/dist/packages/core/po-web-components/src/components/Toast.d.mts.map +1 -0
  427. package/dist/packages/core/po-web-components/src/components/Toast.mjs +2 -0
  428. package/dist/packages/core/po-web-components/src/components/Toast.mjs.map +1 -0
  429. package/dist/packages/core/po-web-components/src/components/ToolPathLink.d.mts +22 -0
  430. package/dist/packages/core/po-web-components/src/components/ToolPathLink.d.mts.map +1 -0
  431. package/dist/packages/core/po-web-components/src/components/ToolPathLink.mjs +2 -0
  432. package/dist/packages/core/po-web-components/src/components/ToolPathLink.mjs.map +1 -0
  433. package/dist/packages/core/po-web-components/src/components/Tooltip.d.mts +11 -0
  434. package/dist/packages/core/po-web-components/src/components/Tooltip.d.mts.map +1 -0
  435. package/dist/packages/core/po-web-components/src/components/Tooltip.mjs +2 -0
  436. package/dist/packages/core/po-web-components/src/components/Tooltip.mjs.map +1 -0
  437. package/dist/packages/core/po-web-components/src/icons/icons.d.mts +2 -0
  438. package/dist/packages/core/po-web-components/src/icons/icons.mjs +1 -0
  439. package/dist/packages/core/po-web-components/src/lib/ansiSpans.d.mts +42 -0
  440. package/dist/packages/core/po-web-components/src/lib/ansiSpans.d.mts.map +1 -0
  441. package/dist/packages/core/po-web-components/src/lib/ansiSpans.mjs +2 -0
  442. package/dist/packages/core/po-web-components/src/lib/ansiSpans.mjs.map +1 -0
  443. package/dist/packages/core/po-web-components/src/lib/cn.d.mts +6 -0
  444. package/dist/packages/core/po-web-components/src/lib/cn.d.mts.map +1 -0
  445. package/dist/packages/core/po-web-components/src/lib/cn.mjs +2 -0
  446. package/dist/packages/core/po-web-components/src/lib/cn.mjs.map +1 -0
  447. package/dist/packages/core/po-web-components/src/lib/collapse.d.mts +14 -0
  448. package/dist/packages/core/po-web-components/src/lib/collapse.d.mts.map +1 -0
  449. package/dist/packages/core/po-web-components/src/lib/collapse.mjs +2 -0
  450. package/dist/packages/core/po-web-components/src/lib/collapse.mjs.map +1 -0
  451. package/dist/packages/core/po-web-components/src/lib/editorController.mjs +2 -0
  452. package/dist/packages/core/po-web-components/src/lib/editorController.mjs.map +1 -0
  453. package/dist/packages/core/po-web-components/src/lib/editorLanguage.d.mts +21 -0
  454. package/dist/packages/core/po-web-components/src/lib/editorLanguage.d.mts.map +1 -0
  455. package/dist/packages/core/po-web-components/src/lib/editorLanguage.mjs +2 -0
  456. package/dist/packages/core/po-web-components/src/lib/editorLanguage.mjs.map +1 -0
  457. package/dist/packages/core/po-web-components/src/lib/editorTheme.d.mts +76 -0
  458. package/dist/packages/core/po-web-components/src/lib/editorTheme.d.mts.map +1 -0
  459. package/dist/packages/core/po-web-components/src/lib/editorTheme.mjs +2 -0
  460. package/dist/packages/core/po-web-components/src/lib/editorTheme.mjs.map +1 -0
  461. package/dist/packages/core/po-web-components/src/lib/fenceGrammar.mjs +2 -0
  462. package/dist/packages/core/po-web-components/src/lib/fenceGrammar.mjs.map +1 -0
  463. package/dist/packages/core/po-web-components/src/lib/hashlineHighlight.d.mts +30 -0
  464. package/dist/packages/core/po-web-components/src/lib/hashlineHighlight.d.mts.map +1 -0
  465. package/dist/packages/core/po-web-components/src/lib/hashlineHighlight.mjs +3 -0
  466. package/dist/packages/core/po-web-components/src/lib/hashlineHighlight.mjs.map +1 -0
  467. package/dist/packages/core/po-web-components/src/lib/hashlineView.d.mts +60 -0
  468. package/dist/packages/core/po-web-components/src/lib/hashlineView.d.mts.map +1 -0
  469. package/dist/packages/core/po-web-components/src/lib/hashlineView.mjs +6 -0
  470. package/dist/packages/core/po-web-components/src/lib/hashlineView.mjs.map +1 -0
  471. package/dist/packages/core/po-web-components/src/lib/media.d.mts +11 -0
  472. package/dist/packages/core/po-web-components/src/lib/media.d.mts.map +1 -0
  473. package/dist/packages/core/po-web-components/src/lib/media.mjs +2 -0
  474. package/dist/packages/core/po-web-components/src/lib/media.mjs.map +1 -0
  475. package/dist/packages/core/po-web-components/src/lib/mediaPlayback.mjs +2 -0
  476. package/dist/packages/core/po-web-components/src/lib/mediaPlayback.mjs.map +1 -0
  477. package/dist/packages/core/po-web-components/src/lib/mermaidDiagram.mjs +2 -0
  478. package/dist/packages/core/po-web-components/src/lib/mermaidDiagram.mjs.map +1 -0
  479. package/dist/packages/core/po-web-components/src/lib/optionList.d.mts +21 -0
  480. package/dist/packages/core/po-web-components/src/lib/optionList.d.mts.map +1 -0
  481. package/dist/packages/core/po-web-components/src/lib/optionList.mjs +2 -0
  482. package/dist/packages/core/po-web-components/src/lib/optionList.mjs.map +1 -0
  483. package/dist/packages/core/po-web-components/src/lib/pathGroups.d.mts +23 -0
  484. package/dist/packages/core/po-web-components/src/lib/pathGroups.d.mts.map +1 -0
  485. package/dist/packages/core/po-web-components/src/lib/pathGroups.mjs +2 -0
  486. package/dist/packages/core/po-web-components/src/lib/pathGroups.mjs.map +1 -0
  487. package/dist/packages/core/po-web-components/src/lib/picker.d.mts +10 -0
  488. package/dist/packages/core/po-web-components/src/lib/picker.d.mts.map +1 -0
  489. package/dist/packages/core/po-web-components/src/lib/picker.mjs +2 -0
  490. package/dist/packages/core/po-web-components/src/lib/picker.mjs.map +1 -0
  491. package/dist/packages/core/po-web-components/src/lib/review.d.mts +40 -0
  492. package/dist/packages/core/po-web-components/src/lib/review.d.mts.map +1 -0
  493. package/dist/packages/core/po-web-components/src/lib/review.mjs +8 -0
  494. package/dist/packages/core/po-web-components/src/lib/review.mjs.map +1 -0
  495. package/dist/packages/core/po-web-components/src/lib/syntaxHighlight.d.mts +54 -0
  496. package/dist/packages/core/po-web-components/src/lib/syntaxHighlight.d.mts.map +1 -0
  497. package/dist/packages/core/po-web-components/src/lib/syntaxHighlight.mjs +3 -0
  498. package/dist/packages/core/po-web-components/src/lib/syntaxHighlight.mjs.map +1 -0
  499. package/dist/packages/core/po-web-components/src/lib/tone.d.mts +25 -0
  500. package/dist/packages/core/po-web-components/src/lib/tone.d.mts.map +1 -0
  501. package/dist/packages/core/po-web-components/src/lib/tone.mjs +2 -0
  502. package/dist/packages/core/po-web-components/src/lib/tone.mjs.map +1 -0
  503. package/dist/packages/core/po-web-components/src/theme/apply.d.mts +25 -0
  504. package/dist/packages/core/po-web-components/src/theme/apply.d.mts.map +1 -0
  505. package/dist/packages/core/po-web-components/src/theme/apply.mjs +3 -0
  506. package/dist/packages/core/po-web-components/src/theme/apply.mjs.map +1 -0
  507. package/dist/packages/core/po-web-components/src/theme/builtinThemes.d.mts +11 -0
  508. package/dist/packages/core/po-web-components/src/theme/builtinThemes.d.mts.map +1 -0
  509. package/dist/packages/core/po-web-components/src/theme/builtinThemes.mjs +2 -0
  510. package/dist/packages/core/po-web-components/src/theme/builtinThemes.mjs.map +1 -0
  511. package/dist/packages/core/po-web-components/src/theme/derive.d.mts +14 -0
  512. package/dist/packages/core/po-web-components/src/theme/derive.d.mts.map +1 -0
  513. package/dist/packages/core/po-web-components/src/theme/derive.mjs +2 -0
  514. package/dist/packages/core/po-web-components/src/theme/derive.mjs.map +1 -0
  515. package/dist/packages/core/po-web-components/src/theme/nativeTheme.d.mts +131 -0
  516. package/dist/packages/core/po-web-components/src/theme/nativeTheme.d.mts.map +1 -0
  517. package/dist/packages/core/po-web-components/src/theme/nativeTheme.mjs +2 -0
  518. package/dist/packages/core/po-web-components/src/theme/nativeTheme.mjs.map +1 -0
  519. package/dist/packages/core/po-web-components/src/theme/parse.d.mts +10 -0
  520. package/dist/packages/core/po-web-components/src/theme/parse.d.mts.map +1 -0
  521. package/dist/packages/core/po-web-components/src/theme/parse.mjs +2 -0
  522. package/dist/packages/core/po-web-components/src/theme/parse.mjs.map +1 -0
  523. package/dist/packages/core/po-web-components/src/theme/piTheme.d.mts +19 -0
  524. package/dist/packages/core/po-web-components/src/theme/piTheme.d.mts.map +1 -0
  525. package/dist/packages/core/po-web-components/src/theme/piTheme.mjs +2 -0
  526. package/dist/packages/core/po-web-components/src/theme/piTheme.mjs.map +1 -0
  527. package/dist/packages/core/po-web-components/src/theme/preference.d.mts +15 -0
  528. package/dist/packages/core/po-web-components/src/theme/preference.d.mts.map +1 -0
  529. package/dist/packages/core/po-web-components/src/theme/preference.mjs +2 -0
  530. package/dist/packages/core/po-web-components/src/theme/preference.mjs.map +1 -0
  531. package/dist/packages/core/po-web-components/src/types/diff.d.mts +46 -0
  532. package/dist/packages/core/po-web-components/src/types/diff.d.mts.map +1 -0
  533. package/dist/packages/core/po-web-components/src/types/editor.d.mts +78 -0
  534. package/dist/packages/core/po-web-components/src/types/editor.d.mts.map +1 -0
  535. package/dist/packages/core/po-web-components/src/types/editor.mjs +2 -0
  536. package/dist/packages/core/po-web-components/src/types/editor.mjs.map +1 -0
  537. package/dist/packages/core/po-web-components/src/types/theme.d.mts +38 -0
  538. package/dist/packages/core/po-web-components/src/types/theme.d.mts.map +1 -0
  539. package/dist/packages/core/po-web-components/src/types/theme.mjs +2 -0
  540. package/dist/packages/core/po-web-components/src/types/theme.mjs.map +1 -0
  541. package/dist/packages/core/po-web-components/src/types/tone.d.mts +28 -0
  542. package/dist/packages/core/po-web-components/src/types/tone.d.mts.map +1 -0
  543. package/dist/packages/core/po-web-components/src/types/tone.mjs +2 -0
  544. package/dist/packages/core/po-web-components/src/types/tone.mjs.map +1 -0
  545. package/dist/packages/core/po-web-components/themes/doom-nord-dark.mjs +2 -0
  546. package/dist/packages/core/po-web-components/themes/doom-nord-dark.mjs.map +1 -0
  547. package/dist/packages/core/po-web-components/themes/doom-one-dark.mjs +2 -0
  548. package/dist/packages/core/po-web-components/themes/doom-one-dark.mjs.map +1 -0
  549. package/dist/packages/core/po-web-components/themes/doom-one-light.mjs +2 -0
  550. package/dist/packages/core/po-web-components/themes/doom-one-light.mjs.map +1 -0
  551. package/dist/src/components/Accordion.cjs +2 -0
  552. package/dist/src/components/Accordion.cjs.map +1 -0
  553. package/dist/src/components/AnsiText.cjs +4 -0
  554. package/dist/src/components/AnsiText.cjs.map +1 -0
  555. package/dist/src/components/Avatar.cjs +2 -0
  556. package/dist/src/components/Avatar.cjs.map +1 -0
  557. package/dist/src/components/Badge.cjs +2 -0
  558. package/dist/src/components/Badge.cjs.map +1 -0
  559. package/dist/src/components/Breadcrumb.cjs +2 -0
  560. package/dist/src/components/Breadcrumb.cjs.map +1 -0
  561. package/dist/src/components/Button.cjs +2 -0
  562. package/dist/src/components/Button.cjs.map +1 -0
  563. package/dist/src/components/Checkbox.cjs +2 -0
  564. package/dist/src/components/Checkbox.cjs.map +1 -0
  565. package/dist/src/components/CodeBlock.cjs +2 -0
  566. package/dist/src/components/CodeBlock.cjs.map +1 -0
  567. package/dist/src/components/CodeEditor.cjs +2 -0
  568. package/dist/src/components/CodeEditor.cjs.map +1 -0
  569. package/dist/src/components/CodeEditorView.cjs +2 -0
  570. package/dist/src/components/CodeEditorView.cjs.map +1 -0
  571. package/dist/src/components/Collapsible.cjs +2 -0
  572. package/dist/src/components/Collapsible.cjs.map +1 -0
  573. package/dist/src/components/Command.cjs +2 -0
  574. package/dist/src/components/Command.cjs.map +1 -0
  575. package/dist/src/components/CopyButton.cjs +2 -0
  576. package/dist/src/components/CopyButton.cjs.map +1 -0
  577. package/dist/src/components/Dialog.cjs +2 -0
  578. package/dist/src/components/Dialog.cjs.map +1 -0
  579. package/dist/src/components/DiffView.cjs +2 -0
  580. package/dist/src/components/DiffView.cjs.map +1 -0
  581. package/dist/src/components/Dot.cjs +2 -0
  582. package/dist/src/components/Dot.cjs.map +1 -0
  583. package/dist/src/components/Drawer.cjs +2 -0
  584. package/dist/src/components/Drawer.cjs.map +1 -0
  585. package/dist/src/components/DropdownMenu.cjs +2 -0
  586. package/dist/src/components/DropdownMenu.cjs.map +1 -0
  587. package/dist/src/components/EmptyState.cjs +2 -0
  588. package/dist/src/components/EmptyState.cjs.map +1 -0
  589. package/dist/src/components/HashlineLines.cjs +2 -0
  590. package/dist/src/components/HashlineLines.cjs.map +1 -0
  591. package/dist/src/components/Input.cjs +2 -0
  592. package/dist/src/components/Input.cjs.map +1 -0
  593. package/dist/src/components/Kbd.cjs +2 -0
  594. package/dist/src/components/Kbd.cjs.map +1 -0
  595. package/dist/src/components/Label.cjs +2 -0
  596. package/dist/src/components/Label.cjs.map +1 -0
  597. package/dist/src/components/Markdown.cjs +3 -0
  598. package/dist/src/components/Markdown.cjs.map +1 -0
  599. package/dist/src/components/McpApp.cjs +2 -0
  600. package/dist/src/components/McpApp.cjs.map +1 -0
  601. package/dist/src/components/McpToolWidget.cjs +3 -0
  602. package/dist/src/components/McpToolWidget.cjs.map +1 -0
  603. package/dist/src/components/MediaPreview.cjs +2 -0
  604. package/dist/src/components/MediaPreview.cjs.map +1 -0
  605. package/dist/src/components/MermaidDiagram.cjs +2 -0
  606. package/dist/src/components/MermaidDiagram.cjs.map +1 -0
  607. package/dist/src/components/MessageItem.cjs +2 -0
  608. package/dist/src/components/MessageItem.cjs.map +1 -0
  609. package/dist/src/components/MessageLines.cjs +2 -0
  610. package/dist/src/components/MessageLines.cjs.map +1 -0
  611. package/dist/src/components/OptionList.cjs +2 -0
  612. package/dist/src/components/OptionList.cjs.map +1 -0
  613. package/dist/src/components/Panel.cjs +2 -0
  614. package/dist/src/components/Panel.cjs.map +1 -0
  615. package/dist/src/components/PdfPreview.cjs +2 -0
  616. package/dist/src/components/PdfPreview.cjs.map +1 -0
  617. package/dist/src/components/Picker.cjs +2 -0
  618. package/dist/src/components/Picker.cjs.map +1 -0
  619. package/dist/src/components/Popover.cjs +2 -0
  620. package/dist/src/components/Popover.cjs.map +1 -0
  621. package/dist/src/components/Progress.cjs +2 -0
  622. package/dist/src/components/Progress.cjs.map +1 -0
  623. package/dist/src/components/RadioGroup.cjs +2 -0
  624. package/dist/src/components/RadioGroup.cjs.map +1 -0
  625. package/dist/src/components/ReviewCommentDraft.cjs +2 -0
  626. package/dist/src/components/ReviewCommentDraft.cjs.map +1 -0
  627. package/dist/src/components/ScrollArea.cjs +2 -0
  628. package/dist/src/components/ScrollArea.cjs.map +1 -0
  629. package/dist/src/components/SectionLabel.cjs +2 -0
  630. package/dist/src/components/SectionLabel.cjs.map +1 -0
  631. package/dist/src/components/Select.cjs +2 -0
  632. package/dist/src/components/Select.cjs.map +1 -0
  633. package/dist/src/components/Separator.cjs +2 -0
  634. package/dist/src/components/Separator.cjs.map +1 -0
  635. package/dist/src/components/Settings.cjs +2 -0
  636. package/dist/src/components/Settings.cjs.map +1 -0
  637. package/dist/src/components/Sheet.cjs +2 -0
  638. package/dist/src/components/Sheet.cjs.map +1 -0
  639. package/dist/src/components/Skeleton.cjs +2 -0
  640. package/dist/src/components/Skeleton.cjs.map +1 -0
  641. package/dist/src/components/Spinner.cjs +2 -0
  642. package/dist/src/components/Spinner.cjs.map +1 -0
  643. package/dist/src/components/StatusBadge.cjs +2 -0
  644. package/dist/src/components/StatusBadge.cjs.map +1 -0
  645. package/dist/src/components/StreamCursor.cjs +2 -0
  646. package/dist/src/components/StreamCursor.cjs.map +1 -0
  647. package/dist/src/components/Switch.cjs +2 -0
  648. package/dist/src/components/Switch.cjs.map +1 -0
  649. package/dist/src/components/SyntaxText.cjs +4 -0
  650. package/dist/src/components/SyntaxText.cjs.map +1 -0
  651. package/dist/src/components/Tabs.cjs +2 -0
  652. package/dist/src/components/Tabs.cjs.map +1 -0
  653. package/dist/src/components/TerminalView.cjs +2 -0
  654. package/dist/src/components/TerminalView.cjs.map +1 -0
  655. package/dist/src/components/Textarea.cjs +2 -0
  656. package/dist/src/components/Textarea.cjs.map +1 -0
  657. package/dist/src/components/Toast.cjs +2 -0
  658. package/dist/src/components/Toast.cjs.map +1 -0
  659. package/dist/src/components/ToolPathLink.cjs +2 -0
  660. package/dist/src/components/ToolPathLink.cjs.map +1 -0
  661. package/dist/src/components/Tooltip.cjs +2 -0
  662. package/dist/src/components/Tooltip.cjs.map +1 -0
  663. package/dist/src/icons/icons.cjs +1 -0
  664. package/dist/src/lib/ansiSpans.cjs +2 -0
  665. package/dist/src/lib/ansiSpans.cjs.map +1 -0
  666. package/dist/src/lib/cn.cjs +2 -0
  667. package/dist/src/lib/cn.cjs.map +1 -0
  668. package/dist/src/lib/collapse.cjs +2 -0
  669. package/dist/src/lib/collapse.cjs.map +1 -0
  670. package/dist/src/lib/editorController.cjs +2 -0
  671. package/dist/src/lib/editorController.cjs.map +1 -0
  672. package/dist/src/lib/editorLanguage.cjs +2 -0
  673. package/dist/src/lib/editorLanguage.cjs.map +1 -0
  674. package/dist/src/lib/editorTheme.cjs +2 -0
  675. package/dist/src/lib/editorTheme.cjs.map +1 -0
  676. package/dist/src/lib/fenceGrammar.cjs +2 -0
  677. package/dist/src/lib/fenceGrammar.cjs.map +1 -0
  678. package/dist/src/lib/hashlineHighlight.cjs +3 -0
  679. package/dist/src/lib/hashlineHighlight.cjs.map +1 -0
  680. package/dist/src/lib/hashlineView.cjs +6 -0
  681. package/dist/src/lib/hashlineView.cjs.map +1 -0
  682. package/dist/src/lib/media.cjs +2 -0
  683. package/dist/src/lib/media.cjs.map +1 -0
  684. package/dist/src/lib/mediaPlayback.cjs +2 -0
  685. package/dist/src/lib/mediaPlayback.cjs.map +1 -0
  686. package/dist/src/lib/mermaidDiagram.cjs +2 -0
  687. package/dist/src/lib/mermaidDiagram.cjs.map +1 -0
  688. package/dist/src/lib/optionList.cjs +2 -0
  689. package/dist/src/lib/optionList.cjs.map +1 -0
  690. package/dist/src/lib/pathGroups.cjs +2 -0
  691. package/dist/src/lib/pathGroups.cjs.map +1 -0
  692. package/dist/src/lib/picker.cjs +2 -0
  693. package/dist/src/lib/picker.cjs.map +1 -0
  694. package/dist/src/lib/review.cjs +8 -0
  695. package/dist/src/lib/review.cjs.map +1 -0
  696. package/dist/src/lib/syntaxHighlight.cjs +3 -0
  697. package/dist/src/lib/syntaxHighlight.cjs.map +1 -0
  698. package/dist/src/lib/tone.cjs +2 -0
  699. package/dist/src/lib/tone.cjs.map +1 -0
  700. package/dist/src/theme/apply.cjs +3 -0
  701. package/dist/src/theme/apply.cjs.map +1 -0
  702. package/dist/src/theme/builtinThemes.cjs +2 -0
  703. package/dist/src/theme/builtinThemes.cjs.map +1 -0
  704. package/dist/src/theme/derive.cjs +2 -0
  705. package/dist/src/theme/derive.cjs.map +1 -0
  706. package/dist/src/theme/nativeTheme.cjs +2 -0
  707. package/dist/src/theme/nativeTheme.cjs.map +1 -0
  708. package/dist/src/theme/parse.cjs +2 -0
  709. package/dist/src/theme/parse.cjs.map +1 -0
  710. package/dist/src/theme/piTheme.cjs +2 -0
  711. package/dist/src/theme/piTheme.cjs.map +1 -0
  712. package/dist/src/theme/preference.cjs +2 -0
  713. package/dist/src/theme/preference.cjs.map +1 -0
  714. package/dist/src/types/editor.cjs +2 -0
  715. package/dist/src/types/editor.cjs.map +1 -0
  716. package/dist/src/types/theme.cjs +2 -0
  717. package/dist/src/types/theme.cjs.map +1 -0
  718. package/dist/src/types/tone.cjs +2 -0
  719. package/dist/src/types/tone.cjs.map +1 -0
  720. package/dist/theme.cjs +1 -0
  721. package/dist/theme.d.mts +8 -0
  722. package/dist/theme.mjs +1 -0
  723. package/dist/themes/doom-nord-dark.cjs +2 -0
  724. package/dist/themes/doom-nord-dark.cjs.map +1 -0
  725. package/dist/themes/doom-one-dark.cjs +2 -0
  726. package/dist/themes/doom-one-dark.cjs.map +1 -0
  727. package/dist/themes/doom-one-light.cjs +2 -0
  728. package/dist/themes/doom-one-light.cjs.map +1 -0
  729. package/llms.txt +8 -0
  730. package/package.json +130 -0
  731. package/styles/mcp.css +22 -0
  732. package/styles/preview.css +17 -0
  733. package/styles/theme.css +311 -0
  734. package/styles/tokens.css +15 -0
  735. package/themes/doom-nord-dark.json +27 -0
  736. package/themes/doom-one-dark.json +30 -0
  737. package/themes/doom-one-light.json +28 -0
@@ -0,0 +1,15 @@
1
+ //#region src/theme/preference.d.ts
2
+ /** Where the page remembers the chosen theme; one key, machine-local. */
3
+ export declare const THEME_STORAGE_KEY = "po.web.theme";
4
+ /** The two Storage calls the preference needs, so tests pass a plain map. */
5
+ export interface PreferenceStorage {
6
+ getItem(key: string): string | null;
7
+ setItem(key: string, value: string): void;
8
+ removeItem(key: string): void;
9
+ }
10
+ /** The stored theme name, or null when nothing was chosen or storage is unavailable. */
11
+ export declare function readThemePreference(storage: PreferenceStorage | undefined): string | null;
12
+ /** Remembers a theme name; null forgets it. Storage failures are swallowed: a theme is a convenience. */
13
+ export declare function writeThemePreference(storage: PreferenceStorage | undefined, name: string | null): void;
14
+ //#endregion
15
+ //# sourceMappingURL=preference.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preference.d.mts","names":[],"sources":["../../../../../../src/theme/preference.ts"],"mappings":";;qBACa;;iBAGI;EACf,QAAQ;EACR,QAAQ,aAAa;EACrB,WAAW;;;wBAIG,oBAAoB,SAAS;;wBAU7B,qBAAqB,SAAS,+BAA+B"}
@@ -0,0 +1,2 @@
1
+ const e=`po.web.theme`;function t(e){try{let t=e?.getItem(`po.web.theme`)??null;return t===null||t===``?null:t}catch{return null}}function n(t,n){try{n===null?t?.removeItem(e):t?.setItem(e,n)}catch{}}export{e as THEME_STORAGE_KEY,t as readThemePreference,n as writeThemePreference};
2
+ //# sourceMappingURL=preference.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preference.mjs","names":["THEME_STORAGE_KEY","readThemePreference","value","storage","writeThemePreference","name"],"sources":["../../../../../../src/theme/preference.ts"],"sourcesContent":["/** Where the page remembers the chosen theme; one key, machine-local. */\nexport const THEME_STORAGE_KEY = 'po.web.theme';\n\n/** The two Storage calls the preference needs, so tests pass a plain map. */\nexport interface PreferenceStorage {\n getItem(key: string): string | null;\n setItem(key: string, value: string): void;\n removeItem(key: string): void;\n}\n\n/** The stored theme name, or null when nothing was chosen or storage is unavailable. */\nexport function readThemePreference(storage: PreferenceStorage | undefined): string | null {\n try {\n const value = storage?.getItem(THEME_STORAGE_KEY) ?? null;\n return value === null || value === '' ? null : value;\n } catch {\n return null;\n }\n}\n\n/** Remembers a theme name; null forgets it. Storage failures are swallowed: a theme is a convenience. */\nexport function writeThemePreference(storage: PreferenceStorage | undefined, name: string | null): void {\n try {\n if (name === null) storage?.removeItem(THEME_STORAGE_KEY);\n else storage?.setItem(THEME_STORAGE_KEY, name);\n } catch {\n // Private mode or a full quota: the theme still applies for this page load.\n }\n}\n"],"mappings":"AACA,MAAaA,EAAoB,eAUjC,SAAgBC,EAAoB,EAAuD,CACzF,GAAI,CACF,IAAMC,EAAQC,GAAS,QAAA,cAAyB,GAAK,KACrD,OAAOD,IAAU,MAAQA,IAAU,GAAK,KAAOA,CACjD,MAAQ,CACN,OAAO,IACT,CACF,CAGA,SAAgBE,EAAqB,EAAwC,EAA2B,CACtG,GAAI,CACEC,IAAS,KAAMF,GAAS,WAAWH,CAAiB,EACnDG,GAAS,QAAQH,EAAmBK,CAAI,CAC/C,MAAQ,CAER,CACF"}
@@ -0,0 +1,46 @@
1
+ //#region src/types/diff.d.ts
2
+ /**
3
+ * The shapes a diff and a review comment take on screen.
4
+ *
5
+ * A row carries one line number, and which file it belongs to follows from the
6
+ * marker: the new file's for context and additions, the old file's for
7
+ * removals. That is what lets a comment on a removed line point at the old
8
+ * file instead of at an unrelated line of the new one.
9
+ */
10
+ /** Which file a line number belongs to. */
11
+ export type DiffSide = 'old' | 'new';
12
+ export type DiffMarker = '+' | '-' | ' ';
13
+ /** One line of a diff: new-side number for context and additions, old-side for removals. */
14
+ export interface DiffRow {
15
+ marker: DiffMarker;
16
+ line: number;
17
+ content: string;
18
+ }
19
+ /** A run of changed lines with its context. Hunks arrive apart; the view draws the gap. */
20
+ export interface DiffHunk {
21
+ start: number;
22
+ rows: readonly DiffRow[];
23
+ }
24
+ /** What a reader picked: a line range on one side, and the text they highlighted. */
25
+ export interface DiffSelection {
26
+ side: DiffSide;
27
+ startLine: number;
28
+ endLine: number;
29
+ snippet: string;
30
+ }
31
+ /** One review note, anchored to lines on one side, or to a quoted selection with no lines. */
32
+ export interface ReviewComment {
33
+ id: string;
34
+ /** The file's identity for the owner: an absolute path, or the repository-relative one. */
35
+ path: string;
36
+ /** What the message names the file by. */
37
+ relPath: string;
38
+ /** Absent means the new side, which is what every anchor meant before sides existed. */
39
+ side?: DiffSide;
40
+ startLine?: number;
41
+ endLine?: number;
42
+ snippet: string;
43
+ body: string;
44
+ }
45
+ //#endregion
46
+ //# sourceMappingURL=diff.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff.d.mts","names":[],"sources":["../../../../../../src/types/diff.ts"],"mappings":";;;;;;;;;;YAUY;YAEA;;iBAGK;EACf,QAAQ;EACR;EACA;;;iBAIe;EACf;EACA,eAAe;;;iBAIA;EACf,MAAM;EACN;EACA;EACA;;;iBAIe;EACf;;EAEA;;EAEA;;EAEA,OAAO;EACP;EACA;EACA;EACA"}
@@ -0,0 +1,78 @@
1
+ //#region src/types/editor.d.ts
2
+ /**
3
+ * The vocabulary a file surface shares: how a file is shown, and what an
4
+ * editor hands back when a reader selects part of one.
5
+ *
6
+ * It lives here rather than beside the components so a caller can classify a
7
+ * path, or hold a selection in its own state, without pulling the editor
8
+ * chunk in behind it.
9
+ */
10
+ /** How a file is shown when its bytes are not text: inline by kind, or offered as a download. */
11
+ export declare const MEDIA_KINDS: readonly ['image', 'video', 'pdf', 'download'];
12
+ export type MediaKind = (typeof MEDIA_KINDS)[number];
13
+ /**
14
+ * What a reader picked out, in the terms a review comment needs: the text
15
+ * itself, and where it sits. Lines are one-based, matching what an editor
16
+ * gutter shows, and a caret with nothing selected reports the same line twice
17
+ * with empty text.
18
+ */
19
+ export interface EditorSelectionRange {
20
+ text: string;
21
+ /** Zero-based, half-open offsets in the mounted document. */
22
+ from: number;
23
+ to: number;
24
+ startLine: number;
25
+ endLine: number;
26
+ }
27
+ /** A zero-based half-open range in the mounted editor document. */
28
+ export interface EditorTextRange {
29
+ from: number;
30
+ to: number;
31
+ }
32
+ /** A persistent numbered annotation drawn over a mounted editor range. */
33
+ export interface EditorMarkedRange extends EditorTextRange {
34
+ label: string;
35
+ }
36
+ /** One replacement applied with the other edits in a single editor transaction. */
37
+ export interface EditorEdit extends EditorTextRange {
38
+ insert: string;
39
+ }
40
+ /** A client-coordinate rectangle over the visible editor viewport. */
41
+ export interface EditorViewportRectangle {
42
+ left: number;
43
+ top: number;
44
+ right: number;
45
+ bottom: number;
46
+ }
47
+ /** The deliberately small imperative surface exposed by a mounted editor. */
48
+ export interface CodeEditorController {
49
+ focus: () => void;
50
+ revealAndSelect: (range: EditorTextRange) => void;
51
+ applyEdits: (edits: readonly EditorEdit[]) => void;
52
+ setClosedRanges: (ranges: readonly EditorTextRange[]) => void;
53
+ setMarkedRanges: (ranges: readonly EditorMarkedRange[]) => void;
54
+ /** Resolves visible geometry to a document-native range, or null when it misses the document. */
55
+ resolveViewportRegion: (rectangle: EditorViewportRectangle) => EditorSelectionRange | null;
56
+ }
57
+ export interface CodeEditorProps {
58
+ value: string;
59
+ /**
60
+ * The file this content came from. It picks the syntax grammar and nothing
61
+ * else; leave it off and the editor stays plain text.
62
+ */
63
+ path?: string;
64
+ readOnly?: boolean;
65
+ /**
66
+ * Wraps long lines rather than scrolling sideways. On by default, because
67
+ * the cockpit is read on phones and unwrapped code there is unreadable.
68
+ */
69
+ lineWrapping?: boolean;
70
+ className?: string;
71
+ 'data-testid'?: string;
72
+ onChange?: (value: string) => void;
73
+ onSelect?: (range: EditorSelectionRange) => void;
74
+ /** Receives the controller while the CodeMirror view is mounted, and `null` after it is destroyed. */
75
+ controllerRef?: import('react').Ref<CodeEditorController>;
76
+ }
77
+ //#endregion
78
+ //# sourceMappingURL=editor.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor.d.mts","names":[],"sources":["../../../../../../src/types/editor.ts"],"mappings":";;;;;;;;;;qBAUa;YACD,oBAAoB;;;;;;;iBAQf;EACf;;EAEA;EACA;EACA;EACA;;;iBAIe;EACf;EACA;;;iBAIe,0BAA0B;EACzC;;;iBAGe,mBAAmB;EAClC;;;iBAIe;EACf;EACA;EACA;EACA;;;iBAIe;EACf;EACA,kBAAkB,OAAO;EACzB,aAAa,gBAAgB;EAC7B,kBAAkB,iBAAiB;EACnC,kBAAkB,iBAAiB;;EAEnC,wBAAwB,WAAW,4BAA4B;;iBAGhD;EACf;;;;;EAKA;EACA;;;;;EAKA;EACA;EACA;EACA,YAAY;EACZ,YAAY,OAAO;;EAEnB,gCAAgC,IAAI"}
@@ -0,0 +1,2 @@
1
+ const e=[`image`,`video`,`pdf`,`download`];export{e as MEDIA_KINDS};
2
+ //# sourceMappingURL=editor.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor.mjs","names":["MEDIA_KINDS"],"sources":["../../../../../../src/types/editor.ts"],"sourcesContent":["/**\n * The vocabulary a file surface shares: how a file is shown, and what an\n * editor hands back when a reader selects part of one.\n *\n * It lives here rather than beside the components so a caller can classify a\n * path, or hold a selection in its own state, without pulling the editor\n * chunk in behind it.\n */\n\n/** How a file is shown when its bytes are not text: inline by kind, or offered as a download. */\nexport const MEDIA_KINDS = ['image', 'video', 'pdf', 'download'] as const;\nexport type MediaKind = (typeof MEDIA_KINDS)[number];\n\n/**\n * What a reader picked out, in the terms a review comment needs: the text\n * itself, and where it sits. Lines are one-based, matching what an editor\n * gutter shows, and a caret with nothing selected reports the same line twice\n * with empty text.\n */\nexport interface EditorSelectionRange {\n text: string;\n /** Zero-based, half-open offsets in the mounted document. */\n from: number;\n to: number;\n startLine: number;\n endLine: number;\n}\n\n/** A zero-based half-open range in the mounted editor document. */\nexport interface EditorTextRange {\n from: number;\n to: number;\n}\n\n/** A persistent numbered annotation drawn over a mounted editor range. */\nexport interface EditorMarkedRange extends EditorTextRange {\n label: string;\n}\n/** One replacement applied with the other edits in a single editor transaction. */\nexport interface EditorEdit extends EditorTextRange {\n insert: string;\n}\n\n/** A client-coordinate rectangle over the visible editor viewport. */\nexport interface EditorViewportRectangle {\n left: number;\n top: number;\n right: number;\n bottom: number;\n}\n\n/** The deliberately small imperative surface exposed by a mounted editor. */\nexport interface CodeEditorController {\n focus: () => void;\n revealAndSelect: (range: EditorTextRange) => void;\n applyEdits: (edits: readonly EditorEdit[]) => void;\n setClosedRanges: (ranges: readonly EditorTextRange[]) => void;\n setMarkedRanges: (ranges: readonly EditorMarkedRange[]) => void;\n /** Resolves visible geometry to a document-native range, or null when it misses the document. */\n resolveViewportRegion: (rectangle: EditorViewportRectangle) => EditorSelectionRange | null;\n}\n\nexport interface CodeEditorProps {\n value: string;\n /**\n * The file this content came from. It picks the syntax grammar and nothing\n * else; leave it off and the editor stays plain text.\n */\n path?: string;\n readOnly?: boolean;\n /**\n * Wraps long lines rather than scrolling sideways. On by default, because\n * the cockpit is read on phones and unwrapped code there is unreadable.\n */\n lineWrapping?: boolean;\n className?: string;\n 'data-testid'?: string;\n onChange?: (value: string) => void;\n onSelect?: (range: EditorSelectionRange) => void;\n /** Receives the controller while the CodeMirror view is mounted, and `null` after it is destroyed. */\n controllerRef?: import('react').Ref<CodeEditorController>;\n}\n"],"mappings":"AAUA,MAAaA,EAAc,CAAC,QAAS,QAAS,MAAO,UAAU"}
@@ -0,0 +1,38 @@
1
+ //#region src/types/theme.d.ts
2
+ /**
3
+ * The web theme contract: the named colours every cockpit surface is built
4
+ * from. Palette tokens are the hand-picked values a theme must supply; the
5
+ * derived tokens (tinted backgrounds, accented borders) are computed from the
6
+ * palette unless a theme pins them, which is how the shipped dark theme keeps
7
+ * its exact mockup values while a third-party theme needs only the palette.
8
+ */
9
+ export declare const PALETTE_TOKENS: readonly ['bg', 'rail', 'panel', 'deep', 'border', 'border-soft', 'hi', 'text', 'dim', 'faint', 'blue', 'green', 'yellow', 'red', 'magenta', 'violet', 'cyan', 'orange', 'teal', 'selected'];
10
+ export declare const ACCENT_TOKENS: readonly ['blue', 'green', 'yellow', 'red', 'magenta', 'violet', 'cyan', 'orange', 'teal'];
11
+ export declare const DERIVED_TOKENS: readonly ['tint-blue', 'tint-green', 'tint-yellow', 'tint-red', 'tint-magenta', 'tint-violet', 'tint-cyan', 'tint-orange', 'tint-teal', 'edge-blue', 'edge-green', 'edge-yellow', 'edge-red', 'edge-magenta', 'edge-violet', 'edge-cyan', 'edge-orange', 'edge-teal',
12
+ /**
13
+ * The readable foreground on the `selected` surface. Derived so an existing
14
+ * theme stays valid, but a theme whose `selected` is pale must pin it: CSS
15
+ * cannot pick a contrasting colour on its own, and the fallback assumes a
16
+ * saturated selection, which is what both shipped themes use.
17
+ */
18
+ 'on-selected', 'font-mono'];
19
+ export declare const THEME_TOKENS: readonly ["bg", "rail", "panel", "deep", "border", "border-soft", "hi", "text", "dim", "faint", "blue", "green", "yellow", "red", "magenta", "violet", "cyan", "orange", "teal", "selected", "tint-blue", "tint-green", "tint-yellow", "tint-red", "tint-magenta", "tint-violet", "tint-cyan", "tint-orange", "tint-teal", "edge-blue", "edge-green", "edge-yellow", "edge-red", "edge-magenta", "edge-violet", "edge-cyan", "edge-orange", "edge-teal", "on-selected", "font-mono"];
20
+ export type PaletteToken = (typeof PALETTE_TOKENS)[number];
21
+ export type AccentToken = (typeof ACCENT_TOKENS)[number];
22
+ export type DerivedToken = (typeof DERIVED_TOKENS)[number];
23
+ export type ThemeToken = (typeof THEME_TOKENS)[number];
24
+ export type ThemeScheme = 'dark' | 'light';
25
+ /** A theme config as written in JSON: identity, colour scheme, and the token values. */
26
+ export interface ThemeConfig {
27
+ /** Stable id, kebab-case; the `data-theme` attribute and the stored preference. */
28
+ name: string;
29
+ /** What a picker shows. */
30
+ label: string;
31
+ /** Drives `color-scheme` so native controls and scrollbars match. */
32
+ scheme: ThemeScheme;
33
+ tokens: Record<PaletteToken, string> & Partial<Record<DerivedToken, string>>;
34
+ }
35
+ /** The CSS custom property a token is published as. */
36
+ export declare function themeVariable(token: ThemeToken): `--doom-${ThemeToken}`;
37
+ //#endregion
38
+ //# sourceMappingURL=theme.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.d.mts","names":[],"sources":["../../../../../../src/types/theme.ts"],"mappings":";;;;;;;;qBAOa;qBAuBA;qBAEA;;;;;;;;qBA6BA;YAED,uBAAuB;YACvB,sBAAsB;YACtB,uBAAuB;YACvB,qBAAqB;YAErB;;iBAGK;;EAEf;;EAEA;;EAEA,QAAQ;EACR,QAAQ,OAAO,wBAAwB,QAAQ,OAAO;;;wBAIxC,cAAc,OAAO,uBAAuB"}
@@ -0,0 +1,2 @@
1
+ const e=[`bg`,`rail`,`panel`,`deep`,`border`,`border-soft`,`hi`,`text`,`dim`,`faint`,`blue`,`green`,`yellow`,`red`,`magenta`,`violet`,`cyan`,`orange`,`teal`,`selected`],t=[`blue`,`green`,`yellow`,`red`,`magenta`,`violet`,`cyan`,`orange`,`teal`],n=[`tint-blue`,`tint-green`,`tint-yellow`,`tint-red`,`tint-magenta`,`tint-violet`,`tint-cyan`,`tint-orange`,`tint-teal`,`edge-blue`,`edge-green`,`edge-yellow`,`edge-red`,`edge-magenta`,`edge-violet`,`edge-cyan`,`edge-orange`,`edge-teal`,`on-selected`,`font-mono`],r=[...e,...n];function i(e){return`--doom-${e}`}export{t as ACCENT_TOKENS,n as DERIVED_TOKENS,e as PALETTE_TOKENS,r as THEME_TOKENS,i as themeVariable};
2
+ //# sourceMappingURL=theme.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.mjs","names":["PALETTE_TOKENS","ACCENT_TOKENS","DERIVED_TOKENS","THEME_TOKENS","themeVariable","token"],"sources":["../../../../../../src/types/theme.ts"],"sourcesContent":["/**\n * The web theme contract: the named colours every cockpit surface is built\n * from. Palette tokens are the hand-picked values a theme must supply; the\n * derived tokens (tinted backgrounds, accented borders) are computed from the\n * palette unless a theme pins them, which is how the shipped dark theme keeps\n * its exact mockup values while a third-party theme needs only the palette.\n */\nexport const PALETTE_TOKENS = [\n 'bg',\n 'rail',\n 'panel',\n 'deep',\n 'border',\n 'border-soft',\n 'hi',\n 'text',\n 'dim',\n 'faint',\n 'blue',\n 'green',\n 'yellow',\n 'red',\n 'magenta',\n 'violet',\n 'cyan',\n 'orange',\n 'teal',\n 'selected',\n] as const;\n\nexport const ACCENT_TOKENS = ['blue', 'green', 'yellow', 'red', 'magenta', 'violet', 'cyan', 'orange', 'teal'] as const;\n\nexport const DERIVED_TOKENS = [\n 'tint-blue',\n 'tint-green',\n 'tint-yellow',\n 'tint-red',\n 'tint-magenta',\n 'tint-violet',\n 'tint-cyan',\n 'tint-orange',\n 'tint-teal',\n 'edge-blue',\n 'edge-green',\n 'edge-yellow',\n 'edge-red',\n 'edge-magenta',\n 'edge-violet',\n 'edge-cyan',\n 'edge-orange',\n 'edge-teal',\n /**\n * The readable foreground on the `selected` surface. Derived so an existing\n * theme stays valid, but a theme whose `selected` is pale must pin it: CSS\n * cannot pick a contrasting colour on its own, and the fallback assumes a\n * saturated selection, which is what both shipped themes use.\n */\n 'on-selected',\n 'font-mono',\n] as const;\n\nexport const THEME_TOKENS = [...PALETTE_TOKENS, ...DERIVED_TOKENS] as const;\n\nexport type PaletteToken = (typeof PALETTE_TOKENS)[number];\nexport type AccentToken = (typeof ACCENT_TOKENS)[number];\nexport type DerivedToken = (typeof DERIVED_TOKENS)[number];\nexport type ThemeToken = (typeof THEME_TOKENS)[number];\n\nexport type ThemeScheme = 'dark' | 'light';\n\n/** A theme config as written in JSON: identity, colour scheme, and the token values. */\nexport interface ThemeConfig {\n /** Stable id, kebab-case; the `data-theme` attribute and the stored preference. */\n name: string;\n /** What a picker shows. */\n label: string;\n /** Drives `color-scheme` so native controls and scrollbars match. */\n scheme: ThemeScheme;\n tokens: Record<PaletteToken, string> & Partial<Record<DerivedToken, string>>;\n}\n\n/** The CSS custom property a token is published as. */\nexport function themeVariable(token: ThemeToken): `--doom-${ThemeToken}` {\n return `--doom-${token}`;\n}\n"],"mappings":"AAOA,MAAaA,EAAiB,CAC5B,KACA,OACA,QACA,OACA,SACA,cACA,KACA,OACA,MACA,QACA,OACA,QACA,SACA,MACA,UACA,SACA,OACA,SACA,OACA,UACF,EAEaC,EAAgB,CAAC,OAAQ,QAAS,SAAU,MAAO,UAAW,SAAU,OAAQ,SAAU,MAAM,EAEhGC,EAAiB,CAC5B,YACA,aACA,cACA,WACA,eACA,cACA,YACA,cACA,YACA,YACA,aACA,cACA,WACA,eACA,cACA,YACA,cACA,YAOA,cACA,WACF,EAEaC,EAAe,CAAC,GAAGH,EAAgB,GAAGE,CAAc,EAqBjE,SAAgBE,EAAc,EAA2C,CACvE,MAAO,UAAUC,GACnB"}
@@ -0,0 +1,28 @@
1
+ //#region src/types/tone.d.ts
2
+ /**
3
+ * The tone vocabularies every surface shares.
4
+ *
5
+ * Three of them exist because they answer different questions. A chromatic
6
+ * tone names a colour ("this chip is violet"), a status tone names an outcome
7
+ * ("this run failed"), and a line tone names a role inside a body of text.
8
+ * They live here, not beside the components that draw them, so a consumer can
9
+ * translate between them without importing a component, and so adding a tone
10
+ * to one table without the others fails to compile.
11
+ */
12
+ /** The accents a theme supplies; mirrors ACCENT_TOKENS in ./theme.ts. */
13
+ export declare const ACCENT_TONES: readonly ['blue', 'green', 'yellow', 'red', 'magenta', 'violet', 'cyan', 'orange', 'teal'];
14
+ export type AccentTone = (typeof ACCENT_TONES)[number];
15
+ /** What a chip may be: an accent, or the quiet default. */
16
+ export declare const CHIP_TONES: readonly ["neutral", "blue", "green", "yellow", "red", "magenta", "violet", "cyan", "orange", "teal"];
17
+ export type ChipTone = (typeof CHIP_TONES)[number];
18
+ /** A dot adds `muted` for a thing that exists but is not live. */
19
+ export declare const DOT_TONES: readonly ["neutral", "muted", "blue", "green", "yellow", "red", "magenta", "violet", "cyan", "orange", "teal"];
20
+ export type DotTone = (typeof DOT_TONES)[number];
21
+ /** What happened, rather than what colour it is. */
22
+ export declare const STATUS_TONES: readonly ['neutral', 'running', 'ok', 'error', 'info', 'accent'];
23
+ export type StatusTone = (typeof STATUS_TONES)[number];
24
+ /** The role a single line of a message body plays. */
25
+ export declare const MESSAGE_LINE_TONES: readonly ['hi', 'text', 'dim', 'muted', 'success', 'error', 'warning', 'accent'];
26
+ export type MessageLineTone = (typeof MESSAGE_LINE_TONES)[number];
27
+ //#endregion
28
+ //# sourceMappingURL=tone.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tone.d.mts","names":[],"sources":["../../../../../../src/types/tone.ts"],"mappings":";;;;;;;;;;;;qBAYa;YACD,qBAAqB;;qBAGpB;YACD,mBAAmB;;qBAGlB;YACD,kBAAkB;;qBAGjB;YACD,qBAAqB;;qBAGpB;YACD,0BAA0B"}
@@ -0,0 +1,2 @@
1
+ const e=[`blue`,`green`,`yellow`,`red`,`magenta`,`violet`,`cyan`,`orange`,`teal`],t=[`neutral`,...e],n=[`neutral`,`muted`,...e],r=[`neutral`,`running`,`ok`,`error`,`info`,`accent`],i=[`hi`,`text`,`dim`,`muted`,`success`,`error`,`warning`,`accent`];export{e as ACCENT_TONES,t as CHIP_TONES,n as DOT_TONES,i as MESSAGE_LINE_TONES,r as STATUS_TONES};
2
+ //# sourceMappingURL=tone.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tone.mjs","names":["ACCENT_TONES","CHIP_TONES","DOT_TONES","STATUS_TONES","MESSAGE_LINE_TONES"],"sources":["../../../../../../src/types/tone.ts"],"sourcesContent":["/**\n * The tone vocabularies every surface shares.\n *\n * Three of them exist because they answer different questions. A chromatic\n * tone names a colour (\"this chip is violet\"), a status tone names an outcome\n * (\"this run failed\"), and a line tone names a role inside a body of text.\n * They live here, not beside the components that draw them, so a consumer can\n * translate between them without importing a component, and so adding a tone\n * to one table without the others fails to compile.\n */\n\n/** The accents a theme supplies; mirrors ACCENT_TOKENS in ./theme.ts. */\nexport const ACCENT_TONES = ['blue', 'green', 'yellow', 'red', 'magenta', 'violet', 'cyan', 'orange', 'teal'] as const;\nexport type AccentTone = (typeof ACCENT_TONES)[number];\n\n/** What a chip may be: an accent, or the quiet default. */\nexport const CHIP_TONES = ['neutral', ...ACCENT_TONES] as const;\nexport type ChipTone = (typeof CHIP_TONES)[number];\n\n/** A dot adds `muted` for a thing that exists but is not live. */\nexport const DOT_TONES = ['neutral', 'muted', ...ACCENT_TONES] as const;\nexport type DotTone = (typeof DOT_TONES)[number];\n\n/** What happened, rather than what colour it is. */\nexport const STATUS_TONES = ['neutral', 'running', 'ok', 'error', 'info', 'accent'] as const;\nexport type StatusTone = (typeof STATUS_TONES)[number];\n\n/** The role a single line of a message body plays. */\nexport const MESSAGE_LINE_TONES = ['hi', 'text', 'dim', 'muted', 'success', 'error', 'warning', 'accent'] as const;\nexport type MessageLineTone = (typeof MESSAGE_LINE_TONES)[number];\n"],"mappings":"AAYA,MAAaA,EAAe,CAAC,OAAQ,QAAS,SAAU,MAAO,UAAW,SAAU,OAAQ,SAAU,MAAM,EAI/FC,EAAa,CAAC,UAAW,GAAGD,CAAY,EAIxCE,EAAY,CAAC,UAAW,QAAS,GAAGF,CAAY,EAIhDG,EAAe,CAAC,UAAW,UAAW,KAAM,QAAS,OAAQ,QAAQ,EAIrEC,EAAqB,CAAC,KAAM,OAAQ,MAAO,QAAS,UAAW,QAAS,UAAW,QAAQ"}
@@ -0,0 +1,2 @@
1
+ var e={name:`doom-nord-dark`,label:`Po Nord (dark)`,scheme:`dark`,tokens:{bg:`#2e3440`,rail:`#272c36`,panel:`#2b313d`,deep:`#232831`,border:`#434c5e`,"border-soft":`#353c4a`,hi:`#eceff4`,text:`#d8dee9`,dim:`#9aa4b8`,faint:`#939db1`,blue:`#81a1c1`,green:`#a3be8c`,yellow:`#ebcb8b`,red:`#bf616a`,magenta:`#b48ead`,violet:`#a3a7d6`,cyan:`#88c0d0`,orange:`#d08770`,teal:`#8fbcbb`,selected:`#4c6a92`}};export{e as default};
2
+ //# sourceMappingURL=doom-nord-dark.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doom-nord-dark.mjs","names":["doom_nord_dark_default","\"bg\"","\"rail\"","\"panel\"","\"deep\"","\"border\"","\"hi\"","\"text\"","\"dim\"","\"faint\"","\"blue\"","\"green\"","\"yellow\"","\"red\"","\"magenta\"","\"violet\"","\"cyan\"","\"orange\"","\"teal\"","\"selected\""],"sources":["../../../../../themes/doom-nord-dark.json"],"sourcesContent":[""],"mappings":""}
@@ -0,0 +1,2 @@
1
+ var e={name:`doom-one-dark`,label:`Po Bloom (dark)`,scheme:`dark`,tokens:{bg:`#1a1d1b`,rail:`#151816`,panel:`#222724`,deep:`#121513`,border:`#4f5852`,"border-soft":`#303733`,hi:`#f2efe8`,text:`#dfdcd4`,dim:`#aeb2aa`,faint:`#a1a69e`,blue:`#8db8cc`,green:`#74c9a2`,yellow:`#dcbc85`,red:`#ec9387`,magenta:`#e8aebd`,violet:`#b6a6d2`,cyan:`#94c7c6`,orange:`#d9ad84`,teal:`#93c3ab`,selected:`#2b7a62`,"tint-magenta":`#3a2a31`,"edge-magenta":`#8c5f6e`,"on-selected":`#fffcf6`}};export{e as default};
2
+ //# sourceMappingURL=doom-one-dark.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doom-one-dark.mjs","names":["doom_one_dark_default","\"bg\"","\"rail\"","\"panel\"","\"deep\"","\"border\"","\"hi\"","\"text\"","\"dim\"","\"faint\"","\"blue\"","\"green\"","\"yellow\"","\"red\"","\"magenta\"","\"violet\"","\"cyan\"","\"orange\"","\"teal\"","\"selected\""],"sources":["../../../../../themes/doom-one-dark.json"],"sourcesContent":[""],"mappings":""}
@@ -0,0 +1,2 @@
1
+ var e={name:`doom-one-light`,label:`Po Bloom (light)`,scheme:`light`,tokens:{bg:`#f6f1e7`,rail:`#efe9dc`,panel:`#fffcf5`,deep:`#e7e0d1`,border:`#9a9587`,"border-soft":`#ddd6c6`,hi:`#18271f`,text:`#2a3a31`,dim:`#55625a`,faint:`#56645b`,blue:`#285d80`,green:`#1a6b4b`,yellow:`#7a5d1c`,red:`#ad4036`,magenta:`#a2445f`,violet:`#675a80`,cyan:`#2b696c`,orange:`#8c5932`,teal:`#256b52`,selected:`#2b7a62`,"on-selected":`#fffcf6`}};export{e as default};
2
+ //# sourceMappingURL=doom-one-light.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doom-one-light.mjs","names":["doom_one_light_default","\"bg\"","\"rail\"","\"panel\"","\"deep\"","\"border\"","\"hi\"","\"text\"","\"dim\"","\"faint\"","\"blue\"","\"green\"","\"yellow\"","\"red\"","\"magenta\"","\"violet\"","\"cyan\"","\"orange\"","\"teal\"","\"selected\""],"sources":["../../../../../themes/doom-one-light.json"],"sourcesContent":[""],"mappings":""}
@@ -0,0 +1,2 @@
1
+ require("../icons/icons.cjs");const e=require("../lib/cn.cjs");let t=require("radix-ui"),n=require("react/jsx-runtime"),r=require("lucide-react");function i(e){return/* @__PURE__ */ (0,n.jsx)(t.Accordion.Root,{"data-slot":`accordion`,...e})}function a({className:r,...i}){return/* @__PURE__ */ (0,n.jsx)(t.Accordion.Item,{"data-slot":`accordion-item`,className:e.cn(`border-b border-doom-border-soft last:border-b-0`,r),...i})}function o({className:i,children:a,...o}){return/* @__PURE__ */ (0,n.jsx)(t.Accordion.Header,{className:`flex`,children:/* @__PURE__ */ (0,n.jsxs)(t.Accordion.Trigger,{"data-slot":`accordion-trigger`,className:e.cn(`flex flex-1 cursor-pointer items-center justify-between gap-2 py-2 text-left text-sm text-doom-hi outline-none transition-colors hover:text-doom-blue focus-visible:text-doom-blue [&[data-state=open]>svg]:rotate-180`,i),...o,children:[a,/* @__PURE__ */ (0,n.jsx)(r.ChevronDown,{className:`h-3 w-3 shrink-0 text-doom-faint transition-transform`})]})})}function s({className:r,...i}){return/* @__PURE__ */ (0,n.jsx)(t.Accordion.Content,{"data-slot":`accordion-content`,className:e.cn(`overflow-hidden pb-2 text-sm text-doom-dim`,r),...i})}exports.Accordion=i,exports.AccordionContent=s,exports.AccordionItem=a,exports.AccordionTrigger=o;
2
+ //# sourceMappingURL=Accordion.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Accordion.cjs","names":["AccordionPrimitive","cn","ChevronDownIcon","require_cn","radix_ui","react_jsx_runtime","lucide_react","Accordion","props","AccordionItem","className","AccordionTrigger","children","AccordionContent"],"sources":["../../../src/components/Accordion.tsx"],"sourcesContent":["import { Accordion as AccordionPrimitive } from 'radix-ui';\nimport type { ComponentProps } from 'react';\n\nimport { ChevronDownIcon } from '../icons/icons';\nimport { cn } from '../lib/cn';\n\n/** Several collapsibles that know about each other; pass type=\"single\" for one open at a time. */\nexport function Accordion(props: ComponentProps<typeof AccordionPrimitive.Root>) {\n return <AccordionPrimitive.Root data-slot=\"accordion\" {...props} />;\n}\n\nexport function AccordionItem({ className, ...props }: ComponentProps<typeof AccordionPrimitive.Item>) {\n return (\n <AccordionPrimitive.Item\n data-slot=\"accordion-item\"\n className={cn('border-b border-doom-border-soft last:border-b-0', className)}\n {...props}\n />\n );\n}\n\nexport function AccordionTrigger({ className, children, ...props }: ComponentProps<typeof AccordionPrimitive.Trigger>) {\n return (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n data-slot=\"accordion-trigger\"\n className={cn(\n 'flex flex-1 cursor-pointer items-center justify-between gap-2 py-2 text-left text-sm text-doom-hi outline-none transition-colors hover:text-doom-blue focus-visible:text-doom-blue [&[data-state=open]>svg]:rotate-180',\n className,\n )}\n {...props}\n >\n {children}\n <ChevronDownIcon className=\"h-3 w-3 shrink-0 text-doom-faint transition-transform\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n );\n}\n\nexport function AccordionContent({ className, ...props }: ComponentProps<typeof AccordionPrimitive.Content>) {\n return (\n <AccordionPrimitive.Content\n data-slot=\"accordion-content\"\n className={cn('overflow-hidden pb-2 text-sm text-doom-dim', className)}\n {...props}\n />\n );\n}\n"],"mappings":"kJAOA,SAAgBO,EAAU,EAAuD,CAC/E,MAAO,iBAAA,EAAAF,EAAA,IAAA,CAACL,EAAAA,UAAmB,KAApB,CAAyB,YAAU,YAAY,GAAIQ,CAAQ,CAAA,CACpE,CAEA,SAAgBC,EAAc,CAAE,YAAW,GAAGD,GAAyD,CACrG,MACE,iBAAA,EAAAH,EAAA,IAAA,CAACL,EAAAA,UAAmB,KAApB,CACE,YAAU,iBACV,UAAWC,EAAAA,GAAG,mDAAoDS,CAAS,EAC3E,GAAIF,CACL,CAAA,CAEL,CAEA,SAAgBG,EAAiB,CAAE,YAAW,WAAU,GAAGH,GAA4D,CACrH,MACE,iBAAA,EAAAH,EAAA,IAAA,CAACL,EAAAA,UAAmB,OAApB,CAA2B,UAAU,OACnC,SAAA,iBAAA,EAAAK,EAAA,KAAA,CAACL,EAAAA,UAAmB,QAApB,CACE,YAAU,oBACV,UAAWC,EAAAA,GACT,yNACAS,CACF,EACA,GAAIF,EANN,SAAA,CAQGI,EACD,iBAAA,EAAAP,EAAA,IAAA,CAACH,EAAAA,YAAD,CAAiB,UAAU,uDAAyD,CAAA,CAC1D,GACH,CAAA,CAE/B,CAEA,SAAgBW,EAAiB,CAAE,YAAW,GAAGL,GAA4D,CAC3G,MACE,iBAAA,EAAAH,EAAA,IAAA,CAACL,EAAAA,UAAmB,QAApB,CACE,YAAU,oBACV,UAAWC,EAAAA,GAAG,6CAA8CS,CAAS,EACrE,GAAIF,CACL,CAAA,CAEL"}
@@ -0,0 +1,4 @@
1
+ const e=require("../lib/cn.cjs"),t=require("../lib/ansiSpans.cjs");let n=require("react/jsx-runtime"),r=require("react");function i(t){return e.cn(t.className,t.bold===!0&&`font-bold`,t.faint===!0&&`opacity-60`,t.italic===!0&&`italic`,t.underline===!0&&`underline`,t.inverse===!0&&`bg-doom-text text-doom-deep`)}function a({spans:e}){return/* @__PURE__ */ (0,n.jsx)(n.Fragment,{children:e.map((e,t)=>/* @__PURE__ */ (0,n.jsx)(`span`,{className:i(e),style:e.color===void 0?void 0:{color:e.color},children:e.text},t))})}function o({line:e,className:i,...o}){let s=(0,r.useMemo)(()=>t.ansiSpans(e),[e]);return/* @__PURE__ */ (0,n.jsx)(`span`,{"data-slot":`ansi-line`,className:i,...o,children:/* @__PURE__ */ (0,n.jsx)(a,{spans:s})})}function s({text:e,...i}){let o=(0,r.useMemo)(()=>e.split(`
2
+ `).map(e=>t.ansiSpans(e)),[e]);return/* @__PURE__ */ (0,n.jsx)(`pre`,{"data-slot":`ansi-text`,...i,children:o.map((e,t)=>/* @__PURE__ */ (0,n.jsxs)(r.Fragment,{children:[t>0?`
3
+ `:null,/* @__PURE__ */ (0,n.jsx)(a,{spans:e})]},t))})}exports.AnsiLine=o,exports.AnsiText=s;
4
+ //# sourceMappingURL=AnsiText.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AnsiText.cjs","names":["cn","useMemo","ansiSpans","Fragment","require_cn","require_ansiSpans","react_jsx_runtime","react","spanClassName","span","AnsiSpans","spans","index","AnsiLine","props","line","AnsiText","lines","text"],"sources":["../../../src/components/AnsiText.tsx"],"sourcesContent":["import { type ComponentProps, Fragment, useMemo } from 'react';\n\nimport { type AnsiSpan, ansiSpans } from '../lib/ansiSpans';\nimport { cn } from '../lib/cn';\n\n/**\n * Terminal output with the colours it was written in.\n *\n * Both readers of terminal text render it the same way, so the mapping from a\n * span's attributes to classes lives here rather than in each of them: a\n * captured workflow screen is a line at a time, and a runner log is a block.\n * Parsing is synchronous and cheap; text with no escapes in it takes a path\n * that allocates nothing.\n *\n * DESIGN PATTERNS:\n * - Named colours arrive as theme classes from `ansiSpans`; only 256-colour\n * and truecolour, which no token stands for, come through as a style.\n * - One element per line, so wrapping and selection behave as they do in a pre.\n *\n * AVOID:\n * - Carrying attributes across lines. A captured screen and a bounded log tail\n * both start mid-stream.\n */\n\nfunction spanClassName(span: AnsiSpan): string {\n return cn(\n span.className,\n span.bold === true && 'font-bold',\n span.faint === true && 'opacity-60',\n span.italic === true && 'italic',\n span.underline === true && 'underline',\n span.inverse === true && 'bg-doom-text text-doom-deep',\n );\n}\n\nfunction AnsiSpans({ spans }: { spans: readonly AnsiSpan[] }) {\n return (\n <>\n {spans.map((span, index) => (\n <span\n key={index}\n className={spanClassName(span)}\n style={span.color === undefined ? undefined : { color: span.color }}\n >\n {span.text}\n </span>\n ))}\n </>\n );\n}\n\nexport interface AnsiLineProps extends Omit<ComponentProps<'span'>, 'children'> {\n /** One line of terminal output, escapes and all. */\n line: string;\n}\n\n/** One line, for a caller that already lays out a screen row by row. */\nexport function AnsiLine({ line, className, ...props }: AnsiLineProps) {\n const spans = useMemo(() => ansiSpans(line), [line]);\n return (\n <span data-slot=\"ansi-line\" className={className} {...props}>\n <AnsiSpans spans={spans} />\n </span>\n );\n}\n\nexport interface AnsiTextProps extends Omit<ComponentProps<'pre'>, 'children'> {\n /** Terminal output, newline separated, escapes and all. */\n text: string;\n}\n\n/** A block of terminal output: a log tail, or anything else that arrives whole. */\nexport function AnsiText({ text, ...props }: AnsiTextProps) {\n const lines = useMemo(() => text.split('\\n').map((line) => ansiSpans(line)), [text]);\n return (\n <pre data-slot=\"ansi-text\" {...props}>\n {lines.map((spans, index) => (\n <Fragment key={index}>\n {index > 0 ? '\\n' : null}\n <AnsiSpans spans={spans} />\n </Fragment>\n ))}\n </pre>\n );\n}\n"],"mappings":"yHAwBA,SAASQ,EAAc,EAAwB,CAC7C,OAAOR,EAAAA,GACLS,EAAK,UACLA,EAAK,OAAS,IAAQ,YACtBA,EAAK,QAAU,IAAQ,aACvBA,EAAK,SAAW,IAAQ,SACxBA,EAAK,YAAc,IAAQ,YAC3BA,EAAK,UAAY,IAAQ,6BAC3B,CACF,CAEA,SAASC,EAAU,CAAE,SAAyC,CAC5D,MACE,iBAAA,EAAAJ,EAAA,IAAA,CAAAA,EAAA,SAAA,CAAA,SACGK,EAAM,KAAK,EAAM,IAChB,iBAAA,EAAAL,EAAA,IAAA,CAAC,OAAD,CAEE,UAAWE,EAAcC,CAAI,EAC7B,MAAOA,EAAK,QAAU,IAAA,GAAY,IAAA,GAAY,CAAE,MAAOA,EAAK,KAAM,EAEjE,SAAAA,EAAK,IACF,EALCG,CAKD,CACP,CACD,CAAA,CAEN,CAQA,SAAgBC,EAAS,CAAE,OAAM,YAAW,GAAGC,GAAwB,CACrE,IAAMH,GAAA,EAAQV,EAAAA,QAAAA,KAAcC,EAAAA,UAAUa,CAAI,EAAG,CAACA,CAAI,CAAC,EACnD,MACE,iBAAA,EAAAT,EAAA,IAAA,CAAC,OAAD,CAAM,YAAU,YAAuB,YAAW,GAAIQ,EACpD,SAAA,iBAAA,EAAAR,EAAA,IAAA,CAACI,EAAD,CAAkB,OAAQ,CAAA,CACtB,CAAA,CAEV,CAQA,SAAgBM,EAAS,CAAE,OAAM,GAAGF,GAAwB,CAC1D,IAAMG,GAAA,EAAQhB,EAAAA,QAAAA,KAAciB,EAAK,MAAM;CAAI,CAAC,CAAC,IAAK,GAAShB,EAAAA,UAAUa,CAAI,CAAC,EAAG,CAACG,CAAI,CAAC,EACnF,MACE,iBAAA,EAAAZ,EAAA,IAAA,CAAC,MAAD,CAAK,YAAU,YAAY,GAAIQ,EAC5B,SAAAG,EAAM,KAAK,EAAO,IACjB,iBAAA,EAAAX,EAAA,KAAA,CAACH,EAAAA,SAAD,CAAA,SAAA,CACGS,EAAQ,EAAI;EAAO,KACpB,iBAAA,EAAAN,EAAA,IAAA,CAACI,EAAD,CAAkB,OAAQ,CAAA,CAClB,CAAA,EAHKE,CAGL,CACX,CACE,CAAA,CAET"}
@@ -0,0 +1,2 @@
1
+ const e=require("../lib/cn.cjs");let t=require("radix-ui"),n=require("react/jsx-runtime");function r({className:r,...i}){return/* @__PURE__ */ (0,n.jsx)(t.Avatar.Root,{"data-slot":`avatar`,className:e.cn(`relative flex h-6 w-6 shrink-0 overflow-hidden rounded-full bg-doom-deep`,r),...i})}function i({className:r,...i}){return/* @__PURE__ */ (0,n.jsx)(t.Avatar.Image,{"data-slot":`avatar-image`,className:e.cn(`h-full w-full object-cover`,r),...i})}function a({className:r,...i}){return/* @__PURE__ */ (0,n.jsx)(t.Avatar.Fallback,{"data-slot":`avatar-fallback`,className:e.cn(`flex h-full w-full items-center justify-center text-xs font-semibold text-doom-dim`,r),...i})}exports.Avatar=r,exports.AvatarFallback=a,exports.AvatarImage=i;
2
+ //# sourceMappingURL=Avatar.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Avatar.cjs","names":["AvatarPrimitive","cn","require_cn","radix_ui","react_jsx_runtime","Avatar","props","className","AvatarImage","AvatarFallback"],"sources":["../../../src/components/Avatar.tsx"],"sourcesContent":["import { Avatar as AvatarPrimitive } from 'radix-ui';\nimport type { ComponentProps } from 'react';\n\nimport { cn } from '../lib/cn';\n\n/** A face or an initial; Radix only shows the fallback once the image has actually failed. */\nexport function Avatar({ className, ...props }: ComponentProps<typeof AvatarPrimitive.Root>) {\n return (\n <AvatarPrimitive.Root\n data-slot=\"avatar\"\n className={cn('relative flex h-6 w-6 shrink-0 overflow-hidden rounded-full bg-doom-deep', className)}\n {...props}\n />\n );\n}\n\nexport function AvatarImage({ className, ...props }: ComponentProps<typeof AvatarPrimitive.Image>) {\n return (\n <AvatarPrimitive.Image\n data-slot=\"avatar-image\"\n className={cn('h-full w-full object-cover', className)}\n {...props}\n />\n );\n}\n\nexport function AvatarFallback({ className, ...props }: ComponentProps<typeof AvatarPrimitive.Fallback>) {\n return (\n <AvatarPrimitive.Fallback\n data-slot=\"avatar-fallback\"\n className={cn('flex h-full w-full items-center justify-center text-xs font-semibold text-doom-dim', className)}\n {...props}\n />\n );\n}\n"],"mappings":"0FAMA,SAAgBK,EAAO,CAAE,YAAW,GAAGC,GAAsD,CAC3F,MACE,iBAAA,EAAAF,EAAA,IAAA,CAACJ,EAAAA,OAAgB,KAAjB,CACE,YAAU,SACV,UAAWC,EAAAA,GAAG,2EAA4EM,CAAS,EACnG,GAAID,CACL,CAAA,CAEL,CAEA,SAAgBE,EAAY,CAAE,YAAW,GAAGF,GAAuD,CACjG,MACE,iBAAA,EAAAF,EAAA,IAAA,CAACJ,EAAAA,OAAgB,MAAjB,CACE,YAAU,eACV,UAAWC,EAAAA,GAAG,6BAA8BM,CAAS,EACrD,GAAID,CACL,CAAA,CAEL,CAEA,SAAgBG,EAAe,CAAE,YAAW,GAAGH,GAA0D,CACvG,MACE,iBAAA,EAAAF,EAAA,IAAA,CAACJ,EAAAA,OAAgB,SAAjB,CACE,YAAU,kBACV,UAAWC,EAAAA,GAAG,qFAAsFM,CAAS,EAC7G,GAAID,CACL,CAAA,CAEL"}
@@ -0,0 +1,2 @@
1
+ const e=require("../lib/cn.cjs");let t=require("radix-ui"),n=require("react/jsx-runtime");const r=(0,require("class-variance-authority").cva)(`inline-flex items-center gap-1.5 whitespace-nowrap rounded border`,{variants:{tone:{neutral:`border-doom-border text-doom-dim`,blue:`border-doom-blue/40 text-doom-blue`,green:`border-doom-green/40 text-doom-green`,yellow:`border-doom-yellow/40 text-doom-yellow`,red:`border-doom-red/40 text-doom-red`,magenta:`border-doom-magenta/40 text-doom-magenta`,violet:`border-doom-violet/40 text-doom-violet`,cyan:`border-doom-cyan/40 text-doom-cyan`,orange:`border-doom-orange/40 text-doom-orange`,teal:`border-doom-teal/40 text-doom-teal`},size:{xs:`px-1.5 py-px text-sm font-semibold`,sm:`px-2 py-0.5 text-sm`,md:`px-2.5 py-1 text-sm`,lg:`px-3 py-1.5 text-base`}},defaultVariants:{tone:`neutral`,size:`sm`}});function i({className:i,tone:a,size:o,asChild:s=!1,...c}){let l=s?t.Slot.Root:`span`;return/* @__PURE__ */ (0,n.jsx)(l,{"data-slot":`badge`,className:e.cn(r({tone:a,size:o}),i),...c})}exports.Badge=i,exports.badgeVariants=r;
2
+ //# sourceMappingURL=Badge.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Badge.cjs","names":["cva","Slot","cn","require_cn","radix_ui","react_jsx_runtime","badgeVariants","Badge","props","Component","asChild","className"],"sources":["../../../src/components/Badge.tsx"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\nimport { Slot } from 'radix-ui';\nimport type { ComponentProps } from 'react';\n\nimport { cn } from '../lib/cn';\nimport type { ChipTone } from '../types/tone';\n\nexport const badgeVariants = cva('inline-flex items-center gap-1.5 whitespace-nowrap rounded border', {\n variants: {\n tone: {\n neutral: 'border-doom-border text-doom-dim',\n blue: 'border-doom-blue/40 text-doom-blue',\n green: 'border-doom-green/40 text-doom-green',\n yellow: 'border-doom-yellow/40 text-doom-yellow',\n red: 'border-doom-red/40 text-doom-red',\n magenta: 'border-doom-magenta/40 text-doom-magenta',\n violet: 'border-doom-violet/40 text-doom-violet',\n cyan: 'border-doom-cyan/40 text-doom-cyan',\n orange: 'border-doom-orange/40 text-doom-orange',\n teal: 'border-doom-teal/40 text-doom-teal',\n } satisfies Record<ChipTone, string>,\n /** The same rungs Button names, so a chip can sit beside a button of any size. */\n size: {\n xs: 'px-1.5 py-px text-sm font-semibold',\n sm: 'px-2 py-0.5 text-sm',\n md: 'px-2.5 py-1 text-sm',\n lg: 'px-3 py-1.5 text-base',\n },\n },\n defaultVariants: { tone: 'neutral', size: 'sm' },\n});\n\nexport type BadgeTone = ChipTone;\n\nexport interface BadgeProps extends ComponentProps<'span'>, VariantProps<typeof badgeVariants> {\n /** Render the child element instead of a <span>, so a link can look like a chip. */\n asChild?: boolean;\n}\n\n/** An outlined chip in one of the accent tones; the Chip the cockpit mockup draws. */\nexport function Badge({ className, tone, size, asChild = false, ...props }: BadgeProps) {\n const Component = asChild ? Slot.Root : 'span';\n return <Component data-slot=\"badge\" className={cn(badgeVariants({ tone, size }), className)} {...props} />;\n}\n"],"mappings":"0FAOA,MAAaM,GAAA,oCAAgBN,CAAAA,CAAAA,IAAAA,CAAI,oEAAqE,CACpG,SAAU,CACR,KAAM,CACJ,QAAS,mCACT,KAAM,qCACN,MAAO,uCACP,OAAQ,yCACR,IAAK,mCACL,QAAS,2CACT,OAAQ,yCACR,KAAM,qCACN,OAAQ,yCACR,KAAM,oCACR,EAEA,KAAM,CACJ,GAAI,qCACJ,GAAI,sBACJ,GAAI,sBACJ,GAAI,uBACN,CACF,EACA,gBAAiB,CAAE,KAAM,UAAW,KAAM,IAAK,CACjD,CAAC,EAUD,SAAgBO,EAAM,CAAE,YAAW,OAAM,OAAM,UAAU,GAAO,GAAGC,GAAqB,CACtF,IAAMC,EAAYC,EAAUT,EAAAA,KAAK,KAAO,OACxC,MAAO,iBAAA,EAAAI,EAAA,IAAA,CAACI,EAAD,CAAW,YAAU,QAAQ,UAAWP,EAAAA,GAAGI,EAAc,CAAE,OAAM,MAAK,CAAC,EAAGK,CAAS,EAAG,GAAIH,CAAQ,CAAA,CAC3G"}
@@ -0,0 +1,2 @@
1
+ const e=require("../lib/cn.cjs"),t=require("./Tooltip.cjs");let n=require("react/jsx-runtime");function r(e,t=4){let n=e.split(`/`).filter(e=>e!==``);if(n.length===0)return[e];let r=Math.max(3,t);return n.length<=r?n:[n[0]??``,`…`,...n.slice(n.length-(r-2))]}function i({path:i,keep:a,className:o,"data-testid":s}){let c=r(i,a),l=c.length-1;return/* @__PURE__ */ (0,n.jsx)(t.TooltipProvider,{children:/* @__PURE__ */ (0,n.jsxs)(t.Tooltip,{children:[/* @__PURE__ */ (0,n.jsx)(t.TooltipTrigger,{asChild:!0,children:/* @__PURE__ */ (0,n.jsx)(`span`,{"data-slot":`breadcrumb`,"data-testid":s,title:void 0,className:e.cn(`flex min-w-0 items-baseline gap-1 truncate font-mono text-sm`,o),children:c.map((e,t)=>/* @__PURE__ */ (0,n.jsxs)(`span`,{className:`flex min-w-0 items-baseline gap-1`,children:[t>0?/* @__PURE__ */ (0,n.jsx)(`span`,{className:`shrink-0 text-doom-faint`,children:`/`}):null,/* @__PURE__ */ (0,n.jsx)(`span`,{className:t===l?`truncate font-semibold text-doom-hi`:`min-w-0 truncate text-doom-dim`,children:e})]},`${e}-${String(t)}`))})}),/* @__PURE__ */ (0,n.jsx)(t.TooltipContent,{className:`max-w-[32rem] break-all whitespace-normal`,children:i})]})})}exports.BREADCRUMB_ELLIPSIS=`…`,exports.Breadcrumb=i,exports.breadcrumbSegments=r;
2
+ //# sourceMappingURL=Breadcrumb.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Breadcrumb.cjs","names":["TooltipProvider","Tooltip","TooltipTrigger","cn","TooltipContent","require_cn","require_Tooltip","react_jsx_runtime","breadcrumbSegments","segments","path","segment","limit","keep","Breadcrumb","testId","lastIndex","className","index"],"sources":["../../../src/components/Breadcrumb.tsx"],"sourcesContent":["import { cn } from '../lib/cn';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from './Tooltip';\n\n/** The marker a collapsed run of segments is shown as. */\nexport const BREADCRUMB_ELLIPSIS = '…';\n\n/**\n * A path as breadcrumb segments, with the middle collapsed when it is deeper\n * than `keep` allows.\n *\n * The first segment and the last few are what place a leaf; the ones between\n * are what a reader skims past, so those are the ones that go. The leaf is\n * always the final segment and is never collapsed.\n */\nexport function breadcrumbSegments(path: string, keep = 4): string[] {\n const segments = path.split('/').filter((segment) => segment !== '');\n if (segments.length === 0) return [path];\n const limit = Math.max(3, keep);\n if (segments.length <= limit) return segments;\n // Keep room for the first segment, the collapse marker, and the leaf.\n return [segments[0] ?? '', BREADCRUMB_ELLIPSIS, ...segments.slice(segments.length - (limit - 2))];\n}\n\nexport interface BreadcrumbProps {\n /** The path to show, separated by forward slashes. */\n path: string;\n /** How many segments survive, with a minimum of three to retain the leaf. */\n keep?: number;\n /** Marks the trail so a test can find it. */\n 'data-testid'?: string;\n className?: string;\n}\n\n/**\n * A slash-separated path, shortened to fit and readable in full on hover.\n *\n * Two things shorten it, because they solve different problems. Collapsing the\n * middle keeps a deep path legible at any width, and truncation handles what is\n * left when the container is narrower than even that. Either one hides\n * something, so the whole path is always one hover away, wrapped rather than\n * clipped: a tooltip that truncates too would defeat the point of having one.\n *\n * The leaf carries the emphasis. A reader scanning a header is looking for the\n * file, and the directories are context for it.\n */\nexport function Breadcrumb({ path, keep, className, 'data-testid': testId }: BreadcrumbProps) {\n const segments = breadcrumbSegments(path, keep);\n const lastIndex = segments.length - 1;\n\n return (\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>\n <span\n data-slot=\"breadcrumb\"\n data-testid={testId}\n title={undefined}\n className={cn('flex min-w-0 items-baseline gap-1 truncate font-mono text-sm', className)}\n >\n {segments.map((segment, index) => (\n // Segments repeat in a path (src/app/src), so the index is what\n // keeps two of the same name apart.\n <span key={`${segment}-${String(index)}`} className=\"flex min-w-0 items-baseline gap-1\">\n {index > 0 ? <span className=\"shrink-0 text-doom-faint\">/</span> : null}\n <span\n className={\n index === lastIndex ? 'truncate font-semibold text-doom-hi' : 'min-w-0 truncate text-doom-dim'\n }\n >\n {segment}\n </span>\n </span>\n ))}\n </span>\n </TooltipTrigger>\n <TooltipContent className=\"max-w-[32rem] break-all whitespace-normal\">{path}</TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n}\n"],"mappings":"+FAcA,SAAgBQ,EAAmB,EAAc,EAAO,EAAa,CACnE,IAAMC,EAAWC,EAAK,MAAM,GAAG,CAAC,CAAC,OAAQ,GAAYC,IAAY,EAAE,EACnE,GAAIF,EAAS,SAAW,EAAG,MAAO,CAACC,CAAI,EACvC,IAAME,EAAQ,KAAK,IAAI,EAAGC,CAAI,EAG9B,OAFIJ,EAAS,QAAUG,EAAcH,EAE9B,CAACA,EAAS,IAAM,OAAyB,GAAGA,EAAS,MAAMA,EAAS,QAAUG,EAAQ,EAAE,CAAC,CAClG,CAwBA,SAAgBE,EAAW,CAAE,OAAM,OAAM,YAAW,cAAeC,GAA2B,CAC5F,IAAMN,EAAWD,EAAmBE,EAAMG,CAAI,EACxCG,EAAYP,EAAS,OAAS,EAEpC,MACE,iBAAA,EAAAF,EAAA,IAAA,CAACP,EAAAA,gBAAD,CAAA,SACE,iBAAA,EAAAO,EAAA,KAAA,CAACN,EAAAA,QAAD,CAAA,SAAA,CACE,iBAAA,EAAAM,EAAA,IAAA,CAACL,EAAAA,eAAD,CAAgB,QAAA,GACd,SAAA,iBAAA,EAAAK,EAAA,IAAA,CAAC,OAAD,CACE,YAAU,aACV,cAAaQ,EACb,MAAO,IAAA,GACP,UAAWZ,EAAAA,GAAG,+DAAgEc,CAAS,EAEtF,SAAAR,EAAS,KAAK,EAAS,IAGtB,iBAAA,EAAAF,EAAA,KAAA,CAAC,OAAD,CAA0C,UAAU,oCAApD,SAAA,CACGW,EAAQ,EAAI,iBAAA,EAAAX,EAAA,IAAA,CAAC,OAAD,CAAM,UAAU,2BAA2B,SAAA,GAAO,CAAA,EAAI,KACnE,iBAAA,EAAAA,EAAA,IAAA,CAAC,OAAD,CACE,UACEW,IAAUF,EAAY,sCAAwC,iCAG/D,SAAAL,CACG,CAAA,CACF,CATK,EAAA,GAAGA,EAAQ,GAAG,OAAOO,CAAK,GAS/B,CACP,CACG,CAAA,CACQ,CAAA,EAChB,iBAAA,EAAAX,EAAA,IAAA,CAACH,EAAAA,eAAD,CAAgB,UAAU,4CAA6C,SAAAM,CAAqB,CAAA,CACrF,CAAA,CAAA,CACM,CAAA,CAErB"}
@@ -0,0 +1,2 @@
1
+ const e=require("../lib/cn.cjs"),t=require("./Spinner.cjs");let n=require("radix-ui"),r=require("react/jsx-runtime");const i=(0,require("class-variance-authority").cva)(`inline-flex min-h-6 min-w-6 shrink-0 cursor-pointer items-center justify-center gap-1.5 whitespace-nowrap rounded-md font-medium transition-[color,background-color,border-color,filter] outline-none focus-visible:ring-2 focus-visible:ring-doom-green/50 disabled:pointer-events-none disabled:opacity-40 [&_svg]:pointer-events-none [&_svg]:shrink-0`,{variants:{variant:{primary:`bg-doom-selected font-semibold text-doom-on-selected hover:brightness-110`,secondary:`border border-doom-edge-magenta bg-doom-tint-magenta font-semibold text-doom-magenta hover:brightness-110`,outline:`border border-doom-border text-doom-dim hover:border-doom-green/50 hover:text-doom-hi`,ghost:`text-doom-dim hover:bg-doom-panel hover:text-doom-hi`,subtle:`bg-doom-panel text-doom-dim hover:bg-doom-deep hover:text-doom-hi`,danger:`bg-doom-red font-semibold text-doom-rail hover:brightness-110`,"danger-outline":`border border-doom-edge-red bg-doom-tint-red font-semibold text-doom-red hover:brightness-110`,success:`bg-doom-green font-semibold text-doom-rail hover:brightness-110`,link:`text-doom-blue hover:underline`},size:{xs:`h-6 rounded px-1.5 text-sm`,sm:`h-7 px-2.5 text-sm`,md:`h-8 px-3 text-base`,lg:`h-9 px-3.5 text-base`,icon:`h-6 w-6 rounded p-0`,"icon-md":`h-8 w-8 p-0`,card:`h-auto w-full flex-col items-stretch justify-start gap-1 px-[11px] py-2.5 text-left whitespace-normal`}},defaultVariants:{variant:`outline`,size:`md`}});function a({className:a,variant:o,size:s,asChild:c=!1,loading:l=!1,loadingLabel:u,disabled:d,type:f,children:p,...m}){let h=c?n.Slot.Root:`button`,g=!c&&l;return/* @__PURE__ */ (0,r.jsx)(h,{"data-slot":`button`,type:c?void 0:f??`button`,"aria-busy":g?!0:void 0,disabled:c?void 0:d??g,className:e.cn(i({variant:o,size:s}),a),...m,children:c?p:/* @__PURE__ */ (0,r.jsxs)(r.Fragment,{children:[g?/* @__PURE__ */ (0,r.jsx)(t.Spinner,{label:u}):null,p]})})}exports.Button=a,exports.buttonVariants=i;
2
+ //# sourceMappingURL=Button.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.cjs","names":["cva","Slot","cn","Spinner","require_cn","require_Spinner","radix_ui","react_jsx_runtime","buttonVariants","Button","props","Component","asChild","busy","loading","type","disabled","className","children","loadingLabel"],"sources":["../../../src/components/Button.tsx"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\nimport { Slot } from 'radix-ui';\nimport type { ComponentProps } from 'react';\n\nimport { cn } from '../lib/cn';\nimport { Spinner } from './Spinner';\n\nexport const buttonVariants = cva(\n 'inline-flex min-h-6 min-w-6 shrink-0 cursor-pointer items-center justify-center gap-1.5 whitespace-nowrap rounded-md font-medium transition-[color,background-color,border-color,filter] outline-none focus-visible:ring-2 focus-visible:ring-doom-green/50 disabled:pointer-events-none disabled:opacity-40 [&_svg]:pointer-events-none [&_svg]:shrink-0',\n {\n variants: {\n variant: {\n primary: 'bg-doom-selected font-semibold text-doom-on-selected hover:brightness-110',\n /** Rose: the caring second choice (review, adjust a preference), never urgency. */\n secondary:\n 'border border-doom-edge-magenta bg-doom-tint-magenta font-semibold text-doom-magenta hover:brightness-110',\n outline: 'border border-doom-border text-doom-dim hover:border-doom-green/50 hover:text-doom-hi',\n ghost: 'text-doom-dim hover:bg-doom-panel hover:text-doom-hi',\n subtle: 'bg-doom-panel text-doom-dim hover:bg-doom-deep hover:text-doom-hi',\n danger: 'bg-doom-red font-semibold text-doom-rail hover:brightness-110',\n 'danger-outline':\n 'border border-doom-edge-red bg-doom-tint-red font-semibold text-doom-red hover:brightness-110',\n success: 'bg-doom-green font-semibold text-doom-rail hover:brightness-110',\n link: 'text-doom-blue hover:underline',\n },\n size: {\n xs: 'h-6 rounded px-1.5 text-sm',\n sm: 'h-7 px-2.5 text-sm',\n md: 'h-8 px-3 text-base',\n lg: 'h-9 px-3.5 text-base',\n icon: 'h-6 w-6 rounded p-0',\n 'icon-md': 'h-8 w-8 p-0',\n /**\n * A whole card that is one click target: a session in the rail, a run\n * in a panel. It keeps the button's focus ring and cursor and gives up\n * the button's single-line box, which is what a card-shaped <button>\n * would otherwise have to restate.\n */\n card: 'h-auto w-full flex-col items-stretch justify-start gap-1 px-[11px] py-2.5 text-left whitespace-normal',\n },\n },\n defaultVariants: { variant: 'outline', size: 'md' },\n },\n);\n\nexport type ButtonVariant = NonNullable<VariantProps<typeof buttonVariants>['variant']>;\nexport type ButtonSize = NonNullable<VariantProps<typeof buttonVariants>['size']>;\n\nexport interface ButtonProps extends ComponentProps<'button'>, VariantProps<typeof buttonVariants> {\n /** Render the child element instead of a <button>, passing the classes down (shadcn's asChild). */\n asChild?: boolean;\n /**\n * Work is in flight: the button shows a spinner and stops accepting clicks.\n * Ignored under asChild, where the child owns its own content.\n */\n loading?: boolean;\n /** What the spinner announces while loading; omit it and the wait is silent. */\n loadingLabel?: string;\n}\n\n/** The one button: every variant is a theme token, so it recolours with the theme. */\nexport function Button({\n className,\n variant,\n size,\n asChild = false,\n loading = false,\n loadingLabel,\n disabled,\n type,\n children,\n ...props\n}: ButtonProps) {\n const Component = asChild ? Slot.Root : 'button';\n const busy = !asChild && loading;\n return (\n <Component\n data-slot=\"button\"\n type={asChild ? undefined : (type ?? 'button')}\n aria-busy={busy ? true : undefined}\n disabled={asChild ? undefined : (disabled ?? busy)}\n className={cn(buttonVariants({ variant, size }), className)}\n {...props}\n >\n {/* Slot takes exactly one child, so asChild hands its element straight through. */}\n {asChild ? (\n children\n ) : (\n <>\n {busy ? <Spinner label={loadingLabel} /> : null}\n {children}\n </>\n )}\n </Component>\n );\n}\n"],"mappings":"qHAOA,MAAaQ,GAAA,oCAAiBR,CAAAA,CAAAA,IAAAA,CAC5B,4VACA,CACE,SAAU,CACR,QAAS,CACP,QAAS,4EAET,UACE,4GACF,QAAS,wFACT,MAAO,uDACP,OAAQ,oEACR,OAAQ,gEACR,iBACE,gGACF,QAAS,kEACT,KAAM,gCACR,EACA,KAAM,CACJ,GAAI,6BACJ,GAAI,qBACJ,GAAI,qBACJ,GAAI,uBACJ,KAAM,sBACN,UAAW,cAOX,KAAM,uGACR,CACF,EACA,gBAAiB,CAAE,QAAS,UAAW,KAAM,IAAK,CACpD,CACF,EAkBA,SAAgBS,EAAO,CACrB,YACA,UACA,OACA,UAAU,GACV,UAAU,GACV,eACA,WACA,OACA,WACA,GAAGC,GACW,CACd,IAAMC,EAAYC,EAAUX,EAAAA,KAAK,KAAO,SAClCY,EAAO,CAACD,GAAWE,EACzB,MACE,iBAAA,EAAAP,EAAA,IAAA,CAACI,EAAD,CACE,YAAU,SACV,KAAMC,EAAU,IAAA,GAAaG,GAAQ,SACrC,YAAWF,EAAO,GAAO,IAAA,GACzB,SAAUD,EAAU,IAAA,GAAaI,GAAYH,EAC7C,UAAWX,EAAAA,GAAGM,EAAe,CAAE,UAAS,MAAK,CAAC,EAAGS,CAAS,EAC1D,GAAIP,EAGH,SAAAE,EACCM,EAEA,iBAAA,EAAAX,EAAA,KAAA,CAAAA,EAAA,SAAA,CAAA,SAAA,CACGM,EAAO,iBAAA,EAAAN,EAAA,IAAA,CAACJ,EAAAA,QAAD,CAAS,MAAOgB,CAAe,CAAA,EAAI,KAC1CD,CACD,CAAA,CAAA,CAEK,CAAA,CAEf"}
@@ -0,0 +1,2 @@
1
+ require("../icons/icons.cjs");const e=require("../lib/cn.cjs");let t=require("radix-ui"),n=require("react/jsx-runtime"),r=require("lucide-react");function i({className:i,...a}){return/* @__PURE__ */ (0,n.jsx)(t.Checkbox.Root,{"data-slot":`checkbox`,className:e.cn(`flex h-3.5 w-3.5 shrink-0 cursor-pointer items-center justify-center rounded-sm border border-doom-border bg-doom-deep outline-none transition-colors focus-visible:ring-2 focus-visible:ring-doom-green/50 disabled:pointer-events-none disabled:opacity-40 data-[state=checked]:border-doom-green data-[state=indeterminate]:border-doom-green`,i),...a,children:/* @__PURE__ */ (0,n.jsx)(t.Checkbox.Indicator,{"data-slot":`checkbox-indicator`,className:`text-doom-green`,children:/* @__PURE__ */ (0,n.jsx)(r.Check,{className:`h-2.5 w-2.5`})})})}exports.Checkbox=i;
2
+ //# sourceMappingURL=Checkbox.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Checkbox.cjs","names":["CheckboxPrimitive","cn","CheckIcon","require_cn","radix_ui","react_jsx_runtime","lucide_react","Checkbox","props","className"],"sources":["../../../src/components/Checkbox.tsx"],"sourcesContent":["import { Checkbox as CheckboxPrimitive } from 'radix-ui';\nimport type { ComponentProps } from 'react';\n\nimport { CheckIcon } from '../icons/icons';\nimport { cn } from '../lib/cn';\n\n/** A box that is on, off, or indeterminate; the tick is the accent on the deep well. */\nexport function Checkbox({ className, ...props }: ComponentProps<typeof CheckboxPrimitive.Root>) {\n return (\n <CheckboxPrimitive.Root\n data-slot=\"checkbox\"\n className={cn(\n 'flex h-3.5 w-3.5 shrink-0 cursor-pointer items-center justify-center rounded-sm border border-doom-border bg-doom-deep outline-none transition-colors focus-visible:ring-2 focus-visible:ring-doom-green/50 disabled:pointer-events-none disabled:opacity-40 data-[state=checked]:border-doom-green data-[state=indeterminate]:border-doom-green',\n className,\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator data-slot=\"checkbox-indicator\" className=\"text-doom-green\">\n <CheckIcon className=\"h-2.5 w-2.5\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n );\n}\n"],"mappings":"kJAOA,SAAgBO,EAAS,CAAE,YAAW,GAAGC,GAAwD,CAC/F,MACE,iBAAA,EAAAH,EAAA,IAAA,CAACL,EAAAA,SAAkB,KAAnB,CACE,YAAU,WACV,UAAWC,EAAAA,GACT,mVACAQ,CACF,EACA,GAAID,EAEJ,SAAA,iBAAA,EAAAH,EAAA,IAAA,CAACL,EAAAA,SAAkB,UAAnB,CAA6B,YAAU,qBAAqB,UAAU,kBACpE,SAAA,iBAAA,EAAAK,EAAA,IAAA,CAACH,EAAAA,MAAD,CAAW,UAAU,aAAe,CAAA,CACT,CAAA,CACP,CAAA,CAE5B"}
@@ -0,0 +1,2 @@
1
+ const e=require("../lib/fenceGrammar.cjs"),t=require("./CopyButton.cjs"),n=require("./SyntaxText.cjs"),r=require("./MermaidDiagram.cjs");let i=require("react/jsx-runtime");function a({text:a,className:o}){let s=e.fenceLanguageOf(o),c=s===`mermaid`?/* @__PURE__ */ (0,i.jsx)(r.MermaidDiagram,{code:a}):/* @__PURE__ */ (0,i.jsx)(n.SyntaxText,{text:a,grammar:e.fenceGrammarOf(s),className:`overflow-x-auto text-sm leading-relaxed text-doom-text`});return/* @__PURE__ */ (0,i.jsxs)(`div`,{"data-slot":`code-block`,"data-language":s??``,className:`relative rounded border border-doom-border bg-doom-deep p-2.5`,children:[c,/* @__PURE__ */ (0,i.jsx)(t.CopyButton,{text:a,className:`absolute top-1.5 right-1.5`})]})}exports.CodeBlock=a;
2
+ //# sourceMappingURL=CodeBlock.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CodeBlock.cjs","names":["fenceLanguageOf","MermaidDiagram","SyntaxText","fenceGrammarOf","CopyButton","require_fenceGrammar","require_CopyButton","require_SyntaxText","require_MermaidDiagram","react_jsx_runtime","CodeBlock","language","className","body","text"],"sources":["../../../src/components/CodeBlock.tsx"],"sourcesContent":["import { fenceGrammarOf, fenceLanguageOf, MERMAID_LANGUAGE } from '../lib/fenceGrammar';\nimport { CopyButton } from './CopyButton';\nimport { MermaidDiagram } from './MermaidDiagram';\nimport { SyntaxText } from './SyntaxText';\n\n/**\n * A fenced code block: coloured, copyable, and a picture when it is mermaid.\n *\n * DESIGN PATTERNS:\n * - The fence's own word picks the grammar, and an unknown word means plain\n * text rather than a guess at the wrong language.\n * - Colour and the diagram both arrive asynchronously, so the block always has\n * the source on screen from the first frame of a streaming reply.\n *\n * AVOID:\n * - Reading the language anywhere but the fence. A block in a message has no\n * path, and guessing from the body colours prose as code.\n */\n\nexport interface CodeBlockProps {\n /** The block's source, without the fence lines. */\n text: string;\n /** The `language-*` class react-markdown puts on the inner <code>. */\n className?: string | undefined;\n}\n\nexport function CodeBlock({ text, className }: CodeBlockProps) {\n const language = fenceLanguageOf(className);\n const body =\n language === MERMAID_LANGUAGE ? (\n <MermaidDiagram code={text} />\n ) : (\n <SyntaxText\n text={text}\n grammar={fenceGrammarOf(language)}\n className=\"overflow-x-auto text-sm leading-relaxed text-doom-text\"\n />\n );\n return (\n <div\n data-slot=\"code-block\"\n data-language={language ?? ''}\n className=\"relative rounded border border-doom-border bg-doom-deep p-2.5\"\n >\n {body}\n <CopyButton text={text} className=\"absolute top-1.5 right-1.5\" />\n </div>\n );\n}\n"],"mappings":"4KA0BA,SAAgBU,EAAU,CAAE,OAAM,aAA6B,CAC7D,IAAMC,EAAWX,EAAAA,gBAAgBY,CAAS,EACpCC,EACJF,IAAA,UACE,iBAAA,EAAAF,EAAA,IAAA,CAACR,EAAAA,eAAD,CAAgB,KAAMa,CAAO,CAAA,EAE7B,iBAAA,EAAAL,EAAA,IAAA,CAACP,EAAAA,WAAD,CACQ,OACN,QAASC,EAAAA,eAAeQ,CAAQ,EAChC,UAAU,wDACX,CAAA,EAEL,MACE,iBAAA,EAAAF,EAAA,KAAA,CAAC,MAAD,CACE,YAAU,aACV,gBAAeE,GAAY,GAC3B,UAAU,gEAHZ,SAAA,CAKGE,EACD,iBAAA,EAAAJ,EAAA,IAAA,CAACL,EAAAA,WAAD,CAAkB,OAAM,UAAU,4BAA8B,CAAA,CAC7D,GAET"}
@@ -0,0 +1,2 @@
1
+ const e=require("../lib/cn.cjs"),t=require("./Skeleton.cjs");let n=require("react/jsx-runtime"),r=require("react");const i=(0,r.lazy)(async()=>({default:(await Promise.resolve().then(()=>require("./CodeEditorView.cjs"))).CodeEditorView}));function a({className:a,...o}){return/* @__PURE__ */ (0,n.jsx)(r.Suspense,{fallback:/* @__PURE__ */ (0,n.jsx)(t.Skeleton,{className:e.cn(`min-h-0`,a)}),children:/* @__PURE__ */ (0,n.jsx)(i,{className:a,...o})})}exports.CodeEditor=a;
2
+ //# sourceMappingURL=CodeEditor.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CodeEditor.cjs","names":["lazy","Suspense","Skeleton","cn","require_cn","require_Skeleton","react_jsx_runtime","react","CodeEditorView","CodeEditor","props","className"],"sources":["../../../src/components/CodeEditor.tsx"],"sourcesContent":["import { lazy, Suspense } from 'react';\n\nimport { cn } from '../lib/cn';\nimport type { CodeEditorProps } from '../types/editor';\nimport { Skeleton } from './Skeleton';\n\n/**\n * A code editor: line numbers, syntax colour, folding, undo, and a search\n * panel on the usual keys.\n *\n * The editor arrives as its own chunk. The cockpit is one bundle that every\n * session downloads, most of them without ever opening a file, and it is read\n * over a tunnel as often as over localhost; an editor nobody opened has no\n * business in that first load. What this module holds is the boundary, so the\n * cost is paid on the first render that asks for an editor and never again.\n */\nconst CodeEditorView = lazy(async () => ({ default: (await import('./CodeEditorView')).CodeEditorView }));\n\nexport function CodeEditor({ className, ...props }: CodeEditorProps) {\n return (\n <Suspense fallback={<Skeleton className={cn('min-h-0', className)} />}>\n <CodeEditorView className={className} {...props} />\n </Suspense>\n );\n}\n"],"mappings":"mHAgBA,MAAMQ,GAAA,EAAiBR,EAAAA,KAAAA,CAAK,UAAa,CAAE,SAAU,MAAA,QAAA,QAAA,CAAA,CAAA,SAAA,QAAM,sBAAA,CAAA,EAAA,CAA4B,cAAe,EAAE,EAExG,SAAgBS,EAAW,CAAE,YAAW,GAAGC,GAA0B,CACnE,MACE,iBAAA,EAAAJ,EAAA,IAAA,CAACL,EAAAA,SAAD,CAAU,SAAU,iBAAA,EAAAK,EAAA,IAAA,CAACJ,EAAAA,SAAD,CAAU,UAAWC,EAAAA,GAAG,UAAWQ,CAAS,CAAI,CAAA,EAClE,SAAA,iBAAA,EAAAL,EAAA,IAAA,CAACE,EAAD,CAA2B,YAAW,GAAIE,CAAQ,CAAA,CAC1C,CAAA,CAEd"}
@@ -0,0 +1,2 @@
1
+ const e=require("../lib/cn.cjs"),t=require("../lib/editorLanguage.cjs"),n=require("../lib/editorTheme.cjs"),r=require("../lib/editorController.cjs");let i=require("react/jsx-runtime"),a=require("react"),o=require("@codemirror/commands"),s=require("@codemirror/language"),c=require("@codemirror/search"),l=require("@codemirror/state"),u=require("@codemirror/view"),d=require("@lezer/highlight");function f(e,t,n){let r=Math.min(t,n),i=Math.max(t,n);return{text:e.state.sliceDoc(r,i),from:r,to:i,startLine:e.state.doc.lineAt(r).number,endLine:e.state.doc.lineAt(i).number}}function p(e,t){let n=e.posAtCoords({x:t.left,y:t.top}),r=e.posAtCoords({x:t.right,y:t.bottom});return n===null||r===null?null:f(e,n,r)}const m=u.EditorView.theme(n.DOOM_EDITOR_STYLES),h=s.HighlightStyle.define([{tag:d.tags.comment,...n.DOOM_SYNTAX_STYLES.comment},{tag:d.tags.keyword,...n.DOOM_SYNTAX_STYLES.keyword},{tag:[d.tags.atom,d.tags.bool,d.tags.null,d.tags.self],...n.DOOM_SYNTAX_STYLES.constant},{tag:d.tags.number,...n.DOOM_SYNTAX_STYLES.literal},{tag:[d.tags.string,d.tags.special(d.tags.string),d.tags.character],...n.DOOM_SYNTAX_STYLES.string},{tag:d.tags.regexp,...n.DOOM_SYNTAX_STYLES.regexp},{tag:d.tags.operator,...n.DOOM_SYNTAX_STYLES.operator},{tag:d.tags.punctuation,...n.DOOM_SYNTAX_STYLES.punctuation},{tag:d.tags.variableName,...n.DOOM_SYNTAX_STYLES.variable},{tag:d.tags.propertyName,...n.DOOM_SYNTAX_STYLES.property},{tag:[d.tags.function(d.tags.variableName),d.tags.function(d.tags.propertyName)],...n.DOOM_SYNTAX_STYLES.callable},{tag:[d.tags.typeName,d.tags.className,d.tags.namespace],...n.DOOM_SYNTAX_STYLES.type},{tag:d.tags.tagName,...n.DOOM_SYNTAX_STYLES.tag},{tag:d.tags.attributeName,...n.DOOM_SYNTAX_STYLES.attribute},{tag:[d.tags.meta,d.tags.processingInstruction],...n.DOOM_SYNTAX_STYLES.meta},{tag:d.tags.heading,...n.DOOM_SYNTAX_STYLES.heading},{tag:[d.tags.link,d.tags.url],...n.DOOM_SYNTAX_STYLES.link},{tag:d.tags.emphasis,...n.DOOM_SYNTAX_STYLES.emphasis},{tag:d.tags.strong,...n.DOOM_SYNTAX_STYLES.strong},{tag:d.tags.strikethrough,...n.DOOM_SYNTAX_STYLES.strikethrough},{tag:d.tags.invalid,...n.DOOM_SYNTAX_STYLES.invalid}]),g=l.StateEffect.define(),_=l.StateField.define({create:()=>u.Decoration.none,update:(e,t)=>{let n=e.map(t.changes);for(let e of t.effects)e.is(g)&&(n=e.value);return n},provide:e=>u.EditorView.decorations.from(e)}),v=l.StateEffect.define(),y=l.StateField.define({create:()=>u.Decoration.none,update:(e,t)=>{let n=e.map(t.changes);for(let e of t.effects)e.is(v)&&(n=e.value);return n},provide:e=>u.EditorView.decorations.from(e)});var b=class extends u.WidgetType{label;constructor(e){super(),this.label=e}eq(e){return e.label===this.label}toDOM(){let e=document.createElement(`span`);return e.className=`cm-marked-region-label`,e.dataset.authorRegionLabel=this.label,e.textContent=this.label,e}};const x=u.EditorView.baseTheme({".cm-marked-region":{backgroundColor:`var(--doom-tint-yellow)`,borderBottom:`1px solid var(--doom-edge-yellow)`},".cm-marked-region-label":{display:`inline-flex`,alignItems:`center`,justifyContent:`center`,minWidth:`16px`,height:`16px`,marginRight:`4px`,borderRadius:`999px`,backgroundColor:`var(--doom-yellow)`,color:`var(--doom-deep)`,fontSize:`9px`,fontWeight:`700`,lineHeight:`1`,verticalAlign:`text-bottom`}}),S=[(0,u.lineNumbers)(),(0,u.highlightActiveLineGutter)(),(0,s.foldGutter)(),(0,u.highlightActiveLine)(),(0,u.drawSelection)(),(0,u.rectangularSelection)(),(0,s.indentOnInput)(),(0,s.bracketMatching)(),(0,o.history)(),(0,c.search)({top:!0}),(0,c.highlightSelectionMatches)(),u.keymap.of([...o.defaultKeymap,...o.historyKeymap,...c.searchKeymap,...s.foldKeymap,o.indentWithTab]),(0,s.syntaxHighlighting)(h),_,y,x,m];function C({value:n,path:o,readOnly:s=!1,lineWrapping:c=!0,className:d,onChange:m,onSelect:h,controllerRef:_,"data-testid":y}){let x=(0,a.useRef)(null),C=(0,a.useRef)(null),w=(0,a.useRef)({onChange:m,onSelect:h}),T=(0,a.useRef)(n),E=(0,a.useRef)({language:new l.Compartment,readOnly:new l.Compartment,wrapping:new l.Compartment});return(0,a.useEffect)(()=>{w.current={onChange:m,onSelect:h}}),(0,a.useLayoutEffect)(()=>{let e=x.current;if(e===null)return;let{language:t,readOnly:n,wrapping:r}=E.current,i=new u.EditorView({parent:e,state:l.EditorState.create({doc:T.current,extensions:[...S,t.of([]),n.of([]),r.of([]),u.EditorView.updateListener.of(e=>{if(e.docChanged&&w.current.onChange?.(e.state.doc.toString()),!e.selectionSet&&!e.docChanged)return;let t=w.current.onSelect;if(t===void 0)return;let n=e.state.selection.main;t(f(e.view,n.from,n.to))})]})});return C.current=i,()=>{i.destroy(),C.current=null}},[]),(0,a.useImperativeHandle)(_,()=>({focus:()=>C.current?.focus(),revealAndSelect:e=>{let t=C.current;if(t===null)return;let[n]=r.boundedEditorRanges(t.state.doc.length,[e]);n!==void 0&&t.dispatch({selection:{anchor:n.from,head:n.to},effects:u.EditorView.scrollIntoView(n.from,{y:`center`})})},applyEdits:e=>{let t=C.current;t!==null&&e.length!==0&&t.dispatch({changes:r.boundedEditorEdits(t.state.doc.length,e)})},setClosedRanges:e=>{let t=C.current;if(t===null)return;let n=r.boundedEditorRanges(t.state.doc.length,e).map(e=>e.from===e.to?u.Decoration.line({attributes:{class:`cm-closed-tone`,"data-tone":`closed`}}).range(t.state.doc.lineAt(e.from).from):u.Decoration.mark({class:`cm-closed-tone`,attributes:{"data-tone":`closed`}}).range(e.from,e.to));t.dispatch({effects:g.of(u.Decoration.set(n))})},setMarkedRanges:e=>{let t=C.current;if(t===null)return;let n=e.flatMap(e=>{let[n]=r.boundedEditorRanges(t.state.doc.length,[e]);return n===void 0||n.from===n.to?[]:[u.Decoration.widget({widget:new b(e.label),side:-1}).range(n.from),u.Decoration.mark({class:`cm-marked-region`,attributes:{"data-author-region":e.label}}).range(n.from,n.to)]});t.dispatch({effects:v.of(u.Decoration.set(n,!0))})},resolveViewportRegion:e=>{let t=C.current;return t===null?null:p(t,e)}}),[]),(0,a.useEffect)(()=>{let e=C.current;e!==null&&e.state.doc.toString()!==n&&e.dispatch({changes:{from:0,to:e.state.doc.length,insert:n}})},[n]),(0,a.useEffect)(()=>{C.current?.dispatch({effects:E.current.readOnly.reconfigure([l.EditorState.readOnly.of(s),u.EditorView.editable.of(!s)])})},[s]),(0,a.useEffect)(()=>{C.current?.dispatch({effects:E.current.wrapping.reconfigure(c?u.EditorView.lineWrapping:[])})},[c]),(0,a.useEffect)(()=>{let e=o===void 0?void 0:t.grammarKeyOf(o),{language:n}=E.current;if(e===void 0){C.current?.dispatch({effects:n.reconfigure([])});return}let r=!1;return t.loadGrammar(e).then(e=>{r||C.current?.dispatch({effects:n.reconfigure(e)})}).catch(()=>{r||C.current?.dispatch({effects:n.reconfigure([])})}),()=>{r=!0}},[o]),/* @__PURE__ */ (0,i.jsx)(`div`,{ref:x,"data-testid":y,className:e.cn(`min-h-0 overflow-hidden`,d)})}exports.CodeEditorView=C,exports.resolveEditorViewportRegion=p;
2
+ //# sourceMappingURL=CodeEditorView.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CodeEditorView.cjs","names":["EditorView","DOOM_EDITOR_STYLES","HighlightStyle","tags","DOOM_SYNTAX_STYLES","StateEffect","StateField","Decoration","WidgetType","lineNumbers","highlightActiveLineGutter","foldGutter","highlightActiveLine","drawSelection","rectangularSelection","indentOnInput","bracketMatching","history","search","highlightSelectionMatches","keymap","defaultKeymap","historyKeymap","searchKeymap","foldKeymap","indentWithTab","syntaxHighlighting","useRef","Compartment","EditorState","boundedEditorRanges","boundedEditorEdits","grammarKeyOf","loadGrammar","cn","require_cn","require_editorLanguage","require_editorTheme","require_editorController","react_jsx_runtime","react","_codemirror_commands","_codemirror_language","_codemirror_search","_codemirror_state","_codemirror_view","_lezer_highlight","selectionRange","start","from","to","end","editor","resolveEditorViewportRegion","rectangle","DOOM_THEME","DOOM_HIGHLIGHT","setClosedDecorations","closedDecorations","next","decorations","transaction","effect","field","setMarkedDecorations","markedDecorations","MarkedRangeLabel","label","other","MARKED_REGION_THEME","FIXED_EXTENSIONS","CodeEditorView","testId","host","view","handlers","initialValue","value","compartments","parent","readOnlyPart","language","wrapping","update","report","range","controllerRef","bounded","edits","ranges","readOnly","lineWrapping","key","path","cancelled","grammar","className"],"sources":["../../../src/components/CodeEditorView.tsx"],"sourcesContent":["import { defaultKeymap, history, historyKeymap, indentWithTab } from '@codemirror/commands';\nimport {\n bracketMatching,\n foldGutter,\n foldKeymap,\n HighlightStyle,\n indentOnInput,\n syntaxHighlighting,\n} from '@codemirror/language';\nimport { highlightSelectionMatches, search, searchKeymap } from '@codemirror/search';\nimport { Compartment, EditorState, StateEffect, StateField } from '@codemirror/state';\nimport {\n Decoration,\n type DecorationSet,\n drawSelection,\n EditorView,\n highlightActiveLine,\n highlightActiveLineGutter,\n keymap,\n lineNumbers,\n rectangularSelection,\n WidgetType,\n} from '@codemirror/view';\nimport { tags } from '@lezer/highlight';\nimport { useEffect, useImperativeHandle, useLayoutEffect, useRef } from 'react';\n\nimport { cn } from '../lib/cn';\nimport { boundedEditorEdits, boundedEditorRanges } from '../lib/editorController';\nimport { grammarKeyOf, loadGrammar } from '../lib/editorLanguage';\nimport { DOOM_EDITOR_STYLES, DOOM_SYNTAX_STYLES } from '../lib/editorTheme';\nimport type { CodeEditorProps, EditorSelectionRange, EditorViewportRectangle } from '../types/editor';\n\nfunction selectionRange(editor: { readonly state: EditorState }, from: number, to: number): EditorSelectionRange {\n const start = Math.min(from, to);\n const end = Math.max(from, to);\n return {\n text: editor.state.sliceDoc(start, end),\n from: start,\n to: end,\n startLine: editor.state.doc.lineAt(start).number,\n endLine: editor.state.doc.lineAt(end).number,\n };\n}\n\nexport function resolveEditorViewportRegion(\n editor: {\n readonly state: EditorState;\n posAtCoords(coords: { x: number; y: number }): number | null;\n },\n rectangle: EditorViewportRectangle,\n): EditorSelectionRange | null {\n const start = editor.posAtCoords({ x: rectangle.left, y: rectangle.top });\n const end = editor.posAtCoords({ x: rectangle.right, y: rectangle.bottom });\n if (start === null || end === null) return null;\n return selectionRange(editor, start, end);\n}\n/**\n * The editor itself, mounted on a real CodeMirror view.\n *\n * Nothing imports this module directly: `CodeEditor` reaches it through a lazy\n * import so the whole editor, and every grammar under it, stays out of the\n * cockpit's first load. Behaviour lives here rather than in that wrapper so\n * the split costs one file and no indirection.\n *\n * The three things a caller can change after mount each sit in their own\n * compartment. Reconfiguring one is a transaction; rebuilding the editor would\n * throw away the undo history, the scroll position and the cursor, which is\n * what a reader loses if a parent re-render is allowed to remount this.\n */\n\n/** Not a colour or a layout choice: how CodeMirror is told to draw the doom palette. */\nconst DOOM_THEME = EditorView.theme(DOOM_EDITOR_STYLES);\n\nconst DOOM_HIGHLIGHT = HighlightStyle.define([\n { tag: tags.comment, ...DOOM_SYNTAX_STYLES.comment },\n { tag: tags.keyword, ...DOOM_SYNTAX_STYLES.keyword },\n { tag: [tags.atom, tags.bool, tags.null, tags.self], ...DOOM_SYNTAX_STYLES.constant },\n { tag: tags.number, ...DOOM_SYNTAX_STYLES.literal },\n { tag: [tags.string, tags.special(tags.string), tags.character], ...DOOM_SYNTAX_STYLES.string },\n { tag: tags.regexp, ...DOOM_SYNTAX_STYLES.regexp },\n { tag: tags.operator, ...DOOM_SYNTAX_STYLES.operator },\n { tag: tags.punctuation, ...DOOM_SYNTAX_STYLES.punctuation },\n { tag: tags.variableName, ...DOOM_SYNTAX_STYLES.variable },\n { tag: tags.propertyName, ...DOOM_SYNTAX_STYLES.property },\n { tag: [tags.function(tags.variableName), tags.function(tags.propertyName)], ...DOOM_SYNTAX_STYLES.callable },\n { tag: [tags.typeName, tags.className, tags.namespace], ...DOOM_SYNTAX_STYLES.type },\n { tag: tags.tagName, ...DOOM_SYNTAX_STYLES.tag },\n { tag: tags.attributeName, ...DOOM_SYNTAX_STYLES.attribute },\n { tag: [tags.meta, tags.processingInstruction], ...DOOM_SYNTAX_STYLES.meta },\n { tag: tags.heading, ...DOOM_SYNTAX_STYLES.heading },\n { tag: [tags.link, tags.url], ...DOOM_SYNTAX_STYLES.link },\n { tag: tags.emphasis, ...DOOM_SYNTAX_STYLES.emphasis },\n { tag: tags.strong, ...DOOM_SYNTAX_STYLES.strong },\n { tag: tags.strikethrough, ...DOOM_SYNTAX_STYLES.strikethrough },\n { tag: tags.invalid, ...DOOM_SYNTAX_STYLES.invalid },\n]);\n\nconst setClosedDecorations = StateEffect.define<DecorationSet>();\nconst closedDecorations = StateField.define<DecorationSet>({\n create: () => Decoration.none,\n update: (decorations, transaction) => {\n let next = decorations.map(transaction.changes);\n for (const effect of transaction.effects) {\n if (effect.is(setClosedDecorations)) next = effect.value;\n }\n return next;\n },\n provide: (field) => EditorView.decorations.from(field),\n});\n\nconst setMarkedDecorations = StateEffect.define<DecorationSet>();\nconst markedDecorations = StateField.define<DecorationSet>({\n create: () => Decoration.none,\n update: (decorations, transaction) => {\n let next = decorations.map(transaction.changes);\n for (const effect of transaction.effects) {\n if (effect.is(setMarkedDecorations)) next = effect.value;\n }\n return next;\n },\n provide: (field) => EditorView.decorations.from(field),\n});\n\nclass MarkedRangeLabel extends WidgetType {\n constructor(private readonly label: string) {\n super();\n }\n\n eq(other: MarkedRangeLabel): boolean {\n return other.label === this.label;\n }\n\n toDOM(): HTMLElement {\n const label = document.createElement('span');\n label.className = 'cm-marked-region-label';\n label.dataset.authorRegionLabel = this.label;\n label.textContent = this.label;\n return label;\n }\n}\n\nconst MARKED_REGION_THEME = EditorView.baseTheme({\n '.cm-marked-region': {\n backgroundColor: 'var(--doom-tint-yellow)',\n borderBottom: '1px solid var(--doom-edge-yellow)',\n },\n '.cm-marked-region-label': {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n minWidth: '16px',\n height: '16px',\n marginRight: '4px',\n borderRadius: '999px',\n backgroundColor: 'var(--doom-yellow)',\n color: 'var(--doom-deep)',\n fontSize: '9px',\n fontWeight: '700',\n lineHeight: '1',\n verticalAlign: 'text-bottom',\n },\n});\n\n/** Everything that never changes for the life of an editor. */\nconst FIXED_EXTENSIONS = [\n lineNumbers(),\n highlightActiveLineGutter(),\n foldGutter(),\n highlightActiveLine(),\n drawSelection(),\n rectangularSelection(),\n indentOnInput(),\n bracketMatching(),\n history(),\n search({ top: true }),\n highlightSelectionMatches(),\n // Tab indents rather than leaving the editor. That trades a keyboard user's\n // escape route for the behaviour every other editor has, so it is last in\n // the keymap and Escape then Tab still moves focus out.\n keymap.of([...defaultKeymap, ...historyKeymap, ...searchKeymap, ...foldKeymap, indentWithTab]),\n syntaxHighlighting(DOOM_HIGHLIGHT),\n closedDecorations,\n markedDecorations,\n MARKED_REGION_THEME,\n DOOM_THEME,\n];\n\nexport function CodeEditorView({\n value,\n path,\n readOnly = false,\n lineWrapping = true,\n className,\n onChange,\n onSelect,\n controllerRef,\n 'data-testid': testId,\n}: CodeEditorProps) {\n const host = useRef<HTMLDivElement>(null);\n const view = useRef<EditorView | null>(null);\n // The callbacks are new objects on every parent render. Reading them through\n // a ref is what lets the editor be built once and still call the current\n // pair, rather than being rebuilt whenever the parent re-renders.\n const handlers = useRef({ onChange, onSelect });\n // The document is seeded once from the value of the first render; the sync effect\n // below owns every later change.\n const initialValue = useRef(value);\n const compartments = useRef({\n language: new Compartment(),\n readOnly: new Compartment(),\n wrapping: new Compartment(),\n });\n\n useEffect(() => {\n handlers.current = { onChange, onSelect };\n });\n\n useLayoutEffect(() => {\n const parent = host.current;\n if (parent === null) return;\n const { language, readOnly: readOnlyPart, wrapping } = compartments.current;\n const editor = new EditorView({\n parent,\n state: EditorState.create({\n // The initial document only; every later change arrives as a\n // transaction from the effect below.\n doc: initialValue.current,\n extensions: [\n ...FIXED_EXTENSIONS,\n language.of([]),\n readOnlyPart.of([]),\n wrapping.of([]),\n EditorView.updateListener.of((update) => {\n if (update.docChanged) handlers.current.onChange?.(update.state.doc.toString());\n if (!update.selectionSet && !update.docChanged) return;\n const report = handlers.current.onSelect;\n if (report === undefined) return;\n const range = update.state.selection.main;\n report(selectionRange(update.view, range.from, range.to));\n }),\n ],\n }),\n });\n view.current = editor;\n return () => {\n editor.destroy();\n view.current = null;\n };\n // Built once.\n }, []);\n\n useImperativeHandle(\n controllerRef,\n () => ({\n focus: () => view.current?.focus(),\n revealAndSelect: (range) => {\n const editor = view.current;\n if (editor === null) return;\n const [bounded] = boundedEditorRanges(editor.state.doc.length, [range]);\n if (bounded === undefined) return;\n editor.dispatch({\n selection: { anchor: bounded.from, head: bounded.to },\n effects: EditorView.scrollIntoView(bounded.from, { y: 'center' }),\n });\n },\n applyEdits: (edits) => {\n const editor = view.current;\n if (editor === null || edits.length === 0) return;\n editor.dispatch({ changes: boundedEditorEdits(editor.state.doc.length, edits) });\n },\n setClosedRanges: (ranges) => {\n const editor = view.current;\n if (editor === null) return;\n const bounded = boundedEditorRanges(editor.state.doc.length, ranges);\n const decorations = bounded.map((range) =>\n range.from === range.to\n ? Decoration.line({ attributes: { class: 'cm-closed-tone', 'data-tone': 'closed' } }).range(\n editor.state.doc.lineAt(range.from).from,\n )\n : Decoration.mark({ class: 'cm-closed-tone', attributes: { 'data-tone': 'closed' } }).range(\n range.from,\n range.to,\n ),\n );\n editor.dispatch({ effects: setClosedDecorations.of(Decoration.set(decorations)) });\n },\n setMarkedRanges: (ranges) => {\n const editor = view.current;\n if (editor === null) return;\n const decorations = ranges.flatMap((range) => {\n const [bounded] = boundedEditorRanges(editor.state.doc.length, [range]);\n if (bounded === undefined || bounded.from === bounded.to) return [];\n return [\n Decoration.widget({ widget: new MarkedRangeLabel(range.label), side: -1 }).range(bounded.from),\n Decoration.mark({\n class: 'cm-marked-region',\n attributes: { 'data-author-region': range.label },\n }).range(bounded.from, bounded.to),\n ];\n });\n editor.dispatch({ effects: setMarkedDecorations.of(Decoration.set(decorations, true)) });\n },\n resolveViewportRegion: (rectangle) => {\n const editor = view.current;\n return editor === null ? null : resolveEditorViewportRegion(editor, rectangle);\n },\n }),\n [],\n );\n\n useEffect(() => {\n const editor = view.current;\n // A caller that echoes onChange back into `value` would otherwise replace\n // the document on every keystroke and drop the cursor to the end.\n if (editor === null || editor.state.doc.toString() === value) return;\n editor.dispatch({ changes: { from: 0, to: editor.state.doc.length, insert: value } });\n }, [value]);\n\n useEffect(() => {\n view.current?.dispatch({\n effects: compartments.current.readOnly.reconfigure([\n EditorState.readOnly.of(readOnly),\n EditorView.editable.of(!readOnly),\n ]),\n });\n }, [readOnly]);\n\n useEffect(() => {\n view.current?.dispatch({\n effects: compartments.current.wrapping.reconfigure(lineWrapping ? EditorView.lineWrapping : []),\n });\n }, [lineWrapping]);\n\n useEffect(() => {\n const key = path === undefined ? undefined : grammarKeyOf(path);\n const { language } = compartments.current;\n if (key === undefined) {\n view.current?.dispatch({ effects: language.reconfigure([]) });\n return;\n }\n let cancelled = false;\n void loadGrammar(key)\n .then((grammar) => {\n if (!cancelled) view.current?.dispatch({ effects: language.reconfigure(grammar) });\n })\n .catch(() => {\n // A grammar is a separate chunk over the network, and the cockpit is\n // often read through a tunnel. Losing it costs syntax colour, not the\n // file, so fall back to plain text rather than failing the pane.\n if (!cancelled) view.current?.dispatch({ effects: language.reconfigure([]) });\n });\n return () => {\n cancelled = true;\n };\n }, [path]);\n\n return <div ref={host} data-testid={testId} className={cn('min-h-0 overflow-hidden', className)} />;\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ const e=require("../lib/cn.cjs");let t=require("radix-ui"),n=require("react/jsx-runtime");function r(e){return/* @__PURE__ */ (0,n.jsx)(t.Collapsible.Root,{"data-slot":`collapsible`,...e})}function i(e){return/* @__PURE__ */ (0,n.jsx)(t.Collapsible.CollapsibleTrigger,{"data-slot":`collapsible-trigger`,...e})}function a({className:r,...i}){return/* @__PURE__ */ (0,n.jsx)(t.Collapsible.CollapsibleContent,{"data-slot":`collapsible-content`,className:e.cn(`overflow-hidden`,r),...i})}exports.Collapsible=r,exports.CollapsibleContent=a,exports.CollapsibleTrigger=i;
2
+ //# sourceMappingURL=Collapsible.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Collapsible.cjs","names":["CollapsiblePrimitive","cn","require_cn","radix_ui","react_jsx_runtime","Collapsible","props","CollapsibleTrigger","CollapsibleContent","className"],"sources":["../../../src/components/Collapsible.tsx"],"sourcesContent":["import { Collapsible as CollapsiblePrimitive } from 'radix-ui';\nimport type { ComponentProps } from 'react';\n\nimport { cn } from '../lib/cn';\n\n/** A section that folds; Radix keeps the trigger's aria-expanded in step with the content. */\nexport function Collapsible(props: ComponentProps<typeof CollapsiblePrimitive.Root>) {\n return <CollapsiblePrimitive.Root data-slot=\"collapsible\" {...props} />;\n}\n\nexport function CollapsibleTrigger(props: ComponentProps<typeof CollapsiblePrimitive.CollapsibleTrigger>) {\n return <CollapsiblePrimitive.CollapsibleTrigger data-slot=\"collapsible-trigger\" {...props} />;\n}\n\nexport function CollapsibleContent({\n className,\n ...props\n}: ComponentProps<typeof CollapsiblePrimitive.CollapsibleContent>) {\n return (\n <CollapsiblePrimitive.CollapsibleContent\n data-slot=\"collapsible-content\"\n className={cn('overflow-hidden', className)}\n {...props}\n />\n );\n}\n"],"mappings":"0FAMA,SAAgBK,EAAY,EAAyD,CACnF,MAAO,iBAAA,EAAAD,EAAA,IAAA,CAACJ,EAAAA,YAAqB,KAAtB,CAA2B,YAAU,cAAc,GAAIM,CAAQ,CAAA,CACxE,CAEA,SAAgBC,EAAmB,EAAuE,CACxG,MAAO,iBAAA,EAAAH,EAAA,IAAA,CAACJ,EAAAA,YAAqB,mBAAtB,CAAyC,YAAU,sBAAsB,GAAIM,CAAQ,CAAA,CAC9F,CAEA,SAAgBE,EAAmB,CACjC,YACA,GAAGF,GAC8D,CACjE,MACE,iBAAA,EAAAF,EAAA,IAAA,CAACJ,EAAAA,YAAqB,mBAAtB,CACE,YAAU,sBACV,UAAWC,EAAAA,GAAG,kBAAmBQ,CAAS,EAC1C,GAAIH,CACL,CAAA,CAEL"}
@@ -0,0 +1,2 @@
1
+ const e=require("../lib/cn.cjs"),t=require("./Dialog.cjs"),n=require("./Input.cjs"),r=require("./OptionList.cjs");let i=require("react/jsx-runtime");function a({open:n,onOpenChange:r,title:a,titleVisible:o=!1,className:s,children:c,width:l=`lg`,...u}){return/* @__PURE__ */ (0,i.jsx)(t.Dialog,{open:n,onOpenChange:r,children:/* @__PURE__ */ (0,i.jsxs)(t.DialogContent,{"data-slot":`command-dialog`,width:l,className:e.cn(`max-h-[70vh]`,s),...u,children:[/* @__PURE__ */ (0,i.jsx)(t.DialogTitle,{className:o?void 0:`sr-only`,children:a}),c]})})}function o({className:t,...n}){return/* @__PURE__ */ (0,i.jsx)(`div`,{"data-slot":`command-header`,className:e.cn(`flex shrink-0 items-center gap-2 border-b border-doom-border px-3 py-2.5`,t),...n})}function s({className:t,...r}){return/* @__PURE__ */ (0,i.jsx)(n.Input,{"data-slot":`command-input`,variant:`bare`,autoFocus:!0,autoComplete:`off`,className:e.cn(`flex-1`,t),...r})}function c({className:t,...n}){return/* @__PURE__ */ (0,i.jsx)(`div`,{role:`listbox`,"data-slot":`command-list`,className:e.cn(`flex min-h-0 flex-1 flex-col gap-0.5 overflow-y-auto p-1.5`,t),...n})}function l({className:t,...n}){return/* @__PURE__ */ (0,i.jsx)(`div`,{"data-slot":`command-group`,className:e.cn(`flex flex-col gap-0.5`,t),...n})}function u({className:t,...n}){return/* @__PURE__ */ (0,i.jsx)(`div`,{"data-slot":`command-group-label`,className:e.cn(`px-2 pt-2 pb-1 text-sm font-semibold text-doom-dim first-letter:uppercase`,t),...n})}function d({density:e=`compact`,...t}){return/* @__PURE__ */ (0,i.jsx)(r.OptionRow,{"data-slot":`command-item`,density:e,...t})}function f(e){return/* @__PURE__ */ (0,i.jsx)(r.OptionLabel,{"data-slot":`command-item-label`,density:`compact`,...e})}function p({className:t,...n}){return/* @__PURE__ */ (0,i.jsx)(`div`,{"data-slot":`command-empty`,className:e.cn(`px-2 py-6 text-center text-base text-doom-dim`,t),...n})}function m({className:t,...n}){return/* @__PURE__ */ (0,i.jsx)(`div`,{"data-slot":`command-footer`,className:e.cn(`flex min-h-[30px] shrink-0 items-center justify-between gap-3 border-t border-doom-border-soft bg-doom-deep px-3 text-sm text-doom-dim`,t),...n})}exports.CommandDialog=a,exports.CommandEmpty=p,exports.CommandFooter=m,exports.CommandGroup=l,exports.CommandGroupLabel=u,exports.CommandHeader=o,exports.CommandInput=s,exports.CommandItem=d,exports.CommandItemLabel=f,exports.CommandList=c;
2
+ //# sourceMappingURL=Command.cjs.map