diff --git a/js/apps/docs/components/Footer.vue b/js/apps/docs/components/Footer.vue
index 71c96bf6..90637c22 100644
--- a/js/apps/docs/components/Footer.vue
+++ b/js/apps/docs/components/Footer.vue
@@ -16,7 +16,11 @@ onMounted(() => {
-
+
+
diff --git a/js/apps/docs/contents/docs/cloud/features/feedback.md b/js/apps/docs/contents/docs/cloud/features/feedback.md
index a5169f1d..2f936891 100644
--- a/js/apps/docs/contents/docs/cloud/features/feedback.md
+++ b/js/apps/docs/contents/docs/cloud/features/feedback.md
@@ -26,8 +26,8 @@ onMounted(() => {
diff --git a/js/apps/docs/contents/docs/cloud/integrations/docusaurus.md b/js/apps/docs/contents/docs/cloud/integrations/docusaurus.md
index a5fc6aff..d59d9b50 100644
--- a/js/apps/docs/contents/docs/cloud/integrations/docusaurus.md
+++ b/js/apps/docs/contents/docs/cloud/integrations/docusaurus.md
@@ -23,7 +23,7 @@ After ejecting, you can edit generated files in `src/theme/SearchBar`.
```html-vue
// [!code --]
- // [!code ++]
+ // [!code ++]
// [!code ++]
// [!code --]
diff --git a/js/apps/docs/contents/docs/cloud/integrations/starlight.md b/js/apps/docs/contents/docs/cloud/integrations/starlight.md
index ec25b542..40b1d4b2 100644
--- a/js/apps/docs/contents/docs/cloud/integrations/starlight.md
+++ b/js/apps/docs/contents/docs/cloud/integrations/starlight.md
@@ -31,7 +31,7 @@ export default defineConfig({
...
// [!code --]
- // [!code ++]
+ // [!code ++]
// [!code ++]
// [!code --]
diff --git a/js/apps/docs/contents/docs/cloud/integrations/vitepress.md b/js/apps/docs/contents/docs/cloud/integrations/vitepress.md
index 9c74f7c9..59c22d18 100644
--- a/js/apps/docs/contents/docs/cloud/integrations/vitepress.md
+++ b/js/apps/docs/contents/docs/cloud/integrations/vitepress.md
@@ -17,7 +17,7 @@ Take a look at our [CloudSearch.vue](https://github.com/fastrepl/canary/blob/mai
```html-vue
// [!code --]
- // [!code ++]
+ // [!code ++]
// [!code ++]
// [!code --]
diff --git a/js/apps/docs/contents/docs/common/why.md b/js/apps/docs/contents/docs/common/why.md
index f1fa5e98..4905f551 100644
--- a/js/apps/docs/contents/docs/common/why.md
+++ b/js/apps/docs/contents/docs/common/why.md
@@ -50,7 +50,7 @@ If you decide to use `Canary Cloud` for more features, you can easily migrate.
```html-vue
// [!code --]
- // [!code ++]
+ // [!code ++]
// [!code ++]
// [!code --]
diff --git a/js/apps/docs/contents/docs/local/intro.md b/js/apps/docs/contents/docs/local/intro.md
index 5aaa33a2..c1b931de 100644
--- a/js/apps/docs/contents/docs/local/intro.md
+++ b/js/apps/docs/contents/docs/local/intro.md
@@ -27,7 +27,7 @@ If you need more features, you can easily migrate.
```html-vue
// [!code --]
- // [!code ++]
+ // [!code ++]
// [!code ++]
// [!code --]
diff --git a/js/apps/docs/contents/index.examples.md b/js/apps/docs/contents/index.examples.md
index 49a0c633..8ca6251b 100644
--- a/js/apps/docs/contents/index.examples.md
+++ b/js/apps/docs/contents/index.examples.md
@@ -50,7 +50,7 @@
```js-vue [Using Canary cloud]
// [!code --]
- // [!code ++]
+ // [!code ++]
{/* Rest of the code */}
// [!code ++]
// [!code --]
diff --git a/js/apps/docs/package.json b/js/apps/docs/package.json
index 8eb682bc..06860f17 100644
--- a/js/apps/docs/package.json
+++ b/js/apps/docs/package.json
@@ -17,7 +17,7 @@
"vue": "^3.4.35"
},
"dependencies": {
- "@getcanary/web": "^0.0.83",
+ "@getcanary/web": "^0.0.84",
"@vercel/analytics": "^1.3.1",
"chart.js": "^4.4.3",
"vue-chartjs": "^5.3.1"
diff --git a/js/package-lock.json b/js/package-lock.json
index d76bca66..babdd868 100644
--- a/js/package-lock.json
+++ b/js/package-lock.json
@@ -16,7 +16,7 @@
"apps/docs": {
"name": "@getcanary/docs",
"dependencies": {
- "@getcanary/web": "^0.0.83",
+ "@getcanary/web": "^0.0.84",
"@vercel/analytics": "^1.3.1",
"chart.js": "^4.4.3",
"vue-chartjs": "^5.3.1"
@@ -31363,7 +31363,7 @@
},
"packages/web": {
"name": "@getcanary/web",
- "version": "0.0.83",
+ "version": "0.0.84",
"dependencies": {
"@floating-ui/dom": "^1.6.8",
"@lit-labs/observers": "^2.0.2",
diff --git a/js/packages/web/package.json b/js/packages/web/package.json
index 75438906..c290fc66 100644
--- a/js/packages/web/package.json
+++ b/js/packages/web/package.json
@@ -1,6 +1,6 @@
{
"name": "@getcanary/web",
- "version": "0.0.83",
+ "version": "0.0.84",
"type": "module",
"main": "dist/components/index.js",
"files": [
diff --git a/js/packages/web/src/components/canary-content.stories.ts b/js/packages/web/src/components/canary-content.stories.ts
index cc6f9ded..6b259d56 100644
--- a/js/packages/web/src/components/canary-content.stories.ts
+++ b/js/packages/web/src/components/canary-content.stories.ts
@@ -79,7 +79,7 @@ export default {
parameters: { sourceLink: "components/canary-content.stories.ts" },
render: ({ kind }: { kind: Kind }) => {
const wrapper = (child: any) => html`
-
+
${child}
`;
diff --git a/js/packages/web/src/components/canary-feedback-page.ts b/js/packages/web/src/components/canary-feedback-page.ts
index b52951ad..a4662ec4 100644
--- a/js/packages/web/src/components/canary-feedback-page.ts
+++ b/js/packages/web/src/components/canary-feedback-page.ts
@@ -16,26 +16,18 @@ export class CanaryFeedbackPage extends LitElement {
@property({ type: String, attribute: "text-complete" })
completeText = "Got it, Thank you!";
- @property({ type: String })
- endpoint = "https://cloud.getcanary.dev";
+ @property({ type: String, attribute: "api-base" })
+ apiBase = "https://cloud.getcanary.dev";
- @property({ type: String })
- key = "";
-
- connectedCallback(): void {
- super.connectedCallback();
-
- if (this.key === "") {
- throw new Error("key is required");
- }
- }
+ @property({ type: String, attribute: "api-key" })
+ apiKey = "";
private _task = new Task(this, {
- task: async ([url, score]: [string, number], { signal }) => {
- const response = await fetch(`${this.endpoint}/api/v1/feedback/page`, {
+ task: async ([endpoint, key, url, score]: [string, string, string, number], { signal }) => {
+ const response = await fetch(`${endpoint}/api/v1/feedback/page`, {
method: "POST",
headers: { "Content-Type": "application/json" },
- body: JSON.stringify({ key: this.key, url, score }),
+ body: JSON.stringify({ key, url, score }),
signal: withTimeout(signal, 2500),
});
@@ -78,8 +70,8 @@ export class CanaryFeedbackPage extends LitElement {
`;
}
- private _handleClick(value: number) {
- this._task.run([document.location.href, value]);
+ private _handleClick(score: number) {
+ this._task.run([this.apiBase, this.apiKey, document.location.href, score]);
}
static styles = [
diff --git a/js/packages/web/src/components/canary-feedback.stories.ts b/js/packages/web/src/components/canary-feedback.stories.ts
index 987a8338..6c0d71ef 100644
--- a/js/packages/web/src/components/canary-feedback.stories.ts
+++ b/js/packages/web/src/components/canary-feedback.stories.ts
@@ -14,7 +14,7 @@ export default {
parameters: { sourceLink: "components/canary-feedback.stories.ts" },
render: ({ type }: any) => {
if (type === "page") {
- return html` `;
+ return html` `;
}
if (type === "modal") {
diff --git a/js/packages/web/src/components/canary-modal.stories.ts b/js/packages/web/src/components/canary-modal.stories.ts
index 98db4698..16486899 100644
--- a/js/packages/web/src/components/canary-modal.stories.ts
+++ b/js/packages/web/src/components/canary-modal.stories.ts
@@ -17,7 +17,7 @@ export default {
parameters: { sourceLink: "components/canary-modal.stories.ts" },
render: () => {
return html`
-
+
diff --git a/js/packages/web/src/components/canary-provider-cloud.ts b/js/packages/web/src/components/canary-provider-cloud.ts
index 0e729d23..23a2b2f7 100644
--- a/js/packages/web/src/components/canary-provider-cloud.ts
+++ b/js/packages/web/src/components/canary-provider-cloud.ts
@@ -11,13 +11,16 @@ const NAME = "canary-provider-cloud";
@customElement(NAME)
export class CanaryProviderCloud extends LitElement {
- @property() endpoint = "";
- @property() key = "";
+ @property({ type: String, attribute: "api-base" })
+ apiBase = "";
+
+ @property({ type: String, attribute: "api-key" })
+ apiKey = "";
connectedCallback() {
super.connectedCallback();
- if (!this.endpoint || !this.key) {
+ if (!this.apiBase || !this.apiKey) {
throw new Error("Endpoint and key are required");
}
@@ -42,11 +45,11 @@ export class CanaryProviderCloud extends LitElement {
const params = {
method: "POST",
headers: { "Content-Type": "application/json" },
- body: JSON.stringify({ key: this.key, query }),
+ body: JSON.stringify({ key: this.apiKey, query }),
signal,
};
- const res = await fetch(`${this.endpoint}/api/v1/search`, params);
+ const res = await fetch(`${this.apiBase}/api/v1/search`, params);
if (!res.ok) {
throw new Error(res.statusText);
}
@@ -55,11 +58,11 @@ export class CanaryProviderCloud extends LitElement {
};
ask: AskFunction = async (id, query, handleDelta, signal) => {
- const url = `${this.endpoint}/api/v1/ask`;
+ const url = `${this.apiBase}/api/v1/ask`;
const params = {
method: "POST",
headers: { "Content-Type": "application/json" },
- body: JSON.stringify({ id, key: this.key, query }),
+ body: JSON.stringify({ id, key: this.apiKey, query }),
signal,
};