@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.
Files changed (233) hide show
  1. package/CHANGELOG.md +594 -0
  2. package/dist/Element/ElementWords.d.ts +16 -0
  3. package/dist/Element/ElementWords.mjs +19 -0
  4. package/dist/Element/RootElement.mjs +15 -12
  5. package/dist/Element/helpers/elementConstants.mjs +27 -0
  6. package/dist/Element/helpers/renderStaticTag.d.ts +3 -1
  7. package/dist/Element/helpers/renderStaticTag.mjs +6 -5
  8. package/dist/Element/hooks/useElementDataSource.mjs +20 -19
  9. package/dist/Element/hooks/useInternalItems.mjs +33 -31
  10. package/dist/Element/hooks/useIntervalTriggers.d.ts +17 -0
  11. package/dist/Element/hooks/useIntervalTriggers.mjs +37 -0
  12. package/dist/Element/hooks/useRootElementInteractions.d.ts +6 -2
  13. package/dist/Element/hooks/useRootElementInteractions.mjs +84 -63
  14. package/dist/Element/hooks/useScrollInteractions.d.ts +20 -0
  15. package/dist/Element/hooks/useScrollInteractions.mjs +58 -0
  16. package/dist/components/IconField/IconField.d.ts +8 -0
  17. package/dist/components/IconField/IconField.mjs +41 -0
  18. package/dist/components/IconField/index.d.ts +2 -0
  19. package/dist/components/IconField/index.mjs +2 -0
  20. package/dist/components/IconPicker/IconPicker.d.ts +11 -0
  21. package/dist/components/IconPicker/IconPicker.mjs +82 -0
  22. package/dist/components/IconPicker/index.d.ts +2 -0
  23. package/dist/components/IconPicker/index.mjs +2 -0
  24. package/dist/dataSource/GlobalSources.mjs +102 -83
  25. package/dist/dataSource/useFlag.d.ts +9 -0
  26. package/dist/dataSource/useFlag.mjs +8 -0
  27. package/dist/elements/advanced/BlockHtml/declaration.d.ts +1 -1
  28. package/dist/elements/advanced/BlockHtml/declaration.mjs +1 -1
  29. package/dist/elements/advanced/BlockHtml/index.d.ts +1 -1
  30. package/dist/elements/advanced/BlockJsx/Settings.mjs +2 -1
  31. package/dist/elements/advanced/BlockJsx/declaration.d.ts +1 -1
  32. package/dist/elements/advanced/BlockJsx/declaration.mjs +1 -1
  33. package/dist/elements/advanced/BlockJsx/index.d.ts +1 -1
  34. package/dist/elements/advanced/Custom/declaration.d.ts +1 -1
  35. package/dist/elements/advanced/Custom/declaration.mjs +1 -1
  36. package/dist/elements/advanced/Custom/index.d.ts +1 -1
  37. package/dist/elements/advanced/NodeHtml/declaration.d.ts +3 -3
  38. package/dist/elements/advanced/NodeHtml/declaration.mjs +1 -1
  39. package/dist/elements/advanced/NodeHtml/index.d.ts +3 -3
  40. package/dist/elements/advanced/Reference/declaration.d.ts +1 -1
  41. package/dist/elements/advanced/Reference/declaration.mjs +1 -1
  42. package/dist/elements/advanced/Reference/index.d.ts +1 -1
  43. package/dist/elements/basic/Button/Button.d.ts +9 -1
  44. package/dist/elements/basic/Button/Button.mjs +31 -19
  45. package/dist/elements/basic/Button/Settings.d.ts +3 -1
  46. package/dist/elements/basic/Button/Settings.mjs +39 -33
  47. package/dist/elements/basic/Button/declaration.d.ts +7 -1
  48. package/dist/elements/basic/Button/declaration.mjs +10 -4
  49. package/dist/elements/basic/Button/index.d.ts +7 -1
  50. package/dist/elements/basic/Dropdown/DropdownPopup/declaration.d.ts +1 -1
  51. package/dist/elements/basic/Dropdown/DropdownPopup/declaration.mjs +1 -1
  52. package/dist/elements/basic/Dropdown/DropdownPopup/index.d.ts +1 -1
  53. package/dist/elements/basic/Dropdown/declaration.d.ts +1 -1
  54. package/dist/elements/basic/Dropdown/declaration.mjs +1 -1
  55. package/dist/elements/basic/Dropdown/index.d.ts +2 -2
  56. package/dist/elements/basic/Heading/declaration.d.ts +1 -1
  57. package/dist/elements/basic/Heading/declaration.mjs +1 -1
  58. package/dist/elements/basic/Heading/index.d.ts +1 -1
  59. package/dist/elements/basic/Link/Link.d.ts +20 -1
  60. package/dist/elements/basic/Link/Link.mjs +67 -47
  61. package/dist/elements/basic/Link/Settings.d.ts +6 -1
  62. package/dist/elements/basic/Link/Settings.mjs +91 -58
  63. package/dist/elements/basic/Link/declaration.d.ts +14 -1
  64. package/dist/elements/basic/Link/declaration.mjs +15 -5
  65. package/dist/elements/basic/Link/index.d.ts +14 -1
  66. package/dist/elements/basic/Link/isCurrentPage.d.ts +5 -0
  67. package/dist/elements/basic/Link/isCurrentPage.mjs +12 -0
  68. package/dist/elements/basic/Markdown/declaration.d.ts +1 -1
  69. package/dist/elements/basic/Markdown/declaration.mjs +1 -1
  70. package/dist/elements/basic/Markdown/index.d.ts +1 -1
  71. package/dist/elements/basic/Paragraph/declaration.d.ts +1 -1
  72. package/dist/elements/basic/Paragraph/declaration.mjs +1 -1
  73. package/dist/elements/basic/Paragraph/index.d.ts +1 -1
  74. package/dist/elements/basic/RichText/declaration.d.ts +1 -1
  75. package/dist/elements/basic/RichText/declaration.mjs +1 -1
  76. package/dist/elements/basic/RichText/index.d.ts +1 -1
  77. package/dist/elements/basic/Text/declaration.d.ts +1 -1
  78. package/dist/elements/basic/Text/declaration.mjs +1 -1
  79. package/dist/elements/basic/Text/index.d.ts +1 -1
  80. package/dist/elements/basic/ThemeToggle/declaration.d.ts +1 -1
  81. package/dist/elements/basic/ThemeToggle/declaration.mjs +1 -1
  82. package/dist/elements/basic/ThemeToggle/index.d.ts +1 -1
  83. package/dist/elements/declarations/index.d.ts +362 -40
  84. package/dist/elements/declarations/index.mjs +40 -32
  85. package/dist/elements/form/Form/declaration.d.ts +1 -1
  86. package/dist/elements/form/Form/declaration.mjs +1 -1
  87. package/dist/elements/form/Form/index.d.ts +1 -1
  88. package/dist/elements/form/FormControl/FormControl.mjs +1 -1
  89. package/dist/elements/form/FormControl/declaration.d.ts +1 -1
  90. package/dist/elements/form/FormControl/declaration.mjs +1 -1
  91. package/dist/elements/form/FormControl/index.d.ts +1 -1
  92. package/dist/elements/index.d.ts +7 -1
  93. package/dist/elements/index.mjs +30 -24
  94. package/dist/elements/internal/LayoutContainer/declaration.d.ts +1 -1
  95. package/dist/elements/internal/LayoutContainer/declaration.mjs +1 -1
  96. package/dist/elements/internal/LayoutContainer/index.d.ts +1 -1
  97. package/dist/elements/internal/Loading/declaration.d.ts +1 -1
  98. package/dist/elements/internal/Loading/declaration.mjs +1 -1
  99. package/dist/elements/internal/Loading/index.d.ts +1 -1
  100. package/dist/elements/internal/NotFound/declaration.d.ts +1 -1
  101. package/dist/elements/internal/NotFound/declaration.mjs +1 -1
  102. package/dist/elements/internal/NotFound/index.d.ts +1 -1
  103. package/dist/elements/internal/Page/declaration.d.ts +1 -1
  104. package/dist/elements/internal/Page/declaration.mjs +1 -1
  105. package/dist/elements/internal/Page/index.d.ts +1 -1
  106. package/dist/elements/media/Embed/Embed.d.ts +22 -0
  107. package/dist/elements/media/Embed/Embed.mjs +29 -0
  108. package/dist/elements/media/Embed/Settings.d.ts +10 -0
  109. package/dist/elements/media/Embed/Settings.mjs +51 -0
  110. package/dist/elements/media/Embed/declaration.d.ts +70 -0
  111. package/dist/elements/media/Embed/declaration.mjs +54 -0
  112. package/dist/elements/media/Embed/embeddableSrc.d.ts +5 -0
  113. package/dist/elements/media/Embed/embeddableSrc.mjs +4 -0
  114. package/dist/elements/media/Embed/index.d.ts +69 -0
  115. package/dist/elements/media/Embed/index.mjs +6 -0
  116. package/dist/elements/media/FontAwesome/Settings.mjs +32 -100
  117. package/dist/elements/media/FontAwesome/declaration.d.ts +1 -1
  118. package/dist/elements/media/FontAwesome/declaration.mjs +1 -1
  119. package/dist/elements/media/FontAwesome/index.d.ts +1 -1
  120. package/dist/elements/media/Image/Image.d.ts +11 -1
  121. package/dist/elements/media/Image/Image.mjs +33 -23
  122. package/dist/elements/media/Image/Settings.d.ts +4 -1
  123. package/dist/elements/media/Image/Settings.mjs +32 -9
  124. package/dist/elements/media/Image/declaration.d.ts +4 -1
  125. package/dist/elements/media/Image/declaration.mjs +1 -1
  126. package/dist/elements/media/Image/index.d.ts +4 -1
  127. package/dist/elements/media/Svg/Settings.d.ts +7 -0
  128. package/dist/elements/media/Svg/Settings.mjs +24 -0
  129. package/dist/elements/media/Svg/Svg.d.ts +16 -0
  130. package/dist/elements/media/Svg/Svg.mjs +31 -0
  131. package/dist/elements/media/Svg/declaration.d.ts +61 -0
  132. package/dist/elements/media/Svg/declaration.mjs +49 -0
  133. package/dist/elements/media/Svg/index.d.ts +60 -0
  134. package/dist/elements/media/Svg/index.mjs +6 -0
  135. package/dist/elements/media/Svg/sanitizeSvg.d.ts +13 -0
  136. package/dist/elements/media/Svg/sanitizeSvg.mjs +5 -0
  137. package/dist/elements/media/Video/declaration.d.ts +1 -1
  138. package/dist/elements/media/Video/declaration.mjs +1 -1
  139. package/dist/elements/media/Video/index.d.ts +1 -1
  140. package/dist/elements/provider/ApiContainer/ApiContainer.d.ts +6 -1
  141. package/dist/elements/provider/ApiContainer/ApiContainer.mjs +118 -112
  142. package/dist/elements/provider/ApiContainer/Settings.d.ts +2 -1
  143. package/dist/elements/provider/ApiContainer/Settings.mjs +45 -37
  144. package/dist/elements/provider/ApiContainer/declaration.d.ts +1 -1
  145. package/dist/elements/provider/ApiContainer/declaration.mjs +1 -1
  146. package/dist/elements/provider/ApiContainer/helpers/loadingSlot.d.ts +6 -0
  147. package/dist/elements/provider/ApiContainer/helpers/loadingSlot.mjs +8 -0
  148. package/dist/elements/provider/ApiContainer/index.d.ts +1 -1
  149. package/dist/elements/provider/Channel/declaration.d.ts +1 -1
  150. package/dist/elements/provider/Channel/declaration.mjs +1 -1
  151. package/dist/elements/provider/Channel/index.d.ts +1 -1
  152. package/dist/elements/settings.mjs +40 -32
  153. package/dist/elements/structure/Carousel/Carousel.d.ts +32 -0
  154. package/dist/elements/structure/Carousel/Carousel.mjs +183 -0
  155. package/dist/elements/structure/Carousel/CarouselContext.d.ts +29 -0
  156. package/dist/elements/structure/Carousel/CarouselContext.mjs +6 -0
  157. package/dist/elements/structure/Carousel/CarouselTrack/CarouselTrack.d.ts +15 -0
  158. package/dist/elements/structure/Carousel/CarouselTrack/CarouselTrack.mjs +51 -0
  159. package/dist/elements/structure/Carousel/CarouselTrack/Settings.d.ts +2 -0
  160. package/dist/elements/structure/Carousel/CarouselTrack/Settings.mjs +8 -0
  161. package/dist/elements/structure/Carousel/CarouselTrack/components/CarouselSlide/CarouselSlide.d.ts +15 -0
  162. package/dist/elements/structure/Carousel/CarouselTrack/components/CarouselSlide/CarouselSlide.mjs +28 -0
  163. package/dist/elements/structure/Carousel/CarouselTrack/components/CarouselSlide/index.d.ts +2 -0
  164. package/dist/elements/structure/Carousel/CarouselTrack/components/CarouselSlide/index.mjs +2 -0
  165. package/dist/elements/structure/Carousel/CarouselTrack/components/MarqueeTrack/MarqueeTrack.d.ts +18 -0
  166. package/dist/elements/structure/Carousel/CarouselTrack/components/MarqueeTrack/MarqueeTrack.mjs +41 -0
  167. package/dist/elements/structure/Carousel/CarouselTrack/components/MarqueeTrack/index.d.ts +2 -0
  168. package/dist/elements/structure/Carousel/CarouselTrack/components/MarqueeTrack/index.mjs +2 -0
  169. package/dist/elements/structure/Carousel/CarouselTrack/components/ScrollTrack/ScrollTrack.d.ts +12 -0
  170. package/dist/elements/structure/Carousel/CarouselTrack/components/ScrollTrack/ScrollTrack.mjs +27 -0
  171. package/dist/elements/structure/Carousel/CarouselTrack/components/ScrollTrack/index.d.ts +2 -0
  172. package/dist/elements/structure/Carousel/CarouselTrack/components/ScrollTrack/index.mjs +2 -0
  173. package/dist/elements/structure/Carousel/CarouselTrack/declaration.d.ts +53 -0
  174. package/dist/elements/structure/Carousel/CarouselTrack/declaration.mjs +44 -0
  175. package/dist/elements/structure/Carousel/CarouselTrack/index.d.ts +52 -0
  176. package/dist/elements/structure/Carousel/CarouselTrack/index.mjs +6 -0
  177. package/dist/elements/structure/Carousel/Settings.d.ts +14 -0
  178. package/dist/elements/structure/Carousel/Settings.mjs +97 -0
  179. package/dist/elements/structure/Carousel/carouselIndex.d.ts +13 -0
  180. package/dist/elements/structure/Carousel/carouselIndex.mjs +16 -0
  181. package/dist/elements/structure/Carousel/declaration.d.ts +131 -0
  182. package/dist/elements/structure/Carousel/declaration.mjs +106 -0
  183. package/dist/elements/structure/Carousel/index.d.ts +184 -0
  184. package/dist/elements/structure/Carousel/index.mjs +10 -0
  185. package/dist/elements/structure/Carousel/useAutoplay.d.ts +18 -0
  186. package/dist/elements/structure/Carousel/useAutoplay.mjs +34 -0
  187. package/dist/elements/structure/Container/Container.d.ts +1 -1
  188. package/dist/elements/structure/Container/Settings.d.ts +1 -1
  189. package/dist/elements/structure/Container/Settings.mjs +4 -0
  190. package/dist/elements/structure/Container/declaration.d.ts +2 -2
  191. package/dist/elements/structure/Container/declaration.mjs +3 -2
  192. package/dist/elements/structure/Container/index.d.ts +2 -2
  193. package/dist/elements/structure/DialogContainer/declaration.d.ts +1 -1
  194. package/dist/elements/structure/DialogContainer/declaration.mjs +1 -1
  195. package/dist/elements/structure/DialogContainer/index.d.ts +1 -1
  196. package/dist/elements/structure/List/List.d.ts +6 -1
  197. package/dist/elements/structure/List/List.mjs +2 -1
  198. package/dist/elements/structure/List/ListItem/declaration.d.ts +1 -1
  199. package/dist/elements/structure/List/ListItem/declaration.mjs +1 -1
  200. package/dist/elements/structure/List/ListItem/index.d.ts +1 -1
  201. package/dist/elements/structure/List/Settings.d.ts +2 -1
  202. package/dist/elements/structure/List/Settings.mjs +41 -29
  203. package/dist/elements/structure/List/declaration.d.ts +2 -1
  204. package/dist/elements/structure/List/declaration.mjs +1 -1
  205. package/dist/elements/structure/List/index.d.ts +3 -2
  206. package/dist/elements/structure/List/modes/ListControlled/ListControlled.d.ts +2 -1
  207. package/dist/elements/structure/List/modes/ListControlled/ListControlled.mjs +33 -35
  208. package/dist/elements/structure/List/modes/ListControlled/ListControlledItem.mjs +1 -1
  209. package/dist/elements/structure/List/modes/ListControlled/rowKeys.d.ts +10 -0
  210. package/dist/elements/structure/List/modes/ListControlled/rowKeys.mjs +11 -0
  211. package/dist/elements/structure/ModalContainer/declaration.d.ts +1 -1
  212. package/dist/elements/structure/ModalContainer/declaration.mjs +1 -1
  213. package/dist/elements/structure/ModalContainer/index.d.ts +1 -1
  214. package/dist/elements/structure/ModalContainer/metadataFromText.d.ts +6 -0
  215. package/dist/elements/structure/ModalContainer/metadataFromText.mjs +2 -1
  216. package/dist/elements/structure/Pagination/declaration.d.ts +1 -1
  217. package/dist/elements/structure/Pagination/declaration.mjs +1 -1
  218. package/dist/elements/structure/Pagination/index.d.ts +1 -1
  219. package/dist/elements/structure/TabContainer/TabContainerBody/declaration.d.ts +1 -1
  220. package/dist/elements/structure/TabContainer/TabContainerBody/declaration.mjs +1 -1
  221. package/dist/elements/structure/TabContainer/TabContainerBody/index.d.ts +1 -1
  222. package/dist/elements/structure/TabContainer/TabContainerHeader/declaration.d.ts +1 -1
  223. package/dist/elements/structure/TabContainer/TabContainerHeader/declaration.mjs +1 -1
  224. package/dist/elements/structure/TabContainer/TabContainerHeader/index.d.ts +1 -1
  225. package/dist/elements/structure/TabContainer/TabContainerItem/declaration.d.ts +1 -1
  226. package/dist/elements/structure/TabContainer/TabContainerItem/declaration.mjs +1 -1
  227. package/dist/elements/structure/TabContainer/TabContainerItem/index.d.ts +1 -1
  228. package/dist/elements/structure/TabContainer/declaration.d.ts +1 -1
  229. package/dist/elements/structure/TabContainer/declaration.mjs +1 -1
  230. package/dist/elements/structure/TabContainer/index.d.ts +4 -4
  231. package/dist/index.d.ts +373 -39
  232. package/dist/index.mjs +34 -27
  233. 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,2 @@
