@design-edito/tools 0.5.9 → 0.5.10
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/agnostic/arrays/index.d.ts +2 -2
- package/agnostic/arrays/index.js +2 -2
- package/agnostic/colors/index.d.ts +3 -3
- package/agnostic/colors/index.js +3 -3
- package/agnostic/html/hyper-json/smart-tags/coalesced/index.d.ts +19 -19
- package/agnostic/html/hyper-json/smart-tags/coalesced/index.js +19 -19
- package/agnostic/html/hyper-json/smart-tags/isolated/index.d.ts +3 -3
- package/agnostic/html/hyper-json/smart-tags/isolated/index.js +3 -3
- package/agnostic/html/index.d.ts +1 -1
- package/agnostic/html/index.js +1 -1
- package/agnostic/index.d.ts +2 -2
- package/agnostic/index.js +2 -2
- package/agnostic/misc/index.d.ts +1 -1
- package/agnostic/misc/index.js +1 -1
- package/agnostic/misc/logs/index.d.ts +1 -1
- package/agnostic/misc/logs/index.js +1 -1
- package/agnostic/numbers/index.d.ts +1 -1
- package/agnostic/numbers/index.js +1 -1
- package/agnostic/objects/index.d.ts +1 -1
- package/agnostic/objects/index.js +1 -1
- package/agnostic/strings/index.d.ts +1 -1
- package/agnostic/strings/index.js +1 -1
- package/agnostic/subtitles/index.d.ts +1 -1
- package/agnostic/subtitles/index.js +1 -1
- package/agnostic/time/index.d.ts +1 -1
- package/agnostic/time/index.js +1 -1
- package/components/Lightbox/index.d.ts +106 -0
- package/components/Lightbox/index.js +191 -0
- package/components/Lightbox/store.d.ts +43 -0
- package/components/Lightbox/store.js +94 -0
- package/components/index.d.ts +1 -1
- package/components/index.js +1 -1
- package/components/public-classnames.d.ts +1 -1
- package/components/public-classnames.js +1 -1
- package/node/@google-cloud/storage/directory/index.d.ts +1 -1
- package/node/@google-cloud/storage/directory/index.js +1 -1
- package/node/@google-cloud/storage/file/index.d.ts +3 -3
- package/node/@google-cloud/storage/file/index.js +3 -3
- package/node/@google-cloud/storage/index.d.ts +1 -1
- package/node/@google-cloud/storage/index.js +1 -1
- package/node/cloud-storage/operations/index.d.ts +2 -2
- package/node/cloud-storage/operations/index.js +2 -2
- package/node/images/index.d.ts +1 -1
- package/node/images/index.js +1 -1
- package/node/images/transform/operations/index.d.ts +3 -3
- package/node/images/transform/operations/index.js +3 -3
- package/node/index.d.ts +2 -2
- package/node/index.js +2 -2
- package/node/sftp/directory/index.d.ts +1 -1
- package/node/sftp/directory/index.js +1 -1
- package/node/sftp/file/index.d.ts +1 -1
- package/node/sftp/file/index.js +1 -1
- package/package.json +8 -8
- package/components/Theatre/index.d.ts +0 -70
- package/components/Theatre/index.js +0 -85
- /package/components/{Theatre → Lightbox}/styles.module.css +0 -0
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback, useEffect, useId, useLayoutEffect, useRef, useState, useSyncExternalStore } from 'react';
|
|
3
|
+
import { createPortal } from 'react-dom';
|
|
4
|
+
import { clss } from '../../agnostic/css/clss/index.js';
|
|
5
|
+
import { mergeClassNames, useChangeDispatch } from '../utils/index.js';
|
|
6
|
+
import { lightbox as publicClassName } from '../public-classnames.js';
|
|
7
|
+
import { close as closeLightbox, getState, membersOf, open as openLightbox, register, soloGroupOf, step, subscribe, unregister } from './store.js';
|
|
8
|
+
import cssModule from './styles.module.css';
|
|
9
|
+
/**
|
|
10
|
+
* Lightbox component. Holds content in place until opened, then moves it into an
|
|
11
|
+
* overlay covering the page.
|
|
12
|
+
*
|
|
13
|
+
* ### CSS modifiers
|
|
14
|
+
* - `on` - this member is open.
|
|
15
|
+
* - `off` - it is not.
|
|
16
|
+
* - `grouped` - it belongs to a group it did not invent, so navigation is possible.
|
|
17
|
+
*
|
|
18
|
+
* ### CSS elements
|
|
19
|
+
* - `placeholder` - holds the content's last measured size while it is away.
|
|
20
|
+
* - `backdrop` - the overlay, portalled to `document.body`, mounted only while open.
|
|
21
|
+
* - `content` - wraps the moved content inside the lightbox.
|
|
22
|
+
* - `open-btn`, `close-btn`, `prev-btn`, `next-btn`
|
|
23
|
+
*
|
|
24
|
+
* @param props - Component properties.
|
|
25
|
+
* @see {@link Props}
|
|
26
|
+
* @returns A root `<div>` holding the content or its placeholder, plus, while open, a
|
|
27
|
+
* lightbox portalled to the end of `document.body`.
|
|
28
|
+
*
|
|
29
|
+
* @remarks
|
|
30
|
+
* - **[WIP]** Moving a `<video>` keeps it playing on desktop browsers; iOS has been
|
|
31
|
+
* known to pause on a DOM move. Not worth guarding against for now.
|
|
32
|
+
* - **The content is moved, not copied.** A portal relocates the DOM node without
|
|
33
|
+
* changing the element's place in the React tree, so the instance is never
|
|
34
|
+
* unmounted: a playing video keeps playing, at its timecode, and lands back where it
|
|
35
|
+
* was on close. Rendering `children` twice would mount a second, fresh instance and
|
|
36
|
+
* leave the first one running behind the lightbox.
|
|
37
|
+
* - **The lightbox is portalled to `document.body`.** A `position: fixed` overlay left in
|
|
38
|
+
* the article would be trapped by the first ancestor carrying a `transform`, a
|
|
39
|
+
* `filter` or a `contain`, which becomes its containing block.
|
|
40
|
+
* - **A placeholder keeps the layout still.** Its size is the content's last measured
|
|
41
|
+
* one, read while closed; without it the article would collapse around the hole the
|
|
42
|
+
* content leaves.
|
|
43
|
+
* - **Groups are held outside React**, in `./store.ts`: a consumer may render each
|
|
44
|
+
* component in a root of its own, in which case members of a group share no tree
|
|
45
|
+
* and a context could not reach from one to the other.
|
|
46
|
+
* - The lightbox is rendered by whichever member is on it, so navigating hands it over.
|
|
47
|
+
* None of the content is remounted in the process.
|
|
48
|
+
* - This component ships **no appearance**: covering the page, the backdrop and the
|
|
49
|
+
* buttons are the consumer stylesheet's business. Without one, the content is moved
|
|
50
|
+
* to the end of the document and nothing looks like a lightbox.
|
|
51
|
+
*/
|
|
52
|
+
export const Lightbox = ({ group, closeBtnContent, openBtnContent, prevBtnContent, nextBtnContent, isOn: isOnProp, defaultIsOn = false, exitOnEscape, exitOnBgClick, navOnArrowKeys, onOpenButtonClicked, onCloseButtonClicked, onPrevButtonClicked, onNextButtonClicked, onBackgroundClicked, onEscapePressed, onPrevArrowPressed, onNextArrowPressed, onIsOnChanged, children, className }) => {
|
|
53
|
+
// State & refs
|
|
54
|
+
const id = useId();
|
|
55
|
+
const rootRef = useRef(null);
|
|
56
|
+
const backdropRef = useRef(null);
|
|
57
|
+
const sizeRef = useRef(null);
|
|
58
|
+
const [hasAppliedDefault, setHasAppliedDefault] = useState(false);
|
|
59
|
+
const isControlled = isOnProp !== undefined;
|
|
60
|
+
const declaredGroups = group === undefined
|
|
61
|
+
? []
|
|
62
|
+
: (Array.isArray(group) ? group : [group]);
|
|
63
|
+
const isGrouped = declaredGroups.length > 0;
|
|
64
|
+
// A member without a group still needs one to be opened through: its own.
|
|
65
|
+
const groups = isGrouped ? declaredGroups : [soloGroupOf(id)];
|
|
66
|
+
// `groups` is never empty: a member without a declared group gets its own.
|
|
67
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
68
|
+
const ownGroup = groups[0];
|
|
69
|
+
const groupsKey = groups.join(' ');
|
|
70
|
+
const storeState = useSyncExternalStore(subscribe, getState, getState);
|
|
71
|
+
const isOn = isOnProp ?? (storeState.openMemberId === id);
|
|
72
|
+
const openGroup = storeState.openGroup;
|
|
73
|
+
const siblingsCount = isOn && openGroup !== null ? membersOf(openGroup).length : 0;
|
|
74
|
+
// Fx. dep. id, groupsKey - Joins the shared registry, which is what lets another
|
|
75
|
+
// member reach this one. `getElement` rather than the element itself: the registry
|
|
76
|
+
// reads it when it needs to order the group, and never holds it.
|
|
77
|
+
useEffect(() => {
|
|
78
|
+
register({ id, groups, getElement: () => rootRef.current });
|
|
79
|
+
return () => unregister(id);
|
|
80
|
+
}, [id, groupsKey]);
|
|
81
|
+
// Keeps the last size the content had in place, so the placeholder can hold it once
|
|
82
|
+
// the content is gone. Measured while closed only, on render rather than through a
|
|
83
|
+
// standing observer: the content of a lightbox rarely resizes, and one observer per
|
|
84
|
+
// image on a page is a cost with no return.
|
|
85
|
+
useLayoutEffect(() => {
|
|
86
|
+
if (isOn)
|
|
87
|
+
return;
|
|
88
|
+
const root = rootRef.current;
|
|
89
|
+
if (root === null)
|
|
90
|
+
return;
|
|
91
|
+
const { width, height } = root.getBoundingClientRect();
|
|
92
|
+
if (width === 0 && height === 0)
|
|
93
|
+
return;
|
|
94
|
+
sizeRef.current = { width, height };
|
|
95
|
+
});
|
|
96
|
+
// State dispatch
|
|
97
|
+
useChangeDispatch(isOn, onIsOnChanged);
|
|
98
|
+
// User action handlers
|
|
99
|
+
const requestOpen = useCallback(() => {
|
|
100
|
+
if (isControlled)
|
|
101
|
+
return;
|
|
102
|
+
openLightbox(ownGroup, id);
|
|
103
|
+
}, [isControlled, ownGroup, id]);
|
|
104
|
+
const requestClose = useCallback(() => {
|
|
105
|
+
if (isControlled)
|
|
106
|
+
return;
|
|
107
|
+
closeLightbox();
|
|
108
|
+
}, [isControlled]);
|
|
109
|
+
const handleOpenButtonClick = () => {
|
|
110
|
+
onOpenButtonClicked?.(isOn);
|
|
111
|
+
requestOpen();
|
|
112
|
+
};
|
|
113
|
+
const handleCloseButtonClick = () => {
|
|
114
|
+
onCloseButtonClicked?.(isOn);
|
|
115
|
+
requestClose();
|
|
116
|
+
};
|
|
117
|
+
const handlePrevButtonClick = () => {
|
|
118
|
+
onPrevButtonClicked?.(isOn);
|
|
119
|
+
step(-1);
|
|
120
|
+
};
|
|
121
|
+
const handleNextButtonClick = () => {
|
|
122
|
+
onNextButtonClicked?.(isOn);
|
|
123
|
+
step(1);
|
|
124
|
+
};
|
|
125
|
+
const handleBackdropClick = e => {
|
|
126
|
+
if (exitOnBgClick !== true)
|
|
127
|
+
return;
|
|
128
|
+
if (e.target !== backdropRef.current)
|
|
129
|
+
return;
|
|
130
|
+
onBackgroundClicked?.(isOn);
|
|
131
|
+
requestClose();
|
|
132
|
+
};
|
|
133
|
+
// Fx. dep. exitOnEscape, isOn, requestClose, onEscapePressed - Escape closes the
|
|
134
|
+
// lightbox. Listens only while open, so a page of closed lightboxes holds no
|
|
135
|
+
// listener.
|
|
136
|
+
useEffect(() => {
|
|
137
|
+
if (exitOnEscape !== true || !isOn)
|
|
138
|
+
return;
|
|
139
|
+
const handleKeyDown = (e) => {
|
|
140
|
+
if (e.key !== 'Escape')
|
|
141
|
+
return;
|
|
142
|
+
onEscapePressed?.(isOn);
|
|
143
|
+
requestClose();
|
|
144
|
+
};
|
|
145
|
+
window.addEventListener('keydown', handleKeyDown);
|
|
146
|
+
return () => window.removeEventListener('keydown', handleKeyDown);
|
|
147
|
+
}, [exitOnEscape, isOn, requestClose, onEscapePressed]);
|
|
148
|
+
// Fx. dep. navOnArrowKeys, isOn, siblingsCount, onPrevArrowPressed,
|
|
149
|
+
// onNextArrowPressed - The arrow keys walk the open group. Bound only while the
|
|
150
|
+
// lightbox is open and the group holds someone else, so the keys stay the page's the
|
|
151
|
+
// rest of the time.
|
|
152
|
+
useEffect(() => {
|
|
153
|
+
if (navOnArrowKeys !== true || !isOn || siblingsCount < 2)
|
|
154
|
+
return;
|
|
155
|
+
const handleKeyDown = (e) => {
|
|
156
|
+
if (e.key === 'ArrowLeft') {
|
|
157
|
+
onPrevArrowPressed?.(isOn);
|
|
158
|
+
step(-1);
|
|
159
|
+
}
|
|
160
|
+
else if (e.key === 'ArrowRight') {
|
|
161
|
+
onNextArrowPressed?.(isOn);
|
|
162
|
+
step(1);
|
|
163
|
+
}
|
|
164
|
+
};
|
|
165
|
+
window.addEventListener('keydown', handleKeyDown);
|
|
166
|
+
return () => window.removeEventListener('keydown', handleKeyDown);
|
|
167
|
+
}, [navOnArrowKeys, isOn, siblingsCount, onPrevArrowPressed, onNextArrowPressed]);
|
|
168
|
+
// Fx. dep. hasAppliedDefault, isControlled, defaultIsOn, ownGroup, id - An
|
|
169
|
+
// uncontrolled lightbox asked to start open says so once, and never again: the
|
|
170
|
+
// registry owns the state from then on.
|
|
171
|
+
useEffect(() => {
|
|
172
|
+
if (hasAppliedDefault || isControlled || !defaultIsOn)
|
|
173
|
+
return;
|
|
174
|
+
setHasAppliedDefault(true);
|
|
175
|
+
openLightbox(ownGroup, id);
|
|
176
|
+
}, [hasAppliedDefault, isControlled, defaultIsOn, ownGroup, id]);
|
|
177
|
+
// Rendering
|
|
178
|
+
const c = clss(publicClassName, { cssModule });
|
|
179
|
+
const rootClss = mergeClassNames(c(null, {
|
|
180
|
+
on: isOn,
|
|
181
|
+
off: !isOn,
|
|
182
|
+
grouped: isGrouped
|
|
183
|
+
}), className);
|
|
184
|
+
const size = sizeRef.current;
|
|
185
|
+
const overlay = isOn
|
|
186
|
+
? createPortal(_jsxs("div", { className: c('backdrop'), onClick: handleBackdropClick, ref: backdropRef, children: [_jsx("div", { className: c('content'), children: children }), _jsx("button", { type: 'button', className: c('close-btn'), onClick: handleCloseButtonClick, children: closeBtnContent }), siblingsCount > 1 && _jsxs(_Fragment, { children: [_jsx("button", { type: 'button', className: c('prev-btn'), onClick: handlePrevButtonClick, children: prevBtnContent }), _jsx("button", { type: 'button', className: c('next-btn'), onClick: handleNextButtonClick, children: nextBtnContent })] })] }), document.body)
|
|
187
|
+
: null;
|
|
188
|
+
return _jsxs("div", { className: rootClss, ref: rootRef, children: [isOn
|
|
189
|
+
? _jsx("div", { className: c('placeholder'), style: size === null ? undefined : { width: size.width, height: size.height } })
|
|
190
|
+
: children, _jsx("button", { type: 'button', className: c('open-btn'), onClick: handleOpenButtonClick, children: openBtnContent }), overlay] });
|
|
191
|
+
};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The registry of lightbox groups, shared by every {@link Lightbox} on the page.
|
|
3
|
+
*
|
|
4
|
+
* Deliberately outside React. lm-link renders each component in its **own React
|
|
5
|
+
* root** — `renderInTarget` calls `createRoot` per component — so two `<lm-image>`
|
|
6
|
+
* in the same article never share a tree, and a context could not reach from one to
|
|
7
|
+
* the other. A module-level store can.
|
|
8
|
+
*
|
|
9
|
+
* Members are kept unordered here; the order that matters is the **document's**, and
|
|
10
|
+
* it is read from the DOM when a group opens. React's mount order is not it.
|
|
11
|
+
*/
|
|
12
|
+
/** What a member hands the store so the group can find and place it. */
|
|
13
|
+
export type LightboxMember = {
|
|
14
|
+
id: string;
|
|
15
|
+
groups: string[];
|
|
16
|
+
/** The member's anchor in the page, for ordering. `null` before it mounts. */
|
|
17
|
+
getElement: () => HTMLElement | null;
|
|
18
|
+
};
|
|
19
|
+
export type LightboxState = {
|
|
20
|
+
/** The group currently open, `null` when nothing is. */
|
|
21
|
+
openGroup: string | null;
|
|
22
|
+
/** The member currently shown. */
|
|
23
|
+
openMemberId: string | null;
|
|
24
|
+
};
|
|
25
|
+
export declare function subscribe(listener: () => void): () => void;
|
|
26
|
+
export declare function getState(): LightboxState;
|
|
27
|
+
/** A member's own group, when it declared none: it is a group of one. */
|
|
28
|
+
export declare function soloGroupOf(id: string): string;
|
|
29
|
+
export declare function register(member: LightboxMember): void;
|
|
30
|
+
export declare function unregister(id: string): void;
|
|
31
|
+
/**
|
|
32
|
+
* The members of a group, in **document order**.
|
|
33
|
+
*
|
|
34
|
+
* `compareDocumentPosition` rather than mount order: React mounts a tree in its own
|
|
35
|
+
* order, and lm-link mounts each component in a root of its own, so nothing
|
|
36
|
+
* guarantees the two match. Only runs when a group opens or navigates, over a
|
|
37
|
+
* handful of members.
|
|
38
|
+
*/
|
|
39
|
+
export declare function membersOf(group: string): LightboxMember[];
|
|
40
|
+
export declare function open(group: string, memberId: string): void;
|
|
41
|
+
export declare function close(): void;
|
|
42
|
+
/** Moves to another member of the open group by `offset`, clamped at both ends. */
|
|
43
|
+
export declare function step(offset: number): void;
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The registry of lightbox groups, shared by every {@link Lightbox} on the page.
|
|
3
|
+
*
|
|
4
|
+
* Deliberately outside React. lm-link renders each component in its **own React
|
|
5
|
+
* root** — `renderInTarget` calls `createRoot` per component — so two `<lm-image>`
|
|
6
|
+
* in the same article never share a tree, and a context could not reach from one to
|
|
7
|
+
* the other. A module-level store can.
|
|
8
|
+
*
|
|
9
|
+
* Members are kept unordered here; the order that matters is the **document's**, and
|
|
10
|
+
* it is read from the DOM when a group opens. React's mount order is not it.
|
|
11
|
+
*/
|
|
12
|
+
const members = new Map();
|
|
13
|
+
const listeners = new Set();
|
|
14
|
+
let state = {
|
|
15
|
+
openGroup: null,
|
|
16
|
+
openMemberId: null
|
|
17
|
+
};
|
|
18
|
+
function emit() {
|
|
19
|
+
for (const listener of listeners)
|
|
20
|
+
listener();
|
|
21
|
+
}
|
|
22
|
+
function setState(next) {
|
|
23
|
+
if (next.openGroup === state.openGroup
|
|
24
|
+
&& next.openMemberId === state.openMemberId)
|
|
25
|
+
return;
|
|
26
|
+
state = next;
|
|
27
|
+
emit();
|
|
28
|
+
}
|
|
29
|
+
export function subscribe(listener) {
|
|
30
|
+
listeners.add(listener);
|
|
31
|
+
return () => { listeners.delete(listener); };
|
|
32
|
+
}
|
|
33
|
+
export function getState() {
|
|
34
|
+
return state;
|
|
35
|
+
}
|
|
36
|
+
/** A member's own group, when it declared none: it is a group of one. */
|
|
37
|
+
export function soloGroupOf(id) {
|
|
38
|
+
return `solo:${id}`;
|
|
39
|
+
}
|
|
40
|
+
export function register(member) {
|
|
41
|
+
members.set(member.id, member);
|
|
42
|
+
emit();
|
|
43
|
+
}
|
|
44
|
+
export function unregister(id) {
|
|
45
|
+
members.delete(id);
|
|
46
|
+
// A member leaving while it is the one shown would strand the group on nothing.
|
|
47
|
+
if (state.openMemberId === id)
|
|
48
|
+
setState({ openGroup: null, openMemberId: null });
|
|
49
|
+
else
|
|
50
|
+
emit();
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* The members of a group, in **document order**.
|
|
54
|
+
*
|
|
55
|
+
* `compareDocumentPosition` rather than mount order: React mounts a tree in its own
|
|
56
|
+
* order, and lm-link mounts each component in a root of its own, so nothing
|
|
57
|
+
* guarantees the two match. Only runs when a group opens or navigates, over a
|
|
58
|
+
* handful of members.
|
|
59
|
+
*/
|
|
60
|
+
export function membersOf(group) {
|
|
61
|
+
const found = [...members.values()].filter(member => member.groups.includes(group));
|
|
62
|
+
return found.sort((a, b) => {
|
|
63
|
+
const aElt = a.getElement();
|
|
64
|
+
const bElt = b.getElement();
|
|
65
|
+
if (aElt === null || bElt === null)
|
|
66
|
+
return 0;
|
|
67
|
+
const position = aElt.compareDocumentPosition(bElt);
|
|
68
|
+
if ((position & Node.DOCUMENT_POSITION_FOLLOWING) !== 0)
|
|
69
|
+
return -1;
|
|
70
|
+
if ((position & Node.DOCUMENT_POSITION_PRECEDING) !== 0)
|
|
71
|
+
return 1;
|
|
72
|
+
return 0;
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
export function open(group, memberId) {
|
|
76
|
+
setState({ openGroup: group, openMemberId: memberId });
|
|
77
|
+
}
|
|
78
|
+
export function close() {
|
|
79
|
+
setState({ openGroup: null, openMemberId: null });
|
|
80
|
+
}
|
|
81
|
+
/** Moves to another member of the open group by `offset`, clamped at both ends. */
|
|
82
|
+
export function step(offset) {
|
|
83
|
+
const { openGroup, openMemberId } = state;
|
|
84
|
+
if (openGroup === null || openMemberId === null)
|
|
85
|
+
return;
|
|
86
|
+
const ordered = membersOf(openGroup);
|
|
87
|
+
const current = ordered.findIndex(member => member.id === openMemberId);
|
|
88
|
+
if (current === -1)
|
|
89
|
+
return;
|
|
90
|
+
const target = ordered[Math.min(ordered.length - 1, Math.max(0, current + offset))];
|
|
91
|
+
if (target === undefined)
|
|
92
|
+
return;
|
|
93
|
+
setState({ openGroup, openMemberId: target.id });
|
|
94
|
+
}
|
package/components/index.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ export * as image from './Image/index.js'
|
|
|
10
10
|
export * as input from './Input/index.js'
|
|
11
11
|
export * as intersectionObserver from './IntersectionObserver/index.js'
|
|
12
12
|
export * as jsonEditor from './JsonEditor/index.js'
|
|
13
|
+
export * as lightbox from './Lightbox/index.js'
|
|
13
14
|
export * as listLoader from './ListLoader/index.js'
|
|
14
15
|
export * as overlayer from './Overlayer/index.js'
|
|
15
16
|
export * as paginator from './Paginator/index.js'
|
|
@@ -21,7 +22,6 @@ export * as sequencer from './Sequencer/index.js'
|
|
|
21
22
|
export * as shadowRoot from './ShadowRoot/index.js'
|
|
22
23
|
export * as subtitles from './Subtitles/index.js'
|
|
23
24
|
export * as textarea from './Textarea/index.js'
|
|
24
|
-
export * as theatre from './Theatre/index.js'
|
|
25
25
|
export * as uiModule from './UIModule/index.js'
|
|
26
26
|
export * as video from './Video/index.js'
|
|
27
27
|
export * as wipAudioQuote from './_WIP_AudioQuote/index.js'
|
package/components/index.js
CHANGED
|
@@ -10,6 +10,7 @@ export * as image from './Image/index.js'
|
|
|
10
10
|
export * as input from './Input/index.js'
|
|
11
11
|
export * as intersectionObserver from './IntersectionObserver/index.js'
|
|
12
12
|
export * as jsonEditor from './JsonEditor/index.js'
|
|
13
|
+
export * as lightbox from './Lightbox/index.js'
|
|
13
14
|
export * as listLoader from './ListLoader/index.js'
|
|
14
15
|
export * as overlayer from './Overlayer/index.js'
|
|
15
16
|
export * as paginator from './Paginator/index.js'
|
|
@@ -21,7 +22,6 @@ export * as sequencer from './Sequencer/index.js'
|
|
|
21
22
|
export * as shadowRoot from './ShadowRoot/index.js'
|
|
22
23
|
export * as subtitles from './Subtitles/index.js'
|
|
23
24
|
export * as textarea from './Textarea/index.js'
|
|
24
|
-
export * as theatre from './Theatre/index.js'
|
|
25
25
|
export * as uiModule from './UIModule/index.js'
|
|
26
26
|
export * as video from './Video/index.js'
|
|
27
27
|
export * as wipAudioQuote from './_WIP_AudioQuote/index.js'
|
|
@@ -10,6 +10,7 @@ export declare const image = "lm-image";
|
|
|
10
10
|
export declare const input = "lm-input";
|
|
11
11
|
export declare const intersectionObserver = "lm-intersection-observer";
|
|
12
12
|
export declare const jsonEditor = "lm-json-editor";
|
|
13
|
+
export declare const lightbox = "lm-lightbox";
|
|
13
14
|
export declare const listLoader = "lm-list-loader";
|
|
14
15
|
export declare const overlayer = "lm-overlayer";
|
|
15
16
|
export declare const paginator = "lm-paginator";
|
|
@@ -21,7 +22,6 @@ export declare const sequencer = "lm-sequencer";
|
|
|
21
22
|
export declare const shadowRoot = "lm-shadow-root";
|
|
22
23
|
export declare const subtitles = "lm-subtitles";
|
|
23
24
|
export declare const textarea = "lm-textarea";
|
|
24
|
-
export declare const theatre = "lm-theatre";
|
|
25
25
|
export declare const uiModule = "lm-ui-module";
|
|
26
26
|
export declare const video = "lm-video";
|
|
27
27
|
export declare const videoWrapper = "lm-video-wrapper";
|
|
@@ -10,6 +10,7 @@ export const image = 'lm-image';
|
|
|
10
10
|
export const input = 'lm-input';
|
|
11
11
|
export const intersectionObserver = 'lm-intersection-observer';
|
|
12
12
|
export const jsonEditor = 'lm-json-editor';
|
|
13
|
+
export const lightbox = 'lm-lightbox';
|
|
13
14
|
export const listLoader = 'lm-list-loader';
|
|
14
15
|
export const overlayer = 'lm-overlayer';
|
|
15
16
|
export const paginator = 'lm-paginator';
|
|
@@ -21,7 +22,6 @@ export const sequencer = 'lm-sequencer';
|
|
|
21
22
|
export const shadowRoot = 'lm-shadow-root';
|
|
22
23
|
export const subtitles = 'lm-subtitles';
|
|
23
24
|
export const textarea = 'lm-textarea';
|
|
24
|
-
export const theatre = 'lm-theatre';
|
|
25
25
|
export const uiModule = 'lm-ui-module';
|
|
26
26
|
export const video = 'lm-video';
|
|
27
27
|
export const videoWrapper = 'lm-video-wrapper';
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
export * as copy from './copy/index.js'
|
|
2
|
-
export * as download from './download/index.js'
|
|
3
|
-
export * as exists from './exists/index.js'
|
|
4
2
|
export * as generateSignedUrl from './generate-signed-url/index.js'
|
|
3
|
+
export * as download from './download/index.js'
|
|
5
4
|
export * as getMetadata from './get-metadata/index.js'
|
|
6
5
|
export * as getPermissions from './get-permissions/index.js'
|
|
7
6
|
export * as move from './move/index.js'
|
|
8
7
|
export * as remove from './remove/index.js'
|
|
9
|
-
export * as revokeSignedUrls from './revoke-signed-urls/index.js'
|
|
10
8
|
export * as stat from './stat/index.js'
|
|
9
|
+
export * as revokeSignedUrls from './revoke-signed-urls/index.js'
|
|
10
|
+
export * as exists from './exists/index.js'
|
|
11
11
|
export * as updateMetadata from './update-metadata/index.js'
|
|
12
12
|
export * as upload from './upload/index.js'
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
export * as copy from './copy/index.js'
|
|
2
|
-
export * as download from './download/index.js'
|
|
3
|
-
export * as exists from './exists/index.js'
|
|
4
2
|
export * as generateSignedUrl from './generate-signed-url/index.js'
|
|
3
|
+
export * as download from './download/index.js'
|
|
5
4
|
export * as getMetadata from './get-metadata/index.js'
|
|
6
5
|
export * as getPermissions from './get-permissions/index.js'
|
|
7
6
|
export * as move from './move/index.js'
|
|
8
7
|
export * as remove from './remove/index.js'
|
|
9
|
-
export * as revokeSignedUrls from './revoke-signed-urls/index.js'
|
|
10
8
|
export * as stat from './stat/index.js'
|
|
9
|
+
export * as revokeSignedUrls from './revoke-signed-urls/index.js'
|
|
10
|
+
export * as exists from './exists/index.js'
|
|
11
11
|
export * as updateMetadata from './update-metadata/index.js'
|
|
12
12
|
export * as upload from './upload/index.js'
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
export * as copyDir from './copy-dir/index.js'
|
|
2
|
-
export * as downloadFile from './download-file/index.js'
|
|
3
2
|
export * as copyFile from './copy-file/index.js'
|
|
3
|
+
export * as downloadFile from './download-file/index.js'
|
|
4
4
|
export * as existsFile from './exists-file/index.js'
|
|
5
5
|
export * as listDir from './list-dir/index.js'
|
|
6
6
|
export * as moveDir from './move-dir/index.js'
|
|
7
|
-
export * as removeDir from './remove-dir/index.js'
|
|
8
7
|
export * as moveFile from './move-file/index.js'
|
|
8
|
+
export * as removeDir from './remove-dir/index.js'
|
|
9
9
|
export * as removeFile from './remove-file/index.js'
|
|
10
10
|
export * as statFile from './stat-file/index.js'
|
|
11
11
|
export * as uploadFile from './upload-file/index.js'
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
export * as copyDir from './copy-dir/index.js'
|
|
2
|
-
export * as downloadFile from './download-file/index.js'
|
|
3
2
|
export * as copyFile from './copy-file/index.js'
|
|
3
|
+
export * as downloadFile from './download-file/index.js'
|
|
4
4
|
export * as existsFile from './exists-file/index.js'
|
|
5
5
|
export * as listDir from './list-dir/index.js'
|
|
6
6
|
export * as moveDir from './move-dir/index.js'
|
|
7
|
-
export * as removeDir from './remove-dir/index.js'
|
|
8
7
|
export * as moveFile from './move-file/index.js'
|
|
8
|
+
export * as removeDir from './remove-dir/index.js'
|
|
9
9
|
export * as removeFile from './remove-file/index.js'
|
|
10
10
|
export * as statFile from './stat-file/index.js'
|
|
11
11
|
export * as uploadFile from './upload-file/index.js'
|
package/node/images/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export * as create from './create/index.js'
|
|
2
2
|
export * as format from './format/index.js'
|
|
3
|
-
export * as metadata from './metadata/index.js'
|
|
4
3
|
export * as transform from './transform/index.js'
|
|
4
|
+
export * as metadata from './metadata/index.js'
|
|
5
5
|
export * as utils from './utils/index.js'
|
package/node/images/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export * as create from './create/index.js'
|
|
2
2
|
export * as format from './format/index.js'
|
|
3
|
-
export * as metadata from './metadata/index.js'
|
|
4
3
|
export * as transform from './transform/index.js'
|
|
4
|
+
export * as metadata from './metadata/index.js'
|
|
5
5
|
export * as utils from './utils/index.js'
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
export * as blur from './blur/index.js'
|
|
2
|
-
export * as extend from './extend/index.js'
|
|
3
2
|
export * as brighten from './brighten/index.js'
|
|
3
|
+
export * as extend from './extend/index.js'
|
|
4
4
|
export * as extract from './extract/index.js'
|
|
5
5
|
export * as flatten from './flatten/index.js'
|
|
6
6
|
export * as flip from './flip/index.js'
|
|
7
|
-
export * as flop from './flop/index.js'
|
|
8
|
-
export * as level from './level/index.js'
|
|
9
7
|
export * as hue from './hue/index.js'
|
|
8
|
+
export * as level from './level/index.js'
|
|
10
9
|
export * as lighten from './lighten/index.js'
|
|
11
10
|
export * as normalize from './normalize/index.js'
|
|
12
11
|
export * as overlay from './overlay/index.js'
|
|
13
12
|
export * as resize from './resize/index.js'
|
|
13
|
+
export * as flop from './flop/index.js'
|
|
14
14
|
export * as rotate from './rotate/index.js'
|
|
15
15
|
export * as saturate from './saturate/index.js'
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
export * as blur from './blur/index.js'
|
|
2
|
-
export * as extend from './extend/index.js'
|
|
3
2
|
export * as brighten from './brighten/index.js'
|
|
3
|
+
export * as extend from './extend/index.js'
|
|
4
4
|
export * as extract from './extract/index.js'
|
|
5
5
|
export * as flatten from './flatten/index.js'
|
|
6
6
|
export * as flip from './flip/index.js'
|
|
7
|
-
export * as flop from './flop/index.js'
|
|
8
|
-
export * as level from './level/index.js'
|
|
9
7
|
export * as hue from './hue/index.js'
|
|
8
|
+
export * as level from './level/index.js'
|
|
10
9
|
export * as lighten from './lighten/index.js'
|
|
11
10
|
export * as normalize from './normalize/index.js'
|
|
12
11
|
export * as overlay from './overlay/index.js'
|
|
13
12
|
export * as resize from './resize/index.js'
|
|
13
|
+
export * as flop from './flop/index.js'
|
|
14
14
|
export * as rotate from './rotate/index.js'
|
|
15
15
|
export * as saturate from './saturate/index.js'
|
package/node/index.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
export * as awsS3 from './@aws-s3/index.js'
|
|
2
|
-
export * as express from './@express/index.js'
|
|
3
2
|
export * as designEdito from './@design-edito/index.js'
|
|
3
|
+
export * as express from './@express/index.js'
|
|
4
4
|
export * as googleCloud from './@google-cloud/index.js'
|
|
5
5
|
export * as cloudStorage from './cloud-storage/index.js'
|
|
6
6
|
export * as encryption from './encryption/index.js'
|
|
7
7
|
export * as files from './files/index.js'
|
|
8
8
|
export * as ftps from './ftps/index.js'
|
|
9
|
-
export * as process from './process/index.js'
|
|
10
9
|
export * as images from './images/index.js'
|
|
10
|
+
export * as process from './process/index.js'
|
|
11
11
|
export * as sftp from './sftp/index.js'
|
package/node/index.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
export * as awsS3 from './@aws-s3/index.js'
|
|
2
|
-
export * as express from './@express/index.js'
|
|
3
2
|
export * as designEdito from './@design-edito/index.js'
|
|
3
|
+
export * as express from './@express/index.js'
|
|
4
4
|
export * as googleCloud from './@google-cloud/index.js'
|
|
5
5
|
export * as cloudStorage from './cloud-storage/index.js'
|
|
6
6
|
export * as encryption from './encryption/index.js'
|
|
7
7
|
export * as files from './files/index.js'
|
|
8
8
|
export * as ftps from './ftps/index.js'
|
|
9
|
-
export * as process from './process/index.js'
|
|
10
9
|
export * as images from './images/index.js'
|
|
10
|
+
export * as process from './process/index.js'
|
|
11
11
|
export * as sftp from './sftp/index.js'
|
|
@@ -2,6 +2,6 @@ export * as copy from './copy/index.js'
|
|
|
2
2
|
export * as download from './download/index.js'
|
|
3
3
|
export * as exists from './exists/index.js'
|
|
4
4
|
export * as move from './move/index.js'
|
|
5
|
-
export * as remove from './remove/index.js'
|
|
6
5
|
export * as stat from './stat/index.js'
|
|
6
|
+
export * as remove from './remove/index.js'
|
|
7
7
|
export * as upload from './upload/index.js'
|
package/node/sftp/file/index.js
CHANGED
|
@@ -2,6 +2,6 @@ export * as copy from './copy/index.js'
|
|
|
2
2
|
export * as download from './download/index.js'
|
|
3
3
|
export * as exists from './exists/index.js'
|
|
4
4
|
export * as move from './move/index.js'
|
|
5
|
-
export * as remove from './remove/index.js'
|
|
6
5
|
export * as stat from './stat/index.js'
|
|
6
|
+
export * as remove from './remove/index.js'
|
|
7
7
|
export * as upload from './upload/index.js'
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@design-edito/tools",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.10",
|
|
4
4
|
"description": "",
|
|
5
5
|
"author": "Maxime Fabas",
|
|
6
6
|
"license": "ISC",
|
|
@@ -1495,6 +1495,13 @@
|
|
|
1495
1495
|
"import": "./components/JsonEditor/types.js",
|
|
1496
1496
|
"types": "./components/JsonEditor/types.d.ts"
|
|
1497
1497
|
},
|
|
1498
|
+
"./components/Lightbox": {
|
|
1499
|
+
"import": "./components/Lightbox/index.js",
|
|
1500
|
+
"types": "./components/Lightbox/index.d.ts"
|
|
1501
|
+
},
|
|
1502
|
+
"./components/Lightbox/index.js": {
|
|
1503
|
+
"import": "./components/Lightbox/index.js"
|
|
1504
|
+
},
|
|
1498
1505
|
"./components/ListLoader": {
|
|
1499
1506
|
"import": "./components/ListLoader/index.js",
|
|
1500
1507
|
"types": "./components/ListLoader/index.d.ts"
|
|
@@ -1572,13 +1579,6 @@
|
|
|
1572
1579
|
"./components/Textarea/index.js": {
|
|
1573
1580
|
"import": "./components/Textarea/index.js"
|
|
1574
1581
|
},
|
|
1575
|
-
"./components/Theatre": {
|
|
1576
|
-
"import": "./components/Theatre/index.js",
|
|
1577
|
-
"types": "./components/Theatre/index.d.ts"
|
|
1578
|
-
},
|
|
1579
|
-
"./components/Theatre/index.js": {
|
|
1580
|
-
"import": "./components/Theatre/index.js"
|
|
1581
|
-
},
|
|
1582
1582
|
"./components/UIModule": {
|
|
1583
1583
|
"import": "./components/UIModule/index.js",
|
|
1584
1584
|
"types": "./components/UIModule/index.d.ts"
|