Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
ccd92ff
feat: bootstrap rn ui sdk
isekovanic Oct 29, 2025
52e0da9
feat: add custom rules as well
isekovanic Oct 30, 2025
7c70a40
chore: cleanup
isekovanic Oct 30, 2025
6f83d2f
fix: blockquote bug
isekovanic Oct 30, 2025
67ab725
feat: refactor blockquote
isekovanic Oct 30, 2025
cc02d54
fix: eslint issues
isekovanic Oct 30, 2025
6664ffc
fix: prettier issues
isekovanic Oct 30, 2025
e469835
fix: additional eslint issues
isekovanic Oct 30, 2025
1134fc1
fix: various types of links
isekovanic Oct 31, 2025
e0aed21
fix: minor cleanup
isekovanic Oct 31, 2025
1696381
chore: refactor autolinks
isekovanic Oct 31, 2025
ea00914
fix: refactor link and fix other link types
isekovanic Oct 31, 2025
dd501c8
chore: remove logs
isekovanic Oct 31, 2025
33eaed3
chore: cleanup
isekovanic Oct 31, 2025
1a72e13
feat: add support for various html elements
isekovanic Oct 31, 2025
851d427
feat: add some more elements
isekovanic Oct 31, 2025
40eece9
feat: port textual components as well
isekovanic Oct 31, 2025
38f34e2
chore: support number of lines for paragraphs
isekovanic Oct 31, 2025
1c59bfa
feat: refactor list support and fix nesting bugs
isekovanic Oct 31, 2025
57f9382
fix: return whitespace removal and make it more robust
isekovanic Oct 31, 2025
df7b753
feat: add code support
isekovanic Oct 31, 2025
659b638
feat: add table support as well
isekovanic Oct 31, 2025
0ad75e0
chore: cleanup
isekovanic Oct 31, 2025
2237b26
fix: scrolling activation behaviour
isekovanic Nov 3, 2025
c441b5a
fix: code parsing edge case
isekovanic Nov 3, 2025
7d619ac
chore: push .idea config
isekovanic Nov 3, 2025
98cb577
chore: rerun prettier after rebase
isekovanic Nov 3, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 12 additions & 0 deletions .idea/ai-components-js.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

59 changes: 59 additions & 0 deletions .idea/codeStyles/Project.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 5 additions & 0 deletions .idea/codeStyles/codeStyleConfig.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/inspectionProfiles/Project_Default.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions .idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 7 additions & 0 deletions .idea/prettier.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Add files here to ignore them from prettier formatting
/dist
/coverage
/.changeset
/.github
pnpm-lock.yaml
7 changes: 7 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"arrowParens": "always",
"printWidth": 80,
"trailingComma": "all",
"tabWidth": 2,
"singleQuote": true
}
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
> ```jsonc
> // package.json
> {
> //...
> "private": true,
> //...
> //...
> "private": true,
> //...
> }
> ```
188 changes: 94 additions & 94 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -1,98 +1,98 @@
import js from "@eslint/js";
import globals from "globals";
import tseslint from "typescript-eslint";
import js from '@eslint/js';
import globals from 'globals';
import tseslint from 'typescript-eslint';

import importPlugin from "eslint-plugin-import";
import importPlugin from 'eslint-plugin-import';

