Skip to content

Commit 6021f31

Browse files
release(major): version 4.0
### New Features - Introducing AI chart creation powered by D3.js - You can now import XLSX files natively - The charts library now includes a grid and list view for easier browsing - Added a new Elementor widget for displaying Visualizer charts - Improved auto-sync reliability by replacing WP-Cron with Action Scheduler ### Improvements - Cleaned up legacy block controls in the Block Editor ### Bug Fixes - Resolved an issue where lazy charts didn’t render when already in the viewport on page load - Fixed a fatal error on servers with broken FTP filesystem configuration - Addressed errors occurring in the getCSV method - Fixed an intermittent sidebar scroll issue in Chrome - Prevented a double clipboard alert when copying - Fixed a bubble chart crash on window resize when using named series in manual configuration
2 parents ee985b9 + 28f8952 commit 6021f31

File tree

181 files changed

+15936
-26100
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

181 files changed

+15936
-26100
lines changed

.distignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,4 +32,7 @@ phpstan-baseline.neon
3232
AGENTS.md
3333
.wp-env.json
3434
.claude
35-
35+
skills
36+
classes/Visualizer/Gutenberg/src
37+
classes/Visualizer/ChartBuilder/src
38+
classes/Visualizer/D3Renderer/src
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
name: "Agent Task"
2+
description: "Structured task for coding agents"
3+
labels: ["agent"]
4+
body:
5+
- type: textarea
6+
id: goal
7+
attributes:
8+
label: Goal / Acceptance Criteria
9+
description: "What does 'done' look like? Be specific."
10+
placeholder: "Example: Update E2E docs to use npm run env:up/env:down and ensure credentials match bin/cli-setup.sh."
11+
validations:
12+
required: true
13+
14+
- type: textarea
15+
id: constraints
16+
attributes:
17+
label: Constraints / Do Not Touch
18+
description: "List files/areas to avoid or any guardrails."
19+
placeholder: "Example: Do not edit build outputs directly; do not change vendor/ or node_modules/."
20+
validations:
21+
required: false
22+
23+
- type: textarea
24+
id: relevant_files
25+
attributes:
26+
label: Relevant Files (if known)
27+
description: "Optional: point the agent to likely files."
28+
placeholder: "Example: tests/e2e/README.md, AGENTS.md"
29+
validations:
30+
required: false
31+
32+
- type: textarea
33+
id: tests
34+
attributes:
35+
label: Tests to Run
36+
description: "Default is PHPUnit + E2E unless explicitly scoped out."
37+
value: |
38+
Default:
39+
- composer lint
40+
- composer phpstan
41+
- ./vendor/bin/phpunit
42+
- npm run env:up
43+
- npm run test:e2e:playwright
44+
- npm run env:down
45+
validations:
46+
required: true

.github/workflows/build-dev-artifacts.yml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,16 @@ jobs:
2828
run: |
2929
composer install --no-dev --prefer-dist --no-progress
3030
- name: Create zip
31-
run: npm run dist
31+
run: |
32+
npm ci
33+
npm run gutenberg:build
34+
npm run chartbuilder:build
35+
npm run d3renderer:build
36+
CURRENT_VERSION=$(node -p -e "require('./package.json').version")
37+
COMMIT_HASH=$(git rev-parse --short HEAD)
38+
DEV_VERSION="${CURRENT_VERSION}-dev.${COMMIT_HASH}"
39+
npm run grunt version::${DEV_VERSION}
40+
npm run dist
3241
- name: Retrieve branch name
3342
id: retrieve-branch-name
3443
run: echo "::set-output name=branch_name::$(REF=${GITHUB_HEAD_REF:-$GITHUB_REF} && echo ${REF#refs/heads/} | sed 's/\//-/g')"
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
name: "Copilot Setup Steps"
2+
3+
on:
4+
workflow_dispatch:
5+
push:
6+
paths:
7+
- .github/workflows/copilot-setup-steps.yml
8+
pull_request:
9+
paths:
10+
- .github/workflows/copilot-setup-steps.yml
11+
12+
jobs:
13+
copilot-setup-steps:
14+
runs-on: ubuntu-latest
15+
services:
16+
mysql:
17+
image: mysql:5.7
18+
env:
19+
MYSQL_ROOT_PASSWORD: root
20+
ports:
21+
- 3306:3306
22+
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
23+
permissions:
24+
contents: read
25+
steps:
26+
- name: Checkout code
27+
uses: actions/checkout@v5
28+
29+
- name: Set up Node.js
30+
uses: actions/setup-node@v4
31+
with:
32+
node-version: "18"
33+
cache: "npm"
34+
35+
- name: Install JavaScript dependencies
36+
run: npm ci
37+
38+
- name: Install Playwright browsers
39+
run: npx playwright install --with-deps chromium
40+
41+
- name: Set up PHP
42+
uses: shivammathur/setup-php@v2
43+
with:
44+
php-version: "7.4"
45+
extensions: simplexml, mysql
46+
47+
- name: Install PHP dependencies
48+
run: composer install
49+
50+
- name: Pre-pull E2E Docker images
51+
run: docker compose -f docker-compose.ci.yml pull

