@plitzi/sdk-elements 0.37.9 → 0.37.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/CHANGELOG.md +594 -0
- package/dist/Element/ElementWords.d.ts +16 -0
- package/dist/Element/ElementWords.mjs +19 -0
- package/dist/Element/RootElement.mjs +15 -12
- package/dist/Element/helpers/elementConstants.mjs +27 -0
- package/dist/Element/helpers/renderStaticTag.d.ts +3 -1
- package/dist/Element/helpers/renderStaticTag.mjs +6 -5
- package/dist/Element/hooks/useElementDataSource.mjs +20 -19
- package/dist/Element/hooks/useInternalItems.mjs +33 -31
- package/dist/Element/hooks/useIntervalTriggers.d.ts +17 -0
- package/dist/Element/hooks/useIntervalTriggers.mjs +37 -0
- package/dist/Element/hooks/useRootElementInteractions.d.ts +6 -2
- package/dist/Element/hooks/useRootElementInteractions.mjs +84 -63
- package/dist/Element/hooks/useScrollInteractions.d.ts +20 -0
- package/dist/Element/hooks/useScrollInteractions.mjs +58 -0
- package/dist/components/IconField/IconField.d.ts +8 -0
- package/dist/components/IconField/IconField.mjs +41 -0
- package/dist/components/IconField/index.d.ts +2 -0
- package/dist/components/IconField/index.mjs +2 -0
- package/dist/components/IconPicker/IconPicker.d.ts +11 -0
- package/dist/components/IconPicker/IconPicker.mjs +82 -0
- package/dist/components/IconPicker/index.d.ts +2 -0
- package/dist/components/IconPicker/index.mjs +2 -0
- package/dist/dataSource/GlobalSources.mjs +102 -83
- package/dist/dataSource/useFlag.d.ts +9 -0
- package/dist/dataSource/useFlag.mjs +8 -0
- package/dist/elements/advanced/BlockHtml/declaration.d.ts +1 -1
- package/dist/elements/advanced/BlockHtml/declaration.mjs +1 -1
- package/dist/elements/advanced/BlockHtml/index.d.ts +1 -1
- package/dist/elements/advanced/BlockJsx/Settings.mjs +2 -1
- package/dist/elements/advanced/BlockJsx/declaration.d.ts +1 -1
- package/dist/elements/advanced/BlockJsx/declaration.mjs +1 -1
- package/dist/elements/advanced/BlockJsx/index.d.ts +1 -1
- package/dist/elements/advanced/Custom/declaration.d.ts +1 -1
- package/dist/elements/advanced/Custom/declaration.mjs +1 -1
- package/dist/elements/advanced/Custom/index.d.ts +1 -1
- package/dist/elements/advanced/NodeHtml/declaration.d.ts +3 -3
- package/dist/elements/advanced/NodeHtml/declaration.mjs +1 -1
- package/dist/elements/advanced/NodeHtml/index.d.ts +3 -3
- package/dist/elements/advanced/Reference/declaration.d.ts +1 -1
- package/dist/elements/advanced/Reference/declaration.mjs +1 -1
- package/dist/elements/advanced/Reference/index.d.ts +1 -1
- package/dist/elements/basic/Button/Button.d.ts +9 -1
- package/dist/elements/basic/Button/Button.mjs +31 -19
- package/dist/elements/basic/Button/Settings.d.ts +3 -1
- package/dist/elements/basic/Button/Settings.mjs +39 -33
- package/dist/elements/basic/Button/declaration.d.ts +7 -1
- package/dist/elements/basic/Button/declaration.mjs +10 -4
- package/dist/elements/basic/Button/index.d.ts +7 -1
- package/dist/elements/basic/Dropdown/DropdownPopup/declaration.d.ts +1 -1
- package/dist/elements/basic/Dropdown/DropdownPopup/declaration.mjs +1 -1
- package/dist/elements/basic/Dropdown/DropdownPopup/index.d.ts +1 -1
- package/dist/elements/basic/Dropdown/declaration.d.ts +1 -1
- package/dist/elements/basic/Dropdown/declaration.mjs +1 -1
- package/dist/elements/basic/Dropdown/index.d.ts +2 -2
- package/dist/elements/basic/Heading/declaration.d.ts +1 -1
- package/dist/elements/basic/Heading/declaration.mjs +1 -1
- package/dist/elements/basic/Heading/index.d.ts +1 -1
- package/dist/elements/basic/Link/Link.d.ts +20 -1
- package/dist/elements/basic/Link/Link.mjs +67 -47
- package/dist/elements/basic/Link/Settings.d.ts +6 -1
- package/dist/elements/basic/Link/Settings.mjs +91 -58
- package/dist/elements/basic/Link/declaration.d.ts +14 -1
- package/dist/elements/basic/Link/declaration.mjs +15 -5
- package/dist/elements/basic/Link/index.d.ts +14 -1
- package/dist/elements/basic/Link/isCurrentPage.d.ts +5 -0
- package/dist/elements/basic/Link/isCurrentPage.mjs +12 -0
- package/dist/elements/basic/Markdown/declaration.d.ts +1 -1
- package/dist/elements/basic/Markdown/declaration.mjs +1 -1
- package/dist/elements/basic/Markdown/index.d.ts +1 -1
- package/dist/elements/basic/Paragraph/declaration.d.ts +1 -1
- package/dist/elements/basic/Paragraph/declaration.mjs +1 -1
- package/dist/elements/basic/Paragraph/index.d.ts +1 -1
- package/dist/elements/basic/RichText/declaration.d.ts +1 -1
- package/dist/elements/basic/RichText/declaration.mjs +1 -1
- package/dist/elements/basic/RichText/index.d.ts +1 -1
- package/dist/elements/basic/Text/declaration.d.ts +1 -1
- package/dist/elements/basic/Text/declaration.mjs +1 -1
- package/dist/elements/basic/Text/index.d.ts +1 -1
- package/dist/elements/basic/ThemeToggle/declaration.d.ts +1 -1
- package/dist/elements/basic/ThemeToggle/declaration.mjs +1 -1
- package/dist/elements/basic/ThemeToggle/index.d.ts +1 -1
- package/dist/elements/declarations/index.d.ts +362 -40
- package/dist/elements/declarations/index.mjs +40 -32
- package/dist/elements/form/Form/declaration.d.ts +1 -1
- package/dist/elements/form/Form/declaration.mjs +1 -1
- package/dist/elements/form/Form/index.d.ts +1 -1
- package/dist/elements/form/FormControl/FormControl.mjs +1 -1
- package/dist/elements/form/FormControl/declaration.d.ts +1 -1
- package/dist/elements/form/FormControl/declaration.mjs +1 -1
- package/dist/elements/form/FormControl/index.d.ts +1 -1
- package/dist/elements/index.d.ts +7 -1
- package/dist/elements/index.mjs +30 -24
- package/dist/elements/internal/LayoutContainer/declaration.d.ts +1 -1
- package/dist/elements/internal/LayoutContainer/declaration.mjs +1 -1
- package/dist/elements/internal/LayoutContainer/index.d.ts +1 -1
- package/dist/elements/internal/Loading/declaration.d.ts +1 -1
- package/dist/elements/internal/Loading/declaration.mjs +1 -1
- package/dist/elements/internal/Loading/index.d.ts +1 -1
- package/dist/elements/internal/NotFound/declaration.d.ts +1 -1
- package/dist/elements/internal/NotFound/declaration.mjs +1 -1
- package/dist/elements/internal/NotFound/index.d.ts +1 -1
- package/dist/elements/internal/Page/declaration.d.ts +1 -1
- package/dist/elements/internal/Page/declaration.mjs +1 -1
- package/dist/elements/internal/Page/index.d.ts +1 -1
- package/dist/elements/media/Embed/Embed.d.ts +22 -0
- package/dist/elements/media/Embed/Embed.mjs +29 -0
- package/dist/elements/media/Embed/Settings.d.ts +10 -0
- package/dist/elements/media/Embed/Settings.mjs +51 -0
- package/dist/elements/media/Embed/declaration.d.ts +70 -0
- package/dist/elements/media/Embed/declaration.mjs +54 -0
- package/dist/elements/media/Embed/embeddableSrc.d.ts +5 -0
- package/dist/elements/media/Embed/embeddableSrc.mjs +4 -0
- package/dist/elements/media/Embed/index.d.ts +69 -0
- package/dist/elements/media/Embed/index.mjs +6 -0
- package/dist/elements/media/FontAwesome/Settings.mjs +32 -100
- package/dist/elements/media/FontAwesome/declaration.d.ts +1 -1
- package/dist/elements/media/FontAwesome/declaration.mjs +1 -1
- package/dist/elements/media/FontAwesome/index.d.ts +1 -1
- package/dist/elements/media/Image/Image.d.ts +11 -1
- package/dist/elements/media/Image/Image.mjs +33 -23
- package/dist/elements/media/Image/Settings.d.ts +4 -1
- package/dist/elements/media/Image/Settings.mjs +32 -9
- package/dist/elements/media/Image/declaration.d.ts +4 -1
- package/dist/elements/media/Image/declaration.mjs +1 -1
- package/dist/elements/media/Image/index.d.ts +4 -1
- package/dist/elements/media/Svg/Settings.d.ts +7 -0
- package/dist/elements/media/Svg/Settings.mjs +24 -0
- package/dist/elements/media/Svg/Svg.d.ts +16 -0
- package/dist/elements/media/Svg/Svg.mjs +31 -0
- package/dist/elements/media/Svg/declaration.d.ts +61 -0
- package/dist/elements/media/Svg/declaration.mjs +49 -0
- package/dist/elements/media/Svg/index.d.ts +60 -0
- package/dist/elements/media/Svg/index.mjs +6 -0
- package/dist/elements/media/Svg/sanitizeSvg.d.ts +13 -0
- package/dist/elements/media/Svg/sanitizeSvg.mjs +5 -0
- package/dist/elements/media/Video/declaration.d.ts +1 -1
- package/dist/elements/media/Video/declaration.mjs +1 -1
- package/dist/elements/media/Video/index.d.ts +1 -1
- package/dist/elements/provider/ApiContainer/ApiContainer.d.ts +6 -1
- package/dist/elements/provider/ApiContainer/ApiContainer.mjs +118 -112
- package/dist/elements/provider/ApiContainer/Settings.d.ts +2 -1
- package/dist/elements/provider/ApiContainer/Settings.mjs +45 -37
- package/dist/elements/provider/ApiContainer/declaration.d.ts +1 -1
- package/dist/elements/provider/ApiContainer/declaration.mjs +1 -1
- package/dist/elements/provider/ApiContainer/helpers/loadingSlot.d.ts +6 -0
- package/dist/elements/provider/ApiContainer/helpers/loadingSlot.mjs +8 -0
- package/dist/elements/provider/ApiContainer/index.d.ts +1 -1
- package/dist/elements/provider/Channel/declaration.d.ts +1 -1
- package/dist/elements/provider/Channel/declaration.mjs +1 -1
- package/dist/elements/provider/Channel/index.d.ts +1 -1
- package/dist/elements/settings.mjs +40 -32
- package/dist/elements/structure/Carousel/Carousel.d.ts +32 -0
- package/dist/elements/structure/Carousel/Carousel.mjs +183 -0
- package/dist/elements/structure/Carousel/CarouselContext.d.ts +29 -0
- package/dist/elements/structure/Carousel/CarouselContext.mjs +6 -0
- package/dist/elements/structure/Carousel/CarouselTrack/CarouselTrack.d.ts +15 -0
- package/dist/elements/structure/Carousel/CarouselTrack/CarouselTrack.mjs +51 -0
- package/dist/elements/structure/Carousel/CarouselTrack/Settings.d.ts +2 -0
- package/dist/elements/structure/Carousel/CarouselTrack/Settings.mjs +8 -0
- package/dist/elements/structure/Carousel/CarouselTrack/components/CarouselSlide/CarouselSlide.d.ts +15 -0
- package/dist/elements/structure/Carousel/CarouselTrack/components/CarouselSlide/CarouselSlide.mjs +28 -0
- package/dist/elements/structure/Carousel/CarouselTrack/components/CarouselSlide/index.d.ts +2 -0
- package/dist/elements/structure/Carousel/CarouselTrack/components/CarouselSlide/index.mjs +2 -0
- package/dist/elements/structure/Carousel/CarouselTrack/components/MarqueeTrack/MarqueeTrack.d.ts +18 -0
- package/dist/elements/structure/Carousel/CarouselTrack/components/MarqueeTrack/MarqueeTrack.mjs +41 -0
- package/dist/elements/structure/Carousel/CarouselTrack/components/MarqueeTrack/index.d.ts +2 -0
- package/dist/elements/structure/Carousel/CarouselTrack/components/MarqueeTrack/index.mjs +2 -0
- package/dist/elements/structure/Carousel/CarouselTrack/components/ScrollTrack/ScrollTrack.d.ts +12 -0
- package/dist/elements/structure/Carousel/CarouselTrack/components/ScrollTrack/ScrollTrack.mjs +27 -0
- package/dist/elements/structure/Carousel/CarouselTrack/components/ScrollTrack/index.d.ts +2 -0
- package/dist/elements/structure/Carousel/CarouselTrack/components/ScrollTrack/index.mjs +2 -0
- package/dist/elements/structure/Carousel/CarouselTrack/declaration.d.ts +53 -0
- package/dist/elements/structure/Carousel/CarouselTrack/declaration.mjs +44 -0
- package/dist/elements/structure/Carousel/CarouselTrack/index.d.ts +52 -0
- package/dist/elements/structure/Carousel/CarouselTrack/index.mjs +6 -0
- package/dist/elements/structure/Carousel/Settings.d.ts +14 -0
- package/dist/elements/structure/Carousel/Settings.mjs +97 -0
- package/dist/elements/structure/Carousel/carouselIndex.d.ts +13 -0
- package/dist/elements/structure/Carousel/carouselIndex.mjs +16 -0
- package/dist/elements/structure/Carousel/declaration.d.ts +131 -0
- package/dist/elements/structure/Carousel/declaration.mjs +106 -0
- package/dist/elements/structure/Carousel/index.d.ts +184 -0
- package/dist/elements/structure/Carousel/index.mjs +10 -0
- package/dist/elements/structure/Carousel/useAutoplay.d.ts +18 -0
- package/dist/elements/structure/Carousel/useAutoplay.mjs +34 -0
- package/dist/elements/structure/Container/Container.d.ts +1 -1
- package/dist/elements/structure/Container/Settings.d.ts +1 -1
- package/dist/elements/structure/Container/Settings.mjs +4 -0
- package/dist/elements/structure/Container/declaration.d.ts +2 -2
- package/dist/elements/structure/Container/declaration.mjs +3 -2
- package/dist/elements/structure/Container/index.d.ts +2 -2
- package/dist/elements/structure/DialogContainer/declaration.d.ts +1 -1
- package/dist/elements/structure/DialogContainer/declaration.mjs +1 -1
- package/dist/elements/structure/DialogContainer/index.d.ts +1 -1
- package/dist/elements/structure/List/List.d.ts +6 -1
- package/dist/elements/structure/List/List.mjs +2 -1
- package/dist/elements/structure/List/ListItem/declaration.d.ts +1 -1
- package/dist/elements/structure/List/ListItem/declaration.mjs +1 -1
- package/dist/elements/structure/List/ListItem/index.d.ts +1 -1
- package/dist/elements/structure/List/Settings.d.ts +2 -1
- package/dist/elements/structure/List/Settings.mjs +41 -29
- package/dist/elements/structure/List/declaration.d.ts +2 -1
- package/dist/elements/structure/List/declaration.mjs +1 -1
- package/dist/elements/structure/List/index.d.ts +3 -2
- package/dist/elements/structure/List/modes/ListControlled/ListControlled.d.ts +2 -1
- package/dist/elements/structure/List/modes/ListControlled/ListControlled.mjs +33 -35
- package/dist/elements/structure/List/modes/ListControlled/ListControlledItem.mjs +1 -1
- package/dist/elements/structure/List/modes/ListControlled/rowKeys.d.ts +10 -0
- package/dist/elements/structure/List/modes/ListControlled/rowKeys.mjs +11 -0
- package/dist/elements/structure/ModalContainer/declaration.d.ts +1 -1
- package/dist/elements/structure/ModalContainer/declaration.mjs +1 -1
- package/dist/elements/structure/ModalContainer/index.d.ts +1 -1
- package/dist/elements/structure/ModalContainer/metadataFromText.d.ts +6 -0
- package/dist/elements/structure/ModalContainer/metadataFromText.mjs +2 -1
- package/dist/elements/structure/Pagination/declaration.d.ts +1 -1
- package/dist/elements/structure/Pagination/declaration.mjs +1 -1
- package/dist/elements/structure/Pagination/index.d.ts +1 -1
- package/dist/elements/structure/TabContainer/TabContainerBody/declaration.d.ts +1 -1
- package/dist/elements/structure/TabContainer/TabContainerBody/declaration.mjs +1 -1
- package/dist/elements/structure/TabContainer/TabContainerBody/index.d.ts +1 -1
- package/dist/elements/structure/TabContainer/TabContainerHeader/declaration.d.ts +1 -1
- package/dist/elements/structure/TabContainer/TabContainerHeader/declaration.mjs +1 -1
- package/dist/elements/structure/TabContainer/TabContainerHeader/index.d.ts +1 -1
- package/dist/elements/structure/TabContainer/TabContainerItem/declaration.d.ts +1 -1
- package/dist/elements/structure/TabContainer/TabContainerItem/declaration.mjs +1 -1
- package/dist/elements/structure/TabContainer/TabContainerItem/index.d.ts +1 -1
- package/dist/elements/structure/TabContainer/declaration.d.ts +1 -1
- package/dist/elements/structure/TabContainer/declaration.mjs +1 -1
- package/dist/elements/structure/TabContainer/index.d.ts +4 -4
- package/dist/index.d.ts +373 -39
- package/dist/index.mjs +34 -27
- package/package.json +197 -9
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ReactNode, RefObject } from 'react';
|
|
2
|
+
export type CarouselTrackProps = {
|
|
3
|
+
ref?: RefObject<HTMLElement>;
|
|
4
|
+
className?: string;
|
|
5
|
+
/** What one slide is: rendered once per item, reading the item as `carousel_<id>.item` — as a list row does. */
|
|
6
|
+
children?: ReactNode;
|
|
7
|
+
};
|
|
8
|
+
/** Where a carousel's slides are, inside it beside its controls: one at a time, a row, or a marquee. */
|
|
9
|
+
declare const CarouselTrack: ({ ref, className, children }: CarouselTrackProps) => import('react').JSX.Element;
|
|
10
|
+
declare const _default: {
|
|
11
|
+
(props: import('../../../../Element/hocs/withElement').WithElementProps<CarouselTrackProps>): import('react').JSX.Element;
|
|
12
|
+
displayName: string;
|
|
13
|
+
};
|
|
14
|
+
export default _default;
|
|
15
|
+
export { CarouselTrack };
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import e from "../../../../Element/hocs/withElement.mjs";
|
|
2
|
+
import { RootElement as t } from "../../../../Element/RootElement.mjs";
|
|
3
|
+
import n from "../CarouselContext.mjs";
|
|
4
|
+
import r from "./components/CarouselSlide/CarouselSlide.mjs";
|
|
5
|
+
import i from "./components/MarqueeTrack/MarqueeTrack.mjs";
|
|
6
|
+
import a from "./components/ScrollTrack/ScrollTrack.mjs";
|
|
7
|
+
import { use as o } from "react";
|
|
8
|
+
import { jsx as s, jsxs as c } from "react/jsx-runtime";
|
|
9
|
+
import l from "clsx";
|
|
10
|
+
//#region src/elements/structure/Carousel/CarouselTrack/CarouselTrack.tsx
|
|
11
|
+
var u = ({ ref: e, className: u = "", children: d }) => {
|
|
12
|
+
let f = o(n), p = f?.items ?? [], m = f?.mode, h = p.length > 0;
|
|
13
|
+
return /* @__PURE__ */ c(t, {
|
|
14
|
+
ref: e,
|
|
15
|
+
className: l("plitzi-component__carousel-track", u),
|
|
16
|
+
children: [
|
|
17
|
+
!f && d,
|
|
18
|
+
f && !h && !f.live && /* @__PURE__ */ s("div", {
|
|
19
|
+
className: "carousel__slide--empty",
|
|
20
|
+
children: "This carousel has no items"
|
|
21
|
+
}),
|
|
22
|
+
f && h && m === "slide" && /* @__PURE__ */ s(r, {
|
|
23
|
+
source: f.source,
|
|
24
|
+
item: p[f.index],
|
|
25
|
+
position: f.index,
|
|
26
|
+
count: p.length,
|
|
27
|
+
className: l(f.live && f.moved && `carousel__slide--${f.transition}-${f.direction}`),
|
|
28
|
+
children: d
|
|
29
|
+
}, String(f.keys[f.index])),
|
|
30
|
+
f && h && m === "scroll" && /* @__PURE__ */ s(a, {
|
|
31
|
+
source: f.source,
|
|
32
|
+
items: p,
|
|
33
|
+
keys: f.keys,
|
|
34
|
+
scrollerRef: f.scrollerRef,
|
|
35
|
+
onScrolledTo: f.onScrolledTo,
|
|
36
|
+
children: d
|
|
37
|
+
}),
|
|
38
|
+
f && h && m === "marquee" && /* @__PURE__ */ s(i, {
|
|
39
|
+
source: f.source,
|
|
40
|
+
items: p,
|
|
41
|
+
keys: f.keys,
|
|
42
|
+
speed: f.speed,
|
|
43
|
+
pauseOnHover: f.pauseOnHover,
|
|
44
|
+
live: f.live,
|
|
45
|
+
children: d
|
|
46
|
+
})
|
|
47
|
+
]
|
|
48
|
+
});
|
|
49
|
+
}, d = e(u);
|
|
50
|
+
//#endregion
|
|
51
|
+
export { u as CarouselTrack, d as default };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { jsx as e } from "react/jsx-runtime";
|
|
2
|
+
//#region src/elements/structure/Carousel/CarouselTrack/Settings.tsx
|
|
3
|
+
var t = () => /* @__PURE__ */ e("div", {
|
|
4
|
+
className: "flex flex-col gap-4 py-2 text-xs",
|
|
5
|
+
children: "What is inside is one slide, rendered once per item."
|
|
6
|
+
});
|
|
7
|
+
//#endregion
|
|
8
|
+
export { t as default };
|
package/dist/elements/structure/Carousel/CarouselTrack/components/CarouselSlide/CarouselSlide.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export type CarouselSlideProps = {
|
|
3
|
+
/** The source the slide publishes its item under: the carousel's own. */
|
|
4
|
+
source: string;
|
|
5
|
+
item: unknown;
|
|
6
|
+
position: number;
|
|
7
|
+
count: number;
|
|
8
|
+
/** A marquee's second copy: there to close the loop, not read twice. */
|
|
9
|
+
copy?: boolean;
|
|
10
|
+
className?: string;
|
|
11
|
+
children?: ReactNode;
|
|
12
|
+
};
|
|
13
|
+
/** One slide: a group a screen reader announces as "3 of 11", reading its item as a list row does. */
|
|
14
|
+
declare const CarouselSlide: ({ source, item, position, count, copy, className, children }: CarouselSlideProps) => import('react').JSX.Element;
|
|
15
|
+
export default CarouselSlide;
|
package/dist/elements/structure/Carousel/CarouselTrack/components/CarouselSlide/CarouselSlide.mjs
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import e from "../../../../List/modes/ListControlled/ListControlledItem.mjs";
|
|
2
|
+
import { Children as t } from "react";
|
|
3
|
+
import { jsx as n, jsxs as r } from "react/jsx-runtime";
|
|
4
|
+
import i from "clsx";
|
|
5
|
+
//#region src/elements/structure/Carousel/CarouselTrack/components/CarouselSlide/CarouselSlide.tsx
|
|
6
|
+
var a = ({ source: a, item: o, position: s, count: c, copy: l = !1, className: u = "", children: d }) => {
|
|
7
|
+
let f = t.count(d) === 0;
|
|
8
|
+
return /* @__PURE__ */ r("div", {
|
|
9
|
+
className: i("carousel__slide", u),
|
|
10
|
+
role: "group",
|
|
11
|
+
"aria-roledescription": "slide",
|
|
12
|
+
"aria-label": `${String(s + 1)} of ${String(c)}`,
|
|
13
|
+
"aria-hidden": l || void 0,
|
|
14
|
+
inert: l || void 0,
|
|
15
|
+
children: [f && /* @__PURE__ */ n("div", {
|
|
16
|
+
className: "carousel__slide--empty",
|
|
17
|
+
children: `Slide ${String(s + 1)}`
|
|
18
|
+
}), !f && /* @__PURE__ */ n(e, {
|
|
19
|
+
index: s,
|
|
20
|
+
isTemplate: !1,
|
|
21
|
+
record: o,
|
|
22
|
+
source: a,
|
|
23
|
+
children: d
|
|
24
|
+
})]
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
//#endregion
|
|
28
|
+
export { a as default };
|
package/dist/elements/structure/Carousel/CarouselTrack/components/MarqueeTrack/MarqueeTrack.d.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export type MarqueeTrackProps = {
|
|
3
|
+
source: string;
|
|
4
|
+
items: unknown[];
|
|
5
|
+
keys: readonly (string | number)[];
|
|
6
|
+
/** Pixels per second. */
|
|
7
|
+
speed: number;
|
|
8
|
+
pauseOnHover: boolean;
|
|
9
|
+
/** In the builder it stands still, one copy of the items. */
|
|
10
|
+
live: boolean;
|
|
11
|
+
children?: ReactNode;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* The items scrolling past for ever: drawn twice, the second copy out of reach of readers and the keyboard, so the
|
|
15
|
+
* track moves half its length and starts again with no jump.
|
|
16
|
+
*/
|
|
17
|
+
declare const MarqueeTrack: ({ source, items, keys, speed, pauseOnHover, live, children }: MarqueeTrackProps) => import('react').JSX.Element;
|
|
18
|
+
export default MarqueeTrack;
|
package/dist/elements/structure/Carousel/CarouselTrack/components/MarqueeTrack/MarqueeTrack.mjs
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import e from "../CarouselSlide/CarouselSlide.mjs";
|
|
2
|
+
import { useEffect as t, useRef as n, useState as r } from "react";
|
|
3
|
+
import { jsx as i, jsxs as a } from "react/jsx-runtime";
|
|
4
|
+
import o from "clsx";
|
|
5
|
+
//#region src/elements/structure/Carousel/CarouselTrack/components/MarqueeTrack/MarqueeTrack.tsx
|
|
6
|
+
var s = ({ source: s, items: c, keys: l, speed: u, pauseOnHover: d, live: f, children: p }) => {
|
|
7
|
+
let m = n(null), [h, g] = r(void 0);
|
|
8
|
+
t(() => {
|
|
9
|
+
let e = m.current;
|
|
10
|
+
if (!e || u <= 0) return;
|
|
11
|
+
let t = () => g(e.scrollWidth / 2 / u);
|
|
12
|
+
t();
|
|
13
|
+
let n = new ResizeObserver(t);
|
|
14
|
+
return n.observe(e), () => n.disconnect();
|
|
15
|
+
}, [u, c.length]);
|
|
16
|
+
let _ = { "--plitzi-marquee-duration": `${String(h ?? 0)}s` };
|
|
17
|
+
return /* @__PURE__ */ a("div", {
|
|
18
|
+
ref: m,
|
|
19
|
+
className: o("carousel__marquee", {
|
|
20
|
+
"carousel__marquee--running": f && h !== void 0,
|
|
21
|
+
"carousel__marquee--pause-on-hover": d
|
|
22
|
+
}),
|
|
23
|
+
style: _,
|
|
24
|
+
children: [c.map((t, n) => /* @__PURE__ */ i(e, {
|
|
25
|
+
source: s,
|
|
26
|
+
item: t,
|
|
27
|
+
position: n,
|
|
28
|
+
count: c.length,
|
|
29
|
+
children: p
|
|
30
|
+
}, String(l[n]))), f && c.map((t, n) => /* @__PURE__ */ i(e, {
|
|
31
|
+
source: s,
|
|
32
|
+
item: t,
|
|
33
|
+
position: n,
|
|
34
|
+
count: c.length,
|
|
35
|
+
copy: !0,
|
|
36
|
+
children: p
|
|
37
|
+
}, `copy:${String(l[n])}`))]
|
|
38
|
+
});
|
|
39
|
+
};
|
|
40
|
+
//#endregion
|
|
41
|
+
export { s as default };
|
package/dist/elements/structure/Carousel/CarouselTrack/components/ScrollTrack/ScrollTrack.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ReactNode, RefObject } from 'react';
|
|
2
|
+
export type ScrollTrackProps = {
|
|
3
|
+
source: string;
|
|
4
|
+
items: unknown[];
|
|
5
|
+
keys: readonly (string | number)[];
|
|
6
|
+
scrollerRef: RefObject<HTMLDivElement | null>;
|
|
7
|
+
onScrolledTo: (index: number) => void;
|
|
8
|
+
children?: ReactNode;
|
|
9
|
+
};
|
|
10
|
+
/** A row a visitor swipes, snapping to each slide; it tells the carousel which slide it is showing. */
|
|
11
|
+
declare const ScrollTrack: ({ source, items, keys, scrollerRef, onScrolledTo, children }: ScrollTrackProps) => import('react').JSX.Element;
|
|
12
|
+
export default ScrollTrack;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { slideStep as e } from "../../../carouselIndex.mjs";
|
|
2
|
+
import t from "../CarouselSlide/CarouselSlide.mjs";
|
|
3
|
+
import { useCallback as n, useRef as r } from "react";
|
|
4
|
+
import { jsx as i } from "react/jsx-runtime";
|
|
5
|
+
//#region src/elements/structure/Carousel/CarouselTrack/components/ScrollTrack/ScrollTrack.tsx
|
|
6
|
+
var a = ({ source: a, items: o, keys: s, scrollerRef: c, onScrolledTo: l, children: u }) => {
|
|
7
|
+
let d = r(0), f = n(() => {
|
|
8
|
+
cancelAnimationFrame(d.current), d.current = requestAnimationFrame(() => {
|
|
9
|
+
let t = c.current, n = t ? e(t) : 0;
|
|
10
|
+
t && n > 0 && l(Math.round(t.scrollLeft / n));
|
|
11
|
+
});
|
|
12
|
+
}, [c, l]);
|
|
13
|
+
return /* @__PURE__ */ i("div", {
|
|
14
|
+
ref: c,
|
|
15
|
+
className: "carousel__scroller",
|
|
16
|
+
onScroll: f,
|
|
17
|
+
children: o.map((e, n) => /* @__PURE__ */ i(t, {
|
|
18
|
+
source: a,
|
|
19
|
+
item: e,
|
|
20
|
+
position: n,
|
|
21
|
+
count: o.length,
|
|
22
|
+
children: u
|
|
23
|
+
}, String(s[n])))
|
|
24
|
+
});
|
|
25
|
+
};
|
|
26
|
+
//#endregion
|
|
27
|
+
export { a as default };
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { CarouselTrackProps } from './CarouselTrack';
|
|
2
|
+
import { AuthorableAttributes } from '@plitzi/sdk-shared/authoring/declare';
|
|
3
|
+
/** What this element can be authored with — its component's own props, minus what the runtime supplies. */
|
|
4
|
+
export type CarouselTrackAttributes = AuthorableAttributes<CarouselTrackProps>;
|
|
5
|
+
declare const declaration: {
|
|
6
|
+
readonly type: "carouselTrack";
|
|
7
|
+
readonly ancestorType: "carousel";
|
|
8
|
+
readonly content: {
|
|
9
|
+
readonly attributes: {};
|
|
10
|
+
readonly definition: {
|
|
11
|
+
readonly label: "Carousel Track";
|
|
12
|
+
readonly type: "carouselTrack";
|
|
13
|
+
readonly description: "Where a carousel shows its slides: what is inside is one slide, rendered once per item.";
|
|
14
|
+
readonly items: readonly [];
|
|
15
|
+
readonly bindings: {};
|
|
16
|
+
readonly styleSelectors: {
|
|
17
|
+
readonly base: "";
|
|
18
|
+
};
|
|
19
|
+
readonly initialState: {
|
|
20
|
+
readonly visibility: true;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
readonly builder: {
|
|
24
|
+
readonly canDelete: true;
|
|
25
|
+
readonly canSelect: true;
|
|
26
|
+
readonly canDragDrop: true;
|
|
27
|
+
readonly canMove: true;
|
|
28
|
+
readonly canSnippet: false;
|
|
29
|
+
readonly itemsAllowed: readonly [];
|
|
30
|
+
readonly itemsNotAllowed: readonly [];
|
|
31
|
+
};
|
|
32
|
+
readonly market: {
|
|
33
|
+
readonly category: "structure";
|
|
34
|
+
readonly owner: "Plitzi";
|
|
35
|
+
readonly verified: true;
|
|
36
|
+
readonly license: "MIT";
|
|
37
|
+
readonly website: "https://plitzi.com";
|
|
38
|
+
readonly backgroundColor: "#4422ee";
|
|
39
|
+
readonly icon: "fa-solid fa-film";
|
|
40
|
+
};
|
|
41
|
+
readonly defaultStyle: {
|
|
42
|
+
readonly name: "Carousel Track";
|
|
43
|
+
readonly displayMode: "desktop";
|
|
44
|
+
readonly style: {
|
|
45
|
+
readonly base: {
|
|
46
|
+
readonly default: {};
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
readonly settings: {};
|
|
51
|
+
};
|
|
52
|
+
} & import('@plitzi/sdk-shared/authoring/declare').ElementAttributesBrand<unknown>;
|
|
53
|
+
export default declaration;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { elementDeclaration as e } from "@plitzi/sdk-shared/authoring/declare";
|
|
2
|
+
//#region src/elements/structure/Carousel/CarouselTrack/declaration.ts
|
|
3
|
+
var t = e()({
|
|
4
|
+
type: "carouselTrack",
|
|
5
|
+
ancestorType: "carousel",
|
|
6
|
+
content: {
|
|
7
|
+
attributes: {},
|
|
8
|
+
definition: {
|
|
9
|
+
label: "Carousel Track",
|
|
10
|
+
type: "carouselTrack",
|
|
11
|
+
description: "Where a carousel shows its slides: what is inside is one slide, rendered once per item.",
|
|
12
|
+
items: [],
|
|
13
|
+
bindings: {},
|
|
14
|
+
styleSelectors: { base: "" },
|
|
15
|
+
initialState: { visibility: !0 }
|
|
16
|
+
},
|
|
17
|
+
builder: {
|
|
18
|
+
canDelete: !0,
|
|
19
|
+
canSelect: !0,
|
|
20
|
+
canDragDrop: !0,
|
|
21
|
+
canMove: !0,
|
|
22
|
+
canSnippet: !1,
|
|
23
|
+
itemsAllowed: [],
|
|
24
|
+
itemsNotAllowed: []
|
|
25
|
+
},
|
|
26
|
+
market: {
|
|
27
|
+
category: "structure",
|
|
28
|
+
owner: "Plitzi",
|
|
29
|
+
verified: !0,
|
|
30
|
+
license: "MIT",
|
|
31
|
+
website: "https://plitzi.com",
|
|
32
|
+
backgroundColor: "#4422ee",
|
|
33
|
+
icon: "fa-solid fa-film"
|
|
34
|
+
},
|
|
35
|
+
defaultStyle: {
|
|
36
|
+
name: "Carousel Track",
|
|
37
|
+
displayMode: "desktop",
|
|
38
|
+
style: { base: { default: {} } }
|
|
39
|
+
},
|
|
40
|
+
settings: {}
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
//#endregion
|
|
44
|
+
export { t as default };
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
declare const CarouselTrack: {
|
|
2
|
+
(props: import('../../../../Element/hocs/withElement').WithElementProps<import('./CarouselTrack').CarouselTrackProps>): import('react').JSX.Element;
|
|
3
|
+
displayName: string;
|
|
4
|
+
} & {
|
|
5
|
+
readonly type: "carouselTrack";
|
|
6
|
+
readonly ancestorType: "carousel";
|
|
7
|
+
readonly content: {
|
|
8
|
+
readonly attributes: {};
|
|
9
|
+
readonly definition: {
|
|
10
|
+
readonly label: "Carousel Track";
|
|
11
|
+
readonly type: "carouselTrack";
|
|
12
|
+
readonly description: "Where a carousel shows its slides: what is inside is one slide, rendered once per item.";
|
|
13
|
+
readonly items: readonly [];
|
|
14
|
+
readonly bindings: {};
|
|
15
|
+
readonly styleSelectors: {
|
|
16
|
+
readonly base: "";
|
|
17
|
+
};
|
|
18
|
+
readonly initialState: {
|
|
19
|
+
readonly visibility: true;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
readonly builder: {
|
|
23
|
+
readonly canDelete: true;
|
|
24
|
+
readonly canSelect: true;
|
|
25
|
+
readonly canDragDrop: true;
|
|
26
|
+
readonly canMove: true;
|
|
27
|
+
readonly canSnippet: false;
|
|
28
|
+
readonly itemsAllowed: readonly [];
|
|
29
|
+
readonly itemsNotAllowed: readonly [];
|
|
30
|
+
};
|
|
31
|
+
readonly market: {
|
|
32
|
+
readonly category: "structure";
|
|
33
|
+
readonly owner: "Plitzi";
|
|
34
|
+
readonly verified: true;
|
|
35
|
+
readonly license: "MIT";
|
|
36
|
+
readonly website: "https://plitzi.com";
|
|
37
|
+
readonly backgroundColor: "#4422ee";
|
|
38
|
+
readonly icon: "fa-solid fa-film";
|
|
39
|
+
};
|
|
40
|
+
readonly defaultStyle: {
|
|
41
|
+
readonly name: "Carousel Track";
|
|
42
|
+
readonly displayMode: "desktop";
|
|
43
|
+
readonly style: {
|
|
44
|
+
readonly base: {
|
|
45
|
+
readonly default: {};
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
readonly settings: {};
|
|
50
|
+
};
|
|
51
|
+
} & import('@plitzi/sdk-shared/authoring/declare').ElementAttributesBrand<unknown>;
|
|
52
|
+
export default CarouselTrack;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { CarouselMode, CarouselTransition } from './CarouselContext';
|
|
2
|
+
type SettingsProps = {
|
|
3
|
+
mode?: CarouselMode;
|
|
4
|
+
autoplay?: number;
|
|
5
|
+
pauseOnHover?: boolean;
|
|
6
|
+
loop?: boolean;
|
|
7
|
+
transition?: CarouselTransition;
|
|
8
|
+
speed?: number;
|
|
9
|
+
itemKey?: string;
|
|
10
|
+
label?: string;
|
|
11
|
+
onUpdate?: (key: string, value: string | boolean | number) => void;
|
|
12
|
+
};
|
|
13
|
+
declare const Settings: ({ mode, autoplay, pauseOnHover, loop, transition, speed, itemKey, label, onUpdate }: SettingsProps) => import('react').JSX.Element;
|
|
14
|
+
export default Settings;
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { useCallback as e } from "react";
|
|
2
|
+
import { jsx as t, jsxs as n } from "react/jsx-runtime";
|
|
3
|
+
import r from "@plitzi/plitzi-ui/Checkbox";
|
|
4
|
+
import i from "@plitzi/plitzi-ui/Input";
|
|
5
|
+
import a from "@plitzi/plitzi-ui/Select";
|
|
6
|
+
//#region src/elements/structure/Carousel/Settings.tsx
|
|
7
|
+
var o = ({ mode: o = "slide", autoplay: s = 0, pauseOnHover: c = !0, loop: l = !0, transition: u = "slide", speed: d = 30, itemKey: f = "", label: p = "", onUpdate: m }) => {
|
|
8
|
+
let h = e((e) => (t) => m?.(e, t), [m]), g = e((e) => (t) => m?.(e, Math.max(0, Math.round(Number(t) || 0))), [m]), _ = e((e) => (t) => m?.(e, t.target.checked), [m]);
|
|
9
|
+
return /* @__PURE__ */ n("div", {
|
|
10
|
+
className: "flex flex-col gap-4 py-2",
|
|
11
|
+
children: [
|
|
12
|
+
/* @__PURE__ */ t(i, {
|
|
13
|
+
label: "Label",
|
|
14
|
+
size: "xs",
|
|
15
|
+
placeholder: "Featured products",
|
|
16
|
+
value: p,
|
|
17
|
+
onChange: h("label")
|
|
18
|
+
}),
|
|
19
|
+
/* @__PURE__ */ n(a, {
|
|
20
|
+
label: "Mode",
|
|
21
|
+
value: o,
|
|
22
|
+
onChange: h("mode"),
|
|
23
|
+
size: "xs",
|
|
24
|
+
children: [
|
|
25
|
+
/* @__PURE__ */ t("option", {
|
|
26
|
+
value: "slide",
|
|
27
|
+
children: "One slide at a time"
|
|
28
|
+
}),
|
|
29
|
+
/* @__PURE__ */ t("option", {
|
|
30
|
+
value: "marquee",
|
|
31
|
+
children: "Marquee"
|
|
32
|
+
}),
|
|
33
|
+
/* @__PURE__ */ t("option", {
|
|
34
|
+
value: "scroll",
|
|
35
|
+
children: "Scrolling row"
|
|
36
|
+
})
|
|
37
|
+
]
|
|
38
|
+
}),
|
|
39
|
+
o === "slide" && /* @__PURE__ */ n(a, {
|
|
40
|
+
label: "Transition",
|
|
41
|
+
value: u,
|
|
42
|
+
onChange: h("transition"),
|
|
43
|
+
size: "xs",
|
|
44
|
+
children: [
|
|
45
|
+
/* @__PURE__ */ t("option", {
|
|
46
|
+
value: "slide",
|
|
47
|
+
children: "Slide"
|
|
48
|
+
}),
|
|
49
|
+
/* @__PURE__ */ t("option", {
|
|
50
|
+
value: "fade",
|
|
51
|
+
children: "Fade"
|
|
52
|
+
}),
|
|
53
|
+
/* @__PURE__ */ t("option", {
|
|
54
|
+
value: "none",
|
|
55
|
+
children: "None"
|
|
56
|
+
})
|
|
57
|
+
]
|
|
58
|
+
}),
|
|
59
|
+
o === "slide" && /* @__PURE__ */ t(i, {
|
|
60
|
+
type: "number",
|
|
61
|
+
label: "Autoplay (ms, 0 for none)",
|
|
62
|
+
size: "xs",
|
|
63
|
+
value: String(s),
|
|
64
|
+
onChange: g("autoplay")
|
|
65
|
+
}),
|
|
66
|
+
o === "marquee" && /* @__PURE__ */ t(i, {
|
|
67
|
+
type: "number",
|
|
68
|
+
label: "Speed (px per second)",
|
|
69
|
+
size: "xs",
|
|
70
|
+
value: String(d),
|
|
71
|
+
onChange: g("speed")
|
|
72
|
+
}),
|
|
73
|
+
/* @__PURE__ */ t(r, {
|
|
74
|
+
checked: c,
|
|
75
|
+
onChange: _("pauseOnHover"),
|
|
76
|
+
label: "Pause on hover",
|
|
77
|
+
size: "xs"
|
|
78
|
+
}),
|
|
79
|
+
o === "slide" && /* @__PURE__ */ t(r, {
|
|
80
|
+
checked: l,
|
|
81
|
+
onChange: _("loop"),
|
|
82
|
+
label: "Loop",
|
|
83
|
+
size: "xs"
|
|
84
|
+
}),
|
|
85
|
+
/* @__PURE__ */ t(i, {
|
|
86
|
+
label: "Row key",
|
|
87
|
+
size: "xs",
|
|
88
|
+
placeholder: "id",
|
|
89
|
+
value: f,
|
|
90
|
+
title: "The field of each item that names it, so a slide stays with its item when the items change.",
|
|
91
|
+
onChange: h("itemKey")
|
|
92
|
+
})
|
|
93
|
+
]
|
|
94
|
+
});
|
|
95
|
+
};
|
|
96
|
+
//#endregion
|
|
97
|
+
export { o as default };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** Which way the carousel last moved: what a slide entering animates from. */
|
|
2
|
+
export type CarouselDirection = 'next' | 'previous';
|
|
3
|
+
/**
|
|
4
|
+
* Where a move lands: `delta` slides on, round the ends when the carousel loops and stopped at them when it does not.
|
|
5
|
+
* An empty carousel stays at 0.
|
|
6
|
+
*/
|
|
7
|
+
export declare const stepIndex: (index: number, count: number, delta: number, loop: boolean) => number;
|
|
8
|
+
/** A requested position, as one the carousel has: whole, and within its slides. */
|
|
9
|
+
export declare const clampIndex: (index: unknown, count: number) => number;
|
|
10
|
+
/** The way a jump goes: on to a later slide, back to an earlier one. */
|
|
11
|
+
export declare const directionOf: (from: number, to: number) => CarouselDirection;
|
|
12
|
+
/** How far one slide is from the next in a scrolling row: its width and the gap after it. */
|
|
13
|
+
export declare const slideStep: (scroller: HTMLElement) => number;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
//#region src/elements/structure/Carousel/carouselIndex.ts
|
|
2
|
+
var e = (e, t, n, r) => {
|
|
3
|
+
if (t <= 0) return 0;
|
|
4
|
+
let i = e + n;
|
|
5
|
+
return r ? (i % t + t) % t : Math.min(t - 1, Math.max(0, i));
|
|
6
|
+
}, t = (e, t) => {
|
|
7
|
+
let n = typeof e == "number" ? e : Number(e);
|
|
8
|
+
return !Number.isFinite(n) || t <= 0 ? 0 : Math.min(t - 1, Math.max(0, Math.trunc(n)));
|
|
9
|
+
}, n = (e, t) => t < e ? "previous" : "next", r = (e) => {
|
|
10
|
+
let t = e.firstElementChild;
|
|
11
|
+
if (!(t instanceof HTMLElement)) return 0;
|
|
12
|
+
let n = Number.parseFloat(getComputedStyle(e).columnGap);
|
|
13
|
+
return t.offsetWidth + (Number.isFinite(n) ? n : 0);
|
|
14
|
+
};
|
|
15
|
+
//#endregion
|
|
16
|
+
export { t as clampIndex, n as directionOf, r as slideStep, e as stepIndex };
|