diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 65c0ac6..72b735e 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -44,7 +44,7 @@ jobs: - name: Install Packages run: yarn install - name: Build page - run: yarn build + run: CI='' yarn build env: PUBLIC_URL: /vf-react - name: Deploy to gh-pages diff --git a/craco.config.js b/craco.config.js new file mode 100644 index 0000000..cfae699 --- /dev/null +++ b/craco.config.js @@ -0,0 +1,49 @@ +const path = require("path"); + +module.exports = { + webpack: { + configure: (webpackConfig) => { + const oneOfRule = webpackConfig.module.rules.find(rule => Array.isArray(rule.oneOf)); + if (oneOfRule) { + oneOfRule.oneOf.forEach(rule => { + if ( + rule.loader && + rule.loader.includes("babel-loader") && + rule.exclude + ) { + const originalExclude = rule.exclude; + rule.exclude = (input) => { + if ( + typeof input === "string" && + input.replace(/\\/g, "/").includes("node_modules/@visual-framework/vf-chatbot") + ) { + return false; + } + if (typeof originalExclude === "function") { + return originalExclude(input); + } + if (Array.isArray(originalExclude)) { + return originalExclude.some(ex => input.includes(ex)); + } + return false; + }; + + // Add this: force automatic runtime for our package + if (!rule.options) rule.options = {}; + if (!rule.options.overrides) rule.options.overrides = []; + rule.options.overrides.push({ + test: /@visual-framework[\\\/]vf-chatbot/, + presets: [ + [ + "@babel/preset-react", + { runtime: "automatic" } + ] + ] + }); + } + }); + } + return webpackConfig; + } + } +}; \ No newline at end of file diff --git a/package.json b/package.json index c2aa339..5c1dae6 100644 --- a/package.json +++ b/package.json @@ -2,8 +2,9 @@ "name": "vf-react", "version": "0.1.0", "private": true, - "homepage": "https://visual-framework.github.io/vf-react/", + "homepage": "/vf-react/", "dependencies": { + "@craco/craco": "^7.1.0", "@testing-library/jest-dom": "^5.17.0", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", @@ -15,38 +16,49 @@ "@visual-framework/vf-box": "^2.4.0", "@visual-framework/vf-button": "3.0.2", "@visual-framework/vf-card": "2.7.2", + "@visual-framework/vf-chatbot": "latest", + "@visual-framework/vf-chatbot-action-prompt": "latest", + "@visual-framework/vf-chatbot-dialog": "latest", + "@visual-framework/vf-chatbot-fab": "latest", + "@visual-framework/vf-chatbot-feedback": "latest", + "@visual-framework/vf-chatbot-modal": "latest", + "@visual-framework/vf-chatbot-prompt": "latest", + "@visual-framework/vf-chatbot-selector": "latest", + "@visual-framework/vf-chatbot-sources": "latest", + "@visual-framework/vf-chatbot-standalone": "latest", + "@visual-framework/vf-chatbot-welcome": "latest", "@visual-framework/vf-content": "1.6.16", "@visual-framework/vf-core": "2.2.47", - "@visual-framework/vf-font-plex-mono": "1.1.1", - "@visual-framework/vf-font-plex-sans": "1.1.1", + "@visual-framework/vf-extensions-react": "^0.0.8", + "@visual-framework/vf-font-plex-mono": "^1.1.3", + "@visual-framework/vf-font-plex-sans": "^1.1.3", + "@visual-framework/vf-footer": "^1.2.1", + "@visual-framework/vf-global-header": "^3.1.6", "@visual-framework/vf-grid": "^1.4.1", "@visual-framework/vf-hero": "^4.0.3", - "@visual-framework/vf-global-header": "^3.1.6", - "@visual-framework/vf-footer": "^1.2.1", "@visual-framework/vf-link": "^2.0.2", - "@visual-framework/vf-sass-config": "2.6.1", - "@visual-framework/vf-sass-starter": "^0.1.30", - "@visual-framework/vf-utility-classes": "2.0.0", "@visual-framework/vf-mega-menu": "^1.0.2", "@visual-framework/vf-profile": "^1.4.0", + "@visual-framework/vf-sass-config": "2.6.1", + "@visual-framework/vf-sass-starter": "^0.1.30", "@visual-framework/vf-search": "^1.0.0", "@visual-framework/vf-stack": "^3.0.0", "@visual-framework/vf-tabs": "^2.1.5", "@visual-framework/vf-text": "^1.1.1", "@visual-framework/vf-u-fullbleed": "^1.2.2", - "@visual-framework/vf-extensions-react": "^0.0.8", + "@visual-framework/vf-utility-classes": "2.0.0", "react": "^18.2.0", "react-dom": "^18.2.0", "react-router-dom": "^6.21.1", - "react-scripts": "5.0.1", + "react-scripts": "^5.0.1", "sass": "^1.69.5", "web-vitals": "^2.1.4" }, "scripts": { - "start": "react-scripts start", - "build": "react-scripts build", - "test": "react-scripts test", - "eject": "react-scripts eject" + "start": "craco start", + "build": "craco build", + "test": "craco test", + "eject": "craco eject" }, "browserslist": { "production": [ @@ -59,5 +71,9 @@ "last 1 firefox version", "last 1 safari version" ] + }, + "devDependencies": { + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/preset-react": "^7.27.1" } } diff --git a/public/assets/vf-chatbot/assets/vf-chatbot--avatar-user.svg b/public/assets/vf-chatbot/assets/vf-chatbot--avatar-user.svg new file mode 100644 index 0000000..d9e9a53 --- /dev/null +++ b/public/assets/vf-chatbot/assets/vf-chatbot--avatar-user.svg @@ -0,0 +1,3 @@ + diff --git a/public/assets/vf-chatbot/assets/vf-chatbot--icon-16x16-dark-green.svg b/public/assets/vf-chatbot/assets/vf-chatbot--icon-16x16-dark-green.svg new file mode 100644 index 0000000..1bd078f --- /dev/null +++ b/public/assets/vf-chatbot/assets/vf-chatbot--icon-16x16-dark-green.svg @@ -0,0 +1,4 @@ + diff --git a/public/assets/vf-chatbot/assets/vf-chatbot--icon-24x24-dark-green.svg b/public/assets/vf-chatbot/assets/vf-chatbot--icon-24x24-dark-green.svg new file mode 100644 index 0000000..0bb0697 --- /dev/null +++ b/public/assets/vf-chatbot/assets/vf-chatbot--icon-24x24-dark-green.svg @@ -0,0 +1,4 @@ + diff --git a/public/assets/vf-chatbot/assets/vf-chatbot--icon-32x32-dark-green.svg b/public/assets/vf-chatbot/assets/vf-chatbot--icon-32x32-dark-green.svg new file mode 100644 index 0000000..6388d34 --- /dev/null +++ b/public/assets/vf-chatbot/assets/vf-chatbot--icon-32x32-dark-green.svg @@ -0,0 +1,4 @@ + diff --git a/public/assets/vf-chatbot/assets/vf-chatbot--icon-close.svg b/public/assets/vf-chatbot/assets/vf-chatbot--icon-close.svg new file mode 100644 index 0000000..3b0417b --- /dev/null +++ b/public/assets/vf-chatbot/assets/vf-chatbot--icon-close.svg @@ -0,0 +1,10 @@ + diff --git a/public/assets/vf-chatbot/assets/vf-chatbot--icon-minimize.svg b/public/assets/vf-chatbot/assets/vf-chatbot--icon-minimize.svg new file mode 100644 index 0000000..a0ec4fc --- /dev/null +++ b/public/assets/vf-chatbot/assets/vf-chatbot--icon-minimize.svg @@ -0,0 +1,3 @@ + diff --git a/public/assets/vf-chatbot/assets/vf-chatbot--icon-send.svg b/public/assets/vf-chatbot/assets/vf-chatbot--icon-send.svg new file mode 100644 index 0000000..0849ecc --- /dev/null +++ b/public/assets/vf-chatbot/assets/vf-chatbot--icon-send.svg @@ -0,0 +1,4 @@ + diff --git a/public/assets/vf-chatbot/assets/vf-chatbot-qa.json b/public/assets/vf-chatbot/assets/vf-chatbot-qa.json new file mode 100644 index 0000000..9a001e3 --- /dev/null +++ b/public/assets/vf-chatbot/assets/vf-chatbot-qa.json @@ -0,0 +1,96 @@ +{ + "predefinedQA": { + "What is Metabolights?": { + "answer": "