@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.
Files changed (97) hide show
  1. package/README.md +59 -0
  2. package/dist/ThemeToggleNext-AEDLHX5X.js +0 -1
  3. package/dist/ThemeToggleNext-N6ASYJ6J.cjs +0 -1
  4. package/dist/billing.cjs +0 -1
  5. package/dist/billing.js +0 -1
  6. package/dist/canvas.cjs +0 -1
  7. package/dist/canvas.js +0 -1
  8. package/dist/chunk-3NG33DV2.cjs +606 -0
  9. package/dist/chunk-3NG33DV2.cjs.map +1 -0
  10. package/dist/chunk-5CZOYONP.js +342 -0
  11. package/dist/chunk-5CZOYONP.js.map +1 -0
  12. package/dist/chunk-77AMCLN4.js +0 -1
  13. package/dist/chunk-7XDEUEWI.cjs +0 -1
  14. package/dist/{chunk-P2P6ST6J.js → chunk-7ZNK6JSS.js} +9 -395
  15. package/dist/chunk-7ZNK6JSS.js.map +1 -0
  16. package/dist/chunk-ARV3P4CE.cjs +0 -1
  17. package/dist/chunk-FVQXROBK.js +0 -1
  18. package/dist/chunk-GVCOAJLO.js +396 -0
  19. package/dist/chunk-GVCOAJLO.js.map +1 -0
  20. package/dist/chunk-GWNNLYX4.cjs +352 -0
  21. package/dist/chunk-GWNNLYX4.cjs.map +1 -0
  22. package/dist/chunk-MWBFAV3D.cjs +0 -1
  23. package/dist/{chunk-NBZDIMP3.cjs → chunk-ONVERVFG.cjs} +33 -439
  24. package/dist/chunk-ONVERVFG.cjs.map +1 -0
  25. package/dist/chunk-P2QU5MN5.js +554 -0
  26. package/dist/chunk-P2QU5MN5.js.map +1 -0
  27. package/dist/chunk-WHJR5S4L.cjs +417 -0
  28. package/dist/chunk-WHJR5S4L.cjs.map +1 -0
  29. package/dist/chunk-ZGTJCJ55.js +0 -1
  30. package/dist/dashboard.cjs +0 -1
  31. package/dist/dashboard.js +0 -1
  32. package/dist/data.cjs +0 -1
  33. package/dist/data.js +0 -1
  34. package/dist/framework/CollectionBuilder.d.ts +12 -0
  35. package/dist/framework/CollectionsBrowser.d.ts +26 -19
  36. package/dist/framework/DocTypeRecords.d.ts +31 -11
  37. package/dist/framework/MediaGrid.d.ts +42 -0
  38. package/dist/framework/RecordCards.d.ts +35 -0
  39. package/dist/framework/builder-logic.d.ts +76 -0
  40. package/dist/framework/client.d.ts +31 -44
  41. package/dist/framework/core.cjs +212 -0
  42. package/dist/framework/core.cjs.map +1 -0
  43. package/dist/framework/core.d.ts +6 -0
  44. package/dist/framework/core.js +3 -0
  45. package/dist/framework/core.js.map +1 -0
  46. package/dist/framework/data.d.ts +2 -2
  47. package/dist/framework/fields.d.ts +47 -4
  48. package/dist/framework/index.cjs +1339 -0
  49. package/dist/framework/index.cjs.map +1 -0
  50. package/dist/framework/index.d.ts +9 -23
  51. package/dist/framework/index.js +1118 -0
  52. package/dist/framework/index.js.map +1 -0
  53. package/dist/framework/media.d.ts +53 -0
  54. package/dist/framework/parts.d.ts +74 -0
  55. package/dist/framework/responsive.d.ts +41 -0
  56. package/dist/framework/types.d.ts +13 -7
  57. package/dist/gitops.cjs +0 -1
  58. package/dist/gitops.js +0 -1
  59. package/dist/gui-config.cjs +0 -1
  60. package/dist/gui-config.js +0 -1
  61. package/dist/index.cjs +0 -1
  62. package/dist/index.js +0 -1
  63. package/dist/network.cjs +0 -1
  64. package/dist/network.js +0 -1
  65. package/dist/oss.cjs +0 -1
  66. package/dist/oss.js +0 -1
  67. package/dist/primitives/bases/data/index.cjs +0 -1
  68. package/dist/primitives/bases/data/index.js +0 -1
  69. package/dist/product/SelectMenu.d.ts +13 -1
  70. package/dist/product/index.cjs +2061 -337
  71. package/dist/product/index.cjs.map +1 -1
  72. package/dist/product/index.js +1909 -4
  73. package/dist/product/index.js.map +1 -1
  74. package/dist/product/social/api.cjs +0 -1
  75. package/dist/product/social/api.js +0 -1
  76. package/dist/product/social/index.cjs +17 -17
  77. package/dist/product/social/index.js +3 -3
  78. package/dist/telemetry.cjs +0 -1
  79. package/dist/telemetry.js +0 -1
  80. package/dist/usage.cjs +0 -1
  81. package/dist/usage.js +0 -1
  82. package/dist/wallet.cjs +0 -1
  83. package/dist/wallet.js +0 -1
  84. package/package.json +12 -18
  85. package/dist/chunk-2BM42AZR.cjs +0 -2301
  86. package/dist/chunk-2BM42AZR.cjs.map +0 -1
  87. package/dist/chunk-7P7R7FC5.js +0 -2231
  88. package/dist/chunk-7P7R7FC5.js.map +0 -1
  89. package/dist/chunk-NBZDIMP3.cjs.map +0 -1
  90. package/dist/chunk-P2P6ST6J.js.map +0 -1
  91. package/dist/framework/Loader.d.ts +0 -4
  92. package/dist/framework.cjs +0 -760
  93. package/dist/framework.cjs.map +0 -1
  94. package/dist/framework.d.ts +0 -1
  95. package/dist/framework.js +0 -730
  96. package/dist/framework.js.map +0 -1
  97. 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:
@@ -1,4 +1,3 @@
1
- 'use client';
2
1
  export { ThemeToggleNext, ThemeToggleNext_default as default } from './chunk-77AMCLN4.js';
3
2
  import './chunk-FVQXROBK.js';
4
3
  //# sourceMappingURL=ThemeToggleNext-AEDLHX5X.js.map
@@ -1,4 +1,3 @@
1
- 'use client';
2
1
  'use strict';
3
2
 
4
3
  Object.defineProperty(exports, '__esModule', { value: true });
package/dist/billing.cjs CHANGED
@@ -1,4 +1,3 @@
1
- 'use client';
2
1
  'use strict';
3
2
 
4
3
  var billing = require('@hanzo/ui-shadcn/billing');
package/dist/billing.js CHANGED
@@ -1,4 +1,3 @@
1
- 'use client';
2
1
  export * from '@hanzo/ui-shadcn/billing';
3
2
  //# sourceMappingURL=billing.js.map
4
3
  //# sourceMappingURL=billing.js.map
package/dist/canvas.cjs CHANGED
@@ -1,4 +1,3 @@
1
- 'use client';
2
1
  'use strict';
3
2
 
4
3
  var canvas = require('@hanzo/canvas');
package/dist/canvas.js CHANGED
@@ -1,4 +1,3 @@
1
- 'use client';
2
1
  export * from '@hanzo/canvas';
3
2
  //# sourceMappingURL=canvas.js.map
4
3
  //# sourceMappingURL=canvas.js.map