@weaverse/hydrogen 2.5.0 → 2.6.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/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2021 Paul Phan
3
+ Copyright (c) 2022 Weaverse
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/dist/index.js CHANGED
@@ -257,7 +257,10 @@ var import_hydrogen = require("@shopify/hydrogen");
257
257
 
258
258
  // package.json
259
259
  var package_default = {
260
- version: "2.5.0",
260
+ name: "@weaverse/hydrogen",
261
+ author: "Weaverse Team",
262
+ description: "Components, hooks, and utilities for building Shopify Hydrogen websites with Weaverse",
263
+ version: "2.6.0",
261
264
  license: "MIT",
262
265
  main: "dist/index.js",
263
266
  typings: "dist/index.d.ts",
@@ -265,6 +268,10 @@ var package_default = {
265
268
  publishConfig: {
266
269
  access: "public"
267
270
  },
271
+ repository: {
272
+ url: "git+https://github.com/Weaverse/weaverse.git",
273
+ directory: "packages/hydrogen"
274
+ },
268
275
  files: [
269
276
  "dist/*"
270
277
  ],
@@ -289,10 +296,8 @@ var package_default = {
289
296
  semi: false,
290
297
  singleQuote: true
291
298
  },
292
- name: "@weaverse/hydrogen",
293
- author: "Weaverse Team",
294
299
  dependencies: {
295
- "@weaverse/react": "2.5.0",
300
+ "@weaverse/react": "2.6.0",
296
301
  "react-error-boundary": "^4.0.11"
297
302
  },
298
303
  devDependencies: {
package/dist/index.mjs CHANGED
@@ -223,7 +223,10 @@ import { createWithCache } from "@shopify/hydrogen";
223
223
 
224
224
  // package.json
225
225
  var package_default = {
226
- version: "2.5.0",
226
+ name: "@weaverse/hydrogen",
227
+ author: "Weaverse Team",
228
+ description: "Components, hooks, and utilities for building Shopify Hydrogen websites with Weaverse",
229
+ version: "2.6.0",
227
230
  license: "MIT",
228
231
  main: "dist/index.js",
229
232
  typings: "dist/index.d.ts",
@@ -231,6 +234,10 @@ var package_default = {
231
234
  publishConfig: {
232
235
  access: "public"
233
236
  },
237
+ repository: {
238
+ url: "git+https://github.com/Weaverse/weaverse.git",
239
+ directory: "packages/hydrogen"
240
+ },
234
241
  files: [
235
242
  "dist/*"
236
243
  ],
@@ -255,10 +262,8 @@ var package_default = {
255
262
  semi: false,
256
263
  singleQuote: true
257
264
  },
258
- name: "@weaverse/hydrogen",
259
- author: "Weaverse Team",
260
265
  dependencies: {
261
- "@weaverse/react": "2.5.0",
266
+ "@weaverse/react": "2.6.0",
262
267
  "react-error-boundary": "^4.0.11"
263
268
  },
264
269
  devDependencies: {
package/package.json CHANGED
@@ -1,43 +1,48 @@
1
1
  {
2
- "version": "2.5.0",
3
- "license": "MIT",
4
- "main": "dist/index.js",
5
- "typings": "dist/index.d.ts",
6
- "module": "dist/index.mjs",
7
- "publishConfig": {
8
- "access": "public"
2
+ "name" : "@weaverse/hydrogen",
3
+ "author" : "Weaverse Team",
4
+ "description" : "Components, hooks, and utilities for building Shopify Hydrogen websites with Weaverse",
5
+ "version" : "2.6.0",
6
+ "license" : "MIT",
7
+ "main" : "dist/index.js",
8
+ "typings" : "dist/index.d.ts",
9
+ "module" : "dist/index.mjs",
10
+ "publishConfig" : {
11
+ "access" : "public"
9
12
  },
10
- "files": [
13
+ "repository" : {
14
+ "url" : "git+https://github.com/Weaverse/weaverse.git",
15
+ "directory" : "packages/hydrogen"
16
+ },
17
+ "files" : [
11
18
  "dist/*"
12
19
  ],
13
- "engines": {
14
- "node": ">=16"
20
+ "engines" : {
21
+ "node" : ">=16"
15
22
  },
16
- "scripts": {
17
- "start": "npm run dev",
18
- "dev": "tsup src/index.ts --format esm,cjs --dts --outDir dist --watch --external @remix-run/react,@shopify/hydrogen",
19
- "build": "tsup src/index.ts --format esm,cjs --dts --outDir dist --external @remix-run/react,@shopify/hydrogen",
20
- "clean": "rimraf dist",
21
- "prepublish": "npm run build"
23
+ "scripts" : {
24
+ "start" : "npm run dev",
25
+ "dev" : "tsup src/index.ts --format esm,cjs --dts --outDir dist --watch --external @remix-run/react,@shopify/hydrogen",
26
+ "build" : "tsup src/index.ts --format esm,cjs --dts --outDir dist --external @remix-run/react,@shopify/hydrogen",
27
+ "clean" : "rimraf dist",
28
+ "prepublish" : "npm run build"
22
29
  },
23
- "peerDependencies": {
24
- "react": ">=18",
25
- "react-dom": ">=18",
26
- "@remix-run/react": "^2.1.0",
27
- "@shopify/hydrogen": "^2023.10.2"
30
+ "peerDependencies" : {
31
+ "react" : ">=18",
32
+ "react-dom" : ">=18",
33
+ "@remix-run/react" : "^2.1.0",
34
+ "@shopify/hydrogen" : "^2023.10.2"
28
35
  },
29
- "prettier": {
30
- "printWidth": 80,
31
- "semi": false,
32
- "singleQuote": true
36
+ "prettier" : {
37
+ "printWidth" : 80,
38
+ "semi" : false,
39
+ "singleQuote" : true
33
40
  },
34
- "name": "@weaverse/hydrogen",
35
- "author": "Weaverse Team",
36
- "dependencies": {
37
- "@weaverse/react": "2.5.0",
38
- "react-error-boundary": "^4.0.11"
41
+ "dependencies" : {
42
+ "@weaverse/react" : "2.6.0",
43
+ "react-error-boundary" : "^4.0.11"
39
44
  },
40
- "devDependencies": {
41
- "@shopify/remix-oxygen": "^2.0.1"
45
+ "devDependencies" : {
46
+ "@shopify/remix-oxygen" : "^2.0.1"
42
47
  }
43
48
  }
package/readme.md ADDED
@@ -0,0 +1,173 @@
1
+ # @weaverse/hydrogen
2
+
3
+ ## Overview
4
+
5
+ `@weaverse/hydrogen` is a crucial package within the Weaverse ecosystem, designed to facilitate the integration of
6
+ Shopify Hydrogen and Remix projects with the Weaverse CMS. It leverages `@weaverse/react` for rendering content and
7
+ provides a client for easy setup and data fetching from Weaverse CMS.
8
+
9
+ ## Key Features
10
+
11
+ - **Weaverse Client Integration**: Enables seamless integration with Weaverse CMS, allowing for efficient data fetching
12
+ and rendering in Hydrogen/Remix projects.
13
+ - **Dynamic Data Fetching**: Fetch and render page data and global theme settings server-side, ensuring dynamic and
14
+ consistent content delivery.
15
+ - **Component Registration and Rendering**: Register React components with Weaverse and render them using
16
+ the `WeaverseHydrogenRoot` component.
17
+ - **Flexible Schema Definition**: Define behavior and interactivity of components within Weaverse Studio through
18
+ the `HydrogenComponentSchema`.
19
+ - **Customizable Input Settings**: Specify configurations for merchant-customizable component settings in Weaverse
20
+ Studio.
21
+
22
+ ## Installation
23
+
24
+ ```bash
25
+ npm install @weaverse/hydrogen
26
+ ```
27
+
28
+ ## Setup and Usage
29
+
30
+ ### Weaverse Client Setup
31
+
32
+ Initialize the Weaverse Client to establish a connection between your Hydrogen project and Weaverse CMS:
33
+
34
+ ```typescript
35
+ // <root>/server.ts
36
+
37
+ import {createWeaverseClient} from '~/weaverse/create-weaverse.server';
38
+
39
+ const handleRequest = createRequestHandler({
40
+ // ...
41
+ getLoadContext: () => ({
42
+ // Injecting the Weaverse client into the loader context.
43
+ weaverse: createWeaverseClient({
44
+ storefront,
45
+ request,
46
+ env,
47
+ cache,
48
+ waitUntil,
49
+ }),
50
+ // ... more app context properties
51
+ }),
52
+ });
53
+
54
+ ```
55
+
56
+ ### Data Fetching and Rendering
57
+
58
+ Use the Weaverse Client to fetch data such as page content and global theme settings:
59
+
60
+ ```typescript
61
+ // <root>/app/routes/($locale)._index.tsx
62
+
63
+ import { json } from '@shopify/remix-oxygen';
64
+ import { type RouteLoaderArgs } from '@weaverse/hydrogen';
65
+
66
+ export async function loader({context}: RouteLoaderArgs) {
67
+ let {weaverse} = context;
68
+
69
+ return json({
70
+ // The key prop for a Weaverse page must always be `weaverseData`
71
+ weaverseData: await weaverse.loadPage(),
72
+ // Additional page data...
73
+ });
74
+ }
75
+
76
+ ```
77
+
78
+ Implement the `WeaverseHydrogenRoot` component to render the fetched content:
79
+
80
+ ```jsx
81
+ // <root>/app/weaverse/index.tsx
82
+
83
+ import {WeaverseHydrogenRoot} from '@weaverse/hydrogen';
84
+ import {GenericError} from '~/components/GenericError';
85
+ import {components} from './components';
86
+
87
+ export function WeaverseContent() {
88
+ return (
89
+ <WeaverseHydrogenRoot
90
+ components={components}
91
+ errorComponent={GenericError}
92
+ />
93
+ );
94
+ }
95
+
96
+
97
+ // <root>/app/routes/($locale)._index.tsx
98
+
99
+ import { WeaverseContent } from '~/weaverse';
100
+
101
+ export default function Homepage() {
102
+ return <WeaverseContent />;
103
+ }
104
+
105
+ ```
106
+
107
+ ### Defining Component Schema
108
+
109
+ Define your component's schema to control its behavior and interactivity within Weaverse Studio:
110
+
111
+ ```typescript
112
+ import type { HydrogenComponentSchema } from '@weaverse/hydrogen';
113
+
114
+ export let schema: HydrogenComponentSchema = {
115
+ title: 'Product Card',
116
+ type: 'product-card',
117
+ inspector: [
118
+ {
119
+ group: 'Settings',
120
+ inputs: [] // Defining input settings
121
+ }
122
+ ],
123
+ childTypes: ['image', 'product-title', 'price'],
124
+ presets: {
125
+ type: 'product-card',
126
+ children: [
127
+ { type: 'image' },
128
+ { type: 'product-title' },
129
+ { type: 'price' },
130
+ ],
131
+ },
132
+ limit: 3,
133
+ enabledOn: {
134
+ pages: ['INDEX', 'PRODUCT', 'ALL_PRODUCTS'],
135
+ groups: ['body'],
136
+ },
137
+ toolbar: ['general-settings', ['duplicate', 'delete']],
138
+ };
139
+
140
+ ```
141
+
142
+ ### Customizing Input Settings
143
+
144
+ Customize input settings for merchant-adjustable component configurations in Weaverse Studio:
145
+
146
+ ```typescript
147
+ {
148
+ type: "select",
149
+ label: "Image aspect ratio",
150
+ name: "imageAspectRatio",
151
+ configs: {
152
+ options: [
153
+ { value: "auto", label: "Adapt to image" },
154
+ { value: "1/1", label: "1/1" },
155
+ { value: "3/4", label: "3/4" },
156
+ { value: "4/3", label: "4/3" },
157
+ ]
158
+ },
159
+ defaultValue: "auto"
160
+ }
161
+
162
+ ```
163
+
164
+ ## Contributing
165
+
166
+ Contributions to the `@weaverse/hydrogen` package are highly appreciated. Please refer to our contributing guidelines
167
+ for more details on how to contribute effectively.
168
+
169
+ ## License
170
+
171
+ This package is created by The Weaverse Team ([https://weaverse.io](https://weaverse.io)) and is licensed under the MIT
172
+ License.
173
+