Commit Graph

103 Commits

Author SHA1 Message Date
Hayden Bleasel 1c09c94260 Resolves #184 2025-11-06 18:21:55 -08:00
Hayden Bleasel 3c34582527 Resolves #182 2025-11-06 18:01:39 -08:00
Hayden Bleasel 37ff591e90 Merge tests 2025-11-06 17:58:54 -08:00
Hayden Bleasel 2ca0b3ae02 Update reasoning.tsx 2025-11-06 17:57:24 -08:00
Hayden Bleasel 2094d4f063 Fix message design 2025-11-06 17:54:53 -08:00
Hayden Bleasel 64e9143773 Delete unused components 2025-11-06 17:54:47 -08:00
Hayden Bleasel b82113887f Resolves #221 2025-11-06 14:11:30 -08:00
Hayden Bleasel be8bd9108f Update prompt-input.tsx 2025-11-06 14:07:57 -08:00
Hayden Bleasel d5f1159390 New Message component (#222)
* Merge actions, branch and response into message

* Update docs and examples

* Make Flat variant default

* Update message

* Create tangy-melons-behave.md

* Upgrade branch to buttongroup

* Finish updating message

* Update message.test.tsx

* Update usage.mdx
2025-11-06 13:56:42 -08:00
Hayden Bleasel f9fc162e56 Resolves #185 2025-11-06 12:32:38 -08:00
Hayden Bleasel 796c32d573 Bump deps 2025-11-06 12:16:19 -08:00
Hayden Bleasel 2ff483dd8f Fix failing unit tests 2025-11-06 12:13:41 -08:00
Hayden Bleasel 29c2d430fc ModelSelector component (#217)
* Draft model selector

* Add support for logos

* Misc fixes

* Update model-selector.mdx

* Update model-selector.tsx

* Rename PromptInputModelSelect, replace with ModelSelector

* Add more providers, improve logos

* Create model-selector.test.tsx

* Create jolly-pots-wave.md
2025-11-06 12:10:25 -08:00
Hayden Bleasel 328173b55f Resolves #186 2025-11-05 21:35:32 -08:00
Hayden Bleasel dad0b0ab80 Bump deps 2025-11-05 21:16:32 -08:00
dependabot[bot] 1c537881ef Bump @xyflow/react from 12.9.0 to 12.9.2 (#198)
Bumps [@xyflow/react](https://github.com/xyflow/xyflow/tree/HEAD/packages/react) from 12.9.0 to 12.9.2.
- [Release notes](https://github.com/xyflow/xyflow/releases)
- [Changelog](https://github.com/xyflow/xyflow/blob/main/packages/react/CHANGELOG.md)
- [Commits](https://github.com/xyflow/xyflow/commits/@xyflow/react@12.9.2/packages/react)

---
updated-dependencies:
- dependency-name: "@xyflow/react"
  dependency-version: 12.9.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-05 21:15:52 -08:00
dependabot[bot] d2ef5601bc Bump @vitest/coverage-v8 from 4.0.4 to 4.0.6 (#199)
Bumps [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) from 4.0.4 to 4.0.6.
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.6/packages/coverage-v8)

---
updated-dependencies:
- dependency-name: "@vitest/coverage-v8"
  dependency-version: 4.0.6
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-05 21:14:19 -08:00
dependabot[bot] 6698d9bc76 Bump @vitest/browser from 4.0.4 to 4.0.6 (#204)
Bumps [@vitest/browser](https://github.com/vitest-dev/vitest/tree/HEAD/packages/browser) from 4.0.4 to 4.0.6.
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.6/packages/browser)

---
updated-dependencies:
- dependency-name: "@vitest/browser"
  dependency-version: 4.0.6
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-05 21:10:49 -08:00
chaxus 227d1ca78f feat(chain-of-thought): change ChainOfThoughtStep label and description types from string to ReactNode (#215)
* feat(ChainOfThoughtStep): change ChainOfThoughtStep label and description types from string to ReactNode

* Create flat-chairs-argue.md

---------

Co-authored-by: Hayden Bleasel <hello@haydenbleasel.com>
2025-11-05 21:08:16 -08:00
Hayden Bleasel 61a25e55c3 Fix open-in-chat trigger icon 2025-11-05 21:00:34 -08:00
Hayden Bleasel 0a5297cae4 Remove Controls from Canvas 2025-11-05 21:00:03 -08:00
Hayden Bleasel 5c16b4ff6d Add use client directive to open-in-chat 2025-11-05 20:59:41 -08:00
Hayden Bleasel 478ec07092 Use CornerDownLeftIcon for prompt input 2025-11-05 20:59:06 -08:00
Hayden Bleasel 2631a8344c Update prompt-input.tsx 2025-10-28 00:35:47 -07:00
Hayden Bleasel fb51bff3c4 Update prompt-input.tsx 2025-10-28 00:35:23 -07:00
Tobias Büschel 5a5342e8e4 fix: ensure prompt input attachments render inside header (#178)
* Update prompt-input.tsx

* fix: ensure prompt input attachments render inside header

---------

Co-authored-by: Hayden Bleasel <hello@haydenbleasel.com>
2025-10-28 00:26:15 -07:00
Hayden Bleasel a63d04f551 Misc fixes 2025-10-28 00:06:07 -07:00
Hayden Bleasel dccf114dd8 replace jsdom with vitest browser mode (#176)
* Swap from jsdom to browser

* Create clever-toys-travel.md

* Add missing packages

* Attempt more test fixes

* Update testing matrix

* Update test.yml

* Update test.yml
2025-10-27 22:46:08 -07:00
Tobias Büschel cdd4d0b282 test: add vitest-fail-on-console and improve test stability (#170)
* test: add vitest-fail-on-console and improve test stability

- Integrate `vitest-fail-on-console` plugin to ensure console logs cause test failures
- Use `act` to wrap asynchronous updates in test interactions
- Add `happy-dom` for improved test environment compatibility
- Update test descriptions to remove async usage where unnecessary

* feat: enhance button accessibility and update tsconfig with testing types

- Add 'type="button"' to improve button element accessibility in test files
- Include 'vitest/globals' and '@testing-library/jest-dom' types in tsconfig for better testing support

* Create grumpy-ways-look.md

---------

Co-authored-by: Hayden Bleasel <hello@haydenbleasel.com>
2025-10-27 21:22:57 -07:00
Hayden Bleasel 43dbf312e2 Release cleanup (#174)
* Bump deps

* Update package.json

* Update shadcn/ui

* Run Ultracite

* Run Ultracite

* Fix unit tests

* Update prompt-input.tsx

* Build fixes

* Modify docs styles

* Fix terminal titles

* Update code-block.mdx

* Add tool-approval docs and examples

* Rename ToolApproval to Confirmation

* Fix confirmation

* Misc fixes

* Update test.yml

* Downgrade jsdom

* Update confirmation.test.tsx
2025-10-27 21:12:09 -07:00
Tobias Büschel 2135d806f1 refactor: replace react-syntax-highlighter with shiki in CodeBlock (#149)
* refactor: replace react-syntax-highlighter with shiki in CodeBlock

* Create perky-wolves-grow.md

---------

Co-authored-by: Hayden Bleasel <hello@haydenbleasel.com>
2025-10-27 19:07:34 -07:00
Tobias Büschel 686577d848 feat: add tool approval state and tool approval component (#163)
* feat: add tool approval state and tool approval component

* Delete apps/test/app/examples/tool-approval.tsx

* Delete apps/test/app/examples/tool.tsx

* Delete apps/test/app/page.tsx

* Delete apps/test/package.json

* Update pnpm-lock.yaml

* Update pnpm-lock.yaml

* Create slow-dancers-tap.md

---------

Co-authored-by: Hayden Bleasel <hello@haydenbleasel.com>
2025-10-27 18:57:16 -07:00
dependabot[bot] da5520fd98 Bump ai from 5.0.72 to 5.0.74 (#144)
Bumps [ai](https://github.com/vercel/ai) from 5.0.72 to 5.0.74.
- [Release notes](https://github.com/vercel/ai/releases)
- [Changelog](https://github.com/vercel/ai/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vercel/ai/compare/ai@5.0.72...ai@5.0.74)

---
updated-dependencies:
- dependency-name: ai
  dependency-version: 5.0.74
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-27 18:50:24 -07:00
Tobias Büschel 8a4be1356e feat: improve layout and design of PromptInputAttachments (#151)
* feat: improve layout and design of PromptInputAttachments

* Delete apps/test/app/examples/prompt-input.tsx

---------

Co-authored-by: Hayden Bleasel <hello@haydenbleasel.com>
2025-10-27 18:47:11 -07:00
Sora Morimoto 4a5afad0bb Fix type error in Edge component by using const assertion (#158)
* Fix type error in Edge component by using const assertion

Add 'as const' to the return value of `getHandleCoordsByPosition` to ensure
it is typed as a readonly tuple `[number, number]` rather than a mutable
array `number[]`, which was causing TypeScript to infer the elements as
potentially undefined when destructured in the Animated component.

Signed-off-by: Sora Morimoto <sora@morimoto.io>

* Create odd-knives-relax.md

---------

Signed-off-by: Sora Morimoto <sora@morimoto.io>
Co-authored-by: Hayden Bleasel <hello@haydenbleasel.com>
2025-10-27 18:43:11 -07:00
Sora Morimoto 2fce23cf38 Fix type error in InlineCitationCardTrigger by checking sources[0] directly (#159)
* Fix type error in `InlineCitationCardTrigger` by checking `sources[0]` directly

Change the condition from `sources.length` to `sources[0]` to ensure
TypeScript recognises that `sources[0]` is defined when passed to the URL
constructor. This resolves the `string | undefined` is not assignable to
`string | URL` type error.

Signed-off-by: Sora Morimoto <sora@morimoto.io>

* Create proud-rocks-study.md

---------

Signed-off-by: Sora Morimoto <sora@morimoto.io>
Co-authored-by: Hayden Bleasel <hello@haydenbleasel.com>
2025-10-27 18:41:41 -07:00
Sora Morimoto 27dbfc2c2b Use optional chaining for speech recognition result access (#160)
* Use optional chaining for speech recognition result access

Prevent potential undefined access when retrieving the first alternative
from speech recognition results. The `SpeechRecognitionResult` index
access may return `undefined`, so use optional chaining to safely handle
this case.

Signed-off-by: Sora Morimoto <sora@morimoto.io>

* Use nullish coalescing operator to provide a default empty string

Co-authored-by: vercel[bot] <35613825+vercel[bot]@users.noreply.github.com>

* Create sharp-numbers-think.md

---------

Signed-off-by: Sora Morimoto <sora@morimoto.io>
Co-authored-by: vercel[bot] <35613825+vercel[bot]@users.noreply.github.com>
Co-authored-by: Hayden Bleasel <hello@haydenbleasel.com>
2025-10-27 18:39:47 -07:00
Brendan Dash a848cf8d60 refactor: update tokenlens api (#164)
* refactor: update tokenlens api

* Create red-kids-report.md

---------

Co-authored-by: Hayden Bleasel <hello@haydenbleasel.com>
2025-10-27 18:38:23 -07:00
Brendan Dash 40067f2b4a chore: lint @typescript-eslint/no-redeclare (#165)
* chore: lint @typescript-eslint/no-redeclare

* Create famous-heads-marry.md

---------

Co-authored-by: Hayden Bleasel <hello@haydenbleasel.com>
2025-10-27 18:37:12 -07:00
Hayden Bleasel 00c5835e3a Fix tests 2025-10-27 18:32:41 -07:00
Hayden Bleasel f2cb8c7505 Open source documentation (#156)
* Initial port

* Remove test repo

* Misc fixes

* Fix folder groups

* Docs and design fixes

* Add primary color, fix manual install

* Fix elements demo

* Delete .source

* Update .gitignore

* Update package.json

* Update shadcn-ui

* Upgrade to Next.js and Fumadocs 16

* Add missing examples

* Fix metadata

* Add base path

* Update next-env.d.ts

* Add microfrontends config

* Create microfrontends.json
2025-10-27 13:40:56 -07:00
Hayden Bleasel 14888a6475 October update (#135)
* Add Shiki to test repo

* Fix controls unit test

* Bump deps

* Cleanup and merge task queue elements

* Rename to Queue

* Update page.tsx

* Update queue.tsx

* Update queue.tsx

* Rebuild queue

* Continue breaking apart Queue component

* Cleanup

* Finish decomposing Queue

* Update queue.tsx

* Misc cleanup and renaming

* Add PromptInputHeader, Footer and Tabs

* Improve exports

* Rename Tabs -> HoverCard

* Add Rules example

* Add PromptInputCommand

* Add tests for Queue

* Update prompt-input.test.tsx

* Create Shimmer component

* Redo colors

* Update reasoning.tsx

* Create Plan component

* Update prompt-input.tsx

* Linter improvements

* Add check / fix commands

* Run Ultracite

* Update prompt-input.tsx
2025-10-15 21:11:00 -07:00
UncleBigBay e26284988f Feat (new element): implement reusable task queue and panel (message and todo default) (#131)
* feat(hook): add useTaskQueue context and hook for unified task and message queue management

* feat: add reusable TaskQueuePanel component for queue and todo management

* chore (example): add TaskQueuePanel usage example with shared task queue context

* Feat (example): add TaskQueuePanel to example workflow page

* chore: add sample todo and message data to task queue

* fix: prevent double-seeding of demo tasks in React Strict Mode with useRef guard
2025-10-15 16:38:10 -07:00
Tobias Büschel 7d36fddb19 feat: pressing backspace deletes last attachment when textarea is empty (#130) 2025-10-15 16:36:50 -07:00
mridul 11358e3cf5 fix: resolve onError type conflict in PromptInputProps (#132)
Exclude "onError" from HTMLAttributes<HTMLFormElement> to prevent conflict
with the custom onError callback that provides specific file upload error
codes ("max_files", "max_file_size", "accept").
2025-10-15 16:35:58 -07:00
Sora Morimoto fda2d1c811 Prevent form submission during IME composition (#134)
Add composition event handlers to PromptInputTextarea to prevent
premature form submission when users press Enter to confirm IME input
(e.g., Japanese, Chinese, Korean). The component now tracks composition
state explicitly using onCompositionStart and onCompositionEnd events,
in addition to checking the native isComposing property.

This fixes an issue where Japanese users typing with an IME would
accidentally submit the form when pressing Enter to convert kanji,
instead of just confirming the conversion.

Signed-off-by: Sora Morimoto <sora@morimoto.io>
2025-10-15 16:34:16 -07:00
Hayden Bleasel ae7091290c Fix controls dark mode 2025-10-07 14:02:46 -07:00
Hayden Bleasel 50c755f596 Rename hooks 2025-10-06 14:59:03 -07:00
Hayden Bleasel 3d9dff9662 Update prompt-input.tsx 2025-10-06 14:14:07 -07:00
Hayden Bleasel 1ef040abd9 Increase test coverage from 95.5% to 96.34% 2025-10-06 14:10:22 -07:00