@studiometa/ui 0.1.1 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +37 -1
- package/atoms/AnchorScrollTo/AnchorScrollTo.cjs +52 -0
- package/atoms/AnchorScrollTo/AnchorScrollTo.d.ts +31 -0
- package/atoms/AnchorScrollTo/AnchorScrollTo.js +26 -0
- package/atoms/Cursor/Cursor.cjs +129 -0
- package/{Cursor.d.ts → atoms/Cursor/Cursor.d.ts} +0 -0
- package/atoms/Cursor/Cursor.js +103 -0
- package/atoms/Figure/Figure.cjs +53 -0
- package/atoms/Figure/Figure.d.ts +31 -0
- package/atoms/Figure/Figure.js +27 -0
- package/atoms/LargeText/LargeText.cjs +74 -0
- package/atoms/LargeText/LargeText.d.ts +71 -0
- package/atoms/LargeText/LargeText.js +48 -0
- package/atoms/LazyInclude/LazyInclude.cjs +72 -0
- package/atoms/LazyInclude/LazyInclude.d.ts +64 -0
- package/atoms/LazyInclude/LazyInclude.js +46 -0
- package/atoms/Prefetch/AbstractPrefetch.cjs +84 -0
- package/atoms/Prefetch/AbstractPrefetch.d.ts +52 -0
- package/atoms/Prefetch/AbstractPrefetch.js +58 -0
- package/atoms/Prefetch/PrefetchWhenOver.cjs +65 -0
- package/atoms/Prefetch/PrefetchWhenOver.d.ts +21 -0
- package/atoms/Prefetch/PrefetchWhenOver.js +35 -0
- package/atoms/Prefetch/PrefetchWhenVisible.cjs +66 -0
- package/atoms/Prefetch/PrefetchWhenVisible.d.ts +21 -0
- package/atoms/Prefetch/PrefetchWhenVisible.js +36 -0
- package/atoms/Prefetch/index.cjs +40 -0
- package/atoms/Prefetch/index.d.ts +3 -0
- package/atoms/Prefetch/index.js +8 -0
- package/atoms/index.cjs +45 -0
- package/atoms/index.d.ts +6 -0
- package/atoms/index.js +13 -0
- package/index.cjs +26 -0
- package/index.d.ts +3 -6
- package/index.js +3 -6
- package/molecules/Accordion/Accordion.cjs +65 -0
- package/{Accordion/index.d.ts → molecules/Accordion/Accordion.d.ts} +5 -6
- package/molecules/Accordion/Accordion.js +35 -0
- package/molecules/Accordion/AccordionCore.cjs +60 -0
- package/{Accordion/Accordion.d.ts → molecules/Accordion/AccordionCore.d.ts} +0 -0
- package/molecules/Accordion/AccordionCore.js +34 -0
- package/molecules/Accordion/AccordionItem.cjs +208 -0
- package/{Accordion → molecules/Accordion}/AccordionItem.d.ts +11 -13
- package/molecules/Accordion/AccordionItem.js +178 -0
- package/molecules/Modal/Modal.cjs +176 -0
- package/{Modal.d.ts → molecules/Modal/Modal.d.ts} +9 -9
- package/molecules/Modal/Modal.js +150 -0
- package/molecules/Modal/ModalWithTransition.cjs +100 -0
- package/molecules/Modal/ModalWithTransition.d.ts +29 -0
- package/molecules/Modal/ModalWithTransition.js +69 -0
- package/molecules/Panel/Panel.cjs +148 -0
- package/molecules/Panel/Panel.d.ts +42 -0
- package/molecules/Panel/Panel.js +117 -0
- package/molecules/Slider/AbstractSliderChild.cjs +74 -0
- package/molecules/Slider/AbstractSliderChild.d.ts +55 -0
- package/molecules/Slider/AbstractSliderChild.js +43 -0
- package/molecules/Slider/Slider.cjs +240 -0
- package/molecules/Slider/Slider.d.ts +245 -0
- package/molecules/Slider/Slider.js +209 -0
- package/molecules/Slider/SliderBtn.cjs +65 -0
- package/molecules/Slider/SliderBtn.d.ts +31 -0
- package/molecules/Slider/SliderBtn.js +34 -0
- package/molecules/Slider/SliderCount.cjs +50 -0
- package/molecules/Slider/SliderCount.d.ts +21 -0
- package/molecules/Slider/SliderCount.js +19 -0
- package/molecules/Slider/SliderDots.cjs +55 -0
- package/molecules/Slider/SliderDots.d.ts +33 -0
- package/molecules/Slider/SliderDots.js +24 -0
- package/molecules/Slider/SliderDrag.cjs +45 -0
- package/molecules/Slider/SliderDrag.d.ts +16 -0
- package/molecules/Slider/SliderDrag.js +19 -0
- package/molecules/Slider/SliderItem.cjs +130 -0
- package/molecules/Slider/SliderItem.d.ts +106 -0
- package/molecules/Slider/SliderItem.js +105 -0
- package/molecules/Slider/SliderProgress.cjs +54 -0
- package/molecules/Slider/SliderProgress.d.ts +27 -0
- package/molecules/Slider/SliderProgress.js +23 -0
- package/molecules/Slider/index.cjs +50 -0
- package/molecules/Slider/index.d.ts +8 -0
- package/molecules/Slider/index.js +18 -0
- package/molecules/Sticky/Sticky.cjs +133 -0
- package/molecules/Sticky/Sticky.d.ts +141 -0
- package/molecules/Sticky/Sticky.js +107 -0
- package/molecules/TableOfContent/TableOfContent.cjs +73 -0
- package/molecules/TableOfContent/TableOfContent.d.ts +59 -0
- package/molecules/TableOfContent/TableOfContent.js +42 -0
- package/molecules/TableOfContent/TableOfContentAnchor.cjs +65 -0
- package/molecules/TableOfContent/TableOfContentAnchor.d.ts +36 -0
- package/molecules/TableOfContent/TableOfContentAnchor.js +39 -0
- package/molecules/TableOfContent/index.cjs +38 -0
- package/molecules/TableOfContent/index.d.ts +2 -0
- package/molecules/TableOfContent/index.js +6 -0
- package/molecules/Tabs/Tabs.cjs +152 -0
- package/{Tabs.d.ts → molecules/Tabs/Tabs.d.ts} +2 -4
- package/molecules/Tabs/Tabs.js +126 -0
- package/molecules/index.cjs +50 -0
- package/molecules/index.d.ts +9 -0
- package/molecules/index.js +18 -0
- package/organisms/Frame/Frame.cjs +202 -0
- package/organisms/Frame/Frame.d.ts +119 -0
- package/organisms/Frame/Frame.js +171 -0
- package/organisms/Frame/FrameAnchor.cjs +48 -0
- package/organisms/Frame/FrameAnchor.d.ts +35 -0
- package/organisms/Frame/FrameAnchor.js +22 -0
- package/organisms/Frame/FrameForm.cjs +48 -0
- package/organisms/Frame/FrameForm.d.ts +32 -0
- package/organisms/Frame/FrameForm.js +22 -0
- package/organisms/Frame/FrameTarget.cjs +134 -0
- package/organisms/Frame/FrameTarget.d.ts +47 -0
- package/organisms/Frame/FrameTarget.js +109 -0
- package/organisms/Frame/index.cjs +42 -0
- package/organisms/Frame/index.d.ts +4 -0
- package/organisms/Frame/index.js +10 -0
- package/organisms/index.cjs +24 -0
- package/organisms/index.d.ts +1 -0
- package/organisms/index.js +1 -0
- package/package.json +2 -2
- package/primitives/Draggable/Draggable.cjs +64 -0
- package/{Draggable.d.ts → primitives/Draggable/Draggable.d.ts} +0 -0
- package/primitives/Draggable/Draggable.js +38 -0
- package/primitives/Sentinel/Sentinel.cjs +41 -0
- package/primitives/Sentinel/Sentinel.d.ts +12 -0
- package/primitives/Sentinel/Sentinel.js +15 -0
- package/primitives/Transition/Transition.cjs +71 -0
- package/primitives/Transition/Transition.d.ts +69 -0
- package/primitives/Transition/Transition.js +45 -0
- package/primitives/index.cjs +40 -0
- package/primitives/index.d.ts +3 -0
- package/primitives/index.js +8 -0
- package/Accordion/Accordion.js +0 -29
- package/Accordion/AccordionItem.js +0 -197
- package/Accordion/index.js +0 -12
- package/Cursor.js +0 -121
- package/Draggable.js +0 -31
- package/Modal.js +0 -167
- package/Tabs.js +0 -106
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
[](https://david-dm.org/studiometa/js-toolkit)
|
|
6
6
|

|
|
7
7
|
|
|
8
|
-
>
|
|
8
|
+
> 📦 A set of opiniated, unstyled and accessible components based on [@studiometa/js-toolkit](https://github.com/studiometa/js-toolkit)
|
|
9
9
|
|
|
10
10
|
## Installation
|
|
11
11
|
|
|
@@ -15,6 +15,12 @@ Install the latest version via NPM:
|
|
|
15
15
|
npm install @studiometa/ui
|
|
16
16
|
```
|
|
17
17
|
|
|
18
|
+
If you need the Twig template as well, install the Twig extension via Composer and load it in your application:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
composer require studiometa/ui
|
|
22
|
+
```
|
|
23
|
+
|
|
18
24
|
## Usage
|
|
19
25
|
|
|
20
26
|
Import the components from the package as needed:
|
|
@@ -34,3 +40,33 @@ class App extends Base {
|
|
|
34
40
|
|
|
35
41
|
export default createApp(App, document.body);
|
|
36
42
|
```
|
|
43
|
+
|
|
44
|
+
Heads up to [ui.studiometa.dev](https://ui.studiometa.dev) for more informations.
|
|
45
|
+
|
|
46
|
+
## Contributing
|
|
47
|
+
|
|
48
|
+
Clone the project and install the required dependencies. The back-end can be run with [ddev](https://github.com/drud/ddev) which is preconfigured.
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
git clone https://github.com:studiometa/ui.git
|
|
52
|
+
cd ui/
|
|
53
|
+
|
|
54
|
+
# Install root dependencies
|
|
55
|
+
npm install
|
|
56
|
+
composer install
|
|
57
|
+
ddev start
|
|
58
|
+
|
|
59
|
+
# Install back-end dependencies
|
|
60
|
+
cd packages/docs/.symfony
|
|
61
|
+
composer install
|
|
62
|
+
|
|
63
|
+
# Launch the dev environment
|
|
64
|
+
cd ..
|
|
65
|
+
npm run dev
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
You can also [open the repository in GitPod](https://gitpod.io/#https://github.com/studiometa/ui) and start the dev server with the following command in the root of the project:
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
npm run docs:dev
|
|
72
|
+
```
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
6
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __reExport = (target, module2, copyDefault, desc) => {
|
|
12
|
+
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(module2))
|
|
14
|
+
if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
|
|
15
|
+
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return target;
|
|
18
|
+
};
|
|
19
|
+
var __toCommonJS = /* @__PURE__ */ ((cache) => {
|
|
20
|
+
return (module2, temp) => {
|
|
21
|
+
return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
|
|
22
|
+
};
|
|
23
|
+
})(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
|
|
24
|
+
var __publicField = (obj, key, value) => {
|
|
25
|
+
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
26
|
+
return value;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
// packages/ui/atoms/AnchorScrollTo/AnchorScrollTo.js
|
|
30
|
+
var AnchorScrollTo_exports = {};
|
|
31
|
+
__export(AnchorScrollTo_exports, {
|
|
32
|
+
default: () => AnchorScrollTo
|
|
33
|
+
});
|
|
34
|
+
var import_js_toolkit = require("@studiometa/js-toolkit");
|
|
35
|
+
var import_utils = require("@studiometa/js-toolkit/utils");
|
|
36
|
+
var AnchorScrollTo = class extends import_js_toolkit.Base {
|
|
37
|
+
get targetSelector() {
|
|
38
|
+
return this.$el.hash;
|
|
39
|
+
}
|
|
40
|
+
onClick(event) {
|
|
41
|
+
try {
|
|
42
|
+
(0, import_utils.scrollTo)(this.targetSelector);
|
|
43
|
+
event.preventDefault();
|
|
44
|
+
} catch (err) {
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
__publicField(AnchorScrollTo, "config", {
|
|
49
|
+
name: "AnchorScrollTo"
|
|
50
|
+
});
|
|
51
|
+
module.exports = __toCommonJS(AnchorScrollTo_exports);
|
|
52
|
+
if (module.exports.default) module.exports = module.exports.default;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @typedef {AnchorScrollTo & {
|
|
3
|
+
* $el: HTMLAnchorElement
|
|
4
|
+
* }} AnchorScrollToInterface
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* AncorScrollTo class.
|
|
8
|
+
*/
|
|
9
|
+
export default class AnchorScrollTo extends Base {
|
|
10
|
+
static config: {
|
|
11
|
+
name: string;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Get the target selector.
|
|
15
|
+
*
|
|
16
|
+
* @this {AnchorScrollToInterface}
|
|
17
|
+
* @returns {string}
|
|
18
|
+
*/
|
|
19
|
+
get targetSelector(): string;
|
|
20
|
+
/**
|
|
21
|
+
* Scroll to the target selector on click.
|
|
22
|
+
*
|
|
23
|
+
* @param {MouseEvent} event
|
|
24
|
+
* @returns {void}
|
|
25
|
+
*/
|
|
26
|
+
onClick(event: MouseEvent): void;
|
|
27
|
+
}
|
|
28
|
+
export type AnchorScrollToInterface = AnchorScrollTo & {
|
|
29
|
+
$el: HTMLAnchorElement;
|
|
30
|
+
};
|
|
31
|
+
import { Base } from "@studiometa/js-toolkit";
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
|
+
var __publicField = (obj, key, value) => {
|
|
4
|
+
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
5
|
+
return value;
|
|
6
|
+
};
|
|
7
|
+
import { Base } from "@studiometa/js-toolkit";
|
|
8
|
+
import { scrollTo } from "@studiometa/js-toolkit/utils";
|
|
9
|
+
class AnchorScrollTo extends Base {
|
|
10
|
+
get targetSelector() {
|
|
11
|
+
return this.$el.hash;
|
|
12
|
+
}
|
|
13
|
+
onClick(event) {
|
|
14
|
+
try {
|
|
15
|
+
scrollTo(this.targetSelector);
|
|
16
|
+
event.preventDefault();
|
|
17
|
+
} catch (err) {
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
__publicField(AnchorScrollTo, "config", {
|
|
22
|
+
name: "AnchorScrollTo"
|
|
23
|
+
});
|
|
24
|
+
export {
|
|
25
|
+
AnchorScrollTo as default
|
|
26
|
+
};
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
6
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __reExport = (target, module2, copyDefault, desc) => {
|
|
12
|
+
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(module2))
|
|
14
|
+
if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
|
|
15
|
+
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return target;
|
|
18
|
+
};
|
|
19
|
+
var __toCommonJS = /* @__PURE__ */ ((cache) => {
|
|
20
|
+
return (module2, temp) => {
|
|
21
|
+
return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
|
|
22
|
+
};
|
|
23
|
+
})(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
|
|
24
|
+
var __publicField = (obj, key, value) => {
|
|
25
|
+
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
26
|
+
return value;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
// packages/ui/atoms/Cursor/Cursor.js
|
|
30
|
+
var Cursor_exports = {};
|
|
31
|
+
__export(Cursor_exports, {
|
|
32
|
+
default: () => Cursor
|
|
33
|
+
});
|
|
34
|
+
var import_js_toolkit = require("@studiometa/js-toolkit");
|
|
35
|
+
var import_utils = require("@studiometa/js-toolkit/utils");
|
|
36
|
+
var Cursor = class extends import_js_toolkit.Base {
|
|
37
|
+
constructor() {
|
|
38
|
+
super(...arguments);
|
|
39
|
+
__publicField(this, "x", 0);
|
|
40
|
+
__publicField(this, "y", 0);
|
|
41
|
+
__publicField(this, "scale", 0);
|
|
42
|
+
__publicField(this, "pointerX", 0);
|
|
43
|
+
__publicField(this, "pointerY", 0);
|
|
44
|
+
__publicField(this, "pointerScale", 0);
|
|
45
|
+
}
|
|
46
|
+
mounted() {
|
|
47
|
+
this.x = 0;
|
|
48
|
+
this.y = 0;
|
|
49
|
+
this.scale = 0;
|
|
50
|
+
this.pointerX = 0;
|
|
51
|
+
this.pointerY = 0;
|
|
52
|
+
this.pointerScale = 0;
|
|
53
|
+
this.render({ x: this.x, y: this.y, scale: this.scale });
|
|
54
|
+
}
|
|
55
|
+
moved({ event, x, y, isDown }) {
|
|
56
|
+
if (!this.$services.has("ticked")) {
|
|
57
|
+
this.$services.enable("ticked");
|
|
58
|
+
}
|
|
59
|
+
this.pointerX = x;
|
|
60
|
+
this.pointerY = y;
|
|
61
|
+
let scale = 1;
|
|
62
|
+
if (!event) {
|
|
63
|
+
this.pointerScale = scale;
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
const shouldGrow = event.target instanceof Element && event.target.matches(this.$options.growSelectors) || false;
|
|
67
|
+
const shouldReduce = isDown || event.target instanceof Element && event.target.matches(this.$options.shrinkSelectors) || false;
|
|
68
|
+
if (shouldGrow) {
|
|
69
|
+
scale = this.$options.growTo;
|
|
70
|
+
}
|
|
71
|
+
if (shouldReduce) {
|
|
72
|
+
scale = this.$options.shrinkTo;
|
|
73
|
+
}
|
|
74
|
+
this.pointerScale = scale;
|
|
75
|
+
}
|
|
76
|
+
ticked() {
|
|
77
|
+
this.x = (0, import_utils.damp)(this.pointerX, this.x, this.$options.translateDampFactor);
|
|
78
|
+
this.y = (0, import_utils.damp)(this.pointerY, this.y, this.$options.translateDampFactor);
|
|
79
|
+
this.scale = (0, import_utils.damp)(this.pointerScale, this.scale, this.pointerScale < this.scale ? this.$options.shrinkDampFactor : this.$options.growDampFactor);
|
|
80
|
+
this.render({ x: this.x, y: this.y, scale: this.scale });
|
|
81
|
+
if (this.x === this.pointerX && this.y === this.pointerY && this.scale === this.pointerScale) {
|
|
82
|
+
this.$services.disable("ticked");
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
render({ x, y, scale }) {
|
|
86
|
+
const transform = (0, import_utils.matrix)({
|
|
87
|
+
translateX: x,
|
|
88
|
+
translateY: y,
|
|
89
|
+
scaleX: scale,
|
|
90
|
+
scaleY: scale
|
|
91
|
+
});
|
|
92
|
+
this.$el.style.transform = `translateZ(0) ${transform}`;
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
__publicField(Cursor, "config", {
|
|
96
|
+
name: "Cursor",
|
|
97
|
+
options: {
|
|
98
|
+
growSelectors: {
|
|
99
|
+
type: String,
|
|
100
|
+
default: "a, a *, button, button *, [data-cursor-grow], [data-cursor-grow] *"
|
|
101
|
+
},
|
|
102
|
+
shrinkSelectors: {
|
|
103
|
+
type: String,
|
|
104
|
+
default: "[data-cursor-shrink], [data-cursor-shrink] *"
|
|
105
|
+
},
|
|
106
|
+
growTo: {
|
|
107
|
+
type: Number,
|
|
108
|
+
default: 2
|
|
109
|
+
},
|
|
110
|
+
shrinkTo: {
|
|
111
|
+
type: Number,
|
|
112
|
+
default: 0.5
|
|
113
|
+
},
|
|
114
|
+
translateDampFactor: {
|
|
115
|
+
type: Number,
|
|
116
|
+
default: 0.25
|
|
117
|
+
},
|
|
118
|
+
growDampFactor: {
|
|
119
|
+
type: Number,
|
|
120
|
+
default: 0.25
|
|
121
|
+
},
|
|
122
|
+
shrinkDampFactor: {
|
|
123
|
+
type: Number,
|
|
124
|
+
default: 0.25
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
module.exports = __toCommonJS(Cursor_exports);
|
|
129
|
+
if (module.exports.default) module.exports = module.exports.default;
|
|
File without changes
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
|
+
var __publicField = (obj, key, value) => {
|
|
4
|
+
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
5
|
+
return value;
|
|
6
|
+
};
|
|
7
|
+
import { Base } from "@studiometa/js-toolkit";
|
|
8
|
+
import { damp, matrix } from "@studiometa/js-toolkit/utils";
|
|
9
|
+
class Cursor extends Base {
|
|
10
|
+
constructor() {
|
|
11
|
+
super(...arguments);
|
|
12
|
+
__publicField(this, "x", 0);
|
|
13
|
+
__publicField(this, "y", 0);
|
|
14
|
+
__publicField(this, "scale", 0);
|
|
15
|
+
__publicField(this, "pointerX", 0);
|
|
16
|
+
__publicField(this, "pointerY", 0);
|
|
17
|
+
__publicField(this, "pointerScale", 0);
|
|
18
|
+
}
|
|
19
|
+
mounted() {
|
|
20
|
+
this.x = 0;
|
|
21
|
+
this.y = 0;
|
|
22
|
+
this.scale = 0;
|
|
23
|
+
this.pointerX = 0;
|
|
24
|
+
this.pointerY = 0;
|
|
25
|
+
this.pointerScale = 0;
|
|
26
|
+
this.render({ x: this.x, y: this.y, scale: this.scale });
|
|
27
|
+
}
|
|
28
|
+
moved({ event, x, y, isDown }) {
|
|
29
|
+
if (!this.$services.has("ticked")) {
|
|
30
|
+
this.$services.enable("ticked");
|
|
31
|
+
}
|
|
32
|
+
this.pointerX = x;
|
|
33
|
+
this.pointerY = y;
|
|
34
|
+
let scale = 1;
|
|
35
|
+
if (!event) {
|
|
36
|
+
this.pointerScale = scale;
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
const shouldGrow = event.target instanceof Element && event.target.matches(this.$options.growSelectors) || false;
|
|
40
|
+
const shouldReduce = isDown || event.target instanceof Element && event.target.matches(this.$options.shrinkSelectors) || false;
|
|
41
|
+
if (shouldGrow) {
|
|
42
|
+
scale = this.$options.growTo;
|
|
43
|
+
}
|
|
44
|
+
if (shouldReduce) {
|
|
45
|
+
scale = this.$options.shrinkTo;
|
|
46
|
+
}
|
|
47
|
+
this.pointerScale = scale;
|
|
48
|
+
}
|
|
49
|
+
ticked() {
|
|
50
|
+
this.x = damp(this.pointerX, this.x, this.$options.translateDampFactor);
|
|
51
|
+
this.y = damp(this.pointerY, this.y, this.$options.translateDampFactor);
|
|
52
|
+
this.scale = damp(this.pointerScale, this.scale, this.pointerScale < this.scale ? this.$options.shrinkDampFactor : this.$options.growDampFactor);
|
|
53
|
+
this.render({ x: this.x, y: this.y, scale: this.scale });
|
|
54
|
+
if (this.x === this.pointerX && this.y === this.pointerY && this.scale === this.pointerScale) {
|
|
55
|
+
this.$services.disable("ticked");
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
render({ x, y, scale }) {
|
|
59
|
+
const transform = matrix({
|
|
60
|
+
translateX: x,
|
|
61
|
+
translateY: y,
|
|
62
|
+
scaleX: scale,
|
|
63
|
+
scaleY: scale
|
|
64
|
+
});
|
|
65
|
+
this.$el.style.transform = `translateZ(0) ${transform}`;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
__publicField(Cursor, "config", {
|
|
69
|
+
name: "Cursor",
|
|
70
|
+
options: {
|
|
71
|
+
growSelectors: {
|
|
72
|
+
type: String,
|
|
73
|
+
default: "a, a *, button, button *, [data-cursor-grow], [data-cursor-grow] *"
|
|
74
|
+
},
|
|
75
|
+
shrinkSelectors: {
|
|
76
|
+
type: String,
|
|
77
|
+
default: "[data-cursor-shrink], [data-cursor-shrink] *"
|
|
78
|
+
},
|
|
79
|
+
growTo: {
|
|
80
|
+
type: Number,
|
|
81
|
+
default: 2
|
|
82
|
+
},
|
|
83
|
+
shrinkTo: {
|
|
84
|
+
type: Number,
|
|
85
|
+
default: 0.5
|
|
86
|
+
},
|
|
87
|
+
translateDampFactor: {
|
|
88
|
+
type: Number,
|
|
89
|
+
default: 0.25
|
|
90
|
+
},
|
|
91
|
+
growDampFactor: {
|
|
92
|
+
type: Number,
|
|
93
|
+
default: 0.25
|
|
94
|
+
},
|
|
95
|
+
shrinkDampFactor: {
|
|
96
|
+
type: Number,
|
|
97
|
+
default: 0.25
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
export {
|
|
102
|
+
Cursor as default
|
|
103
|
+
};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
6
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __reExport = (target, module2, copyDefault, desc) => {
|
|
12
|
+
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(module2))
|
|
14
|
+
if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
|
|
15
|
+
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return target;
|
|
18
|
+
};
|
|
19
|
+
var __toCommonJS = /* @__PURE__ */ ((cache) => {
|
|
20
|
+
return (module2, temp) => {
|
|
21
|
+
return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
|
|
22
|
+
};
|
|
23
|
+
})(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
|
|
24
|
+
var __publicField = (obj, key, value) => {
|
|
25
|
+
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
26
|
+
return value;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
// packages/ui/atoms/Figure/Figure.js
|
|
30
|
+
var Figure_exports = {};
|
|
31
|
+
__export(Figure_exports, {
|
|
32
|
+
default: () => Figure
|
|
33
|
+
});
|
|
34
|
+
var import_js_toolkit = require("@studiometa/js-toolkit");
|
|
35
|
+
var Figure = class extends (0, import_js_toolkit.withMountWhenInView)(import_js_toolkit.Base, { threshold: [0, 1] }) {
|
|
36
|
+
mounted() {
|
|
37
|
+
if (!this.$refs.img) {
|
|
38
|
+
throw new Error("[Figure] The `img` ref is required.");
|
|
39
|
+
}
|
|
40
|
+
if (!(this.$refs.img instanceof HTMLImageElement)) {
|
|
41
|
+
throw new Error("[Figure] The `img` ref must be an `<img>` element.");
|
|
42
|
+
}
|
|
43
|
+
if (this.$refs.img.hasAttribute("data-src")) {
|
|
44
|
+
this.$refs.img.src = this.$refs.img.getAttribute("data-src");
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
__publicField(Figure, "config", {
|
|
49
|
+
name: "Figure",
|
|
50
|
+
refs: ["img"]
|
|
51
|
+
});
|
|
52
|
+
module.exports = __toCommonJS(Figure_exports);
|
|
53
|
+
if (module.exports.default) module.exports = module.exports.default;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @typedef {Object} FigureRefs
|
|
3
|
+
* @property {HTMLImageElement} img
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* @typedef {Object} FigureInterface
|
|
7
|
+
* @property {FigureRefs} $refs
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Figure class.
|
|
11
|
+
*
|
|
12
|
+
* Manager lazyloading image sources.
|
|
13
|
+
*/
|
|
14
|
+
export default class Figure extends Base {
|
|
15
|
+
static config: {
|
|
16
|
+
name: string;
|
|
17
|
+
refs: string[];
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Load on mount.
|
|
21
|
+
* @this {Figure & FigureInterface}
|
|
22
|
+
*/
|
|
23
|
+
mounted(): void;
|
|
24
|
+
}
|
|
25
|
+
export type FigureRefs = {
|
|
26
|
+
img: HTMLImageElement;
|
|
27
|
+
};
|
|
28
|
+
export type FigureInterface = {
|
|
29
|
+
$refs: FigureRefs;
|
|
30
|
+
};
|
|
31
|
+
import { Base } from "@studiometa/js-toolkit";
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
|
+
var __publicField = (obj, key, value) => {
|
|
4
|
+
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
5
|
+
return value;
|
|
6
|
+
};
|
|
7
|
+
import { Base, withMountWhenInView } from "@studiometa/js-toolkit";
|
|
8
|
+
class Figure extends withMountWhenInView(Base, { threshold: [0, 1] }) {
|
|
9
|
+
mounted() {
|
|
10
|
+
if (!this.$refs.img) {
|
|
11
|
+
throw new Error("[Figure] The `img` ref is required.");
|
|
12
|
+
}
|
|
13
|
+
if (!(this.$refs.img instanceof HTMLImageElement)) {
|
|
14
|
+
throw new Error("[Figure] The `img` ref must be an `<img>` element.");
|
|
15
|
+
}
|
|
16
|
+
if (this.$refs.img.hasAttribute("data-src")) {
|
|
17
|
+
this.$refs.img.src = this.$refs.img.getAttribute("data-src");
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
__publicField(Figure, "config", {
|
|
22
|
+
name: "Figure",
|
|
23
|
+
refs: ["img"]
|
|
24
|
+
});
|
|
25
|
+
export {
|
|
26
|
+
Figure as default
|
|
27
|
+
};
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
6
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __reExport = (target, module2, copyDefault, desc) => {
|
|
12
|
+
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(module2))
|
|
14
|
+
if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
|
|
15
|
+
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return target;
|
|
18
|
+
};
|
|
19
|
+
var __toCommonJS = /* @__PURE__ */ ((cache) => {
|
|
20
|
+
return (module2, temp) => {
|
|
21
|
+
return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
|
|
22
|
+
};
|
|
23
|
+
})(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
|
|
24
|
+
var __publicField = (obj, key, value) => {
|
|
25
|
+
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
26
|
+
return value;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
// packages/ui/atoms/LargeText/LargeText.js
|
|
30
|
+
var LargeText_exports = {};
|
|
31
|
+
__export(LargeText_exports, {
|
|
32
|
+
default: () => LargeText
|
|
33
|
+
});
|
|
34
|
+
var import_js_toolkit = require("@studiometa/js-toolkit");
|
|
35
|
+
var import_utils = require("@studiometa/js-toolkit/utils");
|
|
36
|
+
var LargeText = class extends (0, import_js_toolkit.withMountWhenInView)(import_js_toolkit.Base, { rootMargin: "50%" }) {
|
|
37
|
+
constructor() {
|
|
38
|
+
super(...arguments);
|
|
39
|
+
__publicField(this, "translateX", 0);
|
|
40
|
+
__publicField(this, "deltaY", 0);
|
|
41
|
+
__publicField(this, "transform", {
|
|
42
|
+
skewX: 0,
|
|
43
|
+
translateX: 0
|
|
44
|
+
});
|
|
45
|
+
__publicField(this, "width", 0);
|
|
46
|
+
}
|
|
47
|
+
mounted() {
|
|
48
|
+
this.width = this.$refs.target.clientWidth;
|
|
49
|
+
}
|
|
50
|
+
resized() {
|
|
51
|
+
this.width = this.$refs.target.clientWidth;
|
|
52
|
+
}
|
|
53
|
+
scrolled(props) {
|
|
54
|
+
this.deltaY = props.delta.y;
|
|
55
|
+
}
|
|
56
|
+
ticked() {
|
|
57
|
+
this.translateX -= Math.abs(this.deltaY) + 1;
|
|
58
|
+
this.transform.translateX = (0, import_utils.damp)(this.translateX, this.transform.translateX, 0.25);
|
|
59
|
+
this.transform.skewX = (0, import_utils.damp)((0, import_utils.clamp)(this.deltaY / 20 * -1, -0.5, 0.5), this.transform.skewX, 0.25);
|
|
60
|
+
if (Math.abs(this.transform.translateX) >= this.width) {
|
|
61
|
+
this.translateX = 0;
|
|
62
|
+
this.transform.translateX = 0;
|
|
63
|
+
}
|
|
64
|
+
(0, import_utils.nextFrame)(() => {
|
|
65
|
+
this.$refs.target.style.transform = (0, import_utils.matrix)(this.transform) + " translateZ(0px)";
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
__publicField(LargeText, "config", {
|
|
70
|
+
name: "LargeText",
|
|
71
|
+
refs: ["target"]
|
|
72
|
+
});
|
|
73
|
+
module.exports = __toCommonJS(LargeText_exports);
|
|
74
|
+
if (module.exports.default) module.exports = module.exports.default;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @typedef {LargeText & { $refs: { target: HTMLElement } }} LargeTextInterface
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Large text class.
|
|
6
|
+
*/
|
|
7
|
+
export default class LargeText extends Base {
|
|
8
|
+
/**
|
|
9
|
+
* Config.
|
|
10
|
+
*/
|
|
11
|
+
static config: {
|
|
12
|
+
name: string;
|
|
13
|
+
refs: string[];
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Translate X.
|
|
17
|
+
* @type {number}
|
|
18
|
+
*/
|
|
19
|
+
translateX: number;
|
|
20
|
+
/**
|
|
21
|
+
* Scroll delta Y.
|
|
22
|
+
* @type {number}
|
|
23
|
+
*/
|
|
24
|
+
deltaY: number;
|
|
25
|
+
/**
|
|
26
|
+
* Transform values.
|
|
27
|
+
*/
|
|
28
|
+
transform: {
|
|
29
|
+
skewX: number;
|
|
30
|
+
translateX: number;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Target width.
|
|
34
|
+
* @type {number}
|
|
35
|
+
*/
|
|
36
|
+
width: number;
|
|
37
|
+
/**
|
|
38
|
+
* Set width on mount.
|
|
39
|
+
*
|
|
40
|
+
* @this {LargeTextInterface}
|
|
41
|
+
* @returns {void}
|
|
42
|
+
*/
|
|
43
|
+
mounted(): void;
|
|
44
|
+
/**
|
|
45
|
+
* Set width on resize.
|
|
46
|
+
*
|
|
47
|
+
* @this {LargeTextInterface}
|
|
48
|
+
* @returns {void}
|
|
49
|
+
*/
|
|
50
|
+
resized(): void;
|
|
51
|
+
/**
|
|
52
|
+
* Update delta scroll on scroll.
|
|
53
|
+
*
|
|
54
|
+
* @param {import('@studiometa/js-toolkit/services/scroll').ScrollServiceProps} props
|
|
55
|
+
* @returns {void}
|
|
56
|
+
*/
|
|
57
|
+
scrolled(props: import('@studiometa/js-toolkit/services/scroll').ScrollServiceProps): void;
|
|
58
|
+
/**
|
|
59
|
+
* Update values on raf.
|
|
60
|
+
*
|
|
61
|
+
* @this {LargeTextInterface}
|
|
62
|
+
* @returns {void}
|
|
63
|
+
*/
|
|
64
|
+
ticked(): void;
|
|
65
|
+
}
|
|
66
|
+
export type LargeTextInterface = LargeText & {
|
|
67
|
+
$refs: {
|
|
68
|
+
target: HTMLElement;
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
import { Base } from "@studiometa/js-toolkit";
|