@cloudgrid-io/ui 0.31.2 → 0.31.4
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/dist/blocks/confirm-delete-dialog.d.ts +81 -0
- package/dist/blocks/confirm-delete-dialog.d.ts.map +1 -0
- package/dist/blocks/confirm-delete-dialog.js +89 -0
- package/dist/blocks/confirm-delete-dialog.js.map +1 -0
- package/dist/blocks/icons.d.ts +1 -1
- package/dist/blocks/icons.d.ts.map +1 -1
- package/dist/blocks/icons.js +1 -1
- package/dist/blocks/icons.js.map +1 -1
- package/dist/blocks/phosphor-marks.d.ts +2 -0
- package/dist/blocks/phosphor-marks.d.ts.map +1 -1
- package/dist/blocks/phosphor-marks.js +3 -0
- package/dist/blocks/phosphor-marks.js.map +1 -1
- package/dist/blocks/shelf.d.ts +384 -0
- package/dist/blocks/shelf.d.ts.map +1 -0
- package/dist/blocks/shelf.js +489 -0
- package/dist/blocks/shelf.js.map +1 -0
- package/dist/blocks/showcase-scroll.d.ts +103 -0
- package/dist/blocks/showcase-scroll.d.ts.map +1 -0
- package/dist/blocks/showcase-scroll.js +432 -0
- package/dist/blocks/showcase-scroll.js.map +1 -0
- package/dist/brand/showcase/all-the-way-down.webp +0 -0
- package/dist/brand/showcase/analytics-dashboard.webp +0 -0
- package/dist/brand/showcase/campaign-brief-builder.webp +0 -0
- package/dist/brand/showcase/chess-puzzles.webp +0 -0
- package/dist/brand/showcase/fox-tales.webp +0 -0
- package/dist/brand/showcase/invoices.webp +0 -0
- package/dist/brand/showcase/living-board-update.webp +0 -0
- package/dist/brand/showcase/moon-run.webp +0 -0
- package/dist/brand/showcase/onboarding-guide.webp +0 -0
- package/dist/brand/showcase/online-shop.webp +0 -0
- package/dist/brand/showcase/operating-review.webp +0 -0
- package/dist/brand/showcase/pricing-simulator.webp +0 -0
- package/dist/brand/showcase/rent-or-buy.webp +0 -0
- package/dist/brand/showcase/sales-call-coach.webp +0 -0
- package/dist/brand/showcase/space-today.webp +0 -0
- package/dist/brand/showcase/stocks-dashboard.webp +0 -0
- package/dist/brand/showcase/task-manager.webp +0 -0
- package/dist/brand/showcase/tour-poster.webp +0 -0
- package/dist/brand/showcase/your-crm.webp +0 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/shadcn.css +41 -0
- package/dist/theme.css +5 -0
- package/dist/tokens/base.json +20 -0
- package/dist/tokens/surface-ink.json +21 -0
- package/dist/tokens/surface-panel.json +21 -0
- package/dist/tokens.css +33 -0
- package/dist/tokens.json +8 -2
- package/package.json +1 -1
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
/**
|
|
3
|
+
* The sign-in showcase (#283): the purple panel filled with scrolling columns of
|
|
4
|
+
* the website's creations, with each card's numbers on hover.
|
|
5
|
+
*
|
|
6
|
+
* Ported from the founder-approved v3 mock (`frontend-brain/mocks/showcase-scroll.html`,
|
|
7
|
+
* 2026-10-06) with the founder's chosen settings: continuous motion at 46 px/s, the
|
|
8
|
+
* middle column at 80% of that for a slight parallax, hover pauses ITS column only,
|
|
9
|
+
* no dimming of the other cards, an edge fade, and `prefers-reduced-motion` static.
|
|
10
|
+
* The mock's controls and its step-and-hold mode are not here.
|
|
11
|
+
*
|
|
12
|
+
* ## Motion
|
|
13
|
+
*
|
|
14
|
+
* Pure CSS. Each column's track holds N identical copies of the column's cards and
|
|
15
|
+
* the keyframes move it by exactly one copy, written as `-100% / N` of the track's own
|
|
16
|
+
* height, so the loop is seamless by construction, at any width, with no measured
|
|
17
|
+
* pixel in the geometry. Columns alternate: up, down, up.
|
|
18
|
+
*
|
|
19
|
+
* Only the DURATION is measured, because px/s is a length over a time and CSS cannot
|
|
20
|
+
* divide one by the other: one copy's height over the speed. Until that measurement
|
|
21
|
+
* lands the tracks hold their first frame (paused), so a server render, the first
|
|
22
|
+
* paint and hydration all show the same picture and nothing jumps when motion starts.
|
|
23
|
+
*
|
|
24
|
+
* Each column opens staggered: column one's first card at the 32px padding line,
|
|
25
|
+
* column two half a landscape card higher, column three a third higher, so the
|
|
26
|
+
* masonry reads staggered from the first frame and no column opens on a cut card.
|
|
27
|
+
* That offset is CSS too (`75cqw` is a 4:3 card's height in a column that is a
|
|
28
|
+
* size container).
|
|
29
|
+
*
|
|
30
|
+
* ## Breakpoints
|
|
31
|
+
*
|
|
32
|
+
* Three columns when the panel is at least 544px wide, two below. 544 is not a round
|
|
33
|
+
* number on purpose: the Console's sign-in shell gives this panel 45% of the window
|
|
34
|
+
* minus a 16px inset either side, which is exactly 544 at 1280, the shell's `xl`.
|
|
35
|
+
* So a container query on the panel switches at the same window width the shell's
|
|
36
|
+
* media query used to, and the block still works at any width somewhere else.
|
|
37
|
+
* Hiding the panel on small screens stays the shell's business.
|
|
38
|
+
*
|
|
39
|
+
* The two- and three-column deals are both rendered and the container query shows
|
|
40
|
+
* one. That keeps the server render right at every width. Both deals hold the same
|
|
41
|
+
* 19 pictures, so the hidden one costs DOM, not bytes.
|
|
42
|
+
*
|
|
43
|
+
* ## Pictures
|
|
44
|
+
*
|
|
45
|
+
* A package has no public URL, so the block does not decide one. The 19 default
|
|
46
|
+
* pictures ship as files, `@cloudgrid-io/ui/brand/showcase/<slug>.webp`, already
|
|
47
|
+
* cropped to their card's shape, and the consumer says where they are served:
|
|
48
|
+
* `resolveSrc(card)`, or a `src` on each card. In a Next app that is a static import
|
|
49
|
+
* per file (hashed, cached forever, copied out of node_modules by the build). Not
|
|
50
|
+
* inlined as data URIs, unlike `EmptyCreations`' four thumbnails: that was 13 KB,
|
|
51
|
+
* this is 205 KB, and base64 in a JS chunk would cost 270 KB on the first page a
|
|
52
|
+
* signed-out person loads, uncacheable apart from the code around it.
|
|
53
|
+
*
|
|
54
|
+
* ## Decorative
|
|
55
|
+
*
|
|
56
|
+
* The whole panel is `aria-hidden`, every picture has `alt=""`, and nothing in it is
|
|
57
|
+
* focusable. The numbers are hover-only and are the website's placeholders.
|
|
58
|
+
*/
|
|
59
|
+
/** The three card shapes, each a crop the picture files are already cut to. */
|
|
60
|
+
type ShowcaseScrollShape = "landscape" | "square" | "portrait";
|
|
61
|
+
type ShowcaseScrollCard = {
|
|
62
|
+
/** Stable key, and the file name under `brand/showcase/` without `.webp`. */
|
|
63
|
+
slug: string;
|
|
64
|
+
/** The creation's name. Not shown: the card is a picture of it. */
|
|
65
|
+
name: string;
|
|
66
|
+
views: number;
|
|
67
|
+
reactions: number;
|
|
68
|
+
/** landscape 4:3, square 1:1, portrait 3:4. */
|
|
69
|
+
shape: ShowcaseScrollShape;
|
|
70
|
+
/** The picture's URL. When absent, `resolveSrc` is asked. */
|
|
71
|
+
src?: string;
|
|
72
|
+
};
|
|
73
|
+
/**
|
|
74
|
+
* The website's 19 creations: the /thegrid ticker's twelve plus the home page's seven
|
|
75
|
+
* (`cloudgrid-landing` `preview/full-site` @ 2fa378b, `Ticker.astro`).
|
|
76
|
+
*
|
|
77
|
+
* THE NUMBERS ARE ILLUSTRATIVE. They are the website's placeholder figures, kept
|
|
78
|
+
* as the site has them; none of them is real usage data.
|
|
79
|
+
*/
|
|
80
|
+
declare const SHOWCASE_SCROLL_CARDS: readonly ShowcaseScrollCard[];
|
|
81
|
+
/**
|
|
82
|
+
* The default cards dealt into columns BY HAND, as the mock deals them: light and
|
|
83
|
+
* dark cards alternate down each column, every column mixes the three shapes, and
|
|
84
|
+
* no card is in two columns. Used only with the default cards; an override is dealt
|
|
85
|
+
* round-robin.
|
|
86
|
+
*/
|
|
87
|
+
declare const SHOWCASE_SCROLL_COLUMNS: Readonly<Record<2 | 3, readonly (readonly string[])[]>>;
|
|
88
|
+
/** The founder's speed, px/s, for the outer columns (2026-10-06). */
|
|
89
|
+
declare const SHOWCASE_SCROLL_SPEED = 46;
|
|
90
|
+
type ShowcaseScrollProps = Omit<React.ComponentProps<"section">, "children" | "ref"> & {
|
|
91
|
+
/** Replaces the default 19. An override is dealt into columns round-robin. */
|
|
92
|
+
cards?: readonly ShowcaseScrollCard[];
|
|
93
|
+
/** Where a card's picture is served, for a card with no `src` of its own. */
|
|
94
|
+
resolveSrc?: (card: ShowcaseScrollCard) => string | undefined;
|
|
95
|
+
/** px/s for the outer columns. The middle column runs at 80% of it. */
|
|
96
|
+
speed?: number;
|
|
97
|
+
/** Holds every column still on its current frame. */
|
|
98
|
+
paused?: boolean;
|
|
99
|
+
};
|
|
100
|
+
declare function ShowcaseScroll({ cards, resolveSrc, speed, paused, className, ...props }: ShowcaseScrollProps): React.JSX.Element;
|
|
101
|
+
export { ShowcaseScroll, SHOWCASE_SCROLL_CARDS, SHOWCASE_SCROLL_COLUMNS, SHOWCASE_SCROLL_SPEED };
|
|
102
|
+
export type { ShowcaseScrollCard, ShowcaseScrollShape, ShowcaseScrollProps };
|
|
103
|
+
//# sourceMappingURL=showcase-scroll.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"showcase-scroll.d.ts","sourceRoot":"","sources":["../../src/blocks/showcase-scroll.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAM9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AAEH,+EAA+E;AAC/E,KAAK,mBAAmB,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAA;AAE9D,KAAK,kBAAkB,GAAG;IACxB,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAA;IACZ,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,+CAA+C;IAC/C,KAAK,EAAE,mBAAmB,CAAA;IAC1B,6DAA6D;IAC7D,GAAG,CAAC,EAAE,MAAM,CAAA;CACb,CAAA;AAED;;;;;;GAMG;AACH,QAAA,MAAM,qBAAqB,EAAE,SAAS,kBAAkB,EAoBvD,CAAA;AAED;;;;;GAKG;AACH,QAAA,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC,CAUpF,CAAA;AAED,qEAAqE;AACrE,QAAA,MAAM,qBAAqB,KAAK,CAAA;AA+OhC,KAAK,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,UAAU,GAAG,KAAK,CAAC,GAAG;IACrF,8EAA8E;IAC9E,KAAK,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAA;IACrC,6EAA6E;IAC7E,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,MAAM,GAAG,SAAS,CAAA;IAC7D,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,qDAAqD;IACrD,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AA4GD,iBAAS,cAAc,CAAC,EACtB,KAAK,EACL,UAAU,EACV,KAA6B,EAC7B,MAAc,EACd,SAAS,EACT,GAAG,KAAK,EACT,EAAE,mBAAmB,qBAoHrB;AA2DD,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,CAAA;AAChG,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,CAAA"}
|
|
@@ -0,0 +1,432 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { Panel } from "../ui/panel.js";
|
|
5
|
+
import { ReactionsIcon, ViewsIcon } from "./icons.js";
|
|
6
|
+
import { cn } from "../lib/cloudgrid-cn.js";
|
|
7
|
+
/**
|
|
8
|
+
* The website's 19 creations: the /thegrid ticker's twelve plus the home page's seven
|
|
9
|
+
* (`cloudgrid-landing` `preview/full-site` @ 2fa378b, `Ticker.astro`).
|
|
10
|
+
*
|
|
11
|
+
* THE NUMBERS ARE ILLUSTRATIVE. They are the website's placeholder figures, kept
|
|
12
|
+
* as the site has them; none of them is real usage data.
|
|
13
|
+
*/
|
|
14
|
+
const SHOWCASE_SCROLL_CARDS = [
|
|
15
|
+
{ slug: "space-today", name: "Space Today", shape: "square", views: 2481, reactions: 37 },
|
|
16
|
+
{ slug: "sales-call-coach", name: "Sales Call Coach", shape: "landscape", views: 248, reactions: 25 },
|
|
17
|
+
{ slug: "all-the-way-down", name: "All the Way Down", shape: "landscape", views: 1109, reactions: 18 },
|
|
18
|
+
{ slug: "pricing-simulator", name: "Pricing Simulator", shape: "landscape", views: 186, reactions: 17 },
|
|
19
|
+
{ slug: "fox-tales", name: "Fox Tales", shape: "square", views: 864, reactions: 52 },
|
|
20
|
+
{ slug: "moon-run", name: "Moon Run", shape: "landscape", views: 1420, reactions: 110 },
|
|
21
|
+
{ slug: "chess-puzzles", name: "Chess Puzzles", shape: "square", views: 318, reactions: 9 },
|
|
22
|
+
{ slug: "campaign-brief-builder", name: "Campaign Brief Builder", shape: "landscape", views: 324, reactions: 38 },
|
|
23
|
+
{ slug: "tour-poster", name: "Tour Poster", shape: "portrait", views: 1742, reactions: 64 },
|
|
24
|
+
{ slug: "onboarding-guide", name: "Onboarding Guide", shape: "landscape", views: 412, reactions: 40 },
|
|
25
|
+
{ slug: "operating-review", name: "Operating Review", shape: "square", views: 126, reactions: 5 },
|
|
26
|
+
{ slug: "living-board-update", name: "Living Board Update", shape: "landscape", views: 96, reactions: 11 },
|
|
27
|
+
{ slug: "analytics-dashboard", name: "Analytics Dashboard", shape: "square", views: 1318, reactions: 41 },
|
|
28
|
+
{ slug: "online-shop", name: "Online Shop", shape: "landscape", views: 2204, reactions: 73 },
|
|
29
|
+
{ slug: "stocks-dashboard", name: "Stocks Dashboard", shape: "landscape", views: 689, reactions: 22 },
|
|
30
|
+
{ slug: "invoices", name: "Invoices", shape: "square", views: 402, reactions: 14 },
|
|
31
|
+
{ slug: "task-manager", name: "Task Manager", shape: "landscape", views: 957, reactions: 36 },
|
|
32
|
+
{ slug: "your-crm", name: "Your CRM", shape: "landscape", views: 533, reactions: 19 },
|
|
33
|
+
{ slug: "rent-or-buy", name: "Rent or Buy", shape: "landscape", views: 1476, reactions: 58 },
|
|
34
|
+
];
|
|
35
|
+
/**
|
|
36
|
+
* The default cards dealt into columns BY HAND, as the mock deals them: light and
|
|
37
|
+
* dark cards alternate down each column, every column mixes the three shapes, and
|
|
38
|
+
* no card is in two columns. Used only with the default cards; an override is dealt
|
|
39
|
+
* round-robin.
|
|
40
|
+
*/
|
|
41
|
+
const SHOWCASE_SCROLL_COLUMNS = {
|
|
42
|
+
3: [
|
|
43
|
+
["moon-run", "campaign-brief-builder", "analytics-dashboard", "rent-or-buy", "fox-tales", "living-board-update", "sales-call-coach"],
|
|
44
|
+
["online-shop", "tour-poster", "pricing-simulator", "stocks-dashboard", "onboarding-guide", "operating-review"],
|
|
45
|
+
["space-today", "invoices", "all-the-way-down", "task-manager", "chess-puzzles", "your-crm"],
|
|
46
|
+
],
|
|
47
|
+
2: [
|
|
48
|
+
["moon-run", "campaign-brief-builder", "analytics-dashboard", "rent-or-buy", "space-today", "task-manager", "fox-tales", "living-board-update", "sales-call-coach", "your-crm"],
|
|
49
|
+
["online-shop", "tour-poster", "pricing-simulator", "stocks-dashboard", "invoices", "all-the-way-down", "onboarding-guide", "chess-puzzles", "operating-review"],
|
|
50
|
+
],
|
|
51
|
+
};
|
|
52
|
+
/** The founder's speed, px/s, for the outer columns (2026-10-06). */
|
|
53
|
+
const SHOWCASE_SCROLL_SPEED = 46;
|
|
54
|
+
/** The middle column runs at this share of the speed: the parallax. */
|
|
55
|
+
const MIDDLE_COLUMN_FACTOR = 0.8;
|
|
56
|
+
/** Where each column's first card opens, in 4:3 card heights above the padding line. */
|
|
57
|
+
const START_OFFSETS = [0, -0.5, -0.33];
|
|
58
|
+
/** The count-up, as on the website's ticker. */
|
|
59
|
+
const COUNT_MS = 780;
|
|
60
|
+
const MIN_COPIES = 3;
|
|
61
|
+
const MAX_COPIES = 12;
|
|
62
|
+
/**
|
|
63
|
+
* Everything a utility class cannot carry cleanly: keyframes, a 17-stop mask, a
|
|
64
|
+
* container query that swaps the deal, a hover chain across elements, and the
|
|
65
|
+
* reduced-motion overrides. Every value is a token or a geometry of the mock's.
|
|
66
|
+
*
|
|
67
|
+
* Emitted as a React 19 hoistable stylesheet (`href` + `precedence`), so React puts
|
|
68
|
+
* it in the head once however many panels render. It sits in `@layer components`,
|
|
69
|
+
* under a consumer's own utilities. It opens by declaring Tailwind v4's layer order:
|
|
70
|
+
* layer order is set by FIRST appearance, so if this sheet ever reached the page
|
|
71
|
+
* before the consumer's Tailwind CSS, `components` would otherwise rank below
|
|
72
|
+
* `base`, and preflight's `img { height: auto }` would undo the cover-fit pictures.
|
|
73
|
+
*
|
|
74
|
+
* The mask's stops are written as `color-mix(in srgb, black N%, transparent)`. A mask
|
|
75
|
+
* paints nothing; only each stop's ALPHA is read, so these are opacities on the
|
|
76
|
+
* smoothstep curve, not colours.
|
|
77
|
+
*/
|
|
78
|
+
const STYLES = `
|
|
79
|
+
@layer theme, base, components, utilities;
|
|
80
|
+
@layer components {
|
|
81
|
+
[data-slot="showcase-scroll"] {
|
|
82
|
+
container: cg-showcase / inline-size;
|
|
83
|
+
position: relative;
|
|
84
|
+
overflow: hidden;
|
|
85
|
+
isolation: isolate;
|
|
86
|
+
/* The mock's lift and rise: between --cg-duration (180) and -slow (280). */
|
|
87
|
+
--cg-showcase-lift: 200ms;
|
|
88
|
+
}
|
|
89
|
+
[data-slot="showcase-scroll-frame"] {
|
|
90
|
+
position: absolute;
|
|
91
|
+
inset: 0;
|
|
92
|
+
}
|
|
93
|
+
[data-slot="showcase-scroll-layout"] {
|
|
94
|
+
position: absolute;
|
|
95
|
+
inset: 0;
|
|
96
|
+
display: grid;
|
|
97
|
+
grid-template-columns: repeat(var(--cg-showcase-columns), minmax(0, 1fr));
|
|
98
|
+
gap: var(--cg-space-4);
|
|
99
|
+
padding: 0 var(--cg-space-8);
|
|
100
|
+
--cg-showcase-fade-size: 15%;
|
|
101
|
+
--cg-showcase-fade: linear-gradient(to bottom,
|
|
102
|
+
transparent 0,
|
|
103
|
+
color-mix(in srgb, black 3%, transparent) calc(var(--cg-showcase-fade-size) * 0.125),
|
|
104
|
+
color-mix(in srgb, black 10%, transparent) calc(var(--cg-showcase-fade-size) * 0.25),
|
|
105
|
+
color-mix(in srgb, black 22%, transparent) calc(var(--cg-showcase-fade-size) * 0.375),
|
|
106
|
+
color-mix(in srgb, black 37%, transparent) calc(var(--cg-showcase-fade-size) * 0.5),
|
|
107
|
+
color-mix(in srgb, black 55%, transparent) calc(var(--cg-showcase-fade-size) * 0.625),
|
|
108
|
+
color-mix(in srgb, black 73%, transparent) calc(var(--cg-showcase-fade-size) * 0.75),
|
|
109
|
+
color-mix(in srgb, black 88%, transparent) calc(var(--cg-showcase-fade-size) * 0.875),
|
|
110
|
+
black var(--cg-showcase-fade-size),
|
|
111
|
+
black calc(100% - var(--cg-showcase-fade-size)),
|
|
112
|
+
color-mix(in srgb, black 88%, transparent) calc(100% - var(--cg-showcase-fade-size) * 0.875),
|
|
113
|
+
color-mix(in srgb, black 73%, transparent) calc(100% - var(--cg-showcase-fade-size) * 0.75),
|
|
114
|
+
color-mix(in srgb, black 55%, transparent) calc(100% - var(--cg-showcase-fade-size) * 0.625),
|
|
115
|
+
color-mix(in srgb, black 37%, transparent) calc(100% - var(--cg-showcase-fade-size) * 0.5),
|
|
116
|
+
color-mix(in srgb, black 22%, transparent) calc(100% - var(--cg-showcase-fade-size) * 0.375),
|
|
117
|
+
color-mix(in srgb, black 10%, transparent) calc(100% - var(--cg-showcase-fade-size) * 0.25),
|
|
118
|
+
color-mix(in srgb, black 3%, transparent) calc(100% - var(--cg-showcase-fade-size) * 0.125),
|
|
119
|
+
transparent 100%);
|
|
120
|
+
-webkit-mask-image: var(--cg-showcase-fade);
|
|
121
|
+
mask-image: var(--cg-showcase-fade);
|
|
122
|
+
}
|
|
123
|
+
[data-slot="showcase-scroll-layout"][data-columns="3"] { display: none; }
|
|
124
|
+
@container cg-showcase (min-width: 544px) {
|
|
125
|
+
[data-slot="showcase-scroll-layout"][data-columns="2"] { display: none; }
|
|
126
|
+
[data-slot="showcase-scroll-layout"][data-columns="3"] { display: grid; }
|
|
127
|
+
}
|
|
128
|
+
[data-slot="showcase-scroll-column"] {
|
|
129
|
+
container-type: inline-size;
|
|
130
|
+
position: relative;
|
|
131
|
+
min-width: 0;
|
|
132
|
+
}
|
|
133
|
+
[data-slot="showcase-scroll-offset"] {
|
|
134
|
+
transform: translate3d(0, calc(var(--cg-space-8) + var(--cg-showcase-start) * 75cqw), 0);
|
|
135
|
+
}
|
|
136
|
+
[data-slot="showcase-scroll-track"] {
|
|
137
|
+
will-change: transform;
|
|
138
|
+
animation-duration: var(--cg-showcase-duration, 30s);
|
|
139
|
+
animation-timing-function: linear;
|
|
140
|
+
animation-iteration-count: infinite;
|
|
141
|
+
}
|
|
142
|
+
[data-slot="showcase-scroll-column"][data-direction="up"] [data-slot="showcase-scroll-track"] {
|
|
143
|
+
animation-name: cg-showcase-up;
|
|
144
|
+
}
|
|
145
|
+
[data-slot="showcase-scroll-column"][data-direction="down"] [data-slot="showcase-scroll-track"] {
|
|
146
|
+
animation-name: cg-showcase-down;
|
|
147
|
+
}
|
|
148
|
+
[data-slot="showcase-scroll"]:not([data-running]) [data-slot="showcase-scroll-track"] {
|
|
149
|
+
animation-play-state: paused;
|
|
150
|
+
}
|
|
151
|
+
@media (hover: hover) {
|
|
152
|
+
[data-slot="showcase-scroll-column"]:hover [data-slot="showcase-scroll-track"] {
|
|
153
|
+
animation-play-state: paused;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
[data-slot="showcase-scroll-copy"] {
|
|
157
|
+
display: flex;
|
|
158
|
+
flex-direction: column;
|
|
159
|
+
gap: var(--cg-space-4);
|
|
160
|
+
padding-bottom: var(--cg-space-4);
|
|
161
|
+
}
|
|
162
|
+
[data-slot="showcase-scroll-card"] {
|
|
163
|
+
position: relative;
|
|
164
|
+
overflow: hidden;
|
|
165
|
+
border-radius: var(--cg-radius-xl);
|
|
166
|
+
background: var(--cg-neutral-50);
|
|
167
|
+
box-shadow: var(--cg-shadow-tile);
|
|
168
|
+
transition:
|
|
169
|
+
transform var(--cg-showcase-lift) var(--cg-ease-out),
|
|
170
|
+
box-shadow var(--cg-showcase-lift) var(--cg-ease-out);
|
|
171
|
+
}
|
|
172
|
+
[data-slot="showcase-scroll-card"][data-shape="landscape"] { aspect-ratio: 4 / 3; }
|
|
173
|
+
[data-slot="showcase-scroll-card"][data-shape="square"] { aspect-ratio: 1 / 1; }
|
|
174
|
+
[data-slot="showcase-scroll-card"][data-shape="portrait"] { aspect-ratio: 3 / 4; }
|
|
175
|
+
[data-slot="showcase-scroll-card"] > img {
|
|
176
|
+
position: absolute;
|
|
177
|
+
inset: 0;
|
|
178
|
+
display: block;
|
|
179
|
+
width: 100%;
|
|
180
|
+
height: 100%;
|
|
181
|
+
max-width: none;
|
|
182
|
+
object-fit: cover;
|
|
183
|
+
user-select: none;
|
|
184
|
+
-webkit-user-drag: none;
|
|
185
|
+
}
|
|
186
|
+
@media (hover: hover) {
|
|
187
|
+
[data-slot="showcase-scroll-card"]:hover {
|
|
188
|
+
transform: scale(1.02);
|
|
189
|
+
box-shadow: var(--cg-shadow-tile-hover);
|
|
190
|
+
z-index: 2;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
[data-slot="showcase-scroll-stats"] {
|
|
194
|
+
position: absolute;
|
|
195
|
+
left: var(--cg-space-2);
|
|
196
|
+
bottom: var(--cg-space-2);
|
|
197
|
+
z-index: 3;
|
|
198
|
+
display: flex;
|
|
199
|
+
flex-direction: column;
|
|
200
|
+
align-items: flex-start;
|
|
201
|
+
gap: var(--cg-space-1);
|
|
202
|
+
pointer-events: none;
|
|
203
|
+
animation: cg-showcase-rise var(--cg-showcase-lift) var(--cg-ease-out) both;
|
|
204
|
+
}
|
|
205
|
+
@media (hover: none) {
|
|
206
|
+
[data-slot="showcase-scroll-stats"] { display: none; }
|
|
207
|
+
}
|
|
208
|
+
[data-slot="showcase-scroll-chip"] {
|
|
209
|
+
display: flex;
|
|
210
|
+
align-items: center;
|
|
211
|
+
gap: 7px;
|
|
212
|
+
height: var(--cg-space-8);
|
|
213
|
+
padding: 0 10px 0 5px;
|
|
214
|
+
border: var(--cg-border-width) solid var(--cg-border-hairline);
|
|
215
|
+
border-radius: var(--cg-radius-xs);
|
|
216
|
+
background: var(--cg-surface-card);
|
|
217
|
+
box-shadow: var(--cg-shadow-card);
|
|
218
|
+
white-space: nowrap;
|
|
219
|
+
}
|
|
220
|
+
[data-slot="showcase-scroll-plate"] {
|
|
221
|
+
display: grid;
|
|
222
|
+
place-items: center;
|
|
223
|
+
flex: none;
|
|
224
|
+
width: 22px;
|
|
225
|
+
height: 22px;
|
|
226
|
+
border-radius: var(--cg-radius-2xs);
|
|
227
|
+
background: var(--cg-surface-page);
|
|
228
|
+
color: var(--cg-text-accent);
|
|
229
|
+
}
|
|
230
|
+
[data-slot="showcase-scroll-plate"] > svg { width: 14px; height: 14px; }
|
|
231
|
+
[data-slot="showcase-scroll-figure"] {
|
|
232
|
+
display: flex;
|
|
233
|
+
align-items: baseline;
|
|
234
|
+
gap: 5px;
|
|
235
|
+
font-family: var(--cg-font-body);
|
|
236
|
+
}
|
|
237
|
+
[data-slot="showcase-scroll-number"] {
|
|
238
|
+
font-size: var(--cg-body-md);
|
|
239
|
+
font-weight: var(--cg-weight-medium);
|
|
240
|
+
line-height: 1;
|
|
241
|
+
color: var(--cg-text-primary);
|
|
242
|
+
font-variant-numeric: tabular-nums;
|
|
243
|
+
}
|
|
244
|
+
[data-slot="showcase-scroll-label"] {
|
|
245
|
+
font-size: var(--cg-caption);
|
|
246
|
+
font-weight: var(--cg-weight-regular);
|
|
247
|
+
line-height: 1;
|
|
248
|
+
color: var(--cg-text-secondary);
|
|
249
|
+
}
|
|
250
|
+
[data-slot="showcase-scroll-stats"][data-compact] [data-slot="showcase-scroll-chip"] {
|
|
251
|
+
height: auto;
|
|
252
|
+
padding-top: 5px;
|
|
253
|
+
padding-bottom: 5px;
|
|
254
|
+
}
|
|
255
|
+
[data-slot="showcase-scroll-stats"][data-compact] [data-slot="showcase-scroll-figure"] {
|
|
256
|
+
flex-direction: column;
|
|
257
|
+
align-items: flex-start;
|
|
258
|
+
gap: 3px;
|
|
259
|
+
}
|
|
260
|
+
@media (prefers-reduced-motion: reduce) {
|
|
261
|
+
[data-slot="showcase-scroll-layout"] {
|
|
262
|
+
padding-top: var(--cg-space-8);
|
|
263
|
+
--cg-showcase-fade: linear-gradient(to bottom,
|
|
264
|
+
black calc(100% - var(--cg-showcase-fade-size)),
|
|
265
|
+
color-mix(in srgb, black 55%, transparent) calc(100% - var(--cg-showcase-fade-size) * 0.625),
|
|
266
|
+
color-mix(in srgb, black 10%, transparent) calc(100% - var(--cg-showcase-fade-size) * 0.25),
|
|
267
|
+
transparent 100%);
|
|
268
|
+
}
|
|
269
|
+
[data-slot="showcase-scroll-offset"],
|
|
270
|
+
[data-slot="showcase-scroll-track"] { animation: none; transform: none; }
|
|
271
|
+
[data-slot="showcase-scroll-card"],
|
|
272
|
+
[data-slot="showcase-scroll-stats"] { transition: none; animation: none; }
|
|
273
|
+
[data-slot="showcase-scroll-card"]:hover { transform: none; }
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
@keyframes cg-showcase-up {
|
|
277
|
+
from { transform: translate3d(0, calc(-100% / var(--cg-showcase-copies)), 0); }
|
|
278
|
+
to { transform: translate3d(0, calc(-200% / var(--cg-showcase-copies)), 0); }
|
|
279
|
+
}
|
|
280
|
+
@keyframes cg-showcase-down {
|
|
281
|
+
from { transform: translate3d(0, calc(-200% / var(--cg-showcase-copies)), 0); }
|
|
282
|
+
to { transform: translate3d(0, calc(-100% / var(--cg-showcase-copies)), 0); }
|
|
283
|
+
}
|
|
284
|
+
@keyframes cg-showcase-rise {
|
|
285
|
+
from { opacity: 0; transform: translate3d(0, var(--cg-space-1), 0); }
|
|
286
|
+
to { opacity: 1; transform: none; }
|
|
287
|
+
}
|
|
288
|
+
`;
|
|
289
|
+
function deal(cards, usesDefaults) {
|
|
290
|
+
return [3, 2].map((columns) => {
|
|
291
|
+
if (usesDefaults) {
|
|
292
|
+
const bySlug = new Map(cards.map((c) => [c.slug, c]));
|
|
293
|
+
return {
|
|
294
|
+
columns,
|
|
295
|
+
cols: SHOWCASE_SCROLL_COLUMNS[columns].map((slugs) => slugs.map((s) => bySlug.get(s)).filter((c) => Boolean(c))),
|
|
296
|
+
};
|
|
297
|
+
}
|
|
298
|
+
const cols = Array.from({ length: columns }, () => []);
|
|
299
|
+
cards.forEach((card, i) => cols[i % columns].push(card));
|
|
300
|
+
return { columns, cols };
|
|
301
|
+
});
|
|
302
|
+
}
|
|
303
|
+
const format = (n) => Math.round(n).toLocaleString("en-US");
|
|
304
|
+
/** The ticker's count curve: ease in, ease out. */
|
|
305
|
+
const climb = (u) => (u < 0.5 ? 2 * u * u : 1 - Math.pow(-2 * u + 2, 2) / 2);
|
|
306
|
+
function reducedMotion() {
|
|
307
|
+
return typeof window !== "undefined" && window.matchMedia?.("(prefers-reduced-motion: reduce)").matches;
|
|
308
|
+
}
|
|
309
|
+
/** The two chips, inside the hovered card's bottom-left corner. */
|
|
310
|
+
function ShowcaseStats({ views, reactions }) {
|
|
311
|
+
const ref = React.useRef(null);
|
|
312
|
+
const [compact, setCompact] = React.useState(false);
|
|
313
|
+
// Rendered at the final numbers first, so the narrow-card check measures the
|
|
314
|
+
// widest the chips will ever be, then counted up from zero before the first paint.
|
|
315
|
+
const [progress, setProgress] = React.useState(1);
|
|
316
|
+
React.useLayoutEffect(() => {
|
|
317
|
+
const el = ref.current;
|
|
318
|
+
const card = el?.parentElement;
|
|
319
|
+
if (el && card)
|
|
320
|
+
setCompact(el.scrollWidth > card.clientWidth - 16);
|
|
321
|
+
if (reducedMotion())
|
|
322
|
+
return;
|
|
323
|
+
setProgress(0);
|
|
324
|
+
let raf = 0;
|
|
325
|
+
const t0 = performance.now();
|
|
326
|
+
const step = (now) => {
|
|
327
|
+
const g = Math.min(1, (now - t0) / COUNT_MS);
|
|
328
|
+
setProgress(g);
|
|
329
|
+
if (g < 1)
|
|
330
|
+
raf = requestAnimationFrame(step);
|
|
331
|
+
};
|
|
332
|
+
raf = requestAnimationFrame(step);
|
|
333
|
+
return () => cancelAnimationFrame(raf);
|
|
334
|
+
}, []);
|
|
335
|
+
const shown = (n) => format(progress >= 1 ? n : n * climb(progress));
|
|
336
|
+
return (_jsxs("div", { ref: ref, "data-slot": "showcase-scroll-stats", "data-compact": compact ? "" : undefined, "data-theme": "default", children: [_jsxs("div", { "data-slot": "showcase-scroll-chip", "data-stat": "views", children: [_jsx("span", { "data-slot": "showcase-scroll-plate", children: _jsx(ViewsIcon, {}) }), _jsxs("span", { "data-slot": "showcase-scroll-figure", children: [_jsx("b", { "data-slot": "showcase-scroll-number", children: shown(views) }), _jsx("small", { "data-slot": "showcase-scroll-label", children: "Views" })] })] }), _jsxs("div", { "data-slot": "showcase-scroll-chip", "data-stat": "reactions", children: [_jsx("span", { "data-slot": "showcase-scroll-plate", children: _jsx(ReactionsIcon, {}) }), _jsxs("span", { "data-slot": "showcase-scroll-figure", children: [_jsx("b", { "data-slot": "showcase-scroll-number", children: shown(reactions) }), _jsx("small", { "data-slot": "showcase-scroll-label", children: "Reactions" })] })] })] }));
|
|
337
|
+
}
|
|
338
|
+
const ShowcaseCard = React.memo(function ShowcaseCard({ id, card, src, eager, active, }) {
|
|
339
|
+
return (_jsxs("div", { "data-slot": "showcase-scroll-card", "data-card": card.slug, "data-shape": card.shape, "data-tile": id, children: [src ? _jsx("img", { src: src, alt: "", loading: eager ? "eager" : "lazy", decoding: "async", draggable: false }) : null, active ? _jsx(ShowcaseStats, { views: card.views, reactions: card.reactions }) : null] }));
|
|
340
|
+
});
|
|
341
|
+
function ShowcaseScroll({ cards, resolveSrc, speed = SHOWCASE_SCROLL_SPEED, paused = false, className, ...props }) {
|
|
342
|
+
const rootRef = React.useRef(null);
|
|
343
|
+
const source = cards ?? SHOWCASE_SCROLL_CARDS;
|
|
344
|
+
const deals = React.useMemo(() => deal(source, !cards), [source, cards]);
|
|
345
|
+
const [copies, setCopies] = React.useState(MIN_COPIES);
|
|
346
|
+
const [durations, setDurations] = React.useState({});
|
|
347
|
+
const [hovered, setHovered] = React.useState(null);
|
|
348
|
+
// False until the panel is laid out with a size. Pictures are `lazy` until then,
|
|
349
|
+
// so a panel the shell hides (phones) fetches nothing, and `eager` after, so the
|
|
350
|
+
// 19 files arrive before their cards scroll in: lazy loading treats a card below
|
|
351
|
+
// the panel's clipped edge as out of view until it is already entering.
|
|
352
|
+
const [shown, setShown] = React.useState(false);
|
|
353
|
+
// One copy's height over the speed is each column's duration, and the panel's
|
|
354
|
+
// height decides how many copies keep the column covered for a whole loop.
|
|
355
|
+
React.useLayoutEffect(() => {
|
|
356
|
+
const root = rootRef.current;
|
|
357
|
+
if (!root)
|
|
358
|
+
return;
|
|
359
|
+
const measure = () => {
|
|
360
|
+
const panelH = root.clientHeight;
|
|
361
|
+
if (panelH > 0 && root.clientWidth > 0)
|
|
362
|
+
setShown(true);
|
|
363
|
+
const next = {};
|
|
364
|
+
let need = MIN_COPIES;
|
|
365
|
+
root.querySelectorAll('[data-slot="showcase-scroll-column"]').forEach((col) => {
|
|
366
|
+
if (col.getClientRects().length === 0)
|
|
367
|
+
return;
|
|
368
|
+
const copy = col.querySelector('[data-slot="showcase-scroll-copy"]');
|
|
369
|
+
const offset = col.querySelector('[data-slot="showcase-scroll-offset"]');
|
|
370
|
+
const h = copy?.getBoundingClientRect().height ?? 0;
|
|
371
|
+
if (!h)
|
|
372
|
+
return;
|
|
373
|
+
const factor = Number(col.dataset.speedFactor) || 1;
|
|
374
|
+
next[col.dataset.column] = h / (speed * factor);
|
|
375
|
+
// The track starts one copy up (two for a down column) from this offset,
|
|
376
|
+
// so it must reach the panel's bottom with two copies spent.
|
|
377
|
+
const t = offset && typeof DOMMatrixReadOnly !== "undefined"
|
|
378
|
+
? new DOMMatrixReadOnly(getComputedStyle(offset).transform).m42
|
|
379
|
+
: 0;
|
|
380
|
+
need = Math.max(need, Math.ceil(2 + (panelH - t) / h));
|
|
381
|
+
});
|
|
382
|
+
setCopies((c) => {
|
|
383
|
+
const n = Math.min(MAX_COPIES, need);
|
|
384
|
+
return c === n ? c : n;
|
|
385
|
+
});
|
|
386
|
+
setDurations((prev) => {
|
|
387
|
+
const keys = Object.keys(next);
|
|
388
|
+
if (keys.length === Object.keys(prev).length && keys.every((k) => Math.abs(prev[k] - next[k]) < 1e-6)) {
|
|
389
|
+
return prev;
|
|
390
|
+
}
|
|
391
|
+
return next;
|
|
392
|
+
});
|
|
393
|
+
};
|
|
394
|
+
measure();
|
|
395
|
+
// Absent in jsdom and other non-browser hosts: the block then renders its
|
|
396
|
+
// first frame and holds it, rather than throwing in a consumer's unit tests.
|
|
397
|
+
if (typeof ResizeObserver === "undefined")
|
|
398
|
+
return;
|
|
399
|
+
const ro = new ResizeObserver(measure);
|
|
400
|
+
ro.observe(root);
|
|
401
|
+
return () => ro.disconnect();
|
|
402
|
+
}, [speed, deals]);
|
|
403
|
+
const running = !paused && Object.keys(durations).length > 0;
|
|
404
|
+
const onPointerOver = (e) => {
|
|
405
|
+
if (e.pointerType !== "mouse")
|
|
406
|
+
return;
|
|
407
|
+
const tile = e.target.closest('[data-slot="showcase-scroll-card"]');
|
|
408
|
+
if (tile?.dataset.tile)
|
|
409
|
+
setHovered(tile.dataset.tile);
|
|
410
|
+
};
|
|
411
|
+
const onPointerOut = (e) => {
|
|
412
|
+
if (e.pointerType !== "mouse")
|
|
413
|
+
return;
|
|
414
|
+
const to = e.relatedTarget instanceof Element ? e.relatedTarget.closest('[data-slot="showcase-scroll-card"]') : null;
|
|
415
|
+
if (!to)
|
|
416
|
+
setHovered(null);
|
|
417
|
+
};
|
|
418
|
+
return (_jsxs(Panel, { ...props, inset: "flush", padding: "md", "data-slot": "showcase-scroll", "data-running": running ? "" : undefined, className: cn("h-full rounded-3xl p-0", className), "aria-hidden": "true", onPointerOver: onPointerOver, onPointerOut: onPointerOut, children: [_jsx("style", { href: "cg-showcase-scroll", precedence: "medium", children: STYLES }), _jsx("div", { ref: rootRef, "data-slot": "showcase-scroll-frame", children: deals.map(({ columns, cols }) => (_jsx("div", { "data-slot": "showcase-scroll-layout", "data-columns": columns, style: { "--cg-showcase-columns": columns }, children: cols.map((col, ci) => (_jsx(ShowcaseColumn, { id: `${columns}-${ci}`, index: ci, cards: col, copies: copies, duration: durations[`${columns}-${ci}`], hovered: hovered, eager: shown, resolveSrc: resolveSrc }, ci))) }, columns))) })] }));
|
|
419
|
+
}
|
|
420
|
+
/** One column: a static start offset around a track of identical copies. */
|
|
421
|
+
function ShowcaseColumn({ id, index, cards, copies, duration, hovered, eager, resolveSrc, }) {
|
|
422
|
+
const trackStyle = {
|
|
423
|
+
"--cg-showcase-copies": copies,
|
|
424
|
+
...(duration ? { "--cg-showcase-duration": `${duration}s` } : {}),
|
|
425
|
+
};
|
|
426
|
+
return (_jsx("div", { "data-slot": "showcase-scroll-column", "data-column": id, "data-direction": index % 2 ? "down" : "up", "data-speed-factor": index === 1 ? MIDDLE_COLUMN_FACTOR : 1, style: { "--cg-showcase-start": START_OFFSETS[index] ?? 0 }, children: _jsx("div", { "data-slot": "showcase-scroll-offset", children: _jsx("div", { "data-slot": "showcase-scroll-track", style: trackStyle, children: Array.from({ length: copies }, (_, k) => (_jsx("div", { "data-slot": "showcase-scroll-copy", children: cards.map((card, i) => {
|
|
427
|
+
const tile = `${id}-${k}-${i}`;
|
|
428
|
+
return (_jsx(ShowcaseCard, { id: tile, card: card, src: card.src ?? resolveSrc?.(card), eager: eager, active: hovered === tile }, tile));
|
|
429
|
+
}) }, k))) }) }) }));
|
|
430
|
+
}
|
|
431
|
+
export { ShowcaseScroll, SHOWCASE_SCROLL_CARDS, SHOWCASE_SCROLL_COLUMNS, SHOWCASE_SCROLL_SPEED };
|
|
432
|
+
//# sourceMappingURL=showcase-scroll.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"showcase-scroll.js","sourceRoot":"","sources":["../../src/blocks/showcase-scroll.tsx"],"names":[],"mappings":"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"}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/dist/index.d.ts
CHANGED
|
@@ -31,6 +31,7 @@ export * from "./blocks/celebration.js";
|
|
|
31
31
|
export * from "./blocks/cloudgrid-install.js";
|
|
32
32
|
export * from "./blocks/command-field.js";
|
|
33
33
|
export * from "./blocks/compare-table.js";
|
|
34
|
+
export * from "./blocks/confirm-delete-dialog.js";
|
|
34
35
|
export * from "./blocks/creation-tile.js";
|
|
35
36
|
export * from "./blocks/cta-banner.js";
|
|
36
37
|
export * from "./blocks/drop-zone.js";
|
|
@@ -54,6 +55,8 @@ export * from "./blocks/pricing-tiers.js";
|
|
|
54
55
|
export * from "./blocks/prompt-block.js";
|
|
55
56
|
export * from "./blocks/quote.js";
|
|
56
57
|
export * from "./blocks/rich-text.js";
|
|
58
|
+
export * from "./blocks/shelf.js";
|
|
59
|
+
export * from "./blocks/showcase-scroll.js";
|
|
57
60
|
export * from "./blocks/side-nav.js";
|
|
58
61
|
export * from "./blocks/sign-in-options.js";
|
|
59
62
|
export * from "./blocks/stage-panel.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAiBA,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,eAAe,CAAA;AAC7B,cAAc,sBAAsB,CAAA;AACpC,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAG/B,cAAc,0BAA0B,CAAA;AACxC,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,yBAAyB,CAAA;AACvC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,2BAA2B,CAAA;AACzC,cAAc,2BAA2B,CAAA;AACzC,cAAc,2BAA2B,CAAA;AACzC,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,yBAAyB,CAAA;AACvC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,2BAA2B,CAAA;AACzC,cAAc,qBAAqB,CAAA;AACnC,cAAc,2BAA2B,CAAA;AACzC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,yBAAyB,CAAA;AACvC,cAAc,0BAA0B,CAAA;AACxC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,2BAA2B,CAAA;AACzC,cAAc,0BAA0B,CAAA;AACxC,cAAc,mBAAmB,CAAA;AACjC,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,yBAAyB,CAAA;AACvC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AAGtC,cAAc,uBAAuB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAiBA,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,eAAe,CAAA;AAC7B,cAAc,sBAAsB,CAAA;AACpC,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAG/B,cAAc,0BAA0B,CAAA;AACxC,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,yBAAyB,CAAA;AACvC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,2BAA2B,CAAA;AACzC,cAAc,2BAA2B,CAAA;AACzC,cAAc,mCAAmC,CAAA;AACjD,cAAc,2BAA2B,CAAA;AACzC,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,yBAAyB,CAAA;AACvC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,2BAA2B,CAAA;AACzC,cAAc,qBAAqB,CAAA;AACnC,cAAc,2BAA2B,CAAA;AACzC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,yBAAyB,CAAA;AACvC,cAAc,0BAA0B,CAAA;AACxC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,2BAA2B,CAAA;AACzC,cAAc,0BAA0B,CAAA;AACxC,cAAc,mBAAmB,CAAA;AACjC,cAAc,uBAAuB,CAAA;AACrC,cAAc,mBAAmB,CAAA;AACjC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,sBAAsB,CAAA;AACpC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,yBAAyB,CAAA;AACvC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AAGtC,cAAc,uBAAuB,CAAA"}
|