veryfront 0.1.1238 → 0.1.1239

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 (472) hide show
  1. package/esm/cli/auth/login.d.ts +24 -2
  2. package/esm/cli/auth/login.d.ts.map +1 -1
  3. package/esm/cli/auth/login.js +444 -35
  4. package/esm/cli/commands/build/error-handler.js +1 -1
  5. package/esm/cli/commands/generate/command.d.ts.map +1 -1
  6. package/esm/cli/commands/generate/command.js +2 -3
  7. package/esm/cli/commands/init/init-command.d.ts.map +1 -1
  8. package/esm/cli/commands/init/init-command.js +23 -31
  9. package/esm/cli/commands/install/registry.d.ts.map +1 -1
  10. package/esm/cli/commands/install/registry.js +6 -9
  11. package/esm/cli/commands/login/command-help.d.ts.map +1 -1
  12. package/esm/cli/commands/login/command-help.js +3 -1
  13. package/esm/cli/commands/pull/command.d.ts +1 -0
  14. package/esm/cli/commands/pull/command.d.ts.map +1 -1
  15. package/esm/cli/commands/pull/command.js +49 -6
  16. package/esm/cli/commands/push/command-help.d.ts.map +1 -1
  17. package/esm/cli/commands/push/command-help.js +7 -0
  18. package/esm/cli/commands/push/command.d.ts +23 -12
  19. package/esm/cli/commands/push/command.d.ts.map +1 -1
  20. package/esm/cli/commands/push/command.js +461 -44
  21. package/esm/cli/commands/push/plan.d.ts +35 -0
  22. package/esm/cli/commands/push/plan.d.ts.map +1 -0
  23. package/esm/cli/commands/push/plan.js +96 -0
  24. package/esm/cli/commands/schedule/handler.d.ts +21 -2
  25. package/esm/cli/commands/schedule/handler.d.ts.map +1 -1
  26. package/esm/cli/commands/schedule/handler.js +74 -27
  27. package/esm/cli/commands/schema/command-help.js +1 -1
  28. package/esm/cli/commands/up/command.js +1 -1
  29. package/esm/cli/commands/webhook/handler.d.ts.map +1 -1
  30. package/esm/cli/commands/webhook/handler.js +3 -1
  31. package/esm/cli/router.d.ts.map +1 -1
  32. package/esm/cli/router.js +27 -5
  33. package/esm/cli/shared/args.d.ts +10 -0
  34. package/esm/cli/shared/args.d.ts.map +1 -1
  35. package/esm/cli/shared/args.js +15 -2
  36. package/esm/cli/shared/config.d.ts +11 -2
  37. package/esm/cli/shared/config.d.ts.map +1 -1
  38. package/esm/cli/shared/config.js +72 -27
  39. package/esm/cli/shared/project-creation.js +1 -1
  40. package/esm/cli/sync/state.d.ts +20 -0
  41. package/esm/cli/sync/state.d.ts.map +1 -0
  42. package/esm/cli/sync/state.js +193 -0
  43. package/esm/deno.js +2 -2
  44. package/esm/extensions/ext-llm-anthropic/src/anthropic-request-builder.d.ts.map +1 -1
  45. package/esm/extensions/ext-llm-anthropic/src/anthropic-request-builder.js +852 -21
  46. package/esm/extensions/ext-observability-sentry/src/policy.d.ts +2 -0
  47. package/esm/extensions/ext-observability-sentry/src/policy.d.ts.map +1 -1
  48. package/esm/extensions/ext-observability-sentry/src/policy.js +214 -3
  49. package/esm/src/agent/conversation/delegation-policy.d.ts +2 -0
  50. package/esm/src/agent/conversation/delegation-policy.d.ts.map +1 -1
  51. package/esm/src/agent/conversation/delegation-policy.js +13 -3
  52. package/esm/src/agent/conversation/hosted-terminal.d.ts.map +1 -1
  53. package/esm/src/agent/conversation/hosted-terminal.js +6 -2
  54. package/esm/src/agent/factory.d.ts.map +1 -1
  55. package/esm/src/agent/factory.js +22 -11
  56. package/esm/src/agent/hosted/chat-runtime-tool-assembly.d.ts +2 -0
  57. package/esm/src/agent/hosted/chat-runtime-tool-assembly.d.ts.map +1 -1
  58. package/esm/src/agent/hosted/chat-runtime-tool-assembly.js +6 -1
  59. package/esm/src/agent/hosted/child-fork-execution-runner.d.ts +2 -1
  60. package/esm/src/agent/hosted/child-fork-execution-runner.d.ts.map +1 -1
  61. package/esm/src/agent/hosted/child-fork-execution-runner.js +6 -3
  62. package/esm/src/agent/hosted/child-fork-step-message-preparation.d.ts +12 -3
  63. package/esm/src/agent/hosted/child-fork-step-message-preparation.d.ts.map +1 -1
  64. package/esm/src/agent/hosted/child-fork-step-message-preparation.js +16 -3
  65. package/esm/src/agent/hosted/cloud-agent-chat-execution.d.ts +1 -1
  66. package/esm/src/agent/hosted/cloud-agent-chat-execution.d.ts.map +1 -1
  67. package/esm/src/agent/hosted/cloud-agent-chat-execution.js +3 -3
  68. package/esm/src/agent/hosted/cloud-agent-child-tools.d.ts +11 -0
  69. package/esm/src/agent/hosted/cloud-agent-child-tools.d.ts.map +1 -1
  70. package/esm/src/agent/hosted/cloud-agent-child-tools.js +2 -3
  71. package/esm/src/agent/hosted/cloud-agent-config.d.ts +1 -0
  72. package/esm/src/agent/hosted/cloud-agent-config.d.ts.map +1 -1
  73. package/esm/src/agent/hosted/cloud-runtime-system-messages.d.ts +16 -1
  74. package/esm/src/agent/hosted/cloud-runtime-system-messages.d.ts.map +1 -1
  75. package/esm/src/agent/hosted/cloud-runtime-system-messages.js +13 -3
  76. package/esm/src/agent/hosted/default-chat-runtime.d.ts +2 -1
  77. package/esm/src/agent/hosted/default-chat-runtime.d.ts.map +1 -1
  78. package/esm/src/agent/hosted/default-chat-runtime.js +18 -7
  79. package/esm/src/agent/hosted/default-invoke-agent-tool.d.ts +2 -1
  80. package/esm/src/agent/hosted/default-invoke-agent-tool.d.ts.map +1 -1
  81. package/esm/src/agent/hosted/default-invoke-agent-tool.js +11 -3
  82. package/esm/src/agent/hosted/default-project-steering-refresh.d.ts +2 -1
  83. package/esm/src/agent/hosted/default-project-steering-refresh.d.ts.map +1 -1
  84. package/esm/src/agent/hosted/default-project-steering-refresh.js +4 -1
  85. package/esm/src/agent/hosted/runtime-state-resolver.d.ts +6 -4
  86. package/esm/src/agent/hosted/runtime-state-resolver.d.ts.map +1 -1
  87. package/esm/src/agent/hosted/runtime-state-resolver.js +8 -11
  88. package/esm/src/agent/index.d.ts +3 -3
  89. package/esm/src/agent/index.d.ts.map +1 -1
  90. package/esm/src/agent/project/agent-runtime.d.ts.map +1 -1
  91. package/esm/src/agent/project/agent-runtime.js +6 -3
  92. package/esm/src/agent/runtime/agent-definition.d.ts +68 -66
  93. package/esm/src/agent/runtime/agent-definition.d.ts.map +1 -1
  94. package/esm/src/agent/runtime/agent-definition.js +15 -2
  95. package/esm/src/agent/runtime/agent-invocation-contract.d.ts +2 -0
  96. package/esm/src/agent/runtime/agent-invocation-contract.d.ts.map +1 -1
  97. package/esm/src/agent/runtime/agent-markdown-adapter.js +1 -1
  98. package/esm/src/agent/runtime/agent-runtime-step.d.ts +11 -5
  99. package/esm/src/agent/runtime/agent-runtime-step.d.ts.map +1 -1
  100. package/esm/src/agent/runtime/agent-runtime-step.js +23 -6
  101. package/esm/src/agent/runtime/call-context.d.ts +42 -11
  102. package/esm/src/agent/runtime/call-context.d.ts.map +1 -1
  103. package/esm/src/agent/runtime/call-context.js +480 -42
  104. package/esm/src/agent/runtime/chat-stream-handler.d.ts +18 -0
  105. package/esm/src/agent/runtime/chat-stream-handler.d.ts.map +1 -1
  106. package/esm/src/agent/runtime/chat-stream-handler.js +38 -18
  107. package/esm/src/agent/runtime/effective-agent-system.d.ts +13 -4
  108. package/esm/src/agent/runtime/effective-agent-system.d.ts.map +1 -1
  109. package/esm/src/agent/runtime/effective-agent-system.js +29 -0
  110. package/esm/src/agent/runtime/index.d.ts +1 -0
  111. package/esm/src/agent/runtime/index.d.ts.map +1 -1
  112. package/esm/src/agent/runtime/index.js +638 -53
  113. package/esm/src/agent/runtime/load-skill-tool.d.ts +33 -3
  114. package/esm/src/agent/runtime/load-skill-tool.d.ts.map +1 -1
  115. package/esm/src/agent/runtime/load-skill-tool.js +152 -21
  116. package/esm/src/agent/runtime/model-resolution.d.ts +3 -0
  117. package/esm/src/agent/runtime/model-resolution.d.ts.map +1 -1
  118. package/esm/src/agent/runtime/model-resolution.js +14 -0
  119. package/esm/src/agent/runtime/model-transport.d.ts +1 -0
  120. package/esm/src/agent/runtime/model-transport.d.ts.map +1 -1
  121. package/esm/src/agent/runtime/model-transport.js +5 -2
  122. package/esm/src/agent/runtime/run-runtime-context.d.ts +4 -0
  123. package/esm/src/agent/runtime/run-runtime-context.d.ts.map +1 -1
  124. package/esm/src/agent/runtime/run-runtime-context.js +9 -3
  125. package/esm/src/agent/runtime/runtime-tool-config.d.ts +1 -0
  126. package/esm/src/agent/runtime/runtime-tool-config.d.ts.map +1 -1
  127. package/esm/src/agent/runtime/skill-prompt.d.ts +3 -0
  128. package/esm/src/agent/runtime/skill-prompt.d.ts.map +1 -1
  129. package/esm/src/agent/runtime/skill-prompt.js +113 -25
  130. package/esm/src/agent/runtime/streamed-assistant-message.d.ts +22 -2
  131. package/esm/src/agent/runtime/streamed-assistant-message.d.ts.map +1 -1
  132. package/esm/src/agent/runtime/streamed-assistant-message.js +26 -5
  133. package/esm/src/agent/runtime/tool-inventory.d.ts.map +1 -1
  134. package/esm/src/agent/runtime/tool-inventory.js +13 -9
  135. package/esm/src/agent/runtime/tool-result-continuation.d.ts +4 -2
  136. package/esm/src/agent/runtime/tool-result-continuation.d.ts.map +1 -1
  137. package/esm/src/agent/runtime/tool-result-continuation.js +24 -20
  138. package/esm/src/agent/schemas/agent.schema.d.ts +2 -2
  139. package/esm/src/agent/service/runtime.js +1 -1
  140. package/esm/src/agent/streaming/fork-runtime-stream.d.ts +5 -4
  141. package/esm/src/agent/streaming/fork-runtime-stream.d.ts.map +1 -1
  142. package/esm/src/agent/types.d.ts +14 -1
  143. package/esm/src/agent/types.d.ts.map +1 -1
  144. package/esm/src/chat/chat-ui-message-helpers.d.ts.map +1 -1
  145. package/esm/src/chat/chat-ui-message-helpers.js +75 -16
  146. package/esm/src/errors/catalog/build-errors.d.ts.map +1 -1
  147. package/esm/src/errors/catalog/build-errors.js +14 -0
  148. package/esm/src/errors/error-registry/build.d.ts +2 -0
  149. package/esm/src/errors/error-registry/build.d.ts.map +1 -1
  150. package/esm/src/errors/error-registry/build.js +8 -0
  151. package/esm/src/errors/error-registry/deploy.d.ts +4 -0
  152. package/esm/src/errors/error-registry/deploy.d.ts.map +1 -1
  153. package/esm/src/errors/error-registry/deploy.js +16 -0
  154. package/esm/src/errors/error-registry.d.ts +3 -0
  155. package/esm/src/errors/error-registry.d.ts.map +1 -1
  156. package/esm/src/errors/index.d.ts +2 -1
  157. package/esm/src/errors/index.d.ts.map +1 -1
  158. package/esm/src/errors/index.js +4 -3
  159. package/esm/src/errors/tenant-classification.d.ts +25 -0
  160. package/esm/src/errors/tenant-classification.d.ts.map +1 -0
  161. package/esm/src/errors/tenant-classification.js +61 -0
  162. package/esm/src/extensions/builtin-extensions.d.ts +10 -15
  163. package/esm/src/extensions/builtin-extensions.d.ts.map +1 -1
  164. package/esm/src/extensions/builtin-extensions.js +32 -26
  165. package/esm/src/extensions/deferred-extension.d.ts +4 -4
  166. package/esm/src/extensions/deferred-extension.js +4 -4
  167. package/esm/src/extensions/index.d.ts +1 -0
  168. package/esm/src/extensions/index.d.ts.map +1 -1
  169. package/esm/src/extensions/index.js +1 -0
  170. package/esm/src/html/hydration-script-builder/hydration-runtime.generated.js +1 -1
  171. package/esm/src/integrations/_data.d.ts.map +1 -1
  172. package/esm/src/integrations/_data.js +6 -0
  173. package/esm/src/integrations/schema.d.ts +8 -0
  174. package/esm/src/integrations/schema.d.ts.map +1 -1
  175. package/esm/src/integrations/schema.js +3 -0
  176. package/esm/src/integrations/types.d.ts +2 -0
  177. package/esm/src/integrations/types.d.ts.map +1 -1
  178. package/esm/src/internal-agents/run-stream.d.ts.map +1 -1
  179. package/esm/src/internal-agents/run-stream.js +35 -20
  180. package/esm/src/internal-agents/run-system-prompt.d.ts +7 -2
  181. package/esm/src/internal-agents/run-system-prompt.d.ts.map +1 -1
  182. package/esm/src/internal-agents/run-system-prompt.js +19 -13
  183. package/esm/src/internal-agents/schema.d.ts +2 -0
  184. package/esm/src/internal-agents/schema.d.ts.map +1 -1
  185. package/esm/src/modules/react-loader/ssr-module-loader/loader.d.ts.map +1 -1
  186. package/esm/src/modules/react-loader/ssr-module-loader/loader.js +2 -18
  187. package/esm/src/modules/react-loader/ssr-module-loader/ssr-dependency-validator.d.ts +11 -0
  188. package/esm/src/modules/react-loader/ssr-module-loader/ssr-dependency-validator.d.ts.map +1 -1
  189. package/esm/src/modules/react-loader/ssr-module-loader/ssr-dependency-validator.js +53 -6
  190. package/esm/src/observability/application-error-contract.d.ts +4 -0
  191. package/esm/src/observability/application-error-contract.d.ts.map +1 -1
  192. package/esm/src/observability/application-errors.d.ts.map +1 -1
  193. package/esm/src/observability/application-errors.js +55 -2
  194. package/esm/src/platform/adapters/runtime/deno/http-server.d.ts.map +1 -1
  195. package/esm/src/platform/adapters/runtime/deno/http-server.js +2 -10
  196. package/esm/src/platform/adapters/runtime/shared/request-peer.d.ts +14 -0
  197. package/esm/src/platform/adapters/runtime/shared/request-peer.d.ts.map +1 -1
  198. package/esm/src/platform/adapters/runtime/shared/request-peer.js +82 -0
  199. package/esm/src/platform/compat/http/pinned-fetch.d.ts +1 -1
  200. package/esm/src/provider/runtime-loader/provider-http.d.ts +5 -1
  201. package/esm/src/provider/runtime-loader/provider-http.d.ts.map +1 -1
  202. package/esm/src/provider/runtime-loader/provider-http.js +55 -17
  203. package/esm/src/provider/shared/index.d.ts +1 -0
  204. package/esm/src/provider/shared/index.d.ts.map +1 -1
  205. package/esm/src/provider/shared/index.js +2 -0
  206. package/esm/src/provider/types.d.ts +1 -0
  207. package/esm/src/provider/types.d.ts.map +1 -1
  208. package/esm/src/react/components/ui/adapter/builtin/combobox.d.ts +3 -0
  209. package/esm/src/react/components/ui/adapter/builtin/combobox.d.ts.map +1 -0
  210. package/esm/src/react/components/ui/adapter/builtin/combobox.js +204 -0
  211. package/esm/src/react/components/ui/adapter/builtin/dialog.d.ts +3 -0
  212. package/esm/src/react/components/ui/adapter/builtin/dialog.d.ts.map +1 -0
  213. package/esm/src/react/components/ui/adapter/builtin/dialog.js +20 -0
  214. package/esm/src/react/components/ui/adapter/builtin/drawer.d.ts +3 -0
  215. package/esm/src/react/components/ui/adapter/builtin/drawer.d.ts.map +1 -0
  216. package/esm/src/react/components/ui/adapter/builtin/drawer.js +21 -0
  217. package/esm/src/react/components/ui/adapter/builtin/index.d.ts.map +1 -1
  218. package/esm/src/react/components/ui/adapter/builtin/index.js +10 -0
  219. package/esm/src/react/components/ui/adapter/builtin/popover.d.ts +3 -0
  220. package/esm/src/react/components/ui/adapter/builtin/popover.d.ts.map +1 -0
  221. package/esm/src/react/components/ui/adapter/builtin/popover.js +28 -0
  222. package/esm/src/react/components/ui/adapter/builtin/tabs.d.ts +3 -0
  223. package/esm/src/react/components/ui/adapter/builtin/tabs.d.ts.map +1 -0
  224. package/esm/src/react/components/ui/adapter/builtin/tabs.js +73 -0
  225. package/esm/src/react/components/ui/adapter/context.d.ts.map +1 -1
  226. package/esm/src/react/components/ui/adapter/context.js +10 -0
  227. package/esm/src/react/components/ui/adapter/contract.d.ts +212 -0
  228. package/esm/src/react/components/ui/adapter/contract.d.ts.map +1 -1
  229. package/esm/src/react/components/ui/adapter/token-scope.d.ts +24 -0
  230. package/esm/src/react/components/ui/adapter/token-scope.d.ts.map +1 -0
  231. package/esm/src/react/components/ui/adapter/token-scope.js +26 -0
  232. package/esm/src/react/components/ui/alert-dialog.d.ts +101 -0
  233. package/esm/src/react/components/ui/alert-dialog.d.ts.map +1 -0
  234. package/esm/src/react/components/ui/alert-dialog.js +181 -0
  235. package/esm/src/react/components/ui/aspect-ratio.d.ts +18 -0
  236. package/esm/src/react/components/ui/aspect-ratio.d.ts.map +1 -0
  237. package/esm/src/react/components/ui/aspect-ratio.js +13 -0
  238. package/esm/src/react/components/ui/autocomplete.d.ts +67 -0
  239. package/esm/src/react/components/ui/autocomplete.d.ts.map +1 -0
  240. package/esm/src/react/components/ui/autocomplete.js +59 -0
  241. package/esm/src/react/components/ui/breadcrumb.d.ts +86 -0
  242. package/esm/src/react/components/ui/breadcrumb.d.ts.map +1 -0
  243. package/esm/src/react/components/ui/breadcrumb.js +67 -0
  244. package/esm/src/react/components/ui/calendar.d.ts +40 -0
  245. package/esm/src/react/components/ui/calendar.d.ts.map +1 -0
  246. package/esm/src/react/components/ui/calendar.js +170 -0
  247. package/esm/src/react/components/ui/combobox.d.ts +74 -0
  248. package/esm/src/react/components/ui/combobox.d.ts.map +1 -0
  249. package/esm/src/react/components/ui/combobox.js +100 -0
  250. package/esm/src/react/components/ui/context-menu.d.ts +116 -0
  251. package/esm/src/react/components/ui/context-menu.d.ts.map +1 -0
  252. package/esm/src/react/components/ui/context-menu.js +168 -0
  253. package/esm/src/react/components/ui/date-picker.d.ts +69 -0
  254. package/esm/src/react/components/ui/date-picker.d.ts.map +1 -0
  255. package/esm/src/react/components/ui/date-picker.js +96 -0
  256. package/esm/src/react/components/ui/dialog.d.ts +41 -11
  257. package/esm/src/react/components/ui/dialog.d.ts.map +1 -1
  258. package/esm/src/react/components/ui/dialog.js +47 -28
  259. package/esm/src/react/components/ui/drawer.d.ts +31 -8
  260. package/esm/src/react/components/ui/drawer.d.ts.map +1 -1
  261. package/esm/src/react/components/ui/drawer.js +33 -22
  262. package/esm/src/react/components/ui/dropdown-menu.d.ts.map +1 -1
  263. package/esm/src/react/components/ui/dropdown-menu.js +7 -75
  264. package/esm/src/react/components/ui/field.d.ts +70 -0
  265. package/esm/src/react/components/ui/field.d.ts.map +1 -0
  266. package/esm/src/react/components/ui/field.js +161 -0
  267. package/esm/src/react/components/ui/file-type.d.ts +9 -8
  268. package/esm/src/react/components/ui/file-type.d.ts.map +1 -1
  269. package/esm/src/react/components/ui/file-type.js +8 -8
  270. package/esm/src/react/components/ui/hover-card.d.ts +82 -0
  271. package/esm/src/react/components/ui/hover-card.d.ts.map +1 -0
  272. package/esm/src/react/components/ui/hover-card.js +140 -0
  273. package/esm/src/react/components/ui/index.d.ts +23 -2
  274. package/esm/src/react/components/ui/index.d.ts.map +1 -1
  275. package/esm/src/react/components/ui/index.js +21 -0
  276. package/esm/src/react/components/ui/input-otp.d.ts +37 -0
  277. package/esm/src/react/components/ui/input-otp.d.ts.map +1 -0
  278. package/esm/src/react/components/ui/input-otp.js +42 -0
  279. package/esm/src/react/components/ui/menu-keyboard.d.ts +8 -0
  280. package/esm/src/react/components/ui/menu-keyboard.d.ts.map +1 -0
  281. package/esm/src/react/components/ui/menu-keyboard.js +76 -0
  282. package/esm/src/react/components/ui/menubar.d.ts +98 -0
  283. package/esm/src/react/components/ui/menubar.d.ts.map +1 -0
  284. package/esm/src/react/components/ui/menubar.js +173 -0
  285. package/esm/src/react/components/ui/meter.d.ts +45 -0
  286. package/esm/src/react/components/ui/meter.d.ts.map +1 -0
  287. package/esm/src/react/components/ui/meter.js +59 -0
  288. package/esm/src/react/components/ui/modal-surface.d.ts +7 -1
  289. package/esm/src/react/components/ui/modal-surface.d.ts.map +1 -1
  290. package/esm/src/react/components/ui/modal-surface.js +23 -6
  291. package/esm/src/react/components/ui/navigation-menu.d.ts +101 -0
  292. package/esm/src/react/components/ui/navigation-menu.d.ts.map +1 -0
  293. package/esm/src/react/components/ui/navigation-menu.js +195 -0
  294. package/esm/src/react/components/ui/number-field.d.ts +46 -0
  295. package/esm/src/react/components/ui/number-field.d.ts.map +1 -0
  296. package/esm/src/react/components/ui/number-field.js +121 -0
  297. package/esm/src/react/components/ui/pagination.d.ts +77 -0
  298. package/esm/src/react/components/ui/pagination.d.ts.map +1 -0
  299. package/esm/src/react/components/ui/pagination.js +62 -0
  300. package/esm/src/react/components/ui/popover.d.ts +42 -13
  301. package/esm/src/react/components/ui/popover.d.ts.map +1 -1
  302. package/esm/src/react/components/ui/popover.js +25 -12
  303. package/esm/src/react/components/ui/scroll-area.d.ts +38 -0
  304. package/esm/src/react/components/ui/scroll-area.d.ts.map +1 -0
  305. package/esm/src/react/components/ui/scroll-area.js +35 -0
  306. package/esm/src/react/components/ui/separator.d.ts +20 -0
  307. package/esm/src/react/components/ui/separator.d.ts.map +1 -0
  308. package/esm/src/react/components/ui/separator.js +13 -0
  309. package/esm/src/react/components/ui/slider.d.ts +44 -0
  310. package/esm/src/react/components/ui/slider.d.ts.map +1 -0
  311. package/esm/src/react/components/ui/slider.js +46 -0
  312. package/esm/src/react/components/ui/status.d.ts +6 -5
  313. package/esm/src/react/components/ui/status.d.ts.map +1 -1
  314. package/esm/src/react/components/ui/status.js +4 -4
  315. package/esm/src/react/components/ui/tabs.d.ts +32 -9
  316. package/esm/src/react/components/ui/tabs.d.ts.map +1 -1
  317. package/esm/src/react/components/ui/tabs.js +46 -22
  318. package/esm/src/react/components/ui/toggle.d.ts +26 -0
  319. package/esm/src/react/components/ui/toggle.d.ts.map +1 -0
  320. package/esm/src/react/components/ui/toggle.js +29 -0
  321. package/esm/src/react/components/ui/use-isomorphic-layout-effect.d.ts +2 -1
  322. package/esm/src/react/components/ui/use-isomorphic-layout-effect.d.ts.map +1 -1
  323. package/esm/src/react/components/ui/use-isomorphic-layout-effect.js +6 -3
  324. package/esm/src/rendering/chunk-optimizer/source-imports.d.ts.map +1 -1
  325. package/esm/src/rendering/chunk-optimizer/source-imports.js +4 -114
  326. package/esm/src/rendering/orchestrator/module-loader/build-failure.d.ts +10 -0
  327. package/esm/src/rendering/orchestrator/module-loader/build-failure.d.ts.map +1 -1
  328. package/esm/src/rendering/orchestrator/module-loader/build-failure.js +50 -3
  329. package/esm/src/rendering/orchestrator/module-loader/dependency-resolver.d.ts +2 -0
  330. package/esm/src/rendering/orchestrator/module-loader/dependency-resolver.d.ts.map +1 -1
  331. package/esm/src/rendering/orchestrator/module-loader/dependency-resolver.js +21 -6
  332. package/esm/src/rendering/orchestrator/module-loader/index.d.ts +2 -1
  333. package/esm/src/rendering/orchestrator/module-loader/index.d.ts.map +1 -1
  334. package/esm/src/rendering/orchestrator/module-loader/index.js +190 -7
  335. package/esm/src/rendering/orchestrator/module-loader/module-persistence.d.ts +4 -0
  336. package/esm/src/rendering/orchestrator/module-loader/module-persistence.d.ts.map +1 -1
  337. package/esm/src/rendering/orchestrator/module-loader/module-persistence.js +374 -7
  338. package/esm/src/rendering/orchestrator/pipeline.d.ts.map +1 -1
  339. package/esm/src/rendering/orchestrator/pipeline.js +12 -1
  340. package/esm/src/runs/runs-client.d.ts +2 -4
  341. package/esm/src/runs/runs-client.d.ts.map +1 -1
  342. package/esm/src/runs/schemas.d.ts +18 -8
  343. package/esm/src/runs/schemas.d.ts.map +1 -1
  344. package/esm/src/runs/schemas.js +26 -0
  345. package/esm/src/runtime/model-call-context.d.ts +6 -1
  346. package/esm/src/runtime/model-call-context.d.ts.map +1 -1
  347. package/esm/src/runtime/runtime-bridge.d.ts.map +1 -1
  348. package/esm/src/runtime/runtime-bridge.js +133 -15
  349. package/esm/src/schedule/factory.d.ts +8 -2
  350. package/esm/src/schedule/factory.d.ts.map +1 -1
  351. package/esm/src/schedule/factory.js +0 -8
  352. package/esm/src/schedule/index.d.ts +10 -1
  353. package/esm/src/schedule/index.d.ts.map +1 -1
  354. package/esm/src/schedule/index.js +9 -0
  355. package/esm/src/schedule/types.d.ts +30 -11
  356. package/esm/src/schedule/types.d.ts.map +1 -1
  357. package/esm/src/schedule/validation.d.ts +17 -0
  358. package/esm/src/schedule/validation.d.ts.map +1 -1
  359. package/esm/src/schedule/validation.js +93 -5
  360. package/esm/src/server/dev-server/index.d.ts +1 -1
  361. package/esm/src/server/dev-server/index.d.ts.map +1 -1
  362. package/esm/src/server/dev-server/server.d.ts +7 -3
  363. package/esm/src/server/dev-server/server.d.ts.map +1 -1
  364. package/esm/src/server/dev-server/server.js +12 -3
  365. package/esm/src/server/dev-server/types.d.ts +7 -1
  366. package/esm/src/server/dev-server/types.d.ts.map +1 -1
  367. package/esm/src/server/dev-server.d.ts +1 -1
  368. package/esm/src/server/dev-server.d.ts.map +1 -1
  369. package/esm/src/server/handlers/dev/framework-candidates.generated.d.ts.map +1 -1
  370. package/esm/src/server/handlers/dev/framework-candidates.generated.js +2509 -34
  371. package/esm/src/server/handlers/dev/projects/index.d.ts.map +1 -1
  372. package/esm/src/server/handlers/dev/projects/index.js +3 -0
  373. package/esm/src/server/handlers/request/agent-stream.handler.d.ts.map +1 -1
  374. package/esm/src/server/handlers/request/agent-stream.handler.js +29 -24
  375. package/esm/src/server/index.d.ts +3 -3
  376. package/esm/src/server/index.d.ts.map +1 -1
  377. package/esm/src/server/index.js +10 -5
  378. package/esm/src/server/node-handler.d.ts.map +1 -1
  379. package/esm/src/server/node-handler.js +4 -1
  380. package/esm/src/server/production-server.d.ts.map +1 -1
  381. package/esm/src/server/production-server.js +2 -1
  382. package/esm/src/server/project-env/cache.d.ts +17 -0
  383. package/esm/src/server/project-env/cache.d.ts.map +1 -1
  384. package/esm/src/server/project-env/cache.js +78 -2
  385. package/esm/src/server/project-env/fetcher.d.ts.map +1 -1
  386. package/esm/src/server/project-env/fetcher.js +13 -3
  387. package/esm/src/server/project-env/index.d.ts +1 -1
  388. package/esm/src/server/project-env/index.d.ts.map +1 -1
  389. package/esm/src/server/project-env/index.js +1 -1
  390. package/esm/src/server/runtime-handler/index.d.ts.map +1 -1
  391. package/esm/src/server/runtime-handler/index.js +1 -1
  392. package/esm/src/server/runtime-handler/projects-handler.d.ts +1 -1
  393. package/esm/src/server/runtime-handler/projects-handler.d.ts.map +1 -1
  394. package/esm/src/server/runtime-handler/projects-handler.js +4 -2
  395. package/esm/src/transforms/esm/http-bundler.d.ts.map +1 -1
  396. package/esm/src/transforms/esm/http-bundler.js +6 -5
  397. package/esm/src/transforms/esm/http-cache-helpers.d.ts +11 -0
  398. package/esm/src/transforms/esm/http-cache-helpers.d.ts.map +1 -1
  399. package/esm/src/transforms/esm/http-cache-helpers.js +35 -0
  400. package/esm/src/transforms/esm/http-cache.d.ts.map +1 -1
  401. package/esm/src/transforms/esm/http-cache.js +16 -10
  402. package/esm/src/transforms/esm/specifier-resolver.d.ts.map +1 -1
  403. package/esm/src/transforms/esm/specifier-resolver.js +87 -7
  404. package/esm/src/transforms/import-rewriter/strategies/alias-strategy.d.ts +2 -0
  405. package/esm/src/transforms/import-rewriter/strategies/alias-strategy.d.ts.map +1 -1
  406. package/esm/src/transforms/import-rewriter/strategies/alias-strategy.js +11 -6
  407. package/esm/src/transforms/md/compiler/md-compiler.d.ts.map +1 -1
  408. package/esm/src/transforms/md/compiler/md-compiler.js +12 -5
  409. package/esm/src/transforms/mdx/compiler/frontmatter-extractor.d.ts +2 -0
  410. package/esm/src/transforms/mdx/compiler/frontmatter-extractor.d.ts.map +1 -1
  411. package/esm/src/transforms/mdx/compiler/frontmatter-extractor.js +33 -1
  412. package/esm/src/transforms/mdx/compiler/mdx-compiler.d.ts.map +1 -1
  413. package/esm/src/transforms/mdx/compiler/mdx-compiler.js +46 -7
  414. package/esm/src/transforms/mdx/esm-module-loader/cache/index.d.ts.map +1 -1
  415. package/esm/src/transforms/mdx/esm-module-loader/cache/index.js +8 -2
  416. package/esm/src/transforms/mdx/esm-module-loader/cache-format.d.ts +1 -0
  417. package/esm/src/transforms/mdx/esm-module-loader/cache-format.d.ts.map +1 -1
  418. package/esm/src/transforms/mdx/esm-module-loader/cache-format.js +3 -0
  419. package/esm/src/transforms/mdx/esm-module-loader/loader-helpers.d.ts +4 -0
  420. package/esm/src/transforms/mdx/esm-module-loader/loader-helpers.d.ts.map +1 -1
  421. package/esm/src/transforms/mdx/esm-module-loader/loader-helpers.js +44 -8
  422. package/esm/src/transforms/mdx/esm-module-loader/missing-module.d.ts +2 -0
  423. package/esm/src/transforms/mdx/esm-module-loader/missing-module.d.ts.map +1 -1
  424. package/esm/src/transforms/mdx/esm-module-loader/missing-module.js +4 -0
  425. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/http-fallback.d.ts.map +1 -1
  426. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/http-fallback.js +5 -1
  427. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/http-fetcher.d.ts +2 -0
  428. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/http-fetcher.d.ts.map +1 -1
  429. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/http-fetcher.js +50 -11
  430. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/nested-imports.d.ts +24 -12
  431. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/nested-imports.d.ts.map +1 -1
  432. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/nested-imports.js +201 -18
  433. package/esm/src/transforms/mdx/esm-module-loader/types.d.ts +5 -0
  434. package/esm/src/transforms/mdx/esm-module-loader/types.d.ts.map +1 -1
  435. package/esm/src/transforms/mdx/esm-module-loader/utils/source-spans.d.ts +22 -2
  436. package/esm/src/transforms/mdx/esm-module-loader/utils/source-spans.d.ts.map +1 -1
  437. package/esm/src/transforms/mdx/esm-module-loader/utils/source-spans.js +2080 -129
  438. package/esm/src/transforms/mdx/esm-module-loader/utils/stub-module.d.ts +11 -1
  439. package/esm/src/transforms/mdx/esm-module-loader/utils/stub-module.d.ts.map +1 -1
  440. package/esm/src/transforms/mdx/esm-module-loader/utils/stub-module.js +32 -15
  441. package/esm/src/transforms/pipeline/stages/compile.d.ts.map +1 -1
  442. package/esm/src/transforms/pipeline/stages/compile.js +44 -0
  443. package/esm/src/transforms/shared/specifier-suffix.d.ts +25 -0
  444. package/esm/src/transforms/shared/specifier-suffix.d.ts.map +1 -0
  445. package/esm/src/transforms/shared/specifier-suffix.js +43 -0
  446. package/esm/src/trigger/index.d.ts +2 -2
  447. package/esm/src/trigger/index.d.ts.map +1 -1
  448. package/esm/src/trigger/index.js +1 -1
  449. package/esm/src/trigger/local-runner.d.ts +2 -2
  450. package/esm/src/trigger/local-runner.d.ts.map +1 -1
  451. package/esm/src/trigger/local-runner.js +11 -4
  452. package/esm/src/trigger/target.d.ts +97 -5
  453. package/esm/src/trigger/target.d.ts.map +1 -1
  454. package/esm/src/trigger/target.js +175 -5
  455. package/esm/src/utils/version-constant.d.ts +1 -1
  456. package/esm/src/utils/version-constant.js +1 -1
  457. package/esm/src/webhook/types.d.ts +21 -6
  458. package/esm/src/webhook/types.d.ts.map +1 -1
  459. package/esm/src/webhook/validation.d.ts.map +1 -1
  460. package/esm/src/webhook/validation.js +27 -39
  461. package/esm/templates/index.d.ts +1 -1
  462. package/esm/templates/index.d.ts.map +1 -1
  463. package/esm/templates/loader.d.ts +6 -6
  464. package/esm/templates/loader.d.ts.map +1 -1
  465. package/esm/templates/loader.js +34 -18
  466. package/esm/templates/manifest.generated.d.ts +3 -0
  467. package/esm/templates/manifest.generated.d.ts.map +1 -0
  468. package/esm/templates/manifest.generated.js +2 -0
  469. package/package.json +8 -8
  470. package/esm/templates/manifest.d.ts +0 -664
  471. package/esm/templates/manifest.d.ts.map +0 -1
  472. package/esm/templates/manifest.js +0 -662
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Autocomplete - a free-text input with a suggestions dropdown. Unlike
3
+ * {@link Combobox} (where the value must be one of the listed options), the
4
+ * value here is *whatever the user types*; suggestions are optional completions
5
+ * that fill the input when chosen. It reuses the zero-dependency `combobox`
6
+ * adapter for its mechanics (filtering, `aria-activedescendant` keyboard nav,
7
+ * open/dismiss, token-scope portalling) - swap it via `UIAdapterProvider` like
8
+ * any other primitive.
9
+ *
10
+ * @example
11
+ * ```tsx
12
+ * import { Autocomplete, AutocompleteContent, AutocompleteInput, AutocompleteItem } from "veryfront/ui";
13
+ *
14
+ * <Autocomplete onValueChange={setQuery}>
15
+ * <AutocompleteInput placeholder="Search cities…" />
16
+ * <AutocompleteContent>
17
+ * {suggestions.map((s) => <AutocompleteItem key={s} value={s} />)}
18
+ * </AutocompleteContent>
19
+ * </Autocomplete>;
20
+ * ```
21
+ *
22
+ * @module react/components/ui/autocomplete
23
+ */
24
+ import * as React from "react";
25
+ /** Props accepted by `<Autocomplete>` (the root; owns the input text + open state). */
26
+ export interface AutocompleteProps {
27
+ /** `AutocompleteInput` + `AutocompleteContent` parts to compose. */
28
+ children: React.ReactNode;
29
+ /** Initial input text when uncontrolled. */
30
+ defaultValue?: string;
31
+ /** Fires with the current text on every change - typing OR choosing a suggestion. */
32
+ onValueChange?: (value: string) => void;
33
+ /** Controlled open state of the suggestions list (pair with `onOpenChange`). */
34
+ open?: boolean;
35
+ /** Initial open state when uncontrolled. */
36
+ defaultOpen?: boolean;
37
+ /** Fires when the suggestions list opens or closes. */
38
+ onOpenChange?: (open: boolean) => void;
39
+ }
40
+ /** Autocomplete root - renders no node of its own (state + context only). */
41
+ export declare function Autocomplete({ children, defaultValue, onValueChange, open, defaultOpen, onOpenChange, }: AutocompleteProps): React.ReactElement;
42
+ /** Props accepted by `<AutocompleteInput>`. */
43
+ export interface AutocompleteInputProps extends React.InputHTMLAttributes<HTMLInputElement> {
44
+ /** React 19: ref is a regular prop. */
45
+ ref?: React.Ref<HTMLInputElement>;
46
+ }
47
+ /** The free-text input that drives the suggestions. */
48
+ export declare function AutocompleteInput({ className, ...props }: AutocompleteInputProps): React.ReactElement;
49
+ /** Props accepted by `<AutocompleteContent>`. */
50
+ export interface AutocompleteContentProps extends React.HTMLAttributes<HTMLDivElement> {
51
+ /** React 19: ref is a regular prop. */
52
+ ref?: React.Ref<HTMLDivElement>;
53
+ }
54
+ /** The floating `role="listbox"` of suggestions, shown while typing. */
55
+ export declare function AutocompleteContent({ className, children, ...props }: AutocompleteContentProps): React.ReactElement | null;
56
+ /** Props accepted by `<AutocompleteItem>`. */
57
+ export interface AutocompleteItemProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "onSelect"> {
58
+ /** The suggestion text - filled into the input when chosen, and used for filtering. */
59
+ value: string;
60
+ /** Disable this suggestion and dim it. */
61
+ disabled?: boolean;
62
+ /** React 19: ref is a regular prop. */
63
+ ref?: React.Ref<HTMLDivElement>;
64
+ }
65
+ /** A single suggestion. Fills the input when chosen; hides when it doesn't match. */
66
+ export declare function AutocompleteItem({ value, disabled, className, children, onClick, ref, ...props }: AutocompleteItemProps): React.ReactElement | null;
67
+ //# sourceMappingURL=autocomplete.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autocomplete.d.ts","sourceRoot":"","sources":["../../../../../src/src/react/components/ui/autocomplete.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,uFAAuF;AACvF,MAAM,WAAW,iBAAiB;IAChC,oEAAoE;IACpE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,4CAA4C;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qFAAqF;IACrF,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,gFAAgF;IAChF,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,4CAA4C;IAC5C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,uDAAuD;IACvD,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACxC;AAED,6EAA6E;AAC7E,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,IAAI,EACJ,WAAW,EACX,YAAY,GACb,EAAE,iBAAiB,GAAG,KAAK,CAAC,YAAY,CAaxC;AAED,+CAA+C;AAC/C,MAAM,WAAW,sBAAuB,SAAQ,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC;IACzF,uCAAuC;IACvC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;CACnC;AAED,uDAAuD;AACvD,wBAAgB,iBAAiB,CAC/B,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,sBAAsB,GAC9C,KAAK,CAAC,YAAY,CAcpB;AAED,iDAAiD;AACjD,MAAM,WAAW,wBAAyB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACpF,uCAAuC;IACvC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;CACjC;AAED,wEAAwE;AACxE,wBAAgB,mBAAmB,CACjC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,wBAAwB,GAC1D,KAAK,CAAC,YAAY,GAAG,IAAI,CAc3B;AAED,8CAA8C;AAC9C,MAAM,WAAW,qBACf,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC;IAC9D,uFAAuF;IACvF,KAAK,EAAE,MAAM,CAAC;IACd,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uCAAuC;IACvC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;CACjC;AAED,qFAAqF;AACrF,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,OAAO,EACP,GAAG,EACH,GAAG,KAAK,EACT,EAAE,qBAAqB,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CAsCnD"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Autocomplete - a free-text input with a suggestions dropdown. Unlike
3
+ * {@link Combobox} (where the value must be one of the listed options), the
4
+ * value here is *whatever the user types*; suggestions are optional completions
5
+ * that fill the input when chosen. It reuses the zero-dependency `combobox`
6
+ * adapter for its mechanics (filtering, `aria-activedescendant` keyboard nav,
7
+ * open/dismiss, token-scope portalling) - swap it via `UIAdapterProvider` like
8
+ * any other primitive.
9
+ *
10
+ * @example
11
+ * ```tsx
12
+ * import { Autocomplete, AutocompleteContent, AutocompleteInput, AutocompleteItem } from "veryfront/ui";
13
+ *
14
+ * <Autocomplete onValueChange={setQuery}>
15
+ * <AutocompleteInput placeholder="Search cities…" />
16
+ * <AutocompleteContent>
17
+ * {suggestions.map((s) => <AutocompleteItem key={s} value={s} />)}
18
+ * </AutocompleteContent>
19
+ * </Autocomplete>;
20
+ * ```
21
+ *
22
+ * @module react/components/ui/autocomplete
23
+ */
24
+ import * as React from "react";
25
+ import { cx as cn } from "./cva.js";
26
+ import { useAdapter } from "./adapter/context.js";
27
+ /** Autocomplete root - renders no node of its own (state + context only). */
28
+ export function Autocomplete({ children, defaultValue, onValueChange, open, defaultOpen, onOpenChange, }) {
29
+ const { combobox } = useAdapter();
30
+ return (React.createElement(combobox.Root, { defaultInputValue: defaultValue, onInputValueChange: onValueChange, open: open, defaultOpen: defaultOpen, onOpenChange: onOpenChange }, children));
31
+ }
32
+ /** The free-text input that drives the suggestions. */
33
+ export function AutocompleteInput({ className, ...props }) {
34
+ const { combobox } = useAdapter();
35
+ return (React.createElement(combobox.Input, { className: cn("h-[38px] w-full rounded-md px-3 text-base", "bg-[var(--input-bg)] text-[var(--foreground)] border border-[var(--outline-border)]", "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[var(--edge-medium)]", "disabled:cursor-not-allowed disabled:opacity-50", className), ...props }));
36
+ }
37
+ /** The floating `role="listbox"` of suggestions, shown while typing. */
38
+ export function AutocompleteContent({ className, children, ...props }) {
39
+ const { combobox } = useAdapter();
40
+ return (React.createElement(combobox.Content, { className: cn("z-50 max-h-64 min-w-[220px] overflow-auto rounded-lg", "bg-[var(--popover)] text-[var(--foreground)] shadow-sm outline-none", className), ...props }, children));
41
+ }
42
+ /** A single suggestion. Fills the input when chosen; hides when it doesn't match. */
43
+ export function AutocompleteItem({ value, disabled, className, children, onClick, ref, ...props }) {
44
+ const { combobox } = useAdapter();
45
+ const ctx = combobox.useCombobox();
46
+ const id = React.useId();
47
+ React.useEffect(() => {
48
+ ctx.registerOption(id, value, value, disabled);
49
+ return () => ctx.unregisterOption(id);
50
+ }, [ctx, disabled, id, value]);
51
+ if (!ctx.matches(value))
52
+ return null;
53
+ const active = ctx.activeId === id;
54
+ return (React.createElement("div", { ref: ref, id: id, role: "option", "aria-selected": false, "aria-disabled": disabled || undefined, "data-active": active ? "" : undefined, "data-disabled": disabled ? "" : undefined, onClick: (event) => {
55
+ onClick?.(event);
56
+ if (!event.defaultPrevented && !disabled)
57
+ ctx.select(value, value);
58
+ }, className: cn("flex cursor-pointer items-center rounded-md px-2.5 py-1.5 text-base", "data-[active]:bg-[var(--accent)]", "data-[disabled]:pointer-events-none data-[disabled]:opacity-50", className), ...props }, children ?? value));
59
+ }
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Breadcrumb: a non-interactive navigation trail showing the current page's
3
+ * location within a hierarchy. Pure-structure primitive (no engine needed): a
4
+ * labelled `<nav>` wrapping an ordered `<BreadcrumbList>` of `<BreadcrumbItem>`s,
5
+ * with `<BreadcrumbLink>`s for ancestors, a single `<BreadcrumbPage>` for the
6
+ * current page (`aria-current="page"`), decorative `<BreadcrumbSeparator>`s
7
+ * between them, and an optional `<BreadcrumbEllipsis>` to collapse a long trail.
8
+ * Skinned with the veryfront theme tokens.
9
+ *
10
+ * @example
11
+ * ```tsx
12
+ * import {
13
+ * Breadcrumb,
14
+ * BreadcrumbList,
15
+ * BreadcrumbItem,
16
+ * BreadcrumbLink,
17
+ * BreadcrumbSeparator,
18
+ * BreadcrumbPage,
19
+ * } from "veryfront/ui";
20
+ *
21
+ * <Breadcrumb>
22
+ * <BreadcrumbList>
23
+ * <BreadcrumbItem>
24
+ * <BreadcrumbLink href="/">Home</BreadcrumbLink>
25
+ * </BreadcrumbItem>
26
+ * <BreadcrumbSeparator />
27
+ * <BreadcrumbItem>
28
+ * <BreadcrumbPage>Settings</BreadcrumbPage>
29
+ * </BreadcrumbItem>
30
+ * </BreadcrumbList>
31
+ * </Breadcrumb>;
32
+ * ```
33
+ *
34
+ * @module react/components/ui/breadcrumb
35
+ */
36
+ import * as React from "react";
37
+ /** Props accepted by `<Breadcrumb>`. */
38
+ export interface BreadcrumbProps extends React.HTMLAttributes<HTMLElement> {
39
+ /** React 19: ref is a regular prop. */
40
+ ref?: React.Ref<HTMLElement>;
41
+ }
42
+ /** The landmark `<nav aria-label="Breadcrumb">` wrapping the trail. */
43
+ export declare function Breadcrumb({ className, children, ref, ...props }: BreadcrumbProps): React.ReactElement;
44
+ /** Props accepted by `<BreadcrumbList>`. */
45
+ export interface BreadcrumbListProps extends React.OlHTMLAttributes<HTMLOListElement> {
46
+ /** React 19: ref is a regular prop. */
47
+ ref?: React.Ref<HTMLOListElement>;
48
+ }
49
+ /** The ordered list of trail items. */
50
+ export declare function BreadcrumbList({ className, children, ref, ...props }: BreadcrumbListProps): React.ReactElement;
51
+ /** Props accepted by `<BreadcrumbItem>`. */
52
+ export interface BreadcrumbItemProps extends React.LiHTMLAttributes<HTMLLIElement> {
53
+ /** React 19: ref is a regular prop. */
54
+ ref?: React.Ref<HTMLLIElement>;
55
+ }
56
+ /** A single item in the trail: wraps a link, the current page, or an ellipsis. */
57
+ export declare function BreadcrumbItem({ className, children, ref, ...props }: BreadcrumbItemProps): React.ReactElement;
58
+ /** Props accepted by `<BreadcrumbLink>`. */
59
+ export interface BreadcrumbLinkProps extends React.AnchorHTMLAttributes<HTMLAnchorElement> {
60
+ /** React 19: ref is a regular prop. */
61
+ ref?: React.Ref<HTMLAnchorElement>;
62
+ }
63
+ /** A navigable ancestor link in the trail. */
64
+ export declare function BreadcrumbLink({ className, children, ref, ...props }: BreadcrumbLinkProps): React.ReactElement;
65
+ /** Props accepted by `<BreadcrumbPage>`. */
66
+ export interface BreadcrumbPageProps extends React.HTMLAttributes<HTMLSpanElement> {
67
+ /** React 19: ref is a regular prop. */
68
+ ref?: React.Ref<HTMLSpanElement>;
69
+ }
70
+ /** The current page: a non-interactive `role="link"` marked `aria-current="page"`. */
71
+ export declare function BreadcrumbPage({ className, children, ref, ...props }: BreadcrumbPageProps): React.ReactElement;
72
+ /** Props accepted by `<BreadcrumbSeparator>`. */
73
+ export interface BreadcrumbSeparatorProps extends React.LiHTMLAttributes<HTMLLIElement> {
74
+ /** React 19: ref is a regular prop. */
75
+ ref?: React.Ref<HTMLLIElement>;
76
+ }
77
+ /** A decorative divider between items; renders its children or a default `/`. */
78
+ export declare function BreadcrumbSeparator({ className, children, ref, ...props }: BreadcrumbSeparatorProps): React.ReactElement;
79
+ /** Props accepted by `<BreadcrumbEllipsis>`. */
80
+ export interface BreadcrumbEllipsisProps extends React.HTMLAttributes<HTMLSpanElement> {
81
+ /** React 19: ref is a regular prop. */
82
+ ref?: React.Ref<HTMLSpanElement>;
83
+ }
84
+ /** A collapsed-trail indicator: renders `…` with an sr-only "More" label. */
85
+ export declare function BreadcrumbEllipsis({ className, ref, ...props }: BreadcrumbEllipsisProps): React.ReactElement;
86
+ //# sourceMappingURL=breadcrumb.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breadcrumb.d.ts","sourceRoot":"","sources":["../../../../../src/src/react/components/ui/breadcrumb.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,wCAAwC;AACxC,MAAM,WAAW,eAAgB,SAAQ,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC;IACxE,uCAAuC;IACvC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;CAC9B;AAED,uEAAuE;AACvE,wBAAgB,UAAU,CAAC,EACzB,SAAS,EACT,QAAQ,EACR,GAAG,EACH,GAAG,KAAK,EACT,EAAE,eAAe,GAAG,KAAK,CAAC,YAAY,CAYtC;AAED,4CAA4C;AAC5C,MAAM,WAAW,mBAAoB,SAAQ,KAAK,CAAC,gBAAgB,CAAC,gBAAgB,CAAC;IACnF,uCAAuC;IACvC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;CACnC;AAED,uCAAuC;AACvC,wBAAgB,cAAc,CAAC,EAC7B,SAAS,EACT,QAAQ,EACR,GAAG,EACH,GAAG,KAAK,EACT,EAAE,mBAAmB,GAAG,KAAK,CAAC,YAAY,CAc1C;AAED,4CAA4C;AAC5C,MAAM,WAAW,mBAAoB,SAAQ,KAAK,CAAC,gBAAgB,CAAC,aAAa,CAAC;IAChF,uCAAuC;IACvC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;CAChC;AAED,kFAAkF;AAClF,wBAAgB,cAAc,CAAC,EAC7B,SAAS,EACT,QAAQ,EACR,GAAG,EACH,GAAG,KAAK,EACT,EAAE,mBAAmB,GAAG,KAAK,CAAC,YAAY,CAW1C;AAED,4CAA4C;AAC5C,MAAM,WAAW,mBAAoB,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC;IACxF,uCAAuC;IACvC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;CACpC;AAED,8CAA8C;AAC9C,wBAAgB,cAAc,CAAC,EAC7B,SAAS,EACT,QAAQ,EACR,GAAG,EACH,GAAG,KAAK,EACT,EAAE,mBAAmB,GAAG,KAAK,CAAC,YAAY,CAW1C;AAED,4CAA4C;AAC5C,MAAM,WAAW,mBAAoB,SAAQ,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC;IAChF,uCAAuC;IACvC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;CAClC;AAED,sFAAsF;AACtF,wBAAgB,cAAc,CAAC,EAC7B,SAAS,EACT,QAAQ,EACR,GAAG,EACH,GAAG,KAAK,EACT,EAAE,mBAAmB,GAAG,KAAK,CAAC,YAAY,CAc1C;AAED,iDAAiD;AACjD,MAAM,WAAW,wBAAyB,SAAQ,KAAK,CAAC,gBAAgB,CAAC,aAAa,CAAC;IACrF,uCAAuC;IACvC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;CAChC;AAED,iFAAiF;AACjF,wBAAgB,mBAAmB,CAAC,EAClC,SAAS,EACT,QAAQ,EACR,GAAG,EACH,GAAG,KAAK,EACT,EAAE,wBAAwB,GAAG,KAAK,CAAC,YAAY,CAa/C;AAED,gDAAgD;AAChD,MAAM,WAAW,uBAAwB,SAAQ,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC;IACpF,uCAAuC;IACvC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;CAClC;AAED,6EAA6E;AAC7E,wBAAgB,kBAAkB,CAAC,EACjC,SAAS,EACT,GAAG,EACH,GAAG,KAAK,EACT,EAAE,uBAAuB,GAAG,KAAK,CAAC,YAAY,CAiB9C"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Breadcrumb: a non-interactive navigation trail showing the current page's
3
+ * location within a hierarchy. Pure-structure primitive (no engine needed): a
4
+ * labelled `<nav>` wrapping an ordered `<BreadcrumbList>` of `<BreadcrumbItem>`s,
5
+ * with `<BreadcrumbLink>`s for ancestors, a single `<BreadcrumbPage>` for the
6
+ * current page (`aria-current="page"`), decorative `<BreadcrumbSeparator>`s
7
+ * between them, and an optional `<BreadcrumbEllipsis>` to collapse a long trail.
8
+ * Skinned with the veryfront theme tokens.
9
+ *
10
+ * @example
11
+ * ```tsx
12
+ * import {
13
+ * Breadcrumb,
14
+ * BreadcrumbList,
15
+ * BreadcrumbItem,
16
+ * BreadcrumbLink,
17
+ * BreadcrumbSeparator,
18
+ * BreadcrumbPage,
19
+ * } from "veryfront/ui";
20
+ *
21
+ * <Breadcrumb>
22
+ * <BreadcrumbList>
23
+ * <BreadcrumbItem>
24
+ * <BreadcrumbLink href="/">Home</BreadcrumbLink>
25
+ * </BreadcrumbItem>
26
+ * <BreadcrumbSeparator />
27
+ * <BreadcrumbItem>
28
+ * <BreadcrumbPage>Settings</BreadcrumbPage>
29
+ * </BreadcrumbItem>
30
+ * </BreadcrumbList>
31
+ * </Breadcrumb>;
32
+ * ```
33
+ *
34
+ * @module react/components/ui/breadcrumb
35
+ */
36
+ import * as React from "react";
37
+ import { cx as cn } from "./cva.js";
38
+ /** The landmark `<nav aria-label="Breadcrumb">` wrapping the trail. */
39
+ export function Breadcrumb({ className, children, ref, ...props }) {
40
+ return (React.createElement("nav", { ref: ref, "aria-label": "Breadcrumb", "data-slot": "breadcrumb", className: className, ...props }, children));
41
+ }
42
+ /** The ordered list of trail items. */
43
+ export function BreadcrumbList({ className, children, ref, ...props }) {
44
+ return (React.createElement("ol", { ref: ref, "data-slot": "breadcrumb-list", className: cn("flex flex-wrap items-center gap-1.5 break-words text-sm text-[var(--muted-foreground)] sm:gap-2.5", className), ...props }, children));
45
+ }
46
+ /** A single item in the trail: wraps a link, the current page, or an ellipsis. */
47
+ export function BreadcrumbItem({ className, children, ref, ...props }) {
48
+ return (React.createElement("li", { ref: ref, "data-slot": "breadcrumb-item", className: cn("inline-flex items-center gap-1.5", className), ...props }, children));
49
+ }
50
+ /** A navigable ancestor link in the trail. */
51
+ export function BreadcrumbLink({ className, children, ref, ...props }) {
52
+ return (React.createElement("a", { ref: ref, "data-slot": "breadcrumb-link", className: cn("transition-colors hover:text-[var(--foreground)]", className), ...props }, children));
53
+ }
54
+ /** The current page: a non-interactive `role="link"` marked `aria-current="page"`. */
55
+ export function BreadcrumbPage({ className, children, ref, ...props }) {
56
+ return (React.createElement("span", { ref: ref, role: "link", "aria-disabled": "true", "aria-current": "page", "data-slot": "breadcrumb-page", className: cn("font-normal text-[var(--foreground)]", className), ...props }, children));
57
+ }
58
+ /** A decorative divider between items; renders its children or a default `/`. */
59
+ export function BreadcrumbSeparator({ className, children, ref, ...props }) {
60
+ return (React.createElement("li", { ref: ref, role: "presentation", "aria-hidden": "true", "data-slot": "breadcrumb-separator", className: cn("[&>svg]:size-3.5", className), ...props }, children ?? "/"));
61
+ }
62
+ /** A collapsed-trail indicator: renders `…` with an sr-only "More" label. */
63
+ export function BreadcrumbEllipsis({ className, ref, ...props }) {
64
+ return (React.createElement("span", { ref: ref, role: "presentation", "data-slot": "breadcrumb-ellipsis", className: cn("flex size-9 items-center justify-center", className), ...props },
65
+ React.createElement("span", { "aria-hidden": "true" }, "\u2026"),
66
+ React.createElement("span", { className: "sr-only" }, "More")));
67
+ }
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Calendar: a dependency-free single-month date grid. Renders a header row
3
+ * (previous-month button, "Month YYYY" caption, and next-month button), a
4
+ * weekday header, and a `role="grid"` table of days. One day participates in
5
+ * the tab order. Arrow keys move by day or week, Home and End move to week
6
+ * boundaries, and Page Up and Page Down move by month. The selected day is
7
+ * controlled via `value`; selecting a day fires `onChange`. The displayed month
8
+ * is tracked internally (seeded from `defaultMonth ?? value ?? today`) and moved
9
+ * by the previous and next buttons. Self-contained: no `react-day-picker`, no
10
+ * floating engine; skinned with the veryfront theme tokens.
11
+ *
12
+ * @example
13
+ * ```tsx
14
+ * import { Calendar } from "veryfront/ui";
15
+ *
16
+ * function Example() {
17
+ * const [day, setDay] = React.useState<Date>();
18
+ * return <Calendar value={day} onChange={setDay} />;
19
+ * }
20
+ * ```
21
+ *
22
+ * @module react/components/ui/calendar
23
+ */
24
+ import * as React from "react";
25
+ /** Props accepted by `<Calendar>`. */
26
+ export interface CalendarProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "onChange"> {
27
+ /** The selected day (controlled). @default undefined */
28
+ value?: Date;
29
+ /** Fires with the selected day. @default undefined */
30
+ onChange?: (date: Date) => void;
31
+ /** Month shown initially; the displayed month is tracked internally and moved by the prev/next buttons. @default value ?? today */
32
+ defaultMonth?: Date;
33
+ /** First day of the week: `0` = Sunday, `1` = Monday. @default 0 */
34
+ weekStartsOn?: 0 | 1;
35
+ /** React 19: ref is a regular prop. */
36
+ ref?: React.Ref<HTMLDivElement>;
37
+ }
38
+ /** A dependency-free single-month date grid. */
39
+ export declare function Calendar({ value, onChange, defaultMonth, weekStartsOn, className, ref, ...props }: CalendarProps): React.ReactElement;
40
+ //# sourceMappingURL=calendar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../../../../../src/src/react/components/ui/calendar.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA2D/B,sCAAsC;AACtC,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC;IAC3F,wDAAwD;IACxD,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,sDAAsD;IACtD,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAChC,mIAAmI;IACnI,YAAY,CAAC,EAAE,IAAI,CAAC;IACpB,oEAAoE;IACpE,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACrB,uCAAuC;IACvC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;CACjC;AAED,gDAAgD;AAChD,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,YAAgB,EAChB,SAAS,EACT,GAAG,EACH,GAAG,KAAK,EACT,EAAE,aAAa,GAAG,KAAK,CAAC,YAAY,CA0KpC"}
@@ -0,0 +1,170 @@
1
+ /**
2
+ * Calendar: a dependency-free single-month date grid. Renders a header row
3
+ * (previous-month button, "Month YYYY" caption, and next-month button), a
4
+ * weekday header, and a `role="grid"` table of days. One day participates in
5
+ * the tab order. Arrow keys move by day or week, Home and End move to week
6
+ * boundaries, and Page Up and Page Down move by month. The selected day is
7
+ * controlled via `value`; selecting a day fires `onChange`. The displayed month
8
+ * is tracked internally (seeded from `defaultMonth ?? value ?? today`) and moved
9
+ * by the previous and next buttons. Self-contained: no `react-day-picker`, no
10
+ * floating engine; skinned with the veryfront theme tokens.
11
+ *
12
+ * @example
13
+ * ```tsx
14
+ * import { Calendar } from "veryfront/ui";
15
+ *
16
+ * function Example() {
17
+ * const [day, setDay] = React.useState<Date>();
18
+ * return <Calendar value={day} onChange={setDay} />;
19
+ * }
20
+ * ```
21
+ *
22
+ * @module react/components/ui/calendar
23
+ */
24
+ import * as React from "react";
25
+ import { cx as cn } from "./cva.js";
26
+ const MONTHS = [
27
+ "January",
28
+ "February",
29
+ "March",
30
+ "April",
31
+ "May",
32
+ "June",
33
+ "July",
34
+ "August",
35
+ "September",
36
+ "October",
37
+ "November",
38
+ "December",
39
+ ];
40
+ // Sunday-first weekday labels; rotated when weekStartsOn === 1.
41
+ const WEEKDAYS = ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"];
42
+ /** First day of the month `d` falls in, at local midnight. */
43
+ function startOfMonth(d) {
44
+ return new Date(d.getFullYear(), d.getMonth(), 1);
45
+ }
46
+ /** True when `a` and `b` are the same calendar day. */
47
+ function isSameDay(a, b) {
48
+ return (a.getFullYear() === b.getFullYear() &&
49
+ a.getMonth() === b.getMonth() &&
50
+ a.getDate() === b.getDate());
51
+ }
52
+ /** True when `a` and `b` fall in the same calendar month. */
53
+ function isSameMonth(a, b) {
54
+ return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth();
55
+ }
56
+ /** Return the local calendar day `offset` days from `date`. */
57
+ function addDays(date, offset) {
58
+ return new Date(date.getFullYear(), date.getMonth(), date.getDate() + offset);
59
+ }
60
+ /** Move by whole months, clamping the day to the target month's final day. */
61
+ function addMonths(date, offset) {
62
+ const target = new Date(date.getFullYear(), date.getMonth() + offset, 1);
63
+ const lastDay = new Date(target.getFullYear(), target.getMonth() + 1, 0).getDate();
64
+ return new Date(target.getFullYear(), target.getMonth(), Math.min(date.getDate(), lastDay));
65
+ }
66
+ /** Chunk the flat cell list into rows of seven. */
67
+ function toWeeks(cells) {
68
+ const weeks = [];
69
+ for (let i = 0; i < cells.length; i += 7)
70
+ weeks.push(cells.slice(i, i + 7));
71
+ return weeks;
72
+ }
73
+ /** A dependency-free single-month date grid. */
74
+ export function Calendar({ value, onChange, defaultMonth, weekStartsOn = 0, className, ref, ...props }) {
75
+ const [displayed, setDisplayed] = React.useState(() => startOfMonth(defaultMonth ?? value ?? new Date()));
76
+ const [activeDate, setActiveDate] = React.useState(() => {
77
+ const initialMonth = startOfMonth(defaultMonth ?? value ?? new Date());
78
+ const today = new Date();
79
+ if (value != null && isSameMonth(value, initialMonth))
80
+ return value;
81
+ if (isSameMonth(today, initialMonth))
82
+ return today;
83
+ return initialMonth;
84
+ });
85
+ const activeButtonRef = React.useRef(null);
86
+ const shouldFocusActiveRef = React.useRef(false);
87
+ React.useEffect(() => {
88
+ if (!shouldFocusActiveRef.current)
89
+ return;
90
+ shouldFocusActiveRef.current = false;
91
+ activeButtonRef.current?.focus();
92
+ }, [activeDate, displayed]);
93
+ const today = new Date();
94
+ const year = displayed.getFullYear();
95
+ const month = displayed.getMonth();
96
+ const caption = `${MONTHS[month]} ${year}`;
97
+ const weekdays = weekStartsOn === 1 ? [...WEEKDAYS.slice(1), WEEKDAYS[0]] : WEEKDAYS;
98
+ const daysInMonth = new Date(year, month + 1, 0).getDate();
99
+ const leading = (new Date(year, month, 1).getDay() - weekStartsOn + 7) % 7;
100
+ const cells = [];
101
+ for (let i = 0; i < leading; i++)
102
+ cells.push(null);
103
+ for (let d = 1; d <= daysInMonth; d++)
104
+ cells.push(d);
105
+ while (cells.length % 7 !== 0)
106
+ cells.push(null);
107
+ const weeks = toWeeks(cells);
108
+ const select = (day) => onChange?.(new Date(year, month, day));
109
+ const moveFocus = (date) => {
110
+ shouldFocusActiveRef.current = true;
111
+ if (!isSameMonth(date, displayed))
112
+ setDisplayed(startOfMonth(date));
113
+ setActiveDate(date);
114
+ };
115
+ const changeDisplayedMonth = (offset) => {
116
+ const date = addMonths(activeDate, offset);
117
+ setDisplayed(startOfMonth(date));
118
+ setActiveDate(date);
119
+ };
120
+ const goPrev = () => changeDisplayedMonth(-1);
121
+ const goNext = () => changeDisplayedMonth(1);
122
+ const handleDayKeyDown = (event, date) => {
123
+ const dayOfWeek = (date.getDay() - weekStartsOn + 7) % 7;
124
+ const nextDate = event.key === "ArrowLeft"
125
+ ? addDays(date, -1)
126
+ : event.key === "ArrowRight"
127
+ ? addDays(date, 1)
128
+ : event.key === "ArrowUp"
129
+ ? addDays(date, -7)
130
+ : event.key === "ArrowDown"
131
+ ? addDays(date, 7)
132
+ : event.key === "Home"
133
+ ? addDays(date, -dayOfWeek)
134
+ : event.key === "End"
135
+ ? addDays(date, 6 - dayOfWeek)
136
+ : event.key === "PageUp"
137
+ ? addMonths(date, -1)
138
+ : event.key === "PageDown"
139
+ ? addMonths(date, 1)
140
+ : null;
141
+ if (nextDate == null)
142
+ return;
143
+ event.preventDefault();
144
+ moveFocus(nextDate);
145
+ };
146
+ return (React.createElement("div", { ref: ref, "data-month": caption, className: cn("w-fit select-none rounded-lg border border-[var(--border)] bg-[var(--background)] p-3 text-[var(--foreground)]", className), ...props },
147
+ React.createElement("div", { className: "mb-2 flex items-center justify-between" },
148
+ React.createElement("button", { type: "button", "aria-label": "Previous month", onClick: goPrev, className: "inline-flex size-7 items-center justify-center rounded-md text-[var(--muted-foreground)] hover:bg-[var(--accent)] hover:text-[var(--accent-foreground)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]" }, "\u2039"),
149
+ React.createElement("div", { "aria-live": "polite", className: "text-sm font-medium text-[var(--foreground)]" }, caption),
150
+ React.createElement("button", { type: "button", "aria-label": "Next month", onClick: goNext, className: "inline-flex size-7 items-center justify-center rounded-md text-[var(--muted-foreground)] hover:bg-[var(--accent)] hover:text-[var(--accent-foreground)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]" }, "\u203A")),
151
+ React.createElement("table", { role: "grid", "aria-label": caption, className: "border-collapse" },
152
+ React.createElement("thead", null,
153
+ React.createElement("tr", { role: "row", className: "flex" }, weekdays.map((label, i) => (React.createElement("th", { key: i, scope: "col", className: "inline-flex size-9 items-center justify-center text-xs font-normal text-[var(--muted-foreground)]" }, label))))),
154
+ React.createElement("tbody", null, weeks.map((week, wi) => (React.createElement("tr", { key: wi, role: "row", className: "flex" }, week.map((day, di) => {
155
+ if (day == null) {
156
+ return React.createElement("td", { key: di, role: "gridcell", className: "size-9" });
157
+ }
158
+ const date = new Date(year, month, day);
159
+ const selected = value != null && isSameDay(value, date);
160
+ const isToday = isSameDay(today, date);
161
+ const active = isSameDay(activeDate, date);
162
+ return (
163
+ // aria-selected belongs on the gridcell: ARIA defines it for
164
+ // gridcell/option/row/tab, not for role="button". The button
165
+ // carries aria-pressed for its own state instead.
166
+ React.createElement("td", { key: di, role: "gridcell", "aria-selected": selected, "data-selected": selected ? "true" : undefined, className: "p-0" },
167
+ React.createElement("button", { ref: active ? activeButtonRef : undefined, type: "button", tabIndex: active ? 0 : -1, "aria-pressed": selected, "data-today": isToday ? "true" : undefined, onFocus: () => setActiveDate(date), onKeyDown: (event) => handleDayKeyDown(event, date), onClick: () => select(day), className: cn("inline-flex size-9 items-center justify-center rounded-md text-sm text-[var(--foreground)]", "hover:bg-[var(--accent)] hover:text-[var(--accent-foreground)]", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]", isToday && "ring-1 ring-[var(--ring)]", selected &&
168
+ "bg-[var(--primary)] text-[var(--primary-foreground)] hover:bg-[var(--primary)] hover:text-[var(--primary-foreground)]") }, day)));
169
+ }))))))));
170
+ }
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Combobox - a text input that filters a dropdown `listbox` as you type, then
3
+ * commits a selection. The look is ours (theme tokens); the mechanics (query,
4
+ * filtering, `aria-activedescendant` keyboard nav, open/dismiss, portalling)
5
+ * come from the active adapter's `combobox` slot - the zero-dependency
6
+ * {@link builtinCombobox} by default, swappable to cmdk / Base UI / etc. via
7
+ * `UIAdapterProvider`.
8
+ *
9
+ * @example
10
+ * ```tsx
11
+ * import { Combobox, ComboboxInput, ComboboxContent, ComboboxItem } from "veryfront/ui";
12
+ *
13
+ * <Combobox onValueChange={setFramework}>
14
+ * <ComboboxInput placeholder="Search framework…" />
15
+ * <ComboboxContent>
16
+ * <ComboboxItem value="next">Next.js</ComboboxItem>
17
+ * <ComboboxItem value="remix">Remix</ComboboxItem>
18
+ * <ComboboxItem value="astro">Astro</ComboboxItem>
19
+ * </ComboboxContent>
20
+ * </Combobox>;
21
+ * ```
22
+ *
23
+ * @module react/components/ui/combobox
24
+ */
25
+ import * as React from "react";
26
+ /** Props accepted by `<Combobox>` (the root; owns query/open/value state). */
27
+ export interface ComboboxProps {
28
+ /** `ComboboxInput` + `ComboboxContent` parts to compose. */
29
+ children: React.ReactNode;
30
+ /** Controlled selected value (pair with `onValueChange`). */
31
+ value?: string;
32
+ /** Initial selected value when uncontrolled. */
33
+ defaultValue?: string;
34
+ /** Fires with the newly-selected value. */
35
+ onValueChange?: (value: string) => void;
36
+ /** Controlled open state of the listbox (pair with `onOpenChange`). */
37
+ open?: boolean;
38
+ /** Initial open state when uncontrolled. */
39
+ defaultOpen?: boolean;
40
+ /** Fires when the listbox opens or closes. */
41
+ onOpenChange?: (open: boolean) => void;
42
+ /** Initial input text. */
43
+ defaultInputValue?: string;
44
+ }
45
+ /** Combobox root - renders no node of its own (state + context only). */
46
+ export declare function Combobox(props: ComboboxProps): React.ReactElement;
47
+ /** Props accepted by `<ComboboxInput>`. */
48
+ export interface ComboboxInputProps extends React.InputHTMLAttributes<HTMLInputElement> {
49
+ /** React 19: ref is a regular prop. */
50
+ ref?: React.Ref<HTMLInputElement>;
51
+ }
52
+ /** The `role="combobox"` text input that drives filtering. */
53
+ export declare function ComboboxInput({ className, ...props }: ComboboxInputProps): React.ReactElement;
54
+ /** Props accepted by `<ComboboxContent>`. */
55
+ export interface ComboboxContentProps extends React.HTMLAttributes<HTMLDivElement> {
56
+ /** React 19: ref is a regular prop. */
57
+ ref?: React.Ref<HTMLDivElement>;
58
+ }
59
+ /** The floating `role="listbox"` surface, shown while filtering. */
60
+ export declare function ComboboxContent({ className, children, ...props }: ComboboxContentProps): React.ReactElement | null;
61
+ /** Props accepted by `<ComboboxItem>`. */
62
+ export interface ComboboxItemProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "onSelect"> {
63
+ /** The value this option commits when chosen. */
64
+ value: string;
65
+ /** Text used for filtering and the input after selection. Defaults to plain child text, then value. */
66
+ textValue?: string;
67
+ /** Disable selection and dim the option. */
68
+ disabled?: boolean;
69
+ /** React 19: ref is a regular prop. */
70
+ ref?: React.Ref<HTMLDivElement>;
71
+ }
72
+ /** A selectable, filterable option. Hides itself when it doesn't match the query. */
73
+ export declare function ComboboxItem({ value, textValue, disabled, className, children, onClick, ref, ...props }: ComboboxItemProps): React.ReactElement | null;
74
+ //# sourceMappingURL=combobox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combobox.d.ts","sourceRoot":"","sources":["../../../../../src/src/react/components/ui/combobox.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,8EAA8E;AAC9E,MAAM,WAAW,aAAa;IAC5B,4DAA4D;IAC5D,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2CAA2C;IAC3C,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,uEAAuE;IACvE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,4CAA4C;IAC5C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,8CAA8C;IAC9C,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,0BAA0B;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,yEAAyE;AACzE,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,KAAK,CAAC,YAAY,CAIjE;AA6CD,2CAA2C;AAC3C,MAAM,WAAW,kBAAmB,SAAQ,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC;IACrF,uCAAuC;IACvC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;CACnC;AAED,8DAA8D;AAC9D,wBAAgB,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,kBAAkB,GAAG,KAAK,CAAC,YAAY,CAc7F;AAED,6CAA6C;AAC7C,MAAM,WAAW,oBAAqB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAChF,uCAAuC;IACvC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;CACjC;AAED,oEAAoE;AACpE,wBAAgB,eAAe,CAC7B,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,oBAAoB,GACtD,KAAK,CAAC,YAAY,GAAG,IAAI,CAc3B;AAED,0CAA0C;AAC1C,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC;IAC/F,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,uGAAuG;IACvG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uCAAuC;IACvC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;CACjC;AAED,qFAAqF;AACrF,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,SAAS,EACT,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,OAAO,EACP,GAAG,EACH,GAAG,KAAK,EACT,EAAE,iBAAiB,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CAwC/C"}