.github/workflows/create-tag.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jobs:
1111
matrix:
1212
node-version: [20.x]
1313
steps:
14-
- uses: actions/checkout@master
14+
- uses: actions/checkout@v4
1515
with:
1616
persist-credentials: false
1717
- name: Build files using ${{ matrix.node-version }}

.github/workflows/deploy-wporg.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,16 @@ jobs:
88
name: New version
99
runs-on: ubuntu-latest
1010
steps:
11-
- uses: actions/checkout@master
11+
- uses: actions/checkout@v4
1212
- name: Get the version
1313
id: get_version
1414
run: echo ::set-output name=VERSION::${GITHUB_REF#refs/tags/}
1515
- name: Build
1616
run: |
1717
npm ci
18+
npm run gutenberg:build
19+
npm run chartbuilder:build
20+
npm run d3renderer:build
1821
composer install --no-dev --prefer-dist --no-progress --no-suggest
1922
- name: WordPress Plugin Deploy
2023
uses: 10up/action-wordpress-plugin-deploy@master

.github/workflows/sync-branches.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ jobs:
88
runs-on: ubuntu-latest
99
if: ${{ github.repository_owner == 'Codeinwp' }} #Disable on forks
1010
steps:
11-
- uses: actions/checkout@master
11+
- uses: actions/checkout@v4
1212
- name: Retrieve branch name
1313
id: retrieve-branch-name
1414
run: echo "::set-output name=branch_name::$(REF=${GITHUB_HEAD_REF:-$GITHUB_REF} && echo ${REF#refs/heads/} | sed 's/\//-/g')"

.github/workflows/sync-wporg-assets.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
if: "! contains(github.event.head_commit.message, 'chore(release)')"
1515
name: Push assets to wporg
1616
steps:
17-
- uses: actions/checkout@master
17+
- uses: actions/checkout@v4
1818
- name: WordPress.org plugin asset/readme update
1919
uses: selul/action-wordpress-plugin-asset-update@develop
2020
env:

.github/workflows/test-e2e.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@ jobs:
2424
- name: Install npm deps
2525
run: |
2626
npm ci
27+
npm run gutenberg:build
28+
npm run chartbuilder:build
29+
npm run d3renderer:build
2730
npm install -g playwright-cli
2831
npx playwright install --with-deps chromium
2932
- name: Install composer deps

.github/workflows/translations.yml

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
name: Translations Diff
2+
3+
on:
4+
pull_request_review:
5+
pull_request:
6+
types: [opened, edited, synchronize, ready_for_review]
7+
branches:
8+
- development
9+
- master
10+
11+
jobs:
12+
translation:
13+
runs-on: ubuntu-latest
14+
steps:
15+
- name: Checkout Base Branch
16+
uses: actions/checkout@v4
17+
with:
18+
ref: ${{ github.base_ref }}
19+
path: visualizer-base
20+
- name: Setup node 22
21+
uses: actions/setup-node@v6
22+
with:
23+
node-version: 22.x
24+
- name: Checkout PR Branch (Head)
25+
uses: actions/checkout@v4
26+
with:
27+
path: visualizer-head
28+
- name: Build POT for PR Branch
29+
run: |
30+
chmod +x ./visualizer-head/bin/make-pot.sh
31+
./visualizer-head/bin/make-pot.sh ./visualizer-head ./visualizer-head/languages/visualizer.pot
32+
ls ./visualizer-head/languages/
33+
- name: Build POT for Base Branch
34+
run: |
35+
./visualizer-head/bin/make-pot.sh ./visualizer-base ./visualizer-base/languages/visualizer.pot
36+
ls ./visualizer-base/languages/
37+
- name: Compare POT files
38+
uses: Codeinwp/action-i18n-string-reviewer@main
39+
with:
40+
fail-on-changes: "false"
41+
openrouter-key: ${{ secrets.OPEN_ROUTER_API_KEY }}
42+
openrouter-model: "google/gemini-2.5-flash"
43+
base-pot-file: "visualizer-base/languages/visualizer.pot"
44+
target-pot-file: "visualizer-head/languages/visualizer.pot"
45+
github-token: ${{ secrets.BOT_TOKEN }}

0 commit comments

Comments
 (0)