@jfdevelops/react-layout 0.17.1 → 0.17.3
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/dist/create-config/for-resources/create-component.d.cts +82 -30
- package/dist/create-config/for-resources/create-component.d.cts.map +1 -1
- package/dist/create-config/for-resources/create-component.d.mts +82 -30
- package/dist/create-config/for-resources/create-component.d.mts.map +1 -1
- package/dist/create-config/for-resources/create-for-resources.cjs +45 -28
- package/dist/create-config/for-resources/create-for-resources.cjs.map +1 -1
- package/dist/create-config/for-resources/create-for-resources.mjs +45 -28
- package/dist/create-config/for-resources/create-for-resources.mjs.map +1 -1
- package/dist/create-config/for-resources/scoped-layout.d.cts +3 -2
- package/dist/create-config/for-resources/scoped-layout.d.cts.map +1 -1
- package/dist/create-config/for-resources/scoped-layout.d.mts +3 -2
- package/dist/create-config/for-resources/scoped-layout.d.mts.map +1 -1
- package/dist/props.d.cts +13 -5
- package/dist/props.d.cts.map +1 -1
- package/dist/props.d.mts +13 -5
- package/dist/props.d.mts.map +1 -1
- package/package.json +3 -3
- package/skills/build-react-layouts/references/factory-patterns.md +38 -19
package/dist/props.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"props.d.mts","names":[],"sources":["../src/props.ts"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"props.d.mts","names":[],"sources":["../src/props.ts"],"mappings":";;;;;;AAsBA;;;;;AAAA,KAAY,kBAAA,4CACV,KAAA,EAAO,WAAA,EACP,OAAA,EAAS,OAAA,KACN,MAAA;;;;;;;;;;;;UAaY,qBAAA,SACP,aAAA,iBACM,KAAA,SAAc,aAAA,GAAgB,YAAA,CAAa,KAAA;EAIzD,KAAA,GAAQ,KAAA;EACR,MAAA,EAAQ,kBAAA,CAAmB,WAAA,EAAa,OAAA,EAAS,MAAA;AAAA;AAAA,KAGvC,cAAA,mBACQ,aAAA,CAAc,kBAAA;EAGhC,IAAA,EAAM,kBAAA,CAAmB,IAAA;EACzB,QAAA,EAAU,eAAA,CAAgB,YAAA,CAAa,SAAA;AAAA;AAAA,KAE7B,eAAA,mBACQ,aAAA,CAAc,kBAAA,2BAEhC,KAAA,EAAO,IAAA,CAAK,cAAA,CAAe,SAAA,EAAW,IAAA,OACnC,aAAA;AAAA,KACO,iBAAA,mBACQ,aAAA,CAAc,kBAAA,KAC9B,aAAA,GAAgB,eAAA,CAAgB,SAAA;AAAA,KACxB,eAAA,mBACQ,aAAA,CAAc,kBAAA,mBAChB,iBAAA,CAAkB,SAAA,KAChC,OAAA,SAAgB,eAAA,CAAgB,SAAA,IAAa,UAAA,CAAW,OAAA,IAAW,OAAA;AAAA,KAC3D,mBAAA,mBACQ,aAAA,CAAc,kBAAA,mBAChB,iBAAA,CAAkB,SAAA,uBACd,oBAAA,IAEpB,eAAA,CAAgB,SAAA,EAAW,OAAA,UAAiB,aAAA,GACxC,eAAA,CAAgB,SAAA,EAAW,OAAA,IAAW,gBAAA,CAAiB,WAAA;AAAA,KAEjD,eAAA;;;;;KAKP,SAAA,iBAA0B,eAAA,WAA0B,OAAO;AAAA,KAC3D,iBAAA,GAAoB,SAAS;;;;KAItB,aAAA,mCACE,CAAA,aAAc,SAAS;AAAA,KAGhC,SAAA,eAAwB,aAAA,OAAoB,CAAA,SAAU,KAAA;AAAA,KACtD,WAAA,2CAAsD,SAAA,2BAC3C,YAAA,GAAe,YAAA,CAAa,GAAA,UAAa,IAAA,GAAO,GAAA,iBACxD,YAAA;AAAA,KACH,qBAAA,eACW,aAAA,uBACO,aAAA,CAAc,KAAA,gBACtB,iBAAA,IACX,IAAA,CACF,KAAA,EACA,SAAA,CACE,KAAA,EACA,WAAA,CAAY,YAAA,EAAc,IAAA;AAAA,KAIlB,qBAAA,eACI,aAAA,uBACO,aAAA,CAAc,KAAA,KACjC,kBAAA,CAAmB,qBAAA,CAAsB,KAAA,EAAO,YAAA,iBAClD,OAAA,CACE,kBAAA,CAAmB,qBAAA,CAAsB,KAAA,EAAO,YAAA;;;AAjEK;AAGzD;KAqEY,8BAAA,eACI,aAAA,uBACO,aAAA,CAAc,KAAA,KACjC,2BAAA,CACF,qBAAA,CAAsB,KAAA,EAAO,YAAA,iBAE7B,OAAA,CACE,2BAAA,CACE,qBAAA,CAAsB,KAAA,EAAO,YAAA;AAAA,KAGvB,iBAAA,mBACQ,aAAA,CAAc,kBAAA,mBAChB,iBAAA,CAAkB,SAAA,uBACd,oBAAA,4BACC,aAAA,CACnB,mBAAA,CAAoB,SAAA,EAAW,OAAA,EAAS,WAAA,6BAEtB,aAAA,SAClB,IAAA,CACF,YAAA,CAAa,WAAA,IACX,qBAAA,CACE,mBAAA,CAAoB,SAAA,EAAW,OAAA,EAAS,WAAA,GACxC,YAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jfdevelops/react-layout",
|
|
3
|
-
"version": "0.17.
|
|
3
|
+
"version": "0.17.3",
|
|
4
4
|
"description": "A React library for creating layout components.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -27,8 +27,8 @@
|
|
|
27
27
|
"node": "^20.19.0 || >=22.12.0"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@jfdevelops/react-layout-composables": "0.2.
|
|
31
|
-
"@jfdevelops/react-layout-validator": "0.2.
|
|
30
|
+
"@jfdevelops/react-layout-composables": "0.2.6",
|
|
31
|
+
"@jfdevelops/react-layout-validator": "0.2.6"
|
|
32
32
|
},
|
|
33
33
|
"peerDependencies": {
|
|
34
34
|
"react": ">=18",
|
|
@@ -84,25 +84,33 @@ need distinct render implementations:
|
|
|
84
84
|
|
|
85
85
|
```tsx
|
|
86
86
|
const createCalendarPage = createResourceLayout
|
|
87
|
-
.forResources('appointments', 'availability')
|
|
87
|
+
.forResources('appointments', 'availability');
|
|
88
|
+
|
|
89
|
+
const appointments = createCalendarPage.createResourceComponents({
|
|
90
|
+
resource: 'appointments',
|
|
91
|
+
props: {
|
|
92
|
+
defined: { segments: { title: 'Appointments' } },
|
|
93
|
+
},
|
|
94
|
+
render: function AppointmentsRender() {
|
|
95
|
+
return <AppointmentsView />;
|
|
96
|
+
},
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
const availability = createCalendarPage.createResourceComponents({
|
|
100
|
+
resource: 'availability',
|
|
101
|
+
props: {
|
|
102
|
+
defined: { segments: { title: 'Availability' } },
|
|
103
|
+
},
|
|
104
|
+
render: function AvailabilityRender() {
|
|
105
|
+
return <AvailabilityView />;
|
|
106
|
+
},
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
const createCalendarResourcePage = createCalendarPage
|
|
88
110
|
.createComponent({
|
|
89
111
|
resources: {
|
|
90
|
-
appointments
|
|
91
|
-
|
|
92
|
-
title: 'Appointments',
|
|
93
|
-
},
|
|
94
|
-
render: function AppointmentsRender() {
|
|
95
|
-
return <AppointmentsView />;
|
|
96
|
-
},
|
|
97
|
-
},
|
|
98
|
-
availability: {
|
|
99
|
-
segments: {
|
|
100
|
-
title: 'Availability',
|
|
101
|
-
},
|
|
102
|
-
render: function AvailabilityRender() {
|
|
103
|
-
return <AvailabilityView />;
|
|
104
|
-
},
|
|
105
|
-
},
|
|
112
|
+
appointments,
|
|
113
|
+
availability,
|
|
106
114
|
},
|
|
107
115
|
render: function Render({ resource, children }, context) {
|
|
108
116
|
return (
|
|
@@ -119,10 +127,21 @@ const createCalendarPage = createResourceLayout
|
|
|
119
127
|
})
|
|
120
128
|
.asHOF();
|
|
121
129
|
|
|
122
|
-
export const AppointmentsPage =
|
|
123
|
-
export const AvailabilityPage =
|
|
130
|
+
export const AppointmentsPage = createCalendarResourcePage('appointments');
|
|
131
|
+
export const AvailabilityPage = createCalendarResourcePage('availability');
|
|
132
|
+
|
|
133
|
+
<AppointmentsPage />;
|
|
134
|
+
<AppointmentsPage segments={{ title: 'Override' }} />;
|
|
135
|
+
<AvailabilityPage />;
|
|
124
136
|
```
|
|
125
137
|
|
|
138
|
+
Resource entries use one optional `props` bag: `include` exposes layout props
|
|
139
|
+
without defaults, `custom` declares additional props, and `defined` bakes
|
|
140
|
+
values into that resource. Every `defined` key is included automatically and
|
|
141
|
+
becomes optional at the bound call site. When a caller supplies the same prop,
|
|
142
|
+
the call-site value wins. Keep layout values inside `props.defined`, not beside
|
|
143
|
+
`render` on the entry.
|
|
144
|
+
|
|
126
145
|
Use this pattern only when the resources share meaningful behavior, controls,
|
|
127
146
|
or state transitions. The outer renderer should own behavior shared by the
|
|
128
147
|
resource subset. Each resource renderer should own resource-specific data and
|