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
@@ -1 +1 @@
1
- {"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../../../../src/src/react/components/ui/dialog.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../../../../src/src/react/components/ui/dialog.tsx"],"names":[],"mappings":"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"}
@@ -1,7 +1,25 @@
1
1
  /**
2
- * Dependency-free dialog primitive with a Studio-compatible part API. It
3
- * provides modal focus containment, focus restoration, document scroll
4
- * locking, stable ARIA relationships, and Escape/overlay dismissal.
2
+ * Dialog - BASIC fork of @radix-ui/react-dialog with the same API shape (Root /
3
+ * Trigger / Content + Header / Title / Description / Body / Footer / Action /
4
+ * Cancel / Close / Form). Classes ported 1:1 from Studio's `Dialog` (tokens
5
+ * remapped; `Heading` level 2 + `Text` inlined). Modal overlay + centered panel;
6
+ * dismisses on `Escape` and overlay click. A11y work tracked in modal-surface.tsx.
7
+ *
8
+ * @example
9
+ * ```tsx
10
+ * import { Button, Dialog, DialogAction, DialogCancel, DialogContent, DialogFooter, DialogTitle, DialogTrigger } from "veryfront/ui";
11
+ *
12
+ * <Dialog>
13
+ * <DialogTrigger asChild><Button variant="destructive">Delete</Button></DialogTrigger>
14
+ * <DialogContent>
15
+ * <DialogTitle>Delete project?</DialogTitle>
16
+ * <DialogFooter>
17
+ * <DialogCancel>Cancel</DialogCancel>
18
+ * <DialogAction onClick={remove}>Delete</DialogAction>
19
+ * </DialogFooter>
20
+ * </DialogContent>
21
+ * </Dialog>;
22
+ * ```
5
23
  *
6
24
  * @module react/components/ui/dialog
7
25
  */
@@ -9,32 +27,34 @@ import * as React from "react";
9
27
  import { cx as cn } from "./cva.js";
10
28
  import { ScrollFade } from "./scroll-fade.js";
11
29
  import { Button, LoadingButton } from "./button.js";
12
- import { createModalSurfaceParts } from "./modal-surface.js";
30
+ import { useAdapter } from "./adapter/context.js";
13
31
  import { useIsomorphicLayoutEffect } from "./use-isomorphic-layout-effect.js";
14
- // Per-skin context + machinery -- distinct from Drawer's instance so a
15
- // DrawerClose nested inside a Dialog cannot accidentally close the Dialog.
16
- const { ModalRoot: _Root, useModal: _hook, ModalTrigger: _Trigger, ModalClose: _Close, ModalContent: _Content, } = createModalSurfaceParts("Dialog");
17
- /** Dialog root — owns open state. */
32
+ /** Dialog root - owns open state. */
18
33
  export function Dialog(props) {
19
- return React.createElement(_Root, { ...props });
34
+ const { dialog } = useAdapter();
35
+ return React.createElement(dialog.Root, { ...props });
20
36
  }
21
- /** Trigger — opens the dialog. `asChild` merges onto the child element. */
37
+ /** Trigger - opens the dialog. `asChild` merges onto the child element. */
22
38
  export function DialogTrigger(props) {
23
- return React.createElement(_Trigger, { ...props });
39
+ const { dialog } = useAdapter();
40
+ return React.createElement(dialog.Trigger, { ...props });
24
41
  }
25
- /** Modal surface — overlay + centered panel, rendered while open. */
42
+ /** Modal surface - overlay + centered panel, rendered while open. */
26
43
  export function DialogContent({ className, children, "aria-describedby": describedBy, ...props }) {
27
- const modal = _hook();
28
- return (React.createElement(_Content, { "aria-describedby": describedBy ?? (modal.descriptionPresent ? modal.descriptionId : undefined), className: cn("fixed left-1/2 top-1/2 z-50 w-[calc(100%-3rem)] max-w-xl max-h-[85vh] -translate-x-1/2 -translate-y-1/2", "rounded-xl bg-[var(--dialog)] text-[var(--foreground)] shadow-lg outline-none overflow-hidden flex flex-col", className), ...props }, children));
44
+ const { dialog } = useAdapter();
45
+ const modal = dialog.useDialog();
46
+ return (React.createElement(dialog.Content, { "aria-describedby": describedBy ?? (modal.descriptionPresent ? modal.descriptionId : undefined), className: cn("fixed left-1/2 top-1/2 z-50 w-[calc(100%_-_3rem)] max-w-xl max-h-[85vh] -translate-x-1/2 -translate-y-1/2", "rounded-xl bg-[var(--dialog)] text-[var(--foreground)] shadow-lg outline-none overflow-hidden flex flex-col", className), ...props }, children));
29
47
  }
