diff --git a/package.json b/package.json
index f1e9965..9d42a7d 100644
--- a/package.json
+++ b/package.json
@@ -69,6 +69,7 @@
"react": "^18.2.0",
"react-dom": "^18.2.0",
"remix-hono": "^0.0.16",
+ "remix-island": "^0.2.0",
"zod": "^3.23.8"
},
"devDependencies": {
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index faf196f..063090d 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -35,6 +35,9 @@ dependencies:
remix-hono:
specifier: ^0.0.16
version: 0.0.16(typescript@5.4.5)(zod@3.23.8)
+ remix-island:
+ specifier: ^0.2.0
+ version: 0.2.0(@remix-run/react@2.13.1)(@remix-run/server-runtime@2.13.1)(react-dom@18.3.1)(react@18.3.1)
zod:
specifier: ^3.23.8
version: 3.23.8
@@ -6745,6 +6748,20 @@ packages:
- typescript
dev: false
+ /remix-island@0.2.0(@remix-run/react@2.13.1)(@remix-run/server-runtime@2.13.1)(react-dom@18.3.1)(react@18.3.1):
+ resolution: {integrity: sha512-NujWtmulgupxNOMiWKAj8lg56eYsy09aV/2pML8rov8N8LmY1UnSml4XYad+KHLy/pgZ1D9UxAmjI6GBJydTUg==}
+ peerDependencies:
+ '@remix-run/react': '>= 1'
+ '@remix-run/server-runtime': '>= 1'
+ react: '>= 16.8'
+ react-dom: '>= 16.8'
+ dependencies:
+ '@remix-run/react': 2.13.1(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5)
+ '@remix-run/server-runtime': 2.13.1(typescript@5.4.5)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ dev: false
+
/require-like@0.1.2:
resolution: {integrity: sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==}
dev: true
diff --git a/src/remix-app/Document.tsx b/src/remix-app/Document.tsx
new file mode 100644
index 0000000..f9e668e
--- /dev/null
+++ b/src/remix-app/Document.tsx
@@ -0,0 +1,30 @@
+import { Links, Meta, Scripts, ScrollRestoration } from '@remix-run/react';
+import { createHead } from 'remix-island';
+
+import { useNonce } from './hooks/nonce';
+
+import type { PropsWithChildren } from 'react';
+
+const Head = createHead(() => (
+ <>
+
+
+
+ >
+));
+
+const Document = ({ children }: PropsWithChildren) => {
+ const nonce = useNonce();
+
+ return (
+ <>
+