@burdenoff/fe-libs 2026.625.2 → 2026.625.3
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/node_modules/@capacitor/core/dist/index.js +268 -0
- package/dist/shared/native/index.d.ts +1 -0
- package/dist/shared/native/index.d.ts.map +1 -1
- package/dist/shared/native/purchases.d.ts +53 -0
- package/dist/shared/native/purchases.d.ts.map +1 -0
- package/dist/shared/native/purchases.js +53 -0
- package/dist/shared-native.js +2 -1
- package/dist/shared.js +3 -2
- package/dist/ui/aurora-background.d.ts +21 -0
- package/dist/ui/aurora-background.d.ts.map +1 -0
- package/dist/ui/aurora-background.js +31 -0
- package/dist/ui/glass-card.d.ts +3 -1
- package/dist/ui/glass-card.d.ts.map +1 -1
- package/dist/ui/glass-card.js +5 -5
- package/dist/ui/gradient-text.d.ts +15 -0
- package/dist/ui/gradient-text.d.ts.map +1 -0
- package/dist/ui/gradient-text.js +13 -0
- package/dist/ui/illustration.d.ts +40 -0
- package/dist/ui/illustration.d.ts.map +1 -0
- package/dist/ui/illustration.js +53 -0
- package/dist/ui/index.d.ts +3 -0
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui.js +4 -1
- package/package.json +8 -3
- package/src/shared/tokens/build/tailwind.preset.js +15 -0
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
//#region node_modules/@capacitor/core/dist/index.js
|
|
2
|
+
var e;
|
|
3
|
+
(function(e) {
|
|
4
|
+
e.Unimplemented = "UNIMPLEMENTED", e.Unavailable = "UNAVAILABLE";
|
|
5
|
+
})(e ||= {});
|
|
6
|
+
var t = class extends Error {
|
|
7
|
+
constructor(e, t, n) {
|
|
8
|
+
super(e), this.message = e, this.code = t, this.data = n;
|
|
9
|
+
}
|
|
10
|
+
}, n = (e) => e?.androidBridge ? "android" : e?.webkit?.messageHandlers?.bridge ? "ios" : "web", r = (r) => {
|
|
11
|
+
let i = r.CapacitorCustomPlatform || null, a = r.Capacitor || {}, o = a.Plugins = a.Plugins || {}, s = () => i === null ? n(r) : i.name, c = () => s() !== "web", l = (e) => !!(f.get(e)?.platforms.has(s()) || u(e)), u = (e) => a.PluginHeaders?.find((t) => t.name === e), d = (e) => r.console.error(e), f = /* @__PURE__ */ new Map();
|
|
12
|
+
return a.convertFileSrc ||= (e) => e, a.getPlatform = s, a.handleError = d, a.isNativePlatform = c, a.isPluginAvailable = l, a.registerPlugin = (n, r = {}) => {
|
|
13
|
+
let c = f.get(n);
|
|
14
|
+
if (c) return console.warn(`Capacitor plugin "${n}" already registered. Cannot register plugins twice.`), c.proxy;
|
|
15
|
+
let l = s(), d = u(n), p, m = async () => (!p && l in r ? p = p = typeof r[l] == "function" ? await r[l]() : r[l] : i !== null && !p && "web" in r && (p = p = typeof r.web == "function" ? await r.web() : r.web), p), h = (r, i) => {
|
|
16
|
+
if (d) {
|
|
17
|
+
let e = d?.methods.find((e) => i === e.name);
|
|
18
|
+
if (e) return e.rtype === "promise" ? (e) => a.nativePromise(n, i.toString(), e) : (e, t) => a.nativeCallback(n, i.toString(), e, t);
|
|
19
|
+
if (r) return r[i]?.bind(r);
|
|
20
|
+
} else if (r) return r[i]?.bind(r);
|
|
21
|
+
else throw new t(`"${n}" plugin is not implemented on ${l}`, e.Unimplemented);
|
|
22
|
+
}, g = (r) => {
|
|
23
|
+
let i, a = (...a) => {
|
|
24
|
+
let o = m().then((o) => {
|
|
25
|
+
let s = h(o, r);
|
|
26
|
+
if (s) {
|
|
27
|
+
let e = s(...a);
|
|
28
|
+
return i = e?.remove, e;
|
|
29
|
+
} else throw new t(`"${n}.${r}()" is not implemented on ${l}`, e.Unimplemented);
|
|
30
|
+
});
|
|
31
|
+
return r === "addListener" && (o.remove = async () => i()), o;
|
|
32
|
+
};
|
|
33
|
+
return a.toString = () => `${r.toString()}() { [capacitor code] }`, Object.defineProperty(a, "name", {
|
|
34
|
+
value: r,
|
|
35
|
+
writable: !1,
|
|
36
|
+
configurable: !1
|
|
37
|
+
}), a;
|
|
38
|
+
}, _ = g("addListener"), v = g("removeListener"), y = (e, t) => {
|
|
39
|
+
let n = _({ eventName: e }, t), r = async () => {
|
|
40
|
+
v({
|
|
41
|
+
eventName: e,
|
|
42
|
+
callbackId: await n
|
|
43
|
+
}, t);
|
|
44
|
+
}, i = new Promise((e) => n.then(() => e({ remove: r })));
|
|
45
|
+
return i.remove = async () => {
|
|
46
|
+
console.warn("Using addListener() without 'await' is deprecated."), await r();
|
|
47
|
+
}, i;
|
|
48
|
+
}, b = new Proxy({}, { get(e, t) {
|
|
49
|
+
switch (t) {
|
|
50
|
+
case "$$typeof": return;
|
|
51
|
+
case "toJSON": return () => ({});
|
|
52
|
+
case "addListener": return d ? y : _;
|
|
53
|
+
case "removeListener": return v;
|
|
54
|
+
default: return g(t);
|
|
55
|
+
}
|
|
56
|
+
} });
|
|
57
|
+
return o[n] = b, f.set(n, {
|
|
58
|
+
name: n,
|
|
59
|
+
proxy: b,
|
|
60
|
+
platforms: new Set([...Object.keys(r), ...d ? [l] : []])
|
|
61
|
+
}), b;
|
|
62
|
+
}, a.Exception = t, a.DEBUG = !!a.DEBUG, a.isLoggingEnabled = !!a.isLoggingEnabled, a;
|
|
63
|
+
}, i = /* @__PURE__ */ ((e) => e.Capacitor = r(e))(typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : typeof window < "u" ? window : typeof global < "u" ? global : {}), a = i.registerPlugin, o = class {
|
|
64
|
+
constructor() {
|
|
65
|
+
this.listeners = {}, this.retainedEventArguments = {}, this.windowListeners = {};
|
|
66
|
+
}
|
|
67
|
+
addListener(e, t) {
|
|
68
|
+
let n = !1;
|
|
69
|
+
this.listeners[e] || (this.listeners[e] = [], n = !0), this.listeners[e].push(t);
|
|
70
|
+
let r = this.windowListeners[e];
|
|
71
|
+
return r && !r.registered && this.addWindowListener(r), n && this.sendRetainedArgumentsForEvent(e), Promise.resolve({ remove: async () => this.removeListener(e, t) });
|
|
72
|
+
}
|
|
73
|
+
async removeAllListeners() {
|
|
74
|
+
this.listeners = {};
|
|
75
|
+
for (let e in this.windowListeners) this.removeWindowListener(this.windowListeners[e]);
|
|
76
|
+
this.windowListeners = {};
|
|
77
|
+
}
|
|
78
|
+
notifyListeners(e, t, n) {
|
|
79
|
+
let r = this.listeners[e];
|
|
80
|
+
if (!r) {
|
|
81
|
+
if (n) {
|
|
82
|
+
let n = this.retainedEventArguments[e];
|
|
83
|
+
n ||= [], n.push(t), this.retainedEventArguments[e] = n;
|
|
84
|
+
}
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
r.forEach((e) => e(t));
|
|
88
|
+
}
|
|
89
|
+
hasListeners(e) {
|
|
90
|
+
return !!this.listeners[e]?.length;
|
|
91
|
+
}
|
|
92
|
+
registerWindowListener(e, t) {
|
|
93
|
+
this.windowListeners[t] = {
|
|
94
|
+
registered: !1,
|
|
95
|
+
windowEventName: e,
|
|
96
|
+
pluginEventName: t,
|
|
97
|
+
handler: (e) => {
|
|
98
|
+
this.notifyListeners(t, e);
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
unimplemented(t = "not implemented") {
|
|
103
|
+
return new i.Exception(t, e.Unimplemented);
|
|
104
|
+
}
|
|
105
|
+
unavailable(t = "not available") {
|
|
106
|
+
return new i.Exception(t, e.Unavailable);
|
|
107
|
+
}
|
|
108
|
+
async removeListener(e, t) {
|
|
109
|
+
let n = this.listeners[e];
|
|
110
|
+
if (!n) return;
|
|
111
|
+
let r = n.indexOf(t);
|
|
112
|
+
this.listeners[e].splice(r, 1), this.listeners[e].length || this.removeWindowListener(this.windowListeners[e]);
|
|
113
|
+
}
|
|
114
|
+
addWindowListener(e) {
|
|
115
|
+
window.addEventListener(e.windowEventName, e.handler), e.registered = !0;
|
|
116
|
+
}
|
|
117
|
+
removeWindowListener(e) {
|
|
118
|
+
e && (window.removeEventListener(e.windowEventName, e.handler), e.registered = !1);
|
|
119
|
+
}
|
|
120
|
+
sendRetainedArgumentsForEvent(e) {
|
|
121
|
+
let t = this.retainedEventArguments[e];
|
|
122
|
+
t && (delete this.retainedEventArguments[e], t.forEach((t) => {
|
|
123
|
+
this.notifyListeners(e, t);
|
|
124
|
+
}));
|
|
125
|
+
}
|
|
126
|
+
}, s = (e) => encodeURIComponent(e).replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent).replace(/[()]/g, escape), c = (e) => e.replace(/(%[\dA-F]{2})+/gi, decodeURIComponent), l = class extends o {
|
|
127
|
+
async getCookies() {
|
|
128
|
+
let e = document.cookie, t = {};
|
|
129
|
+
return e.split(";").forEach((e) => {
|
|
130
|
+
if (e.length <= 0) return;
|
|
131
|
+
let [n, r] = e.replace(/=/, "CAP_COOKIE").split("CAP_COOKIE");
|
|
132
|
+
n = c(n).trim(), r = c(r).trim(), t[n] = r;
|
|
133
|
+
}), t;
|
|
134
|
+
}
|
|
135
|
+
async setCookie(e) {
|
|
136
|
+
try {
|
|
137
|
+
let t = s(e.key), n = s(e.value), r = e.expires ? `; expires=${e.expires.replace("expires=", "")}` : "", i = (e.path || "/").replace("path=", ""), a = e.url != null && e.url.length > 0 ? `domain=${e.url}` : "";
|
|
138
|
+
document.cookie = `${t}=${n || ""}${r}; path=${i}; ${a};`;
|
|
139
|
+
} catch (e) {
|
|
140
|
+
return Promise.reject(e);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
async deleteCookie(e) {
|
|
144
|
+
try {
|
|
145
|
+
document.cookie = `${e.key}=; Max-Age=0`;
|
|
146
|
+
} catch (e) {
|
|
147
|
+
return Promise.reject(e);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
async clearCookies() {
|
|
151
|
+
try {
|
|
152
|
+
let e = document.cookie.split(";") || [];
|
|
153
|
+
for (let t of e) document.cookie = t.replace(/^ +/, "").replace(/=.*/, `=;expires=${(/* @__PURE__ */ new Date()).toUTCString()};path=/`);
|
|
154
|
+
} catch (e) {
|
|
155
|
+
return Promise.reject(e);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
async clearAllCookies() {
|
|
159
|
+
try {
|
|
160
|
+
await this.clearCookies();
|
|
161
|
+
} catch (e) {
|
|
162
|
+
return Promise.reject(e);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
};
|
|
166
|
+
a("CapacitorCookies", { web: () => new l() });
|
|
167
|
+
var u = async (e) => new Promise((t, n) => {
|
|
168
|
+
let r = new FileReader();
|
|
169
|
+
r.onload = () => {
|
|
170
|
+
let e = r.result;
|
|
171
|
+
t(e.indexOf(",") >= 0 ? e.split(",")[1] : e);
|
|
172
|
+
}, r.onerror = (e) => n(e), r.readAsDataURL(e);
|
|
173
|
+
}), d = (e = {}) => {
|
|
174
|
+
let t = Object.keys(e);
|
|
175
|
+
return Object.keys(e).map((e) => e.toLocaleLowerCase()).reduce((n, r, i) => (n[r] = e[t[i]], n), {});
|
|
176
|
+
}, f = (e, t = !0) => e ? Object.entries(e).reduce((e, n) => {
|
|
177
|
+
let [r, i] = n, a, o;
|
|
178
|
+
return Array.isArray(i) ? (o = "", i.forEach((e) => {
|
|
179
|
+
a = t ? encodeURIComponent(e) : e, o += `${r}=${a}&`;
|
|
180
|
+
}), o.slice(0, -1)) : (a = t ? encodeURIComponent(i) : i, o = `${r}=${a}`), `${e}&${o}`;
|
|
181
|
+
}, "").substr(1) : null, p = (e, t = {}) => {
|
|
182
|
+
let n = Object.assign({
|
|
183
|
+
method: e.method || "GET",
|
|
184
|
+
headers: e.headers
|
|
185
|
+
}, t), r = d(e.headers)["content-type"] || "";
|
|
186
|
+
if (typeof e.data == "string") n.body = e.data;
|
|
187
|
+
else if (r.includes("application/x-www-form-urlencoded")) {
|
|
188
|
+
let t = new URLSearchParams();
|
|
189
|
+
for (let [n, r] of Object.entries(e.data || {})) t.set(n, r);
|
|
190
|
+
n.body = t.toString();
|
|
191
|
+
} else if (r.includes("multipart/form-data") || e.data instanceof FormData) {
|
|
192
|
+
let t = new FormData();
|
|
193
|
+
if (e.data instanceof FormData) e.data.forEach((e, n) => {
|
|
194
|
+
t.append(n, e);
|
|
195
|
+
});
|
|
196
|
+
else for (let n of Object.keys(e.data)) t.append(n, e.data[n]);
|
|
197
|
+
n.body = t;
|
|
198
|
+
let r = new Headers(n.headers);
|
|
199
|
+
r.delete("content-type"), n.headers = r;
|
|
200
|
+
} else (r.includes("application/json") || typeof e.data == "object") && (n.body = JSON.stringify(e.data));
|
|
201
|
+
return n;
|
|
202
|
+
}, m = class extends o {
|
|
203
|
+
async request(e) {
|
|
204
|
+
let t = p(e, e.webFetchExtra), n = f(e.params, e.shouldEncodeUrlParams), r = n ? `${e.url}?${n}` : e.url, i = await fetch(r, t), a = i.headers.get("content-type") || "", { responseType: o = "text" } = i.ok ? e : {};
|
|
205
|
+
a.includes("application/json") && (o = "json");
|
|
206
|
+
let s, c;
|
|
207
|
+
switch (o) {
|
|
208
|
+
case "arraybuffer":
|
|
209
|
+
case "blob":
|
|
210
|
+
c = await i.blob(), s = await u(c);
|
|
211
|
+
break;
|
|
212
|
+
case "json":
|
|
213
|
+
s = await i.json();
|
|
214
|
+
break;
|
|
215
|
+
default: s = await i.text();
|
|
216
|
+
}
|
|
217
|
+
let l = {};
|
|
218
|
+
return i.headers.forEach((e, t) => {
|
|
219
|
+
l[t] = e;
|
|
220
|
+
}), {
|
|
221
|
+
data: s,
|
|
222
|
+
headers: l,
|
|
223
|
+
status: i.status,
|
|
224
|
+
url: i.url
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
async get(e) {
|
|
228
|
+
return this.request(Object.assign(Object.assign({}, e), { method: "GET" }));
|
|
229
|
+
}
|
|
230
|
+
async post(e) {
|
|
231
|
+
return this.request(Object.assign(Object.assign({}, e), { method: "POST" }));
|
|
232
|
+
}
|
|
233
|
+
async put(e) {
|
|
234
|
+
return this.request(Object.assign(Object.assign({}, e), { method: "PUT" }));
|
|
235
|
+
}
|
|
236
|
+
async patch(e) {
|
|
237
|
+
return this.request(Object.assign(Object.assign({}, e), { method: "PATCH" }));
|
|
238
|
+
}
|
|
239
|
+
async delete(e) {
|
|
240
|
+
return this.request(Object.assign(Object.assign({}, e), { method: "DELETE" }));
|
|
241
|
+
}
|
|
242
|
+
};
|
|
243
|
+
a("CapacitorHttp", { web: () => new m() });
|
|
244
|
+
var h;
|
|
245
|
+
(function(e) {
|
|
246
|
+
e.Dark = "DARK", e.Light = "LIGHT", e.Default = "DEFAULT";
|
|
247
|
+
})(h ||= {});
|
|
248
|
+
var g;
|
|
249
|
+
(function(e) {
|
|
250
|
+
e.StatusBar = "StatusBar", e.NavigationBar = "NavigationBar";
|
|
251
|
+
})(g ||= {});
|
|
252
|
+
var _ = class extends o {
|
|
253
|
+
async setStyle() {
|
|
254
|
+
this.unavailable("not available for web");
|
|
255
|
+
}
|
|
256
|
+
async setAnimation() {
|
|
257
|
+
this.unavailable("not available for web");
|
|
258
|
+
}
|
|
259
|
+
async show() {
|
|
260
|
+
this.unavailable("not available for web");
|
|
261
|
+
}
|
|
262
|
+
async hide() {
|
|
263
|
+
this.unavailable("not available for web");
|
|
264
|
+
}
|
|
265
|
+
};
|
|
266
|
+
a("SystemBars", { web: () => new _() });
|
|
267
|
+
//#endregion
|
|
268
|
+
export { i as Capacitor };
|
|
@@ -4,4 +4,5 @@ export { getPlatform, isAndroid, isIOS, isNative, isWeb } from './platform';
|
|
|
4
4
|
export { nativeConfirm, nativeCopyText, nativeImpact, nativeNotify, nativeOpenUrl, nativeShare, nativeToast, } from './consumers';
|
|
5
5
|
export { SafeAreaView, type SafeAreaViewProps } from './SafeAreaView';
|
|
6
6
|
export * from './hooks';
|
|
7
|
+
export { isNativeIAPAvailable, getNativeProducts, purchaseNativeProduct, acknowledgeNativePurchase, restoreNativePurchases, getNativePurchases, installNativeIAP, type NativeProduct, type NativeTransaction, type NativePurchaseType, } from './purchases';
|
|
7
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/native/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,QAAQ,EACR,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,sBAAsB,EACtB,mBAAmB,EACnB,wBAAwB,EACxB,cAAc,EACd,YAAY,EACZ,cAAc,EACd,yBAAyB,EACzB,aAAa,GACd,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAC5E,OAAO,EACL,aAAa,EACb,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,WAAW,EACX,WAAW,GACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACtE,cAAc,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/native/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,QAAQ,EACR,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,sBAAsB,EACtB,mBAAmB,EACnB,wBAAwB,EACxB,cAAc,EACd,YAAY,EACZ,cAAc,EACd,yBAAyB,EACzB,aAAa,GACd,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAC5E,OAAO,EACL,aAAa,EACb,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,WAAW,EACX,WAAW,GACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACtE,cAAc,SAAS,CAAC;AACxB,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,EACrB,yBAAyB,EACzB,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,GACxB,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { PURCHASE_TYPE, Product, Transaction } from '@capgo/native-purchases';
|
|
2
|
+
export type { Product as NativeProduct, Transaction as NativeTransaction, } from '@capgo/native-purchases';
|
|
3
|
+
export type { PURCHASE_TYPE as NativePurchaseType } from '@capgo/native-purchases';
|
|
4
|
+
/** True when running inside a Capacitor iOS or Android app. */
|
|
5
|
+
export declare function isNativeIAPAvailable(): boolean;
|
|
6
|
+
/**
|
|
7
|
+
* Fetch product info from the App Store / Play Store for the given identifiers.
|
|
8
|
+
* Returns an empty array on web or if the store lookup fails.
|
|
9
|
+
*/
|
|
10
|
+
export declare function getNativeProducts(productIdentifiers: string[], productType?: PURCHASE_TYPE): Promise<Product[]>;
|
|
11
|
+
/**
|
|
12
|
+
* Initiate a native purchase for the given product identifier.
|
|
13
|
+
*
|
|
14
|
+
* The returned Transaction contains the receipt (iOS legacy), jwsRepresentation
|
|
15
|
+
* (iOS StoreKit 2) or purchaseToken (Android) — send these to the backend for
|
|
16
|
+
* server-side validation before granting entitlements. Throws if the user cancels
|
|
17
|
+
* or the purchase fails.
|
|
18
|
+
*/
|
|
19
|
+
export declare function purchaseNativeProduct(productIdentifier: string, options?: {
|
|
20
|
+
planIdentifier?: string;
|
|
21
|
+
productType?: PURCHASE_TYPE;
|
|
22
|
+
quantity?: number;
|
|
23
|
+
appAccountToken?: string;
|
|
24
|
+
isConsumable?: boolean;
|
|
25
|
+
/** Set false to defer acknowledgment until backend validation completes. */
|
|
26
|
+
autoAcknowledgePurchases?: boolean;
|
|
27
|
+
}): Promise<Transaction>;
|
|
28
|
+
/**
|
|
29
|
+
* Manually acknowledge/finish a transaction after server-side validation.
|
|
30
|
+
* Only needed when purchaseNativeProduct was called with autoAcknowledgePurchases: false.
|
|
31
|
+
*
|
|
32
|
+
* @param purchaseToken purchaseToken (Android) or transactionId (iOS)
|
|
33
|
+
*/
|
|
34
|
+
export declare function acknowledgeNativePurchase(purchaseToken: string): Promise<void>;
|
|
35
|
+
/** Restore previously completed purchases (required to be reachable in the UI by App Store). */
|
|
36
|
+
export declare function restoreNativePurchases(): Promise<void>;
|
|
37
|
+
/** Return all purchases recorded for the current user on this device. */
|
|
38
|
+
export declare function getNativePurchases(options?: {
|
|
39
|
+
productType?: PURCHASE_TYPE;
|
|
40
|
+
appAccountToken?: string;
|
|
41
|
+
onlyCurrentEntitlements?: boolean;
|
|
42
|
+
}): Promise<Transaction[]>;
|
|
43
|
+
/**
|
|
44
|
+
* Register the StoreKit 2 transaction listener so background renewals, restores
|
|
45
|
+
* and interrupted purchases are observed when the app launches or resumes. Safe
|
|
46
|
+
* no-op on web. Call once after the billing context is known.
|
|
47
|
+
*
|
|
48
|
+
* Background transactions are reconciled authoritatively server-side via Apple
|
|
49
|
+
* App Store Server Notifications / Google RTDN; this listener lets the UI react
|
|
50
|
+
* (e.g. refresh entitlements) without polling.
|
|
51
|
+
*/
|
|
52
|
+
export declare function installNativeIAP(onTransaction?: (transaction: Transaction) => void): Promise<void>;
|
|
53
|
+
//# sourceMappingURL=purchases.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"purchases.d.ts","sourceRoot":"","sources":["../../../src/shared/native/purchases.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGnF,YAAY,EACV,OAAO,IAAI,aAAa,EACxB,WAAW,IAAI,iBAAiB,GACjC,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,aAAa,IAAI,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAEnF,+DAA+D;AAC/D,wBAAgB,oBAAoB,IAAI,OAAO,CAE9C;AAmBD;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,kBAAkB,EAAE,MAAM,EAAE,EAC5B,WAAW,CAAC,EAAE,aAAa,GAC1B,OAAO,CAAC,OAAO,EAAE,CAAC,CAKpB;AAED;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CACzC,iBAAiB,EAAE,MAAM,EACzB,OAAO,CAAC,EAAE;IACR,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,4EAA4E;IAC5E,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC,GACA,OAAO,CAAC,WAAW,CAAC,CAItB;AAED;;;;;GAKG;AACH,wBAAsB,yBAAyB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIpF;AAED,gGAAgG;AAChG,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC,CAI5D;AAED,yEAAyE;AACzE,wBAAsB,kBAAkB,CAAC,OAAO,CAAC,EAAE;IACjD,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAKzB;AAED;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACpC,aAAa,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,IAAI,GACjD,OAAO,CAAC,IAAI,CAAC,CAUf"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { Capacitor as e } from "../../node_modules/@capacitor/core/dist/index.js";
|
|
2
|
+
//#region src/shared/native/purchases.ts
|
|
3
|
+
function t() {
|
|
4
|
+
return e.isNativePlatform();
|
|
5
|
+
}
|
|
6
|
+
async function n() {
|
|
7
|
+
if (!e.isNativePlatform()) return null;
|
|
8
|
+
try {
|
|
9
|
+
return (await import(
|
|
10
|
+
/* @vite-ignore */
|
|
11
|
+
"@capgo/native-purchases"
|
|
12
|
+
)).NativePurchases ?? null;
|
|
13
|
+
} catch {
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
async function r(e, t) {
|
|
18
|
+
let r = await n();
|
|
19
|
+
return !r || e.length === 0 ? [] : (await r.getProducts({
|
|
20
|
+
productIdentifiers: e,
|
|
21
|
+
productType: t
|
|
22
|
+
})).products ?? [];
|
|
23
|
+
}
|
|
24
|
+
async function i(e, t) {
|
|
25
|
+
let r = await n();
|
|
26
|
+
if (!r) throw Error("Native purchases not available on this platform");
|
|
27
|
+
return r.purchaseProduct({
|
|
28
|
+
productIdentifier: e,
|
|
29
|
+
...t
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
async function a(e) {
|
|
33
|
+
let t = await n();
|
|
34
|
+
t && await t.acknowledgePurchase({ purchaseToken: e });
|
|
35
|
+
}
|
|
36
|
+
async function o() {
|
|
37
|
+
let e = await n();
|
|
38
|
+
e && await e.restorePurchases();
|
|
39
|
+
}
|
|
40
|
+
async function s(e) {
|
|
41
|
+
let t = await n();
|
|
42
|
+
return t ? (await t.getPurchases(e)).purchases ?? [] : [];
|
|
43
|
+
}
|
|
44
|
+
async function c(e) {
|
|
45
|
+
let t = await n();
|
|
46
|
+
if (t) try {
|
|
47
|
+
await t.addListener("transactionUpdated", (t) => {
|
|
48
|
+
e?.(t);
|
|
49
|
+
});
|
|
50
|
+
} catch {}
|
|
51
|
+
}
|
|
52
|
+
//#endregion
|
|
53
|
+
export { a as acknowledgeNativePurchase, r as getNativeProducts, s as getNativePurchases, c as installNativeIAP, t as isNativeIAPAvailable, i as purchaseNativeProduct, o as restoreNativePurchases };
|
package/dist/shared-native.js
CHANGED
|
@@ -10,4 +10,5 @@ import { useDeviceInfo as v } from "./shared/native/hooks/useDeviceInfo.js";
|
|
|
10
10
|
import { useHaptics as y } from "./shared/native/hooks/useHaptics.js";
|
|
11
11
|
import { useStatusBar as b } from "./shared/native/hooks/useStatusBar.js";
|
|
12
12
|
import "./shared/native/hooks/index.js";
|
|
13
|
-
|
|
13
|
+
import { acknowledgeNativePurchase as x, getNativeProducts as S, getNativePurchases as C, installNativeIAP as w, isNativeIAPAvailable as T, purchaseNativeProduct as E, restoreNativePurchases as D } from "./shared/native/purchases.js";
|
|
14
|
+
export { p as SafeAreaView, x as acknowledgeNativePurchase, e as getNativeBridge, S as getNativeProducts, C as getNativePurchases, t as getPlatform, w as installNativeIAP, n as isAndroid, r as isIOS, i as isNative, T as isNativeIAPAvailable, a as isWeb, o as nativeConfirm, s as nativeCopyText, c as nativeImpact, l as nativeNotify, u as nativeOpenUrl, d as nativeShare, f as nativeToast, E as purchaseNativeProduct, D as restoreNativePurchases, _ as useAppState, v as useDeviceInfo, y as useHaptics, g as useNativeKeyboard, m as useNativePlatform, h as useSafeArea, b as useStatusBar };
|
package/dist/shared.js
CHANGED
|
@@ -112,9 +112,10 @@ import { useAppState as xi } from "./shared/native/hooks/useAppState.js";
|
|
|
112
112
|
import { useDeviceInfo as Si } from "./shared/native/hooks/useDeviceInfo.js";
|
|
113
113
|
import { useHaptics as Ci } from "./shared/native/hooks/useHaptics.js";
|
|
114
114
|
import { useStatusBar as wi } from "./shared/native/hooks/useStatusBar.js";
|
|
115
|
+
import { acknowledgeNativePurchase as Ti, getNativeProducts as Ei, getNativePurchases as Di, installNativeIAP as Oi, isNativeIAPAvailable as ki, purchaseNativeProduct as Ai, restoreNativePurchases as ji } from "./shared/native/purchases.js";
|
|
115
116
|
import "./shared-native.js";
|
|
116
117
|
import "./shared/actors/index.js";
|
|
117
118
|
//#region src/shared/index.ts
|
|
118
|
-
var
|
|
119
|
+
var Mi = "1.0.0";
|
|
119
120
|
//#endregion
|
|
120
|
-
export { wn as ASSISTANT_WIDGET_TOGGLE_EVENT, zt as AccessDenied, At as ActorIdentity, Ne as ApolloClient, Pe as ApolloProvider, Yt as AppErrorBoundary, st as AppInitializer, ei as AppShellProvider, Tn as AssistantWidget, ie as BACKEND_ERROR_EVENT, Rn as BREAKPOINTS, On as BackendAuditSink, Dn as BroadcastChannelSink, G as COMMON_SHELL_LESS_ROUTES, ae as CONNECTION_STATUS_EVENT, Kt as ConditionalShell, mt as ConsoleTransport, nn as ContextConversationWidget, Z as DEFAULT_PAGE_SIZE, K as DEFAULT_SHELL_CONFIG, En as DevtoolsSink, Nt as ErrorBoundary, Vt as ErrorFallback, jn as EventBusProvider,
|
|
121
|
+
export { wn as ASSISTANT_WIDGET_TOGGLE_EVENT, zt as AccessDenied, At as ActorIdentity, Ne as ApolloClient, Pe as ApolloProvider, Yt as AppErrorBoundary, st as AppInitializer, ei as AppShellProvider, Tn as AssistantWidget, ie as BACKEND_ERROR_EVENT, Rn as BREAKPOINTS, On as BackendAuditSink, Dn as BroadcastChannelSink, G as COMMON_SHELL_LESS_ROUTES, ae as CONNECTION_STATUS_EVENT, Kt as ConditionalShell, mt as ConsoleTransport, nn as ContextConversationWidget, Z as DEFAULT_PAGE_SIZE, K as DEFAULT_SHELL_CONFIG, En as DevtoolsSink, Nt as ErrorBoundary, Vt as ErrorFallback, jn as EventBusProvider, Mi as FE_SHARED_VERSION, Xt as FeatureFlagProvider, tn as FeatureGate, Q as GATEWAYS, cr as GLOBAL_SHORTCUT_CATEGORIES, De as GatewayProvider, Fe as InMemoryCache, _n as KeyboardHelpDialogWrapper, Ht as LoadingFallback, ut as LogLevel, ft as LogManager, dt as Logger, rr as MODIFIER_KEYS, wr as MicrofrontendContext, Gt as MicrofrontendErrorBoundary, ni as MicrofrontendProvider, An as OtelBrowserSink, yr as PLAN_USAGE_SNAPSHOT_EVENT, ir as PLATFORM_TYPES, V as PRODUCTS, H as PRODUCT_URLS, Jt as PWAInstallBanner, Ut as PageLoadingFallback, It as PermissionButton, Bt as PermissionDenied, Lt as PermissionGate, Rt as PermissionLink, bt as QUOTA_EXHAUSTED_CODE, gr as QUOTA_EXHAUSTED_EVENT, vn as QuotaMeter, xt as RESOURCE_CAP_EXCEEDED_CODE, Pt as RequireAuth, Ft as RequireGuest, kn as RybbitSink, xe as SSELink, nt as SSORedirectSpinner, St as STORAGE_QUOTA_EXCEEDED_CODE, _i as SafeAreaView, Wt as SectionLoadingFallback, $r as TourInitializer, Ir as TourPlayer, jr as TourPlayerProvider, kr as TourSpotlight, Ar as TourTooltip, ri as TourTrigger, Lr as TourTriggerButton, Jr as ToursProvider, Ct as UPGRADE_ERROR_CODES, yn as UPGRADE_PROMPT_EVENT, Sn as UpgradeInlineBanner, bn as UpgradePromptModal, Me as WsLink, Ti as acknowledgeNativePurchase, r as alertTokens, Sr as appendContextToPath, He as attemptTokenRefresh, jt as buildActorFallback, wt as buildQuotaExhaustedMessage, m as capitalizeFirst, h as capitalizeWords, i as categoryTokens, rt as checkRemoteSLO, it as checkSLO, Ue as clearAuthSessionStorage, at as clearLocalAuthState, Je as clearSSoCookie, Ye as clearShellSsoCookies, ht as clearUserContext, kt as cn, n as createApolloClient, Mn as createEventBus, lr as createGlobalShortcuts, Se as createGraphQLClient, vt as createProfileScopedStorage, Er as detectDeviceType, rn as detectPlatform, oe as dispatchBackendErrorEvent, _r as dispatchQuotaExhausted, xn as dispatchUpgradePrompt, se as extractBackendError, Tt as extractQuotaExhaustedExtensions, Et as extractUpgradeErrorExtensions, g as formatBytes, _ as formatCompactNumber, v as formatCurrency, y as formatCurrencyCompact, b as formatDate, x as formatDateTime, S as formatDuration, an as formatKeyCombo, C as formatList, w as formatNumber, T as formatOrdinal, E as formatPercentage, D as formatRelativeTime, O as formatTime, a as getAlertTokens, o as getCategoryTokens, on as getDisplayKeysForPlatform, $ as getGatewayConfig, ee as getGatewayUrl, Ce as getGlobalClient, ur as getGlobalShortcutsByCategory, te as getGraphQLEndpoint, ii as getNativeBridge, Ei as getNativeProducts, Di as getNativePurchases, ai as getPlatform, U as getProductUrl, W as getProductsWithUrls, yt as getProfileScopedKey, s as getProgressTokens, Dr as getResponsiveSelector, ot as getSSORedirectUrl, Xe as getSSoCookie, q as getShellConfig, sn as getShortcutLabel, c as getStatusBadgeTokens, l as getStatusTokens, pe as getStoredAuthToken, me as getStoredLocale, he as getStoredOrganizationId, ge as getStoredProjectId, _e as getStoredWorkspaceId, ve as getStoredWorkspaceToken, zr as getTourContextRank, Br as getTourRouteCatalog, Vr as getTourRouteModules, Hr as getTourRoutePages, u as getTrendTokens, we as getWorkspaceClient, ne as getWorkspaceTokenPayload, Ie as gql, ye as graphqlFetch, We as hasAuthGraphQLErrors, Te as initializeAppClients, gt as initializeLogger, L as installGatewayFetchRewrite, Oi as installNativeIAP, ce as isAbortError, oi as isAndroid, Ge as isAuthGraphQLError, Ke as isAuthNetworkError, le as isBackendErrorDisplay, P as isChunkLoadError, si as isIOS, cn as isMac, ln as isMobileDevice, ci as isNative, ki as isNativeIAPAvailable, Dt as isQuotaExhaustedError, Ze as isSharedSsoCookieDomain, J as isShellLessRoute, un as isTabletDevice, Ur as isTourVisibleForContext, ue as isTransportError, Qe as isTrustedSsoOrigin, Ot as isUpgradeError, li as isWeb, re as isWorkspaceTokenValidForContext, F as lazyWithRetry, pt as logManager, de as markConnectionHealthy, dn as matchesKeyCombo, dr as mergeShortcuts, ui as nativeConfirm, di as nativeCopyText, fi as nativeImpact, pi as nativeNotify, mi as nativeOpenUrl, hi as nativeShare, gi as nativeToast, fn as normalizeKey, pn as normalizePlatformCombo, Wr as normalizeTourPath, mn as parseKeyCombo, k as pluralize, d as progressTokens, br as publishPlanUsageSnapshot, Ai as purchaseNativeProduct, $e as readShellSsoCookie, qe as redirectToLogin, Gr as registerTourRouteCatalog, Ee as resetAppClients, ti as resolveAppShellObservabilityConfig, B as resolveAuthBridgeConfig, R as resolveGatewayBases, be as resolveGatewayUrl, I as resolveGatewayUrls, Kr as resolveTourTargetPath, ji as restoreNativePurchases, et as setSSoCookie, tt as setShellSsoCookies, _t as setUserContext, hn as shouldEnableKeyboardShortcuts, gn as shouldIgnoreShortcut, Y as shouldShowBreadcrumb, X as shouldShowSidebar, fe as shouldToastBackendError, A as slugify, f as statusTokens, z as suppressConsole, j as toCamelCase, M as toPascalCase, p as trendTokens, N as truncateText, Mt as useActorProfiles, Le as useApolloClient, xi as useAppState, tr as useAsync, nr as useAsyncImmediate, Yr as useAutoStartTour, zn as useBreakpoint, Zn as useConditionalToggle, e as useCopyToClipboard, Cr as useCurrentContextSearchParams, In as useDebounce, Si as useDeviceInfo, Nn as useEvent, Pn as useEventBus, Fn as useEventEmitter, Gn as useExclusiveMenu, Qt as useFeatureFlag, $t as useFeatureFlagDetails, en as useFeatureFlagValue, Zt as useFeatureFlags, Oe as useGateway, ke as useGatewayClient, Ci as useHaptics, pr as useHasAnimated, or as useHotkeys, Mr as useIsTourPlaying, Un as useKeyPress, Wn as useKeyboardShortcut, ar as useKeyboardShortcuts, Re as useLazyQuery, Kn as useLocalStorage, fr as useLogger, t as useMediaQuery, Tr as useMicrofrontendContext, Bn as useMobileBreakpoint, ze as useMutation, bi as useNativeKeyboard, vi as useNativePlatform, Vn as useOnClickOutside, Hn as useOnClickOutsideWithRef, qt as usePWA, er as usePagination, Rr as usePlayTour, Jn as usePrevious, Yn as usePreviousDistinct, Xn as usePreviousHistory, Be as useQuery, vr as useQuotaErrorToast, hr as useRecordProductVisit, mr as useReferralAttribution, ct as useRegistryHelpers, yi as useSafeArea, Ae as useSafeGateway, je as useSafeGatewayClient, Xr as useSafeToursContext, qn as useSessionStorage, lt as useShellNavigate, sr as useShortcutHelp, Nr as useStartTour, wi as useStatusBar, Pr as useStopTour, Ve as useSubscription, Ln as useThrottle, Qn as useToggle, $n as useToggleObject, Or as useTourPlayer, Fr as useTourPlayerContext, Zr as useTours, Qr as useToursContext, xr as useUpgradePrompt, Cn as useVoiceInput, qr as withTourProgressStatus };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { HTMLAttributes } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* AuroraBackground — Boff UI 2.0 living glass backdrop. An absolutely-positioned,
|
|
4
|
+
* pointer-events-none decorative layer of soft blurred accent "aurora" blobs that
|
|
5
|
+
* drift slowly behind hero zones / page headers / empty states. It NEVER moves
|
|
6
|
+
* page content (it sits at -z-10 behind), and the drift animation is neutralised
|
|
7
|
+
* by `data-reduce-motion` / `prefers-reduced-motion` (the blobs go static).
|
|
8
|
+
*
|
|
9
|
+
* Pair with glass surfaces on top for the real depth-of-field glass effect.
|
|
10
|
+
*/
|
|
11
|
+
export interface AuroraBackgroundProps extends HTMLAttributes<HTMLDivElement> {
|
|
12
|
+
/** Visual strength of the aurora. */
|
|
13
|
+
intensity?: 'subtle' | 'normal' | 'vivid';
|
|
14
|
+
/** Optional decorative hero image layered under the aurora (served from /illustrations). */
|
|
15
|
+
image?: string;
|
|
16
|
+
}
|
|
17
|
+
export declare function AuroraBackground({ intensity, image, className, ...props }: AuroraBackgroundProps): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
export declare namespace AuroraBackground {
|
|
19
|
+
var displayName: string;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=aurora-background.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aurora-background.d.ts","sourceRoot":"","sources":["../../src/ui/aurora-background.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAG5C;;;;;;;;GAQG;AACH,MAAM,WAAW,qBAAsB,SAAQ,cAAc,CAAC,cAAc,CAAC;IAC3E,qCAAqC;IACrC,SAAS,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC1C,4FAA4F;IAC5F,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAQD,wBAAgB,gBAAgB,CAAC,EAC/B,SAAoB,EACpB,KAAK,EACL,SAAS,EACT,GAAG,KAAK,EACT,EAAE,qBAAqB,2CAuBvB;yBA5Be,gBAAgB"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { cn as e } from "../shared-utils.js";
|
|
2
|
+
import { jsx as t, jsxs as n } from "react/jsx-runtime";
|
|
3
|
+
//#region src/ui/aurora-background.tsx
|
|
4
|
+
var r = {
|
|
5
|
+
subtle: "opacity-40",
|
|
6
|
+
normal: "opacity-70",
|
|
7
|
+
vivid: "opacity-100"
|
|
8
|
+
};
|
|
9
|
+
function i({ intensity: i = "normal", image: a, className: o, ...s }) {
|
|
10
|
+
return /* @__PURE__ */ n("div", {
|
|
11
|
+
"aria-hidden": "true",
|
|
12
|
+
className: e("pointer-events-none absolute inset-0 -z-10 overflow-hidden", o),
|
|
13
|
+
...s,
|
|
14
|
+
children: [a && /* @__PURE__ */ t("img", {
|
|
15
|
+
src: a,
|
|
16
|
+
alt: "",
|
|
17
|
+
"aria-hidden": "true",
|
|
18
|
+
className: "absolute inset-0 h-full w-full object-cover opacity-30 [mask-image:radial-gradient(120%_120%_at_50%_0%,black,transparent_75%)]"
|
|
19
|
+
}), /* @__PURE__ */ n("div", {
|
|
20
|
+
className: e("absolute inset-0", r[i]),
|
|
21
|
+
children: [
|
|
22
|
+
/* @__PURE__ */ t("div", { className: "absolute -left-[10%] -top-[20%] h-[55%] w-[55%] rounded-full bg-[radial-gradient(closest-side,color-mix(in_oklab,var(--color-action-primary-bg)_45%,transparent),transparent)] blur-3xl motion-safe:animate-vc-aurora" }),
|
|
23
|
+
/* @__PURE__ */ t("div", { className: "absolute right-[-8%] top-[10%] h-[45%] w-[45%] rounded-full bg-[radial-gradient(closest-side,color-mix(in_oklab,var(--color-accent-purple)_38%,transparent),transparent)] blur-3xl motion-safe:animate-vc-aurora [animation-delay:-5s]" }),
|
|
24
|
+
/* @__PURE__ */ t("div", { className: "absolute bottom-[-15%] left-[25%] h-[50%] w-[50%] rounded-full bg-[radial-gradient(closest-side,color-mix(in_oklab,var(--color-accent-teal)_30%,transparent),transparent)] blur-3xl motion-safe:animate-vc-aurora [animation-delay:-10s]" })
|
|
25
|
+
]
|
|
26
|
+
})]
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
i.displayName = "AuroraBackground";
|
|
30
|
+
//#endregion
|
|
31
|
+
export { i as AuroraBackground };
|
package/dist/ui/glass-card.d.ts
CHANGED
|
@@ -15,8 +15,10 @@ declare const glassCardVariants: (props?: ({
|
|
|
15
15
|
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
16
16
|
export type GlassCardProps = HTMLAttributes<HTMLDivElement> & VariantProps<typeof glassCardVariants> & {
|
|
17
17
|
ref?: React.Ref<HTMLDivElement>;
|
|
18
|
+
/** Featured/active accent glow (gradient-tinted ring + accent glow shadow). No movement. */
|
|
19
|
+
glow?: boolean;
|
|
18
20
|
};
|
|
19
|
-
declare function GlassCard({ ref, className, treatment, children, ...props }: GlassCardProps): import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
declare function GlassCard({ ref, className, treatment, glow, children, ...props }: GlassCardProps): import("react/jsx-runtime").JSX.Element;
|
|
20
22
|
declare namespace GlassCard {
|
|
21
23
|
var displayName: string;
|
|
22
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glass-card.d.ts","sourceRoot":"","sources":["../../src/ui/glass-card.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAIlE;;;;;;;;;GASG;AACH,QAAA,MAAM,iBAAiB;;
|
|
1
|
+
{"version":3,"file":"glass-card.d.ts","sourceRoot":"","sources":["../../src/ui/glass-card.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAIlE;;;;;;;;;GASG;AACH,QAAA,MAAM,iBAAiB;;8EAyBtB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,cAAc,CAAC,cAAc,CAAC,GACzD,YAAY,CAAC,OAAO,iBAAiB,CAAC,GAAG;IACvC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC,4FAA4F;IAC5F,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAEJ,iBAAS,SAAS,CAAC,EACjB,GAAG,EACH,SAAS,EACT,SAAmB,EACnB,IAAY,EACZ,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,cAAc,2CAehB;kBAtBQ,SAAS;;;AAyBlB,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC"}
|
package/dist/ui/glass-card.js
CHANGED
|
@@ -5,20 +5,20 @@ import { cva as n } from "class-variance-authority";
|
|
|
5
5
|
var r = n("relative rounded-card text-text-primary transition-[box-shadow,border-color] duration-200 ease-[var(--motion-easing-out)]", {
|
|
6
6
|
variants: { treatment: {
|
|
7
7
|
plain: "border border-border-subtle bg-bg-surface shadow-elevation-1 hover:border-border-strong hover:shadow-elevation-2",
|
|
8
|
-
glass: "border border-border-seam bg-[var(--color-surface-glass)] backdrop-blur-[var(--blur-glass)] shadow-[var(--shadow-pop)] before:absolute before:inset-0 before:rounded-card before:bg-gloss-card before:pointer-events-none hover:border-border-strong hover:shadow-[var(--shadow-pop-hover)]",
|
|
8
|
+
glass: "border border-border-seam bg-[var(--color-surface-glass)] backdrop-blur-[var(--blur-glass)] backdrop-saturate-150 shadow-[var(--shadow-pop)] before:absolute before:inset-0 before:rounded-card before:bg-gloss-card before:pointer-events-none after:absolute after:inset-x-0 after:top-0 after:h-px after:rounded-t-card after:bg-[linear-gradient(90deg,transparent,color-mix(in_oklab,var(--color-action-primary-bg)_45%,white),transparent)] after:opacity-60 after:pointer-events-none hover:border-border-strong hover:shadow-[var(--shadow-pop-hover)]",
|
|
9
9
|
metric: "border border-border-seam bg-bg-surface bg-accent-wash shadow-elevation-1 hover:border-border-strong hover:shadow-elevation-2",
|
|
10
10
|
insight: "border border-border-seam bg-bg-surface shadow-[var(--shadow-pop)] hover:border-border-strong hover:shadow-[var(--shadow-pop-hover)]"
|
|
11
11
|
} },
|
|
12
12
|
defaultVariants: { treatment: "plain" }
|
|
13
13
|
});
|
|
14
|
-
function i({ ref: n, className: i, treatment: a = "plain",
|
|
14
|
+
function i({ ref: n, className: i, treatment: a = "plain", glow: o = !1, children: s, ...c }) {
|
|
15
15
|
return /* @__PURE__ */ t("div", {
|
|
16
16
|
ref: n,
|
|
17
|
-
className: e(r({ treatment: a }), i),
|
|
18
|
-
...
|
|
17
|
+
className: e(r({ treatment: a }), o && "border-[color-mix(in_oklab,var(--color-action-primary-bg)_34%,transparent)] shadow-[var(--shadow-glow)]", i),
|
|
18
|
+
...c,
|
|
19
19
|
children: /* @__PURE__ */ t("div", {
|
|
20
20
|
className: "relative z-[1]",
|
|
21
|
-
children:
|
|
21
|
+
children: s
|
|
22
22
|
})
|
|
23
23
|
});
|
|
24
24
|
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ElementType, HTMLAttributes } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* GradientText — clips a subtle brand gradient into the text fill for hero
|
|
4
|
+
* titles / featured numerals. Theme-aware (derived from the live accent), and
|
|
5
|
+
* legible in high-contrast (the gradient endpoints stay on-accent). Keep it for
|
|
6
|
+
* the ONE hero heading per page, not body copy.
|
|
7
|
+
*/
|
|
8
|
+
export interface GradientTextProps extends HTMLAttributes<HTMLElement> {
|
|
9
|
+
as?: ElementType;
|
|
10
|
+
}
|
|
11
|
+
export declare function GradientText({ as: Tag, className, children, ...props }: GradientTextProps): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export declare namespace GradientText {
|
|
13
|
+
var displayName: string;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=gradient-text.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gradient-text.d.ts","sourceRoot":"","sources":["../../src/ui/gradient-text.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAG9D;;;;;GAKG;AACH,MAAM,WAAW,iBAAkB,SAAQ,cAAc,CAAC,WAAW,CAAC;IACpE,EAAE,CAAC,EAAE,WAAW,CAAC;CAClB;AAED,wBAAgB,YAAY,CAAC,EAC3B,EAAE,EAAE,GAAY,EAChB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,iBAAiB,2CAYnB;yBAjBe,YAAY"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { cn as e } from "../shared-utils.js";
|
|
2
|
+
import { jsx as t } from "react/jsx-runtime";
|
|
3
|
+
//#region src/ui/gradient-text.tsx
|
|
4
|
+
function n({ as: n = "span", className: r, children: i, ...a }) {
|
|
5
|
+
return /* @__PURE__ */ t(n, {
|
|
6
|
+
className: e("bg-[linear-gradient(120deg,var(--color-action-primary-bg),color-mix(in_oklab,var(--color-action-primary-bg)_55%,var(--color-accent-purple)),var(--color-action-primary-bg))] bg-clip-text text-transparent", r),
|
|
7
|
+
...a,
|
|
8
|
+
children: i
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
n.displayName = "GradientText";
|
|
12
|
+
//#endregion
|
|
13
|
+
export { n as GradientText };
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { ImgHTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Illustration — renders an on-brand product illustration served from the host
|
|
4
|
+
* shell's `/illustrations/<name>.webp`. Generated assets (glassmorphic, dark
|
|
5
|
+
* navy, violet/teal glow) are produced per product and dropped in the shell's
|
|
6
|
+
* `public/illustrations/`. Always provide a meaningful `alt` for accessibility
|
|
7
|
+
* (or alt="" for purely decorative use).
|
|
8
|
+
*/
|
|
9
|
+
export interface IllustrationProps extends Omit<ImgHTMLAttributes<HTMLImageElement>, 'src'> {
|
|
10
|
+
/** Illustration name → /illustrations/<name>.webp */
|
|
11
|
+
name: string;
|
|
12
|
+
alt: string;
|
|
13
|
+
size?: 'sm' | 'md' | 'lg' | 'xl';
|
|
14
|
+
/** Wrap in a soft rounded glass frame with an accent glow. */
|
|
15
|
+
framed?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export declare function Illustration({ name, alt, size, framed, className, loading, ...props }: IllustrationProps): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
export declare namespace Illustration {
|
|
19
|
+
var displayName: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* IllustratedEmptyState — a calm, centered empty/zero state pairing an
|
|
23
|
+
* {@link Illustration} with a title, description and an optional primary action.
|
|
24
|
+
* Clutter-free by design; use the matching illustration for the context
|
|
25
|
+
* (e.g. name="vc-empty-agents").
|
|
26
|
+
*/
|
|
27
|
+
export interface IllustratedEmptyStateProps {
|
|
28
|
+
illustration: string;
|
|
29
|
+
title: string;
|
|
30
|
+
description?: ReactNode;
|
|
31
|
+
action?: ReactNode;
|
|
32
|
+
/** alt text for the illustration (defaults to the title) */
|
|
33
|
+
alt?: string;
|
|
34
|
+
className?: string;
|
|
35
|
+
}
|
|
36
|
+
export declare function IllustratedEmptyState({ illustration, title, description, action, alt, className, }: IllustratedEmptyStateProps): import("react/jsx-runtime").JSX.Element;
|
|
37
|
+
export declare namespace IllustratedEmptyState {
|
|
38
|
+
var displayName: string;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=illustration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"illustration.d.ts","sourceRoot":"","sources":["../../src/ui/illustration.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAG/D;;;;;;GAMG;AACH,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,EAAE,KAAK,CAAC;IACzF,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACjC,8DAA8D;IAC9D,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AASD,wBAAgB,YAAY,CAAC,EAC3B,IAAI,EACJ,GAAG,EACH,IAAW,EACX,MAAc,EACd,SAAS,EACT,OAAgB,EAChB,GAAG,KAAK,EACT,EAAE,iBAAiB,2CAsBnB;yBA9Be,YAAY;;;AAiC5B;;;;;GAKG;AACH,MAAM,WAAW,0BAA0B;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,4DAA4D;IAC5D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,qBAAqB,CAAC,EACpC,YAAY,EACZ,KAAK,EACL,WAAW,EACX,MAAM,EACN,GAAG,EACH,SAAS,GACV,EAAE,0BAA0B,2CAkB5B;yBAzBe,qBAAqB"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { cn as e } from "../shared-utils.js";
|
|
2
|
+
import { jsx as t, jsxs as n } from "react/jsx-runtime";
|
|
3
|
+
//#region src/ui/illustration.tsx
|
|
4
|
+
var r = {
|
|
5
|
+
sm: "size-20",
|
|
6
|
+
md: "size-32",
|
|
7
|
+
lg: "size-44",
|
|
8
|
+
xl: "size-56"
|
|
9
|
+
};
|
|
10
|
+
function i({ name: n, alt: i, size: a = "md", framed: o = !1, className: s, loading: c = "lazy", ...l }) {
|
|
11
|
+
let u = /* @__PURE__ */ t("img", {
|
|
12
|
+
src: `/illustrations/${n}.webp`,
|
|
13
|
+
alt: i,
|
|
14
|
+
loading: c,
|
|
15
|
+
decoding: "async",
|
|
16
|
+
className: e("select-none object-contain", r[a], o ? "rounded-2xl" : "", s),
|
|
17
|
+
...l
|
|
18
|
+
});
|
|
19
|
+
return o ? /* @__PURE__ */ t("div", {
|
|
20
|
+
className: "relative inline-flex rounded-2xl border border-border-seam bg-[var(--color-surface-glass)] p-1 shadow-[var(--shadow-pop)] backdrop-blur-[var(--blur-glass)]",
|
|
21
|
+
children: u
|
|
22
|
+
}) : u;
|
|
23
|
+
}
|
|
24
|
+
i.displayName = "Illustration";
|
|
25
|
+
function a({ illustration: r, title: a, description: o, action: s, alt: c, className: l }) {
|
|
26
|
+
return /* @__PURE__ */ n("div", {
|
|
27
|
+
className: e("flex flex-col items-center justify-center gap-4 px-6 py-12 text-center", l),
|
|
28
|
+
children: [
|
|
29
|
+
/* @__PURE__ */ t(i, {
|
|
30
|
+
name: r,
|
|
31
|
+
alt: c ?? a,
|
|
32
|
+
size: "lg"
|
|
33
|
+
}),
|
|
34
|
+
/* @__PURE__ */ n("div", {
|
|
35
|
+
className: "space-y-1.5",
|
|
36
|
+
children: [/* @__PURE__ */ t("h3", {
|
|
37
|
+
className: "text-lg font-semibold tracking-tight text-text-primary",
|
|
38
|
+
children: a
|
|
39
|
+
}), o && /* @__PURE__ */ t("p", {
|
|
40
|
+
className: "mx-auto max-w-sm text-sm text-text-secondary",
|
|
41
|
+
children: o
|
|
42
|
+
})]
|
|
43
|
+
}),
|
|
44
|
+
s && /* @__PURE__ */ t("div", {
|
|
45
|
+
className: "mt-1",
|
|
46
|
+
children: s
|
|
47
|
+
})
|
|
48
|
+
]
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
a.displayName = "IllustratedEmptyState";
|
|
52
|
+
//#endregion
|
|
53
|
+
export { a as IllustratedEmptyState, i as Illustration };
|
package/dist/ui/index.d.ts
CHANGED
|
@@ -36,4 +36,7 @@ export { GlassCard, glassCardVariants, type GlassCardProps } from './glass-card'
|
|
|
36
36
|
export { EmphasisPanel, type EmphasisPanelProps } from './emphasis-panel';
|
|
37
37
|
export { ShowMore, type ShowMoreProps } from './show-more';
|
|
38
38
|
export { CTAOverflowMenu, type CTAOverflowMenuProps, type CTAAction, type CTAPrimaryAction, } from './cta-overflow-menu';
|
|
39
|
+
export { AuroraBackground, type AuroraBackgroundProps } from './aurora-background';
|
|
40
|
+
export { Illustration, type IllustrationProps, IllustratedEmptyState, type IllustratedEmptyStateProps, } from './illustration';
|
|
41
|
+
export { GradientText, type GradientTextProps } from './gradient-text';
|
|
39
42
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/ui/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG3F,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,KAAK,YAAY,EACjB,KAAK,oBAAoB,GAC1B,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAG7E,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,GACtB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,uBAAuB,EACvB,2BAA2B,EAC3B,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,KAAK,4BAA4B,GAClC,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,eAAe,EACf,KAAK,qBAAqB,EAC1B,KAAK,6BAA6B,EAClC,KAAK,oBAAoB,GAC1B,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAGhE,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAGzE,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAGhF,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAGjE,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AAGhE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAGpE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAG/F,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,OAAO,EACL,OAAO,EACP,aAAa,EACb,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,eAAe,EACf,gBAAgB,GACjB,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,MAAM,EACN,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,WAAW,EACX,aAAa,GACd,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,YAAY,EACZ,wBAAwB,EACxB,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,eAAe,EACf,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AAGjD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAGnF,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAGtD,OAAO,EACL,MAAM,EACN,aAAa,EACb,WAAW,EACX,UAAU,EACV,WAAW,EACX,sBAAsB,EACtB,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,WAAW,GACZ,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,OAAO,EACL,KAAK,EACL,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,WAAW,EACX,WAAW,EACX,UAAU,EACV,gBAAgB,GACjB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGnC,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AAGvD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,OAAO,EACL,KAAK,EACL,SAAS,EACT,YAAY,EACZ,SAAS,EACT,WAAW,EACX,SAAS,EACT,WAAW,EACX,QAAQ,GACT,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAGlE,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAG1D,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAGrF,OAAO,EACL,aAAa,EACb,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,GAC1B,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EACL,eAAe,EACf,KAAK,oBAAoB,EACzB,KAAK,SAAS,EACd,KAAK,gBAAgB,GACtB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACnF,OAAO,EACL,YAAY,EACZ,KAAK,iBAAiB,EACtB,qBAAqB,EACrB,KAAK,0BAA0B,GAChC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/ui.js
CHANGED
|
@@ -36,4 +36,7 @@ import { GlassCard as Tt, glassCardVariants as Et } from "./ui/glass-card.js";
|
|
|
36
36
|
import { EmphasisPanel as Dt } from "./ui/emphasis-panel.js";
|
|
37
37
|
import { ShowMore as Ot } from "./ui/show-more.js";
|
|
38
38
|
import { CTAOverflowMenu as kt } from "./ui/cta-overflow-menu.js";
|
|
39
|
-
|
|
39
|
+
import { AuroraBackground as At } from "./ui/aurora-background.js";
|
|
40
|
+
import { IllustratedEmptyState as jt, Illustration as Mt } from "./ui/illustration.js";
|
|
41
|
+
import { GradientText as Nt } from "./ui/gradient-text.js";
|
|
42
|
+
export { e as Accordion, t as AccordionContent, n as AccordionItem, r as AccordionTrigger, ie as AlertDialog, ae as AlertDialogAction, oe as AlertDialogCancel, se as AlertDialogContent, ce as AlertDialogDescription, le as AlertDialogFooter, ue as AlertDialogHeader, de as AlertDialogOverlay, fe as AlertDialogPortal, pe as AlertDialogTitle, me as AlertDialogTrigger, At as AuroraBackground, he as Badge, _ as BottomSheet, v as BottomSheetClose, y as BottomSheetContent, b as BottomSheetDescription, x as BottomSheetFooter, S as BottomSheetHeader, C as BottomSheetTitle, w as BottomSheetTrigger, H as Button, kt as CTAOverflowMenu, _e as Card, ve as CardContent, ye as CardDescription, be as CardFooter, xe as CardHeader, Se as CardTitle, Ce as Checkbox, we as Command, Te as CommandDialog, Ee as CommandEmpty, De as CommandGroup, Oe as CommandInput, ke as CommandItem, Ae as CommandList, je as CommandSeparator, Me as CommandShortcut, i as Dialog, a as DialogClose, o as DialogContent, s as DialogDescription, c as DialogFooter, l as DialogHeader, u as DialogOverlay, d as DialogPortal, f as DialogTitle, p as DialogTrigger, Ne as DropdownMenu, Pe as DropdownMenuCheckboxItem, Fe as DropdownMenuContent, Ie as DropdownMenuGroup, Le as DropdownMenuItem, Re as DropdownMenuLabel, ze as DropdownMenuPortal, Be as DropdownMenuRadioGroup, Ve as DropdownMenuRadioItem, He as DropdownMenuSeparator, Ue as DropdownMenuShortcut, We as DropdownMenuSub, Ge as DropdownMenuSubContent, Ke as DropdownMenuSubTrigger, qe as DropdownMenuTrigger, Dt as EmphasisPanel, re as EmptyState, m as EntityIdModal, Tt as GlassCard, Nt as GradientText, jt as IllustratedEmptyState, Mt as Illustration, Je as Input, Ye as Label, g as OptionalFields, wt as PageContainer, ee as Pagination, Xe as Popover, Ze as PopoverAnchor, Qe as PopoverContent, $e as PopoverTrigger, T as ResponsiveDialog, E as ResponsiveDialogClose, D as ResponsiveDialogContent, O as ResponsiveDialogDescription, k as ResponsiveDialogFooter, A as ResponsiveDialogHeader, j as ResponsiveDialogTitle, M as ResponsiveDialogTrigger, ne as ResponsiveStack, V as ResponsiveTable, et as ScrollArea, tt as ScrollBar, W as Select, G as SelectContent, K as SelectGroup, q as SelectItem, J as SelectLabel, Y as SelectScrollDownButton, X as SelectScrollUpButton, Z as SelectSeparator, Q as SelectTrigger, $ as SelectValue, nt as Separator, rt as Sheet, it as SheetClose, at as SheetContent, ot as SheetDescription, st as SheetFooter, ct as SheetHeader, lt as SheetTitle, ut as SheetTrigger, Ot as ShowMore, dt as Skeleton, pt as Spinner, te as Stepper, mt as Switch, N as Table, P as TableBody, F as TableCaption, I as TableCell, L as TableFooter, R as TableHead, z as TableHeader, B as TableRow, ht as Tabs, gt as TabsContent, _t as TabsList, vt as TabsTrigger, yt as Textarea, ft as Toaster, bt as Tooltip, xt as TooltipContent, St as TooltipProvider, Ct as TooltipTrigger, ge as badgeVariants, U as buttonVariants, Et as glassCardVariants, h as useEntityIdModal };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@burdenoff/fe-libs",
|
|
3
|
-
"version": "2026.625.
|
|
3
|
+
"version": "2026.625.3",
|
|
4
4
|
"description": "Burdenoff frontend primitives and domain libraries",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"imports": {
|
|
@@ -305,6 +305,7 @@
|
|
|
305
305
|
"devDependencies": {
|
|
306
306
|
"@capacitor/core": "^8.3.1",
|
|
307
307
|
"@capacitor/geolocation": "^8.2.0",
|
|
308
|
+
"@capgo/native-purchases": "^8.4.0",
|
|
308
309
|
"@eslint/js": "^10.0.1",
|
|
309
310
|
"@tailwindcss/vite": "^4.1.8",
|
|
310
311
|
"@tanstack/react-query": "^5.90.21",
|
|
@@ -316,6 +317,7 @@
|
|
|
316
317
|
"eslint": "^9.18.0",
|
|
317
318
|
"eslint-plugin-react": "^7.37.5",
|
|
318
319
|
"eslint-plugin-react-hooks": "^7.0.1",
|
|
320
|
+
"framer-motion": "^12.0.0",
|
|
319
321
|
"globals": "^17.3.0",
|
|
320
322
|
"lefthook": "^2.1.1",
|
|
321
323
|
"postcss": "8.5.12",
|
|
@@ -325,13 +327,13 @@
|
|
|
325
327
|
"typescript": "^5.9.0",
|
|
326
328
|
"typescript-eslint": "^8.50.1",
|
|
327
329
|
"vite": "8.0.10",
|
|
328
|
-
"vite-plugin-dts": "4.5.4"
|
|
329
|
-
"framer-motion": "^12.0.0"
|
|
330
|
+
"vite-plugin-dts": "4.5.4"
|
|
330
331
|
},
|
|
331
332
|
"peerDependencies": {
|
|
332
333
|
"@apollo/client": "^4.0.9",
|
|
333
334
|
"@capacitor/core": "^8.3.1",
|
|
334
335
|
"@capacitor/geolocation": "^8.2.0",
|
|
336
|
+
"@capgo/native-purchases": "^8.4.0",
|
|
335
337
|
"@tanstack/react-query": "^5.0.0",
|
|
336
338
|
"graphql": "^16.12.0",
|
|
337
339
|
"react": "^19.0.0",
|
|
@@ -368,6 +370,9 @@
|
|
|
368
370
|
"@capacitor/geolocation": {
|
|
369
371
|
"optional": true
|
|
370
372
|
},
|
|
373
|
+
"@capgo/native-purchases": {
|
|
374
|
+
"optional": true
|
|
375
|
+
},
|
|
371
376
|
"framer-motion": {
|
|
372
377
|
"optional": true
|
|
373
378
|
}
|
|
@@ -231,6 +231,21 @@ export default {
|
|
|
231
231
|
'modal': 'var(--z-modal)',
|
|
232
232
|
'toast': 'var(--z-toast)',
|
|
233
233
|
},
|
|
234
|
+
// Boff UI 2.0 — tasteful motion (all neutralised by data-reduce-motion +
|
|
235
|
+
// prefers-reduced-motion). aurora/glow never move CONTENT (bg + opacity only).
|
|
236
|
+
keyframes: {
|
|
237
|
+
'vc-aurora': {
|
|
238
|
+
'0%, 100%': { transform: 'translate3d(0,0,0) rotate(0deg) scale(1.05)', opacity: '0.65' },
|
|
239
|
+
'50%': { transform: 'translate3d(3%, -4%, 0) rotate(10deg) scale(1.18)', opacity: '1' },
|
|
240
|
+
},
|
|
241
|
+
'vc-shimmer': { '100%': { transform: 'translateX(100%)' } },
|
|
242
|
+
'vc-glow-pulse': { '0%, 100%': { opacity: '0.5' }, '50%': { opacity: '1' } },
|
|
243
|
+
},
|
|
244
|
+
animation: {
|
|
245
|
+
'vc-aurora': 'vc-aurora 16s ease-in-out infinite',
|
|
246
|
+
'vc-shimmer': 'vc-shimmer 1.6s ease-in-out infinite',
|
|
247
|
+
'vc-glow-pulse': 'vc-glow-pulse 2.8s ease-in-out infinite',
|
|
248
|
+
},
|
|
234
249
|
},
|
|
235
250
|
},
|
|
236
251
|
};
|