@revenuecat/purchases-ui-js 0.0.16 → 0.0.18
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/components/button/Button.svelte +0 -13
- package/dist/components/button/Button.svelte.d.ts +4 -2
- package/dist/components/button/ButtonNode.stories.svelte +16 -11
- package/dist/components/button/ButtonNode.svelte +26 -1
- package/dist/components/button/ButtonNode.svelte.d.ts +1 -0
- package/dist/components/button/button-utils.d.ts +2 -0
- package/dist/components/button/button-utils.js +19 -0
- package/dist/components/footer/Footer.stories.svelte +47 -155
- package/dist/components/footer/Footer.stories.svelte.d.ts +1 -2
- package/dist/components/footer/Footer.svelte +10 -1
- package/dist/components/footer/Footer.svelte.d.ts +1 -0
- package/dist/components/image/Image.stories.svelte +13 -7
- package/dist/components/image/Image.svelte +37 -19
- package/dist/components/image/Image.svelte.d.ts +1 -0
- package/dist/components/image/image-utils.d.ts +2 -12
- package/dist/components/image/image-utils.js +28 -11
- package/dist/components/package/Package.stories.svelte +5 -5
- package/dist/components/package/Package.svelte +15 -6
- package/dist/components/package/Package.svelte.d.ts +1 -0
- package/dist/components/paywall/Node.svelte +77 -17
- package/dist/components/paywall/Node.svelte.d.ts +21 -2
- package/dist/components/paywall/Paywall.stories.svelte +93 -15
- package/dist/components/paywall/Paywall.svelte +110 -88
- package/dist/components/paywall/Paywall.svelte.d.ts +4 -0
- package/dist/components/paywall/paywall-utils.d.ts +1 -1
- package/dist/components/paywall/paywall-utils.js +11 -9
- package/dist/components/purchase-button/PurchaseButton.stories.svelte +7 -8
- package/dist/components/purchase-button/PurchaseButton.svelte +24 -10
- package/dist/components/purchase-button/PurchaseButton.svelte.d.ts +1 -0
- package/dist/components/purchase-button/purchase-button-utils.d.ts +2 -0
- package/dist/components/purchase-button/purchase-button-utils.js +20 -0
- package/dist/components/stack/Stack.stories.svelte +1138 -6
- package/dist/components/stack/Stack.svelte +160 -42
- package/dist/components/stack/Stack.svelte.d.ts +1 -0
- package/dist/components/stack/stack-utils.d.ts +24 -24
- package/dist/components/stack/stack-utils.js +245 -12
- package/dist/components/text/Text.svelte +24 -19
- package/dist/components/text/Text.svelte.d.ts +4 -2
- package/dist/components/text/TextNode.stories.svelte +13 -13
- package/dist/components/text/TextNode.svelte +24 -34
- package/dist/components/text/TextNode.svelte.d.ts +1 -0
- package/dist/components/text/text-utils.d.ts +11 -14
- package/dist/components/text/text-utils.js +130 -15
- package/dist/components/timeline/Timeline.stories.svelte +640 -0
- package/dist/components/timeline/Timeline.stories.svelte.d.ts +19 -0
- package/dist/components/timeline/Timeline.svelte +40 -0
- package/dist/components/timeline/Timeline.svelte.d.ts +4 -0
- package/dist/components/timeline/TimelineItem.svelte +112 -0
- package/dist/components/timeline/TimelineItem.svelte.d.ts +4 -0
- package/dist/components/timeline/timeline-utils.d.ts +8 -0
- package/dist/components/timeline/timeline-utils.js +128 -0
- package/dist/data/entities.d.ts +89 -9
- package/dist/data/state.d.ts +2 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.js +3 -2
- package/dist/stories/fixtures.d.ts +7 -1
- package/dist/stories/fixtures.js +6898 -7
- package/dist/stories/meta-templates.d.ts +0 -1
- package/dist/stories/meta-templates.js +0 -5
- package/dist/types.d.ts +16 -7
- package/dist/types.js +7 -0
- package/dist/utils/style-utils.d.ts +80 -41
- package/dist/utils/style-utils.js +157 -70
- package/dist/utils/variable-utils.d.ts +27 -0
- package/dist/utils/variable-utils.js +37 -0
- package/package.json +27 -25
- package/dist/components/paywall/global-styles.css +0 -9
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import {
|
|
3
|
+
getTimelineItemStyles,
|
|
4
|
+
getTimelineItemTextStyles,
|
|
5
|
+
} from "./timeline-utils";
|
|
6
|
+
import type { TimelineItemProps } from "../../data/entities";
|
|
7
|
+
|
|
8
|
+
const props: TimelineItemProps = $props();
|
|
9
|
+
const styles = $derived(getTimelineItemStyles(props));
|
|
10
|
+
|
|
11
|
+
const {
|
|
12
|
+
tagToRender: titleTagToRender,
|
|
13
|
+
textStyles: titleStyles,
|
|
14
|
+
textLabel: titleLabel,
|
|
15
|
+
} = $derived(getTimelineItemTextStyles(props, "title"));
|
|
16
|
+
|
|
17
|
+
const {
|
|
18
|
+
tagToRender: descriptionTagToRender,
|
|
19
|
+
textStyles: descriptionStyles,
|
|
20
|
+
textLabel: descriptionLabel,
|
|
21
|
+
} = $derived(getTimelineItemTextStyles(props, "description"));
|
|
22
|
+
// TODO: Object mapping icon name to icon component
|
|
23
|
+
</script>
|
|
24
|
+
|
|
25
|
+
<div class="rc-pw-timeline-item" style={styles}>
|
|
26
|
+
<div class="rc-pw-timeline-item-icon-container">
|
|
27
|
+
<div class="rc-pw-timeline-item-icon"></div>
|
|
28
|
+
</div>
|
|
29
|
+
<div class="rc-pw-timeline-item-content">
|
|
30
|
+
<svelte:element
|
|
31
|
+
this={titleTagToRender}
|
|
32
|
+
class="rc-pw-timeline-item-content-title"
|
|
33
|
+
style={titleStyles}>{titleLabel}</svelte:element
|
|
34
|
+
>
|
|
35
|
+
{#if descriptionLabel}
|
|
36
|
+
<svelte:element
|
|
37
|
+
this={descriptionTagToRender}
|
|
38
|
+
class="rc-pw-timeline-item-content-description"
|
|
39
|
+
style={descriptionStyles}>{descriptionLabel}</svelte:element
|
|
40
|
+
>
|
|
41
|
+
{/if}
|
|
42
|
+
</div>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
<style>
|
|
46
|
+
.rc-pw-timeline-item {
|
|
47
|
+
display: flex;
|
|
48
|
+
align-items: center;
|
|
49
|
+
gap: var(--timeline-item-spacing, 0px);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.rc-pw-timeline-item-icon-container {
|
|
53
|
+
position: relative;
|
|
54
|
+
border-end-start-radius: var(--timeline-item-border-end-start-radius, 0px);
|
|
55
|
+
border-end-end-radius: var(--timeline-item-border-end-end-radius, 0px);
|
|
56
|
+
border-start-start-radius: var(
|
|
57
|
+
--timeline-item-border-start-start-radius,
|
|
58
|
+
0px
|
|
59
|
+
);
|
|
60
|
+
border-start-end-radius: var(--timeline-item-border-start-end-radius, 0px);
|
|
61
|
+
width: var(--timeline-item-icon-size, 16px);
|
|
62
|
+
height: var(--timeline-item-icon-size, 16px);
|
|
63
|
+
flex-shrink: 0;
|
|
64
|
+
background-color: var(--timeline-item-icon-background-color, #ffffff);
|
|
65
|
+
border: var(--timeline-item-icon-border, initial);
|
|
66
|
+
display: flex;
|
|
67
|
+
align-items: center;
|
|
68
|
+
justify-content: center;
|
|
69
|
+
padding: var(--timeline-item-icon-padding, 0px);
|
|
70
|
+
box-sizing: content-box;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.rc-pw-timeline-item-icon-container::before {
|
|
74
|
+
position: absolute;
|
|
75
|
+
content: "";
|
|
76
|
+
z-index: -1;
|
|
77
|
+
top: var(--timeline-item-connector-top, 0px);
|
|
78
|
+
height: var(--timeline-item-connector-height, 0px);
|
|
79
|
+
width: var(--timeline-item-connector-width, 0px);
|
|
80
|
+
background: var(--timeline-item-connector-color, transparent);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.rc-pw-timeline-item-icon {
|
|
84
|
+
width: var(--timeline-item-icon-size, 10px);
|
|
85
|
+
height: var(--timeline-item-icon-size, 10px);
|
|
86
|
+
color: var(--timeline-item-icon-color, #ffffff);
|
|
87
|
+
display: flex;
|
|
88
|
+
align-items: center;
|
|
89
|
+
justify-content: center;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.rc-pw-timeline-item-content {
|
|
93
|
+
display: flex;
|
|
94
|
+
flex-direction: column;
|
|
95
|
+
justify-content: flex-start;
|
|
96
|
+
align-items: flex-start;
|
|
97
|
+
gap: var(--timeline-item-text-spacing, 0px);
|
|
98
|
+
height: fit-content;
|
|
99
|
+
}
|
|
100
|
+
.rc-pw-timeline-item-content-title,
|
|
101
|
+
.rc-pw-timeline-item-content-description {
|
|
102
|
+
margin-block-start: var(--timeline-item-text-margin-block-start, 0px);
|
|
103
|
+
margin-inline-end: var(--timeline-item-text-margin-inline-end, 0px);
|
|
104
|
+
margin-block-end: var(--timeline-item-text-margin-block-end, 0px);
|
|
105
|
+
margin-inline-start: var(--timeline-item-text-margin-inline-start, 0px);
|
|
106
|
+
padding-block-start: var(--timeline-item-text-padding-block-start, 0);
|
|
107
|
+
padding-inline-end: var(--timeline-item-text-padding-inline-end, 0);
|
|
108
|
+
padding-block-end: var(--timeline-item-text-padding-block-end, 0);
|
|
109
|
+
padding-inline-start: var(--timeline-item-text-padding-inline-start, 0);
|
|
110
|
+
font-family: var(--timeline-item-text-font-family, sans-serif);
|
|
111
|
+
}
|
|
112
|
+
</style>
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { TimelineItemProps, TimelineProps } from "../../data/entities";
|
|
2
|
+
export declare function getTimelineStyles(props: TimelineProps): string;
|
|
3
|
+
export declare function getTimelineItemStyles(props: TimelineItemProps): string;
|
|
4
|
+
export declare function getTimelineItemTextStyles(props: TimelineItemProps, kind?: "title" | "description"): {
|
|
5
|
+
textStyles: string;
|
|
6
|
+
tagToRender: import("../../utils/style-utils").TextComponentTags;
|
|
7
|
+
textLabel: string | undefined;
|
|
8
|
+
};
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { defaultColor, getTextComponentStyles, } from "../text/text-utils";
|
|
2
|
+
import { getBorderStyle, getColor, getCornerRadiusStyle, getSizeStyle, prefixObject, stringifyStyles, } from "../../utils/style-utils";
|
|
3
|
+
import { getLabelAndReplaceVariables } from "../../utils/variable-utils";
|
|
4
|
+
export function getTimelineStyles(props) {
|
|
5
|
+
const styles = {
|
|
6
|
+
"--item-spacing": `${props.item_spacing}px`,
|
|
7
|
+
"--width": "initial",
|
|
8
|
+
"--height": "initial",
|
|
9
|
+
"--flex": "0 1 auto",
|
|
10
|
+
"--position": "relative",
|
|
11
|
+
"--inset": "0",
|
|
12
|
+
"--transform": "initial",
|
|
13
|
+
};
|
|
14
|
+
Object.assign(styles, getSizeStyle(props.size));
|
|
15
|
+
Object.assign(styles, props.zStackChildStyles);
|
|
16
|
+
const prefixedStyles = prefixObject(styles, "timeline");
|
|
17
|
+
return stringifyStyles(prefixedStyles);
|
|
18
|
+
}
|
|
19
|
+
export function getTimelineItemStyles(props) {
|
|
20
|
+
const styles = {
|
|
21
|
+
"--icon-size": `${props.icon.width_and_height}px`,
|
|
22
|
+
"--icon-padding": `${props.icon.padding}px`,
|
|
23
|
+
"--icon-color": getColor({
|
|
24
|
+
colorMap: props.icon.color,
|
|
25
|
+
colorMode: props.purchaseState?.colorMode,
|
|
26
|
+
}),
|
|
27
|
+
"--icon-background-color": getColor({
|
|
28
|
+
colorMap: props.icon_background?.color,
|
|
29
|
+
colorMode: props.purchaseState.colorMode,
|
|
30
|
+
}),
|
|
31
|
+
"--icon-border": getBorderStyle(props.icon_background?.border, props.purchaseState?.colorMode),
|
|
32
|
+
"--text-spacing": `${props.text_spacing}px`,
|
|
33
|
+
"--border-start-start-radius": `0px`,
|
|
34
|
+
"--border-start-end-radius": `0px`,
|
|
35
|
+
"--border-end-start-radius": `0px`,
|
|
36
|
+
"--border-end-end-radius": `0px`,
|
|
37
|
+
"--connector-color": getColor({
|
|
38
|
+
colorMap: props.connector?.color,
|
|
39
|
+
colorMode: props.purchaseState.colorMode,
|
|
40
|
+
}),
|
|
41
|
+
"--connector-width": `${props.connector?.width || 0}px`,
|
|
42
|
+
"--connector-top": "0px",
|
|
43
|
+
"--connector-height": `${props.item_spacing}px`,
|
|
44
|
+
};
|
|
45
|
+
Object.assign(styles, props.icon_background?.shape?.type === "rectangle"
|
|
46
|
+
? getCornerRadiusStyle(props.icon_background?.shape?.corners)
|
|
47
|
+
: {
|
|
48
|
+
"--border-start-start-radius": "50%",
|
|
49
|
+
"--border-start-end-radius": "50%",
|
|
50
|
+
"--border-end-start-radius": "50%",
|
|
51
|
+
"--border-end-end-radius": "50%",
|
|
52
|
+
});
|
|
53
|
+
if (props.connector) {
|
|
54
|
+
const hasMarginTop = props.connector.margin.top !== 0;
|
|
55
|
+
const hasMarginBottom = props.connector.margin.bottom !== 0;
|
|
56
|
+
const itemBackgroundSize = props.icon.padding + props.icon.width_and_height / 2;
|
|
57
|
+
if (!hasMarginTop && !hasMarginBottom) {
|
|
58
|
+
styles["--connector-height"] =
|
|
59
|
+
`${props.item_spacing + itemBackgroundSize * 2}px`;
|
|
60
|
+
styles["--connector-top"] = `50%`;
|
|
61
|
+
}
|
|
62
|
+
if (hasMarginTop && hasMarginBottom) {
|
|
63
|
+
styles["--connector-height"] =
|
|
64
|
+
`${props.item_spacing - props.connector.margin.top - props.connector.margin.bottom}px`;
|
|
65
|
+
styles["--connector-top"] =
|
|
66
|
+
`calc(100% + ${props.connector.margin.top}px)`;
|
|
67
|
+
}
|
|
68
|
+
if (!hasMarginTop && hasMarginBottom) {
|
|
69
|
+
styles["--connector-height"] =
|
|
70
|
+
`${props.item_spacing - props.connector.margin.bottom + itemBackgroundSize}px`;
|
|
71
|
+
styles["--connector-top"] = `50%`;
|
|
72
|
+
}
|
|
73
|
+
if (hasMarginTop && !hasMarginBottom) {
|
|
74
|
+
styles["--connector-height"] =
|
|
75
|
+
`${props.item_spacing + itemBackgroundSize}px`;
|
|
76
|
+
styles["--connector-top"] =
|
|
77
|
+
`calc(100% + ${props.connector.margin.top}px)`;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
const prefixedStyles = prefixObject(styles, "timeline-item");
|
|
81
|
+
return stringifyStyles(prefixedStyles);
|
|
82
|
+
}
|
|
83
|
+
export function getTimelineItemTextStyles(props, kind = "title") {
|
|
84
|
+
const styles = {
|
|
85
|
+
"--text-color": "inherit",
|
|
86
|
+
"--text-font-size": "initial",
|
|
87
|
+
"--text-font-weight": "initial",
|
|
88
|
+
"--text-horizontal-alignment": "initial",
|
|
89
|
+
"--text-margin-block-start": "0px",
|
|
90
|
+
"--text-margin-inline-end": "0px",
|
|
91
|
+
"--text-margin-block-end": "0px",
|
|
92
|
+
"--text-margin-inline-start": "0px",
|
|
93
|
+
"--text-padding-block-start": "0px",
|
|
94
|
+
"--text-padding-inline-end": "0px",
|
|
95
|
+
"--text-padding-block-end": "0px",
|
|
96
|
+
"--text-padding-inline-start": "0px",
|
|
97
|
+
};
|
|
98
|
+
const textProps = {
|
|
99
|
+
color: props[kind]?.color || defaultColor,
|
|
100
|
+
font_size: props[kind]?.font_size || "body_m",
|
|
101
|
+
font_weight: props[kind]?.font_weight || "regular",
|
|
102
|
+
horizontal_alignment: props[kind]?.horizontal_alignment || "leading",
|
|
103
|
+
};
|
|
104
|
+
const { tagToRender, textStyles } = getTextComponentStyles({
|
|
105
|
+
...props,
|
|
106
|
+
components: [],
|
|
107
|
+
...textProps,
|
|
108
|
+
size: { width: { type: "fit" }, height: { type: "fit" } },
|
|
109
|
+
type: "text",
|
|
110
|
+
margin: { top: 0, bottom: 0, leading: 0, trailing: 0 },
|
|
111
|
+
padding: { top: 0, bottom: 0, leading: 0, trailing: 0 },
|
|
112
|
+
text_lid: "",
|
|
113
|
+
});
|
|
114
|
+
Object.assign(styles, textStyles);
|
|
115
|
+
const stringifiedStyles = stringifyStyles(prefixObject(styles, "timeline-item"));
|
|
116
|
+
const textLabel = getLabelAndReplaceVariables({
|
|
117
|
+
text_lid: props[kind]?.text_lid,
|
|
118
|
+
locale: props.purchaseState.locale,
|
|
119
|
+
defaultLocale: props.purchaseState.defaultLocale,
|
|
120
|
+
labels: props.labels,
|
|
121
|
+
variableDictionary: props.variableDictionary,
|
|
122
|
+
});
|
|
123
|
+
return {
|
|
124
|
+
textStyles: stringifiedStyles,
|
|
125
|
+
tagToRender,
|
|
126
|
+
textLabel,
|
|
127
|
+
};
|
|
128
|
+
}
|
package/dist/data/entities.d.ts
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
|
-
import type { BorderType,
|
|
1
|
+
import type { AlignmentType, BorderType, CircleShape, ColorType, CornerRadiusType, DimensionType, FitTypes, FontSizeTags, FontWeights, RectangleShape, ShadowType, ShapeType, SizeType, Spacing, TextAlignments } from "../types";
|
|
2
2
|
import type { PurchaseState } from "./state";
|
|
3
3
|
import type { VariableDictionary } from "../utils/variable-utils";
|
|
4
|
+
import type { ZStackChildStyles } from "../components/stack/stack-utils";
|
|
4
5
|
export interface Extra {
|
|
5
6
|
[key: string]: unknown;
|
|
6
7
|
}
|
|
7
|
-
export type ComponentTypes = "stack" | "text" | "image" | "button" | "purchase_button" | "footer" | "package";
|
|
8
|
+
export type ComponentTypes = "stack" | "text" | "image" | "button" | "purchase_button" | "footer" | "package" | "timeline";
|
|
8
9
|
export interface PaywallComponent extends Extra {
|
|
9
10
|
type: ComponentTypes;
|
|
10
11
|
id: string;
|
|
11
12
|
name: string;
|
|
13
|
+
fallback?: PaywallComponent;
|
|
12
14
|
}
|
|
13
15
|
export interface Stack extends PaywallComponent {
|
|
14
16
|
spacing: number;
|
|
@@ -21,6 +23,8 @@ type BaseNodeBackgroundColor = {
|
|
|
21
23
|
export type BaseNodeBackgroundImage = {
|
|
22
24
|
type: "image";
|
|
23
25
|
value: ImageSourceType;
|
|
26
|
+
color_overlay?: ColorType;
|
|
27
|
+
fit_mode?: FitTypes;
|
|
24
28
|
};
|
|
25
29
|
export type BaseNodeBackgroundType = BaseNodeBackgroundColor | BaseNodeBackgroundImage;
|
|
26
30
|
export interface ComponentConfig {
|
|
@@ -38,10 +42,10 @@ export interface ComponentConfig {
|
|
|
38
42
|
background?: BaseNodeBackgroundType;
|
|
39
43
|
stack: Stack;
|
|
40
44
|
sticky_footer?: {
|
|
41
|
-
stack:
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
+
stack: Stack;
|
|
46
|
+
id: string;
|
|
47
|
+
name: string;
|
|
48
|
+
type: "footer";
|
|
45
49
|
} | null;
|
|
46
50
|
};
|
|
47
51
|
}
|
|
@@ -67,10 +71,10 @@ export type ComponentState = {
|
|
|
67
71
|
interface SharedComponentProps extends PaywallComponent, ActionsProps, PurchaseStateProps {
|
|
68
72
|
labels: ComponentLocalizations;
|
|
69
73
|
id: string;
|
|
70
|
-
colorMode: ColorMode;
|
|
71
74
|
name: string;
|
|
72
75
|
variableDictionary?: VariableDictionary;
|
|
73
76
|
componentState?: ComponentState;
|
|
77
|
+
zStackChildStyles?: ZStackChildStyles;
|
|
74
78
|
}
|
|
75
79
|
interface Action {
|
|
76
80
|
type: "restore_purchases" | "navigate_to" | "navigate_back" | "purchase" | "select_package";
|
|
@@ -127,6 +131,24 @@ export interface StackProps extends SharedComponentProps {
|
|
|
127
131
|
size: SizeType;
|
|
128
132
|
spacing?: number;
|
|
129
133
|
type: "stack";
|
|
134
|
+
badge?: {
|
|
135
|
+
stack: {
|
|
136
|
+
components: PaywallComponent[];
|
|
137
|
+
type: "stack";
|
|
138
|
+
};
|
|
139
|
+
style: "overlay" | "edge_to_edge" | "nested";
|
|
140
|
+
alignment: Exclude<AlignmentType, "center">;
|
|
141
|
+
shape: ShapeType;
|
|
142
|
+
padding: Spacing;
|
|
143
|
+
margin: Spacing;
|
|
144
|
+
text_lid: string;
|
|
145
|
+
color: ColorType;
|
|
146
|
+
font_name?: string;
|
|
147
|
+
font_weight: keyof typeof FontWeights;
|
|
148
|
+
font_size: keyof typeof FontSizeTags;
|
|
149
|
+
horizontal_alignment: keyof typeof TextAlignments;
|
|
150
|
+
background_color: ColorType;
|
|
151
|
+
};
|
|
130
152
|
overrides?: {
|
|
131
153
|
[state: string]: StackProps;
|
|
132
154
|
};
|
|
@@ -138,7 +160,7 @@ export interface TextNodeProps extends SharedComponentProps {
|
|
|
138
160
|
font_name?: string;
|
|
139
161
|
font_size: keyof typeof FontSizeTags;
|
|
140
162
|
font_weight: keyof typeof FontWeights;
|
|
141
|
-
horizontal_alignment:
|
|
163
|
+
horizontal_alignment: keyof typeof TextAlignments;
|
|
142
164
|
margin: Spacing;
|
|
143
165
|
padding: Spacing;
|
|
144
166
|
text_lid: string;
|
|
@@ -149,7 +171,15 @@ export interface TextNodeProps extends SharedComponentProps {
|
|
|
149
171
|
[state: string]: TextNodeProps;
|
|
150
172
|
};
|
|
151
173
|
}
|
|
152
|
-
type ImageSourceDictionaryType =
|
|
174
|
+
type ImageSourceDictionaryType = {
|
|
175
|
+
original: string;
|
|
176
|
+
heic: string;
|
|
177
|
+
heic_low_res: string;
|
|
178
|
+
webp: string;
|
|
179
|
+
webp_low_res: string;
|
|
180
|
+
width?: number;
|
|
181
|
+
height?: number;
|
|
182
|
+
};
|
|
153
183
|
type ImageSourceType = {
|
|
154
184
|
light: ImageSourceDictionaryType;
|
|
155
185
|
dark?: ImageSourceDictionaryType;
|
|
@@ -171,4 +201,54 @@ export interface ImageProps extends SharedComponentProps {
|
|
|
171
201
|
[state: string]: ImageProps;
|
|
172
202
|
};
|
|
173
203
|
}
|
|
204
|
+
export type ItemProps = {
|
|
205
|
+
title: {
|
|
206
|
+
text_lid: string;
|
|
207
|
+
color: ColorType;
|
|
208
|
+
font_name?: string;
|
|
209
|
+
font_weight?: keyof typeof FontWeights;
|
|
210
|
+
font_size?: keyof typeof FontSizeTags;
|
|
211
|
+
horizontal_alignment?: keyof typeof TextAlignments;
|
|
212
|
+
};
|
|
213
|
+
description?: {
|
|
214
|
+
text_lid: string;
|
|
215
|
+
color: ColorType;
|
|
216
|
+
font_name?: string;
|
|
217
|
+
font_weight?: keyof typeof FontWeights;
|
|
218
|
+
font_size?: keyof typeof FontSizeTags;
|
|
219
|
+
horizontal_alignment?: keyof typeof TextAlignments;
|
|
220
|
+
};
|
|
221
|
+
icon: {
|
|
222
|
+
name: string;
|
|
223
|
+
color: ColorType;
|
|
224
|
+
width_and_height: number;
|
|
225
|
+
padding: number;
|
|
226
|
+
};
|
|
227
|
+
icon_background?: {
|
|
228
|
+
shape: CircleShape | RectangleShape;
|
|
229
|
+
color: ColorType;
|
|
230
|
+
border?: BorderType;
|
|
231
|
+
};
|
|
232
|
+
connector?: {
|
|
233
|
+
width: number;
|
|
234
|
+
margin: {
|
|
235
|
+
top: number;
|
|
236
|
+
bottom: number;
|
|
237
|
+
};
|
|
238
|
+
color: ColorType;
|
|
239
|
+
};
|
|
240
|
+
};
|
|
241
|
+
export interface TimelineProps extends SharedComponentProps {
|
|
242
|
+
type: "timeline";
|
|
243
|
+
item_spacing: number;
|
|
244
|
+
text_spacing: number;
|
|
245
|
+
size: SizeType;
|
|
246
|
+
padding: Spacing;
|
|
247
|
+
margin: Spacing;
|
|
248
|
+
items: ItemProps[];
|
|
249
|
+
}
|
|
250
|
+
export interface TimelineItemProps extends ItemProps, SharedComponentProps {
|
|
251
|
+
text_spacing: number;
|
|
252
|
+
item_spacing: number;
|
|
253
|
+
}
|
|
174
254
|
export {};
|
package/dist/data/state.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import type { ColorMode } from "../types";
|
|
1
2
|
import type { VariableDictionary } from "../utils/variable-utils";
|
|
2
3
|
export interface PurchaseState {
|
|
3
4
|
selectedPackageId?: string;
|
|
4
5
|
locale: string;
|
|
5
6
|
defaultLocale: string;
|
|
6
7
|
variablesPerPackage?: Record<string, VariableDictionary>;
|
|
8
|
+
colorMode: ColorMode;
|
|
7
9
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
export { type PaywallData as PaywallData } from "./data/entities";
|
|
2
1
|
export * from "./types";
|
|
2
|
+
export { type PaywallData as PaywallData } from "./data/entities";
|
|
3
|
+
export { type VariableDictionary } from "./utils/variable-utils";
|
|
3
4
|
export { default as Paywall } from "./components/paywall/Paywall.svelte";
|
|
4
5
|
export { default as Stack } from "./components/stack/Stack.svelte";
|
|
5
6
|
export { default as Button } from "./components/button/Button.svelte";
|
|
@@ -8,4 +9,4 @@ export { default as Image } from "./components/image/Image.svelte";
|
|
|
8
9
|
export { default as PurchaseButton } from "./components/purchase-button/PurchaseButton.svelte";
|
|
9
10
|
export { default as Package } from "./components/package/Package.svelte";
|
|
10
11
|
export { default as Footer } from "./components/footer/Footer.svelte";
|
|
11
|
-
export {
|
|
12
|
+
export { default as Timeline } from "./components/timeline/Timeline.svelte";
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// Reexport your entry components here
|
|
2
|
-
export {} from "./data/entities";
|
|
3
2
|
export * from "./types";
|
|
3
|
+
export {} from "./data/entities";
|
|
4
|
+
export {} from "./utils/variable-utils";
|
|
4
5
|
export { default as Paywall } from "./components/paywall/Paywall.svelte";
|
|
5
6
|
export { default as Stack } from "./components/stack/Stack.svelte";
|
|
6
7
|
export { default as Button } from "./components/button/Button.svelte";
|
|
@@ -9,4 +10,4 @@ export { default as Image } from "./components/image/Image.svelte";
|
|
|
9
10
|
export { default as PurchaseButton } from "./components/purchase-button/PurchaseButton.svelte";
|
|
10
11
|
export { default as Package } from "./components/package/Package.svelte";
|
|
11
12
|
export { default as Footer } from "./components/footer/Footer.svelte";
|
|
12
|
-
export {} from "./
|
|
13
|
+
export { default as Timeline } from "./components/timeline/Timeline.svelte";
|
|
@@ -8,11 +8,17 @@ export declare const gradientPaywallData: PaywallData;
|
|
|
8
8
|
export declare const calmPaywallData: PaywallData;
|
|
9
9
|
export declare const stateTemplate: PaywallData;
|
|
10
10
|
export declare const posterMakerTemplate: PaywallData;
|
|
11
|
-
export declare const
|
|
11
|
+
export declare const e2eTestTemplate: PaywallData;
|
|
12
|
+
export declare const zStackTemplate: PaywallData;
|
|
12
13
|
export declare const labelsData: {
|
|
13
14
|
en_US: {
|
|
14
15
|
id1: string;
|
|
15
16
|
id2: string;
|
|
16
17
|
id3: string;
|
|
18
|
+
badge: string;
|
|
17
19
|
};
|
|
18
20
|
};
|
|
21
|
+
export declare const colorModeOverrideTemplate: PaywallData;
|
|
22
|
+
export declare const paywallWithFooter: PaywallData;
|
|
23
|
+
export declare const errorPaywallData: PaywallData;
|
|
24
|
+
export declare const fallbackPaywallData: PaywallData;
|