@unisim/sdk 0.88.0 → 0.89.0
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/DropRing.d.ts +46 -0
- package/dist/DropRing.d.ts.map +1 -0
- package/dist/DropRing.js +139 -0
- package/dist/DropRing.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/useFileDrop.d.ts +69 -0
- package/dist/useFileDrop.d.ts.map +1 -0
- package/dist/useFileDrop.js +77 -0
- package/dist/useFileDrop.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { type CSSProperties, type ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* The pill ring — a drop target, an idle state and a progress indicator in one
|
|
4
|
+
* circle. Lifted out of Universal Compress so Video and the rest can use it.
|
|
5
|
+
*
|
|
6
|
+
* WHY 25 SEPARATE PILLS AND NOT ONE DASHED CIRCLE
|
|
7
|
+
* -----------------------------------------------
|
|
8
|
+
* One `<circle>` per pill, each with a dash pattern of "one 10-unit dash then a
|
|
9
|
+
* gap longer than the whole circumference", so exactly one dash is ever
|
|
10
|
+
* visible, positioned by its own `strokeDashoffset`. The geometry is identical
|
|
11
|
+
* to `strokeDasharray="10 12"` — same arc length, same spacing, same round caps
|
|
12
|
+
* — but every pill is now a separate element with its own colour and its own
|
|
13
|
+
* animation delay. 25 × 22.1 ≈ the circumference, which is what closes the ring
|
|
14
|
+
* cleanly; a count that does not divide evenly leaves a visible seam.
|
|
15
|
+
*
|
|
16
|
+
* TWO MOTIONS, BECAUSE THEY SAY TWO DIFFERENT THINGS
|
|
17
|
+
* ---------------------------------------------------
|
|
18
|
+
* • `idle` — scattered delays: a slow twinkle with no direction to follow.
|
|
19
|
+
* It says the target is alive and waiting.
|
|
20
|
+
* • `busy` — index-ordered delays: a lit group travels round. It says work is
|
|
21
|
+
* happening, which is only honest while it is.
|
|
22
|
+
* • `still` — a plain track. Files queued, nothing running; neither sentence
|
|
23
|
+
* applies, so the ring says nothing.
|
|
24
|
+
*
|
|
25
|
+
* ⚠️ `busy` was tried on the empty state first and was wrong: a page that
|
|
26
|
+
* greets you with a spinner looks like a page that has not finished loading.
|
|
27
|
+
*/
|
|
28
|
+
export interface DropRingProps {
|
|
29
|
+
/** The solid progress arc, 0–1. Omit or 0 for none. */
|
|
30
|
+
fill?: number;
|
|
31
|
+
motion?: 'idle' | 'busy' | 'still';
|
|
32
|
+
/** Highlight state — drive it from `useFileDrop`'s `over`. */
|
|
33
|
+
over?: boolean;
|
|
34
|
+
/** Any CSS length. The ring is always square. */
|
|
35
|
+
size?: number | string;
|
|
36
|
+
/** The centre. Pointer events are off so it never eats a drop. */
|
|
37
|
+
children?: ReactNode;
|
|
38
|
+
/** Ring and progress-arc colour. Defaults to the UNI·SIM orange. */
|
|
39
|
+
accent?: string;
|
|
40
|
+
/** The resting pill colour. */
|
|
41
|
+
track?: string;
|
|
42
|
+
className?: string;
|
|
43
|
+
style?: CSSProperties;
|
|
44
|
+
}
|
|
45
|
+
export declare function DropRing({ fill, motion, over, size, children, accent, track, className, style, }: DropRingProps): import("react/jsx-runtime").JSX.Element;
|
|
46
|
+
//# sourceMappingURL=DropRing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DropRing.d.ts","sourceRoot":"","sources":["../src/DropRing.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAoB,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAE5E;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,WAAW,aAAa;IAC5B,uDAAuD;IACvD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;IAClC,8DAA8D;IAC9D,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,iDAAiD;IACjD,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,aAAa,CAAA;CACtB;AAgFD,wBAAgB,QAAQ,CAAC,EACvB,IAAQ,EACR,MAAe,EACf,IAAY,EACZ,IAAU,EACV,QAAQ,EACR,MAAkB,EAClB,KAAiB,EACjB,SAAS,EACT,KAAK,GACN,EAAE,aAAa,2CA8Hf"}
|
package/dist/DropRing.js
ADDED
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useEffect, useId } from 'react';
|
|
4
|
+
const R = 88;
|
|
5
|
+
const CIRCUMFERENCE = 2 * Math.PI * R;
|
|
6
|
+
const PILLS = 25;
|
|
7
|
+
const PILL_PITCH = CIRCUMFERENCE / PILLS;
|
|
8
|
+
const PILL_DASH = 10;
|
|
9
|
+
/** Idle twinkle: roughly how long a pill waits between glows, before jitter. */
|
|
10
|
+
const GLOW_SECONDS = 2.6;
|
|
11
|
+
/** Busy chase: how long the lit group takes to travel once round. */
|
|
12
|
+
const CHASE_SECONDS = 1.6;
|
|
13
|
+
const STYLE_ID = 'unisim-dropring-css';
|
|
14
|
+
/**
|
|
15
|
+
* The SDK ships no stylesheet and is built with plain `tsc`, so keyframes are
|
|
16
|
+
* injected once per document — the same pattern `SuiteSwitcher` uses for its
|
|
17
|
+
* glyph hover. Consumers get the animation without a Tailwind `@source`
|
|
18
|
+
* directive or a CSS import, which is what makes this drop into any app.
|
|
19
|
+
*
|
|
20
|
+
* ⚠️ The reduced-motion block switches these off OUTRIGHT rather than
|
|
21
|
+
* inheriting a blanket `animation-duration: 0.01ms`. That blanket rule is a
|
|
22
|
+
* common one and it is actively wrong for an INFINITE animation: a 0.01 ms
|
|
23
|
+
* duration restarts it hundreds of times a second, turning a gentle drift into
|
|
24
|
+
* a strobe — worse than the motion it was meant to spare someone.
|
|
25
|
+
*/
|
|
26
|
+
const CSS = `
|
|
27
|
+
@keyframes unisim-dropring-glow {
|
|
28
|
+
0% { stroke: var(--unisim-dropring-track); }
|
|
29
|
+
6% { stroke: var(--unisim-dropring-accent); }
|
|
30
|
+
16% { stroke: var(--unisim-dropring-accent); }
|
|
31
|
+
28% { stroke: var(--unisim-dropring-track); }
|
|
32
|
+
100% { stroke: var(--unisim-dropring-track); }
|
|
33
|
+
}
|
|
34
|
+
.unisim-dropring-pill {
|
|
35
|
+
stroke: var(--unisim-dropring-track);
|
|
36
|
+
animation: unisim-dropring-glow 2.8s linear infinite;
|
|
37
|
+
}
|
|
38
|
+
.unisim-dropring-chase {
|
|
39
|
+
stroke: var(--unisim-dropring-track);
|
|
40
|
+
animation: unisim-dropring-glow ${CHASE_SECONDS}s linear infinite;
|
|
41
|
+
}
|
|
42
|
+
@keyframes unisim-dropring-spin { to { transform: rotate(360deg); } }
|
|
43
|
+
.unisim-dropring-spin {
|
|
44
|
+
transform-origin: 50% 50%;
|
|
45
|
+
transform-box: fill-box;
|
|
46
|
+
animation: unisim-dropring-spin 48s linear infinite;
|
|
47
|
+
}
|
|
48
|
+
@media (prefers-reduced-motion: reduce) {
|
|
49
|
+
.unisim-dropring-pill,
|
|
50
|
+
.unisim-dropring-chase,
|
|
51
|
+
.unisim-dropring-spin { animation: none !important; }
|
|
52
|
+
}
|
|
53
|
+
`;
|
|
54
|
+
function useRingStyles() {
|
|
55
|
+
useEffect(() => {
|
|
56
|
+
if (typeof document === 'undefined')
|
|
57
|
+
return;
|
|
58
|
+
if (document.getElementById(STYLE_ID))
|
|
59
|
+
return;
|
|
60
|
+
const el = document.createElement('style');
|
|
61
|
+
el.id = STYLE_ID;
|
|
62
|
+
el.textContent = CSS;
|
|
63
|
+
document.head.appendChild(el);
|
|
64
|
+
}, []);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* A stable pseudo-random number in 0–1 for pill `i`.
|
|
68
|
+
*
|
|
69
|
+
* Deliberately NOT `Math.random()`. The scatter has to be identical on every
|
|
70
|
+
* render, or React re-rendering — which it does on every drag-over and every
|
|
71
|
+
* progress tick — reshuffles which pills are lit and the ring flinches. It is
|
|
72
|
+
* also what makes the animation reviewable at all: a screenshot of a random
|
|
73
|
+
* ring can only ever be eyeballed.
|
|
74
|
+
*/
|
|
75
|
+
function pillNoise(i) {
|
|
76
|
+
const x = Math.sin(i * 127.1 + 311.7) * 43758.5453;
|
|
77
|
+
return x - Math.floor(x);
|
|
78
|
+
}
|
|
79
|
+
export function DropRing({ fill = 0, motion = 'idle', over = false, size = 300, children, accent = '#FE8C01', track = '#cbd5e1', className, style, }) {
|
|
80
|
+
useRingStyles();
|
|
81
|
+
// Unique per instance. The original hard-coded this id, so two rings on one
|
|
82
|
+
// page would both resolve `url(#ring-grad)` to whichever mounted first —
|
|
83
|
+
// invisible while there is only ever one, and wrong the moment there are two.
|
|
84
|
+
const gradId = `unisim-dropring-grad-${useId().replace(/:/g, '')}`;
|
|
85
|
+
const animated = motion !== 'still';
|
|
86
|
+
const clamped = Math.max(0, Math.min(1, fill));
|
|
87
|
+
return (_jsxs("div", { className: className, style: {
|
|
88
|
+
position: 'relative',
|
|
89
|
+
width: typeof size === 'number' ? `${size}px` : size,
|
|
90
|
+
aspectRatio: '1 / 1',
|
|
91
|
+
...style,
|
|
92
|
+
}, children: [_jsxs("svg", { viewBox: "0 0 200 200", style: {
|
|
93
|
+
width: '100%',
|
|
94
|
+
height: '100%',
|
|
95
|
+
transform: 'rotate(-90deg)',
|
|
96
|
+
// Custom properties, so the injected keyframes above can read the
|
|
97
|
+
// caller's colours without the CSS knowing anything about them.
|
|
98
|
+
['--unisim-dropring-accent']: accent,
|
|
99
|
+
['--unisim-dropring-track']: track,
|
|
100
|
+
}, "aria-hidden": "true", children: [_jsx("defs", { children: _jsxs("linearGradient", { id: gradId, x1: "0", y1: "0", x2: "1", y2: "1", children: [_jsx("stop", { offset: "0%", stopColor: accent }), _jsx("stop", { offset: "100%", stopColor: shade(accent) })] }) }), _jsx("circle", { cx: "100", cy: "100", r: R - 6, fill: over ? '#fff7ed' : '#ffffff' }), animated ? (_jsx("g", { className: "unisim-dropring-spin", children: Array.from({ length: PILLS }, (_, i) => (_jsx("circle", { cx: "100", cy: "100", r: R, fill: "none", strokeWidth: "10", strokeLinecap: "round", strokeDasharray: `${PILL_DASH} ${CIRCUMFERENCE}`, strokeDashoffset: -i * PILL_PITCH, className: over ? undefined : motion === 'busy' ? 'unisim-dropring-chase' : 'unisim-dropring-pill', stroke: over ? accent : undefined, style: over
|
|
101
|
+
? undefined
|
|
102
|
+
: motion === 'busy'
|
|
103
|
+
? // Ordered delay → the lit group travels. Reads as working.
|
|
104
|
+
{ animationDelay: `${(i / PILLS) * CHASE_SECONDS}s` }
|
|
105
|
+
: // Scattered delay AND duration → no direction to follow,
|
|
106
|
+
// and the pattern never quite repeats, so it reads as a
|
|
107
|
+
// twinkle rather than as anything in progress. The spread
|
|
108
|
+
// is narrow on purpose: wider and pills with similar
|
|
109
|
+
// periods drift into phase and the ring pulses in clumps.
|
|
110
|
+
{
|
|
111
|
+
animationDelay: `${pillNoise(i) * GLOW_SECONDS}s`,
|
|
112
|
+
animationDuration: `${2.4 + pillNoise(i + 97) * 1.0}s`,
|
|
113
|
+
} }, i))) })) : (_jsx("circle", { cx: "100", cy: "100", r: R, fill: "none", strokeWidth: "10", strokeLinecap: "round", stroke: over ? accent : track })), clamped > 0 && (_jsx("circle", { cx: "100", cy: "100", r: R, fill: "none", stroke: `url(#${gradId})`, strokeWidth: "10", strokeLinecap: "round", strokeDasharray: CIRCUMFERENCE, strokeDashoffset: CIRCUMFERENCE * (1 - clamped), style: { transition: 'stroke-dashoffset 300ms ease-out' } }))] }), _jsx("div", { style: {
|
|
114
|
+
position: 'absolute',
|
|
115
|
+
inset: 0,
|
|
116
|
+
display: 'flex',
|
|
117
|
+
flexDirection: 'column',
|
|
118
|
+
alignItems: 'center',
|
|
119
|
+
justifyContent: 'center',
|
|
120
|
+
gap: '0.25rem',
|
|
121
|
+
padding: '0 2.5rem',
|
|
122
|
+
textAlign: 'center',
|
|
123
|
+
// Never eat a drop aimed at the ring behind it.
|
|
124
|
+
pointerEvents: 'none',
|
|
125
|
+
}, children: children })] }));
|
|
126
|
+
}
|
|
127
|
+
/** A darker stop for the gradient's far end. Hex in, hex out; anything else passes through. */
|
|
128
|
+
function shade(colour) {
|
|
129
|
+
const m = /^#([0-9a-f]{6})$/i.exec(colour.trim());
|
|
130
|
+
if (!m?.[1])
|
|
131
|
+
return colour;
|
|
132
|
+
const n = parseInt(m[1], 16);
|
|
133
|
+
const mix = (c) => Math.max(0, Math.round(c * 0.78));
|
|
134
|
+
const r = mix((n >> 16) & 255);
|
|
135
|
+
const g = mix((n >> 8) & 255);
|
|
136
|
+
const b = mix(n & 255);
|
|
137
|
+
return `#${((r << 16) | (g << 8) | b).toString(16).padStart(6, '0')}`;
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=DropRing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DropRing.js","sourceRoot":"","sources":["../src/DropRing.tsx"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -61,6 +61,10 @@ export { UniversalNavBar } from './UniversalNavBar.js';
|
|
|
61
61
|
export type { UniversalNavBarProps } from './UniversalNavBar.js';
|
|
62
62
|
export { UniversalAppsNavBar } from './UniversalAppsNavBar.js';
|
|
63
63
|
export type { UniversalAppsNavBarProps } from './UniversalAppsNavBar.js';
|
|
64
|
+
export { useFileDrop } from './useFileDrop.js';
|
|
65
|
+
export type { UseFileDropOptions, FileDrop } from './useFileDrop.js';
|
|
66
|
+
export { DropRing } from './DropRing.js';
|
|
67
|
+
export type { DropRingProps } from './DropRing.js';
|
|
64
68
|
export { useOrgMembers, useOrgSeats, useAuditLog, assignSeat, revokeSeat, reassignSeat, useIsPlatformAdmin, usePlatformAdminOrgs, useEntitlement, createOrganisation, updateSubscription, setProductEnterpriseAccess, setErgoEnterpriseAccess, findUserByEmail, addOrgMember, removeOrgMember, softDeleteOrg, listAccessCodes, createAccessCode, redeemAccessCode, PLATFORM_ADMIN_EMAIL, } from './admin.js';
|
|
65
69
|
export type { UseOrgMembersResult, UseOrgSeatsResult, UseAuditLogOptions, UseIsPlatformAdminResult, UsePlatformAdminOrgsResult, PlatformAdminOrgRow, EntitlementVerdict, CreateOrganisationInput, UpdateSubscriptionInput, AddOrgMemberInput, AccessCode, CreateAccessCodeInput, RedeemAccessCodeResult, } from './admin.js';
|
|
66
70
|
export type { ProductCode, SubTier, OrgRole, SeatStatus, AccessSource, Profile, Organisation, OrgBranding, OrgMember, Subscription, Seat, SeatPool, ChangelogEntry, ChangelogRelease, ChangelogFeed, AuditLogEntry, Person, PersonRole, Team, TeamMembership, Place, PlaceType, Project, ProjectStatus, } from './types.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC5E,YAAY,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAE5E,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAE7E,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,CAAC,IAAI,YAAY,GAClB,MAAM,WAAW,CAAA;AAClB,YAAY,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEzC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACpF,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAE9E,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAClE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAEhD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAE7E,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEnD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAE9C,OAAO,EACL,KAAK,EACL,OAAO,EACP,QAAQ,EACR,WAAW,EACX,UAAU,EACV,YAAY,GACb,MAAM,YAAY,CAAA;AACnB,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAE5C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,YAAY,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAEvD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AACjF,YAAY,EACV,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,cAAc,CAAA;AAErB,OAAO,EACL,SAAS,EACT,QAAQ,EACR,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,UAAU,EACV,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,aAAa,CAAA;AACpB,YAAY,EACV,eAAe,EACf,cAAc,EACd,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,aAAa,CAAA;AAEpB,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACjE,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAEpE,OAAO,EACL,WAAW,EACX,aAAa,EACb,mBAAmB,EACnB,aAAa,GACd,MAAM,eAAe,CAAA;AACtB,YAAY,EACV,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAE3C,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC/D,YAAY,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAEhF,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,aAAa,GACd,MAAM,aAAa,CAAA;AACpB,YAAY,EACV,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,sBAAsB,EACtB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,aAAa,CAAA;AAEpB,OAAO,EACL,iBAAiB,EACjB,0BAA0B,EAC1B,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,eAAe,GAChB,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EACV,WAAW,EACX,iBAAiB,EACjB,SAAS,EACT,SAAS,EACT,eAAe,EACf,sBAAsB,EACtB,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,mBAAmB,CAAA;AAK1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAC1D,YAAY,EACV,kBAAkB,EAClB,0BAA0B,GAC3B,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AACtD,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAE1D,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC3E,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAEhE,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,+BAA+B,EAC/B,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,oBAAoB,CAAA;AAC3B,YAAY,EAAE,kBAAkB,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAEpG,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAE5D,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AACpE,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAExD,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AACjF,YAAY,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAEvF,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAExE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAElE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAExD,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAA;AACnF,YAAY,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAE1F,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAE5E,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAEhE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,YAAY,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAA;AAKxE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,YAAY,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAElD,OAAO,EACL,aAAa,EACb,WAAW,EACX,WAAW,EACX,UAAU,EACV,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,0BAA0B,EAC1B,uBAAuB,EACvB,eAAe,EACf,YAAY,EACZ,eAAe,EACf,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,YAAY,CAAA;AACnB,YAAY,EACV,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,0BAA0B,EAC1B,mBAAmB,EACnB,kBAAkB,EAClB,uBAAuB,EACvB,uBAAuB,EACvB,iBAAiB,EACjB,UAAU,EACV,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,YAAY,CAAA;AAEnB,YAAY,EACV,WAAW,EACX,OAAO,EACP,OAAO,EACP,UAAU,EACV,YAAY,EACZ,OAAO,EACP,YAAY,EACZ,WAAW,EACX,SAAS,EACT,YAAY,EACZ,IAAI,EACJ,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,MAAM,EACN,UAAU,EACV,IAAI,EACJ,cAAc,EACd,KAAK,EACL,SAAS,EACT,OAAO,EACP,aAAa,GACd,MAAM,YAAY,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -43,5 +43,10 @@ export { ProfileAvatarIcon, PROFILE_AVATAR_VARIANTS } from './ProfileAvatarIcon.
|
|
|
43
43
|
export { SignInDialog } from './SignInDialog.js';
|
|
44
44
|
export { UniversalNavBar } from './UniversalNavBar.js';
|
|
45
45
|
export { UniversalAppsNavBar } from './UniversalAppsNavBar.js';
|
|
46
|
+
// Taking a file. The LOOK stays per-app — Compress is a circle, Video a dashed
|
|
47
|
+
// rectangle, and neither should have to change — but the mechanics and the ring
|
|
48
|
+
// were being rewritten per app, and the bugs live in the mechanics.
|
|
49
|
+
export { useFileDrop } from './useFileDrop.js';
|
|
50
|
+
export { DropRing } from './DropRing.js';
|
|
46
51
|
export { useOrgMembers, useOrgSeats, useAuditLog, assignSeat, revokeSeat, reassignSeat, useIsPlatformAdmin, usePlatformAdminOrgs, useEntitlement, createOrganisation, updateSubscription, setProductEnterpriseAccess, setErgoEnterpriseAccess, findUserByEmail, addOrgMember, removeOrgMember, softDeleteOrg, listAccessCodes, createAccessCode, redeemAccessCode, PLATFORM_ADMIN_EMAIL, } from './admin.js';
|
|
47
52
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import type { DragEvent, KeyboardEvent, RefObject } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* The mechanics of a file drop target, with no opinion about how it looks.
|
|
4
|
+
*
|
|
5
|
+
* Every Universal App that takes a file has written this four or five times —
|
|
6
|
+
* Compress as a circle, Video as a dashed rectangle — and each copy got a
|
|
7
|
+
* slightly different subset of it right. The LOOK is genuinely per-app and
|
|
8
|
+
* should stay that way; the mechanics are not, and the bugs live in the
|
|
9
|
+
* mechanics. Two that were live in shipped apps when this was extracted:
|
|
10
|
+
*
|
|
11
|
+
* 1. **Not resetting the input's value after a change.** Pick `clip.mp4`,
|
|
12
|
+
* remove it, pick `clip.mp4` again — no `change` event fires, because the
|
|
13
|
+
* value did not change, and the app looks broken for the one file the user
|
|
14
|
+
* is most likely to re-pick.
|
|
15
|
+
* 2. **`dragleave` firing when the pointer crosses a CHILD element.** The
|
|
16
|
+
* browser fires leave-then-enter as the pointer moves between descendants,
|
|
17
|
+
* so a zone with anything interactive inside it flickers its highlight
|
|
18
|
+
* while a file is held over it. The fix is a depth counter, not a timer.
|
|
19
|
+
*
|
|
20
|
+
* Neither is hard. Both are invisible until somebody tries the exact gesture,
|
|
21
|
+
* which is precisely the sort of thing that should be written once.
|
|
22
|
+
*/
|
|
23
|
+
export interface UseFileDropOptions {
|
|
24
|
+
/** Called with a non-empty list. Never called with zero files. */
|
|
25
|
+
onFiles: (files: File[]) => void | Promise<void>;
|
|
26
|
+
/** Passed straight to the input. Omit to accept anything. */
|
|
27
|
+
accept?: string;
|
|
28
|
+
multiple?: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Make the whole zone behave as a button — click, Enter and Space open the
|
|
31
|
+
* picker, and it takes focus. Turn this OFF when the zone contains its own
|
|
32
|
+
* "choose a file" button or other controls, because a click target wrapping
|
|
33
|
+
* a click target is ambiguous for a mouse and wrong for a screen reader.
|
|
34
|
+
*/
|
|
35
|
+
clickToBrowse?: boolean;
|
|
36
|
+
/** The accessible name for the zone when `clickToBrowse` is on. */
|
|
37
|
+
label?: string;
|
|
38
|
+
disabled?: boolean;
|
|
39
|
+
}
|
|
40
|
+
export interface FileDrop {
|
|
41
|
+
/** True while a drag is over the zone. Drive your own highlight from it. */
|
|
42
|
+
over: boolean;
|
|
43
|
+
/** Open the file picker — wire this to your own button if you have one. */
|
|
44
|
+
open: () => void;
|
|
45
|
+
/** Spread onto the drop target. */
|
|
46
|
+
dropzoneProps: {
|
|
47
|
+
onDragEnter: (e: DragEvent) => void;
|
|
48
|
+
onDragOver: (e: DragEvent) => void;
|
|
49
|
+
onDragLeave: (e: DragEvent) => void;
|
|
50
|
+
onDrop: (e: DragEvent) => void;
|
|
51
|
+
onClick?: () => void;
|
|
52
|
+
onKeyDown?: (e: KeyboardEvent) => void;
|
|
53
|
+
role?: 'button';
|
|
54
|
+
tabIndex?: number;
|
|
55
|
+
'aria-label'?: string;
|
|
56
|
+
};
|
|
57
|
+
/** Spread onto a visually hidden `<input type="file">`. */
|
|
58
|
+
inputProps: {
|
|
59
|
+
ref: RefObject<HTMLInputElement | null>;
|
|
60
|
+
type: 'file';
|
|
61
|
+
accept?: string;
|
|
62
|
+
multiple: boolean;
|
|
63
|
+
onChange: (e: {
|
|
64
|
+
target: HTMLInputElement;
|
|
65
|
+
}) => void;
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
export declare function useFileDrop({ onFiles, accept, multiple, clickToBrowse, label, disabled, }: UseFileDropOptions): FileDrop;
|
|
69
|
+
//# sourceMappingURL=useFileDrop.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFileDrop.d.ts","sourceRoot":"","sources":["../src/useFileDrop.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEhE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,kBAAkB;IACjC,kEAAkE;IAClE,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAChD,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,QAAQ;IACvB,4EAA4E;IAC5E,IAAI,EAAE,OAAO,CAAA;IACb,2EAA2E;IAC3E,IAAI,EAAE,MAAM,IAAI,CAAA;IAChB,mCAAmC;IACnC,aAAa,EAAE;QACb,WAAW,EAAE,CAAC,CAAC,EAAE,SAAS,KAAK,IAAI,CAAA;QACnC,UAAU,EAAE,CAAC,CAAC,EAAE,SAAS,KAAK,IAAI,CAAA;QAClC,WAAW,EAAE,CAAC,CAAC,EAAE,SAAS,KAAK,IAAI,CAAA;QACnC,MAAM,EAAE,CAAC,CAAC,EAAE,SAAS,KAAK,IAAI,CAAA;QAC9B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;QACpB,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,aAAa,KAAK,IAAI,CAAA;QACtC,IAAI,CAAC,EAAE,QAAQ,CAAA;QACf,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,YAAY,CAAC,EAAE,MAAM,CAAA;KACtB,CAAA;IACD,2DAA2D;IAC3D,UAAU,EAAE;QACV,GAAG,EAAE,SAAS,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAA;QACvC,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,QAAQ,EAAE,OAAO,CAAA;QACjB,QAAQ,EAAE,CAAC,CAAC,EAAE;YAAE,MAAM,EAAE,gBAAgB,CAAA;SAAE,KAAK,IAAI,CAAA;KACpD,CAAA;CACF;AAED,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,MAAM,EACN,QAAe,EACf,aAAoB,EACpB,KAA6C,EAC7C,QAAgB,GACjB,EAAE,kBAAkB,GAAG,QAAQ,CA2E/B"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { useCallback, useRef, useState } from 'react';
|
|
3
|
+
export function useFileDrop({ onFiles, accept, multiple = true, clickToBrowse = true, label = 'Drop files here, or click to browse', disabled = false, }) {
|
|
4
|
+
const inputRef = useRef(null);
|
|
5
|
+
const [over, setOver] = useState(false);
|
|
6
|
+
// How many nested elements the drag is currently inside. See the note above:
|
|
7
|
+
// moving between children fires leave on the old one before enter on the new,
|
|
8
|
+
// so a boolean flickers and a counter does not.
|
|
9
|
+
const depth = useRef(0);
|
|
10
|
+
const take = useCallback((files) => {
|
|
11
|
+
const list = Array.from(files ?? []);
|
|
12
|
+
if (list.length > 0)
|
|
13
|
+
void onFiles(list);
|
|
14
|
+
}, [onFiles]);
|
|
15
|
+
const open = useCallback(() => {
|
|
16
|
+
if (!disabled)
|
|
17
|
+
inputRef.current?.click();
|
|
18
|
+
}, [disabled]);
|
|
19
|
+
const reset = () => {
|
|
20
|
+
depth.current = 0;
|
|
21
|
+
setOver(false);
|
|
22
|
+
};
|
|
23
|
+
return {
|
|
24
|
+
over,
|
|
25
|
+
open,
|
|
26
|
+
dropzoneProps: {
|
|
27
|
+
onDragEnter: (e) => {
|
|
28
|
+
e.preventDefault();
|
|
29
|
+
depth.current += 1;
|
|
30
|
+
if (!disabled)
|
|
31
|
+
setOver(true);
|
|
32
|
+
},
|
|
33
|
+
// Called continuously while the drag is inside. preventDefault on BOTH
|
|
34
|
+
// this and enter is what tells the browser a drop is allowed here; miss
|
|
35
|
+
// it and the browser navigates to the file instead.
|
|
36
|
+
onDragOver: (e) => e.preventDefault(),
|
|
37
|
+
onDragLeave: (e) => {
|
|
38
|
+
e.preventDefault();
|
|
39
|
+
depth.current = Math.max(0, depth.current - 1);
|
|
40
|
+
if (depth.current === 0)
|
|
41
|
+
setOver(false);
|
|
42
|
+
},
|
|
43
|
+
onDrop: (e) => {
|
|
44
|
+
e.preventDefault();
|
|
45
|
+
reset();
|
|
46
|
+
if (!disabled)
|
|
47
|
+
take(e.dataTransfer?.files);
|
|
48
|
+
},
|
|
49
|
+
...(clickToBrowse && !disabled
|
|
50
|
+
? {
|
|
51
|
+
onClick: open,
|
|
52
|
+
onKeyDown: (e) => {
|
|
53
|
+
if (e.key === 'Enter' || e.key === ' ') {
|
|
54
|
+
e.preventDefault();
|
|
55
|
+
open();
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
role: 'button',
|
|
59
|
+
tabIndex: 0,
|
|
60
|
+
'aria-label': label,
|
|
61
|
+
}
|
|
62
|
+
: {}),
|
|
63
|
+
},
|
|
64
|
+
inputProps: {
|
|
65
|
+
ref: inputRef,
|
|
66
|
+
type: 'file',
|
|
67
|
+
accept,
|
|
68
|
+
multiple,
|
|
69
|
+
onChange: (e) => {
|
|
70
|
+
take(e.target.files);
|
|
71
|
+
// Reset so re-picking the same file fires `change` again.
|
|
72
|
+
e.target.value = '';
|
|
73
|
+
},
|
|
74
|
+
},
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=useFileDrop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFileDrop.js","sourceRoot":"","sources":["../src/useFileDrop.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED