@entropy-softworks/ui 2026.8.38 → 2026.8.39
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/CHANGELOG.md +14 -0
- package/lib/components/social-connections.d.ts +17 -1
- package/lib/components/social-connections.d.ts.map +1 -1
- package/lib/components/social-connections.jsx +9 -9
- package/lib/components/social-connections.jsx.map +1 -1
- package/package.json +1 -1
- package/src/components/social-connections.tsx +42 -23
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,20 @@ are CalVer — `YYYY.M.D` of the publish date, with leading zeros dropped (npm's
|
|
|
7
7
|
them), matching the `entropy-auth` crate. The `0.1.0` entry below predates the switch and was never
|
|
8
8
|
published to npm.
|
|
9
9
|
|
|
10
|
+
## 2026.8.39
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- `SocialConnections` takes `showEntropy` (default `true`), which drops the
|
|
15
|
+
first-party "Continue with Entropy" button from the row. Unlike the other
|
|
16
|
+
three, that one is not a staged-rollout placeholder waiting for its
|
|
17
|
+
connector: on Entropy Access's own sign-in surfaces it offers to sign in to
|
|
18
|
+
the identity provider with the identity provider, which is a button that can
|
|
19
|
+
never mean anything. A flag rather than inferring intent from a missing
|
|
20
|
+
`onEntropy`, because rendering an unhandled provider is deliberate here —
|
|
21
|
+
simple-finance renders the whole row with no handlers at all, and inference
|
|
22
|
+
would silently take that button away from it.
|
|
23
|
+
|
|
10
24
|
## 2026.8.35
|
|
11
25
|
|
|
12
26
|
### Fixed
|
|
@@ -11,6 +11,22 @@ export interface SocialConnectionsProps {
|
|
|
11
11
|
* that configuration lands, while this one needs nothing but the IdP itself.
|
|
12
12
|
*/
|
|
13
13
|
onEntropy?: () => void;
|
|
14
|
+
/**
|
|
15
|
+
* Whether to offer "Continue with Entropy" at all. Defaults to `true`.
|
|
16
|
+
*
|
|
17
|
+
* Unlike the other three, this one is not a staged-rollout item that can sit
|
|
18
|
+
* there unhandled until its connector lands. It either applies — the consumer
|
|
19
|
+
* is a relying party — or it is nonsense, which is the case on Entropy
|
|
20
|
+
* Access's own sign-in surfaces: offering to sign in to the identity provider
|
|
21
|
+
* with the identity provider is a button that can never mean anything.
|
|
22
|
+
*
|
|
23
|
+
* A flag rather than "render only when `onEntropy` is supplied", because
|
|
24
|
+
* rendering an unhandled provider is deliberate here — see the note on the
|
|
25
|
+
* component — and simple-finance renders the whole row with no handlers at
|
|
26
|
+
* all. Inferring intent from a missing handler would silently take that
|
|
27
|
+
* button away from consumers that want the placeholder.
|
|
28
|
+
*/
|
|
29
|
+
showEntropy?: boolean;
|
|
14
30
|
}
|
|
15
31
|
/**
|
|
16
32
|
* Button row for federated sign-in: Entropy / Apple / Google / Microsoft.
|
|
@@ -27,6 +43,6 @@ export interface SocialConnectionsProps {
|
|
|
27
43
|
* reader announces. Without the tooltip these are four unlabelled squares, and
|
|
28
44
|
* a user has to guess which mark is which.
|
|
29
45
|
*/
|
|
30
|
-
export declare function SocialConnections({ onApple, onGoogle, onMicrosoft, onEntropy, }: SocialConnectionsProps): React.JSX.Element;
|
|
46
|
+
export declare function SocialConnections({ onApple, onGoogle, onMicrosoft, onEntropy, showEntropy, }: SocialConnectionsProps): React.JSX.Element;
|
|
31
47
|
export default SocialConnections;
|
|
32
48
|
//# sourceMappingURL=social-connections.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"social-connections.d.ts","sourceRoot":"","sources":["../../src/components/social-connections.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"social-connections.d.ts","sourceRoot":"","sources":["../../src/components/social-connections.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB;;;;;;;;;;;;;;OAcG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAqBD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,OAAO,EACP,QAAQ,EACR,WAAW,EACX,SAAS,EACT,WAAkB,GACnB,EAAE,sBAAsB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAwC5C;AAED,eAAe,iBAAiB,CAAC"}
|
|
@@ -28,7 +28,7 @@ const PROVIDERS = [
|
|
|
28
28
|
* reader announces. Without the tooltip these are four unlabelled squares, and
|
|
29
29
|
* a user has to guess which mark is which.
|
|
30
30
|
*/
|
|
31
|
-
export function SocialConnections({ onApple, onGoogle, onMicrosoft, onEntropy, }) {
|
|
31
|
+
export function SocialConnections({ onApple, onGoogle, onMicrosoft, onEntropy, showEntropy = true, }) {
|
|
32
32
|
const { colorScheme } = useColorScheme();
|
|
33
33
|
const isDark = colorScheme === "dark";
|
|
34
34
|
const handlers = {
|
|
@@ -38,19 +38,19 @@ export function SocialConnections({ onApple, onGoogle, onMicrosoft, onEntropy, }
|
|
|
38
38
|
microsoft: onMicrosoft,
|
|
39
39
|
};
|
|
40
40
|
return (<View className="w-full flex-row items-center justify-center gap-3">
|
|
41
|
-
{PROVIDERS.map(({ key, icon, label }) => (<Tooltip key={key} delayDuration={200}>
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
41
|
+
{PROVIDERS.filter(({ key }) => key !== "entropy" || showEntropy).map(({ key, icon, label }) => (<Tooltip key={key} delayDuration={200}>
|
|
42
|
+
<TooltipTrigger asChild>
|
|
43
|
+
<Pressable onPress={handlers[key]} className="h-12 w-12 items-center justify-center rounded-lg border border-border dark:border-neutral-600 active:opacity-70" accessibilityRole="button" accessibilityLabel={`Continue with ${label}`}>
|
|
44
|
+
{icon ? (<Ionicons name={icon} size={22} color={isDark ? "#FFFFFF" : "#000000"}/>) : (
|
|
45
45
|
// driftScale 0 collapses the echo offsets onto the mark. The
|
|
46
46
|
// drift is a boot-animation effect and at 18px it just reads as
|
|
47
47
|
// a smear, which next to three crisp brand glyphs looks like a
|
|
48
48
|
// rendering fault rather than a logo.
|
|
49
49
|
<EntropyMark size={20} driftScale={0}/>)}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
50
|
+
</Pressable>
|
|
51
|
+
</TooltipTrigger>
|
|
52
|
+
<TooltipContent>{`Continue with ${label}`}</TooltipContent>
|
|
53
|
+
</Tooltip>))}
|
|
54
54
|
</View>);
|
|
55
55
|
}
|
|
56
56
|
export default SocialConnections;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"social-connections.jsx","sourceRoot":"","sources":["../../src/components/social-connections.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"social-connections.jsx","sourceRoot":"","sources":["../../src/components/social-connections.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAyCpE,MAAM,SAAS,GAAwB;IACrC,0EAA0E;IAC1E,yEAAyE;IACzE,sDAAsD;IACtD,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE;IAChD,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE;IACpD,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE;IACvD,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE;CACjE,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAChC,OAAO,EACP,QAAQ,EACR,WAAW,EACX,SAAS,EACT,WAAW,GAAG,IAAI,GACK;IACvB,MAAM,EAAE,WAAW,EAAE,GAAG,cAAc,EAAE,CAAC;IACzC,MAAM,MAAM,GAAG,WAAW,KAAK,MAAM,CAAC;IAEtC,MAAM,QAAQ,GAAkD;QAC9D,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,QAAQ;QAChB,SAAS,EAAE,WAAW;KACvB,CAAC;IAEF,OAAO,CACL,CAAC,IAAI,CAAC,SAAS,CAAC,mDAAmD,CACjE;MAAA,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,KAAK,SAAS,IAAI,WAAW,CAAC,CAAC,GAAG,CAClE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CACxB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CACpC;YAAA,CAAC,cAAc,CAAC,OAAO,CACrB;cAAA,CAAC,SAAS,CACR,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CACvB,SAAS,CAAC,iHAAiH,CAC3H,iBAAiB,CAAC,QAAQ,CAC1B,kBAAkB,CAAC,CAAC,iBAAiB,KAAK,EAAE,CAAC,CAE7C;gBAAA,CAAC,IAAI,CAAC,CAAC,CAAC,CACN,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,EAAG,CAC1E,CAAC,CAAC,CAAC;YACF,6DAA6D;YAC7D,gEAAgE;YAChE,+DAA+D;YAC/D,sCAAsC;YACtC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAG,CACzC,CACH;cAAA,EAAE,SAAS,CACb;YAAA,EAAE,cAAc,CAChB;YAAA,CAAC,cAAc,CAAC,CAAC,iBAAiB,KAAK,EAAE,CAAC,EAAE,cAAc,CAC5D;UAAA,EAAE,OAAO,CAAC,CACX,CACF,CACH;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC;AAED,eAAe,iBAAiB,CAAC"}
|
package/package.json
CHANGED
|
@@ -17,6 +17,22 @@ export interface SocialConnectionsProps {
|
|
|
17
17
|
* that configuration lands, while this one needs nothing but the IdP itself.
|
|
18
18
|
*/
|
|
19
19
|
onEntropy?: () => void;
|
|
20
|
+
/**
|
|
21
|
+
* Whether to offer "Continue with Entropy" at all. Defaults to `true`.
|
|
22
|
+
*
|
|
23
|
+
* Unlike the other three, this one is not a staged-rollout item that can sit
|
|
24
|
+
* there unhandled until its connector lands. It either applies — the consumer
|
|
25
|
+
* is a relying party — or it is nonsense, which is the case on Entropy
|
|
26
|
+
* Access's own sign-in surfaces: offering to sign in to the identity provider
|
|
27
|
+
* with the identity provider is a button that can never mean anything.
|
|
28
|
+
*
|
|
29
|
+
* A flag rather than "render only when `onEntropy` is supplied", because
|
|
30
|
+
* rendering an unhandled provider is deliberate here — see the note on the
|
|
31
|
+
* component — and simple-finance renders the whole row with no handlers at
|
|
32
|
+
* all. Inferring intent from a missing handler would silently take that
|
|
33
|
+
* button away from consumers that want the placeholder.
|
|
34
|
+
*/
|
|
35
|
+
showEntropy?: boolean;
|
|
20
36
|
}
|
|
21
37
|
|
|
22
38
|
type ProviderKey = "entropy" | "apple" | "google" | "microsoft";
|
|
@@ -58,6 +74,7 @@ export function SocialConnections({
|
|
|
58
74
|
onGoogle,
|
|
59
75
|
onMicrosoft,
|
|
60
76
|
onEntropy,
|
|
77
|
+
showEntropy = true,
|
|
61
78
|
}: SocialConnectionsProps): React.JSX.Element {
|
|
62
79
|
const { colorScheme } = useColorScheme();
|
|
63
80
|
const isDark = colorScheme === "dark";
|
|
@@ -71,29 +88,31 @@ export function SocialConnections({
|
|
|
71
88
|
|
|
72
89
|
return (
|
|
73
90
|
<View className="w-full flex-row items-center justify-center gap-3">
|
|
74
|
-
{PROVIDERS.
|
|
75
|
-
|
|
76
|
-
<
|
|
77
|
-
<
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
91
|
+
{PROVIDERS.filter(({ key }) => key !== "entropy" || showEntropy).map(
|
|
92
|
+
({ key, icon, label }) => (
|
|
93
|
+
<Tooltip key={key} delayDuration={200}>
|
|
94
|
+
<TooltipTrigger asChild>
|
|
95
|
+
<Pressable
|
|
96
|
+
onPress={handlers[key]}
|
|
97
|
+
className="h-12 w-12 items-center justify-center rounded-lg border border-border dark:border-neutral-600 active:opacity-70"
|
|
98
|
+
accessibilityRole="button"
|
|
99
|
+
accessibilityLabel={`Continue with ${label}`}
|
|
100
|
+
>
|
|
101
|
+
{icon ? (
|
|
102
|
+
<Ionicons name={icon} size={22} color={isDark ? "#FFFFFF" : "#000000"} />
|
|
103
|
+
) : (
|
|
104
|
+
// driftScale 0 collapses the echo offsets onto the mark. The
|
|
105
|
+
// drift is a boot-animation effect and at 18px it just reads as
|
|
106
|
+
// a smear, which next to three crisp brand glyphs looks like a
|
|
107
|
+
// rendering fault rather than a logo.
|
|
108
|
+
<EntropyMark size={20} driftScale={0} />
|
|
109
|
+
)}
|
|
110
|
+
</Pressable>
|
|
111
|
+
</TooltipTrigger>
|
|
112
|
+
<TooltipContent>{`Continue with ${label}`}</TooltipContent>
|
|
113
|
+
</Tooltip>
|
|
114
|
+
)
|
|
115
|
+
)}
|
|
97
116
|
</View>
|
|
98
117
|
);
|
|
99
118
|
}
|