@hanzo/ui 8.0.24 → 8.0.26
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/README.md +59 -0
- package/dist/ThemeToggleNext-AEDLHX5X.js +0 -1
- package/dist/ThemeToggleNext-N6ASYJ6J.cjs +0 -1
- package/dist/billing.cjs +0 -1
- package/dist/billing.js +0 -1
- package/dist/canvas.cjs +0 -1
- package/dist/canvas.js +0 -1
- package/dist/chunk-3NG33DV2.cjs +606 -0
- package/dist/chunk-3NG33DV2.cjs.map +1 -0
- package/dist/chunk-5CZOYONP.js +342 -0
- package/dist/chunk-5CZOYONP.js.map +1 -0
- package/dist/chunk-77AMCLN4.js +0 -1
- package/dist/chunk-7XDEUEWI.cjs +0 -1
- package/dist/{chunk-P2P6ST6J.js → chunk-7ZNK6JSS.js} +9 -395
- package/dist/chunk-7ZNK6JSS.js.map +1 -0
- package/dist/chunk-ARV3P4CE.cjs +0 -1
- package/dist/chunk-FVQXROBK.js +0 -1
- package/dist/chunk-GVCOAJLO.js +396 -0
- package/dist/chunk-GVCOAJLO.js.map +1 -0
- package/dist/chunk-GWNNLYX4.cjs +352 -0
- package/dist/chunk-GWNNLYX4.cjs.map +1 -0
- package/dist/chunk-MWBFAV3D.cjs +0 -1
- package/dist/{chunk-NBZDIMP3.cjs → chunk-ONVERVFG.cjs} +33 -439
- package/dist/chunk-ONVERVFG.cjs.map +1 -0
- package/dist/chunk-P2QU5MN5.js +554 -0
- package/dist/chunk-P2QU5MN5.js.map +1 -0
- package/dist/chunk-WHJR5S4L.cjs +417 -0
- package/dist/chunk-WHJR5S4L.cjs.map +1 -0
- package/dist/chunk-ZGTJCJ55.js +0 -1
- package/dist/dashboard.cjs +0 -1
- package/dist/dashboard.js +0 -1
- package/dist/data.cjs +0 -1
- package/dist/data.js +0 -1
- package/dist/framework/CollectionBuilder.d.ts +12 -0
- package/dist/framework/CollectionsBrowser.d.ts +26 -19
- package/dist/framework/DocTypeRecords.d.ts +31 -11
- package/dist/framework/MediaGrid.d.ts +42 -0
- package/dist/framework/RecordCards.d.ts +35 -0
- package/dist/framework/builder-logic.d.ts +76 -0
- package/dist/framework/client.d.ts +31 -44
- package/dist/framework/core.cjs +212 -0
- package/dist/framework/core.cjs.map +1 -0
- package/dist/framework/core.d.ts +6 -0
- package/dist/framework/core.js +3 -0
- package/dist/framework/core.js.map +1 -0
- package/dist/framework/data.d.ts +2 -2
- package/dist/framework/fields.d.ts +47 -4
- package/dist/framework/index.cjs +1339 -0
- package/dist/framework/index.cjs.map +1 -0
- package/dist/framework/index.d.ts +9 -23
- package/dist/framework/index.js +1118 -0
- package/dist/framework/index.js.map +1 -0
- package/dist/framework/media.d.ts +53 -0
- package/dist/framework/parts.d.ts +74 -0
- package/dist/framework/responsive.d.ts +41 -0
- package/dist/framework/types.d.ts +13 -7
- package/dist/gitops.cjs +0 -1
- package/dist/gitops.js +0 -1
- package/dist/gui-config.cjs +0 -1
- package/dist/gui-config.js +0 -1
- package/dist/index.cjs +0 -1
- package/dist/index.js +0 -1
- package/dist/network.cjs +0 -1
- package/dist/network.js +0 -1
- package/dist/oss.cjs +0 -1
- package/dist/oss.js +0 -1
- package/dist/primitives/bases/data/index.cjs +0 -1
- package/dist/primitives/bases/data/index.js +0 -1
- package/dist/product/SelectMenu.d.ts +13 -1
- package/dist/product/index.cjs +2061 -337
- package/dist/product/index.cjs.map +1 -1
- package/dist/product/index.js +1909 -4
- package/dist/product/index.js.map +1 -1
- package/dist/product/social/api.cjs +0 -1
- package/dist/product/social/api.js +0 -1
- package/dist/product/social/index.cjs +17 -17
- package/dist/product/social/index.js +3 -3
- package/dist/telemetry.cjs +0 -1
- package/dist/telemetry.js +0 -1
- package/dist/usage.cjs +0 -1
- package/dist/usage.js +0 -1
- package/dist/wallet.cjs +0 -1
- package/dist/wallet.js +0 -1
- package/package.json +12 -18
- package/dist/chunk-2BM42AZR.cjs +0 -2301
- package/dist/chunk-2BM42AZR.cjs.map +0 -1
- package/dist/chunk-7P7R7FC5.js +0 -2231
- package/dist/chunk-7P7R7FC5.js.map +0 -1
- package/dist/chunk-NBZDIMP3.cjs.map +0 -1
- package/dist/chunk-P2P6ST6J.js.map +0 -1
- package/dist/framework/Loader.d.ts +0 -4
- package/dist/framework.cjs +0 -760
- package/dist/framework.cjs.map +0 -1
- package/dist/framework.d.ts +0 -1
- package/dist/framework.js +0 -730
- package/dist/framework.js.map +0 -1
- package/dist/styles/hanzo-motion.css +0 -188
package/README.md
CHANGED
|
@@ -34,6 +34,65 @@ Both layers are **presentational + data-injected**: the host supplies rows and p
|
|
|
34
34
|
|
|
35
35
|
> Each layer owns a `DataTable` — the product one is a generic typed `<T>` list; the data one is the field-driven record grid. Keeping the record layer on the `./data` subpath keeps each name unambiguous.
|
|
36
36
|
|
|
37
|
+
## The DocType renderer — one UI for every business app
|
|
38
|
+
|
|
39
|
+
`@hanzo/ui/framework` renders the **Hanzo Framework** DocType engine (`hanzoai/cloud
|
|
40
|
+
clients/framework`, live at `/v1/framework/*`; also published as
|
|
41
|
+
[`hanzoai/framework`](https://github.com/hanzoai/framework) over
|
|
42
|
+
[`hanzoai/doctype`](https://github.com/hanzoai/doctype)). The engine is
|
|
43
|
+
metadata-driven: a CMS Page, an ERP Sales Order, a Helpdesk Ticket and a CRM
|
|
44
|
+
Company are the same kind of thing — a DocType with typed fields. So they get the
|
|
45
|
+
same renderer. An **app lane is a `module` filter** over the DocType registry plus
|
|
46
|
+
its own copy; there is no per-lane list, form, detail or builder to drift.
|
|
47
|
+
|
|
48
|
+
```tsx
|
|
49
|
+
import { createFrameworkClient } from '@hanzo/ui/framework/core' // transport only
|
|
50
|
+
import { CollectionsBrowser, DocTypeRecords, DocTypeDetail } from '@hanzo/ui/framework'
|
|
51
|
+
|
|
52
|
+
// The HOST owns transport: paths are relative to the framework root, so the app
|
|
53
|
+
// decides the origin + the credential. Nothing in the library picks a URL.
|
|
54
|
+
const client = createFrameworkClient({
|
|
55
|
+
get: (p) => api.get(`/v1/framework/${p}`),
|
|
56
|
+
post: (p, b) => api.post(`/v1/framework/${p}`, b),
|
|
57
|
+
put: (p, b) => api.put(`/v1/framework/${p}`, b),
|
|
58
|
+
del: (p) => api.del(`/v1/framework/${p}`),
|
|
59
|
+
})
|
|
60
|
+
|
|
61
|
+
<CollectionsBrowser client={client} module="erp" label="ERP" … onOpen={openCollection} />
|
|
62
|
+
<DocTypeRecords client={client} doctype="erp-sales" onOpen={…} onCreate={…} />
|
|
63
|
+
<DocTypeDetail client={client} doctype="erp-sales" name={name} onBack={…} onView={…} />
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
**Mobile first — a rule, not a fallback.** The layout is decided from the
|
|
67
|
+
CONTAINER's measured width (`onLayout`, so a narrow pane on a wide screen is still
|
|
68
|
+
a phone), and the answer to "not measured yet" is PHONE. So the first paint —
|
|
69
|
+
SSR included — is a stacked **card** per record; the `@hanzo/data` table is the
|
|
70
|
+
enhancement applied once the box proves it can hold one. Every control meets the
|
|
71
|
+
44px tap floor (WCAG 2.5.5) at phone width, and the table honors the DocType's own
|
|
72
|
+
`inListView` projection so a twelve-field document does not become a horizontal
|
|
73
|
+
scroll wall.
|
|
74
|
+
|
|
75
|
+
**Two entries, because they are two different things.** `./framework/core` is the
|
|
76
|
+
contract — wire types, the client, the metadata↔render mapping, the builder
|
|
77
|
+
projection, the media model. It imports no React and no `@hanzo/gui`, so a data
|
|
78
|
+
layer, a server route or a plain node test can bind the engine without loading a
|
|
79
|
+
component tree. `./framework` re-exports all of it plus the views.
|
|
80
|
+
|
|
81
|
+
**Ports, not bindings.** The client takes a `FrameworkTransport`; the DAM takes a
|
|
82
|
+
`MediaStore` (ensure-bucket / presign / put / delete) and a **bucket parameter**,
|
|
83
|
+
so ERP attachments never land in a bucket named after the CMS. Routing is
|
|
84
|
+
`onOpen`/`onCreate`/`onBack`/`onView` callbacks — no router import anywhere.
|
|
85
|
+
|
|
86
|
+
**One entry, not two.** 8.0.24 shipped a first `./framework` lift with the same
|
|
87
|
+
`createFrameworkClient(Transport)` shape but no builder, no DAM and no mobile
|
|
88
|
+
layout, injecting `renderBuilder`/`renderMedia` instead. 8.0.25 is the convergence:
|
|
89
|
+
the same entry, a superset implementation, and every 8.0.24 name still resolves —
|
|
90
|
+
`Transport` aliases `FrameworkTransport`, `Loader` aliases the in-flow `Loading`,
|
|
91
|
+
`setupDescription`/`setupBullets` stay optional (they now fall back to copy DERIVED
|
|
92
|
+
FROM THE LANE, which is the actual fix — the old default was one lane's words), and
|
|
93
|
+
`renderBuilder`/`renderMedia` still win when supplied. A host that passes neither
|
|
94
|
+
now gets the real built-in `CollectionBuilder`/`MediaGrid` instead of nothing.
|
|
95
|
+
|
|
37
96
|
## Motion
|
|
38
97
|
|
|
39
98
|
The calm motion vocabulary (`FadeIn`, drawer/backdrop transitions, skeleton shimmer, live pulse) ships as one stylesheet. Import it once at the app root:
|
package/dist/billing.cjs
CHANGED
package/dist/billing.js
CHANGED
package/dist/canvas.cjs
CHANGED
package/dist/canvas.js
CHANGED