@almadar/ui 5.125.0 → 5.127.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/dist/avl/index.cjs +84 -47
- package/dist/avl/index.d.cts +1859 -0
- package/dist/avl/index.d.ts +1859 -0
- package/dist/avl/index.js +85 -48
- package/dist/components/index.cjs +86 -48
- package/dist/components/index.d.cts +27 -1
- package/dist/components/index.d.ts +27 -1
- package/dist/components/index.js +86 -48
- package/dist/context/index.cjs +3 -2
- package/dist/context/index.js +3 -2
- package/dist/hooks/index.cjs +3 -2
- package/dist/hooks/index.js +3 -2
- package/dist/marketing/index.d.cts +1086 -0
- package/dist/marketing/index.d.ts +1086 -0
- package/dist/providers/index.cjs +83 -46
- package/dist/providers/index.js +83 -46
- package/dist/runtime/index.cjs +84 -47
- package/dist/runtime/index.js +85 -48
- package/package.json +6 -6
package/dist/providers/index.cjs
CHANGED
|
@@ -18876,6 +18876,32 @@ var init_ButtonGroup = __esm({
|
|
|
18876
18876
|
ButtonGroup.displayName = "ButtonGroup";
|
|
18877
18877
|
}
|
|
18878
18878
|
});
|
|
18879
|
+
|
|
18880
|
+
// lib/getNestedValue.ts
|
|
18881
|
+
function getNestedValue(obj, path) {
|
|
18882
|
+
if (obj === null || obj === void 0 || !path) {
|
|
18883
|
+
return void 0;
|
|
18884
|
+
}
|
|
18885
|
+
if (!path.includes(".")) {
|
|
18886
|
+
return obj[path];
|
|
18887
|
+
}
|
|
18888
|
+
const parts = path.split(".");
|
|
18889
|
+
let value = obj;
|
|
18890
|
+
for (const part of parts) {
|
|
18891
|
+
if (value === null || value === void 0) {
|
|
18892
|
+
return void 0;
|
|
18893
|
+
}
|
|
18894
|
+
if (typeof value !== "object" || Array.isArray(value)) {
|
|
18895
|
+
return void 0;
|
|
18896
|
+
}
|
|
18897
|
+
value = value[part];
|
|
18898
|
+
}
|
|
18899
|
+
return value;
|
|
18900
|
+
}
|
|
18901
|
+
var init_getNestedValue = __esm({
|
|
18902
|
+
"lib/getNestedValue.ts"() {
|
|
18903
|
+
}
|
|
18904
|
+
});
|
|
18879
18905
|
function useSwipeGesture(callbacks, options = {}) {
|
|
18880
18906
|
const { threshold = 50, velocityThreshold = 0.3, preventDefault = false } = options;
|
|
18881
18907
|
const startX = React84.useRef(0);
|
|
@@ -18989,17 +19015,31 @@ function getWeekDays(start) {
|
|
|
18989
19015
|
}
|
|
18990
19016
|
return days;
|
|
18991
19017
|
}
|
|
18992
|
-
function
|
|
19018
|
+
function eventStartDate(event, startField) {
|
|
19019
|
+
const raw = getNestedValue(event, startField);
|
|
19020
|
+
return new Date(raw ?? "");
|
|
19021
|
+
}
|
|
19022
|
+
function generateDefaultTimeSlots(events2, startField) {
|
|
19023
|
+
let first = DEFAULT_FIRST_HOUR;
|
|
19024
|
+
let last = DEFAULT_LAST_HOUR;
|
|
19025
|
+
for (const ev of events2) {
|
|
19026
|
+
const start = eventStartDate(ev, startField);
|
|
19027
|
+
if (Number.isNaN(start.getTime())) continue;
|
|
19028
|
+
const hour = start.getHours();
|
|
19029
|
+
if (hour < first) first = hour;
|
|
19030
|
+
if (hour > last) last = hour;
|
|
19031
|
+
}
|
|
18993
19032
|
const slots = [];
|
|
18994
|
-
for (let hour =
|
|
18995
|
-
slots.push(
|
|
19033
|
+
for (let hour = first; hour <= last; hour++) {
|
|
19034
|
+
slots.push(slotLabel(hour));
|
|
18996
19035
|
}
|
|
18997
19036
|
return slots;
|
|
18998
19037
|
}
|
|
18999
|
-
function eventInSlot(event, day, slotTime) {
|
|
19000
|
-
const eventStart =
|
|
19001
|
-
|
|
19002
|
-
|
|
19038
|
+
function eventInSlot(event, day, slotTime, startField) {
|
|
19039
|
+
const eventStart = eventStartDate(event, startField);
|
|
19040
|
+
if (Number.isNaN(eventStart.getTime())) return false;
|
|
19041
|
+
const [slotHour] = slotTime.split(":").map(Number);
|
|
19042
|
+
return eventStart.toDateString() === day.toDateString() && eventStart.getHours() === slotHour;
|
|
19003
19043
|
}
|
|
19004
19044
|
function CalendarGrid({
|
|
19005
19045
|
weekStart,
|
|
@@ -19013,7 +19053,12 @@ function CalendarGrid({
|
|
|
19013
19053
|
longPressPayload,
|
|
19014
19054
|
swipeLeftEvent,
|
|
19015
19055
|
swipeRightEvent,
|
|
19016
|
-
dayWindow = "auto"
|
|
19056
|
+
dayWindow = "auto",
|
|
19057
|
+
titleField = "title",
|
|
19058
|
+
startField = "startTime",
|
|
19059
|
+
colorField = "color",
|
|
19060
|
+
children,
|
|
19061
|
+
renderItem
|
|
19017
19062
|
}) {
|
|
19018
19063
|
const evs = Array.isArray(events2) ? events2 : events2 ? [events2] : [];
|
|
19019
19064
|
const eventBus = useEventBus();
|
|
@@ -19028,8 +19073,8 @@ function CalendarGrid({
|
|
|
19028
19073
|
[resolvedWeekStart]
|
|
19029
19074
|
);
|
|
19030
19075
|
const resolvedTimeSlots = React84.useMemo(
|
|
19031
|
-
() => timeSlots ?? generateDefaultTimeSlots(),
|
|
19032
|
-
[timeSlots]
|
|
19076
|
+
() => timeSlots ?? generateDefaultTimeSlots(evs, startField),
|
|
19077
|
+
[timeSlots, evs, startField]
|
|
19033
19078
|
);
|
|
19034
19079
|
const visibleCount = useDayWindow(dayWindow);
|
|
19035
19080
|
const [dayOffset, setDayOffset] = React84.useState(0);
|
|
@@ -19066,9 +19111,9 @@ function CalendarGrid({
|
|
|
19066
19111
|
);
|
|
19067
19112
|
const eventsForDayCount = React84.useCallback(
|
|
19068
19113
|
(day) => evs.filter(
|
|
19069
|
-
(ev) =>
|
|
19114
|
+
(ev) => eventStartDate(ev, startField).toDateString() === day.toDateString()
|
|
19070
19115
|
).length,
|
|
19071
|
-
[events2]
|
|
19116
|
+
[events2, startField]
|
|
19072
19117
|
);
|
|
19073
19118
|
const swipeCallbacks = React84.useMemo(() => ({
|
|
19074
19119
|
onSwipeLeft: swipeLeftEvent ? () => eventBus.emit(`UI:${swipeLeftEvent}`, {}) : void 0,
|
|
@@ -19087,8 +19132,11 @@ function CalendarGrid({
|
|
|
19087
19132
|
eventBus.emit(`UI:${longPressEvent}`, { date: day.toISOString(), time, ...longPressPayload });
|
|
19088
19133
|
}, 500);
|
|
19089
19134
|
}, [longPressEvent, longPressPayload, eventBus]);
|
|
19135
|
+
const renderChip = children ?? renderItem;
|
|
19090
19136
|
const renderEvent = (event) => {
|
|
19091
|
-
const color = event
|
|
19137
|
+
const color = getNestedValue(event, colorField);
|
|
19138
|
+
const label = String(getNestedValue(event, titleField) ?? "");
|
|
19139
|
+
const eventIndex = evs.indexOf(event);
|
|
19092
19140
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
19093
19141
|
Box,
|
|
19094
19142
|
{
|
|
@@ -19100,7 +19148,7 @@ function CalendarGrid({
|
|
|
19100
19148
|
color ? color : "bg-primary/10 border-primary/30 text-primary"
|
|
19101
19149
|
),
|
|
19102
19150
|
onClick: (e) => handleEventClick(event, e),
|
|
19103
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "small", className: "truncate font-medium", children:
|
|
19151
|
+
children: renderChip ? renderChip(event, eventIndex) : /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "small", className: "truncate font-medium", children: label })
|
|
19104
19152
|
},
|
|
19105
19153
|
event.id
|
|
19106
19154
|
);
|
|
@@ -19184,7 +19232,7 @@ function CalendarGrid({
|
|
|
19184
19232
|
) }),
|
|
19185
19233
|
visibleDays.map((day) => {
|
|
19186
19234
|
const slotEvents = evs.filter(
|
|
19187
|
-
(ev) => eventInSlot(ev, day, time)
|
|
19235
|
+
(ev) => eventInSlot(ev, day, time, startField)
|
|
19188
19236
|
);
|
|
19189
19237
|
const isToday = day.toDateString() === (/* @__PURE__ */ new Date()).toDateString();
|
|
19190
19238
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -19216,11 +19264,12 @@ function CalendarGrid({
|
|
|
19216
19264
|
}
|
|
19217
19265
|
);
|
|
19218
19266
|
}
|
|
19219
|
-
var SHORT_DATE;
|
|
19267
|
+
var SHORT_DATE, DEFAULT_FIRST_HOUR, DEFAULT_LAST_HOUR, slotLabel;
|
|
19220
19268
|
var init_CalendarGrid = __esm({
|
|
19221
19269
|
"components/core/molecules/CalendarGrid.tsx"() {
|
|
19222
19270
|
"use client";
|
|
19223
19271
|
init_cn();
|
|
19272
|
+
init_getNestedValue();
|
|
19224
19273
|
init_Box();
|
|
19225
19274
|
init_Button();
|
|
19226
19275
|
init_Stack();
|
|
@@ -19231,35 +19280,12 @@ var init_CalendarGrid = __esm({
|
|
|
19231
19280
|
init_useEventBus();
|
|
19232
19281
|
init_useSwipeGesture();
|
|
19233
19282
|
SHORT_DATE = { month: "short", day: "numeric" };
|
|
19283
|
+
DEFAULT_FIRST_HOUR = 9;
|
|
19284
|
+
DEFAULT_LAST_HOUR = 17;
|
|
19285
|
+
slotLabel = (hour) => `${hour.toString().padStart(2, "0")}:00`;
|
|
19234
19286
|
CalendarGrid.displayName = "CalendarGrid";
|
|
19235
19287
|
}
|
|
19236
19288
|
});
|
|
19237
|
-
|
|
19238
|
-
// lib/getNestedValue.ts
|
|
19239
|
-
function getNestedValue(obj, path) {
|
|
19240
|
-
if (obj === null || obj === void 0 || !path) {
|
|
19241
|
-
return void 0;
|
|
19242
|
-
}
|
|
19243
|
-
if (!path.includes(".")) {
|
|
19244
|
-
return obj[path];
|
|
19245
|
-
}
|
|
19246
|
-
const parts = path.split(".");
|
|
19247
|
-
let value = obj;
|
|
19248
|
-
for (const part of parts) {
|
|
19249
|
-
if (value === null || value === void 0) {
|
|
19250
|
-
return void 0;
|
|
19251
|
-
}
|
|
19252
|
-
if (typeof value !== "object" || Array.isArray(value)) {
|
|
19253
|
-
return void 0;
|
|
19254
|
-
}
|
|
19255
|
-
value = value[part];
|
|
19256
|
-
}
|
|
19257
|
-
return value;
|
|
19258
|
-
}
|
|
19259
|
-
var init_getNestedValue = __esm({
|
|
19260
|
-
"lib/getNestedValue.ts"() {
|
|
19261
|
-
}
|
|
19262
|
-
});
|
|
19263
19289
|
var Pagination;
|
|
19264
19290
|
var init_Pagination = __esm({
|
|
19265
19291
|
"components/core/molecules/Pagination.tsx"() {
|
|
@@ -43957,6 +43983,13 @@ function MaybeTraitScope({
|
|
|
43957
43983
|
if (wrap) {
|
|
43958
43984
|
return /* @__PURE__ */ jsxRuntime.jsx(providers.TraitScopeProvider, { orbital, trait: sourceTrait, children });
|
|
43959
43985
|
}
|
|
43986
|
+
if (sourceTrait !== void 0 && schemaCtx !== null) {
|
|
43987
|
+
scopeWrapLog.warn("decline", {
|
|
43988
|
+
sourceTrait,
|
|
43989
|
+
orbitalsByTraitSize: schemaCtx.orbitalsByTrait.size,
|
|
43990
|
+
reason: "sourceTrait not in orbitalsByTrait \u2014 children render unscoped"
|
|
43991
|
+
});
|
|
43992
|
+
}
|
|
43960
43993
|
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children });
|
|
43961
43994
|
}
|
|
43962
43995
|
function UISlotComponent({
|
|
@@ -44254,7 +44287,7 @@ function renderPatternChildren(children, onDismiss, parentId = "root", parentPat
|
|
|
44254
44287
|
const childId = `${parentId}-${index}`;
|
|
44255
44288
|
const childPath = parentPath === "root" ? `root.children.${index}` : `${parentPath}.children.${index}`;
|
|
44256
44289
|
const childAsRecord = child;
|
|
44257
|
-
const { type: _childType, props: nestedProps, _id: _childNodeId, children: _childChildren, ...flatProps } = childAsRecord;
|
|
44290
|
+
const { type: _childType, props: nestedProps, _id: _childNodeId, _sourceTrait: childSourceTrait, children: _childChildren, ...flatProps } = childAsRecord;
|
|
44258
44291
|
const resolvedProps = nestedProps !== void 0 ? nestedProps : flatProps;
|
|
44259
44292
|
if (_childChildren !== void 0 && nestedProps === void 0) {
|
|
44260
44293
|
resolvedProps.children = _childChildren;
|
|
@@ -44269,11 +44302,14 @@ function renderPatternChildren(children, onDismiss, parentId = "root", parentPat
|
|
|
44269
44302
|
// (e.g. form-section inside a stack) can resolve entityDef via
|
|
44270
44303
|
// the trait's linkedEntity for form-field enrichment. The orbCtx
|
|
44271
44304
|
// (slot/transition/state/entity) propagates the same way so every
|
|
44272
|
-
// nested node carries a complete contextual-edit address.
|
|
44273
|
-
|
|
44305
|
+
// nested node carries a complete contextual-edit address. A child
|
|
44306
|
+
// carrying its own `_sourceTrait` (multi-source slot stack) owns it
|
|
44307
|
+
// outright — inheriting the synthetic wrapper's sentinel instead
|
|
44308
|
+
// would erase the real owner.
|
|
44309
|
+
...childSourceTrait !== void 0 ? { sourceTrait: childSourceTrait } : sourceTrait !== void 0 && { sourceTrait },
|
|
44274
44310
|
...orbCtx ?? {}
|
|
44275
44311
|
};
|
|
44276
|
-
|
|
44312
|
+
const renderedChild = /* @__PURE__ */ jsxRuntime.jsx(
|
|
44277
44313
|
SlotContentRenderer,
|
|
44278
44314
|
{
|
|
44279
44315
|
content: childContent,
|
|
@@ -44282,6 +44318,7 @@ function renderPatternChildren(children, onDismiss, parentId = "root", parentPat
|
|
|
44282
44318
|
},
|
|
44283
44319
|
childId
|
|
44284
44320
|
);
|
|
44321
|
+
return childSourceTrait !== void 0 ? /* @__PURE__ */ jsxRuntime.jsx(MaybeTraitScope, { sourceTrait: childSourceTrait, children: renderedChild }, childId) : renderedChild;
|
|
44285
44322
|
});
|
|
44286
44323
|
}
|
|
44287
44324
|
function toDrawableNodes(children) {
|
package/dist/providers/index.js
CHANGED
|
@@ -18801,6 +18801,32 @@ var init_ButtonGroup = __esm({
|
|
|
18801
18801
|
ButtonGroup.displayName = "ButtonGroup";
|
|
18802
18802
|
}
|
|
18803
18803
|
});
|
|
18804
|
+
|
|
18805
|
+
// lib/getNestedValue.ts
|
|
18806
|
+
function getNestedValue(obj, path) {
|
|
18807
|
+
if (obj === null || obj === void 0 || !path) {
|
|
18808
|
+
return void 0;
|
|
18809
|
+
}
|
|
18810
|
+
if (!path.includes(".")) {
|
|
18811
|
+
return obj[path];
|
|
18812
|
+
}
|
|
18813
|
+
const parts = path.split(".");
|
|
18814
|
+
let value = obj;
|
|
18815
|
+
for (const part of parts) {
|
|
18816
|
+
if (value === null || value === void 0) {
|
|
18817
|
+
return void 0;
|
|
18818
|
+
}
|
|
18819
|
+
if (typeof value !== "object" || Array.isArray(value)) {
|
|
18820
|
+
return void 0;
|
|
18821
|
+
}
|
|
18822
|
+
value = value[part];
|
|
18823
|
+
}
|
|
18824
|
+
return value;
|
|
18825
|
+
}
|
|
18826
|
+
var init_getNestedValue = __esm({
|
|
18827
|
+
"lib/getNestedValue.ts"() {
|
|
18828
|
+
}
|
|
18829
|
+
});
|
|
18804
18830
|
function useSwipeGesture(callbacks, options = {}) {
|
|
18805
18831
|
const { threshold = 50, velocityThreshold = 0.3, preventDefault = false } = options;
|
|
18806
18832
|
const startX = useRef(0);
|
|
@@ -18914,17 +18940,31 @@ function getWeekDays(start) {
|
|
|
18914
18940
|
}
|
|
18915
18941
|
return days;
|
|
18916
18942
|
}
|
|
18917
|
-
function
|
|
18943
|
+
function eventStartDate(event, startField) {
|
|
18944
|
+
const raw = getNestedValue(event, startField);
|
|
18945
|
+
return new Date(raw ?? "");
|
|
18946
|
+
}
|
|
18947
|
+
function generateDefaultTimeSlots(events2, startField) {
|
|
18948
|
+
let first = DEFAULT_FIRST_HOUR;
|
|
18949
|
+
let last = DEFAULT_LAST_HOUR;
|
|
18950
|
+
for (const ev of events2) {
|
|
18951
|
+
const start = eventStartDate(ev, startField);
|
|
18952
|
+
if (Number.isNaN(start.getTime())) continue;
|
|
18953
|
+
const hour = start.getHours();
|
|
18954
|
+
if (hour < first) first = hour;
|
|
18955
|
+
if (hour > last) last = hour;
|
|
18956
|
+
}
|
|
18918
18957
|
const slots = [];
|
|
18919
|
-
for (let hour =
|
|
18920
|
-
slots.push(
|
|
18958
|
+
for (let hour = first; hour <= last; hour++) {
|
|
18959
|
+
slots.push(slotLabel(hour));
|
|
18921
18960
|
}
|
|
18922
18961
|
return slots;
|
|
18923
18962
|
}
|
|
18924
|
-
function eventInSlot(event, day, slotTime) {
|
|
18925
|
-
const eventStart =
|
|
18926
|
-
|
|
18927
|
-
|
|
18963
|
+
function eventInSlot(event, day, slotTime, startField) {
|
|
18964
|
+
const eventStart = eventStartDate(event, startField);
|
|
18965
|
+
if (Number.isNaN(eventStart.getTime())) return false;
|
|
18966
|
+
const [slotHour] = slotTime.split(":").map(Number);
|
|
18967
|
+
return eventStart.toDateString() === day.toDateString() && eventStart.getHours() === slotHour;
|
|
18928
18968
|
}
|
|
18929
18969
|
function CalendarGrid({
|
|
18930
18970
|
weekStart,
|
|
@@ -18938,7 +18978,12 @@ function CalendarGrid({
|
|
|
18938
18978
|
longPressPayload,
|
|
18939
18979
|
swipeLeftEvent,
|
|
18940
18980
|
swipeRightEvent,
|
|
18941
|
-
dayWindow = "auto"
|
|
18981
|
+
dayWindow = "auto",
|
|
18982
|
+
titleField = "title",
|
|
18983
|
+
startField = "startTime",
|
|
18984
|
+
colorField = "color",
|
|
18985
|
+
children,
|
|
18986
|
+
renderItem
|
|
18942
18987
|
}) {
|
|
18943
18988
|
const evs = Array.isArray(events2) ? events2 : events2 ? [events2] : [];
|
|
18944
18989
|
const eventBus = useEventBus();
|
|
@@ -18953,8 +18998,8 @@ function CalendarGrid({
|
|
|
18953
18998
|
[resolvedWeekStart]
|
|
18954
18999
|
);
|
|
18955
19000
|
const resolvedTimeSlots = useMemo(
|
|
18956
|
-
() => timeSlots ?? generateDefaultTimeSlots(),
|
|
18957
|
-
[timeSlots]
|
|
19001
|
+
() => timeSlots ?? generateDefaultTimeSlots(evs, startField),
|
|
19002
|
+
[timeSlots, evs, startField]
|
|
18958
19003
|
);
|
|
18959
19004
|
const visibleCount = useDayWindow(dayWindow);
|
|
18960
19005
|
const [dayOffset, setDayOffset] = useState(0);
|
|
@@ -18991,9 +19036,9 @@ function CalendarGrid({
|
|
|
18991
19036
|
);
|
|
18992
19037
|
const eventsForDayCount = useCallback(
|
|
18993
19038
|
(day) => evs.filter(
|
|
18994
|
-
(ev) =>
|
|
19039
|
+
(ev) => eventStartDate(ev, startField).toDateString() === day.toDateString()
|
|
18995
19040
|
).length,
|
|
18996
|
-
[events2]
|
|
19041
|
+
[events2, startField]
|
|
18997
19042
|
);
|
|
18998
19043
|
const swipeCallbacks = useMemo(() => ({
|
|
18999
19044
|
onSwipeLeft: swipeLeftEvent ? () => eventBus.emit(`UI:${swipeLeftEvent}`, {}) : void 0,
|
|
@@ -19012,8 +19057,11 @@ function CalendarGrid({
|
|
|
19012
19057
|
eventBus.emit(`UI:${longPressEvent}`, { date: day.toISOString(), time, ...longPressPayload });
|
|
19013
19058
|
}, 500);
|
|
19014
19059
|
}, [longPressEvent, longPressPayload, eventBus]);
|
|
19060
|
+
const renderChip = children ?? renderItem;
|
|
19015
19061
|
const renderEvent = (event) => {
|
|
19016
|
-
const color = event
|
|
19062
|
+
const color = getNestedValue(event, colorField);
|
|
19063
|
+
const label = String(getNestedValue(event, titleField) ?? "");
|
|
19064
|
+
const eventIndex = evs.indexOf(event);
|
|
19017
19065
|
return /* @__PURE__ */ jsx(
|
|
19018
19066
|
Box,
|
|
19019
19067
|
{
|
|
@@ -19025,7 +19073,7 @@ function CalendarGrid({
|
|
|
19025
19073
|
color ? color : "bg-primary/10 border-primary/30 text-primary"
|
|
19026
19074
|
),
|
|
19027
19075
|
onClick: (e) => handleEventClick(event, e),
|
|
19028
|
-
children: /* @__PURE__ */ jsx(Typography, { variant: "small", className: "truncate font-medium", children:
|
|
19076
|
+
children: renderChip ? renderChip(event, eventIndex) : /* @__PURE__ */ jsx(Typography, { variant: "small", className: "truncate font-medium", children: label })
|
|
19029
19077
|
},
|
|
19030
19078
|
event.id
|
|
19031
19079
|
);
|
|
@@ -19109,7 +19157,7 @@ function CalendarGrid({
|
|
|
19109
19157
|
) }),
|
|
19110
19158
|
visibleDays.map((day) => {
|
|
19111
19159
|
const slotEvents = evs.filter(
|
|
19112
|
-
(ev) => eventInSlot(ev, day, time)
|
|
19160
|
+
(ev) => eventInSlot(ev, day, time, startField)
|
|
19113
19161
|
);
|
|
19114
19162
|
const isToday = day.toDateString() === (/* @__PURE__ */ new Date()).toDateString();
|
|
19115
19163
|
return /* @__PURE__ */ jsx(
|
|
@@ -19141,11 +19189,12 @@ function CalendarGrid({
|
|
|
19141
19189
|
}
|
|
19142
19190
|
);
|
|
19143
19191
|
}
|
|
19144
|
-
var SHORT_DATE;
|
|
19192
|
+
var SHORT_DATE, DEFAULT_FIRST_HOUR, DEFAULT_LAST_HOUR, slotLabel;
|
|
19145
19193
|
var init_CalendarGrid = __esm({
|
|
19146
19194
|
"components/core/molecules/CalendarGrid.tsx"() {
|
|
19147
19195
|
"use client";
|
|
19148
19196
|
init_cn();
|
|
19197
|
+
init_getNestedValue();
|
|
19149
19198
|
init_Box();
|
|
19150
19199
|
init_Button();
|
|
19151
19200
|
init_Stack();
|
|
@@ -19156,35 +19205,12 @@ var init_CalendarGrid = __esm({
|
|
|
19156
19205
|
init_useEventBus();
|
|
19157
19206
|
init_useSwipeGesture();
|
|
19158
19207
|
SHORT_DATE = { month: "short", day: "numeric" };
|
|
19208
|
+
DEFAULT_FIRST_HOUR = 9;
|
|
19209
|
+
DEFAULT_LAST_HOUR = 17;
|
|
19210
|
+
slotLabel = (hour) => `${hour.toString().padStart(2, "0")}:00`;
|
|
19159
19211
|
CalendarGrid.displayName = "CalendarGrid";
|
|
19160
19212
|
}
|
|
19161
19213
|
});
|
|
19162
|
-
|
|
19163
|
-
// lib/getNestedValue.ts
|
|
19164
|
-
function getNestedValue(obj, path) {
|
|
19165
|
-
if (obj === null || obj === void 0 || !path) {
|
|
19166
|
-
return void 0;
|
|
19167
|
-
}
|
|
19168
|
-
if (!path.includes(".")) {
|
|
19169
|
-
return obj[path];
|
|
19170
|
-
}
|
|
19171
|
-
const parts = path.split(".");
|
|
19172
|
-
let value = obj;
|
|
19173
|
-
for (const part of parts) {
|
|
19174
|
-
if (value === null || value === void 0) {
|
|
19175
|
-
return void 0;
|
|
19176
|
-
}
|
|
19177
|
-
if (typeof value !== "object" || Array.isArray(value)) {
|
|
19178
|
-
return void 0;
|
|
19179
|
-
}
|
|
19180
|
-
value = value[part];
|
|
19181
|
-
}
|
|
19182
|
-
return value;
|
|
19183
|
-
}
|
|
19184
|
-
var init_getNestedValue = __esm({
|
|
19185
|
-
"lib/getNestedValue.ts"() {
|
|
19186
|
-
}
|
|
19187
|
-
});
|
|
19188
19214
|
var Pagination;
|
|
19189
19215
|
var init_Pagination = __esm({
|
|
19190
19216
|
"components/core/molecules/Pagination.tsx"() {
|
|
@@ -43882,6 +43908,13 @@ function MaybeTraitScope({
|
|
|
43882
43908
|
if (wrap) {
|
|
43883
43909
|
return /* @__PURE__ */ jsx(TraitScopeProvider, { orbital, trait: sourceTrait, children });
|
|
43884
43910
|
}
|
|
43911
|
+
if (sourceTrait !== void 0 && schemaCtx !== null) {
|
|
43912
|
+
scopeWrapLog.warn("decline", {
|
|
43913
|
+
sourceTrait,
|
|
43914
|
+
orbitalsByTraitSize: schemaCtx.orbitalsByTrait.size,
|
|
43915
|
+
reason: "sourceTrait not in orbitalsByTrait \u2014 children render unscoped"
|
|
43916
|
+
});
|
|
43917
|
+
}
|
|
43885
43918
|
return /* @__PURE__ */ jsx(Fragment, { children });
|
|
43886
43919
|
}
|
|
43887
43920
|
function UISlotComponent({
|
|
@@ -44179,7 +44212,7 @@ function renderPatternChildren(children, onDismiss, parentId = "root", parentPat
|
|
|
44179
44212
|
const childId = `${parentId}-${index}`;
|
|
44180
44213
|
const childPath = parentPath === "root" ? `root.children.${index}` : `${parentPath}.children.${index}`;
|
|
44181
44214
|
const childAsRecord = child;
|
|
44182
|
-
const { type: _childType, props: nestedProps, _id: _childNodeId, children: _childChildren, ...flatProps } = childAsRecord;
|
|
44215
|
+
const { type: _childType, props: nestedProps, _id: _childNodeId, _sourceTrait: childSourceTrait, children: _childChildren, ...flatProps } = childAsRecord;
|
|
44183
44216
|
const resolvedProps = nestedProps !== void 0 ? nestedProps : flatProps;
|
|
44184
44217
|
if (_childChildren !== void 0 && nestedProps === void 0) {
|
|
44185
44218
|
resolvedProps.children = _childChildren;
|
|
@@ -44194,11 +44227,14 @@ function renderPatternChildren(children, onDismiss, parentId = "root", parentPat
|
|
|
44194
44227
|
// (e.g. form-section inside a stack) can resolve entityDef via
|
|
44195
44228
|
// the trait's linkedEntity for form-field enrichment. The orbCtx
|
|
44196
44229
|
// (slot/transition/state/entity) propagates the same way so every
|
|
44197
|
-
// nested node carries a complete contextual-edit address.
|
|
44198
|
-
|
|
44230
|
+
// nested node carries a complete contextual-edit address. A child
|
|
44231
|
+
// carrying its own `_sourceTrait` (multi-source slot stack) owns it
|
|
44232
|
+
// outright — inheriting the synthetic wrapper's sentinel instead
|
|
44233
|
+
// would erase the real owner.
|
|
44234
|
+
...childSourceTrait !== void 0 ? { sourceTrait: childSourceTrait } : sourceTrait !== void 0 && { sourceTrait },
|
|
44199
44235
|
...orbCtx ?? {}
|
|
44200
44236
|
};
|
|
44201
|
-
|
|
44237
|
+
const renderedChild = /* @__PURE__ */ jsx(
|
|
44202
44238
|
SlotContentRenderer,
|
|
44203
44239
|
{
|
|
44204
44240
|
content: childContent,
|
|
@@ -44207,6 +44243,7 @@ function renderPatternChildren(children, onDismiss, parentId = "root", parentPat
|
|
|
44207
44243
|
},
|
|
44208
44244
|
childId
|
|
44209
44245
|
);
|
|
44246
|
+
return childSourceTrait !== void 0 ? /* @__PURE__ */ jsx(MaybeTraitScope, { sourceTrait: childSourceTrait, children: renderedChild }, childId) : renderedChild;
|
|
44210
44247
|
});
|
|
44211
44248
|
}
|
|
44212
44249
|
function toDrawableNodes(children) {
|