@object-ui/plugin-calendar 17.3.0 → 17.5.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/CHANGELOG.md +346 -0
- package/README.md +0 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +304 -205
- package/dist/index.umd.cjs +1 -1
- package/package.json +12 -12
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,346 @@
|
|
|
1
1
|
# @object-ui/plugin-calendar
|
|
2
2
|
|
|
3
|
+
## 17.5.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 515328f: `calendar-view` has no declared-but-inert inputs left: `allowCreate` works, `colorMapping` is retired (objectui#4454, objectui#4493)
|
|
8
|
+
|
|
9
|
+
Two of this widget's registry inputs were declared and read by nobody — the one
|
|
10
|
+
state ADR-0049's enforce-or-remove framing says must not persist. Measurement
|
|
11
|
+
answered them in opposite directions.
|
|
12
|
+
|
|
13
|
+
**`allowCreate` is enforced.** The handler it would gate was already built in the
|
|
14
|
+
renderer — `handleAddClick`, dispatching `{ type: 'create', payload: {} }` on the
|
|
15
|
+
widget's own `onAction` channel — and simply never passed. `CalendarView` renders
|
|
16
|
+
its **New event** button behind `onAddClick`, so on the SDUI path that button
|
|
17
|
+
never existed and the handler was unreachable: both halves of one feature were
|
|
18
|
+
present and had never been introduced to each other. An authored
|
|
19
|
+
`allowCreate: true` now supplies the handler to `onAddClick`, and clicking the
|
|
20
|
+
button dispatches the create action.
|
|
21
|
+
|
|
22
|
+
The wiring goes through the declared `onAddClick` hatch rather than around it via
|
|
23
|
+
a second prop. That key is already one of the renderer's function-typed host
|
|
24
|
+
hatches (objectui#4453), so a React host could switch the affordance on today and
|
|
25
|
+
that path is untouched — a host handler still replaces the action dispatch rather
|
|
26
|
+
than running alongside it, the same precedence `onEventClick` keeps. An authored
|
|
27
|
+
`onAddClick` string is still dropped, so turning the affordance on cannot
|
|
28
|
+
reintroduce that card's uncaught handler crash.
|
|
29
|
+
|
|
30
|
+
Only the boolean `true` turns it on. Absent, `false`, and the off-type spellings
|
|
31
|
+
JSON invites (`'true'`, `1`, an object) all resolve to the absent-key answer, which
|
|
32
|
+
on this prop is literally what makes the button not render. Every node that never
|
|
33
|
+
authored the key renders exactly as before.
|
|
34
|
+
|
|
35
|
+
**`colorMapping` is removed.** It had no read site anywhere: the renderer's event
|
|
36
|
+
mapping takes the colour straight off the record (`color: record[colorField]`),
|
|
37
|
+
and `CalendarView` resolves a colour from `event.color`. An author who wrote the
|
|
38
|
+
documented `colorMapping: { meeting: 'blue' }` got no mapping, no warning and no
|
|
39
|
+
error — the raw field value was used as the colour, which for a picklist value
|
|
40
|
+
like `meeting` is not a colour at all. It is retired rather than implemented
|
|
41
|
+
because no measured app authors it, and a capability with no pull behind it is not
|
|
42
|
+
worth building. The `content/docs/plugins/plugin-calendar.mdx` schema-API line
|
|
43
|
+
documenting it is removed in the same change.
|
|
44
|
+
|
|
45
|
+
Retiring it is not a behaviour change — the key never had a read site to lose. It
|
|
46
|
+
becomes an ordinary unknown authored key, dropped at the renderer boundary like
|
|
47
|
+
any other.
|
|
48
|
+
|
|
49
|
+
**Grade.** Minor, not patch: measured both ways against the emitted bundle, the
|
|
50
|
+
published registry surface moves — `calendar-view`'s `inputs` array loses a member
|
|
51
|
+
(`colorMapping`: 1 emitted declaration before, 0 after), so the authorable
|
|
52
|
+
vocabulary this widget publishes narrows by one key, and a second declared input
|
|
53
|
+
starts producing a user-visible affordance. The emitted `.d.ts` is byte-identical
|
|
54
|
+
either way; the vocabulary lives in the runtime registry metadata, not in the type
|
|
55
|
+
surface.
|
|
56
|
+
|
|
57
|
+
### Patch Changes
|
|
58
|
+
|
|
59
|
+
- 395e154: authored ISO `currentDate` reaches the calendar as a `Date`; unparseable input falls back to the default instead of crashing
|
|
60
|
+
|
|
61
|
+
`plugin-calendar:calendar-view` declares the input `{ name: 'currentDate', type: 'string', description: 'ISO date string for initial calendar date' }`, while `CalendarViewProps.currentDate` is a `Date`. Nothing converted between the two: the authored string rode the renderer's trailing `{...props}` spread into `useState`'s initial `selectedDate`, and the header's `selectedDate.toLocaleDateString(…)` threw `selectedDate.toLocaleDateString is not a function` — the error boundary instead of the calendar. Writing the one spelling the input documents was the one spelling that could not work, and there was no correct authored value at all, since `type: 'string'` cannot express a `Date`.
|
|
62
|
+
|
|
63
|
+
The renderer now owes the conversion, at its own boundary. `currentDate` is destructured out of the incoming props so the spread can no longer carry the raw value (the consumed-key pattern from the `events` collision fix), parsed once per authored value, and passed to `CalendarView` as the `Date` its prop type declares. Off-spec input — an unparseable string, or any non-string that is not already a `Date` — gets the same answer as an absent key: the component's own default date. An `Invalid Date` is never manufactured and handed on; it does not throw, it renders the literal text "Invalid Date" into the header and the date picker, which is a silent wrong answer where the default is a usable calendar.
|
|
64
|
+
|
|
65
|
+
A `Date` instance passes through untouched, so a React host handing the widget its real declared prop type is unaffected.
|
|
66
|
+
|
|
67
|
+
- c5756ff: `calendar-view` consumes or declares every prop it forwards — an authored `onEventClick` can no longer crash a click
|
|
68
|
+
|
|
69
|
+
`calendar-view`'s renderer ended in `<CalendarView … {...props} />`, where `props` was everything `SchemaRenderer` hands a registered widget: the node's authored keys, the contents of its `props` container, the injected runtime props, and a host's trailing props. That is an unbounded set spread onto a component whose props are a closed list, and the worst collision on it was `onEventClick`: an authored `onEventClick: 'NOT-A-FUNCTION'` rendered a perfectly normal calendar and then threw `onEventClick is not a function` on the first click. React does not route event-handler errors to `SchemaErrorBoundary`, so it surfaced as an uncaught window error — the calendar kept looking fine while its click handling was dead. Both authoring channels reached it, the node's own key and a `props: { onEventClick }` container.
|
|
70
|
+
|
|
71
|
+
The forward set is now exactly `CalendarViewProps`, each key resolved to the type that prop declares; nothing else reaches the component. Declared registry inputs are consumed (`view` narrowed to its declared enum, `currentDate` parsed, `className` forwarded, the field-name inputs read off the schema); `CalendarView`'s callbacks are a declared, function-typed host escape hatch — a host-passed function is forwarded exactly as before, and a non-function value, which is all an SDUI author writing JSON can produce, is dropped, the same answer as an absent key; every other key is dropped.
|
|
72
|
+
|
|
73
|
+
Fixed with it, from the same boundary: an authored `onAction` string killed the same click through the renderer's own action channel; an authored `onDateClick` / `onNavigate` / `onViewChange` / `onEventDrop` / `onTimeRangeSelect` / `onAddClick` string killed its own gesture the same way; an authored `locale` that `Intl` rejects (`en_US`, the underscore spelling) took the whole render down to the error boundary with `RangeError: Incorrect locale information provided`; and an off-enum `view` (`agenda`) rendered a header with no calendar under it at all, where it now falls back to the component's `month` default.
|
|
74
|
+
|
|
75
|
+
No capability is removed and no authorable surface is added: every host path that worked keeps working, including the handler precedence the old spread produced (a host handler replaces the `onAction` dispatch rather than running alongside it). The package's emitted `.d.ts` is unchanged.
|
|
76
|
+
|
|
77
|
+
- 49b9de6: fix(plugin-calendar): authoring `events` on a `calendar-view` node no longer takes the calendar down
|
|
78
|
+
|
|
79
|
+
`calendar-view`'s renderer computed a `CalendarEvent[]` from `schema.data`, passed it
|
|
80
|
+
as `events={…}`, then spread the remaining props **after** it. `SchemaRenderer`
|
|
81
|
+
forwards a node's `events` key as a plain prop, so a node authoring `events` — the
|
|
82
|
+
ordinary SDUI action metadata, legal on any node — landed its `{ onClick: [...] }`
|
|
83
|
+
object on the `events` array prop: `CalendarView` iterated it and threw
|
|
84
|
+
`events is not iterable`, and a spec-legal node rendered an error card instead of its
|
|
85
|
+
calendar.
|
|
86
|
+
|
|
87
|
+
The authored key is now destructured out before the spread, so the computed array
|
|
88
|
+
always wins. This also closes the quiet half of the same collision: an authored
|
|
89
|
+
`events` **array** never threw — it silently replaced the calendar's contents with
|
|
90
|
+
itself.
|
|
91
|
+
|
|
92
|
+
No capability is removed. Nothing in the renderer layer consumes a node's `events`
|
|
93
|
+
key (the action path is `properties.action` through `ActionRunner`), and the
|
|
94
|
+
component's own `onAction` channel is unaffected.
|
|
95
|
+
|
|
96
|
+
- 3e579d6: `object-calendar` / `view:calendar`: the renderer now consumes or declares every prop it forwards, instead of spreading the authored node into `ObjectCalendar`
|
|
97
|
+
|
|
98
|
+
One shared renderer serves both registrations, and it ended in a raw spread of everything `SchemaRenderer` hands a widget — the node's authored keys, its `props` container, the injected runtime props and a host's trailing props — onto a component whose props are a closed list. `ObjectCalendarProps` declares eight callbacks and a `locale`, so an authored value under any of those names landed on the declared prop, and an SDUI author writing JSON can never produce a function:
|
|
99
|
+
|
|
100
|
+
- an authored `onDateClick` string threw `onDateClick is not a function` on an empty day-cell click, and an authored `onNavigate` string threw on **Next period** — both as _uncaught_ window errors, because React does not route event-handler errors to `SchemaErrorBoundary`, so the calendar kept looking fine while that gesture was dead;
|
|
101
|
+
- an authored `locale: 'en_US'` (the underscore spelling a producer writes by accident) threw `RangeError: Incorrect locale information provided` out of render and took the whole calendar to the error boundary.
|
|
102
|
+
|
|
103
|
+
The forward set is now exactly `ObjectCalendarProps`, each key resolved to the type that prop declares: the callback family is a declared, function-typed host escape hatch, `locale` is accepted only when `Intl.getCanonicalLocales` takes it, `data`/`loading` keep the parent pre-fetch path at their declared types, and everything else — including the open tail of authored keys — is dropped.
|
|
104
|
+
|
|
105
|
+
Host-passed functions are unaffected: a React host's handlers, and `ListView`'s `onRowClick`, still reach the component exactly as before.
|
|
106
|
+
|
|
107
|
+
- Updated dependencies [0e67b53]
|
|
108
|
+
- Updated dependencies [ceccdcf]
|
|
109
|
+
- Updated dependencies [d6e5124]
|
|
110
|
+
- Updated dependencies [debad27]
|
|
111
|
+
- Updated dependencies [dc2aa3e]
|
|
112
|
+
- Updated dependencies [ee66e2e]
|
|
113
|
+
- Updated dependencies [e2e6360]
|
|
114
|
+
- Updated dependencies [ee26e65]
|
|
115
|
+
- Updated dependencies [5900ac5]
|
|
116
|
+
- Updated dependencies [932cbcd]
|
|
117
|
+
- Updated dependencies [734d186]
|
|
118
|
+
- Updated dependencies [f650253]
|
|
119
|
+
- Updated dependencies [6d01319]
|
|
120
|
+
- Updated dependencies [3d9769a]
|
|
121
|
+
- Updated dependencies [8f85f8b]
|
|
122
|
+
- Updated dependencies [d0c3b26]
|
|
123
|
+
- Updated dependencies [3fc2971]
|
|
124
|
+
- Updated dependencies [aca27fa]
|
|
125
|
+
- Updated dependencies [dde7283]
|
|
126
|
+
- Updated dependencies [f7c6430]
|
|
127
|
+
- Updated dependencies [4dadf0d]
|
|
128
|
+
- Updated dependencies [ae10a01]
|
|
129
|
+
- Updated dependencies [0f21348]
|
|
130
|
+
- Updated dependencies [d2e2caf]
|
|
131
|
+
- Updated dependencies [92876f0]
|
|
132
|
+
- Updated dependencies [f279deb]
|
|
133
|
+
- Updated dependencies [4b70d28]
|
|
134
|
+
- Updated dependencies [eb7f586]
|
|
135
|
+
- Updated dependencies [e901131]
|
|
136
|
+
- Updated dependencies [ebb4e0e]
|
|
137
|
+
- Updated dependencies [3a9021e]
|
|
138
|
+
- Updated dependencies [d9d3463]
|
|
139
|
+
- Updated dependencies [2a40f69]
|
|
140
|
+
- Updated dependencies [bec3e14]
|
|
141
|
+
- Updated dependencies [613b167]
|
|
142
|
+
- Updated dependencies [b4d3c22]
|
|
143
|
+
- Updated dependencies [1f9b905]
|
|
144
|
+
- Updated dependencies [8f60d73]
|
|
145
|
+
- Updated dependencies [cb13400]
|
|
146
|
+
- Updated dependencies [828549a]
|
|
147
|
+
- Updated dependencies [e1ade8f]
|
|
148
|
+
- Updated dependencies [bc64bfe]
|
|
149
|
+
- Updated dependencies [abb0f81]
|
|
150
|
+
- Updated dependencies [38ab505]
|
|
151
|
+
- Updated dependencies [63fe8fd]
|
|
152
|
+
- Updated dependencies [3e19fe7]
|
|
153
|
+
- Updated dependencies [bb58d1d]
|
|
154
|
+
- Updated dependencies [433ff9f]
|
|
155
|
+
- Updated dependencies [5cc847c]
|
|
156
|
+
- Updated dependencies [6314e87]
|
|
157
|
+
- Updated dependencies [5e2e9fa]
|
|
158
|
+
- Updated dependencies [297534b]
|
|
159
|
+
- Updated dependencies [e7663f2]
|
|
160
|
+
- Updated dependencies [fa21254]
|
|
161
|
+
- Updated dependencies [33c32bf]
|
|
162
|
+
- Updated dependencies [66fb4fa]
|
|
163
|
+
- Updated dependencies [b953a97]
|
|
164
|
+
- Updated dependencies [e076fd5]
|
|
165
|
+
- Updated dependencies [d7f3e30]
|
|
166
|
+
- Updated dependencies [6d641c9]
|
|
167
|
+
- Updated dependencies [7e4f0e5]
|
|
168
|
+
- Updated dependencies [c911544]
|
|
169
|
+
- Updated dependencies [a84385b]
|
|
170
|
+
- Updated dependencies [45e1949]
|
|
171
|
+
- Updated dependencies [92250d6]
|
|
172
|
+
- Updated dependencies [c1d939f]
|
|
173
|
+
- Updated dependencies [58bebf6]
|
|
174
|
+
- Updated dependencies [36310dc]
|
|
175
|
+
- Updated dependencies [52d878a]
|
|
176
|
+
- Updated dependencies [456aac8]
|
|
177
|
+
- Updated dependencies [405e808]
|
|
178
|
+
- Updated dependencies [49ae9f4]
|
|
179
|
+
- Updated dependencies [a3ae404]
|
|
180
|
+
- Updated dependencies [7d04b0e]
|
|
181
|
+
- Updated dependencies [bfdf3d4]
|
|
182
|
+
- Updated dependencies [bb68488]
|
|
183
|
+
- Updated dependencies [c0f9a4b]
|
|
184
|
+
- Updated dependencies [b1e42d0]
|
|
185
|
+
- Updated dependencies [2459a3e]
|
|
186
|
+
- Updated dependencies [ac853ce]
|
|
187
|
+
- Updated dependencies [fa51109]
|
|
188
|
+
- Updated dependencies [d6aa172]
|
|
189
|
+
- Updated dependencies [c32a8a1]
|
|
190
|
+
- Updated dependencies [fe52a04]
|
|
191
|
+
- Updated dependencies [d46f9b8]
|
|
192
|
+
- Updated dependencies [3f5f87c]
|
|
193
|
+
- Updated dependencies [2fea4d2]
|
|
194
|
+
- Updated dependencies [f5e1143]
|
|
195
|
+
- Updated dependencies [dad805d]
|
|
196
|
+
- Updated dependencies [7f1cb33]
|
|
197
|
+
- Updated dependencies [f148a64]
|
|
198
|
+
- Updated dependencies [bb68488]
|
|
199
|
+
- Updated dependencies [2e3b0c0]
|
|
200
|
+
- Updated dependencies [35997ce]
|
|
201
|
+
- Updated dependencies [9461dd3]
|
|
202
|
+
- Updated dependencies [78fa331]
|
|
203
|
+
- Updated dependencies [47f551b]
|
|
204
|
+
- Updated dependencies [31ab1ac]
|
|
205
|
+
- Updated dependencies [0082db8]
|
|
206
|
+
- Updated dependencies [ab04728]
|
|
207
|
+
- Updated dependencies [b388950]
|
|
208
|
+
- Updated dependencies [5bf09fd]
|
|
209
|
+
- Updated dependencies [06915b0]
|
|
210
|
+
- Updated dependencies [ff84b05]
|
|
211
|
+
- @object-ui/i18n@17.5.0
|
|
212
|
+
- @object-ui/react@17.5.0
|
|
213
|
+
- @object-ui/components@17.5.0
|
|
214
|
+
- @object-ui/plugin-detail@17.5.0
|
|
215
|
+
- @object-ui/core@17.5.0
|
|
216
|
+
- @object-ui/fields@17.5.0
|
|
217
|
+
- @object-ui/types@17.5.0
|
|
218
|
+
- @object-ui/mobile@17.5.0
|
|
219
|
+
|
|
220
|
+
## 17.4.0
|
|
221
|
+
|
|
222
|
+
### Patch Changes
|
|
223
|
+
|
|
224
|
+
- 5bfaabd: `PageComponentSchema.dataSource` now reaches every object-bound block, not just
|
|
225
|
+
`list-view` — and `element:record_picker` stops discarding `view`
|
|
226
|
+
(objectstack#6953).
|
|
227
|
+
|
|
228
|
+
objectstack#5576 wired the spec's per-element data binding
|
|
229
|
+
(`dataSource: { object, view?, filter?, sort?, limit? }`) to `list-view` and left
|
|
230
|
+
the same declaration inert on every other page component. Two gaps remained, and
|
|
231
|
+
both were silent:
|
|
232
|
+
|
|
233
|
+
- **`element:record_picker` read four of the five keys and dropped `view`.** So
|
|
234
|
+
`dataSource: { object: 'account', view: 'hot' }` — the spec's own example —
|
|
235
|
+
built a picker over EVERY account instead of the rows the saved view selects.
|
|
236
|
+
Nothing threw and nothing rendered an error; the option list was simply wider
|
|
237
|
+
than what was authored, which also means a user could select a record the page
|
|
238
|
+
said was out of scope.
|
|
239
|
+
- **`object-grid` / `object-form` / `object-kanban` / `object-calendar` /
|
|
240
|
+
`object-chart` / `object-metric` / `record:related_list` read none of it.**
|
|
241
|
+
Each gates its fetch on its own `objectName`, and nothing mapped
|
|
242
|
+
`dataSource.object` onto it, so a page written the way the spec documents
|
|
243
|
+
rendered an empty grid / a field-less form / a board with no cards / an empty
|
|
244
|
+
month / an empty chart / a static metric number — with no request and no
|
|
245
|
+
diagnostic anywhere. Spec-valid metadata rendering nothing is the
|
|
246
|
+
objectstack#4413 shape.
|
|
247
|
+
|
|
248
|
+
Composition follows objectstack#5576's landed semantics unchanged on every block:
|
|
249
|
+
a named saved view supplies the baseline, a key written on the component itself
|
|
250
|
+
overrides it, an explicit binding key overrides both, `filter` AND-combines
|
|
251
|
+
("additional filter criteria" — a binding can narrow a view, never widen it), and
|
|
252
|
+
a `view` name that does not resolve renders a configuration error instead of
|
|
253
|
+
degrading to the object's full scope.
|
|
254
|
+
|
|
255
|
+
- `@object-ui/react` — new `useElementDataSourceSchema(schema, mapping, dataSource?)`
|
|
256
|
+
and `ElementDataSourceGate` apply a resolved binding to the schema keys a given
|
|
257
|
+
block reads, plus `ElementDataSourceErrorPanel` / `ElementDataSourceLoadingPanel`
|
|
258
|
+
for the two non-final states. One precedence table for all blocks rather than
|
|
259
|
+
one copy per block — that copy is how "additional filter criteria" would have
|
|
260
|
+
become two dialects.
|
|
261
|
+
- A mapping names **only** keys its block genuinely reads. A composed value
|
|
262
|
+
written onto a key the block ignores would be accepted and dropped, which is
|
|
263
|
+
the defect being removed, one layer deeper — so a kanban's swimlane `columns`
|
|
264
|
+
never receive a view's field list, and a block with no row cap leaves `limit`
|
|
265
|
+
unmapped. The per-block coverage table, including two residual gaps that are
|
|
266
|
+
named rather than papered over, is in `content/docs/guide/data-source.md`.
|
|
267
|
+
|
|
268
|
+
No behaviour changes for a block that carries no `dataSource`: the binding-free
|
|
269
|
+
path returns the schema by reference, so nothing remounts and nothing refetches.
|
|
270
|
+
|
|
271
|
+
- Updated dependencies [794c497]
|
|
272
|
+
- Updated dependencies [993336f]
|
|
273
|
+
- Updated dependencies [f0a625a]
|
|
274
|
+
- Updated dependencies [b5980f4]
|
|
275
|
+
- Updated dependencies [8aad9fd]
|
|
276
|
+
- Updated dependencies [6719877]
|
|
277
|
+
- Updated dependencies [56ff091]
|
|
278
|
+
- Updated dependencies [0186cdc]
|
|
279
|
+
- Updated dependencies [7864f03]
|
|
280
|
+
- Updated dependencies [ea41a59]
|
|
281
|
+
- Updated dependencies [0cbdca8]
|
|
282
|
+
- Updated dependencies [d229dfa]
|
|
283
|
+
- Updated dependencies [ecae400]
|
|
284
|
+
- Updated dependencies [4bc6c23]
|
|
285
|
+
- Updated dependencies [d3e738a]
|
|
286
|
+
- Updated dependencies [c3b01a7]
|
|
287
|
+
- Updated dependencies [f5f8744]
|
|
288
|
+
- Updated dependencies [7ed3360]
|
|
289
|
+
- Updated dependencies [69becd2]
|
|
290
|
+
- Updated dependencies [5e52495]
|
|
291
|
+
- Updated dependencies [0fa5e4d]
|
|
292
|
+
- Updated dependencies [b750823]
|
|
293
|
+
- Updated dependencies [5bfaabd]
|
|
294
|
+
- Updated dependencies [e06810e]
|
|
295
|
+
- Updated dependencies [ab3ad4f]
|
|
296
|
+
- Updated dependencies [65bb513]
|
|
297
|
+
- Updated dependencies [c97a45e]
|
|
298
|
+
- Updated dependencies [b19162d]
|
|
299
|
+
- Updated dependencies [c2fd122]
|
|
300
|
+
- Updated dependencies [1bd6faa]
|
|
301
|
+
- Updated dependencies [ac2139c]
|
|
302
|
+
- Updated dependencies [b14ab3a]
|
|
303
|
+
- Updated dependencies [e24d767]
|
|
304
|
+
- Updated dependencies [7b3e048]
|
|
305
|
+
- Updated dependencies [8c60819]
|
|
306
|
+
- Updated dependencies [aca561a]
|
|
307
|
+
- Updated dependencies [e64a52e]
|
|
308
|
+
- Updated dependencies [844d17f]
|
|
309
|
+
- Updated dependencies [d8a0be4]
|
|
310
|
+
- Updated dependencies [48132f7]
|
|
311
|
+
- Updated dependencies [4dcd52a]
|
|
312
|
+
- Updated dependencies [42ae5c6]
|
|
313
|
+
- Updated dependencies [0ef9dfd]
|
|
314
|
+
- Updated dependencies [f4b97c8]
|
|
315
|
+
- Updated dependencies [1d723e3]
|
|
316
|
+
- Updated dependencies [0109f54]
|
|
317
|
+
- Updated dependencies [7e5bb5d]
|
|
318
|
+
- Updated dependencies [fbc23e0]
|
|
319
|
+
- Updated dependencies [6d762da]
|
|
320
|
+
- Updated dependencies [e6fdbdc]
|
|
321
|
+
- Updated dependencies [4178d5a]
|
|
322
|
+
- Updated dependencies [54233b1]
|
|
323
|
+
- Updated dependencies [c2ecbae]
|
|
324
|
+
- Updated dependencies [acc34c5]
|
|
325
|
+
- Updated dependencies [c4768a7]
|
|
326
|
+
- Updated dependencies [f9faa7d]
|
|
327
|
+
- Updated dependencies [97b63d7]
|
|
328
|
+
- Updated dependencies [6bb454a]
|
|
329
|
+
- Updated dependencies [11c1e71]
|
|
330
|
+
- Updated dependencies [523be48]
|
|
331
|
+
- Updated dependencies [7e2b7e9]
|
|
332
|
+
- Updated dependencies [33526fd]
|
|
333
|
+
- Updated dependencies [32413ec]
|
|
334
|
+
- Updated dependencies [c1e1e6b]
|
|
335
|
+
- @object-ui/components@17.4.0
|
|
336
|
+
- @object-ui/plugin-detail@17.4.0
|
|
337
|
+
- @object-ui/react@17.4.0
|
|
338
|
+
- @object-ui/core@17.4.0
|
|
339
|
+
- @object-ui/fields@17.4.0
|
|
340
|
+
- @object-ui/i18n@17.4.0
|
|
341
|
+
- @object-ui/types@17.4.0
|
|
342
|
+
- @object-ui/mobile@17.4.0
|
|
343
|
+
|
|
3
344
|
## 17.3.0
|
|
4
345
|
|
|
5
346
|
### Patch Changes
|
|
@@ -1346,6 +1687,7 @@
|
|
|
1346
1687
|
detail view (`TypeError: titleFormat.replace is not a function`) and printed
|
|
1347
1688
|
`Failed to evaluate expression: ${[object Object]}` for every action visibility
|
|
1348
1689
|
predicate.
|
|
1690
|
+
|
|
1349
1691
|
- `@object-ui/core`: `ExpressionEvaluator.evaluate` / `evaluateCondition` now
|
|
1350
1692
|
unwrap Expression envelopes transparently.
|
|
1351
1693
|
- `@object-ui/react`: new `toPredicateInput()` helper to safely normalize
|
|
@@ -1429,6 +1771,7 @@
|
|
|
1429
1771
|
Library builds (vite lib mode) now externalize every non-relative import instead of bundling third-party CJS dependencies into the published dist. This avoids inlined `require("react")` / `require("react-dom")` calls that cause `Calling \`require\` for "react" in an environment that doesn't expose the \`require\` function` runtime errors when consumer apps re-bundle the published dist.
|
|
1430
1772
|
|
|
1431
1773
|
Specifically fixes:
|
|
1774
|
+
|
|
1432
1775
|
- `@object-ui/plugin-dashboard` no longer inlines `react-grid-layout` (and its transitive `react-draggable` / `react-resizable` CJS bundles). `react-grid-layout` is now declared as a peer dependency so consumers install a single ESM-friendly copy.
|
|
1433
1776
|
- `@object-ui/components`, `@object-ui/plugin-calendar`, `@object-ui/plugin-charts`, `@object-ui/plugin-designer` no longer inline `react-i18next` / `i18next` / `use-sync-external-store` CJS shims.
|
|
1434
1777
|
- All plugin packages now use a unified `external: (id) => !/^[./]/.test(id) && !id.startsWith(__dirname)` rule, ensuring future additions of CJS deps are automatically externalized.
|
|
@@ -1495,15 +1838,18 @@
|
|
|
1495
1838
|
- b2be122: fix(mobile): round 2 — kanban readability, calendar default view, timeline dot clipping
|
|
1496
1839
|
|
|
1497
1840
|
**Kanban**
|
|
1841
|
+
|
|
1498
1842
|
- Remove `font-mono` from card titles, descriptions, column headers, and empty-state labels — CRM cards no longer render in a monospace font.
|
|
1499
1843
|
- Constrain column body height (`max-h-full min-h-0` + `h-full` on the layout root) so `ScrollArea` activates and cards don't bleed past the viewport bottom.
|
|
1500
1844
|
- Opportunistically derive `description` (e.g. `$60K · Acme Corp · @owner`) and up to two `badges` (priority/severity/industry/rating) in `ObjectKanban` when the schema/source omits them, giving mobile cards more context at a glance.
|
|
1501
1845
|
|
|
1502
1846
|
**Calendar**
|
|
1847
|
+
|
|
1503
1848
|
- `ObjectCalendar` previously hardcoded `view={schema.defaultView ?? 'month'}`, making the view-selector dropdown a no-op. Wire the `view` state through to the `<Calendar>` prop so user selection is respected.
|
|
1504
1849
|
- On mobile (viewport < 768 px) coerce `day` defaults to `month` via a synchronous lazy initialiser and a resize/orientation effect — avoids the useless 24-hour empty-hour grid for date-only events.
|
|
1505
1850
|
|
|
1506
1851
|
**Timeline**
|
|
1852
|
+
|
|
1507
1853
|
- Add `ml-3` to the `<Timeline>` `<ol>` so the `absolute -left-3` marker dots are no longer clipped at the scroll-container edge.
|
|
1508
1854
|
|
|
1509
1855
|
- Updated dependencies [a2d7023]
|
package/README.md
CHANGED
|
@@ -254,17 +254,6 @@ const schema: CalendarViewSchema = {
|
|
|
254
254
|
};
|
|
255
255
|
```
|
|
256
256
|
|
|
257
|
-
<!-- release-metadata:v3.3.0 -->
|
|
258
|
-
|
|
259
|
-
## Compatibility
|
|
260
|
-
|
|
261
|
-
- **React:** 18.x or 19.x
|
|
262
|
-
- **Node.js:** ≥ 18
|
|
263
|
-
- **TypeScript:** ≥ 5.0 (strict mode)
|
|
264
|
-
- **`@objectstack/spec`:** ^3.3.0
|
|
265
|
-
- **`@objectstack/client`:** ^3.3.0
|
|
266
|
-
- **Tailwind CSS:** ≥ 3.4 (for packages with UI)
|
|
267
|
-
|
|
268
257
|
## Links
|
|
269
258
|
|
|
270
259
|
- 📚 [Documentation](https://www.objectui.org/docs/plugins/plugin-calendar)
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAG5D,OAAO,EAAE,cAAc,EAAE,CAAC;AAC1B,YAAY,EAAE,mBAAmB,EAAE,CAAC;AAGpC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAGvE,OAAO,0BAA0B,CAAC;AAyLlC,eAAO,MAAM,sBAAsB,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,MAAM,EAAE,GAAG,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CAoDhF,CAAC"}
|