@unisim/sdk 0.88.0 → 0.89.1

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.
@@ -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"}
@@ -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';
@@ -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":"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"}
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,78 @@
1
+ import type { DragEvent, KeyboardEvent } 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
+ /**
58
+ * Spread onto a visually hidden `<input type="file">`.
59
+ *
60
+ * ⚠️ `ref` is a CALLBACK ref, not a `RefObject`, and that is not a style
61
+ * choice. React 18 types `useRef<T>(null)` as `RefObject<T>` where `current`
62
+ * is non-null, while React 19 types it as `RefObject<T | null>`; the SDK is
63
+ * compiled once against one of them and its `.d.ts` then fails to typecheck
64
+ * in apps on the other. A `RefCallback` has no such variance, so one build
65
+ * satisfies both — and this package supports `react ^18 || ^19`.
66
+ */
67
+ inputProps: {
68
+ ref: (el: HTMLInputElement | null) => void;
69
+ type: 'file';
70
+ accept?: string;
71
+ multiple: boolean;
72
+ onChange: (e: {
73
+ target: HTMLInputElement;
74
+ }) => void;
75
+ };
76
+ }
77
+ export declare function useFileDrop({ onFiles, accept, multiple, clickToBrowse, label, disabled, }: UseFileDropOptions): FileDrop;
78
+ //# 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,MAAM,OAAO,CAAA;AAErD;;;;;;;;;;;;;;;;;;;;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;;;;;;;;;OASG;IACH,UAAU,EAAE;QACV,GAAG,EAAE,CAAC,EAAE,EAAE,gBAAgB,GAAG,IAAI,KAAK,IAAI,CAAA;QAC1C,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,CA8E/B"}
@@ -0,0 +1,80 @@
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 setInputRef = useCallback((el) => {
6
+ inputRef.current = el;
7
+ }, []);
8
+ const [over, setOver] = useState(false);
9
+ // How many nested elements the drag is currently inside. See the note above:
10
+ // moving between children fires leave on the old one before enter on the new,
11
+ // so a boolean flickers and a counter does not.
12
+ const depth = useRef(0);
13
+ const take = useCallback((files) => {
14
+ const list = Array.from(files ?? []);
15
+ if (list.length > 0)
16
+ void onFiles(list);
17
+ }, [onFiles]);
18
+ const open = useCallback(() => {
19
+ if (!disabled)
20
+ inputRef.current?.click();
21
+ }, [disabled]);
22
+ const reset = () => {
23
+ depth.current = 0;
24
+ setOver(false);
25
+ };
26
+ return {
27
+ over,
28
+ open,
29
+ dropzoneProps: {
30
+ onDragEnter: (e) => {
31
+ e.preventDefault();
32
+ depth.current += 1;
33
+ if (!disabled)
34
+ setOver(true);
35
+ },
36
+ // Called continuously while the drag is inside. preventDefault on BOTH
37
+ // this and enter is what tells the browser a drop is allowed here; miss
38
+ // it and the browser navigates to the file instead.
39
+ onDragOver: (e) => e.preventDefault(),
40
+ onDragLeave: (e) => {
41
+ e.preventDefault();
42
+ depth.current = Math.max(0, depth.current - 1);
43
+ if (depth.current === 0)
44
+ setOver(false);
45
+ },
46
+ onDrop: (e) => {
47
+ e.preventDefault();
48
+ reset();
49
+ if (!disabled)
50
+ take(e.dataTransfer?.files);
51
+ },
52
+ ...(clickToBrowse && !disabled
53
+ ? {
54
+ onClick: open,
55
+ onKeyDown: (e) => {
56
+ if (e.key === 'Enter' || e.key === ' ') {
57
+ e.preventDefault();
58
+ open();
59
+ }
60
+ },
61
+ role: 'button',
62
+ tabIndex: 0,
63
+ 'aria-label': label,
64
+ }
65
+ : {}),
66
+ },
67
+ inputProps: {
68
+ ref: setInputRef,
69
+ type: 'file',
70
+ accept,
71
+ multiple,
72
+ onChange: (e) => {
73
+ take(e.target.files);
74
+ // Reset so re-picking the same file fires `change` again.
75
+ e.target.value = '';
76
+ },
77
+ },
78
+ };
79
+ }
80
+ //# 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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unisim/sdk",
3
- "version": "0.88.0",
3
+ "version": "0.89.1",
4
4
  "description": "Shared React SDK for the Universal Suite — auth, entitlements, usage telemetry, changelog, org admin.",
5
5
  "license": "MIT",
6
6
  "author": "Universal Simulation Ltd",