newcandies 0.1.58 → 0.1.60
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/package.json +1 -1
- package/templates/boilerplate/subscribed/src/data/raw/constants.ts +92 -0
- package/templates/boilerplate/subscribed/src/data/raw/theme-mode.ts +8 -0
- package/templates/boilerplate/subscribed/src/lib/storage.ts +20 -0
- package/templates/mini-boilerplate/mini-rise-widgets/src/app/(tabs)/widgets.tsx +4 -1
- package/templates/mini-boilerplate/mini-rise-widgets/src/data/rise-data.ts +2 -21
- package/templates/mini-boilerplate/mini-rise-widgets/src/features/affirmations/affirmation-tray.tsx +2 -2
- package/templates/mini-boilerplate/mini-rise-widgets/src/lib/affirmations.ts +5 -36
- package/templates/mini-boilerplate/mini-rise-widgets/src/lib/widgets/colors.ts +3 -0
- package/templates/mini-boilerplate/mini-rise-widgets/src/lib/widgets/logo.ts +55 -0
- package/templates/mini-boilerplate/mini-rise-widgets/src/types/index.ts +0 -13
- package/templates/registry.json +1 -2
package/package.json
CHANGED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
const SF_TO_MATERIAL = {
|
|
2
|
+
// Tab bar icons
|
|
3
|
+
"house": "home-filled",
|
|
4
|
+
"house.fill": "home-filled",
|
|
5
|
+
"creditcard": "credit-card",
|
|
6
|
+
"creditcard.fill": "credit-card",
|
|
7
|
+
"chart.bar": "bar-chart",
|
|
8
|
+
"chart.bar.fill": "bar-chart",
|
|
9
|
+
"person": "person-outline",
|
|
10
|
+
"person.fill": "person",
|
|
11
|
+
// Navigation
|
|
12
|
+
"chevron.left": "chevron-left",
|
|
13
|
+
"chevron.right": "chevron-right",
|
|
14
|
+
"chevron.forward": "chevron-right",
|
|
15
|
+
// Actions
|
|
16
|
+
"plus": "add",
|
|
17
|
+
"checkmark": "check",
|
|
18
|
+
// Search
|
|
19
|
+
"magnifyingglass": "search",
|
|
20
|
+
// Status/Actions
|
|
21
|
+
"checkmark.circle": "check-circle",
|
|
22
|
+
"checkmark.circle.fill": "check-circle",
|
|
23
|
+
"pause.circle": "pause-circle-outline",
|
|
24
|
+
"pause.circle.fill": "pause-circle-filled",
|
|
25
|
+
"play.circle": "play-circle-outline",
|
|
26
|
+
"play.circle.fill": "play-circle-filled",
|
|
27
|
+
// Settings/Profile
|
|
28
|
+
"arrow.right.square": "logout",
|
|
29
|
+
"gearshape": "settings",
|
|
30
|
+
"gearshape.fill": "settings",
|
|
31
|
+
"bell": "notifications-none",
|
|
32
|
+
"bell.fill": "notifications",
|
|
33
|
+
"person.badge.key.fill": "admin-panel-settings",
|
|
34
|
+
"rectangle.portrait.and.arrow.right": "logout",
|
|
35
|
+
"wallet.pass": "account-balance-wallet",
|
|
36
|
+
"dollarsign.circle": "attach-money",
|
|
37
|
+
"paintpalette": "palette",
|
|
38
|
+
"paintpalette.fill": "palette",
|
|
39
|
+
"questionmark.circle": "help-outline",
|
|
40
|
+
"doc.text": "description",
|
|
41
|
+
"doc.text.fill": "description",
|
|
42
|
+
"plus.circle.fill": "add-circle",
|
|
43
|
+
// Calendar/Stats
|
|
44
|
+
"calendar": "calendar-today",
|
|
45
|
+
"calendar.badge.clock": "event",
|
|
46
|
+
"arrow.up.right": "trending-up",
|
|
47
|
+
"chart.pie": "pie-chart",
|
|
48
|
+
"chart.pie.fill": "pie-chart",
|
|
49
|
+
// Categories
|
|
50
|
+
"music.note": "music-note",
|
|
51
|
+
"gamecontroller": "sports-esports",
|
|
52
|
+
"gamecontroller.fill": "sports-esports",
|
|
53
|
+
"briefcase": "work",
|
|
54
|
+
"briefcase.fill": "work",
|
|
55
|
+
"cloud": "cloud",
|
|
56
|
+
"cloud.fill": "cloud",
|
|
57
|
+
"newspaper": "newspaper",
|
|
58
|
+
"newspaper.fill": "newspaper",
|
|
59
|
+
"figure.run": "fitness-center",
|
|
60
|
+
"graduationcap": "school",
|
|
61
|
+
"graduationcap.fill": "school",
|
|
62
|
+
"banknote": "account-balance",
|
|
63
|
+
"banknote.fill": "account-balance",
|
|
64
|
+
"wrench": "build",
|
|
65
|
+
"wrench.fill": "build",
|
|
66
|
+
"square.grid.2x2": "apps",
|
|
67
|
+
"square.grid.2x2.fill": "apps",
|
|
68
|
+
// Auth
|
|
69
|
+
"envelope": "email",
|
|
70
|
+
"envelope.fill": "email",
|
|
71
|
+
"lock": "lock",
|
|
72
|
+
"lock.fill": "lock",
|
|
73
|
+
"eye": "visibility",
|
|
74
|
+
"eye.fill": "visibility",
|
|
75
|
+
"eye.slash": "visibility-off",
|
|
76
|
+
"eye.slash.fill": "visibility-off",
|
|
77
|
+
// Misc
|
|
78
|
+
"xmark": "close",
|
|
79
|
+
"xmark.circle.fill": "cancel",
|
|
80
|
+
"trash": "delete-outline",
|
|
81
|
+
"trash.fill": "delete",
|
|
82
|
+
// Theme icons
|
|
83
|
+
"sun.max.fill": "light-mode",
|
|
84
|
+
"moon.fill": "dark-mode",
|
|
85
|
+
"star.fill": "star",
|
|
86
|
+
"flame.fill": "local-fire-department",
|
|
87
|
+
"drop.fill": "water-drop",
|
|
88
|
+
"leaf.fill": "eco",
|
|
89
|
+
// Fallback
|
|
90
|
+
"questionmark": "help-outline",
|
|
91
|
+
"questionmark.circle.fill": "help",
|
|
92
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
const themes = [
|
|
2
|
+
{ name: "light", icon: "sun.max.fill", color: "#d4d4d8" },
|
|
3
|
+
{ name: "dark", icon: "moon.fill", color: "#a1a1aa" },
|
|
4
|
+
{ name: "gold", icon: "star.fill", color: "#eab308" },
|
|
5
|
+
{ name: "coral", icon: "flame.fill", color: "#f87171" },
|
|
6
|
+
{ name: "ocean", icon: "drop.fill", color: "#818cf8" },
|
|
7
|
+
{ name: "forest", icon: "leaf.fill", color: "#4ade80" },
|
|
8
|
+
] as const;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { createMMKV } from "react-native-mmkv";
|
|
2
|
+
import type { UniwindConfig } from "uniwind";
|
|
3
|
+
import type { StateStorage } from "zustand/middleware";
|
|
4
|
+
|
|
5
|
+
export const storage = createMMKV({ id: "subscribed-storage" });
|
|
6
|
+
|
|
7
|
+
export const zustandStorage: StateStorage = {
|
|
8
|
+
getItem: name => storage.getString(name) ?? null,
|
|
9
|
+
setItem: (name, value) => storage.set(name, value),
|
|
10
|
+
removeItem: name => storage.remove(name),
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export const THEME_KEY = "app-theme";
|
|
14
|
+
|
|
15
|
+
export type AppTheme = UniwindConfig["themes"][number] | "system";
|
|
16
|
+
|
|
17
|
+
export function getPersistedTheme(): AppTheme | null {
|
|
18
|
+
return (storage.getString(THEME_KEY) as AppTheme) ?? null;
|
|
19
|
+
}
|
|
20
|
+
export const persistTheme = (theme: AppTheme) => storage.set(THEME_KEY, theme);
|
|
@@ -6,7 +6,10 @@ export default function WidgetsScreen() {
|
|
|
6
6
|
return (
|
|
7
7
|
<Screen>
|
|
8
8
|
<View className="flex-1 items-center justify-center">
|
|
9
|
-
<Text variant="subtitle">
|
|
9
|
+
<Text variant="subtitle">Widget starter ready</Text>
|
|
10
|
+
<Text className="mt-2 px-8 text-center text-text-secondary">
|
|
11
|
+
Build your widget files in src/widgets.
|
|
12
|
+
</Text>
|
|
10
13
|
</View>
|
|
11
14
|
</Screen>
|
|
12
15
|
);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { Affirmation
|
|
1
|
+
import type { Affirmation } from "../types";
|
|
2
2
|
|
|
3
|
-
export const RISE_PROFILE
|
|
3
|
+
export const RISE_PROFILE = {
|
|
4
4
|
name: "Rise",
|
|
5
5
|
tagline: "A tiny pocket of affirmations for the day ahead.",
|
|
6
6
|
cadence: "19 rotating reminders",
|
|
@@ -11,7 +11,6 @@ export const RISE_AFFIRMATIONS: Affirmation[] = [
|
|
|
11
11
|
id: "choose-peace",
|
|
12
12
|
title: "Choose Peace",
|
|
13
13
|
message: "Today, I choose peace.",
|
|
14
|
-
category: "grounding",
|
|
15
14
|
cue: "Come back to calm",
|
|
16
15
|
accentColor: "#FF8C61",
|
|
17
16
|
accentTint: "#FFE2D3",
|
|
@@ -21,7 +20,6 @@ export const RISE_AFFIRMATIONS: Affirmation[] = [
|
|
|
21
20
|
id: "trust-the-process",
|
|
22
21
|
title: "Trust Life",
|
|
23
22
|
message: "I trust the process of my life.",
|
|
24
|
-
category: "rest",
|
|
25
23
|
cue: "Let it unfold",
|
|
26
24
|
accentColor: "#7AA6FF",
|
|
27
25
|
accentTint: "#E1EBFF",
|
|
@@ -31,7 +29,6 @@ export const RISE_AFFIRMATIONS: Affirmation[] = [
|
|
|
31
29
|
id: "past-not-future",
|
|
32
30
|
title: "Past Released",
|
|
33
31
|
message: "My past does not define my future.",
|
|
34
|
-
category: "confidence",
|
|
35
32
|
cue: "Face forward",
|
|
36
33
|
accentColor: "#EC6F66",
|
|
37
34
|
accentTint: "#FFE4E1",
|
|
@@ -41,7 +38,6 @@ export const RISE_AFFIRMATIONS: Affirmation[] = [
|
|
|
41
38
|
id: "worthy-of-love",
|
|
42
39
|
title: "Worthy of Love",
|
|
43
40
|
message: "I am worthy of love and belonging.",
|
|
44
|
-
category: "confidence",
|
|
45
41
|
cue: "Let yourself belong",
|
|
46
42
|
accentColor: "#E97892",
|
|
47
43
|
accentTint: "#FFE0E9",
|
|
@@ -51,7 +47,6 @@ export const RISE_AFFIRMATIONS: Affirmation[] = [
|
|
|
51
47
|
id: "release-what-serves",
|
|
52
48
|
title: "Release Gently",
|
|
53
49
|
message: "I release what no longer serves me.",
|
|
54
|
-
category: "rest",
|
|
55
50
|
cue: "Loosen your grip",
|
|
56
51
|
accentColor: "#7294E0",
|
|
57
52
|
accentTint: "#E0E8FB",
|
|
@@ -61,7 +56,6 @@ export const RISE_AFFIRMATIONS: Affirmation[] = [
|
|
|
61
56
|
id: "fresh-start",
|
|
62
57
|
title: "Fresh Start",
|
|
63
58
|
message: "Every day is a fresh start.",
|
|
64
|
-
category: "grounding",
|
|
65
59
|
cue: "Begin again",
|
|
66
60
|
accentColor: "#FF8E72",
|
|
67
61
|
accentTint: "#FFE4DA",
|
|
@@ -71,7 +65,6 @@ export const RISE_AFFIRMATIONS: Affirmation[] = [
|
|
|
71
65
|
id: "creator-story",
|
|
72
66
|
title: "My Story",
|
|
73
67
|
message: "I am the creator of my own story.",
|
|
74
|
-
category: "confidence",
|
|
75
68
|
cue: "Write the next line",
|
|
76
69
|
accentColor: "#C96CE3",
|
|
77
70
|
accentTint: "#F2E0FA",
|
|
@@ -81,7 +74,6 @@ export const RISE_AFFIRMATIONS: Affirmation[] = [
|
|
|
81
74
|
id: "joy-natural-state",
|
|
82
75
|
title: "Natural Joy",
|
|
83
76
|
message: "Joy is my natural state.",
|
|
84
|
-
category: "joy",
|
|
85
77
|
cue: "Let joy in",
|
|
86
78
|
accentColor: "#F2A541",
|
|
87
79
|
accentTint: "#FFF0D8",
|
|
@@ -91,7 +83,6 @@ export const RISE_AFFIRMATIONS: Affirmation[] = [
|
|
|
91
83
|
id: "guided-wisdom",
|
|
92
84
|
title: "Infinite Wisdom",
|
|
93
85
|
message: "I am guided by infinite wisdom.",
|
|
94
|
-
category: "focus",
|
|
95
86
|
cue: "Trust what you know",
|
|
96
87
|
accentColor: "#5A9BF6",
|
|
97
88
|
accentTint: "#DDEBFF",
|
|
@@ -101,7 +92,6 @@ export const RISE_AFFIRMATIONS: Affirmation[] = [
|
|
|
101
92
|
id: "set-boundaries",
|
|
102
93
|
title: "Clear Boundaries",
|
|
103
94
|
message: "I can set my own boundaries.",
|
|
104
|
-
category: "confidence",
|
|
105
95
|
cue: "Protect your space",
|
|
106
96
|
accentColor: "#8C6FF7",
|
|
107
97
|
accentTint: "#E9E1FF",
|
|
@@ -111,7 +101,6 @@ export const RISE_AFFIRMATIONS: Affirmation[] = [
|
|
|
111
101
|
id: "receive-love",
|
|
112
102
|
title: "Receive Love",
|
|
113
103
|
message: "I am willing to receive love.",
|
|
114
|
-
category: "joy",
|
|
115
104
|
cue: "Stay open",
|
|
116
105
|
accentColor: "#F59E6C",
|
|
117
106
|
accentTint: "#FFE7D9",
|
|
@@ -121,7 +110,6 @@ export const RISE_AFFIRMATIONS: Affirmation[] = [
|
|
|
121
110
|
id: "write-own-story",
|
|
122
111
|
title: "Write It New",
|
|
123
112
|
message: "I can write my own story.",
|
|
124
|
-
category: "focus",
|
|
125
113
|
cue: "Author your path",
|
|
126
114
|
accentColor: "#6D7DF2",
|
|
127
115
|
accentTint: "#E2E6FF",
|
|
@@ -131,7 +119,6 @@ export const RISE_AFFIRMATIONS: Affirmation[] = [
|
|
|
131
119
|
id: "savor-moment",
|
|
132
120
|
title: "Savor Today",
|
|
133
121
|
message: "I will savor each moment today.",
|
|
134
|
-
category: "joy",
|
|
135
122
|
cue: "Stay with this moment",
|
|
136
123
|
accentColor: "#F17C65",
|
|
137
124
|
accentTint: "#FFE3DC",
|
|
@@ -141,7 +128,6 @@ export const RISE_AFFIRMATIONS: Affirmation[] = [
|
|
|
141
128
|
id: "creator-life",
|
|
142
129
|
title: "Create My Life",
|
|
143
130
|
message: "I am the creator of my life.",
|
|
144
|
-
category: "focus",
|
|
145
131
|
cue: "Choose with intention",
|
|
146
132
|
accentColor: "#5FA8D3",
|
|
147
133
|
accentTint: "#DDF0FB",
|
|
@@ -151,7 +137,6 @@ export const RISE_AFFIRMATIONS: Affirmation[] = [
|
|
|
151
137
|
id: "peace-of-god",
|
|
152
138
|
title: "Inner Peace",
|
|
153
139
|
message: "I activate the peace of God within myself.",
|
|
154
|
-
category: "grounding",
|
|
155
140
|
cue: "Let peace rise",
|
|
156
141
|
accentColor: "#57B09C",
|
|
157
142
|
accentTint: "#D9F3EC",
|
|
@@ -161,7 +146,6 @@ export const RISE_AFFIRMATIONS: Affirmation[] = [
|
|
|
161
146
|
id: "right-place-right-time",
|
|
162
147
|
title: "Right Place",
|
|
163
148
|
message: "I am always at the right place at the right time.",
|
|
164
|
-
category: "confidence",
|
|
165
149
|
cue: "Trust your timing",
|
|
166
150
|
accentColor: "#E87A5D",
|
|
167
151
|
accentTint: "#FFE2D9",
|
|
@@ -171,7 +155,6 @@ export const RISE_AFFIRMATIONS: Affirmation[] = [
|
|
|
171
155
|
id: "not-limited-by-past",
|
|
172
156
|
title: "Beyond My Past",
|
|
173
157
|
message: "I am not limited by my past.",
|
|
174
|
-
category: "confidence",
|
|
175
158
|
cue: "Expand beyond old stories",
|
|
176
159
|
accentColor: "#4E8F8C",
|
|
177
160
|
accentTint: "#DAF1EF",
|
|
@@ -181,7 +164,6 @@ export const RISE_AFFIRMATIONS: Affirmation[] = [
|
|
|
181
164
|
id: "accept-myself",
|
|
182
165
|
title: "Self Acceptance",
|
|
183
166
|
message: "I accept myself exactly as I am.",
|
|
184
|
-
category: "grounding",
|
|
185
167
|
cue: "Meet yourself kindly",
|
|
186
168
|
accentColor: "#F0B84A",
|
|
187
169
|
accentTint: "#FFF1D4",
|
|
@@ -191,7 +173,6 @@ export const RISE_AFFIRMATIONS: Affirmation[] = [
|
|
|
191
173
|
id: "make-peace-where-i-am",
|
|
192
174
|
title: "Make Peace",
|
|
193
175
|
message: "I make peace with where I am.",
|
|
194
|
-
category: "rest",
|
|
195
176
|
cue: "Settle into now",
|
|
196
177
|
accentColor: "#7C6CF2",
|
|
197
178
|
accentTint: "#E6E1FF",
|
package/templates/mini-boilerplate/mini-rise-widgets/src/features/affirmations/affirmation-tray.tsx
CHANGED
|
@@ -6,7 +6,7 @@ import ScrollView from "@/components/layout/scroll-view";
|
|
|
6
6
|
import Squircle from "@/components/layout/squircle";
|
|
7
7
|
import Text from "@/components/ui/text";
|
|
8
8
|
import { RISE_AFFIRMATIONS } from "@/data/rise-data";
|
|
9
|
-
import {
|
|
9
|
+
import { getShortDateLabel } from "@/lib/affirmations";
|
|
10
10
|
|
|
11
11
|
export interface AffirmationTrayProps {
|
|
12
12
|
affirmationId: string;
|
|
@@ -51,7 +51,7 @@ export function AffirmationTray({ affirmationId }: AffirmationTrayProps) {
|
|
|
51
51
|
|
|
52
52
|
<ScrollView className="px-6 pb-8">
|
|
53
53
|
<Text className="text-sm font-medium text-text-secondary">
|
|
54
|
-
{getShortDateLabel()}
|
|
54
|
+
{getShortDateLabel()}
|
|
55
55
|
</Text>
|
|
56
56
|
|
|
57
57
|
<Text variant="display" className="mt-3 text-foreground">
|
|
@@ -1,49 +1,18 @@
|
|
|
1
|
-
import type { Affirmation
|
|
2
|
-
|
|
3
|
-
const longDateFormatter = new Intl.DateTimeFormat("en-US", {
|
|
4
|
-
weekday: "long",
|
|
5
|
-
month: "long",
|
|
6
|
-
day: "numeric",
|
|
7
|
-
});
|
|
1
|
+
import type { Affirmation } from "../types";
|
|
8
2
|
|
|
9
3
|
const shortDateFormatter = new Intl.DateTimeFormat("en-US", {
|
|
10
4
|
month: "short",
|
|
11
5
|
day: "numeric",
|
|
12
6
|
});
|
|
13
7
|
|
|
14
|
-
const CATEGORY_LABELS: Record<AffirmationCategory, string> = {
|
|
15
|
-
grounding: "Grounding",
|
|
16
|
-
confidence: "Confidence",
|
|
17
|
-
focus: "Focus",
|
|
18
|
-
joy: "Joy",
|
|
19
|
-
rest: "Rest",
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
function getDayOfYear(date: Date) {
|
|
23
|
-
const start = new Date(date.getFullYear(), 0, 0);
|
|
24
|
-
const diff = date.getTime() - start.getTime();
|
|
25
|
-
const day = 1000 * 60 * 60 * 24;
|
|
26
|
-
return Math.floor(diff / day);
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
export function getAffirmationCategoryLabel(category: AffirmationCategory) {
|
|
30
|
-
return CATEGORY_LABELS[category];
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
export function getTodayLabel(date = new Date()) {
|
|
34
|
-
return longDateFormatter.format(date);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
8
|
export function getShortDateLabel(date = new Date()) {
|
|
38
9
|
return shortDateFormatter.format(date);
|
|
39
10
|
}
|
|
40
11
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
return getDayOfYear(date) % total;
|
|
12
|
+
function getAffirmationRotationIndex(total: number, date = new Date()) {
|
|
13
|
+
const start = new Date(date.getFullYear(), 0, 0);
|
|
14
|
+
const dayOfYear = Math.floor((date.getTime() - start.getTime()) / (1000 * 60 * 60 * 24));
|
|
15
|
+
return dayOfYear % total;
|
|
47
16
|
}
|
|
48
17
|
|
|
49
18
|
export function getAffirmationDeck<T extends Affirmation>(
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
export const RISE_WIDGET_LOGO_BASE64 = [
|
|
2
|
+
"iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3Cc",
|
|
3
|
+
"ulE8AAAAUGVYSWZNTQAqAAAACAACARIAAwAAAAEAAQAAh2kABAAAAAEAAAAmAAAAAAADoAEAAwAAAAEAAQAAoAIABAAAAAEAAABgoAMABAAAAAEAAABgAAAA",
|
|
4
|
+
"ALvucVAAAAIyaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA2",
|
|
5
|
+
"LjAuMCI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVz",
|
|
6
|
+
"Y3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4",
|
|
7
|
+
"bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyI+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj42NDA8L2V4aWY6UGl4ZWxZ",
|
|
8
|
+
"RGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NjQwPC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6Q29sb3JT",
|
|
9
|
+
"cGFjZT4xPC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgIDwvcmRmOkRlc2Ny",
|
|
10
|
+
"aXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgoBiwhEAAAPWklEQVR4Ae2cCZAWxRXHZ7/dZWGX+0bkFAKKyCWHlCCHIHJfAQQDqESKIpAoWKUE",
|
|
11
|
+
"hUSKoGUUQwo05a1YkWihUvEKIlRBRUEhgCIiLCAot9zCcnV+/3b7c4Bv7+Xb2a3pqtmer7unp9+/X79+/d6b9bwwhQiECIQIhAiECIQIhAiECIQIhAiECIQI",
|
|
12
|
+
"hAiECIQIhAiECIQIhAiECIQIhAiECAQUgYULF1Zq3br1sAYNGkwiH7xy5cpyAR1qyRqWMSZh8ODBHSpWrLgOyoy7qlWrtmL69OnXlCxqA0jN2LFjW6alpe0S",
|
|
13
|
+
"8E2aNDGjR482V111lZ2ImjVrfrx///6yARx2yRgS3J9SpUqV/wj87t27mwMHDlBkzIYNGwwrwEQiEdOpU6ffUZRQMigOEBUCtWXLlmMSEhJMrVq1zM6dO4W9",
|
|
14
|
+
"OX/+vM2feOIJuwoQTWspSA3Q0EvGULTJli9f3sr9uXPnWtAFvpuAgwcPWlHEKjjfpUuXXiWD6gBRceONN/5G3N+oUSNz9OhROwEXLlww7lLBxIkT7SpghSzg",
|
|
15
|
+
"Z2KAhl+8hwKYpRAtS6HCSNQoOeBdrrLly5cbTRKb9M5FixZVK95UB2j0PXv2bI9oOVW1alXzww8/CGubHPjKlU6ePGk1I01Cx44dBwSIhCyHEsmyJiAV4Jr4",
|
|
16
|
+
"7bffjgTk0gMGDPAQL9769eu9JUuWeAAdHSXtvNTUVK9Pnz6e7r/77rt+5EnRBgG9CfwELF26tCwbbG+BPXLkSAvjc88957EiYkKqSVLbH3/8sdsrr7xSIWaj",
|
|
17
|
+
"sDD3CKDXD6T1eR26Tp06Zfbu3WuGDBliMjIyYPCL9wL9/umnn6wY0jNt27YNvDYUm41yj88VbQmeyYiSobwk0r9/f6906dLeBx984LVp08YrVaqUFTX+AdDe",
|
|
18
|
+
"K1OmjBVDembXrl39KQu1IT9IeblH368BoLsTExPNp59+CpbGYIowX3zxhb3XH/9G7DbjFStWWG2ICdvy7LPPhmIoL6D728rayW/TqlUrc/bsWbNnzx7DPhC9",
|
|
19
|
+
"1+Er1gRIDDVt2lRnAomhfv4+g3YfWBEEcyd///33gwTYoEGDvKSkJK9cuXLe7Nmz7f0bb7zhbdy48SJNSG15zoohiSxSZPfu3cMpC7w2pMEGKk2dOrUBIuRg",
|
|
20
|
+
"SkqKQe0Ew1+SuF4b8rlz5y5bAU4Mff7554ZJM/Sxb8qUKfUCRVxxGMy11147jnGam2++OSbQmo5LxY/7rTpNzk033WRNE/Q1gaJfDg0BAiCQIgiwUvbt2zdc",
|
|
21
|
+
"OA0fPtxjE74MMtpcVuYKVKdn7rzzTlvE3qG+kl19kPJAckXv3r2bo27+F+tnmk69devWvUzlzAlEHcYwW3jNmzf3MN6dHjhwYKc333xzfYznLlAWYZKScXMm",
|
|
22
|
+
"fPPNN5UOHTqUun37dsMmb9Vd3J4J9evXz5gwYcIBVOCz9H02Rj/5KiqSCYBD3cpTbsdw//33l2PDrAxoFbdt2zaFA9eIUaNGea+99lqewXdIaBJGjBjhacPG",
|
|
23
|
+
"jvQ/jHTpiCn7bq0SNCsP+5H6T+FkXff06dMJ1FfhSqXMv8QS2E9Oc/bYj1q8mb5W3nLLLUtQcXfwjvPuffnJC30CGLf6lMyITJs2rdzWrVvT0tPTtfxrQWx1",
|
|
24
|
+
"rhrI59pnzpypAgCVaV+DU20Z6lVeHuLlUrTi4pNPPvGw7RdoAt555x0P7qfLnJMOerqkbemgp4vxeIzPO3LkiL1cL0zEvoYNG/75yy+//AeTcM6V5zUvtAkA",
|
|
25
|
+
"yCQMYS0RGT1PnDjRFoDrAmglCCiP00QTUp7Lcf5F45RdR4QjcsSpXp06dbxu3bp59913X5Y2n4s6yOaHuPz111/3jh8/btVTNRVza3VItZUBD1O3Bb1y5coe",
|
|
26
|
+
"q8TeJycn231EbdXHsWPHPFaoh3blvfXWW56Yg33mHCJp2OrVqxdnM4RsqwplAgA9DSPYLAZ4L6BH3YEixgFboUIFr0aNGh6Oc2vRlFVTv0W0QFe9Lsd9btQC",
|
|
27
|
+
"oCBJQBd20qpAZHpPP/20xv5PfNNyFuVrFRT4gAJAEQxlk/HR/kFLdtiwYd7tt9/uUebhQLccJS7TFUubiQVOQUH391nQvjSBnKw9VrWH4992rRWL+LH30JTC",
|
|
28
|
+
"TeHPsp+I7O4hMAWuXcNAzUsvvcTPrBOck6XuHsQ6UYIvwsBQBv9DlDDkvg0MYCJ0TplIRdFOAKJmrSYA1dEOMohg5mdMIga11Hz22WeWLv1Zt26d9UvDlKZe",
|
|
29
|
+
"vXrL0diK1tjHmBIRN09pQNddd53BBGwHmx+Cg/iMJSbzz9tvv22qV69uT9dXX331hmeeeaZxdtIhbnULFiyozWaqQ44hdsd8/fXXhTIJ6iS/k5KJWTTLTT+u",
|
|
30
|
+
"sb+tyuT8efjhh61tSTSiQLwPzfXjBnBuXsQpsQnq3EYNsHbt2ubdd9919OQLRD3sYn507wclp3u1xyVpJk2aZFAKzNq1itXKvg/Va/UuXrxYt9G0efNm06NH",
|
|
31
|
+
"D8v1bLgXMHP/vcjFTlYTMnPmzF/BHSs0CbJEimtiuQ5zA+DLL79s0LEN9hwLZk7P+OuFHoG6FjSNRf1kNw5NtIC/9dZbDTp+FPxXX33VoCrbfsqWLbuHs8lv",
|
|
32
|
+
"qZTWE9zEQaVC48aN/4aGoCO6JcqJJFHmByrWvdpwnjCcCaIAzps3T8U5Puv6U1tOv9Hn0dUN9h0VX9aHyvA72NUi+48Sp14zfvz46PME/y5F729BVcyDZOBm",
|
|
33
|
+
"g4GWQj0bDdfs1SSIi/wqqgMqVi4AFGyr59z1yCOPqPgy8PzP2waZbXT/wgsvWLek+hg6dKgVZ/72/nu/qNO727VrZ9/NuSYDb9xsuit+EdcMOkKoYDO4x0Yz",
|
|
34
|
+
"C4h77rknS070A4JRzGCGtiBwcraqn0BVG39yz6hsy5YtBrtTdJJURkiLnYisuN//vNpLDDkthxW4le8QBlEcSDM2eOYuQUDa9ddfPwNuOsUT1r+7Zs0a0RsF",
|
|
35
|
+
"ywHhctVhSzKrVq0y6enp+hkF/7333jN4uMzhw4dtuf4IeNRCgxvSlvn7cY1c2aW5q3/ssceiWg5KxPIHH3ywUe4oLAatIDIJbupTqVKlbZoEcoOZ2dEecyKi",
|
|
36
|
+
"ldw40FT25JNP2pWhIN277rrLYG62/elU6jQY1z6nXP05R7/GhZajQ1ZwtZyCzvWjjz56DZz6bxGrkzPmahvhICByAsvVY+wz2pQV9SB/MRZUg8naaGXkpR+1",
|
|
37
|
+
"xb4TlfeYlw/hwvw9xaULSmegn4fAsnip/oqaarUkRblJRjuAc8oFnJL2CWkv7isZleX0rL9e7TUBWkliCMAfT1Hx0HIKOsMQmoLOfS+m6mMinlBy4ZFnAO1D",
|
|
38
|
+
"mX/84Ob2Xo9OnjzZTgDnl7/wM+4TEPcXavIQPxkzZsz4F6vgiEy78g3kNQGWday4PK/Pu/aKplbCYdN306ZNUV+Gqy+xOUteQVcXbrjhBitOADJPKyC3XJ5d",
|
|
39
|
+
"O71T2pRMJzBChr5DiDfgRbICoDuJ065CBhPEgWym+fb75hcwVqF9p9yRnTt3lu+3FDaenowtrrb9IpkAtJhKcF531D6vX7+iCd1kE4/O3W233WbvUQa6clO8",
|
|
40
|
+
"D15RqrK54ag/UGpoixYtikT8SPSwB9mDnu7TOexhNtFB7DDBvw2zGXqhV8V9BUBv0o4dOwaQ26DbohA/QhEm8FiFFtD69evbbw44Y1QkwKBzoaMcpA4JNakN",
|
|
41
|
+
"6HswTUSDbrPbKK9UnThfSf0ryRQBTrIFyR5dcsUQbsvxIpRPj2wArYjPDchqp+Rv+3PJz3/95Xm9Vw9wviEWSNHU+zE914kX08ZVBEFnCqGHvxZxd9xxRzTw",
|
|
42
|
+
"KSdiEQ0edh4bHOXaSotRtBrmDe+jjz6ygVYqy28igtrDaOixOVf78MMP2+W3n0A/h8bTGs3nFP5j63QR5+XErWojU4XsP/omwKVly5ZZ/zMEW5vQ448/nqcV",
|
|
43
|
+
"del71e9DDz1kxRAmdMXXFDhmKlCTAUERopxnCDC4X/RmC76/3jbO/CNv1QMPPGC0h6gvJvOQLKG6lzk6PdN87X/+UrD9v/1969sy9UUQ2dYXX3yxYqAALOhg",
|
|
44
|
+
"ED2pODls5EROZmNZPOXDdUA5kGTx1MlZYKMynm3WrNl8gm8b8R3YBGT3AZXLL0AsqHsk2ofry5+rEV9hGvmflYj/NA0aNJCl9gyHs44FpTlQz3ft2rUNhJ3S",
|
|
45
|
+
"P1eK5aGyCGT+kSOGkPJokaIV5E1znE7I4ya+IZAqW0pEkkfQ39sQOrhcP3Xpa0om3fbhB91/r0r94w9Eo/3+WL/1EaCex689nZ/531ToJDBJhMBZf2RAlkAR",
|
|
46
|
+
"eikQKlNkncAmGtnWq0zcieiyoKC+ZrBZPoX1tGYs4jBNl2MjnY14Oql3Eb8ZddKoL/873b3K58yZE51w4n3su3DkL6aqZKijEFIaWb1KoPAVimiOgqF72fUV",
|
|
47
|
+
"fjJu3LgoJ0qWy5muZ3TB3avYO3rQ3HI9ZTET9Ul9+/btwvtW08A6fmRylnhRcsD7c9U5v4LCEDP3gU1MdPFzxsdCBXHQFJl9VKEmkrmXAsH/ebso/lIRDZio",
|
|
48
|
+
"LfDI9qM4cCQO0mL1nVUZ8fsVCZmcy3vPaCLat29v9OWkS/4JcGXKNRY55tHWjjPhzbLqv1iV88H1KIEg16GfcHfvAJBz3c/1RESsYPI6UH/5V3q5QIDnknH8",
|
|
49
|
+
"DMFtuVPvFwNIndUmr+Te73KVSfwpvFLtOSx2z8Vrgt0EmhLQTGaKIEUzKDmClSuJ6Pnz50ej0FADjxKPI64vsAigjwRF7PHVzfsagy5M4EYh5i5dOh40INsO",
|
|
50
|
+
"Lasb7Yt3gshEOHkeVNjNzhHtcmk8hPxZgtUG58gy9oJ8c31WaPG+VFTYqXK+6z34AcysWbOi//7MjUe5zCRqQ/uSsQLQgKaJIEJTLJ3iOMljqZbuQKUoOvT5",
|
|
51
|
+
"yTS4Ym5B+o6w2beGIZZoPLrYX2yIDC5JOzY56on710Z8gc+uOtGm+CdidzqiQsoDYvcB3JHW8KXfbJKniUxYSDBtEwEUD2p5T+kOHTqMZRVs1Rh0sWGbu+++",
|
|
52
|
+
"2/Tq1cv+Zt/YigpcJR7jueLvgOAk5OlEaTSOYOT8EfT7ReIy6uMeccw7E/RdAyvgT2zO6W5cyhFTJ2AS2Uuu+EHsir/AzS7EJI4ZM6bZV1991YqJOA0Hruc/",
|
|
53
|
+
"IG7ndJzh2hRFzrgihKFXJXi4PR+HN8ckHSGc/ePnn39+NWNT7FKY4oWAOD4eXB8vesL3hAiECIQIhAiECIQIhAiECIQIhAiECIQIhAiECIQIhAiECIQIhAiE",
|
|
54
|
+
"CIQIhAiECIQIgMD/Abc06wUnCyMsAAAAAElFTkSuQmCC",
|
|
55
|
+
].join("");
|
|
@@ -1,22 +1,9 @@
|
|
|
1
|
-
export type AffirmationCategory = "grounding" |
|
|
2
|
-
"confidence" |
|
|
3
|
-
"focus" |
|
|
4
|
-
"joy" |
|
|
5
|
-
"rest";
|
|
6
|
-
|
|
7
1
|
export interface Affirmation {
|
|
8
2
|
id: string;
|
|
9
3
|
title: string;
|
|
10
4
|
message: string;
|
|
11
|
-
category: AffirmationCategory;
|
|
12
5
|
cue: string;
|
|
13
6
|
accentColor: string;
|
|
14
7
|
accentTint: string;
|
|
15
8
|
icon: string;
|
|
16
9
|
}
|
|
17
|
-
|
|
18
|
-
export interface RiseProfile {
|
|
19
|
-
name: string;
|
|
20
|
-
tagline: string;
|
|
21
|
-
cadence: string;
|
|
22
|
-
}
|
package/templates/registry.json
CHANGED
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
{
|
|
41
41
|
"name": "mini-rise-widgets",
|
|
42
42
|
"path": "mini-boilerplate/mini-rise-widgets",
|
|
43
|
-
"description": "Rise daily affirmations mini boilerplate with widgets-ready setup and empty widgets folder",
|
|
43
|
+
"description": "Rise daily affirmations mini boilerplate with widgets-ready setup, shared widget support files, and an empty widgets folder",
|
|
44
44
|
"strategy": "standalone"
|
|
45
45
|
}
|
|
46
46
|
],
|
|
@@ -110,4 +110,3 @@
|
|
|
110
110
|
}
|
|
111
111
|
]
|
|
112
112
|
}
|
|
113
|
-
|