From bb52a6ed5c35440d48da3e9d7e65db79eb95a404 Mon Sep 17 00:00:00 2001 From: Masud Rana Date: Fri, 17 Apr 2026 06:05:44 +0600 Subject: [PATCH] [Release]: Publish new version 2.0.0 by merging develop into main (#123) * refactor: update changelog script to use npx and remove conventional-changelog-cli dependency - Changed the changelog script in package.json to use npx for conventional-changelog-cli. - Removed conventional-changelog-cli from dependencies in package-lock.json. - Cleaned up unnecessary dependencies related to conventional changelog generation. * chore: update CHANGELOG for version 1.0.1 with bug fixes and new features * chore: remove unused dependency scrivo/highlight.php from composer files * feat: add .distignore file to exclude unnecessary files from WordPress.org distribution * feat: add localization support and update package.json for repository and bugs metadata * feat: add readme.txt with plugin details and installation instructions * feat: update license and version in carousel-kit.php; add index.php for plugin structure * feat: add screenshot for plugin preview in WordPress.org * feat: update .distignore to refine exclusions for WordPress.org distribution * fix(styles): remove unnecessary grid-template-columns property * refactor(styles): improve transition effects and clean up unused properties * fix: CSS linting issues * refactor: Remove unrelated changes from current PR * feat: add placeholder logos and update hero carousel pattern * feat: update .distignore to exclude README.md and enhance carousel-kit.php for direct access protection * feat: Updated pot file * feat: update PHP requirement to 8.2, bump stable tag to 1.0.3, and add changelog entries for fixes * chore: format package.json for consistency in spacing * chore: remove upgrade notice section from readme.txt * chore: remove version field from package.json * feat: update PHP requirement to 8.2 and reorder contributors in plugin header * chore: remove version field from package-lock.json * docs: add link to full changelog in readme.txt * chore: remove version field from package-lock.json * fix: update file paths in phpcs and phpstan configuration * feat: implement autoloader for PHP classes and refactor constant definitions * fix: ignore phpcs warning for including pattern file from a fixed directory * fix: update script paths in composer.json and improve constant definitions in tests * fix: update POT-Creation-Date and add missing autoloader error message * chore: update @wordpress/scripts to version 31.5.0 * feat: add new screenshot image and remove outdated PNG file * fix: clean up .distignore by removing unnecessary files and directories * fix: remove outdated screenshots description from readme * fix: update dist target to exclude additional configuration and development files * fix: ensure direct access to Autoloader.php exits gracefully * fix: update package dependencies for minimatch and serialize-javascript * fix: update script paths in composer.json to use local binaries * feat: update README with minimum requirements and add uninstall functionality * fix: update WordPress minimum requirement to 6.6 in README, INSTALLATION, and readme.txt * fix: update contributors list in plugin header and readme.txt * fix: update package-lock.json to remove unused dependency and upgrade svgo and immutable versions * fix: update tested up to version in readme.txt from 6.9.1 to 6.9 * fix: correct release link in INSTALLATION.md and update node_modules exclusion in phpstan.neon.dist * fix: update @wordpress/scripts version to allow minor updates * chore(release): Prepare v1.0.4 release (#76) * chore: update version to 1.0.4 and enhance readme with changelog details * fix: update stable tag in readme.txt to 1.0.4 * fix: update changelog links to point to the correct repository * fix: update contributors list in README and readme.txt * docs: update Composer installation instructions in INSTALLATION.md * docs: fix formatting in Composer installation instructions in INSTALLATION.md * fix: correct release link format in CHANGELOG.md for version 1.0.1 * fix: remove hardcoded plugin version from Makefile and update installation instructions in INSTALLATION.md * docs: update note on WPackagist availability in INSTALLATION.md Co-authored-by: Utsav Patel <75293077+up1512001@users.noreply.github.com> * Fix: Wide Alignment + Block Tree Selection (#70) * fix: resolve slide translation and Block Tree selection issues with wide alignment * feat: add hooks for observing DOM mutations and resize events in carousel * fix: adjust full and wide alignment styles for carousel container * fix: clarify comment on full alignment breaking out of container * fix: refactor slide count change detection logic in useEmblaQueryLoopObserver * fix: improve slide count detection and optimize viewport scroll handling * fix: add BlockEditorSelectors interface for improved type safety in edit component * fix: ensure viewportEl is set only when node is not null to avoid state updates during unmount * fix: add box-sizing property to ensure no horizontal scroll bar in editor * fix: improve resize observer logic to prevent unnecessary reinitializations * fix: refactor viewportEl state management to prevent unnecessary reinitializations * fix: update documentation for Embla observers to clarify initialization logic * fix: enhance resize observer to track column size changes * fix: improve first slide observation logic to prevent unnecessary re-observations * fix: consolidate resize and mutation observers into a unified hook for improved carousel init * fix: update comment to reflect change from manual debounced ResizeObserver in useCarouselObservers * fix: handle empty template case by destroying Embla instance to prevent stale references Co-authored-by: Aviral Mittal aviral.ideabox@gmail.com Co-authored-by: Vishal Kotak vishalkotak200@gmail.com Co-authored-by: Aishwarrya Pande <169024277+AishwarryaPande@users.noreply.github.com> Co-authored-by: Raj Patel <71687258+imrraaj@users.noreply.github.com> Co-authored-by: Sanket Parmar <7807348+sanketio@users.noreply.github.com> * fix: add direct access protection to example pattern files (#84) Co-authored-by: rtCamp <1128395+rtCamp@users.noreply.github.com> Co-authored-by: Gagan Deep Singh <1535505+gagan0123@users.noreply.github.com> Co-authored-by: Sagar Tamang <8264719+mi5t4n@users.noreply.github.com> Co-authored-by: Aviral Mittal <68884287+aviral-mittal@users.noreply.github.com> Co-authored-by: Vishal Kotak <34092861+vishal4669@users.noreply.github.com> * feat: add new asset images and replace old screenshot (#86) * build(deps-dev): bump basic-ftp from 5.1.0 to 5.2.0 (#64) Bumps [basic-ftp](https://github.com/patrickjuchli/basic-ftp) from 5.1.0 to 5.2.0. - [Release notes](https://github.com/patrickjuchli/basic-ftp/releases) - [Changelog](https://github.com/patrickjuchli/basic-ftp/blob/master/CHANGELOG.md) - [Commits](https://github.com/patrickjuchli/basic-ftp/compare/v5.1.0...v5.2.0) --- updated-dependencies: - dependency-name: basic-ftp dependency-version: 5.2.0 dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump flatted from 3.3.3 to 3.4.2 (#91) Bumps [flatted](https://github.com/WebReflection/flatted) from 3.3.3 to 3.4.2. - [Commits](https://github.com/WebReflection/flatted/compare/v3.3.3...v3.4.2) --- updated-dependencies: - dependency-name: flatted dependency-version: 3.4.2 dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add Issue and PR templates. (#81) * chore: add GitHub issue form templates * chore: add pull request template * chore: update issue templates for consistency and clarity * Update incorrect link * chore: enhance pull request template with breaking changes section * chore: disable blank issues and update pull request template placeholders --------- Co-authored-by: Masud Rana * fix: add initialized state to CarouselContext to track carousel initialization (#92) * fix: add initialized state to CarouselContext to track carousel initialization Resolves: https://github.com/rtCamp/carousel-kit/issues/78 * fix: use context directly to check selected index in isSlideActive * Support Vertical Alignment on Carousel Slide (#89) * build(deps): bump picomatch (#94) Bumps and [picomatch](https://github.com/micromatch/picomatch). These dependencies needed to be updated together. Updates `picomatch` from 2.3.1 to 2.3.2 - [Release notes](https://github.com/micromatch/picomatch/releases) - [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md) - [Commits](https://github.com/micromatch/picomatch/compare/2.3.1...2.3.2) Updates `picomatch` from 4.0.3 to 4.0.4 - [Release notes](https://github.com/micromatch/picomatch/releases) - [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md) - [Commits](https://github.com/micromatch/picomatch/compare/2.3.1...2.3.2) --- updated-dependencies: - dependency-name: picomatch dependency-version: 2.3.2 dependency-type: indirect - dependency-name: picomatch dependency-version: 4.0.4 dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump yaml from 1.10.2 to 1.10.3 (#96) Bumps [yaml](https://github.com/eemeli/yaml) from 1.10.2 to 1.10.3. - [Release notes](https://github.com/eemeli/yaml/releases) - [Commits](https://github.com/eemeli/yaml/compare/v1.10.2...v1.10.3) --- updated-dependencies: - dependency-name: yaml dependency-version: 1.10.3 dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix: exclude composer.json and composer.lock from distribution package (#99) * build(deps-dev): bump lodash-es from 4.17.23 to 4.18.1 (#102) Bumps [lodash-es](https://github.com/lodash/lodash) from 4.17.23 to 4.18.1. - [Release notes](https://github.com/lodash/lodash/releases) - [Commits](https://github.com/lodash/lodash/compare/4.17.23...4.18.1) --- updated-dependencies: - dependency-name: lodash-es dependency-version: 4.18.1 dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps-dev): bump lodash from 4.17.23 to 4.18.1 (#105) Bumps [lodash](https://github.com/lodash/lodash) from 4.17.23 to 4.18.1. - [Release notes](https://github.com/lodash/lodash/releases) - [Commits](https://github.com/lodash/lodash/compare/4.17.23...4.18.1) --- updated-dependencies: - dependency-name: lodash dependency-version: 4.18.1 dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Fix[Controls]: Block Toolbar persists when selected block moves out of view in carousel (#107) * fix(controls): clear selected block on scroll * fix(controls): conditionally clear selected block when navigating slides in carousel * refactor(controls): merge block refs to controls block - Fixes block toolbar visible, and out of viewport, even after selecting/focusing the control block. * feat: add wp-env configuration for WP development setup (#109) * feat: add wp-env script - Added a new script "wp-env" for easier local development. - Added "@wordpress/env" dependency. - Will make local dev/test setup easier. * fix: escape pipe character in npm version command description * docs: setting up local WordPress environment using Docker and wp-env * chore(refactor): use global wp-env - Uses the global installation for wp-env due to large, and unnecessary dependency tree * docs: update installation command for wp-env in DEVELOPMENT.md * chore(docs): format URLs in DEVELOPMENT.md, and improve grammar * [Refactor]: Rename plugin name from Carousel Kit to rtCarousel (#101) * Refactor carousel block to rename from "carousel-kit" to "rt-carousel" - Updated context variable names in editor context and types. - Changed CSS class names in SCSS files to reflect new naming convention. - Modified block registration and attributes in block.json files for carousel and slide blocks. - Adjusted save and edit components to use new class names and context. - Updated test cases and bootstrap files to align with the new naming. - Ensured all references to "carousel-kit" are replaced with "rt-carousel" across the codebase. * feat: implement migration class to transition data from "carousel-kit" to "rt-carousel" * fix: rename variable for active dot size to active scale in THEMING.md * fix: ensure 'carousel_kit_patterns_cache' transient is deleted on plugin uninstall * fix: update carousel control radius and active dot scale in THEMING.md * refactor: improve migration class documentation and logic for post content updates * fix: implement atomic locking during migration and clean up lock option on uninstall * fix: update plugin name and deactivate legacy "Carousel Kit" plugin if active * fix: improve legacy "Carousel Kit" plugin deactivation logic for single-site and network-wide activations * fix: simplify lock timeout condition in migration process * fix: prevent infinite retries during migration by breaking on no changes and flush post caches * fix: update code snippet in usage guide to use HTML format for allowedSlideBlocks attribute * fix: enhance migration process to handle collation mismatches and log errors * fix: restore vertical scroll for Query Loop carousel (#104) Co-authored-by: Masud Rana * Add support for the progress bar. (#90) * Add support for the progress bar. This would support issue #88 - Add support for progress bar. * feat: implement scroll progress tracking for carousel component * feat: enhance carousel progress tracking with selected index and slide count * feat: add scroll progress and slide count to carousel context tests and implement progress bar logic * feat: initialize scroll progress and slide count in carousel context * refactor: update block name and class references from carousel-kit to rt-carousel --------- Co-authored-by: Masud Rana * build(deps-dev): bump basic-ftp from 5.2.0 to 5.2.1 (#111) Bumps [basic-ftp](https://github.com/patrickjuchli/basic-ftp) from 5.2.0 to 5.2.1. - [Release notes](https://github.com/patrickjuchli/basic-ftp/releases) - [Changelog](https://github.com/patrickjuchli/basic-ftp/blob/master/CHANGELOG.md) - [Commits](https://github.com/patrickjuchli/basic-ftp/compare/v5.2.0...v5.2.1) --- updated-dependencies: - dependency-name: basic-ftp dependency-version: 5.2.1 dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps-dev): bump basic-ftp from 5.2.1 to 5.2.2 (#112) Bumps [basic-ftp](https://github.com/patrickjuchli/basic-ftp) from 5.2.1 to 5.2.2. - [Release notes](https://github.com/patrickjuchli/basic-ftp/releases) - [Changelog](https://github.com/patrickjuchli/basic-ftp/blob/master/CHANGELOG.md) - [Commits](https://github.com/patrickjuchli/basic-ftp/compare/v5.2.1...v5.2.2) --- updated-dependencies: - dependency-name: basic-ftp dependency-version: 5.2.2 dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * [Chore]: Preparation for 1.1.0 version release (#110) * chore: bump version to 1.1.0 and update changelog - Updated version in package.json, readme.txt, and rt-carousel.php to 1.1.0 - Added new features: carousel progress bar block, vertical alignment support, and wp-env configuration - Fixed issues with navigation buttons, block toolbar visibility, and carousel initialization state - Refactored plugin name from "Carousel Kit" to "rtCarousel" - Removed development files from distribution package * fix: Fix NPM audit security issues * chore: Update README and CHANGELOG to reflect plugin renaming and automatic content migration * chore: Update package dependencies and fix changelog command * docs: Update upgrade instructions for Carousel Kit to reflect new plugin name * docs: Update changelog formatting for consistency and clarity * chore: Update package dependencies to remove path-to-regexp * fix: Add error logging for migration failures due to collation mismatches * fix: Update carousel attributes for improved functionality and consistency across patterns * fix: Update carousel attributes to include scrollProgress and slideCount for improved functionality * fix: Update axios and basic-ftp versions for improved stability and security * [Fix]: Merge conflicts with main v1.1.0 (#114) * Release `v1.0.4` (#85) * refactor: update changelog script to use npx and remove conventional-changelog-cli dependency - Changed the changelog script in package.json to use npx for conventional-changelog-cli. - Removed conventional-changelog-cli from dependencies in package-lock.json. - Cleaned up unnecessary dependencies related to conventional changelog generation. * chore: update CHANGELOG for version 1.0.1 with bug fixes and new features * chore: remove unused dependency scrivo/highlight.php from composer files * feat: add .distignore file to exclude unnecessary files from WordPress.org distribution * feat: add localization support and update package.json for repository and bugs metadata * feat: add readme.txt with plugin details and installation instructions * feat: update license and version in carousel-kit.php; add index.php for plugin structure * feat: add screenshot for plugin preview in WordPress.org * feat: update .distignore to refine exclusions for WordPress.org distribution * fix(styles): remove unnecessary grid-template-columns property * refactor(styles): improve transition effects and clean up unused properties * fix: CSS linting issues * refactor: Remove unrelated changes from current PR * feat: add placeholder logos and update hero carousel pattern * feat: update .distignore to exclude README.md and enhance carousel-kit.php for direct access protection * feat: Updated pot file * feat: update PHP requirement to 8.2, bump stable tag to 1.0.3, and add changelog entries for fixes * chore: format package.json for consistency in spacing * chore: remove upgrade notice section from readme.txt * chore: remove version field from package.json * feat: update PHP requirement to 8.2 and reorder contributors in plugin header * chore: remove version field from package-lock.json * docs: add link to full changelog in readme.txt * chore: remove version field from package-lock.json * fix: update file paths in phpcs and phpstan configuration * feat: implement autoloader for PHP classes and refactor constant definitions * fix: ignore phpcs warning for including pattern file from a fixed directory * fix: update script paths in composer.json and improve constant definitions in tests * fix: update POT-Creation-Date and add missing autoloader error message * chore: update @wordpress/scripts to version 31.5.0 * feat: add new screenshot image and remove outdated PNG file * fix: clean up .distignore by removing unnecessary files and directories * fix: remove outdated screenshots description from readme * fix: update dist target to exclude additional configuration and development files * fix: ensure direct access to Autoloader.php exits gracefully * fix: update package dependencies for minimatch and serialize-javascript * fix: update script paths in composer.json to use local binaries * feat: update README with minimum requirements and add uninstall functionality * fix: update WordPress minimum requirement to 6.6 in README, INSTALLATION, and readme.txt * fix: update contributors list in plugin header and readme.txt * fix: update package-lock.json to remove unused dependency and upgrade svgo and immutable versions * fix: update tested up to version in readme.txt from 6.9.1 to 6.9 * fix: correct release link in INSTALLATION.md and update node_modules exclusion in phpstan.neon.dist * fix: update @wordpress/scripts version to allow minor updates * chore(release): Prepare v1.0.4 release (#76) * chore: update version to 1.0.4 and enhance readme with changelog details * fix: update stable tag in readme.txt to 1.0.4 * fix: update changelog links to point to the correct repository * fix: update contributors list in README and readme.txt * docs: update Composer installation instructions in INSTALLATION.md * docs: fix formatting in Composer installation instructions in INSTALLATION.md * fix: correct release link format in CHANGELOG.md for version 1.0.1 * fix: remove hardcoded plugin version from Makefile and update installation instructions in INSTALLATION.md * docs: update note on WPackagist availability in INSTALLATION.md Co-authored-by: Utsav Patel <75293077+up1512001@users.noreply.github.com> * Fix: Wide Alignment + Block Tree Selection (#70) * fix: resolve slide translation and Block Tree selection issues with wide alignment * feat: add hooks for observing DOM mutations and resize events in carousel * fix: adjust full and wide alignment styles for carousel container * fix: clarify comment on full alignment breaking out of container * fix: refactor slide count change detection logic in useEmblaQueryLoopObserver * fix: improve slide count detection and optimize viewport scroll handling * fix: add BlockEditorSelectors interface for improved type safety in edit component * fix: ensure viewportEl is set only when node is not null to avoid state updates during unmount * fix: add box-sizing property to ensure no horizontal scroll bar in editor * fix: improve resize observer logic to prevent unnecessary reinitializations * fix: refactor viewportEl state management to prevent unnecessary reinitializations * fix: update documentation for Embla observers to clarify initialization logic * fix: enhance resize observer to track column size changes * fix: improve first slide observation logic to prevent unnecessary re-observations * fix: consolidate resize and mutation observers into a unified hook for improved carousel init * fix: update comment to reflect change from manual debounced ResizeObserver in useCarouselObservers * fix: handle empty template case by destroying Embla instance to prevent stale references Co-authored-by: Aviral Mittal aviral.ideabox@gmail.com Co-authored-by: Vishal Kotak vishalkotak200@gmail.com Co-authored-by: Aishwarrya Pande <169024277+AishwarryaPande@users.noreply.github.com> Co-authored-by: Raj Patel <71687258+imrraaj@users.noreply.github.com> Co-authored-by: Sanket Parmar <7807348+sanketio@users.noreply.github.com> * fix: add direct access protection to example pattern files (#84) Co-authored-by: rtCamp <1128395+rtCamp@users.noreply.github.com> Co-authored-by: Gagan Deep Singh <1535505+gagan0123@users.noreply.github.com> Co-authored-by: Sagar Tamang <8264719+mi5t4n@users.noreply.github.com> Co-authored-by: Aviral Mittal <68884287+aviral-mittal@users.noreply.github.com> Co-authored-by: Vishal Kotak <34092861+vishal4669@users.noreply.github.com> * feat: add new asset images and replace old screenshot (#86) --------- Co-authored-by: Utsav Patel <75293077+up1512001@users.noreply.github.com> Co-authored-by: Aishwarrya Pande <169024277+AishwarryaPande@users.noreply.github.com> Co-authored-by: Raj Patel <71687258+imrraaj@users.noreply.github.com> Co-authored-by: Sanket Parmar <7807348+sanketio@users.noreply.github.com> Co-authored-by: rtCamp <1128395+rtCamp@users.noreply.github.com> Co-authored-by: Gagan Deep Singh <1535505+gagan0123@users.noreply.github.com> Co-authored-by: Sagar Tamang <8264719+mi5t4n@users.noreply.github.com> Co-authored-by: Aviral Mittal <68884287+aviral-mittal@users.noreply.github.com> Co-authored-by: Vishal Kotak <34092861+vishal4669@users.noreply.github.com> * build(deps-dev): update package-lock.json with new dependencies * fix: update POT-Creation-Date and add carousel progress translations * fix: remove obsolete POT file for carousel translations * fix: update changelog command and remove obsolete BlockEditorSelectors interface --------- Co-authored-by: Danish Shakeel Co-authored-by: Utsav Patel <75293077+up1512001@users.noreply.github.com> Co-authored-by: Aishwarrya Pande <169024277+AishwarryaPande@users.noreply.github.com> Co-authored-by: Raj Patel <71687258+imrraaj@users.noreply.github.com> Co-authored-by: Sanket Parmar <7807348+sanketio@users.noreply.github.com> Co-authored-by: rtCamp <1128395+rtCamp@users.noreply.github.com> Co-authored-by: Gagan Deep Singh <1535505+gagan0123@users.noreply.github.com> Co-authored-by: Sagar Tamang <8264719+mi5t4n@users.noreply.github.com> Co-authored-by: Aviral Mittal <68884287+aviral-mittal@users.noreply.github.com> Co-authored-by: Vishal Kotak <34092861+vishal4669@users.noreply.github.com> * Release `v1.0.4` (#85) (#116) * refactor: update changelog script to use npx and remove conventional-changelog-cli dependency - Changed the changelog script in package.json to use npx for conventional-changelog-cli. - Removed conventional-changelog-cli from dependencies in package-lock.json. - Cleaned up unnecessary dependencies related to conventional changelog generation. * chore: update CHANGELOG for version 1.0.1 with bug fixes and new features * chore: remove unused dependency scrivo/highlight.php from composer files * feat: add .distignore file to exclude unnecessary files from WordPress.org distribution * feat: add localization support and update package.json for repository and bugs metadata * feat: add readme.txt with plugin details and installation instructions * feat: update license and version in carousel-kit.php; add index.php for plugin structure * feat: add screenshot for plugin preview in WordPress.org * feat: update .distignore to refine exclusions for WordPress.org distribution * fix(styles): remove unnecessary grid-template-columns property * refactor(styles): improve transition effects and clean up unused properties * fix: CSS linting issues * refactor: Remove unrelated changes from current PR * feat: add placeholder logos and update hero carousel pattern * feat: update .distignore to exclude README.md and enhance carousel-kit.php for direct access protection * feat: Updated pot file * feat: update PHP requirement to 8.2, bump stable tag to 1.0.3, and add changelog entries for fixes * chore: format package.json for consistency in spacing * chore: remove upgrade notice section from readme.txt * chore: remove version field from package.json * feat: update PHP requirement to 8.2 and reorder contributors in plugin header * chore: remove version field from package-lock.json * docs: add link to full changelog in readme.txt * chore: remove version field from package-lock.json * fix: update file paths in phpcs and phpstan configuration * feat: implement autoloader for PHP classes and refactor constant definitions * fix: ignore phpcs warning for including pattern file from a fixed directory * fix: update script paths in composer.json and improve constant definitions in tests * fix: update POT-Creation-Date and add missing autoloader error message * chore: update @wordpress/scripts to version 31.5.0 * feat: add new screenshot image and remove outdated PNG file * fix: clean up .distignore by removing unnecessary files and directories * fix: remove outdated screenshots description from readme * fix: update dist target to exclude additional configuration and development files * fix: ensure direct access to Autoloader.php exits gracefully * fix: update package dependencies for minimatch and serialize-javascript * fix: update script paths in composer.json to use local binaries * feat: update README with minimum requirements and add uninstall functionality * fix: update WordPress minimum requirement to 6.6 in README, INSTALLATION, and readme.txt * fix: update contributors list in plugin header and readme.txt * fix: update package-lock.json to remove unused dependency and upgrade svgo and immutable versions * fix: update tested up to version in readme.txt from 6.9.1 to 6.9 * fix: correct release link in INSTALLATION.md and update node_modules exclusion in phpstan.neon.dist * fix: update @wordpress/scripts version to allow minor updates * chore(release): Prepare v1.0.4 release (#76) * chore: update version to 1.0.4 and enhance readme with changelog details * fix: update stable tag in readme.txt to 1.0.4 * fix: update changelog links to point to the correct repository * fix: update contributors list in README and readme.txt * docs: update Composer installation instructions in INSTALLATION.md * docs: fix formatting in Composer installation instructions in INSTALLATION.md * fix: correct release link format in CHANGELOG.md for version 1.0.1 * fix: remove hardcoded plugin version from Makefile and update installation instructions in INSTALLATION.md * docs: update note on WPackagist availability in INSTALLATION.md * Fix: Wide Alignment + Block Tree Selection (#70) * fix: resolve slide translation and Block Tree selection issues with wide alignment * feat: add hooks for observing DOM mutations and resize events in carousel * fix: adjust full and wide alignment styles for carousel container * fix: clarify comment on full alignment breaking out of container * fix: refactor slide count change detection logic in useEmblaQueryLoopObserver * fix: improve slide count detection and optimize viewport scroll handling * fix: add BlockEditorSelectors interface for improved type safety in edit component * fix: ensure viewportEl is set only when node is not null to avoid state updates during unmount * fix: add box-sizing property to ensure no horizontal scroll bar in editor * fix: improve resize observer logic to prevent unnecessary reinitializations * fix: refactor viewportEl state management to prevent unnecessary reinitializations * fix: update documentation for Embla observers to clarify initialization logic * fix: enhance resize observer to track column size changes * fix: improve first slide observation logic to prevent unnecessary re-observations * fix: consolidate resize and mutation observers into a unified hook for improved carousel init * fix: update comment to reflect change from manual debounced ResizeObserver in useCarouselObservers * fix: handle empty template case by destroying Embla instance to prevent stale references Co-authored-by: Aviral Mittal aviral.ideabox@gmail.com Co-authored-by: Vishal Kotak vishalkotak200@gmail.com * fix: add direct access protection to example pattern files (#84) * feat: add new asset images and replace old screenshot (#86) --------- Co-authored-by: Danish Shakeel Co-authored-by: Utsav Patel <75293077+up1512001@users.noreply.github.com> Co-authored-by: Aishwarrya Pande <169024277+AishwarryaPande@users.noreply.github.com> Co-authored-by: Raj Patel <71687258+imrraaj@users.noreply.github.com> Co-authored-by: Sanket Parmar <7807348+sanketio@users.noreply.github.com> Co-authored-by: rtCamp <1128395+rtCamp@users.noreply.github.com> Co-authored-by: Gagan Deep Singh <1535505+gagan0123@users.noreply.github.com> Co-authored-by: Sagar Tamang <8264719+mi5t4n@users.noreply.github.com> Co-authored-by: Aviral Mittal <68884287+aviral-mittal@users.noreply.github.com> Co-authored-by: Vishal Kotak <34092861+vishal4669@users.noreply.github.com> * chore: update version to 2.0.0 and prepare for release (#117) * Sync `develop` with `main` to resolve conflicts (#119) * Release `v1.0.4` (#85) * refactor: update changelog script to use npx and remove conventional-changelog-cli dependency - Changed the changelog script in package.json to use npx for conventional-changelog-cli. - Removed conventional-changelog-cli from dependencies in package-lock.json. - Cleaned up unnecessary dependencies related to conventional changelog generation. * chore: update CHANGELOG for version 1.0.1 with bug fixes and new features * chore: remove unused dependency scrivo/highlight.php from composer files * feat: add .distignore file to exclude unnecessary files from WordPress.org distribution * feat: add localization support and update package.json for repository and bugs metadata * feat: add readme.txt with plugin details and installation instructions * feat: update license and version in carousel-kit.php; add index.php for plugin structure * feat: add screenshot for plugin preview in WordPress.org * feat: update .distignore to refine exclusions for WordPress.org distribution * fix(styles): remove unnecessary grid-template-columns property * refactor(styles): improve transition effects and clean up unused properties * fix: CSS linting issues * refactor: Remove unrelated changes from current PR * feat: add placeholder logos and update hero carousel pattern * feat: update .distignore to exclude README.md and enhance carousel-kit.php for direct access protection * feat: Updated pot file * feat: update PHP requirement to 8.2, bump stable tag to 1.0.3, and add changelog entries for fixes * chore: format package.json for consistency in spacing * chore: remove upgrade notice section from readme.txt * chore: remove version field from package.json * feat: update PHP requirement to 8.2 and reorder contributors in plugin header * chore: remove version field from package-lock.json * docs: add link to full changelog in readme.txt * chore: remove version field from package-lock.json * fix: update file paths in phpcs and phpstan configuration * feat: implement autoloader for PHP classes and refactor constant definitions * fix: ignore phpcs warning for including pattern file from a fixed directory * fix: update script paths in composer.json and improve constant definitions in tests * fix: update POT-Creation-Date and add missing autoloader error message * chore: update @wordpress/scripts to version 31.5.0 * feat: add new screenshot image and remove outdated PNG file * fix: clean up .distignore by removing unnecessary files and directories * fix: remove outdated screenshots description from readme * fix: update dist target to exclude additional configuration and development files * fix: ensure direct access to Autoloader.php exits gracefully * fix: update package dependencies for minimatch and serialize-javascript * fix: update script paths in composer.json to use local binaries * feat: update README with minimum requirements and add uninstall functionality * fix: update WordPress minimum requirement to 6.6 in README, INSTALLATION, and readme.txt * fix: update contributors list in plugin header and readme.txt * fix: update package-lock.json to remove unused dependency and upgrade svgo and immutable versions * fix: update tested up to version in readme.txt from 6.9.1 to 6.9 * fix: correct release link in INSTALLATION.md and update node_modules exclusion in phpstan.neon.dist * fix: update @wordpress/scripts version to allow minor updates * chore(release): Prepare v1.0.4 release (#76) * chore: update version to 1.0.4 and enhance readme with changelog details * fix: update stable tag in readme.txt to 1.0.4 * fix: update changelog links to point to the correct repository * fix: update contributors list in README and readme.txt * docs: update Composer installation instructions in INSTALLATION.md * docs: fix formatting in Composer installation instructions in INSTALLATION.md * fix: correct release link format in CHANGELOG.md for version 1.0.1 * fix: remove hardcoded plugin version from Makefile and update installation instructions in INSTALLATION.md * docs: update note on WPackagist availability in INSTALLATION.md Co-authored-by: Utsav Patel <75293077+up1512001@users.noreply.github.com> * Fix: Wide Alignment + Block Tree Selection (#70) * fix: resolve slide translation and Block Tree selection issues with wide alignment * feat: add hooks for observing DOM mutations and resize events in carousel * fix: adjust full and wide alignment styles for carousel container * fix: clarify comment on full alignment breaking out of container * fix: refactor slide count change detection logic in useEmblaQueryLoopObserver * fix: improve slide count detection and optimize viewport scroll handling * fix: add BlockEditorSelectors interface for improved type safety in edit component * fix: ensure viewportEl is set only when node is not null to avoid state updates during unmount * fix: add box-sizing property to ensure no horizontal scroll bar in editor * fix: improve resize observer logic to prevent unnecessary reinitializations * fix: refactor viewportEl state management to prevent unnecessary reinitializations * fix: update documentation for Embla observers to clarify initialization logic * fix: enhance resize observer to track column size changes * fix: improve first slide observation logic to prevent unnecessary re-observations * fix: consolidate resize and mutation observers into a unified hook for improved carousel init * fix: update comment to reflect change from manual debounced ResizeObserver in useCarouselObservers * fix: handle empty template case by destroying Embla instance to prevent stale references Co-authored-by: Aviral Mittal aviral.ideabox@gmail.com Co-authored-by: Vishal Kotak vishalkotak200@gmail.com Co-authored-by: Aishwarrya Pande <169024277+AishwarryaPande@users.noreply.github.com> Co-authored-by: Raj Patel <71687258+imrraaj@users.noreply.github.com> Co-authored-by: Sanket Parmar <7807348+sanketio@users.noreply.github.com> * fix: add direct access protection to example pattern files (#84) Co-authored-by: rtCamp <1128395+rtCamp@users.noreply.github.com> Co-authored-by: Gagan Deep Singh <1535505+gagan0123@users.noreply.github.com> Co-authored-by: Sagar Tamang <8264719+mi5t4n@users.noreply.github.com> Co-authored-by: Aviral Mittal <68884287+aviral-mittal@users.noreply.github.com> Co-authored-by: Vishal Kotak <34092861+vishal4669@users.noreply.github.com> * feat: add new asset images and replace old screenshot (#86) --------- Co-authored-by: Utsav Patel <75293077+up1512001@users.noreply.github.com> Co-authored-by: Aishwarrya Pande <169024277+AishwarryaPande@users.noreply.github.com> Co-authored-by: Raj Patel <71687258+imrraaj@users.noreply.github.com> Co-authored-by: Sanket Parmar <7807348+sanketio@users.noreply.github.com> Co-authored-by: rtCamp <1128395+rtCamp@users.noreply.github.com> Co-authored-by: Gagan Deep Singh <1535505+gagan0123@users.noreply.github.com> Co-authored-by: Sagar Tamang <8264719+mi5t4n@users.noreply.github.com> Co-authored-by: Aviral Mittal <68884287+aviral-mittal@users.noreply.github.com> Co-authored-by: Vishal Kotak <34092861+vishal4669@users.noreply.github.com> * chore: update POT creation date and package dependencies --------- Co-authored-by: Danish Shakeel Co-authored-by: Utsav Patel <75293077+up1512001@users.noreply.github.com> Co-authored-by: Aishwarrya Pande <169024277+AishwarryaPande@users.noreply.github.com> Co-authored-by: Raj Patel <71687258+imrraaj@users.noreply.github.com> Co-authored-by: Sanket Parmar <7807348+sanketio@users.noreply.github.com> Co-authored-by: rtCamp <1128395+rtCamp@users.noreply.github.com> Co-authored-by: Gagan Deep Singh <1535505+gagan0123@users.noreply.github.com> Co-authored-by: Sagar Tamang <8264719+mi5t4n@users.noreply.github.com> Co-authored-by: Aviral Mittal <68884287+aviral-mittal@users.noreply.github.com> Co-authored-by: Vishal Kotak <34092861+vishal4669@users.noreply.github.com> * build(deps-dev): bump follow-redirects from 1.15.11 to 1.16.0 (#120) Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.15.11 to 1.16.0. - [Release notes](https://github.com/follow-redirects/follow-redirects/releases) - [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.15.11...v1.16.0) --- updated-dependencies: - dependency-name: follow-redirects dependency-version: 1.16.0 dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --------- Signed-off-by: dependabot[bot] Co-authored-by: Utsav Patel <75293077+up1512001@users.noreply.github.com> Co-authored-by: Aishwarrya Pande <169024277+AishwarryaPande@users.noreply.github.com> Co-authored-by: Raj Patel <71687258+imrraaj@users.noreply.github.com> Co-authored-by: Sanket Parmar <7807348+sanketio@users.noreply.github.com> Co-authored-by: rtCamp <1128395+rtCamp@users.noreply.github.com> Co-authored-by: Gagan Deep Singh <1535505+gagan0123@users.noreply.github.com> Co-authored-by: Sagar Tamang <8264719+mi5t4n@users.noreply.github.com> Co-authored-by: Aviral Mittal <68884287+aviral-mittal@users.noreply.github.com> Co-authored-by: Vishal Kotak <34092861+vishal4669@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Deepak Lalwani Co-authored-by: Sagar Tamang Co-authored-by: Brandon Hubbard Co-authored-by: Yogesh Bhutkar Co-authored-by: Sukhendu Sekhar Guria Co-authored-by: Danish Shakeel Co-authored-by: Danish Shakeel --- .github/ISSUE_TEMPLATE/bug_report.yml | 75 + .github/ISSUE_TEMPLATE/config.yml | 6 + .github/ISSUE_TEMPLATE/enhancement.yml | 33 + .github/pull_request_template.md | 53 + .github/workflows/release.yml | 2 +- .gitignore | 2 +- .wp-env.json | 6 + CHANGELOG.md | 29 +- DEVELOPMENT.md | 50 +- Makefile | 4 +- README.md | 16 +- blueprint.json | 6 +- carousel-kit.php | 49 - composer.json | 7 +- docs/API.md | 12 +- docs/CONTRIBUTING.md | 4 +- docs/INSTALLATION.md | 6 +- docs/THEMING.md | 46 +- docs/USAGE.md | 20 +- .../{carousel-kit.xml => rt-carousel.xml} | 592 +- examples/patterns/hero-carousel.php | 50 +- examples/patterns/logo-showcase.php | 58 +- examples/patterns/query-loop.php | 30 +- examples/patterns/testimonial-carousel.php | 50 +- inc/Autoloader.php | 10 +- inc/Migration.php | 171 + inc/Plugin.php | 69 +- inc/Traits/Singleton.php | 8 +- index.php | 2 +- jest.config.js | 4 +- .../{carousel-kit.pot => rt-carousel.pot} | 166 +- package-lock.json | 5339 +++-------------- package.json | 14 +- phpcs.xml.dist | 6 +- phpstan.neon.dist | 2 +- phpunit.xml.dist | 2 +- readme.txt | 34 +- rt-carousel.php | 54 + src/blocks/carousel/__tests__/types.test.ts | 32 + src/blocks/carousel/__tests__/view.test.ts | 125 +- src/blocks/carousel/block.json | 8 +- src/blocks/carousel/controls/block.json | 8 +- .../carousel/controls/components/icons.tsx | 4 +- src/blocks/carousel/controls/edit.tsx | 17 +- src/blocks/carousel/controls/save.tsx | 10 +- src/blocks/carousel/controls/style.scss | 34 +- src/blocks/carousel/dots/block.json | 8 +- src/blocks/carousel/dots/edit.tsx | 10 +- src/blocks/carousel/dots/save.tsx | 4 +- src/blocks/carousel/dots/style.scss | 22 +- src/blocks/carousel/edit.tsx | 162 +- src/blocks/carousel/editor-context.ts | 12 +- src/blocks/carousel/editor.scss | 14 +- src/blocks/carousel/index.ts | 8 +- src/blocks/carousel/progress/block.json | 20 + src/blocks/carousel/progress/edit.tsx | 37 + src/blocks/carousel/progress/index.ts | 11 + src/blocks/carousel/progress/save.tsx | 23 + src/blocks/carousel/progress/style.scss | 18 + src/blocks/carousel/save.tsx | 12 +- src/blocks/carousel/slide/block.json | 16 +- src/blocks/carousel/slide/edit.tsx | 34 +- src/blocks/carousel/slide/save.tsx | 10 +- src/blocks/carousel/styles/_core.scss | 77 +- src/blocks/carousel/styles/_variants.scss | 18 +- src/blocks/carousel/types.ts | 9 +- src/blocks/carousel/view.ts | 50 +- src/blocks/carousel/viewport/block.json | 8 +- src/blocks/carousel/viewport/edit.tsx | 14 +- src/types.d.ts | 2 +- tests/js/setup.ts | 2 +- tests/php/Unit/PluginTest.php | 42 +- tests/php/Unit/Traits/SingletonTest.php | 14 +- tests/php/Unit/UnitTestCase.php | 6 +- tests/php/bootstrap.php | 14 +- tests/phpstan/constants.php | 18 +- uninstall.php | 7 +- 77 files changed, 2643 insertions(+), 5384 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/enhancement.yml create mode 100644 .github/pull_request_template.md create mode 100644 .wp-env.json delete mode 100644 carousel-kit.php rename examples/data/{carousel-kit.xml => rt-carousel.xml} (53%) create mode 100644 inc/Migration.php rename languages/{carousel-kit.pot => rt-carousel.pot} (59%) create mode 100644 rt-carousel.php create mode 100644 src/blocks/carousel/progress/block.json create mode 100644 src/blocks/carousel/progress/edit.tsx create mode 100644 src/blocks/carousel/progress/index.ts create mode 100644 src/blocks/carousel/progress/save.tsx create mode 100644 src/blocks/carousel/progress/style.scss diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000..1b8abd5 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,75 @@ +name: Bug Report +description: File a bug report. +title: "[Bug]: " +labels: ["bug"] +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to fill out this bug report! + - type: textarea + id: describe-the-bug + attributes: + label: Describe the bug + description: A clear and concise description of the bug. + placeholder: Tell us what went wrong. + validations: + required: true + - type: textarea + id: expected-behavior + attributes: + label: Expected behavior + description: What did you expect to happen? + placeholder: Describe the expected result. + validations: + required: true + - type: textarea + id: actual-behavior + attributes: + label: Actual behavior + description: What actually happened? + placeholder: Describe the actual result. + validations: + required: true + - type: textarea + id: steps + attributes: + label: Steps to reproduce + description: How can we reproduce this behavior? + placeholder: | + 1. Go to '...' + 2. Click on '...' + 3. See error + validations: + required: true + - type: textarea + id: environment-information + attributes: + label: Environment information + description: Share your operating environment details. + placeholder: | + OS: + Browser: + Plugin version: + validations: + required: false + - type: textarea + id: wordpress-environment + attributes: + label: WordPress Environment + description: Share your WordPress environment details. + placeholder: | + WordPress version: + PHP version: + Active theme: + Active plugins: + validations: + required: false + - type: checkboxes + id: terms + attributes: + label: Contribution Guidelines + description: By submitting this issue, you agree to follow our [contribution guidelines](https://github.com/rtCamp/rt-carousel/blob/main/docs/CONTRIBUTING.md). + options: + - label: I have read the contribution guidelines + required: true diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..c2218ca --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,6 @@ +blank_issues_enabled: false + +contact_links: + - name: Report a security vulnerability + url: https://github.com/rtCamp/rt-carousel/security/policy + about: Please use GitHub Security Advisories to privately report vulnerabilities diff --git a/.github/ISSUE_TEMPLATE/enhancement.yml b/.github/ISSUE_TEMPLATE/enhancement.yml new file mode 100644 index 0000000..10d6329 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/enhancement.yml @@ -0,0 +1,33 @@ +name: Enhancement +description: Suggest an idea for this project. +title: "[Enhancement]: " +labels: ["enhancement"] +body: + - type: textarea + id: feature-description + attributes: + label: Feature description + description: Describe the feature or improvement you'd like. + validations: + required: true + - type: textarea + id: problem + attributes: + label: Problem it solves + description: Explain the problem this feature would solve. + validations: + required: true + - type: textarea + id: alternatives + attributes: + label: Describe alternatives you've considered + description: Describe any alternative solutions or approaches you've considered. + validations: + required: false + - type: textarea + id: context + attributes: + label: Additional context + description: Add any context, examples, or screenshots. + validations: + required: false diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000..9b05fc2 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,53 @@ +## Summary + +Describe the change and why it is needed. + +## Type of change + +- [ ] Bug fix +- [ ] New feature +- [ ] Enhancement/refactor +- [ ] Documentation update +- [ ] Test update +- [ ] Build/CI/tooling + +## Related issue(s) + + + +Closes # +Relates to # (if applicable) + +## What changed + +- +- +- + +## Breaking changes + +Does this introduce a breaking change? If yes, describe the impact and migration path below. + +- [ ] Yes — migration path: +- [ ] No + +## Testing + +Describe how this was tested. + +- [ ] Unit tests +- [ ] Manual testing +- [ ] Cross-browser testing (if UI changes) + +Test details: + +## Screenshots / recordings + +If applicable, add screenshots or short recordings. + +## Checklist + +- [ ] I have self-reviewed this PR +- [ ] I have added/updated tests where needed +- [ ] I have updated docs where needed +- [ ] I have checked for breaking changes diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 9179545..36a5b17 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -40,7 +40,7 @@ jobs: tag_name: v${{ steps.get_version.outputs.VERSION }} name: v${{ steps.get_version.outputs.VERSION }} generate_release_notes: true - files: carousel-kit.zip + files: rt-carousel.zip env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore index 5000c74..d546272 100644 --- a/.gitignore +++ b/.gitignore @@ -36,4 +36,4 @@ phpstan.neon # Build build/ tsconfig.tsbuildinfo -carousel-kit.zip +rt-carousel.zip diff --git a/.wp-env.json b/.wp-env.json new file mode 100644 index 0000000..c13da34 --- /dev/null +++ b/.wp-env.json @@ -0,0 +1,6 @@ +{ + "$schema": "https://schemas.wp.org/trunk/wp-env.json", + "plugins": [ "." ], + "testsEnvironment": false, + "phpmyadminPort": 9000 +} \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index ca75fc2..8ffc41a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,28 @@ +# Changelog + +## [2.0.0](https://github.com/rtCamp/rt-carousel/compare/v1.0.4...v2.0.0) (2026-04-13) + + +### Bug Fixes + +* add initialized state to CarouselContext to track carousel initialization ([#92](https://github.com/rtCamp/rt-carousel/issues/92)) ([71de050](https://github.com/rtCamp/rt-carousel/commit/71de050aae8ff55f82b61a02440f8ccd42b63d76)) +* exclude composer.json and composer.lock from distribution package ([#99](https://github.com/rtCamp/rt-carousel/issues/99)) ([a1308c6](https://github.com/rtCamp/rt-carousel/commit/a1308c6581faa68e7b68a4c2e29c78110a1670f9)) +* restore vertical scroll for Query Loop carousel ([#104](https://github.com/rtCamp/rt-carousel/issues/104)) ([1d16ee6](https://github.com/rtCamp/rt-carousel/commit/1d16ee6f6ac068524998f33c20fdab39638ead3f)) +* **controls:** block toolbar persists when selected block moves out of view in carousel ([#106](https://github.com/rtCamp/rt-carousel/issues/106)) ([dec79c8](https://github.com/rtCamp/rt-carousel/commit/dec79c8)) + + +### Features + +* add support for the carousel progress bar ([#88](https://github.com/rtCamp/rt-carousel/issues/88)) ([edc8699](https://github.com/rtCamp/rt-carousel/commit/edc8699)) +* support vertical alignment on carousel slide ([#87](https://github.com/rtCamp/rt-carousel/issues/87)) ([f73890e](https://github.com/rtCamp/rt-carousel/commit/f73890e)) +* add wp-env configuration for WP development setup ([#109](https://github.com/rtCamp/rt-carousel/issues/109)) ([dcccaf7](https://github.com/rtCamp/rt-carousel/commit/dcccaf79747cf84811a7907e68df01d2aaeb7030)) + + +### Refactors + +* rename plugin from "Carousel Kit" to "rtCarousel" with automatic block content migration ([#101](https://github.com/rtCamp/rt-carousel/pull/101)) ([9788ed7](https://github.com/rtCamp/rt-carousel/commit/9788ed7)) + + ## [1.0.4](https://github.com/rtCamp/carousel-kit/compare/v1.0.3...v1.0.4) (2026-03-09) ### Bug Fixes @@ -60,14 +85,14 @@ * slide appender and setup ([a42331d](https://github.com/rtCamp/carousel-kit/commit/a42331d10b225379408ddf8c0649e83484496a1e)) -# [1.0.1](https://github.com/rtCamp/carousel-kit/compare/v1.0.0...v1.0.1) (2026-02-16) +## [1.0.1](https://github.com/rtCamp/carousel-kit/compare/v1.0.0...v1.0.1) (2026-02-16) ### Bug Fixes * **carousel:** resolve spacing issues in loop mode where gaps were missing between last and first slide * **carousel:** allow infinite loop in editor viewport to match frontend behavior -# 1.0.0 (2026-02-03) +## 1.0.0 (2026-02-03) ### Bug Fixes diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md index 1188ff2..7ed8f37 100644 --- a/DEVELOPMENT.md +++ b/DEVELOPMENT.md @@ -12,6 +12,52 @@ make dev npm start ``` +## Local WordPress Environment + +To test this plugin, you’ll need a working WordPress installation. If you already have a local WordPress environment set up, you can use this build like any standard plugin—simply place the plugin directory inside your wp-content/plugins/ folder and activate it from the admin dashboard. + +If you don’t already have a local environment, you can quickly set one up using Docker and wp-env by following the steps below. + +### Using Docker and wp-env + +Install the wp-env package globally: + +```bash +npm install -g @wordpress/env +``` + +Ensure Docker is running, then start wp-env from within the plugin directory: + +```bash +wp-env start +``` + +This command spins up a Docker-based WordPress environment using the latest image and mounts your local plugin code into it as a volume. As a result, any changes you make locally are instantly reflected in the running WordPress instance, and are persisted. + +If the setup completes successfully, you should see output similar to the following in your terminal: + +```bash +WordPress development site started at http://localhost:8888 +MySQL is listening on port 61440 +phpMyAdmin started at http://localhost:9000 + + ✔ Done! (in 23s 90ms) +``` + +To stop the running environment: + +```bash +wp-env stop +``` + +#### Accessing the Environment + +The WordPress site should now be accessible at + +You can access the Dashboard at: using Username: admin, Password: password. You'll notice that the plugin is installed and activated. This is your local build. Any changes you make to the plugin code will be reflected here. + +You can read more about wp-env and its configuration in the [official documentation](https://github.com/WordPress/gutenberg/blob/trunk/packages/env/README.md). + ## Available Commands ### Build & Watch @@ -48,7 +94,7 @@ npm start | :--- | :--- | | `npm run changelog` | Generates/Updates `CHANGELOG.md` based on commits. | | `npm run version` | Internal hook used by `npm version` to update changelog and stage it. | -| `npm version [major|minor|patch]` | Bumps version in `package.json`, updates `CHANGELOG.md`, and creates a git tag. | +| `npm version [major\|minor\|patch]` | Bumps version in `package.json`, updates `CHANGELOG.md`, and creates a git tag. | ## Local GitHub Actions (act) @@ -69,7 +115,7 @@ npm run test:actions ## Directory Structure - `src/` - Source code for blocks (React/TypeScript/SCSS). -- `inc/` - PHP classes and traits (PSR-4 `Carousel_Kit`). +- `inc/` - PHP classes and traits (PSR-4 `Rt_Carousel`). - `build/` - Compiled assets (generated by `npm run build`). - `docs/` - Documentation files. - `examples/` - Block patterns and examples. diff --git a/Makefile b/Makefile index 3a9efba..bd1308e 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ # Configuration -PLUGIN_SLUG := carousel-kit +PLUGIN_SLUG := rt-carousel BUILD_DIR := build-dist ZIP_NAME := $(PLUGIN_SLUG).zip @@ -61,8 +61,6 @@ dist: --exclude='package-lock.json' \ --exclude='blueprint.json' \ --exclude='tsconfig.json' \ - --exclude='composer.json' \ - --exclude='composer.lock' \ --exclude='Makefile' \ --exclude='CHANGELOG.md' \ --exclude='DEVELOPMENT.md' \ diff --git a/README.md b/README.md index 3e54097..0c9eaa5 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -# Carousel Kit +# rtCarousel -![Build Status](https://github.com/rtCamp/carousel-kit/actions/workflows/release.yml/badge.svg?branch=main) -![Latest Release](https://img.shields.io/github/v/release/rtCamp/carousel-kit) +![Build Status](https://github.com/rtCamp/rt-carousel/actions/workflows/release.yml/badge.svg?branch=main) +![Latest Release](https://img.shields.io/github/v/release/rtCamp/rt-carousel) **A modular, high-performance carousel block for WordPress, powered by the Interactivity API and Embla Carousel.** @@ -37,7 +37,7 @@ Easily create dynamic, accessible, and customizable carousels for any content ty ## Browser Support -Carousel Kit supports all modern browsers: +rtCarousel supports all modern browsers: | Browser | Minimum Version | | ------- | --------------- | @@ -62,7 +62,7 @@ The plugin provides a suite of blocks that work together: ### Does it work with Full Site Editing (FSE)? -Yes! Carousel Kit is fully compatible with Full Site Editing. You can use the carousel block in templates, template parts, and anywhere blocks are supported. +Yes! rtCarousel is fully compatible with Full Site Editing. You can use the carousel block in templates, template parts, and anywhere blocks are supported. ### Can I nest other blocks inside slides? @@ -82,7 +82,7 @@ Yes. Each carousel instance maintains its own independent state. ### What data is removed on uninstall? -On uninstall, Carousel Kit removes its cached pattern transient (`carousel_kit_patterns_cache`). It does not remove your posts or block content. +On uninstall, rtCarousel removes its cached pattern transient (`rt_carousel_patterns_cache`). It does not remove your posts or block content. ## Changelog @@ -90,11 +90,11 @@ See [CHANGELOG.md](CHANGELOG.md) for full release history. ## Live Demo -[**🚀 Try the Interactive Demo in WordPress Playground**](https://playground.wordpress.net/?blueprint-url=https://raw.githubusercontent.com/rtCamp/carousel-kit/main/blueprint.json) +[**🚀 Try the Interactive Demo in WordPress Playground**](https://playground.wordpress.net/?blueprint-url=https://raw.githubusercontent.com/rtCamp/rt-carousel/main/blueprint.json) ## Feature Request -Have a feature request? [Open an issue](https://github.com/rtCamp/carousel-kit/issues) on GitHub. +Have a feature request? [Open an issue](https://github.com/rtCamp/rt-carousel/issues) on GitHub. ## Contributors diff --git a/blueprint.json b/blueprint.json index 858566e..a67ecc9 100644 --- a/blueprint.json +++ b/blueprint.json @@ -10,7 +10,7 @@ "step": "installPlugin", "pluginData": { "resource": "url", - "url": "https://github.com/rtCamp/carousel-kit/releases/latest/download/carousel-kit.zip" + "url": "https://github.com/rtCamp/rt-carousel/releases/latest/download/rt-carousel.zip" } }, { @@ -21,12 +21,12 @@ "step": "importWxr", "file": { "resource": "url", - "url": "https://raw.githubusercontent.com/rtCamp/carousel-kit/main/examples/data/carousel-kit.xml" + "url": "https://raw.githubusercontent.com/rtCamp/rt-carousel/main/examples/data/rt-carousel.xml" } }, { "step": "runPHP", - "code": "ID); } global $wpdb; $wpdb->query(\"UPDATE $wpdb->posts SET post_content = REPLACE(post_content, 'http://carousel-demo.local', '\" . site_url() . \"')\"); $nav_id = $wpdb->get_var(\"SELECT ID FROM $wpdb->posts WHERE post_type = 'wp_navigation' AND (post_name = 'navigation' OR post_title = 'Navigation') LIMIT 1\"); if ($nav_id && $nav_id != 4) { $old_ref = 'ref' . chr(34) . ':4'; $new_ref = 'ref' . chr(34) . ':' . $nav_id; $wpdb->query($wpdb->prepare(\"UPDATE $wpdb->posts SET post_content = REPLACE(post_content, %s, %s)\", $old_ref, $new_ref)); } if (function_exists('wp_cache_flush')) wp_cache_flush(); ?>" + "code": "ID); } global $wpdb; $wpdb->query(\"UPDATE $wpdb->posts SET post_content = REPLACE(post_content, 'http://carousel-demo.local', '\" . site_url() . \"')\"); $nav_id = $wpdb->get_var(\"SELECT ID FROM $wpdb->posts WHERE post_type = 'wp_navigation' AND (post_name = 'navigation' OR post_title = 'Navigation') LIMIT 1\"); if ($nav_id && $nav_id != 4) { $old_ref = 'ref' . chr(34) . ':4'; $new_ref = 'ref' . chr(34) . ':' . $nav_id; $wpdb->query($wpdb->prepare(\"UPDATE $wpdb->posts SET post_content = REPLACE(post_content, %s, %s)\", $old_ref, $new_ref)); } if (function_exists('wp_cache_flush')) wp_cache_flush(); ?>" } ] } \ No newline at end of file diff --git a/carousel-kit.php b/carousel-kit.php deleted file mode 100644 index 48a9498..0000000 --- a/carousel-kit.php +++ /dev/null @@ -1,49 +0,0 @@ - @@ -78,8 +78,8 @@ Highlight slide content when active using the `callbacks.isSlideActive` helper. ### Editor Interactivity: "Find & Bind" Gutenberg's `InnerBlocks` can isolate React Contexts, causing state sync issues between parent and deeply nested children in the editor. To guarantee reliable interactivity: -1. **Attach**: The Viewport component attaches the vanilla Embla instance directly to its DOM node using a Symbol key: `element[Symbol.for("carousel-kit.carousel")] = embla`. -2. **Find**: Child components (Controls/Dots) attempt to find the API via Context first. If missing, they traverse the DOM up to the common wrapper (`.carousel-kit`) and then search for the sibling `.embla` viewport. +1. **Attach**: The Viewport component attaches the vanilla Embla instance directly to its DOM node using a Symbol key: `element[Symbol.for("rt-carousel.carousel")] = embla`. +2. **Find**: Child components (Controls/Dots) attempt to find the API via Context first. If missing, they traverse the DOM up to the common wrapper (`.rt-carousel`) and then search for the sibling `.embla` viewport. 3. **Bind**: A retry mechanism (`setTimeout` + `useEffect`) ensures the Viewport has finished initializing before binding listeners. ### Dots Implementation diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md index e40a8c8..02f0b17 100644 --- a/docs/CONTRIBUTING.md +++ b/docs/CONTRIBUTING.md @@ -1,4 +1,4 @@ -# Contributing to Carousel Kit +# Contributing to rtCarousel Thank you for your interest in contributing! We welcome all contributions, from bug reports to feature requests and code changes. @@ -38,4 +38,4 @@ To create a production-ready ZIP file: make zip ``` -This will create `carousel-kit.zip` in the project root, optimized for distribution (no dev dependencies). +This will create `rt-carousel.zip` in the project root, optimized for distribution (no dev dependencies). diff --git a/docs/INSTALLATION.md b/docs/INSTALLATION.md index e18f765..37b19e0 100644 --- a/docs/INSTALLATION.md +++ b/docs/INSTALLATION.md @@ -5,7 +5,7 @@ - PHP 8.2 or higher ## Manual Installation -1. Download the `carousel-kit.zip` file from the [Releases](https://github.com/rtCamp/carousel-kit/releases) page. +1. Download the `rt-carousel.zip` file from the [Releases](https://github.com/rtCamp/rt-carousel/releases) page. 2. Log in to your WordPress admin dashboard. 3. Go to **Plugins > Add New Plugin**. 4. Click **Upload Plugin**. @@ -21,7 +21,7 @@ "repositories": [ { "type": "vcs", - "url": "https://github.com/rtCamp/carousel-kit" + "url": "https://github.com/rtCamp/rt-carousel" } ] ``` @@ -29,5 +29,5 @@ 2. **Run the installation command (stable release):** ```bash - composer require rtcamp/carousel-kit:^1.0 + composer require rtcamp/rt-carousel:^2.0 ``` diff --git a/docs/THEMING.md b/docs/THEMING.md index c88498d..791e02a 100644 --- a/docs/THEMING.md +++ b/docs/THEMING.md @@ -7,32 +7,32 @@ Easily theme the carousel using CSS variables or block supports. Navigation bloc ### Core Layout | Variable | Description | | :--- | :--- | -| `--carousel-kit-gap` | Controlled by the `slideGap` attribute. Applied as margin to slides. | -| `--carousel-kit-slide-width` | Controls the width of each slide. Defaults to 100% or set by column variants. | +| `--rt-carousel-gap` | Controlled by the `slideGap` attribute. Applied as margin to slides. | +| `--rt-carousel-slide-width` | Controls the width of each slide. Defaults to 100% or set by column variants. | ### Controls (Buttons) | Variable | Default | Description | | ----------------------------------------- | ------------------------------------- | --------------------------- | -| `--carousel-kit-control-bg` | `unset` | Background color of buttons | -| `--carousel-kit-control-color` | `inherit` | Icon color | -| `--carousel-kit-control-size` | `2.5rem` | Width/Height of buttons | -| `--carousel-kit-control-padding` | `0.5rem` | Padding inside buttons | -| `--carousel-kit-control-border` | `1.25px solid rgba(28, 28, 28, 0.3)` | Border style | -| `--carousel-kit-control-radius` | `1rem` | Border radius | -| `--carousel-kit-control-bg-hover` | `rgba(248, 248, 248, 1)` | Background on hover | -| `--carousel-kit-control-border-hover` | `1.25px solid rgba(28, 28, 28, 0.75)` | Border on hover | -| `--carousel-kit-control-color-hover` | `inherit` | Icon color on hover | +| `--rt-carousel-control-bg` | `unset` | Background color of buttons | +| `--rt-carousel-control-color` | `inherit` | Icon color | +| `--rt-carousel-control-size` | `2.5rem` | Width/Height of buttons | +| `--rt-carousel-control-padding` | `0.5rem` | Padding inside buttons | +| `--rt-carousel-control-border` | `1.25px solid rgba(28, 28, 28, 0.3)` | Border style | +| `--rt-carousel-control-radius` | `50%` | Border radius | +| `--rt-carousel-control-bg-hover` | `rgba(248, 248, 248, 1)` | Background on hover | +| `--rt-carousel-control-border-hover` | `1.25px solid rgba(28, 28, 28, 0.75)` | Border on hover | +| `--rt-carousel-control-color-hover` | `inherit` | Icon color on hover | ### Dots (Pagination) | Variable | Default | Description | | ------------------------------------- | --------------------- | ---------------------- | -| `--carousel-kit-dots-gap` | `0.5rem` | Gap between dots | -| `--carousel-kit-dot-size` | `0.5rem` | Size of inactive dots | -| `--carousel-kit-dot-color` | `rgb(221, 221, 221)` | Color of inactive dots | -| `--carousel-kit-dot-radius` | `50%` | Shape of the dots | -| `--carousel-kit-dot-border` | `none` | Border style for dots | -| `--carousel-kit-dot-active-size` | `0.75rem` | Size of active dot | -| `--carousel-kit-dot-active-color` | `rgba(28, 28, 28, 1)` | Color of active dot | +| `--rt-carousel-dots-gap` | `0.5rem` | Gap between dots | +| `--rt-carousel-dot-size` | `0.5rem` | Size of inactive dots | +| `--rt-carousel-dot-color` | `rgb(221, 221, 221)` | Color of inactive dots | +| `--rt-carousel-dot-radius` | `50%` | Shape of the dots | +| `--rt-carousel-dot-border` | `none` | Border style for dots | +| `--rt-carousel-dot-active-scale` | `1.5` | Scale multiplier for active dot (unitless) | +| `--rt-carousel-dot-active-color` | `rgba(28, 28, 28, 1)` | Color of active dot | ## Overriding Styles @@ -41,9 +41,9 @@ You can override these variables globally in your theme's stylesheet or via `the ### Global CSS (`style.css`) ```css :root { - --carousel-kit-control-bg: #000000; - --carousel-kit-dot-active-color: #ff0000; - --carousel-kit-gap: 20px; + --rt-carousel-control-bg: #000000; + --rt-carousel-dot-active-color: #ff0000; + --rt-carousel-gap: 20px; } ``` @@ -52,8 +52,8 @@ You can override these variables globally in your theme's stylesheet or via `the { "styles": { "blocks": { - "carousel-kit/carousel": { - "css": "--carousel-kit-control-bg: #000000;" + "rt-carousel/carousel": { + "css": "--rt-carousel-control-bg: #000000;" } } } diff --git a/docs/USAGE.md b/docs/USAGE.md index 8918d62..dce47df 100644 --- a/docs/USAGE.md +++ b/docs/USAGE.md @@ -2,7 +2,7 @@ ## Block Configuration -### Parent Block: `carousel-kit/carousel` +### Parent Block: `rt-carousel/carousel` The parent block acts as the controller and wrapper. It handles configuration, state, and context for all child blocks. #### Attributes @@ -31,15 +31,15 @@ The parent block acts as the controller and wrapper. It handles configuration, s ### Creating Restricted Carousels To create a specialized carousel (e.g., testimonials only), set the `allowedSlideBlocks` attribute on the parent block: -```json - +```html + - - + + - - - + + + ``` --- @@ -62,5 +62,5 @@ You can create dynamic post sliders or content carousels using the WordPress Que | Use Case | Recommended Block | | :--- | :--- | | Dynamic Content (Posts, Pages, Products, Custom Post Types) | Query Loop (`core/query`) | -| Static Content (Hero Slider, Logo Showcase, Manual Testimonials) | Carousel Slide (`carousel-kit/carousel-slide`) | -| Mixed Content (Slide 1 is a Video, Slide 2 is Text) | Carousel Slide (`carousel-kit/carousel-slide`) | +| Static Content (Hero Slider, Logo Showcase, Manual Testimonials) | Carousel Slide (`rt-carousel/carousel-slide`) | +| Mixed Content (Slide 1 is a Video, Slide 2 is Text) | Carousel Slide (`rt-carousel/carousel-slide`) | diff --git a/examples/data/carousel-kit.xml b/examples/data/rt-carousel.xml similarity index 53% rename from examples/data/carousel-kit.xml rename to examples/data/rt-carousel.xml index 4aa073b..d9d3263 100644 --- a/examples/data/carousel-kit.xml +++ b/examples/data/rt-carousel.xml @@ -20,7 +20,7 @@ -Carousel Kit by rtCamp +rtCarousel by rtCamp http://carousel-demo.local Carousel system built for WordPress using Interactivity API Mon, 16 Feb 2026 22:47:19 +0000 @@ -347,16 +347,16 @@ http://carousel-demo.local/?page_id=9 -

What is Carousel Kit?

+

What is rtCarousel?

-

Carousel Kit is a an Interactivity API-powered carousel system built for the WordPress Block Editor. It is designed for enterprise-grade performance and extensibility.

+

rtCarousel is a an Interactivity API-powered carousel system built for the WordPress Block Editor. It is designed for enterprise-grade performance and extensibility.

@@ -368,16 +368,16 @@

Examples

- -