@undefineds.co/xpod 0.4.19 → 0.4.20
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/api/container/common.js +2 -1
- package/dist/api/handlers/AiConfigHandler.js +10 -2
- package/dist/runtime/host/node/NodeRuntimeHost.js +7 -3
- package/dist/runtime/port-finder.d.ts +0 -5
- package/dist/runtime/port-finder.js +24 -12
- package/node_modules/@undefineds.co/extension-sdk/dist/react/solid-auth-boundary.d.ts +20 -2
- package/node_modules/@undefineds.co/extension-sdk/dist/react/solid-auth-boundary.js +142 -125
- package/node_modules/@undefineds.co/shared-ui/dist/focus.d.ts +1 -1
- package/node_modules/@undefineds.co/shared-ui/dist/focus.js +1 -1
- package/node_modules/@undefineds.co/shared-ui/dist/index.d.ts +1 -0
- package/node_modules/@undefineds.co/shared-ui/dist/index.js +1 -0
- package/node_modules/@undefineds.co/shared-ui/dist/login/LoginModal.d.ts +2 -0
- package/node_modules/@undefineds.co/shared-ui/dist/login/LoginModal.js +2 -0
- package/node_modules/@undefineds.co/shared-ui/dist/login/LoginView.d.ts +3 -0
- package/node_modules/@undefineds.co/shared-ui/dist/login/LoginView.js +3 -0
- package/node_modules/@undefineds.co/shared-ui/dist/login.d.ts +15 -0
- package/node_modules/@undefineds.co/shared-ui/dist/login.js +15 -0
- package/node_modules/@undefineds.co/shared-ui/dist/pod-sign-in/AccountSections.d.ts +141 -0
- package/node_modules/@undefineds.co/shared-ui/dist/pod-sign-in/AccountSections.js +67 -0
- package/node_modules/@undefineds.co/shared-ui/dist/pod-sign-in/ConsentView.d.ts +53 -0
- package/node_modules/@undefineds.co/shared-ui/dist/pod-sign-in/ConsentView.js +27 -0
- package/node_modules/@undefineds.co/shared-ui/dist/pod-sign-in/DeviceDialogs.d.ts +40 -0
- package/node_modules/@undefineds.co/shared-ui/dist/pod-sign-in/DeviceDialogs.js +33 -0
- package/node_modules/@undefineds.co/shared-ui/dist/pod-sign-in/IdpChrome.d.ts +15 -0
- package/node_modules/@undefineds.co/shared-ui/dist/pod-sign-in/IdpChrome.js +8 -0
- package/node_modules/@undefineds.co/shared-ui/dist/pod-sign-in/IdpViews.d.ts +93 -0
- package/node_modules/@undefineds.co/shared-ui/dist/pod-sign-in/IdpViews.js +88 -0
- package/node_modules/@undefineds.co/shared-ui/dist/pod-sign-in/NetworkPanel.d.ts +46 -0
- package/node_modules/@undefineds.co/shared-ui/dist/pod-sign-in/NetworkPanel.js +42 -0
- package/node_modules/@undefineds.co/shared-ui/dist/pod-sign-in/PodSignIn.d.ts +63 -0
- package/node_modules/@undefineds.co/shared-ui/dist/pod-sign-in/PodSignIn.js +65 -0
- package/node_modules/@undefineds.co/shared-ui/dist/pod-sign-in/PodSignInFrame.d.ts +31 -0
- package/node_modules/@undefineds.co/shared-ui/dist/pod-sign-in/PodSignInFrame.js +111 -0
- package/node_modules/@undefineds.co/shared-ui/dist/pod-sign-in/StorageBadge.d.ts +8 -0
- package/node_modules/@undefineds.co/shared-ui/dist/pod-sign-in/StorageBadge.js +7 -0
- package/node_modules/@undefineds.co/shared-ui/dist/pod-sign-in/XpodMark.d.ts +8 -0
- package/node_modules/@undefineds.co/shared-ui/dist/pod-sign-in/XpodMark.js +8 -0
- package/node_modules/@undefineds.co/shared-ui/dist/pod-sign-in/account-parts.d.ts +37 -0
- package/node_modules/@undefineds.co/shared-ui/dist/pod-sign-in/account-parts.js +33 -0
- package/node_modules/@undefineds.co/shared-ui/dist/pod-sign-in/copy.d.ts +156 -0
- package/node_modules/@undefineds.co/shared-ui/dist/pod-sign-in/copy.js +304 -0
- package/node_modules/@undefineds.co/shared-ui/dist/pod-sign-in/index.d.ts +20 -0
- package/node_modules/@undefineds.co/shared-ui/dist/pod-sign-in/index.js +18 -0
- package/node_modules/@undefineds.co/shared-ui/dist/pod-sign-in/parts.d.ts +69 -0
- package/node_modules/@undefineds.co/shared-ui/dist/pod-sign-in/parts.js +65 -0
- package/node_modules/@undefineds.co/shared-ui/dist/pod-sign-in/types.d.ts +14 -0
- package/node_modules/@undefineds.co/shared-ui/dist/pod-sign-in/types.js +1 -0
- package/node_modules/@undefineds.co/shared-ui/dist/pod-sign-in/webid-name.d.ts +5 -0
- package/node_modules/@undefineds.co/shared-ui/dist/pod-sign-in/webid-name.js +14 -0
- package/node_modules/@undefineds.co/shared-ui/dist/storage-bootstrap.d.ts +3 -0
- package/node_modules/@undefineds.co/shared-ui/dist/storage-bootstrap.js +3 -0
- package/node_modules/@undefineds.co/shared-ui/dist/theme.css +168 -83
- package/node_modules/@undefineds.co/shared-ui/dist/webid-auth.d.ts +5 -0
- package/node_modules/@undefineds.co/shared-ui/dist/webid-auth.js +5 -0
- package/package.json +2 -2
- package/static/app/assets/main.css +1 -1
- package/static/app/assets/main.js +55 -15
- package/static/dashboard/assets/{AiConfigContext-B5QP7ow2.js → AiConfigContext-CZEW16so.js} +1 -1
- package/static/dashboard/assets/{AiConfigPage-C_TdlUjq.js → AiConfigPage-Cfp0fRX1.js} +1 -1
- package/static/dashboard/assets/{DocumentProcessingPanel-CormNOdI.js → DocumentProcessingPanel-DaaRCLp6.js} +1 -1
- package/static/dashboard/assets/{IndexLifecyclePanel-S9wNNyHO.js → IndexLifecyclePanel-BCz3jNM8.js} +1 -1
- package/static/dashboard/assets/{IndexSubjectPanel-CofZT1oE.js → IndexSubjectPanel-DVCVIt7V.js} +1 -1
- package/static/dashboard/assets/ModelAssignmentsPanel-DxauxtEY.js +1 -0
- package/static/dashboard/assets/{ModelsPage-DZ46VnUh.js → ModelsPage-B8F3AtZL.js} +3 -3
- package/static/dashboard/assets/{NetworkPage-TwbIWASf.js → NetworkPage-Cu7ty71x.js} +2 -2
- package/static/dashboard/assets/{PaneListHeader-BtVnyutC.js → PaneListHeader-BEAXSlD9.js} +1 -1
- package/static/dashboard/assets/{SearchIndexingPanel-BCq_YMOP.js → SearchIndexingPanel-DEr1EDDC.js} +1 -1
- package/static/dashboard/assets/{StatusSubjectPanel-DsUKTysU.js → StatusSubjectPanel-Cg92MGhO.js} +1 -1
- package/static/dashboard/assets/{StatusWorkspace-CaVJBRqI.js → StatusWorkspace-BmJSOF3z.js} +1 -1
- package/static/dashboard/assets/{SystemSettingsPage-DRWfPjtu.js → SystemSettingsPage-rziu4Q3U.js} +1 -1
- package/static/dashboard/assets/SystemSettingsSubjectPanel-D16DGDNW.js +33 -0
- package/static/dashboard/assets/{XpodAiConnectionsPodStore-C9tHqutw.js → XpodAiConnectionsPodStore-FlZ0LEn0.js} +1 -1
- package/static/dashboard/assets/{activity-tgjewO88.js → activity-D55X-5L5.js} +1 -1
- package/static/dashboard/assets/{badge-Czun47II.js → badge-CRf1ISRJ.js} +1 -1
- package/static/dashboard/assets/{collection-runtime-DnYlU23-.js → collection-runtime-CfXMuwNc.js} +1 -1
- package/static/dashboard/assets/dashboard-B3kGI946.css +1 -0
- package/static/dashboard/assets/{dashboard-CF8SbVSR.js → dashboard-D4DWPaAy.js} +122 -122
- package/static/dashboard/assets/{dialog-D-Yc_lg-.js → dialog-EVyIyybL.js} +1 -1
- package/static/dashboard/assets/{download-vFuOkjCi.js → download-Et4aRDT2.js} +1 -1
- package/static/dashboard/assets/{external-link-Cg_VIecD.js → external-link-DT746o7t.js} +1 -1
- package/static/dashboard/assets/{index-IXCNeEwi.js → index-D2agcVRx.js} +3 -3
- package/static/dashboard/assets/{index-0au0WwkE.js → index-_wC13YGI.js} +1 -1
- package/static/dashboard/assets/{index-YDcVky3o.js → index-z6TnJzW6.js} +1 -1
- package/static/dashboard/assets/{key-round-9n1xgLbG.js → key-round-CHnogQ1D.js} +1 -1
- package/static/dashboard/assets/{rotate-ccw-DJ6s86DW.js → rotate-ccw-BNVDC4Zr.js} +1 -1
- package/static/dashboard/assets/{skeleton-Dg9HePtI.js → skeleton-BzsZekVf.js} +1 -1
- package/static/dashboard/assets/{waypoints-uxc_qOzk.js → waypoints-CLZA22UN.js} +1 -1
- package/static/dashboard/assets/{workspace-layout-BNtAXhPW.js → workspace-layout-urYcwAhS.js} +1 -1
- package/static/dashboard/dashboard.html +2 -2
- package/static/settings/assets/{AiConfigContext-y6ha7pGs.js → AiConfigContext-B2cVJFNu.js} +1 -1
- package/static/settings/assets/AiConfigPage-D_5jSPPF.js +1 -0
- package/static/settings/assets/{DocumentProcessingPanel-Oa_cxMcn.js → DocumentProcessingPanel-DodGlYIk.js} +1 -1
- package/static/settings/assets/{IndexLifecyclePanel-DlrnI0Kh.js → IndexLifecyclePanel-BtH-0GKv.js} +1 -1
- package/static/settings/assets/{IndexSubjectPanel-Dhsl0W32.js → IndexSubjectPanel-CqKhUcw2.js} +1 -1
- package/static/settings/assets/ModelAssignmentsPanel-Cam9V9BN.js +1 -0
- package/static/settings/assets/{ModelsPage-CuNW1hGX.js → ModelsPage-DWFic09l.js} +3 -3
- package/static/settings/assets/{NetworkPage-BBD2Lc_P.js → NetworkPage-CSwHoAWm.js} +2 -2
- package/static/settings/assets/{PaneListHeader-C81adSBX.js → PaneListHeader-270Z179Z.js} +1 -1
- package/static/settings/assets/{SearchIndexingPanel-Dc4QKWd0.js → SearchIndexingPanel-ATHKMDBQ.js} +1 -1
- package/static/settings/assets/{StatusSubjectPanel-DuxOvqzS.js → StatusSubjectPanel-DDWo3v3d.js} +1 -1
- package/static/settings/assets/StatusWorkspace-BYgqeCBM.js +1 -0
- package/static/settings/assets/SystemSettingsPage-BRaQAFWC.js +1 -0
- package/static/settings/assets/SystemSettingsSubjectPanel-Dc0roh9d.js +33 -0
- package/static/settings/assets/{XpodAiConnectionsPodStore-G0ClZksP.js → XpodAiConnectionsPodStore-OndzbigX.js} +2 -2
- package/static/settings/assets/{activity-DT8pzOea.js → activity-BAZEToJ3.js} +1 -1
- package/static/settings/assets/auth-callback-Bd3tvCOa.js +1 -0
- package/static/settings/assets/{badge-CvKRjSY2.js → badge-Cpol0LWF.js} +1 -1
- package/static/settings/assets/{collection-runtime-C6ZAp2cM.js → collection-runtime-B5vGx3gk.js} +1 -1
- package/static/settings/assets/{dialog-LFluK7Nx.js → dialog-_7AVvv5q.js} +1 -1
- package/static/settings/assets/{download-CZJeqUm1.js → download-DRAi-dnn.js} +1 -1
- package/static/settings/assets/{external-link-BsDft3Oe.js → external-link--Yq8inDb.js} +1 -1
- package/static/settings/assets/global-B3kGI946.css +1 -0
- package/static/settings/assets/{global-cmKEraT4.js → global-DMtP8ZF4.js} +111 -111
- package/static/settings/assets/{index-BiqSFOS1.js → index-C36H49PZ.js} +1 -1
- package/static/settings/assets/{index-XRgmPBKw.js → index-CQR3iePj.js} +1 -1
- package/static/settings/assets/{index-BMPlaRWG.js → index-DURnCfoQ.js} +1 -1
- package/static/settings/assets/{index-browser-B0slhJKc.js → index-browser-kAl2JmYB.js} +1 -1
- package/static/settings/assets/{key-round-D1XsWbN_.js → key-round-DzpWBVN9.js} +1 -1
- package/static/settings/assets/{rotate-ccw-CEe0P0fY.js → rotate-ccw-CtVsCcAx.js} +1 -1
- package/static/settings/assets/settings-DQtt6lql.js +1 -0
- package/static/settings/assets/{skeleton-DA404w6m.js → skeleton-R_ACks7d.js} +1 -1
- package/static/settings/assets/{waypoints-DJDWc4S9.js → waypoints-D-Qv_sME.js} +1 -1
- package/static/settings/assets/{workspace-layout-K38jT4OV.js → workspace-layout-BSMCQq35.js} +1 -1
- package/static/settings/auth-callback.html +3 -3
- package/static/settings/settings.html +3 -3
- package/static/dashboard/assets/ModelAssignmentsPanel-9tgOjj-y.js +0 -1
- package/static/dashboard/assets/SystemSettingsSubjectPanel-CgDP7Ii2.js +0 -33
- package/static/dashboard/assets/dashboard-DvuM3VTP.css +0 -1
- package/static/settings/assets/AiConfigPage-CIcIWdXA.js +0 -1
- package/static/settings/assets/ModelAssignmentsPanel-CHoiRZeL.js +0 -1
- package/static/settings/assets/StatusWorkspace-DeD3zi3G.js +0 -1
- package/static/settings/assets/SystemSettingsPage-8sHOaPb8.js +0 -1
- package/static/settings/assets/SystemSettingsSubjectPanel-B1JXut7S.js +0 -33
- package/static/settings/assets/auth-callback-1BlsOtMG.js +0 -1
- package/static/settings/assets/global-DvuM3VTP.css +0 -1
- package/static/settings/assets/settings-DfjkqEJ8.js +0 -1
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Short display name for a WebID that has no remembered profile: the last
|
|
3
|
+
* meaningful path segment (`/alice/profile/card#me` -> `alice`), else the host.
|
|
4
|
+
*/
|
|
5
|
+
export function webIdShortName(webId) {
|
|
6
|
+
try {
|
|
7
|
+
const url = new URL(webId);
|
|
8
|
+
const segments = url.pathname.split('/').filter((segment) => segment && !['profile', 'card'].includes(segment));
|
|
9
|
+
return segments[segments.length - 1] ?? url.hostname;
|
|
10
|
+
}
|
|
11
|
+
catch {
|
|
12
|
+
return webId;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -30,4 +30,7 @@ export interface StorageBootstrapViewProps {
|
|
|
30
30
|
*/
|
|
31
31
|
framed?: boolean;
|
|
32
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* @deprecated Use PodSignIn with a `notice` (the Pod is prepared after sign-in, not before) (see `pod-sign-in/`). Kept for one more version; behavior is unchanged.
|
|
35
|
+
*/
|
|
33
36
|
export declare function StorageBootstrapView({ state: stateInput, copy, pending, onCreate, onContinue, onRetry, onCancel, framed, }: StorageBootstrapViewProps): import("react").JSX.Element;
|
|
@@ -9,6 +9,9 @@ function normalizeState(state) {
|
|
|
9
9
|
return { status: state };
|
|
10
10
|
return state;
|
|
11
11
|
}
|
|
12
|
+
/**
|
|
13
|
+
* @deprecated Use PodSignIn with a `notice` (the Pod is prepared after sign-in, not before) (see `pod-sign-in/`). Kept for one more version; behavior is unchanged.
|
|
14
|
+
*/
|
|
12
15
|
export function StorageBootstrapView({ state: stateInput, copy, pending = false, onCreate, onContinue, onRetry, onCancel, framed = true, }) {
|
|
13
16
|
const state = normalizeState(stateInput);
|
|
14
17
|
const canCreate = state.status === 'creation';
|
|
@@ -1,27 +1,30 @@
|
|
|
1
1
|
@layer base {
|
|
2
2
|
:root {
|
|
3
3
|
color-scheme: light;
|
|
4
|
-
--background:
|
|
5
|
-
--foreground:
|
|
6
|
-
--card:
|
|
7
|
-
--card-foreground:
|
|
8
|
-
--popover:
|
|
9
|
-
--popover-foreground:
|
|
10
|
-
--primary:
|
|
11
|
-
--primary-foreground:
|
|
12
|
-
--
|
|
13
|
-
--
|
|
14
|
-
--
|
|
15
|
-
--
|
|
16
|
-
--
|
|
17
|
-
--
|
|
4
|
+
--background: 42 38.5% 94.9%; /* canvas #F7F4ED */
|
|
5
|
+
--foreground: 30 13.2% 14.9%; /* text #2B2621 */
|
|
6
|
+
--card: 45 33.3% 97.6%; /* raised #FBFAF7 */
|
|
7
|
+
--card-foreground: 30 13.2% 14.9%;
|
|
8
|
+
--popover: 45 33.3% 97.6%;
|
|
9
|
+
--popover-foreground: 30 13.2% 14.9%;
|
|
10
|
+
--primary: 260.6 36.1% 38%; /* action #563E84 */
|
|
11
|
+
--primary-foreground: 42 38.5% 94.9%; /* on-action #F7F4ED */
|
|
12
|
+
--primary-hover: 261 35.7% 32.9%; /* action hover #4B3672 */
|
|
13
|
+
--primary-pressed: 261.2 35.7% 28%; /* action pressed #402E61 */
|
|
14
|
+
--secondary: 0 10.2% 90.4%; /* tint canvas #E9E4E4 */
|
|
15
|
+
--secondary-foreground: 30 13.2% 14.9%;
|
|
16
|
+
--muted: 18 15.6% 87.5%; /* tint sunken #E4DDDA */
|
|
17
|
+
--muted-foreground: 33.3 9.8% 36.1%; /* muted #655D53 */
|
|
18
|
+
--accent: 0 10.2% 90.4%; /* tint #E9E4E4 */
|
|
19
|
+
--accent-foreground: 30 13.2% 14.9%;
|
|
18
20
|
--destructive: 352 43% 49%;
|
|
19
21
|
--destructive-foreground: 0 0% 100%;
|
|
20
|
-
--border:
|
|
21
|
-
--input:
|
|
22
|
-
--
|
|
23
|
-
--
|
|
24
|
-
--lineage
|
|
22
|
+
--border: 36 13.5% 85.5%; /* line #DFDBD5 */
|
|
23
|
+
--input: 36 4% 51%; /* control #87837D */
|
|
24
|
+
--control-strong: 33.3 9.8% 36.1%; /* control-strong on tint #655D53 */
|
|
25
|
+
--ring: 260.6 36.1% 38%; /* focus = action #563E84 */
|
|
26
|
+
--lineage: 260.6 36.1% 38%;
|
|
27
|
+
--lineage-foreground: 42 38.5% 94.9%;
|
|
25
28
|
--boundary: 202 34% 37%;
|
|
26
29
|
--boundary-foreground: 0 0% 100%;
|
|
27
30
|
--success: 160 48% 30%;
|
|
@@ -36,92 +39,103 @@
|
|
|
36
39
|
--radius-2xl: 16px;
|
|
37
40
|
--radius-3xl: 16px;
|
|
38
41
|
--radius: 0.5rem;
|
|
39
|
-
--layout-sidebar:
|
|
40
|
-
--layout-list-header:
|
|
41
|
-
--layout-list-hover: 0
|
|
42
|
-
--layout-list-item:
|
|
43
|
-
--layout-list-selected:
|
|
44
|
-
--layout-content:
|
|
45
|
-
--purple-medium:
|
|
46
|
-
--purple-deep:
|
|
42
|
+
--layout-sidebar: 41.3 38.1% 91.8%; /* sunken #F2EDE2 */
|
|
43
|
+
--layout-list-header: 42 38.5% 94.9%; /* canvas #F7F4ED */
|
|
44
|
+
--layout-list-hover: 0 10.2% 90.4%; /* tint #E9E4E4 */
|
|
45
|
+
--layout-list-item: 45 33.3% 97.6%; /* raised #FBFAF7 */
|
|
46
|
+
--layout-list-selected: 0 10.2% 90.4%; /* tint #E9E4E4 */
|
|
47
|
+
--layout-content: 42 38.5% 94.9%; /* canvas #F7F4ED */
|
|
48
|
+
--purple-medium: 260.6 36.1% 38%;
|
|
49
|
+
--purple-deep: 261.2 35.7% 28%;
|
|
47
50
|
--purple-light: 258 48% 84%;
|
|
51
|
+
--sunken: 41.3 38.1% 91.8%; /* sunken #F2EDE2 */
|
|
48
52
|
}
|
|
49
53
|
|
|
50
54
|
.dark {
|
|
51
55
|
color-scheme: dark;
|
|
52
|
-
--background:
|
|
53
|
-
--foreground:
|
|
54
|
-
--card:
|
|
55
|
-
--card-foreground:
|
|
56
|
-
--popover:
|
|
57
|
-
--popover-foreground:
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
--
|
|
61
|
-
--
|
|
62
|
-
--
|
|
63
|
-
--
|
|
64
|
-
--
|
|
65
|
-
--
|
|
56
|
+
--background: 30 13.8% 11.4%; /* canvas #211D19 */
|
|
57
|
+
--foreground: 42 38.5% 94.9%; /* text #F7F4ED */
|
|
58
|
+
--card: 30 13.2% 14.9%; /* raised #2B2621 */
|
|
59
|
+
--card-foreground: 42 38.5% 94.9%;
|
|
60
|
+
--popover: 30 13.2% 14.9%;
|
|
61
|
+
--popover-foreground: 42 38.5% 94.9%;
|
|
62
|
+
/* R2 §8.4: the fixed brand violet is 1.93:1 on dark canvas, so the dark
|
|
63
|
+
action role is the lightened mapping, never #563E84 itself. */
|
|
64
|
+
--primary: 270 16.7% 71.8%; /* action #B7ABC3 */
|
|
65
|
+
--primary-foreground: 30 13.8% 11.4%; /* on-action #211D19 */
|
|
66
|
+
--primary-hover: 271.6 16.8% 77.8%; /* action hover #C7BDD0 */
|
|
67
|
+
--primary-pressed: 264.4 18.8% 66.7%; /* action pressed #A79ABA */
|
|
68
|
+
--secondary: 276.9 11.7% 21.8%; /* tint #39313E */
|
|
69
|
+
--secondary-foreground: 42 38.5% 94.9%;
|
|
70
|
+
--muted: 276.9 11.7% 21.8%; /* tint #39313E */
|
|
71
|
+
--muted-foreground: 34.3 15.8% 73.9%; /* muted #C7BEB2 */
|
|
72
|
+
--accent: 276.9 11.7% 21.8%; /* tint #39313E */
|
|
73
|
+
--accent-foreground: 42 38.5% 94.9%;
|
|
66
74
|
--destructive: 352 43% 49%;
|
|
67
75
|
--destructive-foreground: 0 0% 100%;
|
|
68
|
-
--border:
|
|
69
|
-
--input:
|
|
70
|
-
--
|
|
71
|
-
--
|
|
72
|
-
--lineage
|
|
76
|
+
--border: 30 12.3% 25.5%; /* line #494139 */
|
|
77
|
+
--input: 32.7 9.2% 53.3%; /* control #93897D */
|
|
78
|
+
--control-strong: 33.9 13.6% 66.9%; /* control-strong on tint #B6AC9F */
|
|
79
|
+
--ring: 270 16.7% 71.8%; /* focus = action #B7ABC3 */
|
|
80
|
+
--lineage: 270 16.7% 71.8%;
|
|
81
|
+
--lineage-foreground: 30 13.8% 11.4%;
|
|
73
82
|
--boundary: 202 34% 48%;
|
|
74
83
|
--boundary-foreground: 0 0% 100%;
|
|
75
84
|
--success: 160 48% 42%;
|
|
76
85
|
--success-foreground: 0 0% 100%;
|
|
77
86
|
--warning: 44 72% 48%;
|
|
78
87
|
--warning-foreground: 0 0% 100%;
|
|
79
|
-
--layout-sidebar:
|
|
80
|
-
--layout-list-header:
|
|
81
|
-
--layout-list-hover:
|
|
82
|
-
--layout-list-item:
|
|
83
|
-
--layout-list-selected:
|
|
84
|
-
--layout-content:
|
|
88
|
+
--layout-sidebar: 30 13.6% 8.6%; /* sunken #191613 */
|
|
89
|
+
--layout-list-header: 30 13.8% 11.4%; /* canvas #211D19 */
|
|
90
|
+
--layout-list-hover: 276.9 11.7% 21.8%; /* tint #39313E */
|
|
91
|
+
--layout-list-item: 30 13.2% 14.9%; /* raised #2B2621 */
|
|
92
|
+
--layout-list-selected: 276.9 11.7% 21.8%; /* tint #39313E */
|
|
93
|
+
--layout-content: 30 13.8% 11.4%; /* canvas #211D19 */
|
|
94
|
+
--sunken: 30 13.6% 8.6%; /* sunken #191613 */
|
|
85
95
|
}
|
|
86
96
|
|
|
87
97
|
.light {
|
|
88
98
|
color-scheme: light;
|
|
89
|
-
--background:
|
|
90
|
-
--foreground:
|
|
91
|
-
--card:
|
|
92
|
-
--card-foreground:
|
|
93
|
-
--popover:
|
|
94
|
-
--popover-foreground:
|
|
95
|
-
--primary:
|
|
96
|
-
--primary-foreground:
|
|
97
|
-
--
|
|
98
|
-
--
|
|
99
|
-
--
|
|
100
|
-
--
|
|
101
|
-
--
|
|
102
|
-
--
|
|
99
|
+
--background: 42 38.5% 94.9%;
|
|
100
|
+
--foreground: 30 13.2% 14.9%;
|
|
101
|
+
--card: 45 33.3% 97.6%;
|
|
102
|
+
--card-foreground: 30 13.2% 14.9%;
|
|
103
|
+
--popover: 45 33.3% 97.6%;
|
|
104
|
+
--popover-foreground: 30 13.2% 14.9%;
|
|
105
|
+
--primary: 260.6 36.1% 38%;
|
|
106
|
+
--primary-foreground: 42 38.5% 94.9%;
|
|
107
|
+
--primary-hover: 261 35.7% 32.9%;
|
|
108
|
+
--primary-pressed: 261.2 35.7% 28%;
|
|
109
|
+
--secondary: 0 10.2% 90.4%;
|
|
110
|
+
--secondary-foreground: 30 13.2% 14.9%;
|
|
111
|
+
--muted: 18 15.6% 87.5%;
|
|
112
|
+
--muted-foreground: 33.3 9.8% 36.1%;
|
|
113
|
+
--accent: 0 10.2% 90.4%;
|
|
114
|
+
--accent-foreground: 30 13.2% 14.9%;
|
|
103
115
|
--destructive: 352 43% 49%;
|
|
104
116
|
--destructive-foreground: 0 0% 100%;
|
|
105
|
-
--border:
|
|
106
|
-
--input:
|
|
107
|
-
--
|
|
108
|
-
--
|
|
109
|
-
--lineage
|
|
117
|
+
--border: 36 13.5% 85.5%;
|
|
118
|
+
--input: 36 4% 51%;
|
|
119
|
+
--control-strong: 33.3 9.8% 36.1%;
|
|
120
|
+
--ring: 260.6 36.1% 38%;
|
|
121
|
+
--lineage: 260.6 36.1% 38%;
|
|
122
|
+
--lineage-foreground: 42 38.5% 94.9%;
|
|
110
123
|
--boundary: 202 34% 37%;
|
|
111
124
|
--boundary-foreground: 0 0% 100%;
|
|
112
125
|
--success: 160 48% 30%;
|
|
113
126
|
--success-foreground: 0 0% 100%;
|
|
114
127
|
--warning: 44 72% 36%;
|
|
115
128
|
--warning-foreground: 0 0% 100%;
|
|
116
|
-
--layout-sidebar:
|
|
117
|
-
--layout-list-header:
|
|
118
|
-
--layout-list-hover: 0
|
|
119
|
-
--layout-list-item:
|
|
120
|
-
--layout-list-selected:
|
|
121
|
-
--layout-content:
|
|
122
|
-
--purple-medium:
|
|
123
|
-
--purple-deep:
|
|
129
|
+
--layout-sidebar: 41.3 38.1% 91.8%;
|
|
130
|
+
--layout-list-header: 42 38.5% 94.9%;
|
|
131
|
+
--layout-list-hover: 0 10.2% 90.4%;
|
|
132
|
+
--layout-list-item: 45 33.3% 97.6%;
|
|
133
|
+
--layout-list-selected: 0 10.2% 90.4%;
|
|
134
|
+
--layout-content: 42 38.5% 94.9%;
|
|
135
|
+
--purple-medium: 260.6 36.1% 38%;
|
|
136
|
+
--purple-deep: 261.2 35.7% 28%;
|
|
124
137
|
--purple-light: 258 48% 84%;
|
|
138
|
+
--sunken: 41.3 38.1% 91.8%;
|
|
125
139
|
}
|
|
126
140
|
|
|
127
141
|
html,
|
|
@@ -131,10 +145,11 @@
|
|
|
131
145
|
}
|
|
132
146
|
|
|
133
147
|
/*
|
|
134
|
-
* Shared native-control baseline. The `html` prefix
|
|
135
|
-
*
|
|
136
|
-
*
|
|
137
|
-
*
|
|
148
|
+
* Shared native-control baseline. The `html` prefix gives these rules more
|
|
149
|
+
* specificity than @tailwindcss/forms' `input:where([type='text'])` base
|
|
150
|
+
* (0,0,1) so the semantic colours stay in charge, while `:where()` keeps the
|
|
151
|
+
* added specificity at zero. The control's focus outline lives in one place
|
|
152
|
+
* (the shared `controlFocusClass`), so nothing here may outrank a utility.
|
|
138
153
|
*/
|
|
139
154
|
html input:where(:not([type]), [type='text'], [type='email'], [type='password'], [type='number'], [type='date'], [type='datetime-local'], [type='month'], [type='search'], [type='tel'], [type='time'], [type='url'], [type='week']),
|
|
140
155
|
html textarea,
|
|
@@ -161,6 +176,28 @@
|
|
|
161
176
|
--tw-ring-offset-color: hsl(var(--background));
|
|
162
177
|
}
|
|
163
178
|
|
|
179
|
+
/*
|
|
180
|
+
* Clear @tailwindcss/forms' fixed blue focus colour (border + ring box-shadow)
|
|
181
|
+
* so it cannot stack with the shared outline into the double frame the design
|
|
182
|
+
* forbids. Every native control is covered — text inputs, textarea, select and
|
|
183
|
+
* also checkbox/radio, whose plugin rule is `input:where([type=...]):focus`
|
|
184
|
+
* (0,1,1) like the text fields and would otherwise keep its blue 2px/4px ring.
|
|
185
|
+
* This selector is deliberately (0,1,2): it outranks every plugin base
|
|
186
|
+
* (0,1,1) but loses to the shared `focus-visible:outline-*` utility (0,2,0),
|
|
187
|
+
* which stays the single owner of the visible control focus boundary. The
|
|
188
|
+
* checked/hover state selectors (0,2,1) still win, so a checked box keeps its
|
|
189
|
+
* filled appearance.
|
|
190
|
+
*/
|
|
191
|
+
html input:focus,
|
|
192
|
+
html textarea:focus,
|
|
193
|
+
html select:focus {
|
|
194
|
+
border-color: hsl(var(--input));
|
|
195
|
+
outline: none;
|
|
196
|
+
box-shadow: none;
|
|
197
|
+
--tw-ring-shadow: 0 0 #0000;
|
|
198
|
+
--tw-ring-offset-shadow: 0 0 #0000;
|
|
199
|
+
}
|
|
200
|
+
|
|
164
201
|
html button,
|
|
165
202
|
html input,
|
|
166
203
|
html textarea,
|
|
@@ -176,6 +213,22 @@
|
|
|
176
213
|
outline: none;
|
|
177
214
|
}
|
|
178
215
|
|
|
216
|
+
/*
|
|
217
|
+
* Keyboard-focus fallback for legacy native controls that never adopted the
|
|
218
|
+
* shared `controlFocusClass` (settings pages, document panels, plain
|
|
219
|
+
* selects). The blanket `:focus { outline: none }` above must not erase the
|
|
220
|
+
* keyboard affordance, so this rule wins on source order at the same
|
|
221
|
+
* specificity and restores the one ink-violet outline. Shared controls keep
|
|
222
|
+
* the utility as the single owner: `focus-visible:outline-*` is (0,2,0) and
|
|
223
|
+
* outranks this (0,1,2) fallback, so no second boundary appears.
|
|
224
|
+
*/
|
|
225
|
+
html input:focus-visible,
|
|
226
|
+
html textarea:focus-visible,
|
|
227
|
+
html select:focus-visible {
|
|
228
|
+
outline: 2px solid hsl(var(--ring));
|
|
229
|
+
outline-offset: 3px;
|
|
230
|
+
}
|
|
231
|
+
|
|
179
232
|
html input:-webkit-autofill,
|
|
180
233
|
html input:-webkit-autofill:hover,
|
|
181
234
|
html input:-webkit-autofill:focus,
|
|
@@ -194,6 +247,8 @@
|
|
|
194
247
|
--color-card-foreground: hsl(var(--card-foreground));
|
|
195
248
|
--color-primary: hsl(var(--primary));
|
|
196
249
|
--color-primary-foreground: hsl(var(--primary-foreground));
|
|
250
|
+
--color-primary-hover: hsl(var(--primary-hover));
|
|
251
|
+
--color-primary-pressed: hsl(var(--primary-pressed));
|
|
197
252
|
--color-secondary: hsl(var(--secondary));
|
|
198
253
|
--color-secondary-foreground: hsl(var(--secondary-foreground));
|
|
199
254
|
--color-muted: hsl(var(--muted));
|
|
@@ -204,7 +259,9 @@
|
|
|
204
259
|
--color-destructive-foreground: hsl(var(--destructive-foreground));
|
|
205
260
|
--color-border: hsl(var(--border));
|
|
206
261
|
--color-input: hsl(var(--input));
|
|
262
|
+
--color-control-strong: hsl(var(--control-strong));
|
|
207
263
|
--color-ring: hsl(var(--ring));
|
|
264
|
+
--color-sunken: hsl(var(--sunken));
|
|
208
265
|
--color-success: hsl(var(--success));
|
|
209
266
|
--color-warning: hsl(var(--warning));
|
|
210
267
|
--color-layout-sidebar: hsl(var(--layout-sidebar));
|
|
@@ -216,6 +273,34 @@
|
|
|
216
273
|
}
|
|
217
274
|
|
|
218
275
|
@layer components {
|
|
276
|
+
/*
|
|
277
|
+
* Pod sign-in front door (spec §5): system sans stack, 14/22 body, and one
|
|
278
|
+
* focus treatment (2px primary outline, 3px offset). No web fonts.
|
|
279
|
+
*/
|
|
280
|
+
.pod-sign-in {
|
|
281
|
+
font-family: 'PingFang SC', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans SC', 'Helvetica Neue', Arial, sans-serif;
|
|
282
|
+
font-size: 14px;
|
|
283
|
+
line-height: 22px;
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
/*
|
|
287
|
+
* Front-door focus for links, buttons and summary. Form controls are excluded:
|
|
288
|
+
* the shared control primitive owns their focus outline, so a control never
|
|
289
|
+
* draws this outline and its own at once.
|
|
290
|
+
*/
|
|
291
|
+
.pod-sign-in :focus-visible:not(input):not(textarea):not(select) {
|
|
292
|
+
outline: 2px solid hsl(var(--ring));
|
|
293
|
+
outline-offset: 3px;
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
@media (prefers-reduced-motion: reduce) {
|
|
297
|
+
.pod-sign-in,
|
|
298
|
+
.pod-sign-in * {
|
|
299
|
+
animation: none !important;
|
|
300
|
+
transition: none !important;
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
|
|
219
304
|
.warm-card {
|
|
220
305
|
border: 1px solid hsl(var(--border) / 0.5);
|
|
221
306
|
border-radius: var(--radius-xl);
|
|
@@ -106,6 +106,11 @@ export interface WebIdLoginEntryViewProps {
|
|
|
106
106
|
* Frame-free presentation for hosts that expose exactly one WebID route.
|
|
107
107
|
* Provider discovery, issuer validation, redirects, and session ownership all
|
|
108
108
|
* stay in the host controller; this view only renders the one public action.
|
|
109
|
+
*
|
|
110
|
+
* @deprecated Use PodSignIn (state `choose-service`) (see `pod-sign-in/`). Kept for one more version; behavior is unchanged.
|
|
109
111
|
*/
|
|
110
112
|
export declare function WebIdLoginEntryView({ copy, logo, pending, error, onStart, }: WebIdLoginEntryViewProps): import("react").JSX.Element;
|
|
113
|
+
/**
|
|
114
|
+
* @deprecated Use PodSignIn (see `pod-sign-in/`). Kept for one more version; behavior is unchanged.
|
|
115
|
+
*/
|
|
111
116
|
export declare function WebIdLoginRouteView({ route, state: stateInput, copy, onStart, onConnect, onRouteAction, onSelectRoute, onRetry, onCancel, onSwitchAccount, pending, framed, }: WebIdLoginRouteViewProps): import("react").JSX.Element;
|
|
@@ -9,6 +9,8 @@ import { cn } from './utils.js';
|
|
|
9
9
|
* Frame-free presentation for hosts that expose exactly one WebID route.
|
|
10
10
|
* Provider discovery, issuer validation, redirects, and session ownership all
|
|
11
11
|
* stay in the host controller; this view only renders the one public action.
|
|
12
|
+
*
|
|
13
|
+
* @deprecated Use PodSignIn (state `choose-service`) (see `pod-sign-in/`). Kept for one more version; behavior is unchanged.
|
|
12
14
|
*/
|
|
13
15
|
export function WebIdLoginEntryView({ copy, logo, pending = false, error, onStart, }) {
|
|
14
16
|
return (_jsxs("div", { "data-testid": "webid-login-entry", className: "flex h-full min-h-0 flex-1 flex-col px-5 pb-5 pt-7", children: [_jsxs("div", { className: "flex min-h-0 flex-1 flex-col items-center justify-center gap-4 text-center", children: [logo ? _jsx("div", { className: "flex items-center justify-center", children: logo }) : null, copy.title || copy.description ? _jsxs("div", { className: "space-y-1.5", children: [copy.title ? _jsx("h2", { className: "text-lg font-semibold text-foreground", children: copy.title }) : null, copy.description ? (_jsx("p", { className: "text-xs leading-5 text-muted-foreground", children: copy.description })) : null] }) : null, error ? (_jsx("p", { role: "alert", className: "max-w-[15rem] text-sm leading-5 text-destructive", children: error })) : null] }), _jsxs(Button, { type: "button", className: "h-10 w-full shrink-0 rounded-xl", disabled: pending, "aria-busy": pending, onClick: () => void onStart(), children: [pending ? _jsx(Loader2, { "aria-hidden": "true", className: "mr-2 h-4 w-4 animate-spin" }) : null, pending ? copy.pendingLabel : copy.startLabel] })] }));
|
|
@@ -31,6 +33,9 @@ function rememberedName(state) {
|
|
|
31
33
|
function stateMessage(state) {
|
|
32
34
|
return 'message' in state ? state.message : undefined;
|
|
33
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
* @deprecated Use PodSignIn (see `pod-sign-in/`). Kept for one more version; behavior is unchanged.
|
|
38
|
+
*/
|
|
34
39
|
export function WebIdLoginRouteView({ route, state: stateInput, copy, onStart, onConnect, onRouteAction, onSelectRoute, onRetry, onCancel, onSwitchAccount, pending = false, framed = true, }) {
|
|
35
40
|
const state = normalizeState(stateInput);
|
|
36
41
|
const start = onStart ?? onConnect ?? onRouteAction ?? onSelectRoute;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@undefineds.co/xpod",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.20",
|
|
4
4
|
"description": "Xpod is an extended Community Solid Server, offering rich-feature, production-level Solid Pod and identity management.",
|
|
5
5
|
"repository": "https://github.com/undefinedsco/xpod",
|
|
6
6
|
"author": "developer@undefineds.co",
|
|
@@ -384,7 +384,7 @@
|
|
|
384
384
|
}
|
|
385
385
|
},
|
|
386
386
|
"optionalDependencies": {
|
|
387
|
-
"@undefineds.co/xpod-darwin-arm64": "0.4.
|
|
387
|
+
"@undefineds.co/xpod-darwin-arm64": "0.4.20"
|
|
388
388
|
},
|
|
389
389
|
"resolutions": {
|
|
390
390
|
"@inrupt/solid-client-authn-browser": "^3.1.1",
|