1
+ declare const Settings: () => import('react').JSX.Element;
2
+ export default Settings;
@@ -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 };
@@ -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;
@@ -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 };
@@ -0,0 +1,2 @@
1
+ export { default } from './CarouselSlide';
2
+ export type { CarouselSlideProps } from './CarouselSlide';
@@ -0,0 +1,2 @@
1
+ import e from "./CarouselSlide.mjs";
2
+ export { e as default };
@@ -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;
@@ -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 };
@@ -0,0 +1,2 @@
1
+ export { default } from './MarqueeTrack';
2
+ export type { MarqueeTrackProps } from './MarqueeTrack';
@@ -0,0 +1,2 @@
1
+ import e from "./MarqueeTrack.mjs";
2
+ export { e as default };
@@ -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,2 @@
1
+ export { default } from './ScrollTrack';
2
+ export type { ScrollTrackProps } from './ScrollTrack';
@@ -0,0 +1,2 @@
1
+ import e from "./ScrollTrack.mjs";
2
+ export { e 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,6 @@
1
+ import e from "./CarouselTrack.mjs";
2
+ import t from "./declaration.mjs";
3
+ //#region src/elements/structure/Carousel/CarouselTrack/index.ts
4
+ var n = Object.assign(e, t);
5
+ //#endregion
6
+ export { n as default };
@@ -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 };