30
48
  /** Left-aligned title + description block. */
31
49
  export function DialogHeader({ className, ...props }) {
32
50
  return React.createElement("div", { className: cn("flex flex-col px-6 pt-6 shrink-0", className), ...props });
33
51
  }
34
- /** Dialog title — Studio Heading level 2 (20px). Semibold so Inter reads at
35
- * Studio's medium-on-Söhne weight (workbench heading convention). */
52
+ /** Dialog title - Studio Heading level 2 (20px). Semibold so Inter reads at
53
+ * Studio's medium-on-Söhne weight (workbench heading convention). Registers its
54
+ * id with the adapter so the panel adopts `aria-labelledby`. */
36
55
  export function DialogTitle({ className, id, ...props }) {
37
- const modal = _hook();
56
+ const { dialog } = useAdapter();
57
+ const modal = dialog.useDialog();
38
58
  const resolvedId = id ?? modal.defaultTitleId;
39
59
  useIsomorphicLayoutEffect(() => {
40
60
  modal.setTitleId(resolvedId);
@@ -43,17 +63,14 @@ export function DialogTitle({ className, id, ...props }) {
43
63
  modal.setTitlePresent(false);
44
64
  modal.setTitleId((current) => current === resolvedId ? modal.defaultTitleId : current);
45
65
  };
46
- }, [
47
- modal.defaultTitleId,
48
- modal.setTitleId,
49
- modal.setTitlePresent,
50
- resolvedId,
51
- ]);
66
+ }, [modal.defaultTitleId, modal.setTitleId, modal.setTitlePresent, resolvedId]);
52
67
  return (React.createElement("h2", { id: resolvedId, className: cn("text-xl font-semibold text-[var(--foreground)]", className), ...props }));
53
68
  }
54
- /** Dialog description — body text, left-aligned. */
69
+ /** Dialog description - body text, left-aligned. Registers its id with the
70
+ * adapter so the panel adopts `aria-describedby`. */
55
71
  export function DialogDescription({ className, id, ...props }) {
56
- const modal = _hook();
72
+ const { dialog } = useAdapter();
73
+ const modal = dialog.useDialog();
57
74
  const resolvedId = id ?? modal.defaultDescriptionId;
58
75
  useIsomorphicLayoutEffect(() => {
59
76
  modal.setDescriptionId(resolvedId);
@@ -74,7 +91,7 @@ export function DialogDescription({ className, id, ...props }) {
74
91
  export function DialogBody({ className, children, ...props }) {
75
92
  return (React.createElement(ScrollFade, { edges: "bottom", className: cn("px-6 mt-6 pb-1 min-h-0 flex flex-col gap-4 text-left", className), ...props }, children));
76
93
  }
77
- /** Sticky footer row — action left, cancel right. */
94
+ /** Sticky footer row - action left, cancel right. */
78
95
  export function DialogFooter({ className, ...props }) {
79
96
  return React.createElement("div", { className: cn("p-6 flex justify-start gap-3 shrink-0", className), ...props });
80
97
  }
@@ -88,7 +105,8 @@ export function DialogAction({ isLoading, variant = "primary", size = "default",
88
105
  }
89
106
  /** Alternate button (secondary, default size) that closes the dialog. */
90
107
  export function DialogCancel({ className, variant = "secondary", size = "default", onClick, ...props }) {
91
- const ctx = _hook();
108
+ const { dialog } = useAdapter();
109
+ const ctx = dialog.useDialog();
92
110
  return (React.createElement(Button, { variant: variant, size: size, className: className, onClick: (e) => {
93
111
  onClick?.(e);
94
112
  if (!e.defaultPrevented)
@@ -97,5 +115,6 @@ export function DialogCancel({ className, variant = "secondary", size = "default
97
115
  }
98
116
  /** Closes the dialog. `asChild` merges onto the child element. */
99
117
  export function DialogClose(props) {
100
- return React.createElement(_Close, { ...props });
118
+ const { dialog } = useAdapter();
119
+ return React.createElement(dialog.Close, { ...props });
101
120
  }
@@ -1,28 +1,51 @@
1
1
  /**
2
- * Dependency-free bottom-sheet primitive with the Studio part API used by
3
- * Veryfront. It shares the dialog's modal focus, ARIA, scroll-lock, and
4
- * dismissal contracts while presenting a drawer surface.
2
+ * Drawer - BASIC bottom-sheet fork of Studio's `Drawer` (which is a large
3
+ * Vaul-style component). Same API shape for the parts we need: Root / Trigger /
4
+ * Content (overlay + sheet + drag handle) / Title / Header / Body / Footer /
5
+ * Close. Surface classes ported 1:1 from Studio (tokens remapped). Slides up
6
+ * from the bottom; dismisses on `Escape` and overlay click. A11y work tracked
7
+ * in modal-surface.tsx.
8
+ *
9
+ * @example
10
+ * ```tsx
11
+ * import { Button, Drawer, DrawerContent, DrawerTitle, DrawerTrigger } from "veryfront/ui";
12
+ *
13
+ * <Drawer>
14
+ * <DrawerTrigger asChild><Button>Edit</Button></DrawerTrigger>
15
+ * <DrawerContent><DrawerTitle>Edit profile</DrawerTitle></DrawerContent>
16
+ * </Drawer>;
17
+ * ```
5
18
  *
6
19
  * @module react/components/ui/drawer
7
20
  */
8
21
  import * as React from "react";
9
22
  /** Props accepted by `<Drawer>`. */
10
23
  export interface DrawerProps {
24
+ /** The trigger and content parts to compose. */
11
25
  children: React.ReactNode;
26
+ /** Controlled open state (pair with `onOpenChange`). */
12
27
  open?: boolean;
28
+ /** Initial open state when uncontrolled. */
13
29
  defaultOpen?: boolean;
30
+ /** Fires when the open state changes. */
14
31
  onOpenChange?: (open: boolean) => void;
15
32
  }
16
- /** Drawer root — owns open state. */
33
+ /** Drawer root - owns open state (via the adapter's drawer engine). */
17
34
  export declare function Drawer(props: DrawerProps): React.ReactElement;
18
- /** Trigger — opens the drawer. `asChild` merges onto the child element. */
35
+ /** Trigger - opens the drawer. `asChild` merges onto the child element. */
19
36
  export declare function DrawerTrigger(props: React.ButtonHTMLAttributes<HTMLButtonElement> & {
20
37
  asChild?: boolean;
21
38
  ref?: React.Ref<HTMLButtonElement>;
22
39
  }): React.ReactElement;
23
- /** Bottom sheet — overlay + sliding surface with a drag handle. */
24
- export declare function DrawerContent({ children, className, ...props }: React.HTMLAttributes<HTMLDivElement>): React.ReactElement | null;
25
- /** Drawer title — 18px medium (Studio Heading-ish). Add `sr-only` to hide. */
40
+ /** Props accepted by `<DrawerContent>`. */
41
+ export interface DrawerContentProps extends React.HTMLAttributes<HTMLDivElement> {
42
+ /** React 19: ref is a regular prop, forwarded to the drawer panel. */
43
+ ref?: React.Ref<HTMLDivElement>;
44
+ }
45
+ /** Bottom sheet - overlay + sliding surface with a drag handle. */
46
+ export declare function DrawerContent({ children, className, ...props }: DrawerContentProps): React.ReactElement | null;
47
+ /** Drawer title - 18px medium (Studio Heading-ish). Add `sr-only` to hide.
48
+ * Registers its id with the adapter so the sheet adopts `aria-labelledby`. */
26
49
  export declare function DrawerTitle({ className, id, ...props }: React.HTMLAttributes<HTMLHeadingElement>): React.ReactElement;
27
50
  /** Header column wrapper. */
28
51
  export declare function DrawerHeader({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): React.ReactElement;
@@ -1 +1 @@
1
- {"version":3,"file":"drawer.d.ts","sourceRoot":"","sources":["../../../../../src/src/react/components/ui/drawer.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAe/B,oCAAoC;AACpC,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACxC;AAED,qCAAqC;AACrC,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,KAAK,CAAC,YAAY,CAE7D;AAED,2EAA2E;AAC3E,wBAAgB,aAAa,CAC3B,KAAK,EACD,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,GAC7C;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;CAAE,GAC5D,KAAK,CAAC,YAAY,CAEpB;AAED,mEAAmE;AACnE,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CAkBlE;AAED,8EAA8E;AAC9E,wBAAgB,WAAW,CAAC,EAC1B,SAAS,EACT,EAAE,EACF,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,kBAAkB,CAAC,GAAG,KAAK,CAAC,YAAY,CAuB/D;AAED,6BAA6B;AAC7B,wBAAgB,YAAY,CAC1B,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,GAC5D,KAAK,CAAC,YAAY,CAEpB;AAED,4BAA4B;AAC5B,wBAAgB,UAAU,CACxB,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,GAC5D,KAAK,CAAC,YAAY,CAOpB;AAED,iDAAiD;AACjD,wBAAgB,YAAY,CAC1B,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,GAC5D,KAAK,CAAC,YAAY,CAUpB;AAED,kEAAkE;AAClE,wBAAgB,WAAW,CACzB,KAAK,EACD,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,GAC7C;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;CAAE,GAC5D,KAAK,CAAC,YAAY,CAEpB"}
1
+ {"version":3,"file":"drawer.d.ts","sourceRoot":"","sources":["../../../../../src/src/react/components/ui/drawer.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B,oCAAoC;AACpC,MAAM,WAAW,WAAW;IAC1B,gDAAgD;IAChD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,wDAAwD;IACxD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,4CAA4C;IAC5C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,yCAAyC;IACzC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACxC;AAED,uEAAuE;AACvE,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,KAAK,CAAC,YAAY,CAG7D;AAED,2EAA2E;AAC3E,wBAAgB,aAAa,CAC3B,KAAK,EACD,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,GAC7C;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;CAAE,GAC5D,KAAK,CAAC,YAAY,CAGpB;AAED,2CAA2C;AAC3C,MAAM,WAAW,kBAAmB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAC9E,sEAAsE;IACtE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;CACjC;AAED,mEAAmE;AACnE,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,kBAAkB,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CAmBhD;AAED;8EAC8E;AAC9E,wBAAgB,WAAW,CAAC,EAC1B,SAAS,EACT,EAAE,EACF,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,kBAAkB,CAAC,GAAG,KAAK,CAAC,YAAY,CAmB/D;AAED,6BAA6B;AAC7B,wBAAgB,YAAY,CAC1B,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,GAC5D,KAAK,CAAC,YAAY,CAEpB;AAED,4BAA4B;AAC5B,wBAAgB,UAAU,CACxB,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,GAC5D,KAAK,CAAC,YAAY,CAOpB;AAED,iDAAiD;AACjD,wBAAgB,YAAY,CAC1B,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,GAC5D,KAAK,CAAC,YAAY,CAUpB;AAED,kEAAkE;AAClE,wBAAgB,WAAW,CACzB,KAAK,EACD,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,GAC7C;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;CAAE,GAC5D,KAAK,CAAC,YAAY,CAGpB"}
@@ -1,32 +1,47 @@
1
1
  /**
2
- * Dependency-free bottom-sheet primitive with the Studio part API used by
3
- * Veryfront. It shares the dialog's modal focus, ARIA, scroll-lock, and
4
- * dismissal contracts while presenting a drawer surface.
2
+ * Drawer - BASIC bottom-sheet fork of Studio's `Drawer` (which is a large
3
+ * Vaul-style component). Same API shape for the parts we need: Root / Trigger /
4
+ * Content (overlay + sheet + drag handle) / Title / Header / Body / Footer /
5
+ * Close. Surface classes ported 1:1 from Studio (tokens remapped). Slides up
6
+ * from the bottom; dismisses on `Escape` and overlay click. A11y work tracked
7
+ * in modal-surface.tsx.
8
+ *
9
+ * @example
10
+ * ```tsx
11
+ * import { Button, Drawer, DrawerContent, DrawerTitle, DrawerTrigger } from "veryfront/ui";
12
+ *
13
+ * <Drawer>
14
+ * <DrawerTrigger asChild><Button>Edit</Button></DrawerTrigger>
15
+ * <DrawerContent><DrawerTitle>Edit profile</DrawerTitle></DrawerContent>
16
+ * </Drawer>;
17
+ * ```
5
18
  *
6
19
  * @module react/components/ui/drawer
7
20
  */
8
21
  import * as React from "react";
9
22
  import { cx as cn } from "./cva.js";
10
- import { createModalSurfaceParts } from "./modal-surface.js";
23
+ import { useAdapter } from "./adapter/context.js";
11
24
  import { useIsomorphicLayoutEffect } from "./use-isomorphic-layout-effect.js";
12
- // Per-skin context + machinery -- distinct from Dialog's instance so a
13
- // DialogClose nested inside a Drawer cannot accidentally close the Drawer.
14
- const { ModalRoot: _Root, useModal: _hook, ModalTrigger: _Trigger, ModalClose: _Close, ModalContent: _Content, } = createModalSurfaceParts("Drawer");
15
- /** Drawer root — owns open state. */
25
+ /** Drawer root - owns open state (via the adapter's drawer engine). */
16
26
  export function Drawer(props) {
17
- return React.createElement(_Root, { ...props });
27
+ const { drawer } = useAdapter();
28
+ return React.createElement(drawer.Root, { ...props });
18
29
  }
19
- /** Trigger — opens the drawer. `asChild` merges onto the child element. */
30
+ /** Trigger - opens the drawer. `asChild` merges onto the child element. */
20
31
  export function DrawerTrigger(props) {
21
- return React.createElement(_Trigger, { ...props });
32
+ const { drawer } = useAdapter();
33
+ return React.createElement(drawer.Trigger, { ...props });
22
34
  }
23
- /** Bottom sheet — overlay + sliding surface with a drag handle. */
35
+ /** Bottom sheet - overlay + sliding surface with a drag handle. */
24
36
  export function DrawerContent({ children, className, ...props }) {
25
- return (React.createElement(_Content, { className: cn("fixed inset-x-0 bottom-0 z-50 flex flex-col max-h-[85vh] w-full rounded-t-xl bg-[var(--drawer)] text-[var(--foreground)] outline-none", className), lead: React.createElement("div", { "aria-hidden": "true", className: "mx-auto mt-3 h-[3px] w-[30px] shrink-0 rounded-full bg-[var(--outline-border)]" }), ...props }, children));
37
+ const { drawer } = useAdapter();
38
+ return (React.createElement(drawer.Content, { className: cn("fixed inset-x-0 bottom-0 z-50 flex flex-col max-h-[85vh] w-full rounded-t-xl bg-[var(--drawer)] text-[var(--foreground)] outline-none", className), lead: React.createElement("div", { "aria-hidden": "true", className: "mx-auto mt-3 h-[3px] w-[30px] shrink-0 rounded-full bg-[var(--outline-border)]" }), ...props }, children));
26
39
  }
27
- /** Drawer title — 18px medium (Studio Heading-ish). Add `sr-only` to hide. */
40
+ /** Drawer title - 18px medium (Studio Heading-ish). Add `sr-only` to hide.
41
+ * Registers its id with the adapter so the sheet adopts `aria-labelledby`. */
28
42
  export function DrawerTitle({ className, id, ...props }) {
29
- const modal = _hook();
43
+ const { drawer } = useAdapter();
44
+ const modal = drawer.useDrawer();
30
45
  const resolvedId = id ?? modal.defaultTitleId;
31
46
  useIsomorphicLayoutEffect(() => {
32
47
  modal.setTitleId(resolvedId);
@@ -35,12 +50,7 @@ export function DrawerTitle({ className, id, ...props }) {
35
50
  modal.setTitlePresent(false);
36
51
  modal.setTitleId((current) => current === resolvedId ? modal.defaultTitleId : current);
37
52
  };
38
- }, [
39
- modal.defaultTitleId,
40
- modal.setTitleId,
41
- modal.setTitlePresent,
42
- resolvedId,
43
- ]);
53
+ }, [modal.defaultTitleId, modal.setTitleId, modal.setTitlePresent, resolvedId]);
44
54
  return (React.createElement("h2", { id: resolvedId, className: cn("text-lg font-medium text-[var(--foreground)]", className), ...props }));
45
55
  }
46
56
  /** Header column wrapper. */
@@ -57,5 +67,6 @@ export function DrawerFooter({ className, ...props }) {
57
67
  }
58
68
  /** Closes the drawer. `asChild` merges onto the child element. */
59
69
  export function DrawerClose(props) {
60
- return React.createElement(_Close, { ...props });
70
+ const { drawer } = useAdapter();
71
+ return React.createElement(drawer.Close, { ...props });
61
72
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown-menu.d.ts","sourceRoot":"","sources":["../../../../../src/src/react/components/ui/dropdown-menu.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dropdown-menu.d.ts","sourceRoot":"","sources":["../../../../../src/src/react/components/ui/dropdown-menu.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAA4B,KAAK,2BAA2B,EAAQ,MAAM,WAAW,CAAC;AAC7F,OAAO,EACL,KAAK,2BAA2B,EAChC,KAAK,0BAA0B,EAEhC,MAAM,uBAAuB,CAAC;AAS/B,0CAA0C;AAC1C,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACxC;AAED,sEAAsE;AACtE,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,KAAK,CAAC,YAAY,CAEzE;AAED;;;GAGG;AACH,MAAM,WAAW,wBAAyB,SAAQ,0BAA0B;CAAG;AAE/E,qEAAqE;AACrE,MAAM,MAAM,+BAA+B,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,IAC7E,2BAA2B,CAAC,CAAC,CAAC,CAAC;AAEjC,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,EACrE,KAAK,EAAE,+BAA+B,CAAC,CAAC,CAAC,GACxC,KAAK,CAAC,YAAY,CAAC;AACtB,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,GAAG,KAAK,CAAC,YAAY,CAAC;AAOzF,iDAAiD;AACjD,MAAM,WAAW,wBAAyB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACpF,oDAAoD;IACpD,KAAK,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IACxB,kDAAkD;IAClD,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;CACjC;AAED,gFAAgF;AAChF,wBAAgB,mBAAmB,CAAC,EAClC,QAAQ,EACR,SAAS,EACT,KAAe,EACf,SAAS,EACT,GAAG,KAAK,EACT,EAAE,wBAAwB,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CAwBtD;AAED,4EAA4E;AAC5E,wBAAgB,iBAAiB,CAC/B,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GACzE,KAAK,CAAC,YAAY,CAMpB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,qBACf,SAAQ,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,UAAU,CAAC;IACvE,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAChE,yEAAyE;IACzE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;CACpC;AAED,8DAA8D;AAC9D,MAAM,MAAM,4BAA4B,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,IACxE,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC,EAAE,UAAU,GAAG,KAAK,GAAG,MAAM,CAAC,GACjE;IACA,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAChD,0EAA0E;IAC1E,OAAO,EAAE,IAAI,CAAC;IACd,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,0FAA0F;IAC1F,IAAI,CAAC,EAAE,CAAC,SAAS,iBAAiB,GAAG,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,GACtF,KAAK,CAAC;IACV,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACpB,CAAC;AAQJ,iEAAiE;AACjE,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,EAClE,KAAK,EAAE,4BAA4B,CAAC,CAAC,CAAC,GACrC,KAAK,CAAC,YAAY,CAAC;AACtB,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,KAAK,CAAC,YAAY,CAAC;AAkFnF,mEAAmE;AACnE,wBAAgB,oBAAoB,CAAC,EACnC,QAAQ,EACR,SAAS,GACV,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,KAAK,CAAC,YAAY,CAWrB;AAED,kEAAkE;AAClE,wBAAgB,qBAAqB,CACnC,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GACpC,KAAK,CAAC,YAAY,CAOpB;AAED,yEAAyE;AACzE,wBAAgB,iBAAiB,CAAC,EAChC,QAAQ,EACR,SAAS,GACV,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,KAAK,CAAC,YAAY,CAYrB"}
@@ -9,8 +9,8 @@ import * as React from "react";
9
9
  import { cx as cn } from "./cva.js";
10
10
  import { getPolymorphicButtonType, Slot } from "./slot.js";
11
11
  import { createAnchoredSurfaceParts, } from "./anchored-surface.js";
12
- import { focusWithoutScroll, getFocusableElements } from "./focus-management.js";
13
- const TYPEAHEAD_RESET_MS = 700;
12
+ import { focusWithoutScroll } from "./focus-management.js";
13
+ import { useMenuContentKeyboard } from "./menu-keyboard.js";
14
14
  // Per-skin context + machinery -- distinct from Popover's instance so a
15
15
  // Popover nested inside a DropdownMenu cannot accidentally close the menu.
16
16
  const { Context: _ctx, AnchoredRoot: _Root, AnchoredTrigger: _Trigger, AnchoredContent: _Content } = createAnchoredSurfaceParts();
@@ -27,79 +27,11 @@ export function DropdownMenuContent({ children, className, align = "start", onKe
27
27
  if (!ctx) {
28
28
  throw new Error("DropdownMenuContent must be used within <DropdownMenu>");
29
29
  }
30
- const typeaheadRef = React.useRef({ buffer: "", lastTypedAt: 0 });
31
- const handleKeyDown = (event) => {
32
- onKeyDown?.(event);
33
- if (event.defaultPrevented ||
34
- event.nativeEvent.isComposing ||
35
- event.nativeEvent.keyCode === 229) {
36
- return;
37
- }
38
- const items = [...event.currentTarget.querySelectorAll("[role='menuitem']:not([aria-disabled='true'])")];
39
- const activeIndex = items.indexOf(event.currentTarget.ownerDocument.activeElement);
40
- const focusAt = (index) => {
41
- const item = items[(index + items.length) % items.length];
42
- if (item)
43
- focusWithoutScroll(item);
44
- };
45
- switch (event.key) {
46
- case "ArrowDown":
47
- event.preventDefault();
48
- focusAt(activeIndex + 1);
49
- return;
50
- case "ArrowUp":
51
- event.preventDefault();
52
- focusAt(activeIndex < 0 ? items.length - 1 : activeIndex - 1);
53
- return;
54
- case "Home":
55
- event.preventDefault();
56
- focusAt(0);
57
- return;
58
- case "End":
59
- event.preventDefault();
60
- focusAt(items.length - 1);
61
- return;
62
- case "Tab": {
63
- event.preventDefault();
64
- const trigger = ctx.triggerRef.current;
65
- const document = event.currentTarget.ownerDocument;
66
- const candidates = getFocusableElements(document.body).filter((element) => !event.currentTarget.contains(element));
67
- const triggerIndex = trigger ? candidates.indexOf(trigger) : -1;
68
- const next = event.shiftKey ? candidates[triggerIndex - 1] : candidates[triggerIndex + 1];
69
- ctx.setOpen(false);
70
- queueMicrotask(() => {
71
- if (next?.isConnected)
72
- focusWithoutScroll(next);
73
- else if (trigger?.isConnected)
74
- focusWithoutScroll(trigger);
75
- });
76
- return;
77
- }
78
- }
79
- if (event.key.length !== 1 || event.altKey || event.ctrlKey ||
80
- event.metaKey) {
81
- return;
82
- }
83
- const now = Date.now();
84
- const previous = typeaheadRef.current;
85
- const buffer = now - previous.lastTypedAt > TYPEAHEAD_RESET_MS
86
- ? event.key
87
- : previous.buffer + event.key;
88
- typeaheadRef.current = { buffer, lastTypedAt: now };
89
- const normalizedBuffer = buffer.normalize("NFKC").toLocaleLowerCase();
90
- const repeatedCharacter = [...normalizedBuffer].every((character) => character === normalizedBuffer[0]);
91
- const query = repeatedCharacter ? normalizedBuffer[0] : normalizedBuffer;
92
- for (let offset = 1; offset <= items.length; offset += 1) {
93
- const item = items[(activeIndex + offset + items.length) % items.length];
94
- const text = item?.textContent?.normalize("NFKC").trim()
95
- .replace(/\s+/g, " ").toLocaleLowerCase();
96
- if (item && text?.startsWith(query)) {
97
- event.preventDefault();
98
- focusWithoutScroll(item);
99
- break;
100
- }
101
- }
102
- };
30
+ const handleKeyDown = useMenuContentKeyboard({
31
+ onKeyDown,
32
+ setOpen: ctx.setOpen,
33
+ triggerRef: ctx.triggerRef,
34
+ });
103
35
  return (React.createElement(_Content, { ...props, role: "menu", "aria-orientation": "vertical", align: align, initialFocus: "[role='menuitem']:not([aria-disabled='true'])", onKeyDown: handleKeyDown, className: cn("min-w-[260px] p-2.5", className) }, children));
104
36
  }
105
37
  /** Groups related items with a tight inner gap (Studio: `gap-px p-0.5`). */
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Field: a form-field wrapper that wires a label, description, and error to a
3
+ * single control for accessibility. `<Field>` derives a stable base id with
4
+ * `React.useId()` and shares it (plus derived description/error ids and the
5
+ * `invalid` flag) through context, so `<FieldLabel>` targets the control via
6
+ * `htmlFor`, `<FieldControl>` clones its child with the matching `id` +
7
+ * `aria-describedby` + `aria-invalid`, and `<FieldDescription>` / `<FieldError>`
8
+ * expose the referenced ids. Self-contained; skinned with the veryfront theme
9
+ * tokens.
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * import { Field, FieldLabel, FieldControl, FieldDescription, FieldError } from "veryfront/ui";
14
+ * import { Input } from "veryfront/ui";
15
+ *
16
+ * <Field invalid>
17
+ * <FieldLabel>Email</FieldLabel>
18
+ * <FieldControl><Input type="email" /></FieldControl>
19
+ * <FieldDescription>Veryfront never shares it.</FieldDescription>
20
+ * <FieldError>Enter a valid email.</FieldError>
21
+ * </Field>;
22
+ * ```
23
+ *
24
+ * @module react/components/ui/field
25
+ */
26
+ import * as React from "react";
27
+ /** Props accepted by `<Field>`. */
28
+ export interface FieldProps extends React.HTMLAttributes<HTMLDivElement> {
29
+ /** Mark the field invalid: flags the label/control/error via context. @default false */
30
+ invalid?: boolean;
31
+ /** React 19: ref is a regular prop. */
32
+ ref?: React.Ref<HTMLDivElement>;
33
+ }
34
+ /** The field wrapper: derives ids and provides them to its sub-parts. */
35
+ export declare function Field({ invalid, className, children, ref, ...props }: FieldProps): React.ReactElement;
36
+ /** Props accepted by `<FieldLabel>`. */
37
+ export interface FieldLabelProps extends React.LabelHTMLAttributes<HTMLLabelElement> {
38
+ /** React 19: ref is a regular prop. */
39
+ ref?: React.Ref<HTMLLabelElement>;
40
+ }
41
+ /** The field's label: wired to the control with `htmlFor`. */
42
+ export declare function FieldLabel({ className, children, ref, ...props }: FieldLabelProps): React.ReactElement;
43
+ /** Props accepted by `<FieldControl>`. */
44
+ export interface FieldControlProps {
45
+ /** The single form control element to wire: its `id`/`aria-*` are set for you. */
46
+ children: React.ReactElement;
47
+ /** React 19: ref is forwarded onto the cloned child control (not a wrapper node). */
48
+ ref?: React.Ref<HTMLElement>;
49
+ }
50
+ /**
51
+ * Wiring wrapper: renders no node of its own; clones its single child control
52
+ * with the shared `id`, `aria-describedby` (the description, plus the error id
53
+ * when invalid), and `aria-invalid`.
54
+ */
55
+ export declare function FieldControl({ children, ref }: FieldControlProps): React.ReactElement;
56
+ /** Props accepted by `<FieldDescription>`. */
57
+ export interface FieldDescriptionProps extends React.HTMLAttributes<HTMLParagraphElement> {
58
+ /** React 19: ref is a regular prop. */
59
+ ref?: React.Ref<HTMLParagraphElement>;
60
+ }
61
+ /** Helper text describing the field: referenced by the control's `aria-describedby`. */
62
+ export declare function FieldDescription({ className, children, id, ref, ...props }: FieldDescriptionProps): React.ReactElement;
63
+ /** Props accepted by `<FieldError>`. */
64
+ export interface FieldErrorProps extends React.HTMLAttributes<HTMLParagraphElement> {
65
+ /** React 19: ref is a regular prop. */
66
+ ref?: React.Ref<HTMLParagraphElement>;
67
+ }
68
+ /** The field's error message: a live `role="alert"`; renders nothing when empty. */
69
+ export declare function FieldError({ className, children, id, ref, ...props }: FieldErrorProps): React.ReactElement | null;
70
+ //# sourceMappingURL=field.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../../../../src/src/react/components/ui/field.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAmE/B,mCAAmC;AACnC,MAAM,WAAW,UAAW,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACtE,wFAAwF;IACxF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,uCAAuC;IACvC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;CACjC;AAED,yEAAyE;AACzE,wBAAgB,KAAK,CAAC,EACpB,OAAe,EACf,SAAS,EACT,QAAQ,EACR,GAAG,EACH,GAAG,KAAK,EACT,EAAE,UAAU,GAAG,KAAK,CAAC,YAAY,CAoDjC;AAED,wCAAwC;AACxC,MAAM,WAAW,eAAgB,SAAQ,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC;IAClF,uCAAuC;IACvC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;CACnC;AAED,8DAA8D;AAC9D,wBAAgB,UAAU,CAAC,EACzB,SAAS,EACT,QAAQ,EACR,GAAG,EACH,GAAG,KAAK,EACT,EAAE,eAAe,GAAG,KAAK,CAAC,YAAY,CAiBtC;AAED,0CAA0C;AAC1C,MAAM,WAAW,iBAAiB;IAChC,kFAAkF;IAClF,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC;IAC7B,qFAAqF;IACrF,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;CAC9B;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,iBAAiB,GAAG,KAAK,CAAC,YAAY,CAuBrF;AAED,8CAA8C;AAC9C,MAAM,WAAW,qBAAsB,SAAQ,KAAK,CAAC,cAAc,CAAC,oBAAoB,CAAC;IACvF,uCAAuC;IACvC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;CACvC;AAED,wFAAwF;AACxF,wBAAgB,gBAAgB,CAAC,EAC/B,SAAS,EACT,QAAQ,EACR,EAAE,EACF,GAAG,EACH,GAAG,KAAK,EACT,EAAE,qBAAqB,GAAG,KAAK,CAAC,YAAY,CAiB5C;AAED,wCAAwC;AACxC,MAAM,WAAW,eAAgB,SAAQ,KAAK,CAAC,cAAc,CAAC,oBAAoB,CAAC;IACjF,uCAAuC;IACvC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;CACvC;AAED,oFAAoF;AACpF,wBAAgB,UAAU,CAAC,EACzB,SAAS,EACT,QAAQ,EACR,EAAE,EACF,GAAG,EACH,GAAG,KAAK,EACT,EAAE,eAAe,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CAqB7C"}