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
HgQx!mGJ|iZ
literal 0
HcmV?d00001
diff --git a/packages/vue-demo/public/vite.svg b/packages/vue-demo/public/vite.svg
new file mode 100644
index 0000000..e7b8dfb
--- /dev/null
+++ b/packages/vue-demo/public/vite.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/packages/vue-demo/public/vue.svg b/packages/vue-demo/public/vue.svg
new file mode 100644
index 0000000..770e9d3
--- /dev/null
+++ b/packages/vue-demo/public/vue.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/packages/vue-demo/src/App.vue b/packages/vue-demo/src/App.vue
new file mode 100644
index 0000000..649cc1e
--- /dev/null
+++ b/packages/vue-demo/src/App.vue
@@ -0,0 +1,35 @@
+
+
+
+
+ TiSQLEditor Vue Component Demo
+
+
+
+
+
+
+
diff --git a/packages/vue-demo/src/main.ts b/packages/vue-demo/src/main.ts
new file mode 100644
index 0000000..2425c0f
--- /dev/null
+++ b/packages/vue-demo/src/main.ts
@@ -0,0 +1,5 @@
+import { createApp } from 'vue'
+import './style.css'
+import App from './App.vue'
+
+createApp(App).mount('#app')
diff --git a/packages/vue-demo/src/style.css b/packages/vue-demo/src/style.css
new file mode 100644
index 0000000..bb131d6
--- /dev/null
+++ b/packages/vue-demo/src/style.css
@@ -0,0 +1,79 @@
+:root {
+ font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;
+ line-height: 1.5;
+ font-weight: 400;
+
+ color-scheme: light dark;
+ color: rgba(255, 255, 255, 0.87);
+ background-color: #242424;
+
+ font-synthesis: none;
+ text-rendering: optimizeLegibility;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+a {
+ font-weight: 500;
+ color: #646cff;
+ text-decoration: inherit;
+}
+a:hover {
+ color: #535bf2;
+}
+
+body {
+ margin: 0;
+ display: flex;
+ place-items: center;
+ min-width: 320px;
+ min-height: 100vh;
+}
+
+h1 {
+ font-size: 3.2em;
+ line-height: 1.1;
+}
+
+button {
+ border-radius: 8px;
+ border: 1px solid transparent;
+ padding: 0.6em 1.2em;
+ font-size: 1em;
+ font-weight: 500;
+ font-family: inherit;
+ background-color: #1a1a1a;
+ cursor: pointer;
+ transition: border-color 0.25s;
+}
+button:hover {
+ border-color: #646cff;
+}
+button:focus,
+button:focus-visible {
+ outline: 4px auto -webkit-focus-ring-color;
+}
+
+.card {
+ padding: 2em;
+}
+
+#app {
+ max-width: 1280px;
+ margin: 0 auto;
+ padding: 2rem;
+ text-align: center;
+}
+
+@media (prefers-color-scheme: light) {
+ :root {
+ color: #213547;
+ background-color: #ffffff;
+ }
+ a:hover {
+ color: #747bff;
+ }
+ button {
+ background-color: #f9f9f9;
+ }
+}
diff --git a/packages/vue-demo/src/vite-env.d.ts b/packages/vue-demo/src/vite-env.d.ts
new file mode 100644
index 0000000..11f02fe
--- /dev/null
+++ b/packages/vue-demo/src/vite-env.d.ts
@@ -0,0 +1 @@
+///
diff --git a/packages/vue-demo/tsconfig.app.json b/packages/vue-demo/tsconfig.app.json
new file mode 100644
index 0000000..b8e9723
--- /dev/null
+++ b/packages/vue-demo/tsconfig.app.json
@@ -0,0 +1,27 @@
+{
+ "compilerOptions": {
+ "composite": true,
+ "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
+ "target": "ES2020",
+ "useDefineForClassFields": true,
+ "module": "ESNext",
+ "lib": ["ES2020", "DOM", "DOM.Iterable"],
+ "skipLibCheck": true,
+
+ /* Bundler mode */
+ "moduleResolution": "bundler",
+ "allowImportingTsExtensions": true,
+ "resolveJsonModule": true,
+ "isolatedModules": true,
+ "moduleDetection": "force",
+ "noEmit": true,
+ "jsx": "preserve",
+
+ /* Linting */
+ "strict": true,
+ "noUnusedLocals": true,
+ "noUnusedParameters": true,
+ "noFallthroughCasesInSwitch": true
+ },
+ "include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.vue"]
+}
diff --git a/packages/vue-demo/tsconfig.json b/packages/vue-demo/tsconfig.json
new file mode 100644
index 0000000..ea9d0cd
--- /dev/null
+++ b/packages/vue-demo/tsconfig.json
@@ -0,0 +1,11 @@
+{
+ "files": [],
+ "references": [
+ {
+ "path": "./tsconfig.app.json"
+ },
+ {
+ "path": "./tsconfig.node.json"
+ }
+ ]
+}
diff --git a/packages/vue-demo/tsconfig.node.json b/packages/vue-demo/tsconfig.node.json
new file mode 100644
index 0000000..3afdd6e
--- /dev/null
+++ b/packages/vue-demo/tsconfig.node.json
@@ -0,0 +1,13 @@
+{
+ "compilerOptions": {
+ "composite": true,
+ "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
+ "skipLibCheck": true,
+ "module": "ESNext",
+ "moduleResolution": "bundler",
+ "allowSyntheticDefaultImports": true,
+ "strict": true,
+ "noEmit": true
+ },
+ "include": ["vite.config.ts"]
+}
diff --git a/packages/vue-demo/vite.config.ts b/packages/vue-demo/vite.config.ts
new file mode 100644
index 0000000..315212d
--- /dev/null
+++ b/packages/vue-demo/vite.config.ts
@@ -0,0 +1,7 @@
+import { defineConfig } from 'vite'
+import vue from '@vitejs/plugin-vue'
+
+// https://vitejs.dev/config/
+export default defineConfig({
+ plugins: [vue()]
+})
diff --git a/packages/vue/package.json b/packages/vue/package.json
index 9515d1c..ab48242 100644
--- a/packages/vue/package.json
+++ b/packages/vue/package.json
@@ -1,6 +1,6 @@
{
"name": "@tidbcloud/tisqleditor-vue",
- "version": "0.0.3",
+ "version": "0.0.6",
"description": "tisqleditor vue component",
"type": "module",
"main": "dist/index.js",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 7dcab03..8744584 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -690,6 +690,31 @@ importers:
specifier: ^2.0.24
version: 2.0.28(typescript@5.4.5)
+ packages/vue-demo:
+ dependencies:
+ '@tidbcloud/codemirror-extension-themes':
+ specifier: workspace:^
+ version: link:../extensions/themes
+ '@tidbcloud/tisqleditor-vue':
+ specifier: workspace:^
+ version: link:../vue
+ vue:
+ specifier: ^3.4.31
+ version: 3.4.34(typescript@5.4.5)
+ devDependencies:
+ '@vitejs/plugin-vue':
+ specifier: ^5.0.5
+ version: 5.1.0(vite@5.3.4(@types/node@20.14.2))(vue@3.4.34(typescript@5.4.5))
+ typescript:
+ specifier: ^5.2.2
+ version: 5.4.5
+ vite:
+ specifier: ^5.3.4
+ version: 5.3.4(@types/node@20.14.2)
+ vue-tsc:
+ specifier: ^2.0.24
+ version: 2.0.28(typescript@5.4.5)
+
packages:
'@adobe/css-tools@4.4.0':
From b160106cc9d0bf50df9cc26d2214eeea684ac457 Mon Sep 17 00:00:00 2001
From: baurine <2008.hbl@gmail.com>
Date: Thu, 1 Aug 2024 12:18:03 +0800
Subject: [PATCH 2/5] feat(vue-demo): demo more extensions
---
packages/vue-demo/package.json | 3 ++
packages/vue-demo/src/App.vue | 45 ++++++++++++++++++++++++++----
packages/vue-demo/src/lib/delay.ts | 3 ++
pnpm-lock.yaml | 9 ++++++
4 files changed, 54 insertions(+), 6 deletions(-)
create mode 100644 packages/vue-demo/src/lib/delay.ts
diff --git a/packages/vue-demo/package.json b/packages/vue-demo/package.json
index f31d14b..9860d7e 100644
--- a/packages/vue-demo/package.json
+++ b/packages/vue-demo/package.json
@@ -9,6 +9,9 @@
"preview": "vite preview"
},
"dependencies": {
+ "@tidbcloud/codemirror-extension-ai-widget": "workspace:^",
+ "@tidbcloud/codemirror-extension-cur-sql-gutter": "workspace:^",
+ "@tidbcloud/codemirror-extension-sql-autocomplete": "workspace:^",
"@tidbcloud/codemirror-extension-themes": "workspace:^",
"@tidbcloud/tisqleditor-vue": "workspace:^",
"vue": "^3.4.31"
diff --git a/packages/vue-demo/src/App.vue b/packages/vue-demo/src/App.vue
index 649cc1e..089a3ab 100644
--- a/packages/vue-demo/src/App.vue
+++ b/packages/vue-demo/src/App.vue
@@ -1,19 +1,51 @@
TiSQLEditor Vue Component Demo
diff --git a/packages/vue-demo/src/lib/delay.ts b/packages/vue-demo/src/lib/delay.ts
new file mode 100644
index 0000000..9c70749
--- /dev/null
+++ b/packages/vue-demo/src/lib/delay.ts
@@ -0,0 +1,3 @@
+export function delay(ms: number) {
+ return new Promise((resolve) => setTimeout(resolve, ms))
+}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 8744584..45e7623 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -692,6 +692,15 @@ importers:
packages/vue-demo:
dependencies:
+ '@tidbcloud/codemirror-extension-ai-widget':
+ specifier: workspace:^
+ version: link:../extensions/ai-widget
+ '@tidbcloud/codemirror-extension-cur-sql-gutter':
+ specifier: workspace:^
+ version: link:../extensions/cur-sql-gutter
+ '@tidbcloud/codemirror-extension-sql-autocomplete':
+ specifier: workspace:^
+ version: link:../extensions/sql-autocomplete
'@tidbcloud/codemirror-extension-themes':
specifier: workspace:^
version: link:../extensions/themes
From 0726433c7d7dce6ad17ac063a3aee475330f1e19 Mon Sep 17 00:00:00 2001
From: baurine <2008.hbl@gmail.com>
Date: Thu, 1 Aug 2024 12:21:50 +0800
Subject: [PATCH 3/5] feat(vue-demo): update script
---
package.json | 2 ++
1 file changed, 2 insertions(+)
diff --git a/package.json b/package.json
index a778dc7..1d7dbf9 100644
--- a/package.json
+++ b/package.json
@@ -9,9 +9,11 @@
"dev": "pnpm -r --parallel dev",
"dev:playground": "pnpm --filter @tidbcloud/tisqleditor-playground... --parallel dev",
"dev:playground-nextjs": "pnpm --filter @tidbcloud/tisqleditor-playground-nextjs... --parallel dev",
+ "dev:vue-demo": "pnpm --filter @tidbcloud/tisqleditor-vue-demo... --parallel dev",
"build": "pnpm -r build",
"build:playground": "pnpm --filter @tidbcloud/tisqleditor-playground... run build",
"build:playground-nextjs": "pnpm --filter @tidbcloud/tisqleditor-playground-nextjs... run build",
+ "build:vue-demo": "pnpm --filter @tidbcloud/tisqleditor-vue-demo... run build",
"test": "jest",
"release": "changeset publish"
},
From 41aae0cde138d3b58416dcf4959ac7cb7ace9bf3 Mon Sep 17 00:00:00 2001
From: baurine <2008.hbl@gmail.com>
Date: Thu, 1 Aug 2024 12:26:12 +0800
Subject: [PATCH 4/5] feat(vue-demo): update README
---
README.md | 2 +-
packages/vue-demo/README.md | 6 ++++--
.../vue-demo/public/tisqleditor-vue-demo.png | Bin 0 -> 76343 bytes
packages/vue-demo/public/tisqleditor-vue.png | Bin 40147 -> 0 bytes
4 files changed, 5 insertions(+), 3 deletions(-)
create mode 100644 packages/vue-demo/public/tisqleditor-vue-demo.png
delete mode 100644 packages/vue-demo/public/tisqleditor-vue.png
diff --git a/README.md b/README.md
index e7e0c66..6f6656b 100644
--- a/README.md
+++ b/README.md
@@ -77,7 +77,7 @@ export function Editor() {
### Setup
-- node.js >18.16.0
+- node.js > 20.0
- [enable corepack](https://www.totaltypescript.com/how-to-use-corepack): `corepack enable && corepack enable npm`
### Local Development
diff --git a/packages/vue-demo/README.md b/packages/vue-demo/README.md
index 99e5f20..3ca10cb 100644
--- a/packages/vue-demo/README.md
+++ b/packages/vue-demo/README.md
@@ -4,9 +4,11 @@ This demo is used to test `@tidbcloud/tisqleditor-vue` package, created by Vue3+
## Preview
-![tisqleditor vue](./public/tisqleditor-vue.png)
+👉🏻 [Try it](https://tisqleditor-vue-demo.vercel.app)
-## Get Started
+![tisqleditor vue demo](./public/tisqleditor-vue-demo.png)
+
+## Getting Started
```bash
pnpm i
diff --git a/packages/vue-demo/public/tisqleditor-vue-demo.png b/packages/vue-demo/public/tisqleditor-vue-demo.png
new file mode 100644
index 0000000000000000000000000000000000000000..a8ec1339ac5e89657c8c49966ebb8d036e0db9e6
GIT binary patch
literal 76343
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