* Fix: Update PromptInputSpeechButton SpeechRecognition usage to only use final result
* Create swift-spies-smell.md
---------
Co-authored-by: Hayden Bleasel <hello@haydenbleasel.com>
* fix: add DialogTitle
* feat: use sr-only
* Refactor ModelSelector to use ReactNode for title
---------
Co-authored-by: Hayden Bleasel <hello@haydenbleasel.com>
* fix(reasoning): make "Thought for a few seconds" message reachable
The "Thought for a few seconds" fallback message was unreachable due to
useControllableState defaulting duration to 0 instead of undefined.
- Changed defaultProp from 0 to undefined in useControllableState
- Updated ReasoningContextValue type to allow undefined duration
- Added test coverage for the undefined duration case
Fixes the conditional logic where duration === 0 would trigger the
shimmer animation, preventing the undefined check from ever executing.
* Create odd-grapes-behave.md
---------
Co-authored-by: Hayden Bleasel <hello@haydenbleasel.com>
* 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>
* 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>
* 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>
* 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>