@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.
@@ -1 +1 @@
1
- {"version":3,"file":"props.d.mts","names":[],"sources":["../src/props.ts"],"mappings":";;;;;;AAmBA;;;;;AAAA,KAAY,kBAAA,4CAIP,KAAA,EAAO,WAAA,EAAa,OAAA,EAAS,OAAA,KAAY,MAAA;;;;;;;;;;;;UAa7B,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,IAClB,eAAA,CAAgB,SAAA,EAAW,OAAA,UAAiB,aAAA,GAC5C,eAAA,CAAgB,SAAA,EAAW,OAAA,IAAW,gBAAA,CAAiB,WAAA;;;;KAK/C,aAAA,mCACE,CAAC;AAAA,KAGV,wBAAA,gDACW,YAAA,GAAe,YAAA,CAAa,GAAA,iBAAoB,GAAA,iBACxD,YAAA;AAAA,KAEH,wBAAA,gDACW,YAAA,GAAe,YAAA,CAAa,GAAA,uBACtC,GAAA,iBAEE,YAAA;AAAA,KAEI,qBAAA,eACI,aAAA,uBACO,aAAA,CAAc,KAAA,KACjC,kBAAA,CACF,IAAA,CAAK,KAAA,EAAO,wBAAA,CAAyB,YAAA,UAAsB,KAAA,KAE3D,OAAA,CACE,kBAAA,CACE,IAAA,CAAK,KAAA,EAAO,wBAAA,CAAyB,YAAA,UAAsB,KAAA;;;;;KAQrD,8BAAA,eACI,aAAA,uBACO,aAAA,CAAc,KAAA,KACjC,2BAAA,CACF,IAAA,CAAK,KAAA,EAAO,wBAAA,CAAyB,YAAA,UAAsB,KAAA,KAE3D,OAAA,CACE,2BAAA,CACE,IAAA,CAAK,KAAA,EAAO,wBAAA,CAAyB,YAAA,UAAsB,KAAA;AAAA,KAGrD,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"}
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.1",
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.4",
31
- "@jfdevelops/react-layout-validator": "0.2.4"
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
- segments: {
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 = createCalendarPage('appointments');
123
- export const AvailabilityPage = createCalendarPage('availability');
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