adjacent-cli 0.1.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/CHANGELOG.md +15 -0
- package/LICENSE +21 -0
- package/README.md +48 -0
- package/dist/arguments.d.ts +54 -0
- package/dist/arguments.d.ts.map +1 -0
- package/dist/arguments.js +68 -0
- package/dist/arguments.js.map +1 -0
- package/dist/bin.d.ts +3 -0
- package/dist/bin.d.ts.map +1 -0
- package/dist/bin.js +140 -0
- package/dist/bin.js.map +1 -0
- package/dist/checks.d.ts +35 -0
- package/dist/checks.d.ts.map +1 -0
- package/dist/checks.js +206 -0
- package/dist/checks.js.map +1 -0
- package/dist/create.d.ts +42 -0
- package/dist/create.d.ts.map +1 -0
- package/dist/create.js +82 -0
- package/dist/create.js.map +1 -0
- package/dist/dependencies.d.ts +59 -0
- package/dist/dependencies.d.ts.map +1 -0
- package/dist/dependencies.js +100 -0
- package/dist/dependencies.js.map +1 -0
- package/dist/destination.d.ts +16 -0
- package/dist/destination.d.ts.map +1 -0
- package/dist/destination.js +39 -0
- package/dist/destination.js.map +1 -0
- package/dist/dev-channel.d.ts +40 -0
- package/dist/dev-channel.d.ts.map +1 -0
- package/dist/dev-channel.js +192 -0
- package/dist/dev-channel.js.map +1 -0
- package/dist/dev.d.ts +3 -0
- package/dist/dev.d.ts.map +1 -0
- package/dist/dev.js +12 -0
- package/dist/dev.js.map +1 -0
- package/dist/doctor.d.ts +46 -0
- package/dist/doctor.d.ts.map +1 -0
- package/dist/doctor.js +52 -0
- package/dist/doctor.js.map +1 -0
- package/dist/edits.d.ts +26 -0
- package/dist/edits.d.ts.map +1 -0
- package/dist/edits.js +101 -0
- package/dist/edits.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -0
- package/dist/init.d.ts +62 -0
- package/dist/init.d.ts.map +1 -0
- package/dist/init.js +275 -0
- package/dist/init.js.map +1 -0
- package/dist/keys.d.ts +14 -0
- package/dist/keys.d.ts.map +1 -0
- package/dist/keys.js +66 -0
- package/dist/keys.js.map +1 -0
- package/dist/package-manager.d.ts +40 -0
- package/dist/package-manager.d.ts.map +1 -0
- package/dist/package-manager.js +98 -0
- package/dist/package-manager.js.map +1 -0
- package/dist/process.d.ts +33 -0
- package/dist/process.d.ts.map +1 -0
- package/dist/process.js +95 -0
- package/dist/process.js.map +1 -0
- package/dist/project-name.d.ts +30 -0
- package/dist/project-name.d.ts.map +1 -0
- package/dist/project-name.js +73 -0
- package/dist/project-name.js.map +1 -0
- package/dist/reporter.d.ts +12 -0
- package/dist/reporter.d.ts.map +1 -0
- package/dist/reporter.js +11 -0
- package/dist/reporter.js.map +1 -0
- package/dist/rewrite.d.ts +54 -0
- package/dist/rewrite.d.ts.map +1 -0
- package/dist/rewrite.js +262 -0
- package/dist/rewrite.js.map +1 -0
- package/dist/shutdown.d.ts +24 -0
- package/dist/shutdown.d.ts.map +1 -0
- package/dist/shutdown.js +67 -0
- package/dist/shutdown.js.map +1 -0
- package/dist/survey.d.ts +33 -0
- package/dist/survey.d.ts.map +1 -0
- package/dist/survey.js +94 -0
- package/dist/survey.js.map +1 -0
- package/dist/template.d.ts +29 -0
- package/dist/template.d.ts.map +1 -0
- package/dist/template.js +77 -0
- package/dist/template.js.map +1 -0
- package/dist/ui.d.ts +14 -0
- package/dist/ui.d.ts.map +1 -0
- package/dist/ui.js +50 -0
- package/dist/ui.js.map +1 -0
- package/package.json +65 -0
- package/templates/adjacent/app/manifest.ts +5 -0
- package/templates/adjacent/app/sw.js/route.ts +5 -0
- package/templates/adjacent/app.config.ts +21 -0
- package/templates/adjacent/components/navigation.tsx +46 -0
- package/templates/adjacent/public/apple-touch-icon.png +0 -0
- package/templates/adjacent/public/favicon-96x96.png +0 -0
- package/templates/adjacent/public/favicon.ico +0 -0
- package/templates/adjacent/public/favicon.svg +4 -0
- package/templates/adjacent/public/web-app-manifest-192x192.png +0 -0
- package/templates/adjacent/public/web-app-manifest-512x512.png +0 -0
- package/templates/adjacent/public/web-app-manifest-maskable-192x192.png +0 -0
- package/templates/adjacent/public/web-app-manifest-maskable-512x512.png +0 -0
- package/templates/starter/app/(app)/layout.tsx +12 -0
- package/templates/starter/app/(app)/page.tsx +75 -0
- package/templates/starter/app/(app)/settings/page.tsx +24 -0
- package/templates/starter/app/(app)/settings/settings-panel.tsx +54 -0
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Button,
|
|
3
|
+
Card,
|
|
4
|
+
CardContent,
|
|
5
|
+
CardDescription,
|
|
6
|
+
CardHeader,
|
|
7
|
+
CardTitle,
|
|
8
|
+
Divider,
|
|
9
|
+
List,
|
|
10
|
+
ListItem,
|
|
11
|
+
Page,
|
|
12
|
+
Text,
|
|
13
|
+
} from "adjacent-ui";
|
|
14
|
+
|
|
15
|
+
export default function Home() {
|
|
16
|
+
return (
|
|
17
|
+
<Page
|
|
18
|
+
options={{
|
|
19
|
+
headerVariant: "large",
|
|
20
|
+
subtitle: "A mobile-first progressive web app",
|
|
21
|
+
title: "{{appName}}",
|
|
22
|
+
}}
|
|
23
|
+
>
|
|
24
|
+
<Card variant="outlined">
|
|
25
|
+
<CardHeader>
|
|
26
|
+
<CardTitle>Start here</CardTitle>
|
|
27
|
+
<CardDescription>
|
|
28
|
+
Edit <code>app/(app)/page.tsx</code> and this page reloads as you save.
|
|
29
|
+
</CardDescription>
|
|
30
|
+
</CardHeader>
|
|
31
|
+
<CardContent>
|
|
32
|
+
<Text variant="body-medium">
|
|
33
|
+
Every component reads the design tokens in{" "}
|
|
34
|
+
<code>app/globals.css</code>, so changing one there changes the whole
|
|
35
|
+
application.
|
|
36
|
+
</Text>
|
|
37
|
+
</CardContent>
|
|
38
|
+
</Card>
|
|
39
|
+
|
|
40
|
+
<Card variant="outlined">
|
|
41
|
+
<CardHeader>
|
|
42
|
+
<CardTitle>What is configured</CardTitle>
|
|
43
|
+
</CardHeader>
|
|
44
|
+
<List divided dividerInset="none" lastDivider={false}>
|
|
45
|
+
<ListItem
|
|
46
|
+
headline="Offline support"
|
|
47
|
+
supportingText="A service worker is served from /sw.js in production builds."
|
|
48
|
+
/>
|
|
49
|
+
<ListItem
|
|
50
|
+
headline="Web app manifest"
|
|
51
|
+
supportingText="Generated from app.config.ts at /manifest.webmanifest."
|
|
52
|
+
/>
|
|
53
|
+
<ListItem
|
|
54
|
+
headline="Install prompt"
|
|
55
|
+
supportingText="Installation state is reported on the Settings tab."
|
|
56
|
+
/>
|
|
57
|
+
</List>
|
|
58
|
+
</Card>
|
|
59
|
+
|
|
60
|
+
<Divider />
|
|
61
|
+
|
|
62
|
+
<Text variant="label-large">Run it on a phone</Text>
|
|
63
|
+
<Text variant="body-small">
|
|
64
|
+
With a device connected over ADB, <code>adj dev --android</code> serves
|
|
65
|
+
this app over a trusted HTTPS tunnel and opens it fullscreen.
|
|
66
|
+
</Text>
|
|
67
|
+
|
|
68
|
+
<div>
|
|
69
|
+
<Button size="sm" variant="filled">
|
|
70
|
+
A filled button
|
|
71
|
+
</Button>
|
|
72
|
+
</div>
|
|
73
|
+
</Page>
|
|
74
|
+
);
|
|
75
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Card, CardContent, CardHeader, CardTitle, Page, Text } from "adjacent-ui";
|
|
2
|
+
|
|
3
|
+
import { SettingsPanel } from "./settings-panel";
|
|
4
|
+
|
|
5
|
+
export default function Settings() {
|
|
6
|
+
return (
|
|
7
|
+
<Page options={{ title: "Settings" }}>
|
|
8
|
+
<Card variant="outlined">
|
|
9
|
+
<CardHeader>
|
|
10
|
+
<CardTitle>Runtime</CardTitle>
|
|
11
|
+
</CardHeader>
|
|
12
|
+
<CardContent>
|
|
13
|
+
<Text variant="body-small">
|
|
14
|
+
Reported by <code>useAdjacent()</code> from{" "}
|
|
15
|
+
<code>adjacent-react</code>. The service worker registers in
|
|
16
|
+
production builds only, so it stays unavailable while developing.
|
|
17
|
+
</Text>
|
|
18
|
+
</CardContent>
|
|
19
|
+
</Card>
|
|
20
|
+
|
|
21
|
+
<SettingsPanel />
|
|
22
|
+
</Page>
|
|
23
|
+
);
|
|
24
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { useAdjacent } from "adjacent-react";
|
|
4
|
+
import { Button, List, ListItem, Text, useDisplayMode } from "adjacent-ui";
|
|
5
|
+
|
|
6
|
+
const INSTALL_HINT: Readonly<Record<string, string>> = {
|
|
7
|
+
android: "Open the browser menu and choose Install app.",
|
|
8
|
+
browser: "This browser cannot install the app.",
|
|
9
|
+
ios: "Open the Share sheet and choose Add to Home Screen.",
|
|
10
|
+
macos: "Open the Share menu and choose Add to Dock.",
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Adjacent reports installation and runtime state and renders no UI of its own,
|
|
15
|
+
* so what a prompt looks like is entirely this component's decision.
|
|
16
|
+
*/
|
|
17
|
+
export function SettingsPanel() {
|
|
18
|
+
const adjacent = useAdjacent();
|
|
19
|
+
const displayMode = useDisplayMode();
|
|
20
|
+
|
|
21
|
+
return (
|
|
22
|
+
<>
|
|
23
|
+
<List divided lastDivider={false}>
|
|
24
|
+
<ListItem headline="Connectivity" trailingSupportingText={adjacent.connectivity} />
|
|
25
|
+
<ListItem headline="Display mode" trailingSupportingText={displayMode} />
|
|
26
|
+
<ListItem
|
|
27
|
+
headline="Service worker"
|
|
28
|
+
trailingSupportingText={adjacent.serviceWorker.status}
|
|
29
|
+
/>
|
|
30
|
+
<ListItem headline="Installation" trailingSupportingText={adjacent.state.status} />
|
|
31
|
+
</List>
|
|
32
|
+
|
|
33
|
+
{adjacent.state.status === "available" ? (
|
|
34
|
+
<div>
|
|
35
|
+
<Button onClick={() => void adjacent.install()} variant="filled">
|
|
36
|
+
Install app
|
|
37
|
+
</Button>
|
|
38
|
+
</div>
|
|
39
|
+
) : null}
|
|
40
|
+
|
|
41
|
+
{adjacent.state.status === "manual" ? (
|
|
42
|
+
<Text variant="body-small">{INSTALL_HINT[adjacent.state.platform]}</Text>
|
|
43
|
+
) : null}
|
|
44
|
+
|
|
45
|
+
{adjacent.serviceWorker.status === "update-available" ? (
|
|
46
|
+
<div>
|
|
47
|
+
<Button onClick={() => void adjacent.activateUpdate()} variant="tonal">
|
|
48
|
+
Update app
|
|
49
|
+
</Button>
|
|
50
|
+
</div>
|
|
51
|
+
) : null}
|
|
52
|
+
</>
|
|
53
|
+
);
|
|
54
|
+
}
|