@hanzo/ui 8.27.41 → 8.27.43
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/chat/Chat.cjs +17 -2
- package/dist/chat/Chat.d.ts +12 -1
- package/dist/chat/Chat.d.ts.map +1 -1
- package/dist/chat/Chat.js +17 -2
- package/dist/chat/Chat.js.map +1 -1
- package/dist/gallery.html +1 -1
- package/dist/onboarding/Checkout.cjs +9 -5
- package/dist/onboarding/Checkout.d.ts.map +1 -1
- package/dist/onboarding/Checkout.js +9 -5
- package/dist/onboarding/Checkout.js.map +1 -1
- package/dist/onboarding/attempt.cjs +59 -0
- package/dist/onboarding/attempt.d.ts +21 -0
- package/dist/onboarding/attempt.d.ts.map +1 -0
- package/dist/onboarding/attempt.js +53 -0
- package/dist/onboarding/attempt.js.map +1 -0
- package/dist/product/index.cjs +1 -0
- package/dist/product/index.d.ts +1 -0
- package/dist/product/index.d.ts.map +1 -1
- package/dist/product/index.js +1 -0
- package/dist/product/index.js.map +1 -1
- package/dist/product/useFileDrop.cjs +90 -0
- package/dist/product/useFileDrop.d.ts +6 -0
- package/dist/product/useFileDrop.d.ts.map +1 -0
- package/dist/product/useFileDrop.js +88 -0
- package/dist/product/useFileDrop.js.map +1 -0
- package/package.json +2 -2
package/dist/chat/Chat.cjs
CHANGED
|
@@ -40,6 +40,7 @@ const gui_1 = require("@hanzo/gui");
|
|
|
40
40
|
const react_1 = require("react");
|
|
41
41
|
const ink_1 = require("../backends/gui/ink.cjs");
|
|
42
42
|
const slot_1 = require("../backends/gui/slot.cjs");
|
|
43
|
+
const useFileDrop_1 = require("../product/useFileDrop.cjs");
|
|
43
44
|
const Composer_1 = require("./Composer.cjs");
|
|
44
45
|
const Message_1 = require("./Message.cjs");
|
|
45
46
|
const Parts_1 = require("./Parts.cjs");
|
|
@@ -62,8 +63,12 @@ const words_1 = require("./words.cjs");
|
|
|
62
63
|
* in exactly that direction: `Parts` reads `type` before it reads anything else.
|
|
63
64
|
*/
|
|
64
65
|
const draw = (said) => typeof said === 'string' || said == null ? ((0, ink_1.ink)((0, words_1.words)(said))) : ((0, jsx_runtime_1.jsx)(Parts_1.Parts, { parts: said }));
|
|
65
|
-
function Chat({ messages, streaming = false, send: onSend, stop: onStop, body, empty, composer, ...thread }) {
|
|
66
|
+
function Chat({ messages, streaming = false, send: onSend, stop: onStop, body, empty, composer, onFiles, ...thread }) {
|
|
66
67
|
const [draft, setDraft] = (0, react_1.useState)('');
|
|
68
|
+
// The ONE window-level drop, off the shared primitive. Enabled only when a
|
|
69
|
+
// host passed `onFiles` — a surface that cannot route a file leaves the
|
|
70
|
+
// window alone rather than swallowing the drop.
|
|
71
|
+
const { active: dropping } = (0, useFileDrop_1.useFileDrop)(onFiles ?? (() => { }), !!onFiles);
|
|
67
72
|
// Clearing here rather than in an effect on `messages` is what keeps a send
|
|
68
73
|
// from racing the answer: the draft is gone the moment it is sent, and a
|
|
69
74
|
// surface that rejects the turn does not get a cleared box back.
|
|
@@ -85,5 +90,15 @@ function Chat({ messages, streaming = false, send: onSend, stop: onStop, body, e
|
|
|
85
90
|
// from the composer lands on a `display: contents` wrapper or on the page,
|
|
86
91
|
// and then reports a component that is fine as broken, or one that is broken
|
|
87
92
|
// as fine.
|
|
88
|
-
return ((0, jsx_runtime_1.jsxs)(gui_1.YStack, { flex: 1, width: "100%", ...(0, slot_1.slot)('chat'), children: [messages.length === 0 && empty ? (empty) : ((0, jsx_runtime_1.jsx)(Thread_1.Thread, { flex: 1, ...thread, children: messages.map((turn, i) => ((0, jsx_runtime_1.jsx)(Message_1.Message, { role: turn.role, busy: streaming && i === last && turn.role === 'assistant', children: body ? body(turn) : draw(turn.content) }, turn.id))) })), (0, jsx_runtime_1.jsx)(Composer_1.Composer, { value: draft, onChange: setDraft, onSend: send, busy: streaming, ...(onStop ? { onStop } : {}), ...composer })
|
|
93
|
+
return ((0, jsx_runtime_1.jsxs)(gui_1.YStack, { flex: 1, width: "100%", ...(0, slot_1.slot)('chat'), children: [messages.length === 0 && empty ? (empty) : ((0, jsx_runtime_1.jsx)(Thread_1.Thread, { flex: 1, ...thread, children: messages.map((turn, i) => ((0, jsx_runtime_1.jsx)(Message_1.Message, { role: turn.role, busy: streaming && i === last && turn.role === 'assistant', children: body ? body(turn) : draw(turn.content) }, turn.id))) })), (0, jsx_runtime_1.jsx)(Composer_1.Composer, { value: draft, onChange: setDraft, onSend: send, busy: streaming, ...(onStop ? { onStop } : {}), ...composer }), dropping ? ((0, jsx_runtime_1.jsx)("div", { "aria-hidden": true, style: {
|
|
94
|
+
position: 'fixed',
|
|
95
|
+
inset: 0,
|
|
96
|
+
zIndex: 50,
|
|
97
|
+
display: 'flex',
|
|
98
|
+
alignItems: 'center',
|
|
99
|
+
justifyContent: 'center',
|
|
100
|
+
pointerEvents: 'none',
|
|
101
|
+
background: 'rgba(52, 211, 153, 0.08)',
|
|
102
|
+
border: '2px dashed #34d399',
|
|
103
|
+
}, children: (0, jsx_runtime_1.jsx)("span", { style: { fontSize: 15, fontWeight: 600, color: '#34d399' }, children: "Drop files to attach" }) })) : null] }));
|
|
89
104
|
}
|
package/dist/chat/Chat.d.ts
CHANGED
|
@@ -60,6 +60,17 @@ export interface ChatProps extends Omit<ThreadProps, 'children' | 'ref'> {
|
|
|
60
60
|
empty?: ReactNode;
|
|
61
61
|
/** The composer's own props — placeholder, hint, the send control, the field. */
|
|
62
62
|
composer?: Partial<ComposerProps>;
|
|
63
|
+
/**
|
|
64
|
+
* Route files dropped ANYWHERE in the window.
|
|
65
|
+
*
|
|
66
|
+
* Present, the surface lights a full-window overlay on a file drag and hands
|
|
67
|
+
* the dropped files here — the same window-level drop `@hanzo/chat` runs, off
|
|
68
|
+
* the one `useFileDrop` primitive, so a host gets "drop on any part of the
|
|
69
|
+
* interface" without writing a listener. Absent, the window is left untouched
|
|
70
|
+
* (the hook is disabled), because a drop with nowhere to go should not
|
|
71
|
+
* swallow the browser's own behaviour.
|
|
72
|
+
*/
|
|
73
|
+
onFiles?: (files: File[]) => void;
|
|
63
74
|
}
|
|
64
|
-
export declare function Chat({ messages, streaming, send: onSend, stop: onStop, body, empty, composer, ...thread }: ChatProps): import("react").JSX.Element;
|
|
75
|
+
export declare function Chat({ messages, streaming, send: onSend, stop: onStop, body, empty, composer, onFiles, ...thread }: ChatProps): import("react").JSX.Element;
|
|
65
76
|
//# sourceMappingURL=Chat.d.ts.map
|
package/dist/chat/Chat.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chat.d.ts","sourceRoot":"","sources":["../../src/chat/Chat.tsx"],"names":[],"mappings":"AAoCA,OAAO,EAAyB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"Chat.d.ts","sourceRoot":"","sources":["../../src/chat/Chat.tsx"],"names":[],"mappings":"AAoCA,OAAO,EAAyB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAK7D,OAAO,EAAY,KAAK,aAAa,EAAE,MAAM,YAAY,CAAA;AACzD,OAAO,EAAW,KAAK,IAAI,EAAE,MAAM,WAAW,CAAA;AAE9C,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,UAAU,CAAA;AACnD,OAAO,EAAS,KAAK,IAAI,EAAE,MAAM,SAAS,CAAA;AAE1C;;;;;;;GAOG;AACH,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,IAAI,CAAA;IACV;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,IAAI,CAAA;CACf;AAED,MAAM,WAAW,SAAU,SAAQ,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,KAAK,CAAC;IACtE,sCAAsC;IACtC,QAAQ,EAAE,IAAI,EAAE,CAAA;IAChB,iFAAiF;IACjF,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;;;;;;;;;OAUG;IACH,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC5B,mEAAmE;IACnE,IAAI,CAAC,EAAE,MAAM,IAAI,CAAA;IACjB;;;;;;;;;;OAUG;IACH,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,SAAS,CAAA;IAChC,+DAA+D;IAC/D,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,iFAAiF;IACjF,QAAQ,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAA;IACjC;;;;;;;;;OASG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,CAAA;CAClC;AAyBD,wBAAgB,IAAI,CAAC,EACnB,QAAQ,EACR,SAAiB,EACjB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,OAAO,EACP,GAAG,MAAM,EACV,EAAE,SAAS,+BA6EX"}
|
package/dist/chat/Chat.js
CHANGED
|
@@ -37,6 +37,7 @@ import { YStack } from '@hanzo/gui';
|
|
|
37
37
|
import { useCallback, useState } from 'react';
|
|
38
38
|
import { ink } from '../backends/gui/ink.js';
|
|
39
39
|
import { slot } from '../backends/gui/slot.js';
|
|
40
|
+
import { useFileDrop } from '../product/useFileDrop.js';
|
|
40
41
|
import { Composer } from './Composer.js';
|
|
41
42
|
import { Message } from './Message.js';
|
|
42
43
|
import { Parts } from './Parts.js';
|
|
@@ -59,8 +60,12 @@ import { words } from './words.js';
|
|
|
59
60
|
* in exactly that direction: `Parts` reads `type` before it reads anything else.
|
|
60
61
|
*/
|
|
61
62
|
const draw = (said) => typeof said === 'string' || said == null ? (ink(words(said))) : (_jsx(Parts, { parts: said }));
|
|
62
|
-
export function Chat({ messages, streaming = false, send: onSend, stop: onStop, body, empty, composer, ...thread }) {
|
|
63
|
+
export function Chat({ messages, streaming = false, send: onSend, stop: onStop, body, empty, composer, onFiles, ...thread }) {
|
|
63
64
|
const [draft, setDraft] = useState('');
|
|
65
|
+
// The ONE window-level drop, off the shared primitive. Enabled only when a
|
|
66
|
+
// host passed `onFiles` — a surface that cannot route a file leaves the
|
|
67
|
+
// window alone rather than swallowing the drop.
|
|
68
|
+
const { active: dropping } = useFileDrop(onFiles ?? (() => { }), !!onFiles);
|
|
64
69
|
// Clearing here rather than in an effect on `messages` is what keeps a send
|
|
65
70
|
// from racing the answer: the draft is gone the moment it is sent, and a
|
|
66
71
|
// surface that rejects the turn does not get a cleared box back.
|
|
@@ -82,6 +87,16 @@ export function Chat({ messages, streaming = false, send: onSend, stop: onStop,
|
|
|
82
87
|
// from the composer lands on a `display: contents` wrapper or on the page,
|
|
83
88
|
// and then reports a component that is fine as broken, or one that is broken
|
|
84
89
|
// as fine.
|
|
85
|
-
return (_jsxs(YStack, { flex: 1, width: "100%", ...slot('chat'), children: [messages.length === 0 && empty ? (empty) : (_jsx(Thread, { flex: 1, ...thread, children: messages.map((turn, i) => (_jsx(Message, { role: turn.role, busy: streaming && i === last && turn.role === 'assistant', children: body ? body(turn) : draw(turn.content) }, turn.id))) })), _jsx(Composer, { value: draft, onChange: setDraft, onSend: send, busy: streaming, ...(onStop ? { onStop } : {}), ...composer })
|
|
90
|
+
return (_jsxs(YStack, { flex: 1, width: "100%", ...slot('chat'), children: [messages.length === 0 && empty ? (empty) : (_jsx(Thread, { flex: 1, ...thread, children: messages.map((turn, i) => (_jsx(Message, { role: turn.role, busy: streaming && i === last && turn.role === 'assistant', children: body ? body(turn) : draw(turn.content) }, turn.id))) })), _jsx(Composer, { value: draft, onChange: setDraft, onSend: send, busy: streaming, ...(onStop ? { onStop } : {}), ...composer }), dropping ? (_jsx("div", { "aria-hidden": true, style: {
|
|
91
|
+
position: 'fixed',
|
|
92
|
+
inset: 0,
|
|
93
|
+
zIndex: 50,
|
|
94
|
+
display: 'flex',
|
|
95
|
+
alignItems: 'center',
|
|
96
|
+
justifyContent: 'center',
|
|
97
|
+
pointerEvents: 'none',
|
|
98
|
+
background: 'rgba(52, 211, 153, 0.08)',
|
|
99
|
+
border: '2px dashed #34d399',
|
|
100
|
+
}, children: _jsx("span", { style: { fontSize: 15, fontWeight: 600, color: '#34d399' }, children: "Drop files to attach" }) })) : null] }));
|
|
86
101
|
}
|
|
87
102
|
//# sourceMappingURL=Chat.js.map
|
package/dist/chat/Chat.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chat.js","sourceRoot":"","sources":["../../src/chat/Chat.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACnC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAA;AAE7D,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAsB,MAAM,YAAY,CAAA;AACzD,OAAO,EAAE,OAAO,EAAa,MAAM,WAAW,CAAA;AAC9C,OAAO,EAAE,KAAK,EAAoB,MAAM,SAAS,CAAA;AACjD,OAAO,EAAE,MAAM,EAAoB,MAAM,UAAU,CAAA;AACnD,OAAO,EAAE,KAAK,EAAa,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"Chat.js","sourceRoot":"","sources":["../../src/chat/Chat.tsx"],"names":[],"mappings":"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"}
|
package/dist/gallery.html
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<!doctype html><html lang="en" class="t_dark"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>@hanzo/ui 8.27.
|
|
1
|
+
<!doctype html><html lang="en" class="t_dark"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>@hanzo/ui 8.27.43</title><style>/* @hanzo/ui — generated by scripts/gen-css.mjs. Do not edit. */
|
|
2
2
|
:root { --hanzo-ui-styles: 1; }
|
|
3
3
|
/* Hanzo Design System — the entry point. Import THIS one file.
|
|
4
4
|
*
|
|
@@ -12,6 +12,7 @@ const input_1 = require("../backends/gui/input.cjs");
|
|
|
12
12
|
const layout_1 = require("../backends/gui/layout.cjs");
|
|
13
13
|
const select_1 = require("../backends/gui/select.cjs");
|
|
14
14
|
const api_1 = require("./api.cjs");
|
|
15
|
+
const attempt_1 = require("./attempt.cjs");
|
|
15
16
|
const catalog_1 = require("./catalog.cjs");
|
|
16
17
|
const frame_1 = require("./frame.cjs");
|
|
17
18
|
const screens_1 = require("./screens.cjs");
|
|
@@ -21,7 +22,6 @@ const plans_1 = require("./plans.cjs");
|
|
|
21
22
|
const COUNTRIES = [
|
|
22
23
|
['US', 'United States'], ['CA', 'Canada'], ['GB', 'United Kingdom'], ['AU', 'Australia'], ['DE', 'Germany'], ['FR', 'France'], ['ES', 'Spain'], ['IT', 'Italy'], ['NL', 'Netherlands'], ['SE', 'Sweden'], ['IE', 'Ireland'], ['CH', 'Switzerland'], ['JP', 'Japan'], ['SG', 'Singapore'], ['IN', 'India'], ['BR', 'Brazil'], ['MX', 'Mexico'], ['NZ', 'New Zealand'], ['ZA', 'South Africa'], ['AE', 'United Arab Emirates'],
|
|
23
24
|
];
|
|
24
|
-
const key = () => (typeof crypto !== 'undefined' && 'randomUUID' in crypto ? crypto.randomUUID() : `${Date.now()}-${Math.random()}`);
|
|
25
25
|
const renews = (interval) => {
|
|
26
26
|
const d = new Date();
|
|
27
27
|
if (interval === 'annual')
|
|
@@ -42,6 +42,7 @@ function CheckoutForm({ site = 'Hanzo', api = api_1.API, org, plan, seats = 1, i
|
|
|
42
42
|
const o = (0, plans_1.offer)(plan);
|
|
43
43
|
const l = (0, react_1.useMemo)(() => (0, plans_1.lines)(plan, interval, seats), [plan, interval, seats]);
|
|
44
44
|
const scope = (0, react_1.useMemo)(() => (org ? { 'X-Org-Id': org } : undefined), [org]);
|
|
45
|
+
const sale = (0, attempt_1.purchase)(org, plans_1.SLUG[plan], interval, l.seats);
|
|
45
46
|
const [settings, setSettings] = (0, react_1.useState)(null);
|
|
46
47
|
const [ready, setReady] = (0, react_1.useState)(false);
|
|
47
48
|
const [busy, setBusy] = (0, react_1.useState)(false);
|
|
@@ -49,7 +50,6 @@ function CheckoutForm({ site = 'Hanzo', api = api_1.API, org, plan, seats = 1, i
|
|
|
49
50
|
const [agree, setAgree] = (0, react_1.useState)(false);
|
|
50
51
|
const [form, setForm] = (0, react_1.useState)({ name: '', country: 'US', address: '', invoice: '' });
|
|
51
52
|
const card = (0, react_1.useRef)(null);
|
|
52
|
-
const attempt = (0, react_1.useRef)(key());
|
|
53
53
|
const started = (0, react_1.useRef)(false);
|
|
54
54
|
// The billing form is shown with a total: checkout has started.
|
|
55
55
|
(0, react_1.useEffect)(() => {
|
|
@@ -140,15 +140,19 @@ function CheckoutForm({ site = 'Hanzo', api = api_1.API, org, plan, seats = 1, i
|
|
|
140
140
|
track?.('payment_info_added', { plan, interval, seats: l.seats, value: l.subtotal, currency: 'USD', items: [(0, plans_1.item)(plan, interval, seats)] });
|
|
141
141
|
const paid = await (0, api_1.call)(api, '/v1/billing/subscribe/card', {
|
|
142
142
|
method: 'POST',
|
|
143
|
-
headers: { ...scope, 'X-Idempotency-Key':
|
|
143
|
+
headers: { ...scope, 'X-Idempotency-Key': (0, attempt_1.keyFor)(sale) },
|
|
144
144
|
body: JSON.stringify({ sourceId: result.token, planId: plans_1.SLUG[plan], quantity: l.seats, ...(interval === 'annual' ? { interval: 'year' } : {}) }),
|
|
145
145
|
});
|
|
146
|
+
(0, attempt_1.settle)(sale);
|
|
146
147
|
track?.('order_completed', { order_id: paid.invoiceId, plan, interval, seats: l.seats, value: l.subtotal, currency: 'USD', items: [(0, plans_1.item)(plan, interval, seats)] });
|
|
147
148
|
onPaid({ orderId: paid.invoiceId });
|
|
148
149
|
}
|
|
149
150
|
catch (err) {
|
|
150
|
-
|
|
151
|
-
|
|
151
|
+
// The same key is sent again until commerce says nothing was charged, so a
|
|
152
|
+
// retry after an unknown answer replays the sale rather than making a second.
|
|
153
|
+
if (err instanceof api_1.ApiError && (0, attempt_1.uncharged)(err.status, err.message))
|
|
154
|
+
(0, attempt_1.settle)(sale);
|
|
155
|
+
fail('declined', err instanceof api_1.ApiError ? err.message : 'We could not confirm the payment. Check Billing before you try again.');
|
|
152
156
|
}
|
|
153
157
|
}
|
|
154
158
|
const per = interval === 'annual' ? 'year' : 'month';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Checkout.d.ts","sourceRoot":"","sources":["../../src/onboarding/Checkout.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Checkout.d.ts","sourceRoot":"","sources":["../../src/onboarding/Checkout.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAGpC,OAAO,EAA8D,KAAK,QAAQ,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAA;AAEhH;;;;;;;;;GASG;AAEH,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,qEAAqE;IACrE,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,QAAQ,CAAA;IAClB,WAAW,EAAE,CAAC,CAAC,EAAE,QAAQ,KAAK,IAAI,CAAA;IAClC,8FAA8F;IAC9F,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IAC7B,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,IAAI,CAAA;IACjB,MAAM,EAAE,CAAC,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;CACzC;AAyBD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,+BAK5C"}
|
|
@@ -9,6 +9,7 @@ import { Input } from '../backends/gui/input.js';
|
|
|
9
9
|
import { Anchor, Heading, Paragraph, XStack, YStack } from '../backends/gui/layout.js';
|
|
10
10
|
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../backends/gui/select.js';
|
|
11
11
|
import { ApiError, API, call } from './api.js';
|
|
12
|
+
import { keyFor, purchase, settle, uncharged } from './attempt.js';
|
|
12
13
|
import { useCatalog } from './catalog.js';
|
|
13
14
|
import { Line, Page, Panel } from './frame.js';
|
|
14
15
|
import { IntervalChoice, Primary } from './screens.js';
|
|
@@ -18,7 +19,6 @@ import { item, lines, money, offer, period, saving, SLUG, unit, usd } from './pl
|
|
|
18
19
|
const COUNTRIES = [
|
|
19
20
|
['US', 'United States'], ['CA', 'Canada'], ['GB', 'United Kingdom'], ['AU', 'Australia'], ['DE', 'Germany'], ['FR', 'France'], ['ES', 'Spain'], ['IT', 'Italy'], ['NL', 'Netherlands'], ['SE', 'Sweden'], ['IE', 'Ireland'], ['CH', 'Switzerland'], ['JP', 'Japan'], ['SG', 'Singapore'], ['IN', 'India'], ['BR', 'Brazil'], ['MX', 'Mexico'], ['NZ', 'New Zealand'], ['ZA', 'South Africa'], ['AE', 'United Arab Emirates'],
|
|
20
21
|
];
|
|
21
|
-
const key = () => (typeof crypto !== 'undefined' && 'randomUUID' in crypto ? crypto.randomUUID() : `${Date.now()}-${Math.random()}`);
|
|
22
22
|
const renews = (interval) => {
|
|
23
23
|
const d = new Date();
|
|
24
24
|
if (interval === 'annual')
|
|
@@ -39,6 +39,7 @@ function CheckoutForm({ site = 'Hanzo', api = API, org, plan, seats = 1, interva
|
|
|
39
39
|
const o = offer(plan);
|
|
40
40
|
const l = useMemo(() => lines(plan, interval, seats), [plan, interval, seats]);
|
|
41
41
|
const scope = useMemo(() => (org ? { 'X-Org-Id': org } : undefined), [org]);
|
|
42
|
+
const sale = purchase(org, SLUG[plan], interval, l.seats);
|
|
42
43
|
const [settings, setSettings] = useState(null);
|
|
43
44
|
const [ready, setReady] = useState(false);
|
|
44
45
|
const [busy, setBusy] = useState(false);
|
|
@@ -46,7 +47,6 @@ function CheckoutForm({ site = 'Hanzo', api = API, org, plan, seats = 1, interva
|
|
|
46
47
|
const [agree, setAgree] = useState(false);
|
|
47
48
|
const [form, setForm] = useState({ name: '', country: 'US', address: '', invoice: '' });
|
|
48
49
|
const card = useRef(null);
|
|
49
|
-
const attempt = useRef(key());
|
|
50
50
|
const started = useRef(false);
|
|
51
51
|
// The billing form is shown with a total: checkout has started.
|
|
52
52
|
useEffect(() => {
|
|
@@ -137,15 +137,19 @@ function CheckoutForm({ site = 'Hanzo', api = API, org, plan, seats = 1, interva
|
|
|
137
137
|
track?.('payment_info_added', { plan, interval, seats: l.seats, value: l.subtotal, currency: 'USD', items: [item(plan, interval, seats)] });
|
|
138
138
|
const paid = await call(api, '/v1/billing/subscribe/card', {
|
|
139
139
|
method: 'POST',
|
|
140
|
-
headers: { ...scope, 'X-Idempotency-Key':
|
|
140
|
+
headers: { ...scope, 'X-Idempotency-Key': keyFor(sale) },
|
|
141
141
|
body: JSON.stringify({ sourceId: result.token, planId: SLUG[plan], quantity: l.seats, ...(interval === 'annual' ? { interval: 'year' } : {}) }),
|
|
142
142
|
});
|
|
143
|
+
settle(sale);
|
|
143
144
|
track?.('order_completed', { order_id: paid.invoiceId, plan, interval, seats: l.seats, value: l.subtotal, currency: 'USD', items: [item(plan, interval, seats)] });
|
|
144
145
|
onPaid({ orderId: paid.invoiceId });
|
|
145
146
|
}
|
|
146
147
|
catch (err) {
|
|
147
|
-
|
|
148
|
-
|
|
148
|
+
// The same key is sent again until commerce says nothing was charged, so a
|
|
149
|
+
// retry after an unknown answer replays the sale rather than making a second.
|
|
150
|
+
if (err instanceof ApiError && uncharged(err.status, err.message))
|
|
151
|
+
settle(sale);
|
|
152
|
+
fail('declined', err instanceof ApiError ? err.message : 'We could not confirm the payment. Check Billing before you try again.');
|
|
149
153
|
}
|
|
150
154
|
}
|
|
151
155
|
const per = interval === 'annual' ? 'year' : 'month';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Checkout.js","sourceRoot":"","sources":["../../src/onboarding/Checkout.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Checkout.js","sourceRoot":"","sources":["../../src/onboarding/Checkout.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* The retry key of one purchase: the organization, the plan, the term and the
|
|
4
|
+
* seats. It is kept in the browser until commerce settles the purchase, so a
|
|
5
|
+
* retry after a lost answer, a remount, or a second tab asks for the same sale
|
|
6
|
+
* and commerce replays it instead of charging again
|
|
7
|
+
* (POST /v1/billing/subscribe/card, X-Idempotency-Key). A new key is taken once
|
|
8
|
+
* commerce has answered that nothing was charged, and after a day: commerce keeps
|
|
9
|
+
* a settled sale's answer, so a key kept longer would replay yesterday's sale.
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.uncharged = exports.purchase = void 0;
|
|
13
|
+
exports.keyFor = keyFor;
|
|
14
|
+
exports.settle = settle;
|
|
15
|
+
const PREFIX = 'hanzo.checkout:';
|
|
16
|
+
/** How long a key is kept: a retry comes within minutes, a new purchase days later. */
|
|
17
|
+
const DAY = 24 * 60 * 60 * 1000;
|
|
18
|
+
const random = () => (typeof crypto !== 'undefined' && 'randomUUID' in crypto ? crypto.randomUUID() : `${Date.now()}-${Math.random()}`);
|
|
19
|
+
const store = () => {
|
|
20
|
+
try {
|
|
21
|
+
return typeof window === 'undefined' ? null : window.localStorage;
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
/** The name a purchase's key is kept under. */
|
|
28
|
+
const purchase = (org, plan, interval, seats) => `${PREFIX}${org ?? ''}:${plan}:${interval}:${seats}`;
|
|
29
|
+
exports.purchase = purchase;
|
|
30
|
+
/** The key for this purchase: the one kept, or a new one, kept. */
|
|
31
|
+
function keyFor(name, now = Date.now()) {
|
|
32
|
+
const s = store();
|
|
33
|
+
try {
|
|
34
|
+
const [key, at] = (s?.getItem(name) ?? '').split('@');
|
|
35
|
+
if (key && now - Number(at) < DAY)
|
|
36
|
+
return key;
|
|
37
|
+
const fresh = random();
|
|
38
|
+
s?.setItem(name, `${fresh}@${now}`);
|
|
39
|
+
return fresh;
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
return random();
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/** Forget the key: the sale settled, or commerce answered that nothing was charged. */
|
|
46
|
+
function settle(name) {
|
|
47
|
+
try {
|
|
48
|
+
store()?.removeItem(name);
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
/* nothing kept */
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Whether an answer ends this purchase's key: a refusal before the card, a
|
|
56
|
+
* decline, or a 409 that the account already pays (a sale in progress keeps it).
|
|
57
|
+
*/
|
|
58
|
+
const uncharged = (status, message = '') => status === 400 || status === 402 || status === 404 || status === 422 || (status === 409 && /already pays/i.test(message));
|
|
59
|
+
exports.uncharged = uncharged;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The retry key of one purchase: the organization, the plan, the term and the
|
|
3
|
+
* seats. It is kept in the browser until commerce settles the purchase, so a
|
|
4
|
+
* retry after a lost answer, a remount, or a second tab asks for the same sale
|
|
5
|
+
* and commerce replays it instead of charging again
|
|
6
|
+
* (POST /v1/billing/subscribe/card, X-Idempotency-Key). A new key is taken once
|
|
7
|
+
* commerce has answered that nothing was charged, and after a day: commerce keeps
|
|
8
|
+
* a settled sale's answer, so a key kept longer would replay yesterday's sale.
|
|
9
|
+
*/
|
|
10
|
+
/** The name a purchase's key is kept under. */
|
|
11
|
+
export declare const purchase: (org: string | undefined, plan: string, interval: string, seats: number) => string;
|
|
12
|
+
/** The key for this purchase: the one kept, or a new one, kept. */
|
|
13
|
+
export declare function keyFor(name: string, now?: number): string;
|
|
14
|
+
/** Forget the key: the sale settled, or commerce answered that nothing was charged. */
|
|
15
|
+
export declare function settle(name: string): void;
|
|
16
|
+
/**
|
|
17
|
+
* Whether an answer ends this purchase's key: a refusal before the card, a
|
|
18
|
+
* decline, or a 409 that the account already pays (a sale in progress keeps it).
|
|
19
|
+
*/
|
|
20
|
+
export declare const uncharged: (status: number | undefined, message?: string) => boolean;
|
|
21
|
+
//# sourceMappingURL=attempt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attempt.d.ts","sourceRoot":"","sources":["../../src/onboarding/attempt.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAiBH,+CAA+C;AAC/C,eAAO,MAAM,QAAQ,QAAS,MAAM,GAAG,SAAS,QAAQ,MAAM,YAAY,MAAM,SAAS,MAAM,KAAG,MAA8D,CAAA;AAEhK,mEAAmE;AACnE,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,SAAa,GAAG,MAAM,CAW7D;AAED,uFAAuF;AACvF,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAMzC;AAED;;;GAGG;AACH,eAAO,MAAM,SAAS,WAAY,MAAM,GAAG,SAAS,uBAAiB,OACsD,CAAA"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The retry key of one purchase: the organization, the plan, the term and the
|
|
3
|
+
* seats. It is kept in the browser until commerce settles the purchase, so a
|
|
4
|
+
* retry after a lost answer, a remount, or a second tab asks for the same sale
|
|
5
|
+
* and commerce replays it instead of charging again
|
|
6
|
+
* (POST /v1/billing/subscribe/card, X-Idempotency-Key). A new key is taken once
|
|
7
|
+
* commerce has answered that nothing was charged, and after a day: commerce keeps
|
|
8
|
+
* a settled sale's answer, so a key kept longer would replay yesterday's sale.
|
|
9
|
+
*/
|
|
10
|
+
const PREFIX = 'hanzo.checkout:';
|
|
11
|
+
/** How long a key is kept: a retry comes within minutes, a new purchase days later. */
|
|
12
|
+
const DAY = 24 * 60 * 60 * 1000;
|
|
13
|
+
const random = () => (typeof crypto !== 'undefined' && 'randomUUID' in crypto ? crypto.randomUUID() : `${Date.now()}-${Math.random()}`);
|
|
14
|
+
const store = () => {
|
|
15
|
+
try {
|
|
16
|
+
return typeof window === 'undefined' ? null : window.localStorage;
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
/** The name a purchase's key is kept under. */
|
|
23
|
+
export const purchase = (org, plan, interval, seats) => `${PREFIX}${org ?? ''}:${plan}:${interval}:${seats}`;
|
|
24
|
+
/** The key for this purchase: the one kept, or a new one, kept. */
|
|
25
|
+
export function keyFor(name, now = Date.now()) {
|
|
26
|
+
const s = store();
|
|
27
|
+
try {
|
|
28
|
+
const [key, at] = (s?.getItem(name) ?? '').split('@');
|
|
29
|
+
if (key && now - Number(at) < DAY)
|
|
30
|
+
return key;
|
|
31
|
+
const fresh = random();
|
|
32
|
+
s?.setItem(name, `${fresh}@${now}`);
|
|
33
|
+
return fresh;
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
return random();
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/** Forget the key: the sale settled, or commerce answered that nothing was charged. */
|
|
40
|
+
export function settle(name) {
|
|
41
|
+
try {
|
|
42
|
+
store()?.removeItem(name);
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
/* nothing kept */
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Whether an answer ends this purchase's key: a refusal before the card, a
|
|
50
|
+
* decline, or a 409 that the account already pays (a sale in progress keeps it).
|
|
51
|
+
*/
|
|
52
|
+
export const uncharged = (status, message = '') => status === 400 || status === 402 || status === 404 || status === 422 || (status === 409 && /already pays/i.test(message));
|
|
53
|
+
//# sourceMappingURL=attempt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attempt.js","sourceRoot":"","sources":["../../src/onboarding/attempt.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,MAAM,GAAG,iBAAiB,CAAA;AAEhC,uFAAuF;AACvF,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;AAE/B,MAAM,MAAM,GAAG,GAAW,EAAE,CAAC,CAAC,OAAO,MAAM,KAAK,WAAW,IAAI,YAAY,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;AAE/I,MAAM,KAAK,GAAG,GAAmB,EAAE;IACjC,IAAI,CAAC;QACH,OAAO,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAA;IACnE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC,CAAA;AAED,+CAA+C;AAC/C,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAuB,EAAE,IAAY,EAAE,QAAgB,EAAE,KAAa,EAAU,EAAE,CAAC,GAAG,MAAM,GAAG,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,QAAQ,IAAI,KAAK,EAAE,CAAA;AAEhK,mEAAmE;AACnE,MAAM,UAAU,MAAM,CAAC,IAAY,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;IACnD,MAAM,CAAC,GAAG,KAAK,EAAE,CAAA;IACjB,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACrD,IAAI,GAAG,IAAI,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC,GAAG,GAAG;YAAE,OAAO,GAAG,CAAA;QAC7C,MAAM,KAAK,GAAG,MAAM,EAAE,CAAA;QACtB,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,GAAG,EAAE,CAAC,CAAA;QACnC,OAAO,KAAK,CAAA;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,EAAE,CAAA;IACjB,CAAC;AACH,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,MAAM,CAAC,IAAY;IACjC,IAAI,CAAC;QACH,KAAK,EAAE,EAAE,UAAU,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,kBAAkB;IACpB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,MAA0B,EAAE,OAAO,GAAG,EAAE,EAAW,EAAE,CAC7E,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA"}
|
package/dist/product/index.cjs
CHANGED
|
@@ -147,6 +147,7 @@ __exportStar(require("./PageHeader.cjs"), exports);
|
|
|
147
147
|
__exportStar(require("./Palette.cjs"), exports);
|
|
148
148
|
__exportStar(require("./match.cjs"), exports);
|
|
149
149
|
__exportStar(require("./useCommandK.cjs"), exports);
|
|
150
|
+
__exportStar(require("./useFileDrop.cjs"), exports);
|
|
150
151
|
__exportStar(require("./PrimaryButton.cjs"), exports);
|
|
151
152
|
__exportStar(require("./ProductIcon.cjs"), exports);
|
|
152
153
|
__exportStar(require("./ProviderLogo.cjs"), exports);
|
package/dist/product/index.d.ts
CHANGED
|
@@ -43,6 +43,7 @@ export * from './PageHeader.js';
|
|
|
43
43
|
export * from './Palette.js';
|
|
44
44
|
export * from './match.js';
|
|
45
45
|
export * from './useCommandK.js';
|
|
46
|
+
export * from './useFileDrop.js';
|
|
46
47
|
export * from './PrimaryButton.js';
|
|
47
48
|
export * from './ProductIcon.js';
|
|
48
49
|
export * from './ProviderLogo.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/product/index.ts"],"names":[],"mappings":"AAaA,cAAc,UAAU,CAAA;AAKxB,OAAO,EACL,MAAM,EACN,aAAa,EACb,SAAS,EACT,SAAS,IAAI,eAAe,EAC5B,QAAQ,EACR,OAAO,EACP,SAAS,EACT,UAAU,EACV,UAAU,EACV,KAAK,GACN,MAAM,UAAU,CAAA;AAGjB,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,KAAK,YAAY,EAAE,MAAM,SAAS,CAAA;AAK/D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,cAAc,mBAAmB,CAAA;AAKjC,OAAO,EACL,UAAU,EACV,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,eAAe,GACrB,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,KAAK,EACL,KAAK,EACL,GAAG,EACH,MAAM,EACN,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,IAAI,GACV,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,UAAU,EACV,UAAU,EACV,OAAO,EACP,UAAU,EACV,KAAK,IAAI,EACT,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,eAAe,GACrB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,KAAK,MAAM,EAAE,KAAK,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAS/G,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA;AAKvB,cAAc,QAAQ,CAAA;AAKtB,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAK5B,cAAc,QAAQ,CAAA;AACtB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA;AAOzB,cAAc,cAAc,CAAA;AAK5B,cAAc,YAAY,CAAA;AAO1B,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAI7B,cAAc,cAAc,CAAA;AAG5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AAGvB,cAAc,QAAQ,CAAA;AACtB,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAM5B,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAG3B,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA;AACtB,cAAc,eAAe,CAAA;AAM7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAK/B,cAAc,cAAc,CAAA;AAc5B,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AASvB,cAAc,UAAU,CAAA;AAKxB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,aAAa,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/product/index.ts"],"names":[],"mappings":"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"}
|
package/dist/product/index.js
CHANGED
|
@@ -103,6 +103,7 @@ export * from './PageHeader.js';
|
|
|
103
103
|
export * from './Palette.js';
|
|
104
104
|
export * from './match.js';
|
|
105
105
|
export * from './useCommandK.js';
|
|
106
|
+
export * from './useFileDrop.js';
|
|
106
107
|
export * from './PrimaryButton.js';
|
|
107
108
|
export * from './ProductIcon.js';
|
|
108
109
|
export * from './ProviderLogo.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/product/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/product/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
'use client';"use strict";
|
|
2
|
+
'use client';
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.useFileDrop = useFileDrop;
|
|
5
|
+
/**
|
|
6
|
+
* useFileDrop — the ONE window-level file drop.
|
|
7
|
+
*
|
|
8
|
+
* Files dropped anywhere in the window attach, not only on the composer box.
|
|
9
|
+
* The listener lives on `window`, filters for a real file drag (a
|
|
10
|
+
* `dataTransfer` that carries `Files` — a text selection or an in-page drag
|
|
11
|
+
* must not light the overlay), and hands the dropped files to `onFiles`.
|
|
12
|
+
* `active` is true while a file is over the window so a surface can light its
|
|
13
|
+
* own full-window overlay.
|
|
14
|
+
*
|
|
15
|
+
* The enter/leave depth counter is the whole reason this is a hook and not a
|
|
16
|
+
* bare `onDrop`: `dragleave` fires as the pointer crosses every child element,
|
|
17
|
+
* so a naive listener blanks the overlay mid-drag and it flickers. Counting
|
|
18
|
+
* enters against leaves keeps `active` true until the cursor actually leaves the
|
|
19
|
+
* window.
|
|
20
|
+
*
|
|
21
|
+
* Web-only. Native (expo) and desktop hosts have no HTML5 `dataTransfer` drop,
|
|
22
|
+
* so the effect no-ops where the events do not exist. One hook so the site and
|
|
23
|
+
* the chat client behave identically instead of each carrying its own listener
|
|
24
|
+
* that drifts — the same reason `useCommandK` exists.
|
|
25
|
+
*
|
|
26
|
+
* `enabled` gates the listeners for a shared surface that only wants the drop
|
|
27
|
+
* when its host can actually handle a file: a hook cannot be called
|
|
28
|
+
* conditionally, so a surface with no `onFiles` passes `enabled: false` and the
|
|
29
|
+
* window stays untouched rather than swallowing drops into a void.
|
|
30
|
+
*/
|
|
31
|
+
const react_1 = require("react");
|
|
32
|
+
function carriesFiles(e) {
|
|
33
|
+
const types = e.dataTransfer?.types;
|
|
34
|
+
if (!types)
|
|
35
|
+
return false;
|
|
36
|
+
// `types` is a readonly string[] in the DOM lib but a live list at runtime.
|
|
37
|
+
return Array.prototype.indexOf.call(types, 'Files') !== -1;
|
|
38
|
+
}
|
|
39
|
+
function useFileDrop(onFiles, enabled = true) {
|
|
40
|
+
const [active, setActive] = (0, react_1.useState)(false);
|
|
41
|
+
const depth = (0, react_1.useRef)(0);
|
|
42
|
+
const cb = (0, react_1.useRef)(onFiles);
|
|
43
|
+
cb.current = onFiles;
|
|
44
|
+
(0, react_1.useEffect)(() => {
|
|
45
|
+
if (!enabled || typeof window === 'undefined')
|
|
46
|
+
return;
|
|
47
|
+
const onDragEnter = (e) => {
|
|
48
|
+
if (!carriesFiles(e))
|
|
49
|
+
return;
|
|
50
|
+
e.preventDefault();
|
|
51
|
+
depth.current += 1;
|
|
52
|
+
setActive(true);
|
|
53
|
+
};
|
|
54
|
+
const onDragOver = (e) => {
|
|
55
|
+
if (!carriesFiles(e))
|
|
56
|
+
return;
|
|
57
|
+
e.preventDefault();
|
|
58
|
+
if (e.dataTransfer)
|
|
59
|
+
e.dataTransfer.dropEffect = 'copy';
|
|
60
|
+
};
|
|
61
|
+
const onDragLeave = (e) => {
|
|
62
|
+
if (!carriesFiles(e))
|
|
63
|
+
return;
|
|
64
|
+
depth.current = Math.max(0, depth.current - 1);
|
|
65
|
+
if (depth.current === 0)
|
|
66
|
+
setActive(false);
|
|
67
|
+
};
|
|
68
|
+
const onDrop = (e) => {
|
|
69
|
+
if (!carriesFiles(e))
|
|
70
|
+
return;
|
|
71
|
+
e.preventDefault();
|
|
72
|
+
depth.current = 0;
|
|
73
|
+
setActive(false);
|
|
74
|
+
const files = e.dataTransfer?.files;
|
|
75
|
+
if (files && files.length)
|
|
76
|
+
cb.current(Array.from(files));
|
|
77
|
+
};
|
|
78
|
+
window.addEventListener('dragenter', onDragEnter);
|
|
79
|
+
window.addEventListener('dragover', onDragOver);
|
|
80
|
+
window.addEventListener('dragleave', onDragLeave);
|
|
81
|
+
window.addEventListener('drop', onDrop);
|
|
82
|
+
return () => {
|
|
83
|
+
window.removeEventListener('dragenter', onDragEnter);
|
|
84
|
+
window.removeEventListener('dragover', onDragOver);
|
|
85
|
+
window.removeEventListener('dragleave', onDragLeave);
|
|
86
|
+
window.removeEventListener('drop', onDrop);
|
|
87
|
+
};
|
|
88
|
+
}, [enabled]);
|
|
89
|
+
return { active };
|
|
90
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFileDrop.d.ts","sourceRoot":"","sources":["../../src/product/useFileDrop.ts"],"names":[],"mappings":"AA8BA,MAAM,WAAW,QAAQ;IACvB,iDAAiD;IACjD,MAAM,EAAE,OAAO,CAAA;CAChB;AASD,wBAAgB,WAAW,CACzB,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,EAChC,OAAO,UAAO,GACb,QAAQ,CA+CV"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
/**
|
|
3
|
+
* useFileDrop — the ONE window-level file drop.
|
|
4
|
+
*
|
|
5
|
+
* Files dropped anywhere in the window attach, not only on the composer box.
|
|
6
|
+
* The listener lives on `window`, filters for a real file drag (a
|
|
7
|
+
* `dataTransfer` that carries `Files` — a text selection or an in-page drag
|
|
8
|
+
* must not light the overlay), and hands the dropped files to `onFiles`.
|
|
9
|
+
* `active` is true while a file is over the window so a surface can light its
|
|
10
|
+
* own full-window overlay.
|
|
11
|
+
*
|
|
12
|
+
* The enter/leave depth counter is the whole reason this is a hook and not a
|
|
13
|
+
* bare `onDrop`: `dragleave` fires as the pointer crosses every child element,
|
|
14
|
+
* so a naive listener blanks the overlay mid-drag and it flickers. Counting
|
|
15
|
+
* enters against leaves keeps `active` true until the cursor actually leaves the
|
|
16
|
+
* window.
|
|
17
|
+
*
|
|
18
|
+
* Web-only. Native (expo) and desktop hosts have no HTML5 `dataTransfer` drop,
|
|
19
|
+
* so the effect no-ops where the events do not exist. One hook so the site and
|
|
20
|
+
* the chat client behave identically instead of each carrying its own listener
|
|
21
|
+
* that drifts — the same reason `useCommandK` exists.
|
|
22
|
+
*
|
|
23
|
+
* `enabled` gates the listeners for a shared surface that only wants the drop
|
|
24
|
+
* when its host can actually handle a file: a hook cannot be called
|
|
25
|
+
* conditionally, so a surface with no `onFiles` passes `enabled: false` and the
|
|
26
|
+
* window stays untouched rather than swallowing drops into a void.
|
|
27
|
+
*/
|
|
28
|
+
import { useEffect, useRef, useState } from 'react';
|
|
29
|
+
function carriesFiles(e) {
|
|
30
|
+
const types = e.dataTransfer?.types;
|
|
31
|
+
if (!types)
|
|
32
|
+
return false;
|
|
33
|
+
// `types` is a readonly string[] in the DOM lib but a live list at runtime.
|
|
34
|
+
return Array.prototype.indexOf.call(types, 'Files') !== -1;
|
|
35
|
+
}
|
|
36
|
+
export function useFileDrop(onFiles, enabled = true) {
|
|
37
|
+
const [active, setActive] = useState(false);
|
|
38
|
+
const depth = useRef(0);
|
|
39
|
+
const cb = useRef(onFiles);
|
|
40
|
+
cb.current = onFiles;
|
|
41
|
+
useEffect(() => {
|
|
42
|
+
if (!enabled || typeof window === 'undefined')
|
|
43
|
+
return;
|
|
44
|
+
const onDragEnter = (e) => {
|
|
45
|
+
if (!carriesFiles(e))
|
|
46
|
+
return;
|
|
47
|
+
e.preventDefault();
|
|
48
|
+
depth.current += 1;
|
|
49
|
+
setActive(true);
|
|
50
|
+
};
|
|
51
|
+
const onDragOver = (e) => {
|
|
52
|
+
if (!carriesFiles(e))
|
|
53
|
+
return;
|
|
54
|
+
e.preventDefault();
|
|
55
|
+
if (e.dataTransfer)
|
|
56
|
+
e.dataTransfer.dropEffect = 'copy';
|
|
57
|
+
};
|
|
58
|
+
const onDragLeave = (e) => {
|
|
59
|
+
if (!carriesFiles(e))
|
|
60
|
+
return;
|
|
61
|
+
depth.current = Math.max(0, depth.current - 1);
|
|
62
|
+
if (depth.current === 0)
|
|
63
|
+
setActive(false);
|
|
64
|
+
};
|
|
65
|
+
const onDrop = (e) => {
|
|
66
|
+
if (!carriesFiles(e))
|
|
67
|
+
return;
|
|
68
|
+
e.preventDefault();
|
|
69
|
+
depth.current = 0;
|
|
70
|
+
setActive(false);
|
|
71
|
+
const files = e.dataTransfer?.files;
|
|
72
|
+
if (files && files.length)
|
|
73
|
+
cb.current(Array.from(files));
|
|
74
|
+
};
|
|
75
|
+
window.addEventListener('dragenter', onDragEnter);
|
|
76
|
+
window.addEventListener('dragover', onDragOver);
|
|
77
|
+
window.addEventListener('dragleave', onDragLeave);
|
|
78
|
+
window.addEventListener('drop', onDrop);
|
|
79
|
+
return () => {
|
|
80
|
+
window.removeEventListener('dragenter', onDragEnter);
|
|
81
|
+
window.removeEventListener('dragover', onDragOver);
|
|
82
|
+
window.removeEventListener('dragleave', onDragLeave);
|
|
83
|
+
window.removeEventListener('drop', onDrop);
|
|
84
|
+
};
|
|
85
|
+
}, [enabled]);
|
|
86
|
+
return { active };
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=useFileDrop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFileDrop.js","sourceRoot":"","sources":["../../src/product/useFileDrop.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hanzo/ui",
|
|
3
|
-
"version": "8.27.
|
|
3
|
+
"version": "8.27.43",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Hanzo UI — the one canonical Hanzo component library, on @hanzo/gui + @hanzo/design. ONE substrate: every component renders through @hanzo/gui primitives, so the same import works on web, native (expo) and desktop (Tauri). Self-contained (theme.css), presentational, host-agnostic, clean-room.",
|
|
6
6
|
"exports": {
|
|
@@ -377,7 +377,7 @@
|
|
|
377
377
|
},
|
|
378
378
|
"devDependencies": {
|
|
379
379
|
"@hanzo/cd": "0.1.2",
|
|
380
|
-
"@hanzo/event": "0.3.
|
|
380
|
+
"@hanzo/event": "0.3.55",
|
|
381
381
|
"@hanzo/dashboard": "0.2.0",
|
|
382
382
|
"@hanzo/data": "1.2.4",
|
|
383
383
|
"@hanzo/gui": "8.3.5",
|