export default tseslint.config(
{
ignores: ["dist"],
},
{
name: "default",
extends: [js.configs.recommended, ...tseslint.configs.recommended],
files: ["packages/**/src/**/*.ts"],
languageOptions: {
ecmaVersion: 2020,
globals: globals.browser,
},
plugins: {
import: importPlugin,
},
settings: {
react: {
version: "detect",
},
},
rules: {
camelcase: "off",
semi: ["warn", "always"],
eqeqeq: ["error", "smart"],
"default-case": "off",
"array-callback-return": "error",
"arrow-body-style": "off",
"comma-dangle": "off",
"jsx-quotes": ["error", "prefer-single"],
"linebreak-style": ["error", "unix"],
"no-console": "off",
"no-mixed-spaces-and-tabs": "warn",
"no-self-compare": "error",
"no-underscore-dangle": "off",
"no-use-before-define": "off",
"no-useless-concat": "error",
"no-var": "error",
"no-script-url": "error",
"no-continue": "off",
"object-shorthand": "warn",
"prefer-const": "warn",
"require-await": "off",
"sort-imports": [
"error",
{
allowSeparatedGroups: true,
ignoreCase: true,
ignoreDeclarationSort: true,
ignoreMemberSort: false,
memberSyntaxSortOrder: ["none", "all", "multiple", "single"],
},
],
"sort-keys": "off",
"valid-typeof": "error",
"max-classes-per-file": "off",
"no-unused-expressions": "off",
"import/prefer-default-export": "off",
"import/extensions": "off",
// "import/no-extraneous-dependencies": [
// "warn",
// {
// devDependencies: false,
// optionalDependencies: false,
// peerDependencies: false,
// },
// ],
"no-unused-vars": "off",
"@typescript-eslint/no-unused-vars": [
"error",
{
args: "all",
argsIgnorePattern: "^_",
caughtErrors: "all",
caughtErrorsIgnorePattern: "^_",
destructuredArrayIgnorePattern: "^_",
varsIgnorePattern: "^_",
ignoreRestSiblings: true,
},
],
"@typescript-eslint/no-unsafe-function-type": "error",
"@typescript-eslint/no-wrapper-object-types": "error",
"@typescript-eslint/no-non-null-assertion": "off",
"no-empty-function": "off",
"@typescript-eslint/no-empty-function": "off",
"@typescript-eslint/no-require-imports": "error",
"@typescript-eslint/consistent-type-imports": "error",
"@typescript-eslint/no-empty-object-type": "off",
"@typescript-eslint/no-empty-generator-function": "off",
"@typescript-eslint/no-explicit-any": "off",
},
},
{
ignores: ['dist'],
},
{
name: 'default',
extends: [js.configs.recommended, ...tseslint.configs.recommended],
files: ['packages/**/src/**/*.ts'],
languageOptions: {
ecmaVersion: 2020,
globals: globals.browser,
},
plugins: {
import: importPlugin,
},
settings: {
react: {
version: 'detect',
},
},
rules: {
camelcase: 'off',
semi: ['warn', 'always'],
eqeqeq: ['error', 'smart'],
'default-case': 'off',
'array-callback-return': 'error',
'arrow-body-style': 'off',
'comma-dangle': 'off',
'jsx-quotes': ['error', 'prefer-single'],
'linebreak-style': ['error', 'unix'],
'no-console': 'off',
'no-mixed-spaces-and-tabs': 'warn',
'no-self-compare': 'error',
'no-underscore-dangle': 'off',
'no-use-before-define': 'off',
'no-useless-concat': 'error',
'no-var': 'error',
'no-script-url': 'error',
'no-continue': 'off',
'object-shorthand': 'warn',
'prefer-const': 'warn',
'require-await': 'off',
'sort-imports': [
'error',
{
allowSeparatedGroups: true,
ignoreCase: true,
ignoreDeclarationSort: true,
ignoreMemberSort: false,
memberSyntaxSortOrder: ['none', 'all', 'multiple', 'single'],
},
],
'sort-keys': 'off',
'valid-typeof': 'error',
'max-classes-per-file': 'off',
'no-unused-expressions': 'off',
'import/prefer-default-export': 'off',
'import/extensions': 'off',
// "import/no-extraneous-dependencies": [
// "warn",
// {
// devDependencies: false,
// optionalDependencies: false,
// peerDependencies: false,
// },
// ],
'no-unused-vars': 'off',
'@typescript-eslint/no-unused-vars': [
'error',
{
args: 'all',
argsIgnorePattern: '^_',
caughtErrors: 'all',
caughtErrorsIgnorePattern: '^_',
destructuredArrayIgnorePattern: '^_',
varsIgnorePattern: '^_',
ignoreRestSiblings: true,
},
],
'@typescript-eslint/no-unsafe-function-type': 'error',
'@typescript-eslint/no-wrapper-object-types': 'error',
'@typescript-eslint/no-non-null-assertion': 'off',
'no-empty-function': 'off',
'@typescript-eslint/no-empty-function': 'off',
'@typescript-eslint/no-require-imports': 'error',
'@typescript-eslint/consistent-type-imports': 'error',
'@typescript-eslint/no-empty-object-type': 'off',
'@typescript-eslint/no-empty-generator-function': 'off',
'@typescript-eslint/no-explicit-any': 'off',
},
},
);
4 changes: 2 additions & 2 deletions examples/nextjs-ai-chatbot/app/[id]/page.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"use client";
'use client';

import Messages from "@/components/messages";
import Messages from '@/components/messages';

export default function ChatPage() {
return <Messages />;
Expand Down
8 changes: 4 additions & 4 deletions examples/nextjs-ai-chatbot/app/api/chats/[id]/route.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import { NextResponse } from "next/server";
import { createStreamStorageClient } from "@stream-io/ai-sdk-storage";
import { createConfigFromEnv } from "@stream-io/ai-sdk-storage/dist/utils";
import { NextResponse } from 'next/server';
import { createStreamStorageClient } from '@stream-io/ai-sdk-storage';
import { createConfigFromEnv } from '@stream-io/ai-sdk-storage/dist/utils';

const storage = createStreamStorageClient(createConfigFromEnv());

export async function GET(req: Request, { params }: any) {
const { id } = await params;
try {
return NextResponse.json(
await storage.streamStorage.getChannelMessages(id)
await storage.streamStorage.getChannelMessages(id),
);
} catch (error) {
return NextResponse.json([], { status: 404 });
Expand Down
Loading
Loading