Skip to content

Commit

Permalink
Merge branch 'release/2.8.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
titouanmathis committed Jan 19, 2023
2 parents 0a757f1 + f037a63 commit e114986
Show file tree
Hide file tree
Showing 56 changed files with 3,471 additions and 1,632 deletions.
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ yarn-error.log*
# Build files
dist/
demo/dist/
docs/.vuepress/dist/
/packages/docs/.vitepress/cache
coverage/
/full.d.ts
/index.d.ts
16 changes: 16 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,28 @@ All notable changes to this project will be documented in this file. The format

## [Unreleased]

## [v2.8.0](https://github.com/studiometa/js-toolkit/compare/2.7.0..2.8.0) (2023-01-19)

### Added

- **Base:**
- add support for multiple component declaration in data-component attributes ([#330](https://github.com/studiometa/js-toolkit/pull/330))
- add support for refs with prefix ([#339](https://github.com/studiometa/js-toolkit/pull/339))
- **withScrolledInView:** add support for defining offsets ([#321](https://github.com/studiometa/js-toolkit/pull/321))
- **animate:** add support for animating CSS Custom Properties ([#332](https://github.com/studiometa/js-toolkit/pull/332))

### Fixed

- **isNumber:** fix `NaN` values being considered as numbers ([deccdd1](https://github.com/studiometa/js-toolkit/commit/deccdd1))
- **getOffsetSizes:** fix a bug where the width was used instead of the height ([c95885b](https://github.com/studiometa/js-toolkit/commit/c95885b))

## [v2.7.0](https://github.com/studiometa/js-toolkit/compare/2.6.5..2.7.0) (2022-12-02)

### Added

- Add support for feature flags ([dbb865a](https://github.com/studiometa/js-toolkit/commit/dbb865a))
- Add an `AsyncChildrenManager` to improve performance of initial app creation ([#309](https://github.com/studiometa/js-toolkit/pull/309))

```js
createApp(App, { features: { asyncChildren: true } });
```
Expand Down
3,725 changes: 2,204 additions & 1,521 deletions package-lock.json

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@studiometa/js-toolkit-workspace",
"version": "2.7.0",
"version": "2.8.0",
"private": true,
"workspaces": [
"packages/*"
Expand All @@ -27,23 +27,23 @@
"postinstall": "patch-package"
},
"devDependencies": {
"@studiometa/eslint-config": "^3.0.5",
"@studiometa/eslint-config": "^3.1.1",
"@studiometa/prettier-config": "^2.1.1",
"@studiometa/stylelint-config": "^3.0.0",
"@types/estree": "^1.0.0",
"@types/jest": "^29.1.2",
"@types/node": "^18.11.0",
"@typescript-eslint/eslint-plugin": "^5.40.0",
"@typescript-eslint/parser": "^5.40.0",
"eslint": "^8.25.0",
"@types/jest": "^29.2.4",
"@types/node": "^18.11.18",
"@typescript-eslint/eslint-plugin": "^5.45.1",
"@typescript-eslint/parser": "^5.45.1",
"eslint": "^8.30.0",
"eslint-config-airbnb-typescript": "^17.0.0",
"eslint-plugin-jest": "^27.1.1",
"prettier": "^2.7.1",
"typescript": "^4.8.4"
"eslint-plugin-jest": "^27.1.7",
"prettier": "^2.8.1",
"typescript": "^4.9.4"
},
"dependencies": {
"esbuild": "^0.15.11",
"esbuild": "^0.15.18",
"fast-glob": "^3.2.12",
"patch-package": "^6.4.7"
"patch-package": "^6.5.0"
}
}
16 changes: 8 additions & 8 deletions packages/demo/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@studiometa/js-toolkit-demo",
"version": "2.7.0",
"version": "2.8.0",
"private": true,
"type": "commonjs",
"scripts": {
Expand All @@ -9,16 +9,16 @@
"build": "meta build"
},
"dependencies": {
"@studiometa/eslint-config": "^3.1.0",
"@studiometa/eslint-config": "^3.1.1",
"@studiometa/stylelint-config": "^3.0.0",
"@studiometa/tailwind-config": "^2.0.2",
"@studiometa/ui": "^0.2.18",
"@studiometa/ui": "^0.2.23",
"@studiometa/webpack-config": "^4.1.2",
"eslint": "^8.26.0",
"postcss": "^8.4.18",
"prettier": "^2.7.1",
"eslint": "^8.30.0",
"postcss": "^8.4.19",
"prettier": "^2.8.1",
"stylefire": "^7.0.3",
"stylelint": "^14.14.1",
"tailwindcss": "^3.2.2"
"stylelint": "^14.16.1",
"tailwindcss": "^3.2.4"
}
}
2 changes: 2 additions & 0 deletions packages/demo/src/js/app.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import AnimateTest from './components/AnimateTest.js';
import AnimateScrollTest from './components/AnimateScrollTest.js';
import AnimateTestMultiple from './components/AnimateTestMultiple.js';
import ParentNativeEvent from './components/ParentNativeEvent/index.js';
import ScrolledInViewOffset from './components/ScrolledInViewOffset.js';

let numberOfTick = 0;
let time = performance.now();
Expand Down Expand Up @@ -80,6 +81,7 @@ class App extends Base {
AnimateScrollTest,
AnimateTestMultiple,
ResponsiveOptions,
ScrolledInViewOffset,
TestDeepNested,
TestManyInstance,
Accordion: (app) =>
Expand Down
24 changes: 24 additions & 0 deletions packages/demo/src/js/components/ScrolledInViewOffset.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import { Base, withScrolledInView } from '@studiometa/js-toolkit';

/**
* ScrolledInViewOffset class.
*/
export default class ScrolledInViewOffset extends withScrolledInView(Base) {
/**
* Config.
*/
static config = {
name: 'ScrolledInViewOffset',
refs: ['progress'],
};

/**
* Scrolled in view.
* @param {import('@studiometa/js-toolkit').ScrolledInViewProps} props
* @returns {void}
*/
scrolledInView(props) {
const { x, y } = props.progress;
this.$refs.progress.textContent = `{ x: ${x.toFixed(3)}, y: ${y.toFixed(3)} }`;
}
}
8 changes: 4 additions & 4 deletions packages/demo/src/templates/components/animate-test.twig
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{% set easing = easing|default('easeInOutExpo') %}

{% set steps = steps|default([
{},
{ x: [50, '%'], rotate: 180, scale: 0.5, opacity: 0.5 },
{ x: [100, '%'], rotate: 360 }
{ '--red': 0 },
{ x: [50, '%'], rotate: 180, scale: 0.5, opacity: 0.5, '--red': 255 },
{ x: [100, '%'], rotate: 360, '--red': 0 }
]) %}

{% set target_class = target_class|default('w-1/2') %}
Expand Down Expand Up @@ -40,7 +40,7 @@
</div>
<div class="w-96 rounded-xl bg-gray-200 {{ container_class }}">
{% block target %}
<div data-ref="target" class="{{ target_class }} h-48 rounded-xl bg-black"></div>
<div data-ref="target" style="background-color: rgb(var(--red, 0), 0, 0);" class="{{ target_class }} h-48 rounded-xl bg-black"></div>
{% endblock %}
</div>
</div>
6 changes: 3 additions & 3 deletions packages/demo/src/templates/pages/index.twig
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,9 @@
target_class: 'w-full',
container_class: 'overflow-hidden',
steps: [
{ scaleX: 0 },
{ scaleX: 1, transformOrigin: 'top left' },
{ scaleX: 0, transformOrigin: 'top right' }
{ scaleX: 0, '--red': 0 },
{ scaleX: 1, transformOrigin: 'top left', '--red': 255 },
{ scaleX: 0, transformOrigin: 'top right', '--red': 0 }
]
} %}
<!-- BEGIN BreakpointManagerDemo -->
Expand Down
153 changes: 153 additions & 0 deletions packages/demo/src/templates/pages/scrolled-in-view-offset.twig
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@
{% extends '@layouts/base.twig' %}

{% block main %}
<style>
main { width: 300vw !important; height: auto !important; }
</style>
<div class="z-10 fixed top-1/4 left-0 w-full h-px pl-1 bg-red-800">
0.25
</div>
<div class="z-10 fixed top-3/4 left-0 w-full h-px pl-1 bg-red-800">
0.75
</div>
<div class="z-10 fixed left-1/4 top-0 w-px h-full pt-1 bg-red-800">
&nbsp;0.25
</div>
<div class="z-10 fixed left-3/4 top-0 w-px h-full pt-1 bg-red-800">
&nbsp;0.75
</div>

<div class="flex items-center justify-center w-full h-[75vh]">
Scroll down.
</div>
<div class="flex items-center justify-between w-full">
<div class="w-[75vw] text-center">
Scroll right.
</div>
<div class="flex flex-wrap items-center justify-center gap-20">
<div data-component="ScrolledInViewOffset"
data-option-offset="start end / end start"
class="flex items-center w-48 h-48 text-center rounded bg-red-400">
<div class="w-full">
<div>
start end
</div>
<div>
end start
</div>
<div data-ref="progress">
0
</div>
</div>
</div>
<div data-component="ScrolledInViewOffset"
data-option-offset="end end / start start"
class="flex items-center w-48 h-48 text-center rounded bg-green-400">
<div class="w-full">
<div>
end end
</div>
<div>
start start
</div>
<div data-ref="progress">
0
</div>
</div>
</div>
<div data-component="ScrolledInViewOffset"
data-option-offset="end 0.75 / start 0.25"
class="flex items-center w-48 h-48 text-center rounded bg-blue-400">
<div class="w-full">
<div>
end 0.75
</div>
<div>
start 0.25
</div>
<div data-ref="progress">
0
</div>
</div>
</div>
<div data-component="ScrolledInViewOffset"
data-option-offset="start 0.25 / end 0.75"
class="flex items-center w-48 h-48 text-center rounded bg-purple-400">
<div class="w-full">
<div>
start 0.25
</div>
<div>
end 0.75
</div>
<div data-ref="progress">
0
</div>
</div>
</div>
<div data-component="ScrolledInViewOffset"
data-option-offset="0.5 0.75 / 0.5 0.25"
class="flex items-center w-48 h-48 text-center rounded bg-orange-400">
<div class="w-full">
<div>
0.5 0.75
</div>
<div>
0.5 0.25
</div>
<div data-ref="progress">
0
</div>
</div>
</div>
<div data-component="ScrolledInViewOffset"
data-option-offset="25px 0.75 / 25px 0.25"
class="relative flex items-center w-48 h-48 text-center rounded bg-emerald-400">
<div class="absolute top-[25px] left-0 w-full h-px pl-1 bg-red-800 text-left text-sm">
25px
</div>
<div class="absolute left-[25px] top-0 w-px h-full pt-1 bg-red-800 text-left text-sm">
&nbsp;25px
</div>
<div class="w-full">
<div>
25px 0.75
</div>
<div>
25px 0.25
</div>
<div data-ref="progress">
0
</div>
</div>
</div>
<div data-component="ScrolledInViewOffset"
data-option-offset="-25px 0.75 / -25px 0.25"
class="relative flex items-center w-48 h-48 text-center rounded bg-cyan-400">
<div class="absolute top-[-25px] left-0 w-full h-px pl-1 bg-red-800 text-left text-sm">
-25px
</div>
<div class="absolute left-[-25px] top-0 w-px h-full pt-1 bg-red-800 text-left text-sm">
&nbsp;-25px
</div>
<div class="w-full">
<div>
-25px 0.75
</div>
<div>
-25px 0.25
</div>
<div data-ref="progress">
0
</div>
</div>
</div>
</div>
<div class="w-[75vw] text-center">
Scroll left.
</div>
</div>
<div class="flex items-center justify-center w-full h-[75vh]">
Scroll up.
</div>
{% endblock %}
15 changes: 15 additions & 0 deletions packages/docs/.vitepress/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ export default defineConfig({
'/api/services/': getApiSidebar({ expanded: 'services' }),
'/api/decorators/': getApiSidebar({ expanded: 'decorators' }),
'/api/helpers/': getApiSidebar({ expanded: 'helpers' }),
'/api/html/': getApiSidebar({ expanded: 'html' }),
'/api/': getApiSidebar({ expanded: 'api' }),
'/utils/': getUtilsSidebar(),
},
Expand Down Expand Up @@ -116,6 +117,12 @@ function getApiSidebar({ expanded = 'api' } = {}) {
collapsible: true,
items: expanded === 'api' ? getBaseSidebar() : getBaseSidebar(),
},
{
text: 'HTML',
link: '/api/html/',
collapsible: true,
items: expanded === 'html' ? getHtmlSidebar() : getHtmlSidebar(),
},
{
text: 'Helpers',
link: '/api/helpers/',
Expand Down Expand Up @@ -178,6 +185,14 @@ function getBaseSidebar() {
];
}

function getHtmlSidebar() {
return [
{ text: 'data-component', link: '/api/html/data-component.html' },
{ text: 'data-ref', link: '/api/html/data-ref.html' },
{ text: 'data-option-<​name>', link: '/api/html/data-option.html' },
];
}

function getServicesSidebar() {
return [
{ text: 'useDrag', link: '/api/services/useDrag.html' },
Expand Down
Loading

0 comments on commit e114986

Please sign in